angular-pipes
Version:
Angular pipes library
202 lines • 34.7 kB
JavaScript
// idea from https://github.com/a8m/angular-filter
import * as tslib_1 from "tslib";
import { Pipe, NgModule } from '@angular/core';
import { isString, isUndefined } from '../utils/utils';
var LatinizePipe = /** @class */ (function () {
function LatinizePipe() {
}
LatinizePipe.prototype.transform = function (input) {
if (!isString(input) || isUndefined(input)) {
return input;
}
var replacementList = [
{ base: ' ', chars: '\u00A0' },
{ base: '0', chars: '\u07C0' },
{
base: 'A',
chars: '\u24B6\uFF21\u00C0\u00C1\u00C2\u1EA6\u1EA4\u1EAA\u1EA8\u00C3\u0100\u0102\u1EB0\u1EAE\u1EB4\u1EB2\u0226\u01E0\u00C4\u01DE\u1EA2\u00C5\u01FA\u01CD\u0200\u0202\u1EA0\u1EAC\u1EB6\u1E00\u0104\u023A\u2C6F',
},
{ base: 'AA', chars: '\uA732' },
{ base: 'AE', chars: '\u00C6\u01FC\u01E2' },
{ base: 'AO', chars: '\uA734' },
{ base: 'AU', chars: '\uA736' },
{ base: 'AV', chars: '\uA738\uA73A' },
{ base: 'AY', chars: '\uA73C' },
{ base: 'B', chars: '\u24B7\uFF22\u1E02\u1E04\u1E06\u0243\u0181' },
{ base: 'C', chars: '\u24b8\uff23\uA73E\u1E08\u0106\u0043\u0108\u010A\u010C\u00C7\u0187\u023B' },
{ base: 'D', chars: '\u24B9\uFF24\u1E0A\u010E\u1E0C\u1E10\u1E12\u1E0E\u0110\u018A\u0189\u1D05\uA779' },
{ base: 'Dh', chars: '\u00D0' },
{ base: 'DZ', chars: '\u01F1\u01C4' },
{ base: 'Dz', chars: '\u01F2\u01C5' },
{
base: 'E',
chars: '\u025B\u24BA\uFF25\u00C8\u00C9\u00CA\u1EC0\u1EBE\u1EC4\u1EC2\u1EBC\u0112\u1E14\u1E16\u0114\u0116\u00CB\u1EBA\u011A\u0204\u0206\u1EB8\u1EC6\u0228\u1E1C\u0118\u1E18\u1E1A\u0190\u018E\u1D07',
},
{ base: 'F', chars: '\uA77C\u24BB\uFF26\u1E1E\u0191\uA77B' },
{
base: 'G',
chars: '\u24BC\uFF27\u01F4\u011C\u1E20\u011E\u0120\u01E6\u0122\u01E4\u0193\uA7A0\uA77D\uA77E\u0262',
},
{ base: 'H', chars: '\u24BD\uFF28\u0124\u1E22\u1E26\u021E\u1E24\u1E28\u1E2A\u0126\u2C67\u2C75\uA78D' },
{
base: 'I',
chars: '\u24BE\uFF29\xCC\xCD\xCE\u0128\u012A\u012C\u0130\xCF\u1E2E\u1EC8\u01CF\u0208\u020A\u1ECA\u012E\u1E2C\u0197',
},
{ base: 'J', chars: '\u24BF\uFF2A\u0134\u0248\u0237' },
{ base: 'K', chars: '\u24C0\uFF2B\u1E30\u01E8\u1E32\u0136\u1E34\u0198\u2C69\uA740\uA742\uA744\uA7A2' },
{
base: 'L',
chars: '\u24C1\uFF2C\u013F\u0139\u013D\u1E36\u1E38\u013B\u1E3C\u1E3A\u0141\u023D\u2C62\u2C60\uA748\uA746\uA780',
},
{ base: 'LJ', chars: '\u01C7' },
{ base: 'Lj', chars: '\u01C8' },
{ base: 'M', chars: '\u24C2\uFF2D\u1E3E\u1E40\u1E42\u2C6E\u019C\u03FB' },
{
base: 'N',
chars: '\uA7A4\u0220\u24C3\uFF2E\u01F8\u0143\xD1\u1E44\u0147\u1E46\u0145\u1E4A\u1E48\u019D\uA790\u1D0E',
},
{ base: 'NJ', chars: '\u01CA' },
{ base: 'Nj', chars: '\u01CB' },
{
base: 'O',
chars: '\u24C4\uFF2F\xD2\xD3\xD4\u1ED2\u1ED0\u1ED6\u1ED4\xD5\u1E4C\u022C\u1E4E\u014C\u1E50\u1E52\u014E\u022E\u0230\xD6\u022A\u1ECE\u0150\u01D1\u020C\u020E\u01A0\u1EDC\u1EDA\u1EE0\u1EDE\u1EE2\u1ECC\u1ED8\u01EA\u01EC\xD8\u01FE\u0186\u019F\uA74A\uA74C',
},
{ base: 'OE', chars: '\u0152' },
{ base: 'OI', chars: '\u01A2' },
{ base: 'OO', chars: '\uA74E' },
{ base: 'OU', chars: '\u0222' },
{ base: 'P', chars: '\u24C5\uFF30\u1E54\u1E56\u01A4\u2C63\uA750\uA752\uA754' },
{ base: 'Q', chars: '\u24C6\uFF31\uA756\uA758\u024A' },
{
base: 'R',
chars: '\u24C7\uFF32\u0154\u1E58\u0158\u0210\u0212\u1E5A\u1E5C\u0156\u1E5E\u024C\u2C64\uA75A\uA7A6\uA782',
},
{
base: 'S',
chars: '\u24C8\uFF33\u1E9E\u015A\u1E64\u015C\u1E60\u0160\u1E66\u1E62\u1E68\u0218\u015E\u2C7E\uA7A8\uA784',
},
{ base: 'T', chars: '\u24C9\uFF34\u1E6A\u0164\u1E6C\u021A\u0162\u1E70\u1E6E\u0166\u01AC\u01AE\u023E\uA786' },
{ base: 'Th', chars: '\u00DE' },
{ base: 'TZ', chars: '\uA728' },
{
base: 'U',
chars: '\u24CA\uFF35\xD9\xDA\xDB\u0168\u1E78\u016A\u1E7A\u016C\xDC\u01DB\u01D7\u01D5\u01D9\u1EE6\u016E\u0170\u01D3\u0214\u0216\u01AF\u1EEA\u1EE8\u1EEE\u1EEC\u1EF0\u1EE4\u1E72\u0172\u1E76\u1E74\u0244',
},
{ base: 'V', chars: '\u24CB\uFF36\u1E7C\u1E7E\u01B2\uA75E\u0245' },
{ base: 'VY', chars: '\uA760' },
{ base: 'W', chars: '\u24CC\uFF37\u1E80\u1E82\u0174\u1E86\u1E84\u1E88\u2C72' },
{ base: 'X', chars: '\u24CD\uFF38\u1E8A\u1E8C' },
{ base: 'Y', chars: '\u24CE\uFF39\u1EF2\xDD\u0176\u1EF8\u0232\u1E8E\u0178\u1EF6\u1EF4\u01B3\u024E\u1EFE' },
{ base: 'Z', chars: '\u24CF\uFF3A\u0179\u1E90\u017B\u017D\u1E92\u1E94\u01B5\u0224\u2C7F\u2C6B\uA762' },
{
base: 'a',
chars: '\u24D0\uFF41\u1E9A\u00E0\u00E1\u00E2\u1EA7\u1EA5\u1EAB\u1EA9\u00E3\u0101\u0103\u1EB1\u1EAF\u1EB5\u1EB3\u0227\u01E1\u00E4\u01DF\u1EA3\u00E5\u01FB\u01CE\u0201\u0203\u1EA1\u1EAD\u1EB7\u1E01\u0105\u2C65\u0250\u0251',
},
{ base: 'aa', chars: '\uA733' },
{ base: 'ae', chars: '\u00E6\u01FD\u01E3' },
{ base: 'ao', chars: '\uA735' },
{ base: 'au', chars: '\uA737' },
{ base: 'av', chars: '\uA739\uA73B' },
{ base: 'ay', chars: '\uA73D' },
{ base: 'b', chars: '\u24D1\uFF42\u1E03\u1E05\u1E07\u0180\u0183\u0253\u0182' },
{ base: 'c', chars: '\uFF43\u24D2\u0107\u0109\u010B\u010D\u00E7\u1E09\u0188\u023C\uA73F\u2184' },
{
base: 'd',
chars: '\u24D3\uFF44\u1E0B\u010F\u1E0D\u1E11\u1E13\u1E0F\u0111\u018C\u0256\u0257\u018B\u13E7\u0501\uA7AA',
},
{ base: 'dh', chars: '\u00F0' },
{ base: 'dz', chars: '\u01F3\u01C6' },
{
base: 'e',
chars: '\u24D4\uFF45\u00E8\u00E9\u00EA\u1EC1\u1EBF\u1EC5\u1EC3\u1EBD\u0113\u1E15\u1E17\u0115\u0117\u00EB\u1EBB\u011B\u0205\u0207\u1EB9\u1EC7\u0229\u1E1D\u0119\u1E19\u1E1B\u0247\u01DD',
},
{ base: 'f', chars: '\u24D5\uFF46\u1E1F\u0192' },
{ base: 'ff', chars: '\uFB00' },
{ base: 'fi', chars: '\uFB01' },
{ base: 'fl', chars: '\uFB02' },
{ base: 'ffi', chars: '\uFB03' },
{ base: 'ffl', chars: '\uFB04' },
{ base: 'g', chars: '\u24D6\uFF47\u01F5\u011D\u1E21\u011F\u0121\u01E7\u0123\u01E5\u0260\uA7A1\uA77F\u1D79' },
{ base: 'h', chars: '\u24D7\uFF48\u0125\u1E23\u1E27\u021F\u1E25\u1E29\u1E2B\u1E96\u0127\u2C68\u2C76\u0265' },
{ base: 'hv', chars: '\u0195' },
{
base: 'i',
chars: '\u24D8\uFF49\xEC\xED\xEE\u0129\u012B\u012D\xEF\u1E2F\u1EC9\u01D0\u0209\u020B\u1ECB\u012F\u1E2D\u0268\u0131',
},
{ base: 'j', chars: '\u24D9\uFF4A\u0135\u01F0\u0249' },
{ base: 'k', chars: '\u24DA\uFF4B\u1E31\u01E9\u1E33\u0137\u1E35\u0199\u2C6A\uA741\uA743\uA745\uA7A3' },
{
base: 'l',
chars: '\u24DB\uFF4C\u0140\u013A\u013E\u1E37\u1E39\u013C\u1E3D\u1E3B\u017F\u0142\u019A\u026B\u2C61\uA749\uA781\uA747\u026D',
},
{ base: 'lj', chars: '\u01C9' },
{ base: 'm', chars: '\u24DC\uFF4D\u1E3F\u1E41\u1E43\u0271\u026F' },
{
base: 'n',
chars: '\u24DD\uFF4E\u01F9\u0144\xF1\u1E45\u0148\u1E47\u0146\u1E4B\u1E49\u019E\u0272\u0149\uA791\uA7A5\u043B\u0509',
},
{ base: 'nj', chars: '\u01CC' },
{
base: 'o',
chars: '\u24DE\uFF4F\xF2\xF3\xF4\u1ED3\u1ED1\u1ED7\u1ED5\xF5\u1E4D\u022D\u1E4F\u014D\u1E51\u1E53\u014F\u022F\u0231\xF6\u022B\u1ECF\u0151\u01D2\u020D\u020F\u01A1\u1EDD\u1EDB\u1EE1\u1EDF\u1EE3\u1ECD\u1ED9\u01EB\u01ED\xF8\u01FF\uA74B\uA74D\u0275\u0254\u1D11',
},
{ base: 'oe', chars: '\u0153' },
{ base: 'oi', chars: '\u01A3' },
{ base: 'oo', chars: '\uA74F' },
{ base: 'ou', chars: '\u0223' },
{ base: 'p', chars: '\u24DF\uFF50\u1E55\u1E57\u01A5\u1D7D\uA751\uA753\uA755\u03C1' },
{ base: 'q', chars: '\u24E0\uFF51\u024B\uA757\uA759' },
{
base: 'r',
chars: '\u24E1\uFF52\u0155\u1E59\u0159\u0211\u0213\u1E5B\u1E5D\u0157\u1E5F\u024D\u027D\uA75B\uA7A7\uA783',
},
{
base: 's',
chars: '\u24E2\uFF53\u015B\u1E65\u015D\u1E61\u0161\u1E67\u1E63\u1E69\u0219\u015F\u023F\uA7A9\uA785\u1E9B\u0282',
},
{ base: 'ss', chars: '\xDF' },
{
base: 't',
chars: '\u24E3\uFF54\u1E6B\u1E97\u0165\u1E6D\u021B\u0163\u1E71\u1E6F\u0167\u01AD\u0288\u2C66\uA787',
},
{ base: 'th', chars: '\u00FE' },
{ base: 'tz', chars: '\uA729' },
{
base: 'u',
chars: '\u24E4\uFF55\xF9\xFA\xFB\u0169\u1E79\u016B\u1E7B\u016D\xFC\u01DC\u01D8\u01D6\u01DA\u1EE7\u016F\u0171\u01D4\u0215\u0217\u01B0\u1EEB\u1EE9\u1EEF\u1EED\u1EF1\u1EE5\u1E73\u0173\u1E77\u1E75\u0289',
},
{ base: 'v', chars: '\u24E5\uFF56\u1E7D\u1E7F\u028B\uA75F\u028C' },
{ base: 'vy', chars: '\uA761' },
{ base: 'w', chars: '\u24E6\uFF57\u1E81\u1E83\u0175\u1E87\u1E85\u1E98\u1E89\u2C73' },
{ base: 'x', chars: '\u24E7\uFF58\u1E8B\u1E8D' },
{ base: 'y', chars: '\u24E8\uFF59\u1EF3\xFD\u0177\u1EF9\u0233\u1E8F\xFF\u1EF7\u1E99\u1EF5\u01B4\u024F\u1EFF' },
{ base: 'z', chars: '\u24E9\uFF5A\u017A\u1E91\u017C\u017E\u1E93\u1E95\u01B6\u0225\u0240\u2C6C\uA763' },
];
var diacriticsMap = {};
for (var i = 0; i < replacementList.length; i += 1) {
var chars = replacementList[i].chars;
for (var j = 0; j < chars.length; j += 1) {
diacriticsMap[chars[j]] = replacementList[i].base;
}
}
return input.replace(/[^\u0000-\u007e]/g, function (c) { return diacriticsMap[c] || c; });
};
LatinizePipe = tslib_1.__decorate([
Pipe({ name: 'latinize' })
], LatinizePipe);
return LatinizePipe;
}());
export { LatinizePipe };
var NgLatinizePipeModule = /** @class */ (function () {
function NgLatinizePipeModule() {
}
NgLatinizePipeModule = tslib_1.__decorate([
NgModule({
declarations: [LatinizePipe],
exports: [LatinizePipe],
})
], NgLatinizePipeModule);
return NgLatinizePipeModule;
}());
export { NgLatinizePipeModule };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF0aW5pemUucGlwZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FuZ3VsYXItcGlwZXMvIiwic291cmNlcyI6WyJzdHJpbmcvbGF0aW5pemUucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxrREFBa0Q7O0FBRWxELE9BQU8sRUFBRSxJQUFJLEVBQWlCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3ZEO0lBQUE7SUFnTUEsQ0FBQztJQS9MQyxnQ0FBUyxHQUFULFVBQVUsS0FBYTtRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLFdBQVcsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUMxQyxPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsSUFBSSxlQUFlLEdBQUc7WUFDcEIsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUU7WUFDOUIsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUU7WUFDOUI7Z0JBQ0UsSUFBSSxFQUFFLEdBQUc7Z0JBQ1QsS0FBSyxFQUNILHdNQUF3TTthQUMzTTtZQUNELEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFO1lBQy9CLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsb0JBQW9CLEVBQUU7WUFDM0MsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUU7WUFDL0IsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUU7WUFDL0IsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUU7WUFDckMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUU7WUFDL0IsRUFBRSxJQUFJLEVBQUUs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QUc7SUFBRCwyQkFBQztDQUFBLEFBQXBDLElBQW9DO1NBQXZCLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbIi8vIGlkZWEgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vYThtL2FuZ3VsYXItZmlsdGVyXHJcblxyXG5pbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBpc1N0cmluZywgaXNVbmRlZmluZWQgfSBmcm9tICcuLi91dGlscy91dGlscyc7XHJcblxyXG5AUGlwZSh7IG5hbWU6ICdsYXRpbml6ZScgfSlcclxuZXhwb3J0IGNsYXNzIExhdGluaXplUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG4gIHRyYW5zZm9ybShpbnB1dDogc3RyaW5nKTogYW55IHtcclxuICAgIGlmICghaXNTdHJpbmcoaW5wdXQpIHx8IGlzVW5kZWZpbmVkKGlucHV0KSkge1xyXG4gICAgICByZXR1cm4gaW5wdXQ7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHJlcGxhY2VtZW50TGlzdCA9IFtcclxuICAgICAgeyBiYXNlOiAnICcsIGNoYXJzOiAnXFx1MDBBMCcgfSxcclxuICAgICAgeyBiYXNlOiAnMCcsIGNoYXJzOiAnXFx1MDdDMCcgfSxcclxuICAgICAge1xyXG4gICAgICAgIGJhc2U6ICdBJyxcclxuICAgICAgICBjaGFyczpcclxuICAgICAgICAgICdcXHUyNEI2XFx1RkYyMVxcdTAwQzBcXHUwMEMxXFx1MDBDMlxcdTFFQTZcXHUxRUE0XFx1MUVBQVxcdTFFQThcXHUwMEMzXFx1MDEwMFxcdTAxMDJcXHUxRUIwXFx1MUVBRVxcdTFFQjRcXHUxRUIyXFx1MDIyNlxcdTAxRTBcXHUwMEM0XFx1MDFERVxcdTFFQTJcXHUwMEM1XFx1MDFGQVxcdTAxQ0RcXHUwMjAwXFx1MDIwMlxcdTFFQTBcXHUxRUFDXFx1MUVCNlxcdTFFMDBcXHUwMTA0XFx1MDIzQVxcdTJDNkYnLFxyXG4gICAgICB9LFxyXG4gICAgICB7IGJhc2U6ICdBQScsIGNoYXJzOiAnXFx1QTczMicgfSxcclxuICAgICAgeyBiYXNlOiAnQUUnLCBjaGFyczogJ1xcdTAwQzZcXHUwMUZDXFx1MDFFMicgfSxcclxuICAgICAgeyBiYXNlOiAnQU8nLCBjaGFyczogJ1xcdUE3MzQnIH0sXHJcbiAgICAgIHsgYmFzZTogJ0FVJywgY2hhcnM6ICdcXHVBNzM2JyB9LFxyXG4gICAgICB7IGJhc2U6ICdBVicsIGNoYXJzOiAnXFx1QTczOFxcdUE3M0EnIH0sXHJcbiAgICAgIHsgYmFzZTogJ0FZJywgY2hhcnM6ICdcXHVBNzNDJyB9LFxyXG4gICAgICB7IGJhc2U6ICdCJywgY2hhcnM6ICdcXHUyNEI3XFx1RkYyMlxcdTFFMDJcXHUxRTA0XFx1MUUwNlxcdTAyNDNcXHUwMTgxJyB9LFxyXG4gICAgICB7IGJhc2U6ICdDJywgY2hhcnM6ICdcXHUyNGI4XFx1ZmYyM1xcdUE3M0VcXHUxRTA4XFx1MDEwNlxcdTAwNDNcXHUwMTA4XFx1MDEwQVxcdTAxMENcXHUwMEM3XFx1MDE4N1xcdTAyM0InIH0sXHJcbiAgICAgIHsgYmFzZTogJ0QnLCBjaGFyczogJ1xcdTI0QjlcXHVGRjI0XFx1MUUwQVxcdTAxMEVcXHUxRTBDXFx1MUUxMFxcdTFFMTJcXHUxRTBFXFx1MDExMFxcdTAxOEFcXHUwMTg5XFx1MUQwNVxcdUE3NzknIH0sXHJcbiAgICAgIHsgYmFzZTogJ0RoJywgY2hhcnM6ICdcXHUwMEQwJyB9LFxyXG4gICAgICB7IGJhc2U6ICdEWicsIGNoYXJzOiAnXFx1MDFGMVxcdTAxQzQnIH0sXHJcbiAgICAgIHsgYmFzZTogJ0R6JywgY2hhcnM6ICdcXHUwMUYyXFx1MDFDNScgfSxcclxuICAgICAge1xyXG4gICAgICAgIGJhc2U6ICdFJyxcclxuICAgICAgICBjaGFyczpcclxuICAgICAgICAgICdcXHUwMjVCXFx1MjRCQVxcdUZGMjVcXHUwMEM4XFx1MDBDOVxcdTAwQ0FcXHUxRUMwXFx1MUVCRVxcdTFFQzRcXHUxRUMyXFx1MUVCQ1xcdTAxMTJcXHUxRTE0XFx1MUUxNlxcdTAxMTRcXHUwMTE2XFx1MDBDQlxcdTFFQkFcXHUwMTFBXFx1MDIwNFxcdTAyMDZcXHUxRUI4XFx1MUVDNlxcdTAyMjhcXHUxRTFDXFx1MDExOFxcdTFFMThcXHUxRTFBXFx1MDE5MFxcdTAxOEVcXHUxRDA3JyxcclxuICAgICAgfSxcclxuICAgICAgeyBiYXNlOiAnRicsIGNoYXJzOiAnXFx1QTc3Q1xcdTI0QkJcXHVGRjI2XFx1MUUxRVxcdTAxOTFcXHVBNzdCJyB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgYmFzZTogJ0cnLFxyXG4gICAgICAgIGNoYXJzOiAnXFx1MjRCQ1xcdUZGMjdcXHUwMUY0XFx1MDExQ1xcdTFFMjBcXHUwMTFFXFx1MDEyMFxcdTAxRTZcXHUwMTIyXFx1MDFFNFxcdTAxOTNcXHVBN0EwXFx1QTc3RFxcdUE3N0VcXHUwMjYyJyxcclxuICAgICAgfSxcclxuICAgICAgeyBiYXNlOiAnSCcsIGNoYXJzOiAnXFx1MjRCRFxcdUZGMjhcXHUwMTI0XFx1MUUyMlxcdTFFMjZcXHUwMjFFXFx1MUUyNFxcdTFFMjhcXHUxRTJBXFx1MDEyNlxcdTJDNjdcXHUyQzc1XFx1QTc4RCcgfSxcclxuICAgICAge1xyXG4gICAgICAgIGJhc2U6ICdJJyxcclxuICAgICAgICBjaGFyczpcclxuICAgICAgICAgICdcXHUyNEJFXFx1RkYyOVxceENDXFx4Q0RcXHhDRVxcdTAxMjhcXHUwMTJBXFx1MDEyQ1xcdTAxMzBcXHhDRlxcdTFFMkVcXHUxRUM4XFx1MDFDRlxcdTAyMDhcXHUwMjBBXFx1MUVDQVxcdTAxMkVcXHUxRTJDXFx1MDE5NycsXHJcbiAgICAgIH0sXHJcbiAgICAgIHsgYmFzZTogJ0onLCBjaGFyczogJ1xcdTI0QkZcXHVGRjJBXFx1MDEzNFxcdTAyNDhcXHUwMjM3JyB9LFxyXG4gICAgICB7IGJhc2U6ICdLJywgY2hhcnM6ICdcXHUyNEMwXFx1RkYyQlxcdTFFMzBcXHUwMUU4XFx1MUUzMlxcdTAxMzZcXHUxRTM0XFx1MDE5OFxcdTJDNjlcXHVBNzQwXFx1QTc0MlxcdUE3NDRcXHVBN0EyJyB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgYmFzZTogJ0wnLFxyXG4gICAgICAgIGNoYXJzOiAnXFx1MjRDMVxcdUZGMkNcXHUwMTNGXFx1MDEzOVxcdTAxM0RcXHUxRTM2XFx1MUUzOFxcdTAxM0JcXHUxRTNDXFx1MUUzQVxcdTAxNDFcXHUwMjNEXFx1MkM2MlxcdTJDNjBcXHVBNzQ4XFx1QTc0NlxcdUE3ODAnLFxyXG4gICAgICB9LFxyXG4gICAgICB7IGJhc2U6ICdMSicsIGNoYXJzOiAnXFx1MDFDNycgfSxcclxuICAgICAgeyBiYXNlOiAnTGonLCBjaGFyczogJ1xcdTAxQzgnIH0sXHJcbiAgICAgIHsgYmFzZTogJ00nLCBjaGFyczogJ1xcdTI0QzJcXHVGRjJEXFx1MUUzRVxcdTFFNDBcXHUxRTQyXFx1MkM2RVxcdTAxOUNcXHUwM0ZCJyB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgYmFzZTogJ04nLFxyXG4gICAgICAgIGNoYXJzOiAnXFx1QTdBNFxcdTAyMjBcXHUyNEMzXFx1RkYyRVxcdTAxRjhcXHUwMTQzXFx4RDFcXHUxRTQ0XFx1MDE0N1xcdTFFNDZcXHUwMTQ1XFx1MUU0QVxcdTFFNDhcXHUwMTlEXFx1QTc5MFxcdTFEMEUnLFxyXG4gICAgICB9LFxyXG4gICAgICB7IGJhc2U6ICdOSicsIGNoYXJzOiAnXFx1MDFDQScgfSxcclxuICAgICAgeyBiYXNlOiAnTmonLCBjaGFyczogJ1xcdTAxQ0InIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBiYXNlOiAnTycsXHJcbiAgICAgICAgY2hhcnM6XHJcbiAgICAgICAgICAnXFx1MjRDNFxcdUZGMkZcXHhEMlxceEQzXFx4RDRcXHUxRUQyXFx1MUVEMFxcdTFFRDZcXHUxRUQ0XFx4RDVcXHUxRTRDXFx1MDIyQ1xcdTFFNEVcXHUwMTRDXFx1MUU1MFxcdTFFNTJcXHUwMTRFXFx1MDIyRVxcdTAyMzBcXHhENlxcdTAyMkFcXHUxRUNFXFx1MDE1MFxcdTAxRDFcXHUwMjBDXFx1MDIwRVxcdTAxQTBcXHUxRURDXFx1MUVEQVxcdTFFRTBcXHUxRURFXFx1MUVFMlxcdTFFQ0NcXHUxRUQ4XFx1MDFFQVxcdTAxRUNcXHhEOFxcdTAxRkVcXHUwMTg2XFx1MDE5RlxcdUE3NEFcXHVBNzRDJyxcclxuICAgICAgfSxcclxuICAgICAgeyBiYXNlOiAnT0UnLCBjaGFyczogJ1xcdTAxNTInIH0sXHJcbiAgICAgIHsgYmFzZTogJ09JJywgY2hhcnM6ICdcXHUwMUEyJyB9LFxyXG4gICAgICB7IGJhc2U6ICdPTycsIGNoYXJzOiAnXFx1QTc0RScgfSxcclxuICAgICAgeyBiYXNlOiAnT1UnLCBjaGFyczogJ1xcdTAyMjInIH0sXHJcbiAgICAgIHsgYmFzZTogJ1AnLCBjaGFyczogJ1xcdTI0QzVcXHVGRjMwXFx1MUU1NFxcdTFFNTZcXHUwMUE0XFx1MkM2M1xcdUE3NTBcXHVBNzUyXFx1QTc1NCcgfSxcclxuICAgICAgeyBiYXNlOiAnUScsIGNoYXJzOiAnXFx1MjRDNlxcdUZGMzFcXHVBNzU2XFx1QTc1OFxcdTAyNEEnIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBiYXNlOiAnUicsXHJcbiAgICAgICAgY2hhcnM6ICdcXHUyNEM3XFx1RkYzMlxcdTAxNTRcXHUxRTU4XFx1MDE1OFxcdTAyMTBcXHUwMjEyXFx1MUU1QVxcdTFFNUNcXHUwMTU2XFx1MUU1RVxcdTAyNENcXHUyQzY0XFx1QTc1QVxcdUE3QTZcXHVBNzgyJyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGJhc2U6ICdTJyxcclxuICAgICAgICBjaGFyczogJ1xcdTI0QzhcXHVGRjMzXFx1MUU5RVxcdTAxNUFcXHUxRTY0XFx1MDE1Q1xcdTFFNjBcXHUwMTYwXFx1MUU2NlxcdTFFNjJcXHUxRTY4XFx1MDIxOFxcdTAxNUVcXHUyQzdFXFx1QTdBOFxcdUE3ODQnLFxyXG4gICAgICB9LFxyXG4gICAgICB7IGJhc2U6ICdUJywgY2hhcnM6ICdcXHUyNEM5XFx1RkYzNFxcdTFFNkFcXHUwMTY0XFx1MUU2Q1xcdTAyMUFcXHUwMTYyXFx1MUU3MFxcdTFFNkVcXHUwMTY2XFx1MDFBQ1xcdTAxQUVcXHUwMjNFXFx1QTc4NicgfSxcclxuICAgICAgeyBiYXNlOiAnVGgnLCBjaGFyczogJ1xcdTAwREUnIH0sXHJcbiAgICAgIHsgYmFzZTogJ1RaJywgY2hhcnM6ICdcXHVBNzI4JyB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgYmFzZTogJ1UnLFxyXG4gICAgICAgIGNoYXJzOlxyXG4gICAgICAgICAgJ1xcdTI0Q0FcXHVGRjM1XFx4RDlcXHhEQVxceERCXFx1MDE2OFxcdTFFNzhcXHUwMTZBXFx1MUU3QVxcdTAxNkNcXHhEQ1xcdTAxREJcXHUwMUQ3XFx1MDFENVxcdTAxRDlcXHUxRUU2XFx1MDE2RVxcdTAxNzBcXHUwMUQzXFx1MDIxNFxcdTAyMTZcXHUwMUFGXFx1MUVFQVxcdTFFRThcXHUxRUVFXFx1MUVFQ1xcdTFFRjBcXHUxRUU0XFx1MUU3MlxcdTAxNzJcXHUxRTc2XFx1MUU3NFxcdTAyNDQnLFxyXG4gICAgICB9LFxyXG4gICAgICB7IGJhc2U6ICdWJywgY2hhcnM6ICdcXHUyNENCXFx1RkYzNlxcdTFFN0NcXHUxRTdFXFx1MDFCMlxcdUE3NUVcXHUwMjQ1JyB9LFxyXG4gICAgICB7IGJhc2U6ICdWWScsIGNoYXJzOiAnXFx1QTc2MCcgfSxcclxuICAgICAgeyBiYXNlOiAnVycsIGNoYXJzOiAnXFx1MjRDQ1xcdUZGMzdcXHUxRTgwXFx1MUU4MlxcdTAxNzRcXHUxRTg2XFx1MUU4NFxcdTFFODhcXHUyQzcyJyB9LFxyXG4gICAgICB7IGJhc2U6ICdYJywgY2hhcnM6ICdcXHUyNENEXFx1RkYzOFxcdTFFOEFcXHUxRThDJyB9LFxyXG4gICAgICB7IGJhc2U6ICdZJywgY2hhcnM6ICdcXHUyNENFXFx1RkYzOVxcdTFFRjJcXHhERFxcdTAxNzZcXHUxRUY4XFx1MDIzMlxcdTFFOEVcXHUwMTc4XFx1MUVGNlxcdTFFRjRcXHUwMUIzXFx1MDI0RVxcdTFFRkUnIH0sXHJcbiAgICAgIHsgYmFzZTogJ1onLCBjaGFyczogJ1xcdTI0Q0ZcXHVGRjNBXFx1MDE3OVxcdTFFOTBcXHUwMTdCXFx1MDE3RFxcdTFFOTJcXHUxRTk0XFx1MDFCNVxcdTAyMjRcXHUyQzdGXFx1MkM2QlxcdUE3NjInIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBiYXNlOiAnYScsXHJcbiAgICAgICAgY2hhcnM6XHJcbiAgICAgICAgICAnXFx1MjREMFxcdUZGNDFcXHUxRTlBXFx1MDBFMFxcdTAwRTFcXHUwMEUyXFx1MUVBN1xcdTFFQTVcXHUxRUFCXFx1MUVBOVxcdTAwRTNcXHUwMTAxXFx1MDEwM1xcdTFFQjFcXHUxRUFGXFx1MUVCNVxcdTFFQjNcXHUwMjI3XFx1MDFFMVxcdTAwRTRcXHUwMURGXFx1MUVBM1xcdTAwRTVcXHUwMUZCXFx1MDFDRVxcdTAyMDFcXHUwMjAzXFx1MUVBMVxcdTFFQURcXHUxRUI3XFx1MUUwMVxcdTAxMDVcXHUyQzY1XFx1MDI1MFxcdTAyNTEnLFxyXG4gICAgICB9LFxyXG4gICAgICB7IGJhc2U6ICdhYScsIGNoYXJzOiAnXFx1QTczMycgfSxcclxuICAgICAgeyBiYXNlOiAnYWUnLCBjaGFyczogJ1xcdTAwRTZcXHUwMUZEXFx1MDFFMycgfSxcclxuICAgICAgeyBiYXNlOiAnYW8nLCBjaGFyczogJ1xcdUE3MzUnIH0sXHJcbiAgICAgIHsgYmFzZTogJ2F1JywgY2hhcnM6ICdcXHVBNzM3JyB9LFxyXG4gICAgICB7IGJhc2U6ICdhdicsIGNoYXJzOiAnXFx1QTczOVxcdUE3M0InIH0sXHJcbiAgICAgIHsgYmFzZTogJ2F5JywgY2hhcnM6ICdcXHVBNzNEJyB9LFxyXG4gICAgICB7IGJhc2U6ICdiJywgY2hhcnM6ICdcXHUyNEQxXFx1RkY0MlxcdTFFMDNcXHUxRTA1XFx1MUUwN1xcdTAxODBcXHUwMTgzXFx1MDI1M1xcdTAxODInIH0sXHJcbiAgICAgIHsgYmFzZTogJ2MnLCBjaGFyczogJ1xcdUZGNDNcXHUyNEQyXFx1MDEwN1xcdTAxMDlcXHUwMTBCXFx1MDEwRFxcdTAwRTdcXHUxRTA5XFx1MDE4OFxcdTAyM0NcXHVBNzNGXFx1MjE4NCcgfSxcclxuICAgICAge1xyXG4gICAgICAgIGJhc2U6ICdkJyxcclxuICAgICAgICBjaGFyczogJ1xcdTI0RDNcXHVGRjQ0XFx1MUUwQlxcdTAxMEZcXHUxRTBEXFx1MUUxMVxcdTFFMTNcXHUxRTBGXFx1MDExMVxcdTAxOENcXHUwMjU2XFx1MDI1N1xcdTAxOEJcXHUxM0U3XFx1MDUwMVxcdUE3QUEnLFxyXG4gICAgICB9LFxyXG4gICAgICB7IGJhc2U6ICdkaCcsIGNoYXJzOiAnXFx1MDBGMCcgfSxcclxuICAgICAgeyBiYXNlOiAnZHonLCBjaGFyczogJ1xcdTAxRjNcXHUwMUM2JyB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgYmFzZTogJ2UnLFxyXG4gICAgICAgIGNoYXJzOlxyXG4gICAgICAgICAgJ1xcdTI0RDRcXHVGRjQ1XFx1MDBFOFxcdTAwRTlcXHUwMEVBXFx1MUVDMVxcdTFFQkZcXHUxRUM1XFx1MUVDM1xcdTFFQkRcXHUwMTEzXFx1MUUxNVxcdTFFMTdcXHUwMTE1XFx1MDExN1xcdTAwRUJcXHUxRUJCXFx1MDExQlxcdTAyMDVcXHUwMjA3XFx1MUVCOVxcdTFFQzdcXHUwMjI5XFx1MUUxRFxcdTAxMTlcXHUxRTE5XFx1MUUxQlxcdTAyNDdcXHUwMUREJyxcclxuICAgICAgfSxcclxuICAgICAgeyBiYXNlOiAnZicsIGNoYXJzOiAnXFx1MjRENVxcdUZGNDZcXHUxRTFGXFx1MDE5MicgfSxcclxuICAgICAgeyBiYXNlOiAnZmYnLCBjaGFyczogJ1xcdUZCMDAnIH0sXHJcbiAgICAgIHsgYmFzZTogJ2ZpJywgY2hhcnM6ICdcXHVGQjAxJyB9LFxyXG4gICAgICB7IGJhc2U6ICdmbCcsIGNoYXJzOiAnXFx1RkIwMicgfSxcclxuICAgICAgeyBiYXNlOiAnZmZpJywgY2hhcnM6ICdcXHVGQjAzJyB9LFxyXG4gICAgICB7IGJhc2U6ICdmZmwnLCBjaGFyczogJ1xcdUZCMDQnIH0sXHJcbiAgICAgIHsgYmFzZTogJ2cnLCBjaGFyczogJ1xcdTI0RDZcXHVGRjQ3XFx1MDFGNVxcdTAxMURcXHUxRTIxXFx1MDExRlxcdTAxMjFcXHUwMUU3XFx1MDEyM1xcdTAxRTVcXHUwMjYwXFx1QTdBMVxcdUE3N0ZcXHUxRDc5JyB9LFxyXG4gICAgICB7IGJhc2U6ICdoJywgY2hhcnM6ICdcXHUyNEQ3XFx1RkY0OFxcdTAxMjVcXHUxRTIzXFx1MUUyN1xcdTAyMUZcXHUxRTI1XFx1MUUyOVxcdTFFMkJcXHUxRTk2XFx1MDEyN1xcdTJDNjhcXHUyQzc2XFx1MDI2NScgfSxcclxuICAgICAgeyBiYXNlOiAnaHYnLCBjaGFyczogJ1xcdTAxOTUnIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBiYXNlOiAnaScsXHJcbiAgICAgICAgY2hhcnM6XHJcbiAgICAgICAgICAnXFx1MjREOFxcdUZGNDlcXHhFQ1xceEVEXFx4RUVcXHUwMTI5XFx1MDEyQlxcdTAxMkRcXHhFRlxcdTFFMkZcXHUxRUM5XFx1MDFEMFxcdTAyMDlcXHUwMjBCXFx1MUVDQlxcdTAxMkZcXHUxRTJEXFx1MDI2OFxcdTAxMzEnLFxyXG4gICAgICB9LFxyXG4gICAgICB7IGJhc2U6ICdqJywgY2hhcnM6ICdcXHUyNEQ5XFx1RkY0QVxcdTAxMzVcXHUwMUYwXFx1MDI0OScgfSxcclxuICAgICAgeyBiYXNlOiAnaycsIGNoYXJzOiAnXFx1MjREQVxcdUZGNEJcXHUxRTMxXFx1MDFFOVxcdTFFMzNcXHUwMTM3XFx1MUUzNVxcdTAxOTlcXHUyQzZBXFx1QTc0MVxcdUE3NDNcXHVBNzQ1XFx1QTdBMycgfSxcclxuICAgICAge1xyXG4gICAgICAgIGJhc2U6ICdsJyxcclxuICAgICAgICBjaGFyczpcclxuICAgICAgICAgICdcXHUyNERCXFx1RkY0Q1xcdTAxNDBcXHUwMTNBXFx1MDEzRVxcdTFFMzdcXHUxRTM5XFx1MDEzQ1xcdTFFM0RcXHUxRTNCXFx1MDE3RlxcdTAxNDJcXHUwMTlBXFx1MDI2QlxcdTJDNjFcXHVBNzQ5XFx1QTc4MVxcdUE3NDdcXHUwMjZEJyxcclxuICAgICAgfSxcclxuICAgICAgeyBiYXNlOiAnbGonLCBjaGFyczogJ1xcdTAxQzknIH0sXHJcbiAgICAgIHsgYmFzZTogJ20nLCBjaGFyczogJ1xcdTI0RENcXHVGRjREXFx1MUUzRlxcdTFFNDFcXHUxRTQzXFx1MDI3MVxcdTAyNkYnIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBiYXNlOiAnbicsXHJcbiAgICAgICAgY2hhcnM6XHJcbiAgICAgICAgICAnXFx1MjRERFxcdUZGNEVcXHUwMUY5XFx1MDE0NFxceEYxXFx1MUU0NVxcdTAxNDhcXHUxRTQ3XFx1MDE0NlxcdTFFNEJcXHUxRTQ5XFx1MDE5RVxcdTAyNzJcXHUwMTQ5XFx1QTc5MVxcdUE3QTVcXHUwNDNCXFx1MDUwOScsXHJcbiAgICAgIH0sXHJcbiAgICAgIHsgYmFzZTogJ25qJywgY2hhcnM6ICdcXHUwMUNDJyB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgYmFzZTogJ28nLFxyXG4gICAgICAgIGNoYXJzOlxyXG4gICAgICAgICAgJ1xcdTI0REVcXHVGRjRGXFx4RjJcXHhGM1xceEY0XFx1MUVEM1xcdTFFRDFcXHUxRUQ3XFx1MUVENVxceEY1XFx1MUU0RFxcdTAyMkRcXHUxRTRGXFx1MDE0RFxcdTFFNTFcXHUxRTUzXFx1MDE0RlxcdTAyMkZcXHUwMjMxXFx4RjZcXHUwMjJCXFx1MUVDRlxcdTAxNTFcXHUwMUQyXFx1MDIwRFxcdTAyMEZcXHUwMUExXFx1MUVERFxcdTFFREJcXHUxRUUxXFx1MUVERlxcdTFFRTNcXHUxRUNEXFx1MUVEOVxcdTAxRUJcXHUwMUVEXFx4RjhcXHUwMUZGXFx1QTc0QlxcdUE3NERcXHUwMjc1XFx1MDI1NFxcdTFEMTEnLFxyXG4gICAgICB9LFxyXG4gICAgICB7IGJhc2U6ICdvZScsIGNoYXJzOiAnXFx1MDE1MycgfSxcclxuICAgICAgeyBiYXNlOiAnb2knLCBjaGFyczogJ1xcdTAxQTMnIH0sXHJcbiAgICAgIHsgYmFzZTogJ29vJywgY2hhcnM6ICdcXHVBNzRGJyB9LFxyXG4gICAgICB7IGJhc2U6ICdvdScsIGNoYXJzOiAnXFx1MDIyMycgfSxcclxuICAgICAgeyBiYXNlOiAncCcsIGNoYXJzOiAnXFx1MjRERlxcdUZGNTBcXHUxRTU1XFx1MUU1N1xcdTAxQTVcXHUxRDdEXFx1QTc1MVxcdUE3NTNcXHVBNzU1XFx1MDNDMScgfSxcclxuICAgICAgeyBiYXNlOiAncScsIGNoYXJzOiAnXFx1MjRFMFxcdUZGNTFcXHUwMjRCXFx1QTc1N1xcdUE3NTknIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBiYXNlOiAncicsXHJcbiAgICAgICAgY2hhcnM6ICdcXHUyNEUxXFx1RkY1MlxcdTAxNTVcXHUxRTU5XFx1MDE1OVxcdTAyMTFcXHUwMjEzXFx1MUU1QlxcdTFFNURcXHUwMTU3XFx1MUU1RlxcdTAyNERcXHUwMjdEXFx1QTc1QlxcdUE3QTdcXHVBNzgzJyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGJhc2U6ICdzJyxcclxuICAgICAgICBjaGFyczogJ1xcdTI0RTJcXHVGRjUzXFx1MDE1QlxcdTFFNjVcXHUwMTVEXFx1MUU2MVxcdTAxNjFcXHUxRTY3XFx1MUU2M1xcdTFFNjlcXHUwMjE5XFx1MDE1RlxcdTAyM0ZcXHVBN0E5XFx1QTc4NVxcdTFFOUJcXHUwMjgyJyxcclxuICAgICAgfSxcclxuICAgICAgeyBiYXNlOiAnc3MnLCBjaGFyczogJ1xceERGJyB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgYmFzZTogJ3QnLFxyXG4gICAgICAgIGNoYXJzOiAnXFx1MjRFM1xcdUZGNTRcXHUxRTZCXFx1MUU5N1xcdTAxNjVcXHUxRTZEXFx1MDIxQlxcdTAxNjNcXHUxRTcxXFx1MUU2RlxcdTAxNjdcXHUwMUFEXFx1MDI4OFxcdTJDNjZcXHVBNzg3JyxcclxuICAgICAgfSxcclxuICAgICAgeyBiYXNlOiAndGgnLCBjaGFyczogJ1xcdTAwRkUnIH0sXHJcbiAgICAgIHsgYmFzZTogJ3R6JywgY2hhcnM6ICdcXHVBNzI5JyB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgYmFzZTogJ3UnLFxyXG4gICAgICAgIGNoYXJzOlxyXG4gICAgICAgICAgJ1xcdTI0RTRcXHVGRjU1XFx4RjlcXHhGQVxceEZCXFx1MDE2OVxcdTFFNzlcXHUwMTZCXFx1MUU3QlxcdTAxNkRcXHhGQ1xcdTAxRENcXHUwMUQ4XFx1MDFENlxcdTAxREFcXHUxRUU3XFx1MDE2RlxcdTAxNzFcXHUwMUQ0XFx1MDIxNVxcdTAyMTdcXHUwMUIwXFx1MUVFQlxcdTFFRTlcXHUxRUVGXFx1MUVFRFxcdTFFRjFcXHUxRUU1XFx1MUU3M1xcdTAxNzNcXHUxRTc3XFx1MUU3NVxcdTAyODknLFxyXG4gICAgICB9LFxyXG4gICAgICB7IGJhc2U6ICd2JywgY2hhcnM6ICdcXHUyNEU1XFx1RkY1NlxcdTFFN0RcXHUxRTdGXFx1MDI4QlxcdUE3NUZcXHUwMjhDJyB9LFxyXG4gICAgICB7IGJhc2U6ICd2eScsIGNoYXJzOiAnXFx1QTc2MScgfSxcclxuICAgICAgeyBiYXNlOiAndycsIGNoYXJzOiAnXFx1MjRFNlxcdUZGNTdcXHUxRTgxXFx1MUU4M1xcdTAxNzVcXHUxRTg3XFx1MUU4NVxcdTFFOThcXHUxRTg5XFx1MkM3MycgfSxcclxuICAgICAgeyBiYXNlOiAneCcsIGNoYXJzOiAnXFx1MjRFN1xcdUZGNThcXHUxRThCXFx1MUU4RCcgfSxcclxuICAgICAgeyBiYXNlOiAneScsIGNoYXJzOiAnXFx1MjRFOFxcdUZGNTlcXHUxRUYzXFx4RkRcXHUwMTc3XFx1MUVGOVxcdTAyMzNcXHUxRThGXFx4RkZcXHUxRUY3XFx1MUU5OVxcdTFFRjVcXHUwMUI0XFx1MDI0RlxcdTFFRkYnIH0sXHJcbiAgICAgIHsgYmFzZTogJ3onLCBjaGFyczogJ1xcdTI0RTlcXHVGRjVBXFx1MDE3QVxcdTFFOTFcXHUwMTdDXFx1MDE3RVxcdTFFOTNcXHUxRTk1XFx1MDFCNlxcdTAyMjVcXHUwMjQwXFx1MkM2Q1xcdUE3NjMnIH0sXHJcbiAgICBdO1xyXG5cclxuICAgIGxldCBkaWFjcml0aWNzTWFwOiBhbnkgPSB7fTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcmVwbGFjZW1lbnRMaXN0Lmxlbmd0aDsgaSArPSAxKSB7XHJcbiAgICAgIGxldCBjaGFycyA9IHJlcGxhY2VtZW50TGlzdFtpXS5jaGFycztcclxuICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBjaGFycy5sZW5ndGg7IGogKz0gMSkge1xyXG4gICAgICAgIGRpYWNyaXRpY3NNYXBbY2hhcnNbal1dID0gcmVwbGFjZW1lbnRMaXN0W2ldLmJhc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gaW5wdXQucmVwbGFjZSgvW15cXHUwMDAwLVxcdTAwN2VdL2csIGMgPT4gZGlhY3JpdGljc01hcFtjXSB8fCBjKTtcclxuICB9XHJcbn1cclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbTGF0aW5pemVQaXBlXSxcclxuICBleHBvcnRzOiBbTGF0aW5pemVQaXBlXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE5nTGF0aW5pemVQaXBlTW9kdWxlIHt9XHJcbiJdfQ==