UNPKG

@uex/web-extensions

Version:

Uex extensions for Angular 6+ web projects

282 lines 20.5 kB
/** * @fileoverview added by tsickle * Generated from: lib/modules/form/form.mask.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import * as _ from "lodash"; import createNumberMask from "text-mask-addons/dist/createNumberMask.js"; import { conformToMask } from "text-mask-core/dist/textMaskCore"; // Configuração das mascaras padrão: https://github.com/text-mask/text-mask/blob/master/componentDocumentation.md and https://github.com/text-mask/text-mask/tree/master/addons const ɵ0 = /** * @param {?} value * @return {?} */ value => { /** @type {?} */ const numbers = value.match(/\d/g); /** @type {?} */ const length = numbers ? numbers.join("").length : 0; if (length > 10) { return [ "(", /[0-9]/, /[0-9]/, ")", " ", /[0-9]/, /[0-9]/, /[0-9]/, /[0-9]/, /[0-9]/, "-", /[0-9]/, /[0-9]/, /[0-9]/, /[0-9]/ ]; } else { return [ "(", /[0-9]/, /[0-9]/, ")", " ", /[0-9]/, /[0-9]/, /[0-9]/, /[0-9]/, "-", /[0-9]/, /[0-9]/, /[0-9]/, /[0-9]/ ]; } }; /** @type {?} */ export const FormMasks = { money: { mask: createNumberMask({ prefix: "R$ ", thousandsSeparatorSymbol: ".", decimalSymbol: ",", allowDecimal: true, allowNegative: true }) }, percentage: { mask: createNumberMask({ prefix: "", thousandsSeparatorSymbol: ".", decimalSymbol: ",", allowNegative: false, allowDecimal: true }) }, salary: { mask: createNumberMask({ prefix: "R$ ", thousandsSeparatorSymbol: ".", decimalSymbol: ",", allowDecimal: true }) }, phone: { mask: (ɵ0), guide: false }, cpf: { mask: [ /[0-9]/, /[0-9]/, /[0-9]/, ".", /[0-9]/, /[0-9]/, /[0-9]/, ".", /[0-9]/, /[0-9]/, /[0-9]/, "-", /[0-9]/, /[0-9]/ ], guide: false }, cnpj: { mask: [ /[0-9]/, /[0-9]/, ".", /[0-9]/, /[0-9]/, /[0-9]/, ".", /[0-9]/, /[0-9]/, /[0-9]/, "/", /[0-9]/, /[0-9]/, /[0-9]/, /[0-9]/, "-", /[0-9]/, /[0-9]/ ], guide: false }, rg: { mask: [ /[0-9]/, /[0-9]/, ".", /[0-9]/, /[0-9]/, /[0-9]/, ".", /[0-9]/, /[0-9]/, /[0-9]/, "-", /[0-9]/ ], guide: false }, cep: { mask: [ /[0-9]/, /[0-9]/, ".", /[0-9]/, /[0-9]/, /[0-9]/, "-", /[0-9]/, /[0-9]/, /[0-9]/ ], guide: false }, date: { mask: [ /[0-9]/, /[0-9]/, "/", /[0-9]/, /[0-9]/, "/", /[0-9]/, /[0-9]/, /[0-9]/, /[0-9]/ ], guide: false }, time: { mask: [/[0-9]/, /[0-9]/, ":", /[0-9]/, /[0-9]/], guide: false }, creditcard: { mask: [ /[0-9]/, /[0-9]/, /[0-9]/, /[0-9]/, " ", /[0-9]/, /[0-9]/, /[0-9]/, /[0-9]/, " ", /[0-9]/, /[0-9]/, /[0-9]/, /[0-9]/, " ", /[0-9]/, /[0-9]/, /[0-9]/, /[0-9]/ ], guide: false }, creditcard_validity: { mask: [/[0-9]/, /[0-9]/, "/", /[0-9]/, /[0-9]/, /[0-9]/, /[0-9]/], guide: false } }; /** * @param {?} value * @param {?} info * @return {?} */ function GetCurrentMask(value, info) { /** @type {?} */ let rawValue = value.replace(/[^\d]/g, ""); /** @type {?} */ const rawLength = rawValue.length; /** @type {?} */ const prefixMask = ["R", "$", " "]; /** @type {?} */ const decimalMask = [",", /\d/, /\d/]; /** @type {?} */ const integerLength = rawLength > 3 ? rawLength - 2 : 1; /** @type {?} */ const integerMask = []; for (let x = 0; x < integerLength; x++) { /** @type {?} */ const length = integerMask.filter((/** * @param {?} m * @return {?} */ (m) => m !== ".")).length; if (length && length % 3 === 0) integerMask.push("."); integerMask.push(/\d/); } return [...prefixMask, ...integerMask.reverse(), ...decimalMask]; } /** * @param {?} mask * @return {?} */ export function GetMask(mask) { if (_.isString(mask) && FormMasks[mask]) { return FormMasks[mask]; } else { return mask; } } /** * @param {?} schema * @return {?} */ export function SetupSchemaMask(schema) { /** @type {?} */ const mask_name = ((/** @type {?} */ (schema))).mask; if (!mask_name || !schema.value) return; /** @type {?} */ const mask = GetMask(mask_name); if (mask.mask) { /** @type {?} */ let masks = []; if (_.isArray(mask.mask)) { masks = mask.mask; } else if (_.isFunction(mask.mask)) { masks = mask.mask(schema.value); } schema.value = ((/** @type {?} */ (conformToMask)))(schema.value, masks.filter((/** * @param {?} item * @return {?} */ item => item !== "[]")), { guide: false }).conformedValue; } } export { ɵ0 }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5tYXNrLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHVleC93ZWItZXh0ZW5zaW9ucy8iLCJzb3VyY2VzIjpbImxpYi9tb2R1bGVzL2Zvcm0vZm9ybS5tYXNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxnQkFBZ0IsTUFBTSwyQ0FBMkMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7OztBQWlDdkQsS0FBSyxDQUFDLEVBQUU7O1VBQ04sT0FBTyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDOztVQUM1QixNQUFNLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwRCxJQUFJLE1BQU0sR0FBRyxFQUFFLEVBQUU7UUFDZixPQUFPO1lBQ0wsR0FBRztZQUNILE9BQU87WUFDUCxPQUFPO1lBQ1AsR0FBRztZQUNILEdBQUc7WUFDSCxPQUFPO1lBQ1AsT0FBTztZQUNQLE9BQU87WUFDUCxPQUFPO1lBQ1AsT0FBTztZQUNQLEdBQUc7WUFDSCxPQUFPO1lBQ1AsT0FBTztZQUNQLE9BQU87WUFDUCxPQUFPO1NBQ1IsQ0FBQztLQUNIO1NBQU07UUFDTCxPQUFPO1lBQ0wsR0FBRztZQUNILE9BQU87WUFDUCxPQUFPO1lBQ1AsR0FBRztZQUNILEdBQUc7WUFDSCxPQUFPO1lBQ1AsT0FBTztZQUNQLE9BQU87WUFDUCxPQUFPO1lBQ1AsR0FBRztZQUNILE9BQU87WUFDUCxPQUFPO1lBQ1AsT0FBTztZQUNQLE9BQU87U0FDUixDQUFDO0tBQ0g7QUFDSCxDQUFDOztBQW5FTCxNQUFNLE9BQU8sU0FBUyxHQUFHO0lBQ3ZCLEtBQUssRUFBRTtRQUNMLElBQUksRUFBRSxnQkFBZ0IsQ0FBQztZQUNyQixNQUFNLEVB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LENBQUMsSUFBSSxDQUFDLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQ3ZDLE9BQU8sU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ3hCO1NBQU07UUFDTCxPQUFPLElBQUksQ0FBQztLQUNiO0FBQ0gsQ0FBQzs7Ozs7QUFFRCxNQUFNLFVBQVUsZUFBZSxDQUFDLE1BQXNCOztVQUM5QyxTQUFTLEdBQUcsQ0FBQyxtQkFBb0IsTUFBTSxFQUFBLENBQUMsQ0FBQyxJQUFJO0lBRW5ELElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSztRQUFFLE9BQU87O1VBRWxDLElBQUksR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDO0lBRS9CLElBQUksSUFBSSxDQUFDLElBQUksRUFBRTs7WUFDVCxLQUFLLEdBQWUsRUFBRTtRQUUxQixJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3hCLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1NBQ25CO2FBQU0sSUFBSSxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNsQyxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDakM7UUFFRCxNQUFNLENBQUMsS0FBSyxHQUFHLENBQUMsbUJBQUssYUFBYSxFQUFBLENBQUMsQ0FDakMsTUFBTSxDQUFDLEtBQUssRUFDWixLQUFLLENBQUMsTUFBTTs7OztRQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLElBQUksRUFBQyxFQUNuQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FDakIsQ0FBQyxjQUFjLENBQUM7S0FDbEI7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgXyBmcm9tIFwibG9kYXNoXCI7XHJcbmltcG9ydCBjcmVhdGVOdW1iZXJNYXNrIGZyb20gXCJ0ZXh0LW1hc2stYWRkb25zL2Rpc3QvY3JlYXRlTnVtYmVyTWFzay5qc1wiO1xyXG5pbXBvcnQgeyBjb25mb3JtVG9NYXNrIH0gZnJvbSBcInRleHQtbWFzay1jb3JlL2Rpc3QvdGV4dE1hc2tDb3JlXCI7XHJcblxyXG5pbXBvcnQgeyBGb3JtU2NoZW1hRGF0YSwgRm9ybVRleHRTY2hlbWFEYXRhIH0gZnJvbSBcIi4vZm9ybS5pbnRlcmZhY2VcIjtcclxuXHJcbi8vIENvbmZpZ3VyYcOnw6NvIGRhcyBtYXNjYXJhcyBwYWRyw6NvOiBodHRwczovL2dpdGh1Yi5jb20vdGV4dC1tYXNrL3RleHQtbWFzay9ibG9iL21hc3Rlci9jb21wb25lbnREb2N1bWVudGF0aW9uLm1kIGFuZCBodHRwczovL2dpdGh1Yi5jb20vdGV4dC1tYXNrL3RleHQtbWFzay90cmVlL21hc3Rlci9hZGRvbnNcclxuZXhwb3J0IGNvbnN0IEZvcm1NYXNrcyA9IHtcclxuICBtb25leToge1xyXG4gICAgbWFzazogY3JlYXRlTnVtYmVyTWFzayh7XHJcbiAgICAgIHByZWZpeDogXCJSJCBcIixcclxuICAgICAgdGhvdXNhbmRzU2VwYXJhdG9yU3ltYm9sOiBcIi5cIixcclxuICAgICAgZGVjaW1hbFN5bWJvbDogXCIsXCIsXHJcbiAgICAgIGFsbG93RGVjaW1hbDogdHJ1ZSxcclxuICAgICAgYWxsb3dOZWdhdGl2ZTogdHJ1ZVxyXG4gICAgfSlcclxuICB9LFxyXG4gIHBlcmNlbnRhZ2U6IHtcclxuICAgIG1hc2s6IGNyZWF0ZU51bWJlck1hc2soe1xyXG4gICAgICBwcmVmaXg6IFwiXCIsXHJcbiAgICAgIHRob3VzYW5kc1NlcGFyYXRvclN5bWJvbDogXCIuXCIsXHJcbiAgICAgIGRlY2ltYWxTeW1ib2w6IFwiLFwiLFxyXG4gICAgICBhbGxvd05lZ2F0aXZlOiBmYWxzZSxcclxuICAgICAgYWxsb3dEZWNpbWFsOiB0cnVlXHJcbiAgICB9KVxyXG4gIH0sXHJcbiAgc2FsYXJ5OiB7XHJcbiAgICBtYXNrOiBjcmVhdGVOdW1iZXJNYXNrKHtcclxuICAgICAgcHJlZml4OiBcIlIkIFwiLFxyXG4gICAgICB0aG91c2FuZHNTZXBhcmF0b3JTeW1ib2w6IFwiLlwiLFxyXG4gICAgICBkZWNpbWFsU3ltYm9sOiBcIixcIixcclxuICAgICAgYWxsb3dEZWNpbWFsOiB0cnVlXHJcbiAgICB9KVxyXG4gIH0sXHJcbiAgcGhvbmU6IHtcclxuICAgIG1hc2s6IHZhbHVlID0+IHtcclxuICAgICAgY29uc3QgbnVtYmVycyA9IHZhbHVlLm1hdGNoKC9cXGQvZyk7XHJcbiAgICAgIGNvbnN0IGxlbmd0aCA9IG51bWJlcnMgPyBudW1iZXJzLmpvaW4oXCJcIikubGVuZ3RoIDogMDtcclxuICAgICAgaWYgKGxlbmd0aCA+IDEwKSB7XHJcbiAgICAgICAgcmV0dXJuIFtcclxuICAgICAgICAgIFwiKFwiLFxyXG4gICAgICAgICAgL1swLTldLyxcclxuICAgICAgICAgIC9bMC05XS8sXHJcbiAgICAgICAgICBcIilcIixcclxuICAgICAgICAgIFwiIFwiLFxyXG4gICAgICAgICAgL1swLTldLyxcclxuICAgICAgICAgIC9bMC05XS8sXHJcbiAgICAgICAgICAvWzAtOV0vLFxyXG4gICAgICAgICAgL1swLTldLyxcclxuICAgICAgICAgIC9bMC05XS8sXHJcbiAgICAgICAgICBcIi1cIixcclxuICAgICAgICAgIC9bMC05XS8sXHJcbiAgICAgICAgICAvWzAtOV0vLFxyXG4gICAgICAgICAgL1swLTldLyxcclxuICAgICAgICAgIC9bMC05XS9cclxuICAgICAgICBdO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICBcIihcIixcclxuICAgICAgICAgIC9bMC05XS8sXHJcbiAgICAgICAgICAvWzAtOV0vLFxyXG4gICAgICAgICAgXCIpXCIsXHJcbiAgICAgICAgICBcIiBcIixcclxuICAgICAgICAgIC9bMC05XS8sXHJcbiAgICAgICAgICAvWzAtOV0vLFxyXG4gICAgICAgICAgL1swLTldLyxcclxuICAgICAgICAgIC9bMC05XS8sXHJcbiAgICAgICAgICBcIi1cIixcclxuICAgICAgICAgIC9bMC05XS8sXHJcbiAgICAgICAgICAvWzAtOV0vLFxyXG4gICAgICAgICAgL1swLTldLyxcclxuICAgICAgICAgIC9bMC05XS9cclxuICAgICAgICBdO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgZ3VpZGU6IGZhbHNlXHJcbiAgfSxcclxuICBjcGY6IHtcclxuICAgIG1hc2s6IFtcclxuICAgICAgL1swLTldLyxcclxuICAgICAgL1swLTldLyxcclxuICAgICAgL1swLTldLyxcclxuICAgICAgXCIuXCIsXHJcbiAgICAgIC9bMC05XS8sXHJcbiAgICAgIC9bMC05XS8sXHJcbiAgICAgIC9bMC05XS8sXHJcbiAgICAgIFwiLlwiLFxyXG4gICAgICAvWzAtOV0vLFxyXG4gICAgICAvWzAtOV0vLFxyXG4gICAgICAvWzAtOV0vLFxyXG4gICAgICBcIi1cIixcclxuICAgICAgL1swLTldLyxcclxuICAgICAgL1swLTldL1xyXG4gICAgXSxcclxuICAgIGd1aWRlOiBmYWxzZVxyXG4gIH0sXHJcbiAgY25wajoge1xyXG4gICAgbWFzazogW1xyXG4gICAgICAvWzAtOV0vLFxyXG4gICAgICAvWzAtOV0vLFxyXG4gICAgICBcIi5cIixcclxuICAgICAgL1swLTldLyxcclxuICAgICAgL1swLTldLyxcclxuICAgICAgL1swLTldLyxcclxuICAgICAgXCIuXCIsXHJcbiAgICAgIC9bMC05XS8sXHJcbiAgICAgIC9bMC05XS8sXHJcbiAgICAgIC9bMC05XS8sXHJcbiAgICAgIFwiL1wiLFxyXG4gICAgICAvWzAtOV0vLFxyXG4gICAgICAvWzAtOV0vLFxyXG4gICAgICAvWzAtOV0vLFxyXG4gICAgICAvWzAtOV0vLFxyXG4gICAgICBcIi1cIixcclxuICAgICAgL1swLTldLyxcclxuICAgICAgL1swLTldL1xyXG4gICAgXSxcclxuICAgIGd1aWRlOiBmYWxzZVxyXG4gIH0sXHJcbiAgcmc6IHtcclxuICAgIG1hc2s6IFtcclxuICAgICAgL1swLTldLyxcclxuICAgICAgL1swLTldLyxcclxuICAgICAgXCIuXCIsXHJcbiAgICAgIC9bMC05XS8sXHJcbiAgICAgIC9bMC05XS8sXHJcbiAgICAgIC9bMC05XS8sXHJcbiAgICAgIFwiLlwiLFxyXG4gICAgICAvWzAtOV0vLFxyXG4gICAgICAvWzAtOV0vLFxyXG4gICAgICAvWzAtOV0vLFxyXG4gICAgICBcIi1cIixcclxuICAgICAgL1swLTldL1xyXG4gICAgXSxcclxuICAgIGd1aWRlOiBmYWxzZVxyXG4gIH0sXHJcbiAgY2VwOiB7XHJcbiAgICBtYXNrOiBbXHJcbiAgICAgIC9bMC05XS8sXHJcbiAgICAgIC9bMC05XS8sXHJcbiAgICAgIFwiLlwiLFxyXG4gICAgICAvWzAtOV0vLFxyXG4gICAgICAvWzAtOV0vLFxyXG4gICAgICAvWzAtOV0vLFxyXG4gICAgICBcIi1cIixcclxuICAgICAgL1swLTldLyxcclxuICAgICAgL1swLTldLyxcclxuICAgICAgL1swLTldL1xyXG4gICAgXSxcclxuICAgIGd1aWRlOiBmYWxzZVxyXG4gIH0sXHJcbiAgZGF0ZToge1xyXG4gICAgbWFzazogW1xyXG4gICAgICAvWzAtOV0vLFxyXG4gICAgICAvWzAtOV0vLFxyXG4gICAgICBcIi9cIixcclxuICAgICAgL1swLTldLyxcclxuICAgICAgL1swLTldLyxcclxuICAgICAgXCIvXCIsXHJcbiAgICAgIC9bMC05XS8sXHJcbiAgICAgIC9bMC05XS8sXHJcbiAgICAgIC9bMC05XS8sXHJcbiAgICAgIC9bMC05XS9cclxuICAgIF0sXHJcbiAgICBndWlkZTogZmFsc2VcclxuICB9LFxyXG4gIHRpbWU6IHtcclxuICAgIG1hc2s6IFsvWzAtOV0vLCAvWzAtOV0vLCBcIjpcIiwgL1swLTldLywgL1swLTldL10sXHJcbiAgICBndWlkZTogZmFsc2VcclxuICB9LFxyXG4gIGNyZWRpdGNhcmQ6IHtcclxuICAgIG1hc2s6IFtcclxuICAgICAgL1swLTldLyxcclxuICAgICAgL1swLTldLyxcclxuICAgICAgL1swLTldLyxcclxuICAgICAgL1swLTldLyxcclxuICAgICAgXCIgXCIsXHJcbiAgICAgIC9bMC05XS8sXHJcbiAgICAgIC9bMC05XS8sXHJcbiAgICAgIC9bMC05XS8sXHJcbiAgICAgIC9bMC05XS8sXHJcbiAgICAgIFwiIFwiLFxyXG4gICAgICAvWzAtOV0vLFxyXG4gICAgICAvWzAtOV0vLFxyXG4gICAgICAvWzAtOV0vLFxyXG4gICAgICAvWzAtOV0vLFxyXG4gICAgICBcIiBcIixcclxuICAgICAgL1swLTldLyxcclxuICAgICAgL1swLTldLyxcclxuICAgICAgL1swLTldLyxcclxuICAgICAgL1swLTldL1xyXG4gICAgXSxcclxuICAgIGd1aWRlOiBmYWxzZVxyXG4gIH0sXHJcbiAgY3JlZGl0Y2FyZF92YWxpZGl0eToge1xyXG4gICAgbWFzazogWy9bMC05XS8sIC9bMC05XS8sIFwiL1wiLCAvWzAtOV0vLCAvWzAtOV0vLCAvWzAtOV0vLCAvWzAtOV0vXSxcclxuICAgIGd1aWRlOiBmYWxzZVxyXG4gIH1cclxufTtcclxuXHJcbmZ1bmN0aW9uIEdldEN1cnJlbnRNYXNrKHZhbHVlOiBzdHJpbmcsIGluZm8pOiAoc3RyaW5nIHwgUmVnRXhwKVtdIHtcclxuICBsZXQgcmF3VmFsdWUgPSB2YWx1ZS5yZXBsYWNlKC9bXlxcZF0vZywgXCJcIik7XHJcblxyXG4gIGNvbnN0IHJhd0xlbmd0aCA9IHJhd1ZhbHVlLmxlbmd0aDtcclxuICBjb25zdCBwcmVmaXhNYXNrID0gW1wiUlwiLCBcIiRcIiwgXCIgXCJdO1xyXG4gIGNvbnN0IGRlY2ltYWxNYXNrOiAoc3RyaW5nIHwgUmVnRXhwKVtdID0gW1wiLFwiLCAvXFxkLywgL1xcZC9dO1xyXG4gIGNvbnN0IGludGVnZXJMZW5ndGggPSByYXdMZW5ndGggPiAzID8gcmF3TGVuZ3RoIC0gMiA6IDE7XHJcbiAgY29uc3QgaW50ZWdlck1hc2s6IChzdHJpbmcgfCBSZWdFeHApW10gPSBbXTtcclxuXHJcbiAgZm9yIChsZXQgeCA9IDA7IHggPCBpbnRlZ2VyTGVuZ3RoOyB4KyspIHtcclxuICAgIGNvbnN0IGxlbmd0aCA9IGludGVnZXJNYXNrLmZpbHRlcigobSk6IGJvb2xlYW4gPT4gbSAhPT0gXCIuXCIpLmxlbmd0aDtcclxuICAgIGlmIChsZW5ndGggJiYgbGVuZ3RoICUgMyA9PT0gMCkgaW50ZWdlck1hc2sucHVzaChcIi5cIik7XHJcbiAgICBpbnRlZ2VyTWFzay5wdXNoKC9cXGQvKTtcclxuICB9XHJcblxyXG4gIHJldHVybiBbLi4ucHJlZml4TWFzaywgLi4uaW50ZWdlck1hc2sucmV2ZXJzZSgpLCAuLi5kZWNpbWFsTWFza107XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBHZXRNYXNrKG1hc2s6IGFueSk6IGFueSB7XHJcbiAgaWYgKF8uaXNTdHJpbmcobWFzaykgJiYgRm9ybU1hc2tzW21hc2tdKSB7XHJcbiAgICByZXR1cm4gRm9ybU1hc2tzW21hc2tdO1xyXG4gIH0gZWxzZSB7XHJcbiAgICByZXR1cm4gbWFzaztcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBTZXR1cFNjaGVtYU1hc2soc2NoZW1hOiBGb3JtU2NoZW1hRGF0YSkge1xyXG4gIGNvbnN0IG1hc2tfbmFtZSA9ICg8Rm9ybVRleHRTY2hlbWFEYXRhPnNjaGVtYSkubWFzaztcclxuXHJcbiAgaWYgKCFtYXNrX25hbWUgfHwgIXNjaGVtYS52YWx1ZSkgcmV0dXJuO1xyXG5cclxuICBjb25zdCBtYXNrID0gR2V0TWFzayhtYXNrX25hbWUpO1xyXG5cclxuICBpZiAobWFzay5tYXNrKSB7XHJcbiAgICBsZXQgbWFza3M6IEFycmF5PGFueT4gPSBbXTtcclxuXHJcbiAgICBpZiAoXy5pc0FycmF5KG1hc2subWFzaykpIHtcclxuICAgICAgbWFza3MgPSBtYXNrLm1hc2s7XHJcbiAgICB9IGVsc2UgaWYgKF8uaXNGdW5jdGlvbihtYXNrLm1hc2spKSB7XHJcbiAgICAgIG1hc2tzID0gbWFzay5tYXNrKHNjaGVtYS52YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2NoZW1hLnZhbHVlID0gKDxhbnk+Y29uZm9ybVRvTWFzaykoXHJcbiAgICAgIHNjaGVtYS52YWx1ZSxcclxuICAgICAgbWFza3MuZmlsdGVyKGl0ZW0gPT4gaXRlbSAhPT0gXCJbXVwiKSxcclxuICAgICAgeyBndWlkZTogZmFsc2UgfVxyXG4gICAgKS5jb25mb3JtZWRWYWx1ZTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIEZvcm1TY2hlbWFNYXNrID1cclxuICB8IFwibW9uZXlcIlxyXG4gIHwgXCJwZXJjZW50YWdlXCJcclxuICB8IFwic2FsYXJ5XCJcclxuICB8IFwicGhvbmVcIlxyXG4gIHwgXCJjcGZcIlxyXG4gIHwgXCJjbnBqXCJcclxuICB8IFwicmdcIlxyXG4gIHwgXCJjZXBcIlxyXG4gIHwgXCJkYXRlXCJcclxuICB8IFwidGltZVwiXHJcbiAgfCBcImNyZWRpdGNhcmRcIlxyXG4gIHwgXCJjcmVkaXRjYXJkX3ZhbGlkaXR5XCI7XHJcbiJdfQ==