UNPKG

moh-common-lib

Version:

A library of Angular components, services, and styles for B.C. Government Ministry of Health (MoH).

471 lines 66.1 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Component, Input, Output, EventEmitter, Optional, Self } from '@angular/core'; import { Base } from '../../models/base'; import { NgControl } from '@angular/forms'; /** * Interface for countries * @record */ export function CountryList() { } if (false) { /** @type {?} */ CountryList.prototype.countryCode; /** @type {?} */ CountryList.prototype.description; } /** @type {?} */ export const CANADA = 'CAN'; /** @type {?} */ export const UNITED_STATES = 'USA'; /** * Default list of countries * @type {?} */ export const COUNTRY_LIST = [ { countryCode: 'AFG', description: 'Afghanistan' }, { countryCode: 'ALA', description: 'Åland Islands' }, { countryCode: 'ALB', description: 'Albania' }, { countryCode: 'DZA', description: 'Algeria' }, { countryCode: 'ASM', description: 'American Samoa' }, { countryCode: 'AND', description: 'Andorra' }, { countryCode: 'AGO', description: 'Angola' }, { countryCode: 'AIA', description: 'Anguilla' }, { countryCode: 'ATA', description: 'Antarctica' }, { countryCode: 'ATG', description: 'Antigua and Barbuda' }, { countryCode: 'ARG', description: 'Argentina' }, { countryCode: 'ARM', description: 'Armenia' }, { countryCode: 'ABW', description: 'Aruba' }, { countryCode: 'AUS', description: 'Australia' }, { countryCode: 'AUT', description: 'Austria' }, { countryCode: 'AZE', description: 'Azerbaijan' }, { countryCode: 'BHS', description: 'Bahamas' }, { countryCode: 'BHR', description: 'Bahrain' }, { countryCode: 'BGD', description: 'Bangladesh' }, { countryCode: 'BRB', description: 'Barbados' }, { countryCode: 'BLR', description: 'Belarus' }, { countryCode: 'BEL', description: 'Belgium' }, { countryCode: 'BLZ', description: 'Belize' }, { countryCode: 'BEN', description: 'Benin' }, { countryCode: 'BMU', description: 'Bermuda' }, { countryCode: 'BTN', description: 'Bhutan' }, { countryCode: 'BOL', description: 'Bolivia, Plurinational State of' }, { countryCode: 'BES', description: 'Bonaire, Sint Eustatius and Saba' }, { countryCode: 'BIH', description: 'Bosnia and Herzegovina' }, { countryCode: 'BWA', description: 'Botswana' }, { countryCode: 'BVT', description: 'Bouvet Island' }, { countryCode: 'BRA', description: 'Brazil' }, { countryCode: 'IOT', description: 'British Indian Ocean Territory' }, { countryCode: 'BRN', description: 'Brunei Darussalam' }, { countryCode: 'BGR', description: 'Bulgaria' }, { countryCode: 'BFA', description: 'Burkina Faso' }, { countryCode: 'BDI', description: 'Burundi' }, { countryCode: 'KHM', description: 'Cambodia' }, { countryCode: 'CMR', description: 'Cameroon' }, { countryCode: 'CAN', description: 'Canada' }, { countryCode: 'CPV', description: 'Cape Verde' }, { countryCode: 'CYM', description: 'Cayman Islands' }, { countryCode: 'CAF', description: 'Central African Republic' }, { countryCode: 'TCD', description: 'Chad' }, { countryCode: 'CHL', description: 'Chile' }, { countryCode: 'CHN', description: 'China' }, { countryCode: 'CXR', description: 'Christmas Island' }, { countryCode: 'CCK', description: 'Cocos (Keeling) Islands' }, { countryCode: 'COL', description: 'Colombia' }, { countryCode: 'COM', description: 'Comoros' }, { countryCode: 'COG', description: 'Congo' }, { countryCode: 'COD', description: 'Congo, the Democratic Republic of the' }, { countryCode: 'COK', description: 'Cook Islands' }, { countryCode: 'CRI', description: 'Costa Rica' }, { countryCode: 'CIV', description: 'Côte d\'Ivoire' }, { countryCode: 'HRV', description: 'Croatia' }, { countryCode: 'CUB', description: 'Cuba' }, { countryCode: 'CUW', description: 'Curaçao' }, { countryCode: 'CYP', description: 'Cyprus' }, { countryCode: 'CZE', description: 'Czech Republic' }, { countryCode: 'DNK', description: 'Denmark' }, { countryCode: 'DJI', description: 'Djibouti' }, { countryCode: 'DMA', description: 'Dominica' }, { countryCode: 'DOM', description: 'Dominican Republic' }, { countryCode: 'ECU', description: 'Ecuador' }, { countryCode: 'EGY', description: 'Egypt' }, { countryCode: 'SLV', description: 'El Salvador' }, { countryCode: 'GNQ', description: 'Equatorial Guinea' }, { countryCode: 'ERI', description: 'Eritrea' }, { countryCode: 'EST', description: 'Estonia' }, { countryCode: 'ETH', description: 'Ethiopia' }, { countryCode: 'FLK', description: 'Falkland Islands (Malvinas)' }, { countryCode: 'FRO', description: 'Faroe Islands' }, { countryCode: 'FJI', description: 'Fiji' }, { countryCode: 'FIN', description: 'Finland' }, { countryCode: 'FRA', description: 'France' }, { countryCode: 'GUF', description: 'French Guiana' }, { countryCode: 'PYF', description: 'French Polynesia' }, { countryCode: 'ATF', description: 'French Southern Territories' }, { countryCode: 'GAB', description: 'Gabon' }, { countryCode: 'GMB', description: 'Gambia' }, { countryCode: 'GEO', description: 'Georgia' }, { countryCode: 'DEU', description: 'Germany' }, { countryCode: 'GHA', description: 'Ghana' }, { countryCode: 'GIB', description: 'Gibraltar' }, { countryCode: 'GRC', description: 'Greece' }, { countryCode: 'GRL', description: 'Greenland' }, { countryCode: 'GRD', description: 'Grenada' }, { countryCode: 'GLP', description: 'Guadeloupe' }, { countryCode: 'GUM', description: 'Guam' }, { countryCode: 'GTM', description: 'Guatemala' }, { countryCode: 'GGY', description: 'Guernsey' }, { countryCode: 'GIN', description: 'Guinea' }, { countryCode: 'GNB', description: 'Guinea-Bissau' }, { countryCode: 'GUY', description: 'Guyana' }, { countryCode: 'HTI', description: 'Haiti' }, { countryCode: 'HMD', description: 'Heard Island and McDonald Islands' }, { countryCode: 'VAT', description: 'Holy See (Vatican City State)' }, { countryCode: 'HND', description: 'Honduras' }, { countryCode: 'HKG', description: 'Hong Kong' }, { countryCode: 'HUN', description: 'Hungary' }, { countryCode: 'ISL', description: 'Iceland' }, { countryCode: 'IND', description: 'India' }, { countryCode: 'IDN', description: 'Indonesia' }, { countryCode: 'IRN', description: 'Iran, Islamic Republic of' }, { countryCode: 'IRQ', description: 'Iraq' }, { countryCode: 'IRL', description: 'Ireland' }, { countryCode: 'IMN', description: 'Isle of Man' }, { countryCode: 'ISR', description: 'Israel' }, { countryCode: 'ITA', description: 'Italy' }, { countryCode: 'JAM', description: 'Jamaica' }, { countryCode: 'JPN', description: 'Japan' }, { countryCode: 'JEY', description: 'Jersey' }, { countryCode: 'JOR', description: 'Jordan' }, { countryCode: 'KAZ', description: 'Kazakhstan' }, { countryCode: 'KEN', description: 'Kenya' }, { countryCode: 'KIR', description: 'Kiribati' }, { countryCode: 'PRK', description: 'Korea, Democratic People\'s Republic of' }, { countryCode: 'KOR', description: 'Korea, Republic of' }, { countryCode: 'KWT', description: 'Kuwait' }, { countryCode: 'KGZ', description: 'Kyrgyzstan' }, { countryCode: 'LAO', description: 'Lao People\'s Democratic Republic' }, { countryCode: 'LVA', description: 'Latvia' }, { countryCode: 'LBN', description: 'Lebanon' }, { countryCode: 'LSO', description: 'Lesotho' }, { countryCode: 'LBR', description: 'Liberia' }, { countryCode: 'LBY', description: 'Libya' }, { countryCode: 'LIE', description: 'Liechtenstein' }, { countryCode: 'LTU', description: 'Lithuania' }, { countryCode: 'LUX', description: 'Luxembourg' }, { countryCode: 'MAC', description: 'Macao' }, { countryCode: 'MKD', description: 'Macedonia, the former Yugoslav Republic of' }, { countryCode: 'MDG', description: 'Madagascar' }, { countryCode: 'MWI', description: 'Malawi' }, { countryCode: 'MYS', description: 'Malaysia' }, { countryCode: 'MDV', description: 'Maldives' }, { countryCode: 'MLI', description: 'Mali' }, { countryCode: 'MLT', description: 'Malta' }, { countryCode: 'MHL', description: 'Marshall Islands' }, { countryCode: 'MTQ', description: 'Martinique' }, { countryCode: 'MRT', description: 'Mauritania' }, { countryCode: 'MUS', description: 'Mauritius' }, { countryCode: 'MYT', description: 'Mayotte' }, { countryCode: 'MEX', description: 'Mexico' }, { countryCode: 'FSM', description: 'Micronesia, Federated States of' }, { countryCode: 'MDA', description: 'Moldova, Republic of' }, { countryCode: 'MCO', description: 'Monaco' }, { countryCode: 'MNG', description: 'Mongolia' }, { countryCode: 'MNE', description: 'Montenegro' }, { countryCode: 'MSR', description: 'Montserrat' }, { countryCode: 'MAR', description: 'Morocco' }, { countryCode: 'MOZ', description: 'Mozambique' }, { countryCode: 'MMR', description: 'Myanmar' }, { countryCode: 'NAM', description: 'Namibia' }, { countryCode: 'NRU', description: 'Nauru' }, { countryCode: 'NPL', description: 'Nepal' }, { countryCode: 'NLD', description: 'Netherlands' }, { countryCode: 'NCL', description: 'New Caledonia' }, { countryCode: 'NZL', description: 'New Zealand' }, { countryCode: 'NIC', description: 'Nicaragua' }, { countryCode: 'NER', description: 'Niger' }, { countryCode: 'NGA', description: 'Nigeria' }, { countryCode: 'NIU', description: 'Niue' }, { countryCode: 'NFK', description: 'Norfolk Island' }, { countryCode: 'MNP', description: 'Northern Mariana Islands' }, { countryCode: 'NOR', description: 'Norway' }, { countryCode: 'OMN', description: 'Oman' }, { countryCode: 'PAK', description: 'Pakistan' }, { countryCode: 'PLW', description: 'Palau' }, { countryCode: 'PSE', description: 'Palestinian Territory, Occupied' }, { countryCode: 'PAN', description: 'Panama' }, { countryCode: 'PNG', description: 'Papua New Guinea' }, { countryCode: 'PRY', description: 'Paraguay' }, { countryCode: 'PER', description: 'Peru' }, { countryCode: 'PHL', description: 'Philippines' }, { countryCode: 'PCN', description: 'Pitcairn' }, { countryCode: 'POL', description: 'Poland' }, { countryCode: 'PRT', description: 'Portugal' }, { countryCode: 'PRI', description: 'Puerto Rico' }, { countryCode: 'QAT', description: 'Qatar' }, { countryCode: 'REU', description: 'Réunion' }, { countryCode: 'ROU', description: 'Romania' }, { countryCode: 'RUS', description: 'Russian Federation' }, { countryCode: 'RWA', description: 'Rwanda' }, { countryCode: 'BLM', description: 'Saint Barthélemy' }, { countryCode: 'SHN', description: 'Saint Helena, Ascension and Tristan da Cunha' }, { countryCode: 'KNA', description: 'Saint Kitts and Nevis' }, { countryCode: 'LCA', description: 'Saint Lucia' }, { countryCode: 'MAF', description: 'Saint Martin (French part)' }, { countryCode: 'SPM', description: 'Saint Pierre and Miquelon' }, { countryCode: 'VCT', description: 'Saint Vincent and the Grenadines' }, { countryCode: 'WSM', description: 'Samoa' }, { countryCode: 'SMR', description: 'San Marino' }, { countryCode: 'STP', description: 'Sao Tome and Principe' }, { countryCode: 'SAU', description: 'Saudi Arabia' }, { countryCode: 'SEN', description: 'Senegal' }, { countryCode: 'SRB', description: 'Serbia' }, { countryCode: 'SYC', description: 'Seychelles' }, { countryCode: 'SLE', description: 'Sierra Leone' }, { countryCode: 'SGP', description: 'Singapore' }, { countryCode: 'SXM', description: 'Sint Maarten (Dutch part)' }, { countryCode: 'SVK', description: 'Slovakia' }, { countryCode: 'SVN', description: 'Slovenia' }, { countryCode: 'SLB', description: 'Solomon Islands' }, { countryCode: 'SOM', description: 'Somalia' }, { countryCode: 'ZAF', description: 'South Africa' }, { countryCode: 'SGS', description: 'South Georgia and the South Sandwich Islands' }, { countryCode: 'SSD', description: 'South Sudan' }, { countryCode: 'ESP', description: 'Spain' }, { countryCode: 'LKA', description: 'Sri Lanka' }, { countryCode: 'SDN', description: 'Sudan' }, { countryCode: 'SUR', description: 'Suriname' }, { countryCode: 'SJM', description: 'Svalbard and Jan Mayen' }, { countryCode: 'SWZ', description: 'Swaziland' }, { countryCode: 'SWE', description: 'Sweden' }, { countryCode: 'CHE', description: 'Switzerland' }, { countryCode: 'SYR', description: 'Syrian Arab Republic' }, { countryCode: 'TWN', description: 'Taiwan' }, { countryCode: 'TJK', description: 'Tajikistan' }, { countryCode: 'TZA', description: 'Tanzania, United Republic of' }, { countryCode: 'THA', description: 'Thailand' }, { countryCode: 'TLS', description: 'Timor-Leste' }, { countryCode: 'TGO', description: 'Togo' }, { countryCode: 'TKL', description: 'Tokelau' }, { countryCode: 'TON', description: 'Tonga' }, { countryCode: 'TTO', description: 'Trinidad and Tobago' }, { countryCode: 'TUN', description: 'Tunisia' }, { countryCode: 'TUR', description: 'Turkey' }, { countryCode: 'TKM', description: 'Turkmenistan' }, { countryCode: 'TCA', description: 'Turks and Caicos Islands' }, { countryCode: 'TUV', description: 'Tuvalu' }, { countryCode: 'UGA', description: 'Uganda' }, { countryCode: 'UKR', description: 'Ukraine' }, { countryCode: 'ARE', description: 'United Arab Emirates' }, { countryCode: 'GBR', description: 'United Kingdom' }, { countryCode: 'USA', description: 'United States' }, { countryCode: 'UMI', description: 'United States Minor Outlying Islands' }, { countryCode: 'URY', description: 'Uruguay' }, { countryCode: 'UZB', description: 'Uzbekistan' }, { countryCode: 'VUT', description: 'Vanuatu' }, { countryCode: 'VEN', description: 'Venezuela, Bolivarian Republic of' }, { countryCode: 'VNM', description: 'Viet Nam' }, { countryCode: 'VGB', description: 'Virgin Islands, British' }, { countryCode: 'VIR', description: 'Virgin Islands, U.S.' }, { countryCode: 'WLF', description: 'Wallis and Futuna' }, { countryCode: 'ESH', description: 'Western Sahara' }, { countryCode: 'YEM', description: 'Yemen' }, { countryCode: 'ZMB', description: 'Zambia' }, { countryCode: 'ZWE', description: 'Zimbabwe' } ]; /** * @param {?} countryCode * @return {?} */ export function getCountryDescription(countryCode) { /** @type {?} */ const countryObj = COUNTRY_LIST.find((/** * @param {?} val * @return {?} */ val => countryCode === val.countryCode)); return countryObj ? countryObj.description : countryCode; } export class CountryComponent extends Base { /** * @param {?} controlDir */ constructor(controlDir) { super(); this.controlDir = controlDir; this.label = 'Jurisdiction'; this.countryList = COUNTRY_LIST; this.labelforId = 'country_' + this.objectId; this.disabled = false; this.required = false; this.useDropDownList = true; this.maxlen = '250'; this.placeholder = 'Please select a jurisdiction'; this.valueChange = new EventEmitter(); this.blurEvent = new EventEmitter(); this.country = ''; this.defaultErrMsg = { required: 'is required.', invalidChar: 'must contain letters and may include special characters such as hyphens, periods, apostrophes and blank characters.', }; this._onChange = (/** * @param {?} _ * @return {?} */ (_) => { }); this._onTouched = (/** * @param {?} _ * @return {?} */ (_) => { }); if (controlDir) { controlDir.valueAccessor = this; } } /** * @param {?} val * @return {?} */ set value(val) { if (val) { this.country = val; } } /** * @return {?} */ get value() { return this.country; } /** * @return {?} */ ngOnInit() { this.setErrorMsg(); } /** * @param {?} value * @return {?} */ onValueChange(value) { if (value !== this.country) { this._onChange(value); this.valueChange.emit(value); this.country = value; } } /** * @param {?} event * @return {?} */ onBlurEvent(event) { this._onTouched(event); this.blurEvent.emit(event); } /** * @param {?} value * @return {?} */ writeValue(value) { if (value !== undefined) { this.country = value; } } // Register change function /** * @param {?} fn * @return {?} */ registerOnChange(fn) { this._onChange = fn; } // Register touched function /** * @param {?} fn * @return {?} */ registerOnTouched(fn) { this._onTouched = fn; } /** * @param {?} isDisabled * @return {?} */ setDisabledState(isDisabled) { this.disabled = isDisabled; } /** * @private * @return {?} */ setErrorMsg() { if (this.errorMessage) { Object.keys(this.errorMessage).map((/** * @param {?} x * @return {?} */ x => this.defaultErrMsg[x] = this.errorMessage[x])); } } } CountryComponent.decorators = [ { type: Component, args: [{ selector: 'common-country', template: "<label for=\"{{labelforId}}\" class=\"control-label\">{{label}}</label>\r\n<div *ngIf=\"useDropDownList; else NotDropDownList\">\r\n <ng-select [items]=\"countryList\"\r\n [ngModel]=\"country\"\r\n (ngModelChange)=\"onValueChange($event)\"\r\n (blur)=\"onBlurEvent($event)\"\r\n [required]=\"required\"\r\n [disabled]=\"disabled\"\r\n labelForId=\"{{labelforId}}\"\r\n bindValue=\"countryCode\"\r\n [clearable]=\"false\"\r\n bindLabel=\"description\"\r\n placeholder=\"{{ placeholder }}\"></ng-select>\r\n</div>\r\n\r\n<!-- Error messages for input -->\r\n<common-error-container\r\n [displayError]=\"controlDir && !disabled && (controlDir.touched || controlDir.dirty) && controlDir?.errors\">\r\n <div *ngIf=\"controlDir?.errors?.required\">\r\n {{label}} {{defaultErrMsg.required}}\r\n </div>\r\n <div *ngIf=\"controlDir?.errors?.invalidChar\">\r\n {{label}} {{defaultErrMsg.invalidChar}}\r\n </div>\r\n</common-error-container>\r\n\r\n<ng-template #NotDropDownList>\r\n <input class=\"form-control\"\r\n spellcheck=\"false\"\r\n type=\"text\"\r\n id=\"{{labelforId}}\"\r\n [value]=\"country\"\r\n (change)=\"onValueChange($event.target.value)\"\r\n (blur)=\"onBlurEvent($event)\"\r\n [disabled]=\"disabled\"\r\n [attr.maxlength]=\"maxlen\"\r\n autocomplete=\"off\"/>\r\n</ng-template>\r\n" }] } ]; /** @nocollapse */ CountryComponent.ctorParameters = () => [ { type: NgControl, decorators: [{ type: Optional }, { type: Self }] } ]; CountryComponent.propDecorators = { label: [{ type: Input }], countryList: [{ type: Input }], labelforId: [{ type: Input }], disabled: [{ type: Input }], required: [{ type: Input }], useDropDownList: [{ type: Input }], maxlen: [{ type: Input }], errorMessage: [{ type: Input }], placeholder: [{ type: Input }], value: [{ type: Input }], valueChange: [{ type: Output }], blurEvent: [{ type: Output }] }; if (false) { /** @type {?} */ CountryComponent.prototype.label; /** @type {?} */ CountryComponent.prototype.countryList; /** @type {?} */ CountryComponent.prototype.labelforId; /** @type {?} */ CountryComponent.prototype.disabled; /** @type {?} */ CountryComponent.prototype.required; /** @type {?} */ CountryComponent.prototype.useDropDownList; /** @type {?} */ CountryComponent.prototype.maxlen; /** @type {?} */ CountryComponent.prototype.errorMessage; /** @type {?} */ CountryComponent.prototype.placeholder; /** @type {?} */ CountryComponent.prototype.valueChange; /** @type {?} */ CountryComponent.prototype.blurEvent; /** @type {?} */ CountryComponent.prototype.country; /** @type {?} */ CountryComponent.prototype.defaultErrMsg; /** @type {?} */ CountryComponent.prototype._onChange; /** @type {?} */ CountryComponent.prototype._onTouched; /** @type {?} */ CountryComponent.prototype.controlDir; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291bnRyeS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9tb2gtY29tbW9uLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2NvdW50cnkvY291bnRyeS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMvRixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDekMsT0FBTyxFQUF3QixTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFJakUsaUNBR0M7OztJQUZDLGtDQUFvQjs7SUFDcEIsa0NBQW9COzs7QUFHdEIsTUFBTSxPQUFPLE1BQU0sR0FBRyxLQUFLOztBQUMzQixNQUFNLE9BQU8sYUFBYSxHQUFHLEtBQUs7Ozs7O0FBR2xDLE1BQU0sT0FBTyxZQUFZLEdBQWtCO0lBQ3pDLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFO0lBQ2xELEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFO0lBQ3BELEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFO0lBQzlDLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFO0lBQzlDLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUU7SUFDckQsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUU7SUFDOUMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUU7SUFDN0MsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUU7SUFDL0MsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUU7SUFDakQsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxxQkFBcUIsRUFBRTtJQUMxRCxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRTtJQUNoRCxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRTtJQUM5QyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRTtJQUM1QyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRTtJQUNoRCxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRTtJQUM5QyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRTtJQUNqRCxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRTtJQUM5QyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRTtJQUM5QyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRTtJQUNqRCxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRTtJQUMvQyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRTtJQUM5QyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRTtJQUM5QyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRTtJQUM3QyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRTtJQUM1QyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRTtJQUM5QyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFF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LEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsNkJBQTZCLEVBQUU7SUFDbEUsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUU7SUFDNUMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUU7SUFDN0MsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUU7SUFDOUMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUU7SUFDOUMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUU7SUFDNUMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUU7SUFDaEQsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUU7SUFDN0MsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUU7SUFDaEQsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUU7SUFDOUMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUU7SUFDakQsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUU7SUFDM0MsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUU7SUFDaEQsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUU7SUFDL0MsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUU7SUFDN0MsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUU7SUFDcEQsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUU7SUFDN0MsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUU7SUFDNUMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxtQ0FBbUMsRUFBRTtJQUN4RSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLCtCQUErQixFQUFFO0lBQ3BFLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFO0lBQy9DLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFO0lBQ2hELEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFO0lBQzlDLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFO0lBQzlDLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFO0lBQzVDLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFO0lBQ2hELEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsMkJBQTJCLEVBQUU7SUFDaEUsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUU7SUFDM0MsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUU7SUFDOUMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUU7SUFDbEQsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUU7SUFDN0MsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUU7SUFDNUMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUU7SUFDOUMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUU7SUFDNUMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUU7SUFDN0MsRUFBRSxX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OztZQXRGRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtnQkFDMUIsOCtDQUF1QzthQUN4Qzs7OztZQWpSOEIsU0FBUyx1QkFvVHhCLFFBQVEsWUFBSSxJQUFJOzs7b0JBaEM3QixLQUFLOzBCQUNMLEtBQUs7eUJBQ0wsS0FBSzt1QkFDTCxLQUFLO3VCQUNMLEtBQUs7OEJBQ0wsS0FBSztxQkFDTCxLQUFLOzJCQUNMLEtBQUs7MEJBQ0wsS0FBSztvQkFDTCxLQUFLOzBCQVVMLE1BQU07d0JBQ04sTUFBTTs7OztJQXBCUCxpQ0FBd0M7O0lBQ3hDLHVDQUFtRDs7SUFDbkQsc0NBQXlEOztJQUN6RCxvQ0FBbUM7O0lBQ25DLG9DQUFtQzs7SUFDbkMsMkNBQXlDOztJQUN6QyxrQ0FBZ0M7O0lBQ2hDLHdDQUFvQzs7SUFDcEMsdUNBQThEOztJQVc5RCx1Q0FBeUU7O0lBQ3pFLHFDQUFpRTs7SUFFakUsbUNBQXFCOztJQUVyQix5Q0FHRTs7SUFFRixxQ0FBMkI7O0lBQzNCLHNDQUE0Qjs7SUFFZixzQ0FBZ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgT3B0aW9uYWwsIFNlbGYsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCYXNlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2Jhc2UnO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBFcnJvck1lc3NhZ2UgfSBmcm9tICcuLi8uLi9tb2RlbHMvZXJyb3ItbWVzc2FnZS5pbnRlcmZhY2UnO1xyXG5cclxuLyoqIEludGVyZmFjZSBmb3IgY291bnRyaWVzICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ291bnRyeUxpc3Qge1xyXG4gIGNvdW50cnlDb2RlOiBzdHJpbmc7XHJcbiAgZGVzY3JpcHRpb246IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IENBTkFEQSA9ICdDQU4nO1xyXG5leHBvcnQgY29uc3QgVU5JVEVEX1NUQVRFUyA9ICdVU0EnO1xyXG5cclxuLyoqIERlZmF1bHQgbGlzdCBvZiBjb3VudHJpZXMgKi9cclxuZXhwb3J0IGNvbnN0IENPVU5UUllfTElTVDogQ291bnRyeUxpc3RbXSA9IFtcclxuICB7IGNvdW50cnlDb2RlOiAnQUZHJywgZGVzY3JpcHRpb246ICdBZmdoYW5pc3RhbicgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnQUxBJywgZGVzY3JpcHRpb246ICfDhWxhbmQgSXNsYW5kcycgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnQUxCJywgZGVzY3JpcHRpb246ICdBbGJhbmlhJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdEWkEnLCBkZXNjcmlwdGlvbjogJ0FsZ2VyaWEnIH0sXHJcbiAgeyBjb3VudHJ5Q29kZTogJ0FTTScsIGRlc2NyaXB0aW9uOiAnQW1lcmljYW4gU2Ftb2EnIH0sXHJcbiAgeyBjb3VudHJ5Q29kZTogJ0FORCcsIGRlc2NyaXB0aW9uOiAnQW5kb3JyYScgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnQUdPJywgZGVzY3JpcHRpb246ICdBbmdvbGEnIH0sXHJcbiAgeyBjb3VudHJ5Q29kZTogJ0FJQScsIGRlc2NyaXB0aW9uOiAnQW5ndWlsbGEnIH0sXHJcbiAgeyBjb3VudHJ5Q29kZTogJ0FUQScsIGRlc2NyaXB0aW9uOiAnQW50YXJjdGljYScgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnQVRHJywgZGVzY3JpcHRpb246ICdBbnRpZ3VhIGFuZCBCYXJidWRhJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdBUkcnLCBkZXNjcmlwdGlvbjogJ0FyZ2VudGluYScgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnQVJNJywgZGVzY3JpcHRpb246ICdBcm1lbmlhJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdBQlcnLCBkZXNjcmlwdGlvbjogJ0FydWJhJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdBVVMnLCBkZXNjcmlwdGlvbjogJ0F1c3RyYWxpYScgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnQVVUJywgZGVzY3JpcHRpb246ICdBdXN0cmlhJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdBWkUnLCBkZXNjcmlwdGlvbjogJ0F6ZXJiYWlqYW4nIH0sXHJcbiAgeyBjb3VudHJ5Q29kZTogJ0JIUycsIGRlc2NyaXB0aW9uOiAnQmFoYW1hcycgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnQkhSJywgZGVzY3JpcHRpb246ICdCYWhyYWluJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdCR0QnLCBkZXNjcmlwdGlvbjogJ0JhbmdsYWRlc2gnIH0sXHJcbiAgeyBjb3VudHJ5Q29kZTogJ0JSQicsIGRlc2NyaXB0aW9uOiAnQmFyYmFkb3MnIH0sXHJcbiAgeyBjb3VudHJ5Q29kZTogJ0JMUicsIGRlc2NyaXB0aW9uOiAnQmVsYXJ1cycgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnQkVMJywgZGVzY3JpcHRpb246ICdCZWxnaXVtJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdCTFonLCBkZXNjcmlwdGlvbjogJ0JlbGl6ZScgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnQkVOJywgZGVzY3JpcHRpb246ICdCZW5pbicgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnQk1VJywgZGVzY3JpcHRpb246ICdCZXJtdWRhJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdCVE4nLCBkZXNjcmlwdGlvbjogJ0JodXRhbicgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnQk9MJywgZGVzY3JpcHRpb246ICdCb2xpdmlhLCBQbHVyaW5hdGlvbmFsIFN0YXRlIG9mJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdCRVMnLCBkZXNjcmlwdGlvbjogJ0JvbmFpcmUsIFNpbnQgRXVzdGF0aXVzIGFuZCBTYWJhJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdCSUgnLCBkZXNjcmlwdGlvbjogJ0Jvc25pYSBhbmQgSGVyemVnb3ZpbmEnIH0sXHJcbiAgeyBjb3VudHJ5Q29kZTogJ0JXQScsIGRlc2NyaXB0aW9uOiAnQm90c3dhbmEnIH0sXHJcbiAgeyBjb3VudHJ5Q29kZTogJ0JWVCcsIGRlc2NyaXB0aW9uOiAnQm91dmV0IElzbGFuZCcgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnQlJBJywgZGVzY3JpcHRpb246ICdCcmF6aWwnIH0sXHJcbiAgeyBjb3VudHJ5Q29kZTogJ0lPVCcsIGRlc2NyaXB0aW9uOiAnQnJpdGlzaCBJbmRpYW4gT2NlYW4gVGVycml0b3J5JyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdCUk4nLCBkZXNjcmlwdGlvbjogJ0JydW5laSBEYXJ1c3NhbGFtJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdCR1InLCBkZXNjcmlwdGlvbjogJ0J1bGdhcmlhJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdCRkEnLCBkZXNjcmlwdGlvbjogJ0J1cmtpbmEgRmFzbycgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnQkRJJywgZGVzY3JpcHRpb246ICdCdXJ1bmRpJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdLSE0nLCBkZXNjcmlwdGlvbjogJ0NhbWJvZGlhJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdDTVInLCBkZXNjcmlwdGlvbjogJ0NhbWVyb29uJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdDQU4nLCBkZXNjcmlwdGlvbjogJ0NhbmFkYScgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnQ1BWJywgZGVzY3JpcHRpb246ICdDYXBlIFZlcmRlJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdDWU0nLCBkZXNjcmlwdGlvbjogJ0NheW1hbiBJc2xhbmRzJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdDQUYnLCBkZXNjcmlwdGlvbjogJ0NlbnRyYWwgQWZyaWNhbiBSZXB1YmxpYycgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnVENEJywgZGVzY3JpcHRpb246ICdDaGFkJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdDSEwnLCBkZXNjcmlwdGlvbjogJ0NoaWxlJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdDSE4nLCBkZXNjcmlwdGlvbjogJ0NoaW5hJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdDWFInLCBkZXNjcmlwdGlvbjogJ0NocmlzdG1hcyBJc2xhbmQnIH0sXHJcbiAgeyBjb3VudHJ5Q29kZTogJ0NDSycsIGRlc2NyaXB0aW9uOiAnQ29jb3MgKEtlZWxpbmcpIElzbGFuZHMnIH0sXHJcbiAgeyBjb3VudHJ5Q29kZTogJ0NPTCcsIGRlc2NyaXB0aW9uOiAnQ29sb21iaWEnIH0sXHJcbiAgeyBjb3VudHJ5Q29kZTogJ0NPTScsIGRlc2NyaXB0aW9uOiAnQ29tb3JvcycgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnQ09HJywgZGVzY3JpcHRpb246ICdDb25nbycgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnQ09EJywgZGVzY3JpcHRpb246ICdDb25nbywgdGhlIERlbW9jcmF0aWMgUmVwdWJsaWMgb2YgdGhlJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdDT0snLCBkZXNjcmlwdGlvbjogJ0Nvb2sgSXNsYW5kcycgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnQ1JJJywgZGVzY3JpcHRpb246ICdDb3N0YSBSaWNhJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdDSVYnLCBkZXNjcmlwdGlvbjogJ0PDtHRlIGRcXCdJdm9pcmUnIH0sXHJcbiAgeyBjb3VudHJ5Q29kZTogJ0hSVicsIGRlc2NyaXB0aW9uOiAnQ3JvYXRpYScgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnQ1VCJywgZGVzY3JpcHRpb246ICdDdWJhJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdDVVcnLCBkZXNjcmlwdGlvbjogJ0N1cmHDp2FvJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdDWVAnLCBkZXNjcmlwdGlvbjogJ0N5cHJ1cycgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnQ1pFJywgZGVzY3JpcHRpb246ICdDemVjaCBSZXB1YmxpYycgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnRE5LJywgZGVzY3JpcHRpb246ICdEZW5tYXJrJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdESkknLCBkZXNjcmlwdGlvbjogJ0RqaWJvdXRpJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdETUEnLCBkZXNjcmlwdGlvbjogJ0RvbWluaWNhJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdET00nLCBkZXNjcmlwdGlvbjogJ0RvbWluaWNhbiBSZXB1YmxpYycgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnRUNVJywgZGVzY3JpcHRpb246ICdFY3VhZG9yJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdFR1knLCBkZXNjcmlwdGlvbjogJ0VneXB0JyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdTTFYnLCBkZXNjcmlwdGlvbjogJ0VsIFNhbHZhZG9yJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdHTlEnLCBkZXNjcmlwdGlvbjogJ0VxdWF0b3JpYWwgR3VpbmVhJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdFUkknLCBkZXNjcmlwdGlvbjogJ0VyaXRyZWEnIH0sXHJcbiAgeyBjb3VudHJ5Q29kZTogJ0VTVCcsIGRlc2NyaXB0aW9uOiAnRXN0b25pYScgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnRVRIJywgZGVzY3JpcHRpb246ICdFdGhpb3BpYScgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnRkxLJywgZGVzY3JpcHRpb246ICdGYWxrbGFuZCBJc2xhbmRzIChNYWx2aW5hcyknIH0sXHJcbiAgeyBjb3VudHJ5Q29kZTogJ0ZSTycsIGRlc2NyaXB0aW9uOiAnRmFyb2UgSXNsYW5kcycgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnRkpJJywgZGVzY3JpcHRpb246ICdGaWppJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdGSU4nLCBkZXNjcmlwdGlvbjogJ0ZpbmxhbmQnIH0sXHJcbiAgeyBjb3VudHJ5Q29kZTogJ0ZSQScsIGRlc2NyaXB0aW9uOiAnRnJhbmNlJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdHVUYnLCBkZXNjcmlwdGlvbjogJ0ZyZW5jaCBHdWlhbmEnIH0sXHJcbiAgeyBjb3VudHJ5Q29kZTogJ1BZRicsIGRlc2NyaXB0aW9uOiAnRnJlbmNoIFBvbHluZXNpYScgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnQVRGJywgZGVzY3JpcHRpb246ICdGcmVuY2ggU291dGhlcm4gVGVycml0b3JpZXMnIH0sXHJcbiAgeyBjb3VudHJ5Q29kZTogJ0dBQicsIGRlc2NyaXB0aW9uOiAnR2Fib24nIH0sXHJcbiAgeyBjb3VudHJ5Q29kZTogJ0dNQicsIGRlc2NyaXB0aW9uOiAnR2FtYmlhJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdHRU8nLCBkZXNjcmlwdGlvbjogJ0dlb3JnaWEnIH0sXHJcbiAgeyBjb3VudHJ5Q29kZTogJ0RFVScsIGRlc2NyaXB0aW9uOiAnR2VybWFueScgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnR0hBJywgZGVzY3JpcHRpb246ICdHaGFuYScgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnR0lCJywgZGVzY3JpcHRpb246ICdHaWJyYWx0YXInIH0sXHJcbiAgeyBjb3VudHJ5Q29kZTogJ0dSQycsIGRlc2NyaXB0aW9uOiAnR3JlZWNlJyB9LFxyXG