ca-components 1.7.998 → 1.7.999
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/ca-input-test/config/ca-input.config.mjs +1 -1
- package/esm2022/lib/components/ca-input-test/input-test.component.mjs +13 -3
- package/fesm2022/ca-components.mjs +12 -2
- package/fesm2022/ca-components.mjs.map +1 -1
- package/lib/components/ca-input-test/config/ca-input.config.d.ts +1 -0
- package/package.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2EtaW5wdXQuY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtaW5wdXQtdGVzdC9jb25maWcvY2EtaW5wdXQuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIElNdWx0aXBsZUlucHV0IHtcbiAgICBpZD86IG51bWJlcjtcbiAgICB2YWx1ZTogc3RyaW5nIHwgbnVtYmVyO1xuICAgIHNlY29uZF92YWx1ZT86IHN0cmluZyB8IG51bWJlcjtcbiAgICBsb2dvTmFtZT86IHN0cmluZztcbiAgICBpc0ltZz86IGJvb2xlYW47XG4gICAgaXNTdmc/OiBib29sZWFuO1xuICAgIGZvbGRlcj86IHN0cmluZztcbiAgICBzdWJGb2xkZXI/OiBzdHJpbmc7XG4gICAgbG9nb1R5cGU/OiBzdHJpbmc7XG4gICAgaXNPd25lcj86IGJvb2xlYW47XG4gICAgaXNQcm9ncmVzc0Jhcj86IGJvb2xlYW47XG4gICAgaXNDb3VudGVyPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ2FJbnB1dERhdGVUaW1lUGlja2VyIHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgaXNJY29uSGlkZGVuPzogYm9vbGVhbjtcbiAgICBjdXN0b21DbGFzcz86IHN0cmluZzsgLy8gLSAnZGF0ZXRpbWVjbGFzcycgLT4gZGF0ZS90aW1lIHBpY2tlcnMsICdkYXRldGltZWNsYXNzIGRhcmsgLT4gZGF0ZS90aW1lIHBpY2tlcnMgZGFya1xuICAgIGlzRGlzYWJsZWQ/OiBib29sZWFuO1xuICAgIGlzRnV0dXJlRGF0ZURpc2FibGVkPzogYm9vbGVhbjsgLy8gZGlzYWJsZWQgZnV0dXJlIGRhdGVzXG4gICAgZXhwaXJlZERhdGVJbnZhbGlkPzogYm9vbGVhbjsgLy8gYWNjZXB0IG9ubHkgZGF0ZXMgdGhhdCBkaWRuJ3QgZXhwaXJlXG4gICAgaXNGcm9tRGF0ZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNhSW5wdXRXaXRoRHJvcGRvd24ge1xuICAgIHdpdGhUZXh0OiBib29sZWFuO1xuICAgIHN2ZzogYm9vbGVhbjtcbiAgICBpbWFnZTogYm9vbGVhbjtcbiAgICBpY29uc1BhdGg/OiBzdHJpbmc7XG4gICAgYWN0aXZlSXRlbUljb25LZXk/OiBzdHJpbmc7XG4gICAgZm9sZGVyPzogc3RyaW5nO1xuICAgIHN1YkZvbGRlcj86IHN0cmluZztcbiAgICB1cmw/OiBzdHJpbmc7XG4gICAgbmFtZUluaXRpYWxzSW5zdGVhZFVybD86IHN0cmluZzsgLy8gaWYgdXJsIGRvZXMgbm90IGV4aXN0LCBidXQgbXVzdCByZW5kZXIgaW5pdGlhbHMgb2YgbmFtZVxuICAgIHRlbXBsYXRlPzogc3RyaW5nOyAvLyB0cnVjaywgdHJhaWxlci4uLlxuICAgIGNvbG9yPzogc3RyaW5nOyAvLyBjb2xvcnMgc3RvcmUgaW4gYmFja2UtZW5kIGR5bmFtaWNseVxuICAgIGNsYXNzPzogc3RyaW5nOyAvLyBjb2xvcnMgc3RvcmUgaW4gZnJvbnQtZW5kXG4gICAgcmVtb3ZlPzogYm9vbGVhbjsgLy8gcmVtb3ZlIHN2ZyBpbiBmb2N1cyBtb2RlIGFuZCB3aGVuIHVzZXIgYXJlIHR5cGluZ1xufVxuZXhwb3J0IGludGVyZmFjZSBJQ2FJbnB1dCB7XG4gICAgaWQ/OiBudW1iZXIgfCBzdHJpbmc7IC8vIG9ubHkgZm9yIGZvcm0gYXJyYXkgdG8gaW5kZWZpZXIgZWxlbWVudFxuICAgIG5hbWU6IHN0cmluZztcbiAgICB0eXBlOiBzdHJpbmc7XG4gICAgbGFiZWw/OiBzdHJpbmc7XG4gICAgbGFiZWxJbklucHV0PzogYm9vbGVhbjtcbiAgICBwbGFjZWhvbGRlcj86IHN0cmluZzsgLy8gb25seSBmb3IgZHJvcGRvd24sIG90aGVyd2lzZSBwbGFjZWhvbGRlciBpcyBsYWJlbCAhISFcbiAgICBwbGFjZWhvbGRlckljb24/OiBzdHJpbmc7XG4gICAgcGxhY2Vob2xkZXJJY29uUmlnaHRTaWRlPzogc3RyaW5nO1xuICAgIGlzUGxhY2VIb2xkZXJJY29uUmlnaHRTaWRlRHluYW1pY0NvbG9yPzogYm9vbGVhbjtcbiAgICBwbGFjZWhvbGRlckljb25Gb2xsbG93VGV4dE9uUmlnaHRTaWRlPzogc3RyaW5nO1xuICAgIHBsYWNlaG9sZGVySWNvbkNvbG9yPzogc3RyaW5nO1xuICAgIHBsYWNlaG9sZGVyVGV4dD86IHN0cmluZztcbiAgICBwbGFjZWhvbGRlckluc3RlYWRPZkxhYmVsPzogYm9vbGVhbjtcbiAgICBpbnB1dEN1cnNvck9uUmlnaHRTaWRlPzogYm9vbGVhbjtcbiAgICBpc1JlcXVpcmVkPzogYm9vbGVhbjtcbiAgICBpc0Rpc2FibGVkPzogYm9vbGVhbjtcbiAgICBwYXR0ZXJuPzogc3RyaW5nO1xuICAgIGF1dG9jb21wbGV0ZT86IHN0cmluZztcbiAgICBzaG93Q291bnQ/OiBib29sZWFuO1xuICAgIG1pbkxlbmd0aD86IG51bWJlcjtcbiAgICBtYXhMZW5ndGg/OiBudW1iZXI7XG4gICAgbWluVmFsdWU/OiBudW1iZXI7XG4gICAgbWF4VmFsdWU/OiBudW1iZXI7XG4gICAgbWluPzogbnVtYmVyO1xuICAgIG1heD86IG51bWJlcjtcbiAgICBzdGVwPzogbnVtYmVyOyAvLyBzdGVwIGZvciBpbnB1dCB0eXBlPVwibnVtYmVyXCI7XG4gICAgbWFzaz86IHN0cmluZzsgLy8gb25seSBmb3IgcGhvbmUgdHlwZSBvZiBpbnB1dFxuICAgIHRleHRUcmFuc2Zvcm0/OlxuICAgICAgICB8ICdjYXBpdGFsaXplJ1xuICAgICAgICB8ICd1cHBlcmNhc2UnXG4gICAgICAgIHwgJ2xvd2VyY2FzZSdcbiAgICAgICAgfCAnY2FwaXRhbGl6ZWRjYXNlJztcbiAgICB0ZXh0QWxpZ24/OiBzdHJpbmcgfCAnY2VudGVyJztcbiAgICBibGFja0lucHV0PzogYm9vbGVhbjsgLy8gaGFzIG9ubHkgYmxhY2sgYmFja2dyb3VuZCAmJiBpbnB1dCBjbGVhciwgbm8gdmFsaWRhdGlvbnNcbiAgICBibHVlSW5wdXQ/OiBib29sZWFuO1xuICAgIGluY29ycmVjdElucHV0PzogYm9vbGVhbjtcbiAgICBkYW5nZXJNYXJrPzogYm9vbGVhbjtcbiAgICBhdXRvRm9jdXM/OiBib29sZWFuO1xuICAgIGhpZGVDbGVhcj86IGJvb2xlYW47XG4gICAgaGlkZVJlcXVpcmVkQ2hlY2s/OiBib29sZWFuO1xuICAgIGhpZGVFcnJvck1lc3NhZ2U/OiBib29sZWFuO1xuICAgIGhpZGVEYW5nZXJNYXJrPzogYm9vbGVhbjtcbiAgICBoaWRlRHJvcGRvd25BcnJvdz86IGJvb2xlYW47XG4gICAgcmVxdWlyZWRMYWJlbD86IGJvb2xlYW47XG4gICAgZXJyb3JJbnNpZGVJbnB1dD86IGJvb2xlYW47XG4gICAgcmVtb3ZlSW5wdXQ/OiBib29sZWFuO1xuICAgIHJlYWRPbmx5PzogYm9vbGVhbjtcbiAgICB0aG91c2FuZFNlcGFyYXRvcj86IGJvb2xlYW47IC8vIHR5cGUgb2YgaW5wdXQgbXVzdCBiZSAndGV4dCdcbiAgICBwcmljZVNlcGFyYXRvcj86IGJvb2xlYW47XG4gICAgcHJpY2VTZXBhcmF0b3JMaW1pdGF0aW9uPzogbnVtYmVyOyAvLyA3IC0gOTk5LDk5OS4wMCA7IDYgLSA5OSwwMDAuMDAgOyA1IC0gOSwwMDAuMDAgaXRkLi4uIChtdXN0IGluY2x1ZGluZyBhbmQgY29tbWEpXG4gICAgbG9hZGluZ1NwaW5uZXI/OiB7XG4gICAgICAgIHNpemU/OiBzdHJpbmc7IC8vIHNtYWxsLCBiaWdcbiAgICAgICAgY29sb3I/OiBzdHJpbmc7IC8vIGJsYWNrLCBncmF5LCB3aGl0ZSwgYmx1ZUxpZ2h0LCBibHVlRGFya1xuICAgICAgICBpc0xvYWRpbmc/OiBib29sZWFuO1xuICAgIH07XG4gICAgYWRkcmVzc0ZsYWc/OiBzdHJpbmc7IC8vIGFkZGVkIHRleHQgaW4gcmlnaHQgY29ybmVyIGFuZCB0aGlzIGZsYWcgd2lsbCBiZSBkaXNhYmxlZCBjbGVhciBidXR0b24sIGludmFsaWQgZGFuZ2VyIG1hcmtcbiAgICBjdXN0b21DbGFzcz86IHN0cmluZzsgLy8gLSAnZGF0ZXRpbWVjbGFzcycgLT4gZGF0ZS90aW1lIHBpY2tlcnMsICdkYXRldGltZWNsYXNzIGRhcmsgLT4gZGF0ZS90aW1lIHBpY2tlcnMgZGFya1xuICAgIGlzSWNvbklucHV0PzogYm9vbGVhbjsgLy8gZGlzcGxheSBpY29uIGluc3RlYWQgb2YgcmVndWxhciBpbnB1dFxuICAgIGlzVmFsaWRJY29uPzogYm9vbGVhbjsgLy8gZGlzcGxheSBpY29uIGluc3RlYWQgb2YgcmVndWxhciBpbnB1dFxuICAgIGlucHV0SWNvbj86IHN0cmluZzsgLy8gZGlzcGxheSBpY29uIGluc3RlYWQgb2YgcmVndWxhciBpbnB1dFxuXG4gICAgLy8gKioqKioqKioqKioqKioqKiogTXVsdGlwbGUgSW5wdXRzICYgTGFiZWxzICoqKioqKioqKioqKioqKioqXG4gICAgbXVsdGlwbGVJbnB1dFZhbHVlcz86IHtcbiAgICAgICAgb3B0aW9uczogSU11bHRpcGxlSW5wdXRbXTtcbiAgICAgICAgY3VzdG9tQ2xhc3M6IHN0cmluZztcbiAgICB9O1xuICAgIG11bHRpcGxlTGFiZWw/OiB7XG4gICAgICAgIGxhYmVsczogc3RyaW5nW107IC8vIFsnRHJpdmVyJywgJ1RydWNrICMnLCAnVHJhaWxlciAjJ11cbiAgICAgICAgc2VhcmNoTGFiZWxzPzogc3RyaW5nW107XG4gICAgICAgIGN1c3RvbUNsYXNzOiBzdHJpbmc7XG4gICAgfTtcbiAgICBpc0lucHV0QmFja2dyb3VuZFJlbW92ZWQ/OiBib29sZWFuO1xuICAgIGlzQmx1ZVRleHQ/OiBib29sZWFuO1xuXG4gICAgLy8gKioqKioqKioqKioqKioqKiogSW5wdXQgQWN0aW9ucyAoY29uZmlybS1jYW5jZWwgYnV0dG9ucykgKioqKioqKioqKioqKioqKipcbiAgICBjb21tYW5kcz86IHtcbiAgICAgICAgYWN0aXZlPzogYm9vbGVhbjtcbiAgICAgICAgdHlwZT86IHN0cmluZzsgLy8gZXhhbXBsZXM6ICAnaW5jcmVtZW50LWRlY3JlbWVudCcsICdjb25maXJtLWNhbmNlbCdcbiAgICAgICAgZmlyc3RDb21tYW5kPzoge1xuICAgICAgICAgICAgcG9wdXA/OiB7XG4gICAgICAgICAgICAgICAgbmFtZT86IHN0cmluZztcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgbmFtZT86IHN0cmluZztcbiAgICAgICAgICAgIHN2Zz86IHN0cmluZztcbiAgICAgICAgfTtcbiAgICAgICAgc2Vjb25kQ29tbWFuZD86IHtcbiAgICAgICAgICAgIHBvcHVwPzoge1xuICAgICAgICAgICAgICAgIG5hbWU/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIG5hbWU/OiBzdHJpbmc7XG4gICAgICAgICAgICBzdmc/OiBzdHJpbmc7XG4gICAgICAgIH07XG4gICAgICAgIHRoaXJkQ29tbWFuZD86IHtcbiAgICAgICAgICAgIHBvcHVwPzoge1xuICAgICAgICAgICAgICAgIG5hbWU/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIG5hbWU/OiBzdHJpbmc7XG4gICAgICAgICAgICBzdmc/OiBzdHJpbmc7XG4gICAgICAgIH07XG4gICAgICAgIHNldFRpbWVvdXQ/OiBudW1iZXI7IC8vIGlmIG11c3Qga2VlcCBmb2N1cyBvbiBpbnB1dFxuICAgICAgICBibHVlQ29tbWFuZHM/OiBib29sZWFuO1xuICAgIH07XG4gICAgZGVmYXVsdFZhbHVlPzogc3RyaW5nOyAvLyBkZWZhdWx0IGlucHV0IHZhbHVlIGZvciBSZXNldCBjb21tYW5kXG5cbiAgICAvLyAqKioqKioqKioqKioqKioqKiBEUk9QRE9XTlMgKioqKioqKioqKioqKioqKipcblxuICAgIC8vIFB1cmUgRHJvcGRvd25cbiAgICBpc0Ryb3Bkb3duPzogYm9vbGVhbjtcbiAgICBpc0FkZHJlc3M/OiBib29sZWFuO1xuICAgIHNlYXJjaGluR3JvdXBJbmRleD86IHN0cmluZztcbiAgICBkcm9wZG93bldpZHRoQ2xhc3M/OiBzdHJpbmc7IC8vIExvb2sgaW4gdGEtaW5wdXQtZHJvZG93bi5zY3NzIGZvciBpbXBsZW1lbnRhdGlvbiBjbGFzcyAod2lkdGggb2YgZHJvcGRvd25zKVxuICAgIGRyb3Bkb3duSW1hZ2VJbnB1dD86IElDYUlucHV0V2l0aERyb3Bkb3duIHwgbnVsbDtcbiAgICBpc0ludmFsaWRTZWFyY2hJbkRyb3Bkb3duPzogYm9vbGVhbjtcbiAgICBzZWxlY3RlZERyb3Bkb3duPzogYm9vbGVhbjtcbiAgICBtZXJnZURyb3Bkb3duQm9keVdpdGhJbnB1dD86IGJvb2xlYW47XG4gICAgaGlkZUFsbEl0ZW1zSW5JbnB1dERyb3Bkb3duPzogYm9vbGVhbjtcbiAgICBpc0JsdWVEcm9wZG93bj86IGJvb2xlYW47XG4gICAgaXNJdGVtU2VsZWN0ZWQ/OiBib29sZWFuO1xuICAgIGlzRGlzcGxheWluZ0N1c3RvbVBlcmlvZFJhbmdlPzogYm9vbGVhbjtcbiAgICBpc1VzaW5nQ3VzdG9tUGVyaW9kUmFuZ2U/OiBib29sZWFuO1xuXG4gICAgLy8gQWRkcmVzcyBEcm9wZG93blxuICAgIGlzRGlzcGF0Y2hMb2NhdGlvbkRyb3Bkb3duPzogYm9vbGVhbjtcblxuICAgIC8vIExhYmVsIGRyb3Bkb3duXG4gICAgZHJvcGRvd25MYWJlbD86IGJvb2xlYW47XG4gICAgZHJvcGRvd25MYWJlbE5ldz86IGJvb2xlYW47XG5cbiAgICAvLyBNdWx0aVNlbGVjdCBEcm9wZG93blxuICAgIG11bHRpc2VsZWN0RHJvcGRvd24/OiBib29sZWFuO1xuICAgIG11bHRpU2VsZWN0RHJvcGRvd25BY3RpdmU/OiBib29sZWFuO1xuICAgIG11bHRpU2VsZWN0SXRlbVJhbmdlPzogYm9vbGVhbjtcblxuICAgIC8vIERhdGVUaW1lIFBpY2tlclxuICAgIGlzRnJvbURhdGU/OiBib29sZWFuO1xuICAgIGhpZGVDb2xvclZhbGlkYXRpb25zPzogYm9vbGVhbjsgLy8gcmVndWxhciBjb2xvciBmb3IgaW5wdXRzLCBubyBibHVlIHZhbGlkYXRpb25cbiAgICBleHBpcmVkRGF0ZUludmFsaWQ/OiBib29sZWFuOyAvLyBhY2NlcHQgb25seSBkYXRlcyB0aGF0IGRpZG4ndCBleHBpcmVcbiAgICBpc0Z1dHVyZURhdGVEaXNhYmxlZD86IGJvb2xlYW47IC8vIGRpc2FibGVkIGZ1dHVyZSBkYXRlc1xuICAgIGZpeGVkUGxhY2hvbGRlcj86IHN0cmluZztcbiAgICBzdGF0dXNTdHlsZT86IGJvb2xlYW47XG4gICAgaXNJY29uSGlkZGVuPzogYm9vbGVhbjtcbiAgICBpc1JlbW92ZWRJY29uTW92ZWRPbkxlZnQ/OiBib29sZWFuO1xuICAgIHJlbW92ZUxlYWRpbmdaZXJvPzogYm9vbGVhbjtcbiAgICBuZWdhdGl2ZUxlYWRpbmdaZXJvPzogYm9vbGVhbjtcbiAgICBpc0hvdmVyUm93PzogYm9vbGVhbjtcbiAgICBtaW51dGVzR2FwRml2ZT86IGJvb2xlYW47XG5cbiAgICB1cGRhdGVBc1RvdWNoZWRPbkVkaXQ/
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2EtaW5wdXQuY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtaW5wdXQtdGVzdC9jb25maWcvY2EtaW5wdXQuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIElNdWx0aXBsZUlucHV0IHtcbiAgICBpZD86IG51bWJlcjtcbiAgICB2YWx1ZTogc3RyaW5nIHwgbnVtYmVyO1xuICAgIHNlY29uZF92YWx1ZT86IHN0cmluZyB8IG51bWJlcjtcbiAgICBsb2dvTmFtZT86IHN0cmluZztcbiAgICBpc0ltZz86IGJvb2xlYW47XG4gICAgaXNTdmc/OiBib29sZWFuO1xuICAgIGZvbGRlcj86IHN0cmluZztcbiAgICBzdWJGb2xkZXI/OiBzdHJpbmc7XG4gICAgbG9nb1R5cGU/OiBzdHJpbmc7XG4gICAgaXNPd25lcj86IGJvb2xlYW47XG4gICAgaXNQcm9ncmVzc0Jhcj86IGJvb2xlYW47XG4gICAgaXNDb3VudGVyPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ2FJbnB1dERhdGVUaW1lUGlja2VyIHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgaXNJY29uSGlkZGVuPzogYm9vbGVhbjtcbiAgICBjdXN0b21DbGFzcz86IHN0cmluZzsgLy8gLSAnZGF0ZXRpbWVjbGFzcycgLT4gZGF0ZS90aW1lIHBpY2tlcnMsICdkYXRldGltZWNsYXNzIGRhcmsgLT4gZGF0ZS90aW1lIHBpY2tlcnMgZGFya1xuICAgIGlzRGlzYWJsZWQ/OiBib29sZWFuO1xuICAgIGlzRnV0dXJlRGF0ZURpc2FibGVkPzogYm9vbGVhbjsgLy8gZGlzYWJsZWQgZnV0dXJlIGRhdGVzXG4gICAgZXhwaXJlZERhdGVJbnZhbGlkPzogYm9vbGVhbjsgLy8gYWNjZXB0IG9ubHkgZGF0ZXMgdGhhdCBkaWRuJ3QgZXhwaXJlXG4gICAgaXNGcm9tRGF0ZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNhSW5wdXRXaXRoRHJvcGRvd24ge1xuICAgIHdpdGhUZXh0OiBib29sZWFuO1xuICAgIHN2ZzogYm9vbGVhbjtcbiAgICBpbWFnZTogYm9vbGVhbjtcbiAgICBpY29uc1BhdGg/OiBzdHJpbmc7XG4gICAgYWN0aXZlSXRlbUljb25LZXk/OiBzdHJpbmc7XG4gICAgZm9sZGVyPzogc3RyaW5nO1xuICAgIHN1YkZvbGRlcj86IHN0cmluZztcbiAgICB1cmw/OiBzdHJpbmc7XG4gICAgbmFtZUluaXRpYWxzSW5zdGVhZFVybD86IHN0cmluZzsgLy8gaWYgdXJsIGRvZXMgbm90IGV4aXN0LCBidXQgbXVzdCByZW5kZXIgaW5pdGlhbHMgb2YgbmFtZVxuICAgIHRlbXBsYXRlPzogc3RyaW5nOyAvLyB0cnVjaywgdHJhaWxlci4uLlxuICAgIGNvbG9yPzogc3RyaW5nOyAvLyBjb2xvcnMgc3RvcmUgaW4gYmFja2UtZW5kIGR5bmFtaWNseVxuICAgIGNsYXNzPzogc3RyaW5nOyAvLyBjb2xvcnMgc3RvcmUgaW4gZnJvbnQtZW5kXG4gICAgcmVtb3ZlPzogYm9vbGVhbjsgLy8gcmVtb3ZlIHN2ZyBpbiBmb2N1cyBtb2RlIGFuZCB3aGVuIHVzZXIgYXJlIHR5cGluZ1xufVxuZXhwb3J0IGludGVyZmFjZSBJQ2FJbnB1dCB7XG4gICAgaWQ/OiBudW1iZXIgfCBzdHJpbmc7IC8vIG9ubHkgZm9yIGZvcm0gYXJyYXkgdG8gaW5kZWZpZXIgZWxlbWVudFxuICAgIG5hbWU6IHN0cmluZztcbiAgICB0eXBlOiBzdHJpbmc7XG4gICAgbGFiZWw/OiBzdHJpbmc7XG4gICAgbGFiZWxJbklucHV0PzogYm9vbGVhbjtcbiAgICBwbGFjZWhvbGRlcj86IHN0cmluZzsgLy8gb25seSBmb3IgZHJvcGRvd24sIG90aGVyd2lzZSBwbGFjZWhvbGRlciBpcyBsYWJlbCAhISFcbiAgICBwbGFjZWhvbGRlckljb24/OiBzdHJpbmc7XG4gICAgcGxhY2Vob2xkZXJJY29uUmlnaHRTaWRlPzogc3RyaW5nO1xuICAgIGlzUGxhY2VIb2xkZXJJY29uUmlnaHRTaWRlRHluYW1pY0NvbG9yPzogYm9vbGVhbjtcbiAgICBwbGFjZWhvbGRlckljb25Gb2xsbG93VGV4dE9uUmlnaHRTaWRlPzogc3RyaW5nO1xuICAgIHBsYWNlaG9sZGVySWNvbkNvbG9yPzogc3RyaW5nO1xuICAgIHBsYWNlaG9sZGVyVGV4dD86IHN0cmluZztcbiAgICBwbGFjZWhvbGRlckluc3RlYWRPZkxhYmVsPzogYm9vbGVhbjtcbiAgICBpbnB1dEN1cnNvck9uUmlnaHRTaWRlPzogYm9vbGVhbjtcbiAgICBpc1JlcXVpcmVkPzogYm9vbGVhbjtcbiAgICBpc0Rpc2FibGVkPzogYm9vbGVhbjtcbiAgICBwYXR0ZXJuPzogc3RyaW5nO1xuICAgIGF1dG9jb21wbGV0ZT86IHN0cmluZztcbiAgICBzaG93Q291bnQ/OiBib29sZWFuO1xuICAgIG1pbkxlbmd0aD86IG51bWJlcjtcbiAgICBtYXhMZW5ndGg/OiBudW1iZXI7XG4gICAgbWluVmFsdWU/OiBudW1iZXI7XG4gICAgbWF4VmFsdWU/OiBudW1iZXI7XG4gICAgbWluPzogbnVtYmVyO1xuICAgIG1heD86IG51bWJlcjtcbiAgICBzdGVwPzogbnVtYmVyOyAvLyBzdGVwIGZvciBpbnB1dCB0eXBlPVwibnVtYmVyXCI7XG4gICAgbWFzaz86IHN0cmluZzsgLy8gb25seSBmb3IgcGhvbmUgdHlwZSBvZiBpbnB1dFxuICAgIHRleHRUcmFuc2Zvcm0/OlxuICAgICAgICB8ICdjYXBpdGFsaXplJ1xuICAgICAgICB8ICd1cHBlcmNhc2UnXG4gICAgICAgIHwgJ2xvd2VyY2FzZSdcbiAgICAgICAgfCAnY2FwaXRhbGl6ZWRjYXNlJztcbiAgICB0ZXh0QWxpZ24/OiBzdHJpbmcgfCAnY2VudGVyJztcbiAgICBibGFja0lucHV0PzogYm9vbGVhbjsgLy8gaGFzIG9ubHkgYmxhY2sgYmFja2dyb3VuZCAmJiBpbnB1dCBjbGVhciwgbm8gdmFsaWRhdGlvbnNcbiAgICBibHVlSW5wdXQ/OiBib29sZWFuO1xuICAgIGluY29ycmVjdElucHV0PzogYm9vbGVhbjtcbiAgICBkYW5nZXJNYXJrPzogYm9vbGVhbjtcbiAgICBhdXRvRm9jdXM/OiBib29sZWFuO1xuICAgIGhpZGVDbGVhcj86IGJvb2xlYW47XG4gICAgaGlkZVJlcXVpcmVkQ2hlY2s/OiBib29sZWFuO1xuICAgIGhpZGVFcnJvck1lc3NhZ2U/OiBib29sZWFuO1xuICAgIGhpZGVEYW5nZXJNYXJrPzogYm9vbGVhbjtcbiAgICBoaWRlRHJvcGRvd25BcnJvdz86IGJvb2xlYW47XG4gICAgcmVxdWlyZWRMYWJlbD86IGJvb2xlYW47XG4gICAgZXJyb3JJbnNpZGVJbnB1dD86IGJvb2xlYW47XG4gICAgcmVtb3ZlSW5wdXQ/OiBib29sZWFuO1xuICAgIHJlYWRPbmx5PzogYm9vbGVhbjtcbiAgICB0aG91c2FuZFNlcGFyYXRvcj86IGJvb2xlYW47IC8vIHR5cGUgb2YgaW5wdXQgbXVzdCBiZSAndGV4dCdcbiAgICBwcmljZVNlcGFyYXRvcj86IGJvb2xlYW47XG4gICAgcHJpY2VTZXBhcmF0b3JMaW1pdGF0aW9uPzogbnVtYmVyOyAvLyA3IC0gOTk5LDk5OS4wMCA7IDYgLSA5OSwwMDAuMDAgOyA1IC0gOSwwMDAuMDAgaXRkLi4uIChtdXN0IGluY2x1ZGluZyBhbmQgY29tbWEpXG4gICAgbG9hZGluZ1NwaW5uZXI/OiB7XG4gICAgICAgIHNpemU/OiBzdHJpbmc7IC8vIHNtYWxsLCBiaWdcbiAgICAgICAgY29sb3I/OiBzdHJpbmc7IC8vIGJsYWNrLCBncmF5LCB3aGl0ZSwgYmx1ZUxpZ2h0LCBibHVlRGFya1xuICAgICAgICBpc0xvYWRpbmc/OiBib29sZWFuO1xuICAgIH07XG4gICAgYWRkcmVzc0ZsYWc/OiBzdHJpbmc7IC8vIGFkZGVkIHRleHQgaW4gcmlnaHQgY29ybmVyIGFuZCB0aGlzIGZsYWcgd2lsbCBiZSBkaXNhYmxlZCBjbGVhciBidXR0b24sIGludmFsaWQgZGFuZ2VyIG1hcmtcbiAgICBjdXN0b21DbGFzcz86IHN0cmluZzsgLy8gLSAnZGF0ZXRpbWVjbGFzcycgLT4gZGF0ZS90aW1lIHBpY2tlcnMsICdkYXRldGltZWNsYXNzIGRhcmsgLT4gZGF0ZS90aW1lIHBpY2tlcnMgZGFya1xuICAgIGlzSWNvbklucHV0PzogYm9vbGVhbjsgLy8gZGlzcGxheSBpY29uIGluc3RlYWQgb2YgcmVndWxhciBpbnB1dFxuICAgIGlzVmFsaWRJY29uPzogYm9vbGVhbjsgLy8gZGlzcGxheSBpY29uIGluc3RlYWQgb2YgcmVndWxhciBpbnB1dFxuICAgIGlucHV0SWNvbj86IHN0cmluZzsgLy8gZGlzcGxheSBpY29uIGluc3RlYWQgb2YgcmVndWxhciBpbnB1dFxuXG4gICAgLy8gKioqKioqKioqKioqKioqKiogTXVsdGlwbGUgSW5wdXRzICYgTGFiZWxzICoqKioqKioqKioqKioqKioqXG4gICAgbXVsdGlwbGVJbnB1dFZhbHVlcz86IHtcbiAgICAgICAgb3B0aW9uczogSU11bHRpcGxlSW5wdXRbXTtcbiAgICAgICAgY3VzdG9tQ2xhc3M6IHN0cmluZztcbiAgICB9O1xuICAgIG11bHRpcGxlTGFiZWw/OiB7XG4gICAgICAgIGxhYmVsczogc3RyaW5nW107IC8vIFsnRHJpdmVyJywgJ1RydWNrICMnLCAnVHJhaWxlciAjJ11cbiAgICAgICAgc2VhcmNoTGFiZWxzPzogc3RyaW5nW107XG4gICAgICAgIGN1c3RvbUNsYXNzOiBzdHJpbmc7XG4gICAgfTtcbiAgICBpc0lucHV0QmFja2dyb3VuZFJlbW92ZWQ/OiBib29sZWFuO1xuICAgIGlzQmx1ZVRleHQ/OiBib29sZWFuO1xuXG4gICAgLy8gKioqKioqKioqKioqKioqKiogSW5wdXQgQWN0aW9ucyAoY29uZmlybS1jYW5jZWwgYnV0dG9ucykgKioqKioqKioqKioqKioqKipcbiAgICBjb21tYW5kcz86IHtcbiAgICAgICAgYWN0aXZlPzogYm9vbGVhbjtcbiAgICAgICAgdHlwZT86IHN0cmluZzsgLy8gZXhhbXBsZXM6ICAnaW5jcmVtZW50LWRlY3JlbWVudCcsICdjb25maXJtLWNhbmNlbCdcbiAgICAgICAgZmlyc3RDb21tYW5kPzoge1xuICAgICAgICAgICAgcG9wdXA/OiB7XG4gICAgICAgICAgICAgICAgbmFtZT86IHN0cmluZztcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgbmFtZT86IHN0cmluZztcbiAgICAgICAgICAgIHN2Zz86IHN0cmluZztcbiAgICAgICAgfTtcbiAgICAgICAgc2Vjb25kQ29tbWFuZD86IHtcbiAgICAgICAgICAgIHBvcHVwPzoge1xuICAgICAgICAgICAgICAgIG5hbWU/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIG5hbWU/OiBzdHJpbmc7XG4gICAgICAgICAgICBzdmc/OiBzdHJpbmc7XG4gICAgICAgIH07XG4gICAgICAgIHRoaXJkQ29tbWFuZD86IHtcbiAgICAgICAgICAgIHBvcHVwPzoge1xuICAgICAgICAgICAgICAgIG5hbWU/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIG5hbWU/OiBzdHJpbmc7XG4gICAgICAgICAgICBzdmc/OiBzdHJpbmc7XG4gICAgICAgIH07XG4gICAgICAgIHNldFRpbWVvdXQ/OiBudW1iZXI7IC8vIGlmIG11c3Qga2VlcCBmb2N1cyBvbiBpbnB1dFxuICAgICAgICBibHVlQ29tbWFuZHM/OiBib29sZWFuO1xuICAgIH07XG4gICAgZGVmYXVsdFZhbHVlPzogc3RyaW5nOyAvLyBkZWZhdWx0IGlucHV0IHZhbHVlIGZvciBSZXNldCBjb21tYW5kXG5cbiAgICAvLyAqKioqKioqKioqKioqKioqKiBEUk9QRE9XTlMgKioqKioqKioqKioqKioqKipcblxuICAgIC8vIFB1cmUgRHJvcGRvd25cbiAgICBpc0Ryb3Bkb3duPzogYm9vbGVhbjtcbiAgICBpc0FkZHJlc3M/OiBib29sZWFuO1xuICAgIHNlYXJjaGluR3JvdXBJbmRleD86IHN0cmluZztcbiAgICBkcm9wZG93bldpZHRoQ2xhc3M/OiBzdHJpbmc7IC8vIExvb2sgaW4gdGEtaW5wdXQtZHJvZG93bi5zY3NzIGZvciBpbXBsZW1lbnRhdGlvbiBjbGFzcyAod2lkdGggb2YgZHJvcGRvd25zKVxuICAgIGRyb3Bkb3duSW1hZ2VJbnB1dD86IElDYUlucHV0V2l0aERyb3Bkb3duIHwgbnVsbDtcbiAgICBpc0ludmFsaWRTZWFyY2hJbkRyb3Bkb3duPzogYm9vbGVhbjtcbiAgICBzZWxlY3RlZERyb3Bkb3duPzogYm9vbGVhbjtcbiAgICBtZXJnZURyb3Bkb3duQm9keVdpdGhJbnB1dD86IGJvb2xlYW47XG4gICAgaGlkZUFsbEl0ZW1zSW5JbnB1dERyb3Bkb3duPzogYm9vbGVhbjtcbiAgICBpc0JsdWVEcm9wZG93bj86IGJvb2xlYW47XG4gICAgaXNJdGVtU2VsZWN0ZWQ/OiBib29sZWFuO1xuICAgIGlzRGlzcGxheWluZ0N1c3RvbVBlcmlvZFJhbmdlPzogYm9vbGVhbjtcbiAgICBpc1VzaW5nQ3VzdG9tUGVyaW9kUmFuZ2U/OiBib29sZWFuO1xuXG4gICAgLy8gQWRkcmVzcyBEcm9wZG93blxuICAgIGlzRGlzcGF0Y2hMb2NhdGlvbkRyb3Bkb3duPzogYm9vbGVhbjtcblxuICAgIC8vIExhYmVsIGRyb3Bkb3duXG4gICAgZHJvcGRvd25MYWJlbD86IGJvb2xlYW47XG4gICAgZHJvcGRvd25MYWJlbE5ldz86IGJvb2xlYW47XG5cbiAgICAvLyBNdWx0aVNlbGVjdCBEcm9wZG93blxuICAgIG11bHRpc2VsZWN0RHJvcGRvd24/OiBib29sZWFuO1xuICAgIG11bHRpU2VsZWN0RHJvcGRvd25BY3RpdmU/OiBib29sZWFuO1xuICAgIG11bHRpU2VsZWN0SXRlbVJhbmdlPzogYm9vbGVhbjtcblxuICAgIC8vIERhdGVUaW1lIFBpY2tlclxuICAgIGlzRnJvbURhdGU/OiBib29sZWFuO1xuICAgIGhpZGVDb2xvclZhbGlkYXRpb25zPzogYm9vbGVhbjsgLy8gcmVndWxhciBjb2xvciBmb3IgaW5wdXRzLCBubyBibHVlIHZhbGlkYXRpb25cbiAgICBleHBpcmVkRGF0ZUludmFsaWQ/OiBib29sZWFuOyAvLyBhY2NlcHQgb25seSBkYXRlcyB0aGF0IGRpZG4ndCBleHBpcmVcbiAgICBpc0Z1dHVyZURhdGVEaXNhYmxlZD86IGJvb2xlYW47IC8vIGRpc2FibGVkIGZ1dHVyZSBkYXRlc1xuICAgIGZpeGVkUGxhY2hvbGRlcj86IHN0cmluZztcbiAgICBzdGF0dXNTdHlsZT86IGJvb2xlYW47XG4gICAgaXNJY29uSGlkZGVuPzogYm9vbGVhbjtcbiAgICBpc1JlbW92ZWRJY29uTW92ZWRPbkxlZnQ/OiBib29sZWFuO1xuICAgIHJlbW92ZUxlYWRpbmdaZXJvPzogYm9vbGVhbjtcbiAgICBuZWdhdGl2ZUxlYWRpbmdaZXJvPzogYm9vbGVhbjtcbiAgICBpc0hvdmVyUm93PzogYm9vbGVhbjtcbiAgICBtaW51dGVzR2FwRml2ZT86IGJvb2xlYW47XG5cbiAgICB1cGRhdGVBc1RvdWNoZWRPbkVkaXQ/OiBib29sZWFuO1xuXG4gICAgLy8gVXNlIHRoaXMgaWYgeW91IHdhbnQgdG8gdHJhbnNmb3JtIHZhbHVlcyB0byBudW1iZXIgZm9ybWF0IGVnLiAvLyBpbnB1dCB3aWxsIHNob3cgMjIsMzMzIGJ1dCBmb3JtQ29udHJvbGwgdmFsdWUgd2lsbCBiZSAyMjMzM1xuICAgIHByaWNlUGFyc2VGb3JtYXQ/OiBib29sZWFuO1xufSJdfQ==
|
|
@@ -152,7 +152,12 @@ export class InputTestComponent extends InputCommandMixin(InputHelperMixin(Input
|
|
|
152
152
|
writeValue(obj) {
|
|
153
153
|
const value = this.transformValue(this._inputConfig, obj); // ✅ Apply mask
|
|
154
154
|
this.inputValue = value;
|
|
155
|
-
this.
|
|
155
|
+
if (this._inputConfig.priceParseFormat && value) {
|
|
156
|
+
this.onChange(value.replace(/[^\d]/g, '')); // Notify Angular form about the change
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
this.onChange(value); // Notify Angular form about the change
|
|
160
|
+
}
|
|
156
161
|
if (value && this._inputConfig.updateAsTouchedOnEdit)
|
|
157
162
|
this.onTouched(); // Mark as touched
|
|
158
163
|
if (!this._inputConfig.isDropdown && !this._inputConfig.isAddress)
|
|
@@ -161,7 +166,12 @@ export class InputTestComponent extends InputCommandMixin(InputHelperMixin(Input
|
|
|
161
166
|
}
|
|
162
167
|
handleInput(event) {
|
|
163
168
|
const value = event.target.value;
|
|
164
|
-
this.
|
|
169
|
+
if (this._inputConfig.priceParseFormat && value) {
|
|
170
|
+
this.onChange(value.replace(/[^\d]/g, '')); // Notify Angular form about the change
|
|
171
|
+
}
|
|
172
|
+
else {
|
|
173
|
+
this.onChange(value); // Notify Angular form about the change
|
|
174
|
+
}
|
|
165
175
|
if (value)
|
|
166
176
|
this.onTouched(); // Mark as touched
|
|
167
177
|
if (this.inputValue === value) {
|
|
@@ -324,4 +334,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
324
334
|
type: Output,
|
|
325
335
|
args: ['dropDownKeyNavigation']
|
|
326
336
|
}] } });
|
|
327
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdGVzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jYS1pbnB1dC10ZXN0L2lucHV0LXRlc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtaW5wdXQtdGVzdC9pbnB1dC10ZXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHSCxTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFFTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLElBQUksRUFFSixTQUFTLEVBQ1QsaUJBQWlCLEdBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFJSCxVQUFVLEdBQ2IsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBSTFDLE9BQU8sRUFBb0IsY0FBYyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRzNELFFBQVE7QUFDUixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQzdELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXRFLFFBQVE7QUFDUixPQUFPLEVBQ0gsY0FBYyxFQUNkLHVCQUF1QixFQUN2QiwyQkFBMkIsRUFDM0IsY0FBYyxFQUNkLGtDQUFrQyxFQUNsQyw2QkFBNkIsRUFDN0IsYUFBYSxFQUNiLGNBQWMs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O3NCQUExRCxNQUFNO3VCQUFDLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9wdGlvbmFsLFxuICAgIE91dHB1dCxcbiAgICBTZWxmLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7XG4gICAgQWJzdHJhY3RDb250cm9sLFxuICAgIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICAgIE5nQ29udHJvbCxcbiAgICBWYWxpZGF0b3JzLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBOZ2JNb2R1bGUgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQW5ndWxhclN2Z0ljb25Nb2R1bGUgfSBmcm9tICdhbmd1bGFyLXN2Zy1pY29uJztcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuXG4vLyBtb2RlbHNcbmltcG9ydCB7IElDYUlucHV0IH0gZnJvbSAnLi9jb25maWcnO1xuaW1wb3J0IHsgSW5wdXRDaGFuZ2VWYWx1ZSwgSW5wdXRTdmdSb3V0ZXMgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IENvbW1hbmRzRXZlbnQsIExhYmVsQ29sb3IgfSBmcm9tICcuL21vZGVscyc7XG5cbi8vIGVtdW1zXG5pbXBvcnQgeyBJbnB1dENvbW1hbmRzVHlwZSwgSW5wdXRTdHJpbmdFbnVtIH0gZnJvbSAnLi9lbnVtcyc7XG5pbXBvcnQgeyBEcm9wZG93blRlbXBsYXRlVHlwZUVudW0gfSBmcm9tICcuLi9jYS1pbnB1dC1kcm9wZG93bi9lbnVtcyc7XG5cbi8vIHBpcGVzXG5pbXBvcnQge1xuICAgIElucHV0Q2xhc3NQaXBlLFxuICAgIElucHV0Q29udGFpbmVyQ2xhc3NQaXBlLFxuICAgIElucHV0RHJvcGRvd25BcnJvd0NsYXNzUGlwZSxcbiAgICBJbnB1dEVycm9yUGlwZSxcbiAgICBJbnB1dFBsYWNlaG9sZGVySWNvblJpZ2h0Q2xhc3NQaXBlLFxuICAgIElucHV0UGxhY2Vob2xkZXJUZXh0Q2xhc3NQaXBlLFxuICAgIElucHV0VHlwZVBpcGUsXG4gICAgTGFiZWxDbGFzc1BpcGUsXG4gICAgU2hvd0NsZWFyUGlwZSxcbiAgICBTaG93RHJvcGRvd25BcnJvd1BpcGUsXG4gICAgU2hvd1BsYWNlaG9sZGVyVGV4dFBpcGUsXG4gICAgU2hvd1ZhbGlkQ2hlY2tQaXBlLFxufSBmcm9tICcuL3BpcGVzJztcbmltcG9ydCB7XG4gICAgQ2FTdmdQaXBlLFxuICAgIExvYWRTdGF0dXNDb2xvclBpcGUsXG4gICAgVGhvdXNhbmRTZXBhcmF0b3JQaXBlLFxufSBmcm9tICcuLi8uLi9waXBlcyc7XG5cbi8vIG1hc2tcbmltcG9ydCB7IE5neE1hc2tNb2R1bGUgfSBmcm9tICduZ3gtbWFzayc7XG5pbXBvcnQgeyBOZ3hNYXNrU2VydmljZSB9IGZyb20gJ25neC1tYXNrJztcblxuLy8gY29tcG9uZW50c1xuaW1wb3J0IHsgQ2FJbnB1dFBhc3N3b3JkQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NhLWlucHV0LXBhc3N3b3JkL2NhLWlucHV0LXBhc3N3b3JkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYUlucHV0UGxhY2Vob2xkZXJJY29uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NhLWlucHV0LXBsYWNlaG9sZGVyLWljb24vY2EtaW5wdXQtcGxhY2Vob2xkZXItaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FJbnB1dENsZWFyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NhLWlucHV0LWNsZWFyL2NhLWlucHV0LWNsZWFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYUFwcFRvb2x0aXBWMkNvbXBvbmVudCB9IGZyb20gJy4uL2NhLWFwcC10b29sdGlwLXYyL2NhLWFwcC10b29sdGlwLXYyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYUlucHV0Q29tbWFuZHNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2EtaW5wdXQtY29tbWFuZHMvY2EtaW5wdXQtY29tbWFuZHMuY29tcG9uZW50JztcbmltcG9ydCB7IENhU3Bpbm5lckNvbXBvbmVudCB9IGZyb20gJy4uL2NhLXNwaW5uZXIvY2Etc3Bpbm5lci5jb21wb25lbnQnO1xuXG4vLyBkaXJlY3RpdmVzXG5pbXBvcnQgeyBDYXBzTG9ja0RpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBNYXhWYWx1ZURpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBSZXN0cmljdElucHV0RGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzJztcbmltcG9ydCB7IFByaWNlRm9ybWF0RGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzJztcbmltcG9ydCB7IENvbW1hbmRWaXNpYmxlRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2NvbW1hbmQtdmlzaWJsZS5kaXJlY3RpdmUnO1xuXG4vLyBjbGFzc1xuaW1wb3J0IHsgRXZlbnRJbnB1dE1hbmFnZXIgfSBmcm9tICcuL2Jhc2UtY2xhc3Nlcy9jYS1pbnB1dC1ldmVudC1tYW5hZ2VyJztcblxuLy8gbWl4aW5zXG5pbXBvcnQgeyBJbnB1dENvbW1hbmRNaXhpbiB9IGZyb20gJy4vbWl4aW5zL2lucHV0LWNvbW1hbmQubWl4aW4nO1xuaW1wb3J0IHsgSW5wdXRIZWxwZXJNaXhpbiB9IGZyb20gJy4vbWl4aW5zL2lucHV0LWhlbHBlci5taXhpbic7XG5pbXBvcnQgeyBPcHRpb25Nb2RlbCB9IGZyb20gJy4uL2NhLWlucHV0LWRyb3Bkb3duL21vZGVscyc7XG5cbmNsYXNzIElucHV0QmFzZSB7XG4gICAgcHVibGljIGlucHV0RWxlbWVudCE6IEVsZW1lbnRSZWY7XG4gICAgcHVibGljIF9pbnB1dENvbmZpZyE6IElDYUlucHV0O1xuICAgIHB1YmxpYyBpc1Zpc2libGVDb21tYW5kczogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHB1YmxpYyBtYXNrQXBwbGllciE6IE5neE1hc2tTZXJ2aWNlO1xuICAgIHB1YmxpYyB0aG91c2FuZFNlcGFyYXRvclBpcGUhOiBUaG91c2FuZFNlcGFyYXRvclBpcGU7XG4gICAgcHVibGljIGlzRm9jdXNJbnB1dDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHB1YmxpYyBpc0VkaXRJbnB1dDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHB1YmxpYyBpc0Ryb3Bkb3duVG9nZ2xlcjogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHB1YmxpYyBpc1RvdWNoZWRJbnB1dDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHB1YmxpYyBzZXRDb21tYW5kRXZlbnQhOiBFdmVudElucHV0TWFuYWdlcjxDb21tYW5kc0V2ZW50PjtcblxuICAgIHB1YmxpYyBoYW5kbGVUb2dnbGVEcm9wZG93bk9wdGlvbnMhOiBFdmVudEVtaXR0ZXI8dm9pZD47XG5cbiAgICBwdWJsaWMgb25Ub3VjaGVkID0gKCkgPT4ge307XG4gICAgcHVibGljIG9uQ2hhbmdlKF86IGFueSk6IHZvaWQge31cbiAgICBwdWJsaWMgaGFuZGxlQ2hhbmdlSW5wdXRBbmRVcGRhdGVDb250cm9sKF86IElucHV0Q2hhbmdlVmFsdWUpOiB2b2lkIHt9XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnY2EtaW5wdXQtdGVzdCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIC8vIE1vZHVsZXNcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBOZ2JNb2R1bGUsXG4gICAgICAgIEFuZ3VsYXJTdmdJY29uTW9kdWxlLFxuICAgICAgICBOZ3hNYXNrTW9kdWxlLFxuXG4gICAgICAgIC8vIFBpcGVzXG4gICAgICAgIElucHV0RXJyb3JQaXBlLFxuICAgICAgICBJbnB1dENvbnRhaW5lckNsYXNzUGlwZSxcbiAgICAgICAgSW5wdXRDbGFzc1BpcGUsXG4gICAgICAgIElucHV0UGxhY2Vob2xkZXJUZXh0Q2xhc3NQaXBlLFxuICAgICAgICBTaG93UGxhY2Vob2xkZXJUZXh0UGlwZSxcbiAgICAgICAgTGFiZWxDbGFzc1BpcGUsXG4gICAgICAgIENhU3ZnUGlwZSxcbiAgICAgICAgTG9hZFN0YXR1c0NvbG9yUGlwZSxcbiAgICAgICAgSW5wdXRQbGFjZWhvbGRlckljb25SaWdodENsYXNzUGlwZSxcbiAgICAgICAgTWF4VmFsdWVEaXJlY3RpdmUsXG4gICAgICAgIElucHV0VHlwZVBpcGUsXG4gICAgICAgIFNob3dWYWxpZENoZWNrUGlwZSxcbiAgICAgICAgU2hvd0Ryb3Bkb3duQXJyb3dQaXBlLFxuICAgICAgICBJbnB1dERyb3Bkb3duQXJyb3dDbGFzc1BpcGUsXG5cbiAgICAgICAgLy8gRGlyZWN0aXZlc1xuICAgICAgICBSZXN0cmljdElucHV0RGlyZWN0aXZlLFxuICAgICAgICBQcmljZUZvcm1hdERpcmVjdGl2ZSxcbiAgICAgICAgU2hvd0NsZWFyUGlwZSxcbiAgICAgICAgQ2Fwc0xvY2tEaXJlY3RpdmUsXG4gICAgICAgIENvbW1hbmRWaXNpYmxlRGlyZWN0aXZlLFxuXG4gICAgICAgIC8vIENvbXBvbmVudHNcbiAgICAgICAgQ2FJbnB1dENsZWFyQ29tcG9uZW50LFxuICAgICAgICBDYUFwcFRvb2x0aXBWMkNvbXBvbmVudCxcbiAgICAgICAgQ2FJbnB1dFBsYWNlaG9sZGVySWNvbkNvbXBvbmVudCxcbiAgICAgICAgQ2FJbnB1dFBhc3N3b3JkQ29tcG9uZW50LFxuICAgICAgICBDYUlucHV0Q29tbWFuZHNDb21wb25lbnQsXG4gICAgICAgIENhU3Bpbm5lckNvbXBvbmVudCxcbiAgICBdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC10ZXN0LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vaW5wdXQtdGVzdC5jb21wb25lbnQuc2NzcycsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgSW5wdXRUZXN0Q29tcG9uZW50XG4gICAgZXh0ZW5kcyBJbnB1dENvbW1hbmRNaXhpbihJbnB1dEhlbHBlck1peGluKElucHV0QmFzZSkpXG4gICAgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95XG57XG4gICAgcHVibGljIGlucHV0VmFsdWU6IElucHV0Q2hhbmdlVmFsdWUgPSAnJztcbiAgICBwdWJsaWMgb3ZlcnJpZGUgX2lucHV0Q29uZmlnITogSUNhSW5wdXQ7XG4gICAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBwdWJsaWMgaW5wdXRTdmdSb3V0ZXMgPSBJbnB1dFN2Z1JvdXRlcztcbiAgICBASW5wdXQoKSBkYXRlVGltZVBvcG92ZXIhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgQFZpZXdDaGlsZCgnaW5wdXQnLCB7IHN0YXRpYzogdHJ1ZSB9KSBvdmVycmlkZSBpbnB1dEVsZW1lbnQhOiBFbGVtZW50UmVmO1xuICAgIEBWaWV3Q2hpbGQoQ2FJbnB1dFBsYWNlaG9sZGVySWNvbkNvbXBvbmVudClcbiAgICAgICAgY2FJbnB1dFBsYWNlaG9sZGVySWNvbkNvbXBvbmVudCE6IENhSW5wdXRQbGFjZWhvbGRlckljb25Db21wb25lbnQ7XG5cbiAgICBASW5wdXQoKSBwYXJlbnRDb250cm9sITogQWJzdHJhY3RDb250cm9sPGFueSwgYW55PiB8IG51bGw7XG4gICAgQElucHV0KCkgc2VsZWN0ZWREcm9wZG93bkxhYmVsQ29sb3IhOiBMYWJlbENvbG9yIHwgbnVsbDtcbiAgICBASW5wdXQoKSB0ZW1wbGF0ZSE6IHN0cmluZztcbiAgICBASW5wdXQoKSBpbmNvcnJlY3RWYWx1ZSE6IGJvb2xlYW47XG4gICAgQElucHV0KCkgc2V0IGlucHV0Q29uZmlnKGNvbmZpZzogSUNhSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faW5wdXRDb25maWcgPSBjb25maWc7XG4gICAgfVxuXG4gICAgQElucHV0KCkgYWN0aXZlSXRlbSE6IE9wdGlvbk1vZGVsIHwgbnVsbDtcblxuICAgIEBPdXRwdXQoJ2hhbmRsZVRvZ2dsZURyb3Bkb3duT3B0aW9ucycpXG4gICAgb3ZlcnJpZGUgaGFuZGxlVG9nZ2xlRHJvcGRvd25PcHRpb25zOiBFdmVudEVtaXR0ZXI8dm9pZD4gPVxuICAgICAgICBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICBAT3V0cHV0KCdpbmNvcnJlY3RFdmVudCcpIGluY29ycmVjdElucHV0OiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPVxuICAgICAgICBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICBAT3V0cHV0KCdibHVySW5wdXQnKSBibHVySW5wdXQ6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9XG4gICAgICAgIG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgICBAT3V0cHV0KCdmb2N1c0lucHV0JykgZm9jdXNJbnB1dEV2ZW50OiBFdmVudEVtaXR0ZXI8Rm9jdXNFdmVudD4gPVxuICAgICAgICBuZXcgRXZlbnRFbWl0dGVyPEZvY3VzRXZlbnQ+KCk7XG4gICAgQE91dHB1dCgnY2hhbmdlJykgY2hhbmdlSW5wdXQ6IEV2ZW50RW1pdHRlcjxJbnB1dENoYW5nZVZhbHVlPiA9XG4gICAgICAgIG5ldyBFdmVudEVtaXR0ZXI8SW5wdXRDaGFuZ2VWYWx1ZT4oKTtcbiAgICBAT3V0cHV0KCdjb21tYW5kRXZlbnQnKSBjb21tYW5kRXZlbnQ6IEV2ZW50RW1pdHRlcjxDb21tYW5kc0V2ZW50PiA9XG4gICAgICAgIG5ldyBFdmVudEVtaXR0ZXI8Q29tbWFuZHNFdmVudD4oKTtcbiAgICBAT3V0cHV0KCdjbGVhcicpIGNsZWFySW5wdXRFdmVudDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID1cbiAgICAgICAgbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgLy8gRHJvcGRvd25cbiAgICBAT3V0cHV0KCdzaG93SGlkZURyb3Bkb3duJykgc2hvd0hpZGVEcm9wZG93bkV2ZW50OiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPVxuICAgICAgICBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gICAgQE91dHB1dCgnZHJvcERvd25LZXlOYXZpZ2F0aW9uJykgZHJvcERvd25LZXlOYXZpZ2F0aW9uRXZlbnQ6IEV2ZW50RW1pdHRlcjx7XG4gICAgICAgIGtleUNvZGU6IG51bWJlcjtcbiAgICAgICAgZGF0YTogSUNhSW5wdXQgfCBudWxsO1xuICAgIH0+ID0gbmV3IEV2ZW50RW1pdHRlcjx7XG4gICAgICAgIGtleUNvZGU6IG51bWJlcjtcbiAgICAgICAgZGF0YTogSUNhSW5wdXQgfCBudWxsO1xuICAgIH0+KCk7XG5cbiAgICAvLyBldmVudHNcbiAgICBwdWJsaWMgb3ZlcnJpZGUgc2V0Q29tbWFuZEV2ZW50ID0gbmV3IEV2ZW50SW5wdXRNYW5hZ2VyPENvbW1hbmRzRXZlbnQ+KFxuICAgICAgICBudWxsLFxuICAgICAgICB0aGlzLmNvbW1hbmRFdmVudFxuICAgICk7XG5cbiAgICBwdWJsaWMgaXNDYXBzTG9ja09uID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgaW5wdXRDb21tYW5kc1R5cGUgPSBJbnB1dENvbW1hbmRzVHlwZTtcbiAgICBwdWJsaWMgaW5wdXRTdHJpbmdFbnVtID0gSW5wdXRTdHJpbmdFbnVtO1xuICAgIHB1YmxpYyBkcm9wZG93blRlbXBsYXRlVHlwZUVudW0gPSBEcm9wZG93blRlbXBsYXRlVHlwZUVudW07XG5cbiAgICAvLyBQYXNzd29yZFxuICAgIHB1YmxpYyBpc1RvZ2dsZVBhc3N3b3JkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgZ2V0IGlucHV0Q29uZmlnKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faW5wdXRDb25maWc7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgcHVibGljIG5nQ29udHJvbDogTmdDb250cm9sLFxuICAgICAgICBwdWJsaWMgY2hkZXQ6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwdWJsaWMgb3ZlcnJpZGUgbWFza0FwcGxpZXI6IE5neE1hc2tTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgb3ZlcnJpZGUgdGhvdXNhbmRTZXBhcmF0b3JQaXBlOiBUaG91c2FuZFNlcGFyYXRvclBpcGVcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgaWYgKHRoaXMubmdDb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZUNoYW5nZUlucHV0QW5kVXBkYXRlQ29udHJvbCh0aGlzLmlucHV0VmFsdWUpO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5faW5wdXRDb25maWcuYXV0b0ZvY3VzKVxuICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMucGFyZW50Q29udHJvbCkge1xuICAgICAgICAgICAgICAgIHRoaXMucGFyZW50Q29udHJvbC5zdGF0dXNDaGFuZ2VzXG4gICAgICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wYXJlbnRDb250cm9sPy5oYXNWYWxpZGF0b3IoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRyb2w/LmFkZFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250cm9sPy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbD8ucmVtb3ZlVmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRyb2w/LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucGFyZW50Q29udHJvbD8uZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250cm9sPy5kaXNhYmxlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbD8udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbWl0RXZlbnQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbD8uZW5hYmxlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbD8udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbWl0RXZlbnQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0sIDApO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnRyb2w/LnNldFZhbGlkYXRvcnModGhpcy5wYXJlbnRDb250cm9sLnZhbGlkYXRvcik7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMucGFyZW50Q29udHJvbD8uaGFzVmFsaWRhdG9yKFZhbGlkYXRvcnMucmVxdWlyZWQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbD8uYWRkVmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250cm9sPy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMucGFyZW50Q29udHJvbD8uZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250cm9sPy5kaXNhYmxlKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbD8udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbWl0RXZlbnQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbD8uZW5hYmxlKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbD8udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbWl0RXZlbnQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0IGNvbnRyb2woKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm5nQ29udHJvbD8uY29udHJvbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICAgIH1cblxuICAgIHB1YmxpYyB3cml0ZVZhbHVlKG9iajogSW5wdXRDaGFuZ2VWYWx1ZSk6IHZvaWQge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMudHJhbnNmb3JtVmFsdWUodGhpcy5faW5wdXRDb25maWcsIG9iaik7IC8vIOKchSBBcHBseSBtYXNrXG5cbiAgICAgICAgdGhpcy5pbnB1dFZhbHVlID0gdmFsdWU7XG4gICAgICAgIHRoaXMub25DaGFuZ2UodmFsdWUpOyAvLyBOb3RpZnkgQW5ndWxhciBmb3JtIGFib3V0IHRoZSBjaGFuZ2VcbiAgICAgICAgaWYgKHZhbHVlICYmIHRoaXMuX2lucHV0Q29uZmlnLnVwZGF0ZUFzVG91Y2hlZE9uRWRpdCkgdGhpcy5vblRvdWNoZWQoKTsgLy8gTWFyayBhcyB0b3VjaGVkXG5cbiAgICAgICAgaWYgKCF0aGlzLl9pbnB1dENvbmZpZy5pc0Ryb3Bkb3duICYmICF0aGlzLl9pbnB1dENvbmZpZy5pc0FkZHJlc3MpXG4gICAgICAgICAgICB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LnZhbHVlID0gdmFsdWU7XG5cbiAgICAgICAgdGhpcy5jaGRldC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgaGFuZGxlSW5wdXQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZTtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7IC8vIE5vdGlmeSBBbmd1bGFyIGZvcm0gYWJvdXQgdGhlIGNoYW5nZVxuICAgICAgICBpZiAodmFsdWUpIHRoaXMub25Ub3VjaGVkKCk7IC8vIE1hcmsgYXMgdG91Y2hlZFxuXG4gICAgICAgIGlmICh0aGlzLmlucHV0VmFsdWUgPT09IHZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRyb2w/Lm1hcmtBc1VudG91Y2hlZCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGNsZWFySW5wdXQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB0aGlzLmhhbmRsZUNoYW5nZUlucHV0QW5kVXBkYXRlQ29udHJvbCgnJyk7XG4gICAgICAgIHRoaXMuY2xlYXJJbnB1dEV2ZW50LmVtaXQodHJ1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIGhhbmRsZUNoYW5nZUlucHV0QW5kVXBkYXRlQ29udHJvbCh2YWx1ZTogSW5wdXRDaGFuZ2VWYWx1ZSkge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlKHZhbHVlKTtcbiAgICAgICAgaWYgKCF0aGlzLl9pbnB1dENvbmZpZy5pc0Ryb3Bkb3duICYmICF0aGlzLl9pbnB1dENvbmZpZy5pc0FkZHJlc3MpIHtcbiAgICAgICAgICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICAgIC8vIFRyaWdnZXIgYWxsIGlucHV0cyBkaXJlY3RpdmVzIHRoYXQgbGlzdGVuIGZvciBpbnB1dCBFdmVudFxuICAgICAgICAgICAgY29uc3QgZXZlbnQgPSBuZXcgRXZlbnQoJ2lucHV0JywgeyBidWJibGVzOiB0cnVlIH0pO1xuICAgICAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5kaXNwYXRjaEV2ZW50KGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBoYW5kbGVJbnB1dEZvY3VzKGV2ZW50OiBGb2N1c0V2ZW50KSB7XG4gICAgICAgIHRoaXMuZm9jdXNJbnB1dEV2ZW50LmVtaXQoZXZlbnQpO1xuICAgICAgICB0aGlzLmlzRm9jdXNJbnB1dCA9IHRydWU7XG4gICAgfVxuXG4gICAgcHVibGljIGhhbmRsZUlucHV0Qmx1cihldmVudDogRm9jdXNFdmVudCkge1xuICAgICAgICB0aGlzLmJsdXJJbnB1dC5lbWl0KHRydWUpO1xuICAgICAgICB0aGlzLmlzRm9jdXNJbnB1dCA9IGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblBvcG92ZXJTaG93bigpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLl9pbnB1dENvbmZpZy5kcm9wZG93bkxhYmVsKSB7XG4gICAgICAgICAgICB0aGlzLmlzRm9jdXNJbnB1dCA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgb25Qb3BvdmVySGlkZGVuKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2lucHV0Q29uZmlnLmRyb3Bkb3duTGFiZWwpIHtcbiAgICAgICAgICAgIHRoaXMuaXNGb2N1c0lucHV0ID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgb25Ub2dnbGVQYXNzd29yZChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy5pc1RvZ2dsZVBhc3N3b3JkID0gIXRoaXMuaXNUb2dnbGVQYXNzd29yZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgaGFuZGxlQ2Fwc0xvY2soc3RhdHVzOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuaXNDYXBzTG9ja09uID0gc3RhdHVzO1xuICAgIH1cblxuICAgIHB1YmxpYyBoYW5kbGVDb21tYW5kVmlzaWJsZShzdGF0dXM6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5pc1Zpc2libGVDb21tYW5kcyA9IHN0YXR1cztcbiAgICB9XG5cbiAgICBwdWJsaWMgaWRlbnRpZnkoaW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBpbmRleDtcbiAgICB9XG5cbiAgICBwdWJsaWMgaGFuZGxlS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICB0aGlzLmRyb3BEb3duS2V5TmF2aWdhdGlvbkV2ZW50LmVtaXQoe1xuICAgICAgICAgICAga2V5Q29kZTogZXZlbnQua2V5Q29kZSxcbiAgICAgICAgICAgIGRhdGE6IHRoaXMuaW5wdXRDb25maWcsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIH1cbn1cbiIsIjxkaXZcbiAgICBjbGFzcz1cImlucHV0LWN1c3RvbS1ncm91cCB7eyBfaW5wdXRDb25maWcuY3VzdG9tQ2xhc3MgfX1cIlxuICAgIFtuZ0NsYXNzXT1cIlxuICAgICAgICBjb250cm9sXG4gICAgICAgICAgICB8IGlucHV0Q29udGFpbmVyQ2xhc3NcbiAgICAgICAgICAgICAgICA6IGlzRm9jdXNJbnB1dFxuICAgICAgICAgICAgICAgIDogY29udHJvbD8udG91Y2hlZCFcbiAgICAgICAgICAgICAgICA6IF9pbnB1dENvbmZpZ1xuICAgICAgICAgICAgICAgIDogY29udHJvbD8udmFsdWVcbiAgICAgICAgICAgICAgICA6IGNvbnRyb2w/LmRpc2FibGVkXG4gICAgXCJcbiAgICBuZ2JUb29sdGlwXG4gICAgW21haW5DYVRvb2x0aXBdPVwiY29udHJvbD8uZXJyb3JzIHwgaW5wdXRFcnJvcjogX2lucHV0Q29uZmlnLm5hbWVcIlxuICAgIFt0b29sdGlwQmFja2dyb3VuZF09XCInI0RGM0MzQydcIlxuICAgIFtkaXNhYmxlVG9vbHRpcF09XCIhX2lucHV0Q29uZmlnLnJlcXVpcmVkTGFiZWwgfHwgISFjb250cm9sPy52YWxpZFwiXG4gICAgcG9zaXRpb249XCJib3R0b21cIlxuICAgIHRyaWdnZXJzPVwiaG92ZXJcIlxuPlxuICAgIDwhLS0gSW5wdXQgTG9hZGluZyBzcGlubmVyIC0tPlxuICAgIEBpZiAoXG4gICAgICAgIF9pbnB1dENvbmZpZz8ubG9hZGluZ1NwaW5uZXI/LmlzTG9hZGluZyAmJlxuICAgICAgICAhX2lucHV0Q29uZmlnLmlzRGlzYWJsZWQgJiZcbiAgICAgICAgIWNvbnRyb2w/LmRpc2FibGVkXG4gICAgKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1sb2FkaW5nLXNwaW5uZXJcIj5cbiAgICAgICAgICAgIDxhcHAtY2Etc3Bpbm5lclxuICAgICAgICAgICAgICAgIFtzaXplXT1cIl9pbnB1dENvbmZpZy5sb2FkaW5nU3Bpbm5lcj8uc2l6ZVwiXG4gICAgICAgICAgICAgICAgW2NvbG9yXT1cIl9pbnB1dENvbmZpZy5sb2FkaW5nU3Bpbm5lcj8uY29sb3JcIlxuICAgICAgICAgICAgPjwvYXBwLWNhLXNwaW5uZXI+XG4gICAgICAgIDwvZGl2PlxuICAgIH1cblxuICAgIDwhLS0gSW5wdXQgQ29tbWFuZHMgLS0+XG4gICAgQGlmIChfaW5wdXRDb25maWcuY29tbWFuZHM/LmFjdGl2ZSAmJiBpc1Zpc2libGVDb21tYW5kcykge1xuICAgICAgICA8YXBwLWNhLWlucHV0LWNvbW1hbmRzXG4gICAgICAgICAgICBbaW5wdXRDb25maWddPVwiX2lucHV0Q29uZmlnXCJcbiAgICAgICAgICAgIFtpc0ZvY3VzSW5wdXRdPVwiaXNGb2N1c0lucHV0XCJcbiAgICAgICAgICAgIFtpc1Zpc2libGVDb21tYW5kc109XCJpc1Zpc2libGVDb21tYW5kc1wiXG4gICAgICAgICAgICAob25Db21tYW5kc0NsaWNrKT1cIm9uQ29tbWFuZHMoJGV2ZW50KVwiXG4gICAgICAgID5cbiAgICAgICAgPC9hcHAtY2EtaW5wdXQtY29tbWFuZHM+XG4gICAgfVxuICAgIDwhLS0gSW5wdXQgVmFsaWQgQ2hlY2sgLS0+XG4gICAgQGlmIChjb250cm9sIHwgc2hvd1ZhbGlkQ2hlY2s6IGlzRm9jdXNJbnB1dCA6IF9pbnB1dENvbmZpZyA6IGNvbnRyb2wpIHtcbiAgICAgICAgPHN2Zy1pY29uXG4gICAgICAgICAgICBjbGFzcz1cImlucHV0LXJlcXVpcmVkLWNoZWNrIHt7IF9pbnB1dENvbmZpZy5jdXN0b21DbGFzcyB9fVwiXG4gICAgICAgICAgICBbc3JjXT1cImlucHV0U3ZnUm91dGVzLmNvbmZpcm1TdmdcIlxuICAgICAgICA+PC9zdmctaWNvbj5cbiAgICB9XG4gICAgPCEtLSBJbnB1dCBQYXNzd29yZCBDYXBzIExvY2sgQW5kIEV5ZSAtLT5cbiAgICBAaWYgKF9pbnB1dENvbmZpZy50eXBlID09PSAncGFzc3dvcmQnKSB7XG4gICAgICAgIDxhcHAtY2EtaW5wdXQtcGFzc3dvcmRcbiAgICAgICAgICAgIFtpbnB1dENvbmZpZ109XCJfaW5wdXRDb25maWdcIlxuICAgICAgICAgICAgW2dldFN1cGVyQ29udHJvbF09XCJjb250cm9sXCJcbiAgICAgICAgICAgIFtpc0ZvY3VzSW5wdXRdPVwiaXNGb2N1c0lucHV0XCJcbiAgICAgICAgICAgIFtpc1RvdWNoZWRJbnB1dF09XCJpc1RvdWNoZWRJbnB1dFwiXG4gICAgICAgICAgICBbaXNDYXBzTG9ja09uXT1cImlzQ2Fwc0xvY2tPblwiXG4gICAgICAgICAgICBbaXNUb2dnbGVQYXNzd29yZF09XCJpc1RvZ2dsZVBhc3N3b3JkXCJcbiAgICAgICAgICAgIChvblRvZ2dsZVBhc3N3b3JkQ2xpY2spPVwib25Ub2dnbGVQYXNzd29yZCgkZXZlbnQpXCJcbiAgICAgICAgPlxuICAgICAgICA8L2FwcC1jYS1pbnB1dC1wYXNzd29yZD5cbiAgICB9XG4gICAgPCEtLSBJbnB1dCBDbGVhciAtLT5cbiAgICBAaWYgKF9pbnB1dENvbmZpZyB8IHNob3dDbGVhcjogY29udHJvbD8uZGlzYWJsZWQpIHtcbiAgICAgICAgPGFwcC1jYS1pbnB1dC1jbGVhclxuICAgICAgICAgICAgW2lucHV0Q29uZmlnXT1cIl9pbnB1dENvbmZpZ1wiXG4gICAgICAgICAgICBbZ2V0U3VwZXJDb250cm9sXT1cImNvbnRyb2xcIlxuICAgICAgICAgICAgW2lzRm9jdXNJbnB1dF09XCJpc0ZvY3VzSW5wdXRcIlxuICAgICAgICAgICAgW2luY29ycmVjdFZhbHVlXT1cImluY29ycmVjdFZhbHVlXCJcbiAgICAgICAgICAgIFtzZWxlY3RlZERyb3Bkb3duTGFiZWxDb2xvcl09XCJzZWxlY3RlZERyb3Bkb3duTGFiZWxDb2xvclwiXG4gICAgICAgICAgICBbdGVtcGxhdGVdPVwidGVtcGxhdGVcIlxuICAgICAgICAgICAgKGNsZWFySW5wdXRDbGljayk9XCJjbGVhcklucHV0KCRldmVudClcIlxuICAgICAgICA+XG4gICAgICAgIDwvYXBwLWNhLWlucHV0LWNsZWFyPlxuICAgIH1cblxuICAgIDwhLS0gSW5wdXQgRHJvcGRvd24gQXJyb3cgLS0+XG4gICAgQGlmIChfaW5wdXRDb25maWcgfCBzaG93RHJvcGRvd25BcnJvdzogY29udHJvbD8uZGlzYWJsZWQpIHtcbiAgICAgICAgPHN2Zy1pY29uXG4gICAgICAgICAgICBjbGFzcz1cImlucHV0LWRyb3Bkb3duLWFycm93IHt7IF9pbnB1dENvbmZpZy5jdXN0b21DbGFzcyB9fVwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJcbiAgICAgICAgICAgICAgICBjb250cm9sXG4gICAgICAgICAgICAgICAgICAgIHwgaW5wdXREcm9wZG93bkFycm93Q2xhc3NcbiAgICAgICAgICAgICAgICAgICAgICAgIDogaXNGb2N1c0lucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICA6IF9pbnB1dENvbmZpZ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBpc1RvdWNoZWRJbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgOiBjb250cm9sPy52YWx1ZVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIFtzcmNdPVwiaW5wdXRTdmdSb3V0ZXMuaW5wdXREcm9wZG93bkFycm93U3ZnXCJcbiAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVEcm9wZG93bk9wdGlvbnMoKVwiXG4gICAgICAgID48L3N2Zy1pY29uPlxuICAgIH1cblxuICAgIDwhLS0gSW5wdXQgUGxhY2Vob2xkZXIgSWNvbiAtLT5cbiAgICBAaWYgKF9pbnB1dENvbmZpZy5wbGFjZWhvbGRlckljb24pIHtcbiAgICAgICAgPGFwcC1jYS1pbnB1dC1wbGFjZWhvbGRlci1pY29uXG4gICAgICAgICAgICBbaW5wdXRDb25maWddPVwiX2lucHV0Q29uZmlnXCJcbiAgICAgICAgICAgIFtnZXRTdXBlckNvbnRyb2xdPVwiY29udHJvbFwiXG4gICAgICAgICAgICBbaXNGb2N1c0lucHV0XT1cImlzRm9jdXNJbnB1dFwiXG4gICAgICAgICAgICBbaXNUb3VjaGVkSW5wdXRdPVwiY29udHJvbD8udG91Y2hlZCFcIlxuICAgICAgICAgICAgW3NlbGVjdGVkRHJvcGRvd25MYWJlbENvbG9yXT1cInNlbGVjdGVkRHJvcGRvd25MYWJlbENvbG9yXCJcbiAgICAgICAgICAgIFtpc0VkaXRJbnB1dF09XCJpc0VkaXRJbnB1dFwiXG4gICAgICAgICAgICAob25QbGFjZWhvbGRlckljb25FdmVudEVtaXR0ZXIpPVwib25QbGFjZWhvbGRlckljb25FdmVudCgkZXZlbnQpXCJcbiAgICAgICAgICAgIChvblBvcG92ZXJTaG93bkVtaXR0ZXIpPVwib25Qb3BvdmVyU2hvd24oKVwiXG4gICAgICAgICAgICAob25Qb3BvdmVySGlkZGVuRW1pdHRlcik9XCJvblBvcG92ZXJIaWRkZW4oKVwiXG4gICAgICAgICAgICBbZGF0ZVRpbWVQb3BvdmVyXT1cImRhdGVUaW1lUG9wb3ZlclwiXG4gICAgICAgID5cbiAgICAgICAgPC9hcHAtY2EtaW5wdXQtcGxhY2Vob2xkZXItaWNvbj5cbiAgICB9XG5cbiAgICA8IS0tIElucHV0IFBsYWNlaG9sZGVyIFRleHQgLS0+XG4gICAgQGlmIChcbiAgICAgICAgX2lucHV0Q29uZmlnXG4gICAgICAgICAgICB8IHNob3dQbGFjZWhvbGRlclRleHQ6IGNvbnRyb2wgOiBpc1Zpc2libGVDb21tYW5kcyA6IGNvbnRyb2w/LnZhbHVlXG4gICAgKSB7XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgICBjbGFzcz1cImNhLXBsYWNlaG9sZGVyLXRleHQge3sgX2lucHV0Q29uZmlnLmN1c3RvbUNsYXNzIH19XCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIlxuICAgICAgICAgICAgICAgIGlzRm9jdXNJbnB1dFxuICAgICAgICAgICAgICAgICAgICB8IGlucHV0UGxhY2Vob2xkZXJUZXh0Q2xhc3NcbiAgICAgICAgICAgICAgICAgICAgICAgIDogY29udHJvbD8udG91Y2hlZCFcbiAgICAgICAgICAgICAgICAgICAgICAgIDogY29udHJvbFxuICAgICAgICAgICAgICAgICAgICAgICAgOiBfaW5wdXRDb25maWdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogaXNWaXNpYmxlQ29tbWFuZHNcbiAgICAgICAgICAgICAgICAgICAgICAgIDogY29udHJvbD8udmFsdWVcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICBbc3R5bGUubGVmdF09XCJcbiAgICAgICAgICAgICAgICBfaW5wdXRDb25maWcucGxhY2Vob2xkZXJUZXh0Py50b0xvd2VyQ2FzZSgpID09PVxuICAgICAgICAgICAgICAgICAgICBpbnB1dFN0cmluZ0VudW0uUEVSU09OUyB8fFxuICAgICAgICAgICAgICAgIF9pbnB1dENvbmZpZy5wbGFjZWhvbGRlclRleHQ/LnRvTG93ZXJDYXNlKCkgPT09XG4gICAgICAgICAgICAgICAgICAgIGlucHV0U3RyaW5nRW51bS5WRUhJQ0xFU1xuICAgICAgICAgICAgICAgICAgICA/IDMwICsgKGNvbnRyb2w/LnZhbHVlPy50b1N0cmluZygpPy5sZW5ndGggKyAxKSAqIDkgKyAncHgnXG4gICAgICAgICAgICAgICAgICAgIDogaXNGb2N1c0lucHV0ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBfaW5wdXRDb25maWcucGxhY2Vob2xkZXJUZXh0Py50b0xvd2VyQ2FzZSgpICE9PVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0Q29tbWFuZHNUeXBlLk1PTlRIU1xuICAgICAgICAgICAgICAgICAgICAgID8gJ2F1dG8nXG4gICAgICAgICAgICAgICAgICAgICAgOiAoY29udHJvbD8udmFsdWU/LnRvU3RyaW5nKCk/Lmxlbmd0aCArIDEpICogOCArICdweCdcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICBbc3R5bGUucmlnaHRdPVwiXG4gICAgICAgICAgICAgICAgaXNGb2N1c0lucHV0ICYmXG4gICAgICAgICAgICAgICAgX2lucHV0Q29uZmlnLnBsYWNlaG9sZGVyVGV4dD8udG9Mb3dlckNhc2UoKSAhPT1cbiAgICAgICAgICAgICAgICAgICAgaW5wdXRDb21tYW5kc1R5cGUuTU9OVEhTXG4gICAgICAgICAgICAgICAgICAgID8gJzI4cHgnXG4gICAgICAgICAgICAgICAgICAgIDogJ2F1dG8nXG4gICAgICAgICAgICBcIlxuICAgICAgICA+XG4gICAgICAgICAgICB7eyBfaW5wdXRDb25maWcucGxhY2Vob2xkZXJUZXh0IH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICB9XG5cbiAgICA8IS0tIElucHV0IExhYmVsIENvdW50ZXIgLS0+XG4gICAgQGlmIChcbiAgICAgICAgc2VsZWN0ZWREcm9wZG93bkxhYmVsQ29sb3IgJiZcbiAgICAgICAgY29udHJvbD8udmFsdWUgJiZcbiAgICAgICAgIWlzRm9jdXNJbnB1dCAmJlxuICAgICAgICAhX2lucHV0Q29uZmlnLmlzRGlzYWJsZWQgJiZcbiAgICAgICAgIWNvbnRyb2w/LmRpc2FibGVkICYmXG4gICAgICAgIF9pbnB1dENvbmZpZy5zaG93Q291bnRcbiAgICApIHtcbiAgICAgICAgPHBcbiAgICAgICAgICAgIFtzdHlsZS50b3BdPVwiJzRweCdcIlxuICAgICAgICAgICAgW3N0eWxlLmxlZnRdPVwiKGNvbnRyb2w/LnZhbHVlPy50b1N0cmluZygpPy5sZW5ndGggKyA2LjUpICogOCArICdweCdcIlxuICAgICAgICAgICAgY2xhc3M9XCJpbnB1dC1sYWJlbC1jb3VudGVyXCJcbiAgICAgICAgPlxuICAgICAgICAgICAge3sgc2VsZWN0ZWREcm9wZG93bkxhYmVsQ29sb3IuY291bnQgfX1cbiAgICAgICAgPC9wPlxuICAgIH1cblxuICAgIDwhLS0gU3BlY2lhbCBEcm9wZG93biBTZWxlY3RlZCBTVkcgd2l0aCBvciBXaXRob3V0IFRleHQgLS0+XG4gICAgQGlmIChcbiAgICAgICAgX2lucHV0Q29uZmlnPy5kcm9wZG93bkltYWdlSW5wdXQ/Lmljb25zUGF0aCAmJlxuICAgICAgICBhY3RpdmVJdGVtICYmXG4gICAgICAgICFfaW5wdXRDb25maWc/LmhpZGVBbGxJdGVtc0luSW5wdXREcm9wZG93biAmJlxuICAgICAgICAhKCFfaW5wdXRDb25maWcuZHJvcGRvd25JbWFnZUlucHV0Py53aXRoVGV4dCAmJiBpc0ZvY3VzSW5wdXQpICYmXG4gICAgICAgICEoXG4gICAgICAgICAgICBbJ3RydWNrJywgJ3RyYWlsZXInXS5pbmNsdWRlcyhcbiAgICAgICAgICAgICAgICBfaW5wdXRDb25maWcuZHJvcGRvd25JbWFnZUlucHV0Py50ZW1wbGF0ZSFcbiAgICAgICAgICAgICkgJiZcbiAgICAgICAgICAgIGlzRm9jdXNJbnB1dCAmJlxuICAgICAgICAgICAgX2lucHV0Q29uZmlnLmRyb3Bkb3duSW1hZ2VJbnB1dD8ucmVtb3ZlXG4gICAgICAgICkgJiZcbiAgICAgICAgIV9pbnB1dENvbmZpZz8uZHJvcGRvd25JbWFnZUlucHV0Py5uYW1lSW5pdGlhbHNJbnN0ZWFkVXJsXG4gICAgKSB7XG4gICAgICAgIDxzdmctaWNvblxuICAgICAgICAgICAgW3NyY109XCJfaW5wdXRDb25maWcuZHJvcGRvd25JbWFnZUlucHV0Py5pY29uc1BhdGghXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZHJvcGRvd24tc2VsZWN0ZWQtaW1hZ2Uge3tcbiAgICAgICAgICAgICAgICBfaW5wdXRDb25maWcuZHJvcGRvd25JbWFnZUlucHV0Py5jbGFzc1xuICAgICAgICAgICAgfX1cIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICd1bnNldC1jb2xvcic6XG4gICAgICAgICAgICAgICAgICAgIGlzRm9jdXNJbnB1dCAmJiBfaW5wdXRDb25maWcuZHJvcGRvd25JbWFnZUlucHV0Py5jbGFzcyxcbiAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgW3N2Z1N0eWxlXT1cIntcbiAgICAgICAgICAgICAgICBmaWxsOlxuICAgICAgICAgICAgICAgICAgICBfaW5wdXRDb25maWcuZHJvcGRvd25JbWFnZUlucHV0Py5jb2xvciAmJiAhaXNGb2N1c0lucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICA/IF9pbnB1dENvbmZpZy5kcm9wZG93bkltYWdlSW5wdXQ/LmNvbG9yXG4gICAgICAgICAgICAgICAgICAgICAgICA6ICcjZmZmZmZmJyxcbiAgICAgICAgICAgIH1cIlxuICAgICAgICA+XG4gICAgICAgIDwvc3ZnLWljb24+XG4gICAgfVxuXG4gICAgPCEtLSBJbnB1dCBMYWJlbCAtLT5cbiAgICBAaWYgKCFfaW5wdXRDb25maWcubXVsdGlTZWxlY3REcm9wZG93bkFjdGl2ZSkge1xuICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgIFtmb3JdPVwiX2lucHV0Q29uZmlnLm5hbWVcIlxuICAgICAgICAgICAgY2xhc3M9XCJpbnB1dC1sYWJlbCB7eyBfaW5wdXRDb25maWcuY3VzdG9tQ2xhc3MgfX0ge3tcbiAgICAgICAgICAgICAgICBfaW5wdXRDb25maWcubXVsdGlwbGVMYWJlbD8uY3VzdG9tQ2xhc3NcbiAgICAgICAgICAgIH19XCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIlxuICAgICAgICAgICAgICAgIGNvbnRyb2w/LnZhbHVlXG4gICAgICAgICAgICAgICAgICAgIHwgbGFiZWxDbGFzc1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBpc0ZvY3VzSW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIDogX2lucHV0Q29uZmlnXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGlzVG91Y2hlZElucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnRyb2w/LmludmFsaWRcbiAgICAgICAgICAgICAgICAgICAgICAgIDogY29udHJvbD8udG91Y2hlZFxuICAgICAgICAgICAgICAgICAgICAgICAgOiBjb250cm9sXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnRyb2w/LmRpc2FibGVkXG4gICAgICAgICAgICBcIlxuICAgICAgICA+XG4gICAgICAgICAgICBAaWYgKF9pbnB1dENvbmZpZy5sYWJlbCkge1xuICAgICAgICAgICAgICAgIDxzcGFuPnt7IF9pbnB1dENvbmZpZy5sYWJlbCB9fSA8L3NwYW4+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiAoX2lucHV0Q29uZmlnLm11bHRpcGxlTGFiZWw/LmxhYmVscz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiX2lucHV0Q29uZmlnLm11bHRpcGxlTGFiZWw/LmN1c3RvbUNsYXNzIVwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICdtdWx0aXBsZS1sYWJlbHMtcG9zaXRpb24tb24tZm9jdXMnOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzRm9jdXNJbnB1dCB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9pbnB1dENvbmZpZy5tdWx0aXBsZUlucHV0VmFsdWVzPy5vcHRpb25zPy5sZW5ndGgsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfaW5wdXRDb25maWcuaXNSZXF1aXJlZCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICFfaW5wdXRDb25maWcuaXNEaXNhYmxlZCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICFjb250cm9sPy5kaXNhYmxlZCxcbiAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICBAZm9yIChcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsIG9mIF9pbnB1dENvbmZpZy5tdWx0aXBsZUxhYmVsPy5sYWJlbHM7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFjayAkaW5kZXhcbiAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBsYWJlbCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvbGFiZWw+XG4gICAgfVxuICAgIDxpbnB1dFxuICAgICAgICAjaW5wdXRcbiAgICAgICAgKGlucHV0KT1cImhhbmRsZUlucHV0KCRldmVudClcIlxuICAgICAgICBbcmVzdHJpY3RJbnB1dF09XCJpbnB1dENvbmZpZ1wiXG4gICAgICAgIHByaWNlRm9ybWF0XG4gICAgICAgIFtwcmljZVNlcGFyYXRvcl09XCJcbiAgICAgICAgICAgIGlucHV0Q29uZmlnLnByaWNlU2VwYXJhdG9yIHx8IGlucHV0Q29uZmlnLnRob3VzYW5kU2VwYXJhdG9yXG4gICAgICAgIFwiXG4gICAgICAgIChmb2N1cyk9XCJoYW5kbGVJbnB1dEZvY3VzKCRldmVudClcIlxuICAgICAgICAoYmx1cik9XCJoYW5kbGVJbnB1dEJsdXIoJGV2ZW50KVwiXG4gICAgICAgIChrZXlkb3duKT1cImhhbmRsZUtleURvd24oJGV2ZW50KVwiXG4gICAgICAgIFtyZWFkT25seV09XCJfaW5wdXRDb25maWcucmVhZE9ubHlcIlxuICAgICAgICBbdHlwZV09XCJfaW5wdXRDb25maWcudHlwZSB8IGlucHV0VHlwZTogaXNUb2dnbGVQYXNzd29yZFwiXG4gICAgICAgIGNsYXNzPVwiaW5wdXQtY29udHJvbFxuICAgICAgICAgICAge3sgX2lucHV0Q29uZmlnLnRleHRUcmFuc2Zvcm0gfX1cbiAgICAgICAgICAgIHt7IF9pbnB1dENvbmZpZy50ZXh0QWxpZ24gfX1cbiAgICAgICAgICAgIHt7IF9pbnB1dENvbmZpZy5jdXN0b21DbGFzcyB9fVxuICAgICAgICBcIlxuICAgICAgICBbYXBwTWF4VmFsdWVdPVwiaW5wdXRDb25maWcubWF4XCJcbiAgICAgICAgYXBwQ2Fwc0xvY2tcbiAgICAgICAgKGNhcHNMb2NrU3RhdHVzKT1cImhhbmRsZUNhcHNMb2NrKCRldmVudClcIlxuICAgICAgICBjb21tYW5kVmlzaWJsZVxuICAgICAgICAoY29tbWFuZFZpc2libGUpPVwiaGFuZGxlQ29tbWFuZFZpc2libGUoJGV2ZW50KVwiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJcbiAgICAgICAgICAgIChfaW5wdXRDb25maWcucGxhY2Vob2xkZXJJbnN0ZWFkT2ZMYWJlbCAmJlxuICAgICAgICAgICAgX2lucHV0Q29uZmlnLnBsYWNlaG9sZGVyICYmXG4gICAgICAgICAgICBpc0ZvY3VzSW5wdXRcbiAgICAgICAgICAgICAgICA/IF9pbnB1dENvbmZpZy5wbGFjZWhvbGRlclxuICAgICAgICAgICAgICAgIDogJycpIHx8XG4gICAgICAgICAgICAoX2lucHV0Q29uZmlnLnBsYWNlaG9sZGVyICYmIGlzRm9jdXNJbnB1dFxuICAgICAgICAgICAgICAgID8gX2lucHV0Q29uZmlnLnBsYWNlaG9sZGVyXG4gICAgICAgICAgICAgICAgOiAnJylcbiAgICAgICAgXCJcbiAgICAgICAgW21hc2tdPVwiX2lucHV0Q29uZmlnLm1hc2tcIlxuICAgICAgICBbbmdDbGFzc109XCJcbiAgICAgICAgICAgIGNvbnRyb2xcbiAgICAgICAgICAgICAgICB8IGlucHV0Q2xhc3NcbiAgICAgICAgICAgICAgICAgICAgOiBpc0ZvY3VzSW5wdXRcbiAgICAgICAgICAgICAgICAgICAgOiBjb250cm9sPy50b3VjaGVkIVxuICAgICAgICAgICAgICAgICAgICA6IF9pbnB1dENvbmZpZ1xuICAgICAgICAgICAgICAgICAgICA6IGlucHV0XG4gICAgICAgICAgICAgICAgICAgIDogaXNWaXNpYmxlQ29tbWFuZHNcbiAgICAgICAgICAgICAgICAgICAgOiBjb250cm9sPy52YWx1ZVxuICAgICAgICAgICAgICAgICAgICA6IGNvbnRyb2w/LmludmFsaWRcbiAgICAgICAgICAgICAgICAgICAgOiBjb250cm9sPy50b3VjaGVkXG4gICAgICAgICAgICAgICAgICAgIDogaXNEcm9wZG93blRvZ2dsZXJcbiAgICAgICAgICAgICAgICAgICAgOiBpc0VkaXRJbnB1dFxuICAgICAgICAgICAgICAgICAgICA6IHRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICAgIDogY29udHJvbD8uZGlzYWJsZWRcbiAgICAgICAgXCJcbiAgICAvPlxuXG4gICAgPCEtLSBQbGFjZWhvbGRlciBJY29uIG9uIFJpZ2h0IFNpZGUgLS0+XG4gICAgQGlmIChfaW5wdXRDb25maWcucGxhY2Vob2xkZXJJY29uUmlnaHRTaWRlKSB7XG4gICAgICAgIDxzdmctaWNvblxuICAgICAgICAgICAgY2xhc3M9XCJwbGFjZWhvbGRlci1pY29uLXJpZ2h0LXNpZGUge3tcbiAgICAgICAgICAgICAgICBfaW5wdXRDb25maWcucGxhY2Vob2xkZXJJY29uQ29sb3JcbiAgICAgICAgICAgIH19XCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIlxuICAgICAgICAgICAgICAgIGlzRm9jdXNJbnB1dFxuICAgICAgICAgICAgICAgICAgICB8IGlucHV0UGxhY2Vob2xkZXJJY29uUmlnaHRDbGFzc1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBjb250cm9sXG4gICAgICAgICAgICAgICAgICAgICAgICA6IF9pbnB1dENvbmZpZ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBpc1RvdWNoZWRJbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgOiBjb250cm9sPy5kaXNhYmxlZFxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIFtzcmNdPVwiXG4gICAgICAgICAgICAgICAgX2lucHV0Q29uZmlnLnBsYWNlaG9sZGVySWNvblJpZ2h0U2lkZS50b0xvd2VyQ2FzZSgpXG4gICAgICAgICAgICAgICAgICAgIHwgY2FTdmc6ICdjb21tb24nXG4gICAgICAgICAgICBcIlxuICAgICAgICA+PC9zdmctaWNvbj5cbiAgICB9XG5cbiAgICA8IS0tIElucHV0IEVycm9yIE1lc3NhZ2UgLS0+XG4gICAgQGlmIChcbiAgICAgICAgISghY29udHJvbD8udmFsdWUgJiYgaXNGb2N1c0lucHV0KSAmJlxuICAgICAgICAoaXNUb3VjaGVkSW5wdXQgfHwgY29udHJvbD8udG91Y2hlZCB8fCBjb250cm9sPy52YWx1ZSkgJiZcbiAgICAgICAgY29udHJvbD8uaW52YWxpZCAmJlxuICAgICAgICAhX2lucHV0Q29uZmlnLmlzSW52YWxpZFNlYXJjaEluRHJvcGRvd24gJiZcbiAgICAgICAgIV9pbnB1dENvbmZpZy5pc0Rpc2FibGVkICYmXG4gICAgICAgICFjb250cm9sPy5kaXNhYmxlZFxuICAgICkge1xuICAgICAgICBAaWYgKFxuICAgICAgICAgICAgIShfaW5wdXRDb25maWcuaGlkZUVycm9yTWVzc2FnZSB8fCBfaW5wdXRDb25maWcuZXJyb3JJbnNpZGVJbnB1dClcbiAgICAgICAgKSB7XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImlucHV0LWVycm9yIHt7IF9pbnB1dENvbmZpZy5jdXN0b21DbGFzcyB9fVwiPlxuICAgICAgICAgICAgICAgIHt7IGNvbnRyb2w/LmVycm9ycyB8IGlucHV0RXJyb3I6IF9pbnB1dENvbmZpZy5uYW1lIH19XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIH1cblxuICAgICAgICA8IS0tIEVycm9yIE1lc3NhZ2UgSW5zaWRlIElucHV0IC0tPlxuICAgICAgICBAaWYgKF9pbnB1dENvbmZpZy5lcnJvckluc2lkZUlucHV0KSB7XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImVycm9yLWluc2lkZS1pbnB1dCB7eyBfaW5wdXRDb25maWcuY3VzdG9tQ2xhc3MgfX1cIj5cbiAgICAgICAgICAgICAgICB7eyBjb250cm9sPy5lcnJvcnMgfCBpbnB1dEVycm9yOiBfaW5wdXRDb25maWcubmFtZSB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGlmIChfaW5wdXRDb25maWcuZml4ZWRQbGFjaG9sZGVyICYmIGlucHV0LnZhbHVlKSB7XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiaW5wdXQtZml4ZWQtcGxhY2Vob2Rlci1sYWJlbFwiPlxuICAgICAgICAgICAge3sgX2lucHV0Q29uZmlnLmZpeGVkUGxhY2hvbGRlciB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgfVxuPC9kaXY+XG4iXX0=
|
|
337
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdGVzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jYS1pbnB1dC10ZXN0L2lucHV0LXRlc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtaW5wdXQtdGVzdC9pbnB1dC10ZXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHSCxTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFFTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLElBQUksRUFFSixTQUFTLEVBQ1QsaUJBQWlCLEdBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFJSCxVQUFVLEdBQ2IsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBSTFDLE9BQU8sRUFBb0IsY0FBYyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRzNELFFBQVE7QUFDUixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQzdELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXRFLFFBQVE7QUFDUixPQUFPLEVBQ0gsY0FBYyxFQUNkLHVCQUF1QixFQUN2QiwyQkFBMkIsRUFDM0IsY0FBYyxFQUNkLGtDQUFrQyxFQUNsQyw2QkFBNkIsRUFDN0IsYUFBYSxFQUNiLGNBQWMs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c0JBQXRCLEtBQUs7Z0JBQ08sV0FBVztzQkFBdkIsS0FBSztnQkFJRyxVQUFVO3NCQUFsQixLQUFLO2dCQUdHLDJCQUEyQjtzQkFEbkMsTUFBTTt1QkFBQyw2QkFBNkI7Z0JBSVgsY0FBYztzQkFBdkMsTUFBTTt1QkFBQyxnQkFBZ0I7Z0JBR0gsU0FBUztzQkFBN0IsTUFBTTt1QkFBQyxXQUFXO2dCQUVHLGVBQWU7c0JBQXBDLE1BQU07dUJBQUMsWUFBWTtnQkFFRixXQUFXO3NCQUE1QixNQUFNO3VCQUFDLFFBQVE7Z0JBRVEsWUFBWTtzQkFBbkMsTUFBTTt1QkFBQyxjQUFjO2dCQUVMLGVBQWU7c0JBQS9CLE1BQU07dUJBQUMsT0FBTztnQkFJYSxxQkFBcUI7c0JBQWhELE1BQU07dUJBQUMsa0JBQWtCO2dCQUVPLDBCQUEwQjtzQkFBMUQsTUFBTTt1QkFBQyx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPcHRpb25hbCxcbiAgICBPdXRwdXQsXG4gICAgU2VsZixcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1xuICAgIEFic3RyYWN0Q29udHJvbCxcbiAgICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgICBOZ0NvbnRyb2wsXG4gICAgVmFsaWRhdG9ycyxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTmdiTW9kdWxlIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEFuZ3VsYXJTdmdJY29uTW9kdWxlIH0gZnJvbSAnYW5ndWxhci1zdmctaWNvbic7XG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcblxuLy8gbW9kZWxzXG5pbXBvcnQgeyBJQ2FJbnB1dCB9IGZyb20gJy4vY29uZmlnJztcbmltcG9ydCB7IElucHV0Q2hhbmdlVmFsdWUsIElucHV0U3ZnUm91dGVzIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBDb21tYW5kc0V2ZW50LCBMYWJlbENvbG9yIH0gZnJvbSAnLi9tb2RlbHMnO1xuXG4vLyBlbXVtc1xuaW1wb3J0IHsgSW5wdXRDb21tYW5kc1R5cGUsIElucHV0U3RyaW5nRW51bSB9IGZyb20gJy4vZW51bXMnO1xuaW1wb3J0IHsgRHJvcGRvd25UZW1wbGF0ZVR5cGVFbnVtIH0gZnJvbSAnLi4vY2EtaW5wdXQtZHJvcGRvd24vZW51bXMnO1xuXG4vLyBwaXBlc1xuaW1wb3J0IHtcbiAgICBJbnB1dENsYXNzUGlwZSxcbiAgICBJbnB1dENvbnRhaW5lckNsYXNzUGlwZSxcbiAgICBJbnB1dERyb3Bkb3duQXJyb3dDbGFzc1BpcGUsXG4gICAgSW5wdXRFcnJvclBpcGUsXG4gICAgSW5wdXRQbGFjZWhvbGRlckljb25SaWdodENsYXNzUGlwZSxcbiAgICBJbnB1dFBsYWNlaG9sZGVyVGV4dENsYXNzUGlwZSxcbiAgICBJbnB1dFR5cGVQaXBlLFxuICAgIExhYmVsQ2xhc3NQaXBlLFxuICAgIFNob3dDbGVhclBpcGUsXG4gICAgU2hvd0Ryb3Bkb3duQXJyb3dQaXBlLFxuICAgIFNob3dQbGFjZWhvbGRlclRleHRQaXBlLFxuICAgIFNob3dWYWxpZENoZWNrUGlwZSxcbn0gZnJvbSAnLi9waXBlcyc7XG5pbXBvcnQge1xuICAgIENhU3ZnUGlwZSxcbiAgICBMb2FkU3RhdHVzQ29sb3JQaXBlLFxuICAgIFRob3VzYW5kU2VwYXJhdG9yUGlwZSxcbn0gZnJvbSAnLi4vLi4vcGlwZXMnO1xuXG4vLyBtYXNrXG5pbXBvcnQgeyBOZ3hNYXNrTW9kdWxlIH0gZnJvbSAnbmd4LW1hc2snO1xuaW1wb3J0IHsgTmd4TWFza1NlcnZpY2UgfSBmcm9tICduZ3gtbWFzayc7XG5cbi8vIGNvbXBvbmVudHNcbmltcG9ydCB7IENhSW5wdXRQYXNzd29yZENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jYS1pbnB1dC1wYXNzd29yZC9jYS1pbnB1dC1wYXNzd29yZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FJbnB1dFBsYWNlaG9sZGVySWNvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jYS1pbnB1dC1wbGFjZWhvbGRlci1pY29uL2NhLWlucHV0LXBsYWNlaG9sZGVyLWljb24uY29tcG9uZW50JztcbmltcG9ydCB7IENhSW5wdXRDbGVhckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jYS1pbnB1dC1jbGVhci9jYS1pbnB1dC1jbGVhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FBcHBUb29sdGlwVjJDb21wb25lbnQgfSBmcm9tICcuLi9jYS1hcHAtdG9vbHRpcC12Mi9jYS1hcHAtdG9vbHRpcC12Mi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FJbnB1dENvbW1hbmRzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NhLWlucHV0LWNvbW1hbmRzL2NhLWlucHV0LWNvbW1hbmRzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYVNwaW5uZXJDb21wb25lbnQgfSBmcm9tICcuLi9jYS1zcGlubmVyL2NhLXNwaW5uZXIuY29tcG9uZW50JztcblxuLy8gZGlyZWN0aXZlc1xuaW1wb3J0IHsgQ2Fwc0xvY2tEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgTWF4VmFsdWVEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgUmVzdHJpY3RJbnB1dERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBQcmljZUZvcm1hdERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBDb21tYW5kVmlzaWJsZURpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9jb21tYW5kLXZpc2libGUuZGlyZWN0aXZlJztcblxuLy8gY2xhc3NcbmltcG9ydCB7IEV2ZW50SW5wdXRNYW5hZ2VyIH0gZnJvbSAnLi9iYXNlLWNsYXNzZXMvY2EtaW5wdXQtZXZlbnQtbWFuYWdlcic7XG5cbi8vIG1peGluc1xuaW1wb3J0IHsgSW5wdXRDb21tYW5kTWl4aW4gfSBmcm9tICcuL21peGlucy9pbnB1dC1jb21tYW5kLm1peGluJztcbmltcG9ydCB7IElucHV0SGVscGVyTWl4aW4gfSBmcm9tICcuL21peGlucy9pbnB1dC1oZWxwZXIubWl4aW4nO1xuaW1wb3J0IHsgT3B0aW9uTW9kZWwgfSBmcm9tICcuLi9jYS1pbnB1dC1kcm9wZG93bi9tb2RlbHMnO1xuXG5jbGFzcyBJbnB1dEJhc2Uge1xuICAgIHB1YmxpYyBpbnB1dEVsZW1lbnQhOiBFbGVtZW50UmVmO1xuICAgIHB1YmxpYyBfaW5wdXRDb25maWchOiBJQ2FJbnB1dDtcbiAgICBwdWJsaWMgaXNWaXNpYmxlQ29tbWFuZHM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwdWJsaWMgbWFza0FwcGxpZXIhOiBOZ3hNYXNrU2VydmljZTtcbiAgICBwdWJsaWMgdGhvdXNhbmRTZXBhcmF0b3JQaXBlITogVGhvdXNhbmRTZXBhcmF0b3JQaXBlO1xuICAgIHB1YmxpYyBpc0ZvY3VzSW5wdXQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwdWJsaWMgaXNFZGl0SW5wdXQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwdWJsaWMgaXNEcm9wZG93blRvZ2dsZXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwdWJsaWMgaXNUb3VjaGVkSW5wdXQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwdWJsaWMgc2V0Q29tbWFuZEV2ZW50ITogRXZlbnRJbnB1dE1hbmFnZXI8Q29tbWFuZHNFdmVudD47XG5cbiAgICBwdWJsaWMgaGFuZGxlVG9nZ2xlRHJvcGRvd25PcHRpb25zITogRXZlbnRFbWl0dGVyPHZvaWQ+O1xuXG4gICAgcHVibGljIG9uVG91Y2hlZCA9ICgpID0+IHt9O1xuICAgIHB1YmxpYyBvbkNoYW5nZShfOiBhbnkpOiB2b2lkIHt9XG4gICAgcHVibGljIGhhbmRsZUNoYW5nZUlucHV0QW5kVXBkYXRlQ29udHJvbChfOiBJbnB1dENoYW5nZVZhbHVlKTogdm9pZCB7fVxufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2NhLWlucHV0LXRlc3QnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICAvLyBNb2R1bGVzXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgTmdiTW9kdWxlLFxuICAgICAgICBBbmd1bGFyU3ZnSWNvbk1vZHVsZSxcbiAgICAgICAgTmd4TWFza01vZHVsZSxcblxuICAgICAgICAvLyBQaXBlc1xuICAgICAgICBJbnB1dEVycm9yUGlwZSxcbiAgICAgICAgSW5wdXRDb250YWluZXJDbGFzc1BpcGUsXG4gICAgICAgIElucHV0Q2xhc3NQaXBlLFxuICAgICAgICBJbnB1dFBsYWNlaG9sZGVyVGV4dENsYXNzUGlwZSxcbiAgICAgICAgU2hvd1BsYWNlaG9sZGVyVGV4dFBpcGUsXG4gICAgICAgIExhYmVsQ2xhc3NQaXBlLFxuICAgICAgICBDYVN2Z1BpcGUsXG4gICAgICAgIExvYWRTdGF0dXNDb2xvclBpcGUsXG4gICAgICAgIElucHV0UGxhY2Vob2xkZXJJY29uUmlnaHRDbGFzc1BpcGUsXG4gICAgICAgIE1heFZhbHVlRGlyZWN0aXZlLFxuICAgICAgICBJbnB1dFR5cGVQaXBlLFxuICAgICAgICBTaG93VmFsaWRDaGVja1BpcGUsXG4gICAgICAgIFNob3dEcm9wZG93bkFycm93UGlwZSxcbiAgICAgICAgSW5wdXREcm9wZG93bkFycm93Q2xhc3NQaXBlLFxuXG4gICAgICAgIC8vIERpcmVjdGl2ZXNcbiAgICAgICAgUmVzdHJpY3RJbnB1dERpcmVjdGl2ZSxcbiAgICAgICAgUHJpY2VGb3JtYXREaXJlY3RpdmUsXG4gICAgICAgIFNob3dDbGVhclBpcGUsXG4gICAgICAgIENhcHNMb2NrRGlyZWN0aXZlLFxuICAgICAgICBDb21tYW5kVmlzaWJsZURpcmVjdGl2ZSxcblxuICAgICAgICAvLyBDb21wb25lbnRzXG4gICAgICAgIENhSW5wdXRDbGVhckNvbXBvbmVudCxcbiAgICAgICAgQ2FBcHBUb29sdGlwVjJDb21wb25lbnQsXG4gICAgICAgIENhSW5wdXRQbGFjZWhvbGRlckljb25Db21wb25lbnQsXG4gICAgICAgIENhSW5wdXRQYXNzd29yZENvbXBvbmVudCxcbiAgICAgICAgQ2FJbnB1dENvbW1hbmRzQ29tcG9uZW50LFxuICAgICAgICBDYVNwaW5uZXJDb21wb25lbnQsXG4gICAgXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtdGVzdC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL2lucHV0LXRlc3QuY29tcG9uZW50LnNjc3MnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIElucHV0VGVzdENvbXBvbmVudFxuICAgIGV4dGVuZHMgSW5wdXRDb21tYW5kTWl4aW4oSW5wdXRIZWxwZXJNaXhpbihJbnB1dEJhc2UpKVxuICAgIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveVxue1xuICAgIHB1YmxpYyBpbnB1dFZhbHVlOiBJbnB1dENoYW5nZVZhbHVlID0gJyc7XG4gICAgcHVibGljIG92ZXJyaWRlIF9pbnB1dENvbmZpZyE6IElDYUlucHV0O1xuICAgIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgcHVibGljIGlucHV0U3ZnUm91dGVzID0gSW5wdXRTdmdSb3V0ZXM7XG4gICAgQElucHV0KCkgZGF0ZVRpbWVQb3BvdmVyITogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIEBWaWV3Q2hpbGQoJ2lucHV0JywgeyBzdGF0aWM6IHRydWUgfSkgb3ZlcnJpZGUgaW5wdXRFbGVtZW50ITogRWxlbWVudFJlZjtcbiAgICBAVmlld0NoaWxkKENhSW5wdXRQbGFjZWhvbGRlckljb25Db21wb25lbnQpXG4gICAgY2FJbnB1dFBsYWNlaG9sZGVySWNvbkNvbXBvbmVudCE6IENhSW5wdXRQbGFjZWhvbGRlckljb25Db21wb25lbnQ7XG5cbiAgICBASW5wdXQoKSBwYXJlbnRDb250cm9sITogQWJzdHJhY3RDb250cm9sPGFueSwgYW55PiB8IG51bGw7XG4gICAgQElucHV0KCkgc2VsZWN0ZWREcm9wZG93bkxhYmVsQ29sb3IhOiBMYWJlbENvbG9yIHwgbnVsbDtcbiAgICBASW5wdXQoKSB0ZW1wbGF0ZSE6IHN0cmluZztcbiAgICBASW5wdXQoKSBpbmNvcnJlY3RWYWx1ZSE6IGJvb2xlYW47XG4gICAgQElucHV0KCkgc2V0IGlucHV0Q29uZmlnKGNvbmZpZzogSUNhSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faW5wdXRDb25maWcgPSBjb25maWc7XG4gICAgfVxuXG4gICAgQElucHV0KCkgYWN0aXZlSXRlbSE6IE9wdGlvbk1vZGVsIHwgbnVsbDtcblxuICAgIEBPdXRwdXQoJ2hhbmRsZVRvZ2dsZURyb3Bkb3duT3B0aW9ucycpXG4gICAgb3ZlcnJpZGUgaGFuZGxlVG9nZ2xlRHJvcGRvd25PcHRpb25zOiBFdmVudEVtaXR0ZXI8dm9pZD4gPVxuICAgICAgICBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICBAT3V0cHV0KCdpbmNvcnJlY3RFdmVudCcpIGluY29ycmVjdElucHV0OiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPVxuICAgICAgICBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICBAT3V0cHV0KCdibHVySW5wdXQnKSBibHVySW5wdXQ6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9XG4gICAgICAgIG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgICBAT3V0cHV0KCdmb2N1c0lucHV0JykgZm9jdXNJbnB1dEV2ZW50OiBFdmVudEVtaXR0ZXI8Rm9jdXNFdmVudD4gPVxuICAgICAgICBuZXcgRXZlbnRFbWl0dGVyPEZvY3VzRXZlbnQ+KCk7XG4gICAgQE91dHB1dCgnY2hhbmdlJykgY2hhbmdlSW5wdXQ6IEV2ZW50RW1pdHRlcjxJbnB1dENoYW5nZVZhbHVlPiA9XG4gICAgICAgIG5ldyBFdmVudEVtaXR0ZXI8SW5wdXRDaGFuZ2VWYWx1ZT4oKTtcbiAgICBAT3V0cHV0KCdjb21tYW5kRXZlbnQnKSBjb21tYW5kRXZlbnQ6IEV2ZW50RW1pdHRlcjxDb21tYW5kc0V2ZW50PiA9XG4gICAgICAgIG5ldyBFdmVudEVtaXR0ZXI8Q29tbWFuZHNFdmVudD4oKTtcbiAgICBAT3V0cHV0KCdjbGVhcicpIGNsZWFySW5wdXRFdmVudDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID1cbiAgICAgICAgbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgLy8gRHJvcGRvd25cbiAgICBAT3V0cHV0KCdzaG93SGlkZURyb3Bkb3duJykgc2hvd0hpZGVEcm9wZG93bkV2ZW50OiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPVxuICAgICAgICBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gICAgQE91dHB1dCgnZHJvcERvd25LZXlOYXZpZ2F0aW9uJykgZHJvcERvd25LZXlOYXZpZ2F0aW9uRXZlbnQ6IEV2ZW50RW1pdHRlcjx7XG4gICAgICAgIGtleUNvZGU6IG51bWJlcjtcbiAgICAgICAgZGF0YTogSUNhSW5wdXQgfCBudWxsO1xuICAgIH0+ID0gbmV3IEV2ZW50RW1pdHRlcjx7XG4gICAgICAgIGtleUNvZGU6IG51bWJlcjtcbiAgICAgICAgZGF0YTogSUNhSW5wdXQgfCBudWxsO1xuICAgIH0+KCk7XG5cbiAgICAvLyBldmVudHNcbiAgICBwdWJsaWMgb3ZlcnJpZGUgc2V0Q29tbWFuZEV2ZW50ID0gbmV3IEV2ZW50SW5wdXRNYW5hZ2VyPENvbW1hbmRzRXZlbnQ+KFxuICAgICAgICBudWxsLFxuICAgICAgICB0aGlzLmNvbW1hbmRFdmVudFxuICAgICk7XG5cbiAgICBwdWJsaWMgaXNDYXBzTG9ja09uID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgaW5wdXRDb21tYW5kc1R5cGUgPSBJbnB1dENvbW1hbmRzVHlwZTtcbiAgICBwdWJsaWMgaW5wdXRTdHJpbmdFbnVtID0gSW5wdXRTdHJpbmdFbnVtO1xuICAgIHB1YmxpYyBkcm9wZG93blRlbXBsYXRlVHlwZUVudW0gPSBEcm9wZG93blRlbXBsYXRlVHlwZUVudW07XG5cbiAgICAvLyBQYXNzd29yZFxuICAgIHB1YmxpYyBpc1RvZ2dsZVBhc3N3b3JkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgZ2V0IGlucHV0Q29uZmlnKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faW5wdXRDb25maWc7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgcHVibGljIG5nQ29udHJvbDogTmdDb250cm9sLFxuICAgICAgICBwdWJsaWMgY2hkZXQ6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwdWJsaWMgb3ZlcnJpZGUgbWFza0FwcGxpZXI6IE5neE1hc2tTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgb3ZlcnJpZGUgdGhvdXNhbmRTZXBhcmF0b3JQaXBlOiBUaG91c2FuZFNlcGFyYXRvclBpcGVcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgaWYgKHRoaXMubmdDb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZUNoYW5nZUlucHV0QW5kVXBkYXRlQ29udHJvbCh0aGlzLmlucHV0VmFsdWUpO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5faW5wdXRDb25maWcuYXV0b0ZvY3VzKVxuICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMucGFyZW50Q29udHJvbCkge1xuICAgICAgICAgICAgICAgIHRoaXMucGFyZW50Q29udHJvbC5zdGF0dXNDaGFuZ2VzXG4gICAgICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wYXJlbnRDb250cm9sPy5oYXNWYWxpZGF0b3IoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRyb2w/LmFkZFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250cm9sPy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbD8ucmVtb3ZlVmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRyb2w/LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucGFyZW50Q29udHJvbD8uZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250cm9sPy5kaXNhYmxlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbD8udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbWl0RXZlbnQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbD8uZW5hYmxlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbD8udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbWl0RXZlbnQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0sIDApO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnRyb2w/LnNldFZhbGlkYXRvcnModGhpcy5wYXJlbnRDb250cm9sLnZhbGlkYXRvcik7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMucGFyZW50Q29udHJvbD8uaGFzVmFsaWRhdG9yKFZhbGlkYXRvcnMucmVxdWlyZWQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbD8uYWRkVmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250cm9sPy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMucGFyZW50Q29udHJvbD8uZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250cm9sPy5kaXNhYmxlKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbD8udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbWl0RXZlbnQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbD8uZW5hYmxlKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbD8udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbWl0RXZlbnQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0IGNvbnRyb2woKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm5nQ29udHJvbD8uY29udHJvbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICAgIH1cblxuICAgIHB1YmxpYyB3cml0ZVZhbHVlKG9iajogSW5wdXRDaGFuZ2VWYWx1ZSk6IHZvaWQge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMudHJhbnNmb3JtVmFsdWUodGhpcy5faW5wdXRDb25maWcsIG9iaik7IC8vIOKchSBBcHBseSBtYXNrXG5cbiAgICAgICAgdGhpcy5pbnB1dFZhbHVlID0gdmFsdWU7XG5cbiAgICAgICAgaWYgKHRoaXMuX2lucHV0Q29uZmlnLnByaWNlUGFyc2VGb3JtYXQgJiYgdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2UodmFsdWUucmVwbGFjZSgvW15cXGRdL2csICcnKSk7IC8vIE5vdGlmeSBBbmd1bGFyIGZvcm0gYWJvdXQgdGhlIGNoYW5nZVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7IC8vIE5vdGlmeSBBbmd1bGFyIGZvcm0gYWJvdXQgdGhlIGNoYW5nZVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHZhbHVlICYmIHRoaXMuX2lucHV0Q29uZmlnLnVwZGF0ZUFzVG91Y2hlZE9uRWRpdCkgdGhpcy5vblRvdWNoZWQoKTsgLy8gTWFyayBhcyB0b3VjaGVkXG5cbiAgICAgICAgaWYgKCF0aGlzLl9pbnB1dENvbmZpZy5pc0Ryb3Bkb3duICYmICF0aGlzLl9pbnB1dENvbmZpZy5pc0FkZHJlc3MpXG4gICAgICAgICAgICB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LnZhbHVlID0gdmFsdWU7XG5cbiAgICAgICAgdGhpcy5jaGRldC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgaGFuZGxlSW5wdXQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZTtcbiAgICAgICAgaWYgKHRoaXMuX2lucHV0Q29uZmlnLnByaWNlUGFyc2VGb3JtYXQgJiYgdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2UodmFsdWUucmVwbGFjZSgvW15cXGRdL2csICcnKSk7IC8vIE5vdGlmeSBBbmd1bGFyIGZvcm0gYWJvdXQgdGhlIGNoYW5nZVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7IC8vIE5vdGlmeSBBbmd1bGFyIGZvcm0gYWJvdXQgdGhlIGNoYW5nZVxuICAgICAgICB9XG4gICAgICAgIGlmICh2YWx1ZSkgdGhpcy5vblRvdWNoZWQoKTsgLy8gTWFyayBhcyB0b3VjaGVkXG5cbiAgICAgICAgaWYgKHRoaXMuaW5wdXRWYWx1ZSA9PT0gdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuY29udHJvbD8ubWFya0FzVW50b3VjaGVkKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgY2xlYXJJbnB1dChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMuaGFuZGxlQ2hhbmdlSW5wdXRBbmRVcGRhdGVDb250cm9sKCcnKTtcbiAgICAgICAgdGhpcy5jbGVhcklucHV0RXZlbnQuZW1pdCh0cnVlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgaGFuZGxlQ2hhbmdlSW5wdXRBbmRVcGRhdGVDb250cm9sKHZhbHVlOiBJbnB1dENoYW5nZVZhbHVlKSB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xuICAgICAgICBpZiAoIXRoaXMuX2lucHV0Q29uZmlnLmlzRHJvcGRvd24gJiYgIXRoaXMuX2lucHV0Q29uZmlnLmlzQWRkcmVzcykge1xuICAgICAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC52YWx1ZSA9IHZhbHVlO1xuICAgICAgICAgICAgLy8gVHJpZ2dlciBhbGwgaW5wdXRzIGRpcmVjdGl2ZXMgdGhhdCBsaXN0ZW4gZm9yIGlucHV0IEV2ZW50XG4gICAgICAgICAgICBjb25zdCBldmVudCA9IG5ldyBFdmVudCgnaW5wdXQnLCB7IGJ1YmJsZXM6IHRydWUgfSk7XG4gICAgICAgICAgICB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmRpc3BhdGNoRXZlbnQoZXZlbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGhhbmRsZUlucHV0Rm9jdXMoZXZlbnQ6IEZvY3VzRXZlbnQpIHtcbiAgICAgICAgdGhpcy5mb2N1c0lucHV0RXZlbnQuZW1pdChldmVudCk7XG4gICAgICAgIHRoaXMuaXNGb2N1c0lucHV0ID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaGFuZGxlSW5wdXRCbHVyKGV2ZW50OiBGb2N1c0V2ZW50KSB7XG4gICAgICAgIHRoaXMuYmx1cklucHV0LmVtaXQodHJ1ZSk7XG4gICAgICAgIHRoaXMuaXNGb2N1c0lucHV0ID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHVibGljIG9uUG9wb3ZlclNob3duKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2lucHV0Q29uZmlnLmRyb3Bkb3duTGFiZWwpIHtcbiAgICAgICAgICAgIHRoaXMuaXNGb2N1c0lucHV0ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvblBvcG92ZXJIaWRkZW4oKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5faW5wdXRDb25maWcuZHJvcGRvd25MYWJlbCkge1xuICAgICAgICAgICAgdGhpcy5pc0ZvY3VzSW5wdXQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvblRvZ2dsZVBhc3N3b3JkKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLmlzVG9nZ2xlUGFzc3dvcmQgPSAhdGhpcy5pc1RvZ2dsZVBhc3N3b3JkO1xuICAgIH1cblxuICAgIHB1YmxpYyBoYW5kbGVDYXBzTG9jayhzdGF0dXM6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5pc0NhcHNMb2NrT24gPSBzdGF0dXM7XG4gICAgfVxuXG4gICAgcHVibGljIGhhbmRsZUNvbW1hbmRWaXNpYmxlKHN0YXR1czogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmlzVmlzaWJsZUNvbW1hbmRzID0gc3RhdHVzO1xuICAgIH1cblxuICAgIHB1YmxpYyBpZGVudGlmeShpbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIGluZGV4O1xuICAgIH1cblxuICAgIHB1YmxpYyBoYW5kbGVLZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIHRoaXMuZHJvcERvd25LZXlOYXZpZ2F0aW9uRXZlbnQuZW1pdCh7XG4gICAgICAgICAgICBrZXlDb2RlOiBldmVudC5rZXlDb2RlLFxuICAgICAgICAgICAgZGF0YTogdGhpcy5pbnB1dENvbmZpZyxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgfVxufVxuIiwiPGRpdlxuICAgIGNsYXNzPVwiaW5wdXQtY3VzdG9tLWdyb3VwIHt7IF9pbnB1dENvbmZpZy5jdXN0b21DbGFzcyB9fVwiXG4gICAgW25nQ2xhc3NdPVwiXG4gICAgICAgIGNvbnRyb2xcbiAgICAgICAgICAgIHwgaW5wdXRDb250YWluZXJDbGFzc1xuICAgICAgICAgICAgICAgIDogaXNGb2N1c0lucHV0XG4gICAgICAgICAgICAgICAgOiBjb250cm9sPy50b3VjaGVkIVxuICAgICAgICAgICAgICAgIDogX2lucHV0Q29uZmlnXG4gICAgICAgICAgICAgICAgOiBjb250cm9sPy52YWx1ZVxuICAgICAgICAgICAgICAgIDogY29udHJvbD8uZGlzYWJsZWRcbiAgICBcIlxuICAgIG5nYlRvb2x0aXBcbiAgICBbbWFpbkNhVG9vbHRpcF09XCJjb250cm9sPy5lcnJvcnMgfCBpbnB1dEVycm9yOiBfaW5wdXRDb25maWcubmFtZVwiXG4gICAgW3Rvb2x0aXBCYWNrZ3JvdW5kXT1cIicjREYzQzNDJ1wiXG4gICAgW2Rpc2FibGVUb29sdGlwXT1cIiFfaW5wdXRDb25maWcucmVxdWlyZWRMYWJlbCB8fCAhIWNvbnRyb2w/LnZhbGlkXCJcbiAgICBwb3NpdGlvbj1cImJvdHRvbVwiXG4gICAgdHJpZ2dlcnM9XCJob3ZlclwiXG4+XG4gICAgPCEtLSBJbnB1dCBMb2FkaW5nIHNwaW5uZXIgLS0+XG4gICAgQGlmIChcbiAgICAgICAgX2lucHV0Q29uZmlnPy5sb2FkaW5nU3Bpbm5lcj8uaXNMb2FkaW5nICYmXG4gICAgICAgICFfaW5wdXRDb25maWcuaXNEaXNhYmxlZCAmJlxuICAgICAgICAhY29udHJvbD8uZGlzYWJsZWRcbiAgICApIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWxvYWRpbmctc3Bpbm5lclwiPlxuICAgICAgICAgICAgPGFwcC1jYS1zcGlubmVyXG4gICAgICAgICAgICAgICAgW3NpemVdPVwiX2lucHV0Q29uZmlnLmxvYWRpbmdTcGlubmVyPy5zaXplXCJcbiAgICAgICAgICAgICAgICBbY29sb3JdPVwiX2lucHV0Q29uZmlnLmxvYWRpbmdTcGlubmVyPy5jb2xvclwiXG4gICAgICAgICAgICA+PC9hcHAtY2Etc3Bpbm5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgfVxuXG4gICAgPCEtLSBJbnB1dCBDb21tYW5kcyAtLT5cbiAgICBAaWYgKF9pbnB1dENvbmZpZy5jb21tYW5kcz8uYWN0aXZlICYmIGlzVmlzaWJsZUNvbW1hbmRzKSB7XG4gICAgICAgIDxhcHAtY2EtaW5wdXQtY29tbWFuZHNcbiAgICAgICAgICAgIFtpbnB1dENvbmZpZ109XCJfaW5wdXRDb25maWdcIlxuICAgICAgICAgICAgW2lzRm9jdXNJbnB1dF09XCJpc0ZvY3VzSW5wdXRcIlxuICAgICAgICAgICAgW2lzVmlzaWJsZUNvbW1hbmRzXT1cImlzVmlzaWJsZUNvbW1hbmRzXCJcbiAgICAgICAgICAgIChvbkNvbW1hbmRzQ2xpY2spPVwib25Db21tYW5kcygkZXZlbnQpXCJcbiAgICAgICAgPlxuICAgICAgICA8L2FwcC1jYS1pbnB1dC1jb21tYW5kcz5cbiAgICB9XG4gICAgPCEtLSBJbnB1dCBWYWxpZCBDaGVjayAtLT5cbiAgICBAaWYgKGNvbnRyb2wgfCBzaG93VmFsaWRDaGVjazogaXNGb2N1c0lucHV0IDogX2lucHV0Q29uZmlnIDogY29udHJvbCkge1xuICAgICAgICA8c3ZnLWljb25cbiAgICAgICAgICAgIGNsYXNzPVwiaW5wdXQtcmVxdWlyZWQtY2hlY2sge3sgX2lucHV0Q29uZmlnLmN1c3RvbUNsYXNzIH19XCJcbiAgICAgICAgICAgIFtzcmNdPVwiaW5wdXRTdmdSb3V0ZXMuY29uZmlybVN2Z1wiXG4gICAgICAgID48L3N2Zy1pY29uPlxuICAgIH1cbiAgICA8IS0tIElucHV0IFBhc3N3b3JkIENhcHMgTG9jayBBbmQgRXllIC0tPlxuICAgIEBpZiAoX2lucHV0Q29uZmlnLnR5cGUgPT09ICdwYXNzd29yZCcpIHtcbiAgICAgICAgPGFwcC1jYS1pbnB1dC1wYXNzd29yZFxuICAgICAgICAgICAgW2lucHV0Q29uZmlnXT1cIl9pbnB1dENvbmZpZ1wiXG4gICAgICAgICAgICBbZ2V0U3VwZXJDb250cm9sXT1cImNvbnRyb2xcIlxuICAgICAgICAgICAgW2lzRm9jdXNJbnB1dF09XCJpc0ZvY3VzSW5wdXRcIlxuICAgICAgICAgICAgW2lzVG91Y2hlZElucHV0XT1cImlzVG91Y2hlZElucHV0XCJcbiAgICAgICAgICAgIFtpc0NhcHNMb2NrT25dPVwiaXNDYXBzTG9ja09uXCJcbiAgICAgICAgICAgIFtpc1RvZ2dsZVBhc3N3b3JkXT1cImlzVG9nZ2xlUGFzc3dvcmRcIlxuICAgICAgICAgICAgKG9uVG9nZ2xlUGFzc3dvcmRDbGljayk9XCJvblRvZ2dsZVBhc3N3b3JkKCRldmVudClcIlxuICAgICAgICA+XG4gICAgICAgIDwvYXBwLWNhLWlucHV0LXBhc3N3b3JkPlxuICAgIH1cbiAgICA8IS0tIElucHV0IENsZWFyIC0tPlxuICAgIEBpZiAoX2lucHV0Q29uZmlnIHwgc2hvd0NsZWFyOiBjb250cm9sPy5kaXNhYmxlZCkge1xuICAgICAgICA8YXBwLWNhLWlucHV0LWNsZWFyXG4gICAgICAgICAgICBbaW5wdXRDb25maWddPVwiX2lucHV0Q29uZmlnXCJcbiAgICAgICAgICAgIFtnZXRTdXBlckNvbnRyb2xdPVwiY29udHJvbFwiXG4gICAgICAgICAgICBbaXNGb2N1c0lucHV0XT1cImlzRm9jdXNJbnB1dFwiXG4gICAgICAgICAgICBbaW5jb3JyZWN0VmFsdWVdPVwiaW5jb3JyZWN0VmFsdWVcIlxuICAgICAgICAgICAgW3NlbGVjdGVkRHJvcGRvd25MYWJlbENvbG9yXT1cInNlbGVjdGVkRHJvcGRvd25MYWJlbENvbG9yXCJcbiAgICAgICAgICAgIFt0ZW1wbGF0ZV09XCJ0ZW1wbGF0ZVwiXG4gICAgICAgICAgICAoY2xlYXJJbnB1dENsaWNrKT1cImNsZWFySW5wdXQoJGV2ZW50KVwiXG4gICAgICAgID5cbiAgICAgICAgPC9hcHAtY2EtaW5wdXQtY2xlYXI+XG4gICAgfVxuXG4gICAgPCEtLSBJbnB1dCBEcm9wZG93biBBcnJvdyAtLT5cbiAgICBAaWYgKF9pbnB1dENvbmZpZyB8IHNob3dEcm9wZG93bkFycm93OiBjb250cm9sPy5kaXNhYmxlZCkge1xuICAgICAgICA8c3ZnLWljb25cbiAgICAgICAgICAgIGNsYXNzPVwiaW5wdXQtZHJvcGRvd24tYXJyb3cge3sgX2lucHV0Q29uZmlnLmN1c3RvbUNsYXNzIH19XCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIlxuICAgICAgICAgICAgICAgIGNvbnRyb2xcbiAgICAgICAgICAgICAgICAgICAgfCBpbnB1dERyb3Bkb3duQXJyb3dDbGFzc1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBpc0ZvY3VzSW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIDogX2lucHV0Q29uZmlnXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGlzVG91Y2hlZElucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnRyb2w/LnZhbHVlXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgW3NyY109XCJpbnB1dFN2Z1JvdXRlcy5pbnB1dERyb3Bkb3duQXJyb3dTdmdcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZURyb3Bkb3duT3B0aW9ucygpXCJcbiAgICAgICAgPjwvc3ZnLWljb24+XG4gICAgfVxuXG4gICAgPCEtLSBJbnB1dCBQbGFjZWhvbGRlciBJY29uIC0tPlxuICAgIEBpZiAoX2lucHV0Q29uZmlnLnBsYWNlaG9sZGVySWNvbikge1xuICAgICAgICA8YXBwLWNhLWlucHV0LXBsYWNlaG9sZGVyLWljb25cbiAgICAgICAgICAgIFtpbnB1dENvbmZpZ109XCJfaW5wdXRDb25maWdcIlxuICAgICAgICAgICAgW2dldFN1cGVyQ29udHJvbF09XCJjb250cm9sXCJcbiAgICAgICAgICAgIFtpc0ZvY3VzSW5wdXRdPVwiaXNGb2N1c0lucHV0XCJcbiAgICAgICAgICAgIFtpc1RvdWNoZWRJbnB1dF09XCJjb250cm9sPy50b3VjaGVkIVwiXG4gICAgICAgICAgICBbc2VsZWN0ZWREcm9wZG93bkxhYmVsQ29sb3JdPVwic2VsZWN0ZWREcm9wZG93bkxhYmVsQ29sb3JcIlxuICAgICAgICAgICAgW2lzRWRpdElucHV0XT1cImlzRWRpdElucHV0XCJcbiAgICAgICAgICAgIChvblBsYWNlaG9sZGVySWNvbkV2ZW50RW1pdHRlcik9XCJvblBsYWNlaG9sZGVySWNvbkV2ZW50KCRldmVudClcIlxuICAgICAgICAgICAgKG9uUG9wb3ZlclNob3duRW1pdHRlcik9XCJvblBvcG92ZXJTaG93bigpXCJcbiAgICAgICAgICAgIChvblBvcG92ZXJIaWRkZW5FbWl0dGVyKT1cIm9uUG9wb3ZlckhpZGRlbigpXCJcbiAgICAgICAgICAgIFtkYXRlVGltZVBvcG92ZXJdPVwiZGF0ZVRpbWVQb3BvdmVyXCJcbiAgICAgICAgPlxuICAgICAgICA8L2FwcC1jYS1pbnB1dC1wbGFjZWhvbGRlci1pY29uPlxuICAgIH1cblxuICAgIDwhLS0gSW5wdXQgUGxhY2Vob2xkZXIgVGV4dCAtLT5cbiAgICBAaWYgKFxuICAgICAgICBfaW5wdXRDb25maWdcbiAgICAgICAgICAgIHwgc2hvd1BsYWNlaG9sZGVyVGV4dDogY29udHJvbCA6IGlzVmlzaWJsZUNvbW1hbmRzIDogY29udHJvbD8udmFsdWVcbiAgICApIHtcbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIGNsYXNzPVwiY2EtcGxhY2Vob2xkZXItdGV4dCB7eyBfaW5wdXRDb25maWcuY3VzdG9tQ2xhc3MgfX1cIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwiXG4gICAgICAgICAgICAgICAgaXNGb2N1c0lucHV0XG4gICAgICAgICAgICAgICAgICAgIHwgaW5wdXRQbGFjZWhvbGRlclRleHRDbGFzc1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBjb250cm9sPy50b3VjaGVkIVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBjb250cm9sXG4gICAgICAgICAgICAgICAgICAgICAgICA6IF9pbnB1dENvbmZpZ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBpc1Zpc2libGVDb21tYW5kc1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBjb250cm9sPy52YWx1ZVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIFtzdHlsZS5sZWZ0XT1cIlxuICAgICAgICAgICAgICAgIF9pbnB1dENvbmZpZy5wbGFjZWhvbGRlclRleHQ/LnRvTG93ZXJDYXNlKCkgPT09XG4gICAgICAgICAgICAgICAgICAgIGlucHV0U3RyaW5nRW51bS5QRVJTT05TIHx8XG4gICAgICAgICAgICAgICAgX2lucHV0Q29uZmlnLnBsYWNlaG9sZGVyVGV4dD8udG9Mb3dlckNhc2UoKSA9PT1cbiAgICAgICAgICAgICAgICAgICAgaW5wdXRTdHJpbmdFbnVtLlZFSElDTEVTXG4gICAgICAgICAgICAgICAgICAgID8gMzAgKyAoY29udHJvbD8udmFsdWU/LnRvU3RyaW5nKCk/Lmxlbmd0aCArIDEpICogOSArICdweCdcbiAgICAgICAgICAgICAgICAgICAgOiBpc0ZvY3VzSW5wdXQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIF9pbnB1dENvbmZpZy5wbGFjZWhvbGRlclRleHQ/LnRvTG93ZXJDYXNlKCkgIT09XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRDb21tYW5kc1R5cGUuTU9OVEhTXG4gICAgICAgICAgICAgICAgICAgICAgPyAnYXV0bydcbiAgICAgICAgICAgICAgICAgICAgICA6IChjb250cm9sPy52YWx1ZT8udG9TdHJpbmcoKT8ubGVuZ3RoICsgMSkgKiA4ICsgJ3B4J1xuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIFtzdHlsZS5yaWdodF09XCJcbiAgICAgICAgICAgICAgICBpc0ZvY3VzSW5wdXQgJiZcbiAgICAgICAgICAgICAgICBfaW5wdXRDb25maWcucGxhY2Vob2xkZXJUZXh0Py50b0xvd2VyQ2FzZSgpICE9PVxuICAgICAgICAgICAgICAgICAgICBpbnB1dENvbW1hbmRzVHlwZS5NT05USFNcbiAgICAgICAgICAgICAgICAgICAgPyAnMjhweCdcbiAgICAgICAgICAgICAgICAgICAgOiAnYXV0bydcbiAgICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIHt7IF9pbnB1dENvbmZpZy5wbGFjZWhvbGRlclRleHQgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgIH1cblxuICAgIDwhLS0gSW5wdXQgTGFiZWwgQ291bnRlciAtLT5cbiAgICBAaWYgKFxuICAgICAgICBzZWxlY3RlZERyb3Bkb3duTGFiZWxDb2xvciAmJlxuICAgICAgICBjb250cm9sPy52YWx1ZSAmJlxuICAgICAgICAhaXNGb2N1c0lucHV0ICYmXG4gICAgICAgICFfaW5wdXRDb25maWcuaXNEaXNhYmxlZCAmJlxuICAgICAgICAhY29udHJvbD8uZGlzYWJsZWQgJiZcbiAgICAgICAgX2lucHV0Q29uZmlnLnNob3dDb3VudFxuICAgICkge1xuICAgICAgICA8cFxuICAgICAgICAgICAgW3N0eWxlLnRvcF09XCInNHB4J1wiXG4gICAgICAgICAgICBbc3R5bGUubGVmdF09XCIoY29udHJvbD8udmFsdWU/LnRvU3RyaW5nKCk/Lmxlbmd0aCArIDYuNSkgKiA4ICsgJ3B4J1wiXG4gICAgICAgICAgICBjbGFzcz1cImlucHV0LWxhYmVsLWNvdW50ZXJcIlxuICAgICAgICA+XG4gICAgICAgICAgICB7eyBzZWxlY3RlZERyb3Bkb3duTGFiZWxDb2xvci5jb3VudCB9fVxuICAgICAgICA8L3A+XG4gICAgfVxuXG4gICAgPCEtLSBTcGVjaWFsIERyb3Bkb3duIFNlbGVjdGVkIFNWRyB3aXRoIG9yIFdpdGhvdXQgVGV4dCAtLT5cbiAgICBAaWYgKFxuICAgICAgICBfaW5wdXRDb25maWc/LmRyb3Bkb3duSW1hZ2VJbnB1dD8uaWNvbnNQYXRoICYmXG4gICAgICAgIGFjdGl2ZUl0ZW0gJiZcbiAgICAgICAgIV9pbnB1dENvbmZpZz8uaGlkZUFsbEl0ZW1zSW5JbnB1dERyb3Bkb3duICYmXG4gICAgICAgICEoIV9pbnB1dENvbmZpZy5kcm9wZG93bkltYWdlSW5wdXQ/LndpdGhUZXh0ICYmIGlzRm9jdXNJbnB1dCkgJiZcbiAgICAgICAgIShcbiAgICAgICAgICAgIFsndHJ1Y2snLCAndHJhaWxlciddLmluY2x1ZGVzKFxuICAgICAgICAgICAgICAgIF9pbnB1dENvbmZpZy5kcm9wZG93bkltYWdlSW5wdXQ/LnRlbXBsYXRlIVxuICAgICAgICAgICAgKSAmJlxuICAgICAgICAgICAgaXNGb2N1c0lucHV0ICYmXG4gICAgICAgICAgICBfaW5wdXRDb25maWcuZHJvcGRvd25JbWFnZUlucHV0Py5yZW1vdmVcbiAgICAgICAgKSAmJlxuICAgICAgICAhX2lucHV0Q29uZmlnPy5kcm9wZG93bkltYWdlSW5wdXQ/Lm5hbWVJbml0aWFsc0luc3RlYWRVcmxcbiAgICApIHtcbiAgICAgICAgPHN2Zy1pY29uXG4gICAgICAgICAgICBbc3JjXT1cIl9pbnB1dENvbmZpZy5kcm9wZG93bkltYWdlSW5wdXQ/Lmljb25zUGF0aCFcIlxuICAgICAgICAgICAgY2xhc3M9XCJkcm9wZG93bi1zZWxlY3RlZC1pbWFnZSB7e1xuICAgICAgICAgICAgICAgIF9pbnB1dENvbmZpZy5kcm9wZG93bkltYWdlSW5wdXQ/LmNsYXNzXG4gICAgICAgICAgICB9fVwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgJ3Vuc2V0LWNvbG9yJzpcbiAgICAgICAgICAgICAgICAgICAgaXNGb2N1c0lucHV0ICYmIF9pbnB1dENvbmZpZy5kcm9wZG93bkltYWdlSW5wdXQ/LmNsYXNzLFxuICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICBbc3ZnU3R5bGVdPVwie1xuICAgICAgICAgICAgICAgIGZpbGw6XG4gICAgICAgICAgICAgICAgICAgIF9pbnB1dENvbmZpZy5kcm9wZG93bkltYWdlSW5wdXQ/LmNvbG9yICYmICFpc0ZvY3VzSW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgID8gX2lucHV0Q29uZmlnLmRyb3Bkb3duSW1hZ2VJbnB1dD8uY29sb3JcbiAgICAgICAgICAgICAgICAgICAgICAgIDogJyNmZmZmZmYnLFxuICAgICAgICAgICAgfVwiXG4gICAgICAgID5cbiAgICAgICAgPC9zdmctaWNvbj5cbiAgICB9XG5cbiAgICA8IS0tIElucHV0IExhYmVsIC0tPlxuICAgIEBpZiAoIV9pbnB1dENvbmZpZy5tdWx0aVNlbGVjdERyb3Bkb3duQWN0aXZlKSB7XG4gICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgW2Zvcl09XCJfaW5wdXRDb25maWcubmFtZVwiXG4gICAgICAgICAgICBjbGFzcz1cImlucHV0LWxhYmVsIHt7IF9pbnB1dENvbmZpZy5jdXN0b21DbGFzcyB9fSB7e1xuICAgICAgICAgICAgICAgIF9pbnB1dENvbmZpZy5tdWx0aXBsZUxhYmVsPy5jdXN0b21DbGFzc1xuICAgICAgICAgICAgfX1cIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwiXG4gICAgICAgICAgICAgICAgY29udHJvbD8udmFsdWVcbiAgICAgICAgICAgICAgICAgICAgfCBsYWJlbENsYXNzXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGlzRm9jdXNJbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgOiBfaW5wdXRDb25maWdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogaXNUb3VjaGVkSW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIDogY29udHJvbD8uaW52YWxpZFxuICAgICAgICAgICAgICAgICAgICAgICAgOiBjb250cm9sPy50b3VjaGVkXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnRyb2xcbiAgICAgICAgICAgICAgICAgICAgICAgIDogY29udHJvbD8uZGlzYWJsZWRcbiAgICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIEBpZiAoX2lucHV0Q29uZmlnLmxhYmVsKSB7XG4gICAgICAgICAgICAgICAgPHNwYW4+e3sgX2lucHV0Q29uZmlnLmxhYmVsIH19IDwvc3Bhbj5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGlmIChfaW5wdXRDb25maWcubXVsdGlwbGVMYWJlbD8ubGFiZWxzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJfaW5wdXRDb25maWcubXVsdGlwbGVMYWJlbD8uY3VzdG9tQ2xhc3MhXCJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgJ211bHRpcGxlLWxhYmVscy1wb3NpdGlvbi1vbi1mb2N1cyc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNGb2N1c0lucHV0IHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX2lucHV0Q29uZmlnLm11bHRpcGxlSW5wdXRWYWx1ZXM/Lm9wdGlvbnM/Lmxlbmd0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9pbnB1dENvbmZpZy5pc1JlcXVpcmVkICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIV9pbnB1dENvbmZpZy5pc0Rpc2FibGVkICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIWNvbnRyb2w/LmRpc2FibGVkLFxuICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIEBmb3IgKFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWwgb2YgX2lucHV0Q29uZmlnLm11bHRpcGxlTGFiZWw/LmxhYmVscztcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNrICRpbmRleFxuICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGxhYmVsIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9sYWJlbD5cbiAgICB9XG4gICAgPGlucHV0XG4gICAgICAgICNpbnB1dFxuICAgICAgICAoaW5wdXQpPVwiaGFuZGxlSW5wdXQoJGV2ZW50KVwiXG4gICAgICAgIFtyZXN0cmljdElucHV0XT1cImlucHV0Q29uZmlnXCJcbiAgICAgICAgcHJpY2VGb3JtYXRcbiAgICAgICAgW3ByaWNlU2VwYXJhdG9yXT1cIlxuICAgICAgICAgICAgaW5wdXRDb25maWcucHJpY2VTZXBhcmF0b3IgfHwgaW5wdXRDb25maWcudGhvdXNhbmRTZXBhcmF0b3JcbiAgICAgICAgXCJcbiAgICAgICAgKGZvY3VzKT1cImhhbmRsZUlucHV0Rm9jdXMoJGV2ZW50KVwiXG4gICAgICAgIChibHVyKT1cImhhbmRsZUlucHV0Qmx1cigkZXZlbnQpXCJcbiAgICAgICAgKGtleWRvd24pPVwiaGFuZGxlS2V5RG93bigkZXZlbnQpXCJcbiAgICAgICAgW3JlYWRPbmx5XT1cIl9pbnB1dENvbmZpZy5yZWFkT25seVwiXG4gICAgICAgIFt0eXBlXT1cIl9pbnB1dENvbmZpZy50eXBlIHwgaW5wdXRUeXBlOiBpc1RvZ2dsZVBhc3N3b3JkXCJcbiAgICAgICAgY2xhc3M9XCJpbnB1dC1jb250cm9sXG4gICAgICAgICAgICB7eyBfaW5wdXRDb25maWcudGV4dFRyYW5zZm9ybSB9fVxuICAgICAgICAgICAge3sgX2lucHV0Q29uZmlnLnRleHRBbGlnbiB9fVxuICAgICAgICAgICAge3sgX2lucHV0Q29uZmlnLmN1c3RvbUNsYXNzIH19XG4gICAgICAgIFwiXG4gICAgICAgIFthcHBNYXhWYWx1ZV09XCJpbnB1dENvbmZpZy5tYXhcIlxuICAgICAgICBhcHBDYXBzTG9ja1xuICAgICAgICAoY2Fwc0xvY2tTdGF0dXMpPVwiaGFuZGxlQ2Fwc0xvY2soJGV2ZW50KVwiXG4gICAgICAgIGNvbW1hbmRWaXNpYmxlXG4gICAgICAgIChjb21tYW5kVmlzaWJsZSk9XCJoYW5kbGVDb21tYW5kVmlzaWJsZSgkZXZlbnQpXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cIlxuICAgICAgICAgICAgKF9pbnB1dENvbmZpZy5wbGFjZWhvbGRlckluc3RlYWRPZkxhYmVsICYmXG4gICAgICAgICAgICBfaW5wdXRDb25maWcucGxhY2Vob2xkZXIgJiZcbiAgICAgICAgICAgIGlzRm9jdXNJbnB1dFxuICAgICAgICAgICAgICAgID8gX2lucHV0Q29uZmlnLnBsYWNlaG9sZGVyXG4gICAgICAgICAgICAgICAgOiAnJykgfHxcbiAgICAgICAgICAgIChfaW5wdXRDb25maWcucGxhY2Vob2xkZXIgJiYgaXNGb2N1c0lucHV0XG4gICAgICAgICAgICAgICAgPyBfaW5wdXRDb25maWcucGxhY2Vob2xkZXJcbiAgICAgICAgICAgICAgICA6ICcnKVxuICAgICAgICBcIlxuICAgICAgICBbbWFza109XCJfaW5wdXRDb25maWcubWFza1wiXG4gICAgICAgIFtuZ0NsYXNzXT1cIlxuICAgICAgICAgICAgY29udHJvbFxuICAgICAgICAgICAgICAgIHwgaW5wdXRDbGFzc1xuICAgICAgICAgICAgICAgICAgICA6IGlzRm9jdXNJbnB1dFxuICAgICAgICAgICAgICAgICAgICA6IGNvbnRyb2w/LnRvdWNoZWQhXG4gICAgICAgICAgICAgICAgICAgIDogX2lucHV0Q29uZmlnXG4gICAgICAgICAgICAgICAgICAgIDogaW5wdXRcbiAgICAgICAgICAgICAgICAgICAgOiBpc1Zpc2libGVDb21tYW5kc1xuICAgICAgICAgICAgICAgICAgICA6IGNvbnRyb2w/LnZhbHVlXG4gICAgICAgICAgICAgICAgICAgIDogY29udHJvbD8uaW52YWxpZFxuICAgICAgICAgICAgICAgICAgICA6IGNvbnRyb2w/LnRvdWNoZWRcbiAgICAgICAgICAgICAgICAgICAgOiBpc0Ryb3Bkb3duVG9nZ2xlclxuICAgICAgICAgICAgICAgICAgICA6IGlzRWRpdElucHV0XG4gICAgICAgICAgICAgICAgICAgIDogdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgOiBjb250cm9sPy5kaXNhYmxlZFxuICAgICAgICBcIlxuICAgIC8+XG5cbiAgICA8IS0tIFBsYWNlaG9sZGVyIEljb24gb24gUmlnaHQgU2lkZSAtLT5cbiAgICBAaWYgKF9pbnB1dENvbmZpZy5wbGFjZWhvbGRlckljb25SaWdodFNpZGUpIHtcbiAgICAgICAgPHN2Zy1pY29uXG4gICAgICAgICAgICBjbGFzcz1cInBsYWNlaG9sZGVyLWljb24tcmlnaHQtc2lkZSB7e1xuICAgICAgICAgICAgICAgIF9pbnB1dENvbmZpZy5wbGFjZWhvbGRlckljb25Db2xvclxuICAgICAgICAgICAgfX1cIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwiXG4gICAgICAgICAgICAgICAgaXNGb2N1c0lucHV0XG4gICAgICAgICAgICAgICAgICAgIHwgaW5wdXRQbGFjZWhvbGRlckljb25SaWdodENsYXNzXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnRyb2xcbiAgICAgICAgICAgICAgICAgICAgICAgIDogX2lucHV0Q29uZmlnXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGlzVG91Y2hlZElucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnRyb2w/LmRpc2FibGVkXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgW3NyY109XCJcbiAgICAgICAgICAgICAgICBfaW5wdXRDb25maWcucGxhY2Vob2xkZXJJY29uUmlnaHRTaWRlLnRvTG93ZXJDYXNlKClcbiAgICAgICAgICAgICAgICAgICAgfCBjYVN2ZzogJ2NvbW1vbidcbiAgICAgICAgICAgIFwiXG4gICAgICAgID48L3N2Zy1pY29uPlxuICAgIH1cblxuICAgIDwhLS0gSW5wdXQgRXJyb3IgTWVzc2FnZSAtLT5cbiAgICBAaWYgKFxuICAgICAgICAhKCFjb250cm9sPy52YWx1ZSAmJiBpc0ZvY3VzSW5wdXQpICYmXG4gICAgICAgIChpc1RvdWNoZWRJbnB1dCB8fCBjb250cm9sPy50b3VjaGVkIHx8IGNvbnRyb2w/LnZhbHVlKSAmJlxuICAgICAgICBjb250cm9sPy5pbnZhbGlkICYmXG4gICAgICAgICFfaW5wdXRDb25maWcuaXNJbnZhbGlkU2VhcmNoSW5Ecm9wZG93biAmJlxuICAgICAgICAhX2lucHV0Q29uZmlnLmlzRGlzYWJsZWQgJiZcbiAgICAgICAgIWNvbnRyb2w/LmRpc2FibGVkXG4gICAgKSB7XG4gICAgICAgIEBpZiAoXG4gICAgICAgICAgICAhKF9pbnB1dENvbmZpZy5oaWRlRXJyb3JNZXNzYWdlIHx8IF9pbnB1dENvbmZpZy5lcnJvckluc2lkZUlucHV0KVxuICAgICAgICApIHtcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaW5wdXQtZXJyb3Ige3sgX2lucHV0Q29uZmlnLmN1c3RvbUNsYXNzIH19XCI+XG4gICAgICAgICAgICAgICAge3sgY29udHJvbD8uZXJyb3JzIHwgaW5wdXRFcnJvcjogX2lucHV0Q29uZmlnLm5hbWUgfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgfVxuXG4gICAgICAgIDwhLS0gRXJyb3IgTWVzc2FnZSBJbnNpZGUgSW5wdXQgLS0+XG4gICAgICAgIEBpZiAoX2lucHV0Q29uZmlnLmVycm9ySW5zaWRlSW5wdXQpIHtcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZXJyb3ItaW5zaWRlLWlucHV0IHt7IF9pbnB1dENvbmZpZy5jdXN0b21DbGFzcyB9fVwiPlxuICAgICAgICAgICAgICAgIHt7IGNvbnRyb2w/LmVycm9ycyB8IGlucHV0RXJyb3I6IF9pbnB1dENvbmZpZy5uYW1lIH19XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgKF9pbnB1dENvbmZpZy5maXhlZFBsYWNob2xkZXIgJiYgaW5wdXQudmFsdWUpIHtcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJpbnB1dC1maXhlZC1wbGFjZWhvZGVyLWxhYmVsXCI+XG4gICAgICAgICAgICB7eyBfaW5wdXRDb25maWcuZml4ZWRQbGFjaG9sZGVyIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICB9XG48L2Rpdj5cbiJdfQ==
|
|
@@ -17990,7 +17990,12 @@ class InputTestComponent extends InputCommandMixin(InputHelperMixin(InputBase))
|
|
|
17990
17990
|
writeValue(obj) {
|
|
17991
17991
|
const value = this.transformValue(this._inputConfig, obj); // ✅ Apply mask
|
|
17992
17992
|
this.inputValue = value;
|
|
17993
|
-
this.
|
|
17993
|
+
if (this._inputConfig.priceParseFormat && value) {
|
|
17994
|
+
this.onChange(value.replace(/[^\d]/g, '')); // Notify Angular form about the change
|
|
17995
|
+
}
|
|
17996
|
+
else {
|
|
17997
|
+
this.onChange(value); // Notify Angular form about the change
|
|
17998
|
+
}
|
|
17994
17999
|
if (value && this._inputConfig.updateAsTouchedOnEdit)
|
|
17995
18000
|
this.onTouched(); // Mark as touched
|
|
17996
18001
|
if (!this._inputConfig.isDropdown && !this._inputConfig.isAddress)
|
|
@@ -17999,7 +18004,12 @@ class InputTestComponent extends InputCommandMixin(InputHelperMixin(InputBase))
|
|
|
17999
18004
|
}
|
|
18000
18005
|
handleInput(event) {
|
|
18001
18006
|
const value = event.target.value;
|
|
18002
|
-
this.
|
|
18007
|
+
if (this._inputConfig.priceParseFormat && value) {
|
|
18008
|
+
this.onChange(value.replace(/[^\d]/g, '')); // Notify Angular form about the change
|
|
18009
|
+
}
|
|
18010
|
+
else {
|
|
18011
|
+
this.onChange(value); // Notify Angular form about the change
|
|
18012
|
+
}
|
|
18003
18013
|
if (value)
|
|
18004
18014
|
this.onTouched(); // Mark as touched
|
|
18005
18015
|
if (this.inputValue === value) {
|