formsy-react/build/formsy-react.js

643 lines
135 KiB
JavaScript
Executable File

(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({"./src/main.js":[function(require,module,exports){
(function (global){
var React = global.React || require('react');
var Formsy = {};
var validationRules = require('./validationRules.js');
var utils = require('./utils.js');
var Mixin = require('./Mixin.js');
var options = {};
Formsy.Mixin = Mixin;
Formsy.defaults = function (passedOptions) {
options = passedOptions;
};
Formsy.addValidationRule = function (name, func) {
validationRules[name] = func;
};
Formsy.Form = React.createClass({displayName: "Form",
getInitialState: function () {
return {
isValid: true,
isSubmitting: false,
canChange: false
};
},
getDefaultProps: function () {
return {
headers: {},
onSuccess: function () {},
onError: function () {},
onSubmit: function () {},
onValidSubmit: function () {},
onInvalidSubmit: function () {},
onSubmitted: function () {},
onValid: function () {},
onInvalid: function () {},
onChange: function () {}
};
},
// Add a map to store the inputs of the form, a model to store
// the values of the form and register child inputs
componentWillMount: function () {
this.inputs = {};
this.model = {};
this.registerInputs(this.props.children);
},
componentDidMount: function () {
this.validateForm();
},
componentWillUpdate: function () {
var inputKeys = Object.keys(this.inputs);
// The updated children array is not available here for some reason,
// we need to wait for next event loop
setTimeout(function () {
// The component might have been unmounted on an
// update
if (this.isMounted()) {
this.registerInputs(this.props.children);
if (this.props.validationErrors) {
this.setInputValidationErrors(this.props.validationErrors);
}
var newInputKeys = Object.keys(this.inputs);
if (utils.arraysDiffer(inputKeys, newInputKeys)) {
this.validateForm();
}
}
}.bind(this), 0);
},
// Update model, submit to url prop and send the model
submit: function (event) {
event.preventDefault();
// Trigger form as not pristine.
// If any inputs have not been touched yet this will make them dirty
// so validation becomes visible (if based on isPristine)
this.setFormPristine(false);
// To support use cases where no async or request operation is needed.
// The "onSubmit" callback is called with the model e.g. {fieldName: "myValue"},
// if wanting to reset the entire form to original state, the second param is a callback for this.
if (!this.props.url) {
this.updateModel();
var model = this.mapModel();
this.props.onSubmit(model, this.resetModel, this.updateInputsWithError);
this.state.isValid ? this.props.onValidSubmit(model, this.resetModel) : this.props.onInvalidSubmit(model, this.resetModel);
return;
}
this.updateModel();
this.setState({
isSubmitting: true
});
this.props.onSubmit(this.mapModel(), this.resetModel, this.updateInputsWithError);
var headers = (Object.keys(this.props.headers).length && this.props.headers) || options.headers || {};
var method = this.props.method && utils.ajax[this.props.method.toLowerCase()] ? this.props.method.toLowerCase() : 'post';
utils.ajax[method](this.props.url, this.mapModel(), this.props.contentType || options.contentType || 'json', headers)
.then(function (response) {
this.props.onSuccess(response);
this.props.onSubmitted();
}.bind(this))
.catch(this.failSubmit);
},
mapModel: function () {
return this.props.mapping ? this.props.mapping(this.model) : this.model;
},
// Goes through all registered components and
// updates the model values
updateModel: function () {
Object.keys(this.inputs).forEach(function (name) {
var component = this.inputs[name];
this.model[name] = component.state._value;
}.bind(this));
},
// Reset each key in the model to the original / initial value
resetModel: function () {
Object.keys(this.inputs).forEach(function (name) {
this.inputs[name].resetValue();
}.bind(this));
this.validateForm();
},
setInputValidationErrors: function (errors) {
Object.keys(this.inputs).forEach(function (name, index) {
var component = this.inputs[name];
var args = [{
_isValid: !(name in errors),
_serverError: errors[name]
}];
component.setState.apply(component, args);
}.bind(this));
},
// Go through errors from server and grab the components
// stored in the inputs map. Change their state to invalid
// and set the serverError message
updateInputsWithError: function (errors) {
Object.keys(errors).forEach(function (name, index) {
var component = this.inputs[name];
if (!component) {
throw new Error('You are trying to update an input that does not exists. Verify errors object with input names. ' + JSON.stringify(errors));
}
var args = [{
_isValid: false,
_serverError: errors[name]
}];
component.setState.apply(component, args);
}.bind(this));
},
failSubmit: function (errors) {
this.updateInputsWithError(errors);
this.setState({
isSubmitting: false
});
this.props.onError(errors);
this.props.onSubmitted();
},
// Traverse the children and children of children to find
// all inputs by checking the name prop. Maybe do a better
// check here
registerInputs: function (children) {
React.Children.forEach(children, function (child) {
if (child && child.props && child.props.name) {
child.props._attachToForm = this.attachToForm;
child.props._detachFromForm = this.detachFromForm;
child.props._validate = this.validate;
child.props._isFormDisabled = this.isFormDisabled;
child.props._isValidValue = this.runValidation;
}
if (child && child.props && child.props.children) {
this.registerInputs(child.props.children);
}
}.bind(this));
},
isFormDisabled: function () {
return this.props.disabled;
},
getCurrentValues: function () {
return Object.keys(this.inputs).reduce(function (data, name) {
var component = this.inputs[name];
data[name] = component.state._value;
return data;
}.bind(this), {});
},
setFormPristine: function (isPristine) {
var inputs = this.inputs;
var inputKeys = Object.keys(inputs);
// Iterate through each component and set it as pristine
// or "dirty".
inputKeys.forEach(function (name, index) {
var component = inputs[name];
component.setState({
_isPristine: isPristine
});
}.bind(this));
},
// Use the binded values and the actual input value to
// validate the input and set its state. Then check the
// state of the form itself
validate: function (component) {
// Trigger onChange
if (this.state.canChange) {
this.props.onChange(this.getCurrentValues());
}
var isValid = true;
if (component.validate && typeof component.validate === 'function') {
isValid = component.validate();
} else if (component.props.required || component._validations) {
isValid = this.runValidation(component);
}
// Run through the validations, split them up and call
// the validator IF there is a value or it is required
component.setState({
_isValid: isValid,
_serverError: null
}, this.validateForm);
},
// Checks validation on current value or a passed value
runValidation: function (component, value) {
var isValid = true;
value = arguments.length === 2 ? value : component.state._value;
if (component._validations.length) {
component._validations.split(/\,(?![^{\[]*[}\]])/g).forEach(function (validation) {
var args = validation.split(':');
var validateMethod = args.shift();
args = args.map(function (arg) {
try {
return JSON.parse(arg);
} catch (e) {
return arg; // It is a string if it can not parse it
}
});
args = [value].concat(args);
if (!validationRules[validateMethod]) {
throw new Error('Formsy does not have the validation rule: ' + validateMethod);
}
if (!validationRules[validateMethod].apply(this.getCurrentValues(), args)) {
isValid = false;
}
}.bind(this));
}
if (typeof component.validate === "function") {
// the component defines an explicit validate function
isValid = component.validate()
}
return isValid;
},
// Validate the form by going through all child input components
// and check their state
validateForm: function () {
var allIsValid = true;
var inputs = this.inputs;
var inputKeys = Object.keys(inputs);
// We need a callback as we are validating all inputs again. This will
// run when the last component has set its state
var onValidationComplete = function () {
inputKeys.forEach(function (name) {
if (!inputs[name].state._isValid) {
allIsValid = false;
}
}.bind(this));
this.setState({
isValid: allIsValid
});
if (allIsValid) {
this.props.onValid();
} else {
this.props.onInvalid();
}
// Tell the form that it can start to trigger change events
this.setState({
canChange: true
});
}.bind(this);
// Run validation again in case affected by other inputs. The
// last component validated will run the onValidationComplete callback
inputKeys.forEach(function (name, index) {
var component = inputs[name];
var isValid = this.runValidation(component);
component.setState({
_isValid: isValid,
_serverError: null
}, index === inputKeys.length - 1 ? onValidationComplete : null);
}.bind(this));
// If there are no inputs, set state where form is ready to trigger
// change event. New inputs might be added later
if (!inputKeys.length && this.isMounted()) {
this.setState({
canChange: true
});
}
},
// Method put on each input component to register
// itself to the form
attachToForm: function (component) {
this.inputs[component.props.name] = component;
this.model[component.props.name] = component.state._value;
this.validate(component);
},
// Method put on each input component to unregister
// itself from the form
detachFromForm: function (component) {
delete this.inputs[component.props.name];
delete this.model[component.props.name];
},
render: function () {
return React.DOM.form({
onSubmit: this.submit,
className: this.props.className
},
this.props.children
);
}
});
if (!global.exports && !global.module && (!global.define || !global.define.amd)) {
global.Formsy = Formsy;
}
module.exports = Formsy;
}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
},{"./Mixin.js":"/Users/christianalfoni/Documents/dev/formsy-react/src/Mixin.js","./utils.js":"/Users/christianalfoni/Documents/dev/formsy-react/src/utils.js","./validationRules.js":"/Users/christianalfoni/Documents/dev/formsy-react/src/validationRules.js","react":"react"}],"/Users/christianalfoni/Documents/dev/formsy-react/src/Mixin.js":[function(require,module,exports){
module.exports = {
getInitialState: function () {
var value = 'value' in this.props ? this.props.value : '';
return {
_value: value,
_isValid: true,
_isPristine: true,
_pristineValue: value
};
},
componentWillMount: function () {
var configure = function () {
this.setValidations(this.props.validations, this.props.required);
this.props._attachToForm(this);
}.bind(this);
if (!this.props.name) {
throw new Error('Form Input requires a name property when used');
}
if (!this.props._attachToForm) {
return setTimeout(function () {
if (!this.isMounted()) return;
if (!this.props._attachToForm) {
throw new Error('Form Mixin requires component to be nested in a Form');
}
configure();
}.bind(this), 0);
}
configure();
},
// We have to make the validate method is kept when new props are added
componentWillReceiveProps: function (nextProps) {
nextProps._attachToForm = this.props._attachToForm;
nextProps._detachFromForm = this.props._detachFromForm;
nextProps._validate = this.props._validate;
nextProps._isValidValue = this.props._isValidValue;
nextProps._isFormDisabled = this.props._isFormDisabled;
this.setValidations(nextProps.validations, nextProps.required);
},
componentDidUpdate: function (prevProps, prevState) {
var isValueChanged = function () {
return (
this.props.value !== prevProps.value && (
this.state._value === prevProps.value ||
// Since undefined is converted to empty string we have to
// check that specifically
(this.state._value === '' && prevProps.value === undefined)
)
);
}.bind(this);
// If validations has changed or something outside changes
// the value, set the value again running a validation
if (prevProps.validations !== this.props.validations || isValueChanged()) {
var value = 'value' in this.props ? this.props.value : '';
this.setValue(value);
}
},
// Detach it when component unmounts
componentWillUnmount: function () {
this.props._detachFromForm(this);
},
setValidations: function (validations, required) {
// Add validations to the store itself as the props object can not be modified
this._validations = validations || '';
if (required) {
this._validations = validations ? validations + ',' : '';
this._validations += 'isValue';
}
},
// We validate after the value has been set
setValue: function (value) {
this.setState({
_value: value,
_isPristine: false
}, function () {
this.props._validate(this);
}.bind(this));
},
resetValue: function () {
this.setState({
_value: this.state._pristineValue,
_isPristine: true
}, function () {
this.props._validate(this);
});
},
getValue: function () {
return this.state._value;
},
hasValue: function () {
return this.state._value !== '';
},
getErrorMessage: function () {
return this.isValid() || this.showRequired() ? null : this.state._serverError || this.props.validationError;
},
isFormDisabled: function () {
return this.props._isFormDisabled();
},
isValid: function () {
return this.state._isValid;
},
isPristine: function () {
return this.state._isPristine;
},
isRequired: function () {
return !!this.props.required;
},
showRequired: function () {
return this.isRequired() && this.state._value === '';
},
showError: function () {
return !this.showRequired() && !this.state._isValid;
},
isValidValue: function (value) {
return this.props._isValidValue.call(null, this, value);
}
};
},{}],"/Users/christianalfoni/Documents/dev/formsy-react/src/utils.js":[function(require,module,exports){
var csrfTokenSelector = typeof document != 'undefined' ? document.querySelector('meta[name="csrf-token"]') : null;
var toURLEncoded = function (element, key, list) {
var list = list || [];
if (typeof (element) == 'object') {
for (var idx in element)
toURLEncoded(element[idx], key ? key + '[' + idx + ']' : idx, list);
} else {
list.push(key + '=' + encodeURIComponent(element));
}
return list.join('&');
};
var request = function (method, url, data, contentType, headers) {
var contentType = contentType === 'urlencoded' ? 'application/' + contentType.replace('urlencoded', 'x-www-form-urlencoded') : 'application/json';
data = contentType === 'application/json' ? JSON.stringify(data) : toURLEncoded(data);
return new Promise(function (resolve, reject) {
try {
var xhr = new XMLHttpRequest();
xhr.open(method, url, true);
xhr.setRequestHeader('Accept', 'application/json');
xhr.setRequestHeader('Content-Type', contentType);
if (!!csrfTokenSelector && !!csrfTokenSelector.content) {
xhr.setRequestHeader('X-CSRF-Token', csrfTokenSelector.content);
}
// Add passed headers
Object.keys(headers).forEach(function (header) {
xhr.setRequestHeader(header, headers[header]);
});
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
try {
var response = xhr.responseText ? JSON.parse(xhr.responseText) : null;
if (xhr.status >= 200 && xhr.status < 300) {
resolve(response);
} else {
reject(response);
}
} catch (e) {
reject(e);
}
}
};
xhr.send(data);
} catch (e) {
reject(e);
}
});
};
module.exports = {
arraysDiffer: function (arrayA, arrayB) {
var isDifferent = false;
if (arrayA.length !== arrayB.length) {
isDifferent = true;
} else {
arrayA.forEach(function (item, index) {
if (item !== arrayB[index]) {
isDifferent = true;
}
});
}
return isDifferent;
},
ajax: {
post: request.bind(null, 'POST'),
put: request.bind(null, 'PUT')
}
};
},{}],"/Users/christianalfoni/Documents/dev/formsy-react/src/validationRules.js":[function(require,module,exports){
module.exports = {
'isValue': function (value) {
return value !== '';
},
'isEmail': function (value) {
return value.match(/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i);
},
'isTrue': function (value) {
return value === true;
},
'isNumeric': function (value) {
if (typeof value === 'number') {
return true;
} else {
var matchResults = value.match(/[-+]?(\d*[.])?\d+/);
if (!! matchResults) {
return matchResults[0] == value;
} else {
return false;
}
}
},
'isAlpha': function (value) {
return value.match(/^[a-zA-Z]+$/);
},
'isWords': function (value) {
return value.match(/^[a-zA-Z\s]+$/);
},
'isSpecialWords': function (value) {
return value.match(/^[a-zA-Z\s\u00C0-\u017F]+$/);
},
isLength: function (value, min, max) {
if (max !== undefined) {
return value.length >= min && value.length <= max;
}
return value.length >= min;
},
equals: function (value, eql) {
return value == eql;
},
equalsField: function (value, field) {
return value == this[field];
}
};
},{}]},{},["./src/main.js"])
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyaWZ5L25vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCIvVXNlcnMvY2hyaXN0aWFuYWxmb25pL0RvY3VtZW50cy9kZXYvZm9ybXN5LXJlYWN0L3NyYy9tYWluLmpzIiwiL1VzZXJzL2NocmlzdGlhbmFsZm9uaS9Eb2N1bWVudHMvZGV2L2Zvcm1zeS1yZWFjdC9zcmMvTWl4aW4uanMiLCIvVXNlcnMvY2hyaXN0aWFuYWxmb25pL0RvY3VtZW50cy9kZXYvZm9ybXN5LXJlYWN0L3NyYy91dGlscy5qcyIsIi9Vc2Vycy9jaHJpc3RpYW5hbGZvbmkvRG9jdW1lbnRzL2Rldi9mb3Jtc3ktcmVhY3Qvc3JjL3ZhbGlkYXRpb25SdWxlcy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7QUNBQSxJQUFJLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUM3QyxJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7QUFDaEIsSUFBSSxlQUFlLEdBQUcsT0FBTyxDQUFDLHNCQUFzQixDQUFDLENBQUM7QUFDdEQsSUFBSSxLQUFLLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBQ2xDLElBQUksS0FBSyxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUNsQyxJQUFJLE9BQU8sR0FBRyxFQUFFLENBQUM7O0FBRWpCLE1BQU0sQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDOztBQUVyQixNQUFNLENBQUMsUUFBUSxHQUFHLFVBQVUsYUFBYSxFQUFFO0VBQ3pDLE9BQU8sR0FBRyxhQUFhLENBQUM7QUFDMUIsQ0FBQyxDQUFDOztBQUVGLE1BQU0sQ0FBQyxpQkFBaUIsR0FBRyxVQUFVLElBQUksRUFBRSxJQUFJLEVBQUU7RUFDL0MsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQztBQUMvQixDQUFDLENBQUM7O0FBRUYsTUFBTSxDQUFD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O1FBQ0wsT0FBTyxLQUFLLENBQUM7T0FDZDtLQUNGO0dBQ0Y7RUFDRCxTQUFTLEVBQUUsVUFBVSxLQUFLLEVBQUU7SUFDMUIsT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0dBQ25DO0VBQ0QsU0FBUyxFQUFFLFVBQVUsS0FBSyxFQUFFO0lBQzFCLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztHQUNyQztFQUNELGdCQUFnQixFQUFFLFVBQVUsS0FBSyxFQUFFO0lBQ2pDLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO0dBQ2xEO0VBQ0QsUUFBUSxFQUFFLFVBQVUsS0FBSyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUU7SUFDbkMsSUFBSSxHQUFHLEtBQUssU0FBUyxFQUFFO01BQ3JCLE9BQU8sS0FBSyxDQUFDLE1BQU0sSUFBSSxHQUFHLElBQUksS0FBSyxDQUFDLE1BQU0sSUFBSSxHQUFHLENBQUM7S0FDbkQ7SUFDRCxPQUFPLEtBQUssQ0FBQyxNQUFNLElBQUksR0FBRyxDQUFDO0dBQzVCO0VBQ0QsTUFBTSxFQUFFLFVBQVUsS0FBSyxFQUFFLEdBQUcsRUFBRTtJQUM1QixPQUFPLEtBQUssSUFBSSxHQUFHLENBQUM7R0FDckI7RUFDRCxXQUFXLEVBQUUsVUFBVSxLQUFLLEVBQUUsS0FBSyxFQUFFO0lBQ25DLE9BQU8sS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztHQUM3QjtBQUNILENBQUMsQ0FBQzs7QUFFRiIsImZpbGUiOiJnZW5lcmF0ZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uIGUodCxuLHIpe2Z1bmN0aW9uIHMobyx1KXtpZighbltvXSl7aWYoIXRbb10pe3ZhciBhPXR5cGVvZiByZXF1aXJlPT1cImZ1bmN0aW9uXCImJnJlcXVpcmU7aWYoIXUmJmEpcmV0dXJuIGEobywhMCk7aWYoaSlyZXR1cm4gaShvLCEwKTt2YXIgZj1uZXcgRXJyb3IoXCJDYW5ub3QgZmluZCBtb2R1bGUgJ1wiK28rXCInXCIpO3Rocm93IGYuY29kZT1cIk1PRFVMRV9OT1RfRk9VTkRcIixmfXZhciBsPW5bb109e2V4cG9ydHM6e319O3Rbb11bMF0uY2FsbChsLmV4cG9ydHMsZnVuY3Rpb24oZSl7dmFyIG49dFtvXVsxXVtlXTtyZXR1cm4gcyhuP246ZSl9LGwsbC5leHBvcnRzLGUsdCxuLHIpfXJldHVybiBuW29dLmV4cG9ydHN9dmFyIGk9dHlwZW9mIHJlcXVpcmU9PVwiZnVuY3Rpb25cIiYmcmVxdWlyZTtmb3IodmFyIG89MDtvPHIubGVuZ3RoO28rKylzKHJbb10pO3JldHVybiBzfSkiLCJ2YXIgUmVhY3QgPSBnbG9iYWwuUmVhY3QgfHwgcmVxdWlyZSgncmVhY3QnKTtcbnZhciBGb3Jtc3kgPSB7fTtcbnZhciB2YWxpZGF0aW9uUnVsZXMgPSByZXF1aXJlKCcuL3ZhbGlkYXRpb25SdWxlcy5qcycpO1xudmFyIHV0aWxzID0gcmVxdWlyZSgnLi91dGlscy5qcycpO1xudmFyIE1peGluID0gcmVxdWlyZSgnLi9NaXhpbi5qcycpO1xudmFyIG9wdGlvbnMgPSB7fTtcblxuRm9ybXN5Lk1peGluID0gTWl4aW47XG5cbkZvcm1zeS5kZWZhdWx0cyA9IGZ1bmN0aW9uIChwYXNzZWRPcHRpb25zKSB7XG4gIG9wdGlvbnMgPSBwYXNzZWRPcHRpb25zO1xufTtcblxuRm9ybXN5LmFkZFZhbGlkYXRpb25SdWxlID0gZnVuY3Rpb24gKG5hbWUsIGZ1bmMpIHtcbiAgdmFsaWRhdGlvblJ1bGVzW25hbWVdID0gZnVuYztcbn07XG5cbkZvcm1zeS5Gb3JtID0gUmVhY3QuY3JlYXRlQ2xhc3Moe2Rpc3BsYXlOYW1lOiBcIkZvcm1cIixcbiAgZ2V0SW5pdGlhbFN0YXRlOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlzVmFsaWQ6IHRydWUsXG4gICAgICBpc1N1Ym1pdHRpbmc6IGZhbHNlLFxuICAgICAgY2FuQ2hhbmdlOiBmYWxzZVxuICAgIH07XG4gIH0sXG4gIGdldERlZmF1bHRQcm9wczogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB7XG4gICAgICBoZWFkZXJzOiB7fSxcbiAgICAgIG9uU3VjY2VzczogZnVuY3Rpb24gKCkge30sXG4gICAgICBvbkVycm9yOiBmdW5jdGlvbiAoKSB7fSxcbiAgICAgIG9uU3VibWl0OiBmdW5jdGlvbiAoKSB7fSxcbiAgICAgIG9uVmFsaWRTdWJtaXQ6IGZ1bmN0aW9uICgpIHt9LFxuICAgICAgb25JbnZhbGlkU3VibWl0OiBmdW5jdGlvbiAoKSB7fSxcbiAgICAgIG9uU3VibWl0dGVkOiBmdW5jdGlvbiAoKSB7fSxcbiAgICAgIG9uVmFsaWQ6IGZ1bmN0aW9uICgpIHt9LFxuICAgICAgb25JbnZhbGlkOiBmdW5jdGlvbiAoKSB7fSxcbiAgICAgIG9uQ2hhbmdlOiBmdW5jdGlvbiAoKSB7fVxuICAgIH07XG4gIH0sXG5cbiAgLy8gQWRkIGEgbWFwIHRvIHN0b3JlIHRoZSBpbnB1dHMgb2YgdGhlIGZvcm0sIGEgbW9kZWwgdG8gc3RvcmVcbiAgLy8gdGhlIHZhbHVlcyBvZiB0aGUgZm9ybSBhbmQgcmVnaXN0ZXIgY2hpbGQgaW5wdXRzXG4gIGNvbXBvbmVudFdpbGxNb3VudDogZnVuY3Rpb24gKCkge1xuICAgIHRoaXMuaW5wdXRzID0ge307XG4gICAgdGhpcy5tb2RlbCA9IHt9O1xuICAgIHRoaXMucmVnaXN0ZXJJbnB1dHModGhpcy5wcm9wcy5jaGlsZHJlbik7XG4gIH0sXG5cbiAgY29tcG9uZW50RGlkTW91bnQ6IGZ1bmN0aW9uICgpIHtcbiAgICB0aGlzLnZhbGlkYXRlRm9ybSgpO1xuICB9LFxuXG4gIGNvbXBvbmVudFdpbGxVcGRhdGU6IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgaW5wdXRLZXlzID0gT2JqZWN0LmtleXModGhpcy5pbnB1dHMpO1xuXG4gICAgLy8gVGhlIHVwZGF0ZWQgY2hpbGRyZW4gYXJyYXkgaXMgbm90IGF2YWlsYWJsZSBoZXJlIGZvciBzb21lIHJlYXNvbixcbiAgICAvLyB3ZSBuZWVkIHRvIHdhaXQgZm9yIG5leHQgZXZlbnQgbG9vcFxuICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuXG4gICAgICAvLyBUaGUgY29tcG9uZW50IG1pZ2h0IGhhdmUgYmVlbiB1bm1vdW50ZWQgb24gYW5cbiAgICAgIC8vIHVwZGF0ZVxuICAgICAgaWYgKHRoaXMuaXNNb3VudGVkKCkpIHtcblxuICAgICAgICB0aGlzLnJlZ2lzdGVySW5wdXRzKHRoaXMucHJvcHMuY2hpbGRyZW4pO1xuXG4gICAgICAgaWYgKHRoaXMucHJvcHMudmFsaWRhdGlvbkVycm9ycykge1xuICAgICAgICAgIHRoaXMuc2V0SW5wdXRWYWxpZGF0aW9uRXJyb3JzKHRoaXMucHJvcHMudmFsaWRhdGlvbkVycm9ycyk7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgbmV3SW5wdXRLZXlzID0gT2JqZWN0LmtleXModGhpcy5pbnB1dHMpO1xuICAgICAgICBpZiAodXRpbHMuYXJyYXlzRGlmZmVyKGlucHV0S2V5cywgbmV3SW5wdXRLZXlzKSkge1xuICAgICAgICAgIHRoaXMudmFsaWRhdGVGb3JtKCk7XG4gICAgICAgIH1cblxuICAgICAgfVxuXG4gICAgfS5iaW5kKHRoaXMpLCAwKTtcbiAgfSxcblxuICAvLyBVcGRhdGUgbW9kZWwsIHN1Ym1pdCB0byB1cmwgcHJvcCBhbmQgc2VuZCB0aGUgbW9kZWxcbiAgc3VibWl0OiBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgLy8gVHJpZ2dlciBmb3JtIGFzIG5vdCBwcmlzdGluZS5cbiAgICAvLyBJZiBhbnkgaW5wdXRzIGhhdmUgbm90IGJlZW4gdG91Y2hlZCB5ZXQgdGhpcyB3aWxsIG1ha2UgdGhlbSBkaXJ0eVxuICAgIC8vIHNvIHZhbGlkYXRpb24gYmVjb21lcyB2aXNpYmxlIChpZiBiYXNlZCBvbiBpc1ByaXN0aW5lKVxuICAgIHRoaXMuc2V0Rm9ybVByaXN0aW5lKGZhbHNlKTtcblxuICAgIC8vIFRvIHN1cHBvcnQgdXNlIGNhc2VzIHdoZXJlIG5vIGFzeW5jIG9yIHJlcXVlc3Qgb3BlcmF0aW9uIGlzIG5lZWRlZC5cbiAgICAvLyBUaGUgXCJvblN1Ym1pdFwiIGNhbGxiYWNrIGlzIGNhbGxlZCB3aXRoIHRoZSBtb2RlbCBlLmcuIHtmaWVsZE5hbWU6IFwibXlWYWx1ZVwifSxcbiAgICAvLyBpZiB3YW50aW5nIHRvIHJlc2V0IHRoZSBlbnRpcmUgZm9ybSB0byBvcmlnaW5hbCBzdGF0ZSwgdGhlIHNlY29uZCBwYXJhbSBpcyBhIGNhbGxiYWNrIGZvciB0aGlzLlxuICAgIGlmICghdGhpcy5wcm9wcy51cmwpIHtcbiAgICAgIHRoaXMudXBkYXRlTW9kZWwoKTtcbiAgICAgIHZhciBtb2RlbCA9IHRoaXMubWFwTW9kZWwoKTtcbiAgICAgIHRoaXMucHJvcHMub25TdWJtaXQobW9kZWwsIHRoaXMucmVzZXRNb2RlbCwgdGhpcy51cGRhdGVJbnB1dHNXaXRoRXJyb3IpO1xuICAgICAgdGhpcy5zdGF0ZS5pc1ZhbGlkID8gdGhpcy5wcm9wcy5vblZhbGlkU3VibWl0KG1vZGVsLCB0aGlzLnJlc2V0TW9kZWwpIDogdGhpcy5wcm9wcy5vbkludmFsaWRTdWJtaXQobW9kZWwsIHRoaXMucmVzZXRNb2RlbCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy51cGRhdGVNb2RlbCgpO1xuICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgaXNTdWJtaXR0aW5nOiB0cnVlXG4gICAgfSk7XG5cbiAgICB0aGlzLnByb3BzLm9uU3VibWl0KHRoaXMubWFwTW9kZWwoKSwgdGhpcy5yZXNldE1vZGVsLCB0aGlzLnVwZGF0ZUlucHV0c1dpdGhFcnJvcik7XG5cbiAgICB2YXIgaGVhZGVycyA9IChPYmplY3Qua2V5cyh0aGlzLnByb3BzLmhlYWRlcnMpLmxlbmd0aCAmJiB0aGlzLnByb3BzLmhlYWRlcnMpIHx8IG9wdGlvbnMuaGVhZGVycyB8fCB7fTtcblxuICAgIHZhciBtZXRob2QgPSB0aGlzLnByb3BzLm1ldGhvZCAmJiB1dGlscy5hamF4W3RoaXMucHJvcHMubWV0aG9kLnRvTG93ZXJDYXNlKCldID8gdGhpcy5wcm9wcy5tZXRob2QudG9Mb3dlckNhc2UoKSA6ICdwb3N0JztcbiAgICB1dGlscy5hamF4W21ldGhvZF0odGhpcy5wcm9wcy51cmwsIHRoaXMubWFwTW9kZWwoKSwgdGhpcy5wcm9wcy5jb250ZW50VHlwZSB8fCBvcHRpb25zLmNvbnRlbnRUeXBlIHx8ICdqc29uJywgaGVhZGVycylcbiAgICAgIC50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkge1xuICAgICAgICB0aGlzLnByb3BzLm9uU3VjY2VzcyhyZXNwb25zZSk7XG4gICAgICAgIHRoaXMucHJvcHMub25TdWJtaXR0ZWQoKTtcbiAgICAgIH0uYmluZCh0aGlzKSlcbiAgICAgIC5jYXRjaCh0aGlzLmZhaWxTdWJtaXQpO1xuICB9LFxuXG4gIG1hcE1vZGVsOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMubWFwcGluZyA/IHRoaXMucHJvcHMubWFwcGluZyh0aGlzLm1vZGVsKSA6IHRoaXMubW9kZWw7XG4gIH0sXG5cbiAgLy8gR29lcyB0aHJvdWdoIGFsbCByZWdpc3RlcmVkIGNvbXBvbmVudHMgYW5kXG4gIC8vIHVwZGF0ZXMgdGhlIG1vZGVsIHZhbHVlc1xuICB1cGRhdGVNb2RlbDogZnVuY3Rpb24gKCkge1xuICAgIE9iamVjdC5rZXlzKHRoaXMuaW5wdXRzKS5mb3JFYWNoKGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgICB2YXIgY29tcG9uZW50ID0gdGhpcy5pbnB1dHNbbmFtZV07XG4gICAgICB0aGlzLm1vZGVsW25hbWVdID0gY29tcG9uZW50LnN0YXRlLl92YWx1ZTtcbiAgICB9LmJpbmQodGhpcykpO1xuICB9LFxuXG4gIC8vIFJlc2V0IGVhY2gga2V5IGluIHRoZSBtb2RlbCB0byB0aGUgb3JpZ2luYWwgLyBpbml0aWFsIHZhbHVlXG4gIHJlc2V0TW9kZWw6IGZ1bmN0aW9uICgpIHtcbiAgICBPYmplY3Qua2V5cyh0aGlzLmlucHV0cykuZm9yRWFjaChmdW5jdGlvbiAobmFtZSkge1xuICAgICAgdGhpcy5pbnB1dHNbbmFtZV0ucmVzZXRWYWx1ZSgpO1xuICAgIH0uYmluZCh0aGlzKSk7XG4gICAgdGhpcy52YWxpZGF0ZUZvcm0oKTtcbiAgfSxcblxuICBzZXRJbnB1dFZhbGlkYXRpb25FcnJvcnM6IGZ1bmN0aW9uIChlcnJvcnMpIHtcbiAgICAgT2JqZWN0LmtleXModGhpcy5pbnB1dHMpLmZvckVhY2goZnVuY3Rpb24gKG5hbWUsIGluZGV4KSB7XG4gICAgICB2YXIgY29tcG9uZW50ID0gdGhpcy5pbnB1dHNbbmFtZV07XG4gICAgICB2YXIgYXJncyA9IFt7XG4gICAgICAgIF9pc1ZhbGlkOiAhKG5hbWUgaW4gZXJyb3JzKSxcbiAgICAgICAgX3NlcnZlckVycm9yOiBlcnJvcnNbbmFtZV1cbiAgICAgIH1dO1xuICAgICAgY29tcG9uZW50LnNldFN0YXRlLmFwcGx5KGNvbXBvbmVudCwgYXJncyk7XG4gICAgfS5iaW5kKHRoaXMpKTsgICBcbiAgfSxcblxuICAvLyBHbyB0aHJvdWdoIGVycm9ycyBmcm9tIHNlcnZlciBhbmQgZ3JhYiB0aGUgY29tcG9uZW50c1xuICAvLyBzdG9yZWQgaW4gdGhlIGlucHV0cyBtYXAuIENoYW5nZSB0aGVpciBzdGF0ZSB0byBpbnZhbGlkXG4gIC8vIGFuZCBzZXQgdGhlIHNlcnZlckVycm9yIG1lc3NhZ2VcbiAgdXBkYXRlSW5wdXRzV2l0aEVycm9yOiBmdW5jdGlvbiAoZXJyb3JzKSB7XG4gICAgT2JqZWN0LmtleXMoZXJyb3JzKS5mb3JFYWNoKGZ1bmN0aW9uIChuYW1lLCBpbmRleCkge1xuICAgICAgdmFyIGNvbXBvbmVudCA9IHRoaXMuaW5wdXRzW25hbWVdO1xuXG4gICAgICBpZiAoIWNvbXBvbmVudCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1lvdSBhcmUgdHJ5aW5nIHRvIHVwZGF0ZSBhbiBpbnB1dCB0aGF0IGRvZXMgbm90IGV4aXN0cy4gVmVyaWZ5IGVycm9ycyBvYmplY3Qgd2l0aCBpbnB1dCBuYW1lcy4gJyArIEpTT04uc3RyaW5naWZ5KGVycm9ycykpO1xuICAgICAgfVxuXG4gICAgICB2YXIgYXJncyA9IFt7XG4gICAgICAgIF9pc1ZhbGlkOiBmYWxzZSxcbiAgICAgICAgX3NlcnZlckVycm9yOiBlcnJvcnNbbmFtZV1cbiAgICAgIH1dO1xuICAgICAgY29tcG9uZW50LnNldFN0YXRlLmFwcGx5KGNvbXBvbmVudCwgYXJncyk7XG4gICAgfS5iaW5kKHRoaXMpKTtcbiAgfSxcblxuICBmYWlsU3VibWl0OiBmdW5jdGlvbiAoZXJyb3JzKSB7XG4gICAgdGhpcy51cGRhdGVJbnB1dHNXaXRoRXJyb3IoZXJyb3JzKTtcbiAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgIGlzU3VibWl0dGluZzogZmFsc2VcbiAgICB9KTtcbiAgICB0aGlzLnByb3BzLm9uRXJyb3IoZXJyb3JzKTtcbiAgICB0aGlzLnByb3BzLm9uU3VibWl0dGVkKCk7XG4gIH0sXG5cbiAgLy8gVHJhdmVyc2UgdGhlIGNoaWxkcmVuIGFuZCBjaGlsZHJlbiBvZiBjaGlsZHJlbiB0byBmaW5kXG4gIC8vIGFsbCBpbnB1dHMgYnkgY2hlY2tpbmcgdGhlIG5hbWUgcHJvcC4gTWF5YmUgZG8gYSBiZXR0ZXJcbiAgLy8gY2hlY2sgaGVyZVxuICByZWdpc3RlcklucHV0czogZnVuY3Rpb24gKGNoaWxkcmVuKSB7XG4gICAgUmVhY3QuQ2hpbGRyZW4uZm9yRWFjaChjaGlsZHJlbiwgZnVuY3Rpb24gKGNoaWxkKSB7XG5cbiAgICAgIGlmIChjaGlsZCAmJiBjaGlsZC5wcm9wcyAmJiBjaGlsZC5wcm9wcy5uYW1lKSB7XG4gICAgICAgIGNoaWxkLnByb3BzLl9hdHRhY2hUb0Zvcm0gPSB0aGlzLmF0dGFjaFRvRm9ybTtcbiAgICAgICAgY2hpbGQucHJvcHMuX2RldGFjaEZyb21Gb3JtID0gdGhpcy5kZXRhY2hGcm9tRm9ybTtcbiAgICAgICAgY2hpbGQucHJvcHMuX3ZhbGlkYXRlID0gdGhpcy52YWxpZGF0ZTtcbiAgICAgICAgY2hpbGQucHJvcHMuX2lzRm9ybURpc2FibGVkID0gdGhpcy5pc0Zvcm1EaXNhYmxlZDtcbiAgICAgICAgY2hpbGQucHJvcHMuX2lzVmFsaWRWYWx1ZSA9IHRoaXMucnVuVmFsaWRhdGlvbjtcbiAgICAgIH1cblxuICAgICAgaWYgKGNoaWxkICYmIGNoaWxkLnByb3BzICYmIGNoaWxkLnByb3BzLmNoaWxkcmVuKSB7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJJbnB1dHMoY2hpbGQucHJvcHMuY2hpbGRyZW4pO1xuICAgICAgfVxuXG4gICAgfS5iaW5kKHRoaXMpKTtcbiAgfSxcblxuICBpc0Zvcm1EaXNhYmxlZDogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzLnByb3BzLmRpc2FibGVkO1xuICB9LFxuXG4gIGdldEN1cnJlbnRWYWx1ZXM6IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5pbnB1dHMpLnJlZHVjZShmdW5jdGlvbiAoZGF0YSwgbmFtZSkge1xuICAgICAgdmFyIGNvbXBvbmVudCA9IHRoaXMuaW5wdXRzW25hbWVdO1xuICAgICAgZGF0YVtuYW1lXSA9IGNvbXBvbmVudC5zdGF0ZS5fdmFsdWU7XG4gICAgICByZXR1cm4gZGF0YTtcbiAgICB9LmJpbmQodGhpcyksIHt9KTtcbiAgfSxcblxuICBzZXRGb3JtUHJpc3RpbmU6IGZ1bmN0aW9uIChpc1ByaXN0aW5lKSB7XG4gICAgdmFyIGlucHV0cyA9IHRoaXMuaW5wdXRzO1xuICAgIHZhciBpbnB1dEtleXMgPSBPYmplY3Qua2V5cyhpbnB1dHMpO1xuXG4gICAgLy8gSXRlcmF0ZSB0aHJvdWdoIGVhY2ggY29tcG9uZW50IGFuZCBzZXQgaXQgYXMgcHJpc3RpbmVcbiAgICAvLyBvciBcImRpcnR5XCIuXG4gICAgaW5wdXRLZXlzLmZvckVhY2goZnVuY3Rpb24gKG5hbWUsIGluZGV4KSB7XG4gICAgICB2YXIgY29tcG9uZW50ID0gaW5wdXRzW25hbWVdO1xuICAgICAgY29tcG9uZW50LnNldFN0YXRlKHtcbiAgICAgICAgX2lzUHJpc3RpbmU6IGlzUHJpc3RpbmVcbiAgICAgIH0pO1xuICAgIH0uYmluZCh0aGlzKSk7XG4gIH0sXG5cbiAgLy8gVXNlIHRoZSBiaW5kZWQgdmFsdWVzIGFuZCB0aGUgYWN0dWFsIGlucHV0IHZhbHVlIHRvXG4gIC8vIHZhbGlkYXRlIHRoZSBpbnB1dCBhbmQgc2V0IGl0cyBzdGF0ZS4gVGhlbiBjaGVjayB0aGVcbiAgLy8gc3RhdGUgb2YgdGhlIGZvcm0gaXRzZWxmXG4gIHZhbGlkYXRlOiBmdW5jdGlvbiAoY29tcG9uZW50KSB7XG4gICAgXG4gICAgLy8gVHJpZ2dlciBvbkNoYW5nZVxuICAgIGlmICh0aGlzLnN0YXRlLmNhbkNoYW5nZSkge1xuICAgICAgdGhpcy5wcm9wcy5vbkNoYW5nZSh0aGlzLmdldEN1cnJlbnRWYWx1ZXMoKSk7XG4gICAgfVxuXG4gICAgdmFyIGlzVmFsaWQgPSB0cnVlO1xuICAgIGlmIChjb21wb25lbnQudmFsaWRhdGUgJiYgdHlwZW9mIGNvbXBvbmVudC52YWxpZGF0ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgaXNWYWxpZCA9IGNvbXBvbmVudC52YWxpZGF0ZSgpO1xuICAgIH0gZWxzZSBpZiAoY29tcG9uZW50LnByb3BzLnJlcXVpcmVkIHx8IGNvbXBvbmVudC5fdmFsaWRhdGlvbnMpIHtcbiAgICAgIGlzVmFsaWQgPSB0aGlzLnJ1blZhbGlkYXRpb24oY29tcG9uZW50KTtcbiAgICB9XG5cbiAgICAvLyBSdW4gdGhyb3VnaCB0aGUgdmFsaWRhdGlvbnMsIHNwbGl0IHRoZW0gdXAgYW5kIGNhbGxcbiAgICAvLyB0aGUgdmFsaWRhdG9yIElGIHRoZXJlIGlzIGEgdmFsdWUgb3IgaXQgaXMgcmVxdWlyZWRcbiAgICBjb21wb25lbnQuc2V0U3RhdGUoe1xuICAgICAgX2lzVmFsaWQ6IGlzVmFsaWQsXG4gICAgICBfc2VydmVyRXJyb3I6IG51bGxcbiAgICB9LCB0aGlzLnZhbGlkYXRlRm9ybSk7XG5cbiAgfSxcblxuICAvLyBDaGVja3MgdmFsaWRhdGlvbiBvbiBjdXJyZW50IHZhbHVlIG9yIGEgcGFzc2VkIHZhbHVlXG4gIHJ1blZhbGlkYXRpb246IGZ1bmN0aW9uIChjb21wb25lbnQsIHZhbHVlKSB7XG5cbiAgICB2YXIgaXNWYWxpZCA9IHRydWU7XG4gICAgdmFsdWUgPSBhcmd1bWVudHMubGVuZ3RoID09PSAyID8gdmFsdWUgOiBjb21wb25lbnQuc3RhdGUuX3ZhbHVlO1xuICAgIGlmIChjb21wb25lbnQuX3ZhbGlkYXRpb25zLmxlbmd0aCkge1xuICAgICAgY29tcG9uZW50Ll92YWxpZGF0aW9ucy5zcGxpdCgvXFwsKD8hW157XFxbXSpbfVxcXV0pL2cpLmZvckVhY2goZnVuY3Rpb24gKHZhbGlkYXRpb24pIHtcbiAgICAgICAgdmFyIGFyZ3MgPSB2YWxpZGF0aW9uLnNwbGl0KCc6Jyk7XG4gICAgICAgIHZhciB2YWxpZGF0ZU1ldGhvZCA9IGFyZ3Muc2hpZnQoKTtcbiAgICAgICAgYXJncyA9IGFyZ3MubWFwKGZ1bmN0aW9uIChhcmcpIHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UoYXJnKTtcbiAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICByZXR1cm4gYXJnOyAvLyBJdCBpcyBhIHN0cmluZyBpZiBpdCBjYW4gbm90IHBhcnNlIGl0XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgYXJncyA9IFt2YWx1ZV0uY29uY2F0KGFyZ3MpO1xuICAgICAgICBpZiAoIXZhbGlkYXRpb25SdWxlc1t2YWxpZGF0ZU1ldGhvZF0pIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Zvcm1zeSBkb2VzIG5vdCBoYXZlIHRoZSB2YWxpZGF0aW9uIHJ1bGU6ICcgKyB2YWxpZGF0ZU1ldGhvZCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF2YWxpZGF0aW9uUnVsZXNbdmFsaWRhdGVNZXRob2RdLmFwcGx5KHRoaXMuZ2V0Q3VycmVudFZhbHVlcygpLCBhcmdzKSkge1xuICAgICAgICAgIGlzVmFsaWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfS5iaW5kKHRoaXMpKTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBjb21wb25lbnQudmFsaWRhdGUgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgLy8gdGhlIGNvbXBvbmVudCBkZWZpbmVzIGFuIGV4cGxpY2l0IHZhbGlkYXRlIGZ1bmN0aW9uXG4gICAgICBpc1ZhbGlkID0gY29tcG9uZW50LnZhbGlkYXRlKClcbiAgICB9XG4gICAgcmV0dXJuIGlzVmFsaWQ7XG4gIH0sXG5cbiAgLy8gVmFsaWRhdGUgdGhlIGZvcm0gYnkgZ29pbmcgdGhyb3VnaCBhbGwgY2hpbGQgaW5wdXQgY29tcG9uZW50c1xuICAvLyBhbmQgY2hlY2sgdGhlaXIgc3RhdGVcbiAgdmFsaWRhdGVGb3JtOiBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGFsbElzVmFsaWQgPSB0cnVlO1xuICAgIHZhciBpbnB1dHMgPSB0aGlzLmlucHV0cztcbiAgICB2YXIgaW5wdXRLZXlzID0gT2JqZWN0LmtleXMoaW5wdXRzKTtcblxuICAgIC8vIFdlIG5lZWQgYSBjYWxsYmFjayBhcyB3ZSBhcmUgdmFsaWRhdGluZyBhbGwgaW5wdXRzIGFnYWluLiBUaGlzIHdpbGxcbiAgICAvLyBydW4gd2hlbiB0aGUgbGFzdCBjb21wb25lbnQgaGFzIHNldCBpdHMgc3RhdGVcbiAgICB2YXIgb25WYWxpZGF0aW9uQ29tcGxldGUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICBpbnB1dEtleXMuZm9yRWFjaChmdW5jdGlvbiAobmFtZSkge1xuICAgICAgICBpZiAoIWlucHV0c1tuYW1lXS5zdGF0ZS5faXNWYWxpZCkge1xuICAgICAgICAgIGFsbElzVmFsaWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfS5iaW5kKHRoaXMpKTtcblxuICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgIGlzVmFsaWQ6IGFsbElzVmFsaWRcbiAgICAgIH0pO1xuXG4gICAgICBpZiAoYWxsSXNWYWxpZCkge1xuICAgICAgICB0aGlzLnByb3BzLm9uVmFsaWQoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucHJvcHMub25JbnZhbGlkKCk7XG4gICAgICB9XG5cbiAgICAgIC8vIFRlbGwgdGhlIGZvcm0gdGhhdCBpdCBjYW4gc3RhcnQgdG8gdHJpZ2dlciBjaGFuZ2UgZXZlbnRzXG4gICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgY2FuQ2hhbmdlOiB0cnVlXG4gICAgICB9KTtcblxuICAgIH0uYmluZCh0aGlzKTtcblxuICAgIC8vIFJ1biB2YWxpZGF0aW9uIGFnYWluIGluIGNhc2UgYWZmZWN0ZWQgYnkgb3RoZXIgaW5wdXRzLiBUaGVcbiAgICAvLyBsYXN0IGNvbXBvbmVudCB2YWxpZGF0ZWQgd2lsbCBydW4gdGhlIG9uVmFsaWRhdGlvbkNvbXBsZXRlIGNhbGxiYWNrXG4gICAgaW5wdXRLZXlzLmZvckVhY2goZnVuY3Rpb24gKG5hbWUsIGluZGV4KSB7XG4gICAgICB2YXIgY29tcG9uZW50ID0gaW5wdXRzW25hbWVdO1xuICAgICAgdmFyIGlzVmFsaWQgPSB0aGlzLnJ1blZhbGlkYXRpb24oY29tcG9uZW50KTtcbiAgICAgIGNvbXBvbmVudC5zZXRTdGF0ZSh7XG4gICAgICAgIF9pc1ZhbGlkOiBpc1ZhbGlkLFxuICAgICAgICBfc2VydmVyRXJyb3I6IG51bGxcbiAgICAgIH0sIGluZGV4ID09PSBpbnB1dEtleXMubGVuZ3RoIC0gMSA/IG9uVmFsaWRhdGlvbkNvbXBsZXRlIDogbnVsbCk7XG4gICAgfS5iaW5kKHRoaXMpKTtcblxuICAgIC8vIElmIHRoZXJlIGFyZSBubyBpbnB1dHMsIHNldCBzdGF0ZSB3aGVyZSBmb3JtIGlzIHJlYWR5IHRvIHRyaWdnZXJcbiAgICAvLyBjaGFuZ2UgZXZlbnQuIE5ldyBpbnB1dHMgbWlnaHQgYmUgYWRkZWQgbGF0ZXJcbiAgICBpZiAoIWlucHV0S2V5cy5sZW5ndGggJiYgdGhpcy5pc01vdW50ZWQoKSkge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgIGNhbkNoYW5nZTogdHJ1ZVxuICAgICAgfSk7XG4gICAgfVxuICB9LFxuXG4gIC8vIE1ldGhvZCBwdXQgb24gZWFjaCBpbnB1dCBjb21wb25lbnQgdG8gcmVnaXN0ZXJcbiAgLy8gaXRzZWxmIHRvIHRoZSBmb3JtXG4gIGF0dGFjaFRvRm9ybTogZnVuY3Rpb24gKGNvbXBvbmVudCkge1xuICAgIHRoaXMuaW5wdXRzW2NvbXBvbmVudC5wcm9wcy5uYW1lXSA9IGNvbXBvbmVudDtcbiAgICB0aGlzLm1vZGVsW2NvbXBvbmVudC5wcm9wcy5uYW1lXSA9IGNvbXBvbmVudC5zdGF0ZS5fdmFsdWU7XG4gICAgdGhpcy52YWxpZGF0ZShjb21wb25lbnQpO1xuICB9LFxuXG4gIC8vIE1ldGhvZCBwdXQgb24gZWFjaCBpbnB1dCBjb21wb25lbnQgdG8gdW5yZWdpc3RlclxuICAvLyBpdHNlbGYgZnJvbSB0aGUgZm9ybVxuICBkZXRhY2hGcm9tRm9ybTogZnVuY3Rpb24gKGNvbXBvbmVudCkge1xuICAgIGRlbGV0ZSB0aGlzLmlucHV0c1tjb21wb25lbnQucHJvcHMubmFtZV07XG4gICAgZGVsZXRlIHRoaXMubW9kZWxbY29tcG9uZW50LnByb3BzLm5hbWVdO1xuICB9LFxuICByZW5kZXI6IGZ1bmN0aW9uICgpIHtcblxuICAgIHJldHVybiBSZWFjdC5ET00uZm9ybSh7XG4gICAgICAgIG9uU3VibWl0OiB0aGlzLnN1Ym1pdCxcbiAgICAgICAgY2xhc3NOYW1lOiB0aGlzLnByb3BzLmNsYXNzTmFtZVxuICAgICAgfSxcbiAgICAgIHRoaXMucHJvcHMuY2hpbGRyZW5cbiAgICApO1xuXG4gIH1cbn0pO1xuXG5pZiAoIWdsb2JhbC5leHBvcnRzICYmICFnbG9iYWwubW9kdWxlICYmICghZ2xvYmFsLmRlZmluZSB8fCAhZ2xvYmFsLmRlZmluZS5hbWQpKSB7XG4gIGdsb2JhbC5Gb3Jtc3kgPSBGb3Jtc3k7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gRm9ybXN5O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMMVZ6WlhKekwyTm9jbWx6ZEdsaGJtRnNabTl1YVM5RWIyTjFiV1Z1ZEhNdlpHVjJMMlp2Y20xemVTMXlaV0ZqZEM5emNtTXZiV0ZwYmk1cWN5SXNJbk52ZFhKalpYTWlPbHNpTDFWelpYSnpMMk5vY21semRHbGhibUZzWm05dWFTOUViMk4xYldWdWRITXZaR1YyTDJadmNtMXplUzF5WldGamRDOXpjbU12YldGcGJpNXFjeUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lRVUZCUVN4SlFVRkpMRXRCUVVzc1IwRkJSeXhOUVVGTkxFTkJRVU1zUzBGQlN5eEpRVUZKTEU5QlFVOHNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRCUVVNM1F5eEpRVUZKTEUxQlFVMHNSMEZCUnl4RlFVRkZMRU5CUVVNN1FVRkRhRUlzU1VGQlNTeGxRVUZsTEVkQlFVY3NUMEZCVHl4RFFVRkRMSE5DUVVGelFpeERRVUZETEVOQlFVTTdRVUZEZEVRc1NVRkJTU3hMUVVGTExFZEJRVWNzVDBGQlR5eERRVUZETEZsQlFWa3NRMEZCUXl4RFFVRkRPMEZCUTJ4RExFbEJRVWtzUzBGQlN5eEhRVUZITEU5QlFVOHNRMEZCUXl4WlFVRlpMRU5CUVVNc1EwRkJRenRCUVVOc1F5eEpRVUZKTEU5QlFVOHNSMEZCUnl4RlFVRkZMRU5CUVVNN08wRkJSV3BDTEUxQlFVMHNRMEZCUXl4TFFVRkxMRWRCUVVjc1MwRkJTeXhEUVVGRE96dEJRVVZ5UWl4TlFVRk5MRU5CUVVNc1VVRkJVU3hIUVVGSExGVkJRVlVzWVVGQllTeEZRVUZGTzBWQlEzcERMRTlCUVU4c1IwRkJSeXhoUVVGaExFTkJRVU03UVVGRE1VSXNRMEZCUXl4RFFVRkRPenRCUVVWR0xFMUJRVTBzUTBGQlF5eHBRa0ZCYVVJc1IwRkJSeXhWUVVGVkxFbEJRVWtzUlVGQlJTeEpRVUZKTEVWQlFVVTdSVUZETDBNc1pVRkJaU3hEUVVGRExFbEJRVWtzUTBGQlF5eEhRVUZITEVsQlFVa3NRMEZCUXp0QlFVTXZRaXhEUVVGRExFTkJRVU03TzBGQlJVWXNhVU5CUVdsRExHOUNRVUZCTzBWQlF5OUNMR1ZCUVdVc1JVRkJSU3haUVVGWk8wbEJRek5DTEU5QlFVODdUVUZEVEN4UFFVRlBMRVZCUVVVc1NVRkJTVHROUVVOaUxGbEJRVmtzUlVGQlJTeExRVUZMTzAxQlEyNUNMRk5CUVZNc1JVRkJSU3hMUVVGTE8wdEJRMnBDTEVOQlFVTTdSMEZEU0R0RlFVTkVMR1ZCUVdVc1JVRkJSU3haUVVGWk8wbEJRek5DTEU5QlFVODdUVUZEVEN4UFFVRlBMRVZCUVVVc1JVRkJSVHROUVVOWUxGTkJRVk1zUlVGQlJTeFpRVUZaTEVWQlFVVTdUVUZEZWtJc1QwRkJUeXhGUVVGRkxGbEJRVmtzUlVGQlJUdE5RVU4yUWl4UlFVRlJMRVZCUVVVc1dVRkJXU3hGUVVGRk8wMUJRM2hDTEdGQlFXRXNSVUZCUlN4WlFVRlpMRVZCUVVVN1RVRkROMElzWlVGQlpTeEZRVUZGTEZsQlFWa3NSVUZCUlR0TlFVTXZRaXhYUVVGWExFVkJRVVVzV1VGQldTeEZRVUZGTzAxQlF6TkNMRTlCUVU4c1JVRkJSU3haUVVGWkxFVkJRVVU3VFVGRGRrSXNVMEZCVXl4RlFVRkZMRmxCUVZrc1JVRkJSVHROUVVONlFpeFJRVUZSTEVWQlFVVXNXVUZCV1N4RlFVRkZPMHRCUTNwQ0xFTkJRVU03UVVGRFRpeEhRVUZITzBGQlEwZzdRVUZEUVRzN1JVRkZSU3hyUWtGQmEwSXNSVUZCUlN4WlFVRlpPMGxCUXpsQ0xFbEJRVWtzUTBGQlF5eE5RVUZOTEVkQlFVY3NSVUZCUlN4RFFVRkRPMGxCUTJwQ0xFbEJRVWtzUTBGQlF5eExRVUZMTEVkQlFVY3NSVUZCUlN4RFFVRkRPMGxCUTJoQ0xFbEJRVWtzUTBGQlF5eGpRVUZqTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF6dEJRVU0zUXl4SFFVRkhPenRGUVVWRUxHbENRVUZwUWl4RlFVRkZMRmxCUVZrN1NVRkROMElzU1VGQlNTeERRVUZETEZsQlFWa3NSVUZCUlN4RFFVRkRPMEZCUTNoQ0xFZEJRVWM3TzBWQlJVUXNiVUpCUVcxQ0xFVkJRVVVzV1VGQldUdEJRVU51UXl4SlFVRkpMRWxCUVVrc1UwRkJVeXhIUVVGSExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRE8wRkJRemRETzBGQlEwRTdPMEZCUlVFc1NVRkJTU3hWUVVGVkxFTkJRVU1zV1VGQldUdEJRVU16UWp0QlFVTkJPenRCUVVWQkxFMUJRVTBzU1VGQlNTeEpRVUZKTEVOQlFVTXNVMEZCVXl4RlFVRkZMRVZCUVVVN08wRkJSVFZDTEZGQlFWRXNTVUZCU1N4RFFVRkRMR05CUVdNc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRPenRQUVVVeFF5eEpRVUZKTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1owSkJRV2RDTEVWQlFVVTdWVUZET1VJc1NVRkJTU3hEUVVGRExIZENRVUYzUWl4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1EwRkJRenRCUVVOeVJTeFRRVUZUT3p0UlFVVkVMRWxCUVVrc1dVRkJXU3hIUVVGSExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRE8xRkJRelZETEVsQlFVa3NTMEZCU3l4RFFVRkRMRmxCUVZrc1EwRkJReXhUUVVGVExFVkJRVVVzV1VGQldTeERRVUZETEVWQlFVVTdWVUZETDBNc1NVRkJTU3hEUVVGRExGbEJRVmtzUlVGQlJTeERRVUZETzBGQlF6bENMRk5CUVZNN08wRkJSVlFzVDBGQlR6czdTMEZGUml4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTnlRaXhIUVVGSE8wRkJRMGc3TzBWQlJVVXNUVUZCVFN4RlFVRkZMRlZCUVZVc1MwRkJTeXhGUVVGRk8wRkJRek5DTEVsQlFVa3NTMEZCU3l4RFFVRkRMR05CUVdNc1JVRkJSU3hEUVVGRE8wRkJRek5DTzBGQlEwRTdRVUZEUVRzN1FVRkZRU3hKUVVGSkxFbEJRVWtzUTBGQlF5eGxRVUZsTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1FVRkRhRU03UVVGRFFUdEJRVU5CT3p0SlFVVkpMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVkQlFVY3NSVUZCUlR0TlFVTnVRaXhKUVVGSkxFTkJRVU1zVjBGQlZ5eEZRVUZGTEVOQlFVTTdUVUZEYmtJc1NVRkJTU3hMUVVGTExFZEJRVWNzU1VGQlNTeERRVUZETEZGQlFWRXNSVUZCUlN4RFFVRkRPMDFCUXpWQ0xFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNVVUZCVVN4RFFVRkRMRXRCUVVzc1JVRkJSU3hKUVVGSkxFTkJRVU1zVlVGQlZTeEZRVUZGTEVsQlFVa3NRMEZCUXl4eFFrRkJjVUlzUTBGQlF5eERRVUZETzAxQlEzaEZMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVDBGQlR5eEhRVUZITEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1lVRkJZU3hEUVVGRExFdEJRVXNzUlVGQlJTeEpRVUZKTEVOQlFVTXNWVUZCVlN4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eGxRVUZsTEVOQlFVTXNTMEZCU3l4RlFVRkZMRWxCUVVrc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF6dE5RVU16U0N4UFFVRlBPMEZCUTJJc1MwRkJTenM3U1VGRlJDeEpRVUZKTEVOQlFVTXNWMEZCVnl4RlFVRkZMRU5CUVVNN1NVRkRia0lzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXp0TlFVTmFMRmxCUVZrc1JVRkJSU3hKUVVGSk8wRkJRM2hDTEV0QlFVc3NRMEZCUXl4RFFVRkRPenRCUVVWUUxFbEJRVWtzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4UlFVRlJMRU5CUVVNc1NVRkJTU3hEUVVGRExGRkJRVkVzUlVGQlJTeEZRVUZGTEVsQlFVa3NRMEZCUXl4VlFVRlZMRVZCUVVVc1NVRkJTU3hEUVVGRExIRkNRVUZ4UWl4RFFVRkRMRU5CUVVNN08wRkJSWFJHTEVsQlFVa3NTVUZCU1N4UFFVRlBMRWRCUVVjc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zVFVGQlRTeEpRVUZKTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1QwRkJUeXhMUVVGTExFOUJRVThzUTBGQlF5eFBRVUZQTEVsQlFVa3NSVUZCUlN4RFFVRkRPenRKUVVWMFJ5eEpRVUZKTEUxQlFVMHNSMEZCUnl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFMUJRVTBzU1VGQlNTeExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVFVGQlRTeERRVUZETEZkQlFWY3NSVUZCUlN4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eE5RVUZOTEVOQlFVTXNWMEZCVnl4RlFVRkZMRWRCUVVjc1RVRkJUU3hEUVVGRE8wbEJRM3BJTEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4SFFVRkhMRVZCUVVVc1NVRkJTU3hEUVVGRExGRkJRVkVzUlVGQlJTeEZRVUZGTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1YwRkJWeXhKUVVGSkxFOUJRVThzUTBGQlF5eFhRVUZYTEVsQlFVa3NUVUZCVFN4RlFVRkZMRTlCUVU4c1EwRkJRenRQUVVOc1NDeEpRVUZKTEVOQlFVTXNWVUZCVlN4UlFVRlJMRVZCUVVVN1VVRkRlRUlzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4VFFVRlRMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU03VVVGREwwSXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhYUVVGWExFVkJRVVVzUTBGQlF6dFBRVU14UWl4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dFBRVU5hTEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU03UVVGRE9VSXNSMEZCUnpzN1JVRkZSQ3hSUVVGUkxFVkJRVVVzV1VGQldUdEpRVU53UWl4UFFVRlBMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVDBGQlR5eEhRVUZITEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1QwRkJUeXhEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRE8wRkJRelZGTEVkQlFVYzdRVUZEU0R0QlFVTkJPenRGUVVWRkxGZEJRVmNzUlVGQlJTeFpRVUZaTzBsQlEzWkNMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRTlCUVU4c1EwRkJReXhWUVVGVkxFbEJRVWtzUlVGQlJUdE5RVU12UXl4SlFVRkpMRk5CUVZNc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMDFCUTJ4RExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWRCUVVjc1UwRkJVeXhEUVVGRExFdEJRVXNzUTBGQlF5eE5RVUZOTEVOQlFVTTdTMEZETTBNc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTnNRaXhIUVVGSE8wRkJRMGc3TzBWQlJVVXNWVUZCVlN4RlFVRkZMRmxCUVZrN1NVRkRkRUlzVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETEZWQlFWVXNTVUZCU1N4RlFVRkZPMDFCUXk5RExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1ZVRkJWU3hGUVVGRkxFTkJRVU03UzBGRGFFTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU5rTEVsQlFVa3NRMEZCUXl4WlFVRlpMRVZCUVVVc1EwRkJRenRCUVVONFFpeEhRVUZIT3p0RlFVVkVMSGRDUVVGM1FpeEZRVUZGTEZWQlFWVXNUVUZCVFN4RlFVRkZPMHRCUTNwRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFOUJRVThzUTBGQlF5eFZRVUZWTEVsQlFVa3NSVUZCUlN4TFFVRkxMRVZCUVVVN1RVRkRka1FzU1VGQlNTeFRRVUZUTEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dE5RVU5zUXl4SlFVRkpMRWxCUVVrc1IwRkJSeXhEUVVGRE8xRkJRMVlzVVVGQlVTeEZRVUZGTEVWQlFVVXNTVUZCU1N4SlFVRkpMRTFCUVUwc1EwRkJRenRSUVVNelFpeFpRVUZaTEVWQlFVVXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJRenRQUVVNelFpeERRVUZETEVOQlFVTTdUVUZEU0N4VFFVRlRMRU5CUVVNc1VVRkJVU3hEUVVGRExFdEJRVXNzUTBGQlF5eFRRVUZUTEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUVVNN1MwRkRNME1zUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOc1FpeEhRVUZITzBGQlEwZzdRVUZEUVR0QlFVTkJPenRGUVVWRkxIRkNRVUZ4UWl4RlFVRkZMRlZCUVZVc1RVRkJUU3hGUVVGRk8wbEJRM1pETEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETEZWQlFWVXNTVUZCU1N4RlFVRkZMRXRCUVVzc1JVRkJSVHRCUVVOMlJDeE5RVUZOTEVsQlFVa3NVMEZCVXl4SFFVRkhMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdPMDFCUld4RExFbEJRVWtzUTBGQlF5eFRRVUZUTEVWQlFVVTdVVUZEWkN4TlFVRk5MRWxCUVVrc1MwRkJTeXhEUVVGRExHbEhRVUZwUnl4SFFVRkhMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTndTaXhQUVVGUE96dE5RVVZFTEVsQlFVa3NTVUZCU1N4SFFVRkhMRU5CUVVNN1VVRkRWaXhSUVVGUkxFVkJRVVVzUzBGQlN6dFJRVU5tTEZsQlFWa3NSVUZCUlN4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRE8wOUJRek5DTEVOQlFVTXNRMEZCUXp0TlFVTklMRk5CUVZNc1EwRkJReXhSUVVGUkxFTkJRVU1zUzBGQlN5eERRVUZETEZOQlFWTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJRenRMUVVNelF5eERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRMnhDTEVkQlFVYzdPMFZCUlVRc1ZVRkJWU3hGUVVGRkxGVkJRVlVzVFVGQlRTeEZRVUZGTzBsQlF6VkNMRWxCUVVrc1EwRkJReXh4UWtGQmNVSXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJRenRKUVVOdVF5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRPMDFCUTFvc1dVRkJXU3hGUVVGRkxFdEJRVXM3UzBGRGNFSXNRMEZCUXl4RFFVRkRPMGxCUTBnc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eFBRVUZQTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1NVRkRNMElzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4WFFVRlhMRVZCUVVVc1EwRkJRenRCUVVNM1FpeEhRVUZITzBGQlEwZzdRVUZEUVR0QlFVTkJPenRGUVVWRkxHTkJRV01zUlVGQlJTeFZRVUZWTEZGQlFWRXNSVUZCUlR0QlFVTjBReXhKUVVGSkxFdEJRVXNzUTBGQlF5eFJRVUZSTEVOQlFVTXNUMEZCVHl4RFFVRkRMRkZCUVZFc1JVRkJSU3hWUVVGVkxFdEJRVXNzUlVGQlJUczdUVUZGYUVRc1NVRkJTU3hMUVVGTExFbEJRVWtzUzBGQlN5eERRVUZETEV0QlFVc3NTVUZCU1N4TFFVRkxMRU5CUVVNc1MwRkJTeXhEUVVGRExFbEJRVWtzUlVGQlJUdFJRVU0xUXl4TFFVRkxMRU5CUVVNc1MwRkJTeXhEUVVGRExHRkJRV0VzUjBGQlJ5eEpRVUZKTEVOQlFVTXNXVUZCV1N4RFFVRkRPMUZCUXpsRExFdEJRVXNzUTBGQlF5eExRVUZMTEVOQlFVTXNaVUZCWlN4SFFVRkhMRWxCUVVrc1EwRkJReXhqUVVGakxFTkJRVU03VVVGRGJFUXNTMEZCU3l4RFFVRkRMRXRCUVVzc1EwRkJReXhUUVVGVExFZEJRVWNzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXp0UlFVTjBReXhMUVVGTExFTkJRVU1zUzBGQlN5eERRVUZETEdWQlFXVXNSMEZCUnl4SlFVRkpMRU5CUVVNc1kwRkJZeXhEUVVGRE8xRkJRMnhFTEV0QlFVc3NRMEZCUXl4TFFVRkxMRU5CUVVNc1lVRkJZU3hIUVVGSExFbEJRVWtzUTBGQlF5eGhRVUZoTEVOQlFVTTdRVUZEZGtRc1QwRkJUenM3VFVGRlJDeEpRVUZKTEV0QlFVc3NTVUZCU1N4TFFVRkxMRU5CUVVNc1MwRkJTeXhKUVVGSkxFdEJRVXNzUTBGQlF5eExRVUZMTEVOQlFVTXNVVUZCVVN4RlFVRkZPMUZCUTJoRUxFbEJRVWtzUTBGQlF5eGpRVUZqTEVOQlFVTXNTMEZCU3l4RFFVRkRMRXRCUVVzc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF6dEJRVU5zUkN4UFFVRlBPenRMUVVWR0xFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRiRUlzUjBGQlJ6czdSVUZGUkN4alFVRmpMRVZCUVVVc1dVRkJXVHRKUVVNeFFpeFBRVUZQTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1VVRkJVU3hEUVVGRE8wRkJReTlDTEVkQlFVYzdPMFZCUlVRc1owSkJRV2RDTEVWQlFVVXNXVUZCV1R0SlFVTTFRaXhQUVVGUExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF5eFZRVUZWTEVsQlFVa3NSVUZCUlN4SlFVRkpMRVZCUVVVN1RVRkRNMFFzU1VGQlNTeFRRVUZUTEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dE5RVU5zUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFZEJRVWNzVTBGQlV5eERRVUZETEV0QlFVc3NRMEZCUXl4TlFVRk5MRU5CUVVNN1RVRkRjRU1zVDBGQlR5eEpRVUZKTEVOQlFVTTdTMEZEWWl4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUlVGQlJTeEZRVUZGTEVOQlFVTXNRMEZCUXp0QlFVTjBRaXhIUVVGSE96dEZRVVZFTEdWQlFXVXNSVUZCUlN4VlFVRlZMRlZCUVZVc1JVRkJSVHRKUVVOeVF5eEpRVUZKTEUxQlFVMHNSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRE8wRkJRemRDTEVsQlFVa3NTVUZCU1N4VFFVRlRMRWRCUVVjc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXp0QlFVTjRRenRCUVVOQk96dEpRVVZKTEZOQlFWTXNRMEZCUXl4UFFVRlBMRU5CUVVNc1ZVRkJWU3hKUVVGSkxFVkJRVVVzUzBGQlN5eEZRVUZGTzAxQlEzWkRMRWxCUVVrc1UwRkJVeXhIUVVGSExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0TlFVTTNRaXhUUVVGVExFTkJRVU1zVVVGQlVTeERRVUZETzFGQlEycENMRmRCUVZjc1JVRkJSU3hWUVVGVk8wOUJRM2hDTEVOQlFVTXNRMEZCUXp0TFFVTktMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEYkVJc1IwRkJSenRCUVVOSU8wRkJRMEU3UVVGRFFUczdRVUZGUVN4RlFVRkZMRkZCUVZFc1JVRkJSU3hWUVVGVkxGTkJRVk1zUlVGQlJUdEJRVU5xUXpzN1NVRkZTU3hKUVVGSkxFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNVMEZCVXl4RlFVRkZPMDFCUTNoQ0xFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNVVUZCVVN4RFFVRkRMRWxCUVVrc1EwRkJReXhuUWtGQlowSXNSVUZCUlN4RFFVRkRMRU5CUVVNN1FVRkRia1FzUzBGQlN6czdTVUZGUkN4SlFVRkpMRTlCUVU4c1IwRkJSeXhKUVVGSkxFTkJRVU03U1VGRGJrSXNTVUZCU1N4VFFVRlRMRU5CUVVNc1VVRkJVU3hKUVVGSkxFOUJRVThzVTBGQlV5eERRVUZETEZGQlFWRXNTMEZCU3l4VlFVRlZMRVZCUVVVN1RVRkRiRVVzVDBGQlR5eEhRVUZITEZOQlFWTXNRMEZCUXl4UlFVRlJMRVZCUVVVc1EwRkJRenRMUVVOb1F5eE5RVUZOTEVsQlFVa3NVMEZCVXl4RFFVRkRMRXRCUVVzc1EwRkJReXhSUVVGUkxFbEJRVWtzVTBGQlV5eERRVUZETEZsQlFWa3NSVUZCUlR0TlFVTTNSQ3hQUVVGUExFZEJRVWNzU1VGQlNTeERRVUZETEdGQlFXRXNRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJRenRCUVVNNVF5eExRVUZMTzBGQlEwdzdRVUZEUVRzN1NVRkZTU3hUUVVGVExFTkJRVU1zVVVGQlVTeERRVUZETzAxQlEycENMRkZCUVZFc1JVRkJSU3hQUVVGUE8wMUJRMnBDTEZsQlFWa3NSVUZCUlN4SlFVRkpPMEZCUTNoQ0xFdEJRVXNzUlVGQlJTeEpRVUZKTEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNN08wRkJSVEZDTEVkQlFVYzdRVUZEU0RzN1FVRkZRU3hGUVVGRkxHRkJRV0VzUlVGQlJTeFZRVUZWTEZOQlFWTXNSVUZCUlN4TFFVRkxMRVZCUVVVN08wbEJSWHBETEVsQlFVa3NUMEZCVHl4SFFVRkhMRWxCUVVrc1EwRkJRenRKUVVOdVFpeExRVUZMTEVkQlFVY3NVMEZCVXl4RFFVRkRMRTFCUVUwc1MwRkJTeXhEUVVGRExFZEJRVWNzUzBGQlN5eEhRVUZITEZOQlFWTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1RVRkJUU3hEUVVGRE8wbEJRMmhGTEVsQlFVa3NVMEZCVXl4RFFVRkRMRmxCUVZrc1EwRkJReXhOUVVGTkxFVkJRVVU3VFVGRGFrTXNVMEZCVXl4RFFVRkRMRmxCUVZrc1EwRkJReXhMUVVGTExFTkJRVU1zY1VKQlFYRkNMRU5CUVVNc1EwRkJReXhQUVVGUExFTkJRVU1zVlVGQlZTeFZRVUZWTEVWQlFVVTdVVUZEYUVZc1NVRkJTU3hKUVVGSkxFZEJRVWNzVlVGQlZTeERRVUZETEV0QlFVc3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRSUVVOcVF5eEpRVUZKTEdOQlFXTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1MwRkJTeXhGUVVGRkxFTkJRVU03VVVGRGJFTXNTVUZCU1N4SFFVRkhMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zVlVGQlZTeEhRVUZITEVWQlFVVTdWVUZETjBJc1NVRkJTVHRaUVVOR0xFOUJRVThzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRYUVVONFFpeERRVUZETEU5QlFVOHNRMEZCUXl4RlFVRkZPMWxCUTFZc1QwRkJUeXhIUVVGSExFTkJRVU03VjBGRFdqdFRRVU5HTEVOQlFVTXNRMEZCUXp0UlFVTklMRWxCUVVrc1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRSUVVNMVFpeEpRVUZKTEVOQlFVTXNaVUZCWlN4RFFVRkRMR05CUVdNc1EwRkJReXhGUVVGRk8xVkJRM0JETEUxQlFVMHNTVUZCU1N4TFFVRkxMRU5CUVVNc05FTkJRVFJETEVkQlFVY3NZMEZCWXl4RFFVRkRMRU5CUVVNN1UwRkRhRVk3VVVGRFJDeEpRVUZKTEVOQlFVTXNaVUZCWlN4RFFVRkRMR05CUVdNc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTXNaMEpCUVdkQ0xFVkJRVVVzUlVGQlJTeEpRVUZKTEVOQlFVTXNSVUZCUlR0VlFVTjZSU3hQUVVGUExFZEJRVWNzUzBGQlN5eERRVUZETzFOQlEycENPMDlCUTBZc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXp0TFFVTm1PMEZCUTB3c1NVRkJTU3hKUVVGSkxFOUJRVThzVTBGQlV5eERRVUZETEZGQlFWRXNTMEZCU3l4VlFVRlZMRVZCUVVVN08wMUJSVFZETEU5QlFVOHNSMEZCUnl4VFFVRlRMRU5CUVVNc1VVRkJVU3hGUVVGRk8wdEJReTlDTzBsQlEwUXNUMEZCVHl4UFFVRlBMRU5CUVVNN1FVRkRia0lzUjBGQlJ6dEJRVU5JTzBGQlEwRTdPMFZCUlVVc1dVRkJXU3hGUVVGRkxGbEJRVms3U1VGRGVFSXNTVUZCU1N4VlFVRlZMRWRCUVVjc1NVRkJTU3hEUVVGRE8wbEJRM1JDTEVsQlFVa3NUVUZCVFN4SFFVRkhMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU03UVVGRE4wSXNTVUZCU1N4SlFVRkpMRk5CUVZNc1IwRkJSeXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRPMEZCUTNoRE8wRkJRMEU3TzBsQlJVa3NTVUZCU1N4dlFrRkJiMElzUjBGQlJ5eFpRVUZaTzAxQlEzSkRMRk5CUVZNc1EwRkJReXhQUVVGUExFTkJRVU1zVlVGQlZTeEpRVUZKTEVWQlFVVTdVVUZEYUVNc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1VVRkJVU3hGUVVGRk8xVkJRMmhETEZWQlFWVXNSMEZCUnl4TFFVRkxMRU5CUVVNN1UwRkRjRUk3UVVGRFZDeFBRVUZQTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU03TzAxQlJXUXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJRenRSUVVOYUxFOUJRVThzUlVGQlJTeFZRVUZWTzBGQlF6TkNMRTlCUVU4c1EwRkJReXhEUVVGRE96dE5RVVZJTEVsQlFVa3NWVUZCVlN4RlFVRkZPMUZCUTJRc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eFBRVUZQTEVWQlFVVXNRMEZCUXp0UFFVTjBRaXhOUVVGTk8xRkJRMHdzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4VFFVRlRMRVZCUVVVc1EwRkJRenRCUVVNdlFpeFBRVUZQTzBGQlExQTdPMDFCUlUwc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF6dFJRVU5hTEZOQlFWTXNSVUZCUlN4SlFVRkpPMEZCUTNaQ0xFOUJRVThzUTBGQlF5eERRVUZET3p0QlFVVlVMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdRVUZEYWtJN1FVRkRRVHM3U1VGRlNTeFRRVUZUTEVOQlFVTXNUMEZCVHl4RFFVRkRMRlZCUVZVc1NVRkJTU3hGUVVGRkxFdEJRVXNzUlVGQlJUdE5RVU4yUXl4SlFVRkpMRk5CUVZNc1IwRkJSeXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdUVUZETjBJc1NVRkJTU3hQUVVGUExFZEJRVWNzU1VGQlNTeERRVUZETEdGQlFXRXNRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJRenROUVVNMVF5eFRRVUZUTEVOQlFVTXNVVUZCVVN4RFFVRkRPMUZCUTJwQ0xGRkJRVkVzUlVGQlJTeFBRVUZQTzFGQlEycENMRmxCUVZrc1JVRkJSU3hKUVVGSk8wOUJRMjVDTEVWQlFVVXNTMEZCU3l4TFFVRkxMRk5CUVZNc1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF5eEhRVUZITEc5Q1FVRnZRaXhIUVVGSExFbEJRVWtzUTBGQlF5eERRVUZETzBGQlEzWkZMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTnNRanRCUVVOQk96dEpRVVZKTEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1RVRkJUU3hKUVVGSkxFbEJRVWtzUTBGQlF5eFRRVUZUTEVWQlFVVXNSVUZCUlR0TlFVTjZReXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETzFGQlExb3NVMEZCVXl4RlFVRkZMRWxCUVVrN1QwRkRhRUlzUTBGQlF5eERRVUZETzB0QlEwbzdRVUZEVEN4SFFVRkhPMEZCUTBnN1FVRkRRVHM3UlVGRlJTeFpRVUZaTEVWQlFVVXNWVUZCVlN4VFFVRlRMRVZCUVVVN1NVRkRha01zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4VFFVRlRMRU5CUVVNc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF5eEhRVUZITEZOQlFWTXNRMEZCUXp0SlFVTTVReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEZOQlFWTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1NVRkJTU3hEUVVGRExFZEJRVWNzVTBGQlV5eERRVUZETEV0QlFVc3NRMEZCUXl4TlFVRk5MRU5CUVVNN1NVRkRNVVFzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJRenRCUVVNM1FpeEhRVUZITzBGQlEwZzdRVUZEUVRzN1JVRkZSU3hqUVVGakxFVkJRVVVzVlVGQlZTeFRRVUZUTEVWQlFVVTdTVUZEYmtNc1QwRkJUeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEZOQlFWTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03U1VGRGVrTXNUMEZCVHl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExGTkJRVk1zUTBGQlF5eExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1IwRkRla003UVVGRFNDeEZRVUZGTEUxQlFVMHNSVUZCUlN4WlFVRlpPenRKUVVWc1FpeFBRVUZQTEV0QlFVc3NRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRE8xRkJRMnhDTEZGQlFWRXNSVUZCUlN4SlFVRkpMRU5CUVVNc1RVRkJUVHRSUVVOeVFpeFRRVUZUTEVWQlFVVXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhUUVVGVE8wOUJRMmhETzAxQlEwUXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhSUVVGUk8wRkJRM3BDTEV0QlFVc3NRMEZCUXpzN1IwRkZTRHRCUVVOSUxFTkJRVU1zUTBGQlF5eERRVUZET3p0QlFVVklMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zVDBGQlR5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRTFCUVUwc1MwRkJTeXhEUVVGRExFMUJRVTBzUTBGQlF5eE5RVUZOTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1RVRkJUU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTzBWQlF5OUZMRTFCUVUwc1EwRkJReXhOUVVGTkxFZEJRVWNzVFVGQlRTeERRVUZETzBGQlEzcENMRU5CUVVNN08wRkJSVVFzVFVGQlRTeERRVUZETEU5QlFVOHNSMEZCUnl4TlFVRk5MRU5CUVVNaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SjJZWElnVW1WaFkzUWdQU0JuYkc5aVlXd3VVbVZoWTNRZ2ZId2djbVZ4ZFdseVpTZ25jbVZoWTNRbktUdGNiblpoY2lCR2IzSnRjM2tnUFNCN2ZUdGNiblpoY2lCMllXeHBaR0YwYVc5dVVuVnNaWE1nUFNCeVpYRjFhWEpsS0NjdUwzWmhiR2xrWVhScGIyNVNkV3hsY3k1cWN5Y3BPMXh1ZG1GeUlIVjBhV3h6SUQwZ2NtVnhkV2x5WlNnbkxpOTFkR2xzY3k1cWN5Y3BPMXh1ZG1GeUlFMXBlR2x1SUQwZ2NtVnhkV2x5WlNnbkxpOU5hWGhwYmk1cWN5Y3BPMXh1ZG1GeUlHOXdkR2x2Ym5NZ1BTQjdmVHRjYmx4dVJtOXliWE41TGsxcGVHbHVJRDBnVFdsNGFXNDdYRzVjYmtadmNtMXplUzVrWldaaGRXeDBjeUE5SUdaMWJtTjBhVzl1SUNod1lYTnpaV1JQY0hScGIyNXpLU0I3WEc0Z0lHOXdkR2x2Ym5NZ1BTQndZWE56WldSUGNIUnBiMjV6TzF4dWZUdGNibHh1Um05eWJYTjVMbUZrWkZaaGJHbGtZWFJwYjI1U2RXeGxJRDBnWm5WdVkzUnBiMjRnS0c1aGJXVXNJR1oxYm1NcElIdGNiaUFnZG1Gc2FXUmhkR2x2YmxKMWJHVnpXMjVoYldWZElEMGdablZ1WXp0Y2JuMDdYRzVjYmtadmNtMXplUzVHYjNKdElEMGdVbVZoWTNRdVkzSmxZWFJsUTJ4aGMzTW9lMXh1SUNCblpYUkpibWwwYVdGc1UzUmhkR1U2SUdaMWJtTjBhVzl1SUNncElIdGNiaUFnSUNCeVpYUjFjbTRnZTF4dUlDQWdJQ0FnYVhOV1lXeHBaRG9nZEhKMVpTeGNiaUFnSUNBZ0lHbHpVM1ZpYldsMGRHbHVaem9nWm1Gc2MyVXNYRzRnSUNBZ0lDQmpZVzVEYUdGdVoyVTZJR1poYkhObFhHNGdJQ0FnZlR0Y2JpQWdmU3hjYmlBZ1oyVjBSR1ZtWVhWc2RGQnliM0J6T2lCbWRXNWpkR2x2YmlBb0tTQjdYRzRnSUNBZ2NtVjBkWEp1SUh0Y2JpQWdJQ0FnSUdobFlXUmxjbk02SUh0OUxGeHVJQ0FnSUNBZ2IyNVRkV05qWlhOek9pQm1kVzVqZEdsdmJpQW9LU0I3ZlN4Y2JpQWdJQ0FnSUc5dVJYSnliM0k2SUdaMWJtTjBhVzl1SUNncElIdDlMRnh1SUNBZ0lDQWdiMjVUZFdKdGFYUTZJR1oxYm1OMGFXOXVJQ2dwSUh0OUxGeHVJQ0FnSUNBZ2IyNVdZV3hwWkZOMVltMXBkRG9nWm5WdVkzUnBiMjRnS0NrZ2UzMHNYRzRnSUNBZ0lDQnZia2x1ZG1Gc2FXUlRkV0p0YVhRNklHWjFibU4wYVc5dUlDZ3BJSHQ5TEZ4dUlDQWdJQ0FnYjI1VGRXSnRhWFIwWldRNklHWjFibU4wYVc5dUlDZ3BJSHQ5TEZ4dUlDQWdJQ0FnYjI1V1lXeHBaRG9nWm5WdVkzUnBiMjRnS0NrZ2UzMHNYRzRnSUNBZ0lDQnZia2x1ZG1Gc2FXUTZJR1oxYm1OMGFXOXVJQ2dwSUh0OUxGeHVJQ0FnSUNBZ2IyNURhR0Z1WjJVNklHWjFibU4wYVc5dUlDZ3BJSHQ5WEc0Z0lDQWdmVHRjYmlBZ2ZTeGNibHh1SUNBdkx5QkJaR1FnWVNCdFlYQWdkRzhnYzNSdmNtVWdkR2hsSUdsdWNIVjBjeUJ2WmlCMGFHVWdabTl5YlN3Z1lTQnRiMlJsYkNCMGJ5QnpkRzl5WlZ4dUlDQXZMeUIwYUdVZ2RtRnNkV1Z6SUc5bUlIUm9aU0JtYjNKdElHRnVaQ0J5WldkcGMzUmxjaUJqYUdsc1pDQnBibkIxZEhOY2JpQWdZMjl0Y0c5dVpXNTBWMmxzYkUxdmRXNTBPaUJtZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnZEdocGN5NXBibkIxZEhNZ1BTQjdmVHRjYmlBZ0lDQjBhR2x6TG0xdlpHVnNJRDBnZTMwN1hHNGdJQ0FnZEdocGN5NXlaV2RwYzNSbGNrbHVjSFYwY3loMGFHbHpMbkJ5YjNCekxtTm9hV3hrY21WdUtUdGNiaUFnZlN4Y2JseHVJQ0JqYjIxd2IyNWxiblJFYVdSTmIzVnVkRG9nWm5WdVkzUnBiMjRnS0NrZ2UxeHVJQ0FnSUhSb2FYTXVkbUZzYVdSaGRHVkdiM0p0S0NrN1hHNGdJSDBzWEc1Y2JpQWdZMjl0Y0c5dVpXNTBWMmxzYkZWd1pHRjBaVG9nWm5WdVkzUnBiMjRnS0NrZ2UxeHVJQ0FnSUhaaGNpQnBibkIxZEV0bGVYTWdQU0JQWW1wbFkzUXVhMlY1Y3loMGFHbHpMbWx1Y0hWMGN5azdYRzVjYmlBZ0lDQXZMeUJVYUdVZ2RYQmtZWFJsWkNCamFHbHNaSEpsYmlCaGNuSmhlU0JwY3lCdWIzUWdZWFpoYVd4aFlteGxJR2hsY21VZ1ptOXlJSE52YldVZ2NtVmhjMjl1TEZ4dUlDQWdJQzh2SUhkbElHNWxaV1FnZEc4Z2QyRnBkQ0JtYjNJZ2JtVjRkQ0JsZG1WdWRDQnNiMjl3WEc0Z0lDQWdjMlYwVkdsdFpXOTFkQ2htZFc1amRHbHZiaUFvS1NCN1hHNWNiaUFnSUNBZ0lDOHZJRlJvWlNCamIyMXdiMjVsYm5RZ2JXbG5hSFFnYUdGMlpTQmlaV1Z1SUhWdWJXOTFiblJsWkNCdmJpQmhibHh1SUNBZ0lDQWdMeThnZFhCa1lYUmxYRzRnSUNBZ0lDQnBaaUFvZEdocGN5NXBjMDF2ZFc1MFpXUW9LU2tnZTF4dVhHNGdJQ0FnSUNBZ0lIUm9hWE11Y21WbmFYTjBaWEpKYm5CMWRITW9kR2hwY3k1d2NtOXdjeTVqYUdsc1pISmxiaWs3WEc1Y2JpQWdJQ0FnSUNCcFppQW9kR2hwY3k1d2NtOXdjeTUyWVd4cFpHRjBhVzl1UlhKeWIzSnpLU0I3WEc0Z0lDQWdJQ0FnSUNBZ2RHaHBjeTV6WlhSSmJuQjFkRlpoYkdsa1lYUnBiMjVGY25KdmNuTW9kR2hwY3k1d2NtOXdjeTUyWVd4cFpHRjBhVzl1UlhKeWIzSnpLVHRjYmlBZ0lDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNBZ0lIWmhjaUJ1WlhkSmJuQjFkRXRsZVhNZ1BTQlBZbXBsWTNRdWEyVjVjeWgwYUdsekxtbHVjSFYwY3lrN1hHNGdJQ0FnSUNBZ0lHbG1JQ2gxZEdsc2N5NWhjbkpoZVhORWFXWm1aWElvYVc1d2RYUkxaWGx6TENCdVpYZEpibkIxZEV0bGVYTXBLU0I3WEc0Z0lDQWdJQ0FnSUNBZ2RHaHBjeTUyWVd4cFpHRjBaVVp2Y20wb0tUdGNiaUFnSUNBZ0lDQWdmVnh1WEc0Z0lDQWdJQ0I5WEc1Y2JpQWdJQ0I5TG1KcGJtUW9kR2hwY3lrc0lEQXBPMXh1SUNCOUxGeHVYRzRnSUM4dklGVndaR0YwWlNCdGIyUmxiQ3dnYzNWaWJXbDBJSFJ2SUhWeWJDQndjbTl3SUdGdVpDQnpaVzVrSUhSb1pTQnRiMlJsYkZ4dUlDQnpkV0p0YVhRNklHWjFibU4wYVc5dUlDaGxkbVZ1ZENrZ2UxeHVJQ0FnSUdWMlpXNTBMbkJ5WlhabGJuUkVaV1poZFd4MEtDazdYRzVjYmlBZ0lDQXZMeUJVY21sbloyVnlJR1p2Y20wZ1lYTWdibTkwSUhCeWFYTjBhVzVsTGx4dUlDQWdJQzh2SUVsbUlHRnVlU0JwYm5CMWRITWdhR0YyWlNCdWIzUWdZbVZsYmlCMGIzVmphR1ZrSUhsbGRDQjBhR2x6SUhkcGJHd2diV0ZyWlNCMGFHVnRJR1JwY25SNVhHNGdJQ0FnTHk4Z2MyOGdkbUZzYVdSaGRHbHZiaUJpWldOdmJXVnpJSFpwYzJsaWJHVWdLR2xtSUdKaGMyVmtJRzl1SUdselVISnBjM1JwYm1VcFhHNGdJQ0FnZEdocGN5NXpaWFJHYjNKdFVISnBjM1JwYm1Vb1ptRnNjMlVwTzF4dVhHNGdJQ0FnTHk4Z1ZHOGdjM1Z3Y0c5eWRDQjFjMlVnWTJGelpYTWdkMmhsY21VZ2JtOGdZWE41Ym1NZ2IzSWdjbVZ4ZFdWemRDQnZjR1Z5WVhScGIyNGdhWE1nYm1WbFpHVmtMbHh1SUNBZ0lDOHZJRlJvWlNCY0ltOXVVM1ZpYldsMFhDSWdZMkZzYkdKaFkyc2dhWE1nWTJGc2JHVmtJSGRwZEdnZ2RHaGxJRzF2WkdWc0lHVXVaeTRnZTJacFpXeGtUbUZ0WlRvZ1hDSnRlVlpoYkhWbFhDSjlMRnh1SUNBZ0lDOHZJR2xtSUhkaGJuUnBibWNnZEc4Z2NtVnpaWFFnZEdobElHVnVkR2x5WlNCbWIzSnRJSFJ2SUc5eWFXZHBibUZzSUhOMFlYUmxMQ0IwYUdVZ2MyVmpiMjVrSUhCaGNtRnRJR2x6SUdFZ1kyRnNiR0poWTJzZ1ptOXlJSFJvYVhNdVhHNGdJQ0FnYVdZZ0tDRjBhR2x6TG5CeWIzQnpMblZ5YkNrZ2UxeHVJQ0FnSUNBZ2RHaHBjeTUxY0dSaGRHVk5iMlJsYkNncE8xeHVJQ0FnSUNBZ2RtRnlJRzF2WkdWc0lEMGdkR2hwY3k1dFlYQk5iMlJsYkNncE8xeHVJQ0FnSUNBZ2RHaHBjeTV3Y205d2N5NXZibE4xWW0xcGRDaHRiMlJsYkN3Z2RHaHBjeTV5WlhObGRFMXZaR1ZzTENCMGFHbHpMblZ3WkdGMFpVbHVjSFYwYzFkcGRHaEZjbkp2Y2lrN1hHNGdJQ0FnSUNCMGFHbHpMbk4wWVhSbExtbHpWbUZzYVdRZ1B5QjBhR2x6TG5CeWIzQnpMbTl1Vm1Gc2FXUlRkV0p0YVhRb2JXOWtaV3dzSUhSb2FYTXVjbVZ6WlhSTmIyUmxiQ2tnT2lCMGFHbHpMbkJ5YjNCekxtOXVTVzUyWVd4cFpGTjFZbTFwZENodGIyUmxiQ3dnZEdocGN5NXlaWE5sZEUxdlpHVnNLVHRjYmlBZ0lDQWdJSEpsZEhWeWJqdGNiaUFnSUNCOVhHNWNiaUFnSUNCMGFHbHpMblZ3WkdGMFpVMXZaR1ZzS0NrN1hHNGdJQ0FnZEdocGN5NXpaWFJUZEdGMFpTaDdYRzRnSUNBZ0lDQnBjMU4xWW0xcGRIUnBibWM2SUhSeWRXVmNiaUFnSUNCOUtUdGNibHh1SUNBZ0lIUm9hWE11Y0hKdmNITXViMjVUZFdKdGFYUW9kR2hwY3k1dFlYQk5iMlJsYkNncExDQjBhR2x6TG5KbGMyVjBUVzlrWld3c0lIUm9hWE11ZFhCa1lYUmxTVzV3ZFhSelYybDBhRVZ5Y205eUtUdGNibHh1SUNBZ0lIWmhjaUJvWldGa1pYSnpJRDBnS0U5aWFtVmpkQzVyWlhsektIUm9hWE11Y0hKdmNITXVhR1ZoWkdWeWN5a3ViR1Z1WjNSb0lDWW1JSFJvYVhNdWNISnZjSE11YUdWaFpHVnljeWtnZkh3Z2IzQjBhVzl1Y3k1b1pXRmtaWEp6SUh4OElIdDlPMXh1WEc0Z0lDQWdkbUZ5SUcxbGRHaHZaQ0E5SUhSb2FYTXVjSEp2Y0hNdWJXVjBhRzlrSUNZbUlIVjBhV3h6TG1GcVlYaGJkR2hwY3k1d2NtOXdjeTV0WlhSb2IyUXVkRzlNYjNkbGNrTmhjMlVvS1YwZ1B5QjBhR2x6TG5CeWIzQnpMbTFsZEdodlpDNTBiMHh2ZDJWeVEyRnpaU2dwSURvZ0ozQnZjM1FuTzF4dUlDQWdJSFYwYVd4ekxtRnFZWGhiYldWMGFHOWtYU2gwYUdsekxuQnliM0J6TG5WeWJDd2dkR2hwY3k1dFlYQk5iMlJsYkNncExDQjBhR2x6TG5CeWIzQnpMbU52Ym5SbGJuUlVlWEJsSUh4OElHOXdkR2x2Ym5NdVkyOXVkR1Z1ZEZSNWNHVWdmSHdnSjJwemIyNG5MQ0JvWldGa1pYSnpLVnh1SUNBZ0lDQWdMblJvWlc0b1puVnVZM1JwYjI0Z0tISmxjM0J2Ym5ObEtTQjdYRzRnSUNBZ0lDQWdJSFJvYVhNdWNISnZjSE11YjI1VGRXTmpaWE56S0hKbGMzQnZibk5sS1R0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTV3Y205d2N5NXZibE4xWW0xcGRIUmxaQ2dwTzF4dUlDQWdJQ0FnZlM1aWFXNWtLSFJvYVhNcEtWeHVJQ0FnSUNBZ0xtTmhkR05vS0hSb2FYTXVabUZwYkZOMVltMXBkQ2s3WEc0Z0lIMHNYRzVjYmlBZ2JXRndUVzlrWld3NklHWjFibU4wYVc5dUlDZ3BJSHRjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTV3Y205d2N5NXRZWEJ3YVc1bklEOGdkR2hwY3k1d2NtOXdjeTV0WVhCd2FXNW5LSFJvYVhNdWJXOWtaV3dwSURvZ2RHaHBjeTV0YjJSbGJEdGNiaUFnZlN4Y2JseHVJQ0F2THlCSGIyVnpJSFJvY205MVoyZ2dZV3hzSUhKbFoybHpkR1Z5WldRZ1kyOXRjRzl1Wlc1MGN5QmhibVJjYmlBZ0x5OGdkWEJrWVhSbGN5QjBhR1VnYlc5a1pXd2dkbUZzZFdWelhHNGdJSFZ3WkdGMFpVMXZaR1ZzT2lCbWRXNWpkR2x2YmlBb0tTQjdYRzRnSUNBZ1QySnFaV04wTG10bGVYTW9kR2hwY3k1cGJuQjFkSE1wTG1admNrVmhZMmdvWm5WdVkzUnBiMjRnS0c1aGJXVXBJSHRjYmlBZ0lDQWdJSFpoY2lCamIyMXdiMjVsYm5RZ1BTQjBhR2x6TG1sdWNIVjBjMXR1WVcxbFhUdGNiaUFnSUNBZ0lIUm9hWE11Ylc5a1pXeGJibUZ0WlYwZ1BTQmpiMjF3YjI1bGJuUXVjM1JoZEdVdVgzWmhiSFZsTzF4dUlDQWdJSDB1WW1sdVpDaDBhR2x6S1NrN1hHNGdJSDBzWEc1Y2JpQWdMeThnVW1WelpYUWdaV0ZqYUNCclpYa2dhVzRnZEdobElHMXZaR1ZzSUhSdklIUm9aU0J2Y21sbmFXNWhiQ0F2SUdsdWFYUnBZV3dnZG1Gc2RXVmNiaUFnY21WelpYUk5iMlJsYkRvZ1puVnVZM1JwYjI0Z0tDa2dlMXh1SUNBZ0lFOWlhbVZqZEM1clpYbHpLSFJvYVhNdWFXNXdkWFJ6S1M1bWIzSkZZV05vS0daMWJtTjBhVzl1SUNodVlXMWxLU0I3WEc0Z0lDQWdJQ0IwYUdsekxtbHVjSFYwYzF0dVlXMWxYUzV5WlhObGRGWmhiSFZsS0NrN1hHNGdJQ0FnZlM1aWFXNWtLSFJvYVhNcEtUdGNiaUFnSUNCMGFHbHpMblpoYkdsa1lYUmxSbTl5YlNncE8xeHVJQ0I5TEZ4dVhHNGdJSE5sZEVsdWNIVjBWbUZzYVdSaGRHbHZia1Z5Y205eWN6b2dablZ1WTNScGIyNGdLR1Z5Y205eWN5a2dlMXh1SUNBZ0lDQlBZbXBsWTNRdWEyVjVjeWgwYUdsekxtbHVjSFYwY3lrdVptOXlSV0ZqYUNobWRXNWpkR2x2YmlBb2JtRnRaU3dnYVc1a1pYZ3BJSHRjYmlBZ0lDQWdJSFpoY2lCamIyMXdiMjVsYm5RZ1BTQjBhR2x6TG1sdWNIVjBjMXR1WVcxbFhUdGNiaUFnSUNBZ0lIWmhjaUJoY21keklEMGdXM3RjYmlBZ0lDQWdJQ0FnWDJselZtRnNhV1E2SUNFb2JtRnRaU0JwYmlCbGNuSnZjbk1wTEZ4dUlDQWdJQ0FnSUNCZmMyVnlkbVZ5UlhKeWIzSTZJR1Z5Y205eWMxdHVZVzFsWFZ4dUlDQWdJQ0FnZlYwN1hHNGdJQ0FnSUNCamIyMXdiMjVsYm5RdWMyVjBVM1JoZEdVdVlYQndiSGtvWTI5dGNHOXVaVzUwTENCaGNtZHpLVHRjYmlBZ0lDQjlMbUpwYm1Rb2RHaHBjeWtwT3lBZ0lGeHVJQ0I5TEZ4dVhHNGdJQzh2SUVkdklIUm9jbTkxWjJnZ1pYSnliM0p6SUdaeWIyMGdjMlZ5ZG1WeUlHRnVaQ0JuY21GaUlIUm9aU0JqYjIxd2IyNWxiblJ6WEc0Z0lDOHZJSE4wYjNKbFpDQnBiaUIwYUdVZ2FXNXdkWFJ6SUcxaGNDNGdRMmhoYm1kbElIUm9aV2x5SUhOMFlYUmxJSFJ2SUdsdWRtRnNhV1JjYmlBZ0x5OGdZVzVrSUhObGRDQjBhR1VnYzJWeWRtVnlSWEp5YjNJZ2JXVnpjMkZuWlZ4dUlDQjFjR1JoZEdWSmJuQjFkSE5YYVhSb1JYSnliM0k2SUdaMWJtTjBhVzl1SUNobGNuSnZjbk1wSUh0Y2JpQWdJQ0JQWW1wbFkzUXVhMlY1Y3lobGNuSnZjbk1wTG1admNrVmhZMmdvWm5WdVkzUnBiMjRnS0c1aGJXVXNJR2x1WkdWNEtTQjdYRzRnSUNBZ0lDQjJZWElnWTI5dGNHOXVaVzUwSUQwZ2RHaHBjeTVwYm5CMWRITmJibUZ0WlYwN1hHNWNiaUFnSUNBZ0lHbG1JQ2doWTI5dGNHOXVaVzUwS1NCN1hHNGdJQ0FnSUNBZ0lIUm9jbTkzSUc1bGR5QkZjbkp2Y2lnbldXOTFJR0Z5WlNCMGNubHBibWNnZEc4Z2RYQmtZWFJsSUdGdUlHbHVjSFYwSUhSb1lYUWdaRzlsY3lCdWIzUWdaWGhwYzNSekxpQldaWEpwWm5rZ1pYSnliM0p6SUc5aWFtVmpkQ0IzYVhSb0lHbHVjSFYwSUc1aGJXVnpMaUFuSUNzZ1NsTlBUaTV6ZEhKcGJtZHBabmtvWlhKeWIzSnpLU2s3WEc0Z0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUhaaGNpQmhjbWR6SUQwZ1czdGNiaUFnSUNBZ0lDQWdYMmx6Vm1Gc2FXUTZJR1poYkhObExGeHVJQ0FnSUNBZ0lDQmZjMlZ5ZG1WeVJYSnliM0k2SUdWeWNtOXljMXR1WVcxbFhWeHVJQ0FnSUNBZ2ZWMDdYRzRnSUNBZ0lDQmpiMjF3YjI1bGJuUXVjMlYwVTNSaGRHVXVZWEJ3Ykhrb1kyOXRjRzl1Wlc1MExDQmhjbWR6S1R0Y2JpQWdJQ0I5TG1KcGJtUW9kR2hwY3lrcE8xeHVJQ0I5TEZ4dVhHNGdJR1poYVd4VGRXSnRhWFE2SUdaMWJtTjBhVzl1SUNobGNuSnZjbk1wSUh0Y2JpQWdJQ0IwYUdsekxuVndaR0YwWlVsdWNIVjBjMWRwZEdoRmNuSnZjaWhsY25KdmNuTXBPMXh1SUNBZ0lIUm9hWE11YzJWMFUzUmhkR1VvZTF4dUlDQWdJQ0FnYVhOVGRXSnRhWFIwYVc1bk9pQm1ZV3h6WlZ4dUlDQWdJSDBwTzF4dUlDQWdJSFJvYVhNdWNISnZjSE11YjI1RmNuSnZjaWhsY25KdmNuTXBPMXh1SUNBZ0lIUm9hWE11Y0hKdmNITXViMjVUZFdKdGFYUjBaV1FvS1R0Y2JpQWdmU3hjYmx4dUlDQXZMeUJVY21GMlpYSnpaU0IwYUdVZ1kyaHBiR1J5Wlc0Z1lXNWtJR05vYVd4a2NtVnVJRzltSUdOb2FXeGtjbVZ1SUhSdklHWnBibVJjYmlBZ0x5OGdZV3hzSUdsdWNIVjBjeUJpZVNCamFHVmphMmx1WnlCMGFHVWdibUZ0WlNCd2NtOXdMaUJOWVhsaVpTQmtieUJoSUdKbGRIUmxjbHh1SUNBdkx5QmphR1ZqYXlCb1pYSmxYRzRnSUhKbFoybHpkR1Z5U1c1d2RYUnpPaUJtZFc1amRHbHZiaUFvWTJocGJHUnlaVzRwSUh0Y2JpQWdJQ0JTWldGamRDNURhR2xzWkhKbGJpNW1iM0pGWVdOb0tHTm9hV3hrY21WdUxDQm1kVzVqZEdsdmJpQW9ZMmhwYkdRcElIdGNibHh1SUNBZ0lDQWdhV1lnS0dOb2FXeGtJQ1ltSUdOb2FXeGtMbkJ5YjNCeklDWW1JR05vYVd4a0xuQnliM0J6TG01aGJXVXBJSHRjYmlBZ0lDQWdJQ0FnWTJocGJHUXVjSEp2Y0hNdVgyRjBkR0ZqYUZSdlJtOXliU0E5SUhSb2FYTXVZWFIwWVdOb1ZHOUdiM0p0TzF4dUlDQWdJQ0FnSUNCamFHbHNaQzV3Y205d2N5NWZaR1YwWVdOb1JuSnZiVVp2Y20wZ1BTQjBhR2x6TG1SbGRHRmphRVp5YjIxR2IzSnRPMXh1SUNBZ0lDQWdJQ0JqYUdsc1pDNXdjbTl3Y3k1ZmRtRnNhV1JoZEdVZ1BTQjBhR2x6TG5aaGJHbGtZWFJsTzF4dUlDQWdJQ0FnSUNCamFHbHNaQzV3Y205d2N5NWZhWE5HYjNKdFJHbHpZV0pzWldRZ1BTQjBhR2x6TG1selJtOXliVVJwYzJGaWJHVmtPMXh1SUNBZ0lDQWdJQ0JqYUdsc1pDNXdjbTl3Y3k1ZmFYTldZV3hwWkZaaGJIVmxJRDBnZEdocGN5NXlkVzVXWVd4cFpHRjBhVzl1TzF4dUlDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNCcFppQW9ZMmhwYkdRZ0ppWWdZMmhwYkdRdWNISnZjSE1nSmlZZ1kyaHBiR1F1Y0hKdmNITXVZMmhwYkdSeVpXNHBJSHRjYmlBZ0lDQWdJQ0FnZEdocGN5NXlaV2RwYzNSbGNrbHVjSFYwY3loamFHbHNaQzV3Y205d2N5NWphR2xzWkhKbGJpazdYRzRnSUNBZ0lDQjlYRzVjYmlBZ0lDQjlMbUpwYm1Rb2RHaHBjeWtwTzF4dUlDQjlMRnh1WEc0Z0lHbHpSbTl5YlVScGMyRmliR1ZrT2lCbWRXNWpkR2x2YmlBb0tTQjdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVjSEp2Y0hNdVpHbHpZV0pzWldRN1hHNGdJSDBzWEc1Y2JpQWdaMlYwUTNWeWNtVnVkRlpoYkhWbGN6b2dablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQlBZbXBsWTNRdWEyVjVjeWgwYUdsekxtbHVjSFYwY3lrdWNtVmtkV05sS0daMWJtTjBhVzl1SUNoa1lYUmhMQ0J1WVcxbEtTQjdYRzRnSUNBZ0lDQjJZWElnWTI5dGNHOXVaVzUwSUQwZ2RHaHBjeTVwYm5CMWRITmJibUZ0WlYwN1hHNGdJQ0FnSUNCa1lYUmhXMjVoYldWZElEMGdZMjl0Y0c5dVpXNTBMbk4wWVhSbExsOTJZV3gxWlR0Y2JpQWdJQ0FnSUhKbGRIVnliaUJrWVhSaE8xeHVJQ0FnSUgwdVltbHVaQ2gwYUdsektTd2dlMzBwTzF4dUlDQjlMRnh1WEc0Z0lITmxkRVp2Y20xUWNtbHpkR2x1WlRvZ1puVnVZM1JwYjI0Z0tHbHpVSEpwYzNScGJtVXBJSHRjYmlBZ0lDQjJZWElnYVc1d2RYUnpJRDBnZEdocGN5NXBibkIxZEhNN1hHNGdJQ0FnZG1GeUlHbHVjSFYwUzJWNWN5QTlJRTlpYW1WamRDNXJaWGx6S0dsdWNIVjBjeWs3WEc1Y2JpQWdJQ0F2THlCSmRHVnlZWFJsSUhSb2NtOTFaMmdnWldGamFDQmpiMjF3YjI1bGJuUWdZVzVrSUhObGRDQnBkQ0JoY3lCd2NtbHpkR2x1WlZ4dUlDQWdJQzh2SUc5eUlGd2laR2x5ZEhsY0lpNWNiaUFnSUNCcGJuQjFkRXRsZVhNdVptOXlSV0ZqYUNobWRXNWpkR2x2YmlBb2JtRnRaU3dnYVc1a1pYZ3BJSHRjYmlBZ0lDQWdJSFpoY2lCamIyMXdiMjVsYm5RZ1BTQnBibkIxZEhOYmJtRnRaVjA3WEc0Z0lDQWdJQ0JqYjIxd2IyNWxiblF1YzJWMFUzUmhkR1VvZTF4dUlDQWdJQ0FnSUNCZmFYTlFjbWx6ZEdsdVpUb2dhWE5RY21semRHbHVaVnh1SUNBZ0lDQWdmU2s3WEc0Z0lDQWdmUzVpYVc1a0tIUm9hWE1wS1R0Y2JpQWdmU3hjYmx4dUlDQXZMeUJWYzJVZ2RHaGxJR0pwYm1SbFpDQjJZV3gxWlhNZ1lXNWtJSFJvWlNCaFkzUjFZV3dnYVc1d2RYUWdkbUZzZFdVZ2RHOWNiaUFnTHk4Z2RtRnNhV1JoZEdVZ2RHaGxJR2x1Y0hWMElHRnVaQ0J6WlhRZ2FYUnpJSE4wWVhSbExpQlVhR1Z1SUdOb1pXTnJJSFJvWlZ4dUlDQXZMeUJ6ZEdGMFpTQnZaaUIwYUdVZ1ptOXliU0JwZEhObGJHWmNiaUFnZG1Gc2FXUmhkR1U2SUdaMWJtTjBhVzl1SUNoamIyMXdiMjVsYm5RcElIdGNiaUFnSUNCY2JpQWdJQ0F2THlCVWNtbG5aMlZ5SUc5dVEyaGhibWRsWEc0Z0lDQWdhV1lnS0hSb2FYTXVjM1JoZEdVdVkyRnVRMmhoYm1kbEtTQjdYRzRnSUNBZ0lDQjBhR2x6TG5CeWIzQnpMbTl1UTJoaGJtZGxLSFJvYVhNdVoyVjBRM1Z5Y21WdWRGWmhiSFZsY3lncEtUdGNiaUFnSUNCOVhHNWNiaUFnSUNCMllYSWdhWE5XWVd4cFpDQTlJSFJ5ZFdVN1hHNGdJQ0FnYVdZZ0tHTnZiWEJ2Ym1WdWRDNTJZV3hwWkdGMFpTQW1KaUIwZVhCbGIyWWdZMjl0Y0c5dVpXNTBMblpoYkdsa1lYUmxJRDA5UFNBblpuVnVZM1JwYjI0bktTQjdYRzRnSUNBZ0lDQnBjMVpoYkdsa0lEMGdZMjl0Y0c5dVpXNTBMblpoYkdsa1lYUmxLQ2s3WEc0Z0lDQWdmU0JsYkhObElHbG1JQ2hqYjIxd2IyNWxiblF1Y0hKdmNITXVjbVZ4ZFdseVpXUWdmSHdnWTI5dGNHOXVaVzUwTGw5MllXeHBaR0YwYVc5dWN5a2dlMXh1SUNBZ0lDQWdhWE5XWVd4cFpDQTlJSFJvYVhNdWNuVnVWbUZzYVdSaGRHbHZiaWhqYjIxd2IyNWxiblFwTzF4dUlDQWdJSDFjYmx4dUlDQWdJQzh2SUZKMWJpQjBhSEp2ZFdkb0lIUm9aU0IyWVd4cFpHRjBhVzl1Y3l3Z2MzQnNhWFFnZEdobGJTQjFjQ0JoYm1RZ1kyRnNiRnh1SUNBZ0lDOHZJSFJvWlNCMllXeHBaR0YwYjNJZ1NVWWdkR2hsY21VZ2FYTWdZU0IyWVd4MVpTQnZjaUJwZENCcGN5QnlaWEYxYVhKbFpGeHVJQ0FnSUdOdmJYQnZibVZ1ZEM1elpYUlRkR0YwWlNoN1hHNGdJQ0FnSUNCZmFYTldZV3hwWkRvZ2FYTldZV3hwWkN4Y2JpQWdJQ0FnSUY5elpYSjJaWEpGY25KdmNqb2diblZzYkZ4dUlDQWdJSDBzSUhSb2FYTXVkbUZzYVdSaGRHVkdiM0p0S1R0Y2JseHVJQ0I5TEZ4dVhHNGdJQzh2SUVOb1pXTnJjeUIyWVd4cFpHRjBhVzl1SUc5dUlHTjFjbkpsYm5RZ2RtRnNkV1VnYjNJZ1lTQndZWE56WldRZ2RtRnNkV1ZjYmlBZ2NuVnVWbUZzYVdSaGRHbHZiam9nWm5WdVkzUnBiMjRnS0dOdmJYQnZibVZ1ZEN3Z2RtRnNkV1VwSUh0Y2JseHVJQ0FnSUhaaGNpQnBjMVpoYkdsa0lEMGdkSEoxWlR0Y2JpQWdJQ0IyWVd4MVpTQTlJR0Z5WjNWdFpXNTBjeTVzWlc1bmRHZ2dQVDA5SURJZ1B5QjJZV3gxWlNBNklHTnZiWEJ2Ym1WdWRDNXpkR0YwWlM1ZmRtRnNkV1U3WEc0Z0lDQWdhV1lnS0dOdmJYQnZibVZ1ZEM1ZmRtRnNhV1JoZEdsdmJuTXViR1Z1WjNSb0tTQjdYRzRnSUNBZ0lDQmpiMjF3YjI1bGJuUXVYM1poYkdsa1lYUnBiMjV6TG5Od2JHbDBLQzljWEN3b1B5RmJYbnRjWEZ0ZEtsdDlYRnhkWFNrdlp5a3VabTl5UldGamFDaG1kVzVqZEdsdmJpQW9kbUZzYVdSaGRHbHZiaWtnZTF4dUlDQWdJQ0FnSUNCMllYSWdZWEpuY3lBOUlIWmhiR2xrWVhScGIyNHVjM0JzYVhRb0p6b25LVHRjYmlBZ0lDQWdJQ0FnZG1GeUlIWmhiR2xrWVhSbFRXVjBhRzlrSUQwZ1lYSm5jeTV6YUdsbWRDZ3BPMXh1SUNBZ0lDQWdJQ0JoY21keklEMGdZWEpuY3k1dFlYQW9ablZ1WTNScGIyNGdLR0Z5WnlrZ2UxeHVJQ0FnSUNBZ0lDQWdJSFJ5ZVNCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdTbE5QVGk1d1lYSnpaU2hoY21jcE8xeHVJQ0FnSUNBZ0lDQWdJSDBnWTJGMFkyZ2dLR1VwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQmhjbWM3SUM4dklFbDBJR2x6SUdFZ2MzUnlhVzVuSUdsbUlHbDBJR05oYmlCdWIzUWdjR0Z5YzJVZ2FYUmNiaUFnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUgwcE8xeHVJQ0FnSUNBZ0lDQmhjbWR6SUQwZ1czWmhiSFZsWFM1amIyNWpZWFFvWVhKbmN5azdYRzRnSUNBZ0lDQWdJR2xtSUNnaGRtRnNhV1JoZEdsdmJsSjFiR1Z6VzNaaGJHbGtZWFJsVFdWMGFHOWtYU2tnZTF4dUlDQWdJQ0FnSUNBZ0lIUm9jbTkzSUc1bGR5QkZjbkp2Y2lnblJtOXliWE41SUdSdlpYTWdibTkwSUdoaGRtVWdkR2hsSUhaaGJHbGtZWFJwYjI0Z2NuVnNaVG9nSnlBcklIWmhiR2xrWVhSbFRXVjBhRzlrS1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQnBaaUFvSVhaaGJHbGtZWFJwYjI1U2RXeGxjMXQyWVd4cFpHRjBaVTFsZEdodlpGMHVZWEJ3Ykhrb2RHaHBjeTVuWlhSRGRYSnlaVzUwVm1Gc2RXVnpLQ2tzSUdGeVozTXBLU0I3WEc0Z0lDQWdJQ0FnSUNBZ2FYTldZV3hwWkNBOUlHWmhiSE5sTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNCOUxtSnBibVFvZEdocGN5a3BPMXh1SUNBZ0lIMWNiaUFnSUNCcFppQW9kSGx3Wlc5bUlHTnZiWEJ2Ym1WdWRDNTJZV3hwWkdGMFpTQTlQVDBnWENKbWRXNWpkR2x2Ymx3aUtTQjdYRzRnSUNBZ0lDQXZMeUIwYUdVZ1kyOXRjRzl1Wlc1MElHUmxabWx1WlhNZ1lXNGdaWGh3YkdsamFYUWdkbUZzYVdSaGRHVWdablZ1WTNScGIyNWNiaUFnSUNBZ0lHbHpWbUZzYVdRZ1BTQmpiMjF3YjI1bGJuUXVkbUZzYVdSaGRHVW9LVnh1SUNBZ0lIMWNiaUFnSUNCeVpYUjFjbTRnYVhOV1lXeHBaRHRjYmlBZ2ZTeGNibHh1SUNBdkx5QldZV3hwWkdGMFpTQjBhR1VnWm05eWJTQmllU0JuYjJsdVp5QjBhSEp2ZFdkb0lHRnNiQ0JqYUdsc1pDQnBibkIxZENCamIyMXdiMjVsYm5SelhHNGdJQzh2SUdGdVpDQmphR1ZqYXlCMGFHVnBjaUJ6ZEdGMFpWeHVJQ0IyWVd4cFpHRjBaVVp2Y20wNklHWjFibU4wYVc5dUlDZ3BJSHRjYmlBZ0lDQjJZWElnWVd4c1NYTldZV3hwWkNBOUlIUnlkV1U3WEc0Z0lDQWdkbUZ5SUdsdWNIVjBjeUE5SUhSb2FYTXVhVzV3ZFhSek8xeHVJQ0FnSUhaaGNpQnBibkIxZEV0bGVYTWdQU0JQWW1wbFkzUXVhMlY1Y3locGJuQjFkSE1wTzF4dVhHNGdJQ0FnTHk4Z1YyVWdibVZsWkNCaElHTmhiR3hpWVdOcklHRnpJSGRsSUdGeVpTQjJZV3hwWkdGMGFXNW5JR0ZzYkNCcGJuQjFkSE1nWVdkaGFXNHVJRlJvYVhNZ2QybHNiRnh1SUNBZ0lDOHZJSEoxYmlCM2FHVnVJSFJvWlNCc1lYTjBJR052YlhCdmJtVnVkQ0JvWVhNZ2MyVjBJR2wwY3lCemRHRjBaVnh1SUNBZ0lIWmhjaUJ2YmxaaGJHbGtZWFJwYjI1RGIyMXdiR1YwWlNBOUlHWjFibU4wYVc5dUlDZ3BJSHRjYmlBZ0lDQWdJR2x1Y0hWMFMyVjVjeTVtYjNKRllXTm9LR1oxYm1OMGFXOXVJQ2h1WVcxbEtTQjdYRzRnSUNBZ0lDQWdJR2xtSUNnaGFXNXdkWFJ6VzI1aGJXVmRMbk4wWVhSbExsOXBjMVpoYkdsa0tTQjdYRzRnSUNBZ0lDQWdJQ0FnWVd4c1NYTldZV3hwWkNBOUlHWmhiSE5sTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNCOUxtSnBibVFvZEdocGN5a3BPMXh1WEc0Z0lDQWdJQ0IwYUdsekxuTmxkRk4wWVhSbEtIdGNiaUFnSUNBZ0lDQWdhWE5XWVd4cFpEb2dZV3hzU1hOV1lXeHBaRnh1SUNBZ0lDQWdmU2s3WEc1Y2JpQWdJQ0FnSUdsbUlDaGhiR3hKYzFaaGJHbGtLU0I3WEc0Z0lDQWdJQ0FnSUhSb2FYTXVjSEp2Y0hNdWIyNVdZV3hwWkNncE8xeHVJQ0FnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTV3Y205d2N5NXZia2x1ZG1Gc2FXUW9LVHRjYmlBZ0lDQWdJSDFjYmx4dUlDQWdJQ0FnTHk4Z1ZHVnNiQ0IwYUdVZ1ptOXliU0IwYUdGMElHbDBJR05oYmlCemRHRnlkQ0IwYnlCMGNtbG5aMlZ5SUdOb1lXNW5aU0JsZG1WdWRITmNiaUFnSUNBZ0lIUm9hWE11YzJWMFUzUmhkR1VvZTF4dUlDQWdJQ0FnSUNCallXNURhR0Z1WjJVNklIUnlkV1ZjYmlBZ0lDQWdJSDBwTzF4dVhHNGdJQ0FnZlM1aWFXNWtLSFJvYVhNcE8xeHVYRzRnSUNBZ0x5OGdVblZ1SUhaaGJHbGtZWFJwYjI0Z1lXZGhhVzRnYVc0Z1kyRnpaU0JoWm1abFkzUmxaQ0JpZVNCdmRHaGxjaUJwYm5CMWRITXVJRlJvWlZ4dUlDQWdJQzh2SUd4aGMzUWdZMjl0Y0c5dVpXNTBJSFpoYkdsa1lYUmxaQ0IzYVd4c0lISjFiaUIwYUdVZ2IyNVdZV3hwWkdGMGFXOXVRMjl0Y0d4bGRHVWdZMkZzYkdKaFkydGNiaUFnSUNCcGJuQjFkRXRsZVhNdVptOXlSV0ZqYUNobWRXNWpkR2x2YmlBb2JtRnRaU3dnYVc1a1pYZ3BJSHRjYmlBZ0lDQWdJSFpoY2lCamIyMXdiMjVsYm5RZ1BTQnBibkIxZEhOYmJtRnRaVjA3WEc0Z0lDQWdJQ0IyWVhJZ2FYTldZV3hwWkNBOUlIUm9hWE11Y25WdVZtRnNhV1JoZEdsdmJpaGpiMjF3YjI1bGJuUXBPMXh1SUNBZ0lDQWdZMjl0Y0c5dVpXNTBMbk5sZEZOMFlYUmxLSHRjYmlBZ0lDQWdJQ0FnWDJselZtRnNhV1E2SUdselZtRnNhV1FzWEc0Z0lDQWdJQ0FnSUY5elpYSjJaWEpGY25KdmNqb2diblZzYkZ4dUlDQWdJQ0FnZlN3Z2FXNWtaWGdnUFQwOUlHbHVjSFYwUzJWNWN5NXNaVzVuZEdnZ0xTQXhJRDhnYjI1V1lXeHBaR0YwYVc5dVEyOXRjR3hsZEdVZ09pQnVkV3hzS1R0Y2JpQWdJQ0I5TG1KcGJtUW9kR2hwY3lrcE8xeHVYRzRnSUNBZ0x5OGdTV1lnZEdobGNtVWdZWEpsSUc1dklHbHVjSFYwY3l3Z2MyVjBJSE4wWVhSbElIZG9aWEpsSUdadmNtMGdhWE1nY21WaFpIa2dkRzhnZEhKcFoyZGxjbHh1SUNBZ0lDOHZJR05vWVc1blpTQmxkbVZ1ZEM0Z1RtVjNJR2x1Y0hWMGN5QnRhV2RvZENCaVpTQmhaR1JsWkNCc1lYUmxjbHh1SUNBZ0lHbG1JQ2doYVc1d2RYUkxaWGx6TG14bGJtZDBhQ0FtSmlCMGFHbHpMbWx6VFc5MWJuUmxaQ2dwS1NCN1hHNGdJQ0FnSUNCMGFHbHpMbk5sZEZOMFlYUmxLSHRjYmlBZ0lDQWdJQ0FnWTJGdVEyaGhibWRsT2lCMGNuVmxYRzRnSUNBZ0lDQjlLVHRjYmlBZ0lDQjlYRzRnSUgwc1hHNWNiaUFnTHk4Z1RXVjBhRzlrSUhCMWRDQnZiaUJsWVdOb0lHbHVjSFYwSUdOdmJYQnZibVZ1ZENCMGJ5QnlaV2RwYzNSbGNseHVJQ0F2THlCcGRITmxiR1lnZEc4Z2RHaGxJR1p2Y20xY2JpQWdZWFIwWVdOb1ZHOUdiM0p0T2lCbWRXNWpkR2x2YmlBb1kyOXRjRzl1Wlc1MEtTQjdYRzRnSUNBZ2RHaHBjeTVwYm5CMWRITmJZMjl0Y0c5dVpXNTBMbkJ5YjNCekxtNWhiV1ZkSUQwZ1kyOXRjRzl1Wlc1ME8xeHVJQ0FnSUhSb2FYTXViVzlrWld4YlkyOXRjRzl1Wlc1MExuQnliM0J6TG01aGJXVmRJRDBnWTI5dGNHOXVaVzUwTG5OMFlYUmxMbDkyWVd4MVpUdGNiaUFnSUNCMGFHbHpMblpoYkdsa1lYUmxLR052YlhCdmJtVnVkQ2s3WEc0Z0lIMHNYRzVjYmlBZ0x5OGdUV1YwYUc5a0lIQjFkQ0J2YmlCbFlXTm9JR2x1Y0hWMElHTnZiWEJ2Ym1WdWRDQjBieUIxYm5KbFoybHpkR1Z5WEc0Z0lDOHZJR2wwYzJWc1ppQm1jbTl0SUhSb1pTQm1iM0p0WEc0Z0lHUmxkR0ZqYUVaeWIyMUdiM0p0T2lCbWRXNWpkR2x2YmlBb1kyOXRjRzl1Wlc1MEtTQjdYRzRnSUNBZ1pHVnNaWFJsSUhSb2FYTXVhVzV3ZFhSelcyTnZiWEJ2Ym1WdWRDNXdjbTl3Y3k1dVlXMWxYVHRjYmlBZ0lDQmtaV3hsZEdVZ2RHaHBjeTV0YjJSbGJGdGpiMjF3YjI1bGJuUXVjSEp2Y0hNdWJtRnRaVjA3WEc0Z0lIMHNYRzRnSUhKbGJtUmxjam9nWm5WdVkzUnBiMjRnS0NrZ2UxeHVYRzRnSUNBZ2NtVjBkWEp1SUZKbFlXTjBMa1JQVFM1bWIzSnRLSHRjYmlBZ0lDQWdJQ0FnYjI1VGRXSnRhWFE2SUhSb2FYTXVjM1ZpYldsMExGeHVJQ0FnSUNBZ0lDQmpiR0Z6YzA1aGJXVTZJSFJvYVhNdWNISnZjSE11WTJ4aGMzTk9ZVzFsWEc0Z0lDQWdJQ0I5TEZ4dUlDQWdJQ0FnZEdocGN5NXdjbTl3Y3k1amFHbHNaSEpsYmx4dUlDQWdJQ2s3WEc1Y2JpQWdmVnh1ZlNrN1hHNWNibWxtSUNnaFoyeHZZbUZzTG1WNGNHOXlkSE1nSmlZZ0lXZHNiMkpoYkM1dGIyUjFiR1VnSmlZZ0tDRm5iRzlpWVd3dVpHVm1hVzVsSUh4OElDRm5iRzlpWVd3dVpHVm1hVzVsTG1GdFpDa3BJSHRjYmlBZ1oyeHZZbUZzTGtadmNtMXplU0E5SUVadmNtMXplVHRjYm4xY2JseHViVzlrZFd4bExtVjRjRzl5ZEhNZ1BTQkdiM0p0YzNrN1hHNGlYWDA9IiwibW9kdWxlLmV4cG9ydHMgPSB7XG4gIGdldEluaXRpYWxTdGF0ZTogZnVuY3Rpb24gKCkge1xuICAgIHZhciB2YWx1ZSA9ICd2YWx1ZScgaW4gdGhpcy5wcm9wcyA/IHRoaXMucHJvcHMudmFsdWUgOiAnJztcbiAgICByZXR1cm4ge1xuICAgICAgX3ZhbHVlOiB2YWx1ZSxcbiAgICAgIF9pc1ZhbGlkOiB0cnVlLFxuICAgICAgX2lzUHJpc3RpbmU6IHRydWUsXG4gICAgICBfcHJpc3RpbmVWYWx1ZTogdmFsdWVcbiAgICB9O1xuICB9LFxuICBjb21wb25lbnRXaWxsTW91bnQ6IGZ1bmN0aW9uICgpIHtcblxuICAgIHZhciBjb25maWd1cmUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICB0aGlzLnNldFZhbGlkYXRpb25zKHRoaXMucHJvcHMudmFsaWRhdGlvbnMsIHRoaXMucHJvcHMucmVxdWlyZWQpO1xuICAgICAgdGhpcy5wcm9wcy5fYXR0YWNoVG9Gb3JtKHRoaXMpO1xuICAgIH0uYmluZCh0aGlzKTtcblxuICAgIGlmICghdGhpcy5wcm9wcy5uYW1lKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Zvcm0gSW5wdXQgcmVxdWlyZXMgYSBuYW1lIHByb3BlcnR5IHdoZW4gdXNlZCcpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5wcm9wcy5fYXR0YWNoVG9Gb3JtKSB7XG4gICAgICByZXR1cm4gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmICghdGhpcy5pc01vdW50ZWQoKSkgcmV0dXJuO1xuICAgICAgICBpZiAoIXRoaXMucHJvcHMuX2F0dGFjaFRvRm9ybSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignRm9ybSBNaXhpbiByZXF1aXJlcyBjb21wb25lbnQgdG8gYmUgbmVzdGVkIGluIGEgRm9ybScpO1xuICAgICAgICB9XG4gICAgICAgIGNvbmZpZ3VyZSgpO1xuICAgICAgfS5iaW5kKHRoaXMpLCAwKTtcbiAgICB9XG4gICAgY29uZmlndXJlKCk7XG5cbiAgfSxcblxuICAvLyBXZSBoYXZlIHRvIG1ha2UgdGhlIHZhbGlkYXRlIG1ldGhvZCBpcyBrZXB0IHdoZW4gbmV3IHByb3BzIGFyZSBhZGRlZFxuICBjb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzOiBmdW5jdGlvbiAobmV4dFByb3BzKSB7XG4gICAgbmV4dFByb3BzLl9hdHRhY2hUb0Zvcm0gPSB0aGlzLnByb3BzLl9hdHRhY2hUb0Zvcm07XG4gICAgbmV4dFByb3BzLl9kZXRhY2hGcm9tRm9ybSA9IHRoaXMucHJvcHMuX2RldGFjaEZyb21Gb3JtO1xuICAgIG5leHRQcm9wcy5fdmFsaWRhdGUgPSB0aGlzLnByb3BzLl92YWxpZGF0ZTtcbiAgICBuZXh0UHJvcHMuX2lzVmFsaWRWYWx1ZSA9IHRoaXMucHJvcHMuX2lzVmFsaWRWYWx1ZTtcbiAgICBuZXh0UHJvcHMuX2lzRm9ybURpc2FibGVkID0gdGhpcy5wcm9wcy5faXNGb3JtRGlzYWJsZWQ7XG4gICAgdGhpcy5zZXRWYWxpZGF0aW9ucyhuZXh0UHJvcHMudmFsaWRhdGlvbnMsIG5leHRQcm9wcy5yZXF1aXJlZCk7XG4gIH0sXG5cbiAgY29tcG9uZW50RGlkVXBkYXRlOiBmdW5jdGlvbiAocHJldlByb3BzLCBwcmV2U3RhdGUpIHtcblxuICAgIHZhciBpc1ZhbHVlQ2hhbmdlZCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIFxuICAgICAgcmV0dXJuIChcbiAgICAgICAgdGhpcy5wcm9wcy52YWx1ZSAhPT0gcHJldlByb3BzLnZhbHVlICYmIChcbiAgICAgICAgICB0aGlzLnN0YXRlLl92YWx1ZSA9PT0gcHJldlByb3BzLnZhbHVlIHx8XG5cbiAgICAgICAgICAvLyBTaW5jZSB1bmRlZmluZWQgaXMgY29udmVydGVkIHRvIGVtcHR5IHN0cmluZyB3ZSBoYXZlIHRvXG4gICAgICAgICAgLy8gY2hlY2sgdGhhdCBzcGVjaWZpY2FsbHlcbiAgICAgICAgICAodGhpcy5zdGF0ZS5fdmFsdWUgPT09ICcnICYmIHByZXZQcm9wcy52YWx1ZSA9PT0gdW5kZWZpbmVkKVxuICAgICAgICApXG4gICAgICApO1xuXG4gICAgfS5iaW5kKHRoaXMpO1xuXG5cbiAgICAvLyBJZiB2YWxpZGF0aW9ucyBoYXMgY2hhbmdlZCBvciBzb21ldGhpbmcgb3V0c2lkZSBjaGFuZ2VzIFxuICAgIC8vIHRoZSB2YWx1ZSwgc2V0IHRoZSB2YWx1ZSBhZ2FpbiBydW5uaW5nIGEgdmFsaWRhdGlvblxuXG4gICAgaWYgKHByZXZQcm9wcy52YWxpZGF0aW9ucyAhPT0gdGhpcy5wcm9wcy52YWxpZGF0aW9ucyB8fCBpc1ZhbHVlQ2hhbmdlZCgpKSB7XG4gICAgICB2YXIgdmFsdWUgPSAndmFsdWUnIGluIHRoaXMucHJvcHMgPyB0aGlzLnByb3BzLnZhbHVlIDogJyc7XG4gICAgICB0aGlzLnNldFZhbHVlKHZhbHVlKTtcbiAgICB9XG4gIH0sXG5cbiAgLy8gRGV0YWNoIGl0IHdoZW4gY29tcG9uZW50IHVubW91bnRzXG4gIGNvbXBvbmVudFdpbGxVbm1vdW50OiBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy5wcm9wcy5fZGV0YWNoRnJvbUZvcm0odGhpcyk7XG4gIH0sXG5cbiAgc2V0VmFsaWRhdGlvbnM6IGZ1bmN0aW9uICh2YWxpZGF0aW9ucywgcmVxdWlyZWQpIHtcblxuICAgIC8vIEFkZCB2YWxpZGF0aW9ucyB0byB0aGUgc3RvcmUgaXRzZWxmIGFzIHRoZSBwcm9wcyBvYmplY3QgY2FuIG5vdCBiZSBtb2RpZmllZFxuICAgIHRoaXMuX3ZhbGlkYXRpb25zID0gdmFsaWRhdGlvbnMgfHwgJyc7XG5cbiAgICBpZiAocmVxdWlyZWQpIHtcbiAgICAgIHRoaXMuX3ZhbGlkYXRpb25zID0gdmFsaWRhdGlvbnMgPyB2YWxpZGF0aW9ucyArICcsJyA6ICcnO1xuICAgICAgdGhpcy5fdmFsaWRhdGlvbnMgKz0gJ2lzVmFsdWUnO1xuICAgIH1cblxuICB9LFxuXG4gIC8vIFdlIHZhbGlkYXRlIGFmdGVyIHRoZSB2YWx1ZSBoYXMgYmVlbiBzZXRcbiAgc2V0VmFsdWU6IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgX3ZhbHVlOiB2YWx1ZSxcbiAgICAgIF9pc1ByaXN0aW5lOiBmYWxzZVxuICAgIH0sIGZ1bmN0aW9uICgpIHtcbiAgICAgIHRoaXMucHJvcHMuX3ZhbGlkYXRlKHRoaXMpO1xuICAgIH0uYmluZCh0aGlzKSk7XG4gIH0sXG4gIHJlc2V0VmFsdWU6IGZ1bmN0aW9uICgpIHtcbiAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgIF92YWx1ZTogdGhpcy5zdGF0ZS5fcHJpc3RpbmVWYWx1ZSxcbiAgICAgIF9pc1ByaXN0aW5lOiB0cnVlXG4gICAgfSwgZnVuY3Rpb24gKCkge1xuICAgICAgdGhpcy5wcm9wcy5fdmFsaWRhdGUodGhpcyk7XG4gICAgfSk7XG4gIH0sXG4gIGdldFZhbHVlOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGUuX3ZhbHVlO1xuICB9LFxuICBoYXNWYWx1ZTogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzLnN0YXRlLl92YWx1ZSAhPT0gJyc7XG4gIH0sXG4gIGdldEVycm9yTWVzc2FnZTogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQoKSB8fCB0aGlzLnNob3dSZXF1aXJlZCgpID8gbnVsbCA6IHRoaXMuc3RhdGUuX3NlcnZlckVycm9yIHx8IHRoaXMucHJvcHMudmFsaWRhdGlvbkVycm9yO1xuICB9LFxuICBpc0Zvcm1EaXNhYmxlZDogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzLnByb3BzLl9pc0Zvcm1EaXNhYmxlZCgpO1xuICB9LFxuICBpc1ZhbGlkOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGUuX2lzVmFsaWQ7XG4gIH0sXG4gIGlzUHJpc3RpbmU6IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZS5faXNQcmlzdGluZTtcbiAgfSxcbiAgaXNSZXF1aXJlZDogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiAhIXRoaXMucHJvcHMucmVxdWlyZWQ7XG4gIH0sXG4gIHNob3dSZXF1aXJlZDogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzLmlzUmVxdWlyZWQoKSAmJiB0aGlzLnN0YXRlLl92YWx1ZSA9PT0gJyc7XG4gIH0sXG4gIHNob3dFcnJvcjogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiAhdGhpcy5zaG93UmVxdWlyZWQoKSAmJiAhdGhpcy5zdGF0ZS5faXNWYWxpZDtcbiAgfSxcbiAgaXNWYWxpZFZhbHVlOiBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5faXNWYWxpZFZhbHVlLmNhbGwobnVsbCwgdGhpcywgdmFsdWUpO1xuICB9XG59O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMMVZ6WlhKekwyTm9jbWx6ZEdsaGJtRnNabTl1YVM5RWIyTjFiV1Z1ZEhNdlpHVjJMMlp2Y20xemVTMXlaV0ZqZEM5emNtTXZUV2w0YVc0dWFuTWlMQ0p6YjNWeVkyVnpJanBiSWk5VmMyVnljeTlqYUhKcGMzUnBZVzVoYkdadmJta3ZSRzlqZFcxbGJuUnpMMlJsZGk5bWIzSnRjM2t0Y21WaFkzUXZjM0pqTDAxcGVHbHVMbXB6SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUpCUVVGQkxFMUJRVTBzUTBGQlF5eFBRVUZQTEVkQlFVYzdSVUZEWml4bFFVRmxMRVZCUVVVc1dVRkJXVHRKUVVNelFpeEpRVUZKTEV0QlFVc3NSMEZCUnl4UFFVRlBMRWxCUVVrc1NVRkJTU3hEUVVGRExFdEJRVXNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRXRCUVVzc1IwRkJSeXhGUVVGRkxFTkJRVU03U1VGRE1VUXNUMEZCVHp0TlFVTk1MRTFCUVUwc1JVRkJSU3hMUVVGTE8wMUJRMklzVVVGQlVTeEZRVUZGTEVsQlFVazdUVUZEWkN4WFFVRlhMRVZCUVVVc1NVRkJTVHROUVVOcVFpeGpRVUZqTEVWQlFVVXNTMEZCU3p0TFFVTjBRaXhEUVVGRE8wZEJRMGc3UVVGRFNDeEZRVUZGTEd0Q1FVRnJRaXhGUVVGRkxGbEJRVms3TzBsQlJUbENMRWxCUVVrc1UwRkJVeXhIUVVGSExGbEJRVms3VFVGRE1VSXNTVUZCU1N4RFFVRkRMR05CUVdNc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEZkQlFWY3NSVUZCUlN4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETzAxQlEycEZMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zWVVGQllTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMEZCUTNKRExFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN08wbEJSV0lzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1NVRkJTU3hGUVVGRk8wMUJRM0JDTEUxQlFVMHNTVUZCU1N4TFFVRkxMRU5CUVVNc0swTkJRU3RETEVOQlFVTXNRMEZCUXp0QlFVTjJSU3hMUVVGTE96dEpRVVZFTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExHRkJRV0VzUlVGQlJUdE5RVU0zUWl4UFFVRlBMRlZCUVZVc1EwRkJReXhaUVVGWk8xRkJRelZDTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1UwRkJVeXhGUVVGRkxFVkJRVVVzVDBGQlR6dFJRVU01UWl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eGhRVUZoTEVWQlFVVTdWVUZETjBJc1RVRkJUU3hKUVVGSkxFdEJRVXNzUTBGQlF5eHpSRUZCYzBRc1EwRkJReXhEUVVGRE8xTkJRM3BGTzFGQlEwUXNVMEZCVXl4RlFVRkZMRU5CUVVNN1QwRkRZaXhEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJRenRMUVVOc1FqdEJRVU5NTEVsQlFVa3NVMEZCVXl4RlFVRkZMRU5CUVVNN08wRkJSV2hDTEVkQlFVYzdRVUZEU0RzN1JVRkZSU3g1UWtGQmVVSXNSVUZCUlN4VlFVRlZMRk5CUVZNc1JVRkJSVHRKUVVNNVF5eFRRVUZUTEVOQlFVTXNZVUZCWVN4SFFVRkhMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zWVVGQllTeERRVUZETzBsQlEyNUVMRk5CUVZNc1EwRkJReXhsUVVGbExFZEJRVWNzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4bFFVRmxMRU5CUVVNN1NVRkRka1FzVTBGQlV5eERRVUZETEZOQlFWTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExGTkJRVk1zUTBGQlF6dEpRVU16UXl4VFFVRlRMRU5CUVVNc1lVRkJZU3hIUVVGSExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNZVUZCWVN4RFFVRkRPMGxCUTI1RUxGTkJRVk1zUTBGQlF5eGxRVUZsTEVkQlFVY3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhsUVVGbExFTkJRVU03U1VGRGRrUXNTVUZCU1N4RFFVRkRMR05CUVdNc1EwRkJReXhUUVVGVExFTkJRVU1zVjBGQlZ5eEZRVUZGTEZOQlFWTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJRenRCUVVOdVJTeEhRVUZIT3p0QlFVVklMRVZCUVVVc2EwSkJRV3RDTEVWQlFVVXNWVUZCVlN4VFFVRlRMRVZCUVVVc1UwRkJVeXhGUVVGRk96dEJRVVYwUkN4SlFVRkpMRWxCUVVrc1kwRkJZeXhIUVVGSExGbEJRVms3TzAxQlJTOUNPMUZCUTBVc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eExRVUZMTEV0QlFVc3NVMEZCVXl4RFFVRkRMRXRCUVVzN1FVRkROVU1zVlVGQlZTeEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRTFCUVUwc1MwRkJTeXhUUVVGVExFTkJRVU1zUzBGQlN6dEJRVU12UXp0QlFVTkJPenRYUVVWWExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNUVUZCVFN4TFFVRkxMRVZCUVVVc1NVRkJTU3hUUVVGVExFTkJRVU1zUzBGQlN5eExRVUZMTEZOQlFWTXNRMEZCUXp0VFFVTTFSRHRCUVVOVUxGRkJRVkU3TzBGQlJWSXNTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dEJRVU5xUWp0QlFVTkJPMEZCUTBFN1FVRkRRVHM3U1VGRlNTeEpRVUZKTEZOQlFWTXNRMEZCUXl4WFFVRlhMRXRCUVVzc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eFhRVUZYTEVsQlFVa3NZMEZCWXl4RlFVRkZMRVZCUVVVN1RVRkRlRVVzU1VGQlNTeExRVUZMTEVkQlFVY3NUMEZCVHl4SlFVRkpMRWxCUVVrc1EwRkJReXhMUVVGTExFZEJRVWNzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4TFFVRkxMRWRCUVVjc1JVRkJSU3hEUVVGRE8wMUJRekZFTEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03UzBGRGRFSTdRVUZEVEN4SFFVRkhPMEZCUTBnN08wVkJSVVVzYjBKQlFXOUNMRVZCUVVVc1dVRkJXVHRKUVVOb1F5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMR1ZCUVdVc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dEJRVU55UXl4SFFVRkhPenRCUVVWSUxFVkJRVVVzWTBGQll5eEZRVUZGTEZWQlFWVXNWMEZCVnl4RlFVRkZMRkZCUVZFc1JVRkJSVHRCUVVOdVJEczdRVUZGUVN4SlFVRkpMRWxCUVVrc1EwRkJReXhaUVVGWkxFZEJRVWNzVjBGQlZ5eEpRVUZKTEVWQlFVVXNRMEZCUXpzN1NVRkZkRU1zU1VGQlNTeFJRVUZSTEVWQlFVVTdUVUZEV2l4SlFVRkpMRU5CUVVNc1dVRkJXU3hIUVVGSExGZEJRVmNzUjBGQlJ5eFhRVUZYTEVkQlFVY3NSMEZCUnl4SFFVRkhMRVZCUVVVc1EwRkJRenROUVVONlJDeEpRVUZKTEVOQlFVTXNXVUZCV1N4SlFVRkpMRk5CUVZNc1EwRkJRenRCUVVOeVF5eExRVUZMT3p0QlFVVk1MRWRCUVVjN1FVRkRTRHM3UlVGRlJTeFJRVUZSTEVWQlFVVXNWVUZCVlN4TFFVRkxMRVZCUVVVN1NVRkRla0lzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXp0TlFVTmFMRTFCUVUwc1JVRkJSU3hMUVVGTE8wMUJRMklzVjBGQlZ5eEZRVUZGTEV0QlFVczdTMEZEYmtJc1JVRkJSU3haUVVGWk8wMUJRMklzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4VFFVRlRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03UzBGRE5VSXNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF6dEhRVU5tTzBWQlEwUXNWVUZCVlN4RlFVRkZMRmxCUVZrN1NVRkRkRUlzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXp0TlFVTmFMRTFCUVUwc1JVRkJSU3hKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEdOQlFXTTdUVUZEYWtNc1YwRkJWeXhGUVVGRkxFbEJRVWs3UzBGRGJFSXNSVUZCUlN4WlFVRlpPMDFCUTJJc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eFRRVUZUTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1MwRkROVUlzUTBGQlF5eERRVUZETzBkQlEwbzdSVUZEUkN4UlFVRlJMRVZCUVVVc1dVRkJXVHRKUVVOd1FpeFBRVUZQTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1RVRkJUU3hEUVVGRE8wZEJRekZDTzBWQlEwUXNVVUZCVVN4RlFVRkZMRmxCUVZrN1NVRkRjRUlzVDBGQlR5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRTFCUVUwc1MwRkJTeXhGUVVGRkxFTkJRVU03UjBGRGFrTTdSVUZEUkN4bFFVRmxMRVZCUVVVc1dVRkJXVHRKUVVNelFpeFBRVUZQTEVsQlFVa3NRMEZCUXl4UFFVRlBMRVZCUVVVc1NVRkJTU3hKUVVGSkxFTkJRVU1zV1VGQldTeEZRVUZGTEVkQlFVY3NTVUZCU1N4SFFVRkhMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zV1VGQldTeEpRVUZKTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1pVRkJaU3hEUVVGRE8wZEJRemRITzBWQlEwUXNZMEZCWXl4RlFVRkZMRmxCUVZrN1NVRkRNVUlzVDBGQlR5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMR1ZCUVdVc1JVRkJSU3hEUVVGRE8wZEJRM0pETzBWQlEwUXNUMEZCVHl4RlFVRkZMRmxCUVZrN1NVRkRia0lzVDBGQlR5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRkZCUVZFc1EwRkJRenRIUVVNMVFqdEZRVU5FTEZWQlFWVXNSVUZCUlN4WlFVRlpPMGxCUTNSQ0xFOUJRVThzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4WFFVRlhMRU5CUVVNN1IwRkRMMEk3UlVGRFJDeFZRVUZWTEVWQlFVVXNXVUZCV1R0SlFVTjBRaXhQUVVGUExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRkZCUVZFc1EwRkJRenRIUVVNNVFqdEZRVU5FTEZsQlFWa3NSVUZCUlN4WlFVRlpPMGxCUTNoQ0xFOUJRVThzU1VGQlNTeERRVUZETEZWQlFWVXNSVUZCUlN4SlFVRkpMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVFVGQlRTeExRVUZMTEVWQlFVVXNRMEZCUXp0SFFVTjBSRHRGUVVORUxGTkJRVk1zUlVGQlJTeFpRVUZaTzBsQlEzSkNMRTlCUVU4c1EwRkJReXhKUVVGSkxFTkJRVU1zV1VGQldTeEZRVUZGTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExGRkJRVkVzUTBGQlF6dEhRVU55UkR0RlFVTkVMRmxCUVZrc1JVRkJSU3hWUVVGVkxFdEJRVXNzUlVGQlJUdEpRVU0zUWl4UFFVRlBMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zWVVGQllTeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRVZCUVVVc1NVRkJTU3hGUVVGRkxFdEJRVXNzUTBGQlF5eERRVUZETzBkQlEzcEVPME5CUTBZc1EwRkJReUlzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW0xdlpIVnNaUzVsZUhCdmNuUnpJRDBnZTF4dUlDQm5aWFJKYm1sMGFXRnNVM1JoZEdVNklHWjFibU4wYVc5dUlDZ3BJSHRjYmlBZ0lDQjJZWElnZG1Gc2RXVWdQU0FuZG1Gc2RXVW5JR2x1SUhSb2FYTXVjSEp2Y0hNZ1B5QjBhR2x6TG5CeWIzQnpMblpoYkhWbElEb2dKeWM3WEc0Z0lDQWdjbVYwZFhKdUlIdGNiaUFnSUNBZ0lGOTJZV3gxWlRvZ2RtRnNkV1VzWEc0Z0lDQWdJQ0JmYVhOV1lXeHBaRG9nZEhKMVpTeGNiaUFnSUNBZ0lGOXBjMUJ5YVhOMGFXNWxPaUIwY25WbExGeHVJQ0FnSUNBZ1gzQnlhWE4wYVc1bFZtRnNkV1U2SUhaaGJIVmxYRzRnSUNBZ2ZUdGNiaUFnZlN4Y2JpQWdZMjl0Y0c5dVpXNTBWMmxzYkUxdmRXNTBPaUJtZFc1amRHbHZiaUFvS1NCN1hHNWNiaUFnSUNCMllYSWdZMjl1Wm1sbmRYSmxJRDBnWm5WdVkzUnBiMjRnS0NrZ2UxeHVJQ0FnSUNBZ2RHaHBjeTV6WlhSV1lXeHBaR0YwYVc5dWN5aDBhR2x6TG5CeWIzQnpMblpoYkdsa1lYUnBiMjV6TENCMGFHbHpMbkJ5YjNCekxuSmxjWFZwY21Wa0tUdGNiaUFnSUNBZ0lIUm9hWE11Y0hKdmNITXVYMkYwZEdGamFGUnZSbTl5YlNoMGFHbHpLVHRjYmlBZ0lDQjlMbUpwYm1Rb2RHaHBjeWs3WEc1Y2JpQWdJQ0JwWmlBb0lYUm9hWE11Y0hKdmNITXVibUZ0WlNrZ2UxeHVJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFVnljbTl5S0NkR2IzSnRJRWx1Y0hWMElISmxjWFZwY21WeklHRWdibUZ0WlNCd2NtOXdaWEowZVNCM2FHVnVJSFZ6WldRbktUdGNiaUFnSUNCOVhHNWNiaUFnSUNCcFppQW9JWFJvYVhNdWNISnZjSE11WDJGMGRHRmphRlJ2Um05eWJTa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlITmxkRlJwYldWdmRYUW9ablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJQ0FnSUNCcFppQW9JWFJvYVhNdWFYTk5iM1Z1ZEdWa0tDa3BJSEpsZEhWeWJqdGNiaUFnSUNBZ0lDQWdhV1lnS0NGMGFHbHpMbkJ5YjNCekxsOWhkSFJoWTJoVWIwWnZjbTBwSUh0Y2JpQWdJQ0FnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dSWEp5YjNJb0owWnZjbTBnVFdsNGFXNGdjbVZ4ZFdseVpYTWdZMjl0Y0c5dVpXNTBJSFJ2SUdKbElHNWxjM1JsWkNCcGJpQmhJRVp2Y20wbktUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0JqYjI1bWFXZDFjbVVvS1R0Y2JpQWdJQ0FnSUgwdVltbHVaQ2gwYUdsektTd2dNQ2s3WEc0Z0lDQWdmVnh1SUNBZ0lHTnZibVpwWjNWeVpTZ3BPMXh1WEc0Z0lIMHNYRzVjYmlBZ0x5OGdWMlVnYUdGMlpTQjBieUJ0WVd0bElIUm9aU0IyWVd4cFpHRjBaU0J0WlhSb2IyUWdhWE1nYTJWd2RDQjNhR1Z1SUc1bGR5QndjbTl3Y3lCaGNtVWdZV1JrWldSY2JpQWdZMjl0Y0c5dVpXNTBWMmxzYkZKbFkyVnBkbVZRY205d2N6b2dablZ1WTNScGIyNGdLRzVsZUhSUWNtOXdjeWtnZTF4dUlDQWdJRzVsZUhSUWNtOXdjeTVmWVhSMFlXTm9WRzlHYjNKdElEMGdkR2hwY3k1d2NtOXdjeTVmWVhSMFlXTm9WRzlHYjNKdE8xeHVJQ0FnSUc1bGVIUlFjbTl3Y3k1ZlpHVjBZV05vUm5KdmJVWnZjbTBnUFNCMGFHbHpMbkJ5YjNCekxsOWtaWFJoWTJoR2NtOXRSbTl5YlR0Y2JpQWdJQ0J1WlhoMFVISnZjSE11WDNaaGJHbGtZWFJsSUQwZ2RHaHBjeTV3Y205d2N5NWZkbUZzYVdSaGRHVTdYRzRnSUNBZ2JtVjRkRkJ5YjNCekxsOXBjMVpoYkdsa1ZtRnNkV1VnUFNCMGFHbHpMbkJ5YjNCekxsOXBjMVpoYkdsa1ZtRnNkV1U3WEc0Z0lDQWdibVY0ZEZCeWIzQnpMbDlwYzBadmNtMUVhWE5oWW14bFpDQTlJSFJvYVhNdWNISnZjSE11WDJselJtOXliVVJwYzJGaWJHVmtPMXh1SUNBZ0lIUm9hWE11YzJWMFZtRnNhV1JoZEdsdmJuTW9ibVY0ZEZCeWIzQnpMblpoYkdsa1lYUnBiMjV6TENCdVpYaDBVSEp2Y0hNdWNtVnhkV2x5WldRcE8xeHVJQ0I5TEZ4dVhHNGdJR052YlhCdmJtVnVkRVJwWkZWd1pHRjBaVG9nWm5WdVkzUnBiMjRnS0hCeVpYWlFjbTl3Y3l3Z2NISmxkbE4wWVhSbEtTQjdYRzVjYmlBZ0lDQjJZWElnYVhOV1lXeDFaVU5vWVc1blpXUWdQU0JtZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnSUNCY2JpQWdJQ0FnSUhKbGRIVnliaUFvWEc0Z0lDQWdJQ0FnSUhSb2FYTXVjSEp2Y0hNdWRtRnNkV1VnSVQwOUlIQnlaWFpRY205d2N5NTJZV3gxWlNBbUppQW9YRzRnSUNBZ0lDQWdJQ0FnZEdocGN5NXpkR0YwWlM1ZmRtRnNkV1VnUFQwOUlIQnlaWFpRY205d2N5NTJZV3gxWlNCOGZGeHVYRzRnSUNBZ0lDQWdJQ0FnTHk4Z1UybHVZMlVnZFc1a1pXWnBibVZrSUdseklHTnZiblpsY25SbFpDQjBieUJsYlhCMGVTQnpkSEpwYm1jZ2QyVWdhR0YyWlNCMGIxeHVJQ0FnSUNBZ0lDQWdJQzh2SUdOb1pXTnJJSFJvWVhRZ2MzQmxZMmxtYVdOaGJHeDVYRzRnSUNBZ0lDQWdJQ0FnS0hSb2FYTXVjM1JoZEdVdVgzWmhiSFZsSUQwOVBTQW5KeUFtSmlCd2NtVjJVSEp2Y0hNdWRtRnNkV1VnUFQwOUlIVnVaR1ZtYVc1bFpDbGNiaUFnSUNBZ0lDQWdLVnh1SUNBZ0lDQWdLVHRjYmx4dUlDQWdJSDB1WW1sdVpDaDBhR2x6S1R0Y2JseHVYRzRnSUNBZ0x5OGdTV1lnZG1Gc2FXUmhkR2x2Ym5NZ2FHRnpJR05vWVc1blpXUWdiM0lnYzI5dFpYUm9hVzVuSUc5MWRITnBaR1VnWTJoaGJtZGxjeUJjYmlBZ0lDQXZMeUIwYUdVZ2RtRnNkV1VzSUhObGRDQjBhR1VnZG1Gc2RXVWdZV2RoYVc0Z2NuVnVibWx1WnlCaElIWmhiR2xrWVhScGIyNWNibHh1SUNBZ0lHbG1JQ2h3Y21WMlVISnZjSE11ZG1Gc2FXUmhkR2x2Ym5NZ0lUMDlJSFJvYVhNdWNISnZjSE11ZG1Gc2FXUmhkR2x2Ym5NZ2ZId2dhWE5XWVd4MVpVTm9ZVzVuWldRb0tTa2dlMXh1SUNBZ0lDQWdkbUZ5SUhaaGJIVmxJRDBnSjNaaGJIVmxKeUJwYmlCMGFHbHpMbkJ5YjNCeklEOGdkR2hwY3k1d2NtOXdjeTUyWVd4MVpTQTZJQ2NuTzF4dUlDQWdJQ0FnZEdocGN5NXpaWFJXWVd4MVpTaDJZV3gxWlNrN1hHNGdJQ0FnZlZ4dUlDQjlMRnh1WEc0Z0lDOHZJRVJsZEdGamFDQnBkQ0IzYUdWdUlHTnZiWEJ2Ym1WdWRDQjFibTF2ZFc1MGMxeHVJQ0JqYjIxd2IyNWxiblJYYVd4c1ZXNXRiM1Z1ZERvZ1puVnVZM1JwYjI0Z0tDa2dlMXh1SUNBZ0lIUm9hWE11Y0hKdmNITXVYMlJsZEdGamFFWnliMjFHYjNKdEtIUm9hWE1wTzF4dUlDQjlMRnh1WEc0Z0lITmxkRlpoYkdsa1lYUnBiMjV6T2lCbWRXNWpkR2x2YmlBb2RtRnNhV1JoZEdsdmJuTXNJSEpsY1hWcGNtVmtLU0I3WEc1Y2JpQWdJQ0F2THlCQlpHUWdkbUZzYVdSaGRHbHZibk1nZEc4Z2RHaGxJSE4wYjNKbElHbDBjMlZzWmlCaGN5QjBhR1VnY0hKdmNITWdiMkpxWldOMElHTmhiaUJ1YjNRZ1ltVWdiVzlrYVdacFpXUmNiaUFnSUNCMGFHbHpMbDkyWVd4cFpHRjBhVzl1Y3lBOUlIWmhiR2xrWVhScGIyNXpJSHg4SUNjbk8xeHVYRzRnSUNBZ2FXWWdLSEpsY1hWcGNtVmtLU0I3WEc0Z0lDQWdJQ0IwYUdsekxsOTJZV3hwWkdGMGFXOXVjeUE5SUhaaGJHbGtZWFJwYjI1eklEOGdkbUZzYVdSaGRHbHZibk1nS3lBbkxDY2dPaUFuSnp0Y2JpQWdJQ0FnSUhSb2FYTXVYM1poYkdsa1lYUnBiMjV6SUNzOUlDZHBjMVpoYkhWbEp6dGNiaUFnSUNCOVhHNWNiaUFnZlN4Y2JseHVJQ0F2THlCWFpTQjJZV3hwWkdGMFpTQmhablJsY2lCMGFHVWdkbUZzZFdVZ2FHRnpJR0psWlc0Z2MyVjBYRzRnSUhObGRGWmhiSFZsT2lCbWRXNWpkR2x2YmlBb2RtRnNkV1VwSUh0Y2JpQWdJQ0IwYUdsekxuTmxkRk4wWVhSbEtIdGNiaUFnSUNBZ0lGOTJZV3gxWlRvZ2RtRnNkV1VzWEc0Z0lDQWdJQ0JmYVhOUWNtbHpkR2x1WlRvZ1ptRnNjMlZjYmlBZ0lDQjlMQ0JtZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnSUNCMGFHbHpMbkJ5YjNCekxsOTJZV3hwWkdGMFpTaDBhR2x6S1R0Y2JpQWdJQ0I5TG1KcGJtUW9kR2hwY3lrcE8xeHVJQ0I5TEZ4dUlDQnlaWE5sZEZaaGJIVmxPaUJtZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnZEdocGN5NXpaWFJUZEdGMFpTaDdYRzRnSUNBZ0lDQmZkbUZzZFdVNklIUm9hWE11YzNSaGRHVXVYM0J5YVhOMGFXNWxWbUZzZFdVc1hHNGdJQ0FnSUNCZmFYTlFjbWx6ZEdsdVpUb2dkSEoxWlZ4dUlDQWdJSDBzSUdaMWJtTjBhVzl1SUNncElIdGNiaUFnSUNBZ0lIUm9hWE11Y0hKdmNITXVYM1poYkdsa1lYUmxLSFJvYVhNcE8xeHVJQ0FnSUgwcE8xeHVJQ0I5TEZ4dUlDQm5aWFJXWVd4MVpUb2dablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TG5OMFlYUmxMbDkyWVd4MVpUdGNiaUFnZlN4Y2JpQWdhR0Z6Vm1Gc2RXVTZJR1oxYm1OMGFXOXVJQ2dwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdkR2hwY3k1emRHRjBaUzVmZG1Gc2RXVWdJVDA5SUNjbk8xeHVJQ0I5TEZ4dUlDQm5aWFJGY25KdmNrMWxjM05oWjJVNklHWjFibU4wYVc5dUlDZ3BJSHRjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTVwYzFaaGJHbGtLQ2tnZkh3Z2RHaHBjeTV6YUc5M1VtVnhkV2x5WldRb0tTQS9JRzUxYkd3Z09pQjBhR2x6TG5OMFlYUmxMbDl6WlhKMlpYSkZjbkp2Y2lCOGZDQjBhR2x6TG5CeWIzQnpMblpoYkdsa1lYUnBiMjVGY25KdmNqdGNiaUFnZlN4Y2JpQWdhWE5HYjNKdFJHbHpZV0pzWldRNklHWjFibU4wYVc5dUlDZ3BJSHRjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTV3Y205d2N5NWZhWE5HYjNKdFJHbHpZV0pzWldRb0tUdGNiaUFnZlN4Y2JpQWdhWE5XWVd4cFpEb2dablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TG5OMFlYUmxMbDlwYzFaaGJHbGtPMXh1SUNCOUxGeHVJQ0JwYzFCeWFYTjBhVzVsT2lCbWRXNWpkR2x2YmlBb0tTQjdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVjM1JoZEdVdVgybHpVSEpwYzNScGJtVTdYRzRnSUgwc1hHNGdJR2x6VW1WeGRXbHlaV1E2SUdaMWJtTjBhVzl1SUNncElIdGNiaUFnSUNCeVpYUjFjbTRnSVNGMGFHbHpMbkJ5YjNCekxuSmxjWFZwY21Wa08xeHVJQ0I5TEZ4dUlDQnphRzkzVW1WeGRXbHlaV1E2SUdaMWJtTjBhVzl1SUNncElIdGNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NXBjMUpsY1hWcGNtVmtLQ2tnSmlZZ2RHaHBjeTV6ZEdGMFpTNWZkbUZzZFdVZ1BUMDlJQ2NuTzF4dUlDQjlMRnh1SUNCemFHOTNSWEp5YjNJNklHWjFibU4wYVc5dUlDZ3BJSHRjYmlBZ0lDQnlaWFIxY200Z0lYUm9hWE11YzJodmQxSmxjWFZwY21Wa0tDa2dKaVlnSVhSb2FYTXVjM1JoZEdVdVgybHpWbUZzYVdRN1hHNGdJSDBzWEc0Z0lHbHpWbUZzYVdSV1lXeDFaVG9nWm5WdVkzUnBiMjRnS0haaGJIVmxLU0I3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11Y0hKdmNITXVYMmx6Vm1Gc2FXUldZV3gxWlM1allXeHNLRzUxYkd3c0lIUm9hWE1zSUhaaGJIVmxLVHRjYmlBZ2ZWeHVmVHRjYmlKZGZRPT0iLCJ2YXIgY3NyZlRva2VuU2VsZWN0b3IgPSB0eXBlb2YgZG9jdW1lbnQgIT0gJ3VuZGVmaW5lZCcgPyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdtZXRhW25hbWU9XCJjc3JmLXRva2VuXCJdJykgOiBudWxsO1xuXG52YXIgdG9VUkxFbmNvZGVkID0gZnVuY3Rpb24gKGVsZW1lbnQsIGtleSwgbGlzdCkge1xuICB2YXIgbGlzdCA9IGxpc3QgfHwgW107XG4gIGlmICh0eXBlb2YgKGVsZW1lbnQpID09ICdvYmplY3QnKSB7XG4gICAgZm9yICh2YXIgaWR4IGluIGVsZW1lbnQpXG4gICAgICB0b1VSTEVuY29kZWQoZWxlbWVudFtpZHhdLCBrZXkgPyBrZXkgKyAnWycgKyBpZHggKyAnXScgOiBpZHgsIGxpc3QpO1xuICB9IGVsc2Uge1xuICAgIGxpc3QucHVzaChrZXkgKyAnPScgKyBlbmNvZGVVUklDb21wb25lbnQoZWxlbWVudCkpO1xuICB9XG4gIHJldHVybiBsaXN0LmpvaW4oJyYnKTtcbn07XG5cbnZhciByZXF1ZXN0ID0gZnVuY3Rpb24gKG1ldGhvZCwgdXJsLCBkYXRhLCBjb250ZW50VHlwZSwgaGVhZGVycykge1xuXG4gIHZhciBjb250ZW50VHlwZSA9IGNvbnRlbnRUeXBlID09PSAndXJsZW5jb2RlZCcgPyAnYXBwbGljYXRpb24vJyArIGNvbnRlbnRUeXBlLnJlcGxhY2UoJ3VybGVuY29kZWQnLCAneC13d3ctZm9ybS11cmxlbmNvZGVkJykgOiAnYXBwbGljYXRpb24vanNvbic7XG4gIGRhdGEgPSBjb250ZW50VHlwZSA9PT0gJ2FwcGxpY2F0aW9uL2pzb24nID8gSlNPTi5zdHJpbmdpZnkoZGF0YSkgOiB0b1VSTEVuY29kZWQoZGF0YSk7XG5cbiAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICB0cnkge1xuICAgICAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpO1xuICAgICAgeGhyLm9wZW4obWV0aG9kLCB1cmwsIHRydWUpO1xuICAgICAgeGhyLnNldFJlcXVlc3RIZWFkZXIoJ0FjY2VwdCcsICdhcHBsaWNhdGlvbi9qc29uJyk7XG4gICAgICB4aHIuc2V0UmVxdWVzdEhlYWRlcignQ29udGVudC1UeXBlJywgY29udGVudFR5cGUpO1xuXG4gICAgICBpZiAoISFjc3JmVG9rZW5TZWxlY3RvciAmJiAhIWNzcmZUb2tlblNlbGVjdG9yLmNvbnRlbnQpIHtcbiAgICAgICAgeGhyLnNldFJlcXVlc3RIZWFkZXIoJ1gtQ1NSRi1Ub2tlbicsIGNzcmZUb2tlblNlbGVjdG9yLmNvbnRlbnQpO1xuICAgICAgfVxuXG4gICAgICAvLyBBZGQgcGFzc2VkIGhlYWRlcnNcbiAgICAgIE9iamVjdC5rZXlzKGhlYWRlcnMpLmZvckVhY2goZnVuY3Rpb24gKGhlYWRlcikge1xuICAgICAgICB4aHIuc2V0UmVxdWVzdEhlYWRlcihoZWFkZXIsIGhlYWRlcnNbaGVhZGVyXSk7XG4gICAgICB9KTtcblxuICAgICAgeGhyLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKHhoci5yZWFkeVN0YXRlID09PSA0KSB7XG5cbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgdmFyIHJlc3BvbnNlID0geGhyLnJlc3BvbnNlVGV4dCA/IEpTT04ucGFyc2UoeGhyLnJlc3BvbnNlVGV4dCkgOiBudWxsO1xuICAgICAgICAgICAgaWYgKHhoci5zdGF0dXMgPj0gMjAwICYmIHhoci5zdGF0dXMgPCAzMDApIHtcbiAgICAgICAgICAgICAgcmVzb2x2ZShyZXNwb25zZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZWplY3QocmVzcG9uc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHJlamVjdChlKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIHhoci5zZW5kKGRhdGEpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJlamVjdChlKTtcbiAgICB9XG4gIH0pO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIGFycmF5c0RpZmZlcjogZnVuY3Rpb24gKGFycmF5QSwgYXJyYXlCKSB7XG4gICAgdmFyIGlzRGlmZmVyZW50ID0gZmFsc2U7XG4gICAgaWYgKGFycmF5QS5sZW5ndGggIT09IGFycmF5Qi5sZW5ndGgpIHtcbiAgICAgIGlzRGlmZmVyZW50ID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgYXJyYXlBLmZvckVhY2goZnVuY3Rpb24gKGl0ZW0sIGluZGV4KSB7XG4gICAgICAgIGlmIChpdGVtICE9PSBhcnJheUJbaW5kZXhdKSB7XG4gICAgICAgICAgaXNEaWZmZXJlbnQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGlzRGlmZmVyZW50O1xuICB9LFxuICBhamF4OiB7XG4gICAgcG9zdDogcmVxdWVzdC5iaW5kKG51bGwsICdQT1NUJyksXG4gICAgcHV0OiByZXF1ZXN0LmJpbmQobnVsbCwgJ1BVVCcpXG4gIH1cbn07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUwxVnpaWEp6TDJOb2NtbHpkR2xoYm1Gc1ptOXVhUzlFYjJOMWJXVnVkSE12WkdWMkwyWnZjbTF6ZVMxeVpXRmpkQzl6Y21NdmRYUnBiSE11YW5NaUxDSnpiM1Z5WTJWeklqcGJJaTlWYzJWeWN5OWphSEpwYzNScFlXNWhiR1p2Ym1rdlJHOWpkVzFsYm5SekwyUmxkaTltYjNKdGMza3RjbVZoWTNRdmMzSmpMM1YwYVd4ekxtcHpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSkJRVUZCTEVsQlFVa3NhVUpCUVdsQ0xFZEJRVWNzVDBGQlR5eFJRVUZSTEVsQlFVa3NWMEZCVnl4SFFVRkhMRkZCUVZFc1EwRkJReXhoUVVGaExFTkJRVU1zZVVKQlFYbENMRU5CUVVNc1IwRkJSeXhKUVVGSkxFTkJRVU03TzBGQlJXeElMRWxCUVVrc1dVRkJXU3hIUVVGSExGVkJRVlVzVDBGQlR5eEZRVUZGTEVkQlFVY3NSVUZCUlN4SlFVRkpMRVZCUVVVN1JVRkRMME1zU1VGQlNTeEpRVUZKTEVkQlFVY3NTVUZCU1N4SlFVRkpMRVZCUVVVc1EwRkJRenRGUVVOMFFpeEpRVUZKTEZGQlFWRXNUMEZCVHl4RFFVRkRMRWxCUVVrc1VVRkJVU3hGUVVGRk8wbEJRMmhETEV0QlFVc3NTVUZCU1N4SFFVRkhMRWxCUVVrc1QwRkJUenROUVVOeVFpeFpRVUZaTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFZEJRVWNzUjBGQlJ5eEhRVUZITEVkQlFVY3NSMEZCUnl4SFFVRkhMRWRCUVVjc1IwRkJSeXhIUVVGSExFZEJRVWNzUjBGQlJ5eEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVRkRPMGRCUTNaRkxFMUJRVTA3U1VGRFRDeEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWRCUVVjc1IwRkJSeXhIUVVGSExFZEJRVWNzYTBKQlFXdENMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF6dEhRVU53UkR0RlFVTkVMRTlCUVU4c1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0QlFVTjRRaXhEUVVGRExFTkJRVU03TzBGQlJVWXNTVUZCU1N4UFFVRlBMRWRCUVVjc1ZVRkJWU3hOUVVGTkxFVkJRVVVzUjBGQlJ5eEZRVUZGTEVsQlFVa3NSVUZCUlN4WFFVRlhMRVZCUVVVc1QwRkJUeXhGUVVGRk96dEZRVVV2UkN4SlFVRkpMRmRCUVZjc1IwRkJSeXhYUVVGWExFdEJRVXNzV1VGQldTeEhRVUZITEdOQlFXTXNSMEZCUnl4WFFVRlhMRU5CUVVNc1QwRkJUeXhEUVVGRExGbEJRVmtzUlVGQlJTeDFRa0ZCZFVJc1EwRkJReXhIUVVGSExHdENRVUZyUWl4RFFVRkRPMEZCUTNCS0xFVkJRVVVzU1VGQlNTeEhRVUZITEZkQlFWY3NTMEZCU3l4clFrRkJhMElzUjBGQlJ5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRWxCUVVrc1EwRkJReXhIUVVGSExGbEJRVmtzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXpzN1JVRkZkRVlzVDBGQlR5eEpRVUZKTEU5QlFVOHNRMEZCUXl4VlFVRlZMRTlCUVU4c1JVRkJSU3hOUVVGTkxFVkJRVVU3U1VGRE5VTXNTVUZCU1R0TlFVTkdMRWxCUVVrc1IwRkJSeXhIUVVGSExFbEJRVWtzWTBGQll5eEZRVUZGTEVOQlFVTTdUVUZETDBJc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVWQlFVVXNSMEZCUnl4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRE8wMUJRelZDTEVkQlFVY3NRMEZCUXl4blFrRkJaMElzUTBGQlF5eFJRVUZSTEVWQlFVVXNhMEpCUVd0Q0xFTkJRVU1zUTBGQlF6dEJRVU42UkN4TlFVRk5MRWRCUVVjc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4alFVRmpMRVZCUVVVc1YwRkJWeXhEUVVGRExFTkJRVU03TzAxQlJXeEVMRWxCUVVrc1EwRkJReXhEUVVGRExHbENRVUZwUWl4SlFVRkpMRU5CUVVNc1EwRkJReXhwUWtGQmFVSXNRMEZCUXl4UFFVRlBMRVZCUVVVN1VVRkRkRVFzUjBGQlJ5eERRVUZETEdkQ1FVRm5RaXhEUVVGRExHTkJRV01zUlVGQlJTeHBRa0ZCYVVJc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dEJRVU40UlN4UFFVRlBPMEZCUTFBN08wMUJSVTBzVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhQUVVGUExFTkJRVU1zVlVGQlZTeE5RVUZOTEVWQlFVVTdVVUZETjBNc1IwRkJSeXhEUVVGRExHZENRVUZuUWl4RFFVRkRMRTFCUVUwc1JVRkJSU3hQUVVGUExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTjBSQ3hQUVVGUExFTkJRVU1zUTBGQlF6czdUVUZGU0N4SFFVRkhMRU5CUVVNc2EwSkJRV3RDTEVkQlFVY3NXVUZCV1R0QlFVTXpReXhSUVVGUkxFbEJRVWtzUjBGQlJ5eERRVUZETEZWQlFWVXNTMEZCU3l4RFFVRkRMRVZCUVVVN08xVkJSWGhDTEVsQlFVazdXVUZEUml4SlFVRkpMRkZCUVZFc1IwRkJSeXhIUVVGSExFTkJRVU1zV1VGQldTeEhRVUZITEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1IwRkJSeXhEUVVGRExGbEJRVmtzUTBGQlF5eEhRVUZITEVsQlFVa3NRMEZCUXp0WlFVTjBSU3hKUVVGSkxFZEJRVWNzUTBGQlF5eE5RVUZOTEVsQlFVa3NSMEZCUnl4SlFVRkpMRWRCUVVjc1EwRkJReXhOUVVGTkxFZEJRVWNzUjBGQlJ5eEZRVUZGTzJOQlEzcERMRTlCUVU4c1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF6dGhRVU51UWl4TlFVRk5PMk5CUTB3c1RVRkJUU3hEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETzJGQlEyeENPMWRCUTBZc1EwRkJReXhQUVVGUExFTkJRVU1zUlVGQlJUdFpRVU5XTEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOMFFpeFhRVUZYT3p0VFFVVkdPMDlCUTBZc1EwRkJRenROUVVOR0xFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1MwRkRhRUlzUTBGQlF5eFBRVUZQTEVOQlFVTXNSVUZCUlR0TlFVTldMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dExRVU5ZTzBkQlEwWXNRMEZCUXl4RFFVRkRPMEZCUTB3c1EwRkJReXhEUVVGRE96dEJRVVZHTEUxQlFVMHNRMEZCUXl4UFFVRlBMRWRCUVVjN1JVRkRaaXhaUVVGWkxFVkJRVVVzVlVGQlZTeE5RVUZOTEVWQlFVVXNUVUZCVFN4RlFVRkZPMGxCUTNSRExFbEJRVWtzVjBGQlZ5eEhRVUZITEV0QlFVc3NRMEZCUXp0SlFVTjRRaXhKUVVGSkxFMUJRVTBzUTBGQlF5eE5RVUZOTEV0QlFVc3NUVUZCVFN4RFFVRkRMRTFCUVUwc1JVRkJSVHROUVVOdVF5eFhRVUZYTEVkQlFVY3NTVUZCU1N4RFFVRkRPMHRCUTNCQ0xFMUJRVTA3VFVGRFRDeE5RVUZOTEVOQlFVTXNUMEZCVHl4RFFVRkRMRlZCUVZVc1NVRkJTU3hGUVVGRkxFdEJRVXNzUlVGQlJUdFJRVU53UXl4SlFVRkpMRWxCUVVrc1MwRkJTeXhOUVVGTkxFTkJRVU1zUzBGQlN5eERRVUZETEVWQlFVVTdWVUZETVVJc1YwRkJWeXhIUVVGSExFbEJRVWtzUTBGQlF6dFRRVU53UWp0UFFVTkdMRU5CUVVNc1EwRkJRenRMUVVOS08wbEJRMFFzVDBGQlR5eFhRVUZYTEVOQlFVTTdSMEZEY0VJN1JVRkRSQ3hKUVVGSkxFVkJRVVU3U1VGRFNpeEpRVUZKTEVWQlFVVXNUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFVkJRVVVzVFVGQlRTeERRVUZETzBsQlEyaERMRWRCUVVjc1JVRkJSU3hQUVVGUExFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NSVUZCUlN4TFFVRkxMRU5CUVVNN1IwRkRMMEk3UTBGRFJpeERRVUZESWl3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaWRtRnlJR056Y21aVWIydGxibE5sYkdWamRHOXlJRDBnZEhsd1pXOW1JR1J2WTNWdFpXNTBJQ0U5SUNkMWJtUmxabWx1WldRbklEOGdaRzlqZFcxbGJuUXVjWFZsY25sVFpXeGxZM1J2Y2lnbmJXVjBZVnR1WVcxbFBWd2lZM055WmkxMGIydGxibHdpWFNjcElEb2diblZzYkR0Y2JseHVkbUZ5SUhSdlZWSk1SVzVqYjJSbFpDQTlJR1oxYm1OMGFXOXVJQ2hsYkdWdFpXNTBMQ0JyWlhrc0lHeHBjM1FwSUh0Y2JpQWdkbUZ5SUd4cGMzUWdQU0JzYVhOMElIeDhJRnRkTzF4dUlDQnBaaUFvZEhsd1pXOW1JQ2hsYkdWdFpXNTBLU0E5UFNBbmIySnFaV04wSnlrZ2UxeHVJQ0FnSUdadmNpQW9kbUZ5SUdsa2VDQnBiaUJsYkdWdFpXNTBLVnh1SUNBZ0lDQWdkRzlWVWt4RmJtTnZaR1ZrS0dWc1pXMWxiblJiYVdSNFhTd2dhMlY1SUQ4Z2EyVjVJQ3NnSjFzbklDc2dhV1I0SUNzZ0oxMG5JRG9nYVdSNExDQnNhWE4wS1R0Y2JpQWdmU0JsYkhObElIdGNiaUFnSUNCc2FYTjBMbkIxYzJnb2EyVjVJQ3NnSnowbklDc2daVzVqYjJSbFZWSkpRMjl0Y0c5dVpXNTBLR1ZzWlcxbGJuUXBLVHRjYmlBZ2ZWeHVJQ0J5WlhSMWNtNGdiR2x6ZEM1cWIybHVLQ2NtSnlrN1hHNTlPMXh1WEc1MllYSWdjbVZ4ZFdWemRDQTlJR1oxYm1OMGFXOXVJQ2h0WlhSb2IyUXNJSFZ5YkN3Z1pHRjBZU3dnWTI5dWRHVnVkRlI1Y0dVc0lHaGxZV1JsY25NcElIdGNibHh1SUNCMllYSWdZMjl1ZEdWdWRGUjVjR1VnUFNCamIyNTBaVzUwVkhsd1pTQTlQVDBnSjNWeWJHVnVZMjlrWldRbklEOGdKMkZ3Y0d4cFkyRjBhVzl1THljZ0t5QmpiMjUwWlc1MFZIbHdaUzV5WlhCc1lXTmxLQ2QxY214bGJtTnZaR1ZrSnl3Z0ozZ3RkM2QzTFdadmNtMHRkWEpzWlc1amIyUmxaQ2NwSURvZ0oyRndjR3hwWTJGMGFXOXVMMnB6YjI0bk8xeHVJQ0JrWVhSaElEMGdZMjl1ZEdWdWRGUjVjR1VnUFQwOUlDZGhjSEJzYVdOaGRHbHZiaTlxYzI5dUp5QS9JRXBUVDA0dWMzUnlhVzVuYVdaNUtHUmhkR0VwSURvZ2RHOVZVa3hGYm1OdlpHVmtLR1JoZEdFcE8xeHVYRzRnSUhKbGRIVnliaUJ1WlhjZ1VISnZiV2x6WlNobWRXNWpkR2x2YmlBb2NtVnpiMngyWlN3Z2NtVnFaV04wS1NCN1hHNGdJQ0FnZEhKNUlIdGNiaUFnSUNBZ0lIWmhjaUI0YUhJZ1BTQnVaWGNnV0UxTVNIUjBjRkpsY1hWbGMzUW9LVHRjYmlBZ0lDQWdJSGhvY2k1dmNHVnVLRzFsZEdodlpDd2dkWEpzTENCMGNuVmxLVHRjYmlBZ0lDQWdJSGhvY2k1elpYUlNaWEYxWlhOMFNHVmhaR1Z5S0NkQlkyTmxjSFFuTENBbllYQndiR2xqWVhScGIyNHZhbk52YmljcE8xeHVJQ0FnSUNBZ2VHaHlMbk5sZEZKbGNYVmxjM1JJWldGa1pYSW9KME52Ym5SbGJuUXRWSGx3WlNjc0lHTnZiblJsYm5SVWVYQmxLVHRjYmx4dUlDQWdJQ0FnYVdZZ0tDRWhZM055WmxSdmEyVnVVMlZzWldOMGIzSWdKaVlnSVNGamMzSm1WRzlyWlc1VFpXeGxZM1J2Y2k1amIyNTBaVzUwS1NCN1hHNGdJQ0FnSUNBZ0lIaG9jaTV6WlhSU1pYRjFaWE4wU0dWaFpHVnlLQ2RZTFVOVFVrWXRWRzlyWlc0bkxDQmpjM0ptVkc5clpXNVRaV3hsWTNSdmNpNWpiMjUwWlc1MEtUdGNiaUFnSUNBZ0lIMWNibHh1SUNBZ0lDQWdMeThnUVdSa0lIQmhjM05sWkNCb1pXRmtaWEp6WEc0Z0lDQWdJQ0JQWW1wbFkzUXVhMlY1Y3lob1pXRmtaWEp6S1M1bWIzSkZZV05vS0daMWJtTjBhVzl1SUNob1pXRmtaWElwSUh0Y2JpQWdJQ0FnSUNBZ2VHaHlMbk5sZEZKbGNYVmxjM1JJWldGa1pYSW9hR1ZoWkdWeUxDQm9aV0ZrWlhKelcyaGxZV1JsY2wwcE8xeHVJQ0FnSUNBZ2ZTazdYRzVjYmlBZ0lDQWdJSGhvY2k1dmJuSmxZV1I1YzNSaGRHVmphR0Z1WjJVZ1BTQm1kVzVqZEdsdmJpQW9LU0I3WEc0Z0lDQWdJQ0FnSUdsbUlDaDRhSEl1Y21WaFpIbFRkR0YwWlNBOVBUMGdOQ2tnZTF4dVhHNGdJQ0FnSUNBZ0lDQWdkSEo1SUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJSFpoY2lCeVpYTndiMjV6WlNBOUlIaG9jaTV5WlhOd2IyNXpaVlJsZUhRZ1B5QktVMDlPTG5CaGNuTmxLSGhvY2k1eVpYTndiMjV6WlZSbGVIUXBJRG9nYm5Wc2JEdGNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDaDRhSEl1YzNSaGRIVnpJRDQ5SURJd01DQW1KaUI0YUhJdWMzUmhkSFZ6SUR3Z016QXdLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJSEpsYzI5c2RtVW9jbVZ6Y0c5dWMyVXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WcVpXTjBLSEpsYzNCdmJuTmxLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0I5SUdOaGRHTm9JQ2hsS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J5WldwbFkzUW9aU2s3WEc0Z0lDQWdJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJSDA3WEc0Z0lDQWdJQ0I0YUhJdWMyVnVaQ2hrWVhSaEtUdGNiaUFnSUNCOUlHTmhkR05vSUNobEtTQjdYRzRnSUNBZ0lDQnlaV3BsWTNRb1pTazdYRzRnSUNBZ2ZWeHVJQ0I5S1R0Y2JuMDdYRzVjYm0xdlpIVnNaUzVsZUhCdmNuUnpJRDBnZTF4dUlDQmhjbkpoZVhORWFXWm1aWEk2SUdaMWJtTjBhVzl1SUNoaGNuSmhlVUVzSUdGeWNtRjVRaWtnZTF4dUlDQWdJSFpoY2lCcGMwUnBabVpsY21WdWRDQTlJR1poYkhObE8xeHVJQ0FnSUdsbUlDaGhjbkpoZVVFdWJHVnVaM1JvSUNFOVBTQmhjbkpoZVVJdWJHVnVaM1JvS1NCN1hHNGdJQ0FnSUNCcGMwUnBabVpsY21WdWRDQTlJSFJ5ZFdVN1hHNGdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJR0Z5Y21GNVFTNW1iM0pGWVdOb0tHWjFibU4wYVc5dUlDaHBkR1Z0TENCcGJtUmxlQ2tnZTF4dUlDQWdJQ0FnSUNCcFppQW9hWFJsYlNBaFBUMGdZWEp5WVhsQ1cybHVaR1Y0WFNrZ2UxeHVJQ0FnSUNBZ0lDQWdJR2x6UkdsbVptVnlaVzUwSUQwZ2RISjFaVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnZlNrN1hHNGdJQ0FnZlZ4dUlDQWdJSEpsZEhWeWJpQnBjMFJwWm1abGNtVnVkRHRjYmlBZ2ZTeGNiaUFnWVdwaGVEb2dlMXh1SUNBZ0lIQnZjM1E2SUhKbGNYVmxjM1F1WW1sdVpDaHVkV3hzTENBblVFOVRWQ2NwTEZ4dUlDQWdJSEIxZERvZ2NtVnhkV1Z6ZEM1aWFXNWtLRzUxYkd3c0lDZFFWVlFuS1Z4dUlDQjlYRzU5TzF4dUlsMTkiLCJtb2R1bGUuZXhwb3J0cyA9IHtcbiAgJ2lzVmFsdWUnOiBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUgIT09ICcnO1xuICB9LFxuICAnaXNFbWFpbCc6IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZS5tYXRjaCgvXigoKFthLXpdfFxcZHxbISNcXCQlJidcXCpcXCtcXC1cXC89XFw/XFxeX2B7XFx8fX5dfFtcXHUwMEEwLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRUZdKSsoXFwuKFthLXpdfFxcZHxbISNcXCQlJidcXCpcXCtcXC1cXC89XFw/XFxeX2B7XFx8fX5dfFtcXHUwMEEwLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRUZdKSspKil8KChcXHgyMikoKCgoXFx4MjB8XFx4MDkpKihcXHgwZFxceDBhKSk/KFxceDIwfFxceDA5KSspPygoW1xceDAxLVxceDA4XFx4MGJcXHgwY1xceDBlLVxceDFmXFx4N2ZdfFxceDIxfFtcXHgyMy1cXHg1Yl18W1xceDVkLVxceDdlXXxbXFx1MDBBMC1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkVGXSl8KFxcXFwoW1xceDAxLVxceDA5XFx4MGJcXHgwY1xceDBkLVxceDdmXXxbXFx1MDBBMC1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkVGXSkpKSkqKCgoXFx4MjB8XFx4MDkpKihcXHgwZFxceDBhKSk/KFxceDIwfFxceDA5KSspPyhcXHgyMikpKUAoKChbYS16XXxcXGR8W1xcdTAwQTAtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZFRl0pfCgoW2Etel18XFxkfFtcXHUwMEEwLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRUZdKShbYS16XXxcXGR8LXxcXC58X3x+fFtcXHUwMEEwLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRUZdKSooW2Etel18XFxkfFtcXHUwMEEwLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRUZdKSkpXFwuKSsoKFthLXpdfFtcXHUwMEEwLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRUZdKXwoKFthLXpdfFtcXHUwMEEwLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRUZdKShbYS16XXxcXGR8LXxcXC58X3x+fFtcXHUwMEEwLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRUZdKSooW2Etel18W1xcdTAwQTAtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZFRl0pKSkkL2kpO1xuICB9LFxuICAnaXNUcnVlJzogZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlID09PSB0cnVlO1xuICB9LFxuICAnaXNOdW1lcmljJzogZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgbWF0Y2hSZXN1bHRzID0gdmFsdWUubWF0Y2goL1stK10/KFxcZCpbLl0pP1xcZCsvKTtcbiAgICAgIGlmICghISBtYXRjaFJlc3VsdHMpIHtcbiAgICAgICAgcmV0dXJuIG1hdGNoUmVzdWx0c1swXSA9PSB2YWx1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gICdpc0FscGhhJzogZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlLm1hdGNoKC9eW2EtekEtWl0rJC8pO1xuICB9LFxuICAnaXNXb3Jkcyc6IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZS5tYXRjaCgvXlthLXpBLVpcXHNdKyQvKTtcbiAgfSxcbiAgJ2lzU3BlY2lhbFdvcmRzJzogZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlLm1hdGNoKC9eW2EtekEtWlxcc1xcdTAwQzAtXFx1MDE3Rl0rJC8pO1xuICB9LFxuICBpc0xlbmd0aDogZnVuY3Rpb24gKHZhbHVlLCBtaW4sIG1heCkge1xuICAgIGlmIChtYXggIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHZhbHVlLmxlbmd0aCA+PSBtaW4gJiYgdmFsdWUubGVuZ3RoIDw9IG1heDtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlLmxlbmd0aCA+PSBtaW47XG4gIH0sXG4gIGVxdWFsczogZnVuY3Rpb24gKHZhbHVlLCBlcWwpIHtcbiAgICByZXR1cm4gdmFsdWUgPT0gZXFsO1xuICB9LFxuICBlcXVhbHNGaWVsZDogZnVuY3Rpb24gKHZhbHVlLCBmaWVsZCkge1xuICAgIHJldHVybiB2YWx1ZSA9PSB0aGlzW2ZpZWxkXTtcbiAgfVxufTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTDFWelpYSnpMMk5vY21semRHbGhibUZzWm05dWFTOUViMk4xYldWdWRITXZaR1YyTDJadmNtMXplUzF5WldGamRDOXpjbU12ZG1Gc2FXUmhkR2x2YmxKMWJHVnpMbXB6SWl3aWMyOTFjbU5sY3lJNld5SXZWWE5sY25NdlkyaHlhWE4wYVdGdVlXeG1iMjVwTDBSdlkzVnRaVzUwY3k5a1pYWXZabTl5YlhONUxYSmxZV04wTDNOeVl5OTJZV3hwWkdGMGFXOXVVblZzWlhNdWFuTWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklrRkJRVUVzVFVGQlRTeERRVUZETEU5QlFVOHNSMEZCUnp0RlFVTm1MRk5CUVZNc1JVRkJSU3hWUVVGVkxFdEJRVXNzUlVGQlJUdEpRVU14UWl4UFFVRlBMRXRCUVVzc1MwRkJTeXhGUVVGRkxFTkJRVU03UjBGRGNrSTdSVUZEUkN4VFFVRlRMRVZCUVVVc1ZVRkJWU3hMUVVGTExFVkJRVVU3U1VGRE1VSXNUMEZCVHl4TFFVRkxMRU5CUVVNc1MwRkJTeXhEUVVGRExIazBRa0ZCZVRSQ0xFTkJRVU1zUTBGQlF6dEhRVU12TlVJN1JVRkRSQ3hSUVVGUkxFVkJRVVVzVlVGQlZTeExRVUZMTEVWQlFVVTdTVUZEZWtJc1QwRkJUeXhMUVVGTExFdEJRVXNzU1VGQlNTeERRVUZETzBkQlEzWkNPMFZCUTBRc1YwRkJWeXhGUVVGRkxGVkJRVlVzUzBGQlN5eEZRVUZGTzBsQlF6VkNMRWxCUVVrc1QwRkJUeXhMUVVGTExFdEJRVXNzVVVGQlVTeEZRVUZGTzAxQlF6ZENMRTlCUVU4c1NVRkJTU3hEUVVGRE8wdEJRMklzVFVGQlRUdE5RVU5NTEVsQlFVa3NXVUZCV1N4SFFVRkhMRXRCUVVzc1EwRkJReXhMUVVGTExFTkJRVU1zYlVKQlFXMUNMRU5CUVVNc1EwRkJRenROUVVOd1JDeEpRVUZKTEVOQlFVTXNSVUZCUlN4WlFVRlpMRVZCUVVVN1VVRkRia0lzVDBGQlR5eFpRVUZaTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1MwRkJTeXhEUVVGRE8wOUJRMnBETEUxQlFVMDdVVUZEVEN4UFFVRlBMRXRCUVVzc1EwRkJRenRQUVVOa08wdEJRMFk3UjBGRFJqdEZRVU5FTEZOQlFWTXNSVUZCUlN4VlFVRlZMRXRCUVVzc1JVRkJSVHRKUVVNeFFpeFBRVUZQTEV0QlFVc3NRMEZCUXl4TFFVRkxMRU5CUVVNc1lVRkJZU3hEUVVGRExFTkJRVU03UjBGRGJrTTdSVUZEUkN4VFFVRlRMRVZCUVVVc1ZVRkJWU3hMUVVGTExFVkJRVVU3U1VGRE1VSXNUMEZCVHl4TFFVRkxMRU5CUVVNc1MwRkJTeXhEUVVGRExHVkJRV1VzUTBGQlF5eERRVUZETzBkQlEzSkRPMFZCUTBRc1owSkJRV2RDTEVWQlFVVXNWVUZCVlN4TFFVRkxMRVZCUVVVN1NVRkRha01zVDBGQlR5eExRVUZMTEVOQlFVTXNTMEZCU3l4RFFVRkRMRFJDUVVFMFFpeERRVUZETEVOQlFVTTdSMEZEYkVRN1JVRkRSQ3hSUVVGUkxFVkJRVVVzVlVGQlZTeExRVUZMTEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1JVRkJSVHRKUVVOdVF5eEpRVUZKTEVkQlFVY3NTMEZCU3l4VFFVRlRMRVZCUVVVN1RVRkRja0lzVDBGQlR5eExRVUZMTEVOQlFVTXNUVUZCVFN4SlFVRkpMRWRCUVVjc1NVRkJTU3hMUVVGTExFTkJRVU1zVFVGQlRTeEpRVUZKTEVkQlFVY3NRMEZCUXp0TFFVTnVSRHRKUVVORUxFOUJRVThzUzBGQlN5eERRVUZETEUxQlFVMHNTVUZCU1N4SFFVRkhMRU5CUVVNN1IwRkROVUk3UlVGRFJDeE5RVUZOTEVWQlFVVXNWVUZCVlN4TFFVRkxMRVZCUVVVc1IwRkJSeXhGUVVGRk8wbEJRelZDTEU5QlFVOHNTMEZCU3l4SlFVRkpMRWRCUVVjc1EwRkJRenRIUVVOeVFqdEZRVU5FTEZkQlFWY3NSVUZCUlN4VlFVRlZMRXRCUVVzc1JVRkJSU3hMUVVGTExFVkJRVVU3U1VGRGJrTXNUMEZCVHl4TFFVRkxMRWxCUVVrc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzBkQlF6ZENPME5CUTBZc1EwRkJReUlzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW0xdlpIVnNaUzVsZUhCdmNuUnpJRDBnZTF4dUlDQW5hWE5XWVd4MVpTYzZJR1oxYm1OMGFXOXVJQ2gyWVd4MVpTa2dlMXh1SUNBZ0lISmxkSFZ5YmlCMllXeDFaU0FoUFQwZ0p5YzdYRzRnSUgwc1hHNGdJQ2RwYzBWdFlXbHNKem9nWm5WdVkzUnBiMjRnS0haaGJIVmxLU0I3WEc0Z0lDQWdjbVYwZFhKdUlIWmhiSFZsTG0xaGRHTm9LQzllS0Nnb1cyRXRlbDE4WEZ4a2ZGc2hJMXhjSkNVbUoxeGNLbHhjSzF4Y0xWeGNMejFjWEQ5Y1hGNWZZSHRjWEh4OWZsMThXMXhjZFRBd1FUQXRYRngxUkRkR1JseGNkVVk1TURBdFhGeDFSa1JEUmx4Y2RVWkVSakF0WEZ4MVJrWkZSbDBwS3loY1hDNG9XMkV0ZWwxOFhGeGtmRnNoSTF4Y0pDVW1KMXhjS2x4Y0sxeGNMVnhjTHoxY1hEOWNYRjVmWUh0Y1hIeDlmbDE4VzF4Y2RUQXdRVEF0WEZ4MVJEZEdSbHhjZFVZNU1EQXRYRngxUmtSRFJseGNkVVpFUmpBdFhGeDFSa1pGUmwwcEt5a3FLWHdvS0Z4Y2VESXlLU2dvS0NoY1hIZ3lNSHhjWEhnd09Ta3FLRnhjZURCa1hGeDRNR0VwS1Q4b1hGeDRNakI4WEZ4NE1Ea3BLeWsvS0NoYlhGeDRNREV0WEZ4NE1EaGNYSGd3WWx4Y2VEQmpYRng0TUdVdFhGeDRNV1pjWEhnM1psMThYRng0TWpGOFcxeGNlREl6TFZ4Y2VEVmlYWHhiWEZ4NE5XUXRYRng0TjJWZGZGdGNYSFV3TUVFd0xWeGNkVVEzUmtaY1hIVkdPVEF3TFZ4Y2RVWkVRMFpjWEhWR1JFWXdMVnhjZFVaR1JVWmRLWHdvWEZ4Y1hDaGJYRng0TURFdFhGeDRNRGxjWEhnd1lseGNlREJqWEZ4NE1HUXRYRng0TjJaZGZGdGNYSFV3TUVFd0xWeGNkVVEzUmtaY1hIVkdPVEF3TFZ4Y2RVWkVRMFpjWEhWR1JFWXdMVnhjZFVaR1JVWmRLU2twS1Nvb0tDaGNYSGd5TUh4Y1hIZ3dPU2txS0Z4Y2VEQmtYRng0TUdFcEtUOG9YRng0TWpCOFhGeDRNRGtwS3lrL0tGeGNlREl5S1NrcFFDZ29LRnRoTFhwZGZGeGNaSHhiWEZ4MU1EQkJNQzFjWEhWRU4wWkdYRngxUmprd01DMWNYSFZHUkVOR1hGeDFSa1JHTUMxY1hIVkdSa1ZHWFNsOEtDaGJZUzE2WFh4Y1hHUjhXMXhjZFRBd1FUQXRYRngxUkRkR1JseGNkVVk1TURBdFhGeDFSa1JEUmx4Y2RVWkVSakF0WEZ4MVJrWkZSbDBwS0Z0aExYcGRmRnhjWkh3dGZGeGNMbnhmZkg1OFcxeGNkVEF3UVRBdFhGeDFSRGRHUmx4Y2RVWTVNREF0WEZ4MVJrUkRSbHhjZFVaRVJqQXRYRngxUmtaRlJsMHBLaWhiWVMxNlhYeGNYR1I4VzF4Y2RUQXdRVEF0WEZ4MVJEZEdSbHhjZFVZNU1EQXRYRngxUmtSRFJseGNkVVpFUmpBdFhGeDFSa1pGUmwwcEtTbGNYQzRwS3lnb1cyRXRlbDE4VzF4Y2RUQXdRVEF0WEZ4MVJEZEdSbHhjZFVZNU1EQXRYRngxUmtSRFJseGNkVVpFUmpBdFhGeDFSa1pGUmwwcGZDZ29XMkV0ZWwxOFcxeGNkVEF3UVRBdFhGeDFSRGRHUmx4Y2RVWTVNREF0WEZ4MVJrUkRSbHhjZFVaRVJqQXRYRngxUmtaRlJsMHBLRnRoTFhwZGZGeGNaSHd0ZkZ4Y0xueGZmSDU4VzF4Y2RUQXdRVEF0WEZ4MVJEZEdSbHhjZFVZNU1EQXRYRngxUmtSRFJseGNkVVpFUmpBdFhGeDFSa1pGUmwwcEtpaGJZUzE2WFh4YlhGeDFNREJCTUMxY1hIVkVOMFpHWEZ4MVJqa3dNQzFjWEhWR1JFTkdYRngxUmtSR01DMWNYSFZHUmtWR1hTa3BLU1F2YVNrN1hHNGdJSDBzWEc0Z0lDZHBjMVJ5ZFdVbk9pQm1kVzVqZEdsdmJpQW9kbUZzZFdVcElIdGNiaUFnSUNCeVpYUjFjbTRnZG1Gc2RXVWdQVDA5SUhSeWRXVTdYRzRnSUgwc1hHNGdJQ2RwYzA1MWJXVnlhV01uT2lCbWRXNWpkR2x2YmlBb2RtRnNkV1VwSUh0Y2JpQWdJQ0JwWmlBb2RIbHdaVzltSUhaaGJIVmxJRDA5UFNBbmJuVnRZbVZ5SnlrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUhSeWRXVTdYRzRnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUhaaGNpQnRZWFJqYUZKbGMzVnNkSE1nUFNCMllXeDFaUzV0WVhSamFDZ3ZXeTByWFQ4b1hGeGtLbHN1WFNrL1hGeGtLeThwTzF4dUlDQWdJQ0FnYVdZZ0tDRWhJRzFoZEdOb1VtVnpkV3gwY3lrZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2JXRjBZMmhTWlhOMWJIUnpXekJkSUQwOUlIWmhiSFZsTzF4dUlDQWdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJR1poYkhObE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JpQWdmU3hjYmlBZ0oybHpRV3h3YUdFbk9pQm1kVzVqZEdsdmJpQW9kbUZzZFdVcElIdGNiaUFnSUNCeVpYUjFjbTRnZG1Gc2RXVXViV0YwWTJnb0wxNWJZUzE2UVMxYVhTc2tMeWs3WEc0Z0lIMHNYRzRnSUNkcGMxZHZjbVJ6SnpvZ1puVnVZM1JwYjI0Z0tIWmhiSFZsS1NCN1hHNGdJQ0FnY21WMGRYSnVJSFpoYkhWbExtMWhkR05vS0M5ZVcyRXRla0V0V2x4Y2MxMHJKQzhwTzF4dUlDQjlMRnh1SUNBbmFYTlRjR1ZqYVdGc1YyOXlaSE1uT2lCbWRXNWpkR2x2YmlBb2RtRnNkV1VwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdkbUZzZFdVdWJXRjBZMmdvTDE1YllTMTZRUzFhWEZ4elhGeDFNREJETUMxY1hIVXdNVGRHWFNza0x5azdYRzRnSUgwc1hHNGdJR2x6VEdWdVozUm9PaUJtZFc1amRHbHZiaUFvZG1Gc2RXVXNJRzFwYml3Z2JXRjRLU0I3WEc0Z0lDQWdhV1lnS0cxaGVDQWhQVDBnZFc1a1pXWnBibVZrS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnZG1Gc2RXVXViR1Z1WjNSb0lENDlJRzFwYmlBbUppQjJZV3gxWlM1c1pXNW5kR2dnUEQwZ2JXRjRPMXh1SUNBZ0lIMWNiaUFnSUNCeVpYUjFjbTRnZG1Gc2RXVXViR1Z1WjNSb0lENDlJRzFwYmp0Y2JpQWdmU3hjYmlBZ1pYRjFZV3h6T2lCbWRXNWpkR2x2YmlBb2RtRnNkV1VzSUdWeGJDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCMllXeDFaU0E5UFNCbGNXdzdYRzRnSUgwc1hHNGdJR1Z4ZFdGc2MwWnBaV3hrT2lCbWRXNWpkR2x2YmlBb2RtRnNkV1VzSUdacFpXeGtLU0I3WEc0Z0lDQWdjbVYwZFhKdUlIWmhiSFZsSUQwOUlIUm9hWE5iWm1sbGJHUmRPMXh1SUNCOVhHNTlPMXh1SWwxOSJdfQ==