@senior-agronegocio/angular-components 0.0.70-origination → 0.0.72-origination

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.
@@ -139,4 +139,14 @@ export declare const AGRO_REGEX: {
139
139
  * Validação se todos os dígitos são iguais
140
140
  */
141
141
  isAllDigitsEqual: RegExp;
142
+ /**
143
+ * Validação de Placa de Veículo do Mercosul
144
+ * Formato: ABC1D23
145
+ */
146
+ isMercosulLicensePlate: RegExp;
147
+ /**
148
+ * Validação de Placa de Veículo Antiga
149
+ * Formato: AAA-0000
150
+ */
151
+ isOldLicensePlate: RegExp;
142
152
  };
@@ -139,5 +139,15 @@ export const AGRO_REGEX = {
139
139
  * Validação se todos os dígitos são iguais
140
140
  */
141
141
  isAllDigitsEqual: /^(.)\1+$/,
142
+ /**
143
+ * Validação de Placa de Veículo do Mercosul
144
+ * Formato: ABC1D23
145
+ */
146
+ isMercosulLicensePlate: /^[A-Z]{3}[0-9]{1}[A-Z]{1}[0-9]{2}$/,
147
+ /**
148
+ * Validação de Placa de Veículo Antiga
149
+ * Formato: AAA-0000
150
+ */
151
+ isOldLicensePlate: /^[A-Z]{3}[0-9]{4}$/
142
152
  };
143
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdyby1yZWdleC5jb25zdGFudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3ItYWdyb25lZ29jaW8vYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tbW9uL2Fncm8tcmVnZXguY29uc3RhbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3RCOztPQUVHO0lBQ0gsT0FBTyxFQUFFLDRCQUE0QjtJQUVyQzs7T0FFRztJQUNILGVBQWUsRUFBRSxZQUFZO0lBRTdCOztPQUVHO0lBQ0gsZUFBZSxFQUFFLGFBQWE7SUFFOUI7O09BRUc7SUFDSCxlQUFlLEVBQUUsT0FBTztJQUV4Qjs7T0FFRztJQUNILE9BQU8sRUFBRSx1QkFBdUI7SUFFaEM7O09BRUc7SUFDSCxRQUFRLEVBQUUsV0FBVztJQUVyQjs7T0FFRztJQUNILE1BQU0sRUFBRSw0RkFBNEY7SUFFcEc7O09BRUc7SUFDSCxRQUFRLEVBQUUsU0FBUztJQUVuQjs7T0FFRztJQUNILFNBQVMsRUFBRSxhQUFhO0lBRXhCOztPQUVHO0lBQ0gsY0FBYyxFQUFFLHNDQUFzQztJQUV0RDs7T0FFRztJQUNILGFBQWEsRUFBRSx3QkFBd0I7SUFFdkM7O09BRUc7SUFDSCxNQUFNLEVBQUUscUJBQXFCO0lBRTdCOztPQUVHO0lBQ0gsTUFBTSxFQUFFLDRCQUE0QjtJQUVwQzs7T0FFRztJQUNILFVBQVUsRUFBRSw4Q0FBOEM7SUFFMUQ7O09BRUc7SUFDSCxLQUFLLEVBQUUsd0RBQXdEO0lBRS9EOztPQUVHO0lBQ0gsV0FBVyxFQUFFLGdCQUFnQjtJQUU3Qjs7T0FFRztJQUNILFFBQVEsRUFBRSx3QkFBd0I7SUFFbEM7O09BRUc7SUFDSCxVQUFVLEVBQUUsWUFBWTtJQUV4Qjs7T0FFRztJQUNILGNBQWMsRUFBRSxnQkFBZ0I7SUFFaEM7O09BRUc7SUFDSCxNQUFNLEVBQUUsY0FBYztJQUV0Qjs7T0FFRztJQUNILFlBQVksRUFBRSwyQkFBMkI7SUFFekM7O09BRUc7SUFDSCxhQUFhLEVBQUUsZ0JBQWdCO0lBRS9COztPQUVHO0lBQ0gsVUFBVSxFQUFFLG1CQUFtQjtJQUUvQjs7T0FFRztJQUNILFlBQVksRUFBRSx5Q0FBeUM7SUFFdkQ7O09BRUc7SUFDSCxTQUFTLEVBQUUsMkNBQTJDO0lBRXREOztPQUVHO0lBQ0gsb0JBQW9CLEVBQUUsdUJBQXVCO0lBRTdDOztPQUVHO0lBQ0gsZ0JBQWdCLEVBQUUsc0VBQXNFO0lBRXhGOztPQUVHO0lBQ0gsWUFBWSxFQUFFLGFBQWE7SUFFM0I7O09BRUc7SUFDSCxZQUFZLEVBQUUsbUNBQW1DO0lBRWpEOztPQUVHO0lBQ0gsVUFBVSxFQUFFLHFDQUFxQztJQUVqRDs7T0FFRztJQUNILFdBQVcsRUFBRSxxREFBcUQ7SUFFbEU7O09BRUc7SUFDSCxZQUFZLEVBQUUsMkNBQTJDO0lBRXpEOztPQUVHO0lBQ0gsc0JBQXNCLEVBQUUsMEJBQTBCO0lBRWxEOztPQUVHO0lBQ0gsS0FBSyxFQUFFLHFCQUFxQjtJQUU1Qjs7T0FFRztJQUNILGdCQUFnQixFQUFFLFVBQVU7Q0FDN0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBBR1JPX1JFR0VYID0ge1xyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBFLW1haWxcclxuICAgICAqL1xyXG4gICAgaXNFbWFpbDogL15bXlxcc0BdK0BbXlxcc0BdK1xcLlteXFxzQF0rJC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBOw7ptZXJvcyBJbnRlaXJvcyBQb3NpdGl2b3NcclxuICAgICAqL1xyXG4gICAgcG9zaXRpdmVJbnRlZ2VyOiAvXlsxLTldXFxkKiQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgTsO6bWVyb3MgRGVjaW1haXMgUG9zaXRpdm9zXHJcbiAgICAgKi9cclxuICAgIHBvc2l0aXZlRGVjaW1hbDogL15cXGQqXFwuP1xcZCskLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIHN0cmluZyBxdWUgY29uc2lzdGUgYXBlbmFzIGVtIGVzcGHDp29zIGVtIGJyYW5jbyBvdSBlc3TDoSB2YXppYS5cclxuICAgICAqL1xyXG4gICAgb25seUJsYW5rU3BhY2VzOiAvXlxccyokLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIENFUCAoQ8OzZGlnbyBQb3N0YWwpXHJcbiAgICAgKi9cclxuICAgIHppcENvZGU6IC9eXFxkezh9JHxeXFxkezV9LVxcZHszfSQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgU3RyaW5nIChxdWFscXVlciBjYXJhY3RlcmUpXHJcbiAgICAgKi9cclxuICAgIGlzU3RyaW5nOiAvXltcXHNcXFNdKiQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgVVVJRFxyXG4gICAgICovXHJcbiAgICBpc1VVSUQ6IC9eWzAtOWEtZkEtRl17OH0tWzAtOWEtZkEtRl17NH0tWzEtNV1bMC05YS1mQS1GXXszfS1bODlhYkFCXVswLTlhLWZBLUZdezN9LVswLTlhLWZBLUZdezEyfSQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgTsO6bWVyb1xyXG4gICAgICovXHJcbiAgICBpc051bWJlcjogL14tP1xcZCskLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIE7Dum1lcm8gRGVjaW1hbFxyXG4gICAgICovXHJcbiAgICBpc0RlY2ltYWw6IC9eXFxkKlxcLj9cXGQrJC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBQbGFjYSBkZSBWZcOtY3Vsb1xyXG4gICAgICovXHJcbiAgICBpc0xpY2Vuc2VQbGF0ZTogL15bQS1aYS16MC05XXsxLDd9LT9bQS1aYS16MC05XXsxLDd9JC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBOw7ptZXJvIGRlIFRlbGVmb25lXHJcbiAgICAgKi9cclxuICAgIGlzUGhvbmVOdW1iZXI6IC9eXFwrP1xcZHsxLDR9LT9cXGR7NiwxMX0kLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIERhdGEgKEZvcm1hdG8gWVlZWS1NTS1ERClcclxuICAgICAqL1xyXG4gICAgaXNEYXRlOiAvXlxcZHs0fS1cXGR7Mn0tXFxkezJ9JC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBIb3JhIChGb3JtYXRvIEhIOm1tKVxyXG4gICAgICovXHJcbiAgICBpc1RpbWU6IC9eKDBcXGR8MVxcZHwyWzAtM10pOlswLTVdXFxkJC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBEYXRhIGUgSG9yYSAoRm9ybWF0byBZWVlZLU1NLUREIEhIOm1tKVxyXG4gICAgICovXHJcbiAgICBpc0RhdGVUaW1lOiAvXlxcZHs0fS1cXGR7Mn0tXFxkezJ9ICgwXFxkfDFcXGR8MlswLTNdKTpbMC01XVxcZCQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgVVJMXHJcbiAgICAgKi9cclxuICAgIGlzVVJMOiAvXihodHRwfGh0dHBzKTpcXC9cXC8oW1xcdy1dK1xcLikrW1xcdy1dKyhcXC9bXFx3LSAuLz8lJj1dKik/JC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBOw7ptZXJvIEhleGFkZWNpbWFsXHJcbiAgICAgKi9cclxuICAgIGlzSGV4TnVtYmVyOiAvXlswLTlhLWZBLUZdKyQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgQmFzZTY0XHJcbiAgICAgKi9cclxuICAgIGlzQmFzZTY0OiAvXlthLXpBLVowLTkrL10rPXswLDJ9JC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBOb21lIGRlIFVzdcOhcmlvICgzIGEgMjAgY2FyYWN0ZXJlcyBhbGZhbnVtw6lyaWNvcylcclxuICAgICAqL1xyXG4gICAgaXNVc2VybmFtZTogL15cXHd7MywyMH0kLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIEFsZmFudW3DqXJpY29cclxuICAgICAqL1xyXG4gICAgaXNBbHBoYW51bWVyaWM6IC9eW2EtekEtWjAtOV0rJC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBTbHVnIChsZXRyYXMgbWluw7pzY3VsYXMsIG7Dum1lcm9zIGUgdHJhw6dvcylcclxuICAgICAqL1xyXG4gICAgaXNTbHVnOiAvXlthLXowLTktXSskLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIE7Dum1lcm8gZGUgQ2FydMOjbyBkZSBDcsOpZGl0b1xyXG4gICAgICovXHJcbiAgICBpc0NyZWRpdENhcmQ6IC9eXFxkezR9LVxcZHs0fS1cXGR7NH0tXFxkezR9JC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBOw7ptZXJvIEhleGFkZWNpbWFsXHJcbiAgICAgKi9cclxuICAgIGlzSGV4YWRlY2ltYWw6IC9eWzAtOWEtZkEtRl0rJC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBNb2VkYVxyXG4gICAgICovXHJcbiAgICBpc0N1cnJlbmN5OiAvXlxcZCsoXFwuXFxkezEsMn0pPyQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgUG9yY2VudGFnZW1cclxuICAgICAqL1xyXG4gICAgaXNQZXJjZW50YWdlOiAvXigxMDAoXFwuMHsxLDJ9KT98WzEtOV0/XFxkKFxcLlxcZHsxLDJ9KT8pJC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBUYWcgSFRNTCBTaW1wbGVzXHJcbiAgICAgKi9cclxuICAgIGlzSFRNTFRhZzogL148KFthLXpdKykoW148XSspKig/Oj4oLiopPFxcL1xcMT58XFxzK1xcLz4pJC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBOb21lIGRlIFVzdcOhcmlvIGNvbSBFc3Bhw6dvcyAoMyBhIDIwIGNhcmFjdGVyZXMgYWxmYW51bcOpcmljb3MgZSBlc3Bhw6dvcylcclxuICAgICAqL1xyXG4gICAgaXNVc2VybmFtZVdpdGhTcGFjZXM6IC9eW2EtekEtWjAtOV8gXXszLDIwfSQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgU2VuaGEgRm9ydGUgKG3DrW5pbW8gOCBjYXJhY3RlcmVzLCB1bWEgbGV0cmEgbWluw7pzY3VsYSwgdW1hIGxldHJhIG1hacO6c2N1bGEsIHVtIG7Dum1lcm8gZSB1bSBjYXJhY3RlcmUgZXNwZWNpYWwpXHJcbiAgICAgKi9cclxuICAgIGlzU3Ryb25nUGFzc3dvcmQ6IC9eKD89LipbYS16XSkoPz0uKltBLVpdKSg/PS4qXFxkKSg/PS4qW0AkISUqPyZdKVtBLVphLXpcXGRAJCElKj8mXXs4LH0kLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIFN0cmluZyBBbGZhYsOpdGljYVxyXG4gICAgICovXHJcbiAgICBpc0FscGhhYmV0aWM6IC9eW2EtekEtWl0rJC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBIb3JhIG5vIEZvcm1hdG8gZGUgMTIgSG9yYXNcclxuICAgICAqL1xyXG4gICAgaXNUaW1lMTJIb3VyOiAvXigwP1sxLTldfDFbMC0yXSk6XFxkezJ9IChBTXxQTSkkL2ksXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBMYXRpdHVkZVxyXG4gICAgICovXHJcbiAgICBpc0xhdGl0dWRlOiAvXlstK10/KFsxLThdP1xcZChcXC5cXGQrKT98OTAoXFwuMCspPykkLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIExvbmdpdHVkZVxyXG4gICAgICovXHJcbiAgICBpc0xvbmdpdHVkZTogL15bLStdPygxODAoXFwuMCspP3woKDFbMC03XVxcZCl8KFsxLTldP1xcZCkpKFxcLlxcZCspPykkLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIEVuZGVyZcOnbyBNQUNcclxuICAgICAqL1xyXG4gICAgaXNNQUNBZGRyZXNzOiAvXihbMC05QS1GYS1mXXsyfVs6LV0pezV9KFswLTlBLUZhLWZdezJ9KSQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgRGF0YSBkZSBFeHBpcmHDp8OjbyBkZSBDYXJ0w6NvIGRlIENyw6lkaXRvXHJcbiAgICAgKi9cclxuICAgIGlzQ3JlZGl0Q2FyZEV4cGlyYXRpb246IC9eKDBbMS05XXwxWzAtMl0pXFwvXFxkezJ9JC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBOw7ptZXJvIGRlIFNlZ3VybyBTb2NpYWwgKFNTTilcclxuICAgICAqL1xyXG4gICAgaXNTU046IC9eXFxkezN9LVxcZHsyfS1cXGR7NH0kLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIHNlIHRvZG9zIG9zIGTDrWdpdG9zIHPDo28gaWd1YWlzXHJcbiAgICAgKi9cclxuICAgIGlzQWxsRGlnaXRzRXF1YWw6IC9eKC4pXFwxKyQvLFxyXG4gIH07XHJcbiJdfQ==
153
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdyby1yZWdleC5jb25zdGFudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3ItYWdyb25lZ29jaW8vYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tbW9uL2Fncm8tcmVnZXguY29uc3RhbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3RCOztPQUVHO0lBQ0gsT0FBTyxFQUFFLDRCQUE0QjtJQUVyQzs7T0FFRztJQUNILGVBQWUsRUFBRSxZQUFZO0lBRTdCOztPQUVHO0lBQ0gsZUFBZSxFQUFFLGFBQWE7SUFFOUI7O09BRUc7SUFDSCxlQUFlLEVBQUUsT0FBTztJQUV4Qjs7T0FFRztJQUNILE9BQU8sRUFBRSx1QkFBdUI7SUFFaEM7O09BRUc7SUFDSCxRQUFRLEVBQUUsV0FBVztJQUVyQjs7T0FFRztJQUNILE1BQU0sRUFBRSw0RkFBNEY7SUFFcEc7O09BRUc7SUFDSCxRQUFRLEVBQUUsU0FBUztJQUVuQjs7T0FFRztJQUNILFNBQVMsRUFBRSxhQUFhO0lBRXhCOztPQUVHO0lBQ0gsY0FBYyxFQUFFLHNDQUFzQztJQUV0RDs7T0FFRztJQUNILGFBQWEsRUFBRSx3QkFBd0I7SUFFdkM7O09BRUc7SUFDSCxNQUFNLEVBQUUscUJBQXFCO0lBRTdCOztPQUVHO0lBQ0gsTUFBTSxFQUFFLDRCQUE0QjtJQUVwQzs7T0FFRztJQUNILFVBQVUsRUFBRSw4Q0FBOEM7SUFFMUQ7O09BRUc7SUFDSCxLQUFLLEVBQUUsd0RBQXdEO0lBRS9EOztPQUVHO0lBQ0gsV0FBVyxFQUFFLGdCQUFnQjtJQUU3Qjs7T0FFRztJQUNILFFBQVEsRUFBRSx3QkFBd0I7SUFFbEM7O09BRUc7SUFDSCxVQUFVLEVBQUUsWUFBWTtJQUV4Qjs7T0FFRztJQUNILGNBQWMsRUFBRSxnQkFBZ0I7SUFFaEM7O09BRUc7SUFDSCxNQUFNLEVBQUUsY0FBYztJQUV0Qjs7T0FFRztJQUNILFlBQVksRUFBRSwyQkFBMkI7SUFFekM7O09BRUc7SUFDSCxhQUFhLEVBQUUsZ0JBQWdCO0lBRS9COztPQUVHO0lBQ0gsVUFBVSxFQUFFLG1CQUFtQjtJQUUvQjs7T0FFRztJQUNILFlBQVksRUFBRSx5Q0FBeUM7SUFFdkQ7O09BRUc7SUFDSCxTQUFTLEVBQUUsMkNBQTJDO0lBRXREOztPQUVHO0lBQ0gsb0JBQW9CLEVBQUUsdUJBQXVCO0lBRTdDOztPQUVHO0lBQ0gsZ0JBQWdCLEVBQUUsc0VBQXNFO0lBRXhGOztPQUVHO0lBQ0gsWUFBWSxFQUFFLGFBQWE7SUFFM0I7O09BRUc7SUFDSCxZQUFZLEVBQUUsbUNBQW1DO0lBRWpEOztPQUVHO0lBQ0gsVUFBVSxFQUFFLHFDQUFxQztJQUVqRDs7T0FFRztJQUNILFdBQVcsRUFBRSxxREFBcUQ7SUFFbEU7O09BRUc7SUFDSCxZQUFZLEVBQUUsMkNBQTJDO0lBRXpEOztPQUVHO0lBQ0gsc0JBQXNCLEVBQUUsMEJBQTBCO0lBRWxEOztPQUVHO0lBQ0gsS0FBSyxFQUFFLHFCQUFxQjtJQUU1Qjs7T0FFRztJQUNILGdCQUFnQixFQUFFLFVBQVU7SUFFNUI7OztPQUdHO0lBQ0gsc0JBQXNCLEVBQUUsb0NBQW9DO0lBRzVEOzs7T0FHRztJQUNILGlCQUFpQixFQUFFLG9CQUFvQjtDQUN4QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IEFHUk9fUkVHRVggPSB7XHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIEUtbWFpbFxyXG4gICAgICovXHJcbiAgICBpc0VtYWlsOiAvXlteXFxzQF0rQFteXFxzQF0rXFwuW15cXHNAXSskLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIE7Dum1lcm9zIEludGVpcm9zIFBvc2l0aXZvc1xyXG4gICAgICovXHJcbiAgICBwb3NpdGl2ZUludGVnZXI6IC9eWzEtOV1cXGQqJC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBOw7ptZXJvcyBEZWNpbWFpcyBQb3NpdGl2b3NcclxuICAgICAqL1xyXG4gICAgcG9zaXRpdmVEZWNpbWFsOiAvXlxcZCpcXC4/XFxkKyQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgc3RyaW5nIHF1ZSBjb25zaXN0ZSBhcGVuYXMgZW0gZXNwYcOnb3MgZW0gYnJhbmNvIG91IGVzdMOhIHZhemlhLlxyXG4gICAgICovXHJcbiAgICBvbmx5QmxhbmtTcGFjZXM6IC9eXFxzKiQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgQ0VQIChDw7NkaWdvIFBvc3RhbClcclxuICAgICAqL1xyXG4gICAgemlwQ29kZTogL15cXGR7OH0kfF5cXGR7NX0tXFxkezN9JC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBTdHJpbmcgKHF1YWxxdWVyIGNhcmFjdGVyZSlcclxuICAgICAqL1xyXG4gICAgaXNTdHJpbmc6IC9eW1xcc1xcU10qJC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBVVUlEXHJcbiAgICAgKi9cclxuICAgIGlzVVVJRDogL15bMC05YS1mQS1GXXs4fS1bMC05YS1mQS1GXXs0fS1bMS01XVswLTlhLWZBLUZdezN9LVs4OWFiQUJdWzAtOWEtZkEtRl17M30tWzAtOWEtZkEtRl17MTJ9JC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBOw7ptZXJvXHJcbiAgICAgKi9cclxuICAgIGlzTnVtYmVyOiAvXi0/XFxkKyQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgTsO6bWVybyBEZWNpbWFsXHJcbiAgICAgKi9cclxuICAgIGlzRGVjaW1hbDogL15cXGQqXFwuP1xcZCskLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIFBsYWNhIGRlIFZlw61jdWxvXHJcbiAgICAgKi9cclxuICAgIGlzTGljZW5zZVBsYXRlOiAvXltBLVphLXowLTldezEsN30tP1tBLVphLXowLTldezEsN30kLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIE7Dum1lcm8gZGUgVGVsZWZvbmVcclxuICAgICAqL1xyXG4gICAgaXNQaG9uZU51bWJlcjogL15cXCs/XFxkezEsNH0tP1xcZHs2LDExfSQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgRGF0YSAoRm9ybWF0byBZWVlZLU1NLUREKVxyXG4gICAgICovXHJcbiAgICBpc0RhdGU6IC9eXFxkezR9LVxcZHsyfS1cXGR7Mn0kLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIEhvcmEgKEZvcm1hdG8gSEg6bW0pXHJcbiAgICAgKi9cclxuICAgIGlzVGltZTogL14oMFxcZHwxXFxkfDJbMC0zXSk6WzAtNV1cXGQkLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIERhdGEgZSBIb3JhIChGb3JtYXRvIFlZWVktTU0tREQgSEg6bW0pXHJcbiAgICAgKi9cclxuICAgIGlzRGF0ZVRpbWU6IC9eXFxkezR9LVxcZHsyfS1cXGR7Mn0gKDBcXGR8MVxcZHwyWzAtM10pOlswLTVdXFxkJC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBVUkxcclxuICAgICAqL1xyXG4gICAgaXNVUkw6IC9eKGh0dHB8aHR0cHMpOlxcL1xcLyhbXFx3LV0rXFwuKStbXFx3LV0rKFxcL1tcXHctIC4vPyUmPV0qKT8kLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIE7Dum1lcm8gSGV4YWRlY2ltYWxcclxuICAgICAqL1xyXG4gICAgaXNIZXhOdW1iZXI6IC9eWzAtOWEtZkEtRl0rJC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBCYXNlNjRcclxuICAgICAqL1xyXG4gICAgaXNCYXNlNjQ6IC9eW2EtekEtWjAtOSsvXSs9ezAsMn0kLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIE5vbWUgZGUgVXN1w6FyaW8gKDMgYSAyMCBjYXJhY3RlcmVzIGFsZmFudW3DqXJpY29zKVxyXG4gICAgICovXHJcbiAgICBpc1VzZXJuYW1lOiAvXlxcd3szLDIwfSQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgQWxmYW51bcOpcmljb1xyXG4gICAgICovXHJcbiAgICBpc0FscGhhbnVtZXJpYzogL15bYS16QS1aMC05XSskLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIFNsdWcgKGxldHJhcyBtaW7DunNjdWxhcywgbsO6bWVyb3MgZSB0cmHDp29zKVxyXG4gICAgICovXHJcbiAgICBpc1NsdWc6IC9eW2EtejAtOS1dKyQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgTsO6bWVybyBkZSBDYXJ0w6NvIGRlIENyw6lkaXRvXHJcbiAgICAgKi9cclxuICAgIGlzQ3JlZGl0Q2FyZDogL15cXGR7NH0tXFxkezR9LVxcZHs0fS1cXGR7NH0kLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIE7Dum1lcm8gSGV4YWRlY2ltYWxcclxuICAgICAqL1xyXG4gICAgaXNIZXhhZGVjaW1hbDogL15bMC05YS1mQS1GXSskLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIE1vZWRhXHJcbiAgICAgKi9cclxuICAgIGlzQ3VycmVuY3k6IC9eXFxkKyhcXC5cXGR7MSwyfSk/JC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBQb3JjZW50YWdlbVxyXG4gICAgICovXHJcbiAgICBpc1BlcmNlbnRhZ2U6IC9eKDEwMChcXC4wezEsMn0pP3xbMS05XT9cXGQoXFwuXFxkezEsMn0pPykkLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIFRhZyBIVE1MIFNpbXBsZXNcclxuICAgICAqL1xyXG4gICAgaXNIVE1MVGFnOiAvXjwoW2Etel0rKShbXjxdKykqKD86PiguKik8XFwvXFwxPnxcXHMrXFwvPikkLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIE5vbWUgZGUgVXN1w6FyaW8gY29tIEVzcGHDp29zICgzIGEgMjAgY2FyYWN0ZXJlcyBhbGZhbnVtw6lyaWNvcyBlIGVzcGHDp29zKVxyXG4gICAgICovXHJcbiAgICBpc1VzZXJuYW1lV2l0aFNwYWNlczogL15bYS16QS1aMC05XyBdezMsMjB9JC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBTZW5oYSBGb3J0ZSAobcOtbmltbyA4IGNhcmFjdGVyZXMsIHVtYSBsZXRyYSBtaW7DunNjdWxhLCB1bWEgbGV0cmEgbWFpw7pzY3VsYSwgdW0gbsO6bWVybyBlIHVtIGNhcmFjdGVyZSBlc3BlY2lhbClcclxuICAgICAqL1xyXG4gICAgaXNTdHJvbmdQYXNzd29yZDogL14oPz0uKlthLXpdKSg/PS4qW0EtWl0pKD89LipcXGQpKD89LipbQCQhJSo/Jl0pW0EtWmEtelxcZEAkISUqPyZdezgsfSQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgU3RyaW5nIEFsZmFiw6l0aWNhXHJcbiAgICAgKi9cclxuICAgIGlzQWxwaGFiZXRpYzogL15bYS16QS1aXSskLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIEhvcmEgbm8gRm9ybWF0byBkZSAxMiBIb3Jhc1xyXG4gICAgICovXHJcbiAgICBpc1RpbWUxMkhvdXI6IC9eKDA/WzEtOV18MVswLTJdKTpcXGR7Mn0gKEFNfFBNKSQvaSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIExhdGl0dWRlXHJcbiAgICAgKi9cclxuICAgIGlzTGF0aXR1ZGU6IC9eWy0rXT8oWzEtOF0/XFxkKFxcLlxcZCspP3w5MChcXC4wKyk/KSQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgTG9uZ2l0dWRlXHJcbiAgICAgKi9cclxuICAgIGlzTG9uZ2l0dWRlOiAvXlstK10/KDE4MChcXC4wKyk/fCgoMVswLTddXFxkKXwoWzEtOV0/XFxkKSkoXFwuXFxkKyk/KSQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgRW5kZXJlw6dvIE1BQ1xyXG4gICAgICovXHJcbiAgICBpc01BQ0FkZHJlc3M6IC9eKFswLTlBLUZhLWZdezJ9WzotXSl7NX0oWzAtOUEtRmEtZl17Mn0pJC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBEYXRhIGRlIEV4cGlyYcOnw6NvIGRlIENhcnTDo28gZGUgQ3LDqWRpdG9cclxuICAgICAqL1xyXG4gICAgaXNDcmVkaXRDYXJkRXhwaXJhdGlvbjogL14oMFsxLTldfDFbMC0yXSlcXC9cXGR7Mn0kLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIE7Dum1lcm8gZGUgU2VndXJvIFNvY2lhbCAoU1NOKVxyXG4gICAgICovXHJcbiAgICBpc1NTTjogL15cXGR7M30tXFxkezJ9LVxcZHs0fSQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gc2UgdG9kb3Mgb3MgZMOtZ2l0b3Mgc8OjbyBpZ3VhaXNcclxuICAgICAqL1xyXG4gICAgaXNBbGxEaWdpdHNFcXVhbDogL14oLilcXDErJC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBQbGFjYSBkZSBWZcOtY3VsbyBkbyBNZXJjb3N1bFxyXG4gICAgICogRm9ybWF0bzogQUJDMUQyM1xyXG4gICAgICovXHJcbiAgICBpc01lcmNvc3VsTGljZW5zZVBsYXRlOiAvXltBLVpdezN9WzAtOV17MX1bQS1aXXsxfVswLTldezJ9JC8sXHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgUGxhY2EgZGUgVmXDrWN1bG8gQW50aWdhXHJcbiAgICAgKiBGb3JtYXRvOiBBQUEtMDAwMFxyXG4gICAgICovXHJcbiAgICBpc09sZExpY2Vuc2VQbGF0ZTogL15bQS1aXXszfVswLTldezR9JC9cclxuICB9O1xyXG4iXX0=
@@ -178,13 +178,14 @@ export class AgroFormValidator {
178
178
  */
179
179
  static checkValueBetween(minorFormControl, targetFormControl, majorFormControl) {
180
180
  const checkValue = (control) => {
181
- var _a, _b, _c, _d;
181
+ var _a, _b, _c;
182
182
  const formGroup = control;
183
183
  const valueA = (_a = formGroup.get(minorFormControl)) === null || _a === void 0 ? void 0 : _a.value;
184
184
  const valueB = (_b = formGroup.get(targetFormControl)) === null || _b === void 0 ? void 0 : _b.value;
185
185
  const valueC = (_c = formGroup.get(majorFormControl)) === null || _c === void 0 ? void 0 : _c.value;
186
186
  const methodName = 'checkValueBetween';
187
- if (valueA && valueB && valueC) {
187
+ const areNumbers = [valueA, valueB, valueC].every(v => v !== null && v !== undefined);
188
+ if (areNumbers) {
188
189
  if (valueB < valueA || valueB > valueC) {
189
190
  const targetControl = formGroup.get(targetFormControl);
190
191
  if (targetControl) {
@@ -192,10 +193,12 @@ export class AgroFormValidator {
192
193
  }
193
194
  return { [methodName]: true };
194
195
  }
195
- else if ((_d = formGroup.get(targetFormControl)) === null || _d === void 0 ? void 0 : _d.hasError(methodName)) {
196
+ else {
196
197
  const targetControl = formGroup.get(targetFormControl);
197
- if (targetControl) {
198
- targetControl.setErrors(null);
198
+ if (targetControl === null || targetControl === void 0 ? void 0 : targetControl.hasError(methodName)) {
199
+ const errors = Object.assign({}, targetControl.errors);
200
+ delete errors[methodName];
201
+ targetControl.setErrors(Object.keys(errors).length ? errors : null);
199
202
  }
200
203
  }
201
204
  }
@@ -225,5 +228,92 @@ export class AgroFormValidator {
225
228
  };
226
229
  return objectProperty;
227
230
  }
231
+ /**
232
+ * Valida se o campo é um CPF (Cadastro de Pessoa Física) válido.
233
+ */
234
+ static CPFValidator() {
235
+ const cpfVal = (control) => {
236
+ const cpf = (control.value || '').replace(/[^\d]/g, '');
237
+ if (!cpf) {
238
+ return null; // Não valida campo vazio, use Validators.required junto se quiser obrigatoriedade
239
+ }
240
+ if (cpf.length !== 11) {
241
+ return { cpfValidator: true };
242
+ }
243
+ // Verifica se todos os dígitos são iguais (ex.: 11111111111)
244
+ if (/^(\d)\1{10}$/.test(cpf)) {
245
+ return { cpfValidator: true };
246
+ }
247
+ // Validação dos dígitos verificadores
248
+ const calcCheckDigit = (cpfSlice, factor) => {
249
+ let total = 0;
250
+ for (const digit of cpfSlice) {
251
+ total += parseInt(digit, 10) * factor--;
252
+ }
253
+ const remainder = total % 11;
254
+ return remainder < 2 ? 0 : 11 - remainder;
255
+ };
256
+ const digit1 = calcCheckDigit(cpf.substring(0, 9), 10);
257
+ const digit2 = calcCheckDigit(cpf.substring(0, 9) + digit1, 11);
258
+ const isValid = digit1 === parseInt(cpf.charAt(9), 10) &&
259
+ digit2 === parseInt(cpf.charAt(10), 10);
260
+ return isValid ? null : { cpfValidator: true };
261
+ };
262
+ return cpfVal;
263
+ }
264
+ /**
265
+ * Validator de CNPJ (Cadastro Nacional da Pessoa Jurídica).
266
+ * @returns
267
+ */
268
+ static CNPJValidator() {
269
+ const cnpjVal = (control) => {
270
+ var _a;
271
+ const value = (_a = control.value) === null || _a === void 0 ? void 0 : _a.replace(/\D/g, '');
272
+ if (!value || value.length !== 14) {
273
+ return { cnpjValidator: true };
274
+ }
275
+ // Verifica CNPJs com todos os dígitos iguais (inválidos)
276
+ if (/^(\d)\1{13}$/.test(value)) {
277
+ return { cnpjValidator: true };
278
+ }
279
+ const validateCheckDigit = (cnpj, length) => {
280
+ const weights = length === 12
281
+ ? [5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2]
282
+ : [6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2];
283
+ const sum = cnpj
284
+ .slice(0, length)
285
+ .split('')
286
+ .reduce((acc, digit, index) => {
287
+ return acc + parseInt(digit, 10) * weights[index];
288
+ }, 0);
289
+ const remainder = sum % 11;
290
+ return remainder < 2 ? 0 : 11 - remainder;
291
+ };
292
+ const firstCheckDigit = validateCheckDigit(value, 12);
293
+ const secondCheckDigit = validateCheckDigit(value, 13);
294
+ if (firstCheckDigit !== parseInt(value.charAt(12), 10) ||
295
+ secondCheckDigit !== parseInt(value.charAt(13), 10)) {
296
+ return { cnpjValidator: true };
297
+ }
298
+ return null; // válido
299
+ };
300
+ return cnpjVal;
301
+ }
302
+ /**
303
+ * Valida se a placa do veículo é válida.
304
+ * @returns
305
+ */
306
+ static licensePlateValidator() {
307
+ const licensePlateVal = (control) => {
308
+ const value = (control.value || '').toUpperCase().trim().replace(/-/g, '');
309
+ if (!value) {
310
+ return null; // Campo vazio não é responsabilidade desse validador
311
+ }
312
+ const isValid = AGRO_REGEX.isMercosulLicensePlate.test(value) ||
313
+ AGRO_REGEX.isOldLicensePlate.test(value);
314
+ return isValid ? null : { licensePlateInvalid: true };
315
+ };
316
+ return licensePlateVal;
317
+ }
228
318
  }
229
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdyby1mb3JtLXZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3ItYWdyb25lZ29jaW8vYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiZm9ybS12YWxpZGF0b3IvYWdyby1mb3JtLXZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDNUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRWhFLE1BQU0sT0FBTyxpQkFBaUI7SUFFMUI7Ozs7Ozs7OztPQVNHO0lBQ0ksTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUF3QjtRQUNqRCxJQUFJLE9BQU8sQ0FBQyxLQUFLLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDMUQsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQzVDLE9BQU8sRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFLENBQUM7U0FDbkM7UUFDRCxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hCLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFHRDs7Ozs7Ozs7Ozs7O09BWUc7SUFDSSxNQUFNLENBQUMsb0JBQW9CLENBQUMsY0FBa0M7UUFDakUsTUFBTSxXQUFXLEdBQUcsQ0FBQyxPQUF3QixFQUFpQyxFQUFFO1lBQzVFLE1BQU0sVUFBVSxHQUFHLHFCQUFxQixDQUFDO1lBQ3pDLE1BQU0sWUFBWSxHQUFTLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNuRCxNQUFN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QUUsQ0FBQyxDQUFDO1lBQzFDLE9BQU8sRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDO1FBQ2xDLENBQUMsQ0FBQztRQUNGLE9BQU8sY0FBYyxDQUFDO0lBQzFCLENBQUM7Q0FHSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JGbiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgRGF0ZUNvbXBhcmlzb25UeXBlIH0gZnJvbSAnLi4vZW51bXMvZGF0ZS1jb21wYXJpc29uLXR5cGUuZW51bSc7XHJcbmltcG9ydCB7IEFHUk9fUkVHRVggfSBmcm9tICcuLi9jb21tb24vYWdyby1yZWdleC5jb25zdGFudCc7XHJcbmltcG9ydCB7IE51bWJlckNvbXBhcmlzb25UeXBlIH0gZnJvbSAnLi4vZW51bXMvbnVtYmVyLWNvbXBhcmlzb24tdHlwZS5lbnVtJztcclxuaW1wb3J0IHsgT2JqZWN0VXRpbHMgfSBmcm9tICcuLi9jb21tb24vYWdyby1vYmplY3QtdXRpbHMuY2xhc3MnO1xyXG5cclxuZXhwb3J0IGNsYXNzIEFncm9Gb3JtVmFsaWRhdG9yIHtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYXRvciBwYXJhIGNoZWNhciBzZSBvIGNhbXBvIMOpIHVtIGUtbWFpbFxyXG4gICAgICpcclxuICAgICAqIEBleGFtcGxlXHJcbiAgICAgKiB0aGlzLm15Rm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICogICAgIEVNQUlMX0ZJRUxEOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBBZ3JvRm9ybVZhbGlkYXRvci5lbWFpbFZhbGlkYXRvcl1dXHJcbiAgICAgKiB9KTtcclxuICAgICAqIEBwYXJhbSBjb250cm9sXHJcbiAgICAgKiBAcmV0dXJuc1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhdGljIGVtYWlsVmFsaWRhdG9yKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHsgW2tleTogc3RyaW5nXTogYW55IH0gfCBudWxsIHtcclxuICAgICAgICBpZiAoY29udHJvbC52YWx1ZSAmJiAhQUdST19SRUdFWC5pc0VtYWlsLnRlc3QoY29udHJvbC52YWx1ZSkpIHtcclxuICAgICAgICAgICAgY29udHJvbC5zZXRFcnJvcnMoeyBlbWFpbFZhbGlkYXRvcjogdHJ1ZSB9KTtcclxuICAgICAgICAgICAgcmV0dXJuIHsgZW1haWxWYWxpZGF0b3I6IHRydWUgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29udHJvbC5zZXRFcnJvcnMobnVsbCk7XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQXBsaXF1ZSBlc3NlIHZhbGlkYWRvciBlbSB1bSBjYW1wbyBkbyB0aXBvIERhdGUsIHBhcmEgdmVyaWZpY2FyIHNlIGEgZGF0YSBzZWxlY2lvbmFkYSDDqSBtYWlvciBvdSBtZW5vciBxdWUgYSBkYXRhIGF0dWFsLlxyXG4gICAgICpcclxuICAgICAqIFV0aWxpemUgbyBwYXLDom1ldHJvIGNvbXBhcmlzb25UeXBlIHBhcmEgZGVmaW5pciBzZSBhIGRhdGEgc2VsZWNpb25hZGEgZGV2ZSBzZXIgbWFpb3Igb3UgbWVub3IgcXVlIGEgZGF0YSBhdHVhbC5cclxuICAgICAqIEEgdmFsaWRhw6fDo28gc2Vyw6EgYXRyYXbDqXMgZG8gZW51bSBEYXRlQ29tcGFyaXNvblR5cGUuXHJcbiAgICAgKlxyXG4gICAgICogQGV4YW1wbGVcclxuICAgICAqIHRoaXMubXlGb3JtID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgKiAgICAgTk9NRV9DQU1QTzogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgQWdyb0Zvcm1WYWxpZGF0b3IuY29tcGFyZURhdGVXaXRoVG9kYXkoRGF0ZUNvbXBhcmlzb25UeXBlLmdyZWF0aGVyVGhhbildXVxyXG4gICAgICogfSk7XHJcbiAgICAgKiBAcGFyYW0gY29tcGFyaXNvblR5cGVcclxuICAgICAqIEByZXR1cm5zXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgY29tcGFyZURhdGVXaXRoVG9kYXkoY29tcGFyaXNvblR5cGU6IERhdGVDb21wYXJpc29uVHlwZSk6IFZhbGlkYXRvckZuIHtcclxuICAgICAgICBjb25zdCBjb21wYXJlRGF0ZSA9IChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHwgbnVsbCA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IG1ldGhvZE5hbWUgPSAnZGF0ZUNvbXBhcmlzb25Ub2RheSc7XHJcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkRGF0ZTogRGF0ZSA9IG5ldyBEYXRlKGNvbnRyb2wudmFsdWUpO1xyXG4gICAgICAgICAgICBjb25zdCBjdXJyZW50RGF0ZTogRGF0ZSA9IG5ldyBEYXRlKCk7XHJcblxyXG4gICAgICAgICAgICBjb25zdCBjb25kaXRpb25zID0ge1xyXG4gICAgICAgICAgICAgICAgW0RhdGVDb21wYXJpc29uVHlwZS5ncmVhdGhlclRoYW5dOiBzZWxlY3RlZERhdGUgPD0gY3VycmVudERhdGUsXHJcbiAgICAgICAgICAgICAgICBbRGF0ZUNvbXBhcmlzb25UeXBlLmxlc3NUaGFuXTogc2VsZWN0ZWREYXRlID49IGN1cnJlbnREYXRlXHJcbiAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICBpZiAoY29uZGl0aW9uc1tjb21wYXJpc29uVHlwZV0pIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB7IFttZXRob2ROYW1lXTogeyB2YWx1ZTogY29udHJvbC52YWx1ZSB9IH07XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgcmV0dXJuIGNvbXBhcmVEYXRlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29tcGFyYSBkb2lzIGNhbXBvcyBkbyB0aXBvIERhdGUsIHZlcmlmaWNhbmRvIHNlIG8gY2FtcG8gQSDDqSBtYWlvciBxdWUgbyBjYW1wbyBCLiBTZSBBIGZvciBtYWlvciBxdWUgQiwgZW50w6NvXHJcbiAgICAgKiBvIGNhbXBvIEEgw6kgaW52YWxpZGFkby4gQ2FzbyBjb250csOhcmlvLCBvIGNhbXBvIEEgw6kgdmFsaWRhZG8uXHJcbiAgICAgKlxyXG4gICAgICogQXBsaXF1ZSBlc3NlIGNhbXBvIG5vIEZvcm1Hcm91cCwgcGFzc2FuZG8gb3Mgbm9tZXMgZG9zIGNhbXBvcyBxdWUgZGVzZWphIGNvbXBhcmFyLlxyXG4gICAgICogQGV4YW1wbGVcclxuICAgICAqIHRoaXMubXlGb3JtID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgICAgICAgIE5PTUVfQ0FNUE9fZGF0ZUE6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICAgICAgICAgIE5PTUVfQ0FNUE9fZGF0ZUI6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF1cclxuICAgICAgICB9LCB7IHZhbGlkYXRvcjogQWdyb0Zvcm1WYWxpZGF0b3IuZGF0ZUNvbXBhcmlzb25WYWxpZGF0b3IoJ05PTUVfQ0FNUE9fZGF0ZUEnLCAnTk9NRV9DQU1QT19kYXRlQicpIH0pO1xyXG4gICAgICogQHBhcmFtIGNvbnRyb2xOYW1lQVxyXG4gICAgICogQHBhcmFtIGNvbnRyb2xOYW1lQlxyXG4gICAgICogQHJldHVybnNcclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBjb21wYXJlRGF0ZVdpdGhPdGhlckRhdGVGaWVsZChjb250cm9sTmFtZUE6IHN0cmluZywgY29udHJvbE5hbWVCOiBzdHJpbmcpOiBWYWxpZGF0b3JGbiB7XHJcbiAgICAgICAgY29uc3QgY29tcGFyZURhdGUgPSAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB8IG51bGwgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBmb3JtR3JvdXAgPSBjb250cm9sIGFzIEZvcm1Hcm91cDtcclxuICAgICAgICAgICAgY29uc3QgZGF0ZUEgPSBmb3JtR3JvdXAuZ2V0KGNvbnRyb2xOYW1lQSk/LnZhbHVlO1xyXG4gICAgICAgICAgICBjb25zdCBkYXRlQiA9IGZvcm1Hcm91cC5nZXQoY29udHJvbE5hbWVCKT8udmFsdWU7XHJcbiAgICAgICAgICAgIGNvbnN0IG1ldGhvZE5hbWUgPSAnY29tcGFyZURhdGVXaXRoT3RoZXJEYXRlRmllbGQnO1xyXG4gICAgICAgICAgICBpZiAoZGF0ZUEgJiYgZGF0ZUIpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGVBT2JqID0gbmV3IERhdGUoZGF0ZUEpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZGF0ZUJPYmogPSBuZXcgRGF0ZShkYXRlQik7XHJcbiAgICAgICAgICAgICAgICBpZiAoZGF0ZUFPYmogPCBkYXRlQk9iaikge1xyXG4gICAgICAgICAgICAgICAgICAgIGZvcm1Hcm91cC5nZXQoY29udHJvbE5hbWVBKT8uc2V0RXJyb3JzKHsgW21ldGhvZE5hbWVdOiB0cnVlIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IFttZXRob2ROYW1lXTogdHJ1ZSB9O1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChmb3JtR3JvdXAuZ2V0KGNvbnRyb2xOYW1lQSk/Lmhhc0Vycm9yKG1ldGhvZE5hbWUpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9ybUdyb3VwLmdldChjb250cm9sTmFtZUEpPy5zZXRFcnJvcnMobnVsbCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfTtcclxuICAgICAgICByZXR1cm4gY29tcGFyZURhdGU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGF0b3IgcGFyYSBjaGVjYXIgc2UgbyBjYW1wbyDDqSB1bSBuw7ptZXJvIGRlIHRlbGVmb25lIGRlIGFjb3JkbyBjb20gdW1hIG3DoXNjYXJhIGluZm9ybWFkYS5cclxuICAgICAqXHJcbiAgICAgKiBAZXhhbXBsZVxyXG4gICAgICogdGhpcy5teUZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAqICAgICBURUxFRk9ORV9GSUVMRDogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgQWdyb0Zvcm1WYWxpZGF0b3IucGhvbmVWYWxpZGF0b3IoJyg5OSkgOTk5OS05OTk5JyldXVxyXG4gICAgICogfSk7XHJcbiAgICAgKiBAcGFyYW0gbWFza1xyXG4gICAgICogQHJldHVybnNcclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBwaG9uZVZhbGlkYXRvcihtYXNrOiBzdHJpbmcpOiBWYWxpZGF0b3JGbiB7XHJcbiAgICAgICAgY29uc3QgcGhvbmVDb250cm9sVmFsaWRhdGlvbiA9IChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHwgbnVsbCA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IG1ldGhvZE5hbWUgPSAncGhvbmVWYWxpZGF0b3InO1xyXG4gICAgICAgICAgICBjb25zdCByZWdleCA9IG5ldyBSZWdFeHAoYF4ke21hc2sucmVwbGFjZSgvOS9nLCAnXFxcXGQnKS5yZXBsYWNlKC9cXCgvZywgJ1xcXFwoJykucmVwbGFjZSgvXFwpL2csICdcXFxcKScpLnJlcGxhY2UoLy0vZywgJ1xcXFwtJyl9JGApO1xyXG4gICAgICAgICAgICBpZiAoY29udHJvbC52YWx1ZSAmJiAhcmVnZXgudGVzdChjb250cm9sLnZhbHVlKSkge1xyXG4gICAgICAgICAgICAgICAgY29udHJvbC5zZXRFcnJvcnMoeyBbbWV0aG9kTmFtZV06IHRydWUgfSk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4geyBbbWV0aG9kTmFtZV06IHRydWUgfTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb250cm9sLnNldEVycm9ycyhudWxsKTtcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfTtcclxuICAgICAgICByZXR1cm4gcGhvbmVDb250cm9sVmFsaWRhdGlvbjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYXRvciBwYXJhIGNoZWNhciBzZSB1bSBjYW1wbyBkZSBuw7ptZXJvcyDDqSBtYWlvciBvdSBtZW5vciBxdWUgb3V0cm8gY2FtcG8uXHJcbiAgICAgKlxyXG4gICAgICogQXBsaXF1ZSBlc3NlIHZhbGlkYXRvciBubyBGb3JtR3JvdXAsIHBhc3NhbmRvIG9zIG5vbWVzIGRvcyBjYW1wb3MgcXVlIGRlc2VqYSBjb21wYXJhci5cclxuICAgICAqIEBleGFtcGxlXHJcbiAgICAgKiB0aGlzLm15Rm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICogICAgIE5VTUVST19BOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICogICAgIE5VTUVST19COiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdXHJcbiAgICAgKiB9LCB7IHZhbGlkYXRvcjogQWdyb0Zvcm1WYWxpZGF0b3IuY29tcGFyZU51bWJlckZpZWxkcygnTlVNRVJPX0EnLCAnTlVNRVJPX0InLCBOdW1iZXJDb21wYXJpc29uVHlwZS5FUVVBTFMpIH0pO1xyXG4gICAgICpcclxuICAgICAqIE5lc3RlIGNhc28sIGEgdmVyaWZpY2HDp8OjbyBzZXLDoSBzZSBvIE5VTUVST19BIMOpIGlndWFsIGFvIE5VTUVSQl9CLlxyXG4gICAgICogQHBhcmFtIGNvbnRyb2xOYW1lQVxyXG4gICAgICogQHBhcmFtIGNvbnRyb2xOYW1lQlxyXG4gICAgICogQHJldHVybnNcclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBjb21wYXJlTnVtYmVyRmllbGRzKGNvbnRyb2xOYW1lQTogc3RyaW5nLCBjb250cm9sTmFtZUI6IHN0cmluZywgY29tcGFyaXNvbk1ldGhvZDogTnVtYmVyQ29tcGFyaXNvblR5cGUpOiBWYWxpZGF0b3JGbiB7XHJcbiAgICAgICAgY29uc3QgY29tcGFyZU51bWJlciA9IChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHwgbnVsbCA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGZvcm1Hcm91cCA9IGNvbnRyb2wgYXMgRm9ybUdyb3VwO1xyXG4gICAgICAgICAgICBjb25zdCBudW1iZXJBID0gZm9ybUdyb3VwLmdldChjb250cm9sTmFtZUEpPy52YWx1ZTtcclxuICAgICAgICAgICAgY29uc3QgbnVtYmVyQiA9IGZvcm1Hcm91cC5nZXQoY29udHJvbE5hbWVCKT8udmFsdWU7XHJcbiAgICAgICAgICAgIGNvbnN0IG1ldGhvZE5hbWUgPSAnY29tcGFyZU51bWJlckZpZWxkcyc7XHJcbiAgICAgICAgICAgIGlmIChudW1iZXJBICYmIG51bWJlckIpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yVHlwZSA9IE51bWJlckNvbXBhcmlzb25UeXBlW2NvbXBhcmlzb25NZXRob2RdO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZXJyb3JDb25kaXRpb24gPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgW051bWJlckNvbXBhcmlzb25UeXBlLkVRVUFMU106IG51bWJlckEgIT09IG51bWJlckIsXHJcbiAgICAgICAgICAgICAgICAgICAgW051bWJlckNvbXBhcmlzb25UeXBlLkdSRUFURVJfVEhBTl06IG51bWJlckEgPD0gbnVtYmVyQixcclxuICAgICAgICAgICAgICAgICAgICBbTnVtYmVyQ29tcGFyaXNvblR5cGUuTEVTU19USEFOXTogbnVtYmVyQSA+PSBudW1iZXJCLFxyXG4gICAgICAgICAgICAgICAgICAgIFtOdW1iZXJDb21wYXJpc29uVHlwZS5HUkVBVEVSX1RIQU5fT1JfRVFVQUxdOiBudW1iZXJBIDwgbnVtYmVyQixcclxuICAgICAgICAgICAgICAgICAgICBbTnVtYmVyQ29tcGFyaXNvblR5cGUuTEVTU19USEFOX09SX0VRVUFMXTogbnVtYmVyQSA+IG51bWJlckIsXHJcbiAgICAgICAgICAgICAgICAgICAgW051bWJlckNvbXBhcmlzb25UeXBlLk5PVF9FUVVBTFNdOiBudW1iZXJBID09PSBudW1iZXJCXHJcbiAgICAgICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChlcnJvckNvbmRpdGlvbltjb21wYXJpc29uTWV0aG9kXSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRyb2xBID0gZm9ybUdyb3VwLmdldChjb250cm9sTmFtZUEpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChjb250cm9sQSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250cm9sQS5zZXRFcnJvcnMoeyBbbWV0aG9kTmFtZV06IGNvbXBhcmlzb25NZXRob2QgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IFttZXRob2ROYW1lXTogZXJyb3JUeXBlIH07XHJcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGZvcm1Hcm91cC5nZXQoY29udHJvbE5hbWVBKT8uaGFzRXJyb3IobWV0aG9kTmFtZSkpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb250cm9sQSA9IGZvcm1Hcm91cC5nZXQoY29udHJvbE5hbWVBKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoY29udHJvbEEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29udHJvbEEuc2V0RXJyb3JzKG51bGwpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9O1xyXG4gICAgICAgIHJldHVybiBjb21wYXJlTnVtYmVyO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhdG9yIHBhcmEgY2hlY2FyIHNlIHVtIHZhbG9yIGVzdMOhIGVudHJlIG9zIGRlbWFpcyB2YWxvcmVzIGRlIHRyw6pzIGZvcm1Db250cm9scy5cclxuICAgICAqXHJcbiAgICAgKiBBcGxpcXVlIGVzc2UgdmFsaWRhdG9yIG5vIEZvcm1Hcm91cCwgcGFzc2FuZG8gb3Mgbm9tZXMgZG9zIHRyw6pzIGZvcm1Db250cm9scyBxdWUgZGVzZWphIGNvbXBhcmFyLlxyXG4gICAgICogQGV4YW1wbGVcclxuICAgICAqIHRoaXMubXlGb3JtID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgKiAgICAgbWlub3JGb3JtQ29udHJvbDogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAqICAgICB0YXJnZXRGb3JtQ29udHJvbDogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAqICAgICBtYWpvckZvcm1Db250cm9sOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdXHJcbiAgICAgKiB9LCB7IHZhbGlkYXRvcjogQWdyb0Zvcm1WYWxpZGF0b3IuY2hlY2tWYWx1ZUJldHdlZW4oJ21pbm9yRm9ybUNvbnRyb2wnLCAndGFyZ2V0Rm9ybUNvbnRyb2wnLCAnbWFqb3JGb3JtQ29udHJvbCcpIH0pO1xyXG4gICAgICpcclxuICAgICAqIE5lc3RlIGNhc28sIGEgdmVyaWZpY2HDp8OjbyBzZXLDoSBzZSBvIHRhcmdldEZvcm1Db250cm9sIGVzdMOhIGVudHJlIG8gbWlub3JGb3JtQ29udHJvbCBlIG8gbWFqb3JGb3JtQ29udHJvbC5cclxuICAgICAqIEBwYXJhbSBtaW5vckZvcm1Db250cm9sXHJcbiAgICAgKiBAcGFyYW0gdGFyZ2V0Rm9ybUNvbnRyb2xcclxuICAgICAqIEBwYXJhbSBtYWpvckZvcm1Db250cm9sXHJcbiAgICAgKiBAcmV0dXJuc1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhdGljIGNoZWNrVmFsdWVCZXR3ZWVuKG1pbm9yRm9ybUNvbnRyb2w6IHN0cmluZywgdGFyZ2V0Rm9ybUNvbnRyb2w6IHN0cmluZywgbWFqb3JGb3JtQ29udHJvbDogc3RyaW5nKTogVmFsaWRhdG9yRm4ge1xyXG4gICAgICAgIGNvbnN0IGNoZWNrVmFsdWUgPSAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB8IG51bGwgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBmb3JtR3JvdXAgPSBjb250cm9sIGFzIEZvcm1Hcm91cDtcclxuICAgICAgICAgICAgY29uc3QgdmFsdWVBID0gZm9ybUdyb3VwLmdldChtaW5vckZvcm1Db250cm9sKT8udmFsdWU7XHJcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlQiA9IGZvcm1Hcm91cC5nZXQodGFyZ2V0Rm9ybUNvbnRyb2wpPy52YWx1ZTtcclxuICAgICAgICAgICAgY29uc3QgdmFsdWVDID0gZm9ybUdyb3VwLmdldChtYWpvckZvcm1Db250cm9sKT8udmFsdWU7XHJcbiAgICAgICAgICAgIGNvbnN0IG1ldGhvZE5hbWUgPSAnY2hlY2tWYWx1ZUJldHdlZW4nO1xyXG4gICAgICAgICAgICBpZiAodmFsdWVBICYmIHZhbHVlQiAmJiB2YWx1ZUMpIHtcclxuICAgICAgICAgICAgICAgIGlmICh2YWx1ZUIgPCB2YWx1ZUEgfHwgdmFsdWVCID4gdmFsdWVDKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGFyZ2V0Q29udHJvbCA9IGZvcm1Hcm91cC5nZXQodGFyZ2V0Rm9ybUNvbnRyb2wpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0YXJnZXRDb250cm9sKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldENvbnRyb2wuc2V0RXJyb3JzKHsgW21ldGhvZE5hbWVdOiB0cnVlIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBbbWV0aG9kTmFtZV06IHRydWUgfTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZm9ybUdyb3VwLmdldCh0YXJnZXRGb3JtQ29udHJvbCk/Lmhhc0Vycm9yKG1ldGhvZE5hbWUpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGFyZ2V0Q29udHJvbCA9IGZvcm1Hcm91cC5nZXQodGFyZ2V0Rm9ybUNvbnRyb2wpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0YXJnZXRDb250cm9sKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldENvbnRyb2wuc2V0RXJyb3JzKG51bGwpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9O1xyXG4gICAgICAgIHJldHVybiBjaGVja1ZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhdG9yIHBhcmEgY2hlY2FyIHNlIG8gY2FtcG8gw6kgdW0gb2JqZXRvIGUgc2UgcG9zc3VpIHVtYSBwcm9wcmllZGFkZSBlc3BlY8OtZmljYS5cclxuICAgICAqXHJcbiAgICAgKiBAZXhhbXBsZVxyXG4gICAgICogdGhpcy5teUZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAqICAgICBPQkpFVE9fRklFTEQ6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIEFncm9Gb3JtVmFsaWRhdG9yLm9iamVjdFByb3BlcnR5VmFsaWRhdG9yKCdwcm9wcmllZGFkZScpXV1cclxuICAgICAqIH0pO1xyXG4gICAgICogQHBhcmFtIHByb3BlcnR5TmFtZVxyXG4gICAgICogQHJldHVybnNcclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBvYmplY3RQcm9wZXJ0eVZhbGlkYXRvcihwcm9wZXJ0eU5hbWU6IHN0cmluZyk6IFZhbGlkYXRvckZuIHtcclxuICAgICAgICBjb25zdCBvYmplY3RQcm9wZXJ0eSA9IChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHwgbnVsbCA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IG1ldGhvZE5hbWUgPSAnb2JqZWN0UHJvcGVydHknO1xyXG4gICAgICAgICAgICBpZiAoT2JqZWN0VXRpbHMuaXNPYmplY3QoY29udHJvbC52YWx1ZSkgJiYgT2JqZWN0VXRpbHMuY29udGFpbnNQcm9wZXJ0eShjb250cm9sLnZhbHVlLCBwcm9wZXJ0eU5hbWUpKSB7XHJcbiAgICAgICAgICAgICAgICBjb250cm9sLnNldEVycm9ycyhudWxsKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnRyb2wuc2V0RXJyb3JzKHsgW21ldGhvZE5hbWVdOiB0cnVlIH0pO1xyXG4gICAgICAgICAgICByZXR1cm4geyBbbWV0aG9kTmFtZV06IHRydWUgfTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIHJldHVybiBvYmplY3RQcm9wZXJ0eTtcclxuICAgIH1cclxuXHJcblxyXG59Il19
319
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdyby1mb3JtLXZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3ItYWdyb25lZ29jaW8vYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiZm9ybS12YWxpZGF0b3IvYWdyby1mb3JtLXZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDNUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRWhFLE1BQU0sT0FBTyxpQkFBaUI7SUFFMUI7Ozs7Ozs7OztPQVNHO0lBQ0ksTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUF3QjtRQUNqRCxJQUFJLE9BQU8sQ0FBQyxLQUFLLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDMUQsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQzVDLE9BQU8sRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFLENBQUM7U0FDbkM7UUFDRCxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hCLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFHRDs7Ozs7Ozs7Ozs7O09BWUc7SUFDSSxNQUFNLENBQUMsb0JBQW9CLENBQUMsY0FBa0M7UUFDakUsTUFBTSxXQUFXLEdBQUcsQ0FBQyxPQUF3QixFQUFpQyxFQUFFO1lBQzVFLE1BQU0sVUFBVSxHQUFHLHFCQUFxQixDQUFDO1lBQ3pDLE1BQU0sWUFBWSxHQUFTLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNuRCxNQUFN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QyxFQUFFLG1CQUFtQixFQUFFLElBQUksRUFBRSxDQUFDO1FBQzFELENBQUMsQ0FBQztRQUNGLE9BQU8sZUFBZSxDQUFDO0lBQzNCLENBQUM7Q0FJSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0aW9uRXJyb3JzLCBWYWxpZGF0b3JGbiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgRGF0ZUNvbXBhcmlzb25UeXBlIH0gZnJvbSAnLi4vZW51bXMvZGF0ZS1jb21wYXJpc29uLXR5cGUuZW51bSc7XHJcbmltcG9ydCB7IEFHUk9fUkVHRVggfSBmcm9tICcuLi9jb21tb24vYWdyby1yZWdleC5jb25zdGFudCc7XHJcbmltcG9ydCB7IE51bWJlckNvbXBhcmlzb25UeXBlIH0gZnJvbSAnLi4vZW51bXMvbnVtYmVyLWNvbXBhcmlzb24tdHlwZS5lbnVtJztcclxuaW1wb3J0IHsgT2JqZWN0VXRpbHMgfSBmcm9tICcuLi9jb21tb24vYWdyby1vYmplY3QtdXRpbHMuY2xhc3MnO1xyXG5cclxuZXhwb3J0IGNsYXNzIEFncm9Gb3JtVmFsaWRhdG9yIHtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYXRvciBwYXJhIGNoZWNhciBzZSBvIGNhbXBvIMOpIHVtIGUtbWFpbFxyXG4gICAgICpcclxuICAgICAqIEBleGFtcGxlXHJcbiAgICAgKiB0aGlzLm15Rm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICogICAgIEVNQUlMX0ZJRUxEOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBBZ3JvRm9ybVZhbGlkYXRvci5lbWFpbFZhbGlkYXRvcl1dXHJcbiAgICAgKiB9KTtcclxuICAgICAqIEBwYXJhbSBjb250cm9sXHJcbiAgICAgKiBAcmV0dXJuc1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhdGljIGVtYWlsVmFsaWRhdG9yKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHsgW2tleTogc3RyaW5nXTogYW55IH0gfCBudWxsIHtcclxuICAgICAgICBpZiAoY29udHJvbC52YWx1ZSAmJiAhQUdST19SRUdFWC5pc0VtYWlsLnRlc3QoY29udHJvbC52YWx1ZSkpIHtcclxuICAgICAgICAgICAgY29udHJvbC5zZXRFcnJvcnMoeyBlbWFpbFZhbGlkYXRvcjogdHJ1ZSB9KTtcclxuICAgICAgICAgICAgcmV0dXJuIHsgZW1haWxWYWxpZGF0b3I6IHRydWUgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29udHJvbC5zZXRFcnJvcnMobnVsbCk7XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQXBsaXF1ZSBlc3NlIHZhbGlkYWRvciBlbSB1bSBjYW1wbyBkbyB0aXBvIERhdGUsIHBhcmEgdmVyaWZpY2FyIHNlIGEgZGF0YSBzZWxlY2lvbmFkYSDDqSBtYWlvciBvdSBtZW5vciBxdWUgYSBkYXRhIGF0dWFsLlxyXG4gICAgICpcclxuICAgICAqIFV0aWxpemUgbyBwYXLDom1ldHJvIGNvbXBhcmlzb25UeXBlIHBhcmEgZGVmaW5pciBzZSBhIGRhdGEgc2VsZWNpb25hZGEgZGV2ZSBzZXIgbWFpb3Igb3UgbWVub3IgcXVlIGEgZGF0YSBhdHVhbC5cclxuICAgICAqIEEgdmFsaWRhw6fDo28gc2Vyw6EgYXRyYXbDqXMgZG8gZW51bSBEYXRlQ29tcGFyaXNvblR5cGUuXHJcbiAgICAgKlxyXG4gICAgICogQGV4YW1wbGVcclxuICAgICAqIHRoaXMubXlGb3JtID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgKiAgICAgTk9NRV9DQU1QTzogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgQWdyb0Zvcm1WYWxpZGF0b3IuY29tcGFyZURhdGVXaXRoVG9kYXkoRGF0ZUNvbXBhcmlzb25UeXBlLmdyZWF0aGVyVGhhbildXVxyXG4gICAgICogfSk7XHJcbiAgICAgKiBAcGFyYW0gY29tcGFyaXNvblR5cGVcclxuICAgICAqIEByZXR1cm5zXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgY29tcGFyZURhdGVXaXRoVG9kYXkoY29tcGFyaXNvblR5cGU6IERhdGVDb21wYXJpc29uVHlwZSk6IFZhbGlkYXRvckZuIHtcclxuICAgICAgICBjb25zdCBjb21wYXJlRGF0ZSA9IChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHwgbnVsbCA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IG1ldGhvZE5hbWUgPSAnZGF0ZUNvbXBhcmlzb25Ub2RheSc7XHJcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkRGF0ZTogRGF0ZSA9IG5ldyBEYXRlKGNvbnRyb2wudmFsdWUpO1xyXG4gICAgICAgICAgICBjb25zdCBjdXJyZW50RGF0ZTogRGF0ZSA9IG5ldyBEYXRlKCk7XHJcblxyXG4gICAgICAgICAgICBjb25zdCBjb25kaXRpb25zID0ge1xyXG4gICAgICAgICAgICAgICAgW0RhdGVDb21wYXJpc29uVHlwZS5ncmVhdGhlclRoYW5dOiBzZWxlY3RlZERhdGUgPD0gY3VycmVudERhdGUsXHJcbiAgICAgICAgICAgICAgICBbRGF0ZUNvbXBhcmlzb25UeXBlLmxlc3NUaGFuXTogc2VsZWN0ZWREYXRlID49IGN1cnJlbnREYXRlXHJcbiAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICBpZiAoY29uZGl0aW9uc1tjb21wYXJpc29uVHlwZV0pIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB7IFttZXRob2ROYW1lXTogeyB2YWx1ZTogY29udHJvbC52YWx1ZSB9IH07XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgcmV0dXJuIGNvbXBhcmVEYXRlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29tcGFyYSBkb2lzIGNhbXBvcyBkbyB0aXBvIERhdGUsIHZlcmlmaWNhbmRvIHNlIG8gY2FtcG8gQSDDqSBtYWlvciBxdWUgbyBjYW1wbyBCLiBTZSBBIGZvciBtYWlvciBxdWUgQiwgZW50w6NvXHJcbiAgICAgKiBvIGNhbXBvIEEgw6kgaW52YWxpZGFkby4gQ2FzbyBjb250csOhcmlvLCBvIGNhbXBvIEEgw6kgdmFsaWRhZG8uXHJcbiAgICAgKlxyXG4gICAgICogQXBsaXF1ZSBlc3NlIGNhbXBvIG5vIEZvcm1Hcm91cCwgcGFzc2FuZG8gb3Mgbm9tZXMgZG9zIGNhbXBvcyBxdWUgZGVzZWphIGNvbXBhcmFyLlxyXG4gICAgICogQGV4YW1wbGVcclxuICAgICAqIHRoaXMubXlGb3JtID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgICAgICAgIE5PTUVfQ0FNUE9fZGF0ZUE6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICAgICAgICAgIE5PTUVfQ0FNUE9fZGF0ZUI6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF1cclxuICAgICAgICB9LCB7IHZhbGlkYXRvcjogQWdyb0Zvcm1WYWxpZGF0b3IuZGF0ZUNvbXBhcmlzb25WYWxpZGF0b3IoJ05PTUVfQ0FNUE9fZGF0ZUEnLCAnTk9NRV9DQU1QT19kYXRlQicpIH0pO1xyXG4gICAgICogQHBhcmFtIGNvbnRyb2xOYW1lQVxyXG4gICAgICogQHBhcmFtIGNvbnRyb2xOYW1lQlxyXG4gICAgICogQHJldHVybnNcclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBjb21wYXJlRGF0ZVdpdGhPdGhlckRhdGVGaWVsZChjb250cm9sTmFtZUE6IHN0cmluZywgY29udHJvbE5hbWVCOiBzdHJpbmcpOiBWYWxpZGF0b3JGbiB7XHJcbiAgICAgICAgY29uc3QgY29tcGFyZURhdGUgPSAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB8IG51bGwgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBmb3JtR3JvdXAgPSBjb250cm9sIGFzIEZvcm1Hcm91cDtcclxuICAgICAgICAgICAgY29uc3QgZGF0ZUEgPSBmb3JtR3JvdXAuZ2V0KGNvbnRyb2xOYW1lQSk/LnZhbHVlO1xyXG4gICAgICAgICAgICBjb25zdCBkYXRlQiA9IGZvcm1Hcm91cC5nZXQoY29udHJvbE5hbWVCKT8udmFsdWU7XHJcbiAgICAgICAgICAgIGNvbnN0IG1ldGhvZE5hbWUgPSAnY29tcGFyZURhdGVXaXRoT3RoZXJEYXRlRmllbGQnO1xyXG4gICAgICAgICAgICBpZiAoZGF0ZUEgJiYgZGF0ZUIpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGVBT2JqID0gbmV3IERhdGUoZGF0ZUEpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZGF0ZUJPYmogPSBuZXcgRGF0ZShkYXRlQik7XHJcbiAgICAgICAgICAgICAgICBpZiAoZGF0ZUFPYmogPCBkYXRlQk9iaikge1xyXG4gICAgICAgICAgICAgICAgICAgIGZvcm1Hcm91cC5nZXQoY29udHJvbE5hbWVBKT8uc2V0RXJyb3JzKHsgW21ldGhvZE5hbWVdOiB0cnVlIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IFttZXRob2ROYW1lXTogdHJ1ZSB9O1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChmb3JtR3JvdXAuZ2V0KGNvbnRyb2xOYW1lQSk/Lmhhc0Vycm9yKG1ldGhvZE5hbWUpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9ybUdyb3VwLmdldChjb250cm9sTmFtZUEpPy5zZXRFcnJvcnMobnVsbCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfTtcclxuICAgICAgICByZXR1cm4gY29tcGFyZURhdGU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGF0b3IgcGFyYSBjaGVjYXIgc2UgbyBjYW1wbyDDqSB1bSBuw7ptZXJvIGRlIHRlbGVmb25lIGRlIGFjb3JkbyBjb20gdW1hIG3DoXNjYXJhIGluZm9ybWFkYS5cclxuICAgICAqXHJcbiAgICAgKiBAZXhhbXBsZVxyXG4gICAgICogdGhpcy5teUZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAqICAgICBURUxFRk9ORV9GSUVMRDogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgQWdyb0Zvcm1WYWxpZGF0b3IucGhvbmVWYWxpZGF0b3IoJyg5OSkgOTk5OS05OTk5JyldXVxyXG4gICAgICogfSk7XHJcbiAgICAgKiBAcGFyYW0gbWFza1xyXG4gICAgICogQHJldHVybnNcclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBwaG9uZVZhbGlkYXRvcihtYXNrOiBzdHJpbmcpOiBWYWxpZGF0b3JGbiB7XHJcbiAgICAgICAgY29uc3QgcGhvbmVDb250cm9sVmFsaWRhdGlvbiA9IChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHwgbnVsbCA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IG1ldGhvZE5hbWUgPSAncGhvbmVWYWxpZGF0b3InO1xyXG4gICAgICAgICAgICBjb25zdCByZWdleCA9IG5ldyBSZWdFeHAoYF4ke21hc2sucmVwbGFjZSgvOS9nLCAnXFxcXGQnKS5yZXBsYWNlKC9cXCgvZywgJ1xcXFwoJykucmVwbGFjZSgvXFwpL2csICdcXFxcKScpLnJlcGxhY2UoLy0vZywgJ1xcXFwtJyl9JGApO1xyXG4gICAgICAgICAgICBpZiAoY29udHJvbC52YWx1ZSAmJiAhcmVnZXgudGVzdChjb250cm9sLnZhbHVlKSkge1xyXG4gICAgICAgICAgICAgICAgY29udHJvbC5zZXRFcnJvcnMoeyBbbWV0aG9kTmFtZV06IHRydWUgfSk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4geyBbbWV0aG9kTmFtZV06IHRydWUgfTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb250cm9sLnNldEVycm9ycyhudWxsKTtcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfTtcclxuICAgICAgICByZXR1cm4gcGhvbmVDb250cm9sVmFsaWRhdGlvbjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYXRvciBwYXJhIGNoZWNhciBzZSB1bSBjYW1wbyBkZSBuw7ptZXJvcyDDqSBtYWlvciBvdSBtZW5vciBxdWUgb3V0cm8gY2FtcG8uXHJcbiAgICAgKlxyXG4gICAgICogQXBsaXF1ZSBlc3NlIHZhbGlkYXRvciBubyBGb3JtR3JvdXAsIHBhc3NhbmRvIG9zIG5vbWVzIGRvcyBjYW1wb3MgcXVlIGRlc2VqYSBjb21wYXJhci5cclxuICAgICAqIEBleGFtcGxlXHJcbiAgICAgKiB0aGlzLm15Rm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICogICAgIE5VTUVST19BOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICogICAgIE5VTUVST19COiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdXHJcbiAgICAgKiB9LCB7IHZhbGlkYXRvcjogQWdyb0Zvcm1WYWxpZGF0b3IuY29tcGFyZU51bWJlckZpZWxkcygnTlVNRVJPX0EnLCAnTlVNRVJPX0InLCBOdW1iZXJDb21wYXJpc29uVHlwZS5FUVVBTFMpIH0pO1xyXG4gICAgICpcclxuICAgICAqIE5lc3RlIGNhc28sIGEgdmVyaWZpY2HDp8OjbyBzZXLDoSBzZSBvIE5VTUVST19BIMOpIGlndWFsIGFvIE5VTUVSQl9CLlxyXG4gICAgICogQHBhcmFtIGNvbnRyb2xOYW1lQVxyXG4gICAgICogQHBhcmFtIGNvbnRyb2xOYW1lQlxyXG4gICAgICogQHJldHVybnNcclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBjb21wYXJlTnVtYmVyRmllbGRzKGNvbnRyb2xOYW1lQTogc3RyaW5nLCBjb250cm9sTmFtZUI6IHN0cmluZywgY29tcGFyaXNvbk1ldGhvZDogTnVtYmVyQ29tcGFyaXNvblR5cGUpOiBWYWxpZGF0b3JGbiB7XHJcbiAgICAgICAgY29uc3QgY29tcGFyZU51bWJlciA9IChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHwgbnVsbCA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGZvcm1Hcm91cCA9IGNvbnRyb2wgYXMgRm9ybUdyb3VwO1xyXG4gICAgICAgICAgICBjb25zdCBudW1iZXJBID0gZm9ybUdyb3VwLmdldChjb250cm9sTmFtZUEpPy52YWx1ZTtcclxuICAgICAgICAgICAgY29uc3QgbnVtYmVyQiA9IGZvcm1Hcm91cC5nZXQoY29udHJvbE5hbWVCKT8udmFsdWU7XHJcbiAgICAgICAgICAgIGNvbnN0IG1ldGhvZE5hbWUgPSAnY29tcGFyZU51bWJlckZpZWxkcyc7XHJcbiAgICAgICAgICAgIGlmIChudW1iZXJBICYmIG51bWJlckIpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yVHlwZSA9IE51bWJlckNvbXBhcmlzb25UeXBlW2NvbXBhcmlzb25NZXRob2RdO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZXJyb3JDb25kaXRpb24gPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgW051bWJlckNvbXBhcmlzb25UeXBlLkVRVUFMU106IG51bWJlckEgIT09IG51bWJlckIsXHJcbiAgICAgICAgICAgICAgICAgICAgW051bWJlckNvbXBhcmlzb25UeXBlLkdSRUFURVJfVEhBTl06IG51bWJlckEgPD0gbnVtYmVyQixcclxuICAgICAgICAgICAgICAgICAgICBbTnVtYmVyQ29tcGFyaXNvblR5cGUuTEVTU19USEFOXTogbnVtYmVyQSA+PSBudW1iZXJCLFxyXG4gICAgICAgICAgICAgICAgICAgIFtOdW1iZXJDb21wYXJpc29uVHlwZS5HUkVBVEVSX1RIQU5fT1JfRVFVQUxdOiBudW1iZXJBIDwgbnVtYmVyQixcclxuICAgICAgICAgICAgICAgICAgICBbTnVtYmVyQ29tcGFyaXNvblR5cGUuTEVTU19USEFOX09SX0VRVUFMXTogbnVtYmVyQSA+IG51bWJlckIsXHJcbiAgICAgICAgICAgICAgICAgICAgW051bWJlckNvbXBhcmlzb25UeXBlLk5PVF9FUVVBTFNdOiBudW1iZXJBID09PSBudW1iZXJCXHJcbiAgICAgICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChlcnJvckNvbmRpdGlvbltjb21wYXJpc29uTWV0aG9kXSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRyb2xBID0gZm9ybUdyb3VwLmdldChjb250cm9sTmFtZUEpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChjb250cm9sQSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250cm9sQS5zZXRFcnJvcnMoeyBbbWV0aG9kTmFtZV06IGNvbXBhcmlzb25NZXRob2QgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IFttZXRob2ROYW1lXTogZXJyb3JUeXBlIH07XHJcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGZvcm1Hcm91cC5nZXQoY29udHJvbE5hbWVBKT8uaGFzRXJyb3IobWV0aG9kTmFtZSkpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb250cm9sQSA9IGZvcm1Hcm91cC5nZXQoY29udHJvbE5hbWVBKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoY29udHJvbEEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29udHJvbEEuc2V0RXJyb3JzKG51bGwpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9O1xyXG4gICAgICAgIHJldHVybiBjb21wYXJlTnVtYmVyO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhdG9yIHBhcmEgY2hlY2FyIHNlIHVtIHZhbG9yIGVzdMOhIGVudHJlIG9zIGRlbWFpcyB2YWxvcmVzIGRlIHRyw6pzIGZvcm1Db250cm9scy5cclxuICAgICAqXHJcbiAgICAgKiBBcGxpcXVlIGVzc2UgdmFsaWRhdG9yIG5vIEZvcm1Hcm91cCwgcGFzc2FuZG8gb3Mgbm9tZXMgZG9zIHRyw6pzIGZvcm1Db250cm9scyBxdWUgZGVzZWphIGNvbXBhcmFyLlxyXG4gICAgICogQGV4YW1wbGVcclxuICAgICAqIHRoaXMubXlGb3JtID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgKiAgICAgbWlub3JGb3JtQ29udHJvbDogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAqICAgICB0YXJnZXRGb3JtQ29udHJvbDogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAqICAgICBtYWpvckZvcm1Db250cm9sOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdXHJcbiAgICAgKiB9LCB7IHZhbGlkYXRvcjogQWdyb0Zvcm1WYWxpZGF0b3IuY2hlY2tWYWx1ZUJldHdlZW4oJ21pbm9yRm9ybUNvbnRyb2wnLCAndGFyZ2V0Rm9ybUNvbnRyb2wnLCAnbWFqb3JGb3JtQ29udHJvbCcpIH0pO1xyXG4gICAgICpcclxuICAgICAqIE5lc3RlIGNhc28sIGEgdmVyaWZpY2HDp8OjbyBzZXLDoSBzZSBvIHRhcmdldEZvcm1Db250cm9sIGVzdMOhIGVudHJlIG8gbWlub3JGb3JtQ29udHJvbCBlIG8gbWFqb3JGb3JtQ29udHJvbC5cclxuICAgICAqIEBwYXJhbSBtaW5vckZvcm1Db250cm9sXHJcbiAgICAgKiBAcGFyYW0gdGFyZ2V0Rm9ybUNvbnRyb2xcclxuICAgICAqIEBwYXJhbSBtYWpvckZvcm1Db250cm9sXHJcbiAgICAgKiBAcmV0dXJuc1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhdGljIGNoZWNrVmFsdWVCZXR3ZWVuKG1pbm9yRm9ybUNvbnRyb2w6IHN0cmluZywgdGFyZ2V0Rm9ybUNvbnRyb2w6IHN0cmluZywgbWFqb3JGb3JtQ29udHJvbDogc3RyaW5nKTogVmFsaWRhdG9yRm4ge1xyXG4gICAgICAgIGNvbnN0IGNoZWNrVmFsdWUgPSAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB8IG51bGwgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBmb3JtR3JvdXAgPSBjb250cm9sIGFzIEZvcm1Hcm91cDtcclxuICAgICAgICAgICAgY29uc3QgdmFsdWVBID0gZm9ybUdyb3VwLmdldChtaW5vckZvcm1Db250cm9sKT8udmFsdWU7XHJcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlQiA9IGZvcm1Hcm91cC5nZXQodGFyZ2V0Rm9ybUNvbnRyb2wpPy52YWx1ZTtcclxuICAgICAgICAgICAgY29uc3QgdmFsdWVDID0gZm9ybUdyb3VwLmdldChtYWpvckZvcm1Db250cm9sKT8udmFsdWU7XHJcbiAgICAgICAgICAgIGNvbnN0IG1ldGhvZE5hbWUgPSAnY2hlY2tWYWx1ZUJldHdlZW4nO1xyXG5cclxuICAgICAgICAgICAgY29uc3QgYXJlTnVtYmVycyA9IFt2YWx1ZUEsIHZhbHVlQiwgdmFsdWVDXS5ldmVyeSh2ID0+IHYgIT09IG51bGwgJiYgdiAhPT0gdW5kZWZpbmVkKTtcclxuXHJcbiAgICAgICAgICAgIGlmIChhcmVOdW1iZXJzKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodmFsdWVCIDwgdmFsdWVBIHx8IHZhbHVlQiA+IHZhbHVlQykge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRhcmdldENvbnRyb2wgPSBmb3JtR3JvdXAuZ2V0KHRhcmdldEZvcm1Db250cm9sKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAodGFyZ2V0Q29udHJvbCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRDb250cm9sLnNldEVycm9ycyh7IFttZXRob2ROYW1lXTogdHJ1ZSB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgW21ldGhvZE5hbWVdOiB0cnVlIH07XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRhcmdldENvbnRyb2wgPSBmb3JtR3JvdXAuZ2V0KHRhcmdldEZvcm1Db250cm9sKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAodGFyZ2V0Q29udHJvbD8uaGFzRXJyb3IobWV0aG9kTmFtZSkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZXJyb3JzID0geyAuLi50YXJnZXRDb250cm9sLmVycm9ycyB9O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgZXJyb3JzW21ldGhvZE5hbWVdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRDb250cm9sLnNldEVycm9ycyhPYmplY3Qua2V5cyhlcnJvcnMpLmxlbmd0aCA/IGVycm9ycyA6IG51bGwpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9O1xyXG4gICAgICAgIHJldHVybiBjaGVja1ZhbHVlO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYXRvciBwYXJhIGNoZWNhciBzZSBvIGNhbXBvIMOpIHVtIG9iamV0byBlIHNlIHBvc3N1aSB1bWEgcHJvcHJpZWRhZGUgZXNwZWPDrWZpY2EuXHJcbiAgICAgKlxyXG4gICAgICogQGV4YW1wbGVcclxuICAgICAqIHRoaXMubXlGb3JtID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgKiAgICAgT0JKRVRPX0ZJRUxEOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBBZ3JvRm9ybVZhbGlkYXRvci5vYmplY3RQcm9wZXJ0eVZhbGlkYXRvcigncHJvcHJpZWRhZGUnKV1dXHJcbiAgICAgKiB9KTtcclxuICAgICAqIEBwYXJhbSBwcm9wZXJ0eU5hbWVcclxuICAgICAqIEByZXR1cm5zXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgb2JqZWN0UHJvcGVydHlWYWxpZGF0b3IocHJvcGVydHlOYW1lOiBzdHJpbmcpOiBWYWxpZGF0b3JGbiB7XHJcbiAgICAgICAgY29uc3Qgb2JqZWN0UHJvcGVydHkgPSAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB8IG51bGwgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBtZXRob2ROYW1lID0gJ29iamVjdFByb3BlcnR5JztcclxuICAgICAgICAgICAgaWYgKE9iamVjdFV0aWxzLmlzT2JqZWN0KGNvbnRyb2wudmFsdWUpICYmIE9iamVjdFV0aWxzLmNvbnRhaW5zUHJvcGVydHkoY29udHJvbC52YWx1ZSwgcHJvcGVydHlOYW1lKSkge1xyXG4gICAgICAgICAgICAgICAgY29udHJvbC5zZXRFcnJvcnMobnVsbCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb250cm9sLnNldEVycm9ycyh7IFttZXRob2ROYW1lXTogdHJ1ZSB9KTtcclxuICAgICAgICAgICAgcmV0dXJuIHsgW21ldGhvZE5hbWVdOiB0cnVlIH07XHJcbiAgICAgICAgfTtcclxuICAgICAgICByZXR1cm4gb2JqZWN0UHJvcGVydHk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGEgc2UgbyBjYW1wbyDDqSB1bSBDUEYgKENhZGFzdHJvIGRlIFBlc3NvYSBGw61zaWNhKSB2w6FsaWRvLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhdGljIENQRlZhbGlkYXRvcigpOiBWYWxpZGF0b3JGbiB7XHJcbiAgICAgICAgY29uc3QgY3BmVmFsID0gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcclxuICAgICAgICAgICAgY29uc3QgY3BmID0gKGNvbnRyb2wudmFsdWUgfHwgJycpLnJlcGxhY2UoL1teXFxkXS9nLCAnJyk7XHJcblxyXG4gICAgICAgICAgICBpZiAoIWNwZikge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7IC8vIE7Do28gdmFsaWRhIGNhbXBvIHZhemlvLCB1c2UgVmFsaWRhdG9ycy5yZXF1aXJlZCBqdW50byBzZSBxdWlzZXIgb2JyaWdhdG9yaWVkYWRlXHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChjcGYubGVuZ3RoICE9PSAxMSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgY3BmVmFsaWRhdG9yOiB0cnVlIH07XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8vIFZlcmlmaWNhIHNlIHRvZG9zIG9zIGTDrWdpdG9zIHPDo28gaWd1YWlzIChleC46IDExMTExMTExMTExKVxyXG4gICAgICAgICAgICBpZiAoL14oXFxkKVxcMXsxMH0kLy50ZXN0KGNwZikpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB7IGNwZlZhbGlkYXRvcjogdHJ1ZSB9O1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvLyBWYWxpZGHDp8OjbyBkb3MgZMOtZ2l0b3MgdmVyaWZpY2Fkb3Jlc1xyXG4gICAgICAgICAgICBjb25zdCBjYWxjQ2hlY2tEaWdpdCA9IChjcGZTbGljZTogc3RyaW5nLCBmYWN0b3I6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgbGV0IHRvdGFsID0gMDtcclxuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgZGlnaXQgb2YgY3BmU2xpY2UpIHtcclxuICAgICAgICAgICAgICAgICAgICB0b3RhbCArPSBwYXJzZUludChkaWdpdCwgMTApICogZmFjdG9yLS07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjb25zdCByZW1haW5kZXIgPSB0b3RhbCAlIDExO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlbWFpbmRlciA8IDIgPyAwIDogMTEgLSByZW1haW5kZXI7XHJcbiAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICBjb25zdCBkaWdpdDEgPSBjYWxjQ2hlY2tEaWdpdChjcGYuc3Vic3RyaW5nKDAsIDkpLCAxMCk7XHJcbiAgICAgICAgICAgIGNvbnN0IGRpZ2l0MiA9IGNhbGNDaGVja0RpZ2l0KGNwZi5zdWJzdHJpbmcoMCwgOSkgKyBkaWdpdDEsIDExKTtcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IGlzVmFsaWQgPSBkaWdpdDEgPT09IHBhcnNlSW50KGNwZi5jaGFyQXQoOSksIDEwKSAmJlxyXG4gICAgICAgICAgICAgICAgZGlnaXQyID09PSBwYXJzZUludChjcGYuY2hhckF0KDEwKSwgMTApO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuIGlzVmFsaWQgPyBudWxsIDogeyBjcGZWYWxpZGF0b3I6IHRydWUgfTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIHJldHVybiBjcGZWYWw7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGF0b3IgZGUgQ05QSiAoQ2FkYXN0cm8gTmFjaW9uYWwgZGEgUGVzc29hIEp1csOtZGljYSkuXHJcbiAgICAgKiBAcmV0dXJucyBcclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBDTlBKVmFsaWRhdG9yKCk6IFZhbGlkYXRvckZuIHtcclxuICAgICAgICBjb25zdCBjbnBqVmFsID0gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcclxuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBjb250cm9sLnZhbHVlPy5yZXBsYWNlKC9cXEQvZywgJycpO1xyXG5cclxuICAgICAgICAgICAgaWYgKCF2YWx1ZSB8fCB2YWx1ZS5sZW5ndGggIT09IDE0KSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4geyBjbnBqVmFsaWRhdG9yOiB0cnVlIH07XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8vIFZlcmlmaWNhIENOUEpzIGNvbSB0b2RvcyBvcyBkw61naXRvcyBpZ3VhaXMgKGludsOhbGlkb3MpXHJcbiAgICAgICAgICAgIGlmICgvXihcXGQpXFwxezEzfSQvLnRlc3QodmFsdWUpKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4geyBjbnBqVmFsaWRhdG9yOiB0cnVlIH07XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGNvbnN0IHZhbGlkYXRlQ2hlY2tEaWdpdCA9IChjbnBqOiBzdHJpbmcsIGxlbmd0aDogbnVtYmVyKTogbnVtYmVyID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHdlaWdodHMgPSBsZW5ndGggPT09IDEyXHJcbiAgICAgICAgICAgICAgICAgICAgPyBbNSwgNCwgMywgMiwgOSwgOCwgNywgNiwgNSwgNCwgMywgMl1cclxuICAgICAgICAgICAgICAgICAgICA6IFs2LCA1LCA0LCAzLCAyLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyXTtcclxuXHJcbiAgICAgICAgICAgICAgICBjb25zdCBzdW0gPSBjbnBqXHJcbiAgICAgICAgICAgICAgICAgICAgLnNsaWNlKDAsIGxlbmd0aClcclxuICAgICAgICAgICAgICAgICAgICAuc3BsaXQoJycpXHJcbiAgICAgICAgICAgICAgICAgICAgLnJlZHVjZSgoYWNjLCBkaWdpdCwgaW5kZXgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFjYyArIHBhcnNlSW50KGRpZ2l0LCAxMCkgKiB3ZWlnaHRzW2luZGV4XTtcclxuICAgICAgICAgICAgICAgICAgICB9LCAwKTtcclxuXHJcbiAgICAgICAgICAgICAgICBjb25zdCByZW1haW5kZXIgPSBzdW0gJSAxMTtcclxuICAgICAgICAgICAgICAgIHJldHVybiByZW1haW5kZXIgPCAyID8gMCA6IDExIC0gcmVtYWluZGVyO1xyXG4gICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgY29uc3QgZmlyc3RDaGVja0RpZ2l0ID0gdmFsaWRhdGVDaGVja0RpZ2l0KHZhbHVlLCAxMik7XHJcbiAgICAgICAgICAgIGNvbnN0IHNlY29uZENoZWNrRGlnaXQgPSB2YWxpZGF0ZUNoZWNrRGlnaXQodmFsdWUsIDEzKTtcclxuXHJcbiAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgIGZpcnN0Q2hlY2tEaWdpdCAhPT0gcGFyc2VJbnQodmFsdWUuY2hhckF0KDEyKSwgMTApIHx8XHJcbiAgICAgICAgICAgICAgICBzZWNvbmRDaGVja0RpZ2l0ICE9PSBwYXJzZUludCh2YWx1ZS5jaGFyQXQoMTMpLCAxMClcclxuICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4geyBjbnBqVmFsaWRhdG9yOiB0cnVlIH07XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHJldHVybiBudWxsOyAvLyB2w6FsaWRvXHJcbiAgICAgICAgfTtcclxuICAgICAgICByZXR1cm4gY25walZhbDtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGEgc2UgYSBwbGFjYSBkbyB2ZcOtY3VsbyDDqSB2w6FsaWRhLlxyXG4gICAgICogQHJldHVybnMgXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgbGljZW5zZVBsYXRlVmFsaWRhdG9yKCk6IFZhbGlkYXRvckZuIHtcclxuICAgICAgICBjb25zdCBsaWNlbnNlUGxhdGVWYWwgPSAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IChjb250cm9sLnZhbHVlIHx8ICcnKS50b1VwcGVyQ2FzZSgpLnRyaW0oKS5yZXBsYWNlKC8tL2csICcnKTtcclxuXHJcbiAgICAgICAgICAgIGlmICghdmFsdWUpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBudWxsOyAvLyBDYW1wbyB2YXppbyBuw6NvIMOpIHJlc3BvbnNhYmlsaWRhZGUgZGVzc2UgdmFsaWRhZG9yXHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGNvbnN0IGlzVmFsaWQgPSBBR1JPX1JFR0VYLmlzTWVyY29zdWxMaWNlbnNlUGxhdGUudGVzdCh2YWx1ZSkgfHxcclxuICAgICAgICAgICAgICAgIEFHUk9fUkVHRVguaXNPbGRMaWNlbnNlUGxhdGUudGVzdCh2YWx1ZSk7XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gaXNWYWxpZCA/IG51bGwgOiB7IGxpY2Vuc2VQbGF0ZUludmFsaWQ6IHRydWUgfTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIHJldHVybiBsaWNlbnNlUGxhdGVWYWw7XHJcbiAgICB9XHJcblxyXG5cclxuXHJcbn0iXX0=
@@ -139,5 +139,15 @@ export var AGRO_REGEX = {
139
139
  * Validação se todos os dígitos são iguais
140
140
  */
141
141
  isAllDigitsEqual: /^(.)\1+$/,
142
+ /**
143
+ * Validação de Placa de Veículo do Mercosul
144
+ * Formato: ABC1D23
145
+ */
146
+ isMercosulLicensePlate: /^[A-Z]{3}[0-9]{1}[A-Z]{1}[0-9]{2}$/,
147
+ /**
148
+ * Validação de Placa de Veículo Antiga
149
+ * Formato: AAA-0000
150
+ */
151
+ isOldLicensePlate: /^[A-Z]{3}[0-9]{4}$/
142
152
  };
143
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdyby1yZWdleC5jb25zdGFudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3ItYWdyb25lZ29jaW8vYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tbW9uL2Fncm8tcmVnZXguY29uc3RhbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLElBQU0sVUFBVSxHQUFHO0lBQ3RCOztPQUVHO0lBQ0gsT0FBTyxFQUFFLDRCQUE0QjtJQUVyQzs7T0FFRztJQUNILGVBQWUsRUFBRSxZQUFZO0lBRTdCOztPQUVHO0lBQ0gsZUFBZSxFQUFFLGFBQWE7SUFFOUI7O09BRUc7SUFDSCxlQUFlLEVBQUUsT0FBTztJQUV4Qjs7T0FFRztJQUNILE9BQU8sRUFBRSx1QkFBdUI7SUFFaEM7O09BRUc7SUFDSCxRQUFRLEVBQUUsV0FBVztJQUVyQjs7T0FFRztJQUNILE1BQU0sRUFBRSw0RkFBNEY7SUFFcEc7O09BRUc7SUFDSCxRQUFRLEVBQUUsU0FBUztJQUVuQjs7T0FFRztJQUNILFNBQVMsRUFBRSxhQUFhO0lBRXhCOztPQUVHO0lBQ0gsY0FBYyxFQUFFLHNDQUFzQztJQUV0RDs7T0FFRztJQUNILGFBQWEsRUFBRSx3QkFBd0I7SUFFdkM7O09BRUc7SUFDSCxNQUFNLEVBQUUscUJBQXFCO0lBRTdCOztPQUVHO0lBQ0gsTUFBTSxFQUFFLDRCQUE0QjtJQUVwQzs7T0FFRztJQUNILFVBQVUsRUFBRSw4Q0FBOEM7SUFFMUQ7O09BRUc7SUFDSCxLQUFLLEVBQUUsd0RBQXdEO0lBRS9EOztPQUVHO0lBQ0gsV0FBVyxFQUFFLGdCQUFnQjtJQUU3Qjs7T0FFRztJQUNILFFBQVEsRUFBRSx3QkFBd0I7SUFFbEM7O09BRUc7SUFDSCxVQUFVLEVBQUUsWUFBWTtJQUV4Qjs7T0FFRztJQUNILGNBQWMsRUFBRSxnQkFBZ0I7SUFFaEM7O09BRUc7SUFDSCxNQUFNLEVBQUUsY0FBYztJQUV0Qjs7T0FFRztJQUNILFlBQVksRUFBRSwyQkFBMkI7SUFFekM7O09BRUc7SUFDSCxhQUFhLEVBQUUsZ0JBQWdCO0lBRS9COztPQUVHO0lBQ0gsVUFBVSxFQUFFLG1CQUFtQjtJQUUvQjs7T0FFRztJQUNILFlBQVksRUFBRSx5Q0FBeUM7SUFFdkQ7O09BRUc7SUFDSCxTQUFTLEVBQUUsMkNBQTJDO0lBRXREOztPQUVHO0lBQ0gsb0JBQW9CLEVBQUUsdUJBQXVCO0lBRTdDOztPQUVHO0lBQ0gsZ0JBQWdCLEVBQUUsc0VBQXNFO0lBRXhGOztPQUVHO0lBQ0gsWUFBWSxFQUFFLGFBQWE7SUFFM0I7O09BRUc7SUFDSCxZQUFZLEVBQUUsbUNBQW1DO0lBRWpEOztPQUVHO0lBQ0gsVUFBVSxFQUFFLHFDQUFxQztJQUVqRDs7T0FFRztJQUNILFdBQVcsRUFBRSxxREFBcUQ7SUFFbEU7O09BRUc7SUFDSCxZQUFZLEVBQUUsMkNBQTJDO0lBRXpEOztPQUVHO0lBQ0gsc0JBQXNCLEVBQUUsMEJBQTBCO0lBRWxEOztPQUVHO0lBQ0gsS0FBSyxFQUFFLHFCQUFxQjtJQUU1Qjs7T0FFRztJQUNILGdCQUFnQixFQUFFLFVBQVU7Q0FDN0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBBR1JPX1JFR0VYID0ge1xyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBFLW1haWxcclxuICAgICAqL1xyXG4gICAgaXNFbWFpbDogL15bXlxcc0BdK0BbXlxcc0BdK1xcLlteXFxzQF0rJC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBOw7ptZXJvcyBJbnRlaXJvcyBQb3NpdGl2b3NcclxuICAgICAqL1xyXG4gICAgcG9zaXRpdmVJbnRlZ2VyOiAvXlsxLTldXFxkKiQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgTsO6bWVyb3MgRGVjaW1haXMgUG9zaXRpdm9zXHJcbiAgICAgKi9cclxuICAgIHBvc2l0aXZlRGVjaW1hbDogL15cXGQqXFwuP1xcZCskLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIHN0cmluZyBxdWUgY29uc2lzdGUgYXBlbmFzIGVtIGVzcGHDp29zIGVtIGJyYW5jbyBvdSBlc3TDoSB2YXppYS5cclxuICAgICAqL1xyXG4gICAgb25seUJsYW5rU3BhY2VzOiAvXlxccyokLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIENFUCAoQ8OzZGlnbyBQb3N0YWwpXHJcbiAgICAgKi9cclxuICAgIHppcENvZGU6IC9eXFxkezh9JHxeXFxkezV9LVxcZHszfSQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgU3RyaW5nIChxdWFscXVlciBjYXJhY3RlcmUpXHJcbiAgICAgKi9cclxuICAgIGlzU3RyaW5nOiAvXltcXHNcXFNdKiQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgVVVJRFxyXG4gICAgICovXHJcbiAgICBpc1VVSUQ6IC9eWzAtOWEtZkEtRl17OH0tWzAtOWEtZkEtRl17NH0tWzEtNV1bMC05YS1mQS1GXXszfS1bODlhYkFCXVswLTlhLWZBLUZdezN9LVswLTlhLWZBLUZdezEyfSQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgTsO6bWVyb1xyXG4gICAgICovXHJcbiAgICBpc051bWJlcjogL14tP1xcZCskLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIE7Dum1lcm8gRGVjaW1hbFxyXG4gICAgICovXHJcbiAgICBpc0RlY2ltYWw6IC9eXFxkKlxcLj9cXGQrJC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBQbGFjYSBkZSBWZcOtY3Vsb1xyXG4gICAgICovXHJcbiAgICBpc0xpY2Vuc2VQbGF0ZTogL15bQS1aYS16MC05XXsxLDd9LT9bQS1aYS16MC05XXsxLDd9JC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBOw7ptZXJvIGRlIFRlbGVmb25lXHJcbiAgICAgKi9cclxuICAgIGlzUGhvbmVOdW1iZXI6IC9eXFwrP1xcZHsxLDR9LT9cXGR7NiwxMX0kLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIERhdGEgKEZvcm1hdG8gWVlZWS1NTS1ERClcclxuICAgICAqL1xyXG4gICAgaXNEYXRlOiAvXlxcZHs0fS1cXGR7Mn0tXFxkezJ9JC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBIb3JhIChGb3JtYXRvIEhIOm1tKVxyXG4gICAgICovXHJcbiAgICBpc1RpbWU6IC9eKDBcXGR8MVxcZHwyWzAtM10pOlswLTVdXFxkJC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBEYXRhIGUgSG9yYSAoRm9ybWF0byBZWVlZLU1NLUREIEhIOm1tKVxyXG4gICAgICovXHJcbiAgICBpc0RhdGVUaW1lOiAvXlxcZHs0fS1cXGR7Mn0tXFxkezJ9ICgwXFxkfDFcXGR8MlswLTNdKTpbMC01XVxcZCQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgVVJMXHJcbiAgICAgKi9cclxuICAgIGlzVVJMOiAvXihodHRwfGh0dHBzKTpcXC9cXC8oW1xcdy1dK1xcLikrW1xcdy1dKyhcXC9bXFx3LSAuLz8lJj1dKik/JC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBOw7ptZXJvIEhleGFkZWNpbWFsXHJcbiAgICAgKi9cclxuICAgIGlzSGV4TnVtYmVyOiAvXlswLTlhLWZBLUZdKyQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgQmFzZTY0XHJcbiAgICAgKi9cclxuICAgIGlzQmFzZTY0OiAvXlthLXpBLVowLTkrL10rPXswLDJ9JC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBOb21lIGRlIFVzdcOhcmlvICgzIGEgMjAgY2FyYWN0ZXJlcyBhbGZhbnVtw6lyaWNvcylcclxuICAgICAqL1xyXG4gICAgaXNVc2VybmFtZTogL15cXHd7MywyMH0kLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIEFsZmFudW3DqXJpY29cclxuICAgICAqL1xyXG4gICAgaXNBbHBoYW51bWVyaWM6IC9eW2EtekEtWjAtOV0rJC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBTbHVnIChsZXRyYXMgbWluw7pzY3VsYXMsIG7Dum1lcm9zIGUgdHJhw6dvcylcclxuICAgICAqL1xyXG4gICAgaXNTbHVnOiAvXlthLXowLTktXSskLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIE7Dum1lcm8gZGUgQ2FydMOjbyBkZSBDcsOpZGl0b1xyXG4gICAgICovXHJcbiAgICBpc0NyZWRpdENhcmQ6IC9eXFxkezR9LVxcZHs0fS1cXGR7NH0tXFxkezR9JC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBOw7ptZXJvIEhleGFkZWNpbWFsXHJcbiAgICAgKi9cclxuICAgIGlzSGV4YWRlY2ltYWw6IC9eWzAtOWEtZkEtRl0rJC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBNb2VkYVxyXG4gICAgICovXHJcbiAgICBpc0N1cnJlbmN5OiAvXlxcZCsoXFwuXFxkezEsMn0pPyQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgUG9yY2VudGFnZW1cclxuICAgICAqL1xyXG4gICAgaXNQZXJjZW50YWdlOiAvXigxMDAoXFwuMHsxLDJ9KT98WzEtOV0/XFxkKFxcLlxcZHsxLDJ9KT8pJC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBUYWcgSFRNTCBTaW1wbGVzXHJcbiAgICAgKi9cclxuICAgIGlzSFRNTFRhZzogL148KFthLXpdKykoW148XSspKig/Oj4oLiopPFxcL1xcMT58XFxzK1xcLz4pJC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBOb21lIGRlIFVzdcOhcmlvIGNvbSBFc3Bhw6dvcyAoMyBhIDIwIGNhcmFjdGVyZXMgYWxmYW51bcOpcmljb3MgZSBlc3Bhw6dvcylcclxuICAgICAqL1xyXG4gICAgaXNVc2VybmFtZVdpdGhTcGFjZXM6IC9eW2EtekEtWjAtOV8gXXszLDIwfSQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgU2VuaGEgRm9ydGUgKG3DrW5pbW8gOCBjYXJhY3RlcmVzLCB1bWEgbGV0cmEgbWluw7pzY3VsYSwgdW1hIGxldHJhIG1hacO6c2N1bGEsIHVtIG7Dum1lcm8gZSB1bSBjYXJhY3RlcmUgZXNwZWNpYWwpXHJcbiAgICAgKi9cclxuICAgIGlzU3Ryb25nUGFzc3dvcmQ6IC9eKD89LipbYS16XSkoPz0uKltBLVpdKSg/PS4qXFxkKSg/PS4qW0AkISUqPyZdKVtBLVphLXpcXGRAJCElKj8mXXs4LH0kLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIFN0cmluZyBBbGZhYsOpdGljYVxyXG4gICAgICovXHJcbiAgICBpc0FscGhhYmV0aWM6IC9eW2EtekEtWl0rJC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBIb3JhIG5vIEZvcm1hdG8gZGUgMTIgSG9yYXNcclxuICAgICAqL1xyXG4gICAgaXNUaW1lMTJIb3VyOiAvXigwP1sxLTldfDFbMC0yXSk6XFxkezJ9IChBTXxQTSkkL2ksXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBMYXRpdHVkZVxyXG4gICAgICovXHJcbiAgICBpc0xhdGl0dWRlOiAvXlstK10/KFsxLThdP1xcZChcXC5cXGQrKT98OTAoXFwuMCspPykkLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIExvbmdpdHVkZVxyXG4gICAgICovXHJcbiAgICBpc0xvbmdpdHVkZTogL15bLStdPygxODAoXFwuMCspP3woKDFbMC03XVxcZCl8KFsxLTldP1xcZCkpKFxcLlxcZCspPykkLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIEVuZGVyZcOnbyBNQUNcclxuICAgICAqL1xyXG4gICAgaXNNQUNBZGRyZXNzOiAvXihbMC05QS1GYS1mXXsyfVs6LV0pezV9KFswLTlBLUZhLWZdezJ9KSQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgRGF0YSBkZSBFeHBpcmHDp8OjbyBkZSBDYXJ0w6NvIGRlIENyw6lkaXRvXHJcbiAgICAgKi9cclxuICAgIGlzQ3JlZGl0Q2FyZEV4cGlyYXRpb246IC9eKDBbMS05XXwxWzAtMl0pXFwvXFxkezJ9JC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBOw7ptZXJvIGRlIFNlZ3VybyBTb2NpYWwgKFNTTilcclxuICAgICAqL1xyXG4gICAgaXNTU046IC9eXFxkezN9LVxcZHsyfS1cXGR7NH0kLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIHNlIHRvZG9zIG9zIGTDrWdpdG9zIHPDo28gaWd1YWlzXHJcbiAgICAgKi9cclxuICAgIGlzQWxsRGlnaXRzRXF1YWw6IC9eKC4pXFwxKyQvLFxyXG4gIH07XHJcbiJdfQ==
153
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdyby1yZWdleC5jb25zdGFudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3ItYWdyb25lZ29jaW8vYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tbW9uL2Fncm8tcmVnZXguY29uc3RhbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLElBQU0sVUFBVSxHQUFHO0lBQ3RCOztPQUVHO0lBQ0gsT0FBTyxFQUFFLDRCQUE0QjtJQUVyQzs7T0FFRztJQUNILGVBQWUsRUFBRSxZQUFZO0lBRTdCOztPQUVHO0lBQ0gsZUFBZSxFQUFFLGFBQWE7SUFFOUI7O09BRUc7SUFDSCxlQUFlLEVBQUUsT0FBTztJQUV4Qjs7T0FFRztJQUNILE9BQU8sRUFBRSx1QkFBdUI7SUFFaEM7O09BRUc7SUFDSCxRQUFRLEVBQUUsV0FBVztJQUVyQjs7T0FFRztJQUNILE1BQU0sRUFBRSw0RkFBNEY7SUFFcEc7O09BRUc7SUFDSCxRQUFRLEVBQUUsU0FBUztJQUVuQjs7T0FFRztJQUNILFNBQVMsRUFBRSxhQUFhO0lBRXhCOztPQUVHO0lBQ0gsY0FBYyxFQUFFLHNDQUFzQztJQUV0RDs7T0FFRztJQUNILGFBQWEsRUFBRSx3QkFBd0I7SUFFdkM7O09BRUc7SUFDSCxNQUFNLEVBQUUscUJBQXFCO0lBRTdCOztPQUVHO0lBQ0gsTUFBTSxFQUFFLDRCQUE0QjtJQUVwQzs7T0FFRztJQUNILFVBQVUsRUFBRSw4Q0FBOEM7SUFFMUQ7O09BRUc7SUFDSCxLQUFLLEVBQUUsd0RBQXdEO0lBRS9EOztPQUVHO0lBQ0gsV0FBVyxFQUFFLGdCQUFnQjtJQUU3Qjs7T0FFRztJQUNILFFBQVEsRUFBRSx3QkFBd0I7SUFFbEM7O09BRUc7SUFDSCxVQUFVLEVBQUUsWUFBWTtJQUV4Qjs7T0FFRztJQUNILGNBQWMsRUFBRSxnQkFBZ0I7SUFFaEM7O09BRUc7SUFDSCxNQUFNLEVBQUUsY0FBYztJQUV0Qjs7T0FFRztJQUNILFlBQVksRUFBRSwyQkFBMkI7SUFFekM7O09BRUc7SUFDSCxhQUFhLEVBQUUsZ0JBQWdCO0lBRS9COztPQUVHO0lBQ0gsVUFBVSxFQUFFLG1CQUFtQjtJQUUvQjs7T0FFRztJQUNILFlBQVksRUFBRSx5Q0FBeUM7SUFFdkQ7O09BRUc7SUFDSCxTQUFTLEVBQUUsMkNBQTJDO0lBRXREOztPQUVHO0lBQ0gsb0JBQW9CLEVBQUUsdUJBQXVCO0lBRTdDOztPQUVHO0lBQ0gsZ0JBQWdCLEVBQUUsc0VBQXNFO0lBRXhGOztPQUVHO0lBQ0gsWUFBWSxFQUFFLGFBQWE7SUFFM0I7O09BRUc7SUFDSCxZQUFZLEVBQUUsbUNBQW1DO0lBRWpEOztPQUVHO0lBQ0gsVUFBVSxFQUFFLHFDQUFxQztJQUVqRDs7T0FFRztJQUNILFdBQVcsRUFBRSxxREFBcUQ7SUFFbEU7O09BRUc7SUFDSCxZQUFZLEVBQUUsMkNBQTJDO0lBRXpEOztPQUVHO0lBQ0gsc0JBQXNCLEVBQUUsMEJBQTBCO0lBRWxEOztPQUVHO0lBQ0gsS0FBSyxFQUFFLHFCQUFxQjtJQUU1Qjs7T0FFRztJQUNILGdCQUFnQixFQUFFLFVBQVU7SUFFNUI7OztPQUdHO0lBQ0gsc0JBQXNCLEVBQUUsb0NBQW9DO0lBRzVEOzs7T0FHRztJQUNILGlCQUFpQixFQUFFLG9CQUFvQjtDQUN4QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IEFHUk9fUkVHRVggPSB7XHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIEUtbWFpbFxyXG4gICAgICovXHJcbiAgICBpc0VtYWlsOiAvXlteXFxzQF0rQFteXFxzQF0rXFwuW15cXHNAXSskLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIE7Dum1lcm9zIEludGVpcm9zIFBvc2l0aXZvc1xyXG4gICAgICovXHJcbiAgICBwb3NpdGl2ZUludGVnZXI6IC9eWzEtOV1cXGQqJC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBOw7ptZXJvcyBEZWNpbWFpcyBQb3NpdGl2b3NcclxuICAgICAqL1xyXG4gICAgcG9zaXRpdmVEZWNpbWFsOiAvXlxcZCpcXC4/XFxkKyQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgc3RyaW5nIHF1ZSBjb25zaXN0ZSBhcGVuYXMgZW0gZXNwYcOnb3MgZW0gYnJhbmNvIG91IGVzdMOhIHZhemlhLlxyXG4gICAgICovXHJcbiAgICBvbmx5QmxhbmtTcGFjZXM6IC9eXFxzKiQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgQ0VQIChDw7NkaWdvIFBvc3RhbClcclxuICAgICAqL1xyXG4gICAgemlwQ29kZTogL15cXGR7OH0kfF5cXGR7NX0tXFxkezN9JC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBTdHJpbmcgKHF1YWxxdWVyIGNhcmFjdGVyZSlcclxuICAgICAqL1xyXG4gICAgaXNTdHJpbmc6IC9eW1xcc1xcU10qJC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBVVUlEXHJcbiAgICAgKi9cclxuICAgIGlzVVVJRDogL15bMC05YS1mQS1GXXs4fS1bMC05YS1mQS1GXXs0fS1bMS01XVswLTlhLWZBLUZdezN9LVs4OWFiQUJdWzAtOWEtZkEtRl17M30tWzAtOWEtZkEtRl17MTJ9JC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBOw7ptZXJvXHJcbiAgICAgKi9cclxuICAgIGlzTnVtYmVyOiAvXi0/XFxkKyQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgTsO6bWVybyBEZWNpbWFsXHJcbiAgICAgKi9cclxuICAgIGlzRGVjaW1hbDogL15cXGQqXFwuP1xcZCskLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIFBsYWNhIGRlIFZlw61jdWxvXHJcbiAgICAgKi9cclxuICAgIGlzTGljZW5zZVBsYXRlOiAvXltBLVphLXowLTldezEsN30tP1tBLVphLXowLTldezEsN30kLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIE7Dum1lcm8gZGUgVGVsZWZvbmVcclxuICAgICAqL1xyXG4gICAgaXNQaG9uZU51bWJlcjogL15cXCs/XFxkezEsNH0tP1xcZHs2LDExfSQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgRGF0YSAoRm9ybWF0byBZWVlZLU1NLUREKVxyXG4gICAgICovXHJcbiAgICBpc0RhdGU6IC9eXFxkezR9LVxcZHsyfS1cXGR7Mn0kLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIEhvcmEgKEZvcm1hdG8gSEg6bW0pXHJcbiAgICAgKi9cclxuICAgIGlzVGltZTogL14oMFxcZHwxXFxkfDJbMC0zXSk6WzAtNV1cXGQkLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIERhdGEgZSBIb3JhIChGb3JtYXRvIFlZWVktTU0tREQgSEg6bW0pXHJcbiAgICAgKi9cclxuICAgIGlzRGF0ZVRpbWU6IC9eXFxkezR9LVxcZHsyfS1cXGR7Mn0gKDBcXGR8MVxcZHwyWzAtM10pOlswLTVdXFxkJC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBVUkxcclxuICAgICAqL1xyXG4gICAgaXNVUkw6IC9eKGh0dHB8aHR0cHMpOlxcL1xcLyhbXFx3LV0rXFwuKStbXFx3LV0rKFxcL1tcXHctIC4vPyUmPV0qKT8kLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIE7Dum1lcm8gSGV4YWRlY2ltYWxcclxuICAgICAqL1xyXG4gICAgaXNIZXhOdW1iZXI6IC9eWzAtOWEtZkEtRl0rJC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBCYXNlNjRcclxuICAgICAqL1xyXG4gICAgaXNCYXNlNjQ6IC9eW2EtekEtWjAtOSsvXSs9ezAsMn0kLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIE5vbWUgZGUgVXN1w6FyaW8gKDMgYSAyMCBjYXJhY3RlcmVzIGFsZmFudW3DqXJpY29zKVxyXG4gICAgICovXHJcbiAgICBpc1VzZXJuYW1lOiAvXlxcd3szLDIwfSQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgQWxmYW51bcOpcmljb1xyXG4gICAgICovXHJcbiAgICBpc0FscGhhbnVtZXJpYzogL15bYS16QS1aMC05XSskLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIFNsdWcgKGxldHJhcyBtaW7DunNjdWxhcywgbsO6bWVyb3MgZSB0cmHDp29zKVxyXG4gICAgICovXHJcbiAgICBpc1NsdWc6IC9eW2EtejAtOS1dKyQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgTsO6bWVybyBkZSBDYXJ0w6NvIGRlIENyw6lkaXRvXHJcbiAgICAgKi9cclxuICAgIGlzQ3JlZGl0Q2FyZDogL15cXGR7NH0tXFxkezR9LVxcZHs0fS1cXGR7NH0kLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIE7Dum1lcm8gSGV4YWRlY2ltYWxcclxuICAgICAqL1xyXG4gICAgaXNIZXhhZGVjaW1hbDogL15bMC05YS1mQS1GXSskLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIE1vZWRhXHJcbiAgICAgKi9cclxuICAgIGlzQ3VycmVuY3k6IC9eXFxkKyhcXC5cXGR7MSwyfSk/JC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBQb3JjZW50YWdlbVxyXG4gICAgICovXHJcbiAgICBpc1BlcmNlbnRhZ2U6IC9eKDEwMChcXC4wezEsMn0pP3xbMS05XT9cXGQoXFwuXFxkezEsMn0pPykkLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIFRhZyBIVE1MIFNpbXBsZXNcclxuICAgICAqL1xyXG4gICAgaXNIVE1MVGFnOiAvXjwoW2Etel0rKShbXjxdKykqKD86PiguKik8XFwvXFwxPnxcXHMrXFwvPikkLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIE5vbWUgZGUgVXN1w6FyaW8gY29tIEVzcGHDp29zICgzIGEgMjAgY2FyYWN0ZXJlcyBhbGZhbnVtw6lyaWNvcyBlIGVzcGHDp29zKVxyXG4gICAgICovXHJcbiAgICBpc1VzZXJuYW1lV2l0aFNwYWNlczogL15bYS16QS1aMC05XyBdezMsMjB9JC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBTZW5oYSBGb3J0ZSAobcOtbmltbyA4IGNhcmFjdGVyZXMsIHVtYSBsZXRyYSBtaW7DunNjdWxhLCB1bWEgbGV0cmEgbWFpw7pzY3VsYSwgdW0gbsO6bWVybyBlIHVtIGNhcmFjdGVyZSBlc3BlY2lhbClcclxuICAgICAqL1xyXG4gICAgaXNTdHJvbmdQYXNzd29yZDogL14oPz0uKlthLXpdKSg/PS4qW0EtWl0pKD89LipcXGQpKD89LipbQCQhJSo/Jl0pW0EtWmEtelxcZEAkISUqPyZdezgsfSQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgU3RyaW5nIEFsZmFiw6l0aWNhXHJcbiAgICAgKi9cclxuICAgIGlzQWxwaGFiZXRpYzogL15bYS16QS1aXSskLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIEhvcmEgbm8gRm9ybWF0byBkZSAxMiBIb3Jhc1xyXG4gICAgICovXHJcbiAgICBpc1RpbWUxMkhvdXI6IC9eKDA/WzEtOV18MVswLTJdKTpcXGR7Mn0gKEFNfFBNKSQvaSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIExhdGl0dWRlXHJcbiAgICAgKi9cclxuICAgIGlzTGF0aXR1ZGU6IC9eWy0rXT8oWzEtOF0/XFxkKFxcLlxcZCspP3w5MChcXC4wKyk/KSQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgTG9uZ2l0dWRlXHJcbiAgICAgKi9cclxuICAgIGlzTG9uZ2l0dWRlOiAvXlstK10/KDE4MChcXC4wKyk/fCgoMVswLTddXFxkKXwoWzEtOV0/XFxkKSkoXFwuXFxkKyk/KSQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgRW5kZXJlw6dvIE1BQ1xyXG4gICAgICovXHJcbiAgICBpc01BQ0FkZHJlc3M6IC9eKFswLTlBLUZhLWZdezJ9WzotXSl7NX0oWzAtOUEtRmEtZl17Mn0pJC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBEYXRhIGRlIEV4cGlyYcOnw6NvIGRlIENhcnTDo28gZGUgQ3LDqWRpdG9cclxuICAgICAqL1xyXG4gICAgaXNDcmVkaXRDYXJkRXhwaXJhdGlvbjogL14oMFsxLTldfDFbMC0yXSlcXC9cXGR7Mn0kLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIE7Dum1lcm8gZGUgU2VndXJvIFNvY2lhbCAoU1NOKVxyXG4gICAgICovXHJcbiAgICBpc1NTTjogL15cXGR7M30tXFxkezJ9LVxcZHs0fSQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gc2UgdG9kb3Mgb3MgZMOtZ2l0b3Mgc8OjbyBpZ3VhaXNcclxuICAgICAqL1xyXG4gICAgaXNBbGxEaWdpdHNFcXVhbDogL14oLilcXDErJC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBQbGFjYSBkZSBWZcOtY3VsbyBkbyBNZXJjb3N1bFxyXG4gICAgICogRm9ybWF0bzogQUJDMUQyM1xyXG4gICAgICovXHJcbiAgICBpc01lcmNvc3VsTGljZW5zZVBsYXRlOiAvXltBLVpdezN9WzAtOV17MX1bQS1aXXsxfVswLTldezJ9JC8sXHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgUGxhY2EgZGUgVmXDrWN1bG8gQW50aWdhXHJcbiAgICAgKiBGb3JtYXRvOiBBQUEtMDAwMFxyXG4gICAgICovXHJcbiAgICBpc09sZExpY2Vuc2VQbGF0ZTogL15bQS1aXXszfVswLTldezR9JC9cclxuICB9O1xyXG4iXX0=