!function(a,i){"object"==typeof exports&&"undefined"!=typeof module?i(exports,require("react"),require("prop-types")):"function"==typeof define&&define.amd?define(["exports","react","prop-types"],i):i((a="undefined"!=typeof globalThis?globalThis:a||self).reactDropzone={},a.React,a.PropTypes)}(this,(function(a,i,t){"use strict";function n(a){return a&&"object"==typeof a&&"default"in a?a:{default:a}}var p=n(i),e=n(t);function o(a,i){var t=Object.keys(a);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(a);i&&(n=n.filter((function(i){return Object.getOwnPropertyDescriptor(a,i).enumerable}))),t.push.apply(t,n)}return t}function c(a){for(var i=1;i=0||(p[t]=a[t]);return p}(a,i);if(Object.getOwnPropertySymbols){var e=Object.getOwnPropertySymbols(a);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(a,t)&&(p[t]=a[t])}return p}function d(a,i){return function(a){if(Array.isArray(a))return a}(a)||function(a,i){var t=null==a?null:"undefined"!=typeof Symbol&&a[Symbol.iterator]||a["@@iterator"];if(null==t)return;var n,p,e=[],o=!0,c=!1;try{for(t=t.call(a);!(o=(n=t.next()).done)&&(e.push(n.value),!i||e.length!==i);o=!0);}catch(a){c=!0,p=a}finally{try{o||null==t.return||t.return()}finally{if(c)throw p}}return e}(a,i)||m(a,i)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function s(a){return function(a){if(Array.isArray(a))return v(a)}(a)||function(a){if("undefined"!=typeof Symbol&&null!=a[Symbol.iterator]||null!=a["@@iterator"])return Array.from(a)}(a)||m(a)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function m(a,i){if(a){if("string"==typeof a)return v(a,i);var t=Object.prototype.toString.call(a).slice(8,-1);return"Object"===t&&a.constructor&&(t=a.constructor.name),"Map"===t||"Set"===t?Array.from(a):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?v(a,i):void 0}}function v(a,i){(null==i||i>a.length)&&(i=a.length);for(var t=0,n=new Array(i);t0?p:`./${a.name}`;return"string"!=typeof n.path&&g(n,"path",e),void 0!==t&&Object.defineProperty(n,"handle",{value:t,writable:!1,configurable:!1,enumerable:!0}),g(n,"relativePath",e),n}function g(a,i,t){Object.defineProperty(a,i,{value:t,writable:!1,configurable:!1,enumerable:!0})}const b=[".DS_Store","Thumbs.db"];function h(a){return"object"==typeof a&&null!==a}function w(a){return a.filter((a=>-1===b.indexOf(a.name)))}function y(a){if(null===a)return[];const i=[];for(let t=0;t[...a,...Array.isArray(i)?j(i):[i]]),[])}function z(a,i){var t;if("function"==typeof a.getAsFileSystemHandle)return a.getAsFileSystemHandle().then((a=>x(this,void 0,void 0,(function*(){const i=yield a.getFile();return i.handle=a,f(i)}))));const n=a.getAsFile();if(!n)return Promise.reject(`${a} is not a File`);const p=f(n,null!==(t=null==i?void 0:i.fullPath)&&void 0!==t?t:void 0);return Promise.resolve(p)}function D(a){return x(this,void 0,void 0,(function*(){return a.isDirectory?F(a):function(a){return x(this,void 0,void 0,(function*(){return new Promise(((i,t)=>{a.file((t=>{const n=f(t,a.fullPath);i(n)}),(a=>{t(a)}))}))}))}(a)}))}function F(a){const i=a.createReader();return new Promise(((a,t)=>{const n=[];!function p(){i.readEntries((i=>x(this,void 0,void 0,(function*(){if(i.length){const a=Promise.all(i.map(D));n.push(a),p()}else try{const i=yield Promise.all(n);a(i)}catch(a){t(a)}}))),(a=>{t(a)}))}()}))}var q=function(a,i){if(a&&i){var t=Array.isArray(i)?i:i.split(",");if(0===t.length)return!0;var n=a.name||"",p=(a.type||"").toLowerCase(),e=p.replace(/\/.*$/,"");return t.some((function(a){var i=a.trim().toLowerCase();return"."===i.charAt(0)?n.toLowerCase().endsWith(i):i.endsWith("/*")?e===i.replace(/\/.*$/,""):p===i}))}return!0},E=q,O="file-invalid-type",A="file-too-large",P="file-too-small",S="too-many-files",C={FileInvalidType:O,FileTooLarge:A,FileTooSmall:P,TooManyFiles:S},R=function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",i=a.split(","),t=i.length>1?"one of ".concat(i.join(", ")):i[0];return{code:O,message:"File type must be ".concat(t)}},T=function(a){return{code:A,message:"File is larger than ".concat(a," ").concat(1===a?"byte":"bytes")}},I=function(a){return{code:P,message:"File is smaller than ".concat(a," ").concat(1===a?"byte":"bytes")}},M={code:S,message:"Too many files"};function L(a,i){var t="application/x-moz-file"===a.type||E(a,i);return[t,t?null:R(i)]}function _(a,i,t){if(B(a.size))if(B(i)&&B(t)){if(a.size>t)return[!1,T(t)];if(a.sizet)return[!1,T(t)]}return[!0,null]}function B(a){return null!=a}function K(a){var i=a.files,t=a.accept,n=a.minSize,p=a.maxSize,e=a.multiple,o=a.maxFiles,c=a.validator;return!(!e&&i.length>1||e&&o>=1&&i.length>o)&&i.every((function(a){var i=d(L(a,t),1)[0],e=d(_(a,n,p),1)[0],o=c?c(a):null;return i&&e&&!o}))}function $(a){return"function"==typeof a.isPropagationStopped?a.isPropagationStopped():void 0!==a.cancelBubble&&a.cancelBubble}function H(a){return a.dataTransfer?Array.prototype.some.call(a.dataTransfer.types,(function(a){return"Files"===a||"application/x-moz-file"===a})):!!a.target&&!!a.target.files}function U(a){a.preventDefault()}function W(a){return-1!==a.indexOf("MSIE")||-1!==a.indexOf("Trident/")}function G(a){return-1!==a.indexOf("Edge/")}function N(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.navigator.userAgent;return W(a)||G(a)}function Y(){for(var a=arguments.length,i=new Array(a),t=0;t1?t-1:0),p=1;p"file"===a.kind));if("drop"!==i)return t;return w(j(yield Promise.all(t.map(k))))}return w(y(a.files).map((a=>f(a))))}))}(a.dataTransfer,a.type):function(a){return h(a)&&h(a.target)}(a)?function(a){return y(a.target.files).map((a=>f(a)))}(a):Array.isArray(a)&&a.every((a=>"getFile"in a&&"function"==typeof a.getFile))?function(a){return x(this,void 0,void 0,(function*(){return(yield Promise.all(a.map((a=>a.getFile())))).map((a=>f(a)))}))}(a):[]}))},maxSize:1/0,minSize:0,multiple:!0,maxFiles:0,preventDropOnDocument:!0,noClick:!1,noKeyboard:!1,noDrag:!1,noDragEventsBubbling:!1,validator:null,useFsAccessApi:!1,autoFocus:!1};oa.defaultProps=ca,oa.propTypes={children:e.default.func,accept:e.default.objectOf(e.default.arrayOf(e.default.string)),multiple:e.default.bool,preventDropOnDocument:e.default.bool,noClick:e.default.bool,noKeyboard:e.default.bool,noDrag:e.default.bool,noDragEventsBubbling:e.default.bool,minSize:e.default.number,maxSize:e.default.number,maxFiles:e.default.number,disabled:e.default.bool,getFilesFromEvent:e.default.func,onFileDialogCancel:e.default.func,onFileDialogOpen:e.default.func,useFsAccessApi:e.default.bool,autoFocus:e.default.bool,onDragEnter:e.default.func,onDragLeave:e.default.func,onDragOver:e.default.func,onDrop:e.default.func,onDropAccepted:e.default.func,onDropRejected:e.default.func,onError:e.default.func,validator:e.default.func};var la={isFocused:!1,isFileDialogActive:!1,isDragActive:!1,isDragAccept:!1,isDragReject:!1,acceptedFiles:[],fileRejections:[]};function ra(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=c(c({},ca),a),n=t.accept,p=t.disabled,e=t.getFilesFromEvent,o=t.maxSize,m=t.minSize,v=t.multiple,x=t.maxFiles,u=t.onDragEnter,f=t.onDragLeave,g=t.onDragOver,b=t.onDrop,h=t.onDropAccepted,w=t.onDropRejected,y=t.onFileDialogCancel,k=t.onFileDialogOpen,j=t.useFsAccessApi,z=t.autoFocus,D=t.preventDropOnDocument,F=t.noClick,q=t.noKeyboard,E=t.noDrag,O=t.noDragEventsBubbling,A=t.onError,P=t.validator,S=i.useMemo((function(){return V(n)}),[n]),C=i.useMemo((function(){return Q(n)}),[n]),R=i.useMemo((function(){return"function"==typeof k?k:sa}),[k]),T=i.useMemo((function(){return"function"==typeof y?y:sa}),[y]),I=i.useRef(null),B=i.useRef(null),W=i.useReducer(da,la),G=d(W,2),aa=G[0],ia=G[1],ta=aa.isFocused,na=aa.isFileDialogActive,oa=i.useRef("undefined"!=typeof window&&window.isSecureContext&&j&&J()),ra=function(){!oa.current&&na&&setTimeout((function(){B.current&&(B.current.files.length||(ia({type:"closeDialog"}),T()))}),300)};i.useEffect((function(){return window.addEventListener("focus",ra,!1),function(){window.removeEventListener("focus",ra,!1)}}),[B,na,T,oa]);var ma=i.useRef([]),va=function(a){I.current&&I.current.contains(a.target)||(a.preventDefault(),ma.current=[])};i.useEffect((function(){return D&&(document.addEventListener("dragover",U,!1),document.addEventListener("drop",va,!1)),function(){D&&(document.removeEventListener("dragover",U),document.removeEventListener("drop",va))}}),[I,D]),i.useEffect((function(){return!p&&z&&I.current&&I.current.focus(),function(){}}),[I,z,p]);var xa=i.useCallback((function(a){A?A(a):console.error(a)}),[A]),ua=i.useCallback((function(a){a.preventDefault(),a.persist(),Ea(a),ma.current=[].concat(s(ma.current),[a.target]),H(a)&&Promise.resolve(e(a)).then((function(i){if(!$(a)||O){var t=i.length,n=t>0&&K({files:i,accept:S,minSize:m,maxSize:o,multiple:v,maxFiles:x,validator:P});ia({isDragAccept:n,isDragReject:t>0&&!n,isDragActive:!0,type:"setDraggedFiles"}),u&&u(a)}})).catch((function(a){return xa(a)}))}),[e,u,xa,O,S,m,o,v,x,P]),fa=i.useCallback((function(a){a.preventDefault(),a.persist(),Ea(a);var i=H(a);if(i&&a.dataTransfer)try{a.dataTransfer.dropEffect="copy"}catch(a){}return i&&g&&g(a),!1}),[g,O]),ga=i.useCallback((function(a){a.preventDefault(),a.persist(),Ea(a);var i=ma.current.filter((function(a){return I.current&&I.current.contains(a)})),t=i.indexOf(a.target);-1!==t&&i.splice(t,1),ma.current=i,i.length>0||(ia({type:"setDraggedFiles",isDragActive:!1,isDragAccept:!1,isDragReject:!1}),H(a)&&f&&f(a))}),[I,f,O]),ba=i.useCallback((function(a,i){var t=[],n=[];a.forEach((function(a){var i=d(L(a,S),2),p=i[0],e=i[1],c=d(_(a,m,o),2),l=c[0],r=c[1],s=P?P(a):null;if(p&&l&&!s)t.push(a);else{var v=[e,r];s&&(v=v.concat(s)),n.push({file:a,errors:v.filter((function(a){return a}))})}})),(!v&&t.length>1||v&&x>=1&&t.length>x)&&(t.forEach((function(a){n.push({file:a,errors:[M]})})),t.splice(0)),ia({acceptedFiles:t,fileRejections:n,isDragReject:n.length>0,type:"setFiles"}),b&&b(t,n,i),n.length>0&&w&&w(n,i),t.length>0&&h&&h(t,i)}),[ia,v,S,m,o,x,b,h,w,P]),ha=i.useCallback((function(a){a.preventDefault(),a.persist(),Ea(a),ma.current=[],H(a)&&Promise.resolve(e(a)).then((function(i){$(a)&&!O||ba(i,a)})).catch((function(a){return xa(a)})),ia({type:"reset"})}),[e,ba,xa,O]),wa=i.useCallback((function(){if(oa.current){ia({type:"openDialog"}),R();var a={multiple:v,types:C};window.showOpenFilePicker(a).then((function(a){return e(a)})).then((function(a){ba(a,null),ia({type:"closeDialog"})})).catch((function(a){X(a)?(T(a),ia({type:"closeDialog"})):Z(a)?(oa.current=!1,B.current?(B.current.value=null,B.current.click()):xa(new Error("Cannot open the file picker because the https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API is not supported and no was provided."))):xa(a)}))}else B.current&&(ia({type:"openDialog"}),R(),B.current.value=null,B.current.click())}),[ia,R,T,j,ba,xa,C,v]),ya=i.useCallback((function(a){I.current&&I.current.isEqualNode(a.target)&&(" "!==a.key&&"Enter"!==a.key&&32!==a.keyCode&&13!==a.keyCode||(a.preventDefault(),wa()))}),[I,wa]),ka=i.useCallback((function(){ia({type:"focus"})}),[]),ja=i.useCallback((function(){ia({type:"blur"})}),[]),za=i.useCallback((function(){F||(N()?setTimeout(wa,0):wa())}),[F,wa]),Da=function(a){return p?null:a},Fa=function(a){return q?null:Da(a)},qa=function(a){return E?null:Da(a)},Ea=function(a){O&&a.stopPropagation()},Oa=i.useMemo((function(){return function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=a.refKey,t=void 0===i?"ref":i,n=a.role,e=a.onKeyDown,o=a.onFocus,d=a.onBlur,s=a.onClick,m=a.onDragEnter,v=a.onDragOver,x=a.onDragLeave,u=a.onDrop,f=r(a,pa);return c(c(l({onKeyDown:Fa(Y(e,ya)),onFocus:Fa(Y(o,ka)),onBlur:Fa(Y(d,ja)),onClick:Da(Y(s,za)),onDragEnter:qa(Y(m,ua)),onDragOver:qa(Y(v,fa)),onDragLeave:qa(Y(x,ga)),onDrop:qa(Y(u,ha)),role:"string"==typeof n&&""!==n?n:"presentation"},t,I),p||q?{}:{tabIndex:0}),f)}}),[I,ya,ka,ja,za,ua,fa,ga,ha,q,E,p]),Aa=i.useCallback((function(a){a.stopPropagation()}),[]),Pa=i.useMemo((function(){return function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=a.refKey,t=void 0===i?"ref":i,n=a.onChange,p=a.onClick,e=r(a,ea),o=l({accept:S,multiple:v,type:"file",style:{border:0,clip:"rect(0, 0, 0, 0)",clipPath:"inset(50%)",height:"1px",margin:"0 -1px -1px 0",overflow:"hidden",padding:0,position:"absolute",width:"1px",whiteSpace:"nowrap"},onChange:Da(Y(n,ha)),onClick:Da(Y(p,Aa)),tabIndex:-1},t,B);return c(c({},o),e)}}),[B,n,v,ha,p]);return c(c({},aa),{},{isFocused:ta&&!p,getRootProps:Oa,getInputProps:Pa,rootRef:I,inputRef:B,open:Da(wa)})}function da(a,i){switch(i.type){case"focus":return c(c({},a),{},{isFocused:!0});case"blur":return c(c({},a),{},{isFocused:!1});case"openDialog":return c(c({},la),{},{isFileDialogActive:!0});case"closeDialog":return c(c({},a),{},{isFileDialogActive:!1});case"setDraggedFiles":return c(c({},a),{},{isDragActive:i.isDragActive,isDragAccept:i.isDragAccept,isDragReject:i.isDragReject});case"setFiles":return c(c({},a),{},{acceptedFiles:i.acceptedFiles,fileRejections:i.fileRejections,isDragReject:i.isDragReject});case"reset":return c({},la);default:return a}}function sa(){}a.ErrorCode=C,a.default=oa,a.useDropzone=ra,Object.defineProperty(a,"__esModule",{value:!0})})); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbIi4uL25vZGVfbW9kdWxlcy9maWxlLXNlbGVjdG9yL25vZGVfbW9kdWxlcy90c2xpYi90c2xpYi5lczYubWpzIiwiLi4vbm9kZV9tb2R1bGVzL2ZpbGUtc2VsZWN0b3IvZGlzdC9lczIwMTUvZmlsZS5qcyIsIi4uL25vZGVfbW9kdWxlcy9maWxlLXNlbGVjdG9yL2Rpc3QvZXMyMDE1L2ZpbGUtc2VsZWN0b3IuanMiLCIuLi9ub2RlX21vZHVsZXMvYXR0ci1hY2NlcHQvZGlzdC9lcy9pbmRleC5qcyIsIi4uL3NyYy91dGlscy9pbmRleC5qcyIsIi4uL3NyYy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5Db3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi5cblxuUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55XG5wdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQuXG5cblRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTIFdJVEhcblJFR0FSRCBUTyBUSElTIFNPRlRXQVJFIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWVxuQU5EIEZJVE5FU1MuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgU1BFQ0lBTCwgRElSRUNULFxuSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUyBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NXG5MT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUlxuT1RIRVIgVE9SVElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFVTRSBPUlxuUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS5cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXG4vKiBnbG9iYWwgUmVmbGVjdCwgUHJvbWlzZSwgU3VwcHJlc3NlZEVycm9yLCBTeW1ib2wsIEl0ZXJhdG9yICovXG5cbnZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24oZCwgYikge1xuICBleHRlbmRTdGF0aWNzID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8XG4gICAgICAoeyBfX3Byb3RvX186IFtdIH0gaW5zdGFuY2VvZiBBcnJheSAmJiBmdW5jdGlvbiAoZCwgYikgeyBkLl9fcHJvdG9fXyA9IGI7IH0pIHx8XG4gICAgICBmdW5jdGlvbiAoZCwgYikgeyBmb3IgKHZhciBwIGluIGIpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYiwgcCkpIGRbcF0gPSBiW3BdOyB9O1xuICByZXR1cm4gZXh0ZW5kU3RhdGljcyhkLCBiKTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX2V4dGVuZHMoZCwgYikge1xuICBpZiAodHlwZW9mIGIgIT09IFwiZnVuY3Rpb25cIiAmJiBiICE9PSBudWxsKVxuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNsYXNzIGV4dGVuZHMgdmFsdWUgXCIgKyBTdHJpbmcoYikgKyBcIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsXCIpO1xuICBleHRlbmRTdGF0aWNzKGQsIGIpO1xuICBmdW5jdGlvbiBfXygpIHsgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7IH1cbiAgZC5wcm90b3R5cGUgPSBiID09PSBudWxsID8gT2JqZWN0LmNyZWF0ZShiKSA6IChfXy5wcm90b3R5cGUgPSBiLnByb3RvdHlwZSwgbmV3IF9fKCkpO1xufVxuXG5leHBvcnQgdmFyIF9fYXNzaWduID0gZnVuY3Rpb24oKSB7XG4gIF9fYXNzaWduID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiBfX2Fzc2lnbih0KSB7XG4gICAgICBmb3IgKHZhciBzLCBpID0gMSwgbiA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcbiAgICAgICAgICBzID0gYXJndW1lbnRzW2ldO1xuICAgICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSkgdFtwXSA9IHNbcF07XG4gICAgICB9XG4gICAgICByZXR1cm4gdDtcbiAgfVxuICByZXR1cm4gX19hc3NpZ24uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIF9fcmVzdChzLCBlKSB7XG4gIHZhciB0ID0ge307XG4gIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgdFtwXSA9IHNbcF07XG4gIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXG4gICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgfVxuICByZXR1cm4gdDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIF9fZGVjb3JhdGUoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpIHtcbiAgdmFyIGMgPSBhcmd1bWVudHMubGVuZ3RoLCByID0gYyA8IDMgPyB0YXJnZXQgOiBkZXNjID09PSBudWxsID8gZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGFyZ2V0LCBrZXkpIDogZGVzYywgZDtcbiAgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcIm9iamVjdFwiICYmIHR5cGVvZiBSZWZsZWN0LmRlY29yYXRlID09PSBcImZ1bmN0aW9uXCIpIHIgPSBSZWZsZWN0LmRlY29yYXRlKGRlY29yYXRvcnMsIHRhcmdldCwga2V5LCBkZXNjKTtcbiAgZWxzZSBmb3IgKHZhciBpID0gZGVjb3JhdG9ycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgaWYgKGQgPSBkZWNvcmF0b3JzW2ldKSByID0gKGMgPCAzID8gZChyKSA6IGMgPiAzID8gZCh0YXJnZXQsIGtleSwgcikgOiBkKHRhcmdldCwga2V5KSkgfHwgcjtcbiAgcmV0dXJuIGMgPiAzICYmIHIgJiYgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCByKSwgcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIF9fcGFyYW0ocGFyYW1JbmRleCwgZGVjb3JhdG9yKSB7XG4gIHJldHVybiBmdW5jdGlvbiAodGFyZ2V0LCBrZXkpIHsgZGVjb3JhdG9yKHRhcmdldCwga2V5LCBwYXJhbUluZGV4KTsgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gX19lc0RlY29yYXRlKGN0b3IsIGRlc2NyaXB0b3JJbiwgZGVjb3JhdG9ycywgY29udGV4dEluLCBpbml0aWFsaXplcnMsIGV4dHJhSW5pdGlhbGl6ZXJzKSB7XG4gIGZ1bmN0aW9uIGFjY2VwdChmKSB7IGlmIChmICE9PSB2b2lkIDAgJiYgdHlwZW9mIGYgIT09IFwiZnVuY3Rpb25cIikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkZ1bmN0aW9uIGV4cGVjdGVkXCIpOyByZXR1cm4gZjsgfVxuICB2YXIga2luZCA9IGNvbnRleHRJbi5raW5kLCBrZXkgPSBraW5kID09PSBcImdldHRlclwiID8gXCJnZXRcIiA6IGtpbmQgPT09IFwic2V0dGVyXCIgPyBcInNldFwiIDogXCJ2YWx1ZVwiO1xuICB2YXIgdGFyZ2V0ID0gIWRlc2NyaXB0b3JJbiAmJiBjdG9yID8gY29udGV4dEluW1wic3RhdGljXCJdID8gY3RvciA6IGN0b3IucHJvdG90eXBlIDogbnVsbDtcbiAgdmFyIGRlc2NyaXB0b3IgPSBkZXNjcmlwdG9ySW4gfHwgKHRhcmdldCA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGFyZ2V0LCBjb250ZXh0SW4ubmFtZSkgOiB7fSk7XG4gIHZhciBfLCBkb25lID0gZmFsc2U7XG4gIGZvciAodmFyIGkgPSBkZWNvcmF0b3JzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICB2YXIgY29udGV4dCA9IHt9O1xuICAgICAgZm9yICh2YXIgcCBpbiBjb250ZXh0SW4pIGNvbnRleHRbcF0gPSBwID09PSBcImFjY2Vzc1wiID8ge30gOiBjb250ZXh0SW5bcF07XG4gICAgICBmb3IgKHZhciBwIGluIGNvbnRleHRJbi5hY2Nlc3MpIGNvbnRleHQuYWNjZXNzW3BdID0gY29udGV4dEluLmFjY2Vzc1twXTtcbiAgICAgIGNvbnRleHQuYWRkSW5pdGlhbGl6ZXIgPSBmdW5jdGlvbiAoZikgeyBpZiAoZG9uZSkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZFwiKTsgZXh0cmFJbml0aWFsaXplcnMucHVzaChhY2NlcHQoZiB8fCBudWxsKSk7IH07XG4gICAgICB2YXIgcmVzdWx0ID0gKDAsIGRlY29yYXRvcnNbaV0pKGtpbmQgPT09IFwiYWNjZXNzb3JcIiA/IHsgZ2V0OiBkZXNjcmlwdG9yLmdldCwgc2V0OiBkZXNjcmlwdG9yLnNldCB9IDogZGVzY3JpcHRvcltrZXldLCBjb250ZXh0KTtcbiAgICAgIGlmIChraW5kID09PSBcImFjY2Vzc29yXCIpIHtcbiAgICAgICAgICBpZiAocmVzdWx0ID09PSB2b2lkIDApIGNvbnRpbnVlO1xuICAgICAgICAgIGlmIChyZXN1bHQgPT09IG51bGwgfHwgdHlwZW9mIHJlc3VsdCAhPT0gXCJvYmplY3RcIikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIk9iamVjdCBleHBlY3RlZFwiKTtcbiAgICAgICAgICBpZiAoXyA9IGFjY2VwdChyZXN1bHQuZ2V0KSkgZGVzY3JpcHRvci5nZXQgPSBfO1xuICAgICAgICAgIGlmIChfID0gYWNjZXB0KHJlc3VsdC5zZXQpKSBkZXNjcmlwdG9yLnNldCA9IF87XG4gICAgICAgICAgaWYgKF8gPSBhY2NlcHQocmVzdWx0LmluaXQpKSBpbml0aWFsaXplcnMudW5zaGlmdChfKTtcbiAgICAgIH1cbiAgICAgIGVsc2UgaWYgKF8gPSBhY2NlcHQocmVzdWx0KSkge1xuICAgICAgICAgIGlmIChraW5kID09PSBcImZpZWxkXCIpIGluaXRpYWxpemVycy51bnNoaWZ0KF8pO1xuICAgICAgICAgIGVsc2UgZGVzY3JpcHRvcltrZXldID0gXztcbiAgICAgIH1cbiAgfVxuICBpZiAodGFyZ2V0KSBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBjb250ZXh0SW4ubmFtZSwgZGVzY3JpcHRvcik7XG4gIGRvbmUgPSB0cnVlO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fcnVuSW5pdGlhbGl6ZXJzKHRoaXNBcmcsIGluaXRpYWxpemVycywgdmFsdWUpIHtcbiAgdmFyIHVzZVZhbHVlID0gYXJndW1lbnRzLmxlbmd0aCA+IDI7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgaW5pdGlhbGl6ZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YWx1ZSA9IHVzZVZhbHVlID8gaW5pdGlhbGl6ZXJzW2ldLmNhbGwodGhpc0FyZywgdmFsdWUpIDogaW5pdGlhbGl6ZXJzW2ldLmNhbGwodGhpc0FyZyk7XG4gIH1cbiAgcmV0dXJuIHVzZVZhbHVlID8gdmFsdWUgOiB2b2lkIDA7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX19wcm9wS2V5KHgpIHtcbiAgcmV0dXJuIHR5cGVvZiB4ID09PSBcInN5bWJvbFwiID8geCA6IFwiXCIuY29uY2F0KHgpO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fc2V0RnVuY3Rpb25OYW1lKGYsIG5hbWUsIHByZWZpeCkge1xuICBpZiAodHlwZW9mIG5hbWUgPT09IFwic3ltYm9sXCIpIG5hbWUgPSBuYW1lLmRlc2NyaXB0aW9uID8gXCJbXCIuY29uY2F0KG5hbWUuZGVzY3JpcHRpb24sIFwiXVwiKSA6IFwiXCI7XG4gIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoZiwgXCJuYW1lXCIsIHsgY29uZmlndXJhYmxlOiB0cnVlLCB2YWx1ZTogcHJlZml4ID8gXCJcIi5jb25jYXQocHJlZml4LCBcIiBcIiwgbmFtZSkgOiBuYW1lIH0pO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fbWV0YWRhdGEobWV0YWRhdGFLZXksIG1ldGFkYXRhVmFsdWUpIHtcbiAgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcIm9iamVjdFwiICYmIHR5cGVvZiBSZWZsZWN0Lm1ldGFkYXRhID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiBSZWZsZWN0Lm1ldGFkYXRhKG1ldGFkYXRhS2V5LCBtZXRhZGF0YVZhbHVlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIF9fYXdhaXRlcih0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIF9fZ2VuZXJhdG9yKHRoaXNBcmcsIGJvZHkpIHtcbiAgdmFyIF8gPSB7IGxhYmVsOiAwLCBzZW50OiBmdW5jdGlvbigpIHsgaWYgKHRbMF0gJiAxKSB0aHJvdyB0WzFdOyByZXR1cm4gdFsxXTsgfSwgdHJ5czogW10sIG9wczogW10gfSwgZiwgeSwgdCwgZyA9IE9iamVjdC5jcmVhdGUoKHR5cGVvZiBJdGVyYXRvciA9PT0gXCJmdW5jdGlvblwiID8gSXRlcmF0b3IgOiBPYmplY3QpLnByb3RvdHlwZSk7XG4gIHJldHVybiBnLm5leHQgPSB2ZXJiKDApLCBnW1widGhyb3dcIl0gPSB2ZXJiKDEpLCBnW1wicmV0dXJuXCJdID0gdmVyYigyKSwgdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIChnW1N5bWJvbC5pdGVyYXRvcl0gPSBmdW5jdGlvbigpIHsgcmV0dXJuIHRoaXM7IH0pLCBnO1xuICBmdW5jdGlvbiB2ZXJiKG4pIHsgcmV0dXJuIGZ1bmN0aW9uICh2KSB7IHJldHVybiBzdGVwKFtuLCB2XSk7IH07IH1cbiAgZnVuY3Rpb24gc3RlcChvcCkge1xuICAgICAgaWYgKGYpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuXCIpO1xuICAgICAgd2hpbGUgKGcgJiYgKGcgPSAwLCBvcFswXSAmJiAoXyA9IDApKSwgXykgdHJ5IHtcbiAgICAgICAgICBpZiAoZiA9IDEsIHkgJiYgKHQgPSBvcFswXSAmIDIgPyB5W1wicmV0dXJuXCJdIDogb3BbMF0gPyB5W1widGhyb3dcIl0gfHwgKCh0ID0geVtcInJldHVyblwiXSkgJiYgdC5jYWxsKHkpLCAwKSA6IHkubmV4dCkgJiYgISh0ID0gdC5jYWxsKHksIG9wWzFdKSkuZG9uZSkgcmV0dXJuIHQ7XG4gICAgICAgICAgaWYgKHkgPSAwLCB0KSBvcCA9IFtvcFswXSAmIDIsIHQudmFsdWVdO1xuICAgICAgICAgIHN3aXRjaCAob3BbMF0pIHtcbiAgICAgICAgICAgICAgY2FzZSAwOiBjYXNlIDE6IHQgPSBvcDsgYnJlYWs7XG4gICAgICAgICAgICAgIGNhc2UgNDogXy5sYWJlbCsrOyByZXR1cm4geyB2YWx1ZTogb3BbMV0sIGRvbmU6IGZhbHNlIH07XG4gICAgICAgICAgICAgIGNhc2UgNTogXy5sYWJlbCsrOyB5ID0gb3BbMV07IG9wID0gWzBdOyBjb250aW51ZTtcbiAgICAgICAgICAgICAgY2FzZSA3OiBvcCA9IF8ub3BzLnBvcCgpOyBfLnRyeXMucG9wKCk7IGNvbnRpbnVlO1xuICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgaWYgKCEodCA9IF8udHJ5cywgdCA9IHQubGVuZ3RoID4gMCAmJiB0W3QubGVuZ3RoIC0gMV0pICYmIChvcFswXSA9PT0gNiB8fCBvcFswXSA9PT0gMikpIHsgXyA9IDA7IGNvbnRpbnVlOyB9XG4gICAgICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDMgJiYgKCF0IHx8IChvcFsxXSA+IHRbMF0gJiYgb3BbMV0gPCB0WzNdKSkpIHsgXy5sYWJlbCA9IG9wWzFdOyBicmVhazsgfVxuICAgICAgICAgICAgICAgICAgaWYgKG9wWzBdID09PSA2ICYmIF8ubGFiZWwgPCB0WzFdKSB7IF8ubGFiZWwgPSB0WzFdOyB0ID0gb3A7IGJyZWFrOyB9XG4gICAgICAgICAgICAgICAgICBpZiAodCAmJiBfLmxhYmVsIDwgdFsyXSkgeyBfLmxhYmVsID0gdFsyXTsgXy5vcHMucHVzaChvcCk7IGJyZWFrOyB9XG4gICAgICAgICAgICAgICAgICBpZiAodFsyXSkgXy5vcHMucG9wKCk7XG4gICAgICAgICAgICAgICAgICBfLnRyeXMucG9wKCk7IGNvbnRpbnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBvcCA9IGJvZHkuY2FsbCh0aGlzQXJnLCBfKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHsgb3AgPSBbNiwgZV07IHkgPSAwOyB9IGZpbmFsbHkgeyBmID0gdCA9IDA7IH1cbiAgICAgIGlmIChvcFswXSAmIDUpIHRocm93IG9wWzFdOyByZXR1cm4geyB2YWx1ZTogb3BbMF0gPyBvcFsxXSA6IHZvaWQgMCwgZG9uZTogdHJ1ZSB9O1xuICB9XG59XG5cbmV4cG9ydCB2YXIgX19jcmVhdGVCaW5kaW5nID0gT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xuICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xuICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwgayk7XG4gIGlmICghZGVzYyB8fCAoXCJnZXRcIiBpbiBkZXNjID8gIW0uX19lc01vZHVsZSA6IGRlc2Mud3JpdGFibGUgfHwgZGVzYy5jb25maWd1cmFibGUpKSB7XG4gICAgICBkZXNjID0geyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gbVtrXTsgfSB9O1xuICB9XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBrMiwgZGVzYyk7XG59KSA6IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xuICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xuICBvW2syXSA9IG1ba107XG59KTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fZXhwb3J0U3RhcihtLCBvKSB7XG4gIGZvciAodmFyIHAgaW4gbSkgaWYgKHAgIT09IFwiZGVmYXVsdFwiICYmICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobywgcCkpIF9fY3JlYXRlQmluZGluZyhvLCBtLCBwKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIF9fdmFsdWVzKG8pIHtcbiAgdmFyIHMgPSB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgU3ltYm9sLml0ZXJhdG9yLCBtID0gcyAmJiBvW3NdLCBpID0gMDtcbiAgaWYgKG0pIHJldHVybiBtLmNhbGwobyk7XG4gIGlmIChvICYmIHR5cGVvZiBvLmxlbmd0aCA9PT0gXCJudW1iZXJcIikgcmV0dXJuIHtcbiAgICAgIG5leHQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBpZiAobyAmJiBpID49IG8ubGVuZ3RoKSBvID0gdm9pZCAwO1xuICAgICAgICAgIHJldHVybiB7IHZhbHVlOiBvICYmIG9baSsrXSwgZG9uZTogIW8gfTtcbiAgICAgIH1cbiAgfTtcbiAgdGhyb3cgbmV3IFR5cGVFcnJvcihzID8gXCJPYmplY3QgaXMgbm90IGl0ZXJhYmxlLlwiIDogXCJTeW1ib2wuaXRlcmF0b3IgaXMgbm90IGRlZmluZWQuXCIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19yZWFkKG8sIG4pIHtcbiAgdmFyIG0gPSB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb1tTeW1ib2wuaXRlcmF0b3JdO1xuICBpZiAoIW0pIHJldHVybiBvO1xuICB2YXIgaSA9IG0uY2FsbChvKSwgciwgYXIgPSBbXSwgZTtcbiAgdHJ5IHtcbiAgICAgIHdoaWxlICgobiA9PT0gdm9pZCAwIHx8IG4tLSA+IDApICYmICEociA9IGkubmV4dCgpKS5kb25lKSBhci5wdXNoKHIudmFsdWUpO1xuICB9XG4gIGNhdGNoIChlcnJvcikgeyBlID0geyBlcnJvcjogZXJyb3IgfTsgfVxuICBmaW5hbGx5IHtcbiAgICAgIHRyeSB7XG4gICAgICAgICAgaWYgKHIgJiYgIXIuZG9uZSAmJiAobSA9IGlbXCJyZXR1cm5cIl0pKSBtLmNhbGwoaSk7XG4gICAgICB9XG4gICAgICBmaW5hbGx5IHsgaWYgKGUpIHRocm93IGUuZXJyb3I7IH1cbiAgfVxuICByZXR1cm4gYXI7XG59XG5cbi8qKiBAZGVwcmVjYXRlZCAqL1xuZXhwb3J0IGZ1bmN0aW9uIF9fc3ByZWFkKCkge1xuICBmb3IgKHZhciBhciA9IFtdLCBpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKylcbiAgICAgIGFyID0gYXIuY29uY2F0KF9fcmVhZChhcmd1bWVudHNbaV0pKTtcbiAgcmV0dXJuIGFyO1xufVxuXG4vKiogQGRlcHJlY2F0ZWQgKi9cbmV4cG9ydCBmdW5jdGlvbiBfX3NwcmVhZEFycmF5cygpIHtcbiAgZm9yICh2YXIgcyA9IDAsIGkgPSAwLCBpbCA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBpbDsgaSsrKSBzICs9IGFyZ3VtZW50c1tpXS5sZW5ndGg7XG4gIGZvciAodmFyIHIgPSBBcnJheShzKSwgayA9IDAsIGkgPSAwOyBpIDwgaWw7IGkrKylcbiAgICAgIGZvciAodmFyIGEgPSBhcmd1bWVudHNbaV0sIGogPSAwLCBqbCA9IGEubGVuZ3RoOyBqIDwgamw7IGorKywgaysrKVxuICAgICAgICAgIHJba10gPSBhW2pdO1xuICByZXR1cm4gcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIF9fc3ByZWFkQXJyYXkodG8sIGZyb20sIHBhY2spIHtcbiAgaWYgKHBhY2sgfHwgYXJndW1lbnRzLmxlbmd0aCA9PT0gMikgZm9yICh2YXIgaSA9IDAsIGwgPSBmcm9tLmxlbmd0aCwgYXI7IGkgPCBsOyBpKyspIHtcbiAgICAgIGlmIChhciB8fCAhKGkgaW4gZnJvbSkpIHtcbiAgICAgICAgICBpZiAoIWFyKSBhciA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGZyb20sIDAsIGkpO1xuICAgICAgICAgIGFyW2ldID0gZnJvbVtpXTtcbiAgICAgIH1cbiAgfVxuICByZXR1cm4gdG8uY29uY2F0KGFyIHx8IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGZyb20pKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIF9fYXdhaXQodikge1xuICByZXR1cm4gdGhpcyBpbnN0YW5jZW9mIF9fYXdhaXQgPyAodGhpcy52ID0gdiwgdGhpcykgOiBuZXcgX19hd2FpdCh2KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIF9fYXN5bmNHZW5lcmF0b3IodGhpc0FyZywgX2FyZ3VtZW50cywgZ2VuZXJhdG9yKSB7XG4gIGlmICghU3ltYm9sLmFzeW5jSXRlcmF0b3IpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJTeW1ib2wuYXN5bmNJdGVyYXRvciBpcyBub3QgZGVmaW5lZC5cIik7XG4gIHZhciBnID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pLCBpLCBxID0gW107XG4gIHJldHVybiBpID0gT2JqZWN0LmNyZWF0ZSgodHlwZW9mIEFzeW5jSXRlcmF0b3IgPT09IFwiZnVuY3Rpb25cIiA/IEFzeW5jSXRlcmF0b3IgOiBPYmplY3QpLnByb3RvdHlwZSksIHZlcmIoXCJuZXh0XCIpLCB2ZXJiKFwidGhyb3dcIiksIHZlcmIoXCJyZXR1cm5cIiwgYXdhaXRSZXR1cm4pLCBpW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0sIGk7XG4gIGZ1bmN0aW9uIGF3YWl0UmV0dXJuKGYpIHsgcmV0dXJuIGZ1bmN0aW9uICh2KSB7IHJldHVybiBQcm9taXNlLnJlc29sdmUodikudGhlbihmLCByZWplY3QpOyB9OyB9XG4gIGZ1bmN0aW9uIHZlcmIobiwgZikgeyBpZiAoZ1tuXSkgeyBpW25dID0gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChhLCBiKSB7IHEucHVzaChbbiwgdiwgYSwgYl0pID4gMSB8fCByZXN1bWUobiwgdik7IH0pOyB9OyBpZiAoZikgaVtuXSA9IGYoaVtuXSk7IH0gfVxuICBmdW5jdGlvbiByZXN1bWUobiwgdikgeyB0cnkgeyBzdGVwKGdbbl0odikpOyB9IGNhdGNoIChlKSB7IHNldHRsZShxWzBdWzNdLCBlKTsgfSB9XG4gIGZ1bmN0aW9uIHN0ZXAocikgeyByLnZhbHVlIGluc3RhbmNlb2YgX19hd2FpdCA/IFByb21pc2UucmVzb2x2ZShyLnZhbHVlLnYpLnRoZW4oZnVsZmlsbCwgcmVqZWN0KSA6IHNldHRsZShxWzBdWzJdLCByKTsgfVxuICBmdW5jdGlvbiBmdWxmaWxsKHZhbHVlKSB7IHJlc3VtZShcIm5leHRcIiwgdmFsdWUpOyB9XG4gIGZ1bmN0aW9uIHJlamVjdCh2YWx1ZSkgeyByZXN1bWUoXCJ0aHJvd1wiLCB2YWx1ZSk7IH1cbiAgZnVuY3Rpb24gc2V0dGxlKGYsIHYpIHsgaWYgKGYodiksIHEuc2hpZnQoKSwgcS5sZW5ndGgpIHJlc3VtZShxWzBdWzBdLCBxWzBdWzFdKTsgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gX19hc3luY0RlbGVnYXRvcihvKSB7XG4gIHZhciBpLCBwO1xuICByZXR1cm4gaSA9IHt9LCB2ZXJiKFwibmV4dFwiKSwgdmVyYihcInRocm93XCIsIGZ1bmN0aW9uIChlKSB7IHRocm93IGU7IH0pLCB2ZXJiKFwicmV0dXJuXCIpLCBpW1N5bWJvbC5pdGVyYXRvcl0gPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzOyB9LCBpO1xuICBmdW5jdGlvbiB2ZXJiKG4sIGYpIHsgaVtuXSA9IG9bbl0gPyBmdW5jdGlvbiAodikgeyByZXR1cm4gKHAgPSAhcCkgPyB7IHZhbHVlOiBfX2F3YWl0KG9bbl0odikpLCBkb25lOiBmYWxzZSB9IDogZiA/IGYodikgOiB2OyB9IDogZjsgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gX19hc3luY1ZhbHVlcyhvKSB7XG4gIGlmICghU3ltYm9sLmFzeW5jSXRlcmF0b3IpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJTeW1ib2wuYXN5bmNJdGVyYXRvciBpcyBub3QgZGVmaW5lZC5cIik7XG4gIHZhciBtID0gb1tTeW1ib2wuYXN5bmNJdGVyYXRvcl0sIGk7XG4gIHJldHVybiBtID8gbS5jYWxsKG8pIDogKG8gPSB0eXBlb2YgX192YWx1ZXMgPT09IFwiZnVuY3Rpb25cIiA/IF9fdmFsdWVzKG8pIDogb1tTeW1ib2wuaXRlcmF0b3JdKCksIGkgPSB7fSwgdmVyYihcIm5leHRcIiksIHZlcmIoXCJ0aHJvd1wiKSwgdmVyYihcInJldHVyblwiKSwgaVtTeW1ib2wuYXN5bmNJdGVyYXRvcl0gPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzOyB9LCBpKTtcbiAgZnVuY3Rpb24gdmVyYihuKSB7IGlbbl0gPSBvW25dICYmIGZ1bmN0aW9uICh2KSB7IHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7IHYgPSBvW25dKHYpLCBzZXR0bGUocmVzb2x2ZSwgcmVqZWN0LCB2LmRvbmUsIHYudmFsdWUpOyB9KTsgfTsgfVxuICBmdW5jdGlvbiBzZXR0bGUocmVzb2x2ZSwgcmVqZWN0LCBkLCB2KSB7IFByb21pc2UucmVzb2x2ZSh2KS50aGVuKGZ1bmN0aW9uKHYpIHsgcmVzb2x2ZSh7IHZhbHVlOiB2LCBkb25lOiBkIH0pOyB9LCByZWplY3QpOyB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBfX21ha2VUZW1wbGF0ZU9iamVjdChjb29rZWQsIHJhdykge1xuICBpZiAoT2JqZWN0LmRlZmluZVByb3BlcnR5KSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjb29rZWQsIFwicmF3XCIsIHsgdmFsdWU6IHJhdyB9KTsgfSBlbHNlIHsgY29va2VkLnJhdyA9IHJhdzsgfVxuICByZXR1cm4gY29va2VkO1xufTtcblxudmFyIF9fc2V0TW9kdWxlRGVmYXVsdCA9IE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgdikge1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgXCJkZWZhdWx0XCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHYgfSk7XG59KSA6IGZ1bmN0aW9uKG8sIHYpIHtcbiAgb1tcImRlZmF1bHRcIl0gPSB2O1xufTtcblxudmFyIG93bktleXMgPSBmdW5jdGlvbihvKSB7XG4gIG93bktleXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyB8fCBmdW5jdGlvbiAobykge1xuICAgIHZhciBhciA9IFtdO1xuICAgIGZvciAodmFyIGsgaW4gbykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvLCBrKSkgYXJbYXIubGVuZ3RoXSA9IGs7XG4gICAgcmV0dXJuIGFyO1xuICB9O1xuICByZXR1cm4gb3duS2V5cyhvKTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX2ltcG9ydFN0YXIobW9kKSB7XG4gIGlmIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpIHJldHVybiBtb2Q7XG4gIHZhciByZXN1bHQgPSB7fTtcbiAgaWYgKG1vZCAhPSBudWxsKSBmb3IgKHZhciBrID0gb3duS2V5cyhtb2QpLCBpID0gMDsgaSA8IGsubGVuZ3RoOyBpKyspIGlmIChrW2ldICE9PSBcImRlZmF1bHRcIikgX19jcmVhdGVCaW5kaW5nKHJlc3VsdCwgbW9kLCBrW2ldKTtcbiAgX19zZXRNb2R1bGVEZWZhdWx0KHJlc3VsdCwgbW9kKTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIF9faW1wb3J0RGVmYXVsdChtb2QpIHtcbiAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBkZWZhdWx0OiBtb2QgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIF9fY2xhc3NQcml2YXRlRmllbGRHZXQocmVjZWl2ZXIsIHN0YXRlLCBraW5kLCBmKSB7XG4gIGlmIChraW5kID09PSBcImFcIiAmJiAhZikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlByaXZhdGUgYWNjZXNzb3Igd2FzIGRlZmluZWQgd2l0aG91dCBhIGdldHRlclwiKTtcbiAgaWYgKHR5cGVvZiBzdGF0ZSA9PT0gXCJmdW5jdGlvblwiID8gcmVjZWl2ZXIgIT09IHN0YXRlIHx8ICFmIDogIXN0YXRlLmhhcyhyZWNlaXZlcikpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgcmVhZCBwcml2YXRlIG1lbWJlciBmcm9tIGFuIG9iamVjdCB3aG9zZSBjbGFzcyBkaWQgbm90IGRlY2xhcmUgaXRcIik7XG4gIHJldHVybiBraW5kID09PSBcIm1cIiA/IGYgOiBraW5kID09PSBcImFcIiA/IGYuY2FsbChyZWNlaXZlcikgOiBmID8gZi52YWx1ZSA6IHN0YXRlLmdldChyZWNlaXZlcik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0KHJlY2VpdmVyLCBzdGF0ZSwgdmFsdWUsIGtpbmQsIGYpIHtcbiAgaWYgKGtpbmQgPT09IFwibVwiKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiUHJpdmF0ZSBtZXRob2QgaXMgbm90IHdyaXRhYmxlXCIpO1xuICBpZiAoa2luZCA9PT0gXCJhXCIgJiYgIWYpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJQcml2YXRlIGFjY2Vzc29yIHdhcyBkZWZpbmVkIHdpdGhvdXQgYSBzZXR0ZXJcIik7XG4gIGlmICh0eXBlb2Ygc3RhdGUgPT09IFwiZnVuY3Rpb25cIiA/IHJlY2VpdmVyICE9PSBzdGF0ZSB8fCAhZiA6ICFzdGF0ZS5oYXMocmVjZWl2ZXIpKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IHdyaXRlIHByaXZhdGUgbWVtYmVyIHRvIGFuIG9iamVjdCB3aG9zZSBjbGFzcyBkaWQgbm90IGRlY2xhcmUgaXRcIik7XG4gIHJldHVybiAoa2luZCA9PT0gXCJhXCIgPyBmLmNhbGwocmVjZWl2ZXIsIHZhbHVlKSA6IGYgPyBmLnZhbHVlID0gdmFsdWUgOiBzdGF0ZS5zZXQocmVjZWl2ZXIsIHZhbHVlKSksIHZhbHVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19jbGFzc1ByaXZhdGVGaWVsZEluKHN0YXRlLCByZWNlaXZlcikge1xuICBpZiAocmVjZWl2ZXIgPT09IG51bGwgfHwgKHR5cGVvZiByZWNlaXZlciAhPT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgcmVjZWl2ZXIgIT09IFwiZnVuY3Rpb25cIikpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgdXNlICdpbicgb3BlcmF0b3Igb24gbm9uLW9iamVjdFwiKTtcbiAgcmV0dXJuIHR5cGVvZiBzdGF0ZSA9PT0gXCJmdW5jdGlvblwiID8gcmVjZWl2ZXIgPT09IHN0YXRlIDogc3RhdGUuaGFzKHJlY2VpdmVyKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIF9fYWRkRGlzcG9zYWJsZVJlc291cmNlKGVudiwgdmFsdWUsIGFzeW5jKSB7XG4gIGlmICh2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZSAhPT0gdm9pZCAwKSB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgdmFsdWUgIT09IFwiZnVuY3Rpb25cIikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIk9iamVjdCBleHBlY3RlZC5cIik7XG4gICAgdmFyIGRpc3Bvc2UsIGlubmVyO1xuICAgIGlmIChhc3luYykge1xuICAgICAgaWYgKCFTeW1ib2wuYXN5bmNEaXNwb3NlKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3ltYm9sLmFzeW5jRGlzcG9zZSBpcyBub3QgZGVmaW5lZC5cIik7XG4gICAgICBkaXNwb3NlID0gdmFsdWVbU3ltYm9sLmFzeW5jRGlzcG9zZV07XG4gICAgfVxuICAgIGlmIChkaXNwb3NlID09PSB2b2lkIDApIHtcbiAgICAgIGlmICghU3ltYm9sLmRpc3Bvc2UpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJTeW1ib2wuZGlzcG9zZSBpcyBub3QgZGVmaW5lZC5cIik7XG4gICAgICBkaXNwb3NlID0gdmFsdWVbU3ltYm9sLmRpc3Bvc2VdO1xuICAgICAgaWYgKGFzeW5jKSBpbm5lciA9IGRpc3Bvc2U7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgZGlzcG9zZSAhPT0gXCJmdW5jdGlvblwiKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiT2JqZWN0IG5vdCBkaXNwb3NhYmxlLlwiKTtcbiAgICBpZiAoaW5uZXIpIGRpc3Bvc2UgPSBmdW5jdGlvbigpIHsgdHJ5IHsgaW5uZXIuY2FsbCh0aGlzKTsgfSBjYXRjaCAoZSkgeyByZXR1cm4gUHJvbWlzZS5yZWplY3QoZSk7IH0gfTtcbiAgICBlbnYuc3RhY2sucHVzaCh7IHZhbHVlOiB2YWx1ZSwgZGlzcG9zZTogZGlzcG9zZSwgYXN5bmM6IGFzeW5jIH0pO1xuICB9XG4gIGVsc2UgaWYgKGFzeW5jKSB7XG4gICAgZW52LnN0YWNrLnB1c2goeyBhc3luYzogdHJ1ZSB9KTtcbiAgfVxuICByZXR1cm4gdmFsdWU7XG59XG5cbnZhciBfU3VwcHJlc3NlZEVycm9yID0gdHlwZW9mIFN1cHByZXNzZWRFcnJvciA9PT0gXCJmdW5jdGlvblwiID8gU3VwcHJlc3NlZEVycm9yIDogZnVuY3Rpb24gKGVycm9yLCBzdXBwcmVzc2VkLCBtZXNzYWdlKSB7XG4gIHZhciBlID0gbmV3IEVycm9yKG1lc3NhZ2UpO1xuICByZXR1cm4gZS5uYW1lID0gXCJTdXBwcmVzc2VkRXJyb3JcIiwgZS5lcnJvciA9IGVycm9yLCBlLnN1cHByZXNzZWQgPSBzdXBwcmVzc2VkLCBlO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fZGlzcG9zZVJlc291cmNlcyhlbnYpIHtcbiAgZnVuY3Rpb24gZmFpbChlKSB7XG4gICAgZW52LmVycm9yID0gZW52Lmhhc0Vycm9yID8gbmV3IF9TdXBwcmVzc2VkRXJyb3IoZSwgZW52LmVycm9yLCBcIkFuIGVycm9yIHdhcyBzdXBwcmVzc2VkIGR1cmluZyBkaXNwb3NhbC5cIikgOiBlO1xuICAgIGVudi5oYXNFcnJvciA9IHRydWU7XG4gIH1cbiAgdmFyIHIsIHMgPSAwO1xuICBmdW5jdGlvbiBuZXh0KCkge1xuICAgIHdoaWxlIChyID0gZW52LnN0YWNrLnBvcCgpKSB7XG4gICAgICB0cnkge1xuICAgICAgICBpZiAoIXIuYXN5bmMgJiYgcyA9PT0gMSkgcmV0dXJuIHMgPSAwLCBlbnYuc3RhY2sucHVzaChyKSwgUHJvbWlzZS5yZXNvbHZlKCkudGhlbihuZXh0KTtcbiAgICAgICAgaWYgKHIuZGlzcG9zZSkge1xuICAgICAgICAgIHZhciByZXN1bHQgPSByLmRpc3Bvc2UuY2FsbChyLnZhbHVlKTtcbiAgICAgICAgICBpZiAoci5hc3luYykgcmV0dXJuIHMgfD0gMiwgUHJvbWlzZS5yZXNvbHZlKHJlc3VsdCkudGhlbihuZXh0LCBmdW5jdGlvbihlKSB7IGZhaWwoZSk7IHJldHVybiBuZXh0KCk7IH0pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgcyB8PSAxO1xuICAgICAgfVxuICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgZmFpbChlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHMgPT09IDEpIHJldHVybiBlbnYuaGFzRXJyb3IgPyBQcm9taXNlLnJlamVjdChlbnYuZXJyb3IpIDogUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgaWYgKGVudi5oYXNFcnJvcikgdGhyb3cgZW52LmVycm9yO1xuICB9XG4gIHJldHVybiBuZXh0KCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3Jld3JpdGVSZWxhdGl2ZUltcG9ydEV4dGVuc2lvbihwYXRoLCBwcmVzZXJ2ZUpzeCkge1xuICBpZiAodHlwZW9mIHBhdGggPT09IFwic3RyaW5nXCIgJiYgL15cXC5cXC4/XFwvLy50ZXN0KHBhdGgpKSB7XG4gICAgICByZXR1cm4gcGF0aC5yZXBsYWNlKC9cXC4odHN4KSR8KCg/OlxcLmQpPykoKD86XFwuW14uL10rPyk/KVxcLihbY21dPyl0cyQvaSwgZnVuY3Rpb24gKG0sIHRzeCwgZCwgZXh0LCBjbSkge1xuICAgICAgICAgIHJldHVybiB0c3ggPyBwcmVzZXJ2ZUpzeCA/IFwiLmpzeFwiIDogXCIuanNcIiA6IGQgJiYgKCFleHQgfHwgIWNtKSA/IG0gOiAoZCArIGV4dCArIFwiLlwiICsgY20udG9Mb3dlckNhc2UoKSArIFwianNcIik7XG4gICAgICB9KTtcbiAgfVxuICByZXR1cm4gcGF0aDtcbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICBfX2V4dGVuZHMsXG4gIF9fYXNzaWduLFxuICBfX3Jlc3QsXG4gIF9fZGVjb3JhdGUsXG4gIF9fcGFyYW0sXG4gIF9fZXNEZWNvcmF0ZSxcbiAgX19ydW5Jbml0aWFsaXplcnMsXG4gIF9fcHJvcEtleSxcbiAgX19zZXRGdW5jdGlvbk5hbWUsXG4gIF9fbWV0YWRhdGEsXG4gIF9fYXdhaXRlcixcbiAgX19nZW5lcmF0b3IsXG4gIF9fY3JlYXRlQmluZGluZyxcbiAgX19leHBvcnRTdGFyLFxuICBfX3ZhbHVlcyxcbiAgX19yZWFkLFxuICBfX3NwcmVhZCxcbiAgX19zcHJlYWRBcnJheXMsXG4gIF9fc3ByZWFkQXJyYXksXG4gIF9fYXdhaXQsXG4gIF9fYXN5bmNHZW5lcmF0b3IsXG4gIF9fYXN5bmNEZWxlZ2F0b3IsXG4gIF9fYXN5bmNWYWx1ZXMsXG4gIF9fbWFrZVRlbXBsYXRlT2JqZWN0LFxuICBfX2ltcG9ydFN0YXIsXG4gIF9faW1wb3J0RGVmYXVsdCxcbiAgX19jbGFzc1ByaXZhdGVGaWVsZEdldCxcbiAgX19jbGFzc1ByaXZhdGVGaWVsZFNldCxcbiAgX19jbGFzc1ByaXZhdGVGaWVsZEluLFxuICBfX2FkZERpc3Bvc2FibGVSZXNvdXJjZSxcbiAgX19kaXNwb3NlUmVzb3VyY2VzLFxuICBfX3Jld3JpdGVSZWxhdGl2ZUltcG9ydEV4dGVuc2lvbixcbn07XG4iLCJleHBvcnQgY29uc3QgQ09NTU9OX01JTUVfVFlQRVMgPSBuZXcgTWFwKFtcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZ3V6emxlL3BzcjcvYmxvYi8yZDkyNjA3OTllNzEzZjFjNDc1ZDNjNWZkYzNkNjU2MWZmNzQ0MWIyL3NyYy9NaW1lVHlwZS5waHBcbiAgICBbJzFrbScsICdhcHBsaWNhdGlvbi92bmQuMTAwMG1pbmRzLmRlY2lzaW9uLW1vZGVsK3htbCddLFxuICAgIFsnM2RtbCcsICd0ZXh0L3ZuZC5pbjNkLjNkbWwnXSxcbiAgICBbJzNkcycsICdpbWFnZS94LTNkcyddLFxuICAgIFsnM2cyJywgJ3ZpZGVvLzNncHAyJ10sXG4gICAgWyczZ3AnLCAndmlkZW8vM2dwJ10sXG4gICAgWyczZ3BwJywgJ3ZpZGVvLzNncHAnXSxcbiAgICBbJzNtZicsICdtb2RlbC8zbWYnXSxcbiAgICBbJzd6JywgJ2FwcGxpY2F0aW9uL3gtN3otY29tcHJlc3NlZCddLFxuICAgIFsnN3ppcCcsICdhcHBsaWNhdGlvbi94LTd6LWNvbXByZXNzZWQnXSxcbiAgICBbJzEyMycsICdhcHBsaWNhdGlvbi92bmQubG90dXMtMS0yLTMnXSxcbiAgICBbJ2FhYicsICdhcHBsaWNhdGlvbi94LWF1dGhvcndhcmUtYmluJ10sXG4gICAgWydhYWMnLCAnYXVkaW8veC1hY2MnXSxcbiAgICBbJ2FhbScsICdhcHBsaWNhdGlvbi94LWF1dGhvcndhcmUtbWFwJ10sXG4gICAgWydhYXMnLCAnYXBwbGljYXRpb24veC1hdXRob3J3YXJlLXNlZyddLFxuICAgIFsnYWJ3JywgJ2FwcGxpY2F0aW9uL3gtYWJpd29yZCddLFxuICAgIFsnYWMnLCAnYXBwbGljYXRpb24vdm5kLm5va2lhLm4tZ2FnZS5hYyt4bWwnXSxcbiAgICBbJ2FjMycsICdhdWRpby9hYzMnXSxcbiAgICBbJ2FjYycsICdhcHBsaWNhdGlvbi92bmQuYW1lcmljYW5keW5hbWljcy5hY2MnXSxcbiAgICBbJ2FjZScsICdhcHBsaWNhdGlvbi94LWFjZS1jb21wcmVzc2VkJ10sXG4gICAgWydhY3UnLCAnYXBwbGljYXRpb24vdm5kLmFjdWNvYm9sJ10sXG4gICAgWydhY3V0YycsICdhcHBsaWNhdGlvbi92bmQuYWN1Y29ycCddLFxuICAgIFsnYWRwJywgJ2F1ZGlvL2FkcGNtJ10sXG4gICAgWydhZXAnLCAnYXBwbGljYXRpb24vdm5kLmF1ZGlvZ3JhcGgnXSxcbiAgICBbJ2FmbScsICdhcHBsaWNhdGlvbi94LWZvbnQtdHlwZTEnXSxcbiAgICBbJ2FmcCcsICdhcHBsaWNhdGlvbi92bmQuaWJtLm1vZGNhcCddLFxuICAgIFsnYWhlYWQnLCAnYXBwbGljYXRpb24vdm5kLmFoZWFkLnNwYWNlJ10sXG4gICAgWydhaScsICdhcHBsaWNhdGlvbi9wZGYnXSxcbiAgICBbJ2FpZicsICdhdWRpby94LWFpZmYnXSxcbiAgICBbJ2FpZmMnLCAnYXVkaW8veC1haWZmJ10sXG4gICAgWydhaWZmJywgJ2F1ZGlvL3gtYWlmZiddLFxuICAgIFsnYWlyJywgJ2FwcGxpY2F0aW9uL3ZuZC5hZG9iZS5haXItYXBwbGljYXRpb24taW5zdGFsbGVyLXBhY2thZ2UremlwJ10sXG4gICAgWydhaXQnLCAnYXBwbGljYXRpb24vdm5kLmR2Yi5haXQnXSxcbiAgICBbJ2FtaScsICdhcHBsaWNhdGlvbi92bmQuYW1pZ2EuYW1pJ10sXG4gICAgWydhbXInLCAnYXVkaW8vYW1yJ10sXG4gICAgWydhcGsnLCAnYXBwbGljYXRpb24vdm5kLmFuZHJvaWQucGFja2FnZS1hcmNoaXZlJ10sXG4gICAgWydhcG5nJywgJ2ltYWdlL2FwbmcnXSxcbiAgICBbJ2FwcGNhY2hlJywgJ3RleHQvY2FjaGUtbWFuaWZlc3QnXSxcbiAgICBbJ2FwcGxpY2F0aW9uJywgJ2FwcGxpY2F0aW9uL3gtbXMtYXBwbGljYXRpb24nXSxcbiAgICBbJ2FwcicsICdhcHBsaWNhdGlvbi92bmQubG90dXMtYXBwcm9hY2gnXSxcbiAgICBbJ2FyYycsICdhcHBsaWNhdGlvbi94LWZyZWVhcmMnXSxcbiAgICBbJ2FyaicsICdhcHBsaWNhdGlvbi94LWFyaiddLFxuICAgIFsnYXNjJywgJ2FwcGxpY2F0aW9uL3BncC1zaWduYXR1cmUnXSxcbiAgICBbJ2FzZicsICd2aWRlby94LW1zLWFzZiddLFxuICAgIFsnYXNtJywgJ3RleHQveC1hc20nXSxcbiAgICBbJ2FzbycsICdhcHBsaWNhdGlvbi92bmQuYWNjcGFjLnNpbXBseS5hc28nXSxcbiAgICBbJ2FzeCcsICd2aWRlby94LW1zLWFzZiddLFxuICAgIFsnYXRjJywgJ2FwcGxpY2F0aW9uL3ZuZC5hY3Vjb3JwJ10sXG4gICAgWydhdG9tJywgJ2FwcGxpY2F0aW9uL2F0b20reG1sJ10sXG4gICAgWydhdG9tY2F0JywgJ2FwcGxpY2F0aW9uL2F0b21jYXQreG1sJ10sXG4gICAgWydhdG9tZGVsZXRlZCcsICdhcHBsaWNhdGlvbi9hdG9tZGVsZXRlZCt4bWwnXSxcbiAgICBbJ2F0b21zdmMnLCAnYXBwbGljYXRpb24vYXRvbXN2Yyt4bWwnXSxcbiAgICBbJ2F0eCcsICdhcHBsaWNhdGlvbi92bmQuYW50aXguZ2FtZS1jb21wb25lbnQnXSxcbiAgICBbJ2F1JywgJ2F1ZGlvL3gtYXUnXSxcbiAgICBbJ2F2aScsICd2aWRlby94LW1zdmlkZW8nXSxcbiAgICBbJ2F2aWYnLCAnaW1hZ2UvYXZpZiddLFxuICAgIFsnYXcnLCAnYXBwbGljYXRpb24vYXBwbGl4d2FyZSddLFxuICAgIFsnYXpmJywgJ2FwcGxpY2F0aW9uL3ZuZC5haXJ6aXAuZmlsZXNlY3VyZS5hemYnXSxcbiAgICBbJ2F6cycsICdhcHBsaWNhdGlvbi92bmQuYWlyemlwLmZpbGVzZWN1cmUuYXpzJ10sXG4gICAgWydhenYnLCAnaW1hZ2Uvdm5kLmFpcnppcC5hY2NlbGVyYXRvci5henYnXSxcbiAgICBbJ2F6dycsICdhcHBsaWNhdGlvbi92bmQuYW1hem9uLmVib29rJ10sXG4gICAgWydiMTYnLCAnaW1hZ2Uvdm5kLnBjby5iMTYnXSxcbiAgICBbJ2JhdCcsICdhcHBsaWNhdGlvbi94LW1zZG93bmxvYWQnXSxcbiAgICBbJ2JjcGlvJywgJ2FwcGxpY2F0aW9uL3gtYmNwaW8nXSxcbiAgICBbJ2JkZicsICdhcHBsaWNhdGlvbi94LWZvbnQtYmRmJ10sXG4gICAgWydiZG0nLCAnYXBwbGljYXRpb24vdm5kLnN5bmNtbC5kbSt3YnhtbCddLFxuICAgIFsnYmRvYycsICdhcHBsaWNhdGlvbi94LWJkb2MnXSxcbiAgICBbJ2JlZCcsICdhcHBsaWNhdGlvbi92bmQucmVhbHZuYy5iZWQnXSxcbiAgICBbJ2JoMicsICdhcHBsaWNhdGlvbi92bmQuZnVqaXRzdS5vYXN5c3BycyddLFxuICAgIFsnYmluJywgJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSddLFxuICAgIFsnYmxiJywgJ2FwcGxpY2F0aW9uL3gtYmxvcmInXSxcbiAgICBbJ2Jsb3JiJywgJ2FwcGxpY2F0aW9uL3gtYmxvcmInXSxcbiAgICBbJ2JtaScsICdhcHBsaWNhdGlvbi92bmQuYm1pJ10sXG4gICAgWydibW1sJywgJ2FwcGxpY2F0aW9uL3ZuZC5iYWxzYW1pcS5ibW1sK3htbCddLFxuICAgIFsnYm1wJywgJ2ltYWdlL2JtcCddLFxuICAgIFsnYm9vaycsICdhcHBsaWNhdGlvbi92bmQuZnJhbWVtYWtlciddLFxuICAgIFsnYm94JywgJ2FwcGxpY2F0aW9uL3ZuZC5wcmV2aWV3c3lzdGVtcy5ib3gnXSxcbiAgICBbJ2JveicsICdhcHBsaWNhdGlvbi94LWJ6aXAyJ10sXG4gICAgWydicGsnLCAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJ10sXG4gICAgWydicG1uJywgJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSddLFxuICAgIFsnYnNwJywgJ21vZGVsL3ZuZC52YWx2ZS5zb3VyY2UuY29tcGlsZWQtbWFwJ10sXG4gICAgWydidGlmJywgJ2ltYWdlL3Bycy5idGlmJ10sXG4gICAgWydidWZmZXInLCAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJ10sXG4gICAgWydieicsICdhcHBsaWNhdGlvbi94LWJ6aXAnXSxcbiAgICBbJ2J6MicsICdhcHBsaWNhdGlvbi94LWJ6aXAyJ10sXG4gICAgWydjJywgJ3RleHQveC1jJ10sXG4gICAgWydjNGQnLCAnYXBwbGljYXRpb24vdm5kLmNsb25rLmM0Z3JvdXAnXSxcbiAgICBbJ2M0ZicsICdhcHBsaWNhdGlvbi92bmQuY2xvbmsuYzRncm91cCddLFxuICAgIFsnYzRnJywgJ2FwcGxpY2F0aW9uL3ZuZC5jbG9uay5jNGdyb3VwJ10sXG4gICAgWydjNHAnLCAnYXBwbGljYXRpb24vdm5kLmNsb25rLmM0Z3JvdXAnXSxcbiAgICBbJ2M0dScsICdhcHBsaWNhdGlvbi92bmQuY2xvbmsuYzRncm91cCddLFxuICAgIFsnYzExYW1jJywgJ2FwcGxpY2F0aW9uL3ZuZC5jbHVldHJ1c3QuY2FydG9tb2JpbGUtY29uZmlnJ10sXG4gICAgWydjMTFhbXonLCAnYXBwbGljYXRpb24vdm5kLmNsdWV0cnVzdC5jYXJ0b21vYmlsZS1jb25maWctcGtnJ10sXG4gICAgWydjYWInLCAnYXBwbGljYXRpb24vdm5kLm1zLWNhYi1jb21wcmVzc2VkJ10sXG4gICAgWydjYWYnLCAnYXVkaW8veC1jYWYnXSxcbiAgICBbJ2NhcCcsICdhcHBsaWNhdGlvbi92bmQudGNwZHVtcC5wY2FwJ10sXG4gICAgWydjYXInLCAnYXBwbGljYXRpb24vdm5kLmN1cmwuY2FyJ10sXG4gICAgWydjYXQnLCAnYXBwbGljYXRpb24vdm5kLm1zLXBraS5zZWNjYXQnXSxcbiAgICBbJ2NiNycsICdhcHBsaWNhdGlvbi94LWNiciddLFxuICAgIFsnY2JhJywgJ2FwcGxpY2F0aW9uL3gtY2JyJ10sXG4gICAgWydjYnInLCAnYXBwbGljYXRpb24veC1jYnInXSxcbiAgICBbJ2NidCcsICdhcHBsaWNhdGlvbi94LWNiciddLFxuICAgIFsnY2J6JywgJ2FwcGxpY2F0aW9uL3gtY2JyJ10sXG4gICAgWydjYycsICd0ZXh0L3gtYyddLFxuICAgIFsnY2NvJywgJ2FwcGxpY2F0aW9uL3gtY29jb2EnXSxcbiAgICBbJ2NjdCcsICdhcHBsaWNhdGlvbi94LWRpcmVjdG9yJ10sXG4gICAgWydjY3htbCcsICdhcHBsaWNhdGlvbi9jY3htbCt4bWwnXSxcbiAgICBbJ2NkYmNtc2cnLCAnYXBwbGljYXRpb24vdm5kLmNvbnRhY3QuY21zZyddLFxuICAgIFsnY2RhJywgJ2FwcGxpY2F0aW9uL3gtY2RmJ10sXG4gICAgWydjZGYnLCAnYXBwbGljYXRpb24veC1uZXRjZGYnXSxcbiAgICBbJ2NkZngnLCAnYXBwbGljYXRpb24vY2RmeCt4bWwnXSxcbiAgICBbJ2Nka2V5JywgJ2FwcGxpY2F0aW9uL3ZuZC5tZWRpYXN0YXRpb24uY2RrZXknXSxcbiAgICBbJ2NkbWlhJywgJ2FwcGxpY2F0aW9uL2NkbWktY2FwYWJpbGl0eSddLFxuICAgIFsnY2RtaWMnLCAnYXBwbGljYXRpb24vY2RtaS1jb250YWluZXInXSxcbiAgICBbJ2NkbWlkJywgJ2FwcGxpY2F0aW9uL2NkbWktZG9tYWluJ10sXG4gICAgWydjZG1pbycsICdhcHBsaWNhdGlvbi9jZG1pLW9iamVjdCddLFxuICAgIFsnY2RtaXEnLCAnYXBwbGljYXRpb24vY2RtaS1xdWV1ZSddLFxuICAgIFsnY2RyJywgJ2FwcGxpY2F0aW9uL2NkciddLFxuICAgIFsnY2R4JywgJ2NoZW1pY2FsL3gtY2R4J10sXG4gICAgWydjZHhtbCcsICdhcHBsaWNhdGlvbi92bmQuY2hlbWRyYXcreG1sJ10sXG4gICAgWydjZHknLCAnYXBwbGljYXRpb24vdm5kLmNpbmRlcmVsbGEnXSxcbiAgICBbJ2NlcicsICdhcHBsaWNhdGlvbi9wa2l4LWNlcnQnXSxcbiAgICBbJ2NmcycsICdhcHBsaWNhdGlvbi94LWNmcy1jb21wcmVzc2VkJ10sXG4gICAgWydjZ20nLCAnaW1hZ2UvY2dtJ10sXG4gICAgWydjaGF0JywgJ2FwcGxpY2F0aW9uL3gtY2hhdCddLFxuICAgIFsnY2htJywgJ2FwcGxpY2F0aW9uL3ZuZC5tcy1odG1saGVscCddLFxuICAgIFsnY2hydCcsICdhcHBsaWNhdGlvbi92bmQua2RlLmtjaGFydCddLFxuICAgIFsnY2lmJywgJ2NoZW1pY2FsL3gtY2lmJ10sXG4gICAgWydjaWknLCAnYXBwbGljYXRpb24vdm5kLmFuc2VyLXdlYi1jZXJ0aWZpY2F0ZS1pc3N1ZS1pbml0aWF0aW9uJ10sXG4gICAgWydjaWwnLCAnYXBwbGljYXRpb24vdm5kLm1zLWFydGdhbHJ5J10sXG4gICAgWydjanMnLCAnYXBwbGljYXRpb24vbm9kZSddLFxuICAgIFsnY2xhJywgJ2FwcGxpY2F0aW9uL3ZuZC5jbGF5bW9yZSddLFxuICAgIFsnY2xhc3MnLCAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJ10sXG4gICAgWydjbGtrJywgJ2FwcGxpY2F0aW9uL3ZuZC5jcmljay5jbGlja2VyLmtleWJvYXJkJ10sXG4gICAgWydjbGtwJywgJ2FwcGxpY2F0aW9uL3ZuZC5jcmljay5jbGlja2VyLnBhbGV0dGUnXSxcbiAgICBbJ2Nsa3QnLCAnYXBwbGljYXRpb24vdm5kLmNyaWNrLmNsaWNrZXIudGVtcGxhdGUnXSxcbiAgICBbJ2Nsa3cnLCAnYXBwbGljYXRpb24vdm5kLmNyaWNrLmNsaWNrZXIud29yZGJhbmsnXSxcbiAgICBbJ2Nsa3gnLCAnYXBwbGljYXRpb24vdm5kLmNyaWNrLmNsaWNrZXInXSxcbiAgICBbJ2NscCcsICdhcHBsaWNhdGlvbi94LW1zY2xpcCddLFxuICAgIFsnY21jJywgJ2FwcGxpY2F0aW9uL3ZuZC5jb3Ntb2NhbGxlciddLFxuICAgIFsnY21kZicsICdjaGVtaWNhbC94LWNtZGYnXSxcbiAgICBbJ2NtbCcsICdjaGVtaWNhbC94LWNtbCddLFxuICAgIFsnY21wJywgJ2FwcGxpY2F0aW9uL3ZuZC55ZWxsb3dyaXZlci1jdXN0b20tbWVudSddLFxuICAgIFsnY214JywgJ2ltYWdlL3gtY214J10sXG4gICAgWydjb2QnLCAnYXBwbGljYXRpb24vdm5kLnJpbS5jb2QnXSxcbiAgICBbJ2NvZmZlZScsICd0ZXh0L2NvZmZlZXNjcmlwdCddLFxuICAgIFsnY29tJywgJ2FwcGxpY2F0aW9uL3gtbXNkb3dubG9hZCddLFxuICAgIFsnY29uZicsICd0ZXh0L3BsYWluJ10sXG4gICAgWydjcGlvJywgJ2FwcGxpY2F0aW9uL3gtY3BpbyddLFxuICAgIFsnY3BwJywgJ3RleHQveC1jJ10sXG4gICAgWydjcHQnLCAnYXBwbGljYXRpb24vbWFjLWNvbXBhY3Rwcm8nXSxcbiAgICBbJ2NyZCcsICdhcHBsaWNhdGlvbi94LW1zY2FyZGZpbGUnXSxcbiAgICBbJ2NybCcsICdhcHBsaWNhdGlvbi9wa2l4LWNybCddLFxuICAgIFsnY3J0JywgJ2FwcGxpY2F0aW9uL3gteDUwOS1jYS1jZXJ0J10sXG4gICAgWydjcngnLCAnYXBwbGljYXRpb24veC1jaHJvbWUtZXh0ZW5zaW9uJ10sXG4gICAgWydjcnlwdG9ub3RlJywgJ2FwcGxpY2F0aW9uL3ZuZC5yaWcuY3J5cHRvbm90ZSddLFxuICAgIFsnY3NoJywgJ2FwcGxpY2F0aW9uL3gtY3NoJ10sXG4gICAgWydjc2wnLCAnYXBwbGljYXRpb24vdm5kLmNpdGF0aW9uc3R5bGVzLnN0eWxlK3htbCddLFxuICAgIFsnY3NtbCcsICdjaGVtaWNhbC94LWNzbWwnXSxcbiAgICBbJ2NzcCcsICdhcHBsaWNhdGlvbi92bmQuY29tbW9uc3BhY2UnXSxcbiAgICBbJ2NzcicsICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nXSxcbiAgICBbJ2NzcycsICd0ZXh0L2NzcyddLFxuICAgIFsnY3N0JywgJ2FwcGxpY2F0aW9uL3gtZGlyZWN0b3InXSxcbiAgICBbJ2NzdicsICd0ZXh0L2NzdiddLFxuICAgIFsnY3UnLCAnYXBwbGljYXRpb24vY3Utc2VlbWUnXSxcbiAgICBbJ2N1cmwnLCAndGV4dC92bmQuY3VybCddLFxuICAgIFsnY3d3JywgJ2FwcGxpY2F0aW9uL3Bycy5jd3cnXSxcbiAgICBbJ2N4dCcsICdhcHBsaWNhdGlvbi94LWRpcmVjdG9yJ10sXG4gICAgWydjeHgnLCAndGV4dC94LWMnXSxcbiAgICBbJ2RhZScsICdtb2RlbC92bmQuY29sbGFkYSt4bWwnXSxcbiAgICBbJ2RhZicsICdhcHBsaWNhdGlvbi92bmQubW9iaXVzLmRhZiddLFxuICAgIFsnZGFydCcsICdhcHBsaWNhdGlvbi92bmQuZGFydCddLFxuICAgIFsnZGF0YWxlc3MnLCAnYXBwbGljYXRpb24vdm5kLmZkc24uc2VlZCddLFxuICAgIFsnZGF2bW91bnQnLCAnYXBwbGljYXRpb24vZGF2bW91bnQreG1sJ10sXG4gICAgWydkYmYnLCAnYXBwbGljYXRpb24vdm5kLmRiZiddLFxuICAgIFsnZGJrJywgJ2FwcGxpY2F0aW9uL2RvY2Jvb2sreG1sJ10sXG4gICAgWydkY3InLCAnYXBwbGljYXRpb24veC1kaXJlY3RvciddLFxuICAgIFsnZGN1cmwnLCAndGV4dC92bmQuY3VybC5kY3VybCddLFxuICAgIFsnZGQyJywgJ2FwcGxpY2F0aW9uL3ZuZC5vbWEuZGQyK3htbCddLFxuICAgIFsnZGRkJywgJ2FwcGxpY2F0aW9uL3ZuZC5mdWppeGVyb3guZGRkJ10sXG4gICAgWydkZGYnLCAnYXBwbGljYXRpb24vdm5kLnN5bmNtbC5kbWRkZit4bWwnXSxcbiAgICBbJ2RkcycsICdpbWFnZS92bmQubXMtZGRzJ10sXG4gICAgWydkZWInLCAnYXBwbGljYXRpb24veC1kZWJpYW4tcGFja2FnZSddLFxuICAgIFsnZGVmJywgJ3RleHQvcGxhaW4nXSxcbiAgICBbJ2RlcGxveScsICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nXSxcbiAgICBbJ2RlcicsICdhcHBsaWNhdGlvbi94LXg1MDktY2EtY2VydCddLFxuICAgIFsnZGZhYycsICdhcHBsaWNhdGlvbi92bmQuZHJlYW1mYWN0b3J5J10sXG4gICAgWydkZ2MnLCAnYXBwbGljYXRpb24veC1kZ2MtY29tcHJlc3NlZCddLFxuICAgIFsnZGljJywgJ3RleHQveC1jJ10sXG4gICAgWydkaXInLCAnYXBwbGljYXRpb24veC1kaXJlY3RvciddLFxuICAgIFsnZGlzJywgJ2FwcGxpY2F0aW9uL3ZuZC5tb2JpdXMuZGlzJ10sXG4gICAgWydkaXNwb3NpdGlvbi1ub3RpZmljYXRpb24nLCAnbWVzc2FnZS9kaXNwb3NpdGlvbi1ub3RpZmljYXRpb24nXSxcbiAgICBbJ2Rpc3QnLCAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJ10sXG4gICAgWydkaXN0eicsICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nXSxcbiAgICBbJ2RqdicsICdpbWFnZS92bmQuZGp2dSddLFxuICAgIFsnZGp2dScsICdpbWFnZS92bmQuZGp2dSddLFxuICAgIFsnZGxsJywgJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSddLFxuICAgIFsnZG1nJywgJ2FwcGxpY2F0aW9uL3gtYXBwbGUtZGlza2ltYWdlJ10sXG4gICAgWydkbW4nLCAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJ10sXG4gICAgWydkbXAnLCAnYXBwbGljYXRpb24vdm5kLnRjcGR1bXAucGNhcCddLFxuICAgIFsnZG1zJywgJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSddLFxuICAgIFsnZG5hJywgJ2FwcGxpY2F0aW9uL3ZuZC5kbmEnXSxcbiAgICBbJ2RvYycsICdhcHBsaWNhdGlvbi9tc3dvcmQnXSxcbiAgICBbJ2RvY20nLCAnYXBwbGljYXRpb24vdm5kLm1zLXdvcmQudGVtcGxhdGUubWFjcm9FbmFibGVkLjEyJ10sXG4gICAgWydkb2N4JywgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmRvY3VtZW50J10sXG4gICAgWydkb3QnLCAnYXBwbGljYXRpb24vbXN3b3JkJ10sXG4gICAgWydkb3RtJywgJ2FwcGxpY2F0aW9uL3ZuZC5tcy13b3JkLnRlbXBsYXRlLm1hY3JvRW5hYmxlZC4xMiddLFxuICAgIFsnZG90eCcsICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC50ZW1wbGF0ZSddLFxuICAgIFsnZHAnLCAnYXBwbGljYXRpb24vdm5kLm9zZ2kuZHAnXSxcbiAgICBbJ2RwZycsICdhcHBsaWNhdGlvbi92bmQuZHBncmFwaCddLFxuICAgIFsnZHJhJywgJ2F1ZGlvL3ZuZC5kcmEnXSxcbiAgICBbJ2RybGUnLCAnaW1hZ2UvZGljb20tcmxlJ10sXG4gICAgWydkc2MnLCAndGV4dC9wcnMubGluZXMudGFnJ10sXG4gICAgWydkc3NjJywgJ2FwcGxpY2F0aW9uL2Rzc2MrZGVyJ10sXG4gICAgWydkdGInLCAnYXBwbGljYXRpb24veC1kdGJvb2sreG1sJ10sXG4gICAgWydkdGQnLCAnYXBwbGljYXRpb24veG1sLWR0ZCddLFxuICAgIFsnZHRzJywgJ2F1ZGlvL3ZuZC5kdHMnXSxcbiAgICBbJ2R0c2hkJywgJ2F1ZGlvL3ZuZC5kdHMuaGQnXSxcbiAgICBbJ2R1bXAnLCAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJ10sXG4gICAgWydkdmInLCAndmlkZW8vdm5kLmR2Yi5maWxlJ10sXG4gICAgWydkdmknLCAnYXBwbGljYXRpb24veC1kdmknXSxcbiAgICBbJ2R3ZCcsICdhcHBsaWNhdGlvbi9hdHNjLWR3ZCt4bWwnXSxcbiAgICBbJ2R3ZicsICdtb2RlbC92bmQuZHdmJ10sXG4gICAgWydkd2cnLCAnaW1hZ2Uvdm5kLmR3ZyddLFxuICAgIFsnZHhmJywgJ2ltYWdlL3ZuZC5keGYnXSxcbiAgICBbJ2R4cCcsICdhcHBsaWNhdGlvbi92bmQuc3BvdGZpcmUuZHhwJ10sXG4gICAgWydkeHInLCAnYXBwbGljYXRpb24veC1kaXJlY3RvciddLFxuICAgIFsnZWFyJywgJ2FwcGxpY2F0aW9uL2phdmEtYXJjaGl2ZSddLFxuICAgIFsnZWNlbHA0ODAwJywgJ2F1ZGlvL3ZuZC5udWVyYS5lY2VscDQ4MDAnXSxcbiAgICBbJ2VjZWxwNzQ3MCcsICdhdWRpby92bmQubnVlcmEuZWNlbHA3NDcwJ10sXG4gICAgWydlY2VscDk2MDAnLCAnYXVkaW8vdm5kLm51ZXJhLmVjZWxwOTYwMCddLFxuICAgIFsnZWNtYScsICdhcHBsaWNhdGlvbi9lY21hc2NyaXB0J10sXG4gICAgWydlZG0nLCAnYXBwbGljYXRpb24vdm5kLm5vdmFkaWdtLmVkbSddLFxuICAgIFsnZWR4JywgJ2FwcGxpY2F0aW9uL3ZuZC5ub3ZhZGlnbS5lZHgnXSxcbiAgICBbJ2VmaWYnLCAnYXBwbGljYXRpb24vdm5kLnBpY3NlbCddLFxuICAgIFsnZWk2JywgJ2FwcGxpY2F0aW9uL3ZuZC5wZy5vc2FzbGknXSxcbiAgICBbJ2VsYycsICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nXSxcbiAgICBbJ2VtZicsICdpbWFnZS9lbWYnXSxcbiAgICBbJ2VtbCcsICdtZXNzYWdlL3JmYzgyMiddLFxuICAgIFsnZW1tYScsICdhcHBsaWNhdGlvbi9lbW1hK3htbCddLFxuICAgIFsnZW1vdGlvbm1sJywgJ2FwcGxpY2F0aW9uL2Vtb3Rpb25tbCt4bWwnXSxcbiAgICBbJ2VteicsICdhcHBsaWNhdGlvbi94LW1zbWV0YWZpbGUnXSxcbiAgICBbJ2VvbCcsICdhdWRpby92bmQuZGlnaXRhbC13aW5kcyddLFxuICAgIFsnZW90JywgJ2FwcGxpY2F0aW9uL3ZuZC5tcy1mb250b2JqZWN0J10sXG4gICAgWydlcHMnLCAnYXBwbGljYXRpb24vcG9zdHNjcmlwdCddLFxuICAgIFsnZXB1YicsICdhcHBsaWNhdGlvbi9lcHViK3ppcCddLFxuICAgIFsnZXMnLCAnYXBwbGljYXRpb24vZWNtYXNjcmlwdCddLFxuICAgIFsnZXMzJywgJ2FwcGxpY2F0aW9uL3ZuZC5lc3ppZ25vMyt4bWwnXSxcbiAgICBbJ2VzYScsICdhcHBsaWNhdGlvbi92bmQub3NnaS5zdWJzeXN0ZW0nXSxcbiAgICBbJ2VzZicsICdhcHBsaWNhdGlvbi92bmQuZXBzb24uZXNmJ10sXG4gICAgWydldDMnLCAnYXBwbGljYXRpb24vdm5kLmVzemlnbm8zK3htbCddLFxuICAgIFsnZXR4JywgJ3RleHQveC1zZXRleHQnXSxcbiAgICBbJ2V2YScsICdhcHBsaWNhdGlvbi94LWV2YSddLFxuICAgIFsnZXZ5JywgJ2FwcGxpY2F0aW9uL3gtZW52b3knXSxcbiAgICBbJ2V4ZScsICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nXSxcbiAgICBbJ2V4aScsICdhcHBsaWNhdGlvbi9leGknXSxcbiAgICBbJ2V4cCcsICdhcHBsaWNhdGlvbi9leHByZXNzJ10sXG4gICAgWydleHInLCAnaW1hZ2UvYWNlcyddLFxuICAgIFsnZXh0JywgJ2FwcGxpY2F0aW9uL3ZuZC5ub3ZhZGlnbS5leHQnXSxcbiAgICBbJ2V6JywgJ2FwcGxpY2F0aW9uL2FuZHJldy1pbnNldCddLFxuICAgIFsnZXoyJywgJ2FwcGxpY2F0aW9uL3ZuZC5lenBpeC1hbGJ1bSddLFxuICAgIFsnZXozJywgJ2FwcGxpY2F0aW9uL3ZuZC5lenBpeC1wYWNrYWdlJ10sXG4gICAgWydmJywgJ3RleHQveC1mb3J0cmFuJ10sXG4gICAgWydmNHYnLCAndmlkZW8vbXA0J10sXG4gICAgWydmNzcnLCAndGV4dC94LWZvcnRyYW4nXSxcbiAgICBbJ2Y5MCcsICd0ZXh0L3gtZm9ydHJhbiddLFxuICAgIFsnZmJzJywgJ2ltYWdlL3ZuZC5mYXN0Ymlkc2hlZXQnXSxcbiAgICBbJ2ZjZHQnLCAnYXBwbGljYXRpb24vdm5kLmFkb2JlLmZvcm1zY2VudHJhbC5mY2R0J10sXG4gICAgWydmY3MnLCAnYXBwbGljYXRpb24vdm5kLmlzYWMuZmNzJ10sXG4gICAgWydmZGYnLCAnYXBwbGljYXRpb24vdm5kLmZkZiddLFxuICAgIFsnZmR0JywgJ2FwcGxpY2F0aW9uL2ZkdCt4bWwnXSxcbiAgICBbJ2ZlX2xhdW5jaCcsICdhcHBsaWNhdGlvbi92bmQuZGVub3ZvLmZjc2VsYXlvdXQtbGluayddLFxuICAgIFsnZmc1JywgJ2FwcGxpY2F0aW9uL3ZuZC5mdWppdHN1Lm9hc3lzZ3AnXSxcbiAgICBbJ2ZnZCcsICdhcHBsaWNhdGlvbi94LWRpcmVjdG9yJ10sXG4gICAgWydmaCcsICdpbWFnZS94LWZyZWVoYW5kJ10sXG4gICAgWydmaDQnLCAnaW1hZ2UveC1mcmVlaGFuZCddLFxuICAgIFsnZmg1JywgJ2ltYWdlL3gtZnJlZWhhbmQnXSxcbiAgICBbJ2ZoNycsICdpbWFnZS94LWZyZWVoYW5kJ10sXG4gICAgWydmaGMnLCAnaW1hZ2UveC1mcmVlaGFuZCddLFxuICAgIFsnZmlnJywgJ2FwcGxpY2F0aW9uL3gteGZpZyddLFxuICAgIFsnZml0cycsICdpbWFnZS9maXRzJ10sXG4gICAgWydmbGFjJywgJ2F1ZGlvL3gtZmxhYyddLFxuICAgIFsnZmxpJywgJ3ZpZGVvL3gtZmxpJ10sXG4gICAgWydmbG8nLCAnYXBwbGljYXRpb24vdm5kLm1pY3JvZ3JhZnguZmxvJ10sXG4gICAgWydmbHYnLCAndmlkZW8veC1mbHYnXSxcbiAgICBbJ2ZsdycsICdhcHBsaWNhdGlvbi92bmQua2RlLmtpdmlvJ10sXG4gICAgWydmbHgnLCAndGV4dC92bmQuZm1pLmZsZXhzdG9yJ10sXG4gICAgWydmbHknLCAndGV4dC92bmQuZmx5J10sXG4gICAgWydmbScsICdhcHBsaWNhdGlvbi92bmQuZnJhbWVtYWtlciddLFxuICAgIFsnZm5jJywgJ2FwcGxpY2F0aW9uL3ZuZC5mcm9nYW5zLmZuYyddLFxuICAgIFsnZm8nLCAnYXBwbGljYXRpb24vdm5kLnNvZnR3YXJlNjAyLmZpbGxlci5mb3JtK3htbCddLFxuICAgIFsnZm9yJywgJ3RleHQveC1mb3J0cmFuJ10sXG4gICAgWydmcHgnLCAnaW1hZ2Uvdm5kLmZweCddLFxuICAgIFsnZnJhbWUnLCAnYXBwbGljYXRpb24vdm5kLmZyYW1lbWFrZXInXSxcbiAgICBbJ2ZzYycsICdhcHBsaWNhdGlvbi92bmQuZnNjLndlYmxhdW5jaCddLFxuICAgIFsnZnN0JywgJ2ltYWdlL3ZuZC5mc3QnXSxcbiAgICBbJ2Z0YycsICdhcHBsaWNhdGlvbi92bmQuZmx1eHRpbWUuY2xpcCddLFxuICAgIFsnZnRpJywgJ2FwcGxpY2F0aW9uL3ZuZC5hbnNlci13ZWItZnVuZHMtdHJhbnNmZXItaW5pdGlhdGlvbiddLFxuICAgIFsnZnZ0JywgJ3ZpZGVvL3ZuZC5mdnQnXSxcbiAgICBbJ2Z4cCcsICdhcHBsaWNhdGlvbi92bmQuYWRvYmUuZnhwJ10sXG4gICAgWydmeHBsJywgJ2FwcGxpY2F0aW9uL3ZuZC5hZG9iZS5meHAnXSxcbiAgICBbJ2Z6cycsICdhcHBsaWNhdGlvbi92bmQuZnV6enlzaGVldCddLFxuICAgIFsnZzJ3JywgJ2FwcGxpY2F0aW9uL3ZuZC5nZW9wbGFuJ10sXG4gICAgWydnMycsICdpbWFnZS9nM2ZheCddLFxuICAgIFsnZzN3JywgJ2FwcGxpY2F0aW9uL3ZuZC5nZW9zcGFjZSddLFxuICAgIFsnZ2FjJywgJ2FwcGxpY2F0aW9uL3ZuZC5ncm9vdmUtYWNjb3VudCddLFxuICAgIFsnZ2FtJywgJ2FwcGxpY2F0aW9uL3gtdGFkcyddLFxuICAgIFsnZ2JyJywgJ2FwcGxpY2F0aW9uL3Jwa2ktZ2hvc3RidXN0ZXJzJ10sXG4gICAgWydnY2EnLCAnYXBwbGljYXRpb24veC1nY2EtY29tcHJlc3NlZCddLFxuICAgIFsnZ2RsJywgJ21vZGVsL3ZuZC5nZGwnXSxcbiAgICBbJ2dkb2MnLCAnYXBwbGljYXRpb24vdm5kLmdvb2dsZS1hcHBzLmRvY3VtZW50J10sXG4gICAgWydnZW8nLCAnYXBwbGljYXRpb24vdm5kLmR5bmFnZW8nXSxcbiAgICBbJ2dlb2pzb24nLCAnYXBwbGljYXRpb24vZ2VvK2pzb24nXSxcbiAgICBbJ2dleCcsICdhcHBsaWNhdGlvbi92bmQuZ2VvbWV0cnktZXhwbG9yZXInXSxcbiAgICBbJ2dnYicsICdhcHBsaWNhdGlvbi92bmQuZ2VvZ2VicmEuZmlsZSddLFxuICAgIFsnZ2d0JywgJ2FwcGxpY2F0aW9uL3ZuZC5nZW9nZWJyYS50b29sJ10sXG4gICAgWydnaGYnLCAnYXBwbGljYXRpb24vdm5kLmdyb292ZS1oZWxwJ10sXG4gICAgWydnaWYnLCAnaW1hZ2UvZ2lmJ10sXG4gICAgWydnaW0nLCAnYXBwbGljYXRpb24vdm5kLmdyb292ZS1pZGVudGl0eS1tZXNzYWdlJ10sXG4gICAgWydnbGInLCAnbW9kZWwvZ2x0Zi1iaW5hcnknXSxcbiAgICBbJ2dsdGYnLCAnbW9kZWwvZ2x0Zitqc29uJ10sXG4gICAgWydnbWwnLCAnYXBwbGljYXRpb24vZ21sK3htbCddLFxuICAgIFsnZ214JywgJ2FwcGxpY2F0aW9uL3ZuZC5nbXgnXSxcbiAgICBbJ2dudW1lcmljJywgJ2FwcGxpY2F0aW9uL3gtZ251bWVyaWMnXSxcbiAgICBbJ2dwZycsICdhcHBsaWNhdGlvbi9ncGcta2V5cyddLFxuICAgIFsnZ3BoJywgJ2FwcGxpY2F0aW9uL3ZuZC5mbG9ncmFwaGl0J10sXG4gICAgWydncHgnLCAnYXBwbGljYXRpb24vZ3B4K3htbCddLFxuICAgIFsnZ3FmJywgJ2FwcGxpY2F0aW9uL3ZuZC5ncmFmZXEnXSxcbiAgICBbJ2dxcycsICdhcHBsaWNhdGlvbi92bmQuZ3JhZmVxJ10sXG4gICAgWydncmFtJywgJ2FwcGxpY2F0aW9uL3NyZ3MnXSxcbiAgICBbJ2dyYW1wcycsICdhcHBsaWNhdGlvbi94LWdyYW1wcy14bWwnXSxcbiAgICBbJ2dyZScsICdhcHBsaWNhdGlvbi92bmQuZ2VvbWV0cnktZXhwbG9yZXInXSxcbiAgICBbJ2dydicsICdhcHBsaWNhdGlvbi92bmQuZ3Jvb3ZlLWluamVjdG9yJ10sXG4gICAgWydncnhtbCcsICdhcHBsaWNhdGlvbi9zcmdzK3htbCddLFxuICAgIFsnZ3NmJywgJ2FwcGxpY2F0aW9uL3gtZm9udC1naG9zdHNjcmlwdCddLFxuICAgIFsnZ3NoZWV0JywgJ2FwcGxpY2F0aW9uL3ZuZC5nb29nbGUtYXBwcy5zcHJlYWRzaGVldCddLFxuICAgIFsnZ3NsaWRlcycsICdhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWFwcHMucHJlc2VudGF0aW9uJ10sXG4gICAgWydndGFyJywgJ2FwcGxpY2F0aW9uL3gtZ3RhciddLFxuICAgIFsnZ3RtJywgJ2FwcGxpY2F0aW9uL3ZuZC5ncm9vdmUtdG9vbC1tZXNzYWdlJ10sXG4gICAgWydndHcnLCAnbW9kZWwvdm5kLmd0dyddLFxuICAgIFsnZ3YnLCAndGV4dC92bmQuZ3JhcGh2aXonXSxcbiAgICBbJ2d4ZicsICdhcHBsaWNhdGlvbi9neGYnXSxcbiAgICBbJ2d4dCcsICdhcHBsaWNhdGlvbi92bmQuZ2VvbmV4dCddLFxuICAgIFsnZ3onLCAnYXBwbGljYXRpb24vZ3ppcCddLFxuICAgIFsnZ3ppcCcsICdhcHBsaWNhdGlvbi9nemlwJ10sXG4gICAgWydoJywgJ3RleHQveC1jJ10sXG4gICAgWydoMjYxJywgJ3ZpZGVvL2gyNjEnXSxcbiAgICBbJ2gyNjMnLCAndmlkZW8vaDI2MyddLFxuICAgIFsnaDI2NCcsICd2aWRlby9oMjY0J10sXG4gICAgWydoYWwnLCAnYXBwbGljYXRpb24vdm5kLmhhbCt4bWwnXSxcbiAgICBbJ2hiY2knLCAnYXBwbGljYXRpb24vdm5kLmhiY2knXSxcbiAgICBbJ2hicycsICd0ZXh0L3gtaGFuZGxlYmFycy10ZW1wbGF0ZSddLFxuICAgIFsnaGRkJywgJ2FwcGxpY2F0aW9uL3gtdmlydHVhbGJveC1oZGQnXSxcbiAgICBbJ2hkZicsICdhcHBsaWNhdGlvbi94LWhkZiddLFxuICAgIFsnaGVpYycsICdpbWFnZS9oZWljJ10sXG4gICAgWydoZWljcycsICdpbWFnZS9oZWljLXNlcXVlbmNlJ10sXG4gICAgWydoZWlmJywgJ2ltYWdlL2hlaWYnXSxcbiAgICBbJ2hlaWZzJywgJ2ltYWdlL2hlaWYtc2VxdWVuY2UnXSxcbiAgICBbJ2hlajInLCAnaW1hZ2UvaGVqMmsnXSxcbiAgICBbJ2hlbGQnLCAnYXBwbGljYXRpb24vYXRzYy1oZWxkK3htbCddLFxuICAgIFsnaGgnLCAndGV4dC94LWMnXSxcbiAgICBbJ2hqc29uJywgJ2FwcGxpY2F0aW9uL2hqc29uJ10sXG4gICAgWydobHAnLCAnYXBwbGljYXRpb24vd2luaGxwJ10sXG4gICAgWydocGdsJywgJ2FwcGxpY2F0aW9uL3ZuZC5ocC1ocGdsJ10sXG4gICAgWydocGlkJywgJ2FwcGxpY2F0aW9uL3ZuZC5ocC1ocGlkJ10sXG4gICAgWydocHMnLCAnYXBwbGljYXRpb24vdm5kLmhwLWhwcyddLFxuICAgIFsnaHF4JywgJ2FwcGxpY2F0aW9uL21hYy1iaW5oZXg0MCddLFxuICAgIFsnaHNqMicsICdpbWFnZS9oc2oyJ10sXG4gICAgWydodGMnLCAndGV4dC94LWNvbXBvbmVudCddLFxuICAgIFsnaHRrZScsICdhcHBsaWNhdGlvbi92bmQua2VuYW1lYWFwcCddLFxuICAgIFsnaHRtJywgJ3RleHQvaHRtbCddLFxuICAgIFsnaHRtbCcsICd0ZXh0L2h0bWwnXSxcbiAgICBbJ2h2ZCcsICdhcHBsaWNhdGlvbi92bmQueWFtYWhhLmh2LWRpYyddLFxuICAgIFsnaHZwJywgJ2FwcGxpY2F0aW9uL3ZuZC55YW1haGEuaHYtdm9pY2UnXSxcbiAgICBbJ2h2cycsICdhcHBsaWNhdGlvbi92bmQueWFtYWhhLmh2LXNjcmlwdCddLFxuICAgIFsnaTJnJywgJ2FwcGxpY2F0aW9uL3ZuZC5pbnRlcmdlbyddLFxuICAgIFsnaWNjJywgJ2FwcGxpY2F0aW9uL3ZuZC5pY2Nwcm9maWxlJ10sXG4gICAgWydpY2UnLCAneC1jb25mZXJlbmNlL3gtY29vbHRhbGsnXSxcbiAgICBbJ2ljbScsICdhcHBsaWNhdGlvbi92bmQuaWNjcHJvZmlsZSddLFxuICAgIFsnaWNvJywgJ2ltYWdlL3gtaWNvbiddLFxuICAgIFsnaWNzJywgJ3RleHQvY2FsZW5kYXInXSxcbiAgICBbJ2llZicsICdpbWFnZS9pZWYnXSxcbiAgICBbJ2lmYicsICd0ZXh0L2NhbGVuZGFyJ10sXG4gICAgWydpZm0nLCAnYXBwbGljYXRpb24vdm5kLnNoYW5hLmluZm9ybWVkLmZvcm1kYXRhJ10sXG4gICAgWydpZ2VzJywgJ21vZGVsL2lnZXMnXSxcbiAgICBbJ2lnbCcsICdhcHBsaWNhdGlvbi92bmQuaWdsb2FkZXInXSxcbiAgICBbJ2lnbScsICdhcHBsaWNhdGlvbi92bmQuaW5zb3JzLmlnbSddLFxuICAgIFsnaWdzJywgJ21vZGVsL2lnZXMnXSxcbiAgICBbJ2lneCcsICdhcHBsaWNhdGlvbi92bmQubWljcm9ncmFmeC5pZ3gnXSxcbiAgICBbJ2lpZicsICdhcHBsaWNhdGlvbi92bmQuc2hhbmEuaW5mb3JtZWQuaW50ZXJjaGFuZ2UnXSxcbiAgICBbJ2ltZycsICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nXSxcbiAgICBbJ2ltcCcsICdhcHBsaWNhdGlvbi92bmQuYWNjcGFjLnNpbXBseS5pbXAnXSxcbiAgICBbJ2ltcycsICdhcHBsaWNhdGlvbi92bmQubXMtaW1zJ10sXG4gICAgWydpbicsICd0ZXh0L3BsYWluJ10sXG4gICAgWydpbmknLCAndGV4dC9wbGFpbiddLFxuICAgIFsnaW5rJywgJ2FwcGxpY2F0aW9uL2lua21sK3htbCddLFxuICAgIFsnaW5rbWwnLCAnYXBwbGljYXRpb24vaW5rbWwreG1sJ10sXG4gICAgWydpbnN0YWxsJywgJ2FwcGxpY2F0aW9uL3gtaW5zdGFsbC1pbnN0cnVjdGlvbnMnXSxcbiAgICBbJ2lvdGEnLCAnYXBwbGljYXRpb24vdm5kLmFzdHJhZWEtc29mdHdhcmUuaW90YSddLFxuICAgIFsnaXBmaXgnLCAnYXBwbGljYXRpb24vaXBmaXgnXSxcbiAgICBbJ2lwaycsICdhcHBsaWNhdGlvbi92bmQuc2hhbmEuaW5mb3JtZWQucGFja2FnZSddLFxuICAgIFsnaXJtJywgJ2FwcGxpY2F0aW9uL3ZuZC5pYm0ucmlnaHRzLW1hbmFnZW1lbnQnXSxcbiAgICBbJ2lycCcsICdhcHBsaWNhdGlvbi92bmQuaXJlcG9zaXRvcnkucGFja2FnZSt4bWwnXSxcbiAgICBbJ2lzbycsICdhcHBsaWNhdGlvbi94LWlzbzk2NjAtaW1hZ2UnXSxcbiAgICBbJ2l0cCcsICdhcHBsaWNhdGlvbi92bmQuc2hhbmEuaW5mb3JtZWQuZm9ybXRlbXBsYXRlJ10sXG4gICAgWydpdHMnLCAnYXBwbGljYXRpb24vaXRzK3htbCddLFxuICAgIFsnaXZwJywgJ2FwcGxpY2F0aW9uL3ZuZC5pbW1lcnZpc2lvbi1pdnAnXSxcbiAgICBbJ2l2dScsICdhcHBsaWNhdGlvbi92bmQuaW1tZXJ2aXNpb24taXZ1J10sXG4gICAgWydqYWQnLCAndGV4dC92bmQuc3VuLmoybWUuYXBwLWRlc2NyaXB0b3InXSxcbiAgICBbJ2phZGUnLCAndGV4dC9qYWRlJ10sXG4gICAgWydqYW0nLCAnYXBwbGljYXRpb24vdm5kLmphbSddLFxuICAgIFsnamFyJywgJ2FwcGxpY2F0aW9uL2phdmEtYXJjaGl2ZSddLFxuICAgIFsnamFyZGlmZicsICdhcHBsaWNhdGlvbi94LWphdmEtYXJjaGl2ZS1kaWZmJ10sXG4gICAgWydqYXZhJywgJ3RleHQveC1qYXZhLXNvdXJjZSddLFxuICAgIFsnamhjJywgJ2ltYWdlL2pwaGMnXSxcbiAgICBbJ2ppc3AnLCAnYXBwbGljYXRpb24vdm5kLmppc3AnXSxcbiAgICBbJ2pscycsICdpbWFnZS9qbHMnXSxcbiAgICBbJ2psdCcsICdhcHBsaWNhdGlvbi92bmQuaHAtamx5dCddLFxuICAgIFsnam5nJywgJ2ltYWdlL3gtam5nJ10sXG4gICAgWydqbmxwJywgJ2FwcGxpY2F0aW9uL3gtamF2YS1qbmxwLWZpbGUnXSxcbiAgICBbJ2pvZGEnLCAnYXBwbGljYXRpb24vdm5kLmpvb3N0LmpvZGEtYXJjaGl2ZSddLFxuICAgIFsnanAyJywgJ2ltYWdlL2pwMiddLFxuICAgIFsnanBlJywgJ2ltYWdlL2pwZWcnXSxcbiAgICBbJ2pwZWcnLCAnaW1hZ2UvanBlZyddLFxuICAgIFsnanBmJywgJ2ltYWdlL2pweCddLFxuICAgIFsnanBnJywgJ2ltYWdlL2pwZWcnXSxcbiAgICBbJ2pwZzInLCAnaW1hZ2UvanAyJ10sXG4gICAgWydqcGdtJywgJ3ZpZGVvL2pwbSddLFxuICAgIFsnanBndicsICd2aWRlby9qcGVnJ10sXG4gICAgWydqcGgnLCAnaW1hZ2UvanBoJ10sXG4gICAgWydqcG0nLCAndmlkZW8vanBtJ10sXG4gICAgWydqcHgnLCAnaW1hZ2UvanB4J10sXG4gICAgWydqcycsICdhcHBsaWNhdGlvbi9qYXZhc2NyaXB0J10sXG4gICAgWydqc29uJywgJ2FwcGxpY2F0aW9uL2pzb24nXSxcbiAgICBbJ2pzb241JywgJ2FwcGxpY2F0aW9uL2pzb241J10sXG4gICAgWydqc29ubGQnLCAnYXBwbGljYXRpb24vbGQranNvbiddLFxuICAgIC8vIGh0dHBzOi8vanNvbmxpbmVzLm9yZy9cbiAgICBbJ2pzb25sJywgJ2FwcGxpY2F0aW9uL2pzb25sJ10sXG4gICAgWydqc29ubWwnLCAnYXBwbGljYXRpb24vanNvbm1sK2pzb24nXSxcbiAgICBbJ2pzeCcsICd0ZXh0L2pzeCddLFxuICAgIFsnanhyJywgJ2ltYWdlL2p4ciddLFxuICAgIFsnanhyYScsICdpbWFnZS9qeHJhJ10sXG4gICAgWydqeHJzJywgJ2ltYWdlL2p4cnMnXSxcbiAgICBbJ2p4cycsICdpbWFnZS9qeHMnXSxcbiAgICBbJ2p4c2MnLCAnaW1hZ2UvanhzYyddLFxuICAgIFsnanhzaScsICdpbWFnZS9qeHNpJ10sXG4gICAgWydqeHNzJywgJ2ltYWdlL2p4c3MnXSxcbiAgICBbJ2thcicsICdhdWRpby9taWRpJ10sXG4gICAgWydrYXJib24nLCAnYXBwbGljYXRpb24vdm5kLmtkZS5rYXJib24nXSxcbiAgICBbJ2tkYicsICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nXSxcbiAgICBbJ2tkYngnLCAnYXBwbGljYXRpb24veC1rZWVwYXNzMiddLFxuICAgIFsna2V5JywgJ2FwcGxpY2F0aW9uL3gtaXdvcmsta2V5bm90ZS1zZmZrZXknXSxcbiAgICBbJ2tmbycsICdhcHBsaWNhdGlvbi92bmQua2RlLmtmb3JtdWxhJ10sXG4gICAgWydraWEnLCAnYXBwbGljYXRpb24vdm5kLmtpZHNwaXJhdGlvbiddLFxuICAgIFsna21sJywgJ2FwcGxpY2F0aW9uL3ZuZC5nb29nbGUtZWFydGgua21sK3htbCddLFxuICAgIFsna216JywgJ2FwcGxpY2F0aW9uL3ZuZC5nb29nbGUtZWFydGgua216J10sXG4gICAgWydrbmUnLCAnYXBwbGljYXRpb24vdm5kLmtpbmFyJ10sXG4gICAgWydrbnAnLCAnYXBwbGljYXRpb24vdm5kLmtpbmFyJ10sXG4gICAgWydrb24nLCAnYXBwbGljYXRpb24vdm5kLmtkZS5rb250b3VyJ10sXG4gICAgWydrcHInLCAnYXBwbGljYXRpb24vdm5kLmtkZS5rcHJlc2VudGVyJ10sXG4gICAgWydrcHQnLCAnYXBwbGljYXRpb24vdm5kLmtkZS5rcHJlc2VudGVyJ10sXG4gICAgWydrcHh4JywgJ2FwcGxpY2F0aW9uL3ZuZC5kcy1rZXlwb2ludCddLFxuICAgIFsna3NwJywgJ2FwcGxpY2F0aW9uL3ZuZC5rZGUua3NwcmVhZCddLFxuICAgIFsna3RyJywgJ2FwcGxpY2F0aW9uL3ZuZC5rYWhvb3R6J10sXG4gICAgWydrdHgnLCAnaW1hZ2Uva3R4J10sXG4gICAgWydrdHgyJywgJ2ltYWdlL2t0eDInXSxcbiAgICBbJ2t0eicsICdhcHBsaWNhdGlvbi92bmQua2Fob290eiddLFxuICAgIFsna3dkJywgJ2FwcGxpY2F0aW9uL3ZuZC5rZGUua3dvcmQnXSxcbiAgICBbJ2t3dCcsICdhcHBsaWNhdGlvbi92bmQua2RlLmt3b3JkJ10sXG4gICAgWydsYXN4bWwnLCAnYXBwbGljYXRpb24vdm5kLmxhcy5sYXMreG1sJ10sXG4gICAgWydsYXRleCcsICdhcHBsaWNhdGlvbi94LWxhdGV4J10sXG4gICAgWydsYmQnLCAnYXBwbGljYXRpb24vdm5kLmxsYW1hZ3JhcGhpY3MubGlmZS1iYWxhbmNlLmRlc2t0b3AnXSxcbiAgICBbJ2xiZScsICdhcHBsaWNhdGlvbi92bmQubGxhbWFncmFwaGljcy5saWZlLWJhbGFuY2UuZXhjaGFuZ2UreG1sJ10sXG4gICAgWydsZXMnLCAnYXBwbGljYXRpb24vdm5kLmhoZS5sZXNzb24tcGxheWVyJ10sXG4gICAgWydsZXNzJywgJ3RleHQvbGVzcyddLFxuICAgIFsnbGdyJywgJ2FwcGxpY2F0aW9uL2xncit4bWwnXSxcbiAgICBbJ2xoYScsICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nXSxcbiAgICBbJ2xpbms2NicsICdhcHBsaWNhdGlvbi92bmQucm91dGU2Ni5saW5rNjYreG1sJ10sXG4gICAgWydsaXN0JywgJ3RleHQvcGxhaW4nXSxcbiAgICBbJ2xpc3QzODIwJywgJ2FwcGxpY2F0aW9uL3ZuZC5pYm0ubW9kY2FwJ10sXG4gICAgWydsaXN0YWZwJywgJ2FwcGxpY2F0aW9uL3ZuZC5pYm0ubW9kY2FwJ10sXG4gICAgWydsaXRjb2ZmZWUnLCAndGV4dC9jb2ZmZWVzY3JpcHQnXSxcbiAgICBbJ2xuaycsICdhcHBsaWNhdGlvbi94LW1zLXNob3J0Y3V0J10sXG4gICAgWydsb2cnLCAndGV4dC9wbGFpbiddLFxuICAgIFsnbG9zdHhtbCcsICdhcHBsaWNhdGlvbi9sb3N0K3htbCddLFxuICAgIFsnbHJmJywgJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSddLFxuICAgIFsnbHJtJywgJ2FwcGxpY2F0aW9uL3ZuZC5tcy1scm0nXSxcbiAgICBbJ2x0ZicsICdhcHBsaWNhdGlvbi92bmQuZnJvZ2Fucy5sdGYnXSxcbiAgICBbJ2x1YScsICd0ZXh0L3gtbHVhJ10sXG4gICAgWydsdWFjJywgJ2FwcGxpY2F0aW9uL3gtbHVhLWJ5dGVjb2RlJ10sXG4gICAgWydsdnAnLCAnYXVkaW8vdm5kLmx1Y2VudC52b2ljZSddLFxuICAgIFsnbHdwJywgJ2FwcGxpY2F0aW9uL3ZuZC5sb3R1cy13b3JkcHJvJ10sXG4gICAgWydsemgnLCAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJ10sXG4gICAgWydtMXYnLCAndmlkZW8vbXBlZyddLFxuICAgIFsnbTJhJywgJ2F1ZGlvL21wZWcnXSxcbiAgICBbJ20ydicsICd2aWRlby9tcGVnJ10sXG4gICAgWydtM2EnLCAnYXVkaW8vbXBlZyddLFxuICAgIFsnbTN1JywgJ3RleHQvcGxhaW4nXSxcbiAgICBbJ20zdTgnLCAnYXBwbGljYXRpb24vdm5kLmFwcGxlLm1wZWd1cmwnXSxcbiAgICBbJ200YScsICdhdWRpby94LW00YSddLFxuICAgIFsnbTRwJywgJ2FwcGxpY2F0aW9uL21wNCddLFxuICAgIFsnbTRzJywgJ3ZpZGVvL2lzby5zZWdtZW50J10sXG4gICAgWydtNHUnLCAnYXBwbGljYXRpb24vdm5kLm1wZWd1cmwnXSxcbiAgICBbJ200dicsICd2aWRlby94LW00diddLFxuICAgIFsnbTEzJywgJ2FwcGxpY2F0aW9uL3gtbXNtZWRpYXZpZXcnXSxcbiAgICBbJ20xNCcsICdhcHBsaWNhdGlvbi94LW1zbWVkaWF2aWV3J10sXG4gICAgWydtMjEnLCAnYXBwbGljYXRpb24vbXAyMSddLFxuICAgIFsnbWEnLCAnYXBwbGljYXRpb24vbWF0aGVtYXRpY2EnXSxcbiAgICBbJ21hZHMnLCAnYXBwbGljYXRpb24vbWFkcyt4bWwnXSxcbiAgICBbJ21hZWknLCAnYXBwbGljYXRpb24vbW10LWFlaSt4bWwnXSxcbiAgICBbJ21hZycsICdhcHBsaWNhdGlvbi92bmQuZWNvd2luLmNoYXJ0J10sXG4gICAgWydtYWtlcicsICdhcHBsaWNhdGlvbi92bmQuZnJhbWVtYWtlciddLFxuICAgIFsnbWFuJywgJ3RleHQvdHJvZmYnXSxcbiAgICBbJ21hbmlmZXN0JywgJ3RleHQvY2FjaGUtbWFuaWZlc3QnXSxcbiAgICBbJ21hcCcsICdhcHBsaWNhdGlvbi9qc29uJ10sXG4gICAgWydtYXInLCAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJ10sXG4gICAgWydtYXJrZG93bicsICd0ZXh0L21hcmtkb3duJ10sXG4gICAgWydtYXRobWwnLCAnYXBwbGljYXRpb24vbWF0aG1sK3htbCddLFxuICAgIFsnbWInLCAnYXBwbGljYXRpb24vbWF0aGVtYXRpY2EnXSxcbiAgICBbJ21iaycsICdhcHBsaWNhdGlvbi92bmQubW9iaXVzLm1iayddLFxuICAgIFsnbWJveCcsICdhcHBsaWNhdGlvbi9tYm94J10sXG4gICAgWydtYzEnLCAnYXBwbGljYXRpb24vdm5kLm1lZGNhbGNkYXRhJ10sXG4gICAgWydtY2QnLCAnYXBwbGljYXRpb24vdm5kLm1jZCddLFxuICAgIFsnbWN1cmwnLCAndGV4dC92bmQuY3VybC5tY3VybCddLFxuICAgIFsnbWQnLCAndGV4dC9tYXJrZG93biddLFxuICAgIFsnbWRiJywgJ2FwcGxpY2F0aW9uL3gtbXNhY2Nlc3MnXSxcbiAgICBbJ21kaScsICdpbWFnZS92bmQubXMtbW9kaSddLFxuICAgIFsnbWR4JywgJ3RleHQvbWR4J10sXG4gICAgWydtZScsICd0ZXh0L3Ryb2ZmJ10sXG4gICAgWydtZXNoJywgJ21vZGVsL21lc2gnXSxcbiAgICBbJ21ldGE0JywgJ2FwcGxpY2F0aW9uL21ldGFsaW5rNCt4bWwnXSxcbiAgICBbJ21ldGFsaW5rJywgJ2FwcGxpY2F0aW9uL21ldGFsaW5rK3htbCddLFxuICAgIFsnbWV0cycsICdhcHBsaWNhdGlvbi9tZXRzK3htbCddLFxuICAgIFsnbWZtJywgJ2FwcGxpY2F0aW9uL3ZuZC5tZm1wJ10sXG4gICAgWydtZnQnLCAnYXBwbGljYXRpb24vcnBraS1tYW5pZmVzdCddLFxuICAgIFsnbWdwJywgJ2FwcGxpY2F0aW9uL3ZuZC5vc2dlby5tYXBndWlkZS5wYWNrYWdlJ10sXG4gICAgWydtZ3onLCAnYXBwbGljYXRpb24vdm5kLnByb3RldXMubWFnYXppbmUnXSxcbiAgICBbJ21pZCcsICdhdWRpby9taWRpJ10sXG4gICAgWydtaWRpJywgJ2F1ZGlvL21pZGknXSxcbiAgICBbJ21pZScsICdhcHBsaWNhdGlvbi94LW1pZSddLFxuICAgIFsnbWlmJywgJ2FwcGxpY2F0aW9uL3ZuZC5taWYnXSxcbiAgICBbJ21pbWUnLCAnbWVzc2FnZS9yZmM4MjInXSxcbiAgICBbJ21qMicsICd2aWRlby9tajInXSxcbiAgICBbJ21qcDInLCAndmlkZW8vbWoyJ10sXG4gICAgWydtanMnLCAnYXBwbGljYXRpb24vamF2YXNjcmlwdCddLFxuICAgIFsnbWszZCcsICd2aWRlby94LW1hdHJvc2thJ10sXG4gICAgWydta2EnLCAnYXVkaW8veC1tYXRyb3NrYSddLFxuICAgIFsnbWtkJywgJ3RleHQveC1tYXJrZG93biddLFxuICAgIFsnbWtzJywgJ3ZpZGVvL3gtbWF0cm9za2EnXSxcbiAgICBbJ21rdicsICd2aWRlby94LW1hdHJvc2thJ10sXG4gICAgWydtbHAnLCAnYXBwbGljYXRpb24vdm5kLmRvbGJ5Lm1scCddLFxuICAgIFsnbW1kJywgJ2FwcGxpY2F0aW9uL3ZuZC5jaGlwbnV0cy5rYXJhb2tlLW1tZCddLFxuICAgIFsnbW1mJywgJ2FwcGxpY2F0aW9uL3ZuZC5zbWFmJ10sXG4gICAgWydtbWwnLCAndGV4dC9tYXRobWwnXSxcbiAgICBbJ21tcicsICdpbWFnZS92bmQuZnVqaXhlcm94LmVkbWljcy1tbXInXSxcbiAgICBbJ21uZycsICd2aWRlby94LW1uZyddLFxuICAgIFsnbW55JywgJ2FwcGxpY2F0aW9uL3gtbXNtb25leSddLFxuICAgIFsnbW9iaScsICdhcHBsaWNhdGlvbi94LW1vYmlwb2NrZXQtZWJvb2snXSxcbiAgICBbJ21vZHMnLCAnYXBwbGljYXRpb24vbW9kcyt4bWwnXSxcbiAgICBbJ21vdicsICd2aWRlby9xdWlja3RpbWUnXSxcbiAgICBbJ21vdmllJywgJ3ZpZGVvL3gtc2dpLW1vdmllJ10sXG4gICAgWydtcDInLCAnYXVkaW8vbXBlZyddLFxuICAgIFsnbXAyYScsICdhdWRpby9tcGVnJ10sXG4gICAgWydtcDMnLCAnYXVkaW8vbXBlZyddLFxuICAgIFsnbXA0JywgJ3ZpZGVvL21wNCddLFxuICAgIFsnbXA0YScsICdhdWRpby9tcDQnXSxcbiAgICBbJ21wNHMnLCAnYXBwbGljYXRpb24vbXA0J10sXG4gICAgWydtcDR2JywgJ3ZpZGVvL21wNCddLFxuICAgIFsnbXAyMScsICdhcHBsaWNhdGlvbi9tcDIxJ10sXG4gICAgWydtcGMnLCAnYXBwbGljYXRpb24vdm5kLm1vcGh1bi5jZXJ0aWZpY2F0ZSddLFxuICAgIFsnbXBkJywgJ2FwcGxpY2F0aW9uL2Rhc2greG1sJ10sXG4gICAgWydtcGUnLCAndmlkZW8vbXBlZyddLFxuICAgIFsnbXBlZycsICd2aWRlby9tcGVnJ10sXG4gICAgWydtcGcnLCAndmlkZW8vbXBlZyddLFxuICAgIFsnbXBnNCcsICd2aWRlby9tcDQnXSxcbiAgICBbJ21wZ2EnLCAnYXVkaW8vbXBlZyddLFxuICAgIFsnbXBrZycsICdhcHBsaWNhdGlvbi92bmQuYXBwbGUuaW5zdGFsbGVyK3htbCddLFxuICAgIFsnbXBtJywgJ2FwcGxpY2F0aW9uL3ZuZC5ibHVlaWNlLm11bHRpcGFzcyddLFxuICAgIFsnbXBuJywgJ2FwcGxpY2F0aW9uL3ZuZC5tb3BodW4uYXBwbGljYXRpb24nXSxcbiAgICBbJ21wcCcsICdhcHBsaWNhdGlvbi92bmQubXMtcHJvamVjdCddLFxuICAgIFsnbXB0JywgJ2FwcGxpY2F0aW9uL3ZuZC5tcy1wcm9qZWN0J10sXG4gICAgWydtcHknLCAnYXBwbGljYXRpb24vdm5kLmlibS5taW5pcGF5J10sXG4gICAgWydtcXknLCAnYXBwbGljYXRpb24vdm5kLm1vYml1cy5tcXknXSxcbiAgICBbJ21yYycsICdhcHBsaWNhdGlvbi9tYXJjJ10sXG4gICAgWydtcmN4JywgJ2FwcGxpY2F0aW9uL21hcmN4bWwreG1sJ10sXG4gICAgWydtcycsICd0ZXh0L3Ryb2ZmJ10sXG4gICAgWydtc2NtbCcsICdhcHBsaWNhdGlvbi9tZWRpYXNlcnZlcmNvbnRyb2wreG1sJ10sXG4gICAgWydtc2VlZCcsICdhcHBsaWNhdGlvbi92bmQuZmRzbi5tc2VlZCddLFxuICAgIFsnbXNlcScsICdhcHBsaWNhdGlvbi92bmQubXNlcSddLFxuICAgIFsnbXNmJywgJ2FwcGxpY2F0aW9uL3ZuZC5lcHNvbi5tc2YnXSxcbiAgICBbJ21zZycsICdhcHBsaWNhdGlvbi92bmQubXMtb3V0bG9vayddLFxuICAgIFsnbXNoJywgJ21vZGVsL21lc2gnXSxcbiAgICBbJ21zaScsICdhcHBsaWNhdGlvbi94LW1zZG93bmxvYWQnXSxcbiAgICBbJ21zbCcsICdhcHBsaWNhdGlvbi92bmQubW9iaXVzLm1zbCddLFxuICAgIFsnbXNtJywgJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSddLFxuICAgIFsnbXNwJywgJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSddLFxuICAgIFsnbXN0eScsICdhcHBsaWNhdGlvbi92bmQubXV2ZWUuc3R5bGUnXSxcbiAgICBbJ210bCcsICdtb2RlbC9tdGwnXSxcbiAgICBbJ210cycsICdtb2RlbC92bmQubXRzJ10sXG4gICAgWydtdXMnLCAnYXBwbGljYXRpb24vdm5kLm11c2ljaWFuJ10sXG4gICAgWydtdXNkJywgJ2FwcGxpY2F0aW9uL21tdC11c2QreG1sJ10sXG4gICAgWydtdXNpY3htbCcsICdhcHBsaWNhdGlvbi92bmQucmVjb3JkYXJlLm11c2ljeG1sK3htbCddLFxuICAgIFsnbXZiJywgJ2FwcGxpY2F0aW9uL3gtbXNtZWRpYXZpZXcnXSxcbiAgICBbJ212dCcsICdhcHBsaWNhdGlvbi92bmQubWFwYm94LXZlY3Rvci10aWxlJ10sXG4gICAgWydtd2YnLCAnYXBwbGljYXRpb24vdm5kLm1mZXInXSxcbiAgICBbJ214ZicsICdhcHBsaWNhdGlvbi9teGYnXSxcbiAgICBbJ214bCcsICdhcHBsaWNhdGlvbi92bmQucmVjb3JkYXJlLm11c2ljeG1sJ10sXG4gICAgWydteG1mJywgJ2F1ZGlvL21vYmlsZS14bWYnXSxcbiAgICBbJ214bWwnLCAnYXBwbGljYXRpb24veHYreG1sJ10sXG4gICAgWydteHMnLCAnYXBwbGljYXRpb24vdm5kLnRyaXNjYXBlLm14cyddLFxuICAgIFsnbXh1JywgJ3ZpZGVvL3ZuZC5tcGVndXJsJ10sXG4gICAgWyduLWdhZ2UnLCAnYXBwbGljYXRpb24vdm5kLm5va2lhLm4tZ2FnZS5zeW1iaWFuLmluc3RhbGwnXSxcbiAgICBbJ24zJywgJ3RleHQvbjMnXSxcbiAgICBbJ25iJywgJ2FwcGxpY2F0aW9uL21hdGhlbWF0aWNhJ10sXG4gICAgWyduYnAnLCAnYXBwbGljYXRpb24vdm5kLndvbGZyYW0ucGxheWVyJ10sXG4gICAgWyduYycsICdhcHBsaWNhdGlvbi94LW5ldGNkZiddLFxuICAgIFsnbmN4JywgJ2FwcGxpY2F0aW9uL3gtZHRibmN4K3htbCddLFxuICAgIFsnbmZvJywgJ3RleHQveC1uZm8nXSxcbiAgICBbJ25nZGF0JywgJ2FwcGxpY2F0aW9uL3ZuZC5ub2tpYS5uLWdhZ2UuZGF0YSddLFxuICAgIFsnbml0ZicsICdhcHBsaWNhdGlvbi92bmQubml0ZiddLFxuICAgIFsnbmx1JywgJ2FwcGxpY2F0aW9uL3ZuZC5uZXVyb2xhbmd1YWdlLm5sdSddLFxuICAgIFsnbm1sJywgJ2FwcGxpY2F0aW9uL3ZuZC5lbmxpdmVuJ10sXG4gICAgWydubmQnLCAnYXBwbGljYXRpb24vdm5kLm5vYmxlbmV0LWRpcmVjdG9yeSddLFxuICAgIFsnbm5zJywgJ2FwcGxpY2F0aW9uL3ZuZC5ub2JsZW5ldC1zZWFsZXInXSxcbiAgICBbJ25udycsICdhcHBsaWNhdGlvbi92bmQubm9ibGVuZXQtd2ViJ10sXG4gICAgWyducHgnLCAnaW1hZ2Uvdm5kLm5ldC1mcHgnXSxcbiAgICBbJ25xJywgJ2FwcGxpY2F0aW9uL24tcXVhZHMnXSxcbiAgICBbJ25zYycsICdhcHBsaWNhdGlvbi94LWNvbmZlcmVuY2UnXSxcbiAgICBbJ25zZicsICdhcHBsaWNhdGlvbi92bmQubG90dXMtbm90ZXMnXSxcbiAgICBbJ250JywgJ2FwcGxpY2F0aW9uL24tdHJpcGxlcyddLFxuICAgIFsnbnRmJywgJ2FwcGxpY2F0aW9uL3ZuZC5uaXRmJ10sXG4gICAgWydudW1iZXJzJywgJ2FwcGxpY2F0aW9uL3gtaXdvcmstbnVtYmVycy1zZmZudW1iZXJzJ10sXG4gICAgWyduemInLCAnYXBwbGljYXRpb24veC1uemInXSxcbiAgICBbJ29hMicsICdhcHBsaWNhdGlvbi92bmQuZnVqaXRzdS5vYXN5czInXSxcbiAgICBbJ29hMycsICdhcHBsaWNhdGlvbi92bmQuZnVqaXRzdS5vYXN5czMnXSxcbiAgICBbJ29hcycsICdhcHBsaWNhdGlvbi92bmQuZnVqaXRzdS5vYXN5cyddLFxuICAgIFsnb2JkJywgJ2FwcGxpY2F0aW9uL3gtbXNiaW5kZXInXSxcbiAgICBbJ29iZ3gnLCAnYXBwbGljYXRpb24vdm5kLm9wZW5ibG94LmdhbWUreG1sJ10sXG4gICAgWydvYmonLCAnbW9kZWwvb2JqJ10sXG4gICAgWydvZGEnLCAnYXBwbGljYXRpb24vb2RhJ10sXG4gICAgWydvZGInLCAnYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC5kYXRhYmFzZSddLFxuICAgIFsnb2RjJywgJ2FwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQuY2hhcnQnXSxcbiAgICBbJ29kZicsICdhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LmZvcm11bGEnXSxcbiAgICBbJ29kZnQnLCAnYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC5mb3JtdWxhLXRlbXBsYXRlJ10sXG4gICAgWydvZGcnLCAnYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC5ncmFwaGljcyddLFxuICAgIFsnb2RpJywgJ2FwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQuaW1hZ2UnXSxcbiAgICBbJ29kbScsICdhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LnRleHQtbWFzdGVyJ10sXG4gICAgWydvZHAnLCAnYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC5wcmVzZW50YXRpb24nXSxcbiAgICBbJ29kcycsICdhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LnNwcmVhZHNoZWV0J10sXG4gICAgWydvZHQnLCAnYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC50ZXh0J10sXG4gICAgWydvZ2EnLCAnYXVkaW8vb2dnJ10sXG4gICAgWydvZ2V4JywgJ21vZGVsL3ZuZC5vcGVuZ2V4J10sXG4gICAgWydvZ2cnLCAnYXVkaW8vb2dnJ10sXG4gICAgWydvZ3YnLCAndmlkZW8vb2dnJ10sXG4gICAgWydvZ3gnLCAnYXBwbGljYXRpb24vb2dnJ10sXG4gICAgWydvbWRvYycsICdhcHBsaWNhdGlvbi9vbWRvYyt4bWwnXSxcbiAgICBbJ29uZXBrZycsICdhcHBsaWNhdGlvbi9vbmVub3RlJ10sXG4gICAgWydvbmV0bXAnLCAnYXBwbGljYXRpb24vb25lbm90ZSddLFxuICAgIFsnb25ldG9jJywgJ2FwcGxpY2F0aW9uL29uZW5vdGUnXSxcbiAgICBbJ29uZXRvYzInLCAnYXBwbGljYXRpb24vb25lbm90ZSddLFxuICAgIFsnb3BmJywgJ2FwcGxpY2F0aW9uL29lYnBzLXBhY2thZ2UreG1sJ10sXG4gICAgWydvcG1sJywgJ3RleHQveC1vcG1sJ10sXG4gICAgWydvcHJjJywgJ2FwcGxpY2F0aW9uL3ZuZC5wYWxtJ10sXG4gICAgWydvcHVzJywgJ2F1ZGlvL29nZyddLFxuICAgIFsnb3JnJywgJ3RleHQveC1vcmcnXSxcbiAgICBbJ29zZicsICdhcHBsaWNhdGlvbi92bmQueWFtYWhhLm9wZW5zY29yZWZvcm1hdCddLFxuICAgIFsnb3NmcHZnJywgJ2FwcGxpY2F0aW9uL3ZuZC55YW1haGEub3BlbnNjb3JlZm9ybWF0Lm9zZnB2Zyt4bWwnXSxcbiAgICBbJ29zbScsICdhcHBsaWNhdGlvbi92bmQub3BlbnN0cmVldG1hcC5kYXRhK3htbCddLFxuICAgIFsnb3RjJywgJ2FwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQuY2hhcnQtdGVtcGxhdGUnXSxcbiAgICBbJ290ZicsICdmb250L290ZiddLFxuICAgIFsnb3RnJywgJ2FwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQuZ3JhcGhpY3MtdGVtcGxhdGUnXSxcbiAgICBbJ290aCcsICdhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LnRleHQtd2ViJ10sXG4gICAgWydvdGknLCAnYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC5pbWFnZS10ZW1wbGF0ZSddLFxuICAgIFsnb3RwJywgJ2FwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQucHJlc2VudGF0aW9uLXRlbXBsYXRlJ10sXG4gICAgWydvdHMnLCAnYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC5zcHJlYWRzaGVldC10ZW1wbGF0ZSddLFxuICAgIFsnb3R0JywgJ2FwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQudGV4dC10ZW1wbGF0ZSddLFxuICAgIFsnb3ZhJywgJ2FwcGxpY2F0aW9uL3gtdmlydHVhbGJveC1vdmEnXSxcbiAgICBbJ292ZicsICdhcHBsaWNhdGlvbi94LXZpcnR1YWxib3gtb3ZmJ10sXG4gICAgWydvd2wnLCAnYXBwbGljYXRpb24vcmRmK3htbCddLFxuICAgIFsnb3hwcycsICdhcHBsaWNhdGlvbi9veHBzJ10sXG4gICAgWydveHQnLCAnYXBwbGljYXRpb24vdm5kLm9wZW5vZmZpY2VvcmcuZXh0ZW5zaW9uJ10sXG4gICAgWydwJywgJ3RleHQveC1wYXNjYWwnXSxcbiAgICBbJ3A3YScsICdhcHBsaWNhdGlvbi94LXBrY3M3LXNpZ25hdHVyZSddLFxuICAgIFsncDdiJywgJ2FwcGxpY2F0aW9uL3gtcGtjczctY2VydGlmaWNhdGVzJ10sXG4gICAgWydwN2MnLCAnYXBwbGljYXRpb24vcGtjczctbWltZSddLFxuICAgIFsncDdtJywgJ2FwcGxpY2F0aW9uL3BrY3M3LW1pbWUnXSxcbiAgICBbJ3A3cicsICdhcHBsaWNhdGlvbi94LXBrY3M3LWNlcnRyZXFyZXNwJ10sXG4gICAgWydwN3MnLCAnYXBwbGljYXRpb24vcGtjczctc2lnbmF0dXJlJ10sXG4gICAgWydwOCcsICdhcHBsaWNhdGlvbi9wa2NzOCddLFxuICAgIFsncDEwJywgJ2FwcGxpY2F0aW9uL3gtcGtjczEwJ10sXG4gICAgWydwMTInLCAnYXBwbGljYXRpb24veC1wa2NzMTInXSxcbiAgICBbJ3BhYycsICdhcHBsaWNhdGlvbi94LW5zLXByb3h5LWF1dG9jb25maWcnXSxcbiAgICBbJ3BhZ2VzJywgJ2FwcGxpY2F0aW9uL3gtaXdvcmstcGFnZXMtc2ZmcGFnZXMnXSxcbiAgICBbJ3BhcycsICd0ZXh0L3gtcGFzY2FsJ10sXG4gICAgWydwYXcnLCAnYXBwbGljYXRpb24vdm5kLnBhd2FhZmlsZSddLFxuICAgIFsncGJkJywgJ2FwcGxpY2F0aW9uL3ZuZC5wb3dlcmJ1aWxkZXI2J10sXG4gICAgWydwYm0nLCAnaW1hZ2UveC1wb3J0YWJsZS1iaXRtYXAnXSxcbiAgICBbJ3BjYXAnLCAnYXBwbGljYXRpb24vdm5kLnRjcGR1bXAucGNhcCddLFxuICAgIFsncGNmJywgJ2FwcGxpY2F0aW9uL3gtZm9udC1wY2YnXSxcbiAgICBbJ3BjbCcsICdhcHBsaWNhdGlvbi92bmQuaHAtcGNsJ10sXG4gICAgWydwY2x4bCcsICdhcHBsaWNhdGlvbi92bmQuaHAtcGNseGwnXSxcbiAgICBbJ3BjdCcsICdpbWFnZS94LXBpY3QnXSxcbiAgICBbJ3BjdXJsJywgJ2FwcGxpY2F0aW9uL3ZuZC5jdXJsLnBjdXJsJ10sXG4gICAgWydwY3gnLCAnaW1hZ2UveC1wY3gnXSxcbiAgICBbJ3BkYicsICdhcHBsaWNhdGlvbi94LXBpbG90J10sXG4gICAgWydwZGUnLCAndGV4dC94LXByb2Nlc3NpbmcnXSxcbiAgICBbJ3BkZicsICdhcHBsaWNhdGlvbi9wZGYnXSxcbiAgICBbJ3BlbScsICdhcHBsaWNhdGlvbi94LXg1MDktdXNlci1jZXJ0J10sXG4gICAgWydwZmEnLCAnYXBwbGljYXRpb24veC1mb250LXR5cGUxJ10sXG4gICAgWydwZmInLCAnYXBwbGljYXRpb24veC1mb250LXR5cGUxJ10sXG4gICAgWydwZm0nLCAnYXBwbGljYXRpb24veC1mb250LXR5cGUxJ10sXG4gICAgWydwZnInLCAnYXBwbGljYXRpb24vZm9udC10ZHBmciddLFxuICAgIFsncGZ4JywgJ2FwcGxpY2F0aW9uL3gtcGtjczEyJ10sXG4gICAgWydwZ20nLCAnaW1hZ2UveC1wb3J0YWJsZS1ncmF5bWFwJ10sXG4gICAgWydwZ24nLCAnYXBwbGljYXRpb24veC1jaGVzcy1wZ24nXSxcbiAgICBbJ3BncCcsICdhcHBsaWNhdGlvbi9wZ3AnXSxcbiAgICBbJ3BocCcsICdhcHBsaWNhdGlvbi94LWh0dHBkLXBocCddLFxuICAgIFsncGhwMycsICdhcHBsaWNhdGlvbi94LWh0dHBkLXBocCddLFxuICAgIFsncGhwNCcsICdhcHBsaWNhdGlvbi94LWh0dHBkLXBocCddLFxuICAgIFsncGhwcycsICdhcHBsaWNhdGlvbi94LWh0dHBkLXBocC1zb3VyY2UnXSxcbiAgICBbJ3BodG1sJywgJ2FwcGxpY2F0aW9uL3gtaHR0cGQtcGhwJ10sXG4gICAgWydwaWMnLCAnaW1hZ2UveC1waWN0J10sXG4gICAgWydwa2cnLCAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJ10sXG4gICAgWydwa2knLCAnYXBwbGljYXRpb24vcGtpeGNtcCddLFxuICAgIFsncGtpcGF0aCcsICdhcHBsaWNhdGlvbi9wa2l4LXBraXBhdGgnXSxcbiAgICBbJ3BrcGFzcycsICdhcHBsaWNhdGlvbi92bmQuYXBwbGUucGtwYXNzJ10sXG4gICAgWydwbCcsICdhcHBsaWNhdGlvbi94LXBlcmwnXSxcbiAgICBbJ3BsYicsICdhcHBsaWNhdGlvbi92bmQuM2dwcC5waWMtYnctbGFyZ2UnXSxcbiAgICBbJ3BsYycsICdhcHBsaWNhdGlvbi92bmQubW9iaXVzLnBsYyddLFxuICAgIFsncGxmJywgJ2FwcGxpY2F0aW9uL3ZuZC5wb2NrZXRsZWFybiddLFxuICAgIFsncGxzJywgJ2FwcGxpY2F0aW9uL3Bscyt4bWwnXSxcbiAgICBbJ3BtJywgJ2FwcGxpY2F0aW9uL3gtcGVybCddLFxuICAgIFsncG1sJywgJ2FwcGxpY2F0aW9uL3ZuZC5jdGMtcG9zbWwnXSxcbiAgICBbJ3BuZycsICdpbWFnZS9wbmcnXSxcbiAgICBbJ3BubScsICdpbWFnZS94LXBvcnRhYmxlLWFueW1hcCddLFxuICAgIFsncG9ydHBrZycsICdhcHBsaWNhdGlvbi92bmQubWFjcG9ydHMucG9ydHBrZyddLFxuICAgIFsncG90JywgJ2FwcGxpY2F0aW9uL3ZuZC5tcy1wb3dlcnBvaW50J10sXG4gICAgWydwb3RtJywgJ2FwcGxpY2F0aW9uL3ZuZC5tcy1wb3dlcnBvaW50LnByZXNlbnRhdGlvbi5tYWNyb0VuYWJsZWQuMTInXSxcbiAgICBbJ3BvdHgnLCAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnRlbXBsYXRlJ10sXG4gICAgWydwcGEnLCAnYXBwbGljYXRpb24vdm5kLm1zLXBvd2VycG9pbnQnXSxcbiAgICBbJ3BwYW0nLCAnYXBwbGljYXRpb24vdm5kLm1zLXBvd2VycG9pbnQuYWRkaW4ubWFjcm9FbmFibGVkLjEyJ10sXG4gICAgWydwcGQnLCAnYXBwbGljYXRpb24vdm5kLmN1cHMtcHBkJ10sXG4gICAgWydwcG0nLCAnaW1hZ2UveC1wb3J0YWJsZS1waXhtYXAnXSxcbiAgICBbJ3BwcycsICdhcHBsaWNhdGlvbi92bmQubXMtcG93ZXJwb2ludCddLFxuICAgIFsncHBzbScsICdhcHBsaWNhdGlvbi92bmQubXMtcG93ZXJwb2ludC5zbGlkZXNob3cubWFjcm9FbmFibGVkLjEyJ10sXG4gICAgWydwcHN4JywgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5zbGlkZXNob3cnXSxcbiAgICBbJ3BwdCcsICdhcHBsaWNhdGlvbi9wb3dlcnBvaW50J10sXG4gICAgWydwcHRtJywgJ2FwcGxpY2F0aW9uL3ZuZC5tcy1wb3dlcnBvaW50LnByZXNlbnRhdGlvbi5tYWNyb0VuYWJsZWQuMTInXSxcbiAgICBbJ3BwdHgnLCAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnByZXNlbnRhdGlvbiddLFxuICAgIFsncHFhJywgJ2FwcGxpY2F0aW9uL3ZuZC5wYWxtJ10sXG4gICAgWydwcmMnLCAnYXBwbGljYXRpb24veC1waWxvdCddLFxuICAgIFsncHJlJywgJ2FwcGxpY2F0aW9uL3ZuZC5sb3R1cy1mcmVlbGFuY2UnXSxcbiAgICBbJ3ByZicsICdhcHBsaWNhdGlvbi9waWNzLXJ1bGVzJ10sXG4gICAgWydwcm92eCcsICdhcHBsaWNhdGlvbi9wcm92ZW5hbmNlK3htbCddLFxuICAgIFsncHMnLCAnYXBwbGljYXRpb24vcG9zdHNjcmlwdCddLFxuICAgIFsncHNiJywgJ2FwcGxpY2F0aW9uL3ZuZC4zZ3BwLnBpYy1idy1zbWFsbCddLFxuICAgIFsncHNkJywgJ2FwcGxpY2F0aW9uL3gtcGhvdG9zaG9wJ10sXG4gICAgWydwc2YnLCAnYXBwbGljYXRpb24veC1mb250LWxpbnV4LXBzZiddLFxuICAgIFsncHNrY3htbCcsICdhcHBsaWNhdGlvbi9wc2tjK3htbCddLFxuICAgIFsncHRpJywgJ2ltYWdlL3Bycy5wdGknXSxcbiAgICBbJ3B0aWQnLCAnYXBwbGljYXRpb24vdm5kLnB2aS5wdGlkMSddLFxuICAgIFsncHViJywgJ2FwcGxpY2F0aW9uL3gtbXNwdWJsaXNoZXInXSxcbiAgICBbJ3B2YicsICdhcHBsaWNhdGlvbi92bmQuM2dwcC5waWMtYnctdmFyJ10sXG4gICAgWydwd24nLCAnYXBwbGljYXRpb24vdm5kLjNtLnBvc3QtaXQtbm90ZXMnXSxcbiAgICBbJ3B5YScsICdhdWRpby92bmQubXMtcGxheXJlYWR5Lm1lZGlhLnB5YSddLFxuICAgIFsncHl2JywgJ3ZpZGVvL3ZuZC5tcy1wbGF5cmVhZHkubWVkaWEucHl2J10sXG4gICAgWydxYW0nLCAnYXBwbGljYXRpb24vdm5kLmVwc29uLnF1aWNrYW5pbWUnXSxcbiAgICBbJ3FibycsICdhcHBsaWNhdGlvbi92bmQuaW50dS5xYm8nXSxcbiAgICBbJ3FmeCcsICdhcHBsaWNhdGlvbi92bmQuaW50dS5xZngnXSxcbiAgICBbJ3FwcycsICdhcHBsaWNhdGlvbi92bmQucHVibGlzaGFyZS1kZWx0YS10cmVlJ10sXG4gICAgWydxdCcsICd2aWRlby9xdWlja3RpbWUnXSxcbiAgICBbJ3F3ZCcsICdhcHBsaWNhdGlvbi92bmQucXVhcmsucXVhcmt4cHJlc3MnXSxcbiAgICBbJ3F3dCcsICdhcHBsaWNhdGlvbi92bmQucXVhcmsucXVhcmt4cHJlc3MnXSxcbiAgICBbJ3F4YicsICdhcHBsaWNhdGlvbi92bmQucXVhcmsucXVhcmt4cHJlc3MnXSxcbiAgICBbJ3F4ZCcsICdhcHBsaWNhdGlvbi92bmQucXVhcmsucXVhcmt4cHJlc3MnXSxcbiAgICBbJ3F4bCcsICdhcHBsaWNhdGlvbi92bmQucXVhcmsucXVhcmt4cHJlc3MnXSxcbiAgICBbJ3F4dCcsICdhcHBsaWNhdGlvbi92bmQucXVhcmsucXVhcmt4cHJlc3MnXSxcbiAgICBbJ3JhJywgJ2F1ZGlvL3gtcmVhbGF1ZGlvJ10sXG4gICAgWydyYW0nLCAnYXVkaW8veC1wbi1yZWFsYXVkaW8nXSxcbiAgICBbJ3JhbWwnLCAnYXBwbGljYXRpb24vcmFtbCt5YW1sJ10sXG4gICAgWydyYXBkJywgJ2FwcGxpY2F0aW9uL3JvdXRlLWFwZCt4bWwnXSxcbiAgICBbJ3JhcicsICdhcHBsaWNhdGlvbi94LXJhciddLFxuICAgIFsncmFzJywgJ2ltYWdlL3gtY211LXJhc3RlciddLFxuICAgIFsncmNwcm9maWxlJywgJ2FwcGxpY2F0aW9uL3ZuZC5pcHVucGx1Z2dlZC5yY3Byb2ZpbGUnXSxcbiAgICBbJ3JkZicsICdhcHBsaWNhdGlvbi9yZGYreG1sJ10sXG4gICAgWydyZHonLCAnYXBwbGljYXRpb24vdm5kLmRhdGEtdmlzaW9uLnJkeiddLFxuICAgIFsncmVsbycsICdhcHBsaWNhdGlvbi9wMnAtb3ZlcmxheSt4bWwnXSxcbiAgICBbJ3JlcCcsICdhcHBsaWNhdGlvbi92bmQuYnVzaW5lc3NvYmplY3RzJ10sXG4gICAgWydyZXMnLCAnYXBwbGljYXRpb24veC1kdGJyZXNvdXJjZSt4bWwnXSxcbiAgICBbJ3JnYicsICdpbWFnZS94LXJnYiddLFxuICAgIFsncmlmJywgJ2FwcGxpY2F0aW9uL3JlZ2luZm8reG1sJ10sXG4gICAgWydyaXAnLCAnYXVkaW8vdm5kLnJpcCddLFxuICAgIFsncmlzJywgJ2FwcGxpY2F0aW9uL3gtcmVzZWFyY2gtaW5mby1zeXN0ZW1zJ10sXG4gICAgWydybCcsICdhcHBsaWNhdGlvbi9yZXNvdXJjZS1saXN0cyt4bWwnXSxcbiAgICBbJ3JsYycsICdpbWFnZS92bmQuZnVqaXhlcm94LmVkbWljcy1ybGMnXSxcbiAgICBbJ3JsZCcsICdhcHBsaWNhdGlvbi9yZXNvdXJjZS1saXN0cy1kaWZmK3htbCddLFxuICAgIFsncm0nLCAnYXVkaW8veC1wbi1yZWFsYXVkaW8nXSxcbiAgICBbJ3JtaScsICdhdWRpby9taWRpJ10sXG4gICAgWydybXAnLCAnYXVkaW8veC1wbi1yZWFsYXVkaW8tcGx1Z2luJ10sXG4gICAgWydybXMnLCAnYXBwbGljYXRpb24vdm5kLmpjcC5qYXZhbWUubWlkbGV0LXJtcyddLFxuICAgIFsncm12YicsICdhcHBsaWNhdGlvbi92bmQucm4tcmVhbG1lZGlhLXZiciddLFxuICAgIFsncm5jJywgJ2FwcGxpY2F0aW9uL3JlbGF4LW5nLWNvbXBhY3Qtc3ludGF4J10sXG4gICAgWydybmcnLCAnYXBwbGljYXRpb24veG1sJ10sXG4gICAgWydyb2EnLCAnYXBwbGljYXRpb24vcnBraS1yb2EnXSxcbiAgICBbJ3JvZmYnLCAndGV4dC90cm9mZiddLFxuICAgIFsncnA5JywgJ2FwcGxpY2F0aW9uL3ZuZC5jbG9hbnRvLnJwOSddLFxuICAgIFsncnBtJywgJ2F1ZGlvL3gtcG4tcmVhbGF1ZGlvLXBsdWdpbiddLFxuICAgIFsncnBzcycsICdhcHBsaWNhdGlvbi92bmQubm9raWEucmFkaW8tcHJlc2V0cyddLFxuICAgIFsncnBzdCcsICdhcHBsaWNhdGlvbi92bmQubm9raWEucmFkaW8tcHJlc2V0J10sXG4gICAgWydycScsICdhcHBsaWNhdGlvbi9zcGFycWwtcXVlcnknXSxcbiAgICBbJ3JzJywgJ2FwcGxpY2F0aW9uL3Jscy1zZXJ2aWNlcyt4bWwnXSxcbiAgICBbJ3JzYScsICdhcHBsaWNhdGlvbi94LXBrY3M3J10sXG4gICAgWydyc2F0JywgJ2FwcGxpY2F0aW9uL2F0c2MtcnNhdCt4bWwnXSxcbiAgICBbJ3JzZCcsICdhcHBsaWNhdGlvbi9yc2QreG1sJ10sXG4gICAgWydyc2hlZXQnLCAnYXBwbGljYXRpb24vdXJjLXJlc3NoZWV0K3htbCddLFxuICAgIFsncnNzJywgJ2FwcGxpY2F0aW9uL3Jzcyt4bWwnXSxcbiAgICBbJ3J0ZicsICd0ZXh0L3J0ZiddLFxuICAgIFsncnR4JywgJ3RleHQvcmljaHRleHQnXSxcbiAgICBbJ3J1bicsICdhcHBsaWNhdGlvbi94LW1ha2VzZWxmJ10sXG4gICAgWydydXNkJywgJ2FwcGxpY2F0aW9uL3JvdXRlLXVzZCt4bWwnXSxcbiAgICBbJ3J2JywgJ3ZpZGVvL3ZuZC5ybi1yZWFsdmlkZW8nXSxcbiAgICBbJ3MnLCAndGV4dC94LWFzbSddLFxuICAgIFsnczNtJywgJ2F1ZGlvL3MzbSddLFxuICAgIFsnc2FmJywgJ2FwcGxpY2F0aW9uL3ZuZC55YW1haGEuc21hZi1hdWRpbyddLFxuICAgIFsnc2FzcycsICd0ZXh0L3gtc2FzcyddLFxuICAgIFsnc2JtbCcsICdhcHBsaWNhdGlvbi9zYm1sK3htbCddLFxuICAgIFsnc2MnLCAnYXBwbGljYXRpb24vdm5kLmlibS5zZWN1cmUtY29udGFpbmVyJ10sXG4gICAgWydzY2QnLCAnYXBwbGljYXRpb24veC1tc3NjaGVkdWxlJ10sXG4gICAgWydzY20nLCAnYXBwbGljYXRpb24vdm5kLmxvdHVzLXNjcmVlbmNhbSddLFxuICAgIFsnc2NxJywgJ2FwcGxpY2F0aW9uL3NjdnAtY3YtcmVxdWVzdCddLFxuICAgIFsnc2NzJywgJ2FwcGxpY2F0aW9uL3NjdnAtY3YtcmVzcG9uc2UnXSxcbiAgICBbJ3Njc3MnLCAndGV4dC94LXNjc3MnXSxcbiAgICBbJ3NjdXJsJywgJ3RleHQvdm5kLmN1cmwuc2N1cmwnXSxcbiAgICBbJ3NkYScsICdhcHBsaWNhdGlvbi92bmQuc3RhcmRpdmlzaW9uLmRyYXcnXSxcbiAgICBbJ3NkYycsICdhcHBsaWNhdGlvbi92bmQuc3RhcmRpdmlzaW9uLmNhbGMnXSxcbiAgICBbJ3NkZCcsICdhcHBsaWNhdGlvbi92bmQuc3RhcmRpdmlzaW9uLmltcHJlc3MnXSxcbiAgICBbJ3Nka2QnLCAnYXBwbGljYXRpb24vdm5kLnNvbGVudC5zZGttK3htbCddLFxuICAgIFsnc2RrbScsICdhcHBsaWNhdGlvbi92bmQuc29sZW50LnNka20reG1sJ10sXG4gICAgWydzZHAnLCAnYXBwbGljYXRpb24vc2RwJ10sXG4gICAgWydzZHcnLCAnYXBwbGljYXRpb24vdm5kLnN0YXJkaXZpc2lvbi53cml0ZXInXSxcbiAgICBbJ3NlYScsICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nXSxcbiAgICBbJ3NlZScsICdhcHBsaWNhdGlvbi92bmQuc2VlbWFpbCddLFxuICAgIFsnc2VlZCcsICdhcHBsaWNhdGlvbi92bmQuZmRzbi5zZWVkJ10sXG4gICAgWydzZW1hJywgJ2FwcGxpY2F0aW9uL3ZuZC5zZW1hJ10sXG4gICAgWydzZW1kJywgJ2FwcGxpY2F0aW9uL3ZuZC5zZW1kJ10sXG4gICAgWydzZW1mJywgJ2FwcGxpY2F0aW9uL3ZuZC5zZW1mJ10sXG4gICAgWydzZW5tbHgnLCAnYXBwbGljYXRpb24vc2VubWwreG1sJ10sXG4gICAgWydzZW5zbWx4JywgJ2FwcGxpY2F0aW9uL3NlbnNtbCt4bWwnXSxcbiAgICBbJ3NlcicsICdhcHBsaWNhdGlvbi9qYXZhLXNlcmlhbGl6ZWQtb2JqZWN0J10sXG4gICAgWydzZXRwYXknLCAnYXBwbGljYXRpb24vc2V0LXBheW1lbnQtaW5pdGlhdGlvbiddLFxuICAgIFsnc2V0cmVnJywgJ2FwcGxpY2F0aW9uL3NldC1yZWdpc3RyYXRpb24taW5pdGlhdGlvbiddLFxuICAgIFsnc2ZkLWhkc3R4JywgJ2FwcGxpY2F0aW9uL3ZuZC5oeWRyb3N0YXRpeC5zb2YtZGF0YSddLFxuICAgIFsnc2ZzJywgJ2FwcGxpY2F0aW9uL3ZuZC5zcG90ZmlyZS5zZnMnXSxcbiAgICBbJ3NmdicsICd0ZXh0L3gtc2Z2J10sXG4gICAgWydzZ2knLCAnaW1hZ2Uvc2dpJ10sXG4gICAgWydzZ2wnLCAnYXBwbGljYXRpb24vdm5kLnN0YXJkaXZpc2lvbi53cml0ZXItZ2xvYmFsJ10sXG4gICAgWydzZ20nLCAndGV4dC9zZ21sJ10sXG4gICAgWydzZ21sJywgJ3RleHQvc2dtbCddLFxuICAgIFsnc2gnLCAnYXBwbGljYXRpb24veC1zaCddLFxuICAgIFsnc2hhcicsICdhcHBsaWNhdGlvbi94LXNoYXInXSxcbiAgICBbJ3NoZXgnLCAndGV4dC9zaGV4J10sXG4gICAgWydzaGYnLCAnYXBwbGljYXRpb24vc2hmK3htbCddLFxuICAgIFsnc2h0bWwnLCAndGV4dC9odG1sJ10sXG4gICAgWydzaWQnLCAnaW1hZ2UveC1tcnNpZC1pbWFnZSddLFxuICAgIFsnc2lldmUnLCAnYXBwbGljYXRpb24vc2lldmUnXSxcbiAgICBbJ3NpZycsICdhcHBsaWNhdGlvbi9wZ3Atc2lnbmF0dXJlJ10sXG4gICAgWydzaWwnLCAnYXVkaW8vc2lsayddLFxuICAgIFsnc2lsbycsICdtb2RlbC9tZXNoJ10sXG4gICAgWydzaXMnLCAnYXBwbGljYXRpb24vdm5kLnN5bWJpYW4uaW5zdGFsbCddLFxuICAgIFsnc2lzeCcsICdhcHBsaWNhdGlvbi92bmQuc3ltYmlhbi5pbnN0YWxsJ10sXG4gICAgWydzaXQnLCAnYXBwbGljYXRpb24veC1zdHVmZml0J10sXG4gICAgWydzaXR4JywgJ2FwcGxpY2F0aW9uL3gtc3R1ZmZpdHgnXSxcbiAgICBbJ3NpdicsICdhcHBsaWNhdGlvbi9zaWV2ZSddLFxuICAgIFsnc2tkJywgJ2FwcGxpY2F0aW9uL3ZuZC5rb2FuJ10sXG4gICAgWydza20nLCAnYXBwbGljYXRpb24vdm5kLmtvYW4nXSxcbiAgICBbJ3NrcCcsICdhcHBsaWNhdGlvbi92bmQua29hbiddLFxuICAgIFsnc2t0JywgJ2FwcGxpY2F0aW9uL3ZuZC5rb2FuJ10sXG4gICAgWydzbGRtJywgJ2FwcGxpY2F0aW9uL3ZuZC5tcy1wb3dlcnBvaW50LnNsaWRlLm1hY3JvZW5hYmxlZC4xMiddLFxuICAgIFsnc2xkeCcsICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwuc2xpZGUnXSxcbiAgICBbJ3NsaW0nLCAndGV4dC9zbGltJ10sXG4gICAgWydzbG0nLCAndGV4dC9zbGltJ10sXG4gICAgWydzbHMnLCAnYXBwbGljYXRpb24vcm91dGUtcy10c2lkK3htbCddLFxuICAgIFsnc2x0JywgJ2FwcGxpY2F0aW9uL3ZuZC5lcHNvbi5zYWx0J10sXG4gICAgWydzbScsICdhcHBsaWNhdGlvbi92bmQuc3RlcG1hbmlhLnN0ZXBjaGFydCddLFxuICAgIFsnc21mJywgJ2FwcGxpY2F0aW9uL3ZuZC5zdGFyZGl2aXNpb24ubWF0aCddLFxuICAgIFsnc21pJywgJ2FwcGxpY2F0aW9uL3NtaWwnXSxcbiAgICBbJ3NtaWwnLCAnYXBwbGljYXRpb24vc21pbCddLFxuICAgIFsnc212JywgJ3ZpZGVvL3gtc212J10sXG4gICAgWydzbXppcCcsICdhcHBsaWNhdGlvbi92bmQuc3RlcG1hbmlhLnBhY2thZ2UnXSxcbiAgICBbJ3NuZCcsICdhdWRpby9iYXNpYyddLFxuICAgIFsnc25mJywgJ2FwcGxpY2F0aW9uL3gtZm9udC1zbmYnXSxcbiAgICBbJ3NvJywgJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSddLFxuICAgIFsnc3BjJywgJ2FwcGxpY2F0aW9uL3gtcGtjczctY2VydGlmaWNhdGVzJ10sXG4gICAgWydzcGR4JywgJ3RleHQvc3BkeCddLFxuICAgIFsnc3BmJywgJ2FwcGxpY2F0aW9uL3ZuZC55YW1haGEuc21hZi1waHJhc2UnXSxcbiAgICBbJ3NwbCcsICdhcHBsaWNhdGlvbi94LWZ1dHVyZXNwbGFzaCddLFxuICAgIFsnc3BvdCcsICd0ZXh0L3ZuZC5pbjNkLnNwb3QnXSxcbiAgICBbJ3NwcCcsICdhcHBsaWNhdGlvbi9zY3ZwLXZwLXJlc3BvbnNlJ10sXG4gICAgWydzcHEnLCAnYXBwbGljYXRpb24vc2N2cC12cC1yZXF1ZXN0J10sXG4gICAgWydzcHgnLCAnYXVkaW8vb2dnJ10sXG4gICAgWydzcWwnLCAnYXBwbGljYXRpb24veC1zcWwnXSxcbiAgICBbJ3NyYycsICdhcHBsaWNhdGlvbi94LXdhaXMtc291cmNlJ10sXG4gICAgWydzcnQnLCAnYXBwbGljYXRpb24veC1zdWJyaXAnXSxcbiAgICBbJ3NydScsICdhcHBsaWNhdGlvbi9zcnUreG1sJ10sXG4gICAgWydzcngnLCAnYXBwbGljYXRpb24vc3BhcnFsLXJlc3VsdHMreG1sJ10sXG4gICAgWydzc2RsJywgJ2FwcGxpY2F0aW9uL3NzZGwreG1sJ10sXG4gICAgWydzc2UnLCAnYXBwbGljYXRpb24vdm5kLmtvZGFrLWRlc2NyaXB0b3InXSxcbiAgICBbJ3NzZicsICdhcHBsaWNhdGlvbi92bmQuZXBzb24uc3NmJ10sXG4gICAgWydzc21sJywgJ2FwcGxpY2F0aW9uL3NzbWwreG1sJ10sXG4gICAgWydzc3QnLCAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJ10sXG4gICAgWydzdCcsICdhcHBsaWNhdGlvbi92bmQuc2FpbGluZ3RyYWNrZXIudHJhY2snXSxcbiAgICBbJ3N0YycsICdhcHBsaWNhdGlvbi92bmQuc3VuLnhtbC5jYWxjLnRlbXBsYXRlJ10sXG4gICAgWydzdGQnLCAnYXBwbGljYXRpb24vdm5kLnN1bi54bWwuZHJhdy50ZW1wbGF0ZSddLFxuICAgIFsnc3RmJywgJ2FwcGxpY2F0aW9uL3ZuZC53dC5zdGYnXSxcbiAgICBbJ3N0aScsICdhcHBsaWNhdGlvbi92bmQuc3VuLnhtbC5pbXByZXNzLnRlbXBsYXRlJ10sXG4gICAgWydzdGsnLCAnYXBwbGljYXRpb24vaHlwZXJzdHVkaW8nXSxcbiAgICBbJ3N0bCcsICdtb2RlbC9zdGwnXSxcbiAgICBbJ3N0cHgnLCAnbW9kZWwvc3RlcCt4bWwnXSxcbiAgICBbJ3N0cHh6JywgJ21vZGVsL3N0ZXAteG1sK3ppcCddLFxuICAgIFsnc3RweicsICdtb2RlbC9zdGVwK3ppcCddLFxuICAgIFsnc3RyJywgJ2FwcGxpY2F0aW9uL3ZuZC5wZy5mb3JtYXQnXSxcbiAgICBbJ3N0dycsICdhcHBsaWNhdGlvbi92bmQuc3VuLnhtbC53cml0ZXIudGVtcGxhdGUnXSxcbiAgICBbJ3N0eWwnLCAndGV4dC9zdHlsdXMnXSxcbiAgICBbJ3N0eWx1cycsICd0ZXh0L3N0eWx1cyddLFxuICAgIFsnc3ViJywgJ3RleHQvdm5kLmR2Yi5zdWJ0aXRsZSddLFxuICAgIFsnc3VzJywgJ2FwcGxpY2F0aW9uL3ZuZC5zdXMtY2FsZW5kYXInXSxcbiAgICBbJ3N1c3AnLCAnYXBwbGljYXRpb24vdm5kLnN1cy1jYWxlbmRhciddLFxuICAgIFsnc3Y0Y3BpbycsICdhcHBsaWNhdGlvbi94LXN2NGNwaW8nXSxcbiAgICBbJ3N2NGNyYycsICdhcHBsaWNhdGlvbi94LXN2NGNyYyddLFxuICAgIFsnc3ZjJywgJ2FwcGxpY2F0aW9uL3ZuZC5kdmIuc2VydmljZSddLFxuICAgIFsnc3ZkJywgJ2FwcGxpY2F0aW9uL3ZuZC5zdmQnXSxcbiAgICBbJ3N2ZycsICdpbWFnZS9zdmcreG1sJ10sXG4gICAgWydzdmd6JywgJ2ltYWdlL3N2Zyt4bWwnXSxcbiAgICBbJ3N3YScsICdhcHBsaWNhdGlvbi94LWRpcmVjdG9yJ10sXG4gICAgWydzd2YnLCAnYXBwbGljYXRpb24veC1zaG9ja3dhdmUtZmxhc2gnXSxcbiAgICBbJ3N3aScsICdhcHBsaWNhdGlvbi92bmQuYXJpc3RhbmV0d29ya3Muc3dpJ10sXG4gICAgWydzd2lkdGFnJywgJ2FwcGxpY2F0aW9uL3N3aWQreG1sJ10sXG4gICAgWydzeGMnLCAnYXBwbGljYXRpb24vdm5kLnN1bi54bWwuY2FsYyddLFxuICAgIFsnc3hkJywgJ2FwcGxpY2F0aW9uL3ZuZC5zdW4ueG1sLmRyYXcnXSxcbiAgICBbJ3N4ZycsICdhcHBsaWNhdGlvbi92bmQuc3VuLnhtbC53cml0ZXIuZ2xvYmFsJ10sXG4gICAgWydzeGknLCAnYXBwbGljYXRpb24vdm5kLnN1bi54bWwuaW1wcmVzcyddLFxuICAgIFsnc3htJywgJ2FwcGxpY2F0aW9uL3ZuZC5zdW4ueG1sLm1hdGgnXSxcbiAgICBbJ3N4dycsICdhcHBsaWNhdGlvbi92bmQuc3VuLnhtbC53cml0ZXInXSxcbiAgICBbJ3QnLCAndGV4dC90cm9mZiddLFxuICAgIFsndDMnLCAnYXBwbGljYXRpb24veC10M3ZtLWltYWdlJ10sXG4gICAgWyd0MzgnLCAnaW1hZ2UvdDM4J10sXG4gICAgWyd0YWdsZXQnLCAnYXBwbGljYXRpb24vdm5kLm15bmZjJ10sXG4gICAgWyd0YW8nLCAnYXBwbGljYXRpb24vdm5kLnRhby5pbnRlbnQtbW9kdWxlLWFyY2hpdmUnXSxcbiAgICBbJ3RhcCcsICdpbWFnZS92bmQudGVuY2VudC50YXAnXSxcbiAgICBbJ3RhcicsICdhcHBsaWNhdGlvbi94LXRhciddLFxuICAgIFsndGNhcCcsICdhcHBsaWNhdGlvbi92bmQuM2dwcDIudGNhcCddLFxuICAgIFsndGNsJywgJ2FwcGxpY2F0aW9uL3gtdGNsJ10sXG4gICAgWyd0ZCcsICdhcHBsaWNhdGlvbi91cmMtdGFyZ2V0ZGVzYyt4bWwnXSxcbiAgICBbJ3RlYWNoZXInLCAnYXBwbGljYXRpb24vdm5kLnNtYXJ0LnRlYWNoZXInXSxcbiAgICBbJ3RlaScsICdhcHBsaWNhdGlvbi90ZWkreG1sJ10sXG4gICAgWyd0ZWljb3JwdXMnLCAnYXBwbGljYXRpb24vdGVpK3htbCddLFxuICAgIFsndGV4JywgJ2FwcGxpY2F0aW9uL3gtdGV4J10sXG4gICAgWyd0ZXhpJywgJ2FwcGxpY2F0aW9uL3gtdGV4aW5mbyddLFxuICAgIFsndGV4aW5mbycsICdhcHBsaWNhdGlvbi94LXRleGluZm8nXSxcbiAgICBbJ3RleHQnLCAndGV4dC9wbGFpbiddLFxuICAgIFsndGZpJywgJ2FwcGxpY2F0aW9uL3RocmF1ZCt4bWwnXSxcbiAgICBbJ3RmbScsICdhcHBsaWNhdGlvbi94LXRleC10Zm0nXSxcbiAgICBbJ3RmeCcsICdpbWFnZS90aWZmLWZ4J10sXG4gICAgWyd0Z2EnLCAnaW1hZ2UveC10Z2EnXSxcbiAgICBbJ3RneicsICdhcHBsaWNhdGlvbi94LXRhciddLFxuICAgIFsndGhteCcsICdhcHBsaWNhdGlvbi92bmQubXMtb2ZmaWNldGhlbWUnXSxcbiAgICBbJ3RpZicsICdpbWFnZS90aWZmJ10sXG4gICAgWyd0aWZmJywgJ2ltYWdlL3RpZmYnXSxcbiAgICBbJ3RrJywgJ2FwcGxpY2F0aW9uL3gtdGNsJ10sXG4gICAgWyd0bW8nLCAnYXBwbGljYXRpb24vdm5kLnRtb2JpbGUtbGl2ZXR2J10sXG4gICAgWyd0b21sJywgJ2FwcGxpY2F0aW9uL3RvbWwnXSxcbiAgICBbJ3RvcnJlbnQnLCAnYXBwbGljYXRpb24veC1iaXR0b3JyZW50J10sXG4gICAgWyd0cGwnLCAnYXBwbGljYXRpb24vdm5kLmdyb292ZS10b29sLXRlbXBsYXRlJ10sXG4gICAgWyd0cHQnLCAnYXBwbGljYXRpb24vdm5kLnRyaWQudHB0J10sXG4gICAgWyd0cicsICd0ZXh0L3Ryb2ZmJ10sXG4gICAgWyd0cmEnLCAnYXBwbGljYXRpb24vdm5kLnRydWVhcHAnXSxcbiAgICBbJ3RyaWcnLCAnYXBwbGljYXRpb24vdHJpZyddLFxuICAgIFsndHJtJywgJ2FwcGxpY2F0aW9uL3gtbXN0ZXJtaW5hbCddLFxuICAgIFsndHMnLCAndmlkZW8vbXAydCddLFxuICAgIFsndHNkJywgJ2FwcGxpY2F0aW9uL3RpbWVzdGFtcGVkLWRhdGEnXSxcbiAgICBbJ3RzdicsICd0ZXh0L3RhYi1zZXBhcmF0ZWQtdmFsdWVzJ10sXG4gICAgWyd0dGMnLCAnZm9udC9jb2xsZWN0aW9uJ10sXG4gICAgWyd0dGYnLCAnZm9udC90dGYnXSxcbiAgICBbJ3R0bCcsICd0ZXh0L3R1cnRsZSddLFxuICAgIFsndHRtbCcsICdhcHBsaWNhdGlvbi90dG1sK3htbCddLFxuICAgIFsndHdkJywgJ2FwcGxpY2F0aW9uL3ZuZC5zaW10ZWNoLW1pbmRtYXBwZXInXSxcbiAgICBbJ3R3ZHMnLCAnYXBwbGljYXRpb24vdm5kLnNpbXRlY2gtbWluZG1hcHBlciddLFxuICAgIFsndHhkJywgJ2FwcGxpY2F0aW9uL3ZuZC5nZW5vbWF0aXgudHV4ZWRvJ10sXG4gICAgWyd0eGYnLCAnYXBwbGljYXRpb24vdm5kLm1vYml1cy50eGYnXSxcbiAgICBbJ3R4dCcsICd0ZXh0L3BsYWluJ10sXG4gICAgWyd1OGRzbicsICdtZXNzYWdlL2dsb2JhbC1kZWxpdmVyeS1zdGF0dXMnXSxcbiAgICBbJ3U4aGRyJywgJ21lc3NhZ2UvZ2xvYmFsLWhlYWRlcnMnXSxcbiAgICBbJ3U4bWRuJywgJ21lc3NhZ2UvZ2xvYmFsLWRpc3Bvc2l0aW9uLW5vdGlmaWNhdGlvbiddLFxuICAgIFsndThtc2cnLCAnbWVzc2FnZS9nbG9iYWwnXSxcbiAgICBbJ3UzMicsICdhcHBsaWNhdGlvbi94LWF1dGhvcndhcmUtYmluJ10sXG4gICAgWyd1YmonLCAnYXBwbGljYXRpb24vdWJqc29uJ10sXG4gICAgWyd1ZGViJywgJ2FwcGxpY2F0aW9uL3gtZGViaWFuLXBhY2thZ2UnXSxcbiAgICBbJ3VmZCcsICdhcHBsaWNhdGlvbi92bmQudWZkbCddLFxuICAgIFsndWZkbCcsICdhcHBsaWNhdGlvbi92bmQudWZkbCddLFxuICAgIFsndWx4JywgJ2FwcGxpY2F0aW9uL3gtZ2x1bHgnXSxcbiAgICBbJ3VtaicsICdhcHBsaWNhdGlvbi92bmQudW1hamluJ10sXG4gICAgWyd1bml0eXdlYicsICdhcHBsaWNhdGlvbi92bmQudW5pdHknXSxcbiAgICBbJ3VvbWwnLCAnYXBwbGljYXRpb24vdm5kLnVvbWwreG1sJ10sXG4gICAgWyd1cmknLCAndGV4dC91cmktbGlzdCddLFxuICAgIFsndXJpcycsICd0ZXh0L3VyaS1saXN0J10sXG4gICAgWyd1cmxzJywgJ3RleHQvdXJpLWxpc3QnXSxcbiAgICBbJ3VzZHonLCAnbW9kZWwvdm5kLnVzZHoremlwJ10sXG4gICAgWyd1c3RhcicsICdhcHBsaWNhdGlvbi94LXVzdGFyJ10sXG4gICAgWyd1dHonLCAnYXBwbGljYXRpb24vdm5kLnVpcS50aGVtZSddLFxuICAgIFsndXUnLCAndGV4dC94LXV1ZW5jb2RlJ10sXG4gICAgWyd1dmEnLCAnYXVkaW8vdm5kLmRlY2UuYXVkaW8nXSxcbiAgICBbJ3V2ZCcsICdhcHBsaWNhdGlvbi92bmQuZGVjZS5kYXRhJ10sXG4gICAgWyd1dmYnLCAnYXBwbGljYXRpb24vdm5kLmRlY2UuZGF0YSddLFxuICAgIFsndXZnJywgJ2ltYWdlL3ZuZC5kZWNlLmdyYXBoaWMnXSxcbiAgICBbJ3V2aCcsICd2aWRlby92bmQuZGVjZS5oZCddLFxuICAgIFsndXZpJywgJ2ltYWdlL3ZuZC5kZWNlLmdyYXBoaWMnXSxcbiAgICBbJ3V2bScsICd2aWRlby92bmQuZGVjZS5tb2JpbGUnXSxcbiAgICBbJ3V2cCcsICd2aWRlby92bmQuZGVjZS5wZCddLFxuICAgIFsndXZzJywgJ3ZpZGVvL3ZuZC5kZWNlLnNkJ10sXG4gICAgWyd1dnQnLCAnYXBwbGljYXRpb24vdm5kLmRlY2UudHRtbCt4bWwnXSxcbiAgICBbJ3V2dScsICd2aWRlby92bmQudXZ2dS5tcDQnXSxcbiAgICBbJ3V2dicsICd2aWRlby92bmQuZGVjZS52aWRlbyddLFxuICAgIFsndXZ2YScsICdhdWRpby92bmQuZGVjZS5hdWRpbyddLFxuICAgIFsndXZ2ZCcsICdhcHBsaWNhdGlvbi92bmQuZGVjZS5kYXRhJ10sXG4gICAgWyd1dnZmJywgJ2FwcGxpY2F0aW9uL3ZuZC5kZWNlLmRhdGEnXSxcbiAgICBbJ3V2dmcnLCAnaW1hZ2Uvdm5kLmRlY2UuZ3JhcGhpYyddLFxuICAgIFsndXZ2aCcsICd2aWRlby92bmQuZGVjZS5oZCddLFxuICAgIFsndXZ2aScsICdpbWFnZS92bmQuZGVjZS5ncmFwaGljJ10sXG4gICAgWyd1dnZtJywgJ3ZpZGVvL3ZuZC5kZWNlLm1vYmlsZSddLFxuICAgIFsndXZ2cCcsICd2aWRlby92bmQuZGVjZS5wZCddLFxuICAgIFsndXZ2cycsICd2aWRlby92bmQuZGVjZS5zZCddLFxuICAgIFsndXZ2dCcsICdhcHBsaWNhdGlvbi92bmQuZGVjZS50dG1sK3htbCddLFxuICAgIFsndXZ2dScsICd2aWRlby92bmQudXZ2dS5tcDQnXSxcbiAgICBbJ3V2dnYnLCAndmlkZW8vdm5kLmRlY2UudmlkZW8nXSxcbiAgICBbJ3V2dngnLCAnYXBwbGljYXRpb24vdm5kLmRlY2UudW5zcGVjaWZpZWQnXSxcbiAgICBbJ3V2dnonLCAnYXBwbGljYXRpb24vdm5kLmRlY2UuemlwJ10sXG4gICAgWyd1dngnLCAnYXBwbGljYXRpb24vdm5kLmRlY2UudW5zcGVjaWZpZWQnXSxcbiAgICBbJ3V2eicsICdhcHBsaWNhdGlvbi92bmQuZGVjZS56aXAnXSxcbiAgICBbJ3Zib3gnLCAnYXBwbGljYXRpb24veC12aXJ0dWFsYm94LXZib3gnXSxcbiAgICBbJ3Zib3gtZXh0cGFjaycsICdhcHBsaWNhdGlvbi94LXZpcnR1YWxib3gtdmJveC1leHRwYWNrJ10sXG4gICAgWyd2Y2FyZCcsICd0ZXh0L3ZjYXJkJ10sXG4gICAgWyd2Y2QnLCAnYXBwbGljYXRpb24veC1jZGxpbmsnXSxcbiAgICBbJ3ZjZicsICd0ZXh0L3gtdmNhcmQnXSxcbiAgICBbJ3ZjZycsICdhcHBsaWNhdGlvbi92bmQuZ3Jvb3ZlLXZjYXJkJ10sXG4gICAgWyd2Y3MnLCAndGV4dC94LXZjYWxlbmRhciddLFxuICAgIFsndmN4JywgJ2FwcGxpY2F0aW9uL3ZuZC52Y3gnXSxcbiAgICBbJ3ZkaScsICdhcHBsaWNhdGlvbi94LXZpcnR1YWxib3gtdmRpJ10sXG4gICAgWyd2ZHMnLCAnbW9kZWwvdm5kLnNhcC52ZHMnXSxcbiAgICBbJ3ZoZCcsICdhcHBsaWNhdGlvbi94LXZpcnR1YWxib3gtdmhkJ10sXG4gICAgWyd2aXMnLCAnYXBwbGljYXRpb24vdm5kLnZpc2lvbmFyeSddLFxuICAgIFsndml2JywgJ3ZpZGVvL3ZuZC52aXZvJ10sXG4gICAgWyd2bGMnLCAnYXBwbGljYXRpb24vdmlkZW9sYW4nXSxcbiAgICBbJ3ZtZGsnLCAnYXBwbGljYXRpb24veC12aXJ0dWFsYm94LXZtZGsnXSxcbiAgICBbJ3ZvYicsICd2aWRlby94LW1zLXZvYiddLFxuICAgIFsndm9yJywgJ2FwcGxpY2F0aW9uL3ZuZC5zdGFyZGl2aXNpb24ud3JpdGVyJ10sXG4gICAgWyd2b3gnLCAnYXBwbGljYXRpb24veC1hdXRob3J3YXJlLWJpbiddLFxuICAgIFsndnJtbCcsICdtb2RlbC92cm1sJ10sXG4gICAgWyd2c2QnLCAnYXBwbGljYXRpb24vdm5kLnZpc2lvJ10sXG4gICAgWyd2c2YnLCAnYXBwbGljYXRpb24vdm5kLnZzZiddLFxuICAgIFsndnNzJywgJ2FwcGxpY2F0aW9uL3ZuZC52aXNpbyddLFxuICAgIFsndnN0JywgJ2FwcGxpY2F0aW9uL3ZuZC52aXNpbyddLFxuICAgIFsndnN3JywgJ2FwcGxpY2F0aW9uL3ZuZC52aXNpbyddLFxuICAgIFsndnRmJywgJ2ltYWdlL3ZuZC52YWx2ZS5zb3VyY2UudGV4dHVyZSddLFxuICAgIFsndnR0JywgJ3RleHQvdnR0J10sXG4gICAgWyd2dHUnLCAnbW9kZWwvdm5kLnZ0dSddLFxuICAgIFsndnhtbCcsICdhcHBsaWNhdGlvbi92b2ljZXhtbCt4bWwnXSxcbiAgICBbJ3czZCcsICdhcHBsaWNhdGlvbi94LWRpcmVjdG9yJ10sXG4gICAgWyd3YWQnLCAnYXBwbGljYXRpb24veC1kb29tJ10sXG4gICAgWyd3YWRsJywgJ2FwcGxpY2F0aW9uL3ZuZC5zdW4ud2FkbCt4bWwnXSxcbiAgICBbJ3dhcicsICdhcHBsaWNhdGlvbi9qYXZhLWFyY2hpdmUnXSxcbiAgICBbJ3dhc20nLCAnYXBwbGljYXRpb24vd2FzbSddLFxuICAgIFsnd2F2JywgJ2F1ZGlvL3gtd2F2J10sXG4gICAgWyd3YXgnLCAnYXVkaW8veC1tcy13YXgnXSxcbiAgICBbJ3dibXAnLCAnaW1hZ2Uvdm5kLndhcC53Ym1wJ10sXG4gICAgWyd3YnMnLCAnYXBwbGljYXRpb24vdm5kLmNyaXRpY2FsdG9vbHMud2JzK3htbCddLFxuICAgIFsnd2J4bWwnLCAnYXBwbGljYXRpb24vd2J4bWwnXSxcbiAgICBbJ3djbScsICdhcHBsaWNhdGlvbi92bmQubXMtd29ya3MnXSxcbiAgICBbJ3dkYicsICdhcHBsaWNhdGlvbi92bmQubXMtd29ya3MnXSxcbiAgICBbJ3dkcCcsICdpbWFnZS92bmQubXMtcGhvdG8nXSxcbiAgICBbJ3dlYmEnLCAnYXVkaW8vd2VibSddLFxuICAgIFsnd2ViYXBwJywgJ2FwcGxpY2F0aW9uL3gtd2ViLWFwcC1tYW5pZmVzdCtqc29uJ10sXG4gICAgWyd3ZWJtJywgJ3ZpZGVvL3dlYm0nXSxcbiAgICBbJ3dlYm1hbmlmZXN0JywgJ2FwcGxpY2F0aW9uL21hbmlmZXN0K2pzb24nXSxcbiAgICBbJ3dlYnAnLCAnaW1hZ2Uvd2VicCddLFxuICAgIFsnd2cnLCAnYXBwbGljYXRpb24vdm5kLnBtaS53aWRnZXQnXSxcbiAgICBbJ3dndCcsICdhcHBsaWNhdGlvbi93aWRnZXQnXSxcbiAgICBbJ3drcycsICdhcHBsaWNhdGlvbi92bmQubXMtd29ya3MnXSxcbiAgICBbJ3dtJywgJ3ZpZGVvL3gtbXMtd20nXSxcbiAgICBbJ3dtYScsICdhdWRpby94LW1zLXdtYSddLFxuICAgIFsnd21kJywgJ2FwcGxpY2F0aW9uL3gtbXMtd21kJ10sXG4gICAgWyd3bWYnLCAnaW1hZ2Uvd21mJ10sXG4gICAgWyd3bWwnLCAndGV4dC92bmQud2FwLndtbCddLFxuICAgIFsnd21sYycsICdhcHBsaWNhdGlvbi93bWxjJ10sXG4gICAgWyd3bWxzJywgJ3RleHQvdm5kLndhcC53bWxzY3JpcHQnXSxcbiAgICBbJ3dtbHNjJywgJ2FwcGxpY2F0aW9uL3ZuZC53YXAud21sc2NyaXB0YyddLFxuICAgIFsnd212JywgJ3ZpZGVvL3gtbXMtd212J10sXG4gICAgWyd3bXgnLCAndmlkZW8veC1tcy13bXgnXSxcbiAgICBbJ3dteicsICdhcHBsaWNhdGlvbi94LW1zbWV0YWZpbGUnXSxcbiAgICBbJ3dvZmYnLCAnZm9udC93b2ZmJ10sXG4gICAgWyd3b2ZmMicsICdmb250L3dvZmYyJ10sXG4gICAgWyd3b3JkJywgJ2FwcGxpY2F0aW9uL21zd29yZCddLFxuICAgIFsnd3BkJywgJ2FwcGxpY2F0aW9uL3ZuZC53b3JkcGVyZmVjdCddLFxuICAgIFsnd3BsJywgJ2FwcGxpY2F0aW9uL3ZuZC5tcy13cGwnXSxcbiAgICBbJ3dwcycsICdhcHBsaWNhdGlvbi92bmQubXMtd29ya3MnXSxcbiAgICBbJ3dxZCcsICdhcHBsaWNhdGlvbi92bmQud3FkJ10sXG4gICAgWyd3cmknLCAnYXBwbGljYXRpb24veC1tc3dyaXRlJ10sXG4gICAgWyd3cmwnLCAnbW9kZWwvdnJtbCddLFxuICAgIFsnd3NjJywgJ21lc3NhZ2Uvdm5kLndmYS53c2MnXSxcbiAgICBbJ3dzZGwnLCAnYXBwbGljYXRpb24vd3NkbCt4bWwnXSxcbiAgICBbJ3dzcG9saWN5JywgJ2FwcGxpY2F0aW9uL3dzcG9saWN5K3htbCddLFxuICAgIFsnd3RiJywgJ2FwcGxpY2F0aW9uL3ZuZC53ZWJ0dXJibyddLFxuICAgIFsnd3Z4JywgJ3ZpZGVvL3gtbXMtd3Z4J10sXG4gICAgWyd4M2QnLCAnbW9kZWwveDNkK3htbCddLFxuICAgIFsneDNkYicsICdtb2RlbC94M2QrZmFzdGluZm9zZXQnXSxcbiAgICBbJ3gzZGJ6JywgJ21vZGVsL3gzZCtiaW5hcnknXSxcbiAgICBbJ3gzZHYnLCAnbW9kZWwveDNkLXZybWwnXSxcbiAgICBbJ3gzZHZ6JywgJ21vZGVsL3gzZCt2cm1sJ10sXG4gICAgWyd4M2R6JywgJ21vZGVsL3gzZCt4bWwnXSxcbiAgICBbJ3gzMicsICdhcHBsaWNhdGlvbi94LWF1dGhvcndhcmUtYmluJ10sXG4gICAgWyd4X2InLCAnbW9kZWwvdm5kLnBhcmFzb2xpZC50cmFuc21pdC5iaW5hcnknXSxcbiAgICBbJ3hfdCcsICdtb2RlbC92bmQucGFyYXNvbGlkLnRyYW5zbWl0LnRleHQnXSxcbiAgICBbJ3hhbWwnLCAnYXBwbGljYXRpb24veGFtbCt4bWwnXSxcbiAgICBbJ3hhcCcsICdhcHBsaWNhdGlvbi94LXNpbHZlcmxpZ2h0LWFwcCddLFxuICAgIFsneGFyJywgJ2FwcGxpY2F0aW9uL3ZuZC54YXJhJ10sXG4gICAgWyd4YXYnLCAnYXBwbGljYXRpb24veGNhcC1hdHQreG1sJ10sXG4gICAgWyd4YmFwJywgJ2FwcGxpY2F0aW9uL3gtbXMteGJhcCddLFxuICAgIFsneGJkJywgJ2FwcGxpY2F0aW9uL3ZuZC5mdWppeGVyb3guZG9jdXdvcmtzLmJpbmRlciddLFxuICAgIFsneGJtJywgJ2ltYWdlL3gteGJpdG1hcCddLFxuICAgIFsneGNhJywgJ2FwcGxpY2F0aW9uL3hjYXAtY2Fwcyt4bWwnXSxcbiAgICBbJ3hjcycsICdhcHBsaWNhdGlvbi9jYWxlbmRhcit4bWwnXSxcbiAgICBbJ3hkZicsICdhcHBsaWNhdGlvbi94Y2FwLWRpZmYreG1sJ10sXG4gICAgWyd4ZG0nLCAnYXBwbGljYXRpb24vdm5kLnN5bmNtbC5kbSt4bWwnXSxcbiAgICBbJ3hkcCcsICdhcHBsaWNhdGlvbi92bmQuYWRvYmUueGRwK3htbCddLFxuICAgIFsneGRzc2MnLCAnYXBwbGljYXRpb24vZHNzYyt4bWwnXSxcbiAgICBbJ3hkdycsICdhcHBsaWNhdGlvbi92bmQuZnVqaXhlcm94LmRvY3V3b3JrcyddLFxuICAgIFsneGVsJywgJ2FwcGxpY2F0aW9uL3hjYXAtZWwreG1sJ10sXG4gICAgWyd4ZW5jJywgJ2FwcGxpY2F0aW9uL3hlbmMreG1sJ10sXG4gICAgWyd4ZXInLCAnYXBwbGljYXRpb24vcGF0Y2gtb3BzLWVycm9yK3htbCddLFxuICAgIFsneGZkZicsICdhcHBsaWNhdGlvbi92bmQuYWRvYmUueGZkZiddLFxuICAgIFsneGZkbCcsICdhcHBsaWNhdGlvbi92bmQueGZkbCddLFxuICAgIFsneGh0JywgJ2FwcGxpY2F0aW9uL3hodG1sK3htbCddLFxuICAgIFsneGh0bWwnLCAnYXBwbGljYXRpb24veGh0bWwreG1sJ10sXG4gICAgWyd4aHZtbCcsICdhcHBsaWNhdGlvbi94dit4bWwnXSxcbiAgICBbJ3hpZicsICdpbWFnZS92bmQueGlmZiddLFxuICAgIFsneGwnLCAnYXBwbGljYXRpb24vZXhjZWwnXSxcbiAgICBbJ3hsYScsICdhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwnXSxcbiAgICBbJ3hsYW0nLCAnYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLmFkZGluLm1hY3JvRW5hYmxlZC4xMiddLFxuICAgIFsneGxjJywgJ2FwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbCddLFxuICAgIFsneGxmJywgJ2FwcGxpY2F0aW9uL3hsaWZmK3htbCddLFxuICAgIFsneGxtJywgJ2FwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbCddLFxuICAgIFsneGxzJywgJ2FwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbCddLFxuICAgIFsneGxzYicsICdhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuc2hlZXQuYmluYXJ5Lm1hY3JvRW5hYmxlZC4xMiddLFxuICAgIFsneGxzbScsICdhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuc2hlZXQubWFjcm9FbmFibGVkLjEyJ10sXG4gICAgWyd4bHN4JywgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0J10sXG4gICAgWyd4bHQnLCAnYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsJ10sXG4gICAgWyd4bHRtJywgJ2FwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC50ZW1wbGF0ZS5tYWNyb0VuYWJsZWQuMTInXSxcbiAgICBbJ3hsdHgnLCAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwudGVtcGxhdGUnXSxcbiAgICBbJ3hsdycsICdhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwnXSxcbiAgICBbJ3htJywgJ2F1ZGlvL3htJ10sXG4gICAgWyd4bWwnLCAnYXBwbGljYXRpb24veG1sJ10sXG4gICAgWyd4bnMnLCAnYXBwbGljYXRpb24veGNhcC1ucyt4bWwnXSxcbiAgICBbJ3hvJywgJ2FwcGxpY2F0aW9uL3ZuZC5vbHBjLXN1Z2FyJ10sXG4gICAgWyd4b3AnLCAnYXBwbGljYXRpb24veG9wK3htbCddLFxuICAgIFsneHBpJywgJ2FwcGxpY2F0aW9uL3gteHBpbnN0YWxsJ10sXG4gICAgWyd4cGwnLCAnYXBwbGljYXRpb24veHByb2MreG1sJ10sXG4gICAgWyd4cG0nLCAnaW1hZ2UveC14cGl4bWFwJ10sXG4gICAgWyd4cHInLCAnYXBwbGljYXRpb24vdm5kLmlzLXhwciddLFxuICAgIFsneHBzJywgJ2FwcGxpY2F0aW9uL3ZuZC5tcy14cHNkb2N1bWVudCddLFxuICAgIFsneHB3JywgJ2FwcGxpY2F0aW9uL3ZuZC5pbnRlcmNvbi5mb3JtbmV0J10sXG4gICAgWyd4cHgnLCAnYXBwbGljYXRpb24vdm5kLmludGVyY29uLmZvcm1uZXQnXSxcbiAgICBbJ3hzZCcsICdhcHBsaWNhdGlvbi94bWwnXSxcbiAgICBbJ3hzbCcsICdhcHBsaWNhdGlvbi94bWwnXSxcbiAgICBbJ3hzbHQnLCAnYXBwbGljYXRpb24veHNsdCt4bWwnXSxcbiAgICBbJ3hzbScsICdhcHBsaWNhdGlvbi92bmQuc3luY21sK3htbCddLFxuICAgIFsneHNwZicsICdhcHBsaWNhdGlvbi94c3BmK3htbCddLFxuICAgIFsneHVsJywgJ2FwcGxpY2F0aW9uL3ZuZC5tb3ppbGxhLnh1bCt4bWwnXSxcbiAgICBbJ3h2bScsICdhcHBsaWNhdGlvbi94dit4bWwnXSxcbiAgICBbJ3h2bWwnLCAnYXBwbGljYXRpb24veHYreG1sJ10sXG4gICAgWyd4d2QnLCAnaW1hZ2UveC14d2luZG93ZHVtcCddLFxuICAgIFsneHl6JywgJ2NoZW1pY2FsL3gteHl6J10sXG4gICAgWyd4eicsICdhcHBsaWNhdGlvbi94LXh6J10sXG4gICAgWyd5YW1sJywgJ3RleHQveWFtbCddLFxuICAgIFsneWFuZycsICdhcHBsaWNhdGlvbi95YW5nJ10sXG4gICAgWyd5aW4nLCAnYXBwbGljYXRpb24veWluK3htbCddLFxuICAgIFsneW1sJywgJ3RleHQveWFtbCddLFxuICAgIFsneW1wJywgJ3RleHQveC1zdXNlLXltcCddLFxuICAgIFsneicsICdhcHBsaWNhdGlvbi94LWNvbXByZXNzJ10sXG4gICAgWyd6MScsICdhcHBsaWNhdGlvbi94LXptYWNoaW5lJ10sXG4gICAgWyd6MicsICdhcHBsaWNhdGlvbi94LXptYWNoaW5lJ10sXG4gICAgWyd6MycsICdhcHBsaWNhdGlvbi94LXptYWNoaW5lJ10sXG4gICAgWyd6NCcsICdhcHBsaWNhdGlvbi94LXptYWNoaW5lJ10sXG4gICAgWyd6NScsICdhcHBsaWNhdGlvbi94LXptYWNoaW5lJ10sXG4gICAgWyd6NicsICdhcHBsaWNhdGlvbi94LXptYWNoaW5lJ10sXG4gICAgWyd6NycsICdhcHBsaWNhdGlvbi94LXptYWNoaW5lJ10sXG4gICAgWyd6OCcsICdhcHBsaWNhdGlvbi94LXptYWNoaW5lJ10sXG4gICAgWyd6YXonLCAnYXBwbGljYXRpb24vdm5kLnp6YXp6LmRlY2sreG1sJ10sXG4gICAgWyd6aXAnLCAnYXBwbGljYXRpb24vemlwJ10sXG4gICAgWyd6aXInLCAnYXBwbGljYXRpb24vdm5kLnp1bCddLFxuICAgIFsnemlyeicsICdhcHBsaWNhdGlvbi92bmQuenVsJ10sXG4gICAgWyd6bW0nLCAnYXBwbGljYXRpb24vdm5kLmhhbmRoZWxkLWVudGVydGFpbm1lbnQreG1sJ10sXG4gICAgWyd6c2gnLCAndGV4dC94LXNjcmlwdHpzaCddXG5dKTtcbmV4cG9ydCBmdW5jdGlvbiB0b0ZpbGVXaXRoUGF0aChmaWxlLCBwYXRoLCBoKSB7XG4gICAgY29uc3QgZiA9IHdpdGhNaW1lVHlwZShmaWxlKTtcbiAgICBjb25zdCB7IHdlYmtpdFJlbGF0aXZlUGF0aCB9ID0gZmlsZTtcbiAgICBjb25zdCBwID0gdHlwZW9mIHBhdGggPT09ICdzdHJpbmcnXG4gICAgICAgID8gcGF0aFxuICAgICAgICAvLyBJZiA8aW5wdXQgd2Via2l0ZGlyZWN0b3J5PiBpcyBzZXQsXG4gICAgICAgIC8vIHRoZSBGaWxlIHdpbGwgaGF2ZSBhIHt3ZWJraXRSZWxhdGl2ZVBhdGh9IHByb3BlcnR5XG4gICAgICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9IVE1MSW5wdXRFbGVtZW50L3dlYmtpdGRpcmVjdG9yeVxuICAgICAgICA6IHR5cGVvZiB3ZWJraXRSZWxhdGl2ZVBhdGggPT09ICdzdHJpbmcnICYmIHdlYmtpdFJlbGF0aXZlUGF0aC5sZW5ndGggPiAwXG4gICAgICAgICAgICA/IHdlYmtpdFJlbGF0aXZlUGF0aFxuICAgICAgICAgICAgOiBgLi8ke2ZpbGUubmFtZX1gO1xuICAgIGlmICh0eXBlb2YgZi5wYXRoICE9PSAnc3RyaW5nJykgeyAvLyBvbiBlbGVjdHJvbiwgcGF0aCBpcyBhbHJlYWR5IHNldCB0byB0aGUgYWJzb2x1dGUgcGF0aFxuICAgICAgICBzZXRPYmpQcm9wKGYsICdwYXRoJywgcCk7XG4gICAgfVxuICAgIGlmIChoICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGYsICdoYW5kbGUnLCB7XG4gICAgICAgICAgICB2YWx1ZTogaCxcbiAgICAgICAgICAgIHdyaXRhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvLyBBbHdheXMgcG9wdWxhdGUgYSByZWxhdGl2ZSBwYXRoIHNvIHRoYXQgZXZlbiBlbGVjdHJvbiBhcHBzIGhhdmUgYWNjZXNzIHRvIGEgcmVsYXRpdmVQYXRoIHZhbHVlXG4gICAgc2V0T2JqUHJvcChmLCAncmVsYXRpdmVQYXRoJywgcCk7XG4gICAgcmV0dXJuIGY7XG59XG5mdW5jdGlvbiB3aXRoTWltZVR5cGUoZmlsZSkge1xuICAgIGNvbnN0IHsgbmFtZSB9ID0gZmlsZTtcbiAgICBjb25zdCBoYXNFeHRlbnNpb24gPSBuYW1lICYmIG5hbWUubGFzdEluZGV4T2YoJy4nKSAhPT0gLTE7XG4gICAgaWYgKGhhc0V4dGVuc2lvbiAmJiAhZmlsZS50eXBlKSB7XG4gICAgICAgIGNvbnN0IGV4dCA9IG5hbWUuc3BsaXQoJy4nKVxuICAgICAgICAgICAgLnBvcCgpLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGNvbnN0IHR5cGUgPSBDT01NT05fTUlNRV9UWVBFUy5nZXQoZXh0KTtcbiAgICAgICAgaWYgKHR5cGUpIHtcbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShmaWxlLCAndHlwZScsIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogdHlwZSxcbiAgICAgICAgICAgICAgICB3cml0YWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmlsZTtcbn1cbmZ1bmN0aW9uIHNldE9ialByb3AoZiwga2V5LCB2YWx1ZSkge1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShmLCBrZXksIHtcbiAgICAgICAgdmFsdWUsXG4gICAgICAgIHdyaXRhYmxlOiBmYWxzZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiBmYWxzZSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZVxuICAgIH0pO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZmlsZS5qcy5tYXAiLCJpbXBvcnQgeyBfX2F3YWl0ZXIgfSBmcm9tIFwidHNsaWJcIjtcbmltcG9ydCB7IHRvRmlsZVdpdGhQYXRoIH0gZnJvbSAnLi9maWxlJztcbmNvbnN0IEZJTEVTX1RPX0lHTk9SRSA9IFtcbiAgICAvLyBUaHVtYm5haWwgY2FjaGUgZmlsZXMgZm9yIG1hY09TIGFuZCBXaW5kb3dzXG4gICAgJy5EU19TdG9yZScsIC8vIG1hY09zXG4gICAgJ1RodW1icy5kYicgLy8gV2luZG93c1xuXTtcbi8qKlxuICogQ29udmVydCBhIERyYWdFdmVudCdzIERhdGFUcmFzZmVyIG9iamVjdCB0byBhIGxpc3Qgb2YgRmlsZSBvYmplY3RzXG4gKiBOT1RFOiBJZiBzb21lIG9mIHRoZSBpdGVtcyBhcmUgZm9sZGVycyxcbiAqIGV2ZXJ5dGhpbmcgd2lsbCBiZSBmbGF0dGVuZWQgYW5kIHBsYWNlZCBpbiB0aGUgc2FtZSBsaXN0IGJ1dCB0aGUgcGF0aHMgd2lsbCBiZSBrZXB0IGFzIGEge3BhdGh9IHByb3BlcnR5LlxuICpcbiAqIEVYUEVSSU1FTlRBTDogQSBsaXN0IG9mIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9GaWxlU3lzdGVtSGFuZGxlIG9iamVjdHMgY2FuIGFsc28gYmUgcGFzc2VkIGFzIGFuIGFyZ1xuICogYW5kIGEgbGlzdCBvZiBGaWxlIG9iamVjdHMgd2lsbCBiZSByZXR1cm5lZC5cbiAqXG4gKiBAcGFyYW0gZXZ0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmcm9tRXZlbnQoZXZ0KSB7XG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgaWYgKGlzT2JqZWN0KGV2dCkgJiYgaXNEYXRhVHJhbnNmZXIoZXZ0LmRhdGFUcmFuc2ZlcikpIHtcbiAgICAgICAgICAgIHJldHVybiBnZXREYXRhVHJhbnNmZXJGaWxlcyhldnQuZGF0YVRyYW5zZmVyLCBldnQudHlwZSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoaXNDaGFuZ2VFdnQoZXZ0KSkge1xuICAgICAgICAgICAgcmV0dXJuIGdldElucHV0RmlsZXMoZXZ0KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChBcnJheS5pc0FycmF5KGV2dCkgJiYgZXZ0LmV2ZXJ5KGl0ZW0gPT4gJ2dldEZpbGUnIGluIGl0ZW0gJiYgdHlwZW9mIGl0ZW0uZ2V0RmlsZSA9PT0gJ2Z1bmN0aW9uJykpIHtcbiAgICAgICAgICAgIHJldHVybiBnZXRGc0hhbmRsZUZpbGVzKGV2dCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFtdO1xuICAgIH0pO1xufVxuZnVuY3Rpb24gaXNEYXRhVHJhbnNmZXIodmFsdWUpIHtcbiAgICByZXR1cm4gaXNPYmplY3QodmFsdWUpO1xufVxuZnVuY3Rpb24gaXNDaGFuZ2VFdnQodmFsdWUpIHtcbiAgICByZXR1cm4gaXNPYmplY3QodmFsdWUpICYmIGlzT2JqZWN0KHZhbHVlLnRhcmdldCk7XG59XG5mdW5jdGlvbiBpc09iamVjdCh2KSB7XG4gICAgcmV0dXJuIHR5cGVvZiB2ID09PSAnb2JqZWN0JyAmJiB2ICE9PSBudWxsO1xufVxuZnVuY3Rpb24gZ2V0SW5wdXRGaWxlcyhldnQpIHtcbiAgICByZXR1cm4gZnJvbUxpc3QoZXZ0LnRhcmdldC5maWxlcykubWFwKGZpbGUgPT4gdG9GaWxlV2l0aFBhdGgoZmlsZSkpO1xufVxuLy8gRWUgZXhwZWN0IGVhY2ggaGFuZGxlIHRvIGJlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9GaWxlU3lzdGVtRmlsZUhhbmRsZVxuZnVuY3Rpb24gZ2V0RnNIYW5kbGVGaWxlcyhoYW5kbGVzKSB7XG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3QgZmlsZXMgPSB5aWVsZCBQcm9taXNlLmFsbChoYW5kbGVzLm1hcChoID0+IGguZ2V0RmlsZSgpKSk7XG4gICAgICAgIHJldHVybiBmaWxlcy5tYXAoZmlsZSA9PiB0b0ZpbGVXaXRoUGF0aChmaWxlKSk7XG4gICAgfSk7XG59XG5mdW5jdGlvbiBnZXREYXRhVHJhbnNmZXJGaWxlcyhkdCwgdHlwZSkge1xuICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIC8vIElFMTEgZG9lcyBub3Qgc3VwcG9ydCBkYXRhVHJhbnNmZXIuaXRlbXNcbiAgICAgICAgLy8gU2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9EYXRhVHJhbnNmZXIvaXRlbXMjQnJvd3Nlcl9jb21wYXRpYmlsaXR5XG4gICAgICAgIGlmIChkdC5pdGVtcykge1xuICAgICAgICAgICAgY29uc3QgaXRlbXMgPSBmcm9tTGlzdChkdC5pdGVtcylcbiAgICAgICAgICAgICAgICAuZmlsdGVyKGl0ZW0gPT4gaXRlbS5raW5kID09PSAnZmlsZScpO1xuICAgICAgICAgICAgLy8gQWNjb3JkaW5nIHRvIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL2RuZC5odG1sI2RuZGV2ZW50cyxcbiAgICAgICAgICAgIC8vIG9ubHkgJ2RyYWdzdGFydCcgYW5kICdkcm9wJyBoYXMgYWNjZXNzIHRvIHRoZSBkYXRhIChzb3VyY2Ugbm9kZSlcbiAgICAgICAgICAgIGlmICh0eXBlICE9PSAnZHJvcCcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaXRlbXM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBmaWxlcyA9IHlpZWxkIFByb21pc2UuYWxsKGl0ZW1zLm1hcCh0b0ZpbGVQcm9taXNlcykpO1xuICAgICAgICAgICAgcmV0dXJuIG5vSWdub3JlZEZpbGVzKGZsYXR0ZW4oZmlsZXMpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbm9JZ25vcmVkRmlsZXMoZnJvbUxpc3QoZHQuZmlsZXMpXG4gICAgICAgICAgICAubWFwKGZpbGUgPT4gdG9GaWxlV2l0aFBhdGgoZmlsZSkpKTtcbiAgICB9KTtcbn1cbmZ1bmN0aW9uIG5vSWdub3JlZEZpbGVzKGZpbGVzKSB7XG4gICAgcmV0dXJuIGZpbGVzLmZpbHRlcihmaWxlID0+IEZJTEVTX1RPX0lHTk9SRS5pbmRleE9mKGZpbGUubmFtZSkgPT09IC0xKTtcbn1cbi8vIElFMTEgZG9lcyBub3Qgc3VwcG9ydCBBcnJheS5mcm9tKClcbi8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL0FycmF5L2Zyb20jQnJvd3Nlcl9jb21wYXRpYmlsaXR5XG4vLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvRmlsZUxpc3Rcbi8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9EYXRhVHJhbnNmZXJJdGVtTGlzdFxuZnVuY3Rpb24gZnJvbUxpc3QoaXRlbXMpIHtcbiAgICBpZiAoaXRlbXMgPT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgICBjb25zdCBmaWxlcyA9IFtdO1xuICAgIC8vIHRzbGludDpkaXNhYmxlOiBwcmVmZXItZm9yLW9mXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpdGVtcy5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBmaWxlID0gaXRlbXNbaV07XG4gICAgICAgIGZpbGVzLnB1c2goZmlsZSk7XG4gICAgfVxuICAgIHJldHVybiBmaWxlcztcbn1cbi8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9EYXRhVHJhbnNmZXJJdGVtXG5mdW5jdGlvbiB0b0ZpbGVQcm9taXNlcyhpdGVtKSB7XG4gICAgaWYgKHR5cGVvZiBpdGVtLndlYmtpdEdldEFzRW50cnkgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmV0dXJuIGZyb21EYXRhVHJhbnNmZXJJdGVtKGl0ZW0pO1xuICAgIH1cbiAgICBjb25zdCBlbnRyeSA9IGl0ZW0ud2Via2l0R2V0QXNFbnRyeSgpO1xuICAgIC8vIFNhZmFyaSBzdXBwb3J0cyBkcm9wcGluZyBhbiBpbWFnZSBub2RlIGZyb20gYSBkaWZmZXJlbnQgd2luZG93IGFuZCBjYW4gYmUgcmV0cmlldmVkIHVzaW5nXG4gICAgLy8gdGhlIERhdGFUcmFuc2Zlckl0ZW0uZ2V0QXNGaWxlKCkgQVBJXG4gICAgLy8gTk9URTogRmlsZVN5c3RlbUVudHJ5LmZpbGUoKSB0aHJvd3MgaWYgdHJ5aW5nIHRvIGdldCB0aGUgZmlsZVxuICAgIGlmIChlbnRyeSAmJiBlbnRyeS5pc0RpcmVjdG9yeSkge1xuICAgICAgICByZXR1cm4gZnJvbURpckVudHJ5KGVudHJ5KTtcbiAgICB9XG4gICAgcmV0dXJuIGZyb21EYXRhVHJhbnNmZXJJdGVtKGl0ZW0sIGVudHJ5KTtcbn1cbmZ1bmN0aW9uIGZsYXR0ZW4oaXRlbXMpIHtcbiAgICByZXR1cm4gaXRlbXMucmVkdWNlKChhY2MsIGZpbGVzKSA9PiBbXG4gICAgICAgIC4uLmFjYyxcbiAgICAgICAgLi4uKEFycmF5LmlzQXJyYXkoZmlsZXMpID8gZmxhdHRlbihmaWxlcykgOiBbZmlsZXNdKVxuICAgIF0sIFtdKTtcbn1cbmZ1bmN0aW9uIGZyb21EYXRhVHJhbnNmZXJJdGVtKGl0ZW0sIGVudHJ5KSB7XG4gICAgdmFyIF9hO1xuICAgIGlmICh0eXBlb2YgaXRlbS5nZXRBc0ZpbGVTeXN0ZW1IYW5kbGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmV0dXJuIGl0ZW0uZ2V0QXNGaWxlU3lzdGVtSGFuZGxlKClcbiAgICAgICAgICAgIC50aGVuKChoKSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCBmaWxlID0geWllbGQgaC5nZXRGaWxlKCk7XG4gICAgICAgICAgICBmaWxlLmhhbmRsZSA9IGg7XG4gICAgICAgICAgICByZXR1cm4gdG9GaWxlV2l0aFBhdGgoZmlsZSk7XG4gICAgICAgIH0pKTtcbiAgICB9XG4gICAgY29uc3QgZmlsZSA9IGl0ZW0uZ2V0QXNGaWxlKCk7XG4gICAgaWYgKCFmaWxlKSB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChgJHtpdGVtfSBpcyBub3QgYSBGaWxlYCk7XG4gICAgfVxuICAgIGNvbnN0IGZ3cCA9IHRvRmlsZVdpdGhQYXRoKGZpbGUsIChfYSA9IGVudHJ5ID09PSBudWxsIHx8IGVudHJ5ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlbnRyeS5mdWxsUGF0aCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogdW5kZWZpbmVkKTtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGZ3cCk7XG59XG4vLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvRmlsZVN5c3RlbUVudHJ5XG5mdW5jdGlvbiBmcm9tRW50cnkoZW50cnkpIHtcbiAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICByZXR1cm4gZW50cnkuaXNEaXJlY3RvcnkgPyBmcm9tRGlyRW50cnkoZW50cnkpIDogZnJvbUZpbGVFbnRyeShlbnRyeSk7XG4gICAgfSk7XG59XG4vLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvRmlsZVN5c3RlbURpcmVjdG9yeUVudHJ5XG5mdW5jdGlvbiBmcm9tRGlyRW50cnkoZW50cnkpIHtcbiAgICBjb25zdCByZWFkZXIgPSBlbnRyeS5jcmVhdGVSZWFkZXIoKTtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICBjb25zdCBlbnRyaWVzID0gW107XG4gICAgICAgIGZ1bmN0aW9uIHJlYWRFbnRyaWVzKCkge1xuICAgICAgICAgICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0ZpbGVTeXN0ZW1EaXJlY3RvcnlFbnRyeS9jcmVhdGVSZWFkZXJcbiAgICAgICAgICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9GaWxlU3lzdGVtRGlyZWN0b3J5UmVhZGVyL3JlYWRFbnRyaWVzXG4gICAgICAgICAgICByZWFkZXIucmVhZEVudHJpZXMoKGJhdGNoKSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFiYXRjaC5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gRG9uZSByZWFkaW5nIGRpcmVjdG9yeVxuICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZmlsZXMgPSB5aWVsZCBQcm9taXNlLmFsbChlbnRyaWVzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoZmlsZXMpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpdGVtcyA9IFByb21pc2UuYWxsKGJhdGNoLm1hcChmcm9tRW50cnkpKTtcbiAgICAgICAgICAgICAgICAgICAgZW50cmllcy5wdXNoKGl0ZW1zKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gQ29udGludWUgcmVhZGluZ1xuICAgICAgICAgICAgICAgICAgICByZWFkRW50cmllcygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLCAoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZWFkRW50cmllcygpO1xuICAgIH0pO1xufVxuLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0ZpbGVTeXN0ZW1GaWxlRW50cnlcbmZ1bmN0aW9uIGZyb21GaWxlRW50cnkoZW50cnkpIHtcbiAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgZW50cnkuZmlsZSgoZmlsZSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZ3cCA9IHRvRmlsZVdpdGhQYXRoKGZpbGUsIGVudHJ5LmZ1bGxQYXRoKTtcbiAgICAgICAgICAgICAgICByZXNvbHZlKGZ3cCk7XG4gICAgICAgICAgICB9LCAoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1maWxlLXNlbGVjdG9yLmpzLm1hcCIsIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5leHBvcnRzLmRlZmF1bHQgPSBmdW5jdGlvbiAoZmlsZSwgYWNjZXB0ZWRGaWxlcykge1xuICBpZiAoZmlsZSAmJiBhY2NlcHRlZEZpbGVzKSB7XG4gICAgdmFyIGFjY2VwdGVkRmlsZXNBcnJheSA9IEFycmF5LmlzQXJyYXkoYWNjZXB0ZWRGaWxlcykgPyBhY2NlcHRlZEZpbGVzIDogYWNjZXB0ZWRGaWxlcy5zcGxpdCgnLCcpO1xuXG4gICAgaWYgKGFjY2VwdGVkRmlsZXNBcnJheS5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHZhciBmaWxlTmFtZSA9IGZpbGUubmFtZSB8fCAnJztcbiAgICB2YXIgbWltZVR5cGUgPSAoZmlsZS50eXBlIHx8ICcnKS50b0xvd2VyQ2FzZSgpO1xuICAgIHZhciBiYXNlTWltZVR5cGUgPSBtaW1lVHlwZS5yZXBsYWNlKC9cXC8uKiQvLCAnJyk7XG4gICAgcmV0dXJuIGFjY2VwdGVkRmlsZXNBcnJheS5zb21lKGZ1bmN0aW9uICh0eXBlKSB7XG4gICAgICB2YXIgdmFsaWRUeXBlID0gdHlwZS50cmltKCkudG9Mb3dlckNhc2UoKTtcblxuICAgICAgaWYgKHZhbGlkVHlwZS5jaGFyQXQoMCkgPT09ICcuJykge1xuICAgICAgICByZXR1cm4gZmlsZU5hbWUudG9Mb3dlckNhc2UoKS5lbmRzV2l0aCh2YWxpZFR5cGUpO1xuICAgICAgfSBlbHNlIGlmICh2YWxpZFR5cGUuZW5kc1dpdGgoJy8qJykpIHtcbiAgICAgICAgLy8gVGhpcyBpcyBzb21ldGhpbmcgbGlrZSBhIGltYWdlLyogbWltZSB0eXBlXG4gICAgICAgIHJldHVybiBiYXNlTWltZVR5cGUgPT09IHZhbGlkVHlwZS5yZXBsYWNlKC9cXC8uKiQvLCAnJyk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBtaW1lVHlwZSA9PT0gdmFsaWRUeXBlO1xuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59OyIsImltcG9ydCBfYWNjZXB0cyBmcm9tIFwiYXR0ci1hY2NlcHRcIjtcblxuY29uc3QgYWNjZXB0cyA9IHR5cGVvZiBfYWNjZXB0cyA9PT0gXCJmdW5jdGlvblwiID8gX2FjY2VwdHMgOiBfYWNjZXB0cy5kZWZhdWx0O1xuXG4vLyBFcnJvciBjb2Rlc1xuZXhwb3J0IGNvbnN0IEZJTEVfSU5WQUxJRF9UWVBFID0gXCJmaWxlLWludmFsaWQtdHlwZVwiO1xuZXhwb3J0IGNvbnN0IEZJTEVfVE9PX0xBUkdFID0gXCJmaWxlLXRvby1sYXJnZVwiO1xuZXhwb3J0IGNvbnN0IEZJTEVfVE9PX1NNQUxMID0gXCJmaWxlLXRvby1zbWFsbFwiO1xuZXhwb3J0IGNvbnN0IFRPT19NQU5ZX0ZJTEVTID0gXCJ0b28tbWFueS1maWxlc1wiO1xuXG5leHBvcnQgY29uc3QgRXJyb3JDb2RlID0ge1xuICBGaWxlSW52YWxpZFR5cGU6IEZJTEVfSU5WQUxJRF9UWVBFLFxuICBGaWxlVG9vTGFyZ2U6IEZJTEVfVE9PX0xBUkdFLFxuICBGaWxlVG9vU21hbGw6IEZJTEVfVE9PX1NNQUxMLFxuICBUb29NYW55RmlsZXM6IFRPT19NQU5ZX0ZJTEVTLFxufTtcblxuLyoqXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGFjY2VwdFxuICovXG5leHBvcnQgY29uc3QgZ2V0SW52YWxpZFR5cGVSZWplY3Rpb25FcnIgPSAoYWNjZXB0ID0gXCJcIikgPT4ge1xuICBjb25zdCBhY2NlcHRBcnIgPSBhY2NlcHQuc3BsaXQoXCIsXCIpO1xuICBjb25zdCBtc2cgPVxuICAgIGFjY2VwdEFyci5sZW5ndGggPiAxID8gYG9uZSBvZiAke2FjY2VwdEFyci5qb2luKFwiLCBcIil9YCA6IGFjY2VwdEFyclswXTtcblxuICByZXR1cm4ge1xuICAgIGNvZGU6IEZJTEVfSU5WQUxJRF9UWVBFLFxuICAgIG1lc3NhZ2U6IGBGaWxlIHR5cGUgbXVzdCBiZSAke21zZ31gLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFRvb0xhcmdlUmVqZWN0aW9uRXJyID0gKG1heFNpemUpID0+IHtcbiAgcmV0dXJuIHtcbiAgICBjb2RlOiBGSUxFX1RPT19MQVJHRSxcbiAgICBtZXNzYWdlOiBgRmlsZSBpcyBsYXJnZXIgdGhhbiAke21heFNpemV9ICR7XG4gICAgICBtYXhTaXplID09PSAxID8gXCJieXRlXCIgOiBcImJ5dGVzXCJcbiAgICB9YCxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRUb29TbWFsbFJlamVjdGlvbkVyciA9IChtaW5TaXplKSA9PiB7XG4gIHJldHVybiB7XG4gICAgY29kZTogRklMRV9UT09fU01BTEwsXG4gICAgbWVzc2FnZTogYEZpbGUgaXMgc21hbGxlciB0aGFuICR7bWluU2l6ZX0gJHtcbiAgICAgIG1pblNpemUgPT09IDEgPyBcImJ5dGVcIiA6IFwiYnl0ZXNcIlxuICAgIH1gLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IFRPT19NQU5ZX0ZJTEVTX1JFSkVDVElPTiA9IHtcbiAgY29kZTogVE9PX01BTllfRklMRVMsXG4gIG1lc3NhZ2U6IFwiVG9vIG1hbnkgZmlsZXNcIixcbn07XG5cbi8qKlxuICogQ2hlY2sgaWYgZmlsZSBpcyBhY2NlcHRlZC5cbiAqXG4gKiBGaXJlZm94IHZlcnNpb25zIHByaW9yIHRvIDUzIHJldHVybiBhIGJvZ3VzIE1JTUUgdHlwZSBmb3IgZXZlcnkgZmlsZSBkcmFnLFxuICogc28gZHJhZ292ZXJzIHdpdGggdGhhdCBNSU1FIHR5cGUgd2lsbCBhbHdheXMgYmUgYWNjZXB0ZWQuXG4gKlxuICogQHBhcmFtIHtGaWxlfSBmaWxlXG4gKiBAcGFyYW0ge3N0cmluZ30gYWNjZXB0XG4gKiBAcmV0dXJuc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZmlsZUFjY2VwdGVkKGZpbGUsIGFjY2VwdCkge1xuICBjb25zdCBpc0FjY2VwdGFibGUgPVxuICAgIGZpbGUudHlwZSA9PT0gXCJhcHBsaWNhdGlvbi94LW1vei1maWxlXCIgfHwgYWNjZXB0cyhmaWxlLCBhY2NlcHQpO1xuICByZXR1cm4gW1xuICAgIGlzQWNjZXB0YWJsZSxcbiAgICBpc0FjY2VwdGFibGUgPyBudWxsIDogZ2V0SW52YWxpZFR5cGVSZWplY3Rpb25FcnIoYWNjZXB0KSxcbiAgXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbGVNYXRjaFNpemUoZmlsZSwgbWluU2l6ZSwgbWF4U2l6ZSkge1xuICBpZiAoaXNEZWZpbmVkKGZpbGUuc2l6ZSkpIHtcbiAgICBpZiAoaXNEZWZpbmVkKG1pblNpemUpICYmIGlzRGVmaW5lZChtYXhTaXplKSkge1xuICAgICAgaWYgKGZpbGUuc2l6ZSA+IG1heFNpemUpIHJldHVybiBbZmFsc2UsIGdldFRvb0xhcmdlUmVqZWN0aW9uRXJyKG1heFNpemUpXTtcbiAgICAgIGlmIChmaWxlLnNpemUgPCBtaW5TaXplKSByZXR1cm4gW2ZhbHNlLCBnZXRUb29TbWFsbFJlamVjdGlvbkVycihtaW5TaXplKV07XG4gICAgfSBlbHNlIGlmIChpc0RlZmluZWQobWluU2l6ZSkgJiYgZmlsZS5zaXplIDwgbWluU2l6ZSlcbiAgICAgIHJldHVybiBbZmFsc2UsIGdldFRvb1NtYWxsUmVqZWN0aW9uRXJyKG1pblNpemUpXTtcbiAgICBlbHNlIGlmIChpc0RlZmluZWQobWF4U2l6ZSkgJiYgZmlsZS5zaXplID4gbWF4U2l6ZSlcbiAgICAgIHJldHVybiBbZmFsc2UsIGdldFRvb0xhcmdlUmVqZWN0aW9uRXJyKG1heFNpemUpXTtcbiAgfVxuICByZXR1cm4gW3RydWUsIG51bGxdO1xufVxuXG5mdW5jdGlvbiBpc0RlZmluZWQodmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdmFsdWUgIT09IG51bGw7XG59XG5cbi8qKlxuICpcbiAqIEBwYXJhbSB7b2JqZWN0fSBvcHRpb25zXG4gKiBAcGFyYW0ge0ZpbGVbXX0gb3B0aW9ucy5maWxlc1xuICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLmFjY2VwdF1cbiAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy5taW5TaXplXVxuICogQHBhcmFtIHtudW1iZXJ9IFtvcHRpb25zLm1heFNpemVdXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLm11bHRpcGxlXVxuICogQHBhcmFtIHtudW1iZXJ9IFtvcHRpb25zLm1heEZpbGVzXVxuICogQHBhcmFtIHsoZjogRmlsZSkgPT4gRmlsZUVycm9yfEZpbGVFcnJvcltdfG51bGx9IFtvcHRpb25zLnZhbGlkYXRvcl1cbiAqIEByZXR1cm5zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhbGxGaWxlc0FjY2VwdGVkKHtcbiAgZmlsZXMsXG4gIGFjY2VwdCxcbiAgbWluU2l6ZSxcbiAgbWF4U2l6ZSxcbiAgbXVsdGlwbGUsXG4gIG1heEZpbGVzLFxuICB2YWxpZGF0b3IsXG59KSB7XG4gIGlmIChcbiAgICAoIW11bHRpcGxlICYmIGZpbGVzLmxlbmd0aCA+IDEpIHx8XG4gICAgKG11bHRpcGxlICYmIG1heEZpbGVzID49IDEgJiYgZmlsZXMubGVuZ3RoID4gbWF4RmlsZXMpXG4gICkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiBmaWxlcy5ldmVyeSgoZmlsZSkgPT4ge1xuICAgIGNvbnN0IFthY2NlcHRlZF0gPSBmaWxlQWNjZXB0ZWQoZmlsZSwgYWNjZXB0KTtcbiAgICBjb25zdCBbc2l6ZU1hdGNoXSA9IGZpbGVNYXRjaFNpemUoZmlsZSwgbWluU2l6ZSwgbWF4U2l6ZSk7XG4gICAgY29uc3QgY3VzdG9tRXJyb3JzID0gdmFsaWRhdG9yID8gdmFsaWRhdG9yKGZpbGUpIDogbnVsbDtcbiAgICByZXR1cm4gYWNjZXB0ZWQgJiYgc2l6ZU1hdGNoICYmICFjdXN0b21FcnJvcnM7XG4gIH0pO1xufVxuXG4vLyBSZWFjdCdzIHN5bnRoZXRpYyBldmVudHMgaGFzIGV2ZW50LmlzUHJvcGFnYXRpb25TdG9wcGVkLFxuLy8gYnV0IHRvIHJlbWFpbiBjb21wYXRpYmlsaXR5IHdpdGggb3RoZXIgbGlicyAoUHJlYWN0KSBmYWxsIGJhY2tcbi8vIHRvIGNoZWNrIGV2ZW50LmNhbmNlbEJ1YmJsZVxuZXhwb3J0IGZ1bmN0aW9uIGlzUHJvcGFnYXRpb25TdG9wcGVkKGV2ZW50KSB7XG4gIGlmICh0eXBlb2YgZXZlbnQuaXNQcm9wYWdhdGlvblN0b3BwZWQgPT09IFwiZnVuY3Rpb25cIikge1xuICAgIHJldHVybiBldmVudC5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpO1xuICB9IGVsc2UgaWYgKHR5cGVvZiBldmVudC5jYW5jZWxCdWJibGUgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICByZXR1cm4gZXZlbnQuY2FuY2VsQnViYmxlO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRXZ0V2l0aEZpbGVzKGV2ZW50KSB7XG4gIGlmICghZXZlbnQuZGF0YVRyYW5zZmVyKSB7XG4gICAgcmV0dXJuICEhZXZlbnQudGFyZ2V0ICYmICEhZXZlbnQudGFyZ2V0LmZpbGVzO1xuICB9XG4gIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9EYXRhVHJhbnNmZXIvdHlwZXNcbiAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0hUTUxfRHJhZ19hbmRfRHJvcF9BUEkvUmVjb21tZW5kZWRfZHJhZ190eXBlcyNmaWxlXG4gIHJldHVybiBBcnJheS5wcm90b3R5cGUuc29tZS5jYWxsKFxuICAgIGV2ZW50LmRhdGFUcmFuc2Zlci50eXBlcyxcbiAgICAodHlwZSkgPT4gdHlwZSA9PT0gXCJGaWxlc1wiIHx8IHR5cGUgPT09IFwiYXBwbGljYXRpb24veC1tb3otZmlsZVwiXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0tpbmRGaWxlKGl0ZW0pIHtcbiAgcmV0dXJuIHR5cGVvZiBpdGVtID09PSBcIm9iamVjdFwiICYmIGl0ZW0gIT09IG51bGwgJiYgaXRlbS5raW5kID09PSBcImZpbGVcIjtcbn1cblxuLy8gYWxsb3cgdGhlIGVudGlyZSBkb2N1bWVudCB0byBiZSBhIGRyYWcgdGFyZ2V0XG5leHBvcnQgZnVuY3Rpb24gb25Eb2N1bWVudERyYWdPdmVyKGV2ZW50KSB7XG4gIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG59XG5cbmZ1bmN0aW9uIGlzSWUodXNlckFnZW50KSB7XG4gIHJldHVybiAoXG4gICAgdXNlckFnZW50LmluZGV4T2YoXCJNU0lFXCIpICE9PSAtMSB8fCB1c2VyQWdlbnQuaW5kZXhPZihcIlRyaWRlbnQvXCIpICE9PSAtMVxuICApO1xufVxuXG5mdW5jdGlvbiBpc0VkZ2UodXNlckFnZW50KSB7XG4gIHJldHVybiB1c2VyQWdlbnQuaW5kZXhPZihcIkVkZ2UvXCIpICE9PSAtMTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzSWVPckVkZ2UodXNlckFnZW50ID0gd2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQpIHtcbiAgcmV0dXJuIGlzSWUodXNlckFnZW50KSB8fCBpc0VkZ2UodXNlckFnZW50KTtcbn1cblxuLyoqXG4gKiBUaGlzIGlzIGludGVuZGVkIHRvIGJlIHVzZWQgdG8gY29tcG9zZSBldmVudCBoYW5kbGVyc1xuICogVGhleSBhcmUgZXhlY3V0ZWQgaW4gb3JkZXIgdW50aWwgb25lIG9mIHRoZW0gY2FsbHMgYGV2ZW50LmlzUHJvcGFnYXRpb25TdG9wcGVkKClgLlxuICogTm90ZSB0aGF0IHRoZSBjaGVjayBpcyBkb25lIG9uIHRoZSBmaXJzdCBpbnZva2UgdG9vLFxuICogbWVhbmluZyB0aGF0IGlmIHByb3BhZ2F0aW9uIHdhcyBzdG9wcGVkIGJlZm9yZSBpbnZva2luZyB0aGUgZm5zLFxuICogbm8gaGFuZGxlcnMgd2lsbCBiZSBleGVjdXRlZC5cbiAqXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmbnMgdGhlIGV2ZW50IGhhbmxkZXIgZnVuY3Rpb25zXG4gKiBAcmV0dXJuIHtGdW5jdGlvbn0gdGhlIGV2ZW50IGhhbmRsZXIgdG8gYWRkIHRvIGFuIGVsZW1lbnRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbXBvc2VFdmVudEhhbmRsZXJzKC4uLmZucykge1xuICByZXR1cm4gKGV2ZW50LCAuLi5hcmdzKSA9PlxuICAgIGZucy5zb21lKChmbikgPT4ge1xuICAgICAgaWYgKCFpc1Byb3BhZ2F0aW9uU3RvcHBlZChldmVudCkgJiYgZm4pIHtcbiAgICAgICAgZm4oZXZlbnQsIC4uLmFyZ3MpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGlzUHJvcGFnYXRpb25TdG9wcGVkKGV2ZW50KTtcbiAgICB9KTtcbn1cblxuLyoqXG4gKiBjYW5Vc2VGaWxlU3lzdGVtQWNjZXNzQVBJIGNoZWNrcyBpZiB0aGUgW0ZpbGUgU3lzdGVtIEFjY2VzcyBBUEldKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9GaWxlX1N5c3RlbV9BY2Nlc3NfQVBJKVxuICogaXMgc3VwcG9ydGVkIGJ5IHRoZSBicm93c2VyLlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjYW5Vc2VGaWxlU3lzdGVtQWNjZXNzQVBJKCkge1xuICByZXR1cm4gXCJzaG93T3BlbkZpbGVQaWNrZXJcIiBpbiB3aW5kb3c7XG59XG5cbi8qKlxuICogQ29udmVydCB0aGUgYHthY2NlcHR9YCBkcm9wem9uZSBwcm9wIHRvIHRoZVxuICogYHt0eXBlc31gIG9wdGlvbiBmb3IgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL3dpbmRvdy9zaG93T3BlbkZpbGVQaWNrZXJcbiAqXG4gKiBAcGFyYW0ge0FjY2VwdFByb3B9IGFjY2VwdFxuICogQHJldHVybnMge3thY2NlcHQ6IHN0cmluZ1tdfVtdfVxuICovXG5leHBvcnQgZnVuY3Rpb24gcGlja2VyT3B0aW9uc0Zyb21BY2NlcHQoYWNjZXB0KSB7XG4gIGlmIChpc0RlZmluZWQoYWNjZXB0KSkge1xuICAgIGNvbnN0IGFjY2VwdEZvclBpY2tlciA9IE9iamVjdC5lbnRyaWVzKGFjY2VwdClcbiAgICAgIC5maWx0ZXIoKFttaW1lVHlwZSwgZXh0XSkgPT4ge1xuICAgICAgICBsZXQgb2sgPSB0cnVlO1xuXG4gICAgICAgIGlmICghaXNNSU1FVHlwZShtaW1lVHlwZSkpIHtcbiAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICBgU2tpcHBlZCBcIiR7bWltZVR5cGV9XCIgYmVjYXVzZSBpdCBpcyBub3QgYSB2YWxpZCBNSU1FIHR5cGUuIENoZWNrIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0hUVFAvQmFzaWNzX29mX0hUVFAvTUlNRV90eXBlcy9Db21tb25fdHlwZXMgZm9yIGEgbGlzdCBvZiB2YWxpZCBNSU1FIHR5cGVzLmBcbiAgICAgICAgICApO1xuICAgICAgICAgIG9rID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkoZXh0KSB8fCAhZXh0LmV2ZXJ5KGlzRXh0KSkge1xuICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgIGBTa2lwcGVkIFwiJHttaW1lVHlwZX1cIiBiZWNhdXNlIGFuIGludmFsaWQgZmlsZSBleHRlbnNpb24gd2FzIHByb3ZpZGVkLmBcbiAgICAgICAgICApO1xuICAgICAgICAgIG9rID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gb2s7XG4gICAgICB9KVxuICAgICAgLnJlZHVjZShcbiAgICAgICAgKGFnZywgW21pbWVUeXBlLCBleHRdKSA9PiAoe1xuICAgICAgICAgIC4uLmFnZyxcbiAgICAgICAgICBbbWltZVR5cGVdOiBleHQsXG4gICAgICAgIH0pLFxuICAgICAgICB7fVxuICAgICAgKTtcbiAgICByZXR1cm4gW1xuICAgICAge1xuICAgICAgICAvLyBkZXNjcmlwdGlvbiBpcyByZXF1aXJlZCBkdWUgdG8gaHR0cHM6Ly9jcmJ1Zy5jb20vMTI2NDcwOFxuICAgICAgICBkZXNjcmlwdGlvbjogXCJGaWxlc1wiLFxuICAgICAgICBhY2NlcHQ6IGFjY2VwdEZvclBpY2tlcixcbiAgICAgIH0sXG4gICAgXTtcbiAgfVxuICByZXR1cm4gYWNjZXB0O1xufVxuXG4vKipcbiAqIENvbnZlcnQgdGhlIGB7YWNjZXB0fWAgZHJvcHpvbmUgcHJvcCB0byBhbiBhcnJheSBvZiBNSU1FIHR5cGVzL2V4dGVuc2lvbnMuXG4gKiBAcGFyYW0ge0FjY2VwdFByb3B9IGFjY2VwdFxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFjY2VwdFByb3BBc0FjY2VwdEF0dHIoYWNjZXB0KSB7XG4gIGlmIChpc0RlZmluZWQoYWNjZXB0KSkge1xuICAgIHJldHVybiAoXG4gICAgICBPYmplY3QuZW50cmllcyhhY2NlcHQpXG4gICAgICAgIC5yZWR1Y2UoKGEsIFttaW1lVHlwZSwgZXh0XSkgPT4gWy4uLmEsIG1pbWVUeXBlLCAuLi5leHRdLCBbXSlcbiAgICAgICAgLy8gU2lsZW50bHkgZGlzY2FyZCBpbnZhbGlkIGVudHJpZXMgYXMgcGlja2VyT3B0aW9uc0Zyb21BY2NlcHQgd2FybnMgYWJvdXQgdGhlc2VcbiAgICAgICAgLmZpbHRlcigodikgPT4gaXNNSU1FVHlwZSh2KSB8fCBpc0V4dCh2KSlcbiAgICAgICAgLmpvaW4oXCIsXCIpXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgdiBpcyBhbiBleGNlcHRpb24gY2F1c2VkIGJ5IGFib3J0aW5nIGEgcmVxdWVzdCAoZS5nIHdpbmRvdy5zaG93T3BlbkZpbGVQaWNrZXIoKSkuXG4gKlxuICogU2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9ET01FeGNlcHRpb24uXG4gKiBAcGFyYW0ge2FueX0gdlxuICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdiBpcyBhbiBhYm9ydCBleGNlcHRpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0Fib3J0KHYpIHtcbiAgcmV0dXJuIChcbiAgICB2IGluc3RhbmNlb2YgRE9NRXhjZXB0aW9uICYmXG4gICAgKHYubmFtZSA9PT0gXCJBYm9ydEVycm9yXCIgfHwgdi5jb2RlID09PSB2LkFCT1JUX0VSUilcbiAgKTtcbn1cblxuLyoqXG4gKiBDaGVjayBpZiB2IGlzIGEgc2VjdXJpdHkgZXJyb3IuXG4gKlxuICogU2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9ET01FeGNlcHRpb24uXG4gKiBAcGFyYW0ge2FueX0gdlxuICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdiBpcyBhIHNlY3VyaXR5IGVycm9yLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNTZWN1cml0eUVycm9yKHYpIHtcbiAgcmV0dXJuIChcbiAgICB2IGluc3RhbmNlb2YgRE9NRXhjZXB0aW9uICYmXG4gICAgKHYubmFtZSA9PT0gXCJTZWN1cml0eUVycm9yXCIgfHwgdi5jb2RlID09PSB2LlNFQ1VSSVRZX0VSUilcbiAgKTtcbn1cblxuLyoqXG4gKiBDaGVjayBpZiB2IGlzIGEgTUlNRSB0eXBlIHN0cmluZy5cbiAqXG4gKiBTZWUgYWNjZXB0ZWQgZm9ybWF0OiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9IVE1ML0VsZW1lbnQvaW5wdXQvZmlsZSN1bmlxdWVfZmlsZV90eXBlX3NwZWNpZmllcnMuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHZcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzTUlNRVR5cGUodikge1xuICByZXR1cm4gKFxuICAgIHYgPT09IFwiYXVkaW8vKlwiIHx8XG4gICAgdiA9PT0gXCJ2aWRlby8qXCIgfHxcbiAgICB2ID09PSBcImltYWdlLypcIiB8fFxuICAgIHYgPT09IFwidGV4dC8qXCIgfHxcbiAgICB2ID09PSBcImFwcGxpY2F0aW9uLypcIiB8fFxuICAgIC9cXHcrXFwvWy0rLlxcd10rL2cudGVzdCh2KVxuICApO1xufVxuXG4vKipcbiAqIENoZWNrIGlmIHYgaXMgYSBmaWxlIGV4dGVuc2lvbi5cbiAqIEBwYXJhbSB7c3RyaW5nfSB2XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0V4dCh2KSB7XG4gIHJldHVybiAvXi4qXFwuW1xcd10rJC8udGVzdCh2KTtcbn1cblxuLyoqXG4gKiBAdHlwZWRlZiB7T2JqZWN0LjxzdHJpbmcsIHN0cmluZ1tdPn0gQWNjZXB0UHJvcFxuICovXG5cbi8qKlxuICogQHR5cGVkZWYge29iamVjdH0gRmlsZUVycm9yXG4gKiBAcHJvcGVydHkge3N0cmluZ30gbWVzc2FnZVxuICogQHByb3BlcnR5IHtFcnJvckNvZGV8c3RyaW5nfSBjb2RlXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7XCJmaWxlLWludmFsaWQtdHlwZVwifFwiZmlsZS10b28tbGFyZ2VcInxcImZpbGUtdG9vLXNtYWxsXCJ8XCJ0b28tbWFueS1maWxlc1wifSBFcnJvckNvZGVcbiAqL1xuIiwiLyogZXNsaW50IHByZWZlci10ZW1wbGF0ZTogMCAqL1xuaW1wb3J0IFJlYWN0LCB7XG4gIGZvcndhcmRSZWYsXG4gIEZyYWdtZW50LFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VJbXBlcmF0aXZlSGFuZGxlLFxuICB1c2VNZW1vLFxuICB1c2VSZWR1Y2VyLFxuICB1c2VSZWYsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiO1xuaW1wb3J0IHsgZnJvbUV2ZW50IH0gZnJvbSBcImZpbGUtc2VsZWN0b3JcIjtcbmltcG9ydCB7XG4gIGFjY2VwdFByb3BBc0FjY2VwdEF0dHIsXG4gIGFsbEZpbGVzQWNjZXB0ZWQsXG4gIGNvbXBvc2VFdmVudEhhbmRsZXJzLFxuICBmaWxlQWNjZXB0ZWQsXG4gIGZpbGVNYXRjaFNpemUsXG4gIGNhblVzZUZpbGVTeXN0ZW1BY2Nlc3NBUEksXG4gIGlzQWJvcnQsXG4gIGlzRXZ0V2l0aEZpbGVzLFxuICBpc0llT3JFZGdlLFxuICBpc1Byb3BhZ2F0aW9uU3RvcHBlZCxcbiAgaXNTZWN1cml0eUVycm9yLFxuICBvbkRvY3VtZW50RHJhZ092ZXIsXG4gIHBpY2tlck9wdGlvbnNGcm9tQWNjZXB0LFxuICBUT09fTUFOWV9GSUxFU19SRUpFQ1RJT04sXG59IGZyb20gXCIuL3V0aWxzL2luZGV4XCI7XG5cbi8qKlxuICogQ29udmVuaWVuY2Ugd3JhcHBlciBjb21wb25lbnQgZm9yIHRoZSBgdXNlRHJvcHpvbmVgIGhvb2tcbiAqXG4gKiBgYGBqc3hcbiAqIDxEcm9wem9uZT5cbiAqICAgeyh7Z2V0Um9vdFByb3BzLCBnZXRJbnB1dFByb3BzfSkgPT4gKFxuICogICAgIDxkaXYgey4uLmdldFJvb3RQcm9wcygpfT5cbiAqICAgICAgIDxpbnB1dCB7Li4uZ2V0SW5wdXRQcm9wcygpfSAvPlxuICogICAgICAgPHA+RHJhZyAnbicgZHJvcCBzb21lIGZpbGVzIGhlcmUsIG9yIGNsaWNrIHRvIHNlbGVjdCBmaWxlczwvcD5cbiAqICAgICA8L2Rpdj5cbiAqICAgKX1cbiAqIDwvRHJvcHpvbmU+XG4gKiBgYGBcbiAqL1xuY29uc3QgRHJvcHpvbmUgPSBmb3J3YXJkUmVmKCh7IGNoaWxkcmVuLCAuLi5wYXJhbXMgfSwgcmVmKSA9PiB7XG4gIGNvbnN0IHsgb3BlbiwgLi4ucHJvcHMgfSA9IHVzZURyb3B6b25lKHBhcmFtcyk7XG5cbiAgdXNlSW1wZXJhdGl2ZUhhbmRsZShyZWYsICgpID0+ICh7IG9wZW4gfSksIFtvcGVuXSk7XG5cbiAgLy8gVE9ETzogRmlndXJlIG91dCB3aHkgcmVhY3Qtc3R5bGVndWlkaXN0IGNhbm5vdCBjcmVhdGUgZG9jcyBpZiB3ZSBkb24ndCByZXR1cm4gYSBqc3ggZWxlbWVudFxuICByZXR1cm4gPEZyYWdtZW50PntjaGlsZHJlbih7IC4uLnByb3BzLCBvcGVuIH0pfTwvRnJhZ21lbnQ+O1xufSk7XG5cbkRyb3B6b25lLmRpc3BsYXlOYW1lID0gXCJEcm9wem9uZVwiO1xuXG4vLyBBZGQgZGVmYXVsdCBwcm9wcyBmb3IgcmVhY3QtZG9jZ2VuXG5jb25zdCBkZWZhdWx0UHJvcHMgPSB7XG4gIGRpc2FibGVkOiBmYWxzZSxcbiAgZ2V0RmlsZXNGcm9tRXZlbnQ6IGZyb21FdmVudCxcbiAgbWF4U2l6ZTogSW5maW5pdHksXG4gIG1pblNpemU6IDAsXG4gIG11bHRpcGxlOiB0cnVlLFxuICBtYXhGaWxlczogMCxcbiAgcHJldmVudERyb3BPbkRvY3VtZW50OiB0cnVlLFxuICBub0NsaWNrOiBmYWxzZSxcbiAgbm9LZXlib2FyZDogZmFsc2UsXG4gIG5vRHJhZzogZmFsc2UsXG4gIG5vRHJhZ0V2ZW50c0J1YmJsaW5nOiBmYWxzZSxcbiAgdmFsaWRhdG9yOiBudWxsLFxuICB1c2VGc0FjY2Vzc0FwaTogZmFsc2UsXG4gIGF1dG9Gb2N1czogZmFsc2UsXG59O1xuXG5Ecm9wem9uZS5kZWZhdWx0UHJvcHMgPSBkZWZhdWx0UHJvcHM7XG5cbkRyb3B6b25lLnByb3BUeXBlcyA9IHtcbiAgLyoqXG4gICAqIFJlbmRlciBmdW5jdGlvbiB0aGF0IGV4cG9zZXMgdGhlIGRyb3B6b25lIHN0YXRlIGFuZCBwcm9wIGdldHRlciBmbnNcbiAgICpcbiAgICogQHBhcmFtIHtvYmplY3R9IHBhcmFtc1xuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBwYXJhbXMuZ2V0Um9vdFByb3BzIFJldHVybnMgdGhlIHByb3BzIHlvdSBzaG91bGQgYXBwbHkgdG8gdGhlIHJvb3QgZHJvcCBjb250YWluZXIgeW91IHJlbmRlclxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBwYXJhbXMuZ2V0SW5wdXRQcm9wcyBSZXR1cm5zIHRoZSBwcm9wcyB5b3Ugc2hvdWxkIGFwcGx5IHRvIGhpZGRlbiBmaWxlIGlucHV0IHlvdSByZW5kZXJcbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gcGFyYW1zLm9wZW4gT3BlbiB0aGUgbmF0aXZlIGZpbGUgc2VsZWN0aW9uIGRpYWxvZ1xuICAgKiBAcGFyYW0ge2Jvb2xlYW59IHBhcmFtcy5pc0ZvY3VzZWQgRHJvcHpvbmUgYXJlYSBpcyBpbiBmb2N1c1xuICAgKiBAcGFyYW0ge2Jvb2xlYW59IHBhcmFtcy5pc0ZpbGVEaWFsb2dBY3RpdmUgRmlsZSBkaWFsb2cgaXMgb3BlbmVkXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gcGFyYW1zLmlzRHJhZ0FjdGl2ZSBBY3RpdmUgZHJhZyBpcyBpbiBwcm9ncmVzc1xuICAgKiBAcGFyYW0ge2Jvb2xlYW59IHBhcmFtcy5pc0RyYWdBY2NlcHQgRHJhZ2dlZCBmaWxlcyBhcmUgYWNjZXB0ZWRcbiAgICogQHBhcmFtIHtib29sZWFufSBwYXJhbXMuaXNEcmFnUmVqZWN0IFNvbWUgZHJhZ2dlZCBmaWxlcyBhcmUgcmVqZWN0ZWRcbiAgICogQHBhcmFtIHtGaWxlW119IHBhcmFtcy5hY2NlcHRlZEZpbGVzIEFjY2VwdGVkIGZpbGVzXG4gICAqIEBwYXJhbSB7RmlsZVJlamVjdGlvbltdfSBwYXJhbXMuZmlsZVJlamVjdGlvbnMgUmVqZWN0ZWQgZmlsZXMgYW5kIHdoeSB0aGV5IHdlcmUgcmVqZWN0ZWRcbiAgICovXG4gIGNoaWxkcmVuOiBQcm9wVHlwZXMuZnVuYyxcblxuICAvKipcbiAgICogU2V0IGFjY2VwdGVkIGZpbGUgdHlwZXMuXG4gICAqIENoZWNrb3V0IGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS93aW5kb3cvc2hvd09wZW5GaWxlUGlja2VyIHR5cGVzIG9wdGlvbiBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiAgICogS2VlcCBpbiBtaW5kIHRoYXQgbWltZSB0eXBlIGRldGVybWluYXRpb24gaXMgbm90IHJlbGlhYmxlIGFjcm9zcyBwbGF0Zm9ybXMuIENTViBmaWxlcyxcbiAgICogZm9yIGV4YW1wbGUsIGFyZSByZXBvcnRlZCBhcyB0ZXh0L3BsYWluIHVuZGVyIG1hY09TIGJ1dCBhcyBhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwgdW5kZXJcbiAgICogV2luZG93cy4gSW4gc29tZSBjYXNlcyB0aGVyZSBtaWdodCBub3QgYmUgYSBtaW1lIHR5cGUgc2V0IGF0IGFsbCAoaHR0cHM6Ly9naXRodWIuY29tL3JlYWN0LWRyb3B6b25lL3JlYWN0LWRyb3B6b25lL2lzc3Vlcy8yNzYpLlxuICAgKi9cbiAgYWNjZXB0OiBQcm9wVHlwZXMub2JqZWN0T2YoUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLnN0cmluZykpLFxuXG4gIC8qKlxuICAgKiBBbGxvdyBkcmFnICduJyBkcm9wIChvciBzZWxlY3Rpb24gZnJvbSB0aGUgZmlsZSBkaWFsb2cpIG9mIG11bHRpcGxlIGZpbGVzXG4gICAqL1xuICBtdWx0aXBsZTogUHJvcFR5cGVzLmJvb2wsXG5cbiAgLyoqXG4gICAqIElmIGZhbHNlLCBhbGxvdyBkcm9wcGVkIGl0ZW1zIHRvIHRha2Ugb3ZlciB0aGUgY3VycmVudCBicm93c2VyIHdpbmRvd1xuICAgKi9cbiAgcHJldmVudERyb3BPbkRvY3VtZW50OiBQcm9wVHlwZXMuYm9vbCxcblxuICAvKipcbiAgICogSWYgdHJ1ZSwgZGlzYWJsZXMgY2xpY2sgdG8gb3BlbiB0aGUgbmF0aXZlIGZpbGUgc2VsZWN0aW9uIGRpYWxvZ1xuICAgKi9cbiAgbm9DbGljazogUHJvcFR5cGVzLmJvb2wsXG5cbiAgLyoqXG4gICAqIElmIHRydWUsIGRpc2FibGVzIFNQQUNFL0VOVEVSIHRvIG9wZW4gdGhlIG5hdGl2ZSBmaWxlIHNlbGVjdGlvbiBkaWFsb2cuXG4gICAqIE5vdGUgdGhhdCBpdCBhbHNvIHN0b3BzIHRyYWNraW5nIHRoZSBmb2N1cyBzdGF0ZS5cbiAgICovXG4gIG5vS2V5Ym9hcmQ6IFByb3BUeXBlcy5ib29sLFxuXG4gIC8qKlxuICAgKiBJZiB0cnVlLCBkaXNhYmxlcyBkcmFnICduJyBkcm9wXG4gICAqL1xuICBub0RyYWc6IFByb3BUeXBlcy5ib29sLFxuXG4gIC8qKlxuICAgKiBJZiB0cnVlLCBzdG9wcyBkcmFnIGV2ZW50IHByb3BhZ2F0aW9uIHRvIHBhcmVudHNcbiAgICovXG4gIG5vRHJhZ0V2ZW50c0J1YmJsaW5nOiBQcm9wVHlwZXMuYm9vbCxcblxuICAvKipcbiAgICogTWluaW11bSBmaWxlIHNpemUgKGluIGJ5dGVzKVxuICAgKi9cbiAgbWluU2l6ZTogUHJvcFR5cGVzLm51bWJlcixcblxuICAvKipcbiAgICogTWF4aW11bSBmaWxlIHNpemUgKGluIGJ5dGVzKVxuICAgKi9cbiAgbWF4U2l6ZTogUHJvcFR5cGVzLm51bWJlcixcbiAgLyoqXG4gICAqIE1heGltdW0gYWNjZXB0ZWQgbnVtYmVyIG9mIGZpbGVzXG4gICAqIFRoZSBkZWZhdWx0IHZhbHVlIGlzIDAgd2hpY2ggbWVhbnMgdGhlcmUgaXMgbm8gbGltaXRhdGlvbiB0byBob3cgbWFueSBmaWxlcyBhcmUgYWNjZXB0ZWQuXG4gICAqL1xuICBtYXhGaWxlczogUHJvcFR5cGVzLm51bWJlcixcblxuICAvKipcbiAgICogRW5hYmxlL2Rpc2FibGUgdGhlIGRyb3B6b25lXG4gICAqL1xuICBkaXNhYmxlZDogUHJvcFR5cGVzLmJvb2wsXG5cbiAgLyoqXG4gICAqIFVzZSB0aGlzIHRvIHByb3ZpZGUgYSBjdXN0b20gZmlsZSBhZ2dyZWdhdG9yXG4gICAqXG4gICAqIEBwYXJhbSB7KERyYWdFdmVudHxFdmVudCl9IGV2ZW50IEEgZHJhZyBldmVudCBvciBpbnB1dCBjaGFuZ2UgZXZlbnQgKGlmIGZpbGVzIHdlcmUgc2VsZWN0ZWQgdmlhIHRoZSBmaWxlIGRpYWxvZylcbiAgICovXG4gIGdldEZpbGVzRnJvbUV2ZW50OiBQcm9wVHlwZXMuZnVuYyxcblxuICAvKipcbiAgICogQ2IgZm9yIHdoZW4gY2xvc2luZyB0aGUgZmlsZSBkaWFsb2cgd2l0aCBubyBzZWxlY3Rpb25cbiAgICovXG4gIG9uRmlsZURpYWxvZ0NhbmNlbDogUHJvcFR5cGVzLmZ1bmMsXG5cbiAgLyoqXG4gICAqIENiIGZvciB3aGVuIG9wZW5pbmcgdGhlIGZpbGUgZGlhbG9nXG4gICAqL1xuICBvbkZpbGVEaWFsb2dPcGVuOiBQcm9wVHlwZXMuZnVuYyxcblxuICAvKipcbiAgICogU2V0IHRvIHRydWUgdG8gdXNlIHRoZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvRmlsZV9TeXN0ZW1fQWNjZXNzX0FQSVxuICAgKiB0byBvcGVuIHRoZSBmaWxlIHBpY2tlciBpbnN0ZWFkIG9mIHVzaW5nIGFuIGA8aW5wdXQgdHlwZT1cImZpbGVcIj5gIGNsaWNrIGV2ZW50LlxuICAgKi9cbiAgdXNlRnNBY2Nlc3NBcGk6IFByb3BUeXBlcy5ib29sLFxuXG4gIC8qKlxuICAgKiBTZXQgdG8gdHJ1ZSB0byBmb2N1cyB0aGUgcm9vdCBlbGVtZW50IG9uIHJlbmRlclxuICAgKi9cbiAgYXV0b0ZvY3VzOiBQcm9wVHlwZXMuYm9vbCxcblxuICAvKipcbiAgICogQ2IgZm9yIHdoZW4gdGhlIGBkcmFnZW50ZXJgIGV2ZW50IG9jY3Vycy5cbiAgICpcbiAgICogQHBhcmFtIHtEcmFnRXZlbnR9IGV2ZW50XG4gICAqL1xuICBvbkRyYWdFbnRlcjogUHJvcFR5cGVzLmZ1bmMsXG5cbiAgLyoqXG4gICAqIENiIGZvciB3aGVuIHRoZSBgZHJhZ2xlYXZlYCBldmVudCBvY2N1cnNcbiAgICpcbiAgICogQHBhcmFtIHtEcmFnRXZlbnR9IGV2ZW50XG4gICAqL1xuICBvbkRyYWdMZWF2ZTogUHJvcFR5cGVzLmZ1bmMsXG5cbiAgLyoqXG4gICAqIENiIGZvciB3aGVuIHRoZSBgZHJhZ292ZXJgIGV2ZW50IG9jY3Vyc1xuICAgKlxuICAgKiBAcGFyYW0ge0RyYWdFdmVudH0gZXZlbnRcbiAgICovXG4gIG9uRHJhZ092ZXI6IFByb3BUeXBlcy5mdW5jLFxuXG4gIC8qKlxuICAgKiBDYiBmb3Igd2hlbiB0aGUgYGRyb3BgIGV2ZW50IG9jY3Vycy5cbiAgICogTm90ZSB0aGF0IHRoaXMgY2FsbGJhY2sgaXMgaW52b2tlZCBhZnRlciB0aGUgYGdldEZpbGVzRnJvbUV2ZW50YCBjYWxsYmFjayBpcyBkb25lLlxuICAgKlxuICAgKiBGaWxlcyBhcmUgYWNjZXB0ZWQgb3IgcmVqZWN0ZWQgYmFzZWQgb24gdGhlIGBhY2NlcHRgLCBgbXVsdGlwbGVgLCBgbWluU2l6ZWAgYW5kIGBtYXhTaXplYCBwcm9wcy5cbiAgICogYGFjY2VwdGAgbXVzdCBiZSBhIHZhbGlkIFtNSU1FIHR5cGVdKGh0dHA6Ly93d3cuaWFuYS5vcmcvYXNzaWdubWVudHMvbWVkaWEtdHlwZXMvbWVkaWEtdHlwZXMueGh0bWwpIGFjY29yZGluZyB0byBbaW5wdXQgZWxlbWVudCBzcGVjaWZpY2F0aW9uXShodHRwczovL3d3dy53My5vcmcvd2lraS9IVE1ML0VsZW1lbnRzL2lucHV0L2ZpbGUpIG9yIGEgdmFsaWQgZmlsZSBleHRlbnNpb24uXG4gICAqIElmIGBtdWx0aXBsZWAgaXMgc2V0IHRvIGZhbHNlIGFuZCBhZGRpdGlvbmFsIGZpbGVzIGFyZSBkcm9wcGVkLFxuICAgKiBhbGwgZmlsZXMgYmVzaWRlcyB0aGUgZmlyc3Qgd2lsbCBiZSByZWplY3RlZC5cbiAgICogQW55IGZpbGUgd2hpY2ggZG9lcyBub3QgaGF2ZSBhIHNpemUgaW4gdGhlIFtgbWluU2l6ZWAsIGBtYXhTaXplYF0gcmFuZ2UsIHdpbGwgYmUgcmVqZWN0ZWQgYXMgd2VsbC5cbiAgICpcbiAgICogTm90ZSB0aGF0IHRoZSBgb25Ecm9wYCBjYWxsYmFjayB3aWxsIGFsd2F5cyBiZSBpbnZva2VkIHJlZ2FyZGxlc3MgaWYgdGhlIGRyb3BwZWQgZmlsZXMgd2VyZSBhY2NlcHRlZCBvciByZWplY3RlZC5cbiAgICogSWYgeW91J2QgbGlrZSB0byByZWFjdCB0byBhIHNwZWNpZmljIHNjZW5hcmlvLCB1c2UgdGhlIGBvbkRyb3BBY2NlcHRlZGAvYG9uRHJvcFJlamVjdGVkYCBwcm9wcy5cbiAgICpcbiAgICogYG9uRHJvcGAgd2lsbCBwcm92aWRlIHlvdSB3aXRoIGFuIGFycmF5IG9mIFtGaWxlXShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvRmlsZSkgb2JqZWN0cyB3aGljaCB5b3UgY2FuIHRoZW4gcHJvY2VzcyBhbmQgc2VuZCB0byBhIHNlcnZlci5cbiAgICogRm9yIGV4YW1wbGUsIHdpdGggW1N1cGVyQWdlbnRdKGh0dHBzOi8vZ2l0aHViLmNvbS92aXNpb25tZWRpYS9zdXBlcmFnZW50KSBhcyBhIGh0dHAvYWpheCBsaWJyYXJ5OlxuICAgKlxuICAgKiBgYGBqc1xuICAgKiBmdW5jdGlvbiBvbkRyb3AoYWNjZXB0ZWRGaWxlcykge1xuICAgKiAgIGNvbnN0IHJlcSA9IHJlcXVlc3QucG9zdCgnL3VwbG9hZCcpXG4gICAqICAgYWNjZXB0ZWRGaWxlcy5mb3JFYWNoKGZpbGUgPT4ge1xuICAgKiAgICAgcmVxLmF0dGFjaChmaWxlLm5hbWUsIGZpbGUpXG4gICAqICAgfSlcbiAgICogICByZXEuZW5kKGNhbGxiYWNrKVxuICAgKiB9XG4gICAqIGBgYFxuICAgKlxuICAgKiBAcGFyYW0ge0ZpbGVbXX0gYWNjZXB0ZWRGaWxlc1xuICAgKiBAcGFyYW0ge0ZpbGVSZWplY3Rpb25bXX0gZmlsZVJlamVjdGlvbnNcbiAgICogQHBhcmFtIHsoRHJhZ0V2ZW50fEV2ZW50KX0gZXZlbnQgQSBkcmFnIGV2ZW50IG9yIGlucHV0IGNoYW5nZSBldmVudCAoaWYgZmlsZXMgd2VyZSBzZWxlY3RlZCB2aWEgdGhlIGZpbGUgZGlhbG9nKVxuICAgKi9cbiAgb25Ecm9wOiBQcm9wVHlwZXMuZnVuYyxcblxuICAvKipcbiAgICogQ2IgZm9yIHdoZW4gdGhlIGBkcm9wYCBldmVudCBvY2N1cnMuXG4gICAqIE5vdGUgdGhhdCBpZiBubyBmaWxlcyBhcmUgYWNjZXB0ZWQsIHRoaXMgY2FsbGJhY2sgaXMgbm90IGludm9rZWQuXG4gICAqXG4gICAqIEBwYXJhbSB7RmlsZVtdfSBmaWxlc1xuICAgKiBAcGFyYW0geyhEcmFnRXZlbnR8RXZlbnQpfSBldmVudFxuICAgKi9cbiAgb25Ecm9wQWNjZXB0ZWQ6IFByb3BUeXBlcy5mdW5jLFxuXG4gIC8qKlxuICAgKiBDYiBmb3Igd2hlbiB0aGUgYGRyb3BgIGV2ZW50IG9jY3Vycy5cbiAgICogTm90ZSB0aGF0IGlmIG5vIGZpbGVzIGFyZSByZWplY3RlZCwgdGhpcyBjYWxsYmFjayBpcyBub3QgaW52b2tlZC5cbiAgICpcbiAgICogQHBhcmFtIHtGaWxlUmVqZWN0aW9uW119IGZpbGVSZWplY3Rpb25zXG4gICAqIEBwYXJhbSB7KERyYWdFdmVudHxFdmVudCl9IGV2ZW50XG4gICAqL1xuICBvbkRyb3BSZWplY3RlZDogUHJvcFR5cGVzLmZ1bmMsXG5cbiAgLyoqXG4gICAqIENiIGZvciB3aGVuIHRoZXJlJ3Mgc29tZSBlcnJvciBmcm9tIGFueSBvZiB0aGUgcHJvbWlzZXMuXG4gICAqXG4gICAqIEBwYXJhbSB7RXJyb3J9IGVycm9yXG4gICAqL1xuICBvbkVycm9yOiBQcm9wVHlwZXMuZnVuYyxcblxuICAvKipcbiAgICogQ3VzdG9tIHZhbGlkYXRpb24gZnVuY3Rpb24uIEl0IG11c3QgcmV0dXJuIG51bGwgaWYgdGhlcmUncyBubyBlcnJvcnMuXG4gICAqIEBwYXJhbSB7RmlsZX0gZmlsZVxuICAgKiBAcmV0dXJucyB7RmlsZUVycm9yfEZpbGVFcnJvcltdfG51bGx9XG4gICAqL1xuICB2YWxpZGF0b3I6IFByb3BUeXBlcy5mdW5jLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgRHJvcHpvbmU7XG5cbi8qKlxuICogQSBmdW5jdGlvbiB0aGF0IGlzIGludm9rZWQgZm9yIHRoZSBgZHJhZ2VudGVyYCxcbiAqIGBkcmFnb3ZlcmAgYW5kIGBkcmFnbGVhdmVgIGV2ZW50cy5cbiAqIEl0IGlzIG5vdCBpbnZva2VkIGlmIHRoZSBpdGVtcyBhcmUgbm90IGZpbGVzIChzdWNoIGFzIGxpbmssIHRleHQsIGV0Yy4pLlxuICpcbiAqIEBjYWxsYmFjayBkcmFnQ2JcbiAqIEBwYXJhbSB7RHJhZ0V2ZW50fSBldmVudFxuICovXG5cbi8qKlxuICogQSBmdW5jdGlvbiB0aGF0IGlzIGludm9rZWQgZm9yIHRoZSBgZHJvcGAgb3IgaW5wdXQgY2hhbmdlIGV2ZW50LlxuICogSXQgaXMgbm90IGludm9rZWQgaWYgdGhlIGl0ZW1zIGFyZSBub3QgZmlsZXMgKHN1Y2ggYXMgbGluaywgdGV4dCwgZXRjLikuXG4gKlxuICogQGNhbGxiYWNrIGRyb3BDYlxuICogQHBhcmFtIHtGaWxlW119IGFjY2VwdGVkRmlsZXMgTGlzdCBvZiBhY2NlcHRlZCBmaWxlc1xuICogQHBhcmFtIHtGaWxlUmVqZWN0aW9uW119IGZpbGVSZWplY3Rpb25zIExpc3Qgb2YgcmVqZWN0ZWQgZmlsZXMgYW5kIHdoeSB0aGV5IHdlcmUgcmVqZWN0ZWRcbiAqIEBwYXJhbSB7KERyYWdFdmVudHxFdmVudCl9IGV2ZW50IEEgZHJhZyBldmVudCBvciBpbnB1dCBjaGFuZ2UgZXZlbnQgKGlmIGZpbGVzIHdlcmUgc2VsZWN0ZWQgdmlhIHRoZSBmaWxlIGRpYWxvZylcbiAqL1xuXG4vKipcbiAqIEEgZnVuY3Rpb24gdGhhdCBpcyBpbnZva2VkIGZvciB0aGUgYGRyb3BgIG9yIGlucHV0IGNoYW5nZSBldmVudC5cbiAqIEl0IGlzIG5vdCBpbnZva2VkIGlmIHRoZSBpdGVtcyBhcmUgZmlsZXMgKHN1Y2ggYXMgbGluaywgdGV4dCwgZXRjLikuXG4gKlxuICogQGNhbGxiYWNrIGRyb3BBY2NlcHRlZENiXG4gKiBAcGFyYW0ge0ZpbGVbXX0gZmlsZXMgTGlzdCBvZiBhY2NlcHRlZCBmaWxlcyB0aGF0IG1lZXQgdGhlIGdpdmVuIGNyaXRlcmlhXG4gKiAoYGFjY2VwdGAsIGBtdWx0aXBsZWAsIGBtaW5TaXplYCwgYG1heFNpemVgKVxuICogQHBhcmFtIHsoRHJhZ0V2ZW50fEV2ZW50KX0gZXZlbnQgQSBkcmFnIGV2ZW50IG9yIGlucHV0IGNoYW5nZSBldmVudCAoaWYgZmlsZXMgd2VyZSBzZWxlY3RlZCB2aWEgdGhlIGZpbGUgZGlhbG9nKVxuICovXG5cbi8qKlxuICogQSBmdW5jdGlvbiB0aGF0IGlzIGludm9rZWQgZm9yIHRoZSBgZHJvcGAgb3IgaW5wdXQgY2hhbmdlIGV2ZW50LlxuICpcbiAqIEBjYWxsYmFjayBkcm9wUmVqZWN0ZWRDYlxuICogQHBhcmFtIHtGaWxlW119IGZpbGVzIExpc3Qgb2YgcmVqZWN0ZWQgZmlsZXMgdGhhdCBkbyBub3QgbWVldCB0aGUgZ2l2ZW4gY3JpdGVyaWFcbiAqIChgYWNjZXB0YCwgYG11bHRpcGxlYCwgYG1pblNpemVgLCBgbWF4U2l6ZWApXG4gKiBAcGFyYW0geyhEcmFnRXZlbnR8RXZlbnQpfSBldmVudCBBIGRyYWcgZXZlbnQgb3IgaW5wdXQgY2hhbmdlIGV2ZW50IChpZiBmaWxlcyB3ZXJlIHNlbGVjdGVkIHZpYSB0aGUgZmlsZSBkaWFsb2cpXG4gKi9cblxuLyoqXG4gKiBBIGZ1bmN0aW9uIHRoYXQgaXMgdXNlZCBhZ2dyZWdhdGUgZmlsZXMsXG4gKiBpbiBhIGFzeW5jaHJvbm91cyBmYXNoaW9uLCBmcm9tIGRyYWcgb3IgaW5wdXQgY2hhbmdlIGV2ZW50cy5cbiAqXG4gKiBAY2FsbGJhY2sgZ2V0RmlsZXNGcm9tRXZlbnRcbiAqIEBwYXJhbSB7KERyYWdFdmVudHxFdmVudCl9IGV2ZW50IEEgZHJhZyBldmVudCBvciBpbnB1dCBjaGFuZ2UgZXZlbnQgKGlmIGZpbGVzIHdlcmUgc2VsZWN0ZWQgdmlhIHRoZSBmaWxlIGRpYWxvZylcbiAqIEByZXR1cm5zIHsoRmlsZVtdfFByb21pc2U8RmlsZVtdPil9XG4gKi9cblxuLyoqXG4gKiBBbiBvYmplY3Qgd2l0aCB0aGUgY3VycmVudCBkcm9wem9uZSBzdGF0ZS5cbiAqXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBEcm9wem9uZVN0YXRlXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IGlzRm9jdXNlZCBEcm9wem9uZSBhcmVhIGlzIGluIGZvY3VzXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IGlzRmlsZURpYWxvZ0FjdGl2ZSBGaWxlIGRpYWxvZyBpcyBvcGVuZWRcbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gaXNEcmFnQWN0aXZlIEFjdGl2ZSBkcmFnIGlzIGluIHByb2dyZXNzXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IGlzRHJhZ0FjY2VwdCBEcmFnZ2VkIGZpbGVzIGFyZSBhY2NlcHRlZFxuICogQHByb3BlcnR5IHtib29sZWFufSBpc0RyYWdSZWplY3QgU29tZSBkcmFnZ2VkIGZpbGVzIGFyZSByZWplY3RlZFxuICogQHByb3BlcnR5IHtGaWxlW119IGFjY2VwdGVkRmlsZXMgQWNjZXB0ZWQgZmlsZXNcbiAqIEBwcm9wZXJ0eSB7RmlsZVJlamVjdGlvbltdfSBmaWxlUmVqZWN0aW9ucyBSZWplY3RlZCBmaWxlcyBhbmQgd2h5IHRoZXkgd2VyZSByZWplY3RlZFxuICovXG5cbi8qKlxuICogQW4gb2JqZWN0IHdpdGggdGhlIGRyb3B6b25lIG1ldGhvZHMuXG4gKlxuICogQHR5cGVkZWYge29iamVjdH0gRHJvcHpvbmVNZXRob2RzXG4gKiBAcHJvcGVydHkge0Z1bmN0aW9ufSBnZXRSb290UHJvcHMgUmV0dXJucyB0aGUgcHJvcHMgeW91IHNob3VsZCBhcHBseSB0byB0aGUgcm9vdCBkcm9wIGNvbnRhaW5lciB5b3UgcmVuZGVyXG4gKiBAcHJvcGVydHkge0Z1bmN0aW9ufSBnZXRJbnB1dFByb3BzIFJldHVybnMgdGhlIHByb3BzIHlvdSBzaG91bGQgYXBwbHkgdG8gaGlkZGVuIGZpbGUgaW5wdXQgeW91IHJlbmRlclxuICogQHByb3BlcnR5IHtGdW5jdGlvbn0gb3BlbiBPcGVuIHRoZSBuYXRpdmUgZmlsZSBzZWxlY3Rpb24gZGlhbG9nXG4gKi9cblxuY29uc3QgaW5pdGlhbFN0YXRlID0ge1xuICBpc0ZvY3VzZWQ6IGZhbHNlLFxuICBpc0ZpbGVEaWFsb2dBY3RpdmU6IGZhbHNlLFxuICBpc0RyYWdBY3RpdmU6IGZhbHNlLFxuICBpc0RyYWdBY2NlcHQ6IGZhbHNlLFxuICBpc0RyYWdSZWplY3Q6IGZhbHNlLFxuICBhY2NlcHRlZEZpbGVzOiBbXSxcbiAgZmlsZVJlamVjdGlvbnM6IFtdLFxufTtcblxuLyoqXG4gKiBBIFJlYWN0IGhvb2sgdGhhdCBjcmVhdGVzIGEgZHJhZyAnbicgZHJvcCBhcmVhLlxuICpcbiAqIGBgYGpzeFxuICogZnVuY3Rpb24gTXlEcm9wem9uZShwcm9wcykge1xuICogICBjb25zdCB7Z2V0Um9vdFByb3BzLCBnZXRJbnB1dFByb3BzfSA9IHVzZURyb3B6b25lKHtcbiAqICAgICBvbkRyb3A6IGFjY2VwdGVkRmlsZXMgPT4ge1xuICogICAgICAgLy8gZG8gc29tZXRoaW5nIHdpdGggdGhlIEZpbGUgb2JqZWN0cywgZS5nLiB1cGxvYWQgdG8gc29tZSBzZXJ2ZXJcbiAqICAgICB9XG4gKiAgIH0pO1xuICogICByZXR1cm4gKFxuICogICAgIDxkaXYgey4uLmdldFJvb3RQcm9wcygpfT5cbiAqICAgICAgIDxpbnB1dCB7Li4uZ2V0SW5wdXRQcm9wcygpfSAvPlxuICogICAgICAgPHA+RHJhZyBhbmQgZHJvcCBzb21lIGZpbGVzIGhlcmUsIG9yIGNsaWNrIHRvIHNlbGVjdCBmaWxlczwvcD5cbiAqICAgICA8L2Rpdj5cbiAqICAgKVxuICogfVxuICogYGBgXG4gKlxuICogQGZ1bmN0aW9uIHVzZURyb3B6b25lXG4gKlxuICogQHBhcmFtIHtvYmplY3R9IHByb3BzXG4gKiBAcGFyYW0ge2ltcG9ydChcIi4vdXRpbHNcIikuQWNjZXB0UHJvcH0gW3Byb3BzLmFjY2VwdF0gU2V0IGFjY2VwdGVkIGZpbGUgdHlwZXMuXG4gKiBDaGVja291dCBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvd2luZG93L3Nob3dPcGVuRmlsZVBpY2tlciB0eXBlcyBvcHRpb24gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4gKiBLZWVwIGluIG1pbmQgdGhhdCBtaW1lIHR5cGUgZGV0ZXJtaW5hdGlvbiBpcyBub3QgcmVsaWFibGUgYWNyb3NzIHBsYXRmb3Jtcy4gQ1NWIGZpbGVzLFxuICogZm9yIGV4YW1wbGUsIGFyZSByZXBvcnRlZCBhcyB0ZXh0L3BsYWluIHVuZGVyIG1hY09TIGJ1dCBhcyBhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwgdW5kZXJcbiAqIFdpbmRvd3MuIEluIHNvbWUgY2FzZXMgdGhlcmUgbWlnaHQgbm90IGJlIGEgbWltZSB0eXBlIHNldCBhdCBhbGwgKGh0dHBzOi8vZ2l0aHViLmNvbS9yZWFjdC1kcm9wem9uZS9yZWFjdC1kcm9wem9uZS9pc3N1ZXMvMjc2KS5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW3Byb3BzLm11bHRpcGxlPXRydWVdIEFsbG93IGRyYWcgJ24nIGRyb3AgKG9yIHNlbGVjdGlvbiBmcm9tIHRoZSBmaWxlIGRpYWxvZykgb2YgbXVsdGlwbGUgZmlsZXNcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW3Byb3BzLnByZXZlbnREcm9wT25Eb2N1bWVudD10cnVlXSBJZiBmYWxzZSwgYWxsb3cgZHJvcHBlZCBpdGVtcyB0byB0YWtlIG92ZXIgdGhlIGN1cnJlbnQgYnJvd3NlciB3aW5kb3dcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW3Byb3BzLm5vQ2xpY2s9ZmFsc2VdIElmIHRydWUsIGRpc2FibGVzIGNsaWNrIHRvIG9wZW4gdGhlIG5hdGl2ZSBmaWxlIHNlbGVjdGlvbiBkaWFsb2dcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW3Byb3BzLm5vS2V5Ym9hcmQ9ZmFsc2VdIElmIHRydWUsIGRpc2FibGVzIFNQQUNFL0VOVEVSIHRvIG9wZW4gdGhlIG5hdGl2ZSBmaWxlIHNlbGVjdGlvbiBkaWFsb2cuXG4gKiBOb3RlIHRoYXQgaXQgYWxzbyBzdG9wcyB0cmFja2luZyB0aGUgZm9jdXMgc3RhdGUuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtwcm9wcy5ub0RyYWc9ZmFsc2VdIElmIHRydWUsIGRpc2FibGVzIGRyYWcgJ24nIGRyb3BcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW3Byb3BzLm5vRHJhZ0V2ZW50c0J1YmJsaW5nPWZhbHNlXSBJZiB0cnVlLCBzdG9wcyBkcmFnIGV2ZW50IHByb3BhZ2F0aW9uIHRvIHBhcmVudHNcbiAqIEBwYXJhbSB7bnVtYmVyfSBbcHJvcHMubWluU2l6ZT0wXSBNaW5pbXVtIGZpbGUgc2l6ZSAoaW4gYnl0ZXMpXG4gKiBAcGFyYW0ge251bWJlcn0gW3Byb3BzLm1heFNpemU9SW5maW5pdHldIE1heGltdW0gZmlsZSBzaXplIChpbiBieXRlcylcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW3Byb3BzLmRpc2FibGVkPWZhbHNlXSBFbmFibGUvZGlzYWJsZSB0aGUgZHJvcHpvbmVcbiAqIEBwYXJhbSB7Z2V0RmlsZXNGcm9tRXZlbnR9IFtwcm9wcy5nZXRGaWxlc0Zyb21FdmVudF0gVXNlIHRoaXMgdG8gcHJvdmlkZSBhIGN1c3RvbSBmaWxlIGFnZ3JlZ2F0b3JcbiAqIEBwYXJhbSB7RnVuY3Rpb259IFtwcm9wcy5vbkZpbGVEaWFsb2dDYW5jZWxdIENiIGZvciB3aGVuIGNsb3NpbmcgdGhlIGZpbGUgZGlhbG9nIHdpdGggbm8gc2VsZWN0aW9uXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtwcm9wcy51c2VGc0FjY2Vzc0FwaV0gU2V0IHRvIHRydWUgdG8gdXNlIHRoZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvRmlsZV9TeXN0ZW1fQWNjZXNzX0FQSVxuICogdG8gb3BlbiB0aGUgZmlsZSBwaWNrZXIgaW5zdGVhZCBvZiB1c2luZyBhbiBgPGlucHV0IHR5cGU9XCJmaWxlXCI+YCBjbGljayBldmVudC5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gYXV0b0ZvY3VzIFNldCB0byB0cnVlIHRvIGF1dG8gZm9jdXMgdGhlIHJvb3QgZWxlbWVudC5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IFtwcm9wcy5vbkZpbGVEaWFsb2dPcGVuXSBDYiBmb3Igd2hlbiBvcGVuaW5nIHRoZSBmaWxlIGRpYWxvZ1xuICogQHBhcmFtIHtkcmFnQ2J9IFtwcm9wcy5vbkRyYWdFbnRlcl0gQ2IgZm9yIHdoZW4gdGhlIGBkcmFnZW50ZXJgIGV2ZW50IG9jY3Vycy5cbiAqIEBwYXJhbSB7ZHJhZ0NifSBbcHJvcHMub25EcmFnTGVhdmVdIENiIGZvciB3aGVuIHRoZSBgZHJhZ2xlYXZlYCBldmVudCBvY2N1cnNcbiAqIEBwYXJhbSB7ZHJhZ0NifSBbcHJvcHMub25EcmFnT3Zlcl0gQ2IgZm9yIHdoZW4gdGhlIGBkcmFnb3ZlcmAgZXZlbnQgb2NjdXJzXG4gKiBAcGFyYW0ge2Ryb3BDYn0gW3Byb3BzLm9uRHJvcF0gQ2IgZm9yIHdoZW4gdGhlIGBkcm9wYCBldmVudCBvY2N1cnMuXG4gKiBOb3RlIHRoYXQgdGhpcyBjYWxsYmFjayBpcyBpbnZva2VkIGFmdGVyIHRoZSBgZ2V0RmlsZXNGcm9tRXZlbnRgIGNhbGxiYWNrIGlzIGRvbmUuXG4gKlxuICogRmlsZXMgYXJlIGFjY2VwdGVkIG9yIHJlamVjdGVkIGJhc2VkIG9uIHRoZSBgYWNjZXB0YCwgYG11bHRpcGxlYCwgYG1pblNpemVgIGFuZCBgbWF4U2l6ZWAgcHJvcHMuXG4gKiBgYWNjZXB0YCBtdXN0IGJlIGFuIG9iamVjdCB3aXRoIGtleXMgYXMgYSB2YWxpZCBbTUlNRSB0eXBlXShodHRwOi8vd3d3LmlhbmEub3JnL2Fzc2lnbm1lbnRzL21lZGlhLXR5cGVzL21lZGlhLXR5cGVzLnhodG1sKSBhY2NvcmRpbmcgdG8gW2lucHV0IGVsZW1lbnQgc3BlY2lmaWNhdGlvbl0oaHR0cHM6Ly93d3cudzMub3JnL3dpa2kvSFRNTC9FbGVtZW50cy9pbnB1dC9maWxlKSBhbmQgdGhlIHZhbHVlIGFuIGFycmF5IG9mIGZpbGUgZXh0ZW5zaW9ucyAob3B0aW9uYWwpLlxuICogSWYgYG11bHRpcGxlYCBpcyBzZXQgdG8gZmFsc2UgYW5kIGFkZGl0aW9uYWwgZmlsZXMgYXJlIGRyb3BwZWQsXG4gKiBhbGwgZmlsZXMgYmVzaWRlcyB0aGUgZmlyc3Qgd2lsbCBiZSByZWplY3RlZC5cbiAqIEFueSBmaWxlIHdoaWNoIGRvZXMgbm90IGhhdmUgYSBzaXplIGluIHRoZSBbYG1pblNpemVgLCBgbWF4U2l6ZWBdIHJhbmdlLCB3aWxsIGJlIHJlamVjdGVkIGFzIHdlbGwuXG4gKlxuICogTm90ZSB0aGF0IHRoZSBgb25Ecm9wYCBjYWxsYmFjayB3aWxsIGFsd2F5cyBiZSBpbnZva2VkIHJlZ2FyZGxlc3MgaWYgdGhlIGRyb3BwZWQgZmlsZXMgd2VyZSBhY2NlcHRlZCBvciByZWplY3RlZC5cbiAqIElmIHlvdSdkIGxpa2UgdG8gcmVhY3QgdG8gYSBzcGVjaWZpYyBzY2VuYXJpbywgdXNlIHRoZSBgb25Ecm9wQWNjZXB0ZWRgL2BvbkRyb3BSZWplY3RlZGAgcHJvcHMuXG4gKlxuICogYG9uRHJvcGAgd2lsbCBwcm92aWRlIHlvdSB3aXRoIGFuIGFycmF5IG9mIFtGaWxlXShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvRmlsZSkgb2JqZWN0cyB3aGljaCB5b3UgY2FuIHRoZW4gcHJvY2VzcyBhbmQgc2VuZCB0byBhIHNlcnZlci5cbiAqIEZvciBleGFtcGxlLCB3aXRoIFtTdXBlckFnZW50XShodHRwczovL2dpdGh1Yi5jb20vdmlzaW9ubWVkaWEvc3VwZXJhZ2VudCkgYXMgYSBodHRwL2FqYXggbGlicmFyeTpcbiAqXG4gKiBgYGBqc1xuICogZnVuY3Rpb24gb25Ecm9wKGFjY2VwdGVkRmlsZXMpIHtcbiAqICAgY29uc3QgcmVxID0gcmVxdWVzdC5wb3N0KCcvdXBsb2FkJylcbiAqICAgYWNjZXB0ZWRGaWxlcy5mb3JFYWNoKGZpbGUgPT4ge1xuICogICAgIHJlcS5hdHRhY2goZmlsZS5uYW1lLCBmaWxlKVxuICogICB9KVxuICogICByZXEuZW5kKGNhbGxiYWNrKVxuICogfVxuICogYGBgXG4gKiBAcGFyYW0ge2Ryb3BBY2NlcHRlZENifSBbcHJvcHMub25Ecm9wQWNjZXB0ZWRdXG4gKiBAcGFyYW0ge2Ryb3BSZWplY3RlZENifSBbcHJvcHMub25Ecm9wUmVqZWN0ZWRdXG4gKiBAcGFyYW0geyhlcnJvcjogRXJyb3IpID0+IHZvaWR9IFtwcm9wcy5vbkVycm9yXVxuICpcbiAqIEByZXR1cm5zIHtEcm9wem9uZVN0YXRlICYgRHJvcHpvbmVNZXRob2RzfVxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlRHJvcHpvbmUocHJvcHMgPSB7fSkge1xuICBjb25zdCB7XG4gICAgYWNjZXB0LFxuICAgIGRpc2FibGVkLFxuICAgIGdldEZpbGVzRnJvbUV2ZW50LFxuICAgIG1heFNpemUsXG4gICAgbWluU2l6ZSxcbiAgICBtdWx0aXBsZSxcbiAgICBtYXhGaWxlcyxcbiAgICBvbkRyYWdFbnRlcixcbiAgICBvbkRyYWdMZWF2ZSxcbiAgICBvbkRyYWdPdmVyLFxuICAgIG9uRHJvcCxcbiAgICBvbkRyb3BBY2NlcHRlZCxcbiAgICBvbkRyb3BSZWplY3RlZCxcbiAgICBvbkZpbGVEaWFsb2dDYW5jZWwsXG4gICAgb25GaWxlRGlhbG9nT3BlbixcbiAgICB1c2VGc0FjY2Vzc0FwaSxcbiAgICBhdXRvRm9jdXMsXG4gICAgcHJldmVudERyb3BPbkRvY3VtZW50LFxuICAgIG5vQ2xpY2ssXG4gICAgbm9LZXlib2FyZCxcbiAgICBub0RyYWcsXG4gICAgbm9EcmFnRXZlbnRzQnViYmxpbmcsXG4gICAgb25FcnJvcixcbiAgICB2YWxpZGF0b3IsXG4gIH0gPSB7XG4gICAgLi4uZGVmYXVsdFByb3BzLFxuICAgIC4uLnByb3BzLFxuICB9O1xuXG4gIGNvbnN0IGFjY2VwdEF0dHIgPSB1c2VNZW1vKCgpID0+IGFjY2VwdFByb3BBc0FjY2VwdEF0dHIoYWNjZXB0KSwgW2FjY2VwdF0pO1xuICBjb25zdCBwaWNrZXJUeXBlcyA9IHVzZU1lbW8oKCkgPT4gcGlja2VyT3B0aW9uc0Zyb21BY2NlcHQoYWNjZXB0KSwgW2FjY2VwdF0pO1xuXG4gIGNvbnN0IG9uRmlsZURpYWxvZ09wZW5DYiA9IHVzZU1lbW8oXG4gICAgKCkgPT4gKHR5cGVvZiBvbkZpbGVEaWFsb2dPcGVuID09PSBcImZ1bmN0aW9uXCIgPyBvbkZpbGVEaWFsb2dPcGVuIDogbm9vcCksXG4gICAgW29uRmlsZURpYWxvZ09wZW5dXG4gICk7XG4gIGNvbnN0IG9uRmlsZURpYWxvZ0NhbmNlbENiID0gdXNlTWVtbyhcbiAgICAoKSA9PlxuICAgICAgdHlwZW9mIG9uRmlsZURpYWxvZ0NhbmNlbCA9PT0gXCJmdW5jdGlvblwiID8gb25GaWxlRGlhbG9nQ2FuY2VsIDogbm9vcCxcbiAgICBbb25GaWxlRGlhbG9nQ2FuY2VsXVxuICApO1xuXG4gIC8qKlxuICAgKiBAY29uc3RhbnRcbiAgICogQHR5cGUge1JlYWN0Lk11dGFibGVSZWZPYmplY3Q8SFRNTEVsZW1lbnQ+fVxuICAgKi9cbiAgY29uc3Qgcm9vdFJlZiA9IHVzZVJlZihudWxsKTtcblxuICBjb25zdCBpbnB1dFJlZiA9IHVzZVJlZihudWxsKTtcblxuICBjb25zdCBbc3RhdGUsIGRpc3BhdGNoXSA9IHVzZVJlZHVjZXIocmVkdWNlciwgaW5pdGlhbFN0YXRlKTtcbiAgY29uc3QgeyBpc0ZvY3VzZWQsIGlzRmlsZURpYWxvZ0FjdGl2ZSB9ID0gc3RhdGU7XG5cbiAgY29uc3QgZnNBY2Nlc3NBcGlXb3Jrc1JlZiA9IHVzZVJlZihcbiAgICB0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiICYmXG4gICAgICB3aW5kb3cuaXNTZWN1cmVDb250ZXh0ICYmXG4gICAgICB1c2VGc0FjY2Vzc0FwaSAmJlxuICAgICAgY2FuVXNlRmlsZVN5c3RlbUFjY2Vzc0FQSSgpXG4gICk7XG5cbiAgLy8gVXBkYXRlIGZpbGUgZGlhbG9nIGFjdGl2ZSBzdGF0ZSB3aGVuIHRoZSB3aW5kb3cgaXMgZm9jdXNlZCBvblxuICBjb25zdCBvbldpbmRvd0ZvY3VzID0gKCkgPT4ge1xuICAgIC8vIEV4ZWN1dGUgdGhlIHRpbWVvdXQgb25seSBpZiB0aGUgZmlsZSBkaWFsb2cgaXMgb3BlbmVkIGluIHRoZSBicm93c2VyXG4gICAgaWYgKCFmc0FjY2Vzc0FwaVdvcmtzUmVmLmN1cnJlbnQgJiYgaXNGaWxlRGlhbG9nQWN0aXZlKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgaWYgKGlucHV0UmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICBjb25zdCB7IGZpbGVzIH0gPSBpbnB1dFJlZi5jdXJyZW50O1xuXG4gICAgICAgICAgaWYgKCFmaWxlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGRpc3BhdGNoKHsgdHlwZTogXCJjbG9zZURpYWxvZ1wiIH0pO1xuICAgICAgICAgICAgb25GaWxlRGlhbG9nQ2FuY2VsQ2IoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sIDMwMCk7XG4gICAgfVxuICB9O1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwiZm9jdXNcIiwgb25XaW5kb3dGb2N1cywgZmFsc2UpO1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImZvY3VzXCIsIG9uV2luZG93Rm9jdXMsIGZhbHNlKTtcbiAgICB9O1xuICB9LCBbaW5wdXRSZWYsIGlzRmlsZURpYWxvZ0FjdGl2ZSwgb25GaWxlRGlhbG9nQ2FuY2VsQ2IsIGZzQWNjZXNzQXBpV29ya3NSZWZdKTtcblxuICBjb25zdCBkcmFnVGFyZ2V0c1JlZiA9IHVzZVJlZihbXSk7XG4gIGNvbnN0IG9uRG9jdW1lbnREcm9wID0gKGV2ZW50KSA9PiB7XG4gICAgaWYgKHJvb3RSZWYuY3VycmVudCAmJiByb290UmVmLmN1cnJlbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSkge1xuICAgICAgLy8gSWYgd2UgaW50ZXJjZXB0ZWQgYW4gZXZlbnQgZm9yIG91ciBpbnN0YW5jZSwgbGV0IGl0IHByb3BhZ2F0ZSBkb3duIHRvIHRoZSBpbnN0YW5jZSdzIG9uRHJvcCBoYW5kbGVyXG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZHJhZ1RhcmdldHNSZWYuY3VycmVudCA9IFtdO1xuICB9O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHByZXZlbnREcm9wT25Eb2N1bWVudCkge1xuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcImRyYWdvdmVyXCIsIG9uRG9jdW1lbnREcmFnT3ZlciwgZmFsc2UpO1xuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcImRyb3BcIiwgb25Eb2N1bWVudERyb3AsIGZhbHNlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKHByZXZlbnREcm9wT25Eb2N1bWVudCkge1xuICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwiZHJhZ292ZXJcIiwgb25Eb2N1bWVudERyYWdPdmVyKTtcbiAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImRyb3BcIiwgb25Eb2N1bWVudERyb3ApO1xuICAgICAgfVxuICAgIH07XG4gIH0sIFtyb290UmVmLCBwcmV2ZW50RHJvcE9uRG9jdW1lbnRdKTtcblxuICAvLyBBdXRvIGZvY3VzIHRoZSByb290IHdoZW4gYXV0b0ZvY3VzIGlzIHRydWVcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWRpc2FibGVkICYmIGF1dG9Gb2N1cyAmJiByb290UmVmLmN1cnJlbnQpIHtcbiAgICAgIHJvb3RSZWYuY3VycmVudC5mb2N1cygpO1xuICAgIH1cbiAgICByZXR1cm4gKCkgPT4ge307XG4gIH0sIFtyb290UmVmLCBhdXRvRm9jdXMsIGRpc2FibGVkXSk7XG5cbiAgY29uc3Qgb25FcnJDYiA9IHVzZUNhbGxiYWNrKFxuICAgIChlKSA9PiB7XG4gICAgICBpZiAob25FcnJvcikge1xuICAgICAgICBvbkVycm9yKGUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gTGV0IHRoZSB1c2VyIGtub3cgc29tZXRoaW5nJ3MgZ29uZSB3cm9uZyBpZiB0aGV5IGhhdmVuJ3QgcHJvdmlkZWQgdGhlIG9uRXJyb3IgY2IuXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgICB9XG4gICAgfSxcbiAgICBbb25FcnJvcl1cbiAgKTtcblxuICBjb25zdCBvbkRyYWdFbnRlckNiID0gdXNlQ2FsbGJhY2soXG4gICAgKGV2ZW50KSA9PiB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgLy8gUGVyc2lzdCBoZXJlIGJlY2F1c2Ugd2UgbmVlZCB0aGUgZXZlbnQgbGF0ZXIgYWZ0ZXIgZ2V0RmlsZXNGcm9tRXZlbnQoKSBpcyBkb25lXG4gICAgICBldmVudC5wZXJzaXN0KCk7XG4gICAgICBzdG9wUHJvcGFnYXRpb24oZXZlbnQpO1xuXG4gICAgICBkcmFnVGFyZ2V0c1JlZi5jdXJyZW50ID0gWy4uLmRyYWdUYXJnZXRzUmVmLmN1cnJlbnQsIGV2ZW50LnRhcmdldF07XG5cbiAgICAgIGlmIChpc0V2dFdpdGhGaWxlcyhldmVudCkpIHtcbiAgICAgICAgUHJvbWlzZS5yZXNvbHZlKGdldEZpbGVzRnJvbUV2ZW50KGV2ZW50KSlcbiAgICAgICAgICAudGhlbigoZmlsZXMpID0+IHtcbiAgICAgICAgICAgIGlmIChpc1Byb3BhZ2F0aW9uU3RvcHBlZChldmVudCkgJiYgIW5vRHJhZ0V2ZW50c0J1YmJsaW5nKSB7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgZmlsZUNvdW50ID0gZmlsZXMubGVuZ3RoO1xuICAgICAgICAgICAgY29uc3QgaXNEcmFnQWNjZXB0ID1cbiAgICAgICAgICAgICAgZmlsZUNvdW50ID4gMCAmJlxuICAgICAgICAgICAgICBhbGxGaWxlc0FjY2VwdGVkKHtcbiAgICAgICAgICAgICAgICBmaWxlcyxcbiAgICAgICAgICAgICAgICBhY2NlcHQ6IGFjY2VwdEF0dHIsXG4gICAgICAgICAgICAgICAgbWluU2l6ZSxcbiAgICAgICAgICAgICAgICBtYXhTaXplLFxuICAgICAgICAgICAgICAgIG11bHRpcGxlLFxuICAgICAgICAgICAgICAgIG1heEZpbGVzLFxuICAgICAgICAgICAgICAgIHZhbGlkYXRvcixcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCBpc0RyYWdSZWplY3QgPSBmaWxlQ291bnQgPiAwICYmICFpc0RyYWdBY2NlcHQ7XG5cbiAgICAgICAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgICAgICAgaXNEcmFnQWNjZXB0LFxuICAgICAgICAgICAgICBpc0RyYWdSZWplY3QsXG4gICAgICAgICAgICAgIGlzRHJhZ0FjdGl2ZTogdHJ1ZSxcbiAgICAgICAgICAgICAgdHlwZTogXCJzZXREcmFnZ2VkRmlsZXNcIixcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBpZiAob25EcmFnRW50ZXIpIHtcbiAgICAgICAgICAgICAgb25EcmFnRW50ZXIoZXZlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgICAgLmNhdGNoKChlKSA9PiBvbkVyckNiKGUpKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFtcbiAgICAgIGdldEZpbGVzRnJvbUV2ZW50LFxuICAgICAgb25EcmFnRW50ZXIsXG4gICAgICBvbkVyckNiLFxuICAgICAgbm9EcmFnRXZlbnRzQnViYmxpbmcsXG4gICAgICBhY2NlcHRBdHRyLFxuICAgICAgbWluU2l6ZSxcbiAgICAgIG1heFNpemUsXG4gICAgICBtdWx0aXBsZSxcbiAgICAgIG1heEZpbGVzLFxuICAgICAgdmFsaWRhdG9yLFxuICAgIF1cbiAgKTtcblxuICBjb25zdCBvbkRyYWdPdmVyQ2IgPSB1c2VDYWxsYmFjayhcbiAgICAoZXZlbnQpID0+IHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBldmVudC5wZXJzaXN0KCk7XG4gICAgICBzdG9wUHJvcGFnYXRpb24oZXZlbnQpO1xuXG4gICAgICBjb25zdCBoYXNGaWxlcyA9IGlzRXZ0V2l0aEZpbGVzKGV2ZW50KTtcbiAgICAgIGlmIChoYXNGaWxlcyAmJiBldmVudC5kYXRhVHJhbnNmZXIpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBldmVudC5kYXRhVHJhbnNmZXIuZHJvcEVmZmVjdCA9IFwiY29weVwiO1xuICAgICAgICB9IGNhdGNoIHt9IC8qIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tZW1wdHkgKi9cbiAgICAgIH1cblxuICAgICAgaWYgKGhhc0ZpbGVzICYmIG9uRHJhZ092ZXIpIHtcbiAgICAgICAgb25EcmFnT3ZlcihldmVudCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9LFxuICAgIFtvbkRyYWdPdmVyLCBub0RyYWdFdmVudHNCdWJibGluZ11cbiAgKTtcblxuICBjb25zdCBvbkRyYWdMZWF2ZUNiID0gdXNlQ2FsbGJhY2soXG4gICAgKGV2ZW50KSA9PiB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZXZlbnQucGVyc2lzdCgpO1xuICAgICAgc3RvcFByb3BhZ2F0aW9uKGV2ZW50KTtcblxuICAgICAgLy8gT25seSBkZWFjdGl2YXRlIG9uY2UgdGhlIGRyb3B6b25lIGFuZCBhbGwgY2hpbGRyZW4gaGF2ZSBiZWVuIGxlZnRcbiAgICAgIGNvbnN0IHRhcmdldHMgPSBkcmFnVGFyZ2V0c1JlZi5jdXJyZW50LmZpbHRlcihcbiAgICAgICAgKHRhcmdldCkgPT4gcm9vdFJlZi5jdXJyZW50ICYmIHJvb3RSZWYuY3VycmVudC5jb250YWlucyh0YXJnZXQpXG4gICAgICApO1xuICAgICAgLy8gTWFrZSBzdXJlIHRvIHJlbW92ZSBhIHRhcmdldCBwcmVzZW50IG11bHRpcGxlIHRpbWVzIG9ubHkgb25jZVxuICAgICAgLy8gKEZpcmVmb3ggbWF5IGZpcmUgZHJhZ2VudGVyL2RyYWdsZWF2ZSBtdWx0aXBsZSB0aW1lcyBvbiB0aGUgc2FtZSBlbGVtZW50KVxuICAgICAgY29uc3QgdGFyZ2V0SWR4ID0gdGFyZ2V0cy5pbmRleE9mKGV2ZW50LnRhcmdldCk7XG4gICAgICBpZiAodGFyZ2V0SWR4ICE9PSAtMSkge1xuICAgICAgICB0YXJnZXRzLnNwbGljZSh0YXJnZXRJZHgsIDEpO1xuICAgICAgfVxuICAgICAgZHJhZ1RhcmdldHNSZWYuY3VycmVudCA9IHRhcmdldHM7XG4gICAgICBpZiAodGFyZ2V0cy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgZGlzcGF0Y2goe1xuICAgICAgICB0eXBlOiBcInNldERyYWdnZWRGaWxlc1wiLFxuICAgICAgICBpc0RyYWdBY3RpdmU6IGZhbHNlLFxuICAgICAgICBpc0RyYWdBY2NlcHQ6IGZhbHNlLFxuICAgICAgICBpc0RyYWdSZWplY3Q6IGZhbHNlLFxuICAgICAgfSk7XG5cbiAgICAgIGlmIChpc0V2dFdpdGhGaWxlcyhldmVudCkgJiYgb25EcmFnTGVhdmUpIHtcbiAgICAgICAgb25EcmFnTGVhdmUoZXZlbnQpO1xuICAgICAgfVxuICAgIH0sXG4gICAgW3Jvb3RSZWYsIG9uRHJhZ0xlYXZlLCBub0RyYWdFdmVudHNCdWJibGluZ11cbiAgKTtcblxuICBjb25zdCBzZXRGaWxlcyA9IHVzZUNhbGxiYWNrKFxuICAgIChmaWxlcywgZXZlbnQpID0+IHtcbiAgICAgIGNvbnN0IGFjY2VwdGVkRmlsZXMgPSBbXTtcbiAgICAgIGNvbnN0IGZpbGVSZWplY3Rpb25zID0gW107XG5cbiAgICAgIGZpbGVzLmZvckVhY2goKGZpbGUpID0+IHtcbiAgICAgICAgY29uc3QgW2FjY2VwdGVkLCBhY2NlcHRFcnJvcl0gPSBmaWxlQWNjZXB0ZWQoZmlsZSwgYWNjZXB0QXR0cik7XG4gICAgICAgIGNvbnN0IFtzaXplTWF0Y2gsIHNpemVFcnJvcl0gPSBmaWxlTWF0Y2hTaXplKGZpbGUsIG1pblNpemUsIG1heFNpemUpO1xuICAgICAgICBjb25zdCBjdXN0b21FcnJvcnMgPSB2YWxpZGF0b3IgPyB2YWxpZGF0b3IoZmlsZSkgOiBudWxsO1xuXG4gICAgICAgIGlmIChhY2NlcHRlZCAmJiBzaXplTWF0Y2ggJiYgIWN1c3RvbUVycm9ycykge1xuICAgICAgICAgIGFjY2VwdGVkRmlsZXMucHVzaChmaWxlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsZXQgZXJyb3JzID0gW2FjY2VwdEVycm9yLCBzaXplRXJyb3JdO1xuXG4gICAgICAgICAgaWYgKGN1c3RvbUVycm9ycykge1xuICAgICAgICAgICAgZXJyb3JzID0gZXJyb3JzLmNvbmNhdChjdXN0b21FcnJvcnMpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGZpbGVSZWplY3Rpb25zLnB1c2goeyBmaWxlLCBlcnJvcnM6IGVycm9ycy5maWx0ZXIoKGUpID0+IGUpIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgaWYgKFxuICAgICAgICAoIW11bHRpcGxlICYmIGFjY2VwdGVkRmlsZXMubGVuZ3RoID4gMSkgfHxcbiAgICAgICAgKG11bHRpcGxlICYmIG1heEZpbGVzID49IDEgJiYgYWNjZXB0ZWRGaWxlcy5sZW5ndGggPiBtYXhGaWxlcylcbiAgICAgICkge1xuICAgICAgICAvLyBSZWplY3QgZXZlcnl0aGluZyBhbmQgZW1wdHkgYWNjZXB0ZWQgZmlsZXNcbiAgICAgICAgYWNjZXB0ZWRGaWxlcy5mb3JFYWNoKChmaWxlKSA9PiB7XG4gICAgICAgICAgZmlsZVJlamVjdGlvbnMucHVzaCh7IGZpbGUsIGVycm9yczogW1RPT19NQU5ZX0ZJTEVTX1JFSkVDVElPTl0gfSk7XG4gICAgICAgIH0pO1xuICAgICAgICBhY2NlcHRlZEZpbGVzLnNwbGljZSgwKTtcbiAgICAgIH1cblxuICAgICAgZGlzcGF0Y2goe1xuICAgICAgICBhY2NlcHRlZEZpbGVzLFxuICAgICAgICBmaWxlUmVqZWN0aW9ucyxcbiAgICAgICAgaXNEcmFnUmVqZWN0OiBmaWxlUmVqZWN0aW9ucy5sZW5ndGggPiAwLFxuICAgICAgICB0eXBlOiBcInNldEZpbGVzXCIsXG4gICAgICB9KTtcblxuICAgICAgaWYgKG9uRHJvcCkge1xuICAgICAgICBvbkRyb3AoYWNjZXB0ZWRGaWxlcywgZmlsZVJlamVjdGlvbnMsIGV2ZW50KTtcbiAgICAgIH1cblxuICAgICAgaWYgKGZpbGVSZWplY3Rpb25zLmxlbmd0aCA+IDAgJiYgb25Ecm9wUmVqZWN0ZWQpIHtcbiAgICAgICAgb25Ecm9wUmVqZWN0ZWQoZmlsZVJlamVjdGlvbnMsIGV2ZW50KTtcbiAgICAgIH1cblxuICAgICAgaWYgKGFjY2VwdGVkRmlsZXMubGVuZ3RoID4gMCAmJiBvbkRyb3BBY2NlcHRlZCkge1xuICAgICAgICBvbkRyb3BBY2NlcHRlZChhY2NlcHRlZEZpbGVzLCBldmVudCk7XG4gICAgICB9XG4gICAgfSxcbiAgICBbXG4gICAgICBkaXNwYXRjaCxcbiAgICAgIG11bHRpcGxlLFxuICAgICAgYWNjZXB0QXR0cixcbiAgICAgIG1pblNpemUsXG4gICAgICBtYXhTaXplLFxuICAgICAgbWF4RmlsZXMsXG4gICAgICBvbkRyb3AsXG4gICAgICBvbkRyb3BBY2NlcHRlZCxcbiAgICAgIG9uRHJvcFJlamVjdGVkLFxuICAgICAgdmFsaWRhdG9yLFxuICAgIF1cbiAgKTtcblxuICBjb25zdCBvbkRyb3BDYiA9IHVzZUNhbGxiYWNrKFxuICAgIChldmVudCkgPT4ge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIC8vIFBlcnNpc3QgaGVyZSBiZWNhdXNlIHdlIG5lZWQgdGhlIGV2ZW50IGxhdGVyIGFmdGVyIGdldEZpbGVzRnJvbUV2ZW50KCkgaXMgZG9uZVxuICAgICAgZXZlbnQucGVyc2lzdCgpO1xuICAgICAgc3RvcFByb3BhZ2F0aW9uKGV2ZW50KTtcblxuICAgICAgZHJhZ1RhcmdldHNSZWYuY3VycmVudCA9IFtdO1xuXG4gICAgICBpZiAoaXNFdnRXaXRoRmlsZXMoZXZlbnQpKSB7XG4gICAgICAgIFByb21pc2UucmVzb2x2ZShnZXRGaWxlc0Zyb21FdmVudChldmVudCkpXG4gICAgICAgICAgLnRoZW4oKGZpbGVzKSA9PiB7XG4gICAgICAgICAgICBpZiAoaXNQcm9wYWdhdGlvblN0b3BwZWQoZXZlbnQpICYmICFub0RyYWdFdmVudHNCdWJibGluZykge1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzZXRGaWxlcyhmaWxlcywgZXZlbnQpO1xuICAgICAgICAgIH0pXG4gICAgICAgICAgLmNhdGNoKChlKSA9PiBvbkVyckNiKGUpKTtcbiAgICAgIH1cbiAgICAgIGRpc3BhdGNoKHsgdHlwZTogXCJyZXNldFwiIH0pO1xuICAgIH0sXG4gICAgW2dldEZpbGVzRnJvbUV2ZW50LCBzZXRGaWxlcywgb25FcnJDYiwgbm9EcmFnRXZlbnRzQnViYmxpbmddXG4gICk7XG5cbiAgLy8gRm4gZm9yIG9wZW5pbmcgdGhlIGZpbGUgZGlhbG9nIHByb2dyYW1tYXRpY2FsbHlcbiAgY29uc3Qgb3BlbkZpbGVEaWFsb2cgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgLy8gTm8gcG9pbnQgdG8gdXNlIEZTIGFjY2VzcyBBUElzIGlmIGNvbnRleHQgaXMgbm90IHNlY3VyZVxuICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL1NlY3VyaXR5L1NlY3VyZV9Db250ZXh0cyNmZWF0dXJlX2RldGVjdGlvblxuICAgIGlmIChmc0FjY2Vzc0FwaVdvcmtzUmVmLmN1cnJlbnQpIHtcbiAgICAgIGRpc3BhdGNoKHsgdHlwZTogXCJvcGVuRGlhbG9nXCIgfSk7XG4gICAgICBvbkZpbGVEaWFsb2dPcGVuQ2IoKTtcbiAgICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS93aW5kb3cvc2hvd09wZW5GaWxlUGlja2VyXG4gICAgICBjb25zdCBvcHRzID0ge1xuICAgICAgICBtdWx0aXBsZSxcbiAgICAgICAgdHlwZXM6IHBpY2tlclR5cGVzLFxuICAgICAgfTtcbiAgICAgIHdpbmRvd1xuICAgICAgICAuc2hvd09wZW5GaWxlUGlja2VyKG9wdHMpXG4gICAgICAgIC50aGVuKChoYW5kbGVzKSA9PiBnZXRGaWxlc0Zyb21FdmVudChoYW5kbGVzKSlcbiAgICAgICAgLnRoZW4oKGZpbGVzKSA9PiB7XG4gICAgICAgICAgc2V0RmlsZXMoZmlsZXMsIG51bGwpO1xuICAgICAgICAgIGRpc3BhdGNoKHsgdHlwZTogXCJjbG9zZURpYWxvZ1wiIH0pO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKGUpID0+IHtcbiAgICAgICAgICAvLyBBYm9ydEVycm9yIG1lYW5zIHRoZSB1c2VyIGNhbmNlbGVkXG4gICAgICAgICAgaWYgKGlzQWJvcnQoZSkpIHtcbiAgICAgICAgICAgIG9uRmlsZURpYWxvZ0NhbmNlbENiKGUpO1xuICAgICAgICAgICAgZGlzcGF0Y2goeyB0eXBlOiBcImNsb3NlRGlhbG9nXCIgfSk7XG4gICAgICAgICAgfSBlbHNlIGlmIChpc1NlY3VyaXR5RXJyb3IoZSkpIHtcbiAgICAgICAgICAgIGZzQWNjZXNzQXBpV29ya3NSZWYuY3VycmVudCA9IGZhbHNlO1xuICAgICAgICAgICAgLy8gQ09SUywgc28gY2Fubm90IHVzZSB0aGlzIEFQSVxuICAgICAgICAgICAgLy8gVHJ5IHVzaW5nIHRoZSBpbnB1dFxuICAgICAgICAgICAgaWYgKGlucHV0UmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgaW5wdXRSZWYuY3VycmVudC52YWx1ZSA9IG51bGw7XG4gICAgICAgICAgICAgIGlucHV0UmVmLmN1cnJlbnQuY2xpY2soKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIG9uRXJyQ2IoXG4gICAgICAgICAgICAgICAgbmV3IEVycm9yKFxuICAgICAgICAgICAgICAgICAgXCJDYW5ub3Qgb3BlbiB0aGUgZmlsZSBwaWNrZXIgYmVjYXVzZSB0aGUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0ZpbGVfU3lzdGVtX0FjY2Vzc19BUEkgaXMgbm90IHN1cHBvcnRlZCBhbmQgbm8gPGlucHV0PiB3YXMgcHJvdmlkZWQuXCJcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG9uRXJyQ2IoZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoaW5wdXRSZWYuY3VycmVudCkge1xuICAgICAgZGlzcGF0Y2goeyB0eXBlOiBcIm9wZW5EaWFsb2dcIiB9KTtcbiAgICAgIG9uRmlsZURpYWxvZ09wZW5DYigpO1xuICAgICAgaW5wdXRSZWYuY3VycmVudC52YWx1ZSA9IG51bGw7XG4gICAgICBpbnB1dFJlZi5jdXJyZW50LmNsaWNrKCk7XG4gICAgfVxuICB9LCBbXG4gICAgZGlzcGF0Y2gsXG4gICAgb25GaWxlRGlhbG9nT3BlbkNiLFxuICAgIG9uRmlsZURpYWxvZ0NhbmNlbENiLFxuICAgIHVzZUZzQWNjZXNzQXBpLFxuICAgIHNldEZpbGVzLFxuICAgIG9uRXJyQ2IsXG4gICAgcGlja2VyVHlwZXMsXG4gICAgbXVsdGlwbGUsXG4gIF0pO1xuXG4gIC8vIENiIHRvIG9wZW4gdGhlIGZpbGUgZGlhbG9nIHdoZW4gU1BBQ0UvRU5URVIgb2NjdXJzIG9uIHRoZSBkcm9wem9uZVxuICBjb25zdCBvbktleURvd25DYiA9IHVzZUNhbGxiYWNrKFxuICAgIChldmVudCkgPT4ge1xuICAgICAgLy8gSWdub3JlIGtleWJvYXJkIGV2ZW50cyBidWJibGluZyB1cCB0aGUgRE9NIHRyZWVcbiAgICAgIGlmICghcm9vdFJlZi5jdXJyZW50IHx8ICFyb290UmVmLmN1cnJlbnQuaXNFcXVhbE5vZGUoZXZlbnQudGFyZ2V0KSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChcbiAgICAgICAgZXZlbnQua2V5ID09PSBcIiBcIiB8fFxuICAgICAgICBldmVudC5rZXkgPT09IFwiRW50ZXJcIiB8fFxuICAgICAgICBldmVudC5rZXlDb2RlID09PSAzMiB8fFxuICAgICAgICBldmVudC5rZXlDb2RlID09PSAxM1xuICAgICAgKSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIG9wZW5GaWxlRGlhbG9nKCk7XG4gICAgICB9XG4gICAgfSxcbiAgICBbcm9vdFJlZiwgb3BlbkZpbGVEaWFsb2ddXG4gICk7XG5cbiAgLy8gVXBkYXRlIGZvY3VzIHN0YXRlIGZvciB0aGUgZHJvcHpvbmVcbiAgY29uc3Qgb25Gb2N1c0NiID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGRpc3BhdGNoKHsgdHlwZTogXCJmb2N1c1wiIH0pO1xuICB9LCBbXSk7XG4gIGNvbnN0IG9uQmx1ckNiID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGRpc3BhdGNoKHsgdHlwZTogXCJibHVyXCIgfSk7XG4gIH0sIFtdKTtcblxuICAvLyBDYiB0byBvcGVuIHRoZSBmaWxlIGRpYWxvZyB3aGVuIGNsaWNrIG9jY3VycyBvbiB0aGUgZHJvcHpvbmVcbiAgY29uc3Qgb25DbGlja0NiID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmIChub0NsaWNrKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gSW4gSUUxMS9FZGdlIHRoZSBmaWxlLWJyb3dzZXIgZGlhbG9nIGlzIGJsb2NraW5nLCB0aGVyZWZvcmUsIHVzZSBzZXRUaW1lb3V0KClcbiAgICAvLyB0byBlbnN1cmUgUmVhY3QgY2FuIGhhbmRsZSBzdGF0ZSBjaGFuZ2VzXG4gICAgLy8gU2VlOiBodHRwczovL2dpdGh1Yi5jb20vcmVhY3QtZHJvcHpvbmUvcmVhY3QtZHJvcHpvbmUvaXNzdWVzLzQ1MFxuICAgIGlmIChpc0llT3JFZGdlKCkpIHtcbiAgICAgIHNldFRpbWVvdXQob3BlbkZpbGVEaWFsb2csIDApO1xuICAgIH0gZWxzZSB7XG4gICAgICBvcGVuRmlsZURpYWxvZygpO1xuICAgIH1cbiAgfSwgW25vQ2xpY2ssIG9wZW5GaWxlRGlhbG9nXSk7XG5cbiAgY29uc3QgY29tcG9zZUhhbmRsZXIgPSAoZm4pID0+IHtcbiAgICByZXR1cm4gZGlzYWJsZWQgPyBudWxsIDogZm47XG4gIH07XG5cbiAgY29uc3QgY29tcG9zZUtleWJvYXJkSGFuZGxlciA9IChmbikgPT4ge1xuICAgIHJldHVybiBub0tleWJvYXJkID8gbnVsbCA6IGNvbXBvc2VIYW5kbGVyKGZuKTtcbiAgfTtcblxuICBjb25zdCBjb21wb3NlRHJhZ0hhbmRsZXIgPSAoZm4pID0+IHtcbiAgICByZXR1cm4gbm9EcmFnID8gbnVsbCA6IGNvbXBvc2VIYW5kbGVyKGZuKTtcbiAgfTtcblxuICBjb25zdCBzdG9wUHJvcGFnYXRpb24gPSAoZXZlbnQpID0+IHtcbiAgICBpZiAobm9EcmFnRXZlbnRzQnViYmxpbmcpIHtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBnZXRSb290UHJvcHMgPSB1c2VNZW1vKFxuICAgICgpID0+XG4gICAgICAoe1xuICAgICAgICByZWZLZXkgPSBcInJlZlwiLFxuICAgICAgICByb2xlLFxuICAgICAgICBvbktleURvd24sXG4gICAgICAgIG9uRm9jdXMsXG4gICAgICAgIG9uQmx1cixcbiAgICAgICAgb25DbGljayxcbiAgICAgICAgb25EcmFnRW50ZXIsXG4gICAgICAgIG9uRHJhZ092ZXIsXG4gICAgICAgIG9uRHJhZ0xlYXZlLFxuICAgICAgICBvbkRyb3AsXG4gICAgICAgIC4uLnJlc3RcbiAgICAgIH0gPSB7fSkgPT4gKHtcbiAgICAgICAgb25LZXlEb3duOiBjb21wb3NlS2V5Ym9hcmRIYW5kbGVyKFxuICAgICAgICAgIGNvbXBvc2VFdmVudEhhbmRsZXJzKG9uS2V5RG93biwgb25LZXlEb3duQ2IpXG4gICAgICAgICksXG4gICAgICAgIG9uRm9jdXM6IGNvbXBvc2VLZXlib2FyZEhhbmRsZXIoXG4gICAgICAgICAgY29tcG9zZUV2ZW50SGFuZGxlcnMob25Gb2N1cywgb25Gb2N1c0NiKVxuICAgICAgICApLFxuICAgICAgICBvbkJsdXI6IGNvbXBvc2VLZXlib2FyZEhhbmRsZXIoY29tcG9zZUV2ZW50SGFuZGxlcnMob25CbHVyLCBvbkJsdXJDYikpLFxuICAgICAgICBvbkNsaWNrOiBjb21wb3NlSGFuZGxlcihjb21wb3NlRXZlbnRIYW5kbGVycyhvbkNsaWNrLCBvbkNsaWNrQ2IpKSxcbiAgICAgICAgb25EcmFnRW50ZXI6IGNvbXBvc2VEcmFnSGFuZGxlcihcbiAgICAgICAgICBjb21wb3NlRXZlbnRIYW5kbGVycyhvbkRyYWdFbnRlciwgb25EcmFnRW50ZXJDYilcbiAgICAgICAgKSxcbiAgICAgICAgb25EcmFnT3ZlcjogY29tcG9zZURyYWdIYW5kbGVyKFxuICAgICAgICAgIGNvbXBvc2VFdmVudEhhbmRsZXJzKG9uRHJhZ092ZXIsIG9uRHJhZ092ZXJDYilcbiAgICAgICAgKSxcbiAgICAgICAgb25EcmFnTGVhdmU6IGNvbXBvc2VEcmFnSGFuZGxlcihcbiAgICAgICAgICBjb21wb3NlRXZlbnRIYW5kbGVycyhvbkRyYWdMZWF2ZSwgb25EcmFnTGVhdmVDYilcbiAgICAgICAgKSxcbiAgICAgICAgb25Ecm9wOiBjb21wb3NlRHJhZ0hhbmRsZXIoY29tcG9zZUV2ZW50SGFuZGxlcnMob25Ecm9wLCBvbkRyb3BDYikpLFxuICAgICAgICByb2xlOiB0eXBlb2Ygcm9sZSA9PT0gXCJzdHJpbmdcIiAmJiByb2xlICE9PSBcIlwiID8gcm9sZSA6IFwicHJlc2VudGF0aW9uXCIsXG4gICAgICAgIFtyZWZLZXldOiByb290UmVmLFxuICAgICAgICAuLi4oIWRpc2FibGVkICYmICFub0tleWJvYXJkID8geyB0YWJJbmRleDogMCB9IDoge30pLFxuICAgICAgICAuLi5yZXN0LFxuICAgICAgfSksXG4gICAgW1xuICAgICAgcm9vdFJlZixcbiAgICAgIG9uS2V5RG93bkNiLFxuICAgICAgb25Gb2N1c0NiLFxuICAgICAgb25CbHVyQ2IsXG4gICAgICBvbkNsaWNrQ2IsXG4gICAgICBvbkRyYWdFbnRlckNiLFxuICAgICAgb25EcmFnT3ZlckNiLFxuICAgICAgb25EcmFnTGVhdmVDYixcbiAgICAgIG9uRHJvcENiLFxuICAgICAgbm9LZXlib2FyZCxcbiAgICAgIG5vRHJhZyxcbiAgICAgIGRpc2FibGVkLFxuICAgIF1cbiAgKTtcblxuICBjb25zdCBvbklucHV0RWxlbWVudENsaWNrID0gdXNlQ2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gIH0sIFtdKTtcblxuICBjb25zdCBnZXRJbnB1dFByb3BzID0gdXNlTWVtbyhcbiAgICAoKSA9PlxuICAgICAgKHsgcmVmS2V5ID0gXCJyZWZcIiwgb25DaGFuZ2UsIG9uQ2xpY2ssIC4uLnJlc3QgfSA9IHt9KSA9PiB7XG4gICAgICAgIGNvbnN0IGlucHV0UHJvcHMgPSB7XG4gICAgICAgICAgYWNjZXB0OiBhY2NlcHRBdHRyLFxuICAgICAgICAgIG11bHRpcGxlLFxuICAgICAgICAgIHR5cGU6IFwiZmlsZVwiLFxuICAgICAgICAgIHN0eWxlOiB7XG4gICAgICAgICAgICBib3JkZXI6IDAsXG4gICAgICAgICAgICBjbGlwOiBcInJlY3QoMCwgMCwgMCwgMClcIixcbiAgICAgICAgICAgIGNsaXBQYXRoOiBcImluc2V0KDUwJSlcIixcbiAgICAgICAgICAgIGhlaWdodDogXCIxcHhcIixcbiAgICAgICAgICAgIG1hcmdpbjogXCIwIC0xcHggLTFweCAwXCIsXG4gICAgICAgICAgICBvdmVyZmxvdzogXCJoaWRkZW5cIixcbiAgICAgICAgICAgIHBhZGRpbmc6IDAsXG4gICAgICAgICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgICAgICAgd2lkdGg6IFwiMXB4XCIsXG4gICAgICAgICAgICB3aGl0ZVNwYWNlOiBcIm5vd3JhcFwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgb25DaGFuZ2U6IGNvbXBvc2VIYW5kbGVyKGNvbXBvc2VFdmVudEhhbmRsZXJzKG9uQ2hhbmdlLCBvbkRyb3BDYikpLFxuICAgICAgICAgIG9uQ2xpY2s6IGNvbXBvc2VIYW5kbGVyKFxuICAgICAgICAgICAgY29tcG9zZUV2ZW50SGFuZGxlcnMob25DbGljaywgb25JbnB1dEVsZW1lbnRDbGljaylcbiAgICAgICAgICApLFxuICAgICAgICAgIHRhYkluZGV4OiAtMSxcbiAgICAgICAgICBbcmVmS2V5XTogaW5wdXRSZWYsXG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5pbnB1dFByb3BzLFxuICAgICAgICAgIC4uLnJlc3QsXG4gICAgICAgIH07XG4gICAgICB9LFxuICAgIFtpbnB1dFJlZiwgYWNjZXB0LCBtdWx0aXBsZSwgb25Ecm9wQ2IsIGRpc2FibGVkXVxuICApO1xuXG4gIHJldHVybiB7XG4gICAgLi4uc3RhdGUsXG4gICAgaXNGb2N1c2VkOiBpc0ZvY3VzZWQgJiYgIWRpc2FibGVkLFxuICAgIGdldFJvb3RQcm9wcyxcbiAgICBnZXRJbnB1dFByb3BzLFxuICAgIHJvb3RSZWYsXG4gICAgaW5wdXRSZWYsXG4gICAgb3BlbjogY29tcG9zZUhhbmRsZXIob3BlbkZpbGVEaWFsb2cpLFxuICB9O1xufVxuXG4vKipcbiAqIEBwYXJhbSB7RHJvcHpvbmVTdGF0ZX0gc3RhdGVcbiAqIEBwYXJhbSB7e3R5cGU6IHN0cmluZ30gJiBEcm9wem9uZVN0YXRlfSBhY3Rpb25cbiAqIEByZXR1cm5zIHtEcm9wem9uZVN0YXRlfVxuICovXG5mdW5jdGlvbiByZWR1Y2VyKHN0YXRlLCBhY3Rpb24pIHtcbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgc3dpdGNoIChhY3Rpb24udHlwZSkge1xuICAgIGNhc2UgXCJmb2N1c1wiOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIGlzRm9jdXNlZDogdHJ1ZSxcbiAgICAgIH07XG4gICAgY2FzZSBcImJsdXJcIjpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBpc0ZvY3VzZWQ6IGZhbHNlLFxuICAgICAgfTtcbiAgICBjYXNlIFwib3BlbkRpYWxvZ1wiOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uaW5pdGlhbFN0YXRlLFxuICAgICAgICBpc0ZpbGVEaWFsb2dBY3RpdmU6IHRydWUsXG4gICAgICB9O1xuICAgIGNhc2UgXCJjbG9zZURpYWxvZ1wiOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIGlzRmlsZURpYWxvZ0FjdGl2ZTogZmFsc2UsXG4gICAgICB9O1xuICAgIGNhc2UgXCJzZXREcmFnZ2VkRmlsZXNcIjpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBpc0RyYWdBY3RpdmU6IGFjdGlvbi5pc0RyYWdBY3RpdmUsXG4gICAgICAgIGlzRHJhZ0FjY2VwdDogYWN0aW9uLmlzRHJhZ0FjY2VwdCxcbiAgICAgICAgaXNEcmFnUmVqZWN0OiBhY3Rpb24uaXNEcmFnUmVqZWN0LFxuICAgICAgfTtcbiAgICBjYXNlIFwic2V0RmlsZXNcIjpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBhY2NlcHRlZEZpbGVzOiBhY3Rpb24uYWNjZXB0ZWRGaWxlcyxcbiAgICAgICAgZmlsZVJlamVjdGlvbnM6IGFjdGlvbi5maWxlUmVqZWN0aW9ucyxcbiAgICAgICAgaXNEcmFnUmVqZWN0OiBhY3Rpb24uaXNEcmFnUmVqZWN0LFxuICAgICAgfTtcbiAgICBjYXNlIFwicmVzZXRcIjpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmluaXRpYWxTdGF0ZSxcbiAgICAgIH07XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBzdGF0ZTtcbiAgfVxufVxuXG5mdW5jdGlvbiBub29wKCkge31cblxuZXhwb3J0IHsgRXJyb3JDb2RlIH0gZnJvbSBcIi4vdXRpbHNcIjtcbiJdLCJuYW1lcyI6WyJfX2F3YWl0ZXIiLCJ0aGlzQXJnIiwiX2FyZ3VtZW50cyIsIlAiLCJnZW5lcmF0b3IiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsImZ1bGZpbGxlZCIsInZhbHVlIiwic3RlcCIsIm5leHQiLCJlIiwicmVqZWN0ZWQiLCJyZXN1bHQiLCJkb25lIiwidGhlbiIsImFwcGx5IiwiU3VwcHJlc3NlZEVycm9yIiwiQ09NTU9OX01JTUVfVFlQRVMiLCJNYXAiLCJ0b0ZpbGVXaXRoUGF0aCIsImZpbGUiLCJwYXRoIiwiaCIsImYiLCJuYW1lIiwibGFzdEluZGV4T2YiLCJ0eXBlIiwiZXh0Iiwic3BsaXQiLCJwb3AiLCJ0b0xvd2VyQ2FzZSIsImdldCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5Iiwid3JpdGFibGUiLCJjb25maWd1cmFibGUiLCJlbnVtZXJhYmxlIiwid2l0aE1pbWVUeXBlIiwid2Via2l0UmVsYXRpdmVQYXRoIiwicCIsImxlbmd0aCIsInNldE9ialByb3AiLCJ1bmRlZmluZWQiLCJrZXkiLCJGSUxFU19UT19JR05PUkUiLCJpc09iamVjdCIsInYiLCJub0lnbm9yZWRGaWxlcyIsImZpbGVzIiwiZmlsdGVyIiwiaW5kZXhPZiIsImZyb21MaXN0IiwiaXRlbXMiLCJpIiwicHVzaCIsInRvRmlsZVByb21pc2VzIiwiaXRlbSIsIndlYmtpdEdldEFzRW50cnkiLCJmcm9tRGF0YVRyYW5zZmVySXRlbSIsImVudHJ5IiwiaXNEaXJlY3RvcnkiLCJmcm9tRGlyRW50cnkiLCJmbGF0dGVuIiwicmVkdWNlIiwiYWNjIiwiQXJyYXkiLCJpc0FycmF5IiwiX2EiLCJnZXRBc0ZpbGVTeXN0ZW1IYW5kbGUiLCJ0aGlzIiwiZ2V0RmlsZSIsImhhbmRsZSIsImdldEFzRmlsZSIsImZ3cCIsImZ1bGxQYXRoIiwiZnJvbUVudHJ5IiwiZXJyIiwiZnJvbUZpbGVFbnRyeSIsInJlYWRlciIsImNyZWF0ZVJlYWRlciIsImVudHJpZXMiLCJyZWFkRW50cmllcyIsImJhdGNoIiwiYWxsIiwibWFwIiwiYWNjZXB0ZWRGaWxlcyIsImFjY2VwdGVkRmlsZXNBcnJheSIsImZpbGVOYW1lIiwibWltZVR5cGUiLCJiYXNlTWltZVR5cGUiLCJyZXBsYWNlIiwic29tZSIsInZhbGlkVHlwZSIsInRyaW0iLCJjaGFyQXQiLCJlbmRzV2l0aCIsImFjY2VwdHMiLCJfYWNjZXB0cyIsIkZJTEVfSU5WQUxJRF9UWVBFIiwiRklMRV9UT09fTEFSR0UiLCJGSUxFX1RPT19TTUFMTCIsIlRPT19NQU5ZX0ZJTEVTIiwiRXJyb3JDb2RlIiwiRmlsZUludmFsaWRUeXBlIiwiRmlsZVRvb0xhcmdlIiwiRmlsZVRvb1NtYWxsIiwiVG9vTWFueUZpbGVzIiwiZ2V0SW52YWxpZFR5cGVSZWplY3Rpb25FcnIiLCJhY2NlcHQiLCJhY2NlcHRBcnIiLCJtc2ciLCJqb2luIiwiY29kZSIsIm1lc3NhZ2UiLCJnZXRUb29MYXJnZVJlamVjdGlvbkVyciIsIm1heFNpemUiLCJnZXRUb29TbWFsbFJlamVjdGlvbkVyciIsIm1pblNpemUiLCJUT09fTUFOWV9GSUxFU19SRUpFQ1RJT04iLCJmaWxlQWNjZXB0ZWQiLCJpc0FjY2VwdGFibGUiLCJmaWxlTWF0Y2hTaXplIiwiaXNEZWZpbmVkIiwic2l6ZSIsImFsbEZpbGVzQWNjZXB0ZWQiLCJtdWx0aXBsZSIsIm1heEZpbGVzIiwidmFsaWRhdG9yIiwiZXZlcnkiLCJhY2NlcHRlZCIsInNpemVNYXRjaCIsImN1c3RvbUVycm9ycyIsImlzUHJvcGFnYXRpb25TdG9wcGVkIiwiZXZlbnQiLCJjYW5jZWxCdWJibGUiLCJpc0V2dFdpdGhGaWxlcyIsImRhdGFUcmFuc2ZlciIsInByb3RvdHlwZSIsImNhbGwiLCJ0eXBlcyIsInRhcmdldCIsIm9uRG9jdW1lbnREcmFnT3ZlciIsInByZXZlbnREZWZhdWx0IiwiaXNJZSIsInVzZXJBZ2VudCIsImlzRWRnZSIsImlzSWVPckVkZ2UiLCJ3aW5kb3ciLCJuYXZpZ2F0b3IiLCJjb21wb3NlRXZlbnRIYW5kbGVycyIsImZucyIsImFyZ3MiLCJmbiIsImNhblVzZUZpbGVTeXN0ZW1BY2Nlc3NBUEkiLCJwaWNrZXJPcHRpb25zRnJvbUFjY2VwdCIsImRlc2NyaXB0aW9uIiwib2siLCJpc01JTUVUeXBlIiwiY29uc29sZSIsIndhcm4iLCJpc0V4dCIsImFnZyIsImFjY2VwdFByb3BBc0FjY2VwdEF0dHIiLCJhIiwiaXNBYm9ydCIsIkRPTUV4Y2VwdGlvbiIsIkFCT1JUX0VSUiIsImlzU2VjdXJpdHlFcnJvciIsIlNFQ1VSSVRZX0VSUiIsInRlc3QiLCJEcm9wem9uZSIsImZvcndhcmRSZWYiLCJyZWYiLCJjaGlsZHJlbiIsInVzZURyb3B6b25lIiwib3BlbiIsInByb3BzIiwidXNlSW1wZXJhdGl2ZUhhbmRsZSIsIlJlYWN0IiwiRnJhZ21lbnQiLCJkaXNwbGF5TmFtZSIsImRlZmF1bHRQcm9wcyIsImRpc2FibGVkIiwiZ2V0RmlsZXNGcm9tRXZlbnQiLCJldnQiLCJkdCIsImtpbmQiLCJnZXREYXRhVHJhbnNmZXJGaWxlcyIsImlzQ2hhbmdlRXZ0IiwiZ2V0SW5wdXRGaWxlcyIsImhhbmRsZXMiLCJnZXRGc0hhbmRsZUZpbGVzIiwiSW5maW5pdHkiLCJwcmV2ZW50RHJvcE9uRG9jdW1lbnQiLCJub0NsaWNrIiwibm9LZXlib2FyZCIsIm5vRHJhZyIsIm5vRHJhZ0V2ZW50c0J1YmJsaW5nIiwidXNlRnNBY2Nlc3NBcGkiLCJhdXRvRm9jdXMiLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJmdW5jIiwib2JqZWN0T2YiLCJhcnJheU9mIiwic3RyaW5nIiwiYm9vbCIsIm51bWJlciIsIm9uRmlsZURpYWxvZ0NhbmNlbCIsIm9uRmlsZURpYWxvZ09wZW4iLCJvbkRyYWdFbnRlciIsIm9uRHJhZ0xlYXZlIiwib25EcmFnT3ZlciIsIm9uRHJvcCIsIm9uRHJvcEFjY2VwdGVkIiwib25Ecm9wUmVqZWN0ZWQiLCJvbkVycm9yIiwiaW5pdGlhbFN0YXRlIiwiaXNGb2N1c2VkIiwiaXNGaWxlRGlhbG9nQWN0aXZlIiwiaXNEcmFnQWN0aXZlIiwiaXNEcmFnQWNjZXB0IiwiaXNEcmFnUmVqZWN0IiwiZmlsZVJlamVjdGlvbnMiLCJhY2NlcHRBdHRyIiwidXNlTWVtbyIsInBpY2tlclR5cGVzIiwib25GaWxlRGlhbG9nT3BlbkNiIiwibm9vcCIsIm9uRmlsZURpYWxvZ0NhbmNlbENiIiwicm9vdFJlZiIsInVzZVJlZiIsImlucHV0UmVmIiwidXNlUmVkdWNlciIsInJlZHVjZXIiLCJzdGF0ZSIsImRpc3BhdGNoIiwiZnNBY2Nlc3NBcGlXb3Jrc1JlZiIsImlzU2VjdXJlQ29udGV4dCIsIm9uV2luZG93Rm9jdXMiLCJjdXJyZW50Iiwic2V0VGltZW91dCIsInVzZUVmZmVjdCIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiZHJhZ1RhcmdldHNSZWYiLCJvbkRvY3VtZW50RHJvcCIsImNvbnRhaW5zIiwiZG9jdW1lbnQiLCJmb2N1cyIsIm9uRXJyQ2IiLCJ1c2VDYWxsYmFjayIsImVycm9yIiwib25EcmFnRW50ZXJDYiIsInBlcnNpc3QiLCJzdG9wUHJvcGFnYXRpb24iLCJmaWxlQ291bnQiLCJjYXRjaCIsIm9uRHJhZ092ZXJDYiIsImhhc0ZpbGVzIiwiZHJvcEVmZmVjdCIsIm9uRHJhZ0xlYXZlQ2IiLCJ0YXJnZXRzIiwidGFyZ2V0SWR4Iiwic3BsaWNlIiwic2V0RmlsZXMiLCJmb3JFYWNoIiwiYWNjZXB0RXJyb3IiLCJzaXplRXJyb3IiLCJlcnJvcnMiLCJjb25jYXQiLCJvbkRyb3BDYiIsIm9wZW5GaWxlRGlhbG9nIiwib3B0cyIsInNob3dPcGVuRmlsZVBpY2tlciIsImNsaWNrIiwiRXJyb3IiLCJvbktleURvd25DYiIsImlzRXF1YWxOb2RlIiwia2V5Q29kZSIsIm9uRm9jdXNDYiIsIm9uQmx1ckNiIiwib25DbGlja0NiIiwiY29tcG9zZUhhbmRsZXIiLCJjb21wb3NlS2V5Ym9hcmRIYW5kbGVyIiwiY29tcG9zZURyYWdIYW5kbGVyIiwiZ2V0Um9vdFByb3BzIiwicmVmS2V5Iiwicm9sZSIsIm9uS2V5RG93biIsIm9uRm9jdXMiLCJvbkJsdXIiLCJvbkNsaWNrIiwicmVzdCIsInRhYkluZGV4Iiwib25JbnB1dEVsZW1lbnRDbGljayIsImdldElucHV0UHJvcHMiLCJvbkNoYW5nZSIsImlucHV0UHJvcHMiLCJzdHlsZSIsImJvcmRlciIsImNsaXAiLCJjbGlwUGF0aCIsImhlaWdodCIsIm1hcmdpbiIsIm92ZXJmbG93IiwicGFkZGluZyIsInBvc2l0aW9uIiwid2lkdGgiLCJ3aGl0ZVNwYWNlIiwiYWN0aW9uIl0sIm1hcHBpbmdzIjoiK3ZGQWtITyxTQUFTQSxFQUFVQyxFQUFTQyxFQUFZQyxFQUFHQyxHQUVoRCxPQUFPLElBQUtELElBQU1BLEVBQUlFLFdBQVUsU0FBVUMsRUFBU0MsR0FDL0MsU0FBU0MsRUFBVUMsR0FBUyxJQUFNQyxFQUFLTixFQUFVTyxLQUFLRixJQUFXLE1BQU9HLEdBQUtMLEVBQU9LLElBQ3BGLFNBQVNDLEVBQVNKLEdBQVMsSUFBTUMsRUFBS04sRUFBaUIsTUFBRUssSUFBVyxNQUFPRyxHQUFLTCxFQUFPSyxJQUN2RixTQUFTRixFQUFLSSxHQUpsQixJQUFlTCxFQUlhSyxFQUFPQyxLQUFPVCxFQUFRUSxFQUFPTCxRQUoxQ0EsRUFJeURLLEVBQU9MLE1BSmhEQSxhQUFpQk4sRUFBSU0sRUFBUSxJQUFJTixHQUFFLFNBQVVHLEdBQVdBLEVBQVFHLE9BSVRPLEtBQUtSLEVBQVdLLEdBQ2xHSCxHQUFNTixFQUFZQSxFQUFVYSxNQUFNaEIsRUFBU0MsR0FBYyxLQUFLUyxXQStNbEIsbUJBQXBCTyxpQkFBaUNBLGdCQ3ZVeEQsTUFBTUMsRUFBb0IsSUFBSUMsSUFBSSxDQUVyQyxDQUFDLE1BQU8sZ0RBQ1IsQ0FBQyxPQUFRLHNCQUNULENBQUMsTUFBTyxl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