mirror of
https://github.com/frappe/books.git
synced 2024-11-12 16:36:27 +00:00
2339 lines
636 KiB
JavaScript
2339 lines
636 KiB
JavaScript
/******/ (function(modules) { // webpackBootstrap
|
|
/******/ // The module cache
|
|
/******/ var installedModules = {};
|
|
/******/
|
|
/******/ // The require function
|
|
/******/ function __webpack_require__(moduleId) {
|
|
/******/
|
|
/******/ // Check if module is in cache
|
|
/******/ if(installedModules[moduleId]) {
|
|
/******/ return installedModules[moduleId].exports;
|
|
/******/ }
|
|
/******/ // Create a new module (and put it into the cache)
|
|
/******/ var module = installedModules[moduleId] = {
|
|
/******/ i: moduleId,
|
|
/******/ l: false,
|
|
/******/ exports: {}
|
|
/******/ };
|
|
/******/
|
|
/******/ // Execute the module function
|
|
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
|
|
/******/
|
|
/******/ // Flag the module as loaded
|
|
/******/ module.l = true;
|
|
/******/
|
|
/******/ // Return the exports of the module
|
|
/******/ return module.exports;
|
|
/******/ }
|
|
/******/
|
|
/******/
|
|
/******/ // expose the modules object (__webpack_modules__)
|
|
/******/ __webpack_require__.m = modules;
|
|
/******/
|
|
/******/ // expose the module cache
|
|
/******/ __webpack_require__.c = installedModules;
|
|
/******/
|
|
/******/ // define getter function for harmony exports
|
|
/******/ __webpack_require__.d = function(exports, name, getter) {
|
|
/******/ if(!__webpack_require__.o(exports, name)) {
|
|
/******/ Object.defineProperty(exports, name, {
|
|
/******/ configurable: false,
|
|
/******/ enumerable: true,
|
|
/******/ get: getter
|
|
/******/ });
|
|
/******/ }
|
|
/******/ };
|
|
/******/
|
|
/******/ // getDefaultExport function for compatibility with non-harmony modules
|
|
/******/ __webpack_require__.n = function(module) {
|
|
/******/ var getter = module && module.__esModule ?
|
|
/******/ function getDefault() { return module['default']; } :
|
|
/******/ function getModuleExports() { return module; };
|
|
/******/ __webpack_require__.d(getter, 'a', getter);
|
|
/******/ return getter;
|
|
/******/ };
|
|
/******/
|
|
/******/ // Object.prototype.hasOwnProperty.call
|
|
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
|
|
/******/
|
|
/******/ // __webpack_public_path__
|
|
/******/ __webpack_require__.p = "/";
|
|
/******/
|
|
/******/ // Load entry module and return exports
|
|
/******/ return __webpack_require__(__webpack_require__.s = 4);
|
|
/******/ })
|
|
/************************************************************************/
|
|
/******/ ([
|
|
/* 0 */
|
|
/***/ (function(module, exports) {
|
|
|
|
module.exports = {
|
|
async init() {
|
|
if (this._initialized) return;
|
|
this.init_config();
|
|
this.init_errors();
|
|
this.init_globals();
|
|
this._initialized = true;
|
|
},
|
|
|
|
init_config() {
|
|
this.config = {
|
|
backend: 'sqlite',
|
|
port: 8000
|
|
};
|
|
},
|
|
|
|
init_errors() {
|
|
this.ValueError = class extends Error { };
|
|
},
|
|
|
|
init_globals() {
|
|
this.meta_cache = {};
|
|
},
|
|
|
|
get_meta(doctype) {
|
|
if (!this.meta_cache[doctype]) {
|
|
this.meta_cache[doctype] = new (this.models.get_meta_class(doctype))(this.models.get('DocType', doctype));
|
|
}
|
|
return this.meta_cache[doctype];
|
|
},
|
|
|
|
init_controller(doctype, module) {
|
|
doctype = this.slug(doctype);
|
|
this.models.controllers[doctype] = module[doctype];
|
|
this.models.meta_classes[doctype] = module[doctype + '_meta'];
|
|
},
|
|
|
|
async get_doc(data, name) {
|
|
if (typeof data==='string' && typeof name==='string') {
|
|
let controller_class = this.models.get_controller(data);
|
|
var doc = new controller_class({doctype:data, name: name});
|
|
await doc.load();
|
|
} else {
|
|
let controller_class = this.models.get_controller(data.doctype);
|
|
var doc = new controller_class(data);
|
|
}
|
|
return doc;
|
|
},
|
|
|
|
async insert(data) {
|
|
const doc = await this.get_doc(data);
|
|
return await doc.insert();
|
|
},
|
|
|
|
login(user='guest', user_key) {
|
|
this.session = new this._session.Session(user);
|
|
if (user && user_key) {
|
|
this.authenticate(user_key);
|
|
}
|
|
},
|
|
|
|
close() {
|
|
this.db.close();
|
|
|
|
if (this.server) {
|
|
this.server.close();
|
|
}
|
|
}
|
|
};
|
|
|
|
|
|
/***/ }),
|
|
/* 1 */
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
const frappe = __webpack_require__(0);
|
|
|
|
class BaseControl {
|
|
constructor(docfield, parent) {
|
|
Object.assign(this, docfield);
|
|
if (!this.fieldname) {
|
|
this.fieldname = frappe.slug(this.label);
|
|
}
|
|
this.parent = parent;
|
|
if (this.setup) {
|
|
this.setup();
|
|
}
|
|
}
|
|
|
|
bind(doc) {
|
|
this.doc = doc;
|
|
|
|
this.doc.add_handler(this.fieldname, () => {
|
|
this.set_doc_value();
|
|
});
|
|
|
|
this.set_doc_value();
|
|
}
|
|
|
|
refresh() {
|
|
this.make();
|
|
this.set_doc_value();
|
|
}
|
|
|
|
set_doc_value() {
|
|
if (this.doc) {
|
|
this.set_input_value(this.doc.get(this.fieldname));
|
|
}
|
|
}
|
|
|
|
make() {
|
|
if (!this.form_group) {
|
|
this.make_form_group();
|
|
this.make_label();
|
|
this.make_input();
|
|
this.set_input_name();
|
|
this.make_description();
|
|
this.bind_change_event();
|
|
}
|
|
}
|
|
|
|
make_form_group() {
|
|
this.form_group = frappe.ui.add('div', 'form-group', this.parent);
|
|
}
|
|
|
|
make_label() {
|
|
this.label_element = frappe.ui.add('label', null, this.form_group);
|
|
this.label_element.textContent = this.label;
|
|
}
|
|
|
|
make_input() {
|
|
this.input = frappe.ui.add('input', 'form-control', this.form_group);
|
|
}
|
|
|
|
set_input_name() {
|
|
this.input.setAttribute('name', this.fieldname);
|
|
}
|
|
|
|
make_description() {
|
|
if (this.description) {
|
|
this.description_element = frappe.ui.add('small', 'form-text text-muted', this.form_group);
|
|
this.description_element.textContent = this.description;
|
|
}
|
|
}
|
|
|
|
set_input_value(value) {
|
|
if (value === undefined || value === null) {
|
|
value = '';
|
|
}
|
|
this.input.value = value;
|
|
}
|
|
|
|
async get_input_value() {
|
|
return await this.parse(this.input.value);
|
|
}
|
|
|
|
async parse(value) {
|
|
return value;
|
|
}
|
|
|
|
async validate(value) {
|
|
return value;
|
|
}
|
|
|
|
bind_change_event() {
|
|
this.input.addEventListener('change', (e) => this.handle_change(e));
|
|
}
|
|
|
|
async handle_change(e) {
|
|
let value = await this.get_input_value();
|
|
value = await this.validate(value);
|
|
await this.doc.set(this.fieldname, value);
|
|
}
|
|
}
|
|
|
|
module.exports = BaseControl;
|
|
|
|
/***/ }),
|
|
/* 2 */
|
|
/***/ (function(module, exports) {
|
|
|
|
// shim for using process in browser
|
|
var process = module.exports = {};
|
|
|
|
// cached from whatever global is present so that test runners that stub it
|
|
// don't break things. But we need to wrap it in a try catch in case it is
|
|
// wrapped in strict mode code which doesn't define any globals. It's inside a
|
|
// function because try/catches deoptimize in certain engines.
|
|
|
|
var cachedSetTimeout;
|
|
var cachedClearTimeout;
|
|
|
|
function defaultSetTimout() {
|
|
throw new Error('setTimeout has not been defined');
|
|
}
|
|
function defaultClearTimeout () {
|
|
throw new Error('clearTimeout has not been defined');
|
|
}
|
|
(function () {
|
|
try {
|
|
if (typeof setTimeout === 'function') {
|
|
cachedSetTimeout = setTimeout;
|
|
} else {
|
|
cachedSetTimeout = defaultSetTimout;
|
|
}
|
|
} catch (e) {
|
|
cachedSetTimeout = defaultSetTimout;
|
|
}
|
|
try {
|
|
if (typeof clearTimeout === 'function') {
|
|
cachedClearTimeout = clearTimeout;
|
|
} else {
|
|
cachedClearTimeout = defaultClearTimeout;
|
|
}
|
|
} catch (e) {
|
|
cachedClearTimeout = defaultClearTimeout;
|
|
}
|
|
} ())
|
|
function runTimeout(fun) {
|
|
if (cachedSetTimeout === setTimeout) {
|
|
//normal enviroments in sane situations
|
|
return setTimeout(fun, 0);
|
|
}
|
|
// if setTimeout wasn't available but was latter defined
|
|
if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
|
|
cachedSetTimeout = setTimeout;
|
|
return setTimeout(fun, 0);
|
|
}
|
|
try {
|
|
// when when somebody has screwed with setTimeout but no I.E. maddness
|
|
return cachedSetTimeout(fun, 0);
|
|
} catch(e){
|
|
try {
|
|
// When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
|
|
return cachedSetTimeout.call(null, fun, 0);
|
|
} catch(e){
|
|
// same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error
|
|
return cachedSetTimeout.call(this, fun, 0);
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
function runClearTimeout(marker) {
|
|
if (cachedClearTimeout === clearTimeout) {
|
|
//normal enviroments in sane situations
|
|
return clearTimeout(marker);
|
|
}
|
|
// if clearTimeout wasn't available but was latter defined
|
|
if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
|
|
cachedClearTimeout = clearTimeout;
|
|
return clearTimeout(marker);
|
|
}
|
|
try {
|
|
// when when somebody has screwed with setTimeout but no I.E. maddness
|
|
return cachedClearTimeout(marker);
|
|
} catch (e){
|
|
try {
|
|
// When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
|
|
return cachedClearTimeout.call(null, marker);
|
|
} catch (e){
|
|
// same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.
|
|
// Some versions of I.E. have different rules for clearTimeout vs setTimeout
|
|
return cachedClearTimeout.call(this, marker);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
}
|
|
var queue = [];
|
|
var draining = false;
|
|
var currentQueue;
|
|
var queueIndex = -1;
|
|
|
|
function cleanUpNextTick() {
|
|
if (!draining || !currentQueue) {
|
|
return;
|
|
}
|
|
draining = false;
|
|
if (currentQueue.length) {
|
|
queue = currentQueue.concat(queue);
|
|
} else {
|
|
queueIndex = -1;
|
|
}
|
|
if (queue.length) {
|
|
drainQueue();
|
|
}
|
|
}
|
|
|
|
function drainQueue() {
|
|
if (draining) {
|
|
return;
|
|
}
|
|
var timeout = runTimeout(cleanUpNextTick);
|
|
draining = true;
|
|
|
|
var len = queue.length;
|
|
while(len) {
|
|
currentQueue = queue;
|
|
queue = [];
|
|
while (++queueIndex < len) {
|
|
if (currentQueue) {
|
|
currentQueue[queueIndex].run();
|
|
}
|
|
}
|
|
queueIndex = -1;
|
|
len = queue.length;
|
|
}
|
|
currentQueue = null;
|
|
draining = false;
|
|
runClearTimeout(timeout);
|
|
}
|
|
|
|
process.nextTick = function (fun) {
|
|
var args = new Array(arguments.length - 1);
|
|
if (arguments.length > 1) {
|
|
for (var i = 1; i < arguments.length; i++) {
|
|
args[i - 1] = arguments[i];
|
|
}
|
|
}
|
|
queue.push(new Item(fun, args));
|
|
if (queue.length === 1 && !draining) {
|
|
runTimeout(drainQueue);
|
|
}
|
|
};
|
|
|
|
// v8 likes predictible objects
|
|
function Item(fun, array) {
|
|
this.fun = fun;
|
|
this.array = array;
|
|
}
|
|
Item.prototype.run = function () {
|
|
this.fun.apply(null, this.array);
|
|
};
|
|
process.title = 'browser';
|
|
process.browser = true;
|
|
process.env = {};
|
|
process.argv = [];
|
|
process.version = ''; // empty string to avoid regexp issues
|
|
process.versions = {};
|
|
|
|
function noop() {}
|
|
|
|
process.on = noop;
|
|
process.addListener = noop;
|
|
process.once = noop;
|
|
process.off = noop;
|
|
process.removeListener = noop;
|
|
process.removeAllListeners = noop;
|
|
process.emit = noop;
|
|
process.prependListener = noop;
|
|
process.prependOnceListener = noop;
|
|
|
|
process.listeners = function (name) { return [] }
|
|
|
|
process.binding = function (name) {
|
|
throw new Error('process.binding is not supported');
|
|
};
|
|
|
|
process.cwd = function () { return '/' };
|
|
process.chdir = function (dir) {
|
|
throw new Error('process.chdir is not supported');
|
|
};
|
|
process.umask = function() { return 0; };
|
|
|
|
|
|
/***/ }),
|
|
/* 3 */
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
const frappe = __webpack_require__(0);
|
|
|
|
class Document {
|
|
constructor(data) {
|
|
this.handlers = {};
|
|
this.setup();
|
|
Object.assign(this, data);
|
|
}
|
|
|
|
setup() {
|
|
// add handlers
|
|
}
|
|
|
|
clear_handlers() {
|
|
this.handlers = {};
|
|
}
|
|
|
|
add_handler(key, method) {
|
|
if (!this.handlers[key]) {
|
|
this.handlers[key] = [];
|
|
}
|
|
this.handlers[key].push(method || key);
|
|
}
|
|
|
|
get(key) {
|
|
return this[key];
|
|
}
|
|
|
|
set(key, value) {
|
|
this.validate_field(key, value);
|
|
this[key] = value;
|
|
}
|
|
|
|
set_name() {
|
|
// assign a random name by default
|
|
// override this to set a name
|
|
if (!this.name) {
|
|
this.name = Math.random().toString(36).substr(3);
|
|
}
|
|
}
|
|
|
|
get meta() {
|
|
if (!this._meta) {
|
|
this._meta = frappe.get_meta(this.doctype);
|
|
}
|
|
return this._meta;
|
|
}
|
|
|
|
append(key, document) {
|
|
if (!this[key]) {
|
|
this[key] = [];
|
|
}
|
|
this[key].push(this.init_doc(document));
|
|
}
|
|
|
|
init_doc(data) {
|
|
if (data.prototype instanceof Document) {
|
|
return data;
|
|
} else {
|
|
return new Document(d);
|
|
}
|
|
}
|
|
|
|
validate_field (key, value) {
|
|
let df = this.meta.get_field(key);
|
|
if (df.fieldtype=='Select') {
|
|
this.meta.validate_select(df, value);
|
|
}
|
|
}
|
|
|
|
get_valid_dict() {
|
|
let doc = {};
|
|
for(let df of this.meta.get_valid_fields()) {
|
|
doc[df.fieldname] = this.get(df.fieldname);
|
|
}
|
|
return doc;
|
|
}
|
|
|
|
set_standard_values() {
|
|
let now = new Date();
|
|
if (this.docstatus === null || this.docstatus === undefined) {
|
|
this.docstatus = 0;
|
|
}
|
|
if (!this.owner) {
|
|
this.owner = frappe.session.user;
|
|
this.creation = now;
|
|
}
|
|
this.modified_by = frappe.session.user;
|
|
this.modified = now;
|
|
}
|
|
|
|
async load() {
|
|
Object.assign(this, await frappe.db.get(this.doctype, this.name));
|
|
}
|
|
|
|
async insert() {
|
|
this.set_name();
|
|
this.set_standard_values();
|
|
await this.trigger('validate', 'before_insert');
|
|
await frappe.db.insert(this.doctype, this.get_valid_dict());
|
|
await this.trigger('after_insert', 'after_save');
|
|
}
|
|
|
|
async delete() {
|
|
await this.trigger('before_delete');
|
|
await frappe.db.delete(this.doctype, this.name);
|
|
await this.trigger('after_delete');
|
|
}
|
|
|
|
async trigger() {
|
|
for(var key of arguments) {
|
|
if (this.handlers[key]) {
|
|
for (let method of this.handlers[key]) {
|
|
if (typeof method === 'string') {
|
|
await this[method]();
|
|
} else {
|
|
await method(this);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
async update() {
|
|
this.set_standard_values();
|
|
await this.trigger('validate', 'before_update');
|
|
await frappe.db.update(this.doctype, this.get_valid_dict());
|
|
await this.trigger('after_update', 'after_save');
|
|
return this;
|
|
}
|
|
};
|
|
|
|
module.exports = { Document: Document };
|
|
|
|
/***/ }),
|
|
/* 4 */
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
__webpack_require__(5);
|
|
|
|
const client = __webpack_require__(10);
|
|
|
|
const ListView = __webpack_require__(22).ListView;
|
|
const Page = __webpack_require__(23).Page;
|
|
const Form = __webpack_require__(24).Form;
|
|
|
|
window.app = {
|
|
setup_form() {
|
|
this.edit_page = new Page('Edit To Do');
|
|
this.edit_page.form = new Form({
|
|
doctype: 'ToDo',
|
|
parent: this.edit_page.body
|
|
});
|
|
this.edit_page.form.make();
|
|
},
|
|
setup_list() {
|
|
this.todo_list = new Page('ToDo List');
|
|
this.todo_list.list = new ListView({
|
|
doctype: 'ToDo',
|
|
parent: this.todo_list.body
|
|
});
|
|
}
|
|
};
|
|
|
|
// start server
|
|
client.start({
|
|
server: 'localhost:8000',
|
|
container: document.querySelector('.container'),
|
|
}).then(() => {
|
|
const todo = __webpack_require__(29);
|
|
frappe.init_controller('todo', todo);
|
|
|
|
app.home = frappe.ui.add('a', '', frappe.ui.add('p', null, frappe.sidebar));
|
|
app.home.textContent = 'Home';
|
|
app.home.href = '#';
|
|
|
|
app.make_new = frappe.ui.add('a', '', frappe.ui.add('p', null, frappe.sidebar));
|
|
app.make_new.textContent = 'New ToDo';
|
|
app.make_new.href = '#new/todo';
|
|
|
|
// make pages
|
|
app.setup_list();
|
|
app.setup_form();
|
|
|
|
// to do list
|
|
frappe.router.add('default', () => {
|
|
app.todo_list.show();
|
|
app.todo_list.list.run();
|
|
});
|
|
|
|
// setup todo form
|
|
frappe.router.add('edit/todo/:name', async (params) => {
|
|
app.doc = await frappe.get_doc('ToDo', params.name);
|
|
app.edit_page.show();
|
|
app.edit_page.form.use(app.doc);
|
|
});
|
|
|
|
// setup todo new
|
|
frappe.router.add('new/todo', async (params) => {
|
|
app.doc = await frappe.get_doc({doctype: 'ToDo'});
|
|
app.doc.set_name();
|
|
app.edit_page.show();
|
|
app.edit_page.form.use(app.doc, true);
|
|
});
|
|
|
|
frappe.router.show(window.location.hash);
|
|
});
|
|
|
|
/***/ }),
|
|
/* 5 */
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
// style-loader: Adds some css to the DOM by adding a <style> tag
|
|
|
|
// load the styles
|
|
var content = __webpack_require__(6);
|
|
if(typeof content === 'string') content = [[module.i, content, '']];
|
|
// Prepare cssTransformation
|
|
var transform;
|
|
|
|
var options = {"hmr":true}
|
|
options.transform = transform
|
|
// add the styles to the DOM
|
|
var update = __webpack_require__(8)(content, options);
|
|
if(content.locals) module.exports = content.locals;
|
|
// Hot Module Replacement
|
|
if(false) {
|
|
// When the styles change, update the <style> tags
|
|
if(!content.locals) {
|
|
module.hot.accept("!!../node_modules/css-loader/index.js!../node_modules/postcss-loader/lib/index.js??ref--0-2!../node_modules/sass-loader/lib/loader.js??ref--0-3!./main.scss", function() {
|
|
var newContent = require("!!../node_modules/css-loader/index.js!../node_modules/postcss-loader/lib/index.js??ref--0-2!../node_modules/sass-loader/lib/loader.js??ref--0-3!./main.scss");
|
|
if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];
|
|
update(newContent);
|
|
});
|
|
}
|
|
// When the module is disposed, remove the <style> tags
|
|
module.hot.dispose(function() { update(); });
|
|
}
|
|
|
|
/***/ }),
|
|
/* 6 */
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
exports = module.exports = __webpack_require__(7)(false);
|
|
// imports
|
|
|
|
|
|
// module
|
|
exports.push([module.i, "/*!\n * Bootstrap v4.0.0-alpha.6 (https://getbootstrap.com)\n * Copyright 2011-2017 The Bootstrap Authors\n * Copyright 2011-2017 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n/*! normalize.css v5.0.0 | MIT License | github.com/necolas/normalize.css */\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -ms-text-size-adjust: 100%;\n -webkit-text-size-adjust: 100%; }\nbody {\n margin: 0; }\narticle, aside, footer, header, nav, section {\n display: block; }\nh1 {\n font-size: 2em;\n margin: 0.67em 0; }\nfigcaption, figure, main {\n display: block; }\nfigure {\n margin: 1em 40px; }\nhr {\n -webkit-box-sizing: content-box;\n box-sizing: content-box;\n height: 0;\n overflow: visible; }\npre {\n font-family: monospace, monospace;\n font-size: 1em; }\na {\n background-color: transparent;\n -webkit-text-decoration-skip: objects; }\na:active, a:hover {\n outline-width: 0; }\nabbr[title] {\n border-bottom: none;\n text-decoration: underline;\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted; }\nb, strong {\n font-weight: inherit; }\nb, strong {\n font-weight: bolder; }\ncode, kbd, samp {\n font-family: monospace, monospace;\n font-size: 1em; }\ndfn {\n font-style: italic; }\nmark {\n background-color: #ff0;\n color: #000; }\nsmall {\n font-size: 80%; }\nsub, sup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline; }\nsub {\n bottom: -0.25em; }\nsup {\n top: -0.5em; }\naudio, video {\n display: inline-block; }\naudio:not([controls]) {\n display: none;\n height: 0; }\nimg {\n border-style: none; }\nsvg:not(:root) {\n overflow: hidden; }\nbutton, input, optgroup, select, textarea {\n font-family: sans-serif;\n font-size: 100%;\n line-height: 1.15;\n margin: 0; }\nbutton, input {\n overflow: visible; }\nbutton, select {\n text-transform: none; }\nbutton, html [type=\"button\"], [type=\"reset\"], [type=\"submit\"] {\n -webkit-appearance: button; }\nbutton::-moz-focus-inner, [type=\"button\"]::-moz-focus-inner, [type=\"reset\"]::-moz-focus-inner, [type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0; }\nbutton:-moz-focusring, [type=\"button\"]:-moz-focusring, [type=\"reset\"]:-moz-focusring, [type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText; }\nfieldset {\n border: 1px solid #c0c0c0;\n margin: 0 2px;\n padding: 0.35em 0.625em 0.75em; }\nlegend {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n color: inherit;\n display: table;\n max-width: 100%;\n padding: 0;\n white-space: normal; }\nprogress {\n display: inline-block;\n vertical-align: baseline; }\ntextarea {\n overflow: auto; }\n[type=\"checkbox\"], [type=\"radio\"] {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n padding: 0; }\n[type=\"number\"]::-webkit-inner-spin-button, [type=\"number\"]::-webkit-outer-spin-button {\n height: auto; }\n[type=\"search\"] {\n -webkit-appearance: textfield;\n outline-offset: -2px; }\n[type=\"search\"]::-webkit-search-cancel-button, [type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none; }\n::-webkit-file-upload-button {\n -webkit-appearance: button;\n font: inherit; }\ndetails, menu {\n display: block; }\nsummary {\n display: list-item; }\ncanvas {\n display: inline-block; }\ntemplate {\n display: none; }\n[hidden] {\n display: none; }\n@media print {\n *, *::before, *::after, p::first-letter, div::first-letter, blockquote::first-letter, li::first-letter, p::first-line, div::first-line, blockquote::first-line, li::first-line {\n text-shadow: none !important;\n -webkit-box-shadow: none !important;\n box-shadow: none !important; }\n a, a:visited {\n text-decoration: underline; }\n abbr[title]::after {\n content: \" (\" attr(title) \")\"; }\n pre {\n white-space: pre-wrap !important; }\n pre, blockquote {\n border: 1px solid #999;\n page-break-inside: avoid; }\n thead {\n display: table-header-group; }\n tr, img {\n page-break-inside: avoid; }\n p, h2, h3 {\n orphans: 3;\n widows: 3; }\n h2, h3 {\n page-break-after: avoid; }\n .navbar {\n display: none; }\n .badge {\n border: 1px solid #000; }\n .table {\n border-collapse: collapse !important; }\n .table td, .table th {\n background-color: #fff !important; }\n .table-bordered th, .table-bordered td {\n border: 1px solid #ddd !important; } }\nhtml {\n -webkit-box-sizing: border-box;\n box-sizing: border-box; }\n*, *::before, *::after {\n -webkit-box-sizing: inherit;\n box-sizing: inherit; }\n@-ms-viewport {\n width: device-width; }\nhtml {\n -ms-overflow-style: scrollbar;\n -webkit-tap-highlight-color: transparent; }\nbody {\n font-family: -apple-system, system-ui, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;\n font-size: 1rem;\n font-weight: normal;\n line-height: 1.5;\n color: #292b2c;\n background-color: #fff; }\n[tabindex=\"-1\"]:focus {\n outline: none !important; }\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: .5rem; }\np {\n margin-top: 0;\n margin-bottom: 1rem; }\nabbr[title], abbr[data-original-title] {\n cursor: help; }\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit; }\nol, ul, dl {\n margin-top: 0;\n margin-bottom: 1rem; }\nol ol, ul ul, ol ul, ul ol {\n margin-bottom: 0; }\ndt {\n font-weight: bold; }\ndd {\n margin-bottom: .5rem;\n margin-left: 0; }\nblockquote {\n margin: 0 0 1rem; }\na {\n color: #0275d8;\n text-decoration: none; }\na:focus, a:hover {\n color: #014c8c;\n text-decoration: underline; }\na:not([href]):not([tabindex]) {\n color: inherit;\n text-decoration: none; }\na:not([href]):not([tabindex]):focus, a:not([href]):not([tabindex]):hover {\n color: inherit;\n text-decoration: none; }\na:not([href]):not([tabindex]):focus {\n outline: 0; }\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto; }\nfigure {\n margin: 0 0 1rem; }\nimg {\n vertical-align: middle; }\n[role=\"button\"] {\n cursor: pointer; }\na, area, button, [role=\"button\"], input, label, select, summary, textarea {\n -ms-touch-action: manipulation;\n touch-action: manipulation; }\ntable {\n border-collapse: collapse;\n background-color: transparent; }\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #636c72;\n text-align: left;\n caption-side: bottom; }\nth {\n text-align: left; }\nlabel {\n display: inline-block;\n margin-bottom: .5rem; }\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color; }\ninput, button, select, textarea {\n line-height: inherit; }\ninput[type=\"radio\"]:disabled, input[type=\"checkbox\"]:disabled {\n cursor: not-allowed; }\ninput[type=\"date\"], input[type=\"time\"], input[type=\"datetime-local\"], input[type=\"month\"] {\n -webkit-appearance: listbox; }\ntextarea {\n resize: vertical; }\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0; }\nlegend {\n display: block;\n width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit; }\ninput[type=\"search\"] {\n -webkit-appearance: none; }\noutput {\n display: inline-block; }\n[hidden] {\n display: none !important; }\nh1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {\n margin-bottom: 0.5rem;\n font-family: inherit;\n font-weight: 500;\n line-height: 1.1;\n color: inherit; }\nh1, .h1 {\n font-size: 2.5rem; }\nh2, .h2 {\n font-size: 2rem; }\nh3, .h3 {\n font-size: 1.75rem; }\nh4, .h4 {\n font-size: 1.5rem; }\nh5, .h5 {\n font-size: 1.25rem; }\nh6, .h6 {\n font-size: 1rem; }\n.lead {\n font-size: 1.25rem;\n font-weight: 300; }\n.display-1 {\n font-size: 6rem;\n font-weight: 300;\n line-height: 1.1; }\n.display-2 {\n font-size: 5.5rem;\n font-weight: 300;\n line-height: 1.1; }\n.display-3 {\n font-size: 4.5rem;\n font-weight: 300;\n line-height: 1.1; }\n.display-4 {\n font-size: 3.5rem;\n font-weight: 300;\n line-height: 1.1; }\nhr {\n margin-top: 1rem;\n margin-bottom: 1rem;\n border: 0;\n border-top: 1px solid rgba(0, 0, 0, 0.1); }\nsmall, .small {\n font-size: 80%;\n font-weight: normal; }\nmark, .mark {\n padding: 0.2em;\n background-color: #fcf8e3; }\n.list-unstyled {\n padding-left: 0;\n list-style: none; }\n.list-inline {\n padding-left: 0;\n list-style: none; }\n.list-inline-item {\n display: inline-block; }\n.list-inline-item:not(:last-child) {\n margin-right: 5px; }\n.initialism {\n font-size: 90%;\n text-transform: uppercase; }\n.blockquote {\n padding: 0.5rem 1rem;\n margin-bottom: 1rem;\n font-size: 1.25rem;\n border-left: 0.25rem solid #eceeef; }\n.blockquote-footer {\n display: block;\n font-size: 80%;\n color: #636c72; }\n.blockquote-footer::before {\n content: \"\\2014 \\A0\"; }\n.blockquote-reverse {\n padding-right: 1rem;\n padding-left: 0;\n text-align: right;\n border-right: 0.25rem solid #eceeef;\n border-left: 0; }\n.blockquote-reverse .blockquote-footer::before {\n content: \"\"; }\n.blockquote-reverse .blockquote-footer::after {\n content: \"\\A0 \\2014\"; }\n.img-fluid {\n max-width: 100%;\n height: auto; }\n.img-thumbnail {\n padding: 0.25rem;\n background-color: #fff;\n border: 1px solid #ddd;\n border-radius: 0.25rem;\n -webkit-transition: all 0.2s ease-in-out;\n transition: all 0.2s ease-in-out;\n max-width: 100%;\n height: auto; }\n.figure {\n display: inline-block; }\n.figure-img {\n margin-bottom: 0.5rem;\n line-height: 1; }\n.figure-caption {\n font-size: 90%;\n color: #636c72; }\ncode, kbd, pre, samp {\n font-family: Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace; }\ncode {\n padding: 0.2rem 0.4rem;\n font-size: 90%;\n color: #bd4147;\n background-color: #f7f7f9;\n border-radius: 0.25rem; }\na > code {\n padding: 0;\n color: inherit;\n background-color: inherit; }\nkbd {\n padding: 0.2rem 0.4rem;\n font-size: 90%;\n color: #fff;\n background-color: #292b2c;\n border-radius: 0.2rem; }\nkbd kbd {\n padding: 0;\n font-size: 100%;\n font-weight: bold; }\npre {\n display: block;\n margin-top: 0;\n margin-bottom: 1rem;\n font-size: 90%;\n color: #292b2c; }\npre code {\n padding: 0;\n font-size: inherit;\n color: inherit;\n background-color: transparent;\n border-radius: 0; }\n.pre-scrollable {\n max-height: 340px;\n overflow-y: scroll; }\n.container {\n position: relative;\n margin-left: auto;\n margin-right: auto;\n padding-right: 15px;\n padding-left: 15px; }\n@media (min-width: 576px) {\n .container {\n padding-right: 15px;\n padding-left: 15px; } }\n@media (min-width: 768px) {\n .container {\n padding-right: 15px;\n padding-left: 15px; } }\n@media (min-width: 992px) {\n .container {\n padding-right: 15px;\n padding-left: 15px; } }\n@media (min-width: 1200px) {\n .container {\n padding-right: 15px;\n padding-left: 15px; } }\n@media (min-width: 576px) {\n .container {\n width: 540px;\n max-width: 100%; } }\n@media (min-width: 768px) {\n .container {\n width: 720px;\n max-width: 100%; } }\n@media (min-width: 992px) {\n .container {\n width: 960px;\n max-width: 100%; } }\n@media (min-width: 1200px) {\n .container {\n width: 1140px;\n max-width: 100%; } }\n.container-fluid {\n position: relative;\n margin-left: auto;\n margin-right: auto;\n padding-right: 15px;\n padding-left: 15px; }\n@media (min-width: 576px) {\n .container-fluid {\n padding-right: 15px;\n padding-left: 15px; } }\n@media (min-width: 768px) {\n .container-fluid {\n padding-right: 15px;\n padding-left: 15px; } }\n@media (min-width: 992px) {\n .container-fluid {\n padding-right: 15px;\n padding-left: 15px; } }\n@media (min-width: 1200px) {\n .container-fluid {\n padding-right: 15px;\n padding-left: 15px; } }\n.row {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px; }\n@media (min-width: 576px) {\n .row {\n margin-right: -15px;\n margin-left: -15px; } }\n@media (min-width: 768px) {\n .row {\n margin-right: -15px;\n margin-left: -15px; } }\n@media (min-width: 992px) {\n .row {\n margin-right: -15px;\n margin-left: -15px; } }\n@media (min-width: 1200px) {\n .row {\n margin-right: -15px;\n margin-left: -15px; } }\n.no-gutters {\n margin-right: 0;\n margin-left: 0; }\n.no-gutters > .col, .no-gutters > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0; }\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl {\n position: relative;\n width: 100%;\n min-height: 1px;\n padding-right: 15px;\n padding-left: 15px; }\n@media (min-width: 576px) {\n .col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl {\n padding-right: 15px;\n padding-left: 15px; } }\n@media (min-width: 768px) {\n .col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl {\n padding-right: 15px;\n padding-left: 15px; } }\n@media (min-width: 992px) {\n .col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl {\n padding-right: 15px;\n padding-left: 15px; } }\n@media (min-width: 1200px) {\n .col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl {\n padding-right: 15px;\n padding-left: 15px; } }\n.col {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -webkit-box-flex: 1;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%; }\n.col-auto {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto; }\n.col-1 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 8.33333%;\n flex: 0 0 8.33333%;\n max-width: 8.33333%; }\n.col-2 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 16.66667%;\n flex: 0 0 16.66667%;\n max-width: 16.66667%; }\n.col-3 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%; }\n.col-4 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 33.33333%;\n flex: 0 0 33.33333%;\n max-width: 33.33333%; }\n.col-5 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 41.66667%;\n flex: 0 0 41.66667%;\n max-width: 41.66667%; }\n.col-6 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%; }\n.col-7 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 58.33333%;\n flex: 0 0 58.33333%;\n max-width: 58.33333%; }\n.col-8 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 66.66667%;\n flex: 0 0 66.66667%;\n max-width: 66.66667%; }\n.col-9 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%; }\n.col-10 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 83.33333%;\n flex: 0 0 83.33333%;\n max-width: 83.33333%; }\n.col-11 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 91.66667%;\n flex: 0 0 91.66667%;\n max-width: 91.66667%; }\n.col-12 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%; }\n.pull-0 {\n right: auto; }\n.pull-1 {\n right: 8.33333%; }\n.pull-2 {\n right: 16.66667%; }\n.pull-3 {\n right: 25%; }\n.pull-4 {\n right: 33.33333%; }\n.pull-5 {\n right: 41.66667%; }\n.pull-6 {\n right: 50%; }\n.pull-7 {\n right: 58.33333%; }\n.pull-8 {\n right: 66.66667%; }\n.pull-9 {\n right: 75%; }\n.pull-10 {\n right: 83.33333%; }\n.pull-11 {\n right: 91.66667%; }\n.pull-12 {\n right: 100%; }\n.push-0 {\n left: auto; }\n.push-1 {\n left: 8.33333%; }\n.push-2 {\n left: 16.66667%; }\n.push-3 {\n left: 25%; }\n.push-4 {\n left: 33.33333%; }\n.push-5 {\n left: 41.66667%; }\n.push-6 {\n left: 50%; }\n.push-7 {\n left: 58.33333%; }\n.push-8 {\n left: 66.66667%; }\n.push-9 {\n left: 75%; }\n.push-10 {\n left: 83.33333%; }\n.push-11 {\n left: 91.66667%; }\n.push-12 {\n left: 100%; }\n.offset-1 {\n margin-left: 8.33333%; }\n.offset-2 {\n margin-left: 16.66667%; }\n.offset-3 {\n margin-left: 25%; }\n.offset-4 {\n margin-left: 33.33333%; }\n.offset-5 {\n margin-left: 41.66667%; }\n.offset-6 {\n margin-left: 50%; }\n.offset-7 {\n margin-left: 58.33333%; }\n.offset-8 {\n margin-left: 66.66667%; }\n.offset-9 {\n margin-left: 75%; }\n.offset-10 {\n margin-left: 83.33333%; }\n.offset-11 {\n margin-left: 91.66667%; }\n@media (min-width: 576px) {\n .col-sm {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -webkit-box-flex: 1;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%; }\n .col-sm-auto {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto; }\n .col-sm-1 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 8.33333%;\n flex: 0 0 8.33333%;\n max-width: 8.33333%; }\n .col-sm-2 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 16.66667%;\n flex: 0 0 16.66667%;\n max-width: 16.66667%; }\n .col-sm-3 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%; }\n .col-sm-4 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 33.33333%;\n flex: 0 0 33.33333%;\n max-width: 33.33333%; }\n .col-sm-5 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 41.66667%;\n flex: 0 0 41.66667%;\n max-width: 41.66667%; }\n .col-sm-6 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%; }\n .col-sm-7 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 58.33333%;\n flex: 0 0 58.33333%;\n max-width: 58.33333%; }\n .col-sm-8 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 66.66667%;\n flex: 0 0 66.66667%;\n max-width: 66.66667%; }\n .col-sm-9 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%; }\n .col-sm-10 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 83.33333%;\n flex: 0 0 83.33333%;\n max-width: 83.33333%; }\n .col-sm-11 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 91.66667%;\n flex: 0 0 91.66667%;\n max-width: 91.66667%; }\n .col-sm-12 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%; }\n .pull-sm-0 {\n right: auto; }\n .pull-sm-1 {\n right: 8.33333%; }\n .pull-sm-2 {\n right: 16.66667%; }\n .pull-sm-3 {\n right: 25%; }\n .pull-sm-4 {\n right: 33.33333%; }\n .pull-sm-5 {\n right: 41.66667%; }\n .pull-sm-6 {\n right: 50%; }\n .pull-sm-7 {\n right: 58.33333%; }\n .pull-sm-8 {\n right: 66.66667%; }\n .pull-sm-9 {\n right: 75%; }\n .pull-sm-10 {\n right: 83.33333%; }\n .pull-sm-11 {\n right: 91.66667%; }\n .pull-sm-12 {\n right: 100%; }\n .push-sm-0 {\n left: auto; }\n .push-sm-1 {\n left: 8.33333%; }\n .push-sm-2 {\n left: 16.66667%; }\n .push-sm-3 {\n left: 25%; }\n .push-sm-4 {\n left: 33.33333%; }\n .push-sm-5 {\n left: 41.66667%; }\n .push-sm-6 {\n left: 50%; }\n .push-sm-7 {\n left: 58.33333%; }\n .push-sm-8 {\n left: 66.66667%; }\n .push-sm-9 {\n left: 75%; }\n .push-sm-10 {\n left: 83.33333%; }\n .push-sm-11 {\n left: 91.66667%; }\n .push-sm-12 {\n left: 100%; }\n .offset-sm-0 {\n margin-left: 0%; }\n .offset-sm-1 {\n margin-left: 8.33333%; }\n .offset-sm-2 {\n margin-left: 16.66667%; }\n .offset-sm-3 {\n margin-left: 25%; }\n .offset-sm-4 {\n margin-left: 33.33333%; }\n .offset-sm-5 {\n margin-left: 41.66667%; }\n .offset-sm-6 {\n margin-left: 50%; }\n .offset-sm-7 {\n margin-left: 58.33333%; }\n .offset-sm-8 {\n margin-left: 66.66667%; }\n .offset-sm-9 {\n margin-left: 75%; }\n .offset-sm-10 {\n margin-left: 83.33333%; }\n .offset-sm-11 {\n margin-left: 91.66667%; } }\n@media (min-width: 768px) {\n .col-md {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -webkit-box-flex: 1;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%; }\n .col-md-auto {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto; }\n .col-md-1 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 8.33333%;\n flex: 0 0 8.33333%;\n max-width: 8.33333%; }\n .col-md-2 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 16.66667%;\n flex: 0 0 16.66667%;\n max-width: 16.66667%; }\n .col-md-3 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%; }\n .col-md-4 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 33.33333%;\n flex: 0 0 33.33333%;\n max-width: 33.33333%; }\n .col-md-5 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 41.66667%;\n flex: 0 0 41.66667%;\n max-width: 41.66667%; }\n .col-md-6 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%; }\n .col-md-7 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 58.33333%;\n flex: 0 0 58.33333%;\n max-width: 58.33333%; }\n .col-md-8 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 66.66667%;\n flex: 0 0 66.66667%;\n max-width: 66.66667%; }\n .col-md-9 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%; }\n .col-md-10 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 83.33333%;\n flex: 0 0 83.33333%;\n max-width: 83.33333%; }\n .col-md-11 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 91.66667%;\n flex: 0 0 91.66667%;\n max-width: 91.66667%; }\n .col-md-12 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%; }\n .pull-md-0 {\n right: auto; }\n .pull-md-1 {\n right: 8.33333%; }\n .pull-md-2 {\n right: 16.66667%; }\n .pull-md-3 {\n right: 25%; }\n .pull-md-4 {\n right: 33.33333%; }\n .pull-md-5 {\n right: 41.66667%; }\n .pull-md-6 {\n right: 50%; }\n .pull-md-7 {\n right: 58.33333%; }\n .pull-md-8 {\n right: 66.66667%; }\n .pull-md-9 {\n right: 75%; }\n .pull-md-10 {\n right: 83.33333%; }\n .pull-md-11 {\n right: 91.66667%; }\n .pull-md-12 {\n right: 100%; }\n .push-md-0 {\n left: auto; }\n .push-md-1 {\n left: 8.33333%; }\n .push-md-2 {\n left: 16.66667%; }\n .push-md-3 {\n left: 25%; }\n .push-md-4 {\n left: 33.33333%; }\n .push-md-5 {\n left: 41.66667%; }\n .push-md-6 {\n left: 50%; }\n .push-md-7 {\n left: 58.33333%; }\n .push-md-8 {\n left: 66.66667%; }\n .push-md-9 {\n left: 75%; }\n .push-md-10 {\n left: 83.33333%; }\n .push-md-11 {\n left: 91.66667%; }\n .push-md-12 {\n left: 100%; }\n .offset-md-0 {\n margin-left: 0%; }\n .offset-md-1 {\n margin-left: 8.33333%; }\n .offset-md-2 {\n margin-left: 16.66667%; }\n .offset-md-3 {\n margin-left: 25%; }\n .offset-md-4 {\n margin-left: 33.33333%; }\n .offset-md-5 {\n margin-left: 41.66667%; }\n .offset-md-6 {\n margin-left: 50%; }\n .offset-md-7 {\n margin-left: 58.33333%; }\n .offset-md-8 {\n margin-left: 66.66667%; }\n .offset-md-9 {\n margin-left: 75%; }\n .offset-md-10 {\n margin-left: 83.33333%; }\n .offset-md-11 {\n margin-left: 91.66667%; } }\n@media (min-width: 992px) {\n .col-lg {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -webkit-box-flex: 1;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%; }\n .col-lg-auto {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto; }\n .col-lg-1 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 8.33333%;\n flex: 0 0 8.33333%;\n max-width: 8.33333%; }\n .col-lg-2 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 16.66667%;\n flex: 0 0 16.66667%;\n max-width: 16.66667%; }\n .col-lg-3 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%; }\n .col-lg-4 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 33.33333%;\n flex: 0 0 33.33333%;\n max-width: 33.33333%; }\n .col-lg-5 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 41.66667%;\n flex: 0 0 41.66667%;\n max-width: 41.66667%; }\n .col-lg-6 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%; }\n .col-lg-7 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 58.33333%;\n flex: 0 0 58.33333%;\n max-width: 58.33333%; }\n .col-lg-8 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 66.66667%;\n flex: 0 0 66.66667%;\n max-width: 66.66667%; }\n .col-lg-9 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%; }\n .col-lg-10 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 83.33333%;\n flex: 0 0 83.33333%;\n max-width: 83.33333%; }\n .col-lg-11 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 91.66667%;\n flex: 0 0 91.66667%;\n max-width: 91.66667%; }\n .col-lg-12 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%; }\n .pull-lg-0 {\n right: auto; }\n .pull-lg-1 {\n right: 8.33333%; }\n .pull-lg-2 {\n right: 16.66667%; }\n .pull-lg-3 {\n right: 25%; }\n .pull-lg-4 {\n right: 33.33333%; }\n .pull-lg-5 {\n right: 41.66667%; }\n .pull-lg-6 {\n right: 50%; }\n .pull-lg-7 {\n right: 58.33333%; }\n .pull-lg-8 {\n right: 66.66667%; }\n .pull-lg-9 {\n right: 75%; }\n .pull-lg-10 {\n right: 83.33333%; }\n .pull-lg-11 {\n right: 91.66667%; }\n .pull-lg-12 {\n right: 100%; }\n .push-lg-0 {\n left: auto; }\n .push-lg-1 {\n left: 8.33333%; }\n .push-lg-2 {\n left: 16.66667%; }\n .push-lg-3 {\n left: 25%; }\n .push-lg-4 {\n left: 33.33333%; }\n .push-lg-5 {\n left: 41.66667%; }\n .push-lg-6 {\n left: 50%; }\n .push-lg-7 {\n left: 58.33333%; }\n .push-lg-8 {\n left: 66.66667%; }\n .push-lg-9 {\n left: 75%; }\n .push-lg-10 {\n left: 83.33333%; }\n .push-lg-11 {\n left: 91.66667%; }\n .push-lg-12 {\n left: 100%; }\n .offset-lg-0 {\n margin-left: 0%; }\n .offset-lg-1 {\n margin-left: 8.33333%; }\n .offset-lg-2 {\n margin-left: 16.66667%; }\n .offset-lg-3 {\n margin-left: 25%; }\n .offset-lg-4 {\n margin-left: 33.33333%; }\n .offset-lg-5 {\n margin-left: 41.66667%; }\n .offset-lg-6 {\n margin-left: 50%; }\n .offset-lg-7 {\n margin-left: 58.33333%; }\n .offset-lg-8 {\n margin-left: 66.66667%; }\n .offset-lg-9 {\n margin-left: 75%; }\n .offset-lg-10 {\n margin-left: 83.33333%; }\n .offset-lg-11 {\n margin-left: 91.66667%; } }\n@media (min-width: 1200px) {\n .col-xl {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -webkit-box-flex: 1;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%; }\n .col-xl-auto {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto; }\n .col-xl-1 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 8.33333%;\n flex: 0 0 8.33333%;\n max-width: 8.33333%; }\n .col-xl-2 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 16.66667%;\n flex: 0 0 16.66667%;\n max-width: 16.66667%; }\n .col-xl-3 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%; }\n .col-xl-4 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 33.33333%;\n flex: 0 0 33.33333%;\n max-width: 33.33333%; }\n .col-xl-5 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 41.66667%;\n flex: 0 0 41.66667%;\n max-width: 41.66667%; }\n .col-xl-6 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%; }\n .col-xl-7 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 58.33333%;\n flex: 0 0 58.33333%;\n max-width: 58.33333%; }\n .col-xl-8 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 66.66667%;\n flex: 0 0 66.66667%;\n max-width: 66.66667%; }\n .col-xl-9 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%; }\n .col-xl-10 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 83.33333%;\n flex: 0 0 83.33333%;\n max-width: 83.33333%; }\n .col-xl-11 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 91.66667%;\n flex: 0 0 91.66667%;\n max-width: 91.66667%; }\n .col-xl-12 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%; }\n .pull-xl-0 {\n right: auto; }\n .pull-xl-1 {\n right: 8.33333%; }\n .pull-xl-2 {\n right: 16.66667%; }\n .pull-xl-3 {\n right: 25%; }\n .pull-xl-4 {\n right: 33.33333%; }\n .pull-xl-5 {\n right: 41.66667%; }\n .pull-xl-6 {\n right: 50%; }\n .pull-xl-7 {\n right: 58.33333%; }\n .pull-xl-8 {\n right: 66.66667%; }\n .pull-xl-9 {\n right: 75%; }\n .pull-xl-10 {\n right: 83.33333%; }\n .pull-xl-11 {\n right: 91.66667%; }\n .pull-xl-12 {\n right: 100%; }\n .push-xl-0 {\n left: auto; }\n .push-xl-1 {\n left: 8.33333%; }\n .push-xl-2 {\n left: 16.66667%; }\n .push-xl-3 {\n left: 25%; }\n .push-xl-4 {\n left: 33.33333%; }\n .push-xl-5 {\n left: 41.66667%; }\n .push-xl-6 {\n left: 50%; }\n .push-xl-7 {\n left: 58.33333%; }\n .push-xl-8 {\n left: 66.66667%; }\n .push-xl-9 {\n left: 75%; }\n .push-xl-10 {\n left: 83.33333%; }\n .push-xl-11 {\n left: 91.66667%; }\n .push-xl-12 {\n left: 100%; }\n .offset-xl-0 {\n margin-left: 0%; }\n .offset-xl-1 {\n margin-left: 8.33333%; }\n .offset-xl-2 {\n margin-left: 16.66667%; }\n .offset-xl-3 {\n margin-left: 25%; }\n .offset-xl-4 {\n margin-left: 33.33333%; }\n .offset-xl-5 {\n margin-left: 41.66667%; }\n .offset-xl-6 {\n margin-left: 50%; }\n .offset-xl-7 {\n margin-left: 58.33333%; }\n .offset-xl-8 {\n margin-left: 66.66667%; }\n .offset-xl-9 {\n margin-left: 75%; }\n .offset-xl-10 {\n margin-left: 83.33333%; }\n .offset-xl-11 {\n margin-left: 91.66667%; } }\n.table {\n width: 100%;\n max-width: 100%;\n margin-bottom: 1rem; }\n.table th, .table td {\n padding: 0.75rem;\n vertical-align: top;\n border-top: 1px solid #eceeef; }\n.table thead th {\n vertical-align: bottom;\n border-bottom: 2px solid #eceeef; }\n.table tbody + tbody {\n border-top: 2px solid #eceeef; }\n.table .table {\n background-color: #fff; }\n.table-sm th, .table-sm td {\n padding: 0.3rem; }\n.table-bordered {\n border: 1px solid #eceeef; }\n.table-bordered th, .table-bordered td {\n border: 1px solid #eceeef; }\n.table-bordered thead th, .table-bordered thead td {\n border-bottom-width: 2px; }\n.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(0, 0, 0, 0.05); }\n.table-hover tbody tr:hover {\n background-color: rgba(0, 0, 0, 0.075); }\n.table-active, .table-active > th, .table-active > td {\n background-color: rgba(0, 0, 0, 0.075); }\n.table-hover .table-active:hover {\n background-color: rgba(0, 0, 0, 0.075); }\n.table-hover .table-active:hover > td, .table-hover .table-active:hover > th {\n background-color: rgba(0, 0, 0, 0.075); }\n.table-success, .table-success > th, .table-success > td {\n background-color: #dff0d8; }\n.table-hover .table-success:hover {\n background-color: #d0e9c6; }\n.table-hover .table-success:hover > td, .table-hover .table-success:hover > th {\n background-color: #d0e9c6; }\n.table-info, .table-info > th, .table-info > td {\n background-color: #d9edf7; }\n.table-hover .table-info:hover {\n background-color: #c4e3f3; }\n.table-hover .table-info:hover > td, .table-hover .table-info:hover > th {\n background-color: #c4e3f3; }\n.table-warning, .table-warning > th, .table-warning > td {\n background-color: #fcf8e3; }\n.table-hover .table-warning:hover {\n background-color: #faf2cc; }\n.table-hover .table-warning:hover > td, .table-hover .table-warning:hover > th {\n background-color: #faf2cc; }\n.table-danger, .table-danger > th, .table-danger > td {\n background-color: #f2dede; }\n.table-hover .table-danger:hover {\n background-color: #ebcccc; }\n.table-hover .table-danger:hover > td, .table-hover .table-danger:hover > th {\n background-color: #ebcccc; }\n.thead-inverse th {\n color: #fff;\n background-color: #292b2c; }\n.thead-default th {\n color: #464a4c;\n background-color: #eceeef; }\n.table-inverse {\n color: #fff;\n background-color: #292b2c; }\n.table-inverse th, .table-inverse td, .table-inverse thead th {\n border-color: #fff; }\n.table-inverse.table-bordered {\n border: 0; }\n.table-responsive {\n display: block;\n width: 100%;\n overflow-x: auto;\n -ms-overflow-style: -ms-autohiding-scrollbar; }\n.table-responsive.table-bordered {\n border: 0; }\n.form-control {\n display: block;\n width: 100%;\n padding: 0.5rem 0.75rem;\n font-size: 1rem;\n line-height: 1.25;\n color: #464a4c;\n background-color: #fff;\n background-image: none;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 0.25rem;\n -webkit-transition: border-color ease-in-out 0.15s, -webkit-box-shadow ease-in-out 0.15s;\n transition: border-color ease-in-out 0.15s, -webkit-box-shadow ease-in-out 0.15s;\n transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;\n transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s, -webkit-box-shadow ease-in-out 0.15s; }\n.form-control::-ms-expand {\n background-color: transparent;\n border: 0; }\n.form-control:focus {\n color: #464a4c;\n background-color: #fff;\n border-color: #5cb3fd;\n outline: none; }\n.form-control::-webkit-input-placeholder {\n color: #636c72;\n opacity: 1; }\n.form-control:-ms-input-placeholder {\n color: #636c72;\n opacity: 1; }\n.form-control::-ms-input-placeholder {\n color: #636c72;\n opacity: 1; }\n.form-control::placeholder {\n color: #636c72;\n opacity: 1; }\n.form-control:disabled, .form-control[readonly] {\n background-color: #eceeef;\n opacity: 1; }\n.form-control:disabled {\n cursor: not-allowed; }\nselect.form-control:not([size]):not([multiple]) {\n height: calc(2.25rem + 2px); }\nselect.form-control:focus::-ms-value {\n color: #464a4c;\n background-color: #fff; }\n.form-control-file, .form-control-range {\n display: block; }\n.col-form-label {\n padding-top: calc(0.5rem - 1px * 2);\n padding-bottom: calc(0.5rem - 1px * 2);\n margin-bottom: 0; }\n.col-form-label-lg {\n padding-top: calc(0.75rem - 1px * 2);\n padding-bottom: calc(0.75rem - 1px * 2);\n font-size: 1.25rem; }\n.col-form-label-sm {\n padding-top: calc(0.25rem - 1px * 2);\n padding-bottom: calc(0.25rem - 1px * 2);\n font-size: 0.875rem; }\n.col-form-legend {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n margin-bottom: 0;\n font-size: 1rem; }\n.form-control-static {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n margin-bottom: 0;\n line-height: 1.25;\n border: solid transparent;\n border-width: 1px 0; }\n.form-control-static.form-control-sm, .input-group-sm > .form-control-static.form-control, .input-group-sm > .form-control-static.input-group-addon, .input-group-sm > .input-group-btn > .form-control-static.btn, .form-control-static.form-control-lg, .input-group-lg > .form-control-static.form-control, .input-group-lg > .form-control-static.input-group-addon, .input-group-lg > .input-group-btn > .form-control-static.btn {\n padding-right: 0;\n padding-left: 0; }\n.form-control-sm, .input-group-sm > .form-control, .input-group-sm > .input-group-addon, .input-group-sm > .input-group-btn > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n border-radius: 0.2rem; }\nselect.form-control-sm:not([size]):not([multiple]), .input-group-sm > select.form-control:not([size]):not([multiple]), .input-group-sm > select.input-group-addon:not([size]):not([multiple]), .input-group-sm > .input-group-btn > select.btn:not([size]):not([multiple]) {\n height: 1.8125rem; }\n.form-control-lg, .input-group-lg > .form-control, .input-group-lg > .input-group-addon, .input-group-lg > .input-group-btn > .btn {\n padding: 0.75rem 1.5rem;\n font-size: 1.25rem;\n border-radius: 0.3rem; }\nselect.form-control-lg:not([size]):not([multiple]), .input-group-lg > select.form-control:not([size]):not([multiple]), .input-group-lg > select.input-group-addon:not([size]):not([multiple]), .input-group-lg > .input-group-btn > select.btn:not([size]):not([multiple]) {\n height: 3.16667rem; }\n.form-group {\n margin-bottom: 1rem; }\n.form-text {\n display: block;\n margin-top: 0.25rem; }\n.form-check {\n position: relative;\n display: block;\n margin-bottom: 0.5rem; }\n.form-check.disabled .form-check-label {\n color: #636c72;\n cursor: not-allowed; }\n.form-check-label {\n padding-left: 1.25rem;\n margin-bottom: 0;\n cursor: pointer; }\n.form-check-input {\n position: absolute;\n margin-top: 0.25rem;\n margin-left: -1.25rem; }\n.form-check-input:only-child {\n position: static; }\n.form-check-inline {\n display: inline-block; }\n.form-check-inline .form-check-label {\n vertical-align: middle; }\n.form-check-inline + .form-check-inline {\n margin-left: 0.75rem; }\n.form-control-feedback {\n margin-top: 0.25rem; }\n.form-control-success, .form-control-warning, .form-control-danger {\n padding-right: 2.25rem;\n background-repeat: no-repeat;\n background-position: center right 0.5625rem;\n background-size: 1.125rem 1.125rem; }\n.has-success .form-control-feedback, .has-success .form-control-label, .has-success .col-form-label, .has-success .form-check-label, .has-success .custom-control {\n color: #5cb85c; }\n.has-success .form-control {\n border-color: #5cb85c; }\n.has-success .input-group-addon {\n color: #5cb85c;\n border-color: #5cb85c;\n background-color: #eaf6ea; }\n.has-success .form-control-success {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%235cb85c' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E\"); }\n.has-warning .form-control-feedback, .has-warning .form-control-label, .has-warning .col-form-label, .has-warning .form-check-label, .has-warning .custom-control {\n color: #f0ad4e; }\n.has-warning .form-control {\n border-color: #f0ad4e; }\n.has-warning .input-group-addon {\n color: #f0ad4e;\n border-color: #f0ad4e;\n background-color: white; }\n.has-warning .form-control-warning {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23f0ad4e' d='M4.4 5.324h-.8v-2.46h.8zm0 1.42h-.8V5.89h.8zM3.76.63L.04 7.075c-.115.2.016.425.26.426h7.397c.242 0 .372-.226.258-.426C6.726 4.924 5.47 2.79 4.253.63c-.113-.174-.39-.174-.494 0z'/%3E%3C/svg%3E\"); }\n.has-danger .form-control-feedback, .has-danger .form-control-label, .has-danger .col-form-label, .has-danger .form-check-label, .has-danger .custom-control {\n color: #d9534f; }\n.has-danger .form-control {\n border-color: #d9534f; }\n.has-danger .input-group-addon {\n color: #d9534f;\n border-color: #d9534f;\n background-color: #fdf7f7; }\n.has-danger .form-control-danger {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23d9534f' viewBox='-2 -2 7 7'%3E%3Cpath stroke='%23d9534f' d='M0 0l3 3m0-3L0 3'/%3E%3Ccircle r='.5'/%3E%3Ccircle cx='3' r='.5'/%3E%3Ccircle cy='3' r='.5'/%3E%3Ccircle cx='3' cy='3' r='.5'/%3E%3C/svg%3E\"); }\n.form-inline {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-flow: row wrap;\n flex-flow: row wrap;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center; }\n.form-inline .form-check {\n width: 100%; }\n@media (min-width: 576px) {\n .form-inline label {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n margin-bottom: 0; }\n .form-inline .form-group {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-flex: 0;\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-flow: row wrap;\n flex-flow: row wrap;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n margin-bottom: 0; }\n .form-inline .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle; }\n .form-inline .form-control-static {\n display: inline-block; }\n .form-inline .input-group {\n width: auto; }\n .form-inline .form-control-label {\n margin-bottom: 0;\n vertical-align: middle; }\n .form-inline .form-check {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n width: auto;\n margin-top: 0;\n margin-bottom: 0; }\n .form-inline .form-check-label {\n padding-left: 0; }\n .form-inline .form-check-input {\n position: relative;\n margin-top: 0;\n margin-right: 0.25rem;\n margin-left: 0; }\n .form-inline .custom-control {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n padding-left: 0; }\n .form-inline .custom-control-indicator {\n position: static;\n display: inline-block;\n margin-right: 0.25rem;\n vertical-align: text-bottom; }\n .form-inline .has-feedback .form-control-feedback {\n top: 0; } }\n.btn {\n display: inline-block;\n font-weight: normal;\n line-height: 1.25;\n text-align: center;\n white-space: nowrap;\n vertical-align: middle;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n border: 1px solid transparent;\n padding: 0.5rem 1rem;\n font-size: 1rem;\n border-radius: 0.25rem;\n -webkit-transition: all 0.2s ease-in-out;\n transition: all 0.2s ease-in-out; }\n.btn:focus, .btn:hover {\n text-decoration: none; }\n.btn:focus, .btn.focus {\n outline: 0;\n -webkit-box-shadow: 0 0 0 2px rgba(2, 117, 216, 0.25);\n box-shadow: 0 0 0 2px rgba(2, 117, 216, 0.25); }\n.btn.disabled, .btn:disabled {\n cursor: not-allowed;\n opacity: .65; }\n.btn:active, .btn.active {\n background-image: none; }\na.btn.disabled, fieldset[disabled] a.btn {\n pointer-events: none; }\n.btn-primary {\n color: #fff;\n background-color: #0275d8;\n border-color: #0275d8; }\n.btn-primary:hover {\n color: #fff;\n background-color: #025aa5;\n border-color: #01549b; }\n.btn-primary:focus, .btn-primary.focus {\n -webkit-box-shadow: 0 0 0 2px rgba(2, 117, 216, 0.5);\n box-shadow: 0 0 0 2px rgba(2, 117, 216, 0.5); }\n.btn-primary.disabled, .btn-primary:disabled {\n background-color: #0275d8;\n border-color: #0275d8; }\n.btn-primary:active, .btn-primary.active, .show > .btn-primary.dropdown-toggle {\n color: #fff;\n background-color: #025aa5;\n background-image: none;\n border-color: #01549b; }\n.btn-secondary {\n color: #292b2c;\n background-color: #fff;\n border-color: #ccc; }\n.btn-secondary:hover {\n color: #292b2c;\n background-color: #e6e6e6;\n border-color: #adadad; }\n.btn-secondary:focus, .btn-secondary.focus {\n -webkit-box-shadow: 0 0 0 2px rgba(204, 204, 204, 0.5);\n box-shadow: 0 0 0 2px rgba(204, 204, 204, 0.5); }\n.btn-secondary.disabled, .btn-secondary:disabled {\n background-color: #fff;\n border-color: #ccc; }\n.btn-secondary:active, .btn-secondary.active, .show > .btn-secondary.dropdown-toggle {\n color: #292b2c;\n background-color: #e6e6e6;\n background-image: none;\n border-color: #adadad; }\n.btn-info {\n color: #fff;\n background-color: #5bc0de;\n border-color: #5bc0de; }\n.btn-info:hover {\n color: #fff;\n background-color: #31b0d5;\n border-color: #2aabd2; }\n.btn-info:focus, .btn-info.focus {\n -webkit-box-shadow: 0 0 0 2px rgba(91, 192, 222, 0.5);\n box-shadow: 0 0 0 2px rgba(91, 192, 222, 0.5); }\n.btn-info.disabled, .btn-info:disabled {\n background-color: #5bc0de;\n border-color: #5bc0de; }\n.btn-info:active, .btn-info.active, .show > .btn-info.dropdown-toggle {\n color: #fff;\n background-color: #31b0d5;\n background-image: none;\n border-color: #2aabd2; }\n.btn-success {\n color: #fff;\n background-color: #5cb85c;\n border-color: #5cb85c; }\n.btn-success:hover {\n color: #fff;\n background-color: #449d44;\n border-color: #419641; }\n.btn-success:focus, .btn-success.focus {\n -webkit-box-shadow: 0 0 0 2px rgba(92, 184, 92, 0.5);\n box-shadow: 0 0 0 2px rgba(92, 184, 92, 0.5); }\n.btn-success.disabled, .btn-success:disabled {\n background-color: #5cb85c;\n border-color: #5cb85c; }\n.btn-success:active, .btn-success.active, .show > .btn-success.dropdown-toggle {\n color: #fff;\n background-color: #449d44;\n background-image: none;\n border-color: #419641; }\n.btn-warning {\n color: #fff;\n background-color: #f0ad4e;\n border-color: #f0ad4e; }\n.btn-warning:hover {\n color: #fff;\n background-color: #ec971f;\n border-color: #eb9316; }\n.btn-warning:focus, .btn-warning.focus {\n -webkit-box-shadow: 0 0 0 2px rgba(240, 173, 78, 0.5);\n box-shadow: 0 0 0 2px rgba(240, 173, 78, 0.5); }\n.btn-warning.disabled, .btn-warning:disabled {\n background-color: #f0ad4e;\n border-color: #f0ad4e; }\n.btn-warning:active, .btn-warning.active, .show > .btn-warning.dropdown-toggle {\n color: #fff;\n background-color: #ec971f;\n background-image: none;\n border-color: #eb9316; }\n.btn-danger {\n color: #fff;\n background-color: #d9534f;\n border-color: #d9534f; }\n.btn-danger:hover {\n color: #fff;\n background-color: #c9302c;\n border-color: #c12e2a; }\n.btn-danger:focus, .btn-danger.focus {\n -webkit-box-shadow: 0 0 0 2px rgba(217, 83, 79, 0.5);\n box-shadow: 0 0 0 2px rgba(217, 83, 79, 0.5); }\n.btn-danger.disabled, .btn-danger:disabled {\n background-color: #d9534f;\n border-color: #d9534f; }\n.btn-danger:active, .btn-danger.active, .show > .btn-danger.dropdown-toggle {\n color: #fff;\n background-color: #c9302c;\n background-image: none;\n border-color: #c12e2a; }\n.btn-outline-primary {\n color: #0275d8;\n background-image: none;\n background-color: transparent;\n border-color: #0275d8; }\n.btn-outline-primary:hover {\n color: #fff;\n background-color: #0275d8;\n border-color: #0275d8; }\n.btn-outline-primary:focus, .btn-outline-primary.focus {\n -webkit-box-shadow: 0 0 0 2px rgba(2, 117, 216, 0.5);\n box-shadow: 0 0 0 2px rgba(2, 117, 216, 0.5); }\n.btn-outline-primary.disabled, .btn-outline-primary:disabled {\n color: #0275d8;\n background-color: transparent; }\n.btn-outline-primary:active, .btn-outline-primary.active, .show > .btn-outline-primary.dropdown-toggle {\n color: #fff;\n background-color: #0275d8;\n border-color: #0275d8; }\n.btn-outline-secondary {\n color: #ccc;\n background-image: none;\n background-color: transparent;\n border-color: #ccc; }\n.btn-outline-secondary:hover {\n color: #fff;\n background-color: #ccc;\n border-color: #ccc; }\n.btn-outline-secondary:focus, .btn-outline-secondary.focus {\n -webkit-box-shadow: 0 0 0 2px rgba(204, 204, 204, 0.5);\n box-shadow: 0 0 0 2px rgba(204, 204, 204, 0.5); }\n.btn-outline-secondary.disabled, .btn-outline-secondary:disabled {\n color: #ccc;\n background-color: transparent; }\n.btn-outline-secondary:active, .btn-outline-secondary.active, .show > .btn-outline-secondary.dropdown-toggle {\n color: #fff;\n background-color: #ccc;\n border-color: #ccc; }\n.btn-outline-info {\n color: #5bc0de;\n background-image: none;\n background-color: transparent;\n border-color: #5bc0de; }\n.btn-outline-info:hover {\n color: #fff;\n background-color: #5bc0de;\n border-color: #5bc0de; }\n.btn-outline-info:focus, .btn-outline-info.focus {\n -webkit-box-shadow: 0 0 0 2px rgba(91, 192, 222, 0.5);\n box-shadow: 0 0 0 2px rgba(91, 192, 222, 0.5); }\n.btn-outline-info.disabled, .btn-outline-info:disabled {\n color: #5bc0de;\n background-color: transparent; }\n.btn-outline-info:active, .btn-outline-info.active, .show > .btn-outline-info.dropdown-toggle {\n color: #fff;\n background-color: #5bc0de;\n border-color: #5bc0de; }\n.btn-outline-success {\n color: #5cb85c;\n background-image: none;\n background-color: transparent;\n border-color: #5cb85c; }\n.btn-outline-success:hover {\n color: #fff;\n background-color: #5cb85c;\n border-color: #5cb85c; }\n.btn-outline-success:focus, .btn-outline-success.focus {\n -webkit-box-shadow: 0 0 0 2px rgba(92, 184, 92, 0.5);\n box-shadow: 0 0 0 2px rgba(92, 184, 92, 0.5); }\n.btn-outline-success.disabled, .btn-outline-success:disabled {\n color: #5cb85c;\n background-color: transparent; }\n.btn-outline-success:active, .btn-outline-success.active, .show > .btn-outline-success.dropdown-toggle {\n color: #fff;\n background-color: #5cb85c;\n border-color: #5cb85c; }\n.btn-outline-warning {\n color: #f0ad4e;\n background-image: none;\n background-color: transparent;\n border-color: #f0ad4e; }\n.btn-outline-warning:hover {\n color: #fff;\n background-color: #f0ad4e;\n border-color: #f0ad4e; }\n.btn-outline-warning:focus, .btn-outline-warning.focus {\n -webkit-box-shadow: 0 0 0 2px rgba(240, 173, 78, 0.5);\n box-shadow: 0 0 0 2px rgba(240, 173, 78, 0.5); }\n.btn-outline-warning.disabled, .btn-outline-warning:disabled {\n color: #f0ad4e;\n background-color: transparent; }\n.btn-outline-warning:active, .btn-outline-warning.active, .show > .btn-outline-warning.dropdown-toggle {\n color: #fff;\n background-color: #f0ad4e;\n border-color: #f0ad4e; }\n.btn-outline-danger {\n color: #d9534f;\n background-image: none;\n background-color: transparent;\n border-color: #d9534f; }\n.btn-outline-danger:hover {\n color: #fff;\n background-color: #d9534f;\n border-color: #d9534f; }\n.btn-outline-danger:focus, .btn-outline-danger.focus {\n -webkit-box-shadow: 0 0 0 2px rgba(217, 83, 79, 0.5);\n box-shadow: 0 0 0 2px rgba(217, 83, 79, 0.5); }\n.btn-outline-danger.disabled, .btn-outline-danger:disabled {\n color: #d9534f;\n background-color: transparent; }\n.btn-outline-danger:active, .btn-outline-danger.active, .show > .btn-outline-danger.dropdown-toggle {\n color: #fff;\n background-color: #d9534f;\n border-color: #d9534f; }\n.btn-link {\n font-weight: normal;\n color: #0275d8;\n border-radius: 0; }\n.btn-link, .btn-link:active, .btn-link.active, .btn-link:disabled {\n background-color: transparent; }\n.btn-link, .btn-link:focus, .btn-link:active {\n border-color: transparent; }\n.btn-link:hover {\n border-color: transparent; }\n.btn-link:focus, .btn-link:hover {\n color: #014c8c;\n text-decoration: underline;\n background-color: transparent; }\n.btn-link:disabled {\n color: #636c72; }\n.btn-link:disabled:focus, .btn-link:disabled:hover {\n text-decoration: none; }\n.btn-lg, .btn-group-lg > .btn {\n padding: 0.75rem 1.5rem;\n font-size: 1.25rem;\n border-radius: 0.3rem; }\n.btn-sm, .btn-group-sm > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n border-radius: 0.2rem; }\n.btn-block {\n display: block;\n width: 100%; }\n.btn-block + .btn-block {\n margin-top: 0.5rem; }\ninput[type=\"submit\"].btn-block, input[type=\"reset\"].btn-block, input[type=\"button\"].btn-block {\n width: 100%; }\n.fade {\n opacity: 0;\n -webkit-transition: opacity 0.15s linear;\n transition: opacity 0.15s linear; }\n.fade.show {\n opacity: 1; }\n.collapse {\n display: none; }\n.collapse.show {\n display: block; }\ntr.collapse.show {\n display: table-row; }\ntbody.collapse.show {\n display: table-row-group; }\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n -webkit-transition: height 0.35s ease;\n transition: height 0.35s ease; }\n.dropup, .dropdown {\n position: relative; }\n.dropdown-toggle::after {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: 0.3em;\n vertical-align: middle;\n content: \"\";\n border-top: 0.3em solid;\n border-right: 0.3em solid transparent;\n border-left: 0.3em solid transparent; }\n.dropdown-toggle:focus {\n outline: 0; }\n.dropup .dropdown-toggle::after {\n border-top: 0;\n border-bottom: 0.3em solid; }\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 10rem;\n padding: 0.5rem 0;\n margin: 0.125rem 0 0;\n font-size: 1rem;\n color: #292b2c;\n text-align: left;\n list-style: none;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 0.25rem; }\n.dropdown-divider {\n height: 1px;\n margin: 0.5rem 0;\n overflow: hidden;\n background-color: #eceeef; }\n.dropdown-item {\n display: block;\n width: 100%;\n padding: 3px 1.5rem;\n clear: both;\n font-weight: normal;\n color: #292b2c;\n text-align: inherit;\n white-space: nowrap;\n background: none;\n border: 0; }\n.dropdown-item:focus, .dropdown-item:hover {\n color: #1d1e1f;\n text-decoration: none;\n background-color: #f7f7f9; }\n.dropdown-item.active, .dropdown-item:active {\n color: #fff;\n text-decoration: none;\n background-color: #0275d8; }\n.dropdown-item.disabled, .dropdown-item:disabled {\n color: #636c72;\n cursor: not-allowed;\n background-color: transparent; }\n.show > .dropdown-menu {\n display: block; }\n.show > a {\n outline: 0; }\n.dropdown-menu-right {\n right: 0;\n left: auto; }\n.dropdown-menu-left {\n right: auto;\n left: 0; }\n.dropdown-header {\n display: block;\n padding: 0.5rem 1.5rem;\n margin-bottom: 0;\n font-size: 0.875rem;\n color: #636c72;\n white-space: nowrap; }\n.dropdown-backdrop {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 990; }\n.dropup .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-bottom: 0.125rem; }\n.btn-group, .btn-group-vertical {\n position: relative;\n display: -webkit-inline-box;\n display: -ms-inline-flexbox;\n display: inline-flex;\n vertical-align: middle; }\n.btn-group > .btn, .btn-group-vertical > .btn {\n position: relative;\n -webkit-box-flex: 0;\n -ms-flex: 0 1 auto;\n flex: 0 1 auto; }\n.btn-group > .btn:hover, .btn-group-vertical > .btn:hover {\n z-index: 2; }\n.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active, .btn-group-vertical > .btn:focus, .btn-group-vertical > .btn:active, .btn-group-vertical > .btn.active {\n z-index: 2; }\n.btn-group .btn + .btn, .btn-group .btn + .btn-group, .btn-group .btn-group + .btn, .btn-group .btn-group + .btn-group, .btn-group-vertical .btn + .btn, .btn-group-vertical .btn + .btn-group, .btn-group-vertical .btn-group + .btn, .btn-group-vertical .btn-group + .btn-group {\n margin-left: -1px; }\n.btn-toolbar {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-pack: start;\n -ms-flex-pack: start;\n justify-content: flex-start; }\n.btn-toolbar .input-group {\n width: auto; }\n.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {\n border-radius: 0; }\n.btn-group > .btn:first-child {\n margin-left: 0; }\n.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0; }\n.btn-group > .btn:last-child:not(:first-child), .btn-group > .dropdown-toggle:not(:first-child) {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0; }\n.btn-group > .btn-group {\n float: left; }\n.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0; }\n.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child, .btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0; }\n.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0; }\n.btn-group .dropdown-toggle:active, .btn-group.open .dropdown-toggle {\n outline: 0; }\n.btn + .dropdown-toggle-split {\n padding-right: 0.75rem;\n padding-left: 0.75rem; }\n.btn + .dropdown-toggle-split::after {\n margin-left: 0; }\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {\n padding-right: 0.375rem;\n padding-left: 0.375rem; }\n.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {\n padding-right: 1.125rem;\n padding-left: 1.125rem; }\n.btn-group-vertical {\n display: -webkit-inline-box;\n display: -ms-inline-flexbox;\n display: inline-flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n -webkit-box-align: start;\n -ms-flex-align: start;\n align-items: flex-start;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center; }\n.btn-group-vertical .btn, .btn-group-vertical .btn-group {\n width: 100%; }\n.btn-group-vertical > .btn + .btn, .btn-group-vertical > .btn + .btn-group, .btn-group-vertical > .btn-group + .btn, .btn-group-vertical > .btn-group + .btn-group {\n margin-top: -1px;\n margin-left: 0; }\n.btn-group-vertical > .btn:not(:first-child):not(:last-child) {\n border-radius: 0; }\n.btn-group-vertical > .btn:first-child:not(:last-child) {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0; }\n.btn-group-vertical > .btn:last-child:not(:first-child) {\n border-top-right-radius: 0;\n border-top-left-radius: 0; }\n.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0; }\n.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child, .btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0; }\n.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {\n border-top-right-radius: 0;\n border-top-left-radius: 0; }\n[data-toggle=\"buttons\"] > .btn input[type=\"radio\"], [data-toggle=\"buttons\"] > .btn input[type=\"checkbox\"], [data-toggle=\"buttons\"] > .btn-group > .btn input[type=\"radio\"], [data-toggle=\"buttons\"] > .btn-group > .btn input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none; }\n.input-group {\n position: relative;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n width: 100%; }\n.input-group .form-control {\n position: relative;\n z-index: 2;\n -webkit-box-flex: 1;\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n width: 1%;\n margin-bottom: 0; }\n.input-group .form-control:focus, .input-group .form-control:active, .input-group .form-control:hover {\n z-index: 3; }\n.input-group-addon, .input-group-btn, .input-group .form-control {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center; }\n.input-group-addon:not(:first-child):not(:last-child), .input-group-btn:not(:first-child):not(:last-child), .input-group .form-control:not(:first-child):not(:last-child) {\n border-radius: 0; }\n.input-group-addon, .input-group-btn {\n white-space: nowrap;\n vertical-align: middle; }\n.input-group-addon {\n padding: 0.5rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n font-weight: normal;\n line-height: 1.25;\n color: #464a4c;\n text-align: center;\n background-color: #eceeef;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 0.25rem; }\n.input-group-addon.form-control-sm, .input-group-sm > .input-group-addon, .input-group-sm > .input-group-btn > .input-group-addon.btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n border-radius: 0.2rem; }\n.input-group-addon.form-control-lg, .input-group-lg > .input-group-addon, .input-group-lg > .input-group-btn > .input-group-addon.btn {\n padding: 0.75rem 1.5rem;\n font-size: 1.25rem;\n border-radius: 0.3rem; }\n.input-group-addon input[type=\"radio\"], .input-group-addon input[type=\"checkbox\"] {\n margin-top: 0; }\n.input-group .form-control:not(:last-child), .input-group-addon:not(:last-child), .input-group-btn:not(:last-child) > .btn, .input-group-btn:not(:last-child) > .btn-group > .btn, .input-group-btn:not(:last-child) > .dropdown-toggle, .input-group-btn:not(:first-child) > .btn:not(:last-child):not(.dropdown-toggle), .input-group-btn:not(:first-child) > .btn-group:not(:last-child) > .btn {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0; }\n.input-group-addon:not(:last-child) {\n border-right: 0; }\n.input-group .form-control:not(:first-child), .input-group-addon:not(:first-child), .input-group-btn:not(:first-child) > .btn, .input-group-btn:not(:first-child) > .btn-group > .btn, .input-group-btn:not(:first-child) > .dropdown-toggle, .input-group-btn:not(:last-child) > .btn:not(:first-child), .input-group-btn:not(:last-child) > .btn-group:not(:first-child) > .btn {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0; }\n.form-control + .input-group-addon:not(:first-child) {\n border-left: 0; }\n.input-group-btn {\n position: relative;\n font-size: 0;\n white-space: nowrap; }\n.input-group-btn > .btn {\n position: relative;\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1; }\n.input-group-btn > .btn + .btn {\n margin-left: -1px; }\n.input-group-btn > .btn:focus, .input-group-btn > .btn:active, .input-group-btn > .btn:hover {\n z-index: 3; }\n.input-group-btn:not(:last-child) > .btn, .input-group-btn:not(:last-child) > .btn-group {\n margin-right: -1px; }\n.input-group-btn:not(:first-child) > .btn, .input-group-btn:not(:first-child) > .btn-group {\n z-index: 2;\n margin-left: -1px; }\n.input-group-btn:not(:first-child) > .btn:focus, .input-group-btn:not(:first-child) > .btn:active, .input-group-btn:not(:first-child) > .btn:hover, .input-group-btn:not(:first-child) > .btn-group:focus, .input-group-btn:not(:first-child) > .btn-group:active, .input-group-btn:not(:first-child) > .btn-group:hover {\n z-index: 3; }\n.custom-control {\n position: relative;\n display: -webkit-inline-box;\n display: -ms-inline-flexbox;\n display: inline-flex;\n min-height: 1.5rem;\n padding-left: 1.5rem;\n margin-right: 1rem;\n cursor: pointer; }\n.custom-control-input {\n position: absolute;\n z-index: -1;\n opacity: 0; }\n.custom-control-input:checked ~ .custom-control-indicator {\n color: #fff;\n background-color: #0275d8; }\n.custom-control-input:focus ~ .custom-control-indicator {\n -webkit-box-shadow: 0 0 0 1px #fff, 0 0 0 3px #0275d8;\n box-shadow: 0 0 0 1px #fff, 0 0 0 3px #0275d8; }\n.custom-control-input:active ~ .custom-control-indicator {\n color: #fff;\n background-color: #8fcafe; }\n.custom-control-input:disabled ~ .custom-control-indicator {\n cursor: not-allowed;\n background-color: #eceeef; }\n.custom-control-input:disabled ~ .custom-control-description {\n color: #636c72;\n cursor: not-allowed; }\n.custom-control-indicator {\n position: absolute;\n top: 0.25rem;\n left: 0;\n display: block;\n width: 1rem;\n height: 1rem;\n pointer-events: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n background-color: #ddd;\n background-repeat: no-repeat;\n background-position: center center;\n background-size: 50% 50%; }\n.custom-checkbox .custom-control-indicator {\n border-radius: 0.25rem; }\n.custom-checkbox .custom-control-input:checked ~ .custom-control-indicator {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\"); }\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-indicator {\n background-color: #0275d8;\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E\"); }\n.custom-radio .custom-control-indicator {\n border-radius: 50%; }\n.custom-radio .custom-control-input:checked ~ .custom-control-indicator {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E\"); }\n.custom-controls-stacked {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column; }\n.custom-controls-stacked .custom-control {\n margin-bottom: 0.25rem; }\n.custom-controls-stacked .custom-control + .custom-control {\n margin-left: 0; }\n.custom-select {\n display: inline-block;\n max-width: 100%;\n height: calc(2.25rem + 2px);\n padding: 0.375rem 1.75rem 0.375rem 0.75rem;\n line-height: 1.25;\n color: #464a4c;\n vertical-align: middle;\n background: #fff url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23333' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right 0.75rem center;\n background-size: 8px 10px;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 0.25rem;\n -moz-appearance: none;\n -webkit-appearance: none; }\n.custom-select:focus {\n border-color: #5cb3fd;\n outline: none; }\n.custom-select:focus::-ms-value {\n color: #464a4c;\n background-color: #fff; }\n.custom-select:disabled {\n color: #636c72;\n cursor: not-allowed;\n background-color: #eceeef; }\n.custom-select::-ms-expand {\n opacity: 0; }\n.custom-select-sm {\n padding-top: 0.375rem;\n padding-bottom: 0.375rem;\n font-size: 75%; }\n.custom-file {\n position: relative;\n display: inline-block;\n max-width: 100%;\n height: 2.5rem;\n margin-bottom: 0;\n cursor: pointer; }\n.custom-file-input {\n min-width: 14rem;\n max-width: 100%;\n height: 2.5rem;\n margin: 0;\n filter: alpha(opacity=0);\n opacity: 0; }\n.custom-file-control {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 5;\n height: 2.5rem;\n padding: 0.5rem 1rem;\n line-height: 1.5;\n color: #464a4c;\n pointer-events: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n background-color: #fff;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 0.25rem; }\n.custom-file-control:lang(en)::after {\n content: \"Choose file...\"; }\n.custom-file-control::before {\n position: absolute;\n top: -1px;\n right: -1px;\n bottom: -1px;\n z-index: 6;\n display: block;\n height: 2.5rem;\n padding: 0.5rem 1rem;\n line-height: 1.5;\n color: #464a4c;\n background-color: #eceeef;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 0 0.25rem 0.25rem 0; }\n.custom-file-control:lang(en)::before {\n content: \"Browse\"; }\n.nav {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none; }\n.nav-link {\n display: block;\n padding: 0.5em 1em; }\n.nav-link:focus, .nav-link:hover {\n text-decoration: none; }\n.nav-link.disabled {\n color: #636c72;\n cursor: not-allowed; }\n.nav-tabs {\n border-bottom: 1px solid #ddd; }\n.nav-tabs .nav-item {\n margin-bottom: -1px; }\n.nav-tabs .nav-link {\n border: 1px solid transparent;\n border-top-right-radius: 0.25rem;\n border-top-left-radius: 0.25rem; }\n.nav-tabs .nav-link:focus, .nav-tabs .nav-link:hover {\n border-color: #eceeef #eceeef #ddd; }\n.nav-tabs .nav-link.disabled {\n color: #636c72;\n background-color: transparent;\n border-color: transparent; }\n.nav-tabs .nav-link.active, .nav-tabs .nav-item.show .nav-link {\n color: #464a4c;\n background-color: #fff;\n border-color: #ddd #ddd #fff; }\n.nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-right-radius: 0;\n border-top-left-radius: 0; }\n.nav-pills .nav-link {\n border-radius: 0.25rem; }\n.nav-pills .nav-link.active, .nav-pills .nav-item.show .nav-link {\n color: #fff;\n cursor: default;\n background-color: #0275d8; }\n.nav-fill .nav-item {\n -webkit-box-flex: 1;\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n text-align: center; }\n.nav-justified .nav-item {\n -webkit-box-flex: 1;\n -ms-flex: 1 1 100%;\n flex: 1 1 100%;\n text-align: center; }\n.tab-content > .tab-pane {\n display: none; }\n.tab-content > .active {\n display: block; }\n.navbar {\n position: relative;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n padding: 0.5rem 1rem; }\n.navbar-brand {\n display: inline-block;\n padding-top: .25rem;\n padding-bottom: .25rem;\n margin-right: 1rem;\n font-size: 1.25rem;\n line-height: inherit;\n white-space: nowrap; }\n.navbar-brand:focus, .navbar-brand:hover {\n text-decoration: none; }\n.navbar-nav {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none; }\n.navbar-nav .nav-link {\n padding-right: 0;\n padding-left: 0; }\n.navbar-text {\n display: inline-block;\n padding-top: .425rem;\n padding-bottom: .425rem; }\n.navbar-toggler {\n -ms-flex-item-align: start;\n align-self: flex-start;\n padding: 0.25rem 0.75rem;\n font-size: 1.25rem;\n line-height: 1;\n background: transparent;\n border: 1px solid transparent;\n border-radius: 0.25rem; }\n.navbar-toggler:focus, .navbar-toggler:hover {\n text-decoration: none; }\n.navbar-toggler-icon {\n display: inline-block;\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n content: \"\";\n background: no-repeat center center;\n background-size: 100% 100%; }\n.navbar-toggler-left {\n position: absolute;\n left: 1rem; }\n.navbar-toggler-right {\n position: absolute;\n right: 1rem; }\n@media (max-width: 575px) {\n .navbar-toggleable .navbar-nav .dropdown-menu {\n position: static;\n float: none; }\n .navbar-toggleable > .container {\n padding-right: 0;\n padding-left: 0; } }\n@media (min-width: 576px) {\n .navbar-toggleable {\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center; }\n .navbar-toggleable .navbar-nav {\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row; }\n .navbar-toggleable .navbar-nav .nav-link {\n padding-right: .5rem;\n padding-left: .5rem; }\n .navbar-toggleable > .container {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center; }\n .navbar-toggleable .navbar-collapse {\n display: -webkit-box !important;\n display: -ms-flexbox !important;\n display: flex !important;\n width: 100%; }\n .navbar-toggleable .navbar-toggler {\n display: none; } }\n@media (max-width: 767px) {\n .navbar-toggleable-sm .navbar-nav .dropdown-menu {\n position: static;\n float: none; }\n .navbar-toggleable-sm > .container {\n padding-right: 0;\n padding-left: 0; } }\n@media (min-width: 768px) {\n .navbar-toggleable-sm {\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center; }\n .navbar-toggleable-sm .navbar-nav {\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row; }\n .navbar-toggleable-sm .navbar-nav .nav-link {\n padding-right: .5rem;\n padding-left: .5rem; }\n .navbar-toggleable-sm > .container {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center; }\n .navbar-toggleable-sm .navbar-collapse {\n display: -webkit-box !important;\n display: -ms-flexbox !important;\n display: flex !important;\n width: 100%; }\n .navbar-toggleable-sm .navbar-toggler {\n display: none; } }\n@media (max-width: 991px) {\n .navbar-toggleable-md .navbar-nav .dropdown-menu {\n position: static;\n float: none; }\n .navbar-toggleable-md > .container {\n padding-right: 0;\n padding-left: 0; } }\n@media (min-width: 992px) {\n .navbar-toggleable-md {\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center; }\n .navbar-toggleable-md .navbar-nav {\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row; }\n .navbar-toggleable-md .navbar-nav .nav-link {\n padding-right: .5rem;\n padding-left: .5rem; }\n .navbar-toggleable-md > .container {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center; }\n .navbar-toggleable-md .navbar-collapse {\n display: -webkit-box !important;\n display: -ms-flexbox !important;\n display: flex !important;\n width: 100%; }\n .navbar-toggleable-md .navbar-toggler {\n display: none; } }\n@media (max-width: 1199px) {\n .navbar-toggleable-lg .navbar-nav .dropdown-menu {\n position: static;\n float: none; }\n .navbar-toggleable-lg > .container {\n padding-right: 0;\n padding-left: 0; } }\n@media (min-width: 1200px) {\n .navbar-toggleable-lg {\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center; }\n .navbar-toggleable-lg .navbar-nav {\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row; }\n .navbar-toggleable-lg .navbar-nav .nav-link {\n padding-right: .5rem;\n padding-left: .5rem; }\n .navbar-toggleable-lg > .container {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center; }\n .navbar-toggleable-lg .navbar-collapse {\n display: -webkit-box !important;\n display: -ms-flexbox !important;\n display: flex !important;\n width: 100%; }\n .navbar-toggleable-lg .navbar-toggler {\n display: none; } }\n.navbar-toggleable-xl {\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center; }\n.navbar-toggleable-xl .navbar-nav .dropdown-menu {\n position: static;\n float: none; }\n.navbar-toggleable-xl > .container {\n padding-right: 0;\n padding-left: 0; }\n.navbar-toggleable-xl .navbar-nav {\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row; }\n.navbar-toggleable-xl .navbar-nav .nav-link {\n padding-right: .5rem;\n padding-left: .5rem; }\n.navbar-toggleable-xl > .container {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center; }\n.navbar-toggleable-xl .navbar-collapse {\n display: -webkit-box !important;\n display: -ms-flexbox !important;\n display: flex !important;\n width: 100%; }\n.navbar-toggleable-xl .navbar-toggler {\n display: none; }\n.navbar-light .navbar-brand, .navbar-light .navbar-toggler {\n color: rgba(0, 0, 0, 0.9); }\n.navbar-light .navbar-brand:focus, .navbar-light .navbar-brand:hover, .navbar-light .navbar-toggler:focus, .navbar-light .navbar-toggler:hover {\n color: rgba(0, 0, 0, 0.9); }\n.navbar-light .navbar-nav .nav-link {\n color: rgba(0, 0, 0, 0.5); }\n.navbar-light .navbar-nav .nav-link:focus, .navbar-light .navbar-nav .nav-link:hover {\n color: rgba(0, 0, 0, 0.7); }\n.navbar-light .navbar-nav .nav-link.disabled {\n color: rgba(0, 0, 0, 0.3); }\n.navbar-light .navbar-nav .open > .nav-link, .navbar-light .navbar-nav .active > .nav-link, .navbar-light .navbar-nav .nav-link.open, .navbar-light .navbar-nav .nav-link.active {\n color: rgba(0, 0, 0, 0.9); }\n.navbar-light .navbar-toggler {\n border-color: rgba(0, 0, 0, 0.1); }\n.navbar-light .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 8h24M4 16h24M4 24h24'/%3E%3C/svg%3E\"); }\n.navbar-light .navbar-text {\n color: rgba(0, 0, 0, 0.5); }\n.navbar-inverse .navbar-brand, .navbar-inverse .navbar-toggler {\n color: white; }\n.navbar-inverse .navbar-brand:focus, .navbar-inverse .navbar-brand:hover, .navbar-inverse .navbar-toggler:focus, .navbar-inverse .navbar-toggler:hover {\n color: white; }\n.navbar-inverse .navbar-nav .nav-link {\n color: rgba(255, 255, 255, 0.5); }\n.navbar-inverse .navbar-nav .nav-link:focus, .navbar-inverse .navbar-nav .nav-link:hover {\n color: rgba(255, 255, 255, 0.75); }\n.navbar-inverse .navbar-nav .nav-link.disabled {\n color: rgba(255, 255, 255, 0.25); }\n.navbar-inverse .navbar-nav .open > .nav-link, .navbar-inverse .navbar-nav .active > .nav-link, .navbar-inverse .navbar-nav .nav-link.open, .navbar-inverse .navbar-nav .nav-link.active {\n color: white; }\n.navbar-inverse .navbar-toggler {\n border-color: rgba(255, 255, 255, 0.1); }\n.navbar-inverse .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 8h24M4 16h24M4 24h24'/%3E%3C/svg%3E\"); }\n.navbar-inverse .navbar-text {\n color: rgba(255, 255, 255, 0.5); }\n.card {\n position: relative;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n background-color: #fff;\n border: 1px solid rgba(0, 0, 0, 0.125);\n border-radius: 0.25rem; }\n.card-block {\n -webkit-box-flex: 1;\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n padding: 1.25rem; }\n.card-title {\n margin-bottom: 0.75rem; }\n.card-subtitle {\n margin-top: -0.375rem;\n margin-bottom: 0; }\n.card-text:last-child {\n margin-bottom: 0; }\n.card-link:hover {\n text-decoration: none; }\n.card-link + .card-link {\n margin-left: 1.25rem; }\n.card > .list-group:first-child .list-group-item:first-child {\n border-top-right-radius: 0.25rem;\n border-top-left-radius: 0.25rem; }\n.card > .list-group:last-child .list-group-item:last-child {\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem; }\n.card-header {\n padding: 0.75rem 1.25rem;\n margin-bottom: 0;\n background-color: #f7f7f9;\n border-bottom: 1px solid rgba(0, 0, 0, 0.125); }\n.card-header:first-child {\n border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0; }\n.card-footer {\n padding: 0.75rem 1.25rem;\n background-color: #f7f7f9;\n border-top: 1px solid rgba(0, 0, 0, 0.125); }\n.card-footer:last-child {\n border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px); }\n.card-header-tabs {\n margin-right: -0.625rem;\n margin-bottom: -0.75rem;\n margin-left: -0.625rem;\n border-bottom: 0; }\n.card-header-pills {\n margin-right: -0.625rem;\n margin-left: -0.625rem; }\n.card-primary {\n background-color: #0275d8;\n border-color: #0275d8; }\n.card-primary .card-header, .card-primary .card-footer {\n background-color: transparent; }\n.card-success {\n background-color: #5cb85c;\n border-color: #5cb85c; }\n.card-success .card-header, .card-success .card-footer {\n background-color: transparent; }\n.card-info {\n background-color: #5bc0de;\n border-color: #5bc0de; }\n.card-info .card-header, .card-info .card-footer {\n background-color: transparent; }\n.card-warning {\n background-color: #f0ad4e;\n border-color: #f0ad4e; }\n.card-warning .card-header, .card-warning .card-footer {\n background-color: transparent; }\n.card-danger {\n background-color: #d9534f;\n border-color: #d9534f; }\n.card-danger .card-header, .card-danger .card-footer {\n background-color: transparent; }\n.card-outline-primary {\n background-color: transparent;\n border-color: #0275d8; }\n.card-outline-secondary {\n background-color: transparent;\n border-color: #ccc; }\n.card-outline-info {\n background-color: transparent;\n border-color: #5bc0de; }\n.card-outline-success {\n background-color: transparent;\n border-color: #5cb85c; }\n.card-outline-warning {\n background-color: transparent;\n border-color: #f0ad4e; }\n.card-outline-danger {\n background-color: transparent;\n border-color: #d9534f; }\n.card-inverse {\n color: rgba(255, 255, 255, 0.65); }\n.card-inverse .card-header, .card-inverse .card-footer {\n background-color: transparent;\n border-color: rgba(255, 255, 255, 0.2); }\n.card-inverse .card-header, .card-inverse .card-footer, .card-inverse .card-title, .card-inverse .card-blockquote {\n color: #fff; }\n.card-inverse .card-link, .card-inverse .card-text, .card-inverse .card-subtitle, .card-inverse .card-blockquote .blockquote-footer {\n color: rgba(255, 255, 255, 0.65); }\n.card-inverse .card-link:focus, .card-inverse .card-link:hover {\n color: #fff; }\n.card-blockquote {\n padding: 0;\n margin-bottom: 0;\n border-left: 0; }\n.card-img {\n border-radius: calc(0.25rem - 1px); }\n.card-img-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: 1.25rem; }\n.card-img-top {\n border-top-right-radius: calc(0.25rem - 1px);\n border-top-left-radius: calc(0.25rem - 1px); }\n.card-img-bottom {\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px); }\n@media (min-width: 576px) {\n .card-deck {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-flow: row wrap;\n flex-flow: row wrap; }\n .card-deck .card {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-flex: 1;\n -ms-flex: 1 0 0px;\n flex: 1 0 0;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column; }\n .card-deck .card:not(:first-child) {\n margin-left: 15px; }\n .card-deck .card:not(:last-child) {\n margin-right: 15px; } }\n@media (min-width: 576px) {\n .card-group {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-flow: row wrap;\n flex-flow: row wrap; }\n .card-group .card {\n -webkit-box-flex: 1;\n -ms-flex: 1 0 0px;\n flex: 1 0 0; }\n .card-group .card + .card {\n margin-left: 0;\n border-left: 0; }\n .card-group .card:first-child {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0; }\n .card-group .card:first-child .card-img-top {\n border-top-right-radius: 0; }\n .card-group .card:first-child .card-img-bottom {\n border-bottom-right-radius: 0; }\n .card-group .card:last-child {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0; }\n .card-group .card:last-child .card-img-top {\n border-top-left-radius: 0; }\n .card-group .card:last-child .card-img-bottom {\n border-bottom-left-radius: 0; }\n .card-group .card:not(:first-child):not(:last-child) {\n border-radius: 0; }\n .card-group .card:not(:first-child):not(:last-child) .card-img-top, .card-group .card:not(:first-child):not(:last-child) .card-img-bottom {\n border-radius: 0; } }\n@media (min-width: 576px) {\n .card-columns {\n -webkit-column-count: 3;\n column-count: 3;\n -webkit-column-gap: 1.25rem;\n column-gap: 1.25rem; }\n .card-columns .card {\n display: inline-block;\n width: 100%;\n margin-bottom: 0.75rem; } }\n.breadcrumb {\n padding: 0.75rem 1rem;\n margin-bottom: 1rem;\n list-style: none;\n background-color: #eceeef;\n border-radius: 0.25rem; }\n.breadcrumb::after {\n display: block;\n content: \"\";\n clear: both; }\n.breadcrumb-item {\n float: left; }\n.breadcrumb-item + .breadcrumb-item::before {\n display: inline-block;\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n color: #636c72;\n content: \"/\"; }\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: underline; }\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: none; }\n.breadcrumb-item.active {\n color: #636c72; }\n.pagination {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n padding-left: 0;\n list-style: none;\n border-radius: 0.25rem; }\n.page-item:first-child .page-link {\n margin-left: 0;\n border-bottom-left-radius: 0.25rem;\n border-top-left-radius: 0.25rem; }\n.page-item:last-child .page-link {\n border-bottom-right-radius: 0.25rem;\n border-top-right-radius: 0.25rem; }\n.page-item.active .page-link {\n z-index: 2;\n color: #fff;\n background-color: #0275d8;\n border-color: #0275d8; }\n.page-item.disabled .page-link {\n color: #636c72;\n pointer-events: none;\n cursor: not-allowed;\n background-color: #fff;\n border-color: #ddd; }\n.page-link {\n position: relative;\n display: block;\n padding: 0.5rem 0.75rem;\n margin-left: -1px;\n line-height: 1.25;\n color: #0275d8;\n background-color: #fff;\n border: 1px solid #ddd; }\n.page-link:focus, .page-link:hover {\n color: #014c8c;\n text-decoration: none;\n background-color: #eceeef;\n border-color: #ddd; }\n.pagination-lg .page-link {\n padding: 0.75rem 1.5rem;\n font-size: 1.25rem; }\n.pagination-lg .page-item:first-child .page-link {\n border-bottom-left-radius: 0.3rem;\n border-top-left-radius: 0.3rem; }\n.pagination-lg .page-item:last-child .page-link {\n border-bottom-right-radius: 0.3rem;\n border-top-right-radius: 0.3rem; }\n.pagination-sm .page-link {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem; }\n.pagination-sm .page-item:first-child .page-link {\n border-bottom-left-radius: 0.2rem;\n border-top-left-radius: 0.2rem; }\n.pagination-sm .page-item:last-child .page-link {\n border-bottom-right-radius: 0.2rem;\n border-top-right-radius: 0.2rem; }\n.badge {\n display: inline-block;\n padding: 0.25em 0.4em;\n font-size: 75%;\n font-weight: bold;\n line-height: 1;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: 0.25rem; }\n.badge:empty {\n display: none; }\n.btn .badge {\n position: relative;\n top: -1px; }\na.badge:focus, a.badge:hover {\n color: #fff;\n text-decoration: none;\n cursor: pointer; }\n.badge-pill {\n padding-right: 0.6em;\n padding-left: 0.6em;\n border-radius: 10rem; }\n.badge-default {\n background-color: #636c72; }\n.badge-default[href]:focus, .badge-default[href]:hover {\n background-color: #4b5257; }\n.badge-primary {\n background-color: #0275d8; }\n.badge-primary[href]:focus, .badge-primary[href]:hover {\n background-color: #025aa5; }\n.badge-success {\n background-color: #5cb85c; }\n.badge-success[href]:focus, .badge-success[href]:hover {\n background-color: #449d44; }\n.badge-info {\n background-color: #5bc0de; }\n.badge-info[href]:focus, .badge-info[href]:hover {\n background-color: #31b0d5; }\n.badge-warning {\n background-color: #f0ad4e; }\n.badge-warning[href]:focus, .badge-warning[href]:hover {\n background-color: #ec971f; }\n.badge-danger {\n background-color: #d9534f; }\n.badge-danger[href]:focus, .badge-danger[href]:hover {\n background-color: #c9302c; }\n.jumbotron {\n padding: 2rem 1rem;\n margin-bottom: 2rem;\n background-color: #eceeef;\n border-radius: 0.3rem; }\n@media (min-width: 576px) {\n .jumbotron {\n padding: 4rem 2rem; } }\n.jumbotron-hr {\n border-top-color: #d0d5d8; }\n.jumbotron-fluid {\n padding-right: 0;\n padding-left: 0;\n border-radius: 0; }\n.alert {\n padding: 0.75rem 1.25rem;\n margin-bottom: 1rem;\n border: 1px solid transparent;\n border-radius: 0.25rem; }\n.alert-heading {\n color: inherit; }\n.alert-link {\n font-weight: bold; }\n.alert-dismissible .close {\n position: relative;\n top: -0.75rem;\n right: -1.25rem;\n padding: 0.75rem 1.25rem;\n color: inherit; }\n.alert-success {\n background-color: #dff0d8;\n border-color: #d0e9c6;\n color: #3c763d; }\n.alert-success hr {\n border-top-color: #c1e2b3; }\n.alert-success .alert-link {\n color: #2b542c; }\n.alert-info {\n background-color: #d9edf7;\n border-color: #bcdff1;\n color: #31708f; }\n.alert-info hr {\n border-top-color: #a6d5ec; }\n.alert-info .alert-link {\n color: #245269; }\n.alert-warning {\n background-color: #fcf8e3;\n border-color: #faf2cc;\n color: #8a6d3b; }\n.alert-warning hr {\n border-top-color: #f7ecb5; }\n.alert-warning .alert-link {\n color: #66512c; }\n.alert-danger {\n background-color: #f2dede;\n border-color: #ebcccc;\n color: #a94442; }\n.alert-danger hr {\n border-top-color: #e4b9b9; }\n.alert-danger .alert-link {\n color: #843534; }\n@-webkit-keyframes progress-bar-stripes {\n from {\n background-position: 1rem 0; }\n to {\n background-position: 0 0; } }\n@keyframes progress-bar-stripes {\n from {\n background-position: 1rem 0; }\n to {\n background-position: 0 0; } }\n.progress {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n overflow: hidden;\n font-size: 0.75rem;\n line-height: 1rem;\n text-align: center;\n background-color: #eceeef;\n border-radius: 0.25rem; }\n.progress-bar {\n height: 1rem;\n color: #fff;\n background-color: #0275d8; }\n.progress-bar-striped {\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: 1rem 1rem; }\n.progress-bar-animated {\n -webkit-animation: progress-bar-stripes 1s linear infinite;\n animation: progress-bar-stripes 1s linear infinite; }\n.media {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: start;\n -ms-flex-align: start;\n align-items: flex-start; }\n.media-body {\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1; }\n.list-group {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0; }\n.list-group-item-action {\n width: 100%;\n color: #464a4c;\n text-align: inherit; }\n.list-group-item-action .list-group-item-heading {\n color: #292b2c; }\n.list-group-item-action:focus, .list-group-item-action:hover {\n color: #464a4c;\n text-decoration: none;\n background-color: #f7f7f9; }\n.list-group-item-action:active {\n color: #292b2c;\n background-color: #eceeef; }\n.list-group-item {\n position: relative;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-flow: row wrap;\n flex-flow: row wrap;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n padding: 0.75rem 1.25rem;\n margin-bottom: -1px;\n background-color: #fff;\n border: 1px solid rgba(0, 0, 0, 0.125); }\n.list-group-item:first-child {\n border-top-right-radius: 0.25rem;\n border-top-left-radius: 0.25rem; }\n.list-group-item:last-child {\n margin-bottom: 0;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem; }\n.list-group-item:focus, .list-group-item:hover {\n text-decoration: none; }\n.list-group-item.disabled, .list-group-item:disabled {\n color: #636c72;\n cursor: not-allowed;\n background-color: #fff; }\n.list-group-item.disabled .list-group-item-heading, .list-group-item:disabled .list-group-item-heading {\n color: inherit; }\n.list-group-item.disabled .list-group-item-text, .list-group-item:disabled .list-group-item-text {\n color: #636c72; }\n.list-group-item.active {\n z-index: 2;\n color: #fff;\n background-color: #0275d8;\n border-color: #0275d8; }\n.list-group-item.active .list-group-item-heading, .list-group-item.active .list-group-item-heading > small, .list-group-item.active .list-group-item-heading > .small {\n color: inherit; }\n.list-group-item.active .list-group-item-text {\n color: #daeeff; }\n.list-group-flush .list-group-item {\n border-right: 0;\n border-left: 0;\n border-radius: 0; }\n.list-group-flush:first-child .list-group-item:first-child {\n border-top: 0; }\n.list-group-flush:last-child .list-group-item:last-child {\n border-bottom: 0; }\n.list-group-item-success {\n color: #3c763d;\n background-color: #dff0d8; }\na.list-group-item-success, button.list-group-item-success {\n color: #3c763d; }\na.list-group-item-success .list-group-item-heading, button.list-group-item-success .list-group-item-heading {\n color: inherit; }\na.list-group-item-success:focus, a.list-group-item-success:hover, button.list-group-item-success:focus, button.list-group-item-success:hover {\n color: #3c763d;\n background-color: #d0e9c6; }\na.list-group-item-success.active, button.list-group-item-success.active {\n color: #fff;\n background-color: #3c763d;\n border-color: #3c763d; }\n.list-group-item-info {\n color: #31708f;\n background-color: #d9edf7; }\na.list-group-item-info, button.list-group-item-info {\n color: #31708f; }\na.list-group-item-info .list-group-item-heading, button.list-group-item-info .list-group-item-heading {\n color: inherit; }\na.list-group-item-info:focus, a.list-group-item-info:hover, button.list-group-item-info:focus, button.list-group-item-info:hover {\n color: #31708f;\n background-color: #c4e3f3; }\na.list-group-item-info.active, button.list-group-item-info.active {\n color: #fff;\n background-color: #31708f;\n border-color: #31708f; }\n.list-group-item-warning {\n color: #8a6d3b;\n background-color: #fcf8e3; }\na.list-group-item-warning, button.list-group-item-warning {\n color: #8a6d3b; }\na.list-group-item-warning .list-group-item-heading, button.list-group-item-warning .list-group-item-heading {\n color: inherit; }\na.list-group-item-warning:focus, a.list-group-item-warning:hover, button.list-group-item-warning:focus, button.list-group-item-warning:hover {\n color: #8a6d3b;\n background-color: #faf2cc; }\na.list-group-item-warning.active, button.list-group-item-warning.active {\n color: #fff;\n background-color: #8a6d3b;\n border-color: #8a6d3b; }\n.list-group-item-danger {\n color: #a94442;\n background-color: #f2dede; }\na.list-group-item-danger, button.list-group-item-danger {\n color: #a94442; }\na.list-group-item-danger .list-group-item-heading, button.list-group-item-danger .list-group-item-heading {\n color: inherit; }\na.list-group-item-danger:focus, a.list-group-item-danger:hover, button.list-group-item-danger:focus, button.list-group-item-danger:hover {\n color: #a94442;\n background-color: #ebcccc; }\na.list-group-item-danger.active, button.list-group-item-danger.active {\n color: #fff;\n background-color: #a94442;\n border-color: #a94442; }\n.embed-responsive {\n position: relative;\n display: block;\n width: 100%;\n padding: 0;\n overflow: hidden; }\n.embed-responsive::before {\n display: block;\n content: \"\"; }\n.embed-responsive .embed-responsive-item, .embed-responsive iframe, .embed-responsive embed, .embed-responsive object, .embed-responsive video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0; }\n.embed-responsive-21by9::before {\n padding-top: 42.85714%; }\n.embed-responsive-16by9::before {\n padding-top: 56.25%; }\n.embed-responsive-4by3::before {\n padding-top: 75%; }\n.embed-responsive-1by1::before {\n padding-top: 100%; }\n.close {\n float: right;\n font-size: 1.5rem;\n font-weight: bold;\n line-height: 1;\n color: #000;\n text-shadow: 0 1px 0 #fff;\n opacity: .5; }\n.close:focus, .close:hover {\n color: #000;\n text-decoration: none;\n cursor: pointer;\n opacity: .75; }\nbutton.close {\n padding: 0;\n cursor: pointer;\n background: transparent;\n border: 0;\n -webkit-appearance: none; }\n.modal-open {\n overflow: hidden; }\n.modal {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1050;\n display: none;\n overflow: hidden;\n outline: 0; }\n.modal.fade .modal-dialog {\n -webkit-transition: -webkit-transform 0.3s ease-out;\n transition: -webkit-transform 0.3s ease-out;\n transition: transform 0.3s ease-out;\n transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out;\n -webkit-transform: translate(0, -25%);\n transform: translate(0, -25%); }\n.modal.show .modal-dialog {\n -webkit-transform: translate(0, 0);\n transform: translate(0, 0); }\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto; }\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 10px; }\n.modal-content {\n position: relative;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n outline: 0; }\n.modal-backdrop {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1040;\n background-color: #000; }\n.modal-backdrop.fade {\n opacity: 0; }\n.modal-backdrop.show {\n opacity: 0.5; }\n.modal-header {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: justify;\n -ms-flex-pack: justify;\n justify-content: space-between;\n padding: 15px;\n border-bottom: 1px solid #eceeef; }\n.modal-title {\n margin-bottom: 0;\n line-height: 1.5; }\n.modal-body {\n position: relative;\n -webkit-box-flex: 1;\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n padding: 15px; }\n.modal-footer {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: end;\n -ms-flex-pack: end;\n justify-content: flex-end;\n padding: 15px;\n border-top: 1px solid #eceeef; }\n.modal-footer > :not(:first-child) {\n margin-left: .25rem; }\n.modal-footer > :not(:last-child) {\n margin-right: .25rem; }\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll; }\n@media (min-width: 576px) {\n .modal-dialog {\n max-width: 500px;\n margin: 30px auto; }\n .modal-sm {\n max-width: 300px; } }\n@media (min-width: 992px) {\n .modal-lg {\n max-width: 800px; } }\n.tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n font-family: -apple-system, system-ui, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;\n font-style: normal;\n font-weight: normal;\n letter-spacing: normal;\n line-break: auto;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n white-space: normal;\n word-break: normal;\n word-spacing: normal;\n font-size: 0.875rem;\n word-wrap: break-word;\n opacity: 0; }\n.tooltip.show {\n opacity: 0.9; }\n.tooltip.tooltip-top, .tooltip.bs-tether-element-attached-bottom {\n padding: 5px 0;\n margin-top: -3px; }\n.tooltip.tooltip-top .tooltip-inner::before, .tooltip.bs-tether-element-attached-bottom .tooltip-inner::before {\n bottom: 0;\n left: 50%;\n margin-left: -5px;\n content: \"\";\n border-width: 5px 5px 0;\n border-top-color: #000; }\n.tooltip.tooltip-right, .tooltip.bs-tether-element-attached-left {\n padding: 0 5px;\n margin-left: 3px; }\n.tooltip.tooltip-right .tooltip-inner::before, .tooltip.bs-tether-element-attached-left .tooltip-inner::before {\n top: 50%;\n left: 0;\n margin-top: -5px;\n content: \"\";\n border-width: 5px 5px 5px 0;\n border-right-color: #000; }\n.tooltip.tooltip-bottom, .tooltip.bs-tether-element-attached-top {\n padding: 5px 0;\n margin-top: 3px; }\n.tooltip.tooltip-bottom .tooltip-inner::before, .tooltip.bs-tether-element-attached-top .tooltip-inner::before {\n top: 0;\n left: 50%;\n margin-left: -5px;\n content: \"\";\n border-width: 0 5px 5px;\n border-bottom-color: #000; }\n.tooltip.tooltip-left, .tooltip.bs-tether-element-attached-right {\n padding: 0 5px;\n margin-left: -3px; }\n.tooltip.tooltip-left .tooltip-inner::before, .tooltip.bs-tether-element-attached-right .tooltip-inner::before {\n top: 50%;\n right: 0;\n margin-top: -5px;\n content: \"\";\n border-width: 5px 0 5px 5px;\n border-left-color: #000; }\n.tooltip-inner {\n max-width: 200px;\n padding: 3px 8px;\n color: #fff;\n text-align: center;\n background-color: #000;\n border-radius: 0.25rem; }\n.tooltip-inner::before {\n position: absolute;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid; }\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1060;\n display: block;\n max-width: 276px;\n padding: 1px;\n font-family: -apple-system, system-ui, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;\n font-style: normal;\n font-weight: normal;\n letter-spacing: normal;\n line-break: auto;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n white-space: normal;\n word-break: normal;\n word-spacing: normal;\n font-size: 0.875rem;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem; }\n.popover.popover-top, .popover.bs-tether-element-attached-bottom {\n margin-top: -10px; }\n.popover.popover-top::before, .popover.popover-top::after, .popover.bs-tether-element-attached-bottom::before, .popover.bs-tether-element-attached-bottom::after {\n left: 50%;\n border-bottom-width: 0; }\n.popover.popover-top::before, .popover.bs-tether-element-attached-bottom::before {\n bottom: -11px;\n margin-left: -11px;\n border-top-color: rgba(0, 0, 0, 0.25); }\n.popover.popover-top::after, .popover.bs-tether-element-attached-bottom::after {\n bottom: -10px;\n margin-left: -10px;\n border-top-color: #fff; }\n.popover.popover-right, .popover.bs-tether-element-attached-left {\n margin-left: 10px; }\n.popover.popover-right::before, .popover.popover-right::after, .popover.bs-tether-element-attached-left::before, .popover.bs-tether-element-attached-left::after {\n top: 50%;\n border-left-width: 0; }\n.popover.popover-right::before, .popover.bs-tether-element-attached-left::before {\n left: -11px;\n margin-top: -11px;\n border-right-color: rgba(0, 0, 0, 0.25); }\n.popover.popover-right::after, .popover.bs-tether-element-attached-left::after {\n left: -10px;\n margin-top: -10px;\n border-right-color: #fff; }\n.popover.popover-bottom, .popover.bs-tether-element-attached-top {\n margin-top: 10px; }\n.popover.popover-bottom::before, .popover.popover-bottom::after, .popover.bs-tether-element-attached-top::before, .popover.bs-tether-element-attached-top::after {\n left: 50%;\n border-top-width: 0; }\n.popover.popover-bottom::before, .popover.bs-tether-element-attached-top::before {\n top: -11px;\n margin-left: -11px;\n border-bottom-color: rgba(0, 0, 0, 0.25); }\n.popover.popover-bottom::after, .popover.bs-tether-element-attached-top::after {\n top: -10px;\n margin-left: -10px;\n border-bottom-color: #f7f7f7; }\n.popover.popover-bottom .popover-title::before, .popover.bs-tether-element-attached-top .popover-title::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: 20px;\n margin-left: -10px;\n content: \"\";\n border-bottom: 1px solid #f7f7f7; }\n.popover.popover-left, .popover.bs-tether-element-attached-right {\n margin-left: -10px; }\n.popover.popover-left::before, .popover.popover-left::after, .popover.bs-tether-element-attached-right::before, .popover.bs-tether-element-attached-right::after {\n top: 50%;\n border-right-width: 0; }\n.popover.popover-left::before, .popover.bs-tether-element-attached-right::before {\n right: -11px;\n margin-top: -11px;\n border-left-color: rgba(0, 0, 0, 0.25); }\n.popover.popover-left::after, .popover.bs-tether-element-attached-right::after {\n right: -10px;\n margin-top: -10px;\n border-left-color: #fff; }\n.popover-title {\n padding: 8px 14px;\n margin-bottom: 0;\n font-size: 1rem;\n background-color: #f7f7f7;\n border-bottom: 1px solid #ebebeb;\n border-top-right-radius: calc(0.3rem - 1px);\n border-top-left-radius: calc(0.3rem - 1px); }\n.popover-title:empty {\n display: none; }\n.popover-content {\n padding: 9px 14px; }\n.popover::before, .popover::after {\n position: absolute;\n display: block;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid; }\n.popover::before {\n content: \"\";\n border-width: 11px; }\n.popover::after {\n content: \"\";\n border-width: 10px; }\n.carousel {\n position: relative; }\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden; }\n.carousel-item {\n position: relative;\n display: none;\n width: 100%; }\n@media (-webkit-transform-3d) {\n .carousel-item {\n -webkit-transition: -webkit-transform 0.6s ease-in-out;\n transition: -webkit-transform 0.6s ease-in-out;\n transition: transform 0.6s ease-in-out;\n transition: transform 0.6s ease-in-out, -webkit-transform 0.6s ease-in-out;\n -webkit-backface-visibility: hidden;\n backface-visibility: hidden;\n -webkit-perspective: 1000px;\n perspective: 1000px; } }\n@supports ((-webkit-transform: translate3d(0, 0, 0)) or (transform: translate3d(0, 0, 0))) {\n .carousel-item {\n -webkit-transition: -webkit-transform 0.6s ease-in-out;\n transition: -webkit-transform 0.6s ease-in-out;\n transition: transform 0.6s ease-in-out;\n transition: transform 0.6s ease-in-out, -webkit-transform 0.6s ease-in-out;\n -webkit-backface-visibility: hidden;\n backface-visibility: hidden;\n -webkit-perspective: 1000px;\n perspective: 1000px; } }\n.carousel-item.active, .carousel-item-next, .carousel-item-prev {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex; }\n.carousel-item-next, .carousel-item-prev {\n position: absolute;\n top: 0; }\n@media (-webkit-transform-3d) {\n .carousel-item-next.carousel-item-left, .carousel-item-prev.carousel-item-right {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0); }\n .carousel-item-next, .active.carousel-item-right {\n -webkit-transform: translate3d(100%, 0, 0);\n transform: translate3d(100%, 0, 0); }\n .carousel-item-prev, .active.carousel-item-left {\n -webkit-transform: translate3d(-100%, 0, 0);\n transform: translate3d(-100%, 0, 0); } }\n@supports ((-webkit-transform: translate3d(0, 0, 0)) or (transform: translate3d(0, 0, 0))) {\n .carousel-item-next.carousel-item-left, .carousel-item-prev.carousel-item-right {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0); }\n .carousel-item-next, .active.carousel-item-right {\n -webkit-transform: translate3d(100%, 0, 0);\n transform: translate3d(100%, 0, 0); }\n .carousel-item-prev, .active.carousel-item-left {\n -webkit-transform: translate3d(-100%, 0, 0);\n transform: translate3d(-100%, 0, 0); } }\n.carousel-control-prev, .carousel-control-next {\n position: absolute;\n top: 0;\n bottom: 0;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n width: 15%;\n color: #fff;\n text-align: center;\n opacity: 0.5; }\n.carousel-control-prev:focus, .carousel-control-prev:hover, .carousel-control-next:focus, .carousel-control-next:hover {\n color: #fff;\n text-decoration: none;\n outline: 0;\n opacity: .9; }\n.carousel-control-prev {\n left: 0; }\n.carousel-control-next {\n right: 0; }\n.carousel-control-prev-icon, .carousel-control-next-icon {\n display: inline-block;\n width: 20px;\n height: 20px;\n background: transparent no-repeat center center;\n background-size: 100% 100%; }\n.carousel-control-prev-icon {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M4 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E\"); }\n.carousel-control-next-icon {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M1.5 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E\"); }\n.carousel-indicators {\n position: absolute;\n right: 0;\n bottom: 10px;\n left: 0;\n z-index: 15;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n padding-left: 0;\n margin-right: 15%;\n margin-left: 15%;\n list-style: none; }\n.carousel-indicators li {\n position: relative;\n -webkit-box-flex: 1;\n -ms-flex: 1 0 auto;\n flex: 1 0 auto;\n max-width: 30px;\n height: 3px;\n margin-right: 3px;\n margin-left: 3px;\n text-indent: -999px;\n cursor: pointer;\n background-color: rgba(255, 255, 255, 0.5); }\n.carousel-indicators li::before {\n position: absolute;\n top: -10px;\n left: 0;\n display: inline-block;\n width: 100%;\n height: 10px;\n content: \"\"; }\n.carousel-indicators li::after {\n position: absolute;\n bottom: -10px;\n left: 0;\n display: inline-block;\n width: 100%;\n height: 10px;\n content: \"\"; }\n.carousel-indicators .active {\n background-color: #fff; }\n.carousel-caption {\n position: absolute;\n right: 15%;\n bottom: 20px;\n left: 15%;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #fff;\n text-align: center; }\n.align-baseline {\n vertical-align: baseline !important; }\n.align-top {\n vertical-align: top !important; }\n.align-middle {\n vertical-align: middle !important; }\n.align-bottom {\n vertical-align: bottom !important; }\n.align-text-bottom {\n vertical-align: text-bottom !important; }\n.align-text-top {\n vertical-align: text-top !important; }\n.bg-faded {\n background-color: #f7f7f7; }\n.bg-primary {\n background-color: #0275d8 !important; }\na.bg-primary:focus, a.bg-primary:hover {\n background-color: #025aa5 !important; }\n.bg-success {\n background-color: #5cb85c !important; }\na.bg-success:focus, a.bg-success:hover {\n background-color: #449d44 !important; }\n.bg-info {\n background-color: #5bc0de !important; }\na.bg-info:focus, a.bg-info:hover {\n background-color: #31b0d5 !important; }\n.bg-warning {\n background-color: #f0ad4e !important; }\na.bg-warning:focus, a.bg-warning:hover {\n background-color: #ec971f !important; }\n.bg-danger {\n background-color: #d9534f !important; }\na.bg-danger:focus, a.bg-danger:hover {\n background-color: #c9302c !important; }\n.bg-inverse {\n background-color: #292b2c !important; }\na.bg-inverse:focus, a.bg-inverse:hover {\n background-color: #101112 !important; }\n.border-0 {\n border: 0 !important; }\n.border-top-0 {\n border-top: 0 !important; }\n.border-right-0 {\n border-right: 0 !important; }\n.border-bottom-0 {\n border-bottom: 0 !important; }\n.border-left-0 {\n border-left: 0 !important; }\n.rounded {\n border-radius: 0.25rem; }\n.rounded-top {\n border-top-right-radius: 0.25rem;\n border-top-left-radius: 0.25rem; }\n.rounded-right {\n border-bottom-right-radius: 0.25rem;\n border-top-right-radius: 0.25rem; }\n.rounded-bottom {\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem; }\n.rounded-left {\n border-bottom-left-radius: 0.25rem;\n border-top-left-radius: 0.25rem; }\n.rounded-circle {\n border-radius: 50%; }\n.rounded-0 {\n border-radius: 0; }\n.clearfix::after {\n display: block;\n content: \"\";\n clear: both; }\n.d-none {\n display: none !important; }\n.d-inline {\n display: inline !important; }\n.d-inline-block {\n display: inline-block !important; }\n.d-block {\n display: block !important; }\n.d-table {\n display: table !important; }\n.d-table-cell {\n display: table-cell !important; }\n.d-flex {\n display: -webkit-box !important;\n display: -ms-flexbox !important;\n display: flex !important; }\n.d-inline-flex {\n display: -webkit-inline-box !important;\n display: -ms-inline-flexbox !important;\n display: inline-flex !important; }\n@media (min-width: 576px) {\n .d-sm-none {\n display: none !important; }\n .d-sm-inline {\n display: inline !important; }\n .d-sm-inline-block {\n display: inline-block !important; }\n .d-sm-block {\n display: block !important; }\n .d-sm-table {\n display: table !important; }\n .d-sm-table-cell {\n display: table-cell !important; }\n .d-sm-flex {\n display: -webkit-box !important;\n display: -ms-flexbox !important;\n display: flex !important; }\n .d-sm-inline-flex {\n display: -webkit-inline-box !important;\n display: -ms-inline-flexbox !important;\n display: inline-flex !important; } }\n@media (min-width: 768px) {\n .d-md-none {\n display: none !important; }\n .d-md-inline {\n display: inline !important; }\n .d-md-inline-block {\n display: inline-block !important; }\n .d-md-block {\n display: block !important; }\n .d-md-table {\n display: table !important; }\n .d-md-table-cell {\n display: table-cell !important; }\n .d-md-flex {\n display: -webkit-box !important;\n display: -ms-flexbox !important;\n display: flex !important; }\n .d-md-inline-flex {\n display: -webkit-inline-box !important;\n display: -ms-inline-flexbox !important;\n display: inline-flex !important; } }\n@media (min-width: 992px) {\n .d-lg-none {\n display: none !important; }\n .d-lg-inline {\n display: inline !important; }\n .d-lg-inline-block {\n display: inline-block !important; }\n .d-lg-block {\n display: block !important; }\n .d-lg-table {\n display: table !important; }\n .d-lg-table-cell {\n display: table-cell !important; }\n .d-lg-flex {\n display: -webkit-box !important;\n display: -ms-flexbox !important;\n display: flex !important; }\n .d-lg-inline-flex {\n display: -webkit-inline-box !important;\n display: -ms-inline-flexbox !important;\n display: inline-flex !important; } }\n@media (min-width: 1200px) {\n .d-xl-none {\n display: none !important; }\n .d-xl-inline {\n display: inline !important; }\n .d-xl-inline-block {\n display: inline-block !important; }\n .d-xl-block {\n display: block !important; }\n .d-xl-table {\n display: table !important; }\n .d-xl-table-cell {\n display: table-cell !important; }\n .d-xl-flex {\n display: -webkit-box !important;\n display: -ms-flexbox !important;\n display: flex !important; }\n .d-xl-inline-flex {\n display: -webkit-inline-box !important;\n display: -ms-inline-flexbox !important;\n display: inline-flex !important; } }\n.flex-first {\n -webkit-box-ordinal-group: 0;\n -ms-flex-order: -1;\n order: -1; }\n.flex-last {\n -webkit-box-ordinal-group: 2;\n -ms-flex-order: 1;\n order: 1; }\n.flex-unordered {\n -webkit-box-ordinal-group: 1;\n -ms-flex-order: 0;\n order: 0; }\n.flex-row {\n -webkit-box-orient: horizontal !important;\n -webkit-box-direction: normal !important;\n -ms-flex-direction: row !important;\n flex-direction: row !important; }\n.flex-column {\n -webkit-box-orient: vertical !important;\n -webkit-box-direction: normal !important;\n -ms-flex-direction: column !important;\n flex-direction: column !important; }\n.flex-row-reverse {\n -webkit-box-orient: horizontal !important;\n -webkit-box-direction: reverse !important;\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important; }\n.flex-column-reverse {\n -webkit-box-orient: vertical !important;\n -webkit-box-direction: reverse !important;\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important; }\n.flex-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important; }\n.flex-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important; }\n.flex-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important; }\n.justify-content-start {\n -webkit-box-pack: start !important;\n -ms-flex-pack: start !important;\n justify-content: flex-start !important; }\n.justify-content-end {\n -webkit-box-pack: end !important;\n -ms-flex-pack: end !important;\n justify-content: flex-end !important; }\n.justify-content-center {\n -webkit-box-pack: center !important;\n -ms-flex-pack: center !important;\n justify-content: center !important; }\n.justify-content-between {\n -webkit-box-pack: justify !important;\n -ms-flex-pack: justify !important;\n justify-content: space-between !important; }\n.justify-content-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important; }\n.align-items-start {\n -webkit-box-align: start !important;\n -ms-flex-align: start !important;\n align-items: flex-start !important; }\n.align-items-end {\n -webkit-box-align: end !important;\n -ms-flex-align: end !important;\n align-items: flex-end !important; }\n.align-items-center {\n -webkit-box-align: center !important;\n -ms-flex-align: center !important;\n align-items: center !important; }\n.align-items-baseline {\n -webkit-box-align: baseline !important;\n -ms-flex-align: baseline !important;\n align-items: baseline !important; }\n.align-items-stretch {\n -webkit-box-align: stretch !important;\n -ms-flex-align: stretch !important;\n align-items: stretch !important; }\n.align-content-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important; }\n.align-content-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important; }\n.align-content-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important; }\n.align-content-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important; }\n.align-content-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important; }\n.align-content-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important; }\n.align-self-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important; }\n.align-self-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important; }\n.align-self-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important; }\n.align-self-center {\n -ms-flex-item-align: center !important;\n align-self: center !important; }\n.align-self-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important; }\n.align-self-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important; }\n@media (min-width: 576px) {\n .flex-sm-first {\n -webkit-box-ordinal-group: 0;\n -ms-flex-order: -1;\n order: -1; }\n .flex-sm-last {\n -webkit-box-ordinal-group: 2;\n -ms-flex-order: 1;\n order: 1; }\n .flex-sm-unordered {\n -webkit-box-ordinal-group: 1;\n -ms-flex-order: 0;\n order: 0; }\n .flex-sm-row {\n -webkit-box-orient: horizontal !important;\n -webkit-box-direction: normal !important;\n -ms-flex-direction: row !important;\n flex-direction: row !important; }\n .flex-sm-column {\n -webkit-box-orient: vertical !important;\n -webkit-box-direction: normal !important;\n -ms-flex-direction: column !important;\n flex-direction: column !important; }\n .flex-sm-row-reverse {\n -webkit-box-orient: horizontal !important;\n -webkit-box-direction: reverse !important;\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important; }\n .flex-sm-column-reverse {\n -webkit-box-orient: vertical !important;\n -webkit-box-direction: reverse !important;\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important; }\n .flex-sm-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important; }\n .flex-sm-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important; }\n .flex-sm-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important; }\n .justify-content-sm-start {\n -webkit-box-pack: start !important;\n -ms-flex-pack: start !important;\n justify-content: flex-start !important; }\n .justify-content-sm-end {\n -webkit-box-pack: end !important;\n -ms-flex-pack: end !important;\n justify-content: flex-end !important; }\n .justify-content-sm-center {\n -webkit-box-pack: center !important;\n -ms-flex-pack: center !important;\n justify-content: center !important; }\n .justify-content-sm-between {\n -webkit-box-pack: justify !important;\n -ms-flex-pack: justify !important;\n justify-content: space-between !important; }\n .justify-content-sm-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important; }\n .align-items-sm-start {\n -webkit-box-align: start !important;\n -ms-flex-align: start !important;\n align-items: flex-start !important; }\n .align-items-sm-end {\n -webkit-box-align: end !important;\n -ms-flex-align: end !important;\n align-items: flex-end !important; }\n .align-items-sm-center {\n -webkit-box-align: center !important;\n -ms-flex-align: center !important;\n align-items: center !important; }\n .align-items-sm-baseline {\n -webkit-box-align: baseline !important;\n -ms-flex-align: baseline !important;\n align-items: baseline !important; }\n .align-items-sm-stretch {\n -webkit-box-align: stretch !important;\n -ms-flex-align: stretch !important;\n align-items: stretch !important; }\n .align-content-sm-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important; }\n .align-content-sm-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important; }\n .align-content-sm-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important; }\n .align-content-sm-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important; }\n .align-content-sm-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important; }\n .align-content-sm-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important; }\n .align-self-sm-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important; }\n .align-self-sm-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important; }\n .align-self-sm-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important; }\n .align-self-sm-center {\n -ms-flex-item-align: center !important;\n align-self: center !important; }\n .align-self-sm-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important; }\n .align-self-sm-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important; } }\n@media (min-width: 768px) {\n .flex-md-first {\n -webkit-box-ordinal-group: 0;\n -ms-flex-order: -1;\n order: -1; }\n .flex-md-last {\n -webkit-box-ordinal-group: 2;\n -ms-flex-order: 1;\n order: 1; }\n .flex-md-unordered {\n -webkit-box-ordinal-group: 1;\n -ms-flex-order: 0;\n order: 0; }\n .flex-md-row {\n -webkit-box-orient: horizontal !important;\n -webkit-box-direction: normal !important;\n -ms-flex-direction: row !important;\n flex-direction: row !important; }\n .flex-md-column {\n -webkit-box-orient: vertical !important;\n -webkit-box-direction: normal !important;\n -ms-flex-direction: column !important;\n flex-direction: column !important; }\n .flex-md-row-reverse {\n -webkit-box-orient: horizontal !important;\n -webkit-box-direction: reverse !important;\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important; }\n .flex-md-column-reverse {\n -webkit-box-orient: vertical !important;\n -webkit-box-direction: reverse !important;\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important; }\n .flex-md-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important; }\n .flex-md-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important; }\n .flex-md-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important; }\n .justify-content-md-start {\n -webkit-box-pack: start !important;\n -ms-flex-pack: start !important;\n justify-content: flex-start !important; }\n .justify-content-md-end {\n -webkit-box-pack: end !important;\n -ms-flex-pack: end !important;\n justify-content: flex-end !important; }\n .justify-content-md-center {\n -webkit-box-pack: center !important;\n -ms-flex-pack: center !important;\n justify-content: center !important; }\n .justify-content-md-between {\n -webkit-box-pack: justify !important;\n -ms-flex-pack: justify !important;\n justify-content: space-between !important; }\n .justify-content-md-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important; }\n .align-items-md-start {\n -webkit-box-align: start !important;\n -ms-flex-align: start !important;\n align-items: flex-start !important; }\n .align-items-md-end {\n -webkit-box-align: end !important;\n -ms-flex-align: end !important;\n align-items: flex-end !important; }\n .align-items-md-center {\n -webkit-box-align: center !important;\n -ms-flex-align: center !important;\n align-items: center !important; }\n .align-items-md-baseline {\n -webkit-box-align: baseline !important;\n -ms-flex-align: baseline !important;\n align-items: baseline !important; }\n .align-items-md-stretch {\n -webkit-box-align: stretch !important;\n -ms-flex-align: stretch !important;\n align-items: stretch !important; }\n .align-content-md-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important; }\n .align-content-md-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important; }\n .align-content-md-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important; }\n .align-content-md-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important; }\n .align-content-md-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important; }\n .align-content-md-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important; }\n .align-self-md-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important; }\n .align-self-md-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important; }\n .align-self-md-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important; }\n .align-self-md-center {\n -ms-flex-item-align: center !important;\n align-self: center !important; }\n .align-self-md-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important; }\n .align-self-md-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important; } }\n@media (min-width: 992px) {\n .flex-lg-first {\n -webkit-box-ordinal-group: 0;\n -ms-flex-order: -1;\n order: -1; }\n .flex-lg-last {\n -webkit-box-ordinal-group: 2;\n -ms-flex-order: 1;\n order: 1; }\n .flex-lg-unordered {\n -webkit-box-ordinal-group: 1;\n -ms-flex-order: 0;\n order: 0; }\n .flex-lg-row {\n -webkit-box-orient: horizontal !important;\n -webkit-box-direction: normal !important;\n -ms-flex-direction: row !important;\n flex-direction: row !important; }\n .flex-lg-column {\n -webkit-box-orient: vertical !important;\n -webkit-box-direction: normal !important;\n -ms-flex-direction: column !important;\n flex-direction: column !important; }\n .flex-lg-row-reverse {\n -webkit-box-orient: horizontal !important;\n -webkit-box-direction: reverse !important;\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important; }\n .flex-lg-column-reverse {\n -webkit-box-orient: vertical !important;\n -webkit-box-direction: reverse !important;\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important; }\n .flex-lg-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important; }\n .flex-lg-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important; }\n .flex-lg-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important; }\n .justify-content-lg-start {\n -webkit-box-pack: start !important;\n -ms-flex-pack: start !important;\n justify-content: flex-start !important; }\n .justify-content-lg-end {\n -webkit-box-pack: end !important;\n -ms-flex-pack: end !important;\n justify-content: flex-end !important; }\n .justify-content-lg-center {\n -webkit-box-pack: center !important;\n -ms-flex-pack: center !important;\n justify-content: center !important; }\n .justify-content-lg-between {\n -webkit-box-pack: justify !important;\n -ms-flex-pack: justify !important;\n justify-content: space-between !important; }\n .justify-content-lg-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important; }\n .align-items-lg-start {\n -webkit-box-align: start !important;\n -ms-flex-align: start !important;\n align-items: flex-start !important; }\n .align-items-lg-end {\n -webkit-box-align: end !important;\n -ms-flex-align: end !important;\n align-items: flex-end !important; }\n .align-items-lg-center {\n -webkit-box-align: center !important;\n -ms-flex-align: center !important;\n align-items: center !important; }\n .align-items-lg-baseline {\n -webkit-box-align: baseline !important;\n -ms-flex-align: baseline !important;\n align-items: baseline !important; }\n .align-items-lg-stretch {\n -webkit-box-align: stretch !important;\n -ms-flex-align: stretch !important;\n align-items: stretch !important; }\n .align-content-lg-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important; }\n .align-content-lg-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important; }\n .align-content-lg-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important; }\n .align-content-lg-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important; }\n .align-content-lg-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important; }\n .align-content-lg-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important; }\n .align-self-lg-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important; }\n .align-self-lg-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important; }\n .align-self-lg-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important; }\n .align-self-lg-center {\n -ms-flex-item-align: center !important;\n align-self: center !important; }\n .align-self-lg-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important; }\n .align-self-lg-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important; } }\n@media (min-width: 1200px) {\n .flex-xl-first {\n -webkit-box-ordinal-group: 0;\n -ms-flex-order: -1;\n order: -1; }\n .flex-xl-last {\n -webkit-box-ordinal-group: 2;\n -ms-flex-order: 1;\n order: 1; }\n .flex-xl-unordered {\n -webkit-box-ordinal-group: 1;\n -ms-flex-order: 0;\n order: 0; }\n .flex-xl-row {\n -webkit-box-orient: horizontal !important;\n -webkit-box-direction: normal !important;\n -ms-flex-direction: row !important;\n flex-direction: row !important; }\n .flex-xl-column {\n -webkit-box-orient: vertical !important;\n -webkit-box-direction: normal !important;\n -ms-flex-direction: column !important;\n flex-direction: column !important; }\n .flex-xl-row-reverse {\n -webkit-box-orient: horizontal !important;\n -webkit-box-direction: reverse !important;\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important; }\n .flex-xl-column-reverse {\n -webkit-box-orient: vertical !important;\n -webkit-box-direction: reverse !important;\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important; }\n .flex-xl-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important; }\n .flex-xl-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important; }\n .flex-xl-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important; }\n .justify-content-xl-start {\n -webkit-box-pack: start !important;\n -ms-flex-pack: start !important;\n justify-content: flex-start !important; }\n .justify-content-xl-end {\n -webkit-box-pack: end !important;\n -ms-flex-pack: end !important;\n justify-content: flex-end !important; }\n .justify-content-xl-center {\n -webkit-box-pack: center !important;\n -ms-flex-pack: center !important;\n justify-content: center !important; }\n .justify-content-xl-between {\n -webkit-box-pack: justify !important;\n -ms-flex-pack: justify !important;\n justify-content: space-between !important; }\n .justify-content-xl-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important; }\n .align-items-xl-start {\n -webkit-box-align: start !important;\n -ms-flex-align: start !important;\n align-items: flex-start !important; }\n .align-items-xl-end {\n -webkit-box-align: end !important;\n -ms-flex-align: end !important;\n align-items: flex-end !important; }\n .align-items-xl-center {\n -webkit-box-align: center !important;\n -ms-flex-align: center !important;\n align-items: center !important; }\n .align-items-xl-baseline {\n -webkit-box-align: baseline !important;\n -ms-flex-align: baseline !important;\n align-items: baseline !important; }\n .align-items-xl-stretch {\n -webkit-box-align: stretch !important;\n -ms-flex-align: stretch !important;\n align-items: stretch !important; }\n .align-content-xl-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important; }\n .align-content-xl-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important; }\n .align-content-xl-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important; }\n .align-content-xl-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important; }\n .align-content-xl-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important; }\n .align-content-xl-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important; }\n .align-self-xl-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important; }\n .align-self-xl-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important; }\n .align-self-xl-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important; }\n .align-self-xl-center {\n -ms-flex-item-align: center !important;\n align-self: center !important; }\n .align-self-xl-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important; }\n .align-self-xl-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important; } }\n.float-left {\n float: left !important; }\n.float-right {\n float: right !important; }\n.float-none {\n float: none !important; }\n@media (min-width: 576px) {\n .float-sm-left {\n float: left !important; }\n .float-sm-right {\n float: right !important; }\n .float-sm-none {\n float: none !important; } }\n@media (min-width: 768px) {\n .float-md-left {\n float: left !important; }\n .float-md-right {\n float: right !important; }\n .float-md-none {\n float: none !important; } }\n@media (min-width: 992px) {\n .float-lg-left {\n float: left !important; }\n .float-lg-right {\n float: right !important; }\n .float-lg-none {\n float: none !important; } }\n@media (min-width: 1200px) {\n .float-xl-left {\n float: left !important; }\n .float-xl-right {\n float: right !important; }\n .float-xl-none {\n float: none !important; } }\n.fixed-top {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1030; }\n.fixed-bottom {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1030; }\n.sticky-top {\n position: -webkit-sticky;\n position: sticky;\n top: 0;\n z-index: 1030; }\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0; }\n.sr-only-focusable:active, .sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n clip: auto; }\n.w-25 {\n width: 25% !important; }\n.w-50 {\n width: 50% !important; }\n.w-75 {\n width: 75% !important; }\n.w-100 {\n width: 100% !important; }\n.h-25 {\n height: 25% !important; }\n.h-50 {\n height: 50% !important; }\n.h-75 {\n height: 75% !important; }\n.h-100 {\n height: 100% !important; }\n.mw-100 {\n max-width: 100% !important; }\n.mh-100 {\n max-height: 100% !important; }\n.m-0 {\n margin: 0 0 !important; }\n.mt-0 {\n margin-top: 0 !important; }\n.mr-0 {\n margin-right: 0 !important; }\n.mb-0 {\n margin-bottom: 0 !important; }\n.ml-0 {\n margin-left: 0 !important; }\n.mx-0 {\n margin-right: 0 !important;\n margin-left: 0 !important; }\n.my-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important; }\n.m-1 {\n margin: 0.25rem 0.25rem !important; }\n.mt-1 {\n margin-top: 0.25rem !important; }\n.mr-1 {\n margin-right: 0.25rem !important; }\n.mb-1 {\n margin-bottom: 0.25rem !important; }\n.ml-1 {\n margin-left: 0.25rem !important; }\n.mx-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important; }\n.my-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important; }\n.m-2 {\n margin: 0.5rem 0.5rem !important; }\n.mt-2 {\n margin-top: 0.5rem !important; }\n.mr-2 {\n margin-right: 0.5rem !important; }\n.mb-2 {\n margin-bottom: 0.5rem !important; }\n.ml-2 {\n margin-left: 0.5rem !important; }\n.mx-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important; }\n.my-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important; }\n.m-3 {\n margin: 1rem 1rem !important; }\n.mt-3 {\n margin-top: 1rem !important; }\n.mr-3 {\n margin-right: 1rem !important; }\n.mb-3 {\n margin-bottom: 1rem !important; }\n.ml-3 {\n margin-left: 1rem !important; }\n.mx-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important; }\n.my-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important; }\n.m-4 {\n margin: 1.5rem 1.5rem !important; }\n.mt-4 {\n margin-top: 1.5rem !important; }\n.mr-4 {\n margin-right: 1.5rem !important; }\n.mb-4 {\n margin-bottom: 1.5rem !important; }\n.ml-4 {\n margin-left: 1.5rem !important; }\n.mx-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important; }\n.my-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important; }\n.m-5 {\n margin: 3rem 3rem !important; }\n.mt-5 {\n margin-top: 3rem !important; }\n.mr-5 {\n margin-right: 3rem !important; }\n.mb-5 {\n margin-bottom: 3rem !important; }\n.ml-5 {\n margin-left: 3rem !important; }\n.mx-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important; }\n.my-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important; }\n.p-0 {\n padding: 0 0 !important; }\n.pt-0 {\n padding-top: 0 !important; }\n.pr-0 {\n padding-right: 0 !important; }\n.pb-0 {\n padding-bottom: 0 !important; }\n.pl-0 {\n padding-left: 0 !important; }\n.px-0 {\n padding-right: 0 !important;\n padding-left: 0 !important; }\n.py-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important; }\n.p-1 {\n padding: 0.25rem 0.25rem !important; }\n.pt-1 {\n padding-top: 0.25rem !important; }\n.pr-1 {\n padding-right: 0.25rem !important; }\n.pb-1 {\n padding-bottom: 0.25rem !important; }\n.pl-1 {\n padding-left: 0.25rem !important; }\n.px-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important; }\n.py-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important; }\n.p-2 {\n padding: 0.5rem 0.5rem !important; }\n.pt-2 {\n padding-top: 0.5rem !important; }\n.pr-2 {\n padding-right: 0.5rem !important; }\n.pb-2 {\n padding-bottom: 0.5rem !important; }\n.pl-2 {\n padding-left: 0.5rem !important; }\n.px-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important; }\n.py-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important; }\n.p-3 {\n padding: 1rem 1rem !important; }\n.pt-3 {\n padding-top: 1rem !important; }\n.pr-3 {\n padding-right: 1rem !important; }\n.pb-3 {\n padding-bottom: 1rem !important; }\n.pl-3 {\n padding-left: 1rem !important; }\n.px-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important; }\n.py-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important; }\n.p-4 {\n padding: 1.5rem 1.5rem !important; }\n.pt-4 {\n padding-top: 1.5rem !important; }\n.pr-4 {\n padding-right: 1.5rem !important; }\n.pb-4 {\n padding-bottom: 1.5rem !important; }\n.pl-4 {\n padding-left: 1.5rem !important; }\n.px-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important; }\n.py-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important; }\n.p-5 {\n padding: 3rem 3rem !important; }\n.pt-5 {\n padding-top: 3rem !important; }\n.pr-5 {\n padding-right: 3rem !important; }\n.pb-5 {\n padding-bottom: 3rem !important; }\n.pl-5 {\n padding-left: 3rem !important; }\n.px-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important; }\n.py-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important; }\n.m-auto {\n margin: auto !important; }\n.mt-auto {\n margin-top: auto !important; }\n.mr-auto {\n margin-right: auto !important; }\n.mb-auto {\n margin-bottom: auto !important; }\n.ml-auto {\n margin-left: auto !important; }\n.mx-auto {\n margin-right: auto !important;\n margin-left: auto !important; }\n.my-auto {\n margin-top: auto !important;\n margin-bottom: auto !important; }\n@media (min-width: 576px) {\n .m-sm-0 {\n margin: 0 0 !important; }\n .mt-sm-0 {\n margin-top: 0 !important; }\n .mr-sm-0 {\n margin-right: 0 !important; }\n .mb-sm-0 {\n margin-bottom: 0 !important; }\n .ml-sm-0 {\n margin-left: 0 !important; }\n .mx-sm-0 {\n margin-right: 0 !important;\n margin-left: 0 !important; }\n .my-sm-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important; }\n .m-sm-1 {\n margin: 0.25rem 0.25rem !important; }\n .mt-sm-1 {\n margin-top: 0.25rem !important; }\n .mr-sm-1 {\n margin-right: 0.25rem !important; }\n .mb-sm-1 {\n margin-bottom: 0.25rem !important; }\n .ml-sm-1 {\n margin-left: 0.25rem !important; }\n .mx-sm-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important; }\n .my-sm-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important; }\n .m-sm-2 {\n margin: 0.5rem 0.5rem !important; }\n .mt-sm-2 {\n margin-top: 0.5rem !important; }\n .mr-sm-2 {\n margin-right: 0.5rem !important; }\n .mb-sm-2 {\n margin-bottom: 0.5rem !important; }\n .ml-sm-2 {\n margin-left: 0.5rem !important; }\n .mx-sm-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important; }\n .my-sm-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important; }\n .m-sm-3 {\n margin: 1rem 1rem !important; }\n .mt-sm-3 {\n margin-top: 1rem !important; }\n .mr-sm-3 {\n margin-right: 1rem !important; }\n .mb-sm-3 {\n margin-bottom: 1rem !important; }\n .ml-sm-3 {\n margin-left: 1rem !important; }\n .mx-sm-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important; }\n .my-sm-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important; }\n .m-sm-4 {\n margin: 1.5rem 1.5rem !important; }\n .mt-sm-4 {\n margin-top: 1.5rem !important; }\n .mr-sm-4 {\n margin-right: 1.5rem !important; }\n .mb-sm-4 {\n margin-bottom: 1.5rem !important; }\n .ml-sm-4 {\n margin-left: 1.5rem !important; }\n .mx-sm-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important; }\n .my-sm-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important; }\n .m-sm-5 {\n margin: 3rem 3rem !important; }\n .mt-sm-5 {\n margin-top: 3rem !important; }\n .mr-sm-5 {\n margin-right: 3rem !important; }\n .mb-sm-5 {\n margin-bottom: 3rem !important; }\n .ml-sm-5 {\n margin-left: 3rem !important; }\n .mx-sm-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important; }\n .my-sm-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important; }\n .p-sm-0 {\n padding: 0 0 !important; }\n .pt-sm-0 {\n padding-top: 0 !important; }\n .pr-sm-0 {\n padding-right: 0 !important; }\n .pb-sm-0 {\n padding-bottom: 0 !important; }\n .pl-sm-0 {\n padding-left: 0 !important; }\n .px-sm-0 {\n padding-right: 0 !important;\n padding-left: 0 !important; }\n .py-sm-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important; }\n .p-sm-1 {\n padding: 0.25rem 0.25rem !important; }\n .pt-sm-1 {\n padding-top: 0.25rem !important; }\n .pr-sm-1 {\n padding-right: 0.25rem !important; }\n .pb-sm-1 {\n padding-bottom: 0.25rem !important; }\n .pl-sm-1 {\n padding-left: 0.25rem !important; }\n .px-sm-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important; }\n .py-sm-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important; }\n .p-sm-2 {\n padding: 0.5rem 0.5rem !important; }\n .pt-sm-2 {\n padding-top: 0.5rem !important; }\n .pr-sm-2 {\n padding-right: 0.5rem !important; }\n .pb-sm-2 {\n padding-bottom: 0.5rem !important; }\n .pl-sm-2 {\n padding-left: 0.5rem !important; }\n .px-sm-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important; }\n .py-sm-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important; }\n .p-sm-3 {\n padding: 1rem 1rem !important; }\n .pt-sm-3 {\n padding-top: 1rem !important; }\n .pr-sm-3 {\n padding-right: 1rem !important; }\n .pb-sm-3 {\n padding-bottom: 1rem !important; }\n .pl-sm-3 {\n padding-left: 1rem !important; }\n .px-sm-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important; }\n .py-sm-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important; }\n .p-sm-4 {\n padding: 1.5rem 1.5rem !important; }\n .pt-sm-4 {\n padding-top: 1.5rem !important; }\n .pr-sm-4 {\n padding-right: 1.5rem !important; }\n .pb-sm-4 {\n padding-bottom: 1.5rem !important; }\n .pl-sm-4 {\n padding-left: 1.5rem !important; }\n .px-sm-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important; }\n .py-sm-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important; }\n .p-sm-5 {\n padding: 3rem 3rem !important; }\n .pt-sm-5 {\n padding-top: 3rem !important; }\n .pr-sm-5 {\n padding-right: 3rem !important; }\n .pb-sm-5 {\n padding-bottom: 3rem !important; }\n .pl-sm-5 {\n padding-left: 3rem !important; }\n .px-sm-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important; }\n .py-sm-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important; }\n .m-sm-auto {\n margin: auto !important; }\n .mt-sm-auto {\n margin-top: auto !important; }\n .mr-sm-auto {\n margin-right: auto !important; }\n .mb-sm-auto {\n margin-bottom: auto !important; }\n .ml-sm-auto {\n margin-left: auto !important; }\n .mx-sm-auto {\n margin-right: auto !important;\n margin-left: auto !important; }\n .my-sm-auto {\n margin-top: auto !important;\n margin-bottom: auto !important; } }\n@media (min-width: 768px) {\n .m-md-0 {\n margin: 0 0 !important; }\n .mt-md-0 {\n margin-top: 0 !important; }\n .mr-md-0 {\n margin-right: 0 !important; }\n .mb-md-0 {\n margin-bottom: 0 !important; }\n .ml-md-0 {\n margin-left: 0 !important; }\n .mx-md-0 {\n margin-right: 0 !important;\n margin-left: 0 !important; }\n .my-md-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important; }\n .m-md-1 {\n margin: 0.25rem 0.25rem !important; }\n .mt-md-1 {\n margin-top: 0.25rem !important; }\n .mr-md-1 {\n margin-right: 0.25rem !important; }\n .mb-md-1 {\n margin-bottom: 0.25rem !important; }\n .ml-md-1 {\n margin-left: 0.25rem !important; }\n .mx-md-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important; }\n .my-md-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important; }\n .m-md-2 {\n margin: 0.5rem 0.5rem !important; }\n .mt-md-2 {\n margin-top: 0.5rem !important; }\n .mr-md-2 {\n margin-right: 0.5rem !important; }\n .mb-md-2 {\n margin-bottom: 0.5rem !important; }\n .ml-md-2 {\n margin-left: 0.5rem !important; }\n .mx-md-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important; }\n .my-md-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important; }\n .m-md-3 {\n margin: 1rem 1rem !important; }\n .mt-md-3 {\n margin-top: 1rem !important; }\n .mr-md-3 {\n margin-right: 1rem !important; }\n .mb-md-3 {\n margin-bottom: 1rem !important; }\n .ml-md-3 {\n margin-left: 1rem !important; }\n .mx-md-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important; }\n .my-md-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important; }\n .m-md-4 {\n margin: 1.5rem 1.5rem !important; }\n .mt-md-4 {\n margin-top: 1.5rem !important; }\n .mr-md-4 {\n margin-right: 1.5rem !important; }\n .mb-md-4 {\n margin-bottom: 1.5rem !important; }\n .ml-md-4 {\n margin-left: 1.5rem !important; }\n .mx-md-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important; }\n .my-md-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important; }\n .m-md-5 {\n margin: 3rem 3rem !important; }\n .mt-md-5 {\n margin-top: 3rem !important; }\n .mr-md-5 {\n margin-right: 3rem !important; }\n .mb-md-5 {\n margin-bottom: 3rem !important; }\n .ml-md-5 {\n margin-left: 3rem !important; }\n .mx-md-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important; }\n .my-md-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important; }\n .p-md-0 {\n padding: 0 0 !important; }\n .pt-md-0 {\n padding-top: 0 !important; }\n .pr-md-0 {\n padding-right: 0 !important; }\n .pb-md-0 {\n padding-bottom: 0 !important; }\n .pl-md-0 {\n padding-left: 0 !important; }\n .px-md-0 {\n padding-right: 0 !important;\n padding-left: 0 !important; }\n .py-md-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important; }\n .p-md-1 {\n padding: 0.25rem 0.25rem !important; }\n .pt-md-1 {\n padding-top: 0.25rem !important; }\n .pr-md-1 {\n padding-right: 0.25rem !important; }\n .pb-md-1 {\n padding-bottom: 0.25rem !important; }\n .pl-md-1 {\n padding-left: 0.25rem !important; }\n .px-md-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important; }\n .py-md-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important; }\n .p-md-2 {\n padding: 0.5rem 0.5rem !important; }\n .pt-md-2 {\n padding-top: 0.5rem !important; }\n .pr-md-2 {\n padding-right: 0.5rem !important; }\n .pb-md-2 {\n padding-bottom: 0.5rem !important; }\n .pl-md-2 {\n padding-left: 0.5rem !important; }\n .px-md-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important; }\n .py-md-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important; }\n .p-md-3 {\n padding: 1rem 1rem !important; }\n .pt-md-3 {\n padding-top: 1rem !important; }\n .pr-md-3 {\n padding-right: 1rem !important; }\n .pb-md-3 {\n padding-bottom: 1rem !important; }\n .pl-md-3 {\n padding-left: 1rem !important; }\n .px-md-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important; }\n .py-md-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important; }\n .p-md-4 {\n padding: 1.5rem 1.5rem !important; }\n .pt-md-4 {\n padding-top: 1.5rem !important; }\n .pr-md-4 {\n padding-right: 1.5rem !important; }\n .pb-md-4 {\n padding-bottom: 1.5rem !important; }\n .pl-md-4 {\n padding-left: 1.5rem !important; }\n .px-md-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important; }\n .py-md-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important; }\n .p-md-5 {\n padding: 3rem 3rem !important; }\n .pt-md-5 {\n padding-top: 3rem !important; }\n .pr-md-5 {\n padding-right: 3rem !important; }\n .pb-md-5 {\n padding-bottom: 3rem !important; }\n .pl-md-5 {\n padding-left: 3rem !important; }\n .px-md-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important; }\n .py-md-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important; }\n .m-md-auto {\n margin: auto !important; }\n .mt-md-auto {\n margin-top: auto !important; }\n .mr-md-auto {\n margin-right: auto !important; }\n .mb-md-auto {\n margin-bottom: auto !important; }\n .ml-md-auto {\n margin-left: auto !important; }\n .mx-md-auto {\n margin-right: auto !important;\n margin-left: auto !important; }\n .my-md-auto {\n margin-top: auto !important;\n margin-bottom: auto !important; } }\n@media (min-width: 992px) {\n .m-lg-0 {\n margin: 0 0 !important; }\n .mt-lg-0 {\n margin-top: 0 !important; }\n .mr-lg-0 {\n margin-right: 0 !important; }\n .mb-lg-0 {\n margin-bottom: 0 !important; }\n .ml-lg-0 {\n margin-left: 0 !important; }\n .mx-lg-0 {\n margin-right: 0 !important;\n margin-left: 0 !important; }\n .my-lg-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important; }\n .m-lg-1 {\n margin: 0.25rem 0.25rem !important; }\n .mt-lg-1 {\n margin-top: 0.25rem !important; }\n .mr-lg-1 {\n margin-right: 0.25rem !important; }\n .mb-lg-1 {\n margin-bottom: 0.25rem !important; }\n .ml-lg-1 {\n margin-left: 0.25rem !important; }\n .mx-lg-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important; }\n .my-lg-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important; }\n .m-lg-2 {\n margin: 0.5rem 0.5rem !important; }\n .mt-lg-2 {\n margin-top: 0.5rem !important; }\n .mr-lg-2 {\n margin-right: 0.5rem !important; }\n .mb-lg-2 {\n margin-bottom: 0.5rem !important; }\n .ml-lg-2 {\n margin-left: 0.5rem !important; }\n .mx-lg-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important; }\n .my-lg-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important; }\n .m-lg-3 {\n margin: 1rem 1rem !important; }\n .mt-lg-3 {\n margin-top: 1rem !important; }\n .mr-lg-3 {\n margin-right: 1rem !important; }\n .mb-lg-3 {\n margin-bottom: 1rem !important; }\n .ml-lg-3 {\n margin-left: 1rem !important; }\n .mx-lg-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important; }\n .my-lg-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important; }\n .m-lg-4 {\n margin: 1.5rem 1.5rem !important; }\n .mt-lg-4 {\n margin-top: 1.5rem !important; }\n .mr-lg-4 {\n margin-right: 1.5rem !important; }\n .mb-lg-4 {\n margin-bottom: 1.5rem !important; }\n .ml-lg-4 {\n margin-left: 1.5rem !important; }\n .mx-lg-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important; }\n .my-lg-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important; }\n .m-lg-5 {\n margin: 3rem 3rem !important; }\n .mt-lg-5 {\n margin-top: 3rem !important; }\n .mr-lg-5 {\n margin-right: 3rem !important; }\n .mb-lg-5 {\n margin-bottom: 3rem !important; }\n .ml-lg-5 {\n margin-left: 3rem !important; }\n .mx-lg-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important; }\n .my-lg-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important; }\n .p-lg-0 {\n padding: 0 0 !important; }\n .pt-lg-0 {\n padding-top: 0 !important; }\n .pr-lg-0 {\n padding-right: 0 !important; }\n .pb-lg-0 {\n padding-bottom: 0 !important; }\n .pl-lg-0 {\n padding-left: 0 !important; }\n .px-lg-0 {\n padding-right: 0 !important;\n padding-left: 0 !important; }\n .py-lg-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important; }\n .p-lg-1 {\n padding: 0.25rem 0.25rem !important; }\n .pt-lg-1 {\n padding-top: 0.25rem !important; }\n .pr-lg-1 {\n padding-right: 0.25rem !important; }\n .pb-lg-1 {\n padding-bottom: 0.25rem !important; }\n .pl-lg-1 {\n padding-left: 0.25rem !important; }\n .px-lg-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important; }\n .py-lg-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important; }\n .p-lg-2 {\n padding: 0.5rem 0.5rem !important; }\n .pt-lg-2 {\n padding-top: 0.5rem !important; }\n .pr-lg-2 {\n padding-right: 0.5rem !important; }\n .pb-lg-2 {\n padding-bottom: 0.5rem !important; }\n .pl-lg-2 {\n padding-left: 0.5rem !important; }\n .px-lg-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important; }\n .py-lg-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important; }\n .p-lg-3 {\n padding: 1rem 1rem !important; }\n .pt-lg-3 {\n padding-top: 1rem !important; }\n .pr-lg-3 {\n padding-right: 1rem !important; }\n .pb-lg-3 {\n padding-bottom: 1rem !important; }\n .pl-lg-3 {\n padding-left: 1rem !important; }\n .px-lg-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important; }\n .py-lg-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important; }\n .p-lg-4 {\n padding: 1.5rem 1.5rem !important; }\n .pt-lg-4 {\n padding-top: 1.5rem !important; }\n .pr-lg-4 {\n padding-right: 1.5rem !important; }\n .pb-lg-4 {\n padding-bottom: 1.5rem !important; }\n .pl-lg-4 {\n padding-left: 1.5rem !important; }\n .px-lg-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important; }\n .py-lg-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important; }\n .p-lg-5 {\n padding: 3rem 3rem !important; }\n .pt-lg-5 {\n padding-top: 3rem !important; }\n .pr-lg-5 {\n padding-right: 3rem !important; }\n .pb-lg-5 {\n padding-bottom: 3rem !important; }\n .pl-lg-5 {\n padding-left: 3rem !important; }\n .px-lg-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important; }\n .py-lg-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important; }\n .m-lg-auto {\n margin: auto !important; }\n .mt-lg-auto {\n margin-top: auto !important; }\n .mr-lg-auto {\n margin-right: auto !important; }\n .mb-lg-auto {\n margin-bottom: auto !important; }\n .ml-lg-auto {\n margin-left: auto !important; }\n .mx-lg-auto {\n margin-right: auto !important;\n margin-left: auto !important; }\n .my-lg-auto {\n margin-top: auto !important;\n margin-bottom: auto !important; } }\n@media (min-width: 1200px) {\n .m-xl-0 {\n margin: 0 0 !important; }\n .mt-xl-0 {\n margin-top: 0 !important; }\n .mr-xl-0 {\n margin-right: 0 !important; }\n .mb-xl-0 {\n margin-bottom: 0 !important; }\n .ml-xl-0 {\n margin-left: 0 !important; }\n .mx-xl-0 {\n margin-right: 0 !important;\n margin-left: 0 !important; }\n .my-xl-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important; }\n .m-xl-1 {\n margin: 0.25rem 0.25rem !important; }\n .mt-xl-1 {\n margin-top: 0.25rem !important; }\n .mr-xl-1 {\n margin-right: 0.25rem !important; }\n .mb-xl-1 {\n margin-bottom: 0.25rem !important; }\n .ml-xl-1 {\n margin-left: 0.25rem !important; }\n .mx-xl-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important; }\n .my-xl-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important; }\n .m-xl-2 {\n margin: 0.5rem 0.5rem !important; }\n .mt-xl-2 {\n margin-top: 0.5rem !important; }\n .mr-xl-2 {\n margin-right: 0.5rem !important; }\n .mb-xl-2 {\n margin-bottom: 0.5rem !important; }\n .ml-xl-2 {\n margin-left: 0.5rem !important; }\n .mx-xl-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important; }\n .my-xl-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important; }\n .m-xl-3 {\n margin: 1rem 1rem !important; }\n .mt-xl-3 {\n margin-top: 1rem !important; }\n .mr-xl-3 {\n margin-right: 1rem !important; }\n .mb-xl-3 {\n margin-bottom: 1rem !important; }\n .ml-xl-3 {\n margin-left: 1rem !important; }\n .mx-xl-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important; }\n .my-xl-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important; }\n .m-xl-4 {\n margin: 1.5rem 1.5rem !important; }\n .mt-xl-4 {\n margin-top: 1.5rem !important; }\n .mr-xl-4 {\n margin-right: 1.5rem !important; }\n .mb-xl-4 {\n margin-bottom: 1.5rem !important; }\n .ml-xl-4 {\n margin-left: 1.5rem !important; }\n .mx-xl-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important; }\n .my-xl-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important; }\n .m-xl-5 {\n margin: 3rem 3rem !important; }\n .mt-xl-5 {\n margin-top: 3rem !important; }\n .mr-xl-5 {\n margin-right: 3rem !important; }\n .mb-xl-5 {\n margin-bottom: 3rem !important; }\n .ml-xl-5 {\n margin-left: 3rem !important; }\n .mx-xl-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important; }\n .my-xl-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important; }\n .p-xl-0 {\n padding: 0 0 !important; }\n .pt-xl-0 {\n padding-top: 0 !important; }\n .pr-xl-0 {\n padding-right: 0 !important; }\n .pb-xl-0 {\n padding-bottom: 0 !important; }\n .pl-xl-0 {\n padding-left: 0 !important; }\n .px-xl-0 {\n padding-right: 0 !important;\n padding-left: 0 !important; }\n .py-xl-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important; }\n .p-xl-1 {\n padding: 0.25rem 0.25rem !important; }\n .pt-xl-1 {\n padding-top: 0.25rem !important; }\n .pr-xl-1 {\n padding-right: 0.25rem !important; }\n .pb-xl-1 {\n padding-bottom: 0.25rem !important; }\n .pl-xl-1 {\n padding-left: 0.25rem !important; }\n .px-xl-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important; }\n .py-xl-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important; }\n .p-xl-2 {\n padding: 0.5rem 0.5rem !important; }\n .pt-xl-2 {\n padding-top: 0.5rem !important; }\n .pr-xl-2 {\n padding-right: 0.5rem !important; }\n .pb-xl-2 {\n padding-bottom: 0.5rem !important; }\n .pl-xl-2 {\n padding-left: 0.5rem !important; }\n .px-xl-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important; }\n .py-xl-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important; }\n .p-xl-3 {\n padding: 1rem 1rem !important; }\n .pt-xl-3 {\n padding-top: 1rem !important; }\n .pr-xl-3 {\n padding-right: 1rem !important; }\n .pb-xl-3 {\n padding-bottom: 1rem !important; }\n .pl-xl-3 {\n padding-left: 1rem !important; }\n .px-xl-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important; }\n .py-xl-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important; }\n .p-xl-4 {\n padding: 1.5rem 1.5rem !important; }\n .pt-xl-4 {\n padding-top: 1.5rem !important; }\n .pr-xl-4 {\n padding-right: 1.5rem !important; }\n .pb-xl-4 {\n padding-bottom: 1.5rem !important; }\n .pl-xl-4 {\n padding-left: 1.5rem !important; }\n .px-xl-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important; }\n .py-xl-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important; }\n .p-xl-5 {\n padding: 3rem 3rem !important; }\n .pt-xl-5 {\n padding-top: 3rem !important; }\n .pr-xl-5 {\n padding-right: 3rem !important; }\n .pb-xl-5 {\n padding-bottom: 3rem !important; }\n .pl-xl-5 {\n padding-left: 3rem !important; }\n .px-xl-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important; }\n .py-xl-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important; }\n .m-xl-auto {\n margin: auto !important; }\n .mt-xl-auto {\n margin-top: auto !important; }\n .mr-xl-auto {\n margin-right: auto !important; }\n .mb-xl-auto {\n margin-bottom: auto !important; }\n .ml-xl-auto {\n margin-left: auto !important; }\n .mx-xl-auto {\n margin-right: auto !important;\n margin-left: auto !important; }\n .my-xl-auto {\n margin-top: auto !important;\n margin-bottom: auto !important; } }\n.text-justify {\n text-align: justify !important; }\n.text-nowrap {\n white-space: nowrap !important; }\n.text-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap; }\n.text-left {\n text-align: left !important; }\n.text-right {\n text-align: right !important; }\n.text-center {\n text-align: center !important; }\n@media (min-width: 576px) {\n .text-sm-left {\n text-align: left !important; }\n .text-sm-right {\n text-align: right !important; }\n .text-sm-center {\n text-align: center !important; } }\n@media (min-width: 768px) {\n .text-md-left {\n text-align: left !important; }\n .text-md-right {\n text-align: right !important; }\n .text-md-center {\n text-align: center !important; } }\n@media (min-width: 992px) {\n .text-lg-left {\n text-align: left !important; }\n .text-lg-right {\n text-align: right !important; }\n .text-lg-center {\n text-align: center !important; } }\n@media (min-width: 1200px) {\n .text-xl-left {\n text-align: left !important; }\n .text-xl-right {\n text-align: right !important; }\n .text-xl-center {\n text-align: center !important; } }\n.text-lowercase {\n text-transform: lowercase !important; }\n.text-uppercase {\n text-transform: uppercase !important; }\n.text-capitalize {\n text-transform: capitalize !important; }\n.font-weight-normal {\n font-weight: normal; }\n.font-weight-bold {\n font-weight: bold; }\n.font-italic {\n font-style: italic; }\n.text-white {\n color: #fff !important; }\n.text-muted {\n color: #636c72 !important; }\na.text-muted:focus, a.text-muted:hover {\n color: #4b5257 !important; }\n.text-primary {\n color: #0275d8 !important; }\na.text-primary:focus, a.text-primary:hover {\n color: #025aa5 !important; }\n.text-success {\n color: #5cb85c !important; }\na.text-success:focus, a.text-success:hover {\n color: #449d44 !important; }\n.text-info {\n color: #5bc0de !important; }\na.text-info:focus, a.text-info:hover {\n color: #31b0d5 !important; }\n.text-warning {\n color: #f0ad4e !important; }\na.text-warning:focus, a.text-warning:hover {\n color: #ec971f !important; }\n.text-danger {\n color: #d9534f !important; }\na.text-danger:focus, a.text-danger:hover {\n color: #c9302c !important; }\n.text-gray-dark {\n color: #292b2c !important; }\na.text-gray-dark:focus, a.text-gray-dark:hover {\n color: #101112 !important; }\n.text-hide {\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0; }\n.invisible {\n visibility: hidden !important; }\n.hidden-xs-up {\n display: none !important; }\n@media (max-width: 575px) {\n .hidden-xs-down {\n display: none !important; } }\n@media (min-width: 576px) {\n .hidden-sm-up {\n display: none !important; } }\n@media (max-width: 767px) {\n .hidden-sm-down {\n display: none !important; } }\n@media (min-width: 768px) {\n .hidden-md-up {\n display: none !important; } }\n@media (max-width: 991px) {\n .hidden-md-down {\n display: none !important; } }\n@media (min-width: 992px) {\n .hidden-lg-up {\n display: none !important; } }\n@media (max-width: 1199px) {\n .hidden-lg-down {\n display: none !important; } }\n@media (min-width: 1200px) {\n .hidden-xl-up {\n display: none !important; } }\n.hidden-xl-down {\n display: none !important; }\n.visible-print-block {\n display: none !important; }\n@media print {\n .visible-print-block {\n display: block !important; } }\n.visible-print-inline {\n display: none !important; }\n@media print {\n .visible-print-inline {\n display: inline !important; } }\n.visible-print-inline-block {\n display: none !important; }\n@media print {\n .visible-print-inline-block {\n display: inline-block !important; } }\n@media print {\n .hidden-print {\n display: none !important; } }\nhtml {\n font-size: 14px; }\n.wrapper {\n display: grid;\n grid-template-columns: 1fr 4fr;\n grid-auto-rows: minmax(100%, auto);\n height: 100vh; }\n.sidebar {\n background-color: #f6f8fa; }\n.main, .sidebar {\n padding: 2rem; }\n.hide {\n display: none !important; }\nform .alert {\n margin-top: 1rem; }\ntextarea.form-control {\n line-height: 1.5; }\n", ""]);
|
|
|
|
// exports
|
|
|
|
|
|
/***/ }),
|
|
/* 7 */
|
|
/***/ (function(module, exports) {
|
|
|
|
/*
|
|
MIT License http://www.opensource.org/licenses/mit-license.php
|
|
Author Tobias Koppers @sokra
|
|
*/
|
|
// css base code, injected by the css-loader
|
|
module.exports = function(useSourceMap) {
|
|
var list = [];
|
|
|
|
// return the list of modules as css string
|
|
list.toString = function toString() {
|
|
return this.map(function (item) {
|
|
var content = cssWithMappingToString(item, useSourceMap);
|
|
if(item[2]) {
|
|
return "@media " + item[2] + "{" + content + "}";
|
|
} else {
|
|
return content;
|
|
}
|
|
}).join("");
|
|
};
|
|
|
|
// import a list of modules into the list
|
|
list.i = function(modules, mediaQuery) {
|
|
if(typeof modules === "string")
|
|
modules = [[null, modules, ""]];
|
|
var alreadyImportedModules = {};
|
|
for(var i = 0; i < this.length; i++) {
|
|
var id = this[i][0];
|
|
if(typeof id === "number")
|
|
alreadyImportedModules[id] = true;
|
|
}
|
|
for(i = 0; i < modules.length; i++) {
|
|
var item = modules[i];
|
|
// skip already imported module
|
|
// this implementation is not 100% perfect for weird media query combinations
|
|
// when a module is imported multiple times with different media queries.
|
|
// I hope this will never occur (Hey this way we have smaller bundles)
|
|
if(typeof item[0] !== "number" || !alreadyImportedModules[item[0]]) {
|
|
if(mediaQuery && !item[2]) {
|
|
item[2] = mediaQuery;
|
|
} else if(mediaQuery) {
|
|
item[2] = "(" + item[2] + ") and (" + mediaQuery + ")";
|
|
}
|
|
list.push(item);
|
|
}
|
|
}
|
|
};
|
|
return list;
|
|
};
|
|
|
|
function cssWithMappingToString(item, useSourceMap) {
|
|
var content = item[1] || '';
|
|
var cssMapping = item[3];
|
|
if (!cssMapping) {
|
|
return content;
|
|
}
|
|
|
|
if (useSourceMap && typeof btoa === 'function') {
|
|
var sourceMapping = toComment(cssMapping);
|
|
var sourceURLs = cssMapping.sources.map(function (source) {
|
|
return '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'
|
|
});
|
|
|
|
return [content].concat(sourceURLs).concat([sourceMapping]).join('\n');
|
|
}
|
|
|
|
return [content].join('\n');
|
|
}
|
|
|
|
// Adapted from convert-source-map (MIT)
|
|
function toComment(sourceMap) {
|
|
// eslint-disable-next-line no-undef
|
|
var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));
|
|
var data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;
|
|
|
|
return '/*# ' + data + ' */';
|
|
}
|
|
|
|
|
|
/***/ }),
|
|
/* 8 */
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
/*
|
|
MIT License http://www.opensource.org/licenses/mit-license.php
|
|
Author Tobias Koppers @sokra
|
|
*/
|
|
|
|
var stylesInDom = {};
|
|
|
|
var memoize = function (fn) {
|
|
var memo;
|
|
|
|
return function () {
|
|
if (typeof memo === "undefined") memo = fn.apply(this, arguments);
|
|
return memo;
|
|
};
|
|
};
|
|
|
|
var isOldIE = memoize(function () {
|
|
// Test for IE <= 9 as proposed by Browserhacks
|
|
// @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805
|
|
// Tests for existence of standard globals is to allow style-loader
|
|
// to operate correctly into non-standard environments
|
|
// @see https://github.com/webpack-contrib/style-loader/issues/177
|
|
return window && document && document.all && !window.atob;
|
|
});
|
|
|
|
var getElement = (function (fn) {
|
|
var memo = {};
|
|
|
|
return function(selector) {
|
|
if (typeof memo[selector] === "undefined") {
|
|
var styleTarget = fn.call(this, selector);
|
|
// Special case to return head of iframe instead of iframe itself
|
|
if (styleTarget instanceof window.HTMLIFrameElement) {
|
|
try {
|
|
// This will throw an exception if access to iframe is blocked
|
|
// due to cross-origin restrictions
|
|
styleTarget = styleTarget.contentDocument.head;
|
|
} catch(e) {
|
|
styleTarget = null;
|
|
}
|
|
}
|
|
memo[selector] = styleTarget;
|
|
}
|
|
return memo[selector]
|
|
};
|
|
})(function (target) {
|
|
return document.querySelector(target)
|
|
});
|
|
|
|
var singleton = null;
|
|
var singletonCounter = 0;
|
|
var stylesInsertedAtTop = [];
|
|
|
|
var fixUrls = __webpack_require__(9);
|
|
|
|
module.exports = function(list, options) {
|
|
if (typeof DEBUG !== "undefined" && DEBUG) {
|
|
if (typeof document !== "object") throw new Error("The style-loader cannot be used in a non-browser environment");
|
|
}
|
|
|
|
options = options || {};
|
|
|
|
options.attrs = typeof options.attrs === "object" ? options.attrs : {};
|
|
|
|
// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>
|
|
// tags it will allow on a page
|
|
if (!options.singleton && typeof options.singleton !== "boolean") options.singleton = isOldIE();
|
|
|
|
// By default, add <style> tags to the <head> element
|
|
if (!options.insertInto) options.insertInto = "head";
|
|
|
|
// By default, add <style> tags to the bottom of the target
|
|
if (!options.insertAt) options.insertAt = "bottom";
|
|
|
|
var styles = listToStyles(list, options);
|
|
|
|
addStylesToDom(styles, options);
|
|
|
|
return function update (newList) {
|
|
var mayRemove = [];
|
|
|
|
for (var i = 0; i < styles.length; i++) {
|
|
var item = styles[i];
|
|
var domStyle = stylesInDom[item.id];
|
|
|
|
domStyle.refs--;
|
|
mayRemove.push(domStyle);
|
|
}
|
|
|
|
if(newList) {
|
|
var newStyles = listToStyles(newList, options);
|
|
addStylesToDom(newStyles, options);
|
|
}
|
|
|
|
for (var i = 0; i < mayRemove.length; i++) {
|
|
var domStyle = mayRemove[i];
|
|
|
|
if(domStyle.refs === 0) {
|
|
for (var j = 0; j < domStyle.parts.length; j++) domStyle.parts[j]();
|
|
|
|
delete stylesInDom[domStyle.id];
|
|
}
|
|
}
|
|
};
|
|
};
|
|
|
|
function addStylesToDom (styles, options) {
|
|
for (var i = 0; i < styles.length; i++) {
|
|
var item = styles[i];
|
|
var domStyle = stylesInDom[item.id];
|
|
|
|
if(domStyle) {
|
|
domStyle.refs++;
|
|
|
|
for(var j = 0; j < domStyle.parts.length; j++) {
|
|
domStyle.parts[j](item.parts[j]);
|
|
}
|
|
|
|
for(; j < item.parts.length; j++) {
|
|
domStyle.parts.push(addStyle(item.parts[j], options));
|
|
}
|
|
} else {
|
|
var parts = [];
|
|
|
|
for(var j = 0; j < item.parts.length; j++) {
|
|
parts.push(addStyle(item.parts[j], options));
|
|
}
|
|
|
|
stylesInDom[item.id] = {id: item.id, refs: 1, parts: parts};
|
|
}
|
|
}
|
|
}
|
|
|
|
function listToStyles (list, options) {
|
|
var styles = [];
|
|
var newStyles = {};
|
|
|
|
for (var i = 0; i < list.length; i++) {
|
|
var item = list[i];
|
|
var id = options.base ? item[0] + options.base : item[0];
|
|
var css = item[1];
|
|
var media = item[2];
|
|
var sourceMap = item[3];
|
|
var part = {css: css, media: media, sourceMap: sourceMap};
|
|
|
|
if(!newStyles[id]) styles.push(newStyles[id] = {id: id, parts: [part]});
|
|
else newStyles[id].parts.push(part);
|
|
}
|
|
|
|
return styles;
|
|
}
|
|
|
|
function insertStyleElement (options, style) {
|
|
var target = getElement(options.insertInto)
|
|
|
|
if (!target) {
|
|
throw new Error("Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.");
|
|
}
|
|
|
|
var lastStyleElementInsertedAtTop = stylesInsertedAtTop[stylesInsertedAtTop.length - 1];
|
|
|
|
if (options.insertAt === "top") {
|
|
if (!lastStyleElementInsertedAtTop) {
|
|
target.insertBefore(style, target.firstChild);
|
|
} else if (lastStyleElementInsertedAtTop.nextSibling) {
|
|
target.insertBefore(style, lastStyleElementInsertedAtTop.nextSibling);
|
|
} else {
|
|
target.appendChild(style);
|
|
}
|
|
stylesInsertedAtTop.push(style);
|
|
} else if (options.insertAt === "bottom") {
|
|
target.appendChild(style);
|
|
} else if (typeof options.insertAt === "object" && options.insertAt.before) {
|
|
var nextSibling = getElement(options.insertInto + " " + options.insertAt.before);
|
|
target.insertBefore(style, nextSibling);
|
|
} else {
|
|
throw new Error("[Style Loader]\n\n Invalid value for parameter 'insertAt' ('options.insertAt') found.\n Must be 'top', 'bottom', or Object.\n (https://github.com/webpack-contrib/style-loader#insertat)\n");
|
|
}
|
|
}
|
|
|
|
function removeStyleElement (style) {
|
|
if (style.parentNode === null) return false;
|
|
style.parentNode.removeChild(style);
|
|
|
|
var idx = stylesInsertedAtTop.indexOf(style);
|
|
if(idx >= 0) {
|
|
stylesInsertedAtTop.splice(idx, 1);
|
|
}
|
|
}
|
|
|
|
function createStyleElement (options) {
|
|
var style = document.createElement("style");
|
|
|
|
options.attrs.type = "text/css";
|
|
|
|
addAttrs(style, options.attrs);
|
|
insertStyleElement(options, style);
|
|
|
|
return style;
|
|
}
|
|
|
|
function createLinkElement (options) {
|
|
var link = document.createElement("link");
|
|
|
|
options.attrs.type = "text/css";
|
|
options.attrs.rel = "stylesheet";
|
|
|
|
addAttrs(link, options.attrs);
|
|
insertStyleElement(options, link);
|
|
|
|
return link;
|
|
}
|
|
|
|
function addAttrs (el, attrs) {
|
|
Object.keys(attrs).forEach(function (key) {
|
|
el.setAttribute(key, attrs[key]);
|
|
});
|
|
}
|
|
|
|
function addStyle (obj, options) {
|
|
var style, update, remove, result;
|
|
|
|
// If a transform function was defined, run it on the css
|
|
if (options.transform && obj.css) {
|
|
result = options.transform(obj.css);
|
|
|
|
if (result) {
|
|
// If transform returns a value, use that instead of the original css.
|
|
// This allows running runtime transformations on the css.
|
|
obj.css = result;
|
|
} else {
|
|
// If the transform function returns a falsy value, don't add this css.
|
|
// This allows conditional loading of css
|
|
return function() {
|
|
// noop
|
|
};
|
|
}
|
|
}
|
|
|
|
if (options.singleton) {
|
|
var styleIndex = singletonCounter++;
|
|
|
|
style = singleton || (singleton = createStyleElement(options));
|
|
|
|
update = applyToSingletonTag.bind(null, style, styleIndex, false);
|
|
remove = applyToSingletonTag.bind(null, style, styleIndex, true);
|
|
|
|
} else if (
|
|
obj.sourceMap &&
|
|
typeof URL === "function" &&
|
|
typeof URL.createObjectURL === "function" &&
|
|
typeof URL.revokeObjectURL === "function" &&
|
|
typeof Blob === "function" &&
|
|
typeof btoa === "function"
|
|
) {
|
|
style = createLinkElement(options);
|
|
update = updateLink.bind(null, style, options);
|
|
remove = function () {
|
|
removeStyleElement(style);
|
|
|
|
if(style.href) URL.revokeObjectURL(style.href);
|
|
};
|
|
} else {
|
|
style = createStyleElement(options);
|
|
update = applyToTag.bind(null, style);
|
|
remove = function () {
|
|
removeStyleElement(style);
|
|
};
|
|
}
|
|
|
|
update(obj);
|
|
|
|
return function updateStyle (newObj) {
|
|
if (newObj) {
|
|
if (
|
|
newObj.css === obj.css &&
|
|
newObj.media === obj.media &&
|
|
newObj.sourceMap === obj.sourceMap
|
|
) {
|
|
return;
|
|
}
|
|
|
|
update(obj = newObj);
|
|
} else {
|
|
remove();
|
|
}
|
|
};
|
|
}
|
|
|
|
var replaceText = (function () {
|
|
var textStore = [];
|
|
|
|
return function (index, replacement) {
|
|
textStore[index] = replacement;
|
|
|
|
return textStore.filter(Boolean).join('\n');
|
|
};
|
|
})();
|
|
|
|
function applyToSingletonTag (style, index, remove, obj) {
|
|
var css = remove ? "" : obj.css;
|
|
|
|
if (style.styleSheet) {
|
|
style.styleSheet.cssText = replaceText(index, css);
|
|
} else {
|
|
var cssNode = document.createTextNode(css);
|
|
var childNodes = style.childNodes;
|
|
|
|
if (childNodes[index]) style.removeChild(childNodes[index]);
|
|
|
|
if (childNodes.length) {
|
|
style.insertBefore(cssNode, childNodes[index]);
|
|
} else {
|
|
style.appendChild(cssNode);
|
|
}
|
|
}
|
|
}
|
|
|
|
function applyToTag (style, obj) {
|
|
var css = obj.css;
|
|
var media = obj.media;
|
|
|
|
if(media) {
|
|
style.setAttribute("media", media)
|
|
}
|
|
|
|
if(style.styleSheet) {
|
|
style.styleSheet.cssText = css;
|
|
} else {
|
|
while(style.firstChild) {
|
|
style.removeChild(style.firstChild);
|
|
}
|
|
|
|
style.appendChild(document.createTextNode(css));
|
|
}
|
|
}
|
|
|
|
function updateLink (link, options, obj) {
|
|
var css = obj.css;
|
|
var sourceMap = obj.sourceMap;
|
|
|
|
/*
|
|
If convertToAbsoluteUrls isn't defined, but sourcemaps are enabled
|
|
and there is no publicPath defined then lets turn convertToAbsoluteUrls
|
|
on by default. Otherwise default to the convertToAbsoluteUrls option
|
|
directly
|
|
*/
|
|
var autoFixUrls = options.convertToAbsoluteUrls === undefined && sourceMap;
|
|
|
|
if (options.convertToAbsoluteUrls || autoFixUrls) {
|
|
css = fixUrls(css);
|
|
}
|
|
|
|
if (sourceMap) {
|
|
// http://stackoverflow.com/a/26603875
|
|
css += "\n/*# sourceMappingURL=data:application/json;base64," + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + " */";
|
|
}
|
|
|
|
var blob = new Blob([css], { type: "text/css" });
|
|
|
|
var oldSrc = link.href;
|
|
|
|
link.href = URL.createObjectURL(blob);
|
|
|
|
if(oldSrc) URL.revokeObjectURL(oldSrc);
|
|
}
|
|
|
|
|
|
/***/ }),
|
|
/* 9 */
|
|
/***/ (function(module, exports) {
|
|
|
|
|
|
/**
|
|
* When source maps are enabled, `style-loader` uses a link element with a data-uri to
|
|
* embed the css on the page. This breaks all relative urls because now they are relative to a
|
|
* bundle instead of the current page.
|
|
*
|
|
* One solution is to only use full urls, but that may be impossible.
|
|
*
|
|
* Instead, this function "fixes" the relative urls to be absolute according to the current page location.
|
|
*
|
|
* A rudimentary test suite is located at `test/fixUrls.js` and can be run via the `npm test` command.
|
|
*
|
|
*/
|
|
|
|
module.exports = function (css) {
|
|
// get current location
|
|
var location = typeof window !== "undefined" && window.location;
|
|
|
|
if (!location) {
|
|
throw new Error("fixUrls requires window.location");
|
|
}
|
|
|
|
// blank or null?
|
|
if (!css || typeof css !== "string") {
|
|
return css;
|
|
}
|
|
|
|
var baseUrl = location.protocol + "//" + location.host;
|
|
var currentDir = baseUrl + location.pathname.replace(/\/[^\/]*$/, "/");
|
|
|
|
// convert each url(...)
|
|
/*
|
|
This regular expression is just a way to recursively match brackets within
|
|
a string.
|
|
|
|
/url\s*\( = Match on the word "url" with any whitespace after it and then a parens
|
|
( = Start a capturing group
|
|
(?: = Start a non-capturing group
|
|
[^)(] = Match anything that isn't a parentheses
|
|
| = OR
|
|
\( = Match a start parentheses
|
|
(?: = Start another non-capturing groups
|
|
[^)(]+ = Match anything that isn't a parentheses
|
|
| = OR
|
|
\( = Match a start parentheses
|
|
[^)(]* = Match anything that isn't a parentheses
|
|
\) = Match a end parentheses
|
|
) = End Group
|
|
*\) = Match anything and then a close parens
|
|
) = Close non-capturing group
|
|
* = Match anything
|
|
) = Close capturing group
|
|
\) = Match a close parens
|
|
|
|
/gi = Get all matches, not the first. Be case insensitive.
|
|
*/
|
|
var fixedCss = css.replace(/url\s*\(((?:[^)(]|\((?:[^)(]+|\([^)(]*\))*\))*)\)/gi, function(fullMatch, origUrl) {
|
|
// strip quotes (if they exist)
|
|
var unquotedOrigUrl = origUrl
|
|
.trim()
|
|
.replace(/^"(.*)"$/, function(o, $1){ return $1; })
|
|
.replace(/^'(.*)'$/, function(o, $1){ return $1; });
|
|
|
|
// already a full url? no change
|
|
if (/^(#|data:|http:\/\/|https:\/\/|file:\/\/\/)/i.test(unquotedOrigUrl)) {
|
|
return fullMatch;
|
|
}
|
|
|
|
// convert the url to a full url
|
|
var newUrl;
|
|
|
|
if (unquotedOrigUrl.indexOf("//") === 0) {
|
|
//TODO: should we add protocol?
|
|
newUrl = unquotedOrigUrl;
|
|
} else if (unquotedOrigUrl.indexOf("/") === 0) {
|
|
// path should be relative to the base url
|
|
newUrl = baseUrl + unquotedOrigUrl; // already starts with '/'
|
|
} else {
|
|
// path should be relative to current directory
|
|
newUrl = currentDir + unquotedOrigUrl.replace(/^\.\//, ""); // Strip leading './'
|
|
}
|
|
|
|
// send back the fixed url(...)
|
|
return "url(" + JSON.stringify(newUrl) + ")";
|
|
});
|
|
|
|
// send back the fixed css
|
|
return fixedCss;
|
|
};
|
|
|
|
|
|
/***/ }),
|
|
/* 10 */
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
const common = __webpack_require__(11);
|
|
const Database = __webpack_require__(17).Database;
|
|
const frappe = __webpack_require__(0);
|
|
frappe.ui = __webpack_require__(19);
|
|
frappe.view = __webpack_require__(20);
|
|
const Router = __webpack_require__(21).Router;
|
|
|
|
module.exports = {
|
|
async start({server, container}) {
|
|
window.frappe = frappe;
|
|
frappe.init();
|
|
common.init_libs(frappe);
|
|
|
|
frappe.db = await new Database({
|
|
server: server,
|
|
fetch: window.fetch.bind()
|
|
});
|
|
|
|
frappe.view.init({container: container});
|
|
frappe.router = new Router();
|
|
await frappe.login();
|
|
}
|
|
};
|
|
|
|
|
|
|
|
/***/ }),
|
|
/* 11 */
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
const utils = __webpack_require__(12);
|
|
const models = __webpack_require__(13);
|
|
const model = __webpack_require__(14);
|
|
const _document = __webpack_require__(3);
|
|
const meta = __webpack_require__(15);
|
|
const _session = __webpack_require__(16);
|
|
|
|
|
|
module.exports = {
|
|
init_libs(frappe) {
|
|
Object.assign(frappe, utils);
|
|
frappe.model = model;
|
|
frappe.models = new models.Models();
|
|
frappe.document = _document;
|
|
frappe.meta = meta;
|
|
frappe._session = _session;
|
|
}
|
|
}
|
|
|
|
/***/ }),
|
|
/* 12 */
|
|
/***/ (function(module, exports) {
|
|
|
|
module.exports = {
|
|
slug(text) {
|
|
return text.toLowerCase().replace(/ /g, '_');
|
|
},
|
|
|
|
async_handler(fn) {
|
|
return (req, res, next) => Promise.resolve(fn(req, res, next))
|
|
.catch(next);
|
|
},
|
|
|
|
async sleep(seconds) {
|
|
return new Promise(resolve => {
|
|
setTimeout(resolve, seconds * 1000);
|
|
});
|
|
}
|
|
}
|
|
|
|
|
|
/***/ }),
|
|
/* 13 */
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
const process = __webpack_require__(2);
|
|
const frappe = __webpack_require__(0);
|
|
|
|
class Models {
|
|
constructor() {
|
|
this.data = {doctype: {}};
|
|
this.controllers = {};
|
|
this.meta_classes = {};
|
|
}
|
|
|
|
get(doctype, name) {
|
|
return this.data[frappe.slug(doctype)][frappe.slug(name)];
|
|
}
|
|
|
|
get_controller(doctype) {
|
|
return this.controllers[frappe.slug(doctype)];
|
|
}
|
|
|
|
get_meta_class(doctype) {
|
|
return this.meta_classes[frappe.slug(doctype)] || frappe.meta.Meta;
|
|
}
|
|
|
|
}
|
|
|
|
module.exports = { Models: Models }
|
|
|
|
/***/ }),
|
|
/* 14 */
|
|
/***/ (function(module, exports) {
|
|
|
|
module.exports = {
|
|
standard_fields: [
|
|
{
|
|
fieldname: 'name', fieldtype: 'Data', reqd: 1
|
|
},
|
|
{
|
|
fieldname: 'owner', fieldtype: 'Link', reqd: 1, options: 'User'
|
|
},
|
|
{
|
|
fieldname: 'modified_by', fieldtype: 'Link', reqd: 1, options: 'User'
|
|
},
|
|
{
|
|
fieldname: 'creation', fieldtype: 'Datetime', reqd: 1
|
|
},
|
|
{
|
|
fieldname: 'modified', fieldtype: 'Datetime', reqd: 1
|
|
},
|
|
{
|
|
fieldname: 'docstatus', fieldtype: 'Int', reqd: 1, default: 0
|
|
}
|
|
],
|
|
child_fields: [
|
|
{
|
|
fieldname: 'idx', fieldtype: 'Int', reqd: 1
|
|
},
|
|
{
|
|
fieldname: 'parent', fieldtype: 'Data', reqd: 1
|
|
},
|
|
{
|
|
fieldname: 'parenttype', fieldtype: 'Link', reqd: 1, options: 'DocType'
|
|
},
|
|
{
|
|
fieldname: 'parentfield', fieldtype: 'Data', reqd: 1
|
|
}
|
|
]
|
|
};
|
|
|
|
/***/ }),
|
|
/* 15 */
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
const Document = __webpack_require__(3).Document;
|
|
const frappe = __webpack_require__(0);
|
|
|
|
class Meta extends Document {
|
|
constructor(data) {
|
|
super(data);
|
|
this.event_handlers = {};
|
|
this.list_options = {
|
|
fields: ['name', 'modified']
|
|
};
|
|
if (this.setup_meta) {
|
|
this.setup_meta();
|
|
}
|
|
}
|
|
|
|
get_field(fieldname) {
|
|
if (!this.field_map) {
|
|
this.field_map = {};
|
|
for (let df of this.fields) {
|
|
this.field_map[df.fieldname] = df;
|
|
}
|
|
}
|
|
return this.field_map[fieldname];
|
|
}
|
|
|
|
on(key, fn) {
|
|
if (!this.event_handlers[key]) {
|
|
this.event_handlers[key] = [];
|
|
}
|
|
this.event_handlers[key].push(fn);
|
|
}
|
|
|
|
async set(fieldname, value) {
|
|
this[fieldname] = value;
|
|
await this.trigger(fieldname);
|
|
}
|
|
|
|
get(fieldname) {
|
|
return this[fieldname];
|
|
}
|
|
|
|
get_valid_fields() {
|
|
if (!this._valid_fields) {
|
|
this._valid_fields = [];
|
|
|
|
// standard fields
|
|
for (let df of frappe.model.standard_fields) {
|
|
this._valid_fields.push(df);
|
|
}
|
|
|
|
// parent fields
|
|
if (this.istable) {
|
|
for (let df of frappe.model.child_fields) {
|
|
this._valid_fields.push(df);
|
|
}
|
|
}
|
|
|
|
// doctype fields
|
|
for (let df of this.fields) {
|
|
if (frappe.db.type_map[df.fieldtype]) {
|
|
this._valid_fields.push(df);
|
|
}
|
|
}
|
|
}
|
|
|
|
return this._valid_fields;
|
|
}
|
|
|
|
validate_select(df, value) {
|
|
let options = df.options;
|
|
if (typeof options === 'string') {
|
|
// values given as string
|
|
options = df.options.split('\n');
|
|
}
|
|
if (!options.includes(value)) {
|
|
throw new frappe.ValueError(`${value} must be one of ${options.join(", ")}`);
|
|
}
|
|
}
|
|
|
|
async trigger(key, event = {}) {
|
|
|
|
Object.assign(event, {
|
|
doc: this,
|
|
name: key
|
|
});
|
|
|
|
if (this.event_handlers[key]) {
|
|
for (var handler of this.event_handlers[key]) {
|
|
await handler(event);
|
|
}
|
|
}
|
|
}
|
|
|
|
// collections
|
|
async get_list({start, limit=20, filters}) {
|
|
return await frappe.db.get_all({
|
|
doctype: this.name,
|
|
fields: this.list_options.fields,
|
|
filters: filters,
|
|
start: start,
|
|
limit: limit
|
|
});
|
|
}
|
|
|
|
get_row_html(data) {
|
|
return `<a href="/view/${this.name}/${data.name}">${data.name}</a>`;
|
|
}
|
|
|
|
}
|
|
|
|
module.exports = { Meta: Meta }
|
|
|
|
/***/ }),
|
|
/* 16 */
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
const frappe = __webpack_require__(0);
|
|
|
|
class Session {
|
|
constructor(user, user_key) {
|
|
this.user = user || 'guest';
|
|
if (this.user !== 'guest') {
|
|
this.login(user_key);
|
|
}
|
|
}
|
|
|
|
login(user_key) {
|
|
// could be password, sessionid, otp
|
|
}
|
|
|
|
}
|
|
|
|
module.exports = { Session: Session };
|
|
|
|
/***/ }),
|
|
/* 17 */
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
const frappe = __webpack_require__(0);
|
|
const path = __webpack_require__(18);
|
|
|
|
class RESTClient {
|
|
constructor({server, protocol='http', fetch}) {
|
|
this.server = server;
|
|
this.protocol = protocol;
|
|
|
|
this.init_type_map();
|
|
|
|
frappe.fetch = fetch;
|
|
this.json_headers = {
|
|
'Accept': 'application/json',
|
|
'Content-Type': 'application/json'
|
|
}
|
|
}
|
|
|
|
connect() {
|
|
|
|
}
|
|
|
|
async insert(doctype, doc) {
|
|
doc.doctype = doctype;
|
|
let url = this.protocol + '://' + path.join(this.server, `/api/resource/${frappe.slug(doctype)}`);
|
|
let response = await frappe.fetch(url, {
|
|
method: 'POST',
|
|
headers: this.json_headers,
|
|
body: JSON.stringify(doc)
|
|
});
|
|
|
|
return await response.json();
|
|
}
|
|
|
|
async get(doctype, name) {
|
|
let url = this.protocol + '://' + path.join(this.server, `/api/resource/${frappe.slug(doctype)}/${name}`);
|
|
let response = await frappe.fetch(url, {
|
|
method: 'GET',
|
|
headers: this.json_headers
|
|
});
|
|
return await response.json();
|
|
}
|
|
|
|
async get_all({doctype, fields, filters, start, limit, sort_by, order}) {
|
|
let url = this.protocol + '://' + path.join(this.server, `/api/resource/${frappe.slug(doctype)}`);
|
|
let response = await frappe.fetch(url, {
|
|
method: 'GET',
|
|
params: {
|
|
fields: JSON.stringify(fields),
|
|
filters: JSON.stringify(filters),
|
|
start: start,
|
|
limit: limit,
|
|
sort_by: sort_by,
|
|
order: order
|
|
},
|
|
headers: this.json_headers
|
|
});
|
|
return await response.json();
|
|
|
|
}
|
|
|
|
async update(doctype, doc) {
|
|
doc.doctype = doctype;
|
|
let url = this.protocol + '://' + path.join(this.server, `/api/resource/${frappe.slug(doctype)}/${doc.name}`);
|
|
let response = await frappe.fetch(url, {
|
|
method: 'PUT',
|
|
headers: this.json_headers,
|
|
body: JSON.stringify(doc)
|
|
});
|
|
|
|
return await response.json();
|
|
}
|
|
|
|
async delete(doctype, name) {
|
|
let url = this.protocol + '://' + path.join(this.server, `/api/resource/${frappe.slug(doctype)}/${name}`);
|
|
|
|
let response = await frappe.fetch(url, {
|
|
method: 'DELETE',
|
|
headers: this.json_headers
|
|
});
|
|
|
|
return await response.json();
|
|
}
|
|
|
|
init_type_map() {
|
|
this.type_map = {
|
|
'Currency': true
|
|
,'Int': true
|
|
,'Float': true
|
|
,'Percent': true
|
|
,'Check': true
|
|
,'Small Text': true
|
|
,'Long Text': true
|
|
,'Code': true
|
|
,'Text Editor': true
|
|
,'Date': true
|
|
,'Datetime': true
|
|
,'Time': true
|
|
,'Text': true
|
|
,'Data': true
|
|
,'Link': true
|
|
,'Dynamic Link':true
|
|
,'Password': true
|
|
,'Select': true
|
|
,'Read Only': true
|
|
,'Attach': true
|
|
,'Attach Image':true
|
|
,'Signature': true
|
|
,'Color': true
|
|
,'Barcode': true
|
|
,'Geolocation': true
|
|
}
|
|
}
|
|
|
|
close() {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
module.exports = {
|
|
Database: RESTClient
|
|
}
|
|
|
|
/***/ }),
|
|
/* 18 */
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
/* WEBPACK VAR INJECTION */(function(process) {// Copyright Joyent, Inc. and other Node contributors.
|
|
//
|
|
// Permission is hereby granted, free of charge, to any person obtaining a
|
|
// copy of this software and associated documentation files (the
|
|
// "Software"), to deal in the Software without restriction, including
|
|
// without limitation the rights to use, copy, modify, merge, publish,
|
|
// distribute, sublicense, and/or sell copies of the Software, and to permit
|
|
// persons to whom the Software is furnished to do so, subject to the
|
|
// following conditions:
|
|
//
|
|
// The above copyright notice and this permission notice shall be included
|
|
// in all copies or substantial portions of the Software.
|
|
//
|
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
|
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
|
|
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
|
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
|
|
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
|
|
// USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
|
|
// resolves . and .. elements in a path array with directory names there
|
|
// must be no slashes, empty elements, or device names (c:\) in the array
|
|
// (so also no leading and trailing slashes - it does not distinguish
|
|
// relative and absolute paths)
|
|
function normalizeArray(parts, allowAboveRoot) {
|
|
// if the path tries to go above the root, `up` ends up > 0
|
|
var up = 0;
|
|
for (var i = parts.length - 1; i >= 0; i--) {
|
|
var last = parts[i];
|
|
if (last === '.') {
|
|
parts.splice(i, 1);
|
|
} else if (last === '..') {
|
|
parts.splice(i, 1);
|
|
up++;
|
|
} else if (up) {
|
|
parts.splice(i, 1);
|
|
up--;
|
|
}
|
|
}
|
|
|
|
// if the path is allowed to go above the root, restore leading ..s
|
|
if (allowAboveRoot) {
|
|
for (; up--; up) {
|
|
parts.unshift('..');
|
|
}
|
|
}
|
|
|
|
return parts;
|
|
}
|
|
|
|
// Split a filename into [root, dir, basename, ext], unix version
|
|
// 'root' is just a slash, or nothing.
|
|
var splitPathRe =
|
|
/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;
|
|
var splitPath = function(filename) {
|
|
return splitPathRe.exec(filename).slice(1);
|
|
};
|
|
|
|
// path.resolve([from ...], to)
|
|
// posix version
|
|
exports.resolve = function() {
|
|
var resolvedPath = '',
|
|
resolvedAbsolute = false;
|
|
|
|
for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {
|
|
var path = (i >= 0) ? arguments[i] : process.cwd();
|
|
|
|
// Skip empty and invalid entries
|
|
if (typeof path !== 'string') {
|
|
throw new TypeError('Arguments to path.resolve must be strings');
|
|
} else if (!path) {
|
|
continue;
|
|
}
|
|
|
|
resolvedPath = path + '/' + resolvedPath;
|
|
resolvedAbsolute = path.charAt(0) === '/';
|
|
}
|
|
|
|
// At this point the path should be resolved to a full absolute path, but
|
|
// handle relative paths to be safe (might happen when process.cwd() fails)
|
|
|
|
// Normalize the path
|
|
resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) {
|
|
return !!p;
|
|
}), !resolvedAbsolute).join('/');
|
|
|
|
return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';
|
|
};
|
|
|
|
// path.normalize(path)
|
|
// posix version
|
|
exports.normalize = function(path) {
|
|
var isAbsolute = exports.isAbsolute(path),
|
|
trailingSlash = substr(path, -1) === '/';
|
|
|
|
// Normalize the path
|
|
path = normalizeArray(filter(path.split('/'), function(p) {
|
|
return !!p;
|
|
}), !isAbsolute).join('/');
|
|
|
|
if (!path && !isAbsolute) {
|
|
path = '.';
|
|
}
|
|
if (path && trailingSlash) {
|
|
path += '/';
|
|
}
|
|
|
|
return (isAbsolute ? '/' : '') + path;
|
|
};
|
|
|
|
// posix version
|
|
exports.isAbsolute = function(path) {
|
|
return path.charAt(0) === '/';
|
|
};
|
|
|
|
// posix version
|
|
exports.join = function() {
|
|
var paths = Array.prototype.slice.call(arguments, 0);
|
|
return exports.normalize(filter(paths, function(p, index) {
|
|
if (typeof p !== 'string') {
|
|
throw new TypeError('Arguments to path.join must be strings');
|
|
}
|
|
return p;
|
|
}).join('/'));
|
|
};
|
|
|
|
|
|
// path.relative(from, to)
|
|
// posix version
|
|
exports.relative = function(from, to) {
|
|
from = exports.resolve(from).substr(1);
|
|
to = exports.resolve(to).substr(1);
|
|
|
|
function trim(arr) {
|
|
var start = 0;
|
|
for (; start < arr.length; start++) {
|
|
if (arr[start] !== '') break;
|
|
}
|
|
|
|
var end = arr.length - 1;
|
|
for (; end >= 0; end--) {
|
|
if (arr[end] !== '') break;
|
|
}
|
|
|
|
if (start > end) return [];
|
|
return arr.slice(start, end - start + 1);
|
|
}
|
|
|
|
var fromParts = trim(from.split('/'));
|
|
var toParts = trim(to.split('/'));
|
|
|
|
var length = Math.min(fromParts.length, toParts.length);
|
|
var samePartsLength = length;
|
|
for (var i = 0; i < length; i++) {
|
|
if (fromParts[i] !== toParts[i]) {
|
|
samePartsLength = i;
|
|
break;
|
|
}
|
|
}
|
|
|
|
var outputParts = [];
|
|
for (var i = samePartsLength; i < fromParts.length; i++) {
|
|
outputParts.push('..');
|
|
}
|
|
|
|
outputParts = outputParts.concat(toParts.slice(samePartsLength));
|
|
|
|
return outputParts.join('/');
|
|
};
|
|
|
|
exports.sep = '/';
|
|
exports.delimiter = ':';
|
|
|
|
exports.dirname = function(path) {
|
|
var result = splitPath(path),
|
|
root = result[0],
|
|
dir = result[1];
|
|
|
|
if (!root && !dir) {
|
|
// No dirname whatsoever
|
|
return '.';
|
|
}
|
|
|
|
if (dir) {
|
|
// It has a dirname, strip trailing slash
|
|
dir = dir.substr(0, dir.length - 1);
|
|
}
|
|
|
|
return root + dir;
|
|
};
|
|
|
|
|
|
exports.basename = function(path, ext) {
|
|
var f = splitPath(path)[2];
|
|
// TODO: make this comparison case-insensitive on windows?
|
|
if (ext && f.substr(-1 * ext.length) === ext) {
|
|
f = f.substr(0, f.length - ext.length);
|
|
}
|
|
return f;
|
|
};
|
|
|
|
|
|
exports.extname = function(path) {
|
|
return splitPath(path)[3];
|
|
};
|
|
|
|
function filter (xs, f) {
|
|
if (xs.filter) return xs.filter(f);
|
|
var res = [];
|
|
for (var i = 0; i < xs.length; i++) {
|
|
if (f(xs[i], i, xs)) res.push(xs[i]);
|
|
}
|
|
return res;
|
|
}
|
|
|
|
// String.prototype.substr - negative index don't work in IE8
|
|
var substr = 'ab'.substr(-1) === 'b'
|
|
? function (str, start, len) { return str.substr(start, len) }
|
|
: function (str, start, len) {
|
|
if (start < 0) start = str.length + start;
|
|
return str.substr(start, len);
|
|
}
|
|
;
|
|
|
|
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)))
|
|
|
|
/***/ }),
|
|
/* 19 */
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
const frappe = __webpack_require__(0);
|
|
|
|
module.exports = {
|
|
add(tag, className, parent) {
|
|
let element = document.createElement(tag);
|
|
if (className) {
|
|
for (let c of className.split(' ')) {
|
|
this.add_class(element, c);
|
|
}
|
|
}
|
|
if (parent) {
|
|
parent.appendChild(element);
|
|
}
|
|
return element;
|
|
},
|
|
|
|
remove(element) {
|
|
element.parentNode.removeChild(element);
|
|
},
|
|
|
|
add_class(element, className) {
|
|
if (element.classList) {
|
|
element.classList.add(className);
|
|
} else {
|
|
element.className += " " + className;
|
|
}
|
|
},
|
|
|
|
remove_class(element, className) {
|
|
if (element.classList) {
|
|
element.classList.remove(className);
|
|
} else {
|
|
element.className = element.className.replace(new RegExp('(^|\\b)' + className.split(' ').join('|') + '(\\b|$)', 'gi'), ' ');
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
/***/ }),
|
|
/* 20 */
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
const frappe = __webpack_require__(0);
|
|
|
|
module.exports = {
|
|
init({container, main, sidebar}) {
|
|
frappe.container = container;
|
|
|
|
if (sidebar) {
|
|
frappe.sidebar = sidebar;
|
|
} else {
|
|
frappe.sidebar = frappe.ui.add('div', 'sidebar', frappe.container);
|
|
}
|
|
|
|
if (main) {
|
|
frappe.main = main;
|
|
} else {
|
|
frappe.main = frappe.ui.add('div', 'main', frappe.container);
|
|
}
|
|
},
|
|
|
|
}
|
|
|
|
/***/ }),
|
|
/* 21 */
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
const frappe = __webpack_require__(0);
|
|
|
|
class Router {
|
|
constructor() {
|
|
this.current_page = null;
|
|
this.routes = {};
|
|
this.listen();
|
|
}
|
|
|
|
add(route, handler) {
|
|
let page = {handler: handler};
|
|
|
|
// '/todo/:name/:place'.match(/:([^/]+)/g);
|
|
page.param_keys = route.match(/:([^/]+)/g);
|
|
|
|
if (page.param_keys) {
|
|
// make expression
|
|
// '/todo/:name/:place'.replace(/\/:([a-z1-9]+)/g, "\/([a-z0-9]+)");
|
|
page.expression = route.replace(/\/:([a-z1-9]+)/g, "\/([a-z0-9]+)");
|
|
}
|
|
|
|
this.routes[route] = page;
|
|
}
|
|
|
|
listen() {
|
|
window.onhashchange = this.changed.bind(this);
|
|
this.changed();
|
|
}
|
|
|
|
async changed(event) {
|
|
if (window.location.hash.length > 0) {
|
|
const page_name = window.location.hash.substr(1);
|
|
this.show(page_name);
|
|
} else if (this.routes['default']) {
|
|
this.show('default');
|
|
}
|
|
}
|
|
|
|
show(route) {
|
|
if (!route) {
|
|
route = 'default';
|
|
}
|
|
|
|
if (route[0]==='#') {
|
|
route = route.substr(1);
|
|
}
|
|
|
|
let page = this.match(route);
|
|
|
|
if (page) {
|
|
if (typeof page.handler==='function') {
|
|
page.handler(page.params);
|
|
} else {
|
|
page.handler.show(page.params);
|
|
}
|
|
}
|
|
}
|
|
|
|
match(route) {
|
|
for(let key in this.routes) {
|
|
let page = this.routes[key];
|
|
|
|
if (page.param_keys) {
|
|
let matches = route.match(new RegExp(page.expression));
|
|
if (matches && matches.length == page.param_keys.length + 1) {
|
|
let params = {}
|
|
for (let i=0; i < page.param_keys.length; i++) {
|
|
params[page.param_keys[i].substr(1)] = matches[i + 1];
|
|
}
|
|
return {handler:page.handler, params: params};
|
|
}
|
|
|
|
} else {
|
|
if (key === route) {
|
|
return {handler:page.handler};
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
module.exports = {Router: Router};
|
|
|
|
/***/ }),
|
|
/* 22 */
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
const frappe = __webpack_require__(0);
|
|
|
|
class ListView {
|
|
constructor({doctype, parent}) {
|
|
this.doctype = doctype;
|
|
this.parent = parent;
|
|
this.meta = frappe.get_meta(this.doctype);
|
|
|
|
this.start = 0;
|
|
this.page_length = 20;
|
|
|
|
this.body = null;
|
|
this.rows = [];
|
|
}
|
|
|
|
async run() {
|
|
this.make_body();
|
|
let data = await this.meta.get_list({start:this.start, limit:this.page_length});
|
|
|
|
for (let i=0; i< data.length; i++) {
|
|
this.render_row(this.start + i, data[i]);
|
|
}
|
|
}
|
|
|
|
make_body() {
|
|
if (!this.body) {
|
|
this.body = frappe.ui.add('div', 'list-body', this.parent);
|
|
}
|
|
}
|
|
|
|
render_row(i, data) {
|
|
let row = this.get_row(i);
|
|
row.innerHTML = this.meta.get_row_html(data);
|
|
}
|
|
|
|
get_row(i) {
|
|
if (!this.rows[i]) {
|
|
this.rows[i] = frappe.ui.add('div', 'list-row', this.body);
|
|
}
|
|
return this.rows[i];
|
|
}
|
|
|
|
};
|
|
|
|
module.exports = {
|
|
ListView: ListView
|
|
};
|
|
|
|
/***/ }),
|
|
/* 23 */
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
const frappe = __webpack_require__(0);
|
|
|
|
class Page {
|
|
constructor(title) {
|
|
this.title = title;
|
|
this.make();
|
|
}
|
|
make() {
|
|
this.body = frappe.ui.add('div', 'page hide', frappe.main);
|
|
}
|
|
hide() {
|
|
frappe.ui.add_class(this.body, 'hide');
|
|
}
|
|
show() {
|
|
if (frappe.router.current_page) {
|
|
frappe.router.current_page.hide();
|
|
}
|
|
frappe.ui.remove_class(this.body, 'hide');
|
|
frappe.router.current_page = this;
|
|
document.title = this.title;
|
|
}
|
|
}
|
|
|
|
module.exports = { Page: Page };
|
|
|
|
/***/ }),
|
|
/* 24 */
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
const frappe = __webpack_require__(0);
|
|
const controls = __webpack_require__(25);
|
|
|
|
class Form {
|
|
constructor({doctype, parent, submit_label='Submit'}) {
|
|
this.parent = parent;
|
|
this.doctype = doctype;
|
|
this.submit_label = submit_label;
|
|
|
|
this.controls = {};
|
|
this.controls_list = [];
|
|
|
|
this.meta = frappe.get_meta(this.doctype);
|
|
}
|
|
|
|
make() {
|
|
this.body = frappe.ui.add('form', null, this.parent);
|
|
for(let df of this.meta.fields) {
|
|
if (controls.get_control_class(df.fieldtype)) {
|
|
let control = controls.make_control(df, this.body);
|
|
this.controls_list.push(control);
|
|
this.controls[df.fieldname] = control;
|
|
}
|
|
}
|
|
this.make_submit();
|
|
}
|
|
|
|
make_submit() {
|
|
this.submit_btn = frappe.ui.add('button', 'btn btn-outline-primary', this.body);
|
|
this.submit_btn.setAttribute('type', 'submit');
|
|
this.submit_btn.textContent = this.submit_label;
|
|
this.submit_btn.addEventListener('click', (event) => {
|
|
this.submit();
|
|
event.preventDefault();
|
|
})
|
|
}
|
|
|
|
show_alert(message, type) {
|
|
this.alert = frappe.ui.add('div', `alert alert-${type}`, this.body);
|
|
this.alert.textContent = message;
|
|
}
|
|
|
|
clear_alert() {
|
|
if (this.alert) {
|
|
frappe.ui.remove(this.alert);
|
|
this.alert = null;
|
|
}
|
|
}
|
|
|
|
async use(doc, is_new = false) {
|
|
if (this.doc) {
|
|
// clear handlers of outgoing doc
|
|
this.doc.clear_handlers();
|
|
}
|
|
this.clear_alert();
|
|
this.doc = doc;
|
|
this.is_new = is_new;
|
|
for (let control of this.controls_list) {
|
|
control.bind(this.doc);
|
|
}
|
|
}
|
|
|
|
async submit() {
|
|
try {
|
|
if (this.is_new) {
|
|
await this.doc.insert();
|
|
} else {
|
|
await this.doc.update();
|
|
}
|
|
await this.refresh();
|
|
this.show_alert('Saved', 'success');
|
|
} catch (e) {
|
|
this.show_alert('Failed', 'danger');
|
|
}
|
|
}
|
|
|
|
refresh() {
|
|
for(let control of this.controls_list) {
|
|
control.refresh();
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
module.exports = {Form: Form};
|
|
|
|
/***/ }),
|
|
/* 25 */
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
const control_classes = {
|
|
Data: __webpack_require__(26),
|
|
Text: __webpack_require__(27),
|
|
Select: __webpack_require__(28)
|
|
}
|
|
|
|
|
|
module.exports = {
|
|
get_control_class(fieldtype) {
|
|
return control_classes[fieldtype];
|
|
},
|
|
make_control(field, parent) {
|
|
const control_class = this.get_control_class(field.fieldtype);
|
|
let control = new control_class(field, parent);
|
|
control.make();
|
|
return control;
|
|
}
|
|
}
|
|
|
|
/***/ }),
|
|
/* 26 */
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
const BaseControl = __webpack_require__(1);
|
|
|
|
class DataControl extends BaseControl {
|
|
make() {
|
|
super.make();
|
|
this.input.setAttribute('type', 'text');
|
|
}
|
|
};
|
|
|
|
module.exports = DataControl;
|
|
|
|
/***/ }),
|
|
/* 27 */
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
const BaseControl = __webpack_require__(1);
|
|
|
|
class TextControl extends BaseControl {
|
|
make_input() {
|
|
this.input = frappe.ui.add('textarea', 'form-control', this.form_group);
|
|
}
|
|
make() {
|
|
super.make();
|
|
this.input.setAttribute('rows', '8');
|
|
}
|
|
};
|
|
|
|
module.exports = TextControl;
|
|
|
|
/***/ }),
|
|
/* 28 */
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
const BaseControl = __webpack_require__(1);
|
|
|
|
class SelectControl extends BaseControl {
|
|
make_input() {
|
|
this.input = frappe.ui.add('select', 'form-control', this.form_group);
|
|
|
|
let options = this.options;
|
|
if (typeof options==='string') {
|
|
options = options.split('\n');
|
|
}
|
|
|
|
for (let value of options) {
|
|
let option = frappe.ui.add('option', null, this.input);
|
|
option.textContent = value;
|
|
option.setAttribute('value', value);
|
|
}
|
|
}
|
|
make() {
|
|
super.make();
|
|
this.input.setAttribute('row', '3');
|
|
}
|
|
};
|
|
|
|
module.exports = SelectControl;
|
|
|
|
/***/ }),
|
|
/* 29 */
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
const frappe = __webpack_require__(0);
|
|
|
|
class todo_meta extends frappe.meta.Meta {
|
|
setup_meta() {
|
|
Object.assign(this, __webpack_require__(30));
|
|
this.name = 'ToDo';
|
|
this.list_options.fields = ['name', 'subject', 'status', 'description'];
|
|
}
|
|
|
|
get_row_html(data) {
|
|
return `<a href="#edit/todo/${data.name}">${data.subject}</a>`;
|
|
}
|
|
|
|
}
|
|
|
|
class todo extends frappe.document.Document {
|
|
setup() {
|
|
this.add_handler('validate');
|
|
}
|
|
validate() {
|
|
if (!this.status) {
|
|
this.status = 'Open';
|
|
}
|
|
}
|
|
}
|
|
|
|
module.exports = {
|
|
todo: todo,
|
|
todo_meta: todo_meta
|
|
};
|
|
|
|
|
|
/***/ }),
|
|
/* 30 */
|
|
/***/ (function(module, exports) {
|
|
|
|
module.exports = {"autoname":"hash","name":"ToDo","doctype":"DocType","issingle":0,"fields":[{"fieldname":"subject","label":"Subject","fieldtype":"Data","reqd":1},{"fieldname":"description","label":"Description","fieldtype":"Text"},{"fieldname":"status","label":"Status","fieldtype":"Select","options":["Open","Closed"],"default":"Open","reqd":1}]}
|
|
|
|
/***/ })
|
|
/******/ ]);
|
|
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vd2VicGFjay9ib290c3RyYXAgNTg3MDA1MmQ5YjdkZTY2OThjNjgiLCJ3ZWJwYWNrOi8vLy4uL2ZyYXBwZS1jb3JlL2ZyYXBwZS9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi4vZnJhcHBlLWNvcmUvZnJhcHBlL2NsaWVudC92aWV3L2NvbnRyb2xzL2Jhc2UuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3Byb2Nlc3MvYnJvd3Nlci5qcyIsIndlYnBhY2s6Ly8vLi4vZnJhcHBlLWNvcmUvZnJhcHBlL21vZGVsL2RvY3VtZW50LmpzIiwid2VicGFjazovLy8uL2luZGV4LmpzIiwid2VicGFjazovLy8uL3Njc3MvbWFpbi5zY3NzPzE5ZGEiLCJ3ZWJwYWNrOi8vLy4vc2Nzcy9tYWluLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvbGliL2Nzcy1iYXNlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvbGliL2FkZFN0eWxlcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2xpYi91cmxzLmpzIiwid2VicGFjazovLy8uLi9mcmFwcGUtY29yZS9mcmFwcGUvY2xpZW50L2luZGV4LmpzIiwid2VicGFjazovLy8uLi9mcmFwcGUtY29yZS9mcmFwcGUvY29tbW9uL2luZGV4LmpzIiwid2VicGFjazovLy8uLi9mcmFwcGUtY29yZS9mcmFwcGUvdXRpbHMuanMiLCJ3ZWJwYWNrOi8vLy4uL2ZyYXBwZS1jb3JlL2ZyYXBwZS9tb2RlbC9tb2RlbHMuanMiLCJ3ZWJwYWNrOi8vLy4uL2ZyYXBwZS1jb3JlL2ZyYXBwZS9tb2RlbC9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi4vZnJhcHBlLWNvcmUvZnJhcHBlL21vZGVsL21ldGEuanMiLCJ3ZWJwYWNrOi8vLy4uL2ZyYXBwZS1jb3JlL2ZyYXBwZS9zZXNzaW9uLmpzIiwid2VicGFjazovLy8uLi9mcmFwcGUtY29yZS9mcmFwcGUvYmFja2VuZHMvcmVzdF9jbGllbnQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3BhdGgtYnJvd3NlcmlmeS9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi4vZnJhcHBlLWNvcmUvZnJhcHBlL2NsaWVudC91aS9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi4vZnJhcHBlLWNvcmUvZnJhcHBlL2NsaWVudC92aWV3L2luZGV4LmpzIiwid2VicGFjazovLy8uLi9mcmFwcGUtY29yZS9mcmFwcGUvY2xpZW50L3ZpZXcvcm91dGVyLmpzIiwid2VicGFjazovLy8uLi9mcmFwcGUtY29yZS9mcmFwcGUvY2xpZW50L3ZpZXcvbGlzdC5qcyIsIndlYnBhY2s6Ly8vLi4vZnJhcHBlLWNvcmUvZnJhcHBlL2NsaWVudC92aWV3L3BhZ2UuanMiLCJ3ZWJwYWNrOi8vLy4uL2ZyYXBwZS1jb3JlL2ZyYXBwZS9jbGllbnQvdmlldy9mb3JtLmpzIiwid2VicGFjazovLy8uLi9mcmFwcGUtY29yZS9mcmFwcGUvY2xpZW50L3ZpZXcvY29udHJvbHMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4uL2ZyYXBwZS1jb3JlL2ZyYXBwZS9jbGllbnQvdmlldy9jb250cm9scy9kYXRhLmpzIiwid2VicGFjazovLy8uLi9mcmFwcGUtY29yZS9mcmFwcGUvY2xpZW50L3ZpZXcvY29udHJvbHMvdGV4dC5qcyIsIndlYnBhY2s6Ly8vLi4vZnJhcHBlLWNvcmUvZnJhcHBlL2NsaWVudC92aWV3L2NvbnRyb2xzL3NlbGVjdC5qcyIsIndlYnBhY2s6Ly8vLi4vZnJhcHBlLWNvcmUvZnJhcHBlL21vZGVscy9kb2N0eXBlL3RvZG8vdG9kby5qcyIsIndlYnBhY2s6Ly8vLi4vZnJhcHBlLWNvcmUvZnJhcHBlL21vZGVscy9kb2N0eXBlL3RvZG8vdG9kby5qc29uIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBSztBQUNMO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsbUNBQTJCLDBCQUEwQixFQUFFO0FBQ3ZELHlDQUFpQyxlQUFlO0FBQ2hEO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLDhEQUFzRCwrREFBK0Q7O0FBRXJIO0FBQ0E7O0FBRUE7QUFDQTs7Ozs7OztBQzdEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7O0FBRUY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7O0FBRUY7QUFDQSx5Q0FBeUM7QUFDekMsRUFBRTs7QUFFRjtBQUNBO0FBQ0EsRUFBRTs7QUFFRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRTs7QUFFRjtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7O0FBRUY7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DLHlCQUF5QjtBQUM1RDtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7O0FBRUY7QUFDQTtBQUNBO0FBQ0EsRUFBRTs7QUFFRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRTs7QUFFRjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7QUNwRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsNkI7Ozs7OztBQ3BHQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCLHNCQUFzQjtBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEscUNBQXFDOztBQUVyQztBQUNBO0FBQ0E7O0FBRUEsMkJBQTJCO0FBQzNCO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QixVQUFVOzs7Ozs7O0FDdkx0Qzs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxrQkFBa0Isc0I7Ozs7OztBQ3BJbEI7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtB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a0NBQWtDLGtDQUFrQywyQkFBMkIsRUFBRSxlQUFlLDBCQUEwQiw0QkFBNEIsNEJBQTRCLHFCQUFxQixFQUFFLGVBQWUsMEJBQTBCLGtDQUFrQyxrQ0FBa0MsMkJBQTJCLEVBQUUsZUFBZSwwQkFBMEIsa0NBQWtDLGtDQUFrQywyQkFBMkIsRUFBRSxlQUFlLDBCQUEwQiw0QkFBNEIsNEJBQTRCLHFCQUFxQixFQUFFLGdCQUFnQiwwQkFBMEIsa0NBQWtDLGtDQUFrQywyQkFBMkIsRUFBRSxnQkFBZ0IsMEJBQTBCLGtDQUFrQyxrQ0FBa0MsMkJBQTJCLEVBQUUsZ0JBQWdCLDBCQUEwQiw2QkFBNkIsNkJBQTZCLHNCQUFzQixFQUFFLGdCQUFnQixrQkFBa0IsRUFBRSxnQkFBZ0Isc0JBQXNCLEVBQUUsZ0JBQWdCLHVCQUF1QixFQUFFLGdCQUFnQixpQkFBaUIsRUFBRSxnQkFBZ0IsdUJBQXVCLEVBQUUsZ0JBQWdCLHVCQUF1QixFQUFFLGdCQUFnQixpQkFBaUIsRUFBRSxnQkFBZ0IsdUJBQXVCLEVBQUUsZ0JBQWdCLHVCQUF1QixFQUFFLGdCQUFnQixpQkFBaUIsRUFBRSxpQkFBaUIsdUJBQXVCLEVBQUUsaUJBQWlCLHVCQUF1QixFQUFFLGlCQUFpQixrQkFBa0IsRUFBRSxnQkFBZ0IsaUJBQWlCLEVBQUUsZ0JBQWdCLHFCQUFxQixFQUFFLGdCQUFnQixzQkFBc0IsRUFBRSxnQkFBZ0IsZ0JBQWdCLEVBQUUsZ0JBQWdCLHNCQUFzQixFQUFFLGdCQUFnQixzQkFBc0IsRUFBRSxnQkFBZ0IsZ0JBQWdCLEVBQUUsZ0JBQWdCLHNCQUFzQixFQUFFLGdCQUFnQixzQkFBc0IsRUFBRSxnQkFBZ0IsZ0JBQWdCLEVBQUUsaUJBQWlCLHNCQUFzQixFQUFFLGlCQUFpQixzQkFBc0IsRUFBRSxpQkFBaUIsaUJBQWlCLEVBQUUsa0JBQWtCLHNCQUFzQixFQUFFLGtCQUFrQiw0QkFBNEIsRUFBRSxrQkFBa0IsNkJBQTZCLEVBQUUsa0JBQWtCLHVCQUF1QixFQUFFLGtCQUFrQiw2QkFBNkIsRUFBRSxrQkFBa0IsNkJBQTZC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QUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBLEVBQUU7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLENBQUM7O0FBRUQ7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsRUFBRTtBQUNGO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSx1REFBdUQ7QUFDdkQ7O0FBRUEsNkJBQTZCLG1CQUFtQjs7QUFFaEQ7O0FBRUE7O0FBRUE7QUFDQTs7Ozs7Ozs7QUM1V0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtB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RUE7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7QUM3QkEsa0JBQWtCLDRFQUE0RSxvRUFBb0UsRUFBRSxtRUFBbUUsRUFBRSxpSEFBaUgsRSIsImZpbGUiOiIuL2pzL2J1bmRsZS5qcyIsInNvdXJjZXNDb250ZW50IjpbIiBcdC8vIFRoZSBtb2R1bGUgY2FjaGVcbiBcdHZhciBpbnN0YWxsZWRNb2R1bGVzID0ge307XG5cbiBcdC8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG4gXHRmdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cbiBcdFx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG4gXHRcdGlmKGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdKSB7XG4gXHRcdFx0cmV0dXJuIGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdLmV4cG9ydHM7XG4gXHRcdH1cbiBcdFx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcbiBcdFx0dmFyIG1vZHVsZSA9IGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdID0ge1xuIFx0XHRcdGk6IG1vZHVsZUlkLFxuIFx0XHRcdGw6IGZhbHNlLFxuIFx0XHRcdGV4cG9ydHM6IHt9XG4gXHRcdH07XG5cbiBcdFx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG4gXHRcdG1vZHVsZXNbbW9kdWxlSWRdLmNhbGwobW9kdWxlLmV4cG9ydHMsIG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG4gXHRcdC8vIEZsYWcgdGhlIG1vZHVsZSBhcyBsb2FkZWRcbiBcdFx0bW9kdWxlLmwgPSB0cnVlO1xuXG4gXHRcdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG4gXHRcdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbiBcdH1cblxuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tID0gbW9kdWxlcztcblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGUgY2FjaGVcbiBcdF9fd2VicGFja19yZXF1aXJlX18uYyA9IGluc3RhbGxlZE1vZHVsZXM7XG5cbiBcdC8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb24gZm9yIGhhcm1vbnkgZXhwb3J0c1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kID0gZnVuY3Rpb24oZXhwb3J0cywgbmFtZSwgZ2V0dGVyKSB7XG4gXHRcdGlmKCFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywgbmFtZSkpIHtcbiBcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgbmFtZSwge1xuIFx0XHRcdFx0Y29uZmlndXJhYmxlOiBmYWxzZSxcbiBcdFx0XHRcdGVudW1lcmFibGU6IHRydWUsXG4gXHRcdFx0XHRnZXQ6IGdldHRlclxuIFx0XHRcdH0pO1xuIFx0XHR9XG4gXHR9O1xuXG4gXHQvLyBnZXREZWZhdWx0RXhwb3J0IGZ1bmN0aW9uIGZvciBjb21wYXRpYmlsaXR5IHdpdGggbm9uLWhhcm1vbnkgbW9kdWxlc1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5uID0gZnVuY3Rpb24obW9kdWxlKSB7XG4gXHRcdHZhciBnZXR0ZXIgPSBtb2R1bGUgJiYgbW9kdWxlLl9fZXNNb2R1bGUgP1xuIFx0XHRcdGZ1bmN0aW9uIGdldERlZmF1bHQoKSB7IHJldHVybiBtb2R1bGVbJ2RlZmF1bHQnXTsgfSA6XG4gXHRcdFx0ZnVuY3Rpb24gZ2V0TW9kdWxlRXhwb3J0cygpIHsgcmV0dXJuIG1vZHVsZTsgfTtcbiBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kKGdldHRlciwgJ2EnLCBnZXR0ZXIpO1xuIFx0XHRyZXR1cm4gZ2V0dGVyO1xuIFx0fTtcblxuIFx0Ly8gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSBmdW5jdGlvbihvYmplY3QsIHByb3BlcnR5KSB7IHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBwcm9wZXJ0eSk7IH07XG5cbiBcdC8vIF9fd2VicGFja19wdWJsaWNfcGF0aF9fXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnAgPSBcIi9cIjtcblxuIFx0Ly8gTG9hZCBlbnRyeSBtb2R1bGUgYW5kIHJldHVybiBleHBvcnRzXG4gXHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXyhfX3dlYnBhY2tfcmVxdWlyZV9fLnMgPSA0KTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyB3ZWJwYWNrL2Jvb3RzdHJhcCA1ODcwMDUyZDliN2RlNjY5OGM2OCIsIm1vZHVsZS5leHBvcnRzID0ge1xuXHRhc3luYyBpbml0KCkge1xuXHRcdGlmICh0aGlzLl9pbml0aWFsaXplZCkgcmV0dXJuO1xuXHRcdHRoaXMuaW5pdF9jb25maWcoKTtcblx0XHR0aGlzLmluaXRfZXJyb3JzKCk7XG5cdFx0dGhpcy5pbml0X2dsb2JhbHMoKTtcblx0XHR0aGlzLl9pbml0aWFsaXplZCA9IHRydWU7XG5cdH0sXG5cblx0aW5pdF9jb25maWcoKSB7XG5cdFx0dGhpcy5jb25maWcgPSB7XG5cdFx0XHRiYWNrZW5kOiAnc3FsaXRlJyxcblx0XHRcdHBvcnQ6IDgwMDBcblx0XHR9O1xuXHR9LFxuXG5cdGluaXRfZXJyb3JzKCkge1xuXHRcdHRoaXMuVmFsdWVFcnJvciA9IGNsYXNzIGV4dGVuZHMgRXJyb3IgeyB9O1xuXHR9LFxuXG5cdGluaXRfZ2xvYmFscygpIHtcblx0XHR0aGlzLm1ldGFfY2FjaGUgPSB7fTtcblx0fSxcblxuXHRnZXRfbWV0YShkb2N0eXBlKSB7XG5cdFx0aWYgKCF0aGlzLm1ldGFfY2FjaGVbZG9jdHlwZV0pIHtcblx0XHRcdHRoaXMubWV0YV9jYWNoZVtkb2N0eXBlXSA9IG5ldyAodGhpcy5tb2RlbHMuZ2V0X21ldGFfY2xhc3MoZG9jdHlwZSkpKHRoaXMubW9kZWxzLmdldCgnRG9jVHlwZScsIGRvY3R5cGUpKTtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXMubWV0YV9jYWNoZVtkb2N0eXBlXTtcblx0fSxcblxuXHRpbml0X2NvbnRyb2xsZXIoZG9jdHlwZSwgbW9kdWxlKSB7XG5cdFx0ZG9jdHlwZSA9IHRoaXMuc2x1Zyhkb2N0eXBlKTtcblx0XHR0aGlzLm1vZGVscy5jb250cm9sbGVyc1tkb2N0eXBlXSA9IG1vZHVsZVtkb2N0eXBlXTtcblx0XHR0aGlzLm1vZGVscy5tZXRhX2NsYXNzZXNbZG9jdHlwZV0gPSBtb2R1bGVbZG9jdHlwZSArICdfbWV0YSddO1xuXHR9LFxuXG5cdGFzeW5jIGdldF9kb2MoZGF0YSwgbmFtZSkge1xuXHRcdGlmICh0eXBlb2YgZGF0YT09PSdzdHJpbmcnICYmIHR5cGVvZiBuYW1lPT09J3N0cmluZycpIHtcblx0XHRcdGxldCBjb250cm9sbGVyX2NsYXNzID0gdGhpcy5tb2RlbHMuZ2V0X2NvbnRyb2xsZXIoZGF0YSk7XG5cdFx0XHR2YXIgZG9jID0gbmV3IGNvbnRyb2xsZXJfY2xhc3Moe2RvY3R5cGU6ZGF0YSwgbmFtZTogbmFtZX0pO1xuXHRcdFx0YXdhaXQgZG9jLmxvYWQoKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0bGV0IGNvbnRyb2xsZXJfY2xhc3MgPSB0aGlzLm1vZGVscy5nZXRfY29udHJvbGxlcihkYXRhLmRvY3R5cGUpO1xuXHRcdFx0dmFyIGRvYyA9IG5ldyBjb250cm9sbGVyX2NsYXNzKGRhdGEpO1xuXHRcdH1cblx0XHRyZXR1cm4gZG9jO1xuXHR9LFxuXG5cdGFzeW5jIGluc2VydChkYXRhKSB7XG5cdFx0Y29uc3QgZG9jID0gYXdhaXQgdGhpcy5nZXRfZG9jKGRhdGEpO1xuXHRcdHJldHVybiBhd2FpdCBkb2MuaW5zZXJ0KCk7XG5cdH0sXG5cblx0bG9naW4odXNlcj0nZ3Vlc3QnLCB1c2VyX2tleSkge1xuXHRcdHRoaXMuc2Vzc2lvbiA9IG5ldyB0aGlzLl9zZXNzaW9uLlNlc3Npb24odXNlcik7XG5cdFx0aWYgKHVzZXIgJiYgdXNlcl9rZXkpIHtcblx0XHRcdHRoaXMuYXV0aGVudGljYXRlKHVzZXJfa2V5KTtcblx0XHR9XG5cdH0sXG5cblx0Y2xvc2UoKSB7XG5cdFx0dGhpcy5kYi5jbG9zZSgpO1xuXG5cdFx0aWYgKHRoaXMuc2VydmVyKSB7XG5cdFx0XHR0aGlzLnNlcnZlci5jbG9zZSgpO1xuXHRcdH1cblx0fVxufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4uL2ZyYXBwZS1jb3JlL2ZyYXBwZS9pbmRleC5qc1xuLy8gbW9kdWxlIGlkID0gMFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJjb25zdCBmcmFwcGUgPSByZXF1aXJlKCdmcmFwcGUtY29yZScpO1xuXG5jbGFzcyBCYXNlQ29udHJvbCB7XG5cdGNvbnN0cnVjdG9yKGRvY2ZpZWxkLCBwYXJlbnQpIHtcblx0XHRPYmplY3QuYXNzaWduKHRoaXMsIGRvY2ZpZWxkKTtcblx0XHRpZiAoIXRoaXMuZmllbGRuYW1lKSB7XG5cdFx0XHR0aGlzLmZpZWxkbmFtZSA9IGZyYXBwZS5zbHVnKHRoaXMubGFiZWwpO1xuXHRcdH1cblx0XHR0aGlzLnBhcmVudCA9IHBhcmVudDtcblx0XHRpZiAodGhpcy5zZXR1cCkge1xuXHRcdFx0dGhpcy5zZXR1cCgpO1xuXHRcdH1cblx0fVxuXG5cdGJpbmQoZG9jKSB7XG5cdFx0dGhpcy5kb2MgPSBkb2M7XG5cblx0XHR0aGlzLmRvYy5hZGRfaGFuZGxlcih0aGlzLmZpZWxkbmFtZSwgKCkgPT4ge1xuXHRcdFx0dGhpcy5zZXRfZG9jX3ZhbHVlKCk7XG5cdFx0fSk7XG5cblx0XHR0aGlzLnNldF9kb2NfdmFsdWUoKTtcblx0fVxuXG5cdHJlZnJlc2goKSB7XG5cdFx0dGhpcy5tYWtlKCk7XG5cdFx0dGhpcy5zZXRfZG9jX3ZhbHVlKCk7XG5cdH1cblxuXHRzZXRfZG9jX3ZhbHVlKCkge1xuXHRcdGlmICh0aGlzLmRvYykge1xuXHRcdFx0dGhpcy5zZXRfaW5wdXRfdmFsdWUodGhpcy5kb2MuZ2V0KHRoaXMuZmllbGRuYW1lKSk7XG5cdFx0fVxuXHR9XG5cblx0bWFrZSgpIHtcblx0XHRpZiAoIXRoaXMuZm9ybV9ncm91cCkge1xuXHRcdFx0dGhpcy5tYWtlX2Zvcm1fZ3JvdXAoKTtcblx0XHRcdHRoaXMubWFrZV9sYWJlbCgpO1xuXHRcdFx0dGhpcy5tYWtlX2lucHV0KCk7XG5cdFx0XHR0aGlzLnNldF9pbnB1dF9uYW1lKCk7XG5cdFx0XHR0aGlzLm1ha2VfZGVzY3JpcHRpb24oKTtcblx0XHRcdHRoaXMuYmluZF9jaGFuZ2VfZXZlbnQoKTtcblx0XHR9XG5cdH1cblxuXHRtYWtlX2Zvcm1fZ3JvdXAoKSB7XG5cdFx0dGhpcy5mb3JtX2dyb3VwID0gZnJhcHBlLnVpLmFkZCgnZGl2JywgJ2Zvcm0tZ3JvdXAnLCB0aGlzLnBhcmVudCk7XG5cdH1cblxuXHRtYWtlX2xhYmVsKCkge1xuXHRcdHRoaXMubGFiZWxfZWxlbWVudCA9IGZyYXBwZS51aS5hZGQoJ2xhYmVsJywgbnVsbCwgdGhpcy5mb3JtX2dyb3VwKTtcblx0XHR0aGlzLmxhYmVsX2VsZW1lbnQudGV4dENvbnRlbnQgPSB0aGlzLmxhYmVsO1xuXHR9XG5cblx0bWFrZV9pbnB1dCgpIHtcblx0XHR0aGlzLmlucHV0ID0gZnJhcHBlLnVpLmFkZCgnaW5wdXQnLCAnZm9ybS1jb250cm9sJywgdGhpcy5mb3JtX2dyb3VwKTtcblx0fVxuXG5cdHNldF9pbnB1dF9uYW1lKCkge1xuXHRcdHRoaXMuaW5wdXQuc2V0QXR0cmlidXRlKCduYW1lJywgdGhpcy5maWVsZG5hbWUpO1xuXHR9XG5cblx0bWFrZV9kZXNjcmlwdGlvbigpIHtcblx0XHRpZiAodGhpcy5kZXNjcmlwdGlvbikge1xuXHRcdFx0dGhpcy5kZXNjcmlwdGlvbl9lbGVtZW50ID0gZnJhcHBlLnVpLmFkZCgnc21hbGwnLCAnZm9ybS10ZXh0IHRleHQtbXV0ZWQnLCB0aGlzLmZvcm1fZ3JvdXApO1xuXHRcdFx0dGhpcy5kZXNjcmlwdGlvbl9lbGVtZW50LnRleHRDb250ZW50ID0gdGhpcy5kZXNjcmlwdGlvbjtcblx0XHR9XG5cdH1cblxuXHRzZXRfaW5wdXRfdmFsdWUodmFsdWUpIHtcblx0XHRpZiAodmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gbnVsbCkge1xuXHRcdFx0dmFsdWUgPSAnJztcblx0XHR9XG5cdFx0dGhpcy5pbnB1dC52YWx1ZSA9IHZhbHVlO1xuXHR9XG5cblx0YXN5bmMgZ2V0X2lucHV0X3ZhbHVlKCkge1xuXHRcdHJldHVybiBhd2FpdCB0aGlzLnBhcnNlKHRoaXMuaW5wdXQudmFsdWUpO1xuXHR9XG5cblx0YXN5bmMgcGFyc2UodmFsdWUpIHtcblx0XHRyZXR1cm4gdmFsdWU7XG5cdH1cblxuXHRhc3luYyB2YWxpZGF0ZSh2YWx1ZSkge1xuXHRcdHJldHVybiB2YWx1ZTtcblx0fVxuXG5cdGJpbmRfY2hhbmdlX2V2ZW50KCkge1xuXHRcdHRoaXMuaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgKGUpID0+IHRoaXMuaGFuZGxlX2NoYW5nZShlKSk7XG5cdH1cblxuXHRhc3luYyBoYW5kbGVfY2hhbmdlKGUpIHtcblx0XHRsZXQgdmFsdWUgPSBhd2FpdCB0aGlzLmdldF9pbnB1dF92YWx1ZSgpO1xuXHRcdHZhbHVlID0gYXdhaXQgdGhpcy52YWxpZGF0ZSh2YWx1ZSk7XG5cdFx0YXdhaXQgdGhpcy5kb2Muc2V0KHRoaXMuZmllbGRuYW1lLCB2YWx1ZSk7XG5cdH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBCYXNlQ29udHJvbDtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuLi9mcmFwcGUtY29yZS9mcmFwcGUvY2xpZW50L3ZpZXcvY29udHJvbHMvYmFzZS5qc1xuLy8gbW9kdWxlIGlkID0gMVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCIvLyBzaGltIGZvciB1c2luZyBwcm9jZXNzIGluIGJyb3dzZXJcbnZhciBwcm9jZXNzID0gbW9kdWxlLmV4cG9ydHMgPSB7fTtcblxuLy8gY2FjaGVkIGZyb20gd2hhdGV2ZXIgZ2xvYmFsIGlzIHByZXNlbnQgc28gdGhhdCB0ZXN0IHJ1bm5lcnMgdGhhdCBzdHViIGl0XG4vLyBkb24ndCBicmVhayB0aGluZ3MuICBCdXQgd2UgbmVlZCB0byB3cmFwIGl0IGluIGEgdHJ5IGNhdGNoIGluIGNhc2UgaXQgaXNcbi8vIHdyYXBwZWQgaW4gc3RyaWN0IG1vZGUgY29kZSB3aGljaCBkb2Vzbid0IGRlZmluZSBhbnkgZ2xvYmFscy4gIEl0J3MgaW5zaWRlIGFcbi8vIGZ1bmN0aW9uIGJlY2F1c2UgdHJ5L2NhdGNoZXMgZGVvcHRpbWl6ZSBpbiBjZXJ0YWluIGVuZ2luZXMuXG5cbnZhciBjYWNoZWRTZXRUaW1lb3V0O1xudmFyIGNhY2hlZENsZWFyVGltZW91dDtcblxuZnVuY3Rpb24gZGVmYXVsdFNldFRpbW91dCgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3NldFRpbWVvdXQgaGFzIG5vdCBiZWVuIGRlZmluZWQnKTtcbn1cbmZ1bmN0aW9uIGRlZmF1bHRDbGVhclRpbWVvdXQgKCkge1xuICAgIHRocm93IG5ldyBFcnJvcignY2xlYXJUaW1lb3V0IGhhcyBub3QgYmVlbiBkZWZpbmVkJyk7XG59XG4oZnVuY3Rpb24gKCkge1xuICAgIHRyeSB7XG4gICAgICAgIGlmICh0eXBlb2Ygc2V0VGltZW91dCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgY2FjaGVkU2V0VGltZW91dCA9IHNldFRpbWVvdXQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjYWNoZWRTZXRUaW1lb3V0ID0gZGVmYXVsdFNldFRpbW91dDtcbiAgICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgY2FjaGVkU2V0VGltZW91dCA9IGRlZmF1bHRTZXRUaW1vdXQ7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICAgIGlmICh0eXBlb2YgY2xlYXJUaW1lb3V0ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICBjYWNoZWRDbGVhclRpbWVvdXQgPSBjbGVhclRpbWVvdXQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjYWNoZWRDbGVhclRpbWVvdXQgPSBkZWZhdWx0Q2xlYXJUaW1lb3V0O1xuICAgICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBjYWNoZWRDbGVhclRpbWVvdXQgPSBkZWZhdWx0Q2xlYXJUaW1lb3V0O1xuICAgIH1cbn0gKCkpXG5mdW5jdGlvbiBydW5UaW1lb3V0KGZ1bikge1xuICAgIGlmIChjYWNoZWRTZXRUaW1lb3V0ID09PSBzZXRUaW1lb3V0KSB7XG4gICAgICAgIC8vbm9ybWFsIGVudmlyb21lbnRzIGluIHNhbmUgc2l0dWF0aW9uc1xuICAgICAgICByZXR1cm4gc2V0VGltZW91dChmdW4sIDApO1xuICAgIH1cbiAgICAvLyBpZiBzZXRUaW1lb3V0IHdhc24ndCBhdmFpbGFibGUgYnV0IHdhcyBsYXR0ZXIgZGVmaW5lZFxuICAgIGlmICgoY2FjaGVkU2V0VGltZW91dCA9PT0gZGVmYXVsdFNldFRpbW91dCB8fCAhY2FjaGVkU2V0VGltZW91dCkgJiYgc2V0VGltZW91dCkge1xuICAgICAgICBjYWNoZWRTZXRUaW1lb3V0ID0gc2V0VGltZW91dDtcbiAgICAgICAgcmV0dXJuIHNldFRpbWVvdXQoZnVuLCAwKTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgICAgLy8gd2hlbiB3aGVuIHNvbWVib2R5IGhhcyBzY3Jld2VkIHdpdGggc2V0VGltZW91dCBidXQgbm8gSS5FLiBtYWRkbmVzc1xuICAgICAgICByZXR1cm4gY2FjaGVkU2V0VGltZW91dChmdW4sIDApO1xuICAgIH0gY2F0Y2goZSl7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICAvLyBXaGVuIHdlIGFyZSBpbiBJLkUuIGJ1dCB0aGUgc2NyaXB0IGhhcyBiZWVuIGV2YWxlZCBzbyBJLkUuIGRvZXNuJ3QgdHJ1c3QgdGhlIGdsb2JhbCBvYmplY3Qgd2hlbiBjYWxsZWQgbm9ybWFsbHlcbiAgICAgICAgICAgIHJldHVybiBjYWNoZWRTZXRUaW1lb3V0LmNhbGwobnVsbCwgZnVuLCAwKTtcbiAgICAgICAgfSBjYXRjaChlKXtcbiAgICAgICAgICAgIC8vIHNhbWUgYXMgYWJvdmUgYnV0IHdoZW4gaXQncyBhIHZlcnNpb24gb2YgSS5FLiB0aGF0IG11c3QgaGF2ZSB0aGUgZ2xvYmFsIG9iamVjdCBmb3IgJ3RoaXMnLCBob3BmdWxseSBvdXIgY29udGV4dCBjb3JyZWN0IG90aGVyd2lzZSBpdCB3aWxsIHRocm93IGEgZ2xvYmFsIGVycm9yXG4gICAgICAgICAgICByZXR1cm4gY2FjaGVkU2V0VGltZW91dC5jYWxsKHRoaXMsIGZ1biwgMCk7XG4gICAgICAgIH1cbiAgICB9XG5cblxufVxuZnVuY3Rpb24gcnVuQ2xlYXJUaW1lb3V0KG1hcmtlcikge1xuICAgIGlmIChjYWNoZWRDbGVhclRpbWVvdXQgPT09IGNsZWFyVGltZW91dCkge1xuICAgICAgICAvL25vcm1hbCBlbnZpcm9tZW50cyBpbiBzYW5lIHNpdHVhdGlvbnNcbiAgICAgICAgcmV0dXJuIGNsZWFyVGltZW91dChtYXJrZXIpO1xuICAgIH1cbiAgICAvLyBpZiBjbGVhclRpbWVvdXQgd2Fzbid0IGF2YWlsYWJsZSBidXQgd2FzIGxhdHRlciBkZWZpbmVkXG4gICAgaWYgKChjYWNoZWRDbGVhclRpbWVvdXQgPT09IGRlZmF1bHRDbGVhclRpbWVvdXQgfHwgIWNhY2hlZENsZWFyVGltZW91dCkgJiYgY2xlYXJUaW1lb3V0KSB7XG4gICAgICAgIGNhY2hlZENsZWFyVGltZW91dCA9IGNsZWFyVGltZW91dDtcbiAgICAgICAgcmV0dXJuIGNsZWFyVGltZW91dChtYXJrZXIpO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgICAvLyB3aGVuIHdoZW4gc29tZWJvZHkgaGFzIHNjcmV3ZWQgd2l0aCBzZXRUaW1lb3V0IGJ1dCBubyBJLkUuIG1hZGRuZXNzXG4gICAgICAgIHJldHVybiBjYWNoZWRDbGVhclRpbWVvdXQobWFya2VyKTtcbiAgICB9IGNhdGNoIChlKXtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIC8vIFdoZW4gd2UgYXJlIGluIEkuRS4gYnV0IHRoZSBzY3JpcHQgaGFzIGJlZW4gZXZhbGVkIHNvIEkuRS4gZG9lc24ndCAgdHJ1c3QgdGhlIGdsb2JhbCBvYmplY3Qgd2hlbiBjYWxsZWQgbm9ybWFsbHlcbiAgICAgICAgICAgIHJldHVybiBjYWNoZWRDbGVhclRpbWVvdXQuY2FsbChudWxsLCBtYXJrZXIpO1xuICAgICAgICB9IGNhdGNoIChlKXtcbiAgICAgICAgICAgIC8vIHNhbWUgYXMgYWJvdmUgYnV0IHdoZW4gaXQncyBhIHZlcnNpb24gb2YgSS5FLiB0aGF0IG11c3QgaGF2ZSB0aGUgZ2xvYmFsIG9iamVjdCBmb3IgJ3RoaXMnLCBob3BmdWxseSBvdXIgY29udGV4dCBjb3JyZWN0IG90aGVyd2lzZSBpdCB3aWxsIHRocm93IGEgZ2xvYmFsIGVycm9yLlxuICAgICAgICAgICAgLy8gU29tZSB2ZXJzaW9ucyBvZiBJLkUuIGhhdmUgZGlmZmVyZW50IHJ1bGVzIGZvciBjbGVhclRpbWVvdXQgdnMgc2V0VGltZW91dFxuICAgICAgICAgICAgcmV0dXJuIGNhY2hlZENsZWFyVGltZW91dC5jYWxsKHRoaXMsIG1hcmtlcik7XG4gICAgICAgIH1cbiAgICB9XG5cblxuXG59XG52YXIgcXVldWUgPSBbXTtcbnZhciBkcmFpbmluZyA9IGZhbHNlO1xudmFyIGN1cnJlbnRRdWV1ZTtcbnZhciBxdWV1ZUluZGV4ID0gLTE7XG5cbmZ1bmN0aW9uIGNsZWFuVXBOZXh0VGljaygpIHtcbiAgICBpZiAoIWRyYWluaW5nIHx8ICFjdXJyZW50UXVldWUpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBkcmFpbmluZyA9IGZhbHNlO1xuICAgIGlmIChjdXJyZW50UXVldWUubGVuZ3RoKSB7XG4gICAgICAgIHF1ZXVlID0gY3VycmVudFF1ZXVlLmNvbmNhdChxdWV1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcXVldWVJbmRleCA9IC0xO1xuICAgIH1cbiAgICBpZiAocXVldWUubGVuZ3RoKSB7XG4gICAgICAgIGRyYWluUXVldWUoKTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGRyYWluUXVldWUoKSB7XG4gICAgaWYgKGRyYWluaW5nKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdmFyIHRpbWVvdXQgPSBydW5UaW1lb3V0KGNsZWFuVXBOZXh0VGljayk7XG4gICAgZHJhaW5pbmcgPSB0cnVlO1xuXG4gICAgdmFyIGxlbiA9IHF1ZXVlLmxlbmd0aDtcbiAgICB3aGlsZShsZW4pIHtcbiAgICAgICAgY3VycmVudFF1ZXVlID0gcXVldWU7XG4gICAgICAgIHF1ZXVlID0gW107XG4gICAgICAgIHdoaWxlICgrK3F1ZXVlSW5kZXggPCBsZW4pIHtcbiAgICAgICAgICAgIGlmIChjdXJyZW50UXVldWUpIHtcbiAgICAgICAgICAgICAgICBjdXJyZW50UXVldWVbcXVldWVJbmRleF0ucnVuKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcXVldWVJbmRleCA9IC0xO1xuICAgICAgICBsZW4gPSBxdWV1ZS5sZW5ndGg7XG4gICAgfVxuICAgIGN1cnJlbnRRdWV1ZSA9IG51bGw7XG4gICAgZHJhaW5pbmcgPSBmYWxzZTtcbiAgICBydW5DbGVhclRpbWVvdXQodGltZW91dCk7XG59XG5cbnByb2Nlc3MubmV4dFRpY2sgPSBmdW5jdGlvbiAoZnVuKSB7XG4gICAgdmFyIGFyZ3MgPSBuZXcgQXJyYXkoYXJndW1lbnRzLmxlbmd0aCAtIDEpO1xuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID4gMSkge1xuICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgYXJnc1tpIC0gMV0gPSBhcmd1bWVudHNbaV07XG4gICAgICAgIH1cbiAgICB9XG4gICAgcXVldWUucHVzaChuZXcgSXRlbShmdW4sIGFyZ3MpKTtcbiAgICBpZiAocXVldWUubGVuZ3RoID09PSAxICYmICFkcmFpbmluZykge1xuICAgICAgICBydW5UaW1lb3V0KGRyYWluUXVldWUpO1xuICAgIH1cbn07XG5cbi8vIHY4IGxpa2VzIHByZWRpY3RpYmxlIG9iamVjdHNcbmZ1bmN0aW9uIEl0ZW0oZnVuLCBhcnJheSkge1xuICAgIHRoaXMuZnVuID0gZnVuO1xuICAgIHRoaXMuYXJyYXkgPSBhcnJheTtcbn1cbkl0ZW0ucHJvdG90eXBlLnJ1biA9IGZ1bmN0aW9uICgpIHtcbiAgICB0aGlzLmZ1bi5hcHBseShudWxsLCB0aGlzLmFycmF5KTtcbn07XG5wcm9jZXNzLnRpdGxlID0gJ2Jyb3dzZXInO1xucHJvY2Vzcy5icm93c2VyID0gdHJ1ZTtcbnByb2Nlc3MuZW52ID0ge307XG5wcm9jZXNzLmFyZ3YgPSBbXTtcbnByb2Nlc3MudmVyc2lvbiA9ICcnOyAvLyBlbXB0eSBzdHJpbmcgdG8gYXZvaWQgcmVnZXhwIGlzc3Vlc1xucHJvY2Vzcy52ZXJzaW9ucyA9IHt9O1xuXG5mdW5jdGlvbiBub29wKCkge31cblxucHJvY2Vzcy5vbiA9IG5vb3A7XG5wcm9jZXNzLmFkZExpc3RlbmVyID0gbm9vcDtcbnByb2Nlc3Mub25jZSA9IG5vb3A7XG5wcm9jZXNzLm9mZiA9IG5vb3A7XG5wcm9jZXNzLnJlbW92ZUxpc3RlbmVyID0gbm9vcDtcbnByb2Nlc3MucmVtb3ZlQWxsTGlzdGVuZXJzID0gbm9vcDtcbnByb2Nlc3MuZW1pdCA9IG5vb3A7XG5wcm9jZXNzLnByZXBlbmRMaXN0ZW5lciA9IG5vb3A7XG5wcm9jZXNzLnByZXBlbmRPbmNlTGlzdGVuZXIgPSBub29wO1xuXG5wcm9jZXNzLmxpc3RlbmVycyA9IGZ1bmN0aW9uIChuYW1lKSB7IHJldHVybiBbXSB9XG5cbnByb2Nlc3MuYmluZGluZyA9IGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdwcm9jZXNzLmJpbmRpbmcgaXMgbm90IHN1cHBvcnRlZCcpO1xufTtcblxucHJvY2Vzcy5jd2QgPSBmdW5jdGlvbiAoKSB7IHJldHVybiAnLycgfTtcbnByb2Nlc3MuY2hkaXIgPSBmdW5jdGlvbiAoZGlyKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdwcm9jZXNzLmNoZGlyIGlzIG5vdCBzdXBwb3J0ZWQnKTtcbn07XG5wcm9jZXNzLnVtYXNrID0gZnVuY3Rpb24oKSB7IHJldHVybiAwOyB9O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvcHJvY2Vzcy9icm93c2VyLmpzXG4vLyBtb2R1bGUgaWQgPSAyXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsImNvbnN0IGZyYXBwZSA9IHJlcXVpcmUoJ2ZyYXBwZS1jb3JlJyk7XG5cbmNsYXNzIERvY3VtZW50IHtcblx0Y29uc3RydWN0b3IoZGF0YSkge1xuXHRcdHRoaXMuaGFuZGxlcnMgPSB7fTtcblx0XHR0aGlzLnNldHVwKCk7XG5cdFx0T2JqZWN0LmFzc2lnbih0aGlzLCBkYXRhKTtcblx0fVxuXG5cdHNldHVwKCkge1xuXHRcdC8vIGFkZCBoYW5kbGVyc1xuXHR9XG5cblx0Y2xlYXJfaGFuZGxlcnMoKSB7XG5cdFx0dGhpcy5oYW5kbGVycyA9IHt9O1xuXHR9XG5cblx0YWRkX2hhbmRsZXIoa2V5LCBtZXRob2QpIHtcblx0XHRpZiAoIXRoaXMuaGFuZGxlcnNba2V5XSkge1xuXHRcdFx0dGhpcy5oYW5kbGVyc1trZXldID0gW107XG5cdFx0fVxuXHRcdHRoaXMuaGFuZGxlcnNba2V5XS5wdXNoKG1ldGhvZCB8fCBrZXkpO1xuXHR9XG5cblx0Z2V0KGtleSkge1xuXHRcdHJldHVybiB0aGlzW2tleV07XG5cdH1cblxuXHRzZXQoa2V5LCB2YWx1ZSkge1xuXHRcdHRoaXMudmFsaWRhdGVfZmllbGQoa2V5LCB2YWx1ZSk7XG5cdFx0dGhpc1trZXldID0gdmFsdWU7XG5cdH1cblxuXHRzZXRfbmFtZSgpIHtcblx0XHQvLyBhc3NpZ24gYSByYW5kb20gbmFtZSBieSBkZWZhdWx0XG5cdFx0Ly8gb3ZlcnJpZGUgdGhpcyB0byBzZXQgYSBuYW1lXG5cdFx0aWYgKCF0aGlzLm5hbWUpIHtcblx0XHRcdHRoaXMubmFtZSA9IE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cigzKTtcblx0XHR9XG5cdH1cblxuXHRnZXQgbWV0YSgpIHtcblx0XHRpZiAoIXRoaXMuX21ldGEpIHtcblx0XHRcdHRoaXMuX21ldGEgPSBmcmFwcGUuZ2V0X21ldGEodGhpcy5kb2N0eXBlKTtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXMuX21ldGE7XG5cdH1cblxuXHRhcHBlbmQoa2V5LCBkb2N1bWVudCkge1xuXHRcdGlmICghdGhpc1trZXldKSB7XG5cdFx0XHR0aGlzW2tleV0gPSBbXTtcblx0XHR9XG5cdFx0dGhpc1trZXldLnB1c2godGhpcy5pbml0X2RvYyhkb2N1bWVudCkpO1xuXHR9XG5cblx0aW5pdF9kb2MoZGF0YSkge1xuXHRcdGlmIChkYXRhLnByb3RvdHlwZSBpbnN0YW5jZW9mIERvY3VtZW50KSB7XG5cdFx0XHRyZXR1cm4gZGF0YTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIG5ldyBEb2N1bWVudChkKTtcblx0XHR9XG5cdH1cblxuXHR2YWxpZGF0ZV9maWVsZCAoa2V5LCB2YWx1ZSkge1xuXHRcdGxldCBkZiA9IHRoaXMubWV0YS5nZXRfZmllbGQoa2V5KTtcblx0XHRpZiAoZGYuZmllbGR0eXBlPT0nU2VsZWN0Jykge1xuXHRcdFx0dGhpcy5tZXRhLnZhbGlkYXRlX3NlbGVjdChkZiwgdmFsdWUpO1xuXHRcdH1cblx0fVxuXG5cdGdldF92YWxpZF9kaWN0KCkge1xuXHRcdGxldCBkb2MgPSB7fTtcblx0XHRmb3IobGV0IGRmIG9mIHRoaXMubWV0YS5nZXRfdmFsaWRfZmllbGRzKCkpIHtcblx0XHRcdGRvY1tkZi5maWVsZG5hbWVdID0gdGhpcy5nZXQoZGYuZmllbGRuYW1lKTtcblx0XHR9XG5cdFx0cmV0dXJuIGRvYztcblx0fVxuXG5cdHNldF9zdGFuZGFyZF92YWx1ZXMoKSB7XG5cdFx0bGV0IG5vdyA9IG5ldyBEYXRlKCk7XG5cdFx0aWYgKHRoaXMuZG9jc3RhdHVzID09PSBudWxsIHx8IHRoaXMuZG9jc3RhdHVzID09PSB1bmRlZmluZWQpIHtcblx0XHRcdHRoaXMuZG9jc3RhdHVzID0gMDtcblx0XHR9XG5cdFx0aWYgKCF0aGlzLm93bmVyKSB7XG5cdFx0XHR0aGlzLm93bmVyID0gZnJhcHBlLnNlc3Npb24udXNlcjtcblx0XHRcdHRoaXMuY3JlYXRpb24gPSBub3c7XG5cdFx0fVxuXHRcdHRoaXMubW9kaWZpZWRfYnkgPSBmcmFwcGUuc2Vzc2lvbi51c2VyO1xuXHRcdHRoaXMubW9kaWZpZWQgPSBub3c7XG5cdH1cblxuXHRhc3luYyBsb2FkKCkge1xuXHRcdE9iamVjdC5hc3NpZ24odGhpcywgYXdhaXQgZnJhcHBlLmRiLmdldCh0aGlzLmRvY3R5cGUsIHRoaXMubmFtZSkpO1xuXHR9XG5cblx0YXN5bmMgaW5zZXJ0KCkge1xuXHRcdHRoaXMuc2V0X25hbWUoKTtcblx0XHR0aGlzLnNldF9zdGFuZGFyZF92YWx1ZXMoKTtcblx0XHRhd2FpdCB0aGlzLnRyaWdnZXIoJ3ZhbGlkYXRlJywgJ2JlZm9yZV9pbnNlcnQnKTtcblx0XHRhd2FpdCBmcmFwcGUuZGIuaW5zZXJ0KHRoaXMuZG9jdHlwZSwgdGhpcy5nZXRfdmFsaWRfZGljdCgpKTtcblx0XHRhd2FpdCB0aGlzLnRyaWdnZXIoJ2FmdGVyX2luc2VydCcsICdhZnRlcl9zYXZlJyk7XG5cdH1cblxuXHRhc3luYyBkZWxldGUoKSB7XG5cdFx0YXdhaXQgdGhpcy50cmlnZ2VyKCdiZWZvcmVfZGVsZXRlJyk7XG5cdFx0YXdhaXQgZnJhcHBlLmRiLmRlbGV0ZSh0aGlzLmRvY3R5cGUsIHRoaXMubmFtZSk7XG5cdFx0YXdhaXQgdGhpcy50cmlnZ2VyKCdhZnRlcl9kZWxldGUnKTtcblx0fVxuXG5cdGFzeW5jIHRyaWdnZXIoKSB7XG5cdFx0Zm9yKHZhciBrZXkgb2YgYXJndW1lbnRzKSB7XG5cdFx0XHRpZiAodGhpcy5oYW5kbGVyc1trZXldKSB7XG5cdFx0XHRcdGZvciAobGV0IG1ldGhvZCBvZiB0aGlzLmhhbmRsZXJzW2tleV0pIHtcblx0XHRcdFx0XHRpZiAodHlwZW9mIG1ldGhvZCA9PT0gJ3N0cmluZycpIHtcblx0XHRcdFx0XHRcdGF3YWl0IHRoaXNbbWV0aG9kXSgpO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRhd2FpdCBtZXRob2QodGhpcyk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0YXN5bmMgdXBkYXRlKCkge1xuXHRcdHRoaXMuc2V0X3N0YW5kYXJkX3ZhbHVlcygpO1xuXHRcdGF3YWl0IHRoaXMudHJpZ2dlcigndmFsaWRhdGUnLCAnYmVmb3JlX3VwZGF0ZScpO1xuXHRcdGF3YWl0IGZyYXBwZS5kYi51cGRhdGUodGhpcy5kb2N0eXBlLCB0aGlzLmdldF92YWxpZF9kaWN0KCkpO1xuXHRcdGF3YWl0IHRoaXMudHJpZ2dlcignYWZ0ZXJfdXBkYXRlJywgJ2FmdGVyX3NhdmUnKTtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxufTtcblxubW9kdWxlLmV4cG9ydHMgPSB7IERvY3VtZW50OiBEb2N1bWVudCB9O1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4uL2ZyYXBwZS1jb3JlL2ZyYXBwZS9tb2RlbC9kb2N1bWVudC5qc1xuLy8gbW9kdWxlIGlkID0gM1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJyZXF1aXJlKCcuL3Njc3MvbWFpbi5zY3NzJyk7XG5cbmNvbnN0IGNsaWVudCA9IHJlcXVpcmUoJ2ZyYXBwZS1jb3JlL2ZyYXBwZS9jbGllbnQnKTtcblxuY29uc3QgTGlzdFZpZXcgPSByZXF1aXJlKCdmcmFwcGUtY29yZS9mcmFwcGUvY2xpZW50L3ZpZXcvbGlzdCcpLkxpc3RWaWV3O1xuY29uc3QgUGFnZSA9IHJlcXVpcmUoJ2ZyYXBwZS1jb3JlL2ZyYXBwZS9jbGllbnQvdmlldy9wYWdlJykuUGFnZTtcbmNvbnN0IEZvcm0gPSByZXF1aXJlKCdmcmFwcGUtY29yZS9mcmFwcGUvY2xpZW50L3ZpZXcvZm9ybScpLkZvcm07XG5cbndpbmRvdy5hcHAgPSB7XG5cdHNldHVwX2Zvcm0oKSB7XG5cdFx0dGhpcy5lZGl0X3BhZ2UgPSBuZXcgUGFnZSgnRWRpdCBUbyBEbycpO1xuXHRcdHRoaXMuZWRpdF9wYWdlLmZvcm0gPSBuZXcgRm9ybSh7XG5cdFx0XHRkb2N0eXBlOiAnVG9EbycsXG5cdFx0XHRwYXJlbnQ6IHRoaXMuZWRpdF9wYWdlLmJvZHlcblx0XHR9KTtcblx0XHR0aGlzLmVkaXRfcGFnZS5mb3JtLm1ha2UoKTtcblx0fSxcblx0c2V0dXBfbGlzdCgpIHtcblx0XHR0aGlzLnRvZG9fbGlzdCA9IG5ldyBQYWdlKCdUb0RvIExpc3QnKTtcblx0XHR0aGlzLnRvZG9fbGlzdC5saXN0ID0gbmV3IExpc3RWaWV3KHtcblx0XHRcdGRvY3R5cGU6ICdUb0RvJyxcblx0XHRcdHBhcmVudDogdGhpcy50b2RvX2xpc3QuYm9keVxuXHRcdH0pO1xuXHR9XG59O1xuXG4vLyBzdGFydCBzZXJ2ZXJcbmNsaWVudC5zdGFydCh7XG5cdHNlcnZlcjogJ2xvY2FsaG9zdDo4MDAwJyxcblx0Y29udGFpbmVyOiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuY29udGFpbmVyJyksXG59KS50aGVuKCgpID0+IHtcblx0Y29uc3QgdG9kbyA9IHJlcXVpcmUoJ2ZyYXBwZS1jb3JlL2ZyYXBwZS9tb2RlbHMvZG9jdHlwZS90b2RvL3RvZG8uanMnKTtcblx0ZnJhcHBlLmluaXRfY29udHJvbGxlcigndG9kbycsIHRvZG8pO1xuXG5cdGFwcC5ob21lID0gZnJhcHBlLnVpLmFkZCgnYScsICcnLCBmcmFwcGUudWkuYWRkKCdwJywgbnVsbCwgZnJhcHBlLnNpZGViYXIpKTtcblx0YXBwLmhvbWUudGV4dENvbnRlbnQgPSAnSG9tZSc7XG5cdGFwcC5ob21lLmhyZWYgPSAnIyc7XG5cblx0YXBwLm1ha2VfbmV3ID0gZnJhcHBlLnVpLmFkZCgnYScsICcnLCBmcmFwcGUudWkuYWRkKCdwJywgbnVsbCwgZnJhcHBlLnNpZGViYXIpKTtcblx0YXBwLm1ha2VfbmV3LnRleHRDb250ZW50ID0gJ05ldyBUb0RvJztcblx0YXBwLm1ha2VfbmV3LmhyZWYgPSAnI25ldy90b2RvJztcblxuXHQvLyBtYWtlIHBhZ2VzXG5cdGFwcC5zZXR1cF9saXN0KCk7XG5cdGFwcC5zZXR1cF9mb3JtKCk7XG5cblx0Ly8gdG8gZG8gbGlzdFxuXHRmcmFwcGUucm91dGVyLmFkZCgnZGVmYXVsdCcsICgpID0+IHtcblx0XHRhcHAudG9kb19saXN0LnNob3coKTtcblx0XHRhcHAudG9kb19saXN0Lmxpc3QucnVuKCk7XG5cdH0pO1xuXG5cdC8vIHNldHVwIHRvZG8gZm9ybVxuXHRmcmFwcGUucm91dGVyLmFkZCgnZWRpdC90b2RvLzpuYW1lJywgYXN5bmMgKHBhcmFtcykgPT4ge1xuXHRcdGFwcC5kb2MgPSBhd2FpdCBmcmFwcGUuZ2V0X2RvYygnVG9EbycsIHBhcmFtcy5uYW1lKTtcblx0XHRhcHAuZWRpdF9wYWdlLnNob3coKTtcblx0XHRhcHAuZWRpdF9wYWdlLmZvcm0udXNlKGFwcC5kb2MpO1xuXHR9KTtcblxuXHQvLyBzZXR1cCB0b2RvIG5ld1xuXHRmcmFwcGUucm91dGVyLmFkZCgnbmV3L3RvZG8nLCBhc3luYyAocGFyYW1zKSA9PiB7XG5cdFx0YXBwLmRvYyA9IGF3YWl0IGZyYXBwZS5nZXRfZG9jKHtkb2N0eXBlOiAnVG9Ebyd9KTtcblx0XHRhcHAuZG9jLnNldF9uYW1lKCk7XG5cdFx0YXBwLmVkaXRfcGFnZS5zaG93KCk7XG5cdFx0YXBwLmVkaXRfcGFnZS5mb3JtLnVzZShhcHAuZG9jLCB0cnVlKTtcblx0fSk7XG5cblx0ZnJhcHBlLnJvdXRlci5zaG93KHdpbmRvdy5sb2NhdGlvbi5oYXNoKTtcbn0pO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vaW5kZXguanNcbi8vIG1vZHVsZSBpZCA9IDRcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwiLy8gc3R5bGUtbG9hZGVyOiBBZGRzIHNvbWUgY3NzIHRvIHRoZSBET00gYnkgYWRkaW5nIGEgPHN0eWxlPiB0YWdcblxuLy8gbG9hZCB0aGUgc3R5bGVzXG52YXIgY29udGVudCA9IHJlcXVpcmUoXCIhIS4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2luZGV4LmpzIS4uL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9saWIvaW5kZXguanM/P3JlZi0tMC0yIS4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9saWIvbG9hZGVyLmpzPz9yZWYtLTAtMyEuL21haW4uc2Nzc1wiKTtcbmlmKHR5cGVvZiBjb250ZW50ID09PSAnc3RyaW5nJykgY29udGVudCA9IFtbbW9kdWxlLmlkLCBjb250ZW50LCAnJ11dO1xuLy8gUHJlcGFyZSBjc3NUcmFuc2Zvcm1hdGlvblxudmFyIHRyYW5zZm9ybTtcblxudmFyIG9wdGlvbnMgPSB7XCJobXJcIjp0cnVlfVxub3B0aW9ucy50cmFuc2Zvcm0gPSB0cmFuc2Zvcm1cbi8vIGFkZCB0aGUgc3R5bGVzIHRvIHRoZSBET01cbnZhciB1cGRhdGUgPSByZXF1aXJlKFwiIS4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvbGliL2FkZFN0eWxlcy5qc1wiKShjb250ZW50LCBvcHRpb25zKTtcbmlmKGNvbnRlbnQubG9jYWxzKSBtb2R1bGUuZXhwb3J0cyA9IGNvbnRlbnQubG9jYWxzO1xuLy8gSG90IE1vZHVsZSBSZXBsYWNlbWVudFxuaWYobW9kdWxlLmhvdCkge1xuXHQvLyBXaGVuIHRoZSBzdHlsZXMgY2hhbmdlLCB1cGRhdGUgdGhlIDxzdHlsZT4gdGFnc1xuXHRpZighY29udGVudC5sb2NhbHMpIHtcblx0XHRtb2R1bGUuaG90LmFjY2VwdChcIiEhLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvaW5kZXguanMhLi4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2xpYi9pbmRleC5qcz8/cmVmLS0wLTIhLi4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2xpYi9sb2FkZXIuanM/P3JlZi0tMC0zIS4vbWFpbi5zY3NzXCIsIGZ1bmN0aW9uKCkge1xuXHRcdFx0dmFyIG5ld0NvbnRlbnQgPSByZXF1aXJlKFwiISEuLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9pbmRleC5qcyEuLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvbGliL2luZGV4LmpzPz9yZWYtLTAtMiEuLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvbGliL2xvYWRlci5qcz8/cmVmLS0wLTMhLi9tYWluLnNjc3NcIik7XG5cdFx0XHRpZih0eXBlb2YgbmV3Q29udGVudCA9PT0gJ3N0cmluZycpIG5ld0NvbnRlbnQgPSBbW21vZHVsZS5pZCwgbmV3Q29udGVudCwgJyddXTtcblx0XHRcdHVwZGF0ZShuZXdDb250ZW50KTtcblx0XHR9KTtcblx0fVxuXHQvLyBXaGVuIHRoZSBtb2R1bGUgaXMgZGlzcG9zZWQsIHJlbW92ZSB0aGUgPHN0eWxlPiB0YWdzXG5cdG1vZHVsZS5ob3QuZGlzcG9zZShmdW5jdGlvbigpIHsgdXBkYXRlKCk7IH0pO1xufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vc2Nzcy9tYWluLnNjc3Ncbi8vIG1vZHVsZSBpZCA9IDVcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwiZXhwb3J0cyA9IG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcIi4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2xpYi9jc3MtYmFzZS5qc1wiKShmYWxzZSk7XG4vLyBpbXBvcnRzXG5cblxuLy8gbW9kdWxlXG5leHBvcnRzLnB1c2goW21vZHVsZS5pZCwgXCIvKiFcXG4gKiBCb290c3RyYXAgdjQuMC4wLWFscGhhLjYgKGh0dHBzOi8vZ2V0Ym9vdHN0cmFwLmNvbSlcXG4gKiBDb3B5cmlnaHQgMjAxMS0yMDE3IFRoZSBCb290c3RyYXAgQXV0aG9yc1xcbiAqIENvcHlyaWdodCAyMDExLTIwMTcgVHdpdHRlciwgSW5jLlxcbiAqIExpY2Vuc2VkIHVuZGVyIE1JVCAoaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2Jsb2IvbWFzdGVyL0xJQ0VOU0UpXFxuICovXFxuLyohIG5vcm1hbGl6ZS5jc3MgdjUuMC4wIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xcbmh0bWwge1xcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7XFxuICBsaW5lLWhlaWdodDogMS4xNTtcXG4gIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xcbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyB9XFxuYm9keSB7XFxuICBtYXJnaW46IDA7IH1cXG5hcnRpY2xlLCBhc2lkZSwgZm9vdGVyLCBoZWFkZXIsIG5hdiwgc2VjdGlvbiB7XFxuICBkaXNwbGF5OiBibG9jazsgfVxcbmgxIHtcXG4gIGZvbnQtc2l6ZTogMmVtO1xcbiAgbWFyZ2luOiAwLjY3ZW0gMDsgfVxcbmZpZ2NhcHRpb24sIGZpZ3VyZSwgbWFpbiB7XFxuICBkaXNwbGF5OiBibG9jazsgfVxcbmZpZ3VyZSB7XFxuICBtYXJnaW46IDFlbSA0MHB4OyB9XFxuaHIge1xcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcXG4gICAgICAgICAgYm94LXNpemluZzogY29udGVudC1ib3g7XFxuICBoZWlnaHQ6IDA7XFxuICBvdmVyZmxvdzogdmlzaWJsZTsgfVxcbnByZSB7XFxuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XFxuICBmb250LXNpemU6IDFlbTsgfVxcbmEge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICAtd2Via2l0LXRleHQtZGVjb3JhdGlvbi1za2lwOiBvYmplY3RzOyB9XFxuYTphY3RpdmUsIGE6aG92ZXIge1xcbiAgb3V0bGluZS13aWR0aDogMDsgfVxcbmFiYnJbdGl0bGVdIHtcXG4gIGJvcmRlci1ib3R0b206IG5vbmU7XFxuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcXG4gIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7IH1cXG5iLCBzdHJvbmcge1xcbiAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7IH1cXG5iLCBzdHJvbmcge1xcbiAgZm9udC13ZWlnaHQ6IGJvbGRlcjsgfVxcbmNvZGUsIGtiZCwgc2FtcCB7XFxuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XFxuICBmb250LXNpemU6IDFlbTsgfVxcbmRmbiB7XFxuICBmb250LXN0eWxlOiBpdGFsaWM7IH1cXG5tYXJrIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjA7XFxuICBjb2xvcjogIzAwMDsgfVxcbnNtYWxsIHtcXG4gIGZvbnQtc2l6ZTogODAlOyB9XFxuc3ViLCBzdXAge1xcbiAgZm9udC1zaXplOiA3NSU7XFxuICBsaW5lLWhlaWdodDogMDtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgfVxcbnN1YiB7XFxuICBib3R0b206IC0wLjI1ZW07IH1cXG5zdXAge1xcbiAgdG9wOiAtMC41ZW07IH1cXG5hdWRpbywgdmlkZW8ge1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XFxuYXVkaW86bm90KFtjb250cm9sc10pIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxuICBoZWlnaHQ6IDA7IH1cXG5pbWcge1xcbiAgYm9yZGVyLXN0eWxlOiBub25lOyB9XFxuc3ZnOm5vdCg6cm9vdCkge1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxcbmJ1dHRvbiwgaW5wdXQsIG9wdGdyb3VwLCBzZWxlY3QsIHRleHRhcmVhIHtcXG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xcbiAgZm9udC1zaXplOiAxMDAlO1xcbiAgbGluZS1oZWlnaHQ6IDEuMTU7XFxuICBtYXJnaW46IDA7IH1cXG5idXR0b24sIGlucHV0IHtcXG4gIG92ZXJmbG93OiB2aXNpYmxlOyB9XFxuYnV0dG9uLCBzZWxlY3Qge1xcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7IH1cXG5idXR0b24sIGh0bWwgW3R5cGU9XFxcImJ1dHRvblxcXCJdLCBbdHlwZT1cXFwicmVzZXRcXFwiXSwgW3R5cGU9XFxcInN1Ym1pdFxcXCJdIHtcXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyB9XFxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLCBbdHlwZT1cXFwiYnV0dG9uXFxcIl06Oi1tb3otZm9jdXMtaW5uZXIsIFt0eXBlPVxcXCJyZXNldFxcXCJdOjotbW96LWZvY3VzLWlubmVyLCBbdHlwZT1cXFwic3VibWl0XFxcIl06Oi1tb3otZm9jdXMtaW5uZXIge1xcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xcbiAgcGFkZGluZzogMDsgfVxcbmJ1dHRvbjotbW96LWZvY3VzcmluZywgW3R5cGU9XFxcImJ1dHRvblxcXCJdOi1tb3otZm9jdXNyaW5nLCBbdHlwZT1cXFwicmVzZXRcXFwiXTotbW96LWZvY3VzcmluZywgW3R5cGU9XFxcInN1Ym1pdFxcXCJdOi1tb3otZm9jdXNyaW5nIHtcXG4gIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDsgfVxcbmZpZWxkc2V0IHtcXG4gIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XFxuICBtYXJnaW46IDAgMnB4O1xcbiAgcGFkZGluZzogMC4zNWVtIDAuNjI1ZW0gMC43NWVtOyB9XFxubGVnZW5kIHtcXG4gIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcXG4gICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXG4gIGNvbG9yOiBpbmhlcml0O1xcbiAgZGlzcGxheTogdGFibGU7XFxuICBtYXgtd2lkdGg6IDEwMCU7XFxuICBwYWRkaW5nOiAwO1xcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDsgfVxcbnByb2dyZXNzIHtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgfVxcbnRleHRhcmVhIHtcXG4gIG92ZXJmbG93OiBhdXRvOyB9XFxuW3R5cGU9XFxcImNoZWNrYm94XFxcIl0sIFt0eXBlPVxcXCJyYWRpb1xcXCJdIHtcXG4gIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcXG4gICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXG4gIHBhZGRpbmc6IDA7IH1cXG5bdHlwZT1cXFwibnVtYmVyXFxcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sIFt0eXBlPVxcXCJudW1iZXJcXFwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XFxuICBoZWlnaHQ6IGF1dG87IH1cXG5bdHlwZT1cXFwic2VhcmNoXFxcIl0ge1xcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XFxuICBvdXRsaW5lLW9mZnNldDogLTJweDsgfVxcblt0eXBlPVxcXCJzZWFyY2hcXFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbiwgW3R5cGU9XFxcInNlYXJjaFxcXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgfVxcbjo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XFxuICBmb250OiBpbmhlcml0OyB9XFxuZGV0YWlscywgbWVudSB7XFxuICBkaXNwbGF5OiBibG9jazsgfVxcbnN1bW1hcnkge1xcbiAgZGlzcGxheTogbGlzdC1pdGVtOyB9XFxuY2FudmFzIHtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxcbnRlbXBsYXRlIHtcXG4gIGRpc3BsYXk6IG5vbmU7IH1cXG5baGlkZGVuXSB7XFxuICBkaXNwbGF5OiBub25lOyB9XFxuQG1lZGlhIHByaW50IHtcXG4gICosICo6OmJlZm9yZSwgKjo6YWZ0ZXIsIHA6OmZpcnN0LWxldHRlciwgZGl2OjpmaXJzdC1sZXR0ZXIsIGJsb2NrcXVvdGU6OmZpcnN0LWxldHRlciwgbGk6OmZpcnN0LWxldHRlciwgcDo6Zmlyc3QtbGluZSwgZGl2OjpmaXJzdC1saW5lLCBibG9ja3F1b3RlOjpmaXJzdC1saW5lLCBsaTo6Zmlyc3QtbGluZSB7XFxuICAgIHRleHQtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XFxuICAgIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDsgfVxcbiAgYSwgYTp2aXNpdGVkIHtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cXG4gIGFiYnJbdGl0bGVdOjphZnRlciB7XFxuICAgIGNvbnRlbnQ6IFxcXCIgKFxcXCIgYXR0cih0aXRsZSkgXFxcIilcXFwiOyB9XFxuICBwcmUge1xcbiAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXAgIWltcG9ydGFudDsgfVxcbiAgcHJlLCBibG9ja3F1b3RlIHtcXG4gICAgYm9yZGVyOiAxcHggc29saWQgIzk5OTtcXG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkOyB9XFxuICB0aGVhZCB7XFxuICAgIGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cDsgfVxcbiAgdHIsIGltZyB7XFxuICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDsgfVxcbiAgcCwgaDIsIGgzIHtcXG4gICAgb3JwaGFuczogMztcXG4gICAgd2lkb3dzOiAzOyB9XFxuICBoMiwgaDMge1xcbiAgICBwYWdlLWJyZWFrLWFmdGVyOiBhdm9pZDsgfVxcbiAgLm5hdmJhciB7XFxuICAgIGRpc3BsYXk6IG5vbmU7IH1cXG4gIC5iYWRnZSB7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkICMwMDA7IH1cXG4gIC50YWJsZSB7XFxuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2UgIWltcG9ydGFudDsgfVxcbiAgICAudGFibGUgdGQsIC50YWJsZSB0aCB7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZiAhaW1wb3J0YW50OyB9XFxuICAudGFibGUtYm9yZGVyZWQgdGgsIC50YWJsZS1ib3JkZXJlZCB0ZCB7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQgIWltcG9ydGFudDsgfSB9XFxuaHRtbCB7XFxuICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cXG4qLCAqOjpiZWZvcmUsICo6OmFmdGVyIHtcXG4gIC13ZWJraXQtYm94LXNpemluZzogaW5oZXJpdDtcXG4gICAgICAgICAgYm94LXNpemluZzogaW5oZXJpdDsgfVxcbkAtbXMtdmlld3BvcnQge1xcbiAgd2lkdGg6IGRldmljZS13aWR0aDsgfVxcbmh0bWwge1xcbiAgLW1zLW92ZXJmbG93LXN0eWxlOiBzY3JvbGxiYXI7XFxuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50OyB9XFxuYm9keSB7XFxuICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgc3lzdGVtLXVpLCBCbGlua01hY1N5c3RlbUZvbnQsIFxcXCJTZWdvZSBVSVxcXCIsIFJvYm90bywgXFxcIkhlbHZldGljYSBOZXVlXFxcIiwgQXJpYWwsIHNhbnMtc2VyaWY7XFxuICBmb250LXNpemU6IDFyZW07XFxuICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgbGluZS1oZWlnaHQ6IDEuNTtcXG4gIGNvbG9yOiAjMjkyYjJjO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxcblt0YWJpbmRleD1cXFwiLTFcXFwiXTpmb2N1cyB7XFxuICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7IH1cXG5oMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHtcXG4gIG1hcmdpbi10b3A6IDA7XFxuICBtYXJnaW4tYm90dG9tOiAuNXJlbTsgfVxcbnAge1xcbiAgbWFyZ2luLXRvcDogMDtcXG4gIG1hcmdpbi1ib3R0b206IDFyZW07IH1cXG5hYmJyW3RpdGxlXSwgYWJicltkYXRhLW9yaWdpbmFsLXRpdGxlXSB7XFxuICBjdXJzb3I6IGhlbHA7IH1cXG5hZGRyZXNzIHtcXG4gIG1hcmdpbi1ib3R0b206IDFyZW07XFxuICBmb250LXN0eWxlOiBub3JtYWw7XFxuICBsaW5lLWhlaWdodDogaW5oZXJpdDsgfVxcbm9sLCB1bCwgZGwge1xcbiAgbWFyZ2luLXRvcDogMDtcXG4gIG1hcmdpbi1ib3R0b206IDFyZW07IH1cXG5vbCBvbCwgdWwgdWwsIG9sIHVsLCB1bCBvbCB7XFxuICBtYXJnaW4tYm90dG9tOiAwOyB9XFxuZHQge1xcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cXG5kZCB7XFxuICBtYXJnaW4tYm90dG9tOiAuNXJlbTtcXG4gIG1hcmdpbi1sZWZ0OiAwOyB9XFxuYmxvY2txdW90ZSB7XFxuICBtYXJnaW46IDAgMCAxcmVtOyB9XFxuYSB7XFxuICBjb2xvcjogIzAyNzVkODtcXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxcbmE6Zm9jdXMsIGE6aG92ZXIge1xcbiAgICBjb2xvcjogIzAxNGM4YztcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cXG5hOm5vdChbaHJlZl0pOm5vdChbdGFiaW5kZXhdKSB7XFxuICBjb2xvcjogaW5oZXJpdDtcXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxcbmE6bm90KFtocmVmXSk6bm90KFt0YWJpbmRleF0pOmZvY3VzLCBhOm5vdChbaHJlZl0pOm5vdChbdGFiaW5kZXhdKTpob3ZlciB7XFxuICAgIGNvbG9yOiBpbmhlcml0O1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cXG5hOm5vdChbaHJlZl0pOm5vdChbdGFiaW5kZXhdKTpmb2N1cyB7XFxuICAgIG91dGxpbmU6IDA7IH1cXG5wcmUge1xcbiAgbWFyZ2luLXRvcDogMDtcXG4gIG1hcmdpbi1ib3R0b206IDFyZW07XFxuICBvdmVyZmxvdzogYXV0bzsgfVxcbmZpZ3VyZSB7XFxuICBtYXJnaW46IDAgMCAxcmVtOyB9XFxuaW1nIHtcXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cXG5bcm9sZT1cXFwiYnV0dG9uXFxcIl0ge1xcbiAgY3Vyc29yOiBwb2ludGVyOyB9XFxuYSwgYXJlYSwgYnV0dG9uLCBbcm9sZT1cXFwiYnV0dG9uXFxcIl0sIGlucHV0LCBsYWJlbCwgc2VsZWN0LCBzdW1tYXJ5LCB0ZXh0YXJlYSB7XFxuICAtbXMtdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XFxuICAgICAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247IH1cXG50YWJsZSB7XFxuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cXG5jYXB0aW9uIHtcXG4gIHBhZGRpbmctdG9wOiAwLjc1cmVtO1xcbiAgcGFkZGluZy1ib3R0b206IDAuNzVyZW07XFxuICBjb2xvcjogIzYzNmM3MjtcXG4gIHRleHQtYWxpZ246IGxlZnQ7XFxuICBjYXB0aW9uLXNpZGU6IGJvdHRvbTsgfVxcbnRoIHtcXG4gIHRleHQtYWxpZ246IGxlZnQ7IH1cXG5sYWJlbCB7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICBtYXJnaW4tYm90dG9tOiAuNXJlbTsgfVxcbmJ1dHRvbjpmb2N1cyB7XFxuICBvdXRsaW5lOiAxcHggZG90dGVkO1xcbiAgb3V0bGluZTogNXB4IGF1dG8gLXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yOyB9XFxuaW5wdXQsIGJ1dHRvbiwgc2VsZWN0LCB0ZXh0YXJlYSB7XFxuICBsaW5lLWhlaWdodDogaW5oZXJpdDsgfVxcbmlucHV0W3R5cGU9XFxcInJhZGlvXFxcIl06ZGlzYWJsZWQsIGlucHV0W3R5cGU9XFxcImNoZWNrYm94XFxcIl06ZGlzYWJsZWQge1xcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDsgfVxcbmlucHV0W3R5cGU9XFxcImRhdGVcXFwiXSwgaW5wdXRbdHlwZT1cXFwidGltZVxcXCJdLCBpbnB1dFt0eXBlPVxcXCJkYXRldGltZS1sb2NhbFxcXCJdLCBpbnB1dFt0eXBlPVxcXCJtb250aFxcXCJdIHtcXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbGlzdGJveDsgfVxcbnRleHRhcmVhIHtcXG4gIHJlc2l6ZTogdmVydGljYWw7IH1cXG5maWVsZHNldCB7XFxuICBtaW4td2lkdGg6IDA7XFxuICBwYWRkaW5nOiAwO1xcbiAgbWFyZ2luOiAwO1xcbiAgYm9yZGVyOiAwOyB9XFxubGVnZW5kIHtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBwYWRkaW5nOiAwO1xcbiAgbWFyZ2luLWJvdHRvbTogLjVyZW07XFxuICBmb250LXNpemU6IDEuNXJlbTtcXG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0OyB9XFxuaW5wdXRbdHlwZT1cXFwic2VhcmNoXFxcIl0ge1xcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyB9XFxub3V0cHV0IHtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxcbltoaWRkZW5dIHtcXG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxcbmgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsIC5oMSwgLmgyLCAuaDMsIC5oNCwgLmg1LCAuaDYge1xcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XFxuICBmb250LXdlaWdodDogNTAwO1xcbiAgbGluZS1oZWlnaHQ6IDEuMTtcXG4gIGNvbG9yOiBpbmhlcml0OyB9XFxuaDEsIC5oMSB7XFxuICBmb250LXNpemU6IDIuNXJlbTsgfVxcbmgyLCAuaDIge1xcbiAgZm9udC1zaXplOiAycmVtOyB9XFxuaDMsIC5oMyB7XFxuICBmb250LXNpemU6IDEuNzVyZW07IH1cXG5oNCwgLmg0IHtcXG4gIGZvbnQtc2l6ZTogMS41cmVtOyB9XFxuaDUsIC5oNSB7XFxuICBmb250LXNpemU6IDEuMjVyZW07IH1cXG5oNiwgLmg2IHtcXG4gIGZvbnQtc2l6ZTogMXJlbTsgfVxcbi5sZWFkIHtcXG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcXG4gIGZvbnQtd2VpZ2h0OiAzMDA7IH1cXG4uZGlzcGxheS0xIHtcXG4gIGZvbnQtc2l6ZTogNnJlbTtcXG4gIGZvbnQtd2VpZ2h0OiAzMDA7XFxuICBsaW5lLWhlaWdodDogMS4xOyB9XFxuLmRpc3BsYXktMiB7XFxuICBmb250LXNpemU6IDUuNXJlbTtcXG4gIGZvbnQtd2VpZ2h0OiAzMDA7XFxuICBsaW5lLWhlaWdodDogMS4xOyB9XFxuLmRpc3BsYXktMyB7XFxuICBmb250LXNpemU6IDQuNXJlbTtcXG4gIGZvbnQtd2VpZ2h0OiAzMDA7XFxuICBsaW5lLWhlaWdodDogMS4xOyB9XFxuLmRpc3BsYXktNCB7XFxuICBmb250LXNpemU6IDMuNXJlbTtcXG4gIGZvbnQtd2VpZ2h0OiAzMDA7XFxuICBsaW5lLWhlaWdodDogMS4xOyB9XFxuaHIge1xcbiAgbWFyZ2luLXRvcDogMXJlbTtcXG4gIG1hcmdpbi1ib3R0b206IDFyZW07XFxuICBib3JkZXI6IDA7XFxuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEpOyB9XFxuc21hbGwsIC5zbWFsbCB7XFxuICBmb250LXNpemU6IDgwJTtcXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7IH1cXG5tYXJrLCAubWFyayB7XFxuICBwYWRkaW5nOiAwLjJlbTtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmY2Y4ZTM7IH1cXG4ubGlzdC11bnN0eWxlZCB7XFxuICBwYWRkaW5nLWxlZnQ6IDA7XFxuICBsaXN0LXN0eWxlOiBub25lOyB9XFxuLmxpc3QtaW5saW5lIHtcXG4gIHBhZGRpbmctbGVmdDogMDtcXG4gIGxpc3Qtc3R5bGU6IG5vbmU7IH1cXG4ubGlzdC1pbmxpbmUtaXRlbSB7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cXG4ubGlzdC1pbmxpbmUtaXRlbTpub3QoOmxhc3QtY2hpbGQpIHtcXG4gICAgbWFyZ2luLXJpZ2h0OiA1cHg7IH1cXG4uaW5pdGlhbGlzbSB7XFxuICBmb250LXNpemU6IDkwJTtcXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cXG4uYmxvY2txdW90ZSB7XFxuICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcXG4gIG1hcmdpbi1ib3R0b206IDFyZW07XFxuICBmb250LXNpemU6IDEuMjVyZW07XFxuICBib3JkZXItbGVmdDogMC4yNXJlbSBzb2xpZCAjZWNlZWVmOyB9XFxuLmJsb2NrcXVvdGUtZm9vdGVyIHtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbiAgZm9udC1zaXplOiA4MCU7XFxuICBjb2xvcjogIzYzNmM3MjsgfVxcbi5ibG9ja3F1b3RlLWZvb3Rlcjo6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFwyMDE0ICAgXFxcXEEwXFxcIjsgfVxcbi5ibG9ja3F1b3RlLXJldmVyc2Uge1xcbiAgcGFkZGluZy1yaWdodDogMXJlbTtcXG4gIHBhZGRpbmctbGVmdDogMDtcXG4gIHRleHQtYWxpZ246IHJpZ2h0O1xcbiAgYm9yZGVyLXJpZ2h0OiAwLjI1cmVtIHNvbGlkICNlY2VlZWY7XFxuICBib3JkZXItbGVmdDogMDsgfVxcbi5ibG9ja3F1b3RlLXJldmVyc2UgLmJsb2NrcXVvdGUtZm9vdGVyOjpiZWZvcmUge1xcbiAgY29udGVudDogXFxcIlxcXCI7IH1cXG4uYmxvY2txdW90ZS1yZXZlcnNlIC5ibG9ja3F1b3RlLWZvb3Rlcjo6YWZ0ZXIge1xcbiAgY29udGVudDogXFxcIlxcXFxBMCAgIFxcXFwyMDE0XFxcIjsgfVxcbi5pbWctZmx1aWQge1xcbiAgbWF4LXdpZHRoOiAxMDAlO1xcbiAgaGVpZ2h0OiBhdXRvOyB9XFxuLmltZy10aHVtYm5haWwge1xcbiAgcGFkZGluZzogMC4yNXJlbTtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XFxuICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xcbiAgYm9yZGVyLXJhZGl1czogMC4yNXJlbTtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XFxuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcXG4gIG1heC13aWR0aDogMTAwJTtcXG4gIGhlaWdodDogYXV0bzsgfVxcbi5maWd1cmUge1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XFxuLmZpZ3VyZS1pbWcge1xcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xcbiAgbGluZS1oZWlnaHQ6IDE7IH1cXG4uZmlndXJlLWNhcHRpb24ge1xcbiAgZm9udC1zaXplOiA5MCU7XFxuICBjb2xvcjogIzYzNmM3MjsgfVxcbmNvZGUsIGtiZCwgcHJlLCBzYW1wIHtcXG4gIGZvbnQtZmFtaWx5OiBNZW5sbywgTW9uYWNvLCBDb25zb2xhcywgXFxcIkxpYmVyYXRpb24gTW9ub1xcXCIsIFxcXCJDb3VyaWVyIE5ld1xcXCIsIG1vbm9zcGFjZTsgfVxcbmNvZGUge1xcbiAgcGFkZGluZzogMC4ycmVtIDAuNHJlbTtcXG4gIGZvbnQtc2l6ZTogOTAlO1xcbiAgY29sb3I6ICNiZDQxNDc7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmN2Y5O1xcbiAgYm9yZGVyLXJhZGl1czogMC4yNXJlbTsgfVxcbmEgPiBjb2RlIHtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgY29sb3I6IGluaGVyaXQ7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7IH1cXG5rYmQge1xcbiAgcGFkZGluZzogMC4ycmVtIDAuNHJlbTtcXG4gIGZvbnQtc2l6ZTogOTAlO1xcbiAgY29sb3I6ICNmZmY7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjkyYjJjO1xcbiAgYm9yZGVyLXJhZGl1czogMC4ycmVtOyB9XFxua2JkIGtiZCB7XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIGZvbnQtc2l6ZTogMTAwJTtcXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cXG5wcmUge1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICBtYXJnaW4tdG9wOiAwO1xcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcXG4gIGZvbnQtc2l6ZTogOTAlO1xcbiAgY29sb3I6ICMyOTJiMmM7IH1cXG5wcmUgY29kZSB7XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcXG4gICAgY29sb3I6IGluaGVyaXQ7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgICBib3JkZXItcmFkaXVzOiAwOyB9XFxuLnByZS1zY3JvbGxhYmxlIHtcXG4gIG1heC1oZWlnaHQ6IDM0MHB4O1xcbiAgb3ZlcmZsb3cteTogc2Nyb2xsOyB9XFxuLmNvbnRhaW5lciB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBtYXJnaW4tbGVmdDogYXV0bztcXG4gIG1hcmdpbi1yaWdodDogYXV0bztcXG4gIHBhZGRpbmctcmlnaHQ6IDE1cHg7XFxuICBwYWRkaW5nLWxlZnQ6IDE1cHg7IH1cXG5AbWVkaWEgKG1pbi13aWR0aDogNTc2cHgpIHtcXG4gICAgLmNvbnRhaW5lciB7XFxuICAgICAgcGFkZGluZy1yaWdodDogMTVweDtcXG4gICAgICBwYWRkaW5nLWxlZnQ6IDE1cHg7IH0gfVxcbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xcbiAgICAuY29udGFpbmVyIHtcXG4gICAgICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xcbiAgICAgIHBhZGRpbmctbGVmdDogMTVweDsgfSB9XFxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XFxuICAgIC5jb250YWluZXIge1xcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDE1cHg7XFxuICAgICAgcGFkZGluZy1sZWZ0OiAxNXB4OyB9IH1cXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XFxuICAgIC5jb250YWluZXIge1xcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDE1cHg7XFxuICAgICAgcGFkZGluZy1sZWZ0OiAxNXB4OyB9IH1cXG5AbWVkaWEgKG1pbi13aWR0aDogNTc2cHgpIHtcXG4gICAgLmNvbnRhaW5lciB7XFxuICAgICAgd2lkdGg6IDU0MHB4O1xcbiAgICAgIG1heC13aWR0aDogMTAwJTsgfSB9XFxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XFxuICAgIC5jb250YWluZXIge1xcbiAgICAgIHdpZHRoOiA3MjBweDtcXG4gICAgICBtYXgtd2lkdGg6IDEwMCU7IH0gfVxcbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xcbiAgICAuY29udGFpbmVyIHtcXG4gICAgICB3aWR0aDogOTYwcHg7XFxuICAgICAgbWF4LXdpZHRoOiAxMDAlOyB9IH1cXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XFxuICAgIC5jb250YWluZXIge1xcbiAgICAgIHdpZHRoOiAxMTQwcHg7XFxuICAgICAgbWF4LXdpZHRoOiAxMDAlOyB9IH1cXG4uY29udGFpbmVyLWZsdWlkIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xcbiAgcGFkZGluZy1yaWdodDogMTVweDtcXG4gIHBhZGRpbmctbGVmdDogMTVweDsgfVxcbkBtZWRpYSAobWluLXdpZHRoOiA1NzZweCkge1xcbiAgICAuY29udGFpbmVyLWZsdWlkIHtcXG4gICAgICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xcbiAgICAgIHBhZGRpbmctbGVmdDogMTVweDsgfSB9XFxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XFxuICAgIC5jb250YWluZXItZmx1aWQge1xcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDE1cHg7XFxuICAgICAgcGFkZGluZy1sZWZ0OiAxNXB4OyB9IH1cXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcXG4gICAgLmNvbnRhaW5lci1mbHVpZCB7XFxuICAgICAgcGFkZGluZy1yaWdodDogMTVweDtcXG4gICAgICBwYWRkaW5nLWxlZnQ6IDE1cHg7IH0gfVxcbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcXG4gICAgLmNvbnRhaW5lci1mbHVpZCB7XFxuICAgICAgcGFkZGluZy1yaWdodDogMTVweDtcXG4gICAgICBwYWRkaW5nLWxlZnQ6IDE1cHg7IH0gfVxcbi5yb3cge1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICAtbXMtZmxleC13cmFwOiB3cmFwO1xcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcXG4gIG1hcmdpbi1yaWdodDogLTE1cHg7XFxuICBtYXJnaW4tbGVmdDogLTE1cHg7IH1cXG5AbWVkaWEgKG1pbi13aWR0aDogNTc2cHgpIHtcXG4gICAgLnJvdyB7XFxuICAgICAgbWFyZ2luLXJpZ2h0OiAtMTVweDtcXG4gICAgICBtYXJnaW4tbGVmdDogLTE1cHg7IH0gfVxcbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xcbiAgICAucm93IHtcXG4gICAgICBtYXJnaW4tcmlnaHQ6IC0xNXB4O1xcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMTVweDsgfSB9XFxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XFxuICAgIC5yb3cge1xcbiAgICAgIG1hcmdpbi1yaWdodDogLTE1cHg7XFxuICAgICAgbWFyZ2luLWxlZnQ6IC0xNXB4OyB9IH1cXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XFxuICAgIC5yb3cge1xcbiAgICAgIG1hcmdpbi1yaWdodDogLTE1cHg7XFxuICAgICAgbWFyZ2luLWxlZnQ6IC0xNXB4OyB9IH1cXG4ubm8tZ3V0dGVycyB7XFxuICBtYXJnaW4tcmlnaHQ6IDA7XFxuICBtYXJnaW4tbGVmdDogMDsgfVxcbi5uby1ndXR0ZXJzID4gLmNvbCwgLm5vLWd1dHRlcnMgPiBbY2xhc3MqPVxcXCJjb2wtXFxcIl0ge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xcbiAgICBwYWRkaW5nLWxlZnQ6IDA7IH1cXG4uY29sLTEsIC5jb2wtMiwgLmNvbC0zLCAuY29sLTQsIC5jb2wtNSwgLmNvbC02LCAuY29sLTcsIC5jb2wtOCwgLmNvbC05LCAuY29sLTEwLCAuY29sLTExLCAuY29sLTEyLCAuY29sLCAuY29sLXNtLTEsIC5jb2wtc20tMiwgLmNvbC1zbS0zLCAuY29sLXNtLTQsIC5jb2wtc20tNSwgLmNvbC1zbS02LCAuY29sLXNtLTcsIC5jb2wtc20tOCwgLmNvbC1zbS05LCAuY29sLXNtLTEwLCAuY29sLXNtLTExLCAuY29sLXNtLTEyLCAuY29sLXNtLCAuY29sLW1kLTEsIC5jb2wtbWQtMiwgLmNvbC1tZC0zLCAuY29sLW1kLTQsIC5jb2wtbWQtNSwgLmNvbC1tZC02LCAuY29sLW1kLTcsIC5jb2wtbWQtOCwgLmNvbC1tZC05LCAuY29sLW1kLTEwLCAuY29sLW1kLTExLCAuY29sLW1kLTEyLCAuY29sLW1kLCAuY29sLWxnLTEsIC5jb2wtbGctMiwgLmNvbC1sZy0zLCAuY29sLWxnLTQsIC5jb2wtbGctNSwgLmNvbC1sZy02LCAuY29sLWxnLTcsIC5jb2wtbGctOCwgLmNvbC1sZy05LCAuY29sLWxnLTEwLCAuY29sLWxnLTExLCAuY29sLWxnLTEyLCAuY29sLWxnLCAuY29sLXhsLTEsIC5jb2wteGwtMiwgLmNvbC14bC0zLCAuY29sLXhsLTQsIC5jb2wteGwtNSwgLmNvbC14bC02LCAuY29sLXhsLTcsIC5jb2wteGwtOCwgLmNvbC14bC05LCAuY29sLXhsLTEwLCAuY29sLXhsLTExLCAuY29sLXhsLTEyLCAuY29sLXhsIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgbWluLWhlaWdodDogMXB4O1xcbiAgcGFkZGluZy1yaWdodDogMTVweDtcXG4gIHBhZGRpbmctbGVmdDogMTVweDsgfVxcbkBtZWRpYSAobWluLXdpZHRoOiA1NzZweCkge1xcbiAgICAuY29sLTEsIC5jb2wtMiwgLmNvbC0zLCAuY29sLTQsIC5jb2wtNSwgLmNvbC02LCAuY29sLTcsIC5jb2wtOCwgLmNvbC05LCAuY29sLTEwLCAuY29sLTExLCAuY29sLTEyLCAuY29sLCAuY29sLXNtLTEsIC5jb2wtc20tMiwgLmNvbC1zbS0zLCAuY29sLXNtLTQsIC5jb2wtc20tNSwgLmNvbC1zbS02LCAuY29sLXNtLTcsIC5jb2wtc20tOCwgLmNvbC1zbS05LCAuY29sLXNtLTEwLCAuY29sLXNtLTExLCAuY29sLXNtLTEyLCAuY29sLXNtLCAuY29sLW1kLTEsIC5jb2wtbWQtMiwgLmNvbC1tZC0zLCAuY29sLW1kLTQsIC5jb2wtbWQtNSwgLmNvbC1tZC02LCAuY29sLW1kLTcsIC5jb2wtbWQtOCwgLmNvbC1tZC05LCAuY29sLW1kLTEwLCAuY29sLW1kLTExLCAuY29sLW1kLTEyLCAuY29sLW1kLCAuY29sLWxnLTEsIC5jb2wtbGctMiwgLmNvbC1sZy0zLCAuY29sLWxnLTQsIC5jb2wtbGctNSwgLmNvbC1sZy02LCAuY29sLWxnLTcsIC5jb2wtbGctOCwgLmNvbC1sZy05LCAuY29sLWxnLTEwLCAuY29sLWxnLTExLCAuY29sLWxnLTEyLCAuY29sLWxnLCAuY29sLXhsLTEsIC5jb2wteGwtMiwgLmNvbC14bC0zLCAuY29sLXhsLTQsIC5jb2wteGwtNSwgLmNvbC14bC02LCAuY29sLXhsLTcsIC5jb2wteGwtOCwgLmNvbC14bC05LCAuY29sLXhsLTEwLCAuY29sLXhsLTExLCAuY29sLXhsLTEyLCAuY29sLXhsIHtcXG4gICAgICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xcbiAgICAgIHBhZGRpbmctbGVmdDogMTVweDsgfSB9XFxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XFxuICAgIC5jb2wtMSwgLmNvbC0yLCAuY29sLTMsIC5jb2wtNCwgLmNvbC01LCAuY29sLTYsIC5jb2wtNywgLmNvbC04LCAuY29sLTksIC5jb2wtMTAsIC5jb2wtMTEsIC5jb2wtMTIsIC5jb2wsIC5jb2wtc20tMSwgLmNvbC1zbS0yLCAuY29sLXNtLTMsIC5jb2wtc20tNCwgLmNvbC1zbS01LCAuY29sLXNtLTYsIC5jb2wtc20tNywgLmNvbC1zbS04LCAuY29sLXNtLTksIC5jb2wtc20tMTAsIC5jb2wtc20tMTEsIC5jb2wtc20tMTIsIC5jb2wtc20sIC5jb2wtbWQtMSwgLmNvbC1tZC0yLCAuY29sLW1kLTMsIC5jb2wtbWQtNCwgLmNvbC1tZC01LCAuY29sLW1kLTYsIC5jb2wtbWQtNywgLmNvbC1tZC04LCAuY29sLW1kLTksIC5jb2wtbWQtMTAsIC5jb2wtbWQtMTEsIC5jb2wtbWQtMTIsIC5jb2wtbWQsIC5jb2wtbGctMSwgLmNvbC1sZy0yLCAuY29sLWxnLTMsIC5jb2wtbGctNCwgLmNvbC1sZy01LCAuY29sLWxnLTYsIC5jb2wtbGctNywgLmNvbC1sZy04LCAuY29sLWxnLTksIC5jb2wtbGctMTAsIC5jb2wtbGctMTEsIC5jb2wtbGctMTIsIC5jb2wtbGcsIC5jb2wteGwtMSwgLmNvbC14bC0yLCAuY29sLXhsLTMsIC5jb2wteGwtNCwgLmNvbC14bC01LCAuY29sLXhsLTYsIC5jb2wteGwtNywgLmNvbC14bC04LCAuY29sLXhsLTksIC5jb2wteGwtMTAsIC5jb2wteGwtMTEsIC5jb2wteGwtMTIsIC5jb2wteGwge1xcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDE1cHg7XFxuICAgICAgcGFkZGluZy1sZWZ0OiAxNXB4OyB9IH1cXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcXG4gICAgLmNvbC0xLCAuY29sLTIsIC5jb2wtMywgLmNvbC00LCAuY29sLTUsIC5jb2wtNiwgLmNvbC03LCAuY29sLTgsIC5jb2wtOSwgLmNvbC0xMCwgLmNvbC0xMSwgLmNvbC0xMiwgLmNvbCwgLmNvbC1zbS0xLCAuY29sLXNtLTIsIC5jb2wtc20tMywgLmNvbC1zbS00LCAuY29sLXNtLTUsIC5jb2wtc20tNiwgLmNvbC1zbS03LCAuY29sLXNtLTgsIC5jb2wtc20tOSwgLmNvbC1zbS0xMCwgLmNvbC1zbS0xMSwgLmNvbC1zbS0xMiwgLmNvbC1zbSwgLmNvbC1tZC0xLCAuY29sLW1kLTIsIC5jb2wtbWQtMywgLmNvbC1tZC00LCAuY29sLW1kLTUsIC5jb2wtbWQtNiwgLmNvbC1tZC03LCAuY29sLW1kLTgsIC5jb2wtbWQtOSwgLmNvbC1tZC0xMCwgLmNvbC1tZC0xMSwgLmNvbC1tZC0xMiwgLmNvbC1tZCwgLmNvbC1sZy0xLCAuY29sLWxnLTIsIC5jb2wtbGctMywgLmNvbC1sZy00LCAuY29sLWxnLTUsIC5jb2wtbGctNiwgLmNvbC1sZy03LCAuY29sLWxnLTgsIC5jb2wtbGctOSwgLmNvbC1sZy0xMCwgLmNvbC1sZy0xMSwgLmNvbC1sZy0xMiwgLmNvbC1sZywgLmNvbC14bC0xLCAuY29sLXhsLTIsIC5jb2wteGwtMywgLmNvbC14bC00LCAuY29sLXhsLTUsIC5jb2wteGwtNiwgLmNvbC14bC03LCAuY29sLXhsLTgsIC5jb2wteGwtOSwgLmNvbC14bC0xMCwgLmNvbC14bC0xMSwgLmNvbC14bC0xMiwgLmNvbC14bCB7XFxuICAgICAgcGFkZGluZy1yaWdodDogMTVweDtcXG4gICAgICBwYWRkaW5nLWxlZnQ6IDE1cHg7IH0gfVxcbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcXG4gICAgLmNvbC0xLCAuY29sLTIsIC5jb2wtMywgLmNvbC00LCAuY29sLTUsIC5jb2wtNiwgLmNvbC03LCAuY29sLTgsIC5jb2wtOSwgLmNvbC0xMCwgLmNvbC0xMSwgLmNvbC0xMiwgLmNvbCwgLmNvbC1zbS0xLCAuY29sLXNtLTIsIC5jb2wtc20tMywgLmNvbC1zbS00LCAuY29sLXNtLTUsIC5jb2wtc20tNiwgLmNvbC1zbS03LCAuY29sLXNtLTgsIC5jb2wtc20tOSwgLmNvbC1zbS0xMCwgLmNvbC1zbS0xMSwgLmNvbC1zbS0xMiwgLmNvbC1zbSwgLmNvbC1tZC0xLCAuY29sLW1kLTIsIC5jb2wtbWQtMywgLmNvbC1tZC00LCAuY29sLW1kLTUsIC5jb2wtbWQtNiwgLmNvbC1tZC03LCAuY29sLW1kLTgsIC5jb2wtbWQtOSwgLmNvbC1tZC0xMCwgLmNvbC1tZC0xMSwgLmNvbC1tZC0xMiwgLmNvbC1tZCwgLmNvbC1sZy0xLCAuY29sLWxnLTIsIC5jb2wtbGctMywgLmNvbC1sZy00LCAuY29sLWxnLTUsIC5jb2wtbGctNiwgLmNvbC1sZy03LCAuY29sLWxnLTgsIC5jb2wtbGctOSwgLmNvbC1sZy0xMCwgLmNvbC1sZy0xMSwgLmNvbC1sZy0xMiwgLmNvbC1sZywgLmNvbC14bC0xLCAuY29sLXhsLTIsIC5jb2wteGwtMywgLmNvbC14bC00LCAuY29sLXhsLTUsIC5jb2wteGwtNiwgLmNvbC14bC03LCAuY29sLXhsLTgsIC5jb2wteGwtOSwgLmNvbC14bC0xMCwgLmNvbC14bC0xMSwgLmNvbC14bC0xMiwgLmNvbC14bCB7XFxuICAgICAgcGFkZGluZy1yaWdodDogMTVweDtcXG4gICAgICBwYWRkaW5nLWxlZnQ6IDE1cHg7IH0gfVxcbi5jb2wge1xcbiAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IDA7XFxuICAgICAgZmxleC1iYXNpczogMDtcXG4gIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAgICAgLW1zLWZsZXgtcG9zaXRpdmU6IDE7XFxuICAgICAgICAgIGZsZXgtZ3JvdzogMTtcXG4gIG1heC13aWR0aDogMTAwJTsgfVxcbi5jb2wtYXV0byB7XFxuICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgIC1tcy1mbGV4OiAwIDAgYXV0bztcXG4gICAgICAgICAgZmxleDogMCAwIGF1dG87XFxuICB3aWR0aDogYXV0bzsgfVxcbi5jb2wtMSB7XFxuICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgIC1tcy1mbGV4OiAwIDAgOC4zMzMzMyU7XFxuICAgICAgICAgIGZsZXg6IDAgMCA4LjMzMzMzJTtcXG4gIG1heC13aWR0aDogOC4zMzMzMyU7IH1cXG4uY29sLTIge1xcbiAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAtbXMtZmxleDogMCAwIDE2LjY2NjY3JTtcXG4gICAgICAgICAgZmxleDogMCAwIDE2LjY2NjY3JTtcXG4gIG1heC13aWR0aDogMTYuNjY2NjclOyB9XFxuLmNvbC0zIHtcXG4gIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAgICAgLW1zLWZsZXg6IDAgMCAyNSU7XFxuICAgICAgICAgIGZsZXg6IDAgMCAyNSU7XFxuICBtYXgtd2lkdGg6IDI1JTsgfVxcbi5jb2wtNCB7XFxuICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgIC1tcy1mbGV4OiAwIDAgMzMuMzMzMzMlO1xcbiAgICAgICAgICBmbGV4OiAwIDAgMzMuMzMzMzMlO1xcbiAgbWF4LXdpZHRoOiAzMy4zMzMzMyU7IH1cXG4uY29sLTUge1xcbiAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAtbXMtZmxleDogMCAwIDQxLjY2NjY3JTtcXG4gICAgICAgICAgZmxleDogMCAwIDQxLjY2NjY3JTtcXG4gIG1heC13aWR0aDogNDEuNjY2NjclOyB9XFxuLmNvbC02IHtcXG4gIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAgICAgLW1zLWZsZXg6IDAgMCA1MCU7XFxuICAgICAgICAgIGZsZXg6IDAgMCA1MCU7XFxuICBtYXgtd2lkdGg6IDUwJTsgfVxcbi5jb2wtNyB7XFxuICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgIC1tcy1mbGV4OiAwIDAgNTguMzMzMzMlO1xcbiAgICAgICAgICBmbGV4OiAwIDAgNTguMzMzMzMlO1xcbiAgbWF4LXdpZHRoOiA1OC4zMzMzMyU7IH1cXG4uY29sLTgge1xcbiAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAtbXMtZmxleDogMCAwIDY2LjY2NjY3JTtcXG4gICAgICAgICAgZmxleDogMCAwIDY2LjY2NjY3JTtcXG4gIG1heC13aWR0aDogNjYuNjY2NjclOyB9XFxuLmNvbC05IHtcXG4gIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAgICAgLW1zLWZsZXg6IDAgMCA3NSU7XFxuICAgICAgICAgIGZsZXg6IDAgMCA3NSU7XFxuICBtYXgtd2lkdGg6IDc1JTsgfVxcbi5jb2wtMTAge1xcbiAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAtbXMtZmxleDogMCAwIDgzLjMzMzMzJTtcXG4gICAgICAgICAgZmxleDogMCAwIDgzLjMzMzMzJTtcXG4gIG1heC13aWR0aDogODMuMzMzMzMlOyB9XFxuLmNvbC0xMSB7XFxuICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgIC1tcy1mbGV4OiAwIDAgOTEuNjY2NjclO1xcbiAgICAgICAgICBmbGV4OiAwIDAgOTEuNjY2NjclO1xcbiAgbWF4LXdpZHRoOiA5MS42NjY2NyU7IH1cXG4uY29sLTEyIHtcXG4gIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAgICAgLW1zLWZsZXg6IDAgMCAxMDAlO1xcbiAgICAgICAgICBmbGV4OiAwIDAgMTAwJTtcXG4gIG1heC13aWR0aDogMTAwJTsgfVxcbi5wdWxsLTAge1xcbiAgcmlnaHQ6IGF1dG87IH1cXG4ucHVsbC0xIHtcXG4gIHJpZ2h0OiA4LjMzMzMzJTsgfVxcbi5wdWxsLTIge1xcbiAgcmlnaHQ6IDE2LjY2NjY3JTsgfVxcbi5wdWxsLTMge1xcbiAgcmlnaHQ6IDI1JTsgfVxcbi5wdWxsLTQge1xcbiAgcmlnaHQ6IDMzLjMzMzMzJTsgfVxcbi5wdWxsLTUge1xcbiAgcmlnaHQ6IDQxLjY2NjY3JTsgfVxcbi5wdWxsLTYge1xcbiAgcmlnaHQ6IDUwJTsgfVxcbi5wdWxsLTcge1xcbiAgcmlnaHQ6IDU4LjMzMzMzJTsgfVxcbi5wdWxsLTgge1xcbiAgcmlnaHQ6IDY2LjY2NjY3JTsgfVxcbi5wdWxsLTkge1xcbiAgcmlnaHQ6IDc1JTsgfVxcbi5wdWxsLTEwIHtcXG4gIHJpZ2h0OiA4My4zMzMzMyU7IH1cXG4ucHVsbC0xMSB7XFxuICByaWdodDogOTEuNjY2NjclOyB9XFxuLnB1bGwtMTIge1xcbiAgcmlnaHQ6IDEwMCU7IH1cXG4ucHVzaC0wIHtcXG4gIGxlZnQ6IGF1dG87IH1cXG4ucHVzaC0xIHtcXG4gIGxlZnQ6IDguMzMzMzMlOyB9XFxuLnB1c2gtMiB7XFxuICBsZWZ0OiAxNi42NjY2NyU7IH1cXG4ucHVzaC0zIHtcXG4gIGxlZnQ6IDI1JTsgfVxcbi5wdXNoLTQge1xcbiAgbGVmdDogMzMuMzMzMzMlOyB9XFxuLnB1c2gtNSB7XFxuICBsZWZ0OiA0MS42NjY2NyU7IH1cXG4ucHVzaC02IHtcXG4gIGxlZnQ6IDUwJTsgfVxcbi5wdXNoLTcge1xcbiAgbGVmdDogNTguMzMzMzMlOyB9XFxuLnB1c2gtOCB7XFxuICBsZWZ0OiA2Ni42NjY2NyU7IH1cXG4ucHVzaC05IHtcXG4gIGxlZnQ6IDc1JTsgfVxcbi5wdXNoLTEwIHtcXG4gIGxlZnQ6IDgzLjMzMzMzJTsgfVxcbi5wdXNoLTExIHtcXG4gIGxlZnQ6IDkxLjY2NjY3JTsgfVxcbi5wdXNoLTEyIHtcXG4gIGxlZnQ6IDEwMCU7IH1cXG4ub2Zmc2V0LTEge1xcbiAgbWFyZ2luLWxlZnQ6IDguMzMzMzMlOyB9XFxuLm9mZnNldC0yIHtcXG4gIG1hcmdpbi1sZWZ0OiAxNi42NjY2NyU7IH1cXG4ub2Zmc2V0LTMge1xcbiAgbWFyZ2luLWxlZnQ6IDI1JTsgfVxcbi5vZmZzZXQtNCB7XFxuICBtYXJnaW4tbGVmdDogMzMuMzMzMzMlOyB9XFxuLm9mZnNldC01IHtcXG4gIG1hcmdpbi1sZWZ0OiA0MS42NjY2NyU7IH1cXG4ub2Zmc2V0LTYge1xcbiAgbWFyZ2luLWxlZnQ6IDUwJTsgfVxcbi5vZmZzZXQtNyB7XFxuICBtYXJnaW4tbGVmdDogNTguMzMzMzMlOyB9XFxuLm9mZnNldC04IHtcXG4gIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NyU7IH1cXG4ub2Zmc2V0LTkge1xcbiAgbWFyZ2luLWxlZnQ6IDc1JTsgfVxcbi5vZmZzZXQtMTAge1xcbiAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzJTsgfVxcbi5vZmZzZXQtMTEge1xcbiAgbWFyZ2luLWxlZnQ6IDkxLjY2NjY3JTsgfVxcbkBtZWRpYSAobWluLXdpZHRoOiA1NzZweCkge1xcbiAgLmNvbC1zbSB7XFxuICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiAwO1xcbiAgICAgICAgZmxleC1iYXNpczogMDtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMTtcXG4gICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxO1xcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcXG4gICAgbWF4LXdpZHRoOiAxMDAlOyB9XFxuICAuY29sLXNtLWF1dG8ge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgICAgLW1zLWZsZXg6IDAgMCBhdXRvO1xcbiAgICAgICAgICAgIGZsZXg6IDAgMCBhdXRvO1xcbiAgICB3aWR0aDogYXV0bzsgfVxcbiAgLmNvbC1zbS0xIHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAgIC1tcy1mbGV4OiAwIDAgOC4zMzMzMyU7XFxuICAgICAgICAgICAgZmxleDogMCAwIDguMzMzMzMlO1xcbiAgICBtYXgtd2lkdGg6IDguMzMzMzMlOyB9XFxuICAuY29sLXNtLTIge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgICAgLW1zLWZsZXg6IDAgMCAxNi42NjY2NyU7XFxuICAgICAgICAgICAgZmxleDogMCAwIDE2LjY2NjY3JTtcXG4gICAgbWF4LXdpZHRoOiAxNi42NjY2NyU7IH1cXG4gIC5jb2wtc20tMyB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAgICAgICAtbXMtZmxleDogMCAwIDI1JTtcXG4gICAgICAgICAgICBmbGV4OiAwIDAgMjUlO1xcbiAgICBtYXgtd2lkdGg6IDI1JTsgfVxcbiAgLmNvbC1zbS00IHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAgIC1tcy1mbGV4OiAwIDAgMzMuMzMzMzMlO1xcbiAgICAgICAgICAgIGZsZXg6IDAgMCAzMy4zMzMzMyU7XFxuICAgIG1heC13aWR0aDogMzMuMzMzMzMlOyB9XFxuICAuY29sLXNtLTUge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgICAgLW1zLWZsZXg6IDAgMCA0MS42NjY2NyU7XFxuICAgICAgICAgICAgZmxleDogMCAwIDQxLjY2NjY3JTtcXG4gICAgbWF4LXdpZHRoOiA0MS42NjY2NyU7IH1cXG4gIC5jb2wtc20tNiB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAgICAgICAtbXMtZmxleDogMCAwIDUwJTtcXG4gICAgICAgICAgICBmbGV4OiAwIDAgNTAlO1xcbiAgICBtYXgtd2lkdGg6IDUwJTsgfVxcbiAgLmNvbC1zbS03IHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAgIC1tcy1mbGV4OiAwIDAgNTguMzMzMzMlO1xcbiAgICAgICAgICAgIGZsZXg6IDAgMCA1OC4zMzMzMyU7XFxuICAgIG1heC13aWR0aDogNTguMzMzMzMlOyB9XFxuICAuY29sLXNtLTgge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgICAgLW1zLWZsZXg6IDAgMCA2Ni42NjY2NyU7XFxuICAgICAgICAgICAgZmxleDogMCAwIDY2LjY2NjY3JTtcXG4gICAgbWF4LXdpZHRoOiA2Ni42NjY2NyU7IH1cXG4gIC5jb2wtc20tOSB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAgICAgICAtbXMtZmxleDogMCAwIDc1JTtcXG4gICAgICAgICAgICBmbGV4OiAwIDAgNzUlO1xcbiAgICBtYXgtd2lkdGg6IDc1JTsgfVxcbiAgLmNvbC1zbS0xMCB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAgICAgICAtbXMtZmxleDogMCAwIDgzLjMzMzMzJTtcXG4gICAgICAgICAgICBmbGV4OiAwIDAgODMuMzMzMzMlO1xcbiAgICBtYXgtd2lkdGg6IDgzLjMzMzMzJTsgfVxcbiAgLmNvbC1zbS0xMSB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAgICAgICAtbXMtZmxleDogMCAwIDkxLjY2NjY3JTtcXG4gICAgICAgICAgICBmbGV4OiAwIDAgOTEuNjY2NjclO1xcbiAgICBtYXgtd2lkdGg6IDkxLjY2NjY3JTsgfVxcbiAgLmNvbC1zbS0xMiB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAgICAgICAtbXMtZmxleDogMCAwIDEwMCU7XFxuICAgICAgICAgICAgZmxleDogMCAwIDEwMCU7XFxuICAgIG1heC13aWR0aDogMTAwJTsgfVxcbiAgLnB1bGwtc20tMCB7XFxuICAgIHJpZ2h0OiBhdXRvOyB9XFxuICAucHVsbC1zbS0xIHtcXG4gICAgcmlnaHQ6IDguMzMzMzMlOyB9XFxuICAucHVsbC1zbS0yIHtcXG4gICAgcmlnaHQ6IDE2LjY2NjY3JTsgfVxcbiAgLnB1bGwtc20tMyB7XFxuICAgIHJpZ2h0OiAyNSU7IH1cXG4gIC5wdWxsLXNtLTQge1xcbiAgICByaWdodDogMzMuMzMzMzMlOyB9XFxuICAucHVsbC1zbS01IHtcXG4gICAgcmlnaHQ6IDQxLjY2NjY3JTsgfVxcbiAgLnB1bGwtc20tNiB7XFxuICAgIHJpZ2h0OiA1MCU7IH1cXG4gIC5wdWxsLXNtLTcge1xcbiAgICByaWdodDogNTguMzMzMzMlOyB9XFxuICAucHVsbC1zbS04IHtcXG4gICAgcmlnaHQ6IDY2LjY2NjY3JTsgfVxcbiAgLnB1bGwtc20tOSB7XFxuICAgIHJpZ2h0OiA3NSU7IH1cXG4gIC5wdWxsLXNtLTEwIHtcXG4gICAgcmlnaHQ6IDgzLjMzMzMzJTsgfVxcbiAgLnB1bGwtc20tMTEge1xcbiAgICByaWdodDogOTEuNjY2NjclOyB9XFxuICAucHVsbC1zbS0xMiB7XFxuICAgIHJpZ2h0OiAxMDAlOyB9XFxuICAucHVzaC1zbS0wIHtcXG4gICAgbGVmdDogYXV0bzsgfVxcbiAgLnB1c2gtc20tMSB7XFxuICAgIGxlZnQ6IDguMzMzMzMlOyB9XFxuICAucHVzaC1zbS0yIHtcXG4gICAgbGVmdDogMTYuNjY2NjclOyB9XFxuICAucHVzaC1zbS0zIHtcXG4gICAgbGVmdDogMjUlOyB9XFxuICAucHVzaC1zbS00IHtcXG4gICAgbGVmdDogMzMuMzMzMzMlOyB9XFxuICAucHVzaC1zbS01IHtcXG4gICAgbGVmdDogNDEuNjY2NjclOyB9XFxuICAucHVzaC1zbS02IHtcXG4gICAgbGVmdDogNTAlOyB9XFxuICAucHVzaC1zbS03IHtcXG4gICAgbGVmdDogNTguMzMzMzMlOyB9XFxuICAucHVzaC1zbS04IHtcXG4gICAgbGVmdDogNjYuNjY2NjclOyB9XFxuICAucHVzaC1zbS05IHtcXG4gICAgbGVmdDogNzUlOyB9XFxuICAucHVzaC1zbS0xMCB7XFxuICAgIGxlZnQ6IDgzLjMzMzMzJTsgfVxcbiAgLnB1c2gtc20tMTEge1xcbiAgICBsZWZ0OiA5MS42NjY2NyU7IH1cXG4gIC5wdXNoLXNtLTEyIHtcXG4gICAgbGVmdDogMTAwJTsgfVxcbiAgLm9mZnNldC1zbS0wIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDAlOyB9XFxuICAub2Zmc2V0LXNtLTEge1xcbiAgICBtYXJnaW4tbGVmdDogOC4zMzMzMyU7IH1cXG4gIC5vZmZzZXQtc20tMiB7XFxuICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY2NyU7IH1cXG4gIC5vZmZzZXQtc20tMyB7XFxuICAgIG1hcmdpbi1sZWZ0OiAyNSU7IH1cXG4gIC5vZmZzZXQtc20tNCB7XFxuICAgIG1hcmdpbi1sZWZ0OiAzMy4zMzMzMyU7IH1cXG4gIC5vZmZzZXQtc20tNSB7XFxuICAgIG1hcmdpbi1sZWZ0OiA0MS42NjY2NyU7IH1cXG4gIC5vZmZzZXQtc20tNiB7XFxuICAgIG1hcmdpbi1sZWZ0OiA1MCU7IH1cXG4gIC5vZmZzZXQtc20tNyB7XFxuICAgIG1hcmdpbi1sZWZ0OiA1OC4zMzMzMyU7IH1cXG4gIC5vZmZzZXQtc20tOCB7XFxuICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NyU7IH1cXG4gIC5vZmZzZXQtc20tOSB7XFxuICAgIG1hcmdpbi1sZWZ0OiA3NSU7IH1cXG4gIC5vZmZzZXQtc20tMTAge1xcbiAgICBtYXJnaW4tbGVmdDogODMuMzMzMzMlOyB9XFxuICAub2Zmc2V0LXNtLTExIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDkxLjY2NjY3JTsgfSB9XFxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XFxuICAuY29sLW1kIHtcXG4gICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IDA7XFxuICAgICAgICBmbGV4LWJhc2lzOiAwO1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgICAgICAgLW1zLWZsZXgtcG9zaXRpdmU6IDE7XFxuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xcbiAgICBtYXgtd2lkdGg6IDEwMCU7IH1cXG4gIC5jb2wtbWQtYXV0byB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAgICAgICAtbXMtZmxleDogMCAwIGF1dG87XFxuICAgICAgICAgICAgZmxleDogMCAwIGF1dG87XFxuICAgIHdpZHRoOiBhdXRvOyB9XFxuICAuY29sLW1kLTEge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgICAgLW1zLWZsZXg6IDAgMCA4LjMzMzMzJTtcXG4gICAgICAgICAgICBmbGV4OiAwIDAgOC4zMzMzMyU7XFxuICAgIG1heC13aWR0aDogOC4zMzMzMyU7IH1cXG4gIC5jb2wtbWQtMiB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAgICAgICAtbXMtZmxleDogMCAwIDE2LjY2NjY3JTtcXG4gICAgICAgICAgICBmbGV4OiAwIDAgMTYuNjY2NjclO1xcbiAgICBtYXgtd2lkdGg6IDE2LjY2NjY3JTsgfVxcbiAgLmNvbC1tZC0zIHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAgIC1tcy1mbGV4OiAwIDAgMjUlO1xcbiAgICAgICAgICAgIGZsZXg6IDAgMCAyNSU7XFxuICAgIG1heC13aWR0aDogMjUlOyB9XFxuICAuY29sLW1kLTQge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgICAgLW1zLWZsZXg6IDAgMCAzMy4zMzMzMyU7XFxuICAgICAgICAgICAgZmxleDogMCAwIDMzLjMzMzMzJTtcXG4gICAgbWF4LXdpZHRoOiAzMy4zMzMzMyU7IH1cXG4gIC5jb2wtbWQtNSB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAgICAgICAtbXMtZmxleDogMCAwIDQxLjY2NjY3JTtcXG4gICAgICAgICAgICBmbGV4OiAwIDAgNDEuNjY2NjclO1xcbiAgICBtYXgtd2lkdGg6IDQxLjY2NjY3JTsgfVxcbiAgLmNvbC1tZC02IHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAgIC1tcy1mbGV4OiAwIDAgNTAlO1xcbiAgICAgICAgICAgIGZsZXg6IDAgMCA1MCU7XFxuICAgIG1heC13aWR0aDogNTAlOyB9XFxuICAuY29sLW1kLTcge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgICAgLW1zLWZsZXg6IDAgMCA1OC4zMzMzMyU7XFxuICAgICAgICAgICAgZmxleDogMCAwIDU4LjMzMzMzJTtcXG4gICAgbWF4LXdpZHRoOiA1OC4zMzMzMyU7IH1cXG4gIC5jb2wtbWQtOCB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAgICAgICAtbXMtZmxleDogMCAwIDY2LjY2NjY3JTtcXG4gICAgICAgICAgICBmbGV4OiAwIDAgNjYuNjY2NjclO1xcbiAgICBtYXgtd2lkdGg6IDY2LjY2NjY3JTsgfVxcbiAgLmNvbC1tZC05IHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAgIC1tcy1mbGV4OiAwIDAgNzUlO1xcbiAgICAgICAgICAgIGZsZXg6IDAgMCA3NSU7XFxuICAgIG1heC13aWR0aDogNzUlOyB9XFxuICAuY29sLW1kLTEwIHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAgIC1tcy1mbGV4OiAwIDAgODMuMzMzMzMlO1xcbiAgICAgICAgICAgIGZsZXg6IDAgMCA4My4zMzMzMyU7XFxuICAgIG1heC13aWR0aDogODMuMzMzMzMlOyB9XFxuICAuY29sLW1kLTExIHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAgIC1tcy1mbGV4OiAwIDAgOTEuNjY2NjclO1xcbiAgICAgICAgICAgIGZsZXg6IDAgMCA5MS42NjY2NyU7XFxuICAgIG1heC13aWR0aDogOTEuNjY2NjclOyB9XFxuICAuY29sLW1kLTEyIHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAgIC1tcy1mbGV4OiAwIDAgMTAwJTtcXG4gICAgICAgICAgICBmbGV4OiAwIDAgMTAwJTtcXG4gICAgbWF4LXdpZHRoOiAxMDAlOyB9XFxuICAucHVsbC1tZC0wIHtcXG4gICAgcmlnaHQ6IGF1dG87IH1cXG4gIC5wdWxsLW1kLTEge1xcbiAgICByaWdodDogOC4zMzMzMyU7IH1cXG4gIC5wdWxsLW1kLTIge1xcbiAgICByaWdodDogMTYuNjY2NjclOyB9XFxuICAucHVsbC1tZC0zIHtcXG4gICAgcmlnaHQ6IDI1JTsgfVxcbiAgLnB1bGwtbWQtNCB7XFxuICAgIHJpZ2h0OiAzMy4zMzMzMyU7IH1cXG4gIC5wdWxsLW1kLTUge1xcbiAgICByaWdodDogNDEuNjY2NjclOyB9XFxuICAucHVsbC1tZC02IHtcXG4gICAgcmlnaHQ6IDUwJTsgfVxcbiAgLnB1bGwtbWQtNyB7XFxuICAgIHJpZ2h0OiA1OC4zMzMzMyU7IH1cXG4gIC5wdWxsLW1kLTgge1xcbiAgICByaWdodDogNjYuNjY2NjclOyB9XFxuICAucHVsbC1tZC05IHtcXG4gICAgcmlnaHQ6IDc1JTsgfVxcbiAgLnB1bGwtbWQtMTAge1xcbiAgICByaWdodDogODMuMzMzMzMlOyB9XFxuICAucHVsbC1tZC0xMSB7XFxuICAgIHJpZ2h0OiA5MS42NjY2NyU7IH1cXG4gIC5wdWxsLW1kLTEyIHtcXG4gICAgcmlnaHQ6IDEwMCU7IH1cXG4gIC5wdXNoLW1kLTAge1xcbiAgICBsZWZ0OiBhdXRvOyB9XFxuICAucHVzaC1tZC0xIHtcXG4gICAgbGVmdDogOC4zMzMzMyU7IH1cXG4gIC5wdXNoLW1kLTIge1xcbiAgICBsZWZ0OiAxNi42NjY2NyU7IH1cXG4gIC5wdXNoLW1kLTMge1xcbiAgICBsZWZ0OiAyNSU7IH1cXG4gIC5wdXNoLW1kLTQge1xcbiAgICBsZWZ0OiAzMy4zMzMzMyU7IH1cXG4gIC5wdXNoLW1kLTUge1xcbiAgICBsZWZ0OiA0MS42NjY2NyU7IH1cXG4gIC5wdXNoLW1kLTYge1xcbiAgICBsZWZ0OiA1MCU7IH1cXG4gIC5wdXNoLW1kLTcge1xcbiAgICBsZWZ0OiA1OC4zMzMzMyU7IH1cXG4gIC5wdXNoLW1kLTgge1xcbiAgICBsZWZ0OiA2Ni42NjY2NyU7IH1cXG4gIC5wdXNoLW1kLTkge1xcbiAgICBsZWZ0OiA3NSU7IH1cXG4gIC5wdXNoLW1kLTEwIHtcXG4gICAgbGVmdDogODMuMzMzMzMlOyB9XFxuICAucHVzaC1tZC0xMSB7XFxuICAgIGxlZnQ6IDkxLjY2NjY3JTsgfVxcbiAgLnB1c2gtbWQtMTIge1xcbiAgICBsZWZ0OiAxMDAlOyB9XFxuICAub2Zmc2V0LW1kLTAge1xcbiAgICBtYXJnaW4tbGVmdDogMCU7IH1cXG4gIC5vZmZzZXQtbWQtMSB7XFxuICAgIG1hcmdpbi1sZWZ0OiA4LjMzMzMzJTsgfVxcbiAgLm9mZnNldC1tZC0yIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY3JTsgfVxcbiAgLm9mZnNldC1tZC0zIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDI1JTsgfVxcbiAgLm9mZnNldC1tZC00IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzJTsgfVxcbiAgLm9mZnNldC1tZC01IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY3JTsgfVxcbiAgLm9mZnNldC1tZC02IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDUwJTsgfVxcbiAgLm9mZnNldC1tZC03IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzJTsgfVxcbiAgLm9mZnNldC1tZC04IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY3JTsgfVxcbiAgLm9mZnNldC1tZC05IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDc1JTsgfVxcbiAgLm9mZnNldC1tZC0xMCB7XFxuICAgIG1hcmdpbi1sZWZ0OiA4My4zMzMzMyU7IH1cXG4gIC5vZmZzZXQtbWQtMTEge1xcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY2NjclOyB9IH1cXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcXG4gIC5jb2wtbGcge1xcbiAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogMDtcXG4gICAgICAgIGZsZXgtYmFzaXM6IDA7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAgICAgICAtbXMtZmxleC1wb3NpdGl2ZTogMTtcXG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XFxuICAgIG1heC13aWR0aDogMTAwJTsgfVxcbiAgLmNvbC1sZy1hdXRvIHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAgIC1tcy1mbGV4OiAwIDAgYXV0bztcXG4gICAgICAgICAgICBmbGV4OiAwIDAgYXV0bztcXG4gICAgd2lkdGg6IGF1dG87IH1cXG4gIC5jb2wtbGctMSB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAgICAgICAtbXMtZmxleDogMCAwIDguMzMzMzMlO1xcbiAgICAgICAgICAgIGZsZXg6IDAgMCA4LjMzMzMzJTtcXG4gICAgbWF4LXdpZHRoOiA4LjMzMzMzJTsgfVxcbiAgLmNvbC1sZy0yIHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAgIC1tcy1mbGV4OiAwIDAgMTYuNjY2NjclO1xcbiAgICAgICAgICAgIGZsZXg6IDAgMCAxNi42NjY2NyU7XFxuICAgIG1heC13aWR0aDogMTYuNjY2NjclOyB9XFxuICAuY29sLWxnLTMge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgICAgLW1zLWZsZXg6IDAgMCAyNSU7XFxuICAgICAgICAgICAgZmxleDogMCAwIDI1JTtcXG4gICAgbWF4LXdpZHRoOiAyNSU7IH1cXG4gIC5jb2wtbGctNCB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAgICAgICAtbXMtZmxleDogMCAwIDMzLjMzMzMzJTtcXG4gICAgICAgICAgICBmbGV4OiAwIDAgMzMuMzMzMzMlO1xcbiAgICBtYXgtd2lkdGg6IDMzLjMzMzMzJTsgfVxcbiAgLmNvbC1sZy01IHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAgIC1tcy1mbGV4OiAwIDAgNDEuNjY2NjclO1xcbiAgICAgICAgICAgIGZsZXg6IDAgMCA0MS42NjY2NyU7XFxuICAgIG1heC13aWR0aDogNDEuNjY2NjclOyB9XFxuICAuY29sLWxnLTYge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgICAgLW1zLWZsZXg6IDAgMCA1MCU7XFxuICAgICAgICAgICAgZmxleDogMCAwIDUwJTtcXG4gICAgbWF4LXdpZHRoOiA1MCU7IH1cXG4gIC5jb2wtbGctNyB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAgICAgICAtbXMtZmxleDogMCAwIDU4LjMzMzMzJTtcXG4gICAgICAgICAgICBmbGV4OiAwIDAgNTguMzMzMzMlO1xcbiAgICBtYXgtd2lkdGg6IDU4LjMzMzMzJTsgfVxcbiAgLmNvbC1sZy04IHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAgIC1tcy1mbGV4OiAwIDAgNjYuNjY2NjclO1xcbiAgICAgICAgICAgIGZsZXg6IDAgMCA2Ni42NjY2NyU7XFxuICAgIG1heC13aWR0aDogNjYuNjY2NjclOyB9XFxuICAuY29sLWxnLTkge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgICAgLW1zLWZsZXg6IDAgMCA3NSU7XFxuICAgICAgICAgICAgZmxleDogMCAwIDc1JTtcXG4gICAgbWF4LXdpZHRoOiA3NSU7IH1cXG4gIC5jb2wtbGctMTAge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgICAgLW1zLWZsZXg6IDAgMCA4My4zMzMzMyU7XFxuICAgICAgICAgICAgZmxleDogMCAwIDgzLjMzMzMzJTtcXG4gICAgbWF4LXdpZHRoOiA4My4zMzMzMyU7IH1cXG4gIC5jb2wtbGctMTEge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgICAgLW1zLWZsZXg6IDAgMCA5MS42NjY2NyU7XFxuICAgICAgICAgICAgZmxleDogMCAwIDkxLjY2NjY3JTtcXG4gICAgbWF4LXdpZHRoOiA5MS42NjY2NyU7IH1cXG4gIC5jb2wtbGctMTIge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgICAgLW1zLWZsZXg6IDAgMCAxMDAlO1xcbiAgICAgICAgICAgIGZsZXg6IDAgMCAxMDAlO1xcbiAgICBtYXgtd2lkdGg6IDEwMCU7IH1cXG4gIC5wdWxsLWxnLTAge1xcbiAgICByaWdodDogYXV0bzsgfVxcbiAgLnB1bGwtbGctMSB7XFxuICAgIHJpZ2h0OiA4LjMzMzMzJTsgfVxcbiAgLnB1bGwtbGctMiB7XFxuICAgIHJpZ2h0OiAxNi42NjY2NyU7IH1cXG4gIC5wdWxsLWxnLTMge1xcbiAgICByaWdodDogMjUlOyB9XFxuICAucHVsbC1sZy00IHtcXG4gICAgcmlnaHQ6IDMzLjMzMzMzJTsgfVxcbiAgLnB1bGwtbGctNSB7XFxuICAgIHJpZ2h0OiA0MS42NjY2NyU7IH1cXG4gIC5wdWxsLWxnLTYge1xcbiAgICByaWdodDogNTAlOyB9XFxuICAucHVsbC1sZy03IHtcXG4gICAgcmlnaHQ6IDU4LjMzMzMzJTsgfVxcbiAgLnB1bGwtbGctOCB7XFxuICAgIHJpZ2h0OiA2Ni42NjY2NyU7IH1cXG4gIC5wdWxsLWxnLTkge1xcbiAgICByaWdodDogNzUlOyB9XFxuICAucHVsbC1sZy0xMCB7XFxuICAgIHJpZ2h0OiA4My4zMzMzMyU7IH1cXG4gIC5wdWxsLWxnLTExIHtcXG4gICAgcmlnaHQ6IDkxLjY2NjY3JTsgfVxcbiAgLnB1bGwtbGctMTIge1xcbiAgICByaWdodDogMTAwJTsgfVxcbiAgLnB1c2gtbGctMCB7XFxuICAgIGxlZnQ6IGF1dG87IH1cXG4gIC5wdXNoLWxnLTEge1xcbiAgICBsZWZ0OiA4LjMzMzMzJTsgfVxcbiAgLnB1c2gtbGctMiB7XFxuICAgIGxlZnQ6IDE2LjY2NjY3JTsgfVxcbiAgLnB1c2gtbGctMyB7XFxuICAgIGxlZnQ6IDI1JTsgfVxcbiAgLnB1c2gtbGctNCB7XFxuICAgIGxlZnQ6IDMzLjMzMzMzJTsgfVxcbiAgLnB1c2gtbGctNSB7XFxuICAgIGxlZnQ6IDQxLjY2NjY3JTsgfVxcbiAgLnB1c2gtbGctNiB7XFxuICAgIGxlZnQ6IDUwJTsgfVxcbiAgLnB1c2gtbGctNyB7XFxuICAgIGxlZnQ6IDU4LjMzMzMzJTsgfVxcbiAgLnB1c2gtbGctOCB7XFxuICAgIGxlZnQ6IDY2LjY2NjY3JTsgfVxcbiAgLnB1c2gtbGctOSB7XFxuICAgIGxlZnQ6IDc1JTsgfVxcbiAgLnB1c2gtbGctMTAge1xcbiAgICBsZWZ0OiA4My4zMzMzMyU7IH1cXG4gIC5wdXNoLWxnLTExIHtcXG4gICAgbGVmdDogOTEuNjY2NjclOyB9XFxuICAucHVzaC1sZy0xMiB7XFxuICAgIGxlZnQ6IDEwMCU7IH1cXG4gIC5vZmZzZXQtbGctMCB7XFxuICAgIG1hcmdpbi1sZWZ0OiAwJTsgfVxcbiAgLm9mZnNldC1sZy0xIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDguMzMzMzMlOyB9XFxuICAub2Zmc2V0LWxnLTIge1xcbiAgICBtYXJnaW4tbGVmdDogMTYuNjY2NjclOyB9XFxuICAub2Zmc2V0LWxnLTMge1xcbiAgICBtYXJnaW4tbGVmdDogMjUlOyB9XFxuICAub2Zmc2V0LWxnLTQge1xcbiAgICBtYXJnaW4tbGVmdDogMzMuMzMzMzMlOyB9XFxuICAub2Zmc2V0LWxnLTUge1xcbiAgICBtYXJnaW4tbGVmdDogNDEuNjY2NjclOyB9XFxuICAub2Zmc2V0LWxnLTYge1xcbiAgICBtYXJnaW4tbGVmdDogNTAlOyB9XFxuICAub2Zmc2V0LWxnLTcge1xcbiAgICBtYXJnaW4tbGVmdDogNTguMzMzMzMlOyB9XFxuICAub2Zmc2V0LWxnLTgge1xcbiAgICBtYXJnaW4tbGVmdDogNjYuNjY2NjclOyB9XFxuICAub2Zmc2V0LWxnLTkge1xcbiAgICBtYXJnaW4tbGVmdDogNzUlOyB9XFxuICAub2Zmc2V0LWxnLTEwIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzJTsgfVxcbiAgLm9mZnNldC1sZy0xMSB7XFxuICAgIG1hcmdpbi1sZWZ0OiA5MS42NjY2NyU7IH0gfVxcbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcXG4gIC5jb2wteGwge1xcbiAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogMDtcXG4gICAgICAgIGZsZXgtYmFzaXM6IDA7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAgICAgICAtbXMtZmxleC1wb3NpdGl2ZTogMTtcXG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XFxuICAgIG1heC13aWR0aDogMTAwJTsgfVxcbiAgLmNvbC14bC1hdXRvIHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAgIC1tcy1mbGV4OiAwIDAgYXV0bztcXG4gICAgICAgICAgICBmbGV4OiAwIDAgYXV0bztcXG4gICAgd2lkdGg6IGF1dG87IH1cXG4gIC5jb2wteGwtMSB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAgICAgICAtbXMtZmxleDogMCAwIDguMzMzMzMlO1xcbiAgICAgICAgICAgIGZsZXg6IDAgMCA4LjMzMzMzJTtcXG4gICAgbWF4LXdpZHRoOiA4LjMzMzMzJTsgfVxcbiAgLmNvbC14bC0yIHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAgIC1tcy1mbGV4OiAwIDAgMTYuNjY2NjclO1xcbiAgICAgICAgICAgIGZsZXg6IDAgMCAxNi42NjY2NyU7XFxuICAgIG1heC13aWR0aDogMTYuNjY2NjclOyB9XFxuICAuY29sLXhsLTMge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgICAgLW1zLWZsZXg6IDAgMCAyNSU7XFxuICAgICAgICAgICAgZmxleDogMCAwIDI1JTtcXG4gICAgbWF4LXdpZHRoOiAyNSU7IH1cXG4gIC5jb2wteGwtNCB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAgICAgICAtbXMtZmxleDogMCAwIDMzLjMzMzMzJTtcXG4gICAgICAgICAgICBmbGV4OiAwIDAgMzMuMzMzMzMlO1xcbiAgICBtYXgtd2lkdGg6IDMzLjMzMzMzJTsgfVxcbiAgLmNvbC14bC01IHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAgIC1tcy1mbGV4OiAwIDAgNDEuNjY2NjclO1xcbiAgICAgICAgICAgIGZsZXg6IDAgMCA0MS42NjY2NyU7XFxuICAgIG1heC13aWR0aDogNDEuNjY2NjclOyB9XFxuICAuY29sLXhsLTYge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgICAgLW1zLWZsZXg6IDAgMCA1MCU7XFxuICAgICAgICAgICAgZmxleDogMCAwIDUwJTtcXG4gICAgbWF4LXdpZHRoOiA1MCU7IH1cXG4gIC5jb2wteGwtNyB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAgICAgICAtbXMtZmxleDogMCAwIDU4LjMzMzMzJTtcXG4gICAgICAgICAgICBmbGV4OiAwIDAgNTguMzMzMzMlO1xcbiAgICBtYXgtd2lkdGg6IDU4LjMzMzMzJTsgfVxcbiAgLmNvbC14bC04IHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAgIC1tcy1mbGV4OiAwIDAgNjYuNjY2NjclO1xcbiAgICAgICAgICAgIGZsZXg6IDAgMCA2Ni42NjY2NyU7XFxuICAgIG1heC13aWR0aDogNjYuNjY2NjclOyB9XFxuICAuY29sLXhsLTkge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgICAgLW1zLWZsZXg6IDAgMCA3NSU7XFxuICAgICAgICAgICAgZmxleDogMCAwIDc1JTtcXG4gICAgbWF4LXdpZHRoOiA3NSU7IH1cXG4gIC5jb2wteGwtMTAge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgICAgLW1zLWZsZXg6IDAgMCA4My4zMzMzMyU7XFxuICAgICAgICAgICAgZmxleDogMCAwIDgzLjMzMzMzJTtcXG4gICAgbWF4LXdpZHRoOiA4My4zMzMzMyU7IH1cXG4gIC5jb2wteGwtMTEge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgICAgLW1zLWZsZXg6IDAgMCA5MS42NjY2NyU7XFxuICAgICAgICAgICAgZmxleDogMCAwIDkxLjY2NjY3JTtcXG4gICAgbWF4LXdpZHRoOiA5MS42NjY2NyU7IH1cXG4gIC5jb2wteGwtMTIge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgICAgLW1zLWZsZXg6IDAgMCAxMDAlO1xcbiAgICAgICAgICAgIGZsZXg6IDAgMCAxMDAlO1xcbiAgICBtYXgtd2lkdGg6IDEwMCU7IH1cXG4gIC5wdWxsLXhsLTAge1xcbiAgICByaWdodDogYXV0bzsgfVxcbiAgLnB1bGwteGwtMSB7XFxuICAgIHJpZ2h0OiA4LjMzMzMzJTsgfVxcbiAgLnB1bGwteGwtMiB7XFxuICAgIHJpZ2h0OiAxNi42NjY2NyU7IH1cXG4gIC5wdWxsLXhsLTMge1xcbiAgICByaWdodDogMjUlOyB9XFxuICAucHVsbC14bC00IHtcXG4gICAgcmlnaHQ6IDMzLjMzMzMzJTsgfVxcbiAgLnB1bGwteGwtNSB7XFxuICAgIHJpZ2h0OiA0MS42NjY2NyU7IH1cXG4gIC5wdWxsLXhsLTYge1xcbiAgICByaWdodDogNTAlOyB9XFxuICAucHVsbC14bC03IHtcXG4gICAgcmlnaHQ6IDU4LjMzMzMzJTsgfVxcbiAgLnB1bGwteGwtOCB7XFxuICAgIHJpZ2h0OiA2Ni42NjY2NyU7IH1cXG4gIC5wdWxsLXhsLTkge1xcbiAgICByaWdodDogNzUlOyB9XFxuICAucHVsbC14bC0xMCB7XFxuICAgIHJpZ2h0OiA4My4zMzMzMyU7IH1cXG4gIC5wdWxsLXhsLTExIHtcXG4gICAgcmlnaHQ6IDkxLjY2NjY3JTsgfVxcbiAgLnB1bGwteGwtMTIge1xcbiAgICByaWdodDogMTAwJTsgfVxcbiAgLnB1c2gteGwtMCB7XFxuICAgIGxlZnQ6IGF1dG87IH1cXG4gIC5wdXNoLXhsLTEge1xcbiAgICBsZWZ0OiA4LjMzMzMzJTsgfVxcbiAgLnB1c2gteGwtMiB7XFxuICAgIGxlZnQ6IDE2LjY2NjY3JTsgfVxcbiAgLnB1c2gteGwtMyB7XFxuICAgIGxlZnQ6IDI1JTsgfVxcbiAgLnB1c2gteGwtNCB7XFxuICAgIGxlZnQ6IDMzLjMzMzMzJTsgfVxcbiAgLnB1c2gteGwtNSB7XFxuICAgIGxlZnQ6IDQxLjY2NjY3JTsgfVxcbiAgLnB1c2gteGwtNiB7XFxuICAgIGxlZnQ6IDUwJTsgfVxcbiAgLnB1c2gteGwtNyB7XFxuICAgIGxlZnQ6IDU4LjMzMzMzJTsgfVxcbiAgLnB1c2gteGwtOCB7XFxuICAgIGxlZnQ6IDY2LjY2NjY3JTsgfVxcbiAgLnB1c2gteGwtOSB7XFxuICAgIGxlZnQ6IDc1JTsgfVxcbiAgLnB1c2gteGwtMTAge1xcbiAgICBsZWZ0OiA4My4zMzMzMyU7IH1cXG4gIC5wdXNoLXhsLTExIHtcXG4gICAgbGVmdDogOTEuNjY2NjclOyB9XFxuICAucHVzaC14bC0xMiB7XFxuICAgIGxlZnQ6IDEwMCU7IH1cXG4gIC5vZmZzZXQteGwtMCB7XFxuICAgIG1hcmdpbi1sZWZ0OiAwJTsgfVxcbiAgLm9mZnNldC14bC0xIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDguMzMzMzMlOyB9XFxuICAub2Zmc2V0LXhsLTIge1xcbiAgICBtYXJnaW4tbGVmdDogMTYuNjY2NjclOyB9XFxuICAub2Zmc2V0LXhsLTMge1xcbiAgICBtYXJnaW4tbGVmdDogMjUlOyB9XFxuICAub2Zmc2V0LXhsLTQge1xcbiAgICBtYXJnaW4tbGVmdDogMzMuMzMzMzMlOyB9XFxuICAub2Zmc2V0LXhsLTUge1xcbiAgICBtYXJnaW4tbGVmdDogNDEuNjY2NjclOyB9XFxuICAub2Zmc2V0LXhsLTYge1xcbiAgICBtYXJnaW4tbGVmdDogNTAlOyB9XFxuICAub2Zmc2V0LXhsLTcge1xcbiAgICBtYXJnaW4tbGVmdDogNTguMzMzMzMlOyB9XFxuICAub2Zmc2V0LXhsLTgge1xcbiAgICBtYXJnaW4tbGVmdDogNjYuNjY2NjclOyB9XFxuICAub2Zmc2V0LXhsLTkge1xcbiAgICBtYXJnaW4tbGVmdDogNzUlOyB9XFxuICAub2Zmc2V0LXhsLTEwIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzJTsgfVxcbiAgLm9mZnNldC14bC0xMSB7XFxuICAgIG1hcmdpbi1sZWZ0OiA5MS42NjY2NyU7IH0gfVxcbi50YWJsZSB7XFxuICB3aWR0aDogMTAwJTtcXG4gIG1heC13aWR0aDogMTAwJTtcXG4gIG1hcmdpbi1ib3R0b206IDFyZW07IH1cXG4udGFibGUgdGgsIC50YWJsZSB0ZCB7XFxuICAgIHBhZGRpbmc6IDAuNzVyZW07XFxuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XFxuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZWNlZWVmOyB9XFxuLnRhYmxlIHRoZWFkIHRoIHtcXG4gICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcXG4gICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICNlY2VlZWY7IH1cXG4udGFibGUgdGJvZHkgKyB0Ym9keSB7XFxuICAgIGJvcmRlci10b3A6IDJweCBzb2xpZCAjZWNlZWVmOyB9XFxuLnRhYmxlIC50YWJsZSB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7IH1cXG4udGFibGUtc20gdGgsIC50YWJsZS1zbSB0ZCB7XFxuICBwYWRkaW5nOiAwLjNyZW07IH1cXG4udGFibGUtYm9yZGVyZWQge1xcbiAgYm9yZGVyOiAxcHggc29saWQgI2VjZWVlZjsgfVxcbi50YWJsZS1ib3JkZXJlZCB0aCwgLnRhYmxlLWJvcmRlcmVkIHRkIHtcXG4gICAgYm9yZGVyOiAxcHggc29saWQgI2VjZWVlZjsgfVxcbi50YWJsZS1ib3JkZXJlZCB0aGVhZCB0aCwgLnRhYmxlLWJvcmRlcmVkIHRoZWFkIHRkIHtcXG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMnB4OyB9XFxuLnRhYmxlLXN0cmlwZWQgdGJvZHkgdHI6bnRoLW9mLXR5cGUob2RkKSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDUpOyB9XFxuLnRhYmxlLWhvdmVyIHRib2R5IHRyOmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wNzUpOyB9XFxuLnRhYmxlLWFjdGl2ZSwgLnRhYmxlLWFjdGl2ZSA+IHRoLCAudGFibGUtYWN0aXZlID4gdGQge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjA3NSk7IH1cXG4udGFibGUtaG92ZXIgLnRhYmxlLWFjdGl2ZTpob3ZlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDc1KTsgfVxcbi50YWJsZS1ob3ZlciAudGFibGUtYWN0aXZlOmhvdmVyID4gdGQsIC50YWJsZS1ob3ZlciAudGFibGUtYWN0aXZlOmhvdmVyID4gdGgge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDc1KTsgfVxcbi50YWJsZS1zdWNjZXNzLCAudGFibGUtc3VjY2VzcyA+IHRoLCAudGFibGUtc3VjY2VzcyA+IHRkIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNkZmYwZDg7IH1cXG4udGFibGUtaG92ZXIgLnRhYmxlLXN1Y2Nlc3M6aG92ZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2QwZTljNjsgfVxcbi50YWJsZS1ob3ZlciAudGFibGUtc3VjY2Vzczpob3ZlciA+IHRkLCAudGFibGUtaG92ZXIgLnRhYmxlLXN1Y2Nlc3M6aG92ZXIgPiB0aCB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNkMGU5YzY7IH1cXG4udGFibGUtaW5mbywgLnRhYmxlLWluZm8gPiB0aCwgLnRhYmxlLWluZm8gPiB0ZCB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDllZGY3OyB9XFxuLnRhYmxlLWhvdmVyIC50YWJsZS1pbmZvOmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNjNGUzZjM7IH1cXG4udGFibGUtaG92ZXIgLnRhYmxlLWluZm86aG92ZXIgPiB0ZCwgLnRhYmxlLWhvdmVyIC50YWJsZS1pbmZvOmhvdmVyID4gdGgge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzRlM2YzOyB9XFxuLnRhYmxlLXdhcm5pbmcsIC50YWJsZS13YXJuaW5nID4gdGgsIC50YWJsZS13YXJuaW5nID4gdGQge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZjZjhlMzsgfVxcbi50YWJsZS1ob3ZlciAudGFibGUtd2FybmluZzpob3ZlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmMmNjOyB9XFxuLnRhYmxlLWhvdmVyIC50YWJsZS13YXJuaW5nOmhvdmVyID4gdGQsIC50YWJsZS1ob3ZlciAudGFibGUtd2FybmluZzpob3ZlciA+IHRoIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZjJjYzsgfVxcbi50YWJsZS1kYW5nZXIsIC50YWJsZS1kYW5nZXIgPiB0aCwgLnRhYmxlLWRhbmdlciA+IHRkIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmMmRlZGU7IH1cXG4udGFibGUtaG92ZXIgLnRhYmxlLWRhbmdlcjpob3ZlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWJjY2NjOyB9XFxuLnRhYmxlLWhvdmVyIC50YWJsZS1kYW5nZXI6aG92ZXIgPiB0ZCwgLnRhYmxlLWhvdmVyIC50YWJsZS1kYW5nZXI6aG92ZXIgPiB0aCB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNlYmNjY2M7IH1cXG4udGhlYWQtaW52ZXJzZSB0aCB7XFxuICBjb2xvcjogI2ZmZjtcXG4gIGJhY2tncm91bmQtY29sb3I6ICMyOTJiMmM7IH1cXG4udGhlYWQtZGVmYXVsdCB0aCB7XFxuICBjb2xvcjogIzQ2NGE0YztcXG4gIGJhY2tncm91bmQtY29sb3I6ICNlY2VlZWY7IH1cXG4udGFibGUtaW52ZXJzZSB7XFxuICBjb2xvcjogI2ZmZjtcXG4gIGJhY2tncm91bmQtY29sb3I6ICMyOTJiMmM7IH1cXG4udGFibGUtaW52ZXJzZSB0aCwgLnRhYmxlLWludmVyc2UgdGQsIC50YWJsZS1pbnZlcnNlIHRoZWFkIHRoIHtcXG4gICAgYm9yZGVyLWNvbG9yOiAjZmZmOyB9XFxuLnRhYmxlLWludmVyc2UudGFibGUtYm9yZGVyZWQge1xcbiAgICBib3JkZXI6IDA7IH1cXG4udGFibGUtcmVzcG9uc2l2ZSB7XFxuICBkaXNwbGF5OiBibG9jaztcXG4gIHdpZHRoOiAxMDAlO1xcbiAgb3ZlcmZsb3cteDogYXV0bztcXG4gIC1tcy1vdmVyZmxvdy1zdHlsZTogLW1zLWF1dG9oaWRpbmctc2Nyb2xsYmFyOyB9XFxuLnRhYmxlLXJlc3BvbnNpdmUudGFibGUtYm9yZGVyZWQge1xcbiAgICBib3JkZXI6IDA7IH1cXG4uZm9ybS1jb250cm9sIHtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcXG4gIGZvbnQtc2l6ZTogMXJlbTtcXG4gIGxpbmUtaGVpZ2h0OiAxLjI1O1xcbiAgY29sb3I6ICM0NjRhNGM7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcXG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XFxuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xcbiAgYm9yZGVyLXJhZGl1czogMC4yNXJlbTtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIGVhc2UtaW4tb3V0IDAuMTVzLCAtd2Via2l0LWJveC1zaGFkb3cgZWFzZS1pbi1vdXQgMC4xNXM7XFxuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgZWFzZS1pbi1vdXQgMC4xNXMsIC13ZWJraXQtYm94LXNoYWRvdyBlYXNlLWluLW91dCAwLjE1cztcXG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciBlYXNlLWluLW91dCAwLjE1cywgYm94LXNoYWRvdyBlYXNlLWluLW91dCAwLjE1cztcXG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciBlYXNlLWluLW91dCAwLjE1cywgYm94LXNoYWRvdyBlYXNlLWluLW91dCAwLjE1cywgLXdlYmtpdC1ib3gtc2hhZG93IGVhc2UtaW4tb3V0IDAuMTVzOyB9XFxuLmZvcm0tY29udHJvbDo6LW1zLWV4cGFuZCB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgICBib3JkZXI6IDA7IH1cXG4uZm9ybS1jb250cm9sOmZvY3VzIHtcXG4gICAgY29sb3I6ICM0NjRhNGM7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XFxuICAgIGJvcmRlci1jb2xvcjogIzVjYjNmZDtcXG4gICAgb3V0bGluZTogbm9uZTsgfVxcbi5mb3JtLWNvbnRyb2w6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xcbiAgICBjb2xvcjogIzYzNmM3MjtcXG4gICAgb3BhY2l0eTogMTsgfVxcbi5mb3JtLWNvbnRyb2w6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcXG4gICAgY29sb3I6ICM2MzZjNzI7XFxuICAgIG9wYWNpdHk6IDE7IH1cXG4uZm9ybS1jb250cm9sOjotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xcbiAgICBjb2xvcjogIzYzNmM3MjtcXG4gICAgb3BhY2l0eTogMTsgfVxcbi5mb3JtLWNvbnRyb2w6OnBsYWNlaG9sZGVyIHtcXG4gICAgY29sb3I6ICM2MzZjNzI7XFxuICAgIG9wYWNpdHk6IDE7IH1cXG4uZm9ybS1jb250cm9sOmRpc2FibGVkLCAuZm9ybS1jb250cm9sW3JlYWRvbmx5XSB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNlY2VlZWY7XFxuICAgIG9wYWNpdHk6IDE7IH1cXG4uZm9ybS1jb250cm9sOmRpc2FibGVkIHtcXG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDsgfVxcbnNlbGVjdC5mb3JtLWNvbnRyb2w6bm90KFtzaXplXSk6bm90KFttdWx0aXBsZV0pIHtcXG4gIGhlaWdodDogY2FsYygyLjI1cmVtICsgMnB4KTsgfVxcbnNlbGVjdC5mb3JtLWNvbnRyb2w6Zm9jdXM6Oi1tcy12YWx1ZSB7XFxuICBjb2xvcjogIzQ2NGE0YztcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7IH1cXG4uZm9ybS1jb250cm9sLWZpbGUsIC5mb3JtLWNvbnRyb2wtcmFuZ2Uge1xcbiAgZGlzcGxheTogYmxvY2s7IH1cXG4uY29sLWZvcm0tbGFiZWwge1xcbiAgcGFkZGluZy10b3A6IGNhbGMoMC41cmVtIC0gMXB4ICogMik7XFxuICBwYWRkaW5nLWJvdHRvbTogY2FsYygwLjVyZW0gLSAxcHggKiAyKTtcXG4gIG1hcmdpbi1ib3R0b206IDA7IH1cXG4uY29sLWZvcm0tbGFiZWwtbGcge1xcbiAgcGFkZGluZy10b3A6IGNhbGMoMC43NXJlbSAtIDFweCAqIDIpO1xcbiAgcGFkZGluZy1ib3R0b206IGNhbGMoMC43NXJlbSAtIDFweCAqIDIpO1xcbiAgZm9udC1zaXplOiAxLjI1cmVtOyB9XFxuLmNvbC1mb3JtLWxhYmVsLXNtIHtcXG4gIHBhZGRpbmctdG9wOiBjYWxjKDAuMjVyZW0gLSAxcHggKiAyKTtcXG4gIHBhZGRpbmctYm90dG9tOiBjYWxjKDAuMjVyZW0gLSAxcHggKiAyKTtcXG4gIGZvbnQtc2l6ZTogMC44NzVyZW07IH1cXG4uY29sLWZvcm0tbGVnZW5kIHtcXG4gIHBhZGRpbmctdG9wOiAwLjVyZW07XFxuICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xcbiAgbWFyZ2luLWJvdHRvbTogMDtcXG4gIGZvbnQtc2l6ZTogMXJlbTsgfVxcbi5mb3JtLWNvbnRyb2wtc3RhdGljIHtcXG4gIHBhZGRpbmctdG9wOiAwLjVyZW07XFxuICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xcbiAgbWFyZ2luLWJvdHRvbTogMDtcXG4gIGxpbmUtaGVpZ2h0OiAxLjI1O1xcbiAgYm9yZGVyOiBzb2xpZCB0cmFuc3BhcmVudDtcXG4gIGJvcmRlci13aWR0aDogMXB4IDA7IH1cXG4uZm9ybS1jb250cm9sLXN0YXRpYy5mb3JtLWNvbnRyb2wtc20sIC5pbnB1dC1ncm91cC1zbSA+IC5mb3JtLWNvbnRyb2wtc3RhdGljLmZvcm0tY29udHJvbCwgLmlucHV0LWdyb3VwLXNtID4gLmZvcm0tY29udHJvbC1zdGF0aWMuaW5wdXQtZ3JvdXAtYWRkb24sIC5pbnB1dC1ncm91cC1zbSA+IC5pbnB1dC1ncm91cC1idG4gPiAuZm9ybS1jb250cm9sLXN0YXRpYy5idG4sIC5mb3JtLWNvbnRyb2wtc3RhdGljLmZvcm0tY29udHJvbC1sZywgLmlucHV0LWdyb3VwLWxnID4gLmZvcm0tY29udHJvbC1zdGF0aWMuZm9ybS1jb250cm9sLCAuaW5wdXQtZ3JvdXAtbGcgPiAuZm9ybS1jb250cm9sLXN0YXRpYy5pbnB1dC1ncm91cC1hZGRvbiwgLmlucHV0LWdyb3VwLWxnID4gLmlucHV0LWdyb3VwLWJ0biA+IC5mb3JtLWNvbnRyb2wtc3RhdGljLmJ0biB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDA7XFxuICAgIHBhZGRpbmctbGVmdDogMDsgfVxcbi5mb3JtLWNvbnRyb2wtc20sIC5pbnB1dC1ncm91cC1zbSA+IC5mb3JtLWNvbnRyb2wsIC5pbnB1dC1ncm91cC1zbSA+IC5pbnB1dC1ncm91cC1hZGRvbiwgLmlucHV0LWdyb3VwLXNtID4gLmlucHV0LWdyb3VwLWJ0biA+IC5idG4ge1xcbiAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XFxuICBmb250LXNpemU6IDAuODc1cmVtO1xcbiAgYm9yZGVyLXJhZGl1czogMC4ycmVtOyB9XFxuc2VsZWN0LmZvcm0tY29udHJvbC1zbTpub3QoW3NpemVdKTpub3QoW211bHRpcGxlXSksIC5pbnB1dC1ncm91cC1zbSA+IHNlbGVjdC5mb3JtLWNvbnRyb2w6bm90KFtzaXplXSk6bm90KFttdWx0aXBsZV0pLCAuaW5wdXQtZ3JvdXAtc20gPiBzZWxlY3QuaW5wdXQtZ3JvdXAtYWRkb246bm90KFtzaXplXSk6bm90KFttdWx0aXBsZV0pLCAuaW5wdXQtZ3JvdXAtc20gPiAuaW5wdXQtZ3JvdXAtYnRuID4gc2VsZWN0LmJ0bjpub3QoW3NpemVdKTpub3QoW211bHRpcGxlXSkge1xcbiAgaGVpZ2h0OiAxLjgxMjVyZW07IH1cXG4uZm9ybS1jb250cm9sLWxnLCAuaW5wdXQtZ3JvdXAtbGcgPiAuZm9ybS1jb250cm9sLCAuaW5wdXQtZ3JvdXAtbGcgPiAuaW5wdXQtZ3JvdXAtYWRkb24sIC5pbnB1dC1ncm91cC1sZyA+IC5pbnB1dC1ncm91cC1idG4gPiAuYnRuIHtcXG4gIHBhZGRpbmc6IDAuNzVyZW0gMS41cmVtO1xcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xcbiAgYm9yZGVyLXJhZGl1czogMC4zcmVtOyB9XFxuc2VsZWN0LmZvcm0tY29udHJvbC1sZzpub3QoW3NpemVdKTpub3QoW211bHRpcGxlXSksIC5pbnB1dC1ncm91cC1sZyA+IHNlbGVjdC5mb3JtLWNvbnRyb2w6bm90KFtzaXplXSk6bm90KFttdWx0aXBsZV0pLCAuaW5wdXQtZ3JvdXAtbGcgPiBzZWxlY3QuaW5wdXQtZ3JvdXAtYWRkb246bm90KFtzaXplXSk6bm90KFttdWx0aXBsZV0pLCAuaW5wdXQtZ3JvdXAtbGcgPiAuaW5wdXQtZ3JvdXAtYnRuID4gc2VsZWN0LmJ0bjpub3QoW3NpemVdKTpub3QoW211bHRpcGxlXSkge1xcbiAgaGVpZ2h0OiAzLjE2NjY3cmVtOyB9XFxuLmZvcm0tZ3JvdXAge1xcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTsgfVxcbi5mb3JtLXRleHQge1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICBtYXJnaW4tdG9wOiAwLjI1cmVtOyB9XFxuLmZvcm0tY2hlY2sge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07IH1cXG4uZm9ybS1jaGVjay5kaXNhYmxlZCAuZm9ybS1jaGVjay1sYWJlbCB7XFxuICAgIGNvbG9yOiAjNjM2YzcyO1xcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XFxuLmZvcm0tY2hlY2stbGFiZWwge1xcbiAgcGFkZGluZy1sZWZ0OiAxLjI1cmVtO1xcbiAgbWFyZ2luLWJvdHRvbTogMDtcXG4gIGN1cnNvcjogcG9pbnRlcjsgfVxcbi5mb3JtLWNoZWNrLWlucHV0IHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIG1hcmdpbi10b3A6IDAuMjVyZW07XFxuICBtYXJnaW4tbGVmdDogLTEuMjVyZW07IH1cXG4uZm9ybS1jaGVjay1pbnB1dDpvbmx5LWNoaWxkIHtcXG4gICAgcG9zaXRpb246IHN0YXRpYzsgfVxcbi5mb3JtLWNoZWNrLWlubGluZSB7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cXG4uZm9ybS1jaGVjay1pbmxpbmUgLmZvcm0tY2hlY2stbGFiZWwge1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XFxuLmZvcm0tY2hlY2staW5saW5lICsgLmZvcm0tY2hlY2staW5saW5lIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDAuNzVyZW07IH1cXG4uZm9ybS1jb250cm9sLWZlZWRiYWNrIHtcXG4gIG1hcmdpbi10b3A6IDAuMjVyZW07IH1cXG4uZm9ybS1jb250cm9sLXN1Y2Nlc3MsIC5mb3JtLWNvbnRyb2wtd2FybmluZywgLmZvcm0tY29udHJvbC1kYW5nZXIge1xcbiAgcGFkZGluZy1yaWdodDogMi4yNXJlbTtcXG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XFxuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgcmlnaHQgMC41NjI1cmVtO1xcbiAgYmFja2dyb3VuZC1zaXplOiAxLjEyNXJlbSAxLjEyNXJlbTsgfVxcbi5oYXMtc3VjY2VzcyAuZm9ybS1jb250cm9sLWZlZWRiYWNrLCAuaGFzLXN1Y2Nlc3MgLmZvcm0tY29udHJvbC1sYWJlbCwgLmhhcy1zdWNjZXNzIC5jb2wtZm9ybS1sYWJlbCwgLmhhcy1zdWNjZXNzIC5mb3JtLWNoZWNrLWxhYmVsLCAuaGFzLXN1Y2Nlc3MgLmN1c3RvbS1jb250cm9sIHtcXG4gIGNvbG9yOiAjNWNiODVjOyB9XFxuLmhhcy1zdWNjZXNzIC5mb3JtLWNvbnRyb2wge1xcbiAgYm9yZGVyLWNvbG9yOiAjNWNiODVjOyB9XFxuLmhhcy1zdWNjZXNzIC5pbnB1dC1ncm91cC1hZGRvbiB7XFxuICBjb2xvcjogIzVjYjg1YztcXG4gIGJvcmRlci1jb2xvcjogIzVjYjg1YztcXG4gIGJhY2tncm91bmQtY29sb3I6ICNlYWY2ZWE7IH1cXG4uaGFzLXN1Y2Nlc3MgLmZvcm0tY29udHJvbC1zdWNjZXNzIHtcXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcXFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmOCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgOCA4JyUzRSUzQ3BhdGggZmlsbD0nJTIzNWNiODVjJyBkPSdNMi4zIDYuNzNMLjYgNC41M2MtLjQtMS4wNC40Ni0xLjQgMS4xLS44bDEuMSAxLjQgMy40LTMuOGMuNi0uNjMgMS42LS4yNyAxLjIuN2wtNCA0LjZjLS40My41LS44LjQtMS4xLjF6Jy8lM0UlM0Mvc3ZnJTNFXFxcIik7IH1cXG4uaGFzLXdhcm5pbmcgLmZvcm0tY29udHJvbC1mZWVkYmFjaywgLmhhcy13YXJuaW5nIC5mb3JtLWNvbnRyb2wtbGFiZWwsIC5oYXMtd2FybmluZyAuY29sLWZvcm0tbGFiZWwsIC5oYXMtd2FybmluZyAuZm9ybS1jaGVjay1sYWJlbCwgLmhhcy13YXJuaW5nIC5jdXN0b20tY29udHJvbCB7XFxuICBjb2xvcjogI2YwYWQ0ZTsgfVxcbi5oYXMtd2FybmluZyAuZm9ybS1jb250cm9sIHtcXG4gIGJvcmRlci1jb2xvcjogI2YwYWQ0ZTsgfVxcbi5oYXMtd2FybmluZyAuaW5wdXQtZ3JvdXAtYWRkb24ge1xcbiAgY29sb3I6ICNmMGFkNGU7XFxuICBib3JkZXItY29sb3I6ICNmMGFkNGU7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsgfVxcbi5oYXMtd2FybmluZyAuZm9ybS1jb250cm9sLXdhcm5pbmcge1xcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFxcXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGY4LCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA4IDgnJTNFJTNDcGF0aCBmaWxsPSclMjNmMGFkNGUnIGQ9J000LjQgNS4zMjRoLS44di0yLjQ2aC44em0wIDEuNDJoLS44VjUuODloLjh6TTMuNzYuNjNMLjA0IDcuMDc1Yy0uMTE1LjIuMDE2LjQyNS4yNi40MjZoNy4zOTdjLjI0MiAwIC4zNzItLjIyNi4yNTgtLjQyNkM2LjcyNiA0LjkyNCA1LjQ3IDIuNzkgNC4yNTMuNjNjLS4xMTMtLjE3NC0uMzktLjE3NC0uNDk0IDB6Jy8lM0UlM0Mvc3ZnJTNFXFxcIik7IH1cXG4uaGFzLWRhbmdlciAuZm9ybS1jb250cm9sLWZlZWRiYWNrLCAuaGFzLWRhbmdlciAuZm9ybS1jb250cm9sLWxhYmVsLCAuaGFzLWRhbmdlciAuY29sLWZvcm0tbGFiZWwsIC5oYXMtZGFuZ2VyIC5mb3JtLWNoZWNrLWxhYmVsLCAuaGFzLWRhbmdlciAuY3VzdG9tLWNvbnRyb2wge1xcbiAgY29sb3I6ICNkOTUzNGY7IH1cXG4uaGFzLWRhbmdlciAuZm9ybS1jb250cm9sIHtcXG4gIGJvcmRlci1jb2xvcjogI2Q5NTM0ZjsgfVxcbi5oYXMtZGFuZ2VyIC5pbnB1dC1ncm91cC1hZGRvbiB7XFxuICBjb2xvcjogI2Q5NTM0ZjtcXG4gIGJvcmRlci1jb2xvcjogI2Q5NTM0ZjtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZGY3Zjc7IH1cXG4uaGFzLWRhbmdlciAuZm9ybS1jb250cm9sLWRhbmdlciB7XFxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXFxcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0ZjgsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgZmlsbD0nJTIzZDk1MzRmJyB2aWV3Qm94PSctMiAtMiA3IDcnJTNFJTNDcGF0aCBzdHJva2U9JyUyM2Q5NTM0ZicgZD0nTTAgMGwzIDNtMC0zTDAgMycvJTNFJTNDY2lyY2xlIHI9Jy41Jy8lM0UlM0NjaXJjbGUgY3g9JzMnIHI9Jy41Jy8lM0UlM0NjaXJjbGUgY3k9JzMnIHI9Jy41Jy8lM0UlM0NjaXJjbGUgY3g9JzMnIGN5PSczJyByPScuNScvJTNFJTNDL3N2ZyUzRVxcXCIpOyB9XFxuLmZvcm0taW5saW5lIHtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsO1xcbiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XFxuICAgICAgLW1zLWZsZXgtZmxvdzogcm93IHdyYXA7XFxuICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XFxuICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xcbiAgICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XFxuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cXG4uZm9ybS1pbmxpbmUgLmZvcm0tY2hlY2sge1xcbiAgICB3aWR0aDogMTAwJTsgfVxcbkBtZWRpYSAobWluLXdpZHRoOiA1NzZweCkge1xcbiAgICAuZm9ybS1pbmxpbmUgbGFiZWwge1xcbiAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcXG4gICAgICAgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcXG4gICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgICAgLXdlYmtpdC1ib3gtcGFjazogY2VudGVyO1xcbiAgICAgICAgICAtbXMtZmxleC1wYWNrOiBjZW50ZXI7XFxuICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gICAgICBtYXJnaW4tYm90dG9tOiAwOyB9XFxuICAgIC5mb3JtLWlubGluZSAuZm9ybS1ncm91cCB7XFxuICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICAgICAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICAgICAgZGlzcGxheTogZmxleDtcXG4gICAgICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgICAgICAtbXMtZmxleDogMCAwIGF1dG87XFxuICAgICAgICAgICAgICBmbGV4OiAwIDAgYXV0bztcXG4gICAgICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7XFxuICAgICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XFxuICAgICAgICAgIC1tcy1mbGV4LWZsb3c6IHJvdyB3cmFwO1xcbiAgICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcXG4gICAgICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xcbiAgICAgICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xcbiAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgICBtYXJnaW4tYm90dG9tOiAwOyB9XFxuICAgIC5mb3JtLWlubGluZSAuZm9ybS1jb250cm9sIHtcXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgICAgd2lkdGg6IGF1dG87XFxuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxcbiAgICAuZm9ybS1pbmxpbmUgLmZvcm0tY29udHJvbC1zdGF0aWMge1xcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxcbiAgICAuZm9ybS1pbmxpbmUgLmlucHV0LWdyb3VwIHtcXG4gICAgICB3aWR0aDogYXV0bzsgfVxcbiAgICAuZm9ybS1pbmxpbmUgLmZvcm0tY29udHJvbC1sYWJlbCB7XFxuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcXG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XFxuICAgIC5mb3JtLWlubGluZSAuZm9ybS1jaGVjayB7XFxuICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICAgICAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICAgICAgZGlzcGxheTogZmxleDtcXG4gICAgICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xcbiAgICAgICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xcbiAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgICAtd2Via2l0LWJveC1wYWNrOiBjZW50ZXI7XFxuICAgICAgICAgIC1tcy1mbGV4LXBhY2s6IGNlbnRlcjtcXG4gICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgICAgIHdpZHRoOiBhdXRvO1xcbiAgICAgIG1hcmdpbi10b3A6IDA7XFxuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfVxcbiAgICAuZm9ybS1pbmxpbmUgLmZvcm0tY2hlY2stbGFiZWwge1xcbiAgICAgIHBhZGRpbmctbGVmdDogMDsgfVxcbiAgICAuZm9ybS1pbmxpbmUgLmZvcm0tY2hlY2staW5wdXQge1xcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gICAgICBtYXJnaW4tdG9wOiAwO1xcbiAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcXG4gICAgICBtYXJnaW4tbGVmdDogMDsgfVxcbiAgICAuZm9ybS1pbmxpbmUgLmN1c3RvbS1jb250cm9sIHtcXG4gICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gICAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gICAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICAgIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XFxuICAgICAgICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XFxuICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICAgIC13ZWJraXQtYm94LXBhY2s6IGNlbnRlcjtcXG4gICAgICAgICAgLW1zLWZsZXgtcGFjazogY2VudGVyO1xcbiAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICAgICAgcGFkZGluZy1sZWZ0OiAwOyB9XFxuICAgIC5mb3JtLWlubGluZSAuY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yIHtcXG4gICAgICBwb3NpdGlvbjogc3RhdGljO1xcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XFxuICAgICAgdmVydGljYWwtYWxpZ246IHRleHQtYm90dG9tOyB9XFxuICAgIC5mb3JtLWlubGluZSAuaGFzLWZlZWRiYWNrIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2sge1xcbiAgICAgIHRvcDogMDsgfSB9XFxuLmJ0biB7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgbGluZS1oZWlnaHQ6IDEuMjU7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XFxuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcXG4gIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xcbiAgZm9udC1zaXplOiAxcmVtO1xcbiAgYm9yZGVyLXJhZGl1czogMC4yNXJlbTtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XFxuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDsgfVxcbi5idG46Zm9jdXMsIC5idG46aG92ZXIge1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cXG4uYnRuOmZvY3VzLCAuYnRuLmZvY3VzIHtcXG4gICAgb3V0bGluZTogMDtcXG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgMCAycHggcmdiYSgyLCAxMTcsIDIxNiwgMC4yNSk7XFxuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHJnYmEoMiwgMTE3LCAyMTYsIDAuMjUpOyB9XFxuLmJ0bi5kaXNhYmxlZCwgLmJ0bjpkaXNhYmxlZCB7XFxuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XFxuICAgIG9wYWNpdHk6IC42NTsgfVxcbi5idG46YWN0aXZlLCAuYnRuLmFjdGl2ZSB7XFxuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7IH1cXG5hLmJ0bi5kaXNhYmxlZCwgZmllbGRzZXRbZGlzYWJsZWRdIGEuYnRuIHtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XFxuLmJ0bi1wcmltYXJ5IHtcXG4gIGNvbG9yOiAjZmZmO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAyNzVkODtcXG4gIGJvcmRlci1jb2xvcjogIzAyNzVkODsgfVxcbi5idG4tcHJpbWFyeTpob3ZlciB7XFxuICAgIGNvbG9yOiAjZmZmO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDI1YWE1O1xcbiAgICBib3JkZXItY29sb3I6ICMwMTU0OWI7IH1cXG4uYnRuLXByaW1hcnk6Zm9jdXMsIC5idG4tcHJpbWFyeS5mb2N1cyB7XFxuICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAwIDAgMnB4IHJnYmEoMiwgMTE3LCAyMTYsIDAuNSk7XFxuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHJnYmEoMiwgMTE3LCAyMTYsIDAuNSk7IH1cXG4uYnRuLXByaW1hcnkuZGlzYWJsZWQsIC5idG4tcHJpbWFyeTpkaXNhYmxlZCB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMjc1ZDg7XFxuICAgIGJvcmRlci1jb2xvcjogIzAyNzVkODsgfVxcbi5idG4tcHJpbWFyeTphY3RpdmUsIC5idG4tcHJpbWFyeS5hY3RpdmUsIC5zaG93ID4gLmJ0bi1wcmltYXJ5LmRyb3Bkb3duLXRvZ2dsZSB7XFxuICAgIGNvbG9yOiAjZmZmO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDI1YWE1O1xcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xcbiAgICBib3JkZXItY29sb3I6ICMwMTU0OWI7IH1cXG4uYnRuLXNlY29uZGFyeSB7XFxuICBjb2xvcjogIzI5MmIyYztcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XFxuICBib3JkZXItY29sb3I6ICNjY2M7IH1cXG4uYnRuLXNlY29uZGFyeTpob3ZlciB7XFxuICAgIGNvbG9yOiAjMjkyYjJjO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2O1xcbiAgICBib3JkZXItY29sb3I6ICNhZGFkYWQ7IH1cXG4uYnRuLXNlY29uZGFyeTpmb2N1cywgLmJ0bi1zZWNvbmRhcnkuZm9jdXMge1xcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCAwIDJweCByZ2JhKDIwNCwgMjA0LCAyMDQsIDAuNSk7XFxuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHJnYmEoMjA0LCAyMDQsIDIwNCwgMC41KTsgfVxcbi5idG4tc2Vjb25kYXJ5LmRpc2FibGVkLCAuYnRuLXNlY29uZGFyeTpkaXNhYmxlZCB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XFxuICAgIGJvcmRlci1jb2xvcjogI2NjYzsgfVxcbi5idG4tc2Vjb25kYXJ5OmFjdGl2ZSwgLmJ0bi1zZWNvbmRhcnkuYWN0aXZlLCAuc2hvdyA+IC5idG4tc2Vjb25kYXJ5LmRyb3Bkb3duLXRvZ2dsZSB7XFxuICAgIGNvbG9yOiAjMjkyYjJjO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2O1xcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xcbiAgICBib3JkZXItY29sb3I6ICNhZGFkYWQ7IH1cXG4uYnRuLWluZm8ge1xcbiAgY29sb3I6ICNmZmY7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWJjMGRlO1xcbiAgYm9yZGVyLWNvbG9yOiAjNWJjMGRlOyB9XFxuLmJ0bi1pbmZvOmhvdmVyIHtcXG4gICAgY29sb3I6ICNmZmY7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICMzMWIwZDU7XFxuICAgIGJvcmRlci1jb2xvcjogIzJhYWJkMjsgfVxcbi5idG4taW5mbzpmb2N1cywgLmJ0bi1pbmZvLmZvY3VzIHtcXG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgMCAycHggcmdiYSg5MSwgMTkyLCAyMjIsIDAuNSk7XFxuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHJnYmEoOTEsIDE5MiwgMjIyLCAwLjUpOyB9XFxuLmJ0bi1pbmZvLmRpc2FibGVkLCAuYnRuLWluZm86ZGlzYWJsZWQge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWJjMGRlO1xcbiAgICBib3JkZXItY29sb3I6ICM1YmMwZGU7IH1cXG4uYnRuLWluZm86YWN0aXZlLCAuYnRuLWluZm8uYWN0aXZlLCAuc2hvdyA+IC5idG4taW5mby5kcm9wZG93bi10b2dnbGUge1xcbiAgICBjb2xvcjogI2ZmZjtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzMxYjBkNTtcXG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcXG4gICAgYm9yZGVyLWNvbG9yOiAjMmFhYmQyOyB9XFxuLmJ0bi1zdWNjZXNzIHtcXG4gIGNvbG9yOiAjZmZmO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzVjYjg1YztcXG4gIGJvcmRlci1jb2xvcjogIzVjYjg1YzsgfVxcbi5idG4tc3VjY2Vzczpob3ZlciB7XFxuICAgIGNvbG9yOiAjZmZmO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDQ5ZDQ0O1xcbiAgICBib3JkZXItY29sb3I6ICM0MTk2NDE7IH1cXG4uYnRuLXN1Y2Nlc3M6Zm9jdXMsIC5idG4tc3VjY2Vzcy5mb2N1cyB7XFxuICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAwIDAgMnB4IHJnYmEoOTIsIDE4NCwgOTIsIDAuNSk7XFxuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHJnYmEoOTIsIDE4NCwgOTIsIDAuNSk7IH1cXG4uYnRuLXN1Y2Nlc3MuZGlzYWJsZWQsIC5idG4tc3VjY2VzczpkaXNhYmxlZCB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICM1Y2I4NWM7XFxuICAgIGJvcmRlci1jb2xvcjogIzVjYjg1YzsgfVxcbi5idG4tc3VjY2VzczphY3RpdmUsIC5idG4tc3VjY2Vzcy5hY3RpdmUsIC5zaG93ID4gLmJ0bi1zdWNjZXNzLmRyb3Bkb3duLXRvZ2dsZSB7XFxuICAgIGNvbG9yOiAjZmZmO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDQ5ZDQ0O1xcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xcbiAgICBib3JkZXItY29sb3I6ICM0MTk2NDE7IH1cXG4uYnRuLXdhcm5pbmcge1xcbiAgY29sb3I6ICNmZmY7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBhZDRlO1xcbiAgYm9yZGVyLWNvbG9yOiAjZjBhZDRlOyB9XFxuLmJ0bi13YXJuaW5nOmhvdmVyIHtcXG4gICAgY29sb3I6ICNmZmY7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNlYzk3MWY7XFxuICAgIGJvcmRlci1jb2xvcjogI2ViOTMxNjsgfVxcbi5idG4td2FybmluZzpmb2N1cywgLmJ0bi13YXJuaW5nLmZvY3VzIHtcXG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgMCAycHggcmdiYSgyNDAsIDE3MywgNzgsIDAuNSk7XFxuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHJnYmEoMjQwLCAxNzMsIDc4LCAwLjUpOyB9XFxuLmJ0bi13YXJuaW5nLmRpc2FibGVkLCAuYnRuLXdhcm5pbmc6ZGlzYWJsZWQge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBhZDRlO1xcbiAgICBib3JkZXItY29sb3I6ICNmMGFkNGU7IH1cXG4uYnRuLXdhcm5pbmc6YWN0aXZlLCAuYnRuLXdhcm5pbmcuYWN0aXZlLCAuc2hvdyA+IC5idG4td2FybmluZy5kcm9wZG93bi10b2dnbGUge1xcbiAgICBjb2xvcjogI2ZmZjtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2VjOTcxZjtcXG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcXG4gICAgYm9yZGVyLWNvbG9yOiAjZWI5MzE2OyB9XFxuLmJ0bi1kYW5nZXIge1xcbiAgY29sb3I6ICNmZmY7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDk1MzRmO1xcbiAgYm9yZGVyLWNvbG9yOiAjZDk1MzRmOyB9XFxuLmJ0bi1kYW5nZXI6aG92ZXIge1xcbiAgICBjb2xvcjogI2ZmZjtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2M5MzAyYztcXG4gICAgYm9yZGVyLWNvbG9yOiAjYzEyZTJhOyB9XFxuLmJ0bi1kYW5nZXI6Zm9jdXMsIC5idG4tZGFuZ2VyLmZvY3VzIHtcXG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgMCAycHggcmdiYSgyMTcsIDgzLCA3OSwgMC41KTtcXG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggcmdiYSgyMTcsIDgzLCA3OSwgMC41KTsgfVxcbi5idG4tZGFuZ2VyLmRpc2FibGVkLCAuYnRuLWRhbmdlcjpkaXNhYmxlZCB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNkOTUzNGY7XFxuICAgIGJvcmRlci1jb2xvcjogI2Q5NTM0ZjsgfVxcbi5idG4tZGFuZ2VyOmFjdGl2ZSwgLmJ0bi1kYW5nZXIuYWN0aXZlLCAuc2hvdyA+IC5idG4tZGFuZ2VyLmRyb3Bkb3duLXRvZ2dsZSB7XFxuICAgIGNvbG9yOiAjZmZmO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzkzMDJjO1xcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xcbiAgICBib3JkZXItY29sb3I6ICNjMTJlMmE7IH1cXG4uYnRuLW91dGxpbmUtcHJpbWFyeSB7XFxuICBjb2xvcjogIzAyNzVkODtcXG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcXG4gIGJvcmRlci1jb2xvcjogIzAyNzVkODsgfVxcbi5idG4tb3V0bGluZS1wcmltYXJ5OmhvdmVyIHtcXG4gICAgY29sb3I6ICNmZmY7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMjc1ZDg7XFxuICAgIGJvcmRlci1jb2xvcjogIzAyNzVkODsgfVxcbi5idG4tb3V0bGluZS1wcmltYXJ5OmZvY3VzLCAuYnRuLW91dGxpbmUtcHJpbWFyeS5mb2N1cyB7XFxuICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAwIDAgMnB4IHJnYmEoMiwgMTE3LCAyMTYsIDAuNSk7XFxuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHJnYmEoMiwgMTE3LCAyMTYsIDAuNSk7IH1cXG4uYnRuLW91dGxpbmUtcHJpbWFyeS5kaXNhYmxlZCwgLmJ0bi1vdXRsaW5lLXByaW1hcnk6ZGlzYWJsZWQge1xcbiAgICBjb2xvcjogIzAyNzVkODtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cXG4uYnRuLW91dGxpbmUtcHJpbWFyeTphY3RpdmUsIC5idG4tb3V0bGluZS1wcmltYXJ5LmFjdGl2ZSwgLnNob3cgPiAuYnRuLW91dGxpbmUtcHJpbWFyeS5kcm9wZG93bi10b2dnbGUge1xcbiAgICBjb2xvcjogI2ZmZjtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAyNzVkODtcXG4gICAgYm9yZGVyLWNvbG9yOiAjMDI3NWQ4OyB9XFxuLmJ0bi1vdXRsaW5lLXNlY29uZGFyeSB7XFxuICBjb2xvcjogI2NjYztcXG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcXG4gIGJvcmRlci1jb2xvcjogI2NjYzsgfVxcbi5idG4tb3V0bGluZS1zZWNvbmRhcnk6aG92ZXIge1xcbiAgICBjb2xvcjogI2ZmZjtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2NjYztcXG4gICAgYm9yZGVyLWNvbG9yOiAjY2NjOyB9XFxuLmJ0bi1vdXRsaW5lLXNlY29uZGFyeTpmb2N1cywgLmJ0bi1vdXRsaW5lLXNlY29uZGFyeS5mb2N1cyB7XFxuICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAwIDAgMnB4IHJnYmEoMjA0LCAyMDQsIDIwNCwgMC41KTtcXG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggcmdiYSgyMDQsIDIwNCwgMjA0LCAwLjUpOyB9XFxuLmJ0bi1vdXRsaW5lLXNlY29uZGFyeS5kaXNhYmxlZCwgLmJ0bi1vdXRsaW5lLXNlY29uZGFyeTpkaXNhYmxlZCB7XFxuICAgIGNvbG9yOiAjY2NjO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxcbi5idG4tb3V0bGluZS1zZWNvbmRhcnk6YWN0aXZlLCAuYnRuLW91dGxpbmUtc2Vjb25kYXJ5LmFjdGl2ZSwgLnNob3cgPiAuYnRuLW91dGxpbmUtc2Vjb25kYXJ5LmRyb3Bkb3duLXRvZ2dsZSB7XFxuICAgIGNvbG9yOiAjZmZmO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjO1xcbiAgICBib3JkZXItY29sb3I6ICNjY2M7IH1cXG4uYnRuLW91dGxpbmUtaW5mbyB7XFxuICBjb2xvcjogIzViYzBkZTtcXG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcXG4gIGJvcmRlci1jb2xvcjogIzViYzBkZTsgfVxcbi5idG4tb3V0bGluZS1pbmZvOmhvdmVyIHtcXG4gICAgY29sb3I6ICNmZmY7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICM1YmMwZGU7XFxuICAgIGJvcmRlci1jb2xvcjogIzViYzBkZTsgfVxcbi5idG4tb3V0bGluZS1pbmZvOmZvY3VzLCAuYnRuLW91dGxpbmUtaW5mby5mb2N1cyB7XFxuICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAwIDAgMnB4IHJnYmEoOTEsIDE5MiwgMjIyLCAwLjUpO1xcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCByZ2JhKDkxLCAxOTIsIDIyMiwgMC41KTsgfVxcbi5idG4tb3V0bGluZS1pbmZvLmRpc2FibGVkLCAuYnRuLW91dGxpbmUtaW5mbzpkaXNhYmxlZCB7XFxuICAgIGNvbG9yOiAjNWJjMGRlO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxcbi5idG4tb3V0bGluZS1pbmZvOmFjdGl2ZSwgLmJ0bi1vdXRsaW5lLWluZm8uYWN0aXZlLCAuc2hvdyA+IC5idG4tb3V0bGluZS1pbmZvLmRyb3Bkb3duLXRvZ2dsZSB7XFxuICAgIGNvbG9yOiAjZmZmO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWJjMGRlO1xcbiAgICBib3JkZXItY29sb3I6ICM1YmMwZGU7IH1cXG4uYnRuLW91dGxpbmUtc3VjY2VzcyB7XFxuICBjb2xvcjogIzVjYjg1YztcXG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcXG4gIGJvcmRlci1jb2xvcjogIzVjYjg1YzsgfVxcbi5idG4tb3V0bGluZS1zdWNjZXNzOmhvdmVyIHtcXG4gICAgY29sb3I6ICNmZmY7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICM1Y2I4NWM7XFxuICAgIGJvcmRlci1jb2xvcjogIzVjYjg1YzsgfVxcbi5idG4tb3V0bGluZS1zdWNjZXNzOmZvY3VzLCAuYnRuLW91dGxpbmUtc3VjY2Vzcy5mb2N1cyB7XFxuICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAwIDAgMnB4IHJnYmEoOTIsIDE4NCwgOTIsIDAuNSk7XFxuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHJnYmEoOTIsIDE4NCwgOTIsIDAuNSk7IH1cXG4uYnRuLW91dGxpbmUtc3VjY2Vzcy5kaXNhYmxlZCwgLmJ0bi1vdXRsaW5lLXN1Y2Nlc3M6ZGlzYWJsZWQge1xcbiAgICBjb2xvcjogIzVjYjg1YztcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cXG4uYnRuLW91dGxpbmUtc3VjY2VzczphY3RpdmUsIC5idG4tb3V0bGluZS1zdWNjZXNzLmFjdGl2ZSwgLnNob3cgPiAuYnRuLW91dGxpbmUtc3VjY2Vzcy5kcm9wZG93bi10b2dnbGUge1xcbiAgICBjb2xvcjogI2ZmZjtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzVjYjg1YztcXG4gICAgYm9yZGVyLWNvbG9yOiAjNWNiODVjOyB9XFxuLmJ0bi1vdXRsaW5lLXdhcm5pbmcge1xcbiAgY29sb3I6ICNmMGFkNGU7XFxuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICBib3JkZXItY29sb3I6ICNmMGFkNGU7IH1cXG4uYnRuLW91dGxpbmUtd2FybmluZzpob3ZlciB7XFxuICAgIGNvbG9yOiAjZmZmO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBhZDRlO1xcbiAgICBib3JkZXItY29sb3I6ICNmMGFkNGU7IH1cXG4uYnRuLW91dGxpbmUtd2FybmluZzpmb2N1cywgLmJ0bi1vdXRsaW5lLXdhcm5pbmcuZm9jdXMge1xcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCAwIDJweCByZ2JhKDI0MCwgMTczLCA3OCwgMC41KTtcXG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggcmdiYSgyNDAsIDE3MywgNzgsIDAuNSk7IH1cXG4uYnRuLW91dGxpbmUtd2FybmluZy5kaXNhYmxlZCwgLmJ0bi1vdXRsaW5lLXdhcm5pbmc6ZGlzYWJsZWQge1xcbiAgICBjb2xvcjogI2YwYWQ0ZTtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cXG4uYnRuLW91dGxpbmUtd2FybmluZzphY3RpdmUsIC5idG4tb3V0bGluZS13YXJuaW5nLmFjdGl2ZSwgLnNob3cgPiAuYnRuLW91dGxpbmUtd2FybmluZy5kcm9wZG93bi10b2dnbGUge1xcbiAgICBjb2xvcjogI2ZmZjtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YwYWQ0ZTtcXG4gICAgYm9yZGVyLWNvbG9yOiAjZjBhZDRlOyB9XFxuLmJ0bi1vdXRsaW5lLWRhbmdlciB7XFxuICBjb2xvcjogI2Q5NTM0ZjtcXG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcXG4gIGJvcmRlci1jb2xvcjogI2Q5NTM0ZjsgfVxcbi5idG4tb3V0bGluZS1kYW5nZXI6aG92ZXIge1xcbiAgICBjb2xvcjogI2ZmZjtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Q5NTM0ZjtcXG4gICAgYm9yZGVyLWNvbG9yOiAjZDk1MzRmOyB9XFxuLmJ0bi1vdXRsaW5lLWRhbmdlcjpmb2N1cywgLmJ0bi1vdXRsaW5lLWRhbmdlci5mb2N1cyB7XFxuICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAwIDAgMnB4IHJnYmEoMjE3LCA4MywgNzksIDAuNSk7XFxuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHJnYmEoMjE3LCA4MywgNzksIDAuNSk7IH1cXG4uYnRuLW91dGxpbmUtZGFuZ2VyLmRpc2FibGVkLCAuYnRuLW91dGxpbmUtZGFuZ2VyOmRpc2FibGVkIHtcXG4gICAgY29sb3I6ICNkOTUzNGY7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XFxuLmJ0bi1vdXRsaW5lLWRhbmdlcjphY3RpdmUsIC5idG4tb3V0bGluZS1kYW5nZXIuYWN0aXZlLCAuc2hvdyA+IC5idG4tb3V0bGluZS1kYW5nZXIuZHJvcGRvd24tdG9nZ2xlIHtcXG4gICAgY29sb3I6ICNmZmY7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNkOTUzNGY7XFxuICAgIGJvcmRlci1jb2xvcjogI2Q5NTM0ZjsgfVxcbi5idG4tbGluayB7XFxuICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgY29sb3I6ICMwMjc1ZDg7XFxuICBib3JkZXItcmFkaXVzOiAwOyB9XFxuLmJ0bi1saW5rLCAuYnRuLWxpbms6YWN0aXZlLCAuYnRuLWxpbmsuYWN0aXZlLCAuYnRuLWxpbms6ZGlzYWJsZWQge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxcbi5idG4tbGluaywgLmJ0bi1saW5rOmZvY3VzLCAuYnRuLWxpbms6YWN0aXZlIHtcXG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxcbi5idG4tbGluazpob3ZlciB7XFxuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cXG4uYnRuLWxpbms6Zm9jdXMsIC5idG4tbGluazpob3ZlciB7XFxuICAgIGNvbG9yOiAjMDE0YzhjO1xcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cXG4uYnRuLWxpbms6ZGlzYWJsZWQge1xcbiAgICBjb2xvcjogIzYzNmM3MjsgfVxcbi5idG4tbGluazpkaXNhYmxlZDpmb2N1cywgLmJ0bi1saW5rOmRpc2FibGVkOmhvdmVyIHtcXG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cXG4uYnRuLWxnLCAuYnRuLWdyb3VwLWxnID4gLmJ0biB7XFxuICBwYWRkaW5nOiAwLjc1cmVtIDEuNXJlbTtcXG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcXG4gIGJvcmRlci1yYWRpdXM6IDAuM3JlbTsgfVxcbi5idG4tc20sIC5idG4tZ3JvdXAtc20gPiAuYnRuIHtcXG4gIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcXG4gIGJvcmRlci1yYWRpdXM6IDAuMnJlbTsgfVxcbi5idG4tYmxvY2sge1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICB3aWR0aDogMTAwJTsgfVxcbi5idG4tYmxvY2sgKyAuYnRuLWJsb2NrIHtcXG4gIG1hcmdpbi10b3A6IDAuNXJlbTsgfVxcbmlucHV0W3R5cGU9XFxcInN1Ym1pdFxcXCJdLmJ0bi1ibG9jaywgaW5wdXRbdHlwZT1cXFwicmVzZXRcXFwiXS5idG4tYmxvY2ssIGlucHV0W3R5cGU9XFxcImJ1dHRvblxcXCJdLmJ0bi1ibG9jayB7XFxuICB3aWR0aDogMTAwJTsgfVxcbi5mYWRlIHtcXG4gIG9wYWNpdHk6IDA7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgbGluZWFyO1xcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cyBsaW5lYXI7IH1cXG4uZmFkZS5zaG93IHtcXG4gICAgb3BhY2l0eTogMTsgfVxcbi5jb2xsYXBzZSB7XFxuICBkaXNwbGF5OiBub25lOyB9XFxuLmNvbGxhcHNlLnNob3cge1xcbiAgICBkaXNwbGF5OiBibG9jazsgfVxcbnRyLmNvbGxhcHNlLnNob3cge1xcbiAgZGlzcGxheTogdGFibGUtcm93OyB9XFxudGJvZHkuY29sbGFwc2Uuc2hvdyB7XFxuICBkaXNwbGF5OiB0YWJsZS1yb3ctZ3JvdXA7IH1cXG4uY29sbGFwc2luZyB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBoZWlnaHQ6IDA7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBoZWlnaHQgMC4zNXMgZWFzZTtcXG4gIHRyYW5zaXRpb246IGhlaWdodCAwLjM1cyBlYXNlOyB9XFxuLmRyb3B1cCwgLmRyb3Bkb3duIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxcbi5kcm9wZG93bi10b2dnbGU6OmFmdGVyIHtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIHdpZHRoOiAwO1xcbiAgaGVpZ2h0OiAwO1xcbiAgbWFyZ2luLWxlZnQ6IDAuM2VtO1xcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG4gIGNvbnRlbnQ6IFxcXCJcXFwiO1xcbiAgYm9yZGVyLXRvcDogMC4zZW0gc29saWQ7XFxuICBib3JkZXItcmlnaHQ6IDAuM2VtIHNvbGlkIHRyYW5zcGFyZW50O1xcbiAgYm9yZGVyLWxlZnQ6IDAuM2VtIHNvbGlkIHRyYW5zcGFyZW50OyB9XFxuLmRyb3Bkb3duLXRvZ2dsZTpmb2N1cyB7XFxuICBvdXRsaW5lOiAwOyB9XFxuLmRyb3B1cCAuZHJvcGRvd24tdG9nZ2xlOjphZnRlciB7XFxuICBib3JkZXItdG9wOiAwO1xcbiAgYm9yZGVyLWJvdHRvbTogMC4zZW0gc29saWQ7IH1cXG4uZHJvcGRvd24tbWVudSB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDEwMCU7XFxuICBsZWZ0OiAwO1xcbiAgei1pbmRleDogMTAwMDtcXG4gIGRpc3BsYXk6IG5vbmU7XFxuICBmbG9hdDogbGVmdDtcXG4gIG1pbi13aWR0aDogMTByZW07XFxuICBwYWRkaW5nOiAwLjVyZW0gMDtcXG4gIG1hcmdpbjogMC4xMjVyZW0gMCAwO1xcbiAgZm9udC1zaXplOiAxcmVtO1xcbiAgY29sb3I6ICMyOTJiMmM7XFxuICB0ZXh0LWFsaWduOiBsZWZ0O1xcbiAgbGlzdC1zdHlsZTogbm9uZTtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XFxuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjE1KTtcXG4gIGJvcmRlci1yYWRpdXM6IDAuMjVyZW07IH1cXG4uZHJvcGRvd24tZGl2aWRlciB7XFxuICBoZWlnaHQ6IDFweDtcXG4gIG1hcmdpbjogMC41cmVtIDA7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VjZWVlZjsgfVxcbi5kcm9wZG93bi1pdGVtIHtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBwYWRkaW5nOiAzcHggMS41cmVtO1xcbiAgY2xlYXI6IGJvdGg7XFxuICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgY29sb3I6ICMyOTJiMmM7XFxuICB0ZXh0LWFsaWduOiBpbmhlcml0O1xcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG4gIGJhY2tncm91bmQ6IG5vbmU7XFxuICBib3JkZXI6IDA7IH1cXG4uZHJvcGRvd24taXRlbTpmb2N1cywgLmRyb3Bkb3duLWl0ZW06aG92ZXIge1xcbiAgICBjb2xvcjogIzFkMWUxZjtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmN2Y5OyB9XFxuLmRyb3Bkb3duLWl0ZW0uYWN0aXZlLCAuZHJvcGRvd24taXRlbTphY3RpdmUge1xcbiAgICBjb2xvcjogI2ZmZjtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDI3NWQ4OyB9XFxuLmRyb3Bkb3duLWl0ZW0uZGlzYWJsZWQsIC5kcm9wZG93bi1pdGVtOmRpc2FibGVkIHtcXG4gICAgY29sb3I6ICM2MzZjNzI7XFxuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XFxuLnNob3cgPiAuZHJvcGRvd24tbWVudSB7XFxuICBkaXNwbGF5OiBibG9jazsgfVxcbi5zaG93ID4gYSB7XFxuICBvdXRsaW5lOiAwOyB9XFxuLmRyb3Bkb3duLW1lbnUtcmlnaHQge1xcbiAgcmlnaHQ6IDA7XFxuICBsZWZ0OiBhdXRvOyB9XFxuLmRyb3Bkb3duLW1lbnUtbGVmdCB7XFxuICByaWdodDogYXV0bztcXG4gIGxlZnQ6IDA7IH1cXG4uZHJvcGRvd24taGVhZGVyIHtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbiAgcGFkZGluZzogMC41cmVtIDEuNXJlbTtcXG4gIG1hcmdpbi1ib3R0b206IDA7XFxuICBmb250LXNpemU6IDAuODc1cmVtO1xcbiAgY29sb3I6ICM2MzZjNzI7XFxuICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XFxuLmRyb3Bkb3duLWJhY2tkcm9wIHtcXG4gIHBvc2l0aW9uOiBmaXhlZDtcXG4gIHRvcDogMDtcXG4gIHJpZ2h0OiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgbGVmdDogMDtcXG4gIHotaW5kZXg6IDk5MDsgfVxcbi5kcm9wdXAgLmRyb3Bkb3duLW1lbnUge1xcbiAgdG9wOiBhdXRvO1xcbiAgYm90dG9tOiAxMDAlO1xcbiAgbWFyZ2luLWJvdHRvbTogMC4xMjVyZW07IH1cXG4uYnRuLWdyb3VwLCAuYnRuLWdyb3VwLXZlcnRpY2FsIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWJveDtcXG4gIGRpc3BsYXk6IC1tcy1pbmxpbmUtZmxleGJveDtcXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxcbi5idG4tZ3JvdXAgPiAuYnRuLCAuYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0biB7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAgIC1tcy1mbGV4OiAwIDEgYXV0bztcXG4gICAgICAgICAgICBmbGV4OiAwIDEgYXV0bzsgfVxcbi5idG4tZ3JvdXAgPiAuYnRuOmhvdmVyLCAuYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bjpob3ZlciB7XFxuICAgICAgei1pbmRleDogMjsgfVxcbi5idG4tZ3JvdXAgPiAuYnRuOmZvY3VzLCAuYnRuLWdyb3VwID4gLmJ0bjphY3RpdmUsIC5idG4tZ3JvdXAgPiAuYnRuLmFjdGl2ZSwgLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG46Zm9jdXMsIC5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuOmFjdGl2ZSwgLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4uYWN0aXZlIHtcXG4gICAgICB6LWluZGV4OiAyOyB9XFxuLmJ0bi1ncm91cCAuYnRuICsgLmJ0biwgLmJ0bi1ncm91cCAuYnRuICsgLmJ0bi1ncm91cCwgLmJ0bi1ncm91cCAuYnRuLWdyb3VwICsgLmJ0biwgLmJ0bi1ncm91cCAuYnRuLWdyb3VwICsgLmJ0bi1ncm91cCwgLmJ0bi1ncm91cC12ZXJ0aWNhbCAuYnRuICsgLmJ0biwgLmJ0bi1ncm91cC12ZXJ0aWNhbCAuYnRuICsgLmJ0bi1ncm91cCwgLmJ0bi1ncm91cC12ZXJ0aWNhbCAuYnRuLWdyb3VwICsgLmJ0biwgLmJ0bi1ncm91cC12ZXJ0aWNhbCAuYnRuLWdyb3VwICsgLmJ0bi1ncm91cCB7XFxuICAgIG1hcmdpbi1sZWZ0OiAtMXB4OyB9XFxuLmJ0bi10b29sYmFyIHtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgLXdlYmtpdC1ib3gtcGFjazogc3RhcnQ7XFxuICAgICAgLW1zLWZsZXgtcGFjazogc3RhcnQ7XFxuICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgfVxcbi5idG4tdG9vbGJhciAuaW5wdXQtZ3JvdXAge1xcbiAgICB3aWR0aDogYXV0bzsgfVxcbi5idG4tZ3JvdXAgPiAuYnRuOm5vdCg6Zmlyc3QtY2hpbGQpOm5vdCg6bGFzdC1jaGlsZCk6bm90KC5kcm9wZG93bi10b2dnbGUpIHtcXG4gIGJvcmRlci1yYWRpdXM6IDA7IH1cXG4uYnRuLWdyb3VwID4gLmJ0bjpmaXJzdC1jaGlsZCB7XFxuICBtYXJnaW4tbGVmdDogMDsgfVxcbi5idG4tZ3JvdXAgPiAuYnRuOmZpcnN0LWNoaWxkOm5vdCg6bGFzdC1jaGlsZCk6bm90KC5kcm9wZG93bi10b2dnbGUpIHtcXG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XFxuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwOyB9XFxuLmJ0bi1ncm91cCA+IC5idG46bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSwgLmJ0bi1ncm91cCA+IC5kcm9wZG93bi10b2dnbGU6bm90KDpmaXJzdC1jaGlsZCkge1xcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcXG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7IH1cXG4uYnRuLWdyb3VwID4gLmJ0bi1ncm91cCB7XFxuICBmbG9hdDogbGVmdDsgfVxcbi5idG4tZ3JvdXAgPiAuYnRuLWdyb3VwOm5vdCg6Zmlyc3QtY2hpbGQpOm5vdCg6bGFzdC1jaGlsZCkgPiAuYnRuIHtcXG4gIGJvcmRlci1yYWRpdXM6IDA7IH1cXG4uYnRuLWdyb3VwID4gLmJ0bi1ncm91cDpmaXJzdC1jaGlsZDpub3QoOmxhc3QtY2hpbGQpID4gLmJ0bjpsYXN0LWNoaWxkLCAuYnRuLWdyb3VwID4gLmJ0bi1ncm91cDpmaXJzdC1jaGlsZDpub3QoOmxhc3QtY2hpbGQpID4gLmRyb3Bkb3duLXRvZ2dsZSB7XFxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcXG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwOyB9XFxuLmJ0bi1ncm91cCA+IC5idG4tZ3JvdXA6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSA+IC5idG46Zmlyc3QtY2hpbGQge1xcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcXG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7IH1cXG4uYnRuLWdyb3VwIC5kcm9wZG93bi10b2dnbGU6YWN0aXZlLCAuYnRuLWdyb3VwLm9wZW4gLmRyb3Bkb3duLXRvZ2dsZSB7XFxuICBvdXRsaW5lOiAwOyB9XFxuLmJ0biArIC5kcm9wZG93bi10b2dnbGUtc3BsaXQge1xcbiAgcGFkZGluZy1yaWdodDogMC43NXJlbTtcXG4gIHBhZGRpbmctbGVmdDogMC43NXJlbTsgfVxcbi5idG4gKyAuZHJvcGRvd24tdG9nZ2xlLXNwbGl0OjphZnRlciB7XFxuICAgIG1hcmdpbi1sZWZ0OiAwOyB9XFxuLmJ0bi1zbSArIC5kcm9wZG93bi10b2dnbGUtc3BsaXQsIC5idG4tZ3JvdXAtc20gPiAuYnRuICsgLmRyb3Bkb3duLXRvZ2dsZS1zcGxpdCB7XFxuICBwYWRkaW5nLXJpZ2h0OiAwLjM3NXJlbTtcXG4gIHBhZGRpbmctbGVmdDogMC4zNzVyZW07IH1cXG4uYnRuLWxnICsgLmRyb3Bkb3duLXRvZ2dsZS1zcGxpdCwgLmJ0bi1ncm91cC1sZyA+IC5idG4gKyAuZHJvcGRvd24tdG9nZ2xlLXNwbGl0IHtcXG4gIHBhZGRpbmctcmlnaHQ6IDEuMTI1cmVtO1xcbiAgcGFkZGluZy1sZWZ0OiAxLjEyNXJlbTsgfVxcbi5idG4tZ3JvdXAtdmVydGljYWwge1xcbiAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtYm94O1xcbiAgZGlzcGxheTogLW1zLWlubGluZS1mbGV4Ym94O1xcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XFxuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xcbiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XFxuICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICAtd2Via2l0LWJveC1hbGlnbjogc3RhcnQ7XFxuICAgICAgLW1zLWZsZXgtYWxpZ246IHN0YXJ0O1xcbiAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcXG4gIC13ZWJraXQtYm94LXBhY2s6IGNlbnRlcjtcXG4gICAgICAtbXMtZmxleC1wYWNrOiBjZW50ZXI7XFxuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XFxuLmJ0bi1ncm91cC12ZXJ0aWNhbCAuYnRuLCAuYnRuLWdyb3VwLXZlcnRpY2FsIC5idG4tZ3JvdXAge1xcbiAgICB3aWR0aDogMTAwJTsgfVxcbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuICsgLmJ0biwgLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4gKyAuYnRuLWdyb3VwLCAuYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bi1ncm91cCArIC5idG4sIC5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuLWdyb3VwICsgLmJ0bi1ncm91cCB7XFxuICAgIG1hcmdpbi10b3A6IC0xcHg7XFxuICAgIG1hcmdpbi1sZWZ0OiAwOyB9XFxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG46bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKSB7XFxuICBib3JkZXItcmFkaXVzOiAwOyB9XFxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG46Zmlyc3QtY2hpbGQ6bm90KDpsYXN0LWNoaWxkKSB7XFxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcXG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7IH1cXG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bjpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcXG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDsgfVxcbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuLWdyb3VwOm5vdCg6Zmlyc3QtY2hpbGQpOm5vdCg6bGFzdC1jaGlsZCkgPiAuYnRuIHtcXG4gIGJvcmRlci1yYWRpdXM6IDA7IH1cXG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bi1ncm91cDpmaXJzdC1jaGlsZDpub3QoOmxhc3QtY2hpbGQpID4gLmJ0bjpsYXN0LWNoaWxkLCAuYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bi1ncm91cDpmaXJzdC1jaGlsZDpub3QoOmxhc3QtY2hpbGQpID4gLmRyb3Bkb3duLXRvZ2dsZSB7XFxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcXG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7IH1cXG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bi1ncm91cDpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpID4gLmJ0bjpmaXJzdC1jaGlsZCB7XFxuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcXG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7IH1cXG5bZGF0YS10b2dnbGU9XFxcImJ1dHRvbnNcXFwiXSA+IC5idG4gaW5wdXRbdHlwZT1cXFwicmFkaW9cXFwiXSwgW2RhdGEtdG9nZ2xlPVxcXCJidXR0b25zXFxcIl0gPiAuYnRuIGlucHV0W3R5cGU9XFxcImNoZWNrYm94XFxcIl0sIFtkYXRhLXRvZ2dsZT1cXFwiYnV0dG9uc1xcXCJdID4gLmJ0bi1ncm91cCA+IC5idG4gaW5wdXRbdHlwZT1cXFwicmFkaW9cXFwiXSwgW2RhdGEtdG9nZ2xlPVxcXCJidXR0b25zXFxcIl0gPiAuYnRuLWdyb3VwID4gLmJ0biBpbnB1dFt0eXBlPVxcXCJjaGVja2JveFxcXCJdIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxcbi5pbnB1dC1ncm91cCB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgZGlzcGxheTogZmxleDtcXG4gIHdpZHRoOiAxMDAlOyB9XFxuLmlucHV0LWdyb3VwIC5mb3JtLWNvbnRyb2wge1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIHotaW5kZXg6IDI7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAgICAgICAtbXMtZmxleDogMSAxIGF1dG87XFxuICAgICAgICAgICAgZmxleDogMSAxIGF1dG87XFxuICAgIHdpZHRoOiAxJTtcXG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxcbi5pbnB1dC1ncm91cCAuZm9ybS1jb250cm9sOmZvY3VzLCAuaW5wdXQtZ3JvdXAgLmZvcm0tY29udHJvbDphY3RpdmUsIC5pbnB1dC1ncm91cCAuZm9ybS1jb250cm9sOmhvdmVyIHtcXG4gICAgICB6LWluZGV4OiAzOyB9XFxuLmlucHV0LWdyb3VwLWFkZG9uLCAuaW5wdXQtZ3JvdXAtYnRuLCAuaW5wdXQtZ3JvdXAgLmZvcm0tY29udHJvbCB7XFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgZGlzcGxheTogZmxleDtcXG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XFxuICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcXG4gICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gIC13ZWJraXQtYm94LXBhY2s6IGNlbnRlcjtcXG4gICAgICAtbXMtZmxleC1wYWNrOiBjZW50ZXI7XFxuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XFxuLmlucHV0LWdyb3VwLWFkZG9uOm5vdCg6Zmlyc3QtY2hpbGQpOm5vdCg6bGFzdC1jaGlsZCksIC5pbnB1dC1ncm91cC1idG46bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKSwgLmlucHV0LWdyb3VwIC5mb3JtLWNvbnRyb2w6bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKSB7XFxuICAgIGJvcmRlci1yYWRpdXM6IDA7IH1cXG4uaW5wdXQtZ3JvdXAtYWRkb24sIC5pbnB1dC1ncm91cC1idG4ge1xcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cXG4uaW5wdXQtZ3JvdXAtYWRkb24ge1xcbiAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XFxuICBtYXJnaW4tYm90dG9tOiAwO1xcbiAgZm9udC1zaXplOiAxcmVtO1xcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcXG4gIGxpbmUtaGVpZ2h0OiAxLjI1O1xcbiAgY29sb3I6ICM0NjRhNGM7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWNlZWVmO1xcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjE1KTtcXG4gIGJvcmRlci1yYWRpdXM6IDAuMjVyZW07IH1cXG4uaW5wdXQtZ3JvdXAtYWRkb24uZm9ybS1jb250cm9sLXNtLCAuaW5wdXQtZ3JvdXAtc20gPiAuaW5wdXQtZ3JvdXAtYWRkb24sIC5pbnB1dC1ncm91cC1zbSA+IC5pbnB1dC1ncm91cC1idG4gPiAuaW5wdXQtZ3JvdXAtYWRkb24uYnRuIHtcXG4gICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XFxuICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XFxuICAgIGJvcmRlci1yYWRpdXM6IDAuMnJlbTsgfVxcbi5pbnB1dC1ncm91cC1hZGRvbi5mb3JtLWNvbnRyb2wtbGcsIC5pbnB1dC1ncm91cC1sZyA+IC5pbnB1dC1ncm91cC1hZGRvbiwgLmlucHV0LWdyb3VwLWxnID4gLmlucHV0LWdyb3VwLWJ0biA+IC5pbnB1dC1ncm91cC1hZGRvbi5idG4ge1xcbiAgICBwYWRkaW5nOiAwLjc1cmVtIDEuNXJlbTtcXG4gICAgZm9udC1zaXplOiAxLjI1cmVtO1xcbiAgICBib3JkZXItcmFkaXVzOiAwLjNyZW07IH1cXG4uaW5wdXQtZ3JvdXAtYWRkb24gaW5wdXRbdHlwZT1cXFwicmFkaW9cXFwiXSwgLmlucHV0LWdyb3VwLWFkZG9uIGlucHV0W3R5cGU9XFxcImNoZWNrYm94XFxcIl0ge1xcbiAgICBtYXJnaW4tdG9wOiAwOyB9XFxuLmlucHV0LWdyb3VwIC5mb3JtLWNvbnRyb2w6bm90KDpsYXN0LWNoaWxkKSwgLmlucHV0LWdyb3VwLWFkZG9uOm5vdCg6bGFzdC1jaGlsZCksIC5pbnB1dC1ncm91cC1idG46bm90KDpsYXN0LWNoaWxkKSA+IC5idG4sIC5pbnB1dC1ncm91cC1idG46bm90KDpsYXN0LWNoaWxkKSA+IC5idG4tZ3JvdXAgPiAuYnRuLCAuaW5wdXQtZ3JvdXAtYnRuOm5vdCg6bGFzdC1jaGlsZCkgPiAuZHJvcGRvd24tdG9nZ2xlLCAuaW5wdXQtZ3JvdXAtYnRuOm5vdCg6Zmlyc3QtY2hpbGQpID4gLmJ0bjpub3QoOmxhc3QtY2hpbGQpOm5vdCguZHJvcGRvd24tdG9nZ2xlKSwgLmlucHV0LWdyb3VwLWJ0bjpub3QoOmZpcnN0LWNoaWxkKSA+IC5idG4tZ3JvdXA6bm90KDpsYXN0LWNoaWxkKSA+IC5idG4ge1xcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XFxuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDsgfVxcbi5pbnB1dC1ncm91cC1hZGRvbjpub3QoOmxhc3QtY2hpbGQpIHtcXG4gIGJvcmRlci1yaWdodDogMDsgfVxcbi5pbnB1dC1ncm91cCAuZm9ybS1jb250cm9sOm5vdCg6Zmlyc3QtY2hpbGQpLCAuaW5wdXQtZ3JvdXAtYWRkb246bm90KDpmaXJzdC1jaGlsZCksIC5pbnB1dC1ncm91cC1idG46bm90KDpmaXJzdC1jaGlsZCkgPiAuYnRuLCAuaW5wdXQtZ3JvdXAtYnRuOm5vdCg6Zmlyc3QtY2hpbGQpID4gLmJ0bi1ncm91cCA+IC5idG4sIC5pbnB1dC1ncm91cC1idG46bm90KDpmaXJzdC1jaGlsZCkgPiAuZHJvcGRvd24tdG9nZ2xlLCAuaW5wdXQtZ3JvdXAtYnRuOm5vdCg6bGFzdC1jaGlsZCkgPiAuYnRuOm5vdCg6Zmlyc3QtY2hpbGQpLCAuaW5wdXQtZ3JvdXAtYnRuOm5vdCg6bGFzdC1jaGlsZCkgPiAuYnRuLWdyb3VwOm5vdCg6Zmlyc3QtY2hpbGQpID4gLmJ0biB7XFxuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDsgfVxcbi5mb3JtLWNvbnRyb2wgKyAuaW5wdXQtZ3JvdXAtYWRkb246bm90KDpmaXJzdC1jaGlsZCkge1xcbiAgYm9yZGVyLWxlZnQ6IDA7IH1cXG4uaW5wdXQtZ3JvdXAtYnRuIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIGZvbnQtc2l6ZTogMDtcXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cXG4uaW5wdXQtZ3JvdXAtYnRuID4gLmJ0biB7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMTtcXG4gICAgICAgIC1tcy1mbGV4OiAxO1xcbiAgICAgICAgICAgIGZsZXg6IDE7IH1cXG4uaW5wdXQtZ3JvdXAtYnRuID4gLmJ0biArIC5idG4ge1xcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMXB4OyB9XFxuLmlucHV0LWdyb3VwLWJ0biA+IC5idG46Zm9jdXMsIC5pbnB1dC1ncm91cC1idG4gPiAuYnRuOmFjdGl2ZSwgLmlucHV0LWdyb3VwLWJ0biA+IC5idG46aG92ZXIge1xcbiAgICAgIHotaW5kZXg6IDM7IH1cXG4uaW5wdXQtZ3JvdXAtYnRuOm5vdCg6bGFzdC1jaGlsZCkgPiAuYnRuLCAuaW5wdXQtZ3JvdXAtYnRuOm5vdCg6bGFzdC1jaGlsZCkgPiAuYnRuLWdyb3VwIHtcXG4gICAgbWFyZ2luLXJpZ2h0OiAtMXB4OyB9XFxuLmlucHV0LWdyb3VwLWJ0bjpub3QoOmZpcnN0LWNoaWxkKSA+IC5idG4sIC5pbnB1dC1ncm91cC1idG46bm90KDpmaXJzdC1jaGlsZCkgPiAuYnRuLWdyb3VwIHtcXG4gICAgei1pbmRleDogMjtcXG4gICAgbWFyZ2luLWxlZnQ6IC0xcHg7IH1cXG4uaW5wdXQtZ3JvdXAtYnRuOm5vdCg6Zmlyc3QtY2hpbGQpID4gLmJ0bjpmb2N1cywgLmlucHV0LWdyb3VwLWJ0bjpub3QoOmZpcnN0LWNoaWxkKSA+IC5idG46YWN0aXZlLCAuaW5wdXQtZ3JvdXAtYnRuOm5vdCg6Zmlyc3QtY2hpbGQpID4gLmJ0bjpob3ZlciwgLmlucHV0LWdyb3VwLWJ0bjpub3QoOmZpcnN0LWNoaWxkKSA+IC5idG4tZ3JvdXA6Zm9jdXMsIC5pbnB1dC1ncm91cC1idG46bm90KDpmaXJzdC1jaGlsZCkgPiAuYnRuLWdyb3VwOmFjdGl2ZSwgLmlucHV0LWdyb3VwLWJ0bjpub3QoOmZpcnN0LWNoaWxkKSA+IC5idG4tZ3JvdXA6aG92ZXIge1xcbiAgICAgIHotaW5kZXg6IDM7IH1cXG4uY3VzdG9tLWNvbnRyb2wge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtYm94O1xcbiAgZGlzcGxheTogLW1zLWlubGluZS1mbGV4Ym94O1xcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XFxuICBtaW4taGVpZ2h0OiAxLjVyZW07XFxuICBwYWRkaW5nLWxlZnQ6IDEuNXJlbTtcXG4gIG1hcmdpbi1yaWdodDogMXJlbTtcXG4gIGN1cnNvcjogcG9pbnRlcjsgfVxcbi5jdXN0b20tY29udHJvbC1pbnB1dCB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB6LWluZGV4OiAtMTtcXG4gIG9wYWNpdHk6IDA7IH1cXG4uY3VzdG9tLWNvbnRyb2wtaW5wdXQ6Y2hlY2tlZCB+IC5jdXN0b20tY29udHJvbC1pbmRpY2F0b3Ige1xcbiAgICBjb2xvcjogI2ZmZjtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAyNzVkODsgfVxcbi5jdXN0b20tY29udHJvbC1pbnB1dDpmb2N1cyB+IC5jdXN0b20tY29udHJvbC1pbmRpY2F0b3Ige1xcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCAwIDFweCAjZmZmLCAwIDAgMCAzcHggIzAyNzVkODtcXG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggI2ZmZiwgMCAwIDAgM3B4ICMwMjc1ZDg7IH1cXG4uY3VzdG9tLWNvbnRyb2wtaW5wdXQ6YWN0aXZlIH4gLmN1c3RvbS1jb250cm9sLWluZGljYXRvciB7XFxuICAgIGNvbG9yOiAjZmZmO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGZjYWZlOyB9XFxuLmN1c3RvbS1jb250cm9sLWlucHV0OmRpc2FibGVkIH4gLmN1c3RvbS1jb250cm9sLWluZGljYXRvciB7XFxuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNlY2VlZWY7IH1cXG4uY3VzdG9tLWNvbnRyb2wtaW5wdXQ6ZGlzYWJsZWQgfiAuY3VzdG9tLWNvbnRyb2wtZGVzY3JpcHRpb24ge1xcbiAgICBjb2xvcjogIzYzNmM3MjtcXG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDsgfVxcbi5jdXN0b20tY29udHJvbC1pbmRpY2F0b3Ige1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAwLjI1cmVtO1xcbiAgbGVmdDogMDtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbiAgd2lkdGg6IDFyZW07XFxuICBoZWlnaHQ6IDFyZW07XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkO1xcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcXG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XFxuICBiYWNrZ3JvdW5kLXNpemU6IDUwJSA1MCU7IH1cXG4uY3VzdG9tLWNoZWNrYm94IC5jdXN0b20tY29udHJvbC1pbmRpY2F0b3Ige1xcbiAgYm9yZGVyLXJhZGl1czogMC4yNXJlbTsgfVxcbi5jdXN0b20tY2hlY2tib3ggLmN1c3RvbS1jb250cm9sLWlucHV0OmNoZWNrZWQgfiAuY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yIHtcXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcXFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmOCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgOCA4JyUzRSUzQ3BhdGggZmlsbD0nJTIzZmZmJyBkPSdNNi41NjQuNzVsLTMuNTkgMy42MTItMS41MzgtMS41NUwwIDQuMjYgMi45NzQgNy4yNSA4IDIuMTkzeicvJTNFJTNDL3N2ZyUzRVxcXCIpOyB9XFxuLmN1c3RvbS1jaGVja2JveCAuY3VzdG9tLWNvbnRyb2wtaW5wdXQ6aW5kZXRlcm1pbmF0ZSB+IC5jdXN0b20tY29udHJvbC1pbmRpY2F0b3Ige1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAyNzVkODtcXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcXFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmOCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgNCA0JyUzRSUzQ3BhdGggc3Ryb2tlPSclMjNmZmYnIGQ9J00wIDJoNCcvJTNFJTNDL3N2ZyUzRVxcXCIpOyB9XFxuLmN1c3RvbS1yYWRpbyAuY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yIHtcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTsgfVxcbi5jdXN0b20tcmFkaW8gLmN1c3RvbS1jb250cm9sLWlucHV0OmNoZWNrZWQgfiAuY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yIHtcXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcXFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmOCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PSctNCAtNCA4IDgnJTNFJTNDY2lyY2xlIHI9JzMnIGZpbGw9JyUyM2ZmZicvJTNFJTNDL3N2ZyUzRVxcXCIpOyB9XFxuLmN1c3RvbS1jb250cm9scy1zdGFja2VkIHtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcXG4gIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsO1xcbiAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XFxuLmN1c3RvbS1jb250cm9scy1zdGFja2VkIC5jdXN0b20tY29udHJvbCB7XFxuICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07IH1cXG4uY3VzdG9tLWNvbnRyb2xzLXN0YWNrZWQgLmN1c3RvbS1jb250cm9sICsgLmN1c3RvbS1jb250cm9sIHtcXG4gICAgICBtYXJnaW4tbGVmdDogMDsgfVxcbi5jdXN0b20tc2VsZWN0IHtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIG1heC13aWR0aDogMTAwJTtcXG4gIGhlaWdodDogY2FsYygyLjI1cmVtICsgMnB4KTtcXG4gIHBhZGRpbmc6IDAuMzc1cmVtIDEuNzVyZW0gMC4zNzVyZW0gMC43NXJlbTtcXG4gIGxpbmUtaGVpZ2h0OiAxLjI1O1xcbiAgY29sb3I6ICM0NjRhNGM7XFxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbiAgYmFja2dyb3VuZDogI2ZmZiB1cmwoXFxcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0ZjgsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDQgNSclM0UlM0NwYXRoIGZpbGw9JyUyMzMzMycgZD0nTTIgMEwwIDJoNHptMCA1TDAgM2g0eicvJTNFJTNDL3N2ZyUzRVxcXCIpIG5vLXJlcGVhdCByaWdodCAwLjc1cmVtIGNlbnRlcjtcXG4gIGJhY2tncm91bmQtc2l6ZTogOHB4IDEwcHg7XFxuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xcbiAgYm9yZGVyLXJhZGl1czogMC4yNXJlbTtcXG4gIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgfVxcbi5jdXN0b20tc2VsZWN0OmZvY3VzIHtcXG4gICAgYm9yZGVyLWNvbG9yOiAjNWNiM2ZkO1xcbiAgICBvdXRsaW5lOiBub25lOyB9XFxuLmN1c3RvbS1zZWxlY3Q6Zm9jdXM6Oi1tcy12YWx1ZSB7XFxuICAgICAgY29sb3I6ICM0NjRhNGM7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxcbi5jdXN0b20tc2VsZWN0OmRpc2FibGVkIHtcXG4gICAgY29sb3I6ICM2MzZjNzI7XFxuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNlY2VlZWY7IH1cXG4uY3VzdG9tLXNlbGVjdDo6LW1zLWV4cGFuZCB7XFxuICAgIG9wYWNpdHk6IDA7IH1cXG4uY3VzdG9tLXNlbGVjdC1zbSB7XFxuICBwYWRkaW5nLXRvcDogMC4zNzVyZW07XFxuICBwYWRkaW5nLWJvdHRvbTogMC4zNzVyZW07XFxuICBmb250LXNpemU6IDc1JTsgfVxcbi5jdXN0b20tZmlsZSB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICBtYXgtd2lkdGg6IDEwMCU7XFxuICBoZWlnaHQ6IDIuNXJlbTtcXG4gIG1hcmdpbi1ib3R0b206IDA7XFxuICBjdXJzb3I6IHBvaW50ZXI7IH1cXG4uY3VzdG9tLWZpbGUtaW5wdXQge1xcbiAgbWluLXdpZHRoOiAxNHJlbTtcXG4gIG1heC13aWR0aDogMTAwJTtcXG4gIGhlaWdodDogMi41cmVtO1xcbiAgbWFyZ2luOiAwO1xcbiAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTApO1xcbiAgb3BhY2l0eTogMDsgfVxcbi5jdXN0b20tZmlsZS1jb250cm9sIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDtcXG4gIHJpZ2h0OiAwO1xcbiAgbGVmdDogMDtcXG4gIHotaW5kZXg6IDU7XFxuICBoZWlnaHQ6IDIuNXJlbTtcXG4gIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xcbiAgbGluZS1oZWlnaHQ6IDEuNTtcXG4gIGNvbG9yOiAjNDY0YTRjO1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcXG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xNSk7XFxuICBib3JkZXItcmFkaXVzOiAwLjI1cmVtOyB9XFxuLmN1c3RvbS1maWxlLWNvbnRyb2w6bGFuZyhlbik6OmFmdGVyIHtcXG4gICAgY29udGVudDogXFxcIkNob29zZSBmaWxlLi4uXFxcIjsgfVxcbi5jdXN0b20tZmlsZS1jb250cm9sOjpiZWZvcmUge1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHRvcDogLTFweDtcXG4gICAgcmlnaHQ6IC0xcHg7XFxuICAgIGJvdHRvbTogLTFweDtcXG4gICAgei1pbmRleDogNjtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIGhlaWdodDogMi41cmVtO1xcbiAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcXG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcXG4gICAgY29sb3I6ICM0NjRhNGM7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNlY2VlZWY7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xNSk7XFxuICAgIGJvcmRlci1yYWRpdXM6IDAgMC4yNXJlbSAwLjI1cmVtIDA7IH1cXG4uY3VzdG9tLWZpbGUtY29udHJvbDpsYW5nKGVuKTo6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIkJyb3dzZVxcXCI7IH1cXG4ubmF2IHtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgcGFkZGluZy1sZWZ0OiAwO1xcbiAgbWFyZ2luLWJvdHRvbTogMDtcXG4gIGxpc3Qtc3R5bGU6IG5vbmU7IH1cXG4ubmF2LWxpbmsge1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICBwYWRkaW5nOiAwLjVlbSAxZW07IH1cXG4ubmF2LWxpbms6Zm9jdXMsIC5uYXYtbGluazpob3ZlciB7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxcbi5uYXYtbGluay5kaXNhYmxlZCB7XFxuICAgIGNvbG9yOiAjNjM2YzcyO1xcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XFxuLm5hdi10YWJzIHtcXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGRkOyB9XFxuLm5hdi10YWJzIC5uYXYtaXRlbSB7XFxuICAgIG1hcmdpbi1ib3R0b206IC0xcHg7IH1cXG4ubmF2LXRhYnMgLm5hdi1saW5rIHtcXG4gICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XFxuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwLjI1cmVtO1xcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwLjI1cmVtOyB9XFxuLm5hdi10YWJzIC5uYXYtbGluazpmb2N1cywgLm5hdi10YWJzIC5uYXYtbGluazpob3ZlciB7XFxuICAgICAgYm9yZGVyLWNvbG9yOiAjZWNlZWVmICNlY2VlZWYgI2RkZDsgfVxcbi5uYXYtdGFicyAubmF2LWxpbmsuZGlzYWJsZWQge1xcbiAgICAgIGNvbG9yOiAjNjM2YzcyO1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cXG4ubmF2LXRhYnMgLm5hdi1saW5rLmFjdGl2ZSwgLm5hdi10YWJzIC5uYXYtaXRlbS5zaG93IC5uYXYtbGluayB7XFxuICAgIGNvbG9yOiAjNDY0YTRjO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xcbiAgICBib3JkZXItY29sb3I6ICNkZGQgI2RkZCAjZmZmOyB9XFxuLm5hdi10YWJzIC5kcm9wZG93bi1tZW51IHtcXG4gICAgbWFyZ2luLXRvcDogLTFweDtcXG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XFxuICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7IH1cXG4ubmF2LXBpbGxzIC5uYXYtbGluayB7XFxuICBib3JkZXItcmFkaXVzOiAwLjI1cmVtOyB9XFxuLm5hdi1waWxscyAubmF2LWxpbmsuYWN0aXZlLCAubmF2LXBpbGxzIC5uYXYtaXRlbS5zaG93IC5uYXYtbGluayB7XFxuICBjb2xvcjogI2ZmZjtcXG4gIGN1cnNvcjogZGVmYXVsdDtcXG4gIGJhY2tncm91bmQtY29sb3I6ICMwMjc1ZDg7IH1cXG4ubmF2LWZpbGwgLm5hdi1pdGVtIHtcXG4gIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAgICAgLW1zLWZsZXg6IDEgMSBhdXRvO1xcbiAgICAgICAgICBmbGV4OiAxIDEgYXV0bztcXG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxcbi5uYXYtanVzdGlmaWVkIC5uYXYtaXRlbSB7XFxuICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgICAgIC1tcy1mbGV4OiAxIDEgMTAwJTtcXG4gICAgICAgICAgZmxleDogMSAxIDEwMCU7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cXG4udGFiLWNvbnRlbnQgPiAudGFiLXBhbmUge1xcbiAgZGlzcGxheTogbm9uZTsgfVxcbi50YWItY29udGVudCA+IC5hY3RpdmUge1xcbiAgZGlzcGxheTogYmxvY2s7IH1cXG4ubmF2YmFyIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcXG4gIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsO1xcbiAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgcGFkZGluZzogMC41cmVtIDFyZW07IH1cXG4ubmF2YmFyLWJyYW5kIHtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIHBhZGRpbmctdG9wOiAuMjVyZW07XFxuICBwYWRkaW5nLWJvdHRvbTogLjI1cmVtO1xcbiAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XFxuICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XFxuLm5hdmJhci1icmFuZDpmb2N1cywgLm5hdmJhci1icmFuZDpob3ZlciB7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxcbi5uYXZiYXItbmF2IHtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcXG4gIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsO1xcbiAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgcGFkZGluZy1sZWZ0OiAwO1xcbiAgbWFyZ2luLWJvdHRvbTogMDtcXG4gIGxpc3Qtc3R5bGU6IG5vbmU7IH1cXG4ubmF2YmFyLW5hdiAubmF2LWxpbmsge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xcbiAgICBwYWRkaW5nLWxlZnQ6IDA7IH1cXG4ubmF2YmFyLXRleHQge1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgcGFkZGluZy10b3A6IC40MjVyZW07XFxuICBwYWRkaW5nLWJvdHRvbTogLjQyNXJlbTsgfVxcbi5uYXZiYXItdG9nZ2xlciB7XFxuICAtbXMtZmxleC1pdGVtLWFsaWduOiBzdGFydDtcXG4gICAgICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xcbiAgcGFkZGluZzogMC4yNXJlbSAwLjc1cmVtO1xcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xcbiAgbGluZS1oZWlnaHQ6IDE7XFxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xcbiAgYm9yZGVyLXJhZGl1czogMC4yNXJlbTsgfVxcbi5uYXZiYXItdG9nZ2xlcjpmb2N1cywgLm5hdmJhci10b2dnbGVyOmhvdmVyIHtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XFxuLm5hdmJhci10b2dnbGVyLWljb24ge1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgd2lkdGg6IDEuNWVtO1xcbiAgaGVpZ2h0OiAxLjVlbTtcXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxuICBjb250ZW50OiBcXFwiXFxcIjtcXG4gIGJhY2tncm91bmQ6IG5vLXJlcGVhdCBjZW50ZXIgY2VudGVyO1xcbiAgYmFja2dyb3VuZC1zaXplOiAxMDAlIDEwMCU7IH1cXG4ubmF2YmFyLXRvZ2dsZXItbGVmdCB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBsZWZ0OiAxcmVtOyB9XFxuLm5hdmJhci10b2dnbGVyLXJpZ2h0IHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHJpZ2h0OiAxcmVtOyB9XFxuQG1lZGlhIChtYXgtd2lkdGg6IDU3NXB4KSB7XFxuICAubmF2YmFyLXRvZ2dsZWFibGUgLm5hdmJhci1uYXYgLmRyb3Bkb3duLW1lbnUge1xcbiAgICBwb3NpdGlvbjogc3RhdGljO1xcbiAgICBmbG9hdDogbm9uZTsgfVxcbiAgLm5hdmJhci10b2dnbGVhYmxlID4gLmNvbnRhaW5lciB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDA7XFxuICAgIHBhZGRpbmctbGVmdDogMDsgfSB9XFxuQG1lZGlhIChtaW4td2lkdGg6IDU3NnB4KSB7XFxuICAubmF2YmFyLXRvZ2dsZWFibGUge1xcbiAgICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7XFxuICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsO1xcbiAgICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3c7XFxuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcXG4gICAgLW1zLWZsZXgtd3JhcDogbm93cmFwO1xcbiAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XFxuICAgIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XFxuICAgICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cXG4gICAgLm5hdmJhci10b2dnbGVhYmxlIC5uYXZiYXItbmF2IHtcXG4gICAgICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7XFxuICAgICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XFxuICAgICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogcm93O1xcbiAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsgfVxcbiAgICAgIC5uYXZiYXItdG9nZ2xlYWJsZSAubmF2YmFyLW5hdiAubmF2LWxpbmsge1xcbiAgICAgICAgcGFkZGluZy1yaWdodDogLjVyZW07XFxuICAgICAgICBwYWRkaW5nLWxlZnQ6IC41cmVtOyB9XFxuICAgIC5uYXZiYXItdG9nZ2xlYWJsZSA+IC5jb250YWluZXIge1xcbiAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgICAgLW1zLWZsZXgtd3JhcDogbm93cmFwO1xcbiAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcXG4gICAgICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xcbiAgICAgICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xcbiAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxcbiAgICAubmF2YmFyLXRvZ2dsZWFibGUgLm5hdmJhci1jb2xsYXBzZSB7XFxuICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3ggIWltcG9ydGFudDtcXG4gICAgICBkaXNwbGF5OiAtbXMtZmxleGJveCAhaW1wb3J0YW50O1xcbiAgICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcXG4gICAgICB3aWR0aDogMTAwJTsgfVxcbiAgICAubmF2YmFyLXRvZ2dsZWFibGUgLm5hdmJhci10b2dnbGVyIHtcXG4gICAgICBkaXNwbGF5OiBub25lOyB9IH1cXG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcXG4gIC5uYXZiYXItdG9nZ2xlYWJsZS1zbSAubmF2YmFyLW5hdiAuZHJvcGRvd24tbWVudSB7XFxuICAgIHBvc2l0aW9uOiBzdGF0aWM7XFxuICAgIGZsb2F0OiBub25lOyB9XFxuICAubmF2YmFyLXRvZ2dsZWFibGUtc20gPiAuY29udGFpbmVyIHtcXG4gICAgcGFkZGluZy1yaWdodDogMDtcXG4gICAgcGFkZGluZy1sZWZ0OiAwOyB9IH1cXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcXG4gIC5uYXZiYXItdG9nZ2xlYWJsZS1zbSB7XFxuICAgIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDtcXG4gICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XFxuICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdztcXG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xcbiAgICAtbXMtZmxleC13cmFwOiBub3dyYXA7XFxuICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcXG4gICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcXG4gICAgICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XFxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxcbiAgICAubmF2YmFyLXRvZ2dsZWFibGUtc20gLm5hdmJhci1uYXYge1xcbiAgICAgIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDtcXG4gICAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcXG4gICAgICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3c7XFxuICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OyB9XFxuICAgICAgLm5hdmJhci10b2dnbGVhYmxlLXNtIC5uYXZiYXItbmF2IC5uYXYtbGluayB7XFxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAuNXJlbTtcXG4gICAgICAgIHBhZGRpbmctbGVmdDogLjVyZW07IH1cXG4gICAgLm5hdmJhci10b2dnbGVhYmxlLXNtID4gLmNvbnRhaW5lciB7XFxuICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICAgICAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICAgICAgZGlzcGxheTogZmxleDtcXG4gICAgICAtbXMtZmxleC13cmFwOiBub3dyYXA7XFxuICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xcbiAgICAgIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XFxuICAgICAgICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XFxuICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XFxuICAgIC5uYXZiYXItdG9nZ2xlYWJsZS1zbSAubmF2YmFyLWNvbGxhcHNlIHtcXG4gICAgICBkaXNwbGF5OiAtd2Via2l0LWJveCAhaW1wb3J0YW50O1xcbiAgICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94ICFpbXBvcnRhbnQ7XFxuICAgICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xcbiAgICAgIHdpZHRoOiAxMDAlOyB9XFxuICAgIC5uYXZiYXItdG9nZ2xlYWJsZS1zbSAubmF2YmFyLXRvZ2dsZXIge1xcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxcbkBtZWRpYSAobWF4LXdpZHRoOiA5OTFweCkge1xcbiAgLm5hdmJhci10b2dnbGVhYmxlLW1kIC5uYXZiYXItbmF2IC5kcm9wZG93bi1tZW51IHtcXG4gICAgcG9zaXRpb246IHN0YXRpYztcXG4gICAgZmxvYXQ6IG5vbmU7IH1cXG4gIC5uYXZiYXItdG9nZ2xlYWJsZS1tZCA+IC5jb250YWluZXIge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xcbiAgICBwYWRkaW5nLWxlZnQ6IDA7IH0gfVxcbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xcbiAgLm5hdmJhci10b2dnbGVhYmxlLW1kIHtcXG4gICAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsO1xcbiAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcXG4gICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogcm93O1xcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XFxuICAgIC1tcy1mbGV4LXdyYXA6IG5vd3JhcDtcXG4gICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xcbiAgICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xcbiAgICAgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XFxuICAgIC5uYXZiYXItdG9nZ2xlYWJsZS1tZCAubmF2YmFyLW5hdiB7XFxuICAgICAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsO1xcbiAgICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsO1xcbiAgICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdztcXG4gICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7IH1cXG4gICAgICAubmF2YmFyLXRvZ2dsZWFibGUtbWQgLm5hdmJhci1uYXYgLm5hdi1saW5rIHtcXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IC41cmVtO1xcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAuNXJlbTsgfVxcbiAgICAubmF2YmFyLXRvZ2dsZWFibGUtbWQgPiAuY29udGFpbmVyIHtcXG4gICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gICAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gICAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICAgIC1tcy1mbGV4LXdyYXA6IG5vd3JhcDtcXG4gICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XFxuICAgICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcXG4gICAgICAgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcXG4gICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cXG4gICAgLm5hdmJhci10b2dnbGVhYmxlLW1kIC5uYXZiYXItY29sbGFwc2Uge1xcbiAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94ICFpbXBvcnRhbnQ7XFxuICAgICAgZGlzcGxheTogLW1zLWZsZXhib3ggIWltcG9ydGFudDtcXG4gICAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XFxuICAgICAgd2lkdGg6IDEwMCU7IH1cXG4gICAgLm5hdmJhci10b2dnbGVhYmxlLW1kIC5uYXZiYXItdG9nZ2xlciB7XFxuICAgICAgZGlzcGxheTogbm9uZTsgfSB9XFxuQG1lZGlhIChtYXgtd2lkdGg6IDExOTlweCkge1xcbiAgLm5hdmJhci10b2dnbGVhYmxlLWxnIC5uYXZiYXItbmF2IC5kcm9wZG93bi1tZW51IHtcXG4gICAgcG9zaXRpb246IHN0YXRpYztcXG4gICAgZmxvYXQ6IG5vbmU7IH1cXG4gIC5uYXZiYXItdG9nZ2xlYWJsZS1sZyA+IC5jb250YWluZXIge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xcbiAgICBwYWRkaW5nLWxlZnQ6IDA7IH0gfVxcbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcXG4gIC5uYXZiYXItdG9nZ2xlYWJsZS1sZyB7XFxuICAgIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDtcXG4gICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XFxuICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdztcXG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xcbiAgICAtbXMtZmxleC13cmFwOiBub3dyYXA7XFxuICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcXG4gICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcXG4gICAgICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XFxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxcbiAgICAubmF2YmFyLXRvZ2dsZWFibGUtbGcgLm5hdmJhci1uYXYge1xcbiAgICAgIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDtcXG4gICAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcXG4gICAgICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3c7XFxuICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OyB9XFxuICAgICAgLm5hdmJhci10b2dnbGVhYmxlLWxnIC5uYXZiYXItbmF2IC5uYXYtbGluayB7XFxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAuNXJlbTtcXG4gICAgICAgIHBhZGRpbmctbGVmdDogLjVyZW07IH1cXG4gICAgLm5hdmJhci10b2dnbGVhYmxlLWxnID4gLmNvbnRhaW5lciB7XFxuICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICAgICAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICAgICAgZGlzcGxheTogZmxleDtcXG4gICAgICAtbXMtZmxleC13cmFwOiBub3dyYXA7XFxuICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xcbiAgICAgIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XFxuICAgICAgICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XFxuICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XFxuICAgIC5uYXZiYXItdG9nZ2xlYWJsZS1sZyAubmF2YmFyLWNvbGxhcHNlIHtcXG4gICAgICBkaXNwbGF5OiAtd2Via2l0LWJveCAhaW1wb3J0YW50O1xcbiAgICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94ICFpbXBvcnRhbnQ7XFxuICAgICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xcbiAgICAgIHdpZHRoOiAxMDAlOyB9XFxuICAgIC5uYXZiYXItdG9nZ2xlYWJsZS1sZyAubmF2YmFyLXRvZ2dsZXIge1xcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxcbi5uYXZiYXItdG9nZ2xlYWJsZS14bCB7XFxuICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7XFxuICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcXG4gICAgICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdztcXG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcXG4gIC1tcy1mbGV4LXdyYXA6IG5vd3JhcDtcXG4gICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcXG4gIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XFxuICAgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcXG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxcbi5uYXZiYXItdG9nZ2xlYWJsZS14bCAubmF2YmFyLW5hdiAuZHJvcGRvd24tbWVudSB7XFxuICAgIHBvc2l0aW9uOiBzdGF0aWM7XFxuICAgIGZsb2F0OiBub25lOyB9XFxuLm5hdmJhci10b2dnbGVhYmxlLXhsID4gLmNvbnRhaW5lciB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDA7XFxuICAgIHBhZGRpbmctbGVmdDogMDsgfVxcbi5uYXZiYXItdG9nZ2xlYWJsZS14bCAubmF2YmFyLW5hdiB7XFxuICAgIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDtcXG4gICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XFxuICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdztcXG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OyB9XFxuLm5hdmJhci10b2dnbGVhYmxlLXhsIC5uYXZiYXItbmF2IC5uYXYtbGluayB7XFxuICAgICAgcGFkZGluZy1yaWdodDogLjVyZW07XFxuICAgICAgcGFkZGluZy1sZWZ0OiAuNXJlbTsgfVxcbi5uYXZiYXItdG9nZ2xlYWJsZS14bCA+IC5jb250YWluZXIge1xcbiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gICAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIC1tcy1mbGV4LXdyYXA6IG5vd3JhcDtcXG4gICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xcbiAgICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xcbiAgICAgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XFxuLm5hdmJhci10b2dnbGVhYmxlLXhsIC5uYXZiYXItY29sbGFwc2Uge1xcbiAgICBkaXNwbGF5OiAtd2Via2l0LWJveCAhaW1wb3J0YW50O1xcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveCAhaW1wb3J0YW50O1xcbiAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XFxuICAgIHdpZHRoOiAxMDAlOyB9XFxuLm5hdmJhci10b2dnbGVhYmxlLXhsIC5uYXZiYXItdG9nZ2xlciB7XFxuICAgIGRpc3BsYXk6IG5vbmU7IH1cXG4ubmF2YmFyLWxpZ2h0IC5uYXZiYXItYnJhbmQsIC5uYXZiYXItbGlnaHQgLm5hdmJhci10b2dnbGVyIHtcXG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOSk7IH1cXG4ubmF2YmFyLWxpZ2h0IC5uYXZiYXItYnJhbmQ6Zm9jdXMsIC5uYXZiYXItbGlnaHQgLm5hdmJhci1icmFuZDpob3ZlciwgLm5hdmJhci1saWdodCAubmF2YmFyLXRvZ2dsZXI6Zm9jdXMsIC5uYXZiYXItbGlnaHQgLm5hdmJhci10b2dnbGVyOmhvdmVyIHtcXG4gICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45KTsgfVxcbi5uYXZiYXItbGlnaHQgLm5hdmJhci1uYXYgLm5hdi1saW5rIHtcXG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNSk7IH1cXG4ubmF2YmFyLWxpZ2h0IC5uYXZiYXItbmF2IC5uYXYtbGluazpmb2N1cywgLm5hdmJhci1saWdodCAubmF2YmFyLW5hdiAubmF2LWxpbms6aG92ZXIge1xcbiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjcpOyB9XFxuLm5hdmJhci1saWdodCAubmF2YmFyLW5hdiAubmF2LWxpbmsuZGlzYWJsZWQge1xcbiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjMpOyB9XFxuLm5hdmJhci1saWdodCAubmF2YmFyLW5hdiAub3BlbiA+IC5uYXYtbGluaywgLm5hdmJhci1saWdodCAubmF2YmFyLW5hdiAuYWN0aXZlID4gLm5hdi1saW5rLCAubmF2YmFyLWxpZ2h0IC5uYXZiYXItbmF2IC5uYXYtbGluay5vcGVuLCAubmF2YmFyLWxpZ2h0IC5uYXZiYXItbmF2IC5uYXYtbGluay5hY3RpdmUge1xcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45KTsgfVxcbi5uYXZiYXItbGlnaHQgLm5hdmJhci10b2dnbGVyIHtcXG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEpOyB9XFxuLm5hdmJhci1saWdodCAubmF2YmFyLXRvZ2dsZXItaWNvbiB7XFxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXFxcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0ZjgsJTNDc3ZnIHZpZXdCb3g9JzAgMCAzMiAzMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyUzRSUzQ3BhdGggc3Ryb2tlPSdyZ2JhKDAsIDAsIDAsIDAuNSknIHN0cm9rZS13aWR0aD0nMicgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbWl0ZXJsaW1pdD0nMTAnIGQ9J000IDhoMjRNNCAxNmgyNE00IDI0aDI0Jy8lM0UlM0Mvc3ZnJTNFXFxcIik7IH1cXG4ubmF2YmFyLWxpZ2h0IC5uYXZiYXItdGV4dCB7XFxuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjUpOyB9XFxuLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItYnJhbmQsIC5uYXZiYXItaW52ZXJzZSAubmF2YmFyLXRvZ2dsZXIge1xcbiAgY29sb3I6IHdoaXRlOyB9XFxuLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItYnJhbmQ6Zm9jdXMsIC5uYXZiYXItaW52ZXJzZSAubmF2YmFyLWJyYW5kOmhvdmVyLCAubmF2YmFyLWludmVyc2UgLm5hdmJhci10b2dnbGVyOmZvY3VzLCAubmF2YmFyLWludmVyc2UgLm5hdmJhci10b2dnbGVyOmhvdmVyIHtcXG4gICAgY29sb3I6IHdoaXRlOyB9XFxuLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2IC5uYXYtbGluayB7XFxuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpOyB9XFxuLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2IC5uYXYtbGluazpmb2N1cywgLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2IC5uYXYtbGluazpob3ZlciB7XFxuICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNzUpOyB9XFxuLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2IC5uYXYtbGluay5kaXNhYmxlZCB7XFxuICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjUpOyB9XFxuLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2IC5vcGVuID4gLm5hdi1saW5rLCAubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXYgLmFjdGl2ZSA+IC5uYXYtbGluaywgLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2IC5uYXYtbGluay5vcGVuLCAubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXYgLm5hdi1saW5rLmFjdGl2ZSB7XFxuICBjb2xvcjogd2hpdGU7IH1cXG4ubmF2YmFyLWludmVyc2UgLm5hdmJhci10b2dnbGVyIHtcXG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpOyB9XFxuLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItdG9nZ2xlci1pY29uIHtcXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcXFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmOCwlM0Nzdmcgdmlld0JveD0nMCAwIDMyIDMyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnJTNFJTNDcGF0aCBzdHJva2U9J3JnYmEoMjU1LCAyNTUsIDI1NSwgMC41KScgc3Ryb2tlLXdpZHRoPScyJyBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS1taXRlcmxpbWl0PScxMCcgZD0nTTQgOGgyNE00IDE2aDI0TTQgMjRoMjQnLyUzRSUzQy9zdmclM0VcXFwiKTsgfVxcbi5uYXZiYXItaW52ZXJzZSAubmF2YmFyLXRleHQge1xcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTsgfVxcbi5jYXJkIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcXG4gIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsO1xcbiAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcXG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xMjUpO1xcbiAgYm9yZGVyLXJhZGl1czogMC4yNXJlbTsgfVxcbi5jYXJkLWJsb2NrIHtcXG4gIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAgICAgLW1zLWZsZXg6IDEgMSBhdXRvO1xcbiAgICAgICAgICBmbGV4OiAxIDEgYXV0bztcXG4gIHBhZGRpbmc6IDEuMjVyZW07IH1cXG4uY2FyZC10aXRsZSB7XFxuICBtYXJnaW4tYm90dG9tOiAwLjc1cmVtOyB9XFxuLmNhcmQtc3VidGl0bGUge1xcbiAgbWFyZ2luLXRvcDogLTAuMzc1cmVtO1xcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxcbi5jYXJkLXRleHQ6bGFzdC1jaGlsZCB7XFxuICBtYXJnaW4tYm90dG9tOiAwOyB9XFxuLmNhcmQtbGluazpob3ZlciB7XFxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cXG4uY2FyZC1saW5rICsgLmNhcmQtbGluayB7XFxuICBtYXJnaW4tbGVmdDogMS4yNXJlbTsgfVxcbi5jYXJkID4gLmxpc3QtZ3JvdXA6Zmlyc3QtY2hpbGQgLmxpc3QtZ3JvdXAtaXRlbTpmaXJzdC1jaGlsZCB7XFxuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMC4yNXJlbTtcXG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDAuMjVyZW07IH1cXG4uY2FyZCA+IC5saXN0LWdyb3VwOmxhc3QtY2hpbGQgLmxpc3QtZ3JvdXAtaXRlbTpsYXN0LWNoaWxkIHtcXG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwLjI1cmVtO1xcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMC4yNXJlbTsgfVxcbi5jYXJkLWhlYWRlciB7XFxuICBwYWRkaW5nOiAwLjc1cmVtIDEuMjVyZW07XFxuICBtYXJnaW4tYm90dG9tOiAwO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmOTtcXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMTI1KTsgfVxcbi5jYXJkLWhlYWRlcjpmaXJzdC1jaGlsZCB7XFxuICAgIGJvcmRlci1yYWRpdXM6IGNhbGMoMC4yNXJlbSAtIDFweCkgY2FsYygwLjI1cmVtIC0gMXB4KSAwIDA7IH1cXG4uY2FyZC1mb290ZXIge1xcbiAgcGFkZGluZzogMC43NXJlbSAxLjI1cmVtO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmOTtcXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMTI1KTsgfVxcbi5jYXJkLWZvb3RlcjpsYXN0LWNoaWxkIHtcXG4gICAgYm9yZGVyLXJhZGl1czogMCAwIGNhbGMoMC4yNXJlbSAtIDFweCkgY2FsYygwLjI1cmVtIC0gMXB4KTsgfVxcbi5jYXJkLWhlYWRlci10YWJzIHtcXG4gIG1hcmdpbi1yaWdodDogLTAuNjI1cmVtO1xcbiAgbWFyZ2luLWJvdHRvbTogLTAuNzVyZW07XFxuICBtYXJnaW4tbGVmdDogLTAuNjI1cmVtO1xcbiAgYm9yZGVyLWJvdHRvbTogMDsgfVxcbi5jYXJkLWhlYWRlci1waWxscyB7XFxuICBtYXJnaW4tcmlnaHQ6IC0wLjYyNXJlbTtcXG4gIG1hcmdpbi1sZWZ0OiAtMC42MjVyZW07IH1cXG4uY2FyZC1wcmltYXJ5IHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICMwMjc1ZDg7XFxuICBib3JkZXItY29sb3I6ICMwMjc1ZDg7IH1cXG4uY2FyZC1wcmltYXJ5IC5jYXJkLWhlYWRlciwgLmNhcmQtcHJpbWFyeSAuY2FyZC1mb290ZXIge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxcbi5jYXJkLXN1Y2Nlc3Mge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzVjYjg1YztcXG4gIGJvcmRlci1jb2xvcjogIzVjYjg1YzsgfVxcbi5jYXJkLXN1Y2Nlc3MgLmNhcmQtaGVhZGVyLCAuY2FyZC1zdWNjZXNzIC5jYXJkLWZvb3RlciB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XFxuLmNhcmQtaW5mbyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWJjMGRlO1xcbiAgYm9yZGVyLWNvbG9yOiAjNWJjMGRlOyB9XFxuLmNhcmQtaW5mbyAuY2FyZC1oZWFkZXIsIC5jYXJkLWluZm8gLmNhcmQtZm9vdGVyIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cXG4uY2FyZC13YXJuaW5nIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmMGFkNGU7XFxuICBib3JkZXItY29sb3I6ICNmMGFkNGU7IH1cXG4uY2FyZC13YXJuaW5nIC5jYXJkLWhlYWRlciwgLmNhcmQtd2FybmluZyAuY2FyZC1mb290ZXIge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxcbi5jYXJkLWRhbmdlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDk1MzRmO1xcbiAgYm9yZGVyLWNvbG9yOiAjZDk1MzRmOyB9XFxuLmNhcmQtZGFuZ2VyIC5jYXJkLWhlYWRlciwgLmNhcmQtZGFuZ2VyIC5jYXJkLWZvb3RlciB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XFxuLmNhcmQtb3V0bGluZS1wcmltYXJ5IHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgYm9yZGVyLWNvbG9yOiAjMDI3NWQ4OyB9XFxuLmNhcmQtb3V0bGluZS1zZWNvbmRhcnkge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICBib3JkZXItY29sb3I6ICNjY2M7IH1cXG4uY2FyZC1vdXRsaW5lLWluZm8ge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICBib3JkZXItY29sb3I6ICM1YmMwZGU7IH1cXG4uY2FyZC1vdXRsaW5lLXN1Y2Nlc3Mge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICBib3JkZXItY29sb3I6ICM1Y2I4NWM7IH1cXG4uY2FyZC1vdXRsaW5lLXdhcm5pbmcge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICBib3JkZXItY29sb3I6ICNmMGFkNGU7IH1cXG4uY2FyZC1vdXRsaW5lLWRhbmdlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcXG4gIGJvcmRlci1jb2xvcjogI2Q5NTM0ZjsgfVxcbi5jYXJkLWludmVyc2Uge1xcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42NSk7IH1cXG4uY2FyZC1pbnZlcnNlIC5jYXJkLWhlYWRlciwgLmNhcmQtaW52ZXJzZSAuY2FyZC1mb290ZXIge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcXG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7IH1cXG4uY2FyZC1pbnZlcnNlIC5jYXJkLWhlYWRlciwgLmNhcmQtaW52ZXJzZSAuY2FyZC1mb290ZXIsIC5jYXJkLWludmVyc2UgLmNhcmQtdGl0bGUsIC5jYXJkLWludmVyc2UgLmNhcmQtYmxvY2txdW90ZSB7XFxuICAgIGNvbG9yOiAjZmZmOyB9XFxuLmNhcmQtaW52ZXJzZSAuY2FyZC1saW5rLCAuY2FyZC1pbnZlcnNlIC5jYXJkLXRleHQsIC5jYXJkLWludmVyc2UgLmNhcmQtc3VidGl0bGUsIC5jYXJkLWludmVyc2UgLmNhcmQtYmxvY2txdW90ZSAuYmxvY2txdW90ZS1mb290ZXIge1xcbiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjY1KTsgfVxcbi5jYXJkLWludmVyc2UgLmNhcmQtbGluazpmb2N1cywgLmNhcmQtaW52ZXJzZSAuY2FyZC1saW5rOmhvdmVyIHtcXG4gICAgY29sb3I6ICNmZmY7IH1cXG4uY2FyZC1ibG9ja3F1b3RlIHtcXG4gIHBhZGRpbmc6IDA7XFxuICBtYXJnaW4tYm90dG9tOiAwO1xcbiAgYm9yZGVyLWxlZnQ6IDA7IH1cXG4uY2FyZC1pbWcge1xcbiAgYm9yZGVyLXJhZGl1czogY2FsYygwLjI1cmVtIC0gMXB4KTsgfVxcbi5jYXJkLWltZy1vdmVybGF5IHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDtcXG4gIHJpZ2h0OiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgbGVmdDogMDtcXG4gIHBhZGRpbmc6IDEuMjVyZW07IH1cXG4uY2FyZC1pbWctdG9wIHtcXG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiBjYWxjKDAuMjVyZW0gLSAxcHgpO1xcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogY2FsYygwLjI1cmVtIC0gMXB4KTsgfVxcbi5jYXJkLWltZy1ib3R0b20ge1xcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IGNhbGMoMC4yNXJlbSAtIDFweCk7XFxuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiBjYWxjKDAuMjVyZW0gLSAxcHgpOyB9XFxuQG1lZGlhIChtaW4td2lkdGg6IDU3NnB4KSB7XFxuICAuY2FyZC1kZWNrIHtcXG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7XFxuICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsO1xcbiAgICAgICAgLW1zLWZsZXgtZmxvdzogcm93IHdyYXA7XFxuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDsgfVxcbiAgICAuY2FyZC1kZWNrIC5jYXJkIHtcXG4gICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gICAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gICAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICAgIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAgICAgICAgIC1tcy1mbGV4OiAxIDAgMHB4O1xcbiAgICAgICAgICAgICAgZmxleDogMSAwIDA7XFxuICAgICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcXG4gICAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcXG4gICAgICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XFxuICAgICAgLmNhcmQtZGVjayAuY2FyZDpub3QoOmZpcnN0LWNoaWxkKSB7XFxuICAgICAgICBtYXJnaW4tbGVmdDogMTVweDsgfVxcbiAgICAgIC5jYXJkLWRlY2sgLmNhcmQ6bm90KDpsYXN0LWNoaWxkKSB7XFxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDE1cHg7IH0gfVxcbkBtZWRpYSAobWluLXdpZHRoOiA1NzZweCkge1xcbiAgLmNhcmQtZ3JvdXAge1xcbiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gICAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDtcXG4gICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XFxuICAgICAgICAtbXMtZmxleC1mbG93OiByb3cgd3JhcDtcXG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwOyB9XFxuICAgIC5jYXJkLWdyb3VwIC5jYXJkIHtcXG4gICAgICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgICAgICAgICAtbXMtZmxleDogMSAwIDBweDtcXG4gICAgICAgICAgICAgIGZsZXg6IDEgMCAwOyB9XFxuICAgICAgLmNhcmQtZ3JvdXAgLmNhcmQgKyAuY2FyZCB7XFxuICAgICAgICBtYXJnaW4tbGVmdDogMDtcXG4gICAgICAgIGJvcmRlci1sZWZ0OiAwOyB9XFxuICAgICAgLmNhcmQtZ3JvdXAgLmNhcmQ6Zmlyc3QtY2hpbGQge1xcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XFxuICAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDsgfVxcbiAgICAgICAgLmNhcmQtZ3JvdXAgLmNhcmQ6Zmlyc3QtY2hpbGQgLmNhcmQtaW1nLXRvcCB7XFxuICAgICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwOyB9XFxuICAgICAgICAuY2FyZC1ncm91cCAuY2FyZDpmaXJzdC1jaGlsZCAuY2FyZC1pbWctYm90dG9tIHtcXG4gICAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7IH1cXG4gICAgICAuY2FyZC1ncm91cCAuY2FyZDpsYXN0LWNoaWxkIHtcXG4gICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XFxuICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwOyB9XFxuICAgICAgICAuY2FyZC1ncm91cCAuY2FyZDpsYXN0LWNoaWxkIC5jYXJkLWltZy10b3Age1xcbiAgICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwOyB9XFxuICAgICAgICAuY2FyZC1ncm91cCAuY2FyZDpsYXN0LWNoaWxkIC5jYXJkLWltZy1ib3R0b20ge1xcbiAgICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwOyB9XFxuICAgICAgLmNhcmQtZ3JvdXAgLmNhcmQ6bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKSB7XFxuICAgICAgICBib3JkZXItcmFkaXVzOiAwOyB9XFxuICAgICAgICAuY2FyZC1ncm91cCAuY2FyZDpub3QoOmZpcnN0LWNoaWxkKTpub3QoOmxhc3QtY2hpbGQpIC5jYXJkLWltZy10b3AsIC5jYXJkLWdyb3VwIC5jYXJkOm5vdCg6Zmlyc3QtY2hpbGQpOm5vdCg6bGFzdC1jaGlsZCkgLmNhcmQtaW1nLWJvdHRvbSB7XFxuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7IH0gfVxcbkBtZWRpYSAobWluLXdpZHRoOiA1NzZweCkge1xcbiAgLmNhcmQtY29sdW1ucyB7XFxuICAgIC13ZWJraXQtY29sdW1uLWNvdW50OiAzO1xcbiAgICAgICAgICAgIGNvbHVtbi1jb3VudDogMztcXG4gICAgLXdlYmtpdC1jb2x1bW4tZ2FwOiAxLjI1cmVtO1xcbiAgICAgICAgICAgIGNvbHVtbi1nYXA6IDEuMjVyZW07IH1cXG4gICAgLmNhcmQtY29sdW1ucyAuY2FyZCB7XFxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICAgIHdpZHRoOiAxMDAlO1xcbiAgICAgIG1hcmdpbi1ib3R0b206IDAuNzVyZW07IH0gfVxcbi5icmVhZGNydW1iIHtcXG4gIHBhZGRpbmc6IDAuNzVyZW0gMXJlbTtcXG4gIG1hcmdpbi1ib3R0b206IDFyZW07XFxuICBsaXN0LXN0eWxlOiBub25lO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VjZWVlZjtcXG4gIGJvcmRlci1yYWRpdXM6IDAuMjVyZW07IH1cXG4uYnJlYWRjcnVtYjo6YWZ0ZXIge1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgY29udGVudDogXFxcIlxcXCI7XFxuICAgIGNsZWFyOiBib3RoOyB9XFxuLmJyZWFkY3J1bWItaXRlbSB7XFxuICBmbG9hdDogbGVmdDsgfVxcbi5icmVhZGNydW1iLWl0ZW0gKyAuYnJlYWRjcnVtYi1pdGVtOjpiZWZvcmUge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcXG4gICAgcGFkZGluZy1sZWZ0OiAwLjVyZW07XFxuICAgIGNvbG9yOiAjNjM2YzcyO1xcbiAgICBjb250ZW50OiBcXFwiL1xcXCI7IH1cXG4uYnJlYWRjcnVtYi1pdGVtICsgLmJyZWFkY3J1bWItaXRlbTpob3Zlcjo6YmVmb3JlIHtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cXG4uYnJlYWRjcnVtYi1pdGVtICsgLmJyZWFkY3J1bWItaXRlbTpob3Zlcjo6YmVmb3JlIHtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XFxuLmJyZWFkY3J1bWItaXRlbS5hY3RpdmUge1xcbiAgICBjb2xvcjogIzYzNmM3MjsgfVxcbi5wYWdpbmF0aW9uIHtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgcGFkZGluZy1sZWZ0OiAwO1xcbiAgbGlzdC1zdHlsZTogbm9uZTtcXG4gIGJvcmRlci1yYWRpdXM6IDAuMjVyZW07IH1cXG4ucGFnZS1pdGVtOmZpcnN0LWNoaWxkIC5wYWdlLWxpbmsge1xcbiAgbWFyZ2luLWxlZnQ6IDA7XFxuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwLjI1cmVtO1xcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMC4yNXJlbTsgfVxcbi5wYWdlLWl0ZW06bGFzdC1jaGlsZCAucGFnZS1saW5rIHtcXG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwLjI1cmVtO1xcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDAuMjVyZW07IH1cXG4ucGFnZS1pdGVtLmFjdGl2ZSAucGFnZS1saW5rIHtcXG4gIHotaW5kZXg6IDI7XFxuICBjb2xvcjogI2ZmZjtcXG4gIGJhY2tncm91bmQtY29sb3I6ICMwMjc1ZDg7XFxuICBib3JkZXItY29sb3I6ICMwMjc1ZDg7IH1cXG4ucGFnZS1pdGVtLmRpc2FibGVkIC5wYWdlLWxpbmsge1xcbiAgY29sb3I6ICM2MzZjNzI7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xcbiAgYm9yZGVyLWNvbG9yOiAjZGRkOyB9XFxuLnBhZ2UtbGluayB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBkaXNwbGF5OiBibG9jaztcXG4gIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xcbiAgbWFyZ2luLWxlZnQ6IC0xcHg7XFxuICBsaW5lLWhlaWdodDogMS4yNTtcXG4gIGNvbG9yOiAjMDI3NWQ4O1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcXG4gIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7IH1cXG4ucGFnZS1saW5rOmZvY3VzLCAucGFnZS1saW5rOmhvdmVyIHtcXG4gICAgY29sb3I6ICMwMTRjOGM7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2VjZWVlZjtcXG4gICAgYm9yZGVyLWNvbG9yOiAjZGRkOyB9XFxuLnBhZ2luYXRpb24tbGcgLnBhZ2UtbGluayB7XFxuICBwYWRkaW5nOiAwLjc1cmVtIDEuNXJlbTtcXG4gIGZvbnQtc2l6ZTogMS4yNXJlbTsgfVxcbi5wYWdpbmF0aW9uLWxnIC5wYWdlLWl0ZW06Zmlyc3QtY2hpbGQgLnBhZ2UtbGluayB7XFxuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwLjNyZW07XFxuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwLjNyZW07IH1cXG4ucGFnaW5hdGlvbi1sZyAucGFnZS1pdGVtOmxhc3QtY2hpbGQgLnBhZ2UtbGluayB7XFxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMC4zcmVtO1xcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDAuM3JlbTsgfVxcbi5wYWdpbmF0aW9uLXNtIC5wYWdlLWxpbmsge1xcbiAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XFxuICBmb250LXNpemU6IDAuODc1cmVtOyB9XFxuLnBhZ2luYXRpb24tc20gLnBhZ2UtaXRlbTpmaXJzdC1jaGlsZCAucGFnZS1saW5rIHtcXG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDAuMnJlbTtcXG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDAuMnJlbTsgfVxcbi5wYWdpbmF0aW9uLXNtIC5wYWdlLWl0ZW06bGFzdC1jaGlsZCAucGFnZS1saW5rIHtcXG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwLjJyZW07XFxuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMC4ycmVtOyB9XFxuLmJhZGdlIHtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIHBhZGRpbmc6IDAuMjVlbSAwLjRlbTtcXG4gIGZvbnQtc2l6ZTogNzUlO1xcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XFxuICBsaW5lLWhlaWdodDogMTtcXG4gIGNvbG9yOiAjZmZmO1xcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcXG4gIGJvcmRlci1yYWRpdXM6IDAuMjVyZW07IH1cXG4uYmFkZ2U6ZW1wdHkge1xcbiAgICBkaXNwbGF5OiBub25lOyB9XFxuLmJ0biAuYmFkZ2Uge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgdG9wOiAtMXB4OyB9XFxuYS5iYWRnZTpmb2N1cywgYS5iYWRnZTpob3ZlciB7XFxuICBjb2xvcjogI2ZmZjtcXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcXG4gIGN1cnNvcjogcG9pbnRlcjsgfVxcbi5iYWRnZS1waWxsIHtcXG4gIHBhZGRpbmctcmlnaHQ6IDAuNmVtO1xcbiAgcGFkZGluZy1sZWZ0OiAwLjZlbTtcXG4gIGJvcmRlci1yYWRpdXM6IDEwcmVtOyB9XFxuLmJhZGdlLWRlZmF1bHQge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzYzNmM3MjsgfVxcbi5iYWRnZS1kZWZhdWx0W2hyZWZdOmZvY3VzLCAuYmFkZ2UtZGVmYXVsdFtocmVmXTpob3ZlciB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICM0YjUyNTc7IH1cXG4uYmFkZ2UtcHJpbWFyeSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDI3NWQ4OyB9XFxuLmJhZGdlLXByaW1hcnlbaHJlZl06Zm9jdXMsIC5iYWRnZS1wcmltYXJ5W2hyZWZdOmhvdmVyIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAyNWFhNTsgfVxcbi5iYWRnZS1zdWNjZXNzIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICM1Y2I4NWM7IH1cXG4uYmFkZ2Utc3VjY2Vzc1tocmVmXTpmb2N1cywgLmJhZGdlLXN1Y2Nlc3NbaHJlZl06aG92ZXIge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDQ5ZDQ0OyB9XFxuLmJhZGdlLWluZm8ge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzViYzBkZTsgfVxcbi5iYWRnZS1pbmZvW2hyZWZdOmZvY3VzLCAuYmFkZ2UtaW5mb1tocmVmXTpob3ZlciB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICMzMWIwZDU7IH1cXG4uYmFkZ2Utd2FybmluZyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBhZDRlOyB9XFxuLmJhZGdlLXdhcm5pbmdbaHJlZl06Zm9jdXMsIC5iYWRnZS13YXJuaW5nW2hyZWZdOmhvdmVyIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2VjOTcxZjsgfVxcbi5iYWRnZS1kYW5nZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q5NTM0ZjsgfVxcbi5iYWRnZS1kYW5nZXJbaHJlZl06Zm9jdXMsIC5iYWRnZS1kYW5nZXJbaHJlZl06aG92ZXIge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzkzMDJjOyB9XFxuLmp1bWJvdHJvbiB7XFxuICBwYWRkaW5nOiAycmVtIDFyZW07XFxuICBtYXJnaW4tYm90dG9tOiAycmVtO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VjZWVlZjtcXG4gIGJvcmRlci1yYWRpdXM6IDAuM3JlbTsgfVxcbkBtZWRpYSAobWluLXdpZHRoOiA1NzZweCkge1xcbiAgICAuanVtYm90cm9uIHtcXG4gICAgICBwYWRkaW5nOiA0cmVtIDJyZW07IH0gfVxcbi5qdW1ib3Ryb24taHIge1xcbiAgYm9yZGVyLXRvcC1jb2xvcjogI2QwZDVkODsgfVxcbi5qdW1ib3Ryb24tZmx1aWQge1xcbiAgcGFkZGluZy1yaWdodDogMDtcXG4gIHBhZGRpbmctbGVmdDogMDtcXG4gIGJvcmRlci1yYWRpdXM6IDA7IH1cXG4uYWxlcnQge1xcbiAgcGFkZGluZzogMC43NXJlbSAxLjI1cmVtO1xcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcXG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xcbiAgYm9yZGVyLXJhZGl1czogMC4yNXJlbTsgfVxcbi5hbGVydC1oZWFkaW5nIHtcXG4gIGNvbG9yOiBpbmhlcml0OyB9XFxuLmFsZXJ0LWxpbmsge1xcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cXG4uYWxlcnQtZGlzbWlzc2libGUgLmNsb3NlIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIHRvcDogLTAuNzVyZW07XFxuICByaWdodDogLTEuMjVyZW07XFxuICBwYWRkaW5nOiAwLjc1cmVtIDEuMjVyZW07XFxuICBjb2xvcjogaW5oZXJpdDsgfVxcbi5hbGVydC1zdWNjZXNzIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNkZmYwZDg7XFxuICBib3JkZXItY29sb3I6ICNkMGU5YzY7XFxuICBjb2xvcjogIzNjNzYzZDsgfVxcbi5hbGVydC1zdWNjZXNzIGhyIHtcXG4gICAgYm9yZGVyLXRvcC1jb2xvcjogI2MxZTJiMzsgfVxcbi5hbGVydC1zdWNjZXNzIC5hbGVydC1saW5rIHtcXG4gICAgY29sb3I6ICMyYjU0MmM7IH1cXG4uYWxlcnQtaW5mbyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDllZGY3O1xcbiAgYm9yZGVyLWNvbG9yOiAjYmNkZmYxO1xcbiAgY29sb3I6ICMzMTcwOGY7IH1cXG4uYWxlcnQtaW5mbyBociB7XFxuICAgIGJvcmRlci10b3AtY29sb3I6ICNhNmQ1ZWM7IH1cXG4uYWxlcnQtaW5mbyAuYWxlcnQtbGluayB7XFxuICAgIGNvbG9yOiAjMjQ1MjY5OyB9XFxuLmFsZXJ0LXdhcm5pbmcge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZjZjhlMztcXG4gIGJvcmRlci1jb2xvcjogI2ZhZjJjYztcXG4gIGNvbG9yOiAjOGE2ZDNiOyB9XFxuLmFsZXJ0LXdhcm5pbmcgaHIge1xcbiAgICBib3JkZXItdG9wLWNvbG9yOiAjZjdlY2I1OyB9XFxuLmFsZXJ0LXdhcm5pbmcgLmFsZXJ0LWxpbmsge1xcbiAgICBjb2xvcjogIzY2NTEyYzsgfVxcbi5hbGVydC1kYW5nZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YyZGVkZTtcXG4gIGJvcmRlci1jb2xvcjogI2ViY2NjYztcXG4gIGNvbG9yOiAjYTk0NDQyOyB9XFxuLmFsZXJ0LWRhbmdlciBociB7XFxuICAgIGJvcmRlci10b3AtY29sb3I6ICNlNGI5Yjk7IH1cXG4uYWxlcnQtZGFuZ2VyIC5hbGVydC1saW5rIHtcXG4gICAgY29sb3I6ICM4NDM1MzQ7IH1cXG5ALXdlYmtpdC1rZXlmcmFtZXMgcHJvZ3Jlc3MtYmFyLXN0cmlwZXMge1xcbiAgZnJvbSB7XFxuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDFyZW0gMDsgfVxcbiAgdG8ge1xcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDA7IH0gfVxcbkBrZXlmcmFtZXMgcHJvZ3Jlc3MtYmFyLXN0cmlwZXMge1xcbiAgZnJvbSB7XFxuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDFyZW0gMDsgfVxcbiAgdG8ge1xcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDA7IH0gfVxcbi5wcm9ncmVzcyB7XFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgZGlzcGxheTogZmxleDtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICBmb250LXNpemU6IDAuNzVyZW07XFxuICBsaW5lLWhlaWdodDogMXJlbTtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNlY2VlZWY7XFxuICBib3JkZXItcmFkaXVzOiAwLjI1cmVtOyB9XFxuLnByb2dyZXNzLWJhciB7XFxuICBoZWlnaHQ6IDFyZW07XFxuICBjb2xvcjogI2ZmZjtcXG4gIGJhY2tncm91bmQtY29sb3I6ICMwMjc1ZDg7IH1cXG4ucHJvZ3Jlc3MtYmFyLXN0cmlwZWQge1xcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCk7XFxuICBiYWNrZ3JvdW5kLXNpemU6IDFyZW0gMXJlbTsgfVxcbi5wcm9ncmVzcy1iYXItYW5pbWF0ZWQge1xcbiAgLXdlYmtpdC1hbmltYXRpb246IHByb2dyZXNzLWJhci1zdHJpcGVzIDFzIGxpbmVhciBpbmZpbml0ZTtcXG4gICAgICAgICAgYW5pbWF0aW9uOiBwcm9ncmVzcy1iYXItc3RyaXBlcyAxcyBsaW5lYXIgaW5maW5pdGU7IH1cXG4ubWVkaWEge1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICAtd2Via2l0LWJveC1hbGlnbjogc3RhcnQ7XFxuICAgICAgLW1zLWZsZXgtYWxpZ246IHN0YXJ0O1xcbiAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsgfVxcbi5tZWRpYS1ib2R5IHtcXG4gIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAgICAgLW1zLWZsZXg6IDE7XFxuICAgICAgICAgIGZsZXg6IDE7IH1cXG4ubGlzdC1ncm91cCB7XFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgZGlzcGxheTogZmxleDtcXG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XFxuICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcXG4gICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gIHBhZGRpbmctbGVmdDogMDtcXG4gIG1hcmdpbi1ib3R0b206IDA7IH1cXG4ubGlzdC1ncm91cC1pdGVtLWFjdGlvbiB7XFxuICB3aWR0aDogMTAwJTtcXG4gIGNvbG9yOiAjNDY0YTRjO1xcbiAgdGV4dC1hbGlnbjogaW5oZXJpdDsgfVxcbi5saXN0LWdyb3VwLWl0ZW0tYWN0aW9uIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyB7XFxuICAgIGNvbG9yOiAjMjkyYjJjOyB9XFxuLmxpc3QtZ3JvdXAtaXRlbS1hY3Rpb246Zm9jdXMsIC5saXN0LWdyb3VwLWl0ZW0tYWN0aW9uOmhvdmVyIHtcXG4gICAgY29sb3I6ICM0NjRhNGM7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmOTsgfVxcbi5saXN0LWdyb3VwLWl0ZW0tYWN0aW9uOmFjdGl2ZSB7XFxuICAgIGNvbG9yOiAjMjkyYjJjO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWNlZWVmOyB9XFxuLmxpc3QtZ3JvdXAtaXRlbSB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgZGlzcGxheTogZmxleDtcXG4gIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDtcXG4gIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsO1xcbiAgICAgIC1tcy1mbGV4LWZsb3c6IHJvdyB3cmFwO1xcbiAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xcbiAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcXG4gICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgcGFkZGluZzogMC43NXJlbSAxLjI1cmVtO1xcbiAgbWFyZ2luLWJvdHRvbTogLTFweDtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XFxuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMTI1KTsgfVxcbi5saXN0LWdyb3VwLWl0ZW06Zmlyc3QtY2hpbGQge1xcbiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMC4yNXJlbTtcXG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMC4yNXJlbTsgfVxcbi5saXN0LWdyb3VwLWl0ZW06bGFzdC1jaGlsZCB7XFxuICAgIG1hcmdpbi1ib3R0b206IDA7XFxuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwLjI1cmVtO1xcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwLjI1cmVtOyB9XFxuLmxpc3QtZ3JvdXAtaXRlbTpmb2N1cywgLmxpc3QtZ3JvdXAtaXRlbTpob3ZlciB7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxcbi5saXN0LWdyb3VwLWl0ZW0uZGlzYWJsZWQsIC5saXN0LWdyb3VwLWl0ZW06ZGlzYWJsZWQge1xcbiAgICBjb2xvcjogIzYzNmM3MjtcXG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxcbi5saXN0LWdyb3VwLWl0ZW0uZGlzYWJsZWQgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nLCAubGlzdC1ncm91cC1pdGVtOmRpc2FibGVkIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyB7XFxuICAgICAgY29sb3I6IGluaGVyaXQ7IH1cXG4ubGlzdC1ncm91cC1pdGVtLmRpc2FibGVkIC5saXN0LWdyb3VwLWl0ZW0tdGV4dCwgLmxpc3QtZ3JvdXAtaXRlbTpkaXNhYmxlZCAubGlzdC1ncm91cC1pdGVtLXRleHQge1xcbiAgICAgIGNvbG9yOiAjNjM2YzcyOyB9XFxuLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmUge1xcbiAgICB6LWluZGV4OiAyO1xcbiAgICBjb2xvcjogI2ZmZjtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAyNzVkODtcXG4gICAgYm9yZGVyLWNvbG9yOiAjMDI3NWQ4OyB9XFxuLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmUgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nLCAubGlzdC1ncm91cC1pdGVtLmFjdGl2ZSAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcgPiBzbWFsbCwgLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmUgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nID4gLnNtYWxsIHtcXG4gICAgICBjb2xvcjogaW5oZXJpdDsgfVxcbi5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlIC5saXN0LWdyb3VwLWl0ZW0tdGV4dCB7XFxuICAgICAgY29sb3I6ICNkYWVlZmY7IH1cXG4ubGlzdC1ncm91cC1mbHVzaCAubGlzdC1ncm91cC1pdGVtIHtcXG4gIGJvcmRlci1yaWdodDogMDtcXG4gIGJvcmRlci1sZWZ0OiAwO1xcbiAgYm9yZGVyLXJhZGl1czogMDsgfVxcbi5saXN0LWdyb3VwLWZsdXNoOmZpcnN0LWNoaWxkIC5saXN0LWdyb3VwLWl0ZW06Zmlyc3QtY2hpbGQge1xcbiAgYm9yZGVyLXRvcDogMDsgfVxcbi5saXN0LWdyb3VwLWZsdXNoOmxhc3QtY2hpbGQgLmxpc3QtZ3JvdXAtaXRlbTpsYXN0LWNoaWxkIHtcXG4gIGJvcmRlci1ib3R0b206IDA7IH1cXG4ubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3Mge1xcbiAgY29sb3I6ICMzYzc2M2Q7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGZmMGQ4OyB9XFxuYS5saXN0LWdyb3VwLWl0ZW0tc3VjY2VzcywgYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1zdWNjZXNzIHtcXG4gIGNvbG9yOiAjM2M3NjNkOyB9XFxuYS5saXN0LWdyb3VwLWl0ZW0tc3VjY2VzcyAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcsIGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0tc3VjY2VzcyAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcge1xcbiAgICBjb2xvcjogaW5oZXJpdDsgfVxcbmEubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3M6Zm9jdXMsIGEubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3M6aG92ZXIsIGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0tc3VjY2Vzczpmb2N1cywgYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1zdWNjZXNzOmhvdmVyIHtcXG4gICAgY29sb3I6ICMzYzc2M2Q7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNkMGU5YzY7IH1cXG5hLmxpc3QtZ3JvdXAtaXRlbS1zdWNjZXNzLmFjdGl2ZSwgYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1zdWNjZXNzLmFjdGl2ZSB7XFxuICAgIGNvbG9yOiAjZmZmO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2M3NjNkO1xcbiAgICBib3JkZXItY29sb3I6ICMzYzc2M2Q7IH1cXG4ubGlzdC1ncm91cC1pdGVtLWluZm8ge1xcbiAgY29sb3I6ICMzMTcwOGY7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDllZGY3OyB9XFxuYS5saXN0LWdyb3VwLWl0ZW0taW5mbywgYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1pbmZvIHtcXG4gIGNvbG9yOiAjMzE3MDhmOyB9XFxuYS5saXN0LWdyb3VwLWl0ZW0taW5mbyAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcsIGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0taW5mbyAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcge1xcbiAgICBjb2xvcjogaW5oZXJpdDsgfVxcbmEubGlzdC1ncm91cC1pdGVtLWluZm86Zm9jdXMsIGEubGlzdC1ncm91cC1pdGVtLWluZm86aG92ZXIsIGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0taW5mbzpmb2N1cywgYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1pbmZvOmhvdmVyIHtcXG4gICAgY29sb3I6ICMzMTcwOGY7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNjNGUzZjM7IH1cXG5hLmxpc3QtZ3JvdXAtaXRlbS1pbmZvLmFjdGl2ZSwgYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1pbmZvLmFjdGl2ZSB7XFxuICAgIGNvbG9yOiAjZmZmO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzE3MDhmO1xcbiAgICBib3JkZXItY29sb3I6ICMzMTcwOGY7IH1cXG4ubGlzdC1ncm91cC1pdGVtLXdhcm5pbmcge1xcbiAgY29sb3I6ICM4YTZkM2I7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmNmOGUzOyB9XFxuYS5saXN0LWdyb3VwLWl0ZW0td2FybmluZywgYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5nIHtcXG4gIGNvbG9yOiAjOGE2ZDNiOyB9XFxuYS5saXN0LWdyb3VwLWl0ZW0td2FybmluZyAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcsIGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0td2FybmluZyAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcge1xcbiAgICBjb2xvcjogaW5oZXJpdDsgfVxcbmEubGlzdC1ncm91cC1pdGVtLXdhcm5pbmc6Zm9jdXMsIGEubGlzdC1ncm91cC1pdGVtLXdhcm5pbmc6aG92ZXIsIGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0td2FybmluZzpmb2N1cywgYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5nOmhvdmVyIHtcXG4gICAgY29sb3I6ICM4YTZkM2I7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmYWYyY2M7IH1cXG5hLmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5nLmFjdGl2ZSwgYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5nLmFjdGl2ZSB7XFxuICAgIGNvbG9yOiAjZmZmO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGE2ZDNiO1xcbiAgICBib3JkZXItY29sb3I6ICM4YTZkM2I7IH1cXG4ubGlzdC1ncm91cC1pdGVtLWRhbmdlciB7XFxuICBjb2xvcjogI2E5NDQ0MjtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmMmRlZGU7IH1cXG5hLmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXIsIGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0tZGFuZ2VyIHtcXG4gIGNvbG9yOiAjYTk0NDQyOyB9XFxuYS5saXN0LWdyb3VwLWl0ZW0tZGFuZ2VyIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZywgYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXIgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nIHtcXG4gICAgY29sb3I6IGluaGVyaXQ7IH1cXG5hLmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXI6Zm9jdXMsIGEubGlzdC1ncm91cC1pdGVtLWRhbmdlcjpob3ZlciwgYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXI6Zm9jdXMsIGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0tZGFuZ2VyOmhvdmVyIHtcXG4gICAgY29sb3I6ICNhOTQ0NDI7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNlYmNjY2M7IH1cXG5hLmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXIuYWN0aXZlLCBidXR0b24ubGlzdC1ncm91cC1pdGVtLWRhbmdlci5hY3RpdmUge1xcbiAgICBjb2xvcjogI2ZmZjtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2E5NDQ0MjtcXG4gICAgYm9yZGVyLWNvbG9yOiAjYTk0NDQyOyB9XFxuLmVtYmVkLXJlc3BvbnNpdmUge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICB3aWR0aDogMTAwJTtcXG4gIHBhZGRpbmc6IDA7XFxuICBvdmVyZmxvdzogaGlkZGVuOyB9XFxuLmVtYmVkLXJlc3BvbnNpdmU6OmJlZm9yZSB7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICBjb250ZW50OiBcXFwiXFxcIjsgfVxcbi5lbWJlZC1yZXNwb25zaXZlIC5lbWJlZC1yZXNwb25zaXZlLWl0ZW0sIC5lbWJlZC1yZXNwb25zaXZlIGlmcmFtZSwgLmVtYmVkLXJlc3BvbnNpdmUgZW1iZWQsIC5lbWJlZC1yZXNwb25zaXZlIG9iamVjdCwgLmVtYmVkLXJlc3BvbnNpdmUgdmlkZW8ge1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHRvcDogMDtcXG4gICAgYm90dG9tOiAwO1xcbiAgICBsZWZ0OiAwO1xcbiAgICB3aWR0aDogMTAwJTtcXG4gICAgaGVpZ2h0OiAxMDAlO1xcbiAgICBib3JkZXI6IDA7IH1cXG4uZW1iZWQtcmVzcG9uc2l2ZS0yMWJ5OTo6YmVmb3JlIHtcXG4gIHBhZGRpbmctdG9wOiA0Mi44NTcxNCU7IH1cXG4uZW1iZWQtcmVzcG9uc2l2ZS0xNmJ5OTo6YmVmb3JlIHtcXG4gIHBhZGRpbmctdG9wOiA1Ni4yNSU7IH1cXG4uZW1iZWQtcmVzcG9uc2l2ZS00YnkzOjpiZWZvcmUge1xcbiAgcGFkZGluZy10b3A6IDc1JTsgfVxcbi5lbWJlZC1yZXNwb25zaXZlLTFieTE6OmJlZm9yZSB7XFxuICBwYWRkaW5nLXRvcDogMTAwJTsgfVxcbi5jbG9zZSB7XFxuICBmbG9hdDogcmlnaHQ7XFxuICBmb250LXNpemU6IDEuNXJlbTtcXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xcbiAgbGluZS1oZWlnaHQ6IDE7XFxuICBjb2xvcjogIzAwMDtcXG4gIHRleHQtc2hhZG93OiAwIDFweCAwICNmZmY7XFxuICBvcGFjaXR5OiAuNTsgfVxcbi5jbG9zZTpmb2N1cywgLmNsb3NlOmhvdmVyIHtcXG4gICAgY29sb3I6ICMwMDA7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcXG4gICAgY3Vyc29yOiBwb2ludGVyO1xcbiAgICBvcGFjaXR5OiAuNzU7IH1cXG5idXR0b24uY2xvc2Uge1xcbiAgcGFkZGluZzogMDtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbiAgYm9yZGVyOiAwO1xcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyB9XFxuLm1vZGFsLW9wZW4ge1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxcbi5tb2RhbCB7XFxuICBwb3NpdGlvbjogZml4ZWQ7XFxuICB0b3A6IDA7XFxuICByaWdodDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIGxlZnQ6IDA7XFxuICB6LWluZGV4OiAxMDUwO1xcbiAgZGlzcGxheTogbm9uZTtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICBvdXRsaW5lOiAwOyB9XFxuLm1vZGFsLmZhZGUgLm1vZGFsLWRpYWxvZyB7XFxuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gMC4zcyBlYXNlLW91dDtcXG4gICAgdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gMC4zcyBlYXNlLW91dDtcXG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgZWFzZS1vdXQ7XFxuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2Utb3V0LCAtd2Via2l0LXRyYW5zZm9ybSAwLjNzIGVhc2Utb3V0O1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0yNSUpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0yNSUpOyB9XFxuLm1vZGFsLnNob3cgLm1vZGFsLWRpYWxvZyB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7IH1cXG4ubW9kYWwtb3BlbiAubW9kYWwge1xcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xcbiAgb3ZlcmZsb3cteTogYXV0bzsgfVxcbi5tb2RhbC1kaWFsb2cge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgd2lkdGg6IGF1dG87XFxuICBtYXJnaW46IDEwcHg7IH1cXG4ubW9kYWwtY29udGVudCB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgZGlzcGxheTogZmxleDtcXG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XFxuICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcXG4gICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XFxuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjIpO1xcbiAgYm9yZGVyLXJhZGl1czogMC4zcmVtO1xcbiAgb3V0bGluZTogMDsgfVxcbi5tb2RhbC1iYWNrZHJvcCB7XFxuICBwb3NpdGlvbjogZml4ZWQ7XFxuICB0b3A6IDA7XFxuICByaWdodDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIGxlZnQ6IDA7XFxuICB6LWluZGV4OiAxMDQwO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDsgfVxcbi5tb2RhbC1iYWNrZHJvcC5mYWRlIHtcXG4gICAgb3BhY2l0eTogMDsgfVxcbi5tb2RhbC1iYWNrZHJvcC5zaG93IHtcXG4gICAgb3BhY2l0eTogMC41OyB9XFxuLm1vZGFsLWhlYWRlciB7XFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgZGlzcGxheTogZmxleDtcXG4gIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XFxuICAgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcXG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIC13ZWJraXQtYm94LXBhY2s6IGp1c3RpZnk7XFxuICAgICAgLW1zLWZsZXgtcGFjazoganVzdGlmeTtcXG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xcbiAgcGFkZGluZzogMTVweDtcXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWNlZWVmOyB9XFxuLm1vZGFsLXRpdGxlIHtcXG4gIG1hcmdpbi1ib3R0b206IDA7XFxuICBsaW5lLWhlaWdodDogMS41OyB9XFxuLm1vZGFsLWJvZHkge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgLXdlYmtpdC1ib3gtZmxleDogMTtcXG4gICAgICAtbXMtZmxleDogMSAxIGF1dG87XFxuICAgICAgICAgIGZsZXg6IDEgMSBhdXRvO1xcbiAgcGFkZGluZzogMTVweDsgfVxcbi5tb2RhbC1mb290ZXIge1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xcbiAgICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XFxuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAtd2Via2l0LWJveC1wYWNrOiBlbmQ7XFxuICAgICAgLW1zLWZsZXgtcGFjazogZW5kO1xcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xcbiAgcGFkZGluZzogMTVweDtcXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZWNlZWVmOyB9XFxuLm1vZGFsLWZvb3RlciA+IDpub3QoOmZpcnN0LWNoaWxkKSB7XFxuICAgIG1hcmdpbi1sZWZ0OiAuMjVyZW07IH1cXG4ubW9kYWwtZm9vdGVyID4gOm5vdCg6bGFzdC1jaGlsZCkge1xcbiAgICBtYXJnaW4tcmlnaHQ6IC4yNXJlbTsgfVxcbi5tb2RhbC1zY3JvbGxiYXItbWVhc3VyZSB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IC05OTk5cHg7XFxuICB3aWR0aDogNTBweDtcXG4gIGhlaWdodDogNTBweDtcXG4gIG92ZXJmbG93OiBzY3JvbGw7IH1cXG5AbWVkaWEgKG1pbi13aWR0aDogNTc2cHgpIHtcXG4gIC5tb2RhbC1kaWFsb2cge1xcbiAgICBtYXgtd2lkdGg6IDUwMHB4O1xcbiAgICBtYXJnaW46IDMwcHggYXV0bzsgfVxcbiAgLm1vZGFsLXNtIHtcXG4gICAgbWF4LXdpZHRoOiAzMDBweDsgfSB9XFxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XFxuICAubW9kYWwtbGcge1xcbiAgICBtYXgtd2lkdGg6IDgwMHB4OyB9IH1cXG4udG9vbHRpcCB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB6LWluZGV4OiAxMDcwO1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgc3lzdGVtLXVpLCBCbGlua01hY1N5c3RlbUZvbnQsIFxcXCJTZWdvZSBVSVxcXCIsIFJvYm90bywgXFxcIkhlbHZldGljYSBOZXVlXFxcIiwgQXJpYWwsIHNhbnMtc2VyaWY7XFxuICBmb250LXN0eWxlOiBub3JtYWw7XFxuICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcXG4gIGxpbmUtYnJlYWs6IGF1dG87XFxuICBsaW5lLWhlaWdodDogMS41O1xcbiAgdGV4dC1hbGlnbjogbGVmdDtcXG4gIHRleHQtYWxpZ246IHN0YXJ0O1xcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XFxuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcXG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XFxuICB3b3JkLWJyZWFrOiBub3JtYWw7XFxuICB3b3JkLXNwYWNpbmc6IG5vcm1hbDtcXG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XFxuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XFxuICBvcGFjaXR5OiAwOyB9XFxuLnRvb2x0aXAuc2hvdyB7XFxuICAgIG9wYWNpdHk6IDAuOTsgfVxcbi50b29sdGlwLnRvb2x0aXAtdG9wLCAudG9vbHRpcC5icy10ZXRoZXItZWxlbWVudC1hdHRhY2hlZC1ib3R0b20ge1xcbiAgICBwYWRkaW5nOiA1cHggMDtcXG4gICAgbWFyZ2luLXRvcDogLTNweDsgfVxcbi50b29sdGlwLnRvb2x0aXAtdG9wIC50b29sdGlwLWlubmVyOjpiZWZvcmUsIC50b29sdGlwLmJzLXRldGhlci1lbGVtZW50LWF0dGFjaGVkLWJvdHRvbSAudG9vbHRpcC1pbm5lcjo6YmVmb3JlIHtcXG4gICAgICBib3R0b206IDA7XFxuICAgICAgbGVmdDogNTAlO1xcbiAgICAgIG1hcmdpbi1sZWZ0OiAtNXB4O1xcbiAgICAgIGNvbnRlbnQ6IFxcXCJcXFwiO1xcbiAgICAgIGJvcmRlci13aWR0aDogNXB4IDVweCAwO1xcbiAgICAgIGJvcmRlci10b3AtY29sb3I6ICMwMDA7IH1cXG4udG9vbHRpcC50b29sdGlwLXJpZ2h0LCAudG9vbHRpcC5icy10ZXRoZXItZWxlbWVudC1hdHRhY2hlZC1sZWZ0IHtcXG4gICAgcGFkZGluZzogMCA1cHg7XFxuICAgIG1hcmdpbi1sZWZ0OiAzcHg7IH1cXG4udG9vbHRpcC50b29sdGlwLXJpZ2h0IC50b29sdGlwLWlubmVyOjpiZWZvcmUsIC50b29sdGlwLmJzLXRldGhlci1lbGVtZW50LWF0dGFjaGVkLWxlZnQgLnRvb2x0aXAtaW5uZXI6OmJlZm9yZSB7XFxuICAgICAgdG9wOiA1MCU7XFxuICAgICAgbGVmdDogMDtcXG4gICAgICBtYXJnaW4tdG9wOiAtNXB4O1xcbiAgICAgIGNvbnRlbnQ6IFxcXCJcXFwiO1xcbiAgICAgIGJvcmRlci13aWR0aDogNXB4IDVweCA1cHggMDtcXG4gICAgICBib3JkZXItcmlnaHQtY29sb3I6ICMwMDA7IH1cXG4udG9vbHRpcC50b29sdGlwLWJvdHRvbSwgLnRvb2x0aXAuYnMtdGV0aGVyLWVsZW1lbnQtYXR0YWNoZWQtdG9wIHtcXG4gICAgcGFkZGluZzogNXB4IDA7XFxuICAgIG1hcmdpbi10b3A6IDNweDsgfVxcbi50b29sdGlwLnRvb2x0aXAtYm90dG9tIC50b29sdGlwLWlubmVyOjpiZWZvcmUsIC50b29sdGlwLmJzLXRldGhlci1lbGVtZW50LWF0dGFjaGVkLXRvcCAudG9vbHRpcC1pbm5lcjo6YmVmb3JlIHtcXG4gICAgICB0b3A6IDA7XFxuICAgICAgbGVmdDogNTAlO1xcbiAgICAgIG1hcmdpbi1sZWZ0OiAtNXB4O1xcbiAgICAgIGNvbnRlbnQ6IFxcXCJcXFwiO1xcbiAgICAgIGJvcmRlci13aWR0aDogMCA1cHggNXB4O1xcbiAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICMwMDA7IH1cXG4udG9vbHRpcC50b29sdGlwLWxlZnQsIC50b29sdGlwLmJzLXRldGhlci1lbGVtZW50LWF0dGFjaGVkLXJpZ2h0IHtcXG4gICAgcGFkZGluZzogMCA1cHg7XFxuICAgIG1hcmdpbi1sZWZ0OiAtM3B4OyB9XFxuLnRvb2x0aXAudG9vbHRpcC1sZWZ0IC50b29sdGlwLWlubmVyOjpiZWZvcmUsIC50b29sdGlwLmJzLXRldGhlci1lbGVtZW50LWF0dGFjaGVkLXJpZ2h0IC50b29sdGlwLWlubmVyOjpiZWZvcmUge1xcbiAgICAgIHRvcDogNTAlO1xcbiAgICAgIHJpZ2h0OiAwO1xcbiAgICAgIG1hcmdpbi10b3A6IC01cHg7XFxuICAgICAgY29udGVudDogXFxcIlxcXCI7XFxuICAgICAgYm9yZGVyLXdpZHRoOiA1cHggMCA1cHggNXB4O1xcbiAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAjMDAwOyB9XFxuLnRvb2x0aXAtaW5uZXIge1xcbiAgbWF4LXdpZHRoOiAyMDBweDtcXG4gIHBhZGRpbmc6IDNweCA4cHg7XFxuICBjb2xvcjogI2ZmZjtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDA7XFxuICBib3JkZXItcmFkaXVzOiAwLjI1cmVtOyB9XFxuLnRvb2x0aXAtaW5uZXI6OmJlZm9yZSB7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgd2lkdGg6IDA7XFxuICAgIGhlaWdodDogMDtcXG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcXG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDsgfVxcbi5wb3BvdmVyIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDtcXG4gIGxlZnQ6IDA7XFxuICB6LWluZGV4OiAxMDYwO1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICBtYXgtd2lkdGg6IDI3NnB4O1xcbiAgcGFkZGluZzogMXB4O1xcbiAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIHN5c3RlbS11aSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBcXFwiU2Vnb2UgVUlcXFwiLCBSb2JvdG8sIFxcXCJIZWx2ZXRpY2EgTmV1ZVxcXCIsIEFyaWFsLCBzYW5zLXNlcmlmO1xcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcXG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XFxuICBsaW5lLWJyZWFrOiBhdXRvO1xcbiAgbGluZS1oZWlnaHQ6IDEuNTtcXG4gIHRleHQtYWxpZ246IGxlZnQ7XFxuICB0ZXh0LWFsaWduOiBzdGFydDtcXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcXG4gIHRleHQtc2hhZG93OiBub25lO1xcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XFxuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xcbiAgd29yZC1icmVhazogbm9ybWFsO1xcbiAgd29yZC1zcGFjaW5nOiBub3JtYWw7XFxuICBmb250LXNpemU6IDAuODc1cmVtO1xcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcXG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XFxuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMik7XFxuICBib3JkZXItcmFkaXVzOiAwLjNyZW07IH1cXG4ucG9wb3Zlci5wb3BvdmVyLXRvcCwgLnBvcG92ZXIuYnMtdGV0aGVyLWVsZW1lbnQtYXR0YWNoZWQtYm90dG9tIHtcXG4gICAgbWFyZ2luLXRvcDogLTEwcHg7IH1cXG4ucG9wb3Zlci5wb3BvdmVyLXRvcDo6YmVmb3JlLCAucG9wb3Zlci5wb3BvdmVyLXRvcDo6YWZ0ZXIsIC5wb3BvdmVyLmJzLXRldGhlci1lbGVtZW50LWF0dGFjaGVkLWJvdHRvbTo6YmVmb3JlLCAucG9wb3Zlci5icy10ZXRoZXItZWxlbWVudC1hdHRhY2hlZC1ib3R0b206OmFmdGVyIHtcXG4gICAgICBsZWZ0OiA1MCU7XFxuICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDsgfVxcbi5wb3BvdmVyLnBvcG92ZXItdG9wOjpiZWZvcmUsIC5wb3BvdmVyLmJzLXRldGhlci1lbGVtZW50LWF0dGFjaGVkLWJvdHRvbTo6YmVmb3JlIHtcXG4gICAgICBib3R0b206IC0xMXB4O1xcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMTFweDtcXG4gICAgICBib3JkZXItdG9wLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjUpOyB9XFxuLnBvcG92ZXIucG9wb3Zlci10b3A6OmFmdGVyLCAucG9wb3Zlci5icy10ZXRoZXItZWxlbWVudC1hdHRhY2hlZC1ib3R0b206OmFmdGVyIHtcXG4gICAgICBib3R0b206IC0xMHB4O1xcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMTBweDtcXG4gICAgICBib3JkZXItdG9wLWNvbG9yOiAjZmZmOyB9XFxuLnBvcG92ZXIucG9wb3Zlci1yaWdodCwgLnBvcG92ZXIuYnMtdGV0aGVyLWVsZW1lbnQtYXR0YWNoZWQtbGVmdCB7XFxuICAgIG1hcmdpbi1sZWZ0OiAxMHB4OyB9XFxuLnBvcG92ZXIucG9wb3Zlci1yaWdodDo6YmVmb3JlLCAucG9wb3Zlci5wb3BvdmVyLXJpZ2h0OjphZnRlciwgLnBvcG92ZXIuYnMtdGV0aGVyLWVsZW1lbnQtYXR0YWNoZWQtbGVmdDo6YmVmb3JlLCAucG9wb3Zlci5icy10ZXRoZXItZWxlbWVudC1hdHRhY2hlZC1sZWZ0OjphZnRlciB7XFxuICAgICAgdG9wOiA1MCU7XFxuICAgICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7IH1cXG4ucG9wb3Zlci5wb3BvdmVyLXJpZ2h0OjpiZWZvcmUsIC5wb3BvdmVyLmJzLXRldGhlci1lbGVtZW50LWF0dGFjaGVkLWxlZnQ6OmJlZm9yZSB7XFxuICAgICAgbGVmdDogLTExcHg7XFxuICAgICAgbWFyZ2luLXRvcDogLTExcHg7XFxuICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjUpOyB9XFxuLnBvcG92ZXIucG9wb3Zlci1yaWdodDo6YWZ0ZXIsIC5wb3BvdmVyLmJzLXRldGhlci1lbGVtZW50LWF0dGFjaGVkLWxlZnQ6OmFmdGVyIHtcXG4gICAgICBsZWZ0OiAtMTBweDtcXG4gICAgICBtYXJnaW4tdG9wOiAtMTBweDtcXG4gICAgICBib3JkZXItcmlnaHQtY29sb3I6ICNmZmY7IH1cXG4ucG9wb3Zlci5wb3BvdmVyLWJvdHRvbSwgLnBvcG92ZXIuYnMtdGV0aGVyLWVsZW1lbnQtYXR0YWNoZWQtdG9wIHtcXG4gICAgbWFyZ2luLXRvcDogMTBweDsgfVxcbi5wb3BvdmVyLnBvcG92ZXItYm90dG9tOjpiZWZvcmUsIC5wb3BvdmVyLnBvcG92ZXItYm90dG9tOjphZnRlciwgLnBvcG92ZXIuYnMtdGV0aGVyLWVsZW1lbnQtYXR0YWNoZWQtdG9wOjpiZWZvcmUsIC5wb3BvdmVyLmJzLXRldGhlci1lbGVtZW50LWF0dGFjaGVkLXRvcDo6YWZ0ZXIge1xcbiAgICAgIGxlZnQ6IDUwJTtcXG4gICAgICBib3JkZXItdG9wLXdpZHRoOiAwOyB9XFxuLnBvcG92ZXIucG9wb3Zlci1ib3R0b206OmJlZm9yZSwgLnBvcG92ZXIuYnMtdGV0aGVyLWVsZW1lbnQtYXR0YWNoZWQtdG9wOjpiZWZvcmUge1xcbiAgICAgIHRvcDogLTExcHg7XFxuICAgICAgbWFyZ2luLWxlZnQ6IC0xMXB4O1xcbiAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNSk7IH1cXG4ucG9wb3Zlci5wb3BvdmVyLWJvdHRvbTo6YWZ0ZXIsIC5wb3BvdmVyLmJzLXRldGhlci1lbGVtZW50LWF0dGFjaGVkLXRvcDo6YWZ0ZXIge1xcbiAgICAgIHRvcDogLTEwcHg7XFxuICAgICAgbWFyZ2luLWxlZnQ6IC0xMHB4O1xcbiAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICNmN2Y3Zjc7IH1cXG4ucG9wb3Zlci5wb3BvdmVyLWJvdHRvbSAucG9wb3Zlci10aXRsZTo6YmVmb3JlLCAucG9wb3Zlci5icy10ZXRoZXItZWxlbWVudC1hdHRhY2hlZC10b3AgLnBvcG92ZXItdGl0bGU6OmJlZm9yZSB7XFxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICAgIHRvcDogMDtcXG4gICAgICBsZWZ0OiA1MCU7XFxuICAgICAgZGlzcGxheTogYmxvY2s7XFxuICAgICAgd2lkdGg6IDIwcHg7XFxuICAgICAgbWFyZ2luLWxlZnQ6IC0xMHB4O1xcbiAgICAgIGNvbnRlbnQ6IFxcXCJcXFwiO1xcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZjdmN2Y3OyB9XFxuLnBvcG92ZXIucG9wb3Zlci1sZWZ0LCAucG9wb3Zlci5icy10ZXRoZXItZWxlbWVudC1hdHRhY2hlZC1yaWdodCB7XFxuICAgIG1hcmdpbi1sZWZ0OiAtMTBweDsgfVxcbi5wb3BvdmVyLnBvcG92ZXItbGVmdDo6YmVmb3JlLCAucG9wb3Zlci5wb3BvdmVyLWxlZnQ6OmFmdGVyLCAucG9wb3Zlci5icy10ZXRoZXItZWxlbWVudC1hdHRhY2hlZC1yaWdodDo6YmVmb3JlLCAucG9wb3Zlci5icy10ZXRoZXItZWxlbWVudC1hdHRhY2hlZC1yaWdodDo6YWZ0ZXIge1xcbiAgICAgIHRvcDogNTAlO1xcbiAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMDsgfVxcbi5wb3BvdmVyLnBvcG92ZXItbGVmdDo6YmVmb3JlLCAucG9wb3Zlci5icy10ZXRoZXItZWxlbWVudC1hdHRhY2hlZC1yaWdodDo6YmVmb3JlIHtcXG4gICAgICByaWdodDogLTExcHg7XFxuICAgICAgbWFyZ2luLXRvcDogLTExcHg7XFxuICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNSk7IH1cXG4ucG9wb3Zlci5wb3BvdmVyLWxlZnQ6OmFmdGVyLCAucG9wb3Zlci5icy10ZXRoZXItZWxlbWVudC1hdHRhY2hlZC1yaWdodDo6YWZ0ZXIge1xcbiAgICAgIHJpZ2h0OiAtMTBweDtcXG4gICAgICBtYXJnaW4tdG9wOiAtMTBweDtcXG4gICAgICBib3JkZXItbGVmdC1jb2xvcjogI2ZmZjsgfVxcbi5wb3BvdmVyLXRpdGxlIHtcXG4gIHBhZGRpbmc6IDhweCAxNHB4O1xcbiAgbWFyZ2luLWJvdHRvbTogMDtcXG4gIGZvbnQtc2l6ZTogMXJlbTtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmN2Y3Zjc7XFxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2ViZWJlYjtcXG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiBjYWxjKDAuM3JlbSAtIDFweCk7XFxuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiBjYWxjKDAuM3JlbSAtIDFweCk7IH1cXG4ucG9wb3Zlci10aXRsZTplbXB0eSB7XFxuICAgIGRpc3BsYXk6IG5vbmU7IH1cXG4ucG9wb3Zlci1jb250ZW50IHtcXG4gIHBhZGRpbmc6IDlweCAxNHB4OyB9XFxuLnBvcG92ZXI6OmJlZm9yZSwgLnBvcG92ZXI6OmFmdGVyIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbiAgd2lkdGg6IDA7XFxuICBoZWlnaHQ6IDA7XFxuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDsgfVxcbi5wb3BvdmVyOjpiZWZvcmUge1xcbiAgY29udGVudDogXFxcIlxcXCI7XFxuICBib3JkZXItd2lkdGg6IDExcHg7IH1cXG4ucG9wb3Zlcjo6YWZ0ZXIge1xcbiAgY29udGVudDogXFxcIlxcXCI7XFxuICBib3JkZXItd2lkdGg6IDEwcHg7IH1cXG4uY2Fyb3VzZWwge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XFxuLmNhcm91c2VsLWlubmVyIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxcbi5jYXJvdXNlbC1pdGVtIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIGRpc3BsYXk6IG5vbmU7XFxuICB3aWR0aDogMTAwJTsgfVxcbkBtZWRpYSAoLXdlYmtpdC10cmFuc2Zvcm0tM2QpIHtcXG4gICAgLmNhcm91c2VsLWl0ZW0ge1xcbiAgICAgIC13ZWJraXQtdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gMC42cyBlYXNlLWluLW91dDtcXG4gICAgICB0cmFuc2l0aW9uOiAtd2Via2l0LXRyYW5zZm9ybSAwLjZzIGVhc2UtaW4tb3V0O1xcbiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjZzIGVhc2UtaW4tb3V0O1xcbiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjZzIGVhc2UtaW4tb3V0LCAtd2Via2l0LXRyYW5zZm9ybSAwLjZzIGVhc2UtaW4tb3V0O1xcbiAgICAgIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xcbiAgICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xcbiAgICAgIC13ZWJraXQtcGVyc3BlY3RpdmU6IDEwMDBweDtcXG4gICAgICAgICAgICAgIHBlcnNwZWN0aXZlOiAxMDAwcHg7IH0gfVxcbkBzdXBwb3J0cyAoKC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKSkgb3IgKHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCkpKSB7XFxuICAgIC5jYXJvdXNlbC1pdGVtIHtcXG4gICAgICAtd2Via2l0LXRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtIDAuNnMgZWFzZS1pbi1vdXQ7XFxuICAgICAgdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gMC42cyBlYXNlLWluLW91dDtcXG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC42cyBlYXNlLWluLW91dDtcXG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC42cyBlYXNlLWluLW91dCwgLXdlYmtpdC10cmFuc2Zvcm0gMC42cyBlYXNlLWluLW91dDtcXG4gICAgICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcXG4gICAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcXG4gICAgICAtd2Via2l0LXBlcnNwZWN0aXZlOiAxMDAwcHg7XFxuICAgICAgICAgICAgICBwZXJzcGVjdGl2ZTogMTAwMHB4OyB9IH1cXG4uY2Fyb3VzZWwtaXRlbS5hY3RpdmUsIC5jYXJvdXNlbC1pdGVtLW5leHQsIC5jYXJvdXNlbC1pdGVtLXByZXYge1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gIGRpc3BsYXk6IGZsZXg7IH1cXG4uY2Fyb3VzZWwtaXRlbS1uZXh0LCAuY2Fyb3VzZWwtaXRlbS1wcmV2IHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDsgfVxcbkBtZWRpYSAoLXdlYmtpdC10cmFuc2Zvcm0tM2QpIHtcXG4gIC5jYXJvdXNlbC1pdGVtLW5leHQuY2Fyb3VzZWwtaXRlbS1sZWZ0LCAuY2Fyb3VzZWwtaXRlbS1wcmV2LmNhcm91c2VsLWl0ZW0tcmlnaHQge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsgfVxcbiAgLmNhcm91c2VsLWl0ZW0tbmV4dCwgLmFjdGl2ZS5jYXJvdXNlbC1pdGVtLXJpZ2h0IHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCk7IH1cXG4gIC5jYXJvdXNlbC1pdGVtLXByZXYsIC5hY3RpdmUuY2Fyb3VzZWwtaXRlbS1sZWZ0IHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTsgfSB9XFxuQHN1cHBvcnRzICgoLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApKSBvciAodHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKSkpIHtcXG4gIC5jYXJvdXNlbC1pdGVtLW5leHQuY2Fyb3VzZWwtaXRlbS1sZWZ0LCAuY2Fyb3VzZWwtaXRlbS1wcmV2LmNhcm91c2VsLWl0ZW0tcmlnaHQge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsgfVxcbiAgLmNhcm91c2VsLWl0ZW0tbmV4dCwgLmFjdGl2ZS5jYXJvdXNlbC1pdGVtLXJpZ2h0IHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCk7IH1cXG4gIC5jYXJvdXNlbC1pdGVtLXByZXYsIC5hY3RpdmUuY2Fyb3VzZWwtaXRlbS1sZWZ0IHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTsgfSB9XFxuLmNhcm91c2VsLWNvbnRyb2wtcHJldiwgLmNhcm91c2VsLWNvbnRyb2wtbmV4dCB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDA7XFxuICBib3R0b206IDA7XFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgZGlzcGxheTogZmxleDtcXG4gIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XFxuICAgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcXG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIC13ZWJraXQtYm94LXBhY2s6IGNlbnRlcjtcXG4gICAgICAtbXMtZmxleC1wYWNrOiBjZW50ZXI7XFxuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgd2lkdGg6IDE1JTtcXG4gIGNvbG9yOiAjZmZmO1xcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xcbiAgb3BhY2l0eTogMC41OyB9XFxuLmNhcm91c2VsLWNvbnRyb2wtcHJldjpmb2N1cywgLmNhcm91c2VsLWNvbnRyb2wtcHJldjpob3ZlciwgLmNhcm91c2VsLWNvbnRyb2wtbmV4dDpmb2N1cywgLmNhcm91c2VsLWNvbnRyb2wtbmV4dDpob3ZlciB7XFxuICAgIGNvbG9yOiAjZmZmO1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XFxuICAgIG91dGxpbmU6IDA7XFxuICAgIG9wYWNpdHk6IC45OyB9XFxuLmNhcm91c2VsLWNvbnRyb2wtcHJldiB7XFxuICBsZWZ0OiAwOyB9XFxuLmNhcm91c2VsLWNvbnRyb2wtbmV4dCB7XFxuICByaWdodDogMDsgfVxcbi5jYXJvdXNlbC1jb250cm9sLXByZXYtaWNvbiwgLmNhcm91c2VsLWNvbnRyb2wtbmV4dC1pY29uIHtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIHdpZHRoOiAyMHB4O1xcbiAgaGVpZ2h0OiAyMHB4O1xcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgbm8tcmVwZWF0IGNlbnRlciBjZW50ZXI7XFxuICBiYWNrZ3JvdW5kLXNpemU6IDEwMCUgMTAwJTsgfVxcbi5jYXJvdXNlbC1jb250cm9sLXByZXYtaWNvbiB7XFxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXFxcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0ZjgsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgZmlsbD0nJTIzZmZmJyB2aWV3Qm94PScwIDAgOCA4JyUzRSUzQ3BhdGggZD0nTTQgMGwtNCA0IDQgNCAxLjUtMS41LTIuNS0yLjUgMi41LTIuNS0xLjUtMS41eicvJTNFJTNDL3N2ZyUzRVxcXCIpOyB9XFxuLmNhcm91c2VsLWNvbnRyb2wtbmV4dC1pY29uIHtcXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcXFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmOCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyBmaWxsPSclMjNmZmYnIHZpZXdCb3g9JzAgMCA4IDgnJTNFJTNDcGF0aCBkPSdNMS41IDBsLTEuNSAxLjUgMi41IDIuNS0yLjUgMi41IDEuNSAxLjUgNC00LTQtNHonLyUzRSUzQy9zdmclM0VcXFwiKTsgfVxcbi5jYXJvdXNlbC1pbmRpY2F0b3JzIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHJpZ2h0OiAwO1xcbiAgYm90dG9tOiAxMHB4O1xcbiAgbGVmdDogMDtcXG4gIHotaW5kZXg6IDE1O1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICAtd2Via2l0LWJveC1wYWNrOiBjZW50ZXI7XFxuICAgICAgLW1zLWZsZXgtcGFjazogY2VudGVyO1xcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gIHBhZGRpbmctbGVmdDogMDtcXG4gIG1hcmdpbi1yaWdodDogMTUlO1xcbiAgbWFyZ2luLWxlZnQ6IDE1JTtcXG4gIGxpc3Qtc3R5bGU6IG5vbmU7IH1cXG4uY2Fyb3VzZWwtaW5kaWNhdG9ycyBsaSB7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMTtcXG4gICAgICAgIC1tcy1mbGV4OiAxIDAgYXV0bztcXG4gICAgICAgICAgICBmbGV4OiAxIDAgYXV0bztcXG4gICAgbWF4LXdpZHRoOiAzMHB4O1xcbiAgICBoZWlnaHQ6IDNweDtcXG4gICAgbWFyZ2luLXJpZ2h0OiAzcHg7XFxuICAgIG1hcmdpbi1sZWZ0OiAzcHg7XFxuICAgIHRleHQtaW5kZW50OiAtOTk5cHg7XFxuICAgIGN1cnNvcjogcG9pbnRlcjtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpOyB9XFxuLmNhcm91c2VsLWluZGljYXRvcnMgbGk6OmJlZm9yZSB7XFxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICAgIHRvcDogLTEwcHg7XFxuICAgICAgbGVmdDogMDtcXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgICAgd2lkdGg6IDEwMCU7XFxuICAgICAgaGVpZ2h0OiAxMHB4O1xcbiAgICAgIGNvbnRlbnQ6IFxcXCJcXFwiOyB9XFxuLmNhcm91c2VsLWluZGljYXRvcnMgbGk6OmFmdGVyIHtcXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgICAgYm90dG9tOiAtMTBweDtcXG4gICAgICBsZWZ0OiAwO1xcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgICB3aWR0aDogMTAwJTtcXG4gICAgICBoZWlnaHQ6IDEwcHg7XFxuICAgICAgY29udGVudDogXFxcIlxcXCI7IH1cXG4uY2Fyb3VzZWwtaW5kaWNhdG9ycyAuYWN0aXZlIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxcbi5jYXJvdXNlbC1jYXB0aW9uIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHJpZ2h0OiAxNSU7XFxuICBib3R0b206IDIwcHg7XFxuICBsZWZ0OiAxNSU7XFxuICB6LWluZGV4OiAxMDtcXG4gIHBhZGRpbmctdG9wOiAyMHB4O1xcbiAgcGFkZGluZy1ib3R0b206IDIwcHg7XFxuICBjb2xvcjogI2ZmZjtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxcbi5hbGlnbi1iYXNlbGluZSB7XFxuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmUgIWltcG9ydGFudDsgfVxcbi5hbGlnbi10b3Age1xcbiAgdmVydGljYWwtYWxpZ246IHRvcCAhaW1wb3J0YW50OyB9XFxuLmFsaWduLW1pZGRsZSB7XFxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlICFpbXBvcnRhbnQ7IH1cXG4uYWxpZ24tYm90dG9tIHtcXG4gIHZlcnRpY2FsLWFsaWduOiBib3R0b20gIWltcG9ydGFudDsgfVxcbi5hbGlnbi10ZXh0LWJvdHRvbSB7XFxuICB2ZXJ0aWNhbC1hbGlnbjogdGV4dC1ib3R0b20gIWltcG9ydGFudDsgfVxcbi5hbGlnbi10ZXh0LXRvcCB7XFxuICB2ZXJ0aWNhbC1hbGlnbjogdGV4dC10b3AgIWltcG9ydGFudDsgfVxcbi5iZy1mYWRlZCB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmN2Y3OyB9XFxuLmJnLXByaW1hcnkge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAyNzVkOCAhaW1wb3J0YW50OyB9XFxuYS5iZy1wcmltYXJ5OmZvY3VzLCBhLmJnLXByaW1hcnk6aG92ZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAyNWFhNSAhaW1wb3J0YW50OyB9XFxuLmJnLXN1Y2Nlc3Mge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzVjYjg1YyAhaW1wb3J0YW50OyB9XFxuYS5iZy1zdWNjZXNzOmZvY3VzLCBhLmJnLXN1Y2Nlc3M6aG92ZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0OWQ0NCAhaW1wb3J0YW50OyB9XFxuLmJnLWluZm8ge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzViYzBkZSAhaW1wb3J0YW50OyB9XFxuYS5iZy1pbmZvOmZvY3VzLCBhLmJnLWluZm86aG92ZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzMxYjBkNSAhaW1wb3J0YW50OyB9XFxuLmJnLXdhcm5pbmcge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YwYWQ0ZSAhaW1wb3J0YW50OyB9XFxuYS5iZy13YXJuaW5nOmZvY3VzLCBhLmJnLXdhcm5pbmc6aG92ZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VjOTcxZiAhaW1wb3J0YW50OyB9XFxuLmJnLWRhbmdlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDk1MzRmICFpbXBvcnRhbnQ7IH1cXG5hLmJnLWRhbmdlcjpmb2N1cywgYS5iZy1kYW5nZXI6aG92ZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2M5MzAyYyAhaW1wb3J0YW50OyB9XFxuLmJnLWludmVyc2Uge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI5MmIyYyAhaW1wb3J0YW50OyB9XFxuYS5iZy1pbnZlcnNlOmZvY3VzLCBhLmJnLWludmVyc2U6aG92ZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzEwMTExMiAhaW1wb3J0YW50OyB9XFxuLmJvcmRlci0wIHtcXG4gIGJvcmRlcjogMCAhaW1wb3J0YW50OyB9XFxuLmJvcmRlci10b3AtMCB7XFxuICBib3JkZXItdG9wOiAwICFpbXBvcnRhbnQ7IH1cXG4uYm9yZGVyLXJpZ2h0LTAge1xcbiAgYm9yZGVyLXJpZ2h0OiAwICFpbXBvcnRhbnQ7IH1cXG4uYm9yZGVyLWJvdHRvbS0wIHtcXG4gIGJvcmRlci1ib3R0b206IDAgIWltcG9ydGFudDsgfVxcbi5ib3JkZXItbGVmdC0wIHtcXG4gIGJvcmRlci1sZWZ0OiAwICFpbXBvcnRhbnQ7IH1cXG4ucm91bmRlZCB7XFxuICBib3JkZXItcmFkaXVzOiAwLjI1cmVtOyB9XFxuLnJvdW5kZWQtdG9wIHtcXG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwLjI1cmVtO1xcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMC4yNXJlbTsgfVxcbi5yb3VuZGVkLXJpZ2h0IHtcXG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwLjI1cmVtO1xcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDAuMjVyZW07IH1cXG4ucm91bmRlZC1ib3R0b20ge1xcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDAuMjVyZW07XFxuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwLjI1cmVtOyB9XFxuLnJvdW5kZWQtbGVmdCB7XFxuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwLjI1cmVtO1xcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMC4yNXJlbTsgfVxcbi5yb3VuZGVkLWNpcmNsZSB7XFxuICBib3JkZXItcmFkaXVzOiA1MCU7IH1cXG4ucm91bmRlZC0wIHtcXG4gIGJvcmRlci1yYWRpdXM6IDA7IH1cXG4uY2xlYXJmaXg6OmFmdGVyIHtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbiAgY29udGVudDogXFxcIlxcXCI7XFxuICBjbGVhcjogYm90aDsgfVxcbi5kLW5vbmUge1xcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XFxuLmQtaW5saW5lIHtcXG4gIGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50OyB9XFxuLmQtaW5saW5lLWJsb2NrIHtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50OyB9XFxuLmQtYmxvY2sge1xcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxcbi5kLXRhYmxlIHtcXG4gIGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7IH1cXG4uZC10YWJsZS1jZWxsIHtcXG4gIGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxcbi5kLWZsZXgge1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3ggIWltcG9ydGFudDtcXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94ICFpbXBvcnRhbnQ7XFxuICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7IH1cXG4uZC1pbmxpbmUtZmxleCB7XFxuICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1ib3ggIWltcG9ydGFudDtcXG4gIGRpc3BsYXk6IC1tcy1pbmxpbmUtZmxleGJveCAhaW1wb3J0YW50O1xcbiAgZGlzcGxheTogaW5saW5lLWZsZXggIWltcG9ydGFudDsgfVxcbkBtZWRpYSAobWluLXdpZHRoOiA1NzZweCkge1xcbiAgLmQtc20tbm9uZSB7XFxuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxcbiAgLmQtc20taW5saW5lIHtcXG4gICAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7IH1cXG4gIC5kLXNtLWlubGluZS1ibG9jayB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50OyB9XFxuICAuZC1zbS1ibG9jayB7XFxuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cXG4gIC5kLXNtLXRhYmxlIHtcXG4gICAgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDsgfVxcbiAgLmQtc20tdGFibGUtY2VsbCB7XFxuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxcbiAgLmQtc20tZmxleCB7XFxuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94ICFpbXBvcnRhbnQ7XFxuICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94ICFpbXBvcnRhbnQ7XFxuICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDsgfVxcbiAgLmQtc20taW5saW5lLWZsZXgge1xcbiAgICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1ib3ggIWltcG9ydGFudDtcXG4gICAgZGlzcGxheTogLW1zLWlubGluZS1mbGV4Ym94ICFpbXBvcnRhbnQ7XFxuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4ICFpbXBvcnRhbnQ7IH0gfVxcbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xcbiAgLmQtbWQtbm9uZSB7XFxuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxcbiAgLmQtbWQtaW5saW5lIHtcXG4gICAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7IH1cXG4gIC5kLW1kLWlubGluZS1ibG9jayB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50OyB9XFxuICAuZC1tZC1ibG9jayB7XFxuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cXG4gIC5kLW1kLXRhYmxlIHtcXG4gICAgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDsgfVxcbiAgLmQtbWQtdGFibGUtY2VsbCB7XFxuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxcbiAgLmQtbWQtZmxleCB7XFxuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94ICFpbXBvcnRhbnQ7XFxuICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94ICFpbXBvcnRhbnQ7XFxuICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDsgfVxcbiAgLmQtbWQtaW5saW5lLWZsZXgge1xcbiAgICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1ib3ggIWltcG9ydGFudDtcXG4gICAgZGlzcGxheTogLW1zLWlubGluZS1mbGV4Ym94ICFpbXBvcnRhbnQ7XFxuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4ICFpbXBvcnRhbnQ7IH0gfVxcbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xcbiAgLmQtbGctbm9uZSB7XFxuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxcbiAgLmQtbGctaW5saW5lIHtcXG4gICAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7IH1cXG4gIC5kLWxnLWlubGluZS1ibG9jayB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50OyB9XFxuICAuZC1sZy1ibG9jayB7XFxuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cXG4gIC5kLWxnLXRhYmxlIHtcXG4gICAgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDsgfVxcbiAgLmQtbGctdGFibGUtY2VsbCB7XFxuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxcbiAgLmQtbGctZmxleCB7XFxuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94ICFpbXBvcnRhbnQ7XFxuICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94ICFpbXBvcnRhbnQ7XFxuICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDsgfVxcbiAgLmQtbGctaW5saW5lLWZsZXgge1xcbiAgICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1ib3ggIWltcG9ydGFudDtcXG4gICAgZGlzcGxheTogLW1zLWlubGluZS1mbGV4Ym94ICFpbXBvcnRhbnQ7XFxuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4ICFpbXBvcnRhbnQ7IH0gfVxcbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcXG4gIC5kLXhsLW5vbmUge1xcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cXG4gIC5kLXhsLWlubGluZSB7XFxuICAgIGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50OyB9XFxuICAuZC14bC1pbmxpbmUtYmxvY2sge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDsgfVxcbiAgLmQteGwtYmxvY2sge1xcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XFxuICAuZC14bC10YWJsZSB7XFxuICAgIGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7IH1cXG4gIC5kLXhsLXRhYmxlLWNlbGwge1xcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cXG4gIC5kLXhsLWZsZXgge1xcbiAgICBkaXNwbGF5OiAtd2Via2l0LWJveCAhaW1wb3J0YW50O1xcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveCAhaW1wb3J0YW50O1xcbiAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7IH1cXG4gIC5kLXhsLWlubGluZS1mbGV4IHtcXG4gICAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtYm94ICFpbXBvcnRhbnQ7XFxuICAgIGRpc3BsYXk6IC1tcy1pbmxpbmUtZmxleGJveCAhaW1wb3J0YW50O1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleCAhaW1wb3J0YW50OyB9IH1cXG4uZmxleC1maXJzdCB7XFxuICAtd2Via2l0LWJveC1vcmRpbmFsLWdyb3VwOiAwO1xcbiAgICAgIC1tcy1mbGV4LW9yZGVyOiAtMTtcXG4gICAgICAgICAgb3JkZXI6IC0xOyB9XFxuLmZsZXgtbGFzdCB7XFxuICAtd2Via2l0LWJveC1vcmRpbmFsLWdyb3VwOiAyO1xcbiAgICAgIC1tcy1mbGV4LW9yZGVyOiAxO1xcbiAgICAgICAgICBvcmRlcjogMTsgfVxcbi5mbGV4LXVub3JkZXJlZCB7XFxuICAtd2Via2l0LWJveC1vcmRpbmFsLWdyb3VwOiAxO1xcbiAgICAgIC1tcy1mbGV4LW9yZGVyOiAwO1xcbiAgICAgICAgICBvcmRlcjogMDsgfVxcbi5mbGV4LXJvdyB7XFxuICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWwgIWltcG9ydGFudDtcXG4gIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsICFpbXBvcnRhbnQ7XFxuICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3cgIWltcG9ydGFudDtcXG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdyAhaW1wb3J0YW50OyB9XFxuLmZsZXgtY29sdW1uIHtcXG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWwgIWltcG9ydGFudDtcXG4gIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsICFpbXBvcnRhbnQ7XFxuICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW4gIWltcG9ydGFudDtcXG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbiAhaW1wb3J0YW50OyB9XFxuLmZsZXgtcm93LXJldmVyc2Uge1xcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsICFpbXBvcnRhbnQ7XFxuICAtd2Via2l0LWJveC1kaXJlY3Rpb246IHJldmVyc2UgIWltcG9ydGFudDtcXG4gICAgICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlICFpbXBvcnRhbnQ7XFxuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZSAhaW1wb3J0YW50OyB9XFxuLmZsZXgtY29sdW1uLXJldmVyc2Uge1xcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbCAhaW1wb3J0YW50O1xcbiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiByZXZlcnNlICFpbXBvcnRhbnQ7XFxuICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZSAhaW1wb3J0YW50O1xcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2UgIWltcG9ydGFudDsgfVxcbi5mbGV4LXdyYXAge1xcbiAgLW1zLWZsZXgtd3JhcDogd3JhcCAhaW1wb3J0YW50O1xcbiAgICAgIGZsZXgtd3JhcDogd3JhcCAhaW1wb3J0YW50OyB9XFxuLmZsZXgtbm93cmFwIHtcXG4gIC1tcy1mbGV4LXdyYXA6IG5vd3JhcCAhaW1wb3J0YW50O1xcbiAgICAgIGZsZXgtd3JhcDogbm93cmFwICFpbXBvcnRhbnQ7IH1cXG4uZmxleC13cmFwLXJldmVyc2Uge1xcbiAgLW1zLWZsZXgtd3JhcDogd3JhcC1yZXZlcnNlICFpbXBvcnRhbnQ7XFxuICAgICAgZmxleC13cmFwOiB3cmFwLXJldmVyc2UgIWltcG9ydGFudDsgfVxcbi5qdXN0aWZ5LWNvbnRlbnQtc3RhcnQge1xcbiAgLXdlYmtpdC1ib3gtcGFjazogc3RhcnQgIWltcG9ydGFudDtcXG4gICAgICAtbXMtZmxleC1wYWNrOiBzdGFydCAhaW1wb3J0YW50O1xcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQgIWltcG9ydGFudDsgfVxcbi5qdXN0aWZ5LWNvbnRlbnQtZW5kIHtcXG4gIC13ZWJraXQtYm94LXBhY2s6IGVuZCAhaW1wb3J0YW50O1xcbiAgICAgIC1tcy1mbGV4LXBhY2s6IGVuZCAhaW1wb3J0YW50O1xcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kICFpbXBvcnRhbnQ7IH1cXG4uanVzdGlmeS1jb250ZW50LWNlbnRlciB7XFxuICAtd2Via2l0LWJveC1wYWNrOiBjZW50ZXIgIWltcG9ydGFudDtcXG4gICAgICAtbXMtZmxleC1wYWNrOiBjZW50ZXIgIWltcG9ydGFudDtcXG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDsgfVxcbi5qdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiB7XFxuICAtd2Via2l0LWJveC1wYWNrOiBqdXN0aWZ5ICFpbXBvcnRhbnQ7XFxuICAgICAgLW1zLWZsZXgtcGFjazoganVzdGlmeSAhaW1wb3J0YW50O1xcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW4gIWltcG9ydGFudDsgfVxcbi5qdXN0aWZ5LWNvbnRlbnQtYXJvdW5kIHtcXG4gIC1tcy1mbGV4LXBhY2s6IGRpc3RyaWJ1dGUgIWltcG9ydGFudDtcXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZCAhaW1wb3J0YW50OyB9XFxuLmFsaWduLWl0ZW1zLXN0YXJ0IHtcXG4gIC13ZWJraXQtYm94LWFsaWduOiBzdGFydCAhaW1wb3J0YW50O1xcbiAgICAgIC1tcy1mbGV4LWFsaWduOiBzdGFydCAhaW1wb3J0YW50O1xcbiAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydCAhaW1wb3J0YW50OyB9XFxuLmFsaWduLWl0ZW1zLWVuZCB7XFxuICAtd2Via2l0LWJveC1hbGlnbjogZW5kICFpbXBvcnRhbnQ7XFxuICAgICAgLW1zLWZsZXgtYWxpZ246IGVuZCAhaW1wb3J0YW50O1xcbiAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQgIWltcG9ydGFudDsgfVxcbi5hbGlnbi1pdGVtcy1jZW50ZXIge1xcbiAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50O1xcbiAgICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDtcXG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50OyB9XFxuLmFsaWduLWl0ZW1zLWJhc2VsaW5lIHtcXG4gIC13ZWJraXQtYm94LWFsaWduOiBiYXNlbGluZSAhaW1wb3J0YW50O1xcbiAgICAgIC1tcy1mbGV4LWFsaWduOiBiYXNlbGluZSAhaW1wb3J0YW50O1xcbiAgICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmUgIWltcG9ydGFudDsgfVxcbi5hbGlnbi1pdGVtcy1zdHJldGNoIHtcXG4gIC13ZWJraXQtYm94LWFsaWduOiBzdHJldGNoICFpbXBvcnRhbnQ7XFxuICAgICAgLW1zLWZsZXgtYWxpZ246IHN0cmV0Y2ggIWltcG9ydGFudDtcXG4gICAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2ggIWltcG9ydGFudDsgfVxcbi5hbGlnbi1jb250ZW50LXN0YXJ0IHtcXG4gIC1tcy1mbGV4LWxpbmUtcGFjazogc3RhcnQgIWltcG9ydGFudDtcXG4gICAgICBhbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7IH1cXG4uYWxpZ24tY29udGVudC1lbmQge1xcbiAgLW1zLWZsZXgtbGluZS1wYWNrOiBlbmQgIWltcG9ydGFudDtcXG4gICAgICBhbGlnbi1jb250ZW50OiBmbGV4LWVuZCAhaW1wb3J0YW50OyB9XFxuLmFsaWduLWNvbnRlbnQtY2VudGVyIHtcXG4gIC1tcy1mbGV4LWxpbmUtcGFjazogY2VudGVyICFpbXBvcnRhbnQ7XFxuICAgICAgYWxpZ24tY29udGVudDogY2VudGVyICFpbXBvcnRhbnQ7IH1cXG4uYWxpZ24tY29udGVudC1iZXR3ZWVuIHtcXG4gIC1tcy1mbGV4LWxpbmUtcGFjazoganVzdGlmeSAhaW1wb3J0YW50O1xcbiAgICAgIGFsaWduLWNvbnRlbnQ6IHNwYWNlLWJldHdlZW4gIWltcG9ydGFudDsgfVxcbi5hbGlnbi1jb250ZW50LWFyb3VuZCB7XFxuICAtbXMtZmxleC1saW5lLXBhY2s6IGRpc3RyaWJ1dGUgIWltcG9ydGFudDtcXG4gICAgICBhbGlnbi1jb250ZW50OiBzcGFjZS1hcm91bmQgIWltcG9ydGFudDsgfVxcbi5hbGlnbi1jb250ZW50LXN0cmV0Y2gge1xcbiAgLW1zLWZsZXgtbGluZS1wYWNrOiBzdHJldGNoICFpbXBvcnRhbnQ7XFxuICAgICAgYWxpZ24tY29udGVudDogc3RyZXRjaCAhaW1wb3J0YW50OyB9XFxuLmFsaWduLXNlbGYtYXV0byB7XFxuICAtbXMtZmxleC1pdGVtLWFsaWduOiBhdXRvICFpbXBvcnRhbnQ7XFxuICAgICAgYWxpZ24tc2VsZjogYXV0byAhaW1wb3J0YW50OyB9XFxuLmFsaWduLXNlbGYtc3RhcnQge1xcbiAgLW1zLWZsZXgtaXRlbS1hbGlnbjogc3RhcnQgIWltcG9ydGFudDtcXG4gICAgICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7IH1cXG4uYWxpZ24tc2VsZi1lbmQge1xcbiAgLW1zLWZsZXgtaXRlbS1hbGlnbjogZW5kICFpbXBvcnRhbnQ7XFxuICAgICAgYWxpZ24tc2VsZjogZmxleC1lbmQgIWltcG9ydGFudDsgfVxcbi5hbGlnbi1zZWxmLWNlbnRlciB7XFxuICAtbXMtZmxleC1pdGVtLWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDtcXG4gICAgICBhbGlnbi1zZWxmOiBjZW50ZXIgIWltcG9ydGFudDsgfVxcbi5hbGlnbi1zZWxmLWJhc2VsaW5lIHtcXG4gIC1tcy1mbGV4LWl0ZW0tYWxpZ246IGJhc2VsaW5lICFpbXBvcnRhbnQ7XFxuICAgICAgYWxpZ24tc2VsZjogYmFzZWxpbmUgIWltcG9ydGFudDsgfVxcbi5hbGlnbi1zZWxmLXN0cmV0Y2gge1xcbiAgLW1zLWZsZXgtaXRlbS1hbGlnbjogc3RyZXRjaCAhaW1wb3J0YW50O1xcbiAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2ggIWltcG9ydGFudDsgfVxcbkBtZWRpYSAobWluLXdpZHRoOiA1NzZweCkge1xcbiAgLmZsZXgtc20tZmlyc3Qge1xcbiAgICAtd2Via2l0LWJveC1vcmRpbmFsLWdyb3VwOiAwO1xcbiAgICAgICAgLW1zLWZsZXgtb3JkZXI6IC0xO1xcbiAgICAgICAgICAgIG9yZGVyOiAtMTsgfVxcbiAgLmZsZXgtc20tbGFzdCB7XFxuICAgIC13ZWJraXQtYm94LW9yZGluYWwtZ3JvdXA6IDI7XFxuICAgICAgICAtbXMtZmxleC1vcmRlcjogMTtcXG4gICAgICAgICAgICBvcmRlcjogMTsgfVxcbiAgLmZsZXgtc20tdW5vcmRlcmVkIHtcXG4gICAgLXdlYmtpdC1ib3gtb3JkaW5hbC1ncm91cDogMTtcXG4gICAgICAgIC1tcy1mbGV4LW9yZGVyOiAwO1xcbiAgICAgICAgICAgIG9yZGVyOiAwOyB9XFxuICAuZmxleC1zbS1yb3cge1xcbiAgICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWwgIWltcG9ydGFudDtcXG4gICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWwgIWltcG9ydGFudDtcXG4gICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogcm93ICFpbXBvcnRhbnQ7XFxuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdyAhaW1wb3J0YW50OyB9XFxuICAuZmxleC1zbS1jb2x1bW4ge1xcbiAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsICFpbXBvcnRhbnQ7XFxuICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsICFpbXBvcnRhbnQ7XFxuICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbiAhaW1wb3J0YW50O1xcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4gIWltcG9ydGFudDsgfVxcbiAgLmZsZXgtc20tcm93LXJldmVyc2Uge1xcbiAgICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWwgIWltcG9ydGFudDtcXG4gICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiByZXZlcnNlICFpbXBvcnRhbnQ7XFxuICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlICFpbXBvcnRhbnQ7XFxuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlICFpbXBvcnRhbnQ7IH1cXG4gIC5mbGV4LXNtLWNvbHVtbi1yZXZlcnNlIHtcXG4gICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbCAhaW1wb3J0YW50O1xcbiAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IHJldmVyc2UgIWltcG9ydGFudDtcXG4gICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2UgIWltcG9ydGFudDtcXG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2UgIWltcG9ydGFudDsgfVxcbiAgLmZsZXgtc20td3JhcCB7XFxuICAgIC1tcy1mbGV4LXdyYXA6IHdyYXAgIWltcG9ydGFudDtcXG4gICAgICAgIGZsZXgtd3JhcDogd3JhcCAhaW1wb3J0YW50OyB9XFxuICAuZmxleC1zbS1ub3dyYXAge1xcbiAgICAtbXMtZmxleC13cmFwOiBub3dyYXAgIWltcG9ydGFudDtcXG4gICAgICAgIGZsZXgtd3JhcDogbm93cmFwICFpbXBvcnRhbnQ7IH1cXG4gIC5mbGV4LXNtLXdyYXAtcmV2ZXJzZSB7XFxuICAgIC1tcy1mbGV4LXdyYXA6IHdyYXAtcmV2ZXJzZSAhaW1wb3J0YW50O1xcbiAgICAgICAgZmxleC13cmFwOiB3cmFwLXJldmVyc2UgIWltcG9ydGFudDsgfVxcbiAgLmp1c3RpZnktY29udGVudC1zbS1zdGFydCB7XFxuICAgIC13ZWJraXQtYm94LXBhY2s6IHN0YXJ0ICFpbXBvcnRhbnQ7XFxuICAgICAgICAtbXMtZmxleC1wYWNrOiBzdGFydCAhaW1wb3J0YW50O1xcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydCAhaW1wb3J0YW50OyB9XFxuICAuanVzdGlmeS1jb250ZW50LXNtLWVuZCB7XFxuICAgIC13ZWJraXQtYm94LXBhY2s6IGVuZCAhaW1wb3J0YW50O1xcbiAgICAgICAgLW1zLWZsZXgtcGFjazogZW5kICFpbXBvcnRhbnQ7XFxuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZCAhaW1wb3J0YW50OyB9XFxuICAuanVzdGlmeS1jb250ZW50LXNtLWNlbnRlciB7XFxuICAgIC13ZWJraXQtYm94LXBhY2s6IGNlbnRlciAhaW1wb3J0YW50O1xcbiAgICAgICAgLW1zLWZsZXgtcGFjazogY2VudGVyICFpbXBvcnRhbnQ7XFxuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDsgfVxcbiAgLmp1c3RpZnktY29udGVudC1zbS1iZXR3ZWVuIHtcXG4gICAgLXdlYmtpdC1ib3gtcGFjazoganVzdGlmeSAhaW1wb3J0YW50O1xcbiAgICAgICAgLW1zLWZsZXgtcGFjazoganVzdGlmeSAhaW1wb3J0YW50O1xcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbiAhaW1wb3J0YW50OyB9XFxuICAuanVzdGlmeS1jb250ZW50LXNtLWFyb3VuZCB7XFxuICAgIC1tcy1mbGV4LXBhY2s6IGRpc3RyaWJ1dGUgIWltcG9ydGFudDtcXG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kICFpbXBvcnRhbnQ7IH1cXG4gIC5hbGlnbi1pdGVtcy1zbS1zdGFydCB7XFxuICAgIC13ZWJraXQtYm94LWFsaWduOiBzdGFydCAhaW1wb3J0YW50O1xcbiAgICAgICAgLW1zLWZsZXgtYWxpZ246IHN0YXJ0ICFpbXBvcnRhbnQ7XFxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQgIWltcG9ydGFudDsgfVxcbiAgLmFsaWduLWl0ZW1zLXNtLWVuZCB7XFxuICAgIC13ZWJraXQtYm94LWFsaWduOiBlbmQgIWltcG9ydGFudDtcXG4gICAgICAgIC1tcy1mbGV4LWFsaWduOiBlbmQgIWltcG9ydGFudDtcXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQgIWltcG9ydGFudDsgfVxcbiAgLmFsaWduLWl0ZW1zLXNtLWNlbnRlciB7XFxuICAgIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDtcXG4gICAgICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDtcXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyICFpbXBvcnRhbnQ7IH1cXG4gIC5hbGlnbi1pdGVtcy1zbS1iYXNlbGluZSB7XFxuICAgIC13ZWJraXQtYm94LWFsaWduOiBiYXNlbGluZSAhaW1wb3J0YW50O1xcbiAgICAgICAgLW1zLWZsZXgtYWxpZ246IGJhc2VsaW5lICFpbXBvcnRhbnQ7XFxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lICFpbXBvcnRhbnQ7IH1cXG4gIC5hbGlnbi1pdGVtcy1zbS1zdHJldGNoIHtcXG4gICAgLXdlYmtpdC1ib3gtYWxpZ246IHN0cmV0Y2ggIWltcG9ydGFudDtcXG4gICAgICAgIC1tcy1mbGV4LWFsaWduOiBzdHJldGNoICFpbXBvcnRhbnQ7XFxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2ggIWltcG9ydGFudDsgfVxcbiAgLmFsaWduLWNvbnRlbnQtc20tc3RhcnQge1xcbiAgICAtbXMtZmxleC1saW5lLXBhY2s6IHN0YXJ0ICFpbXBvcnRhbnQ7XFxuICAgICAgICBhbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7IH1cXG4gIC5hbGlnbi1jb250ZW50LXNtLWVuZCB7XFxuICAgIC1tcy1mbGV4LWxpbmUtcGFjazogZW5kICFpbXBvcnRhbnQ7XFxuICAgICAgICBhbGlnbi1jb250ZW50OiBmbGV4LWVuZCAhaW1wb3J0YW50OyB9XFxuICAuYWxpZ24tY29udGVudC1zbS1jZW50ZXIge1xcbiAgICAtbXMtZmxleC1saW5lLXBhY2s6IGNlbnRlciAhaW1wb3J0YW50O1xcbiAgICAgICAgYWxpZ24tY29udGVudDogY2VudGVyICFpbXBvcnRhbnQ7IH1cXG4gIC5hbGlnbi1jb250ZW50LXNtLWJldHdlZW4ge1xcbiAgICAtbXMtZmxleC1saW5lLXBhY2s6IGp1c3RpZnkgIWltcG9ydGFudDtcXG4gICAgICAgIGFsaWduLWNvbnRlbnQ6IHNwYWNlLWJldHdlZW4gIWltcG9ydGFudDsgfVxcbiAgLmFsaWduLWNvbnRlbnQtc20tYXJvdW5kIHtcXG4gICAgLW1zLWZsZXgtbGluZS1wYWNrOiBkaXN0cmlidXRlICFpbXBvcnRhbnQ7XFxuICAgICAgICBhbGlnbi1jb250ZW50OiBzcGFjZS1hcm91bmQgIWltcG9ydGFudDsgfVxcbiAgLmFsaWduLWNvbnRlbnQtc20tc3RyZXRjaCB7XFxuICAgIC1tcy1mbGV4LWxpbmUtcGFjazogc3RyZXRjaCAhaW1wb3J0YW50O1xcbiAgICAgICAgYWxpZ24tY29udGVudDogc3RyZXRjaCAhaW1wb3J0YW50OyB9XFxuICAuYWxpZ24tc2VsZi1zbS1hdXRvIHtcXG4gICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogYXV0byAhaW1wb3J0YW50O1xcbiAgICAgICAgYWxpZ24tc2VsZjogYXV0byAhaW1wb3J0YW50OyB9XFxuICAuYWxpZ24tc2VsZi1zbS1zdGFydCB7XFxuICAgIC1tcy1mbGV4LWl0ZW0tYWxpZ246IHN0YXJ0ICFpbXBvcnRhbnQ7XFxuICAgICAgICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7IH1cXG4gIC5hbGlnbi1zZWxmLXNtLWVuZCB7XFxuICAgIC1tcy1mbGV4LWl0ZW0tYWxpZ246IGVuZCAhaW1wb3J0YW50O1xcbiAgICAgICAgYWxpZ24tc2VsZjogZmxleC1lbmQgIWltcG9ydGFudDsgfVxcbiAgLmFsaWduLXNlbGYtc20tY2VudGVyIHtcXG4gICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7XFxuICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXIgIWltcG9ydGFudDsgfVxcbiAgLmFsaWduLXNlbGYtc20tYmFzZWxpbmUge1xcbiAgICAtbXMtZmxleC1pdGVtLWFsaWduOiBiYXNlbGluZSAhaW1wb3J0YW50O1xcbiAgICAgICAgYWxpZ24tc2VsZjogYmFzZWxpbmUgIWltcG9ydGFudDsgfVxcbiAgLmFsaWduLXNlbGYtc20tc3RyZXRjaCB7XFxuICAgIC1tcy1mbGV4LWl0ZW0tYWxpZ246IHN0cmV0Y2ggIWltcG9ydGFudDtcXG4gICAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2ggIWltcG9ydGFudDsgfSB9XFxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XFxuICAuZmxleC1tZC1maXJzdCB7XFxuICAgIC13ZWJraXQtYm94LW9yZGluYWwtZ3JvdXA6IDA7XFxuICAgICAgICAtbXMtZmxleC1vcmRlcjogLTE7XFxuICAgICAgICAgICAgb3JkZXI6IC0xOyB9XFxuICAuZmxleC1tZC1sYXN0IHtcXG4gICAgLXdlYmtpdC1ib3gtb3JkaW5hbC1ncm91cDogMjtcXG4gICAgICAgIC1tcy1mbGV4LW9yZGVyOiAxO1xcbiAgICAgICAgICAgIG9yZGVyOiAxOyB9XFxuICAuZmxleC1tZC11bm9yZGVyZWQge1xcbiAgICAtd2Via2l0LWJveC1vcmRpbmFsLWdyb3VwOiAxO1xcbiAgICAgICAgLW1zLWZsZXgtb3JkZXI6IDA7XFxuICAgICAgICAgICAgb3JkZXI6IDA7IH1cXG4gIC5mbGV4LW1kLXJvdyB7XFxuICAgIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbCAhaW1wb3J0YW50O1xcbiAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbCAhaW1wb3J0YW50O1xcbiAgICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3cgIWltcG9ydGFudDtcXG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93ICFpbXBvcnRhbnQ7IH1cXG4gIC5mbGV4LW1kLWNvbHVtbiB7XFxuICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWwgIWltcG9ydGFudDtcXG4gICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWwgIWltcG9ydGFudDtcXG4gICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uICFpbXBvcnRhbnQ7XFxuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbiAhaW1wb3J0YW50OyB9XFxuICAuZmxleC1tZC1yb3ctcmV2ZXJzZSB7XFxuICAgIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbCAhaW1wb3J0YW50O1xcbiAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IHJldmVyc2UgIWltcG9ydGFudDtcXG4gICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2UgIWltcG9ydGFudDtcXG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2UgIWltcG9ydGFudDsgfVxcbiAgLmZsZXgtbWQtY29sdW1uLXJldmVyc2Uge1xcbiAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsICFpbXBvcnRhbnQ7XFxuICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogcmV2ZXJzZSAhaW1wb3J0YW50O1xcbiAgICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZSAhaW1wb3J0YW50O1xcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZSAhaW1wb3J0YW50OyB9XFxuICAuZmxleC1tZC13cmFwIHtcXG4gICAgLW1zLWZsZXgtd3JhcDogd3JhcCAhaW1wb3J0YW50O1xcbiAgICAgICAgZmxleC13cmFwOiB3cmFwICFpbXBvcnRhbnQ7IH1cXG4gIC5mbGV4LW1kLW5vd3JhcCB7XFxuICAgIC1tcy1mbGV4LXdyYXA6IG5vd3JhcCAhaW1wb3J0YW50O1xcbiAgICAgICAgZmxleC13cmFwOiBub3dyYXAgIWltcG9ydGFudDsgfVxcbiAgLmZsZXgtbWQtd3JhcC1yZXZlcnNlIHtcXG4gICAgLW1zLWZsZXgtd3JhcDogd3JhcC1yZXZlcnNlICFpbXBvcnRhbnQ7XFxuICAgICAgICBmbGV4LXdyYXA6IHdyYXAtcmV2ZXJzZSAhaW1wb3J0YW50OyB9XFxuICAuanVzdGlmeS1jb250ZW50LW1kLXN0YXJ0IHtcXG4gICAgLXdlYmtpdC1ib3gtcGFjazogc3RhcnQgIWltcG9ydGFudDtcXG4gICAgICAgIC1tcy1mbGV4LXBhY2s6IHN0YXJ0ICFpbXBvcnRhbnQ7XFxuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7IH1cXG4gIC5qdXN0aWZ5LWNvbnRlbnQtbWQtZW5kIHtcXG4gICAgLXdlYmtpdC1ib3gtcGFjazogZW5kICFpbXBvcnRhbnQ7XFxuICAgICAgICAtbXMtZmxleC1wYWNrOiBlbmQgIWltcG9ydGFudDtcXG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kICFpbXBvcnRhbnQ7IH1cXG4gIC5qdXN0aWZ5LWNvbnRlbnQtbWQtY2VudGVyIHtcXG4gICAgLXdlYmtpdC1ib3gtcGFjazogY2VudGVyICFpbXBvcnRhbnQ7XFxuICAgICAgICAtbXMtZmxleC1wYWNrOiBjZW50ZXIgIWltcG9ydGFudDtcXG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlciAhaW1wb3J0YW50OyB9XFxuICAuanVzdGlmeS1jb250ZW50LW1kLWJldHdlZW4ge1xcbiAgICAtd2Via2l0LWJveC1wYWNrOiBqdXN0aWZ5ICFpbXBvcnRhbnQ7XFxuICAgICAgICAtbXMtZmxleC1wYWNrOiBqdXN0aWZ5ICFpbXBvcnRhbnQ7XFxuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuICFpbXBvcnRhbnQ7IH1cXG4gIC5qdXN0aWZ5LWNvbnRlbnQtbWQtYXJvdW5kIHtcXG4gICAgLW1zLWZsZXgtcGFjazogZGlzdHJpYnV0ZSAhaW1wb3J0YW50O1xcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQgIWltcG9ydGFudDsgfVxcbiAgLmFsaWduLWl0ZW1zLW1kLXN0YXJ0IHtcXG4gICAgLXdlYmtpdC1ib3gtYWxpZ246IHN0YXJ0ICFpbXBvcnRhbnQ7XFxuICAgICAgICAtbXMtZmxleC1hbGlnbjogc3RhcnQgIWltcG9ydGFudDtcXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydCAhaW1wb3J0YW50OyB9XFxuICAuYWxpZ24taXRlbXMtbWQtZW5kIHtcXG4gICAgLXdlYmtpdC1ib3gtYWxpZ246IGVuZCAhaW1wb3J0YW50O1xcbiAgICAgICAgLW1zLWZsZXgtYWxpZ246IGVuZCAhaW1wb3J0YW50O1xcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZCAhaW1wb3J0YW50OyB9XFxuICAuYWxpZ24taXRlbXMtbWQtY2VudGVyIHtcXG4gICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50O1xcbiAgICAgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50O1xcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDsgfVxcbiAgLmFsaWduLWl0ZW1zLW1kLWJhc2VsaW5lIHtcXG4gICAgLXdlYmtpdC1ib3gtYWxpZ246IGJhc2VsaW5lICFpbXBvcnRhbnQ7XFxuICAgICAgICAtbXMtZmxleC1hbGlnbjogYmFzZWxpbmUgIWltcG9ydGFudDtcXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmUgIWltcG9ydGFudDsgfVxcbiAgLmFsaWduLWl0ZW1zLW1kLXN0cmV0Y2gge1xcbiAgICAtd2Via2l0LWJveC1hbGlnbjogc3RyZXRjaCAhaW1wb3J0YW50O1xcbiAgICAgICAgLW1zLWZsZXgtYWxpZ246IHN0cmV0Y2ggIWltcG9ydGFudDtcXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaCAhaW1wb3J0YW50OyB9XFxuICAuYWxpZ24tY29udGVudC1tZC1zdGFydCB7XFxuICAgIC1tcy1mbGV4LWxpbmUtcGFjazogc3RhcnQgIWltcG9ydGFudDtcXG4gICAgICAgIGFsaWduLWNvbnRlbnQ6IGZsZXgtc3RhcnQgIWltcG9ydGFudDsgfVxcbiAgLmFsaWduLWNvbnRlbnQtbWQtZW5kIHtcXG4gICAgLW1zLWZsZXgtbGluZS1wYWNrOiBlbmQgIWltcG9ydGFudDtcXG4gICAgICAgIGFsaWduLWNvbnRlbnQ6IGZsZXgtZW5kICFpbXBvcnRhbnQ7IH1cXG4gIC5hbGlnbi1jb250ZW50LW1kLWNlbnRlciB7XFxuICAgIC1tcy1mbGV4LWxpbmUtcGFjazogY2VudGVyICFpbXBvcnRhbnQ7XFxuICAgICAgICBhbGlnbi1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDsgfVxcbiAgLmFsaWduLWNvbnRlbnQtbWQtYmV0d2VlbiB7XFxuICAgIC1tcy1mbGV4LWxpbmUtcGFjazoganVzdGlmeSAhaW1wb3J0YW50O1xcbiAgICAgICAgYWxpZ24tY29udGVudDogc3BhY2UtYmV0d2VlbiAhaW1wb3J0YW50OyB9XFxuICAuYWxpZ24tY29udGVudC1tZC1hcm91bmQge1xcbiAgICAtbXMtZmxleC1saW5lLXBhY2s6IGRpc3RyaWJ1dGUgIWltcG9ydGFudDtcXG4gICAgICAgIGFsaWduLWNvbnRlbnQ6IHNwYWNlLWFyb3VuZCAhaW1wb3J0YW50OyB9XFxuICAuYWxpZ24tY29udGVudC1tZC1zdHJldGNoIHtcXG4gICAgLW1zLWZsZXgtbGluZS1wYWNrOiBzdHJldGNoICFpbXBvcnRhbnQ7XFxuICAgICAgICBhbGlnbi1jb250ZW50OiBzdHJldGNoICFpbXBvcnRhbnQ7IH1cXG4gIC5hbGlnbi1zZWxmLW1kLWF1dG8ge1xcbiAgICAtbXMtZmxleC1pdGVtLWFsaWduOiBhdXRvICFpbXBvcnRhbnQ7XFxuICAgICAgICBhbGlnbi1zZWxmOiBhdXRvICFpbXBvcnRhbnQ7IH1cXG4gIC5hbGlnbi1zZWxmLW1kLXN0YXJ0IHtcXG4gICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogc3RhcnQgIWltcG9ydGFudDtcXG4gICAgICAgIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQgIWltcG9ydGFudDsgfVxcbiAgLmFsaWduLXNlbGYtbWQtZW5kIHtcXG4gICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogZW5kICFpbXBvcnRhbnQ7XFxuICAgICAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZCAhaW1wb3J0YW50OyB9XFxuICAuYWxpZ24tc2VsZi1tZC1jZW50ZXIge1xcbiAgICAtbXMtZmxleC1pdGVtLWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDtcXG4gICAgICAgIGFsaWduLXNlbGY6IGNlbnRlciAhaW1wb3J0YW50OyB9XFxuICAuYWxpZ24tc2VsZi1tZC1iYXNlbGluZSB7XFxuICAgIC1tcy1mbGV4LWl0ZW0tYWxpZ246IGJhc2VsaW5lICFpbXBvcnRhbnQ7XFxuICAgICAgICBhbGlnbi1zZWxmOiBiYXNlbGluZSAhaW1wb3J0YW50OyB9XFxuICAuYWxpZ24tc2VsZi1tZC1zdHJldGNoIHtcXG4gICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogc3RyZXRjaCAhaW1wb3J0YW50O1xcbiAgICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaCAhaW1wb3J0YW50OyB9IH1cXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcXG4gIC5mbGV4LWxnLWZpcnN0IHtcXG4gICAgLXdlYmtpdC1ib3gtb3JkaW5hbC1ncm91cDogMDtcXG4gICAgICAgIC1tcy1mbGV4LW9yZGVyOiAtMTtcXG4gICAgICAgICAgICBvcmRlcjogLTE7IH1cXG4gIC5mbGV4LWxnLWxhc3Qge1xcbiAgICAtd2Via2l0LWJveC1vcmRpbmFsLWdyb3VwOiAyO1xcbiAgICAgICAgLW1zLWZsZXgtb3JkZXI6IDE7XFxuICAgICAgICAgICAgb3JkZXI6IDE7IH1cXG4gIC5mbGV4LWxnLXVub3JkZXJlZCB7XFxuICAgIC13ZWJraXQtYm94LW9yZGluYWwtZ3JvdXA6IDE7XFxuICAgICAgICAtbXMtZmxleC1vcmRlcjogMDtcXG4gICAgICAgICAgICBvcmRlcjogMDsgfVxcbiAgLmZsZXgtbGctcm93IHtcXG4gICAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsICFpbXBvcnRhbnQ7XFxuICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsICFpbXBvcnRhbnQ7XFxuICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdyAhaW1wb3J0YW50O1xcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3cgIWltcG9ydGFudDsgfVxcbiAgLmZsZXgtbGctY29sdW1uIHtcXG4gICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbCAhaW1wb3J0YW50O1xcbiAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbCAhaW1wb3J0YW50O1xcbiAgICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW4gIWltcG9ydGFudDtcXG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uICFpbXBvcnRhbnQ7IH1cXG4gIC5mbGV4LWxnLXJvdy1yZXZlcnNlIHtcXG4gICAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsICFpbXBvcnRhbnQ7XFxuICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogcmV2ZXJzZSAhaW1wb3J0YW50O1xcbiAgICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZSAhaW1wb3J0YW50O1xcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZSAhaW1wb3J0YW50OyB9XFxuICAuZmxleC1sZy1jb2x1bW4tcmV2ZXJzZSB7XFxuICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWwgIWltcG9ydGFudDtcXG4gICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiByZXZlcnNlICFpbXBvcnRhbnQ7XFxuICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlICFpbXBvcnRhbnQ7XFxuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlICFpbXBvcnRhbnQ7IH1cXG4gIC5mbGV4LWxnLXdyYXAge1xcbiAgICAtbXMtZmxleC13cmFwOiB3cmFwICFpbXBvcnRhbnQ7XFxuICAgICAgICBmbGV4LXdyYXA6IHdyYXAgIWltcG9ydGFudDsgfVxcbiAgLmZsZXgtbGctbm93cmFwIHtcXG4gICAgLW1zLWZsZXgtd3JhcDogbm93cmFwICFpbXBvcnRhbnQ7XFxuICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcCAhaW1wb3J0YW50OyB9XFxuICAuZmxleC1sZy13cmFwLXJldmVyc2Uge1xcbiAgICAtbXMtZmxleC13cmFwOiB3cmFwLXJldmVyc2UgIWltcG9ydGFudDtcXG4gICAgICAgIGZsZXgtd3JhcDogd3JhcC1yZXZlcnNlICFpbXBvcnRhbnQ7IH1cXG4gIC5qdXN0aWZ5LWNvbnRlbnQtbGctc3RhcnQge1xcbiAgICAtd2Via2l0LWJveC1wYWNrOiBzdGFydCAhaW1wb3J0YW50O1xcbiAgICAgICAgLW1zLWZsZXgtcGFjazogc3RhcnQgIWltcG9ydGFudDtcXG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQgIWltcG9ydGFudDsgfVxcbiAgLmp1c3RpZnktY29udGVudC1sZy1lbmQge1xcbiAgICAtd2Via2l0LWJveC1wYWNrOiBlbmQgIWltcG9ydGFudDtcXG4gICAgICAgIC1tcy1mbGV4LXBhY2s6IGVuZCAhaW1wb3J0YW50O1xcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQgIWltcG9ydGFudDsgfVxcbiAgLmp1c3RpZnktY29udGVudC1sZy1jZW50ZXIge1xcbiAgICAtd2Via2l0LWJveC1wYWNrOiBjZW50ZXIgIWltcG9ydGFudDtcXG4gICAgICAgIC1tcy1mbGV4LXBhY2s6IGNlbnRlciAhaW1wb3J0YW50O1xcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyICFpbXBvcnRhbnQ7IH1cXG4gIC5qdXN0aWZ5LWNvbnRlbnQtbGctYmV0d2VlbiB7XFxuICAgIC13ZWJraXQtYm94LXBhY2s6IGp1c3RpZnkgIWltcG9ydGFudDtcXG4gICAgICAgIC1tcy1mbGV4LXBhY2s6IGp1c3RpZnkgIWltcG9ydGFudDtcXG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW4gIWltcG9ydGFudDsgfVxcbiAgLmp1c3RpZnktY29udGVudC1sZy1hcm91bmQge1xcbiAgICAtbXMtZmxleC1wYWNrOiBkaXN0cmlidXRlICFpbXBvcnRhbnQ7XFxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZCAhaW1wb3J0YW50OyB9XFxuICAuYWxpZ24taXRlbXMtbGctc3RhcnQge1xcbiAgICAtd2Via2l0LWJveC1hbGlnbjogc3RhcnQgIWltcG9ydGFudDtcXG4gICAgICAgIC1tcy1mbGV4LWFsaWduOiBzdGFydCAhaW1wb3J0YW50O1xcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7IH1cXG4gIC5hbGlnbi1pdGVtcy1sZy1lbmQge1xcbiAgICAtd2Via2l0LWJveC1hbGlnbjogZW5kICFpbXBvcnRhbnQ7XFxuICAgICAgICAtbXMtZmxleC1hbGlnbjogZW5kICFpbXBvcnRhbnQ7XFxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kICFpbXBvcnRhbnQ7IH1cXG4gIC5hbGlnbi1pdGVtcy1sZy1jZW50ZXIge1xcbiAgICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7XFxuICAgICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7XFxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50OyB9XFxuICAuYWxpZ24taXRlbXMtbGctYmFzZWxpbmUge1xcbiAgICAtd2Via2l0LWJveC1hbGlnbjogYmFzZWxpbmUgIWltcG9ydGFudDtcXG4gICAgICAgIC1tcy1mbGV4LWFsaWduOiBiYXNlbGluZSAhaW1wb3J0YW50O1xcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZSAhaW1wb3J0YW50OyB9XFxuICAuYWxpZ24taXRlbXMtbGctc3RyZXRjaCB7XFxuICAgIC13ZWJraXQtYm94LWFsaWduOiBzdHJldGNoICFpbXBvcnRhbnQ7XFxuICAgICAgICAtbXMtZmxleC1hbGlnbjogc3RyZXRjaCAhaW1wb3J0YW50O1xcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoICFpbXBvcnRhbnQ7IH1cXG4gIC5hbGlnbi1jb250ZW50LWxnLXN0YXJ0IHtcXG4gICAgLW1zLWZsZXgtbGluZS1wYWNrOiBzdGFydCAhaW1wb3J0YW50O1xcbiAgICAgICAgYWxpZ24tY29udGVudDogZmxleC1zdGFydCAhaW1wb3J0YW50OyB9XFxuICAuYWxpZ24tY29udGVudC1sZy1lbmQge1xcbiAgICAtbXMtZmxleC1saW5lLXBhY2s6IGVuZCAhaW1wb3J0YW50O1xcbiAgICAgICAgYWxpZ24tY29udGVudDogZmxleC1lbmQgIWltcG9ydGFudDsgfVxcbiAgLmFsaWduLWNvbnRlbnQtbGctY2VudGVyIHtcXG4gICAgLW1zLWZsZXgtbGluZS1wYWNrOiBjZW50ZXIgIWltcG9ydGFudDtcXG4gICAgICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlciAhaW1wb3J0YW50OyB9XFxuICAuYWxpZ24tY29udGVudC1sZy1iZXR3ZWVuIHtcXG4gICAgLW1zLWZsZXgtbGluZS1wYWNrOiBqdXN0aWZ5ICFpbXBvcnRhbnQ7XFxuICAgICAgICBhbGlnbi1jb250ZW50OiBzcGFjZS1iZXR3ZWVuICFpbXBvcnRhbnQ7IH1cXG4gIC5hbGlnbi1jb250ZW50LWxnLWFyb3VuZCB7XFxuICAgIC1tcy1mbGV4LWxpbmUtcGFjazogZGlzdHJpYnV0ZSAhaW1wb3J0YW50O1xcbiAgICAgICAgYWxpZ24tY29udGVudDogc3BhY2UtYXJvdW5kICFpbXBvcnRhbnQ7IH1cXG4gIC5hbGlnbi1jb250ZW50LWxnLXN0cmV0Y2gge1xcbiAgICAtbXMtZmxleC1saW5lLXBhY2s6IHN0cmV0Y2ggIWltcG9ydGFudDtcXG4gICAgICAgIGFsaWduLWNvbnRlbnQ6IHN0cmV0Y2ggIWltcG9ydGFudDsgfVxcbiAgLmFsaWduLXNlbGYtbGctYXV0byB7XFxuICAgIC1tcy1mbGV4LWl0ZW0tYWxpZ246IGF1dG8gIWltcG9ydGFudDtcXG4gICAgICAgIGFsaWduLXNlbGY6IGF1dG8gIWltcG9ydGFudDsgfVxcbiAgLmFsaWduLXNlbGYtbGctc3RhcnQge1xcbiAgICAtbXMtZmxleC1pdGVtLWFsaWduOiBzdGFydCAhaW1wb3J0YW50O1xcbiAgICAgICAgYWxpZ24tc2VsZjogZmxleC1zdGFydCAhaW1wb3J0YW50OyB9XFxuICAuYWxpZ24tc2VsZi1sZy1lbmQge1xcbiAgICAtbXMtZmxleC1pdGVtLWFsaWduOiBlbmQgIWltcG9ydGFudDtcXG4gICAgICAgIGFsaWduLXNlbGY6IGZsZXgtZW5kICFpbXBvcnRhbnQ7IH1cXG4gIC5hbGlnbi1zZWxmLWxnLWNlbnRlciB7XFxuICAgIC1tcy1mbGV4LWl0ZW0tYWxpZ246IGNlbnRlciAhaW1wb3J0YW50O1xcbiAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyICFpbXBvcnRhbnQ7IH1cXG4gIC5hbGlnbi1zZWxmLWxnLWJhc2VsaW5lIHtcXG4gICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogYmFzZWxpbmUgIWltcG9ydGFudDtcXG4gICAgICAgIGFsaWduLXNlbGY6IGJhc2VsaW5lICFpbXBvcnRhbnQ7IH1cXG4gIC5hbGlnbi1zZWxmLWxnLXN0cmV0Y2gge1xcbiAgICAtbXMtZmxleC1pdGVtLWFsaWduOiBzdHJldGNoICFpbXBvcnRhbnQ7XFxuICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoICFpbXBvcnRhbnQ7IH0gfVxcbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcXG4gIC5mbGV4LXhsLWZpcnN0IHtcXG4gICAgLXdlYmtpdC1ib3gtb3JkaW5hbC1ncm91cDogMDtcXG4gICAgICAgIC1tcy1mbGV4LW9yZGVyOiAtMTtcXG4gICAgICAgICAgICBvcmRlcjogLTE7IH1cXG4gIC5mbGV4LXhsLWxhc3Qge1xcbiAgICAtd2Via2l0LWJveC1vcmRpbmFsLWdyb3VwOiAyO1xcbiAgICAgICAgLW1zLWZsZXgtb3JkZXI6IDE7XFxuICAgICAgICAgICAgb3JkZXI6IDE7IH1cXG4gIC5mbGV4LXhsLXVub3JkZXJlZCB7XFxuICAgIC13ZWJraXQtYm94LW9yZGluYWwtZ3JvdXA6IDE7XFxuICAgICAgICAtbXMtZmxleC1vcmRlcjogMDtcXG4gICAgICAgICAgICBvcmRlcjogMDsgfVxcbiAgLmZsZXgteGwtcm93IHtcXG4gICAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsICFpbXBvcnRhbnQ7XFxuICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsICFpbXBvcnRhbnQ7XFxuICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdyAhaW1wb3J0YW50O1xcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3cgIWltcG9ydGFudDsgfVxcbiAgLmZsZXgteGwtY29sdW1uIHtcXG4gICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbCAhaW1wb3J0YW50O1xcbiAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbCAhaW1wb3J0YW50O1xcbiAgICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW4gIWltcG9ydGFudDtcXG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uICFpbXBvcnRhbnQ7IH1cXG4gIC5mbGV4LXhsLXJvdy1yZXZlcnNlIHtcXG4gICAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsICFpbXBvcnRhbnQ7XFxuICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogcmV2ZXJzZSAhaW1wb3J0YW50O1xcbiAgICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZSAhaW1wb3J0YW50O1xcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZSAhaW1wb3J0YW50OyB9XFxuICAuZmxleC14bC1jb2x1bW4tcmV2ZXJzZSB7XFxuICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWwgIWltcG9ydGFudDtcXG4gICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiByZXZlcnNlICFpbXBvcnRhbnQ7XFxuICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlICFpbXBvcnRhbnQ7XFxuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlICFpbXBvcnRhbnQ7IH1cXG4gIC5mbGV4LXhsLXdyYXAge1xcbiAgICAtbXMtZmxleC13cmFwOiB3cmFwICFpbXBvcnRhbnQ7XFxuICAgICAgICBmbGV4LXdyYXA6IHdyYXAgIWltcG9ydGFudDsgfVxcbiAgLmZsZXgteGwtbm93cmFwIHtcXG4gICAgLW1zLWZsZXgtd3JhcDogbm93cmFwICFpbXBvcnRhbnQ7XFxuICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcCAhaW1wb3J0YW50OyB9XFxuICAuZmxleC14bC13cmFwLXJldmVyc2Uge1xcbiAgICAtbXMtZmxleC13cmFwOiB3cmFwLXJldmVyc2UgIWltcG9ydGFudDtcXG4gICAgICAgIGZsZXgtd3JhcDogd3JhcC1yZXZlcnNlICFpbXBvcnRhbnQ7IH1cXG4gIC5qdXN0aWZ5LWNvbnRlbnQteGwtc3RhcnQge1xcbiAgICAtd2Via2l0LWJveC1wYWNrOiBzdGFydCAhaW1wb3J0YW50O1xcbiAgICAgICAgLW1zLWZsZXgtcGFjazogc3RhcnQgIWltcG9ydGFudDtcXG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQgIWltcG9ydGFudDsgfVxcbiAgLmp1c3RpZnktY29udGVudC14bC1lbmQge1xcbiAgICAtd2Via2l0LWJveC1wYWNrOiBlbmQgIWltcG9ydGFudDtcXG4gICAgICAgIC1tcy1mbGV4LXBhY2s6IGVuZCAhaW1wb3J0YW50O1xcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQgIWltcG9ydGFudDsgfVxcbiAgLmp1c3RpZnktY29udGVudC14bC1jZW50ZXIge1xcbiAgICAtd2Via2l0LWJveC1wYWNrOiBjZW50ZXIgIWltcG9ydGFudDtcXG4gICAgICAgIC1tcy1mbGV4LXBhY2s6IGNlbnRlciAhaW1wb3J0YW50O1xcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyICFpbXBvcnRhbnQ7IH1cXG4gIC5qdXN0aWZ5LWNvbnRlbnQteGwtYmV0d2VlbiB7XFxuICAgIC13ZWJraXQtYm94LXBhY2s6IGp1c3RpZnkgIWltcG9ydGFudDtcXG4gICAgICAgIC1tcy1mbGV4LXBhY2s6IGp1c3RpZnkgIWltcG9ydGFudDtcXG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW4gIWltcG9ydGFudDsgfVxcbiAgLmp1c3RpZnktY29udGVudC14bC1hcm91bmQge1xcbiAgICAtbXMtZmxleC1wYWNrOiBkaXN0cmlidXRlICFpbXBvcnRhbnQ7XFxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZCAhaW1wb3J0YW50OyB9XFxuICAuYWxpZ24taXRlbXMteGwtc3RhcnQge1xcbiAgICAtd2Via2l0LWJveC1hbGlnbjogc3RhcnQgIWltcG9ydGFudDtcXG4gICAgICAgIC1tcy1mbGV4LWFsaWduOiBzdGFydCAhaW1wb3J0YW50O1xcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7IH1cXG4gIC5hbGlnbi1pdGVtcy14bC1lbmQge1xcbiAgICAtd2Via2l0LWJveC1hbGlnbjogZW5kICFpbXBvcnRhbnQ7XFxuICAgICAgICAtbXMtZmxleC1hbGlnbjogZW5kICFpbXBvcnRhbnQ7XFxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kICFpbXBvcnRhbnQ7IH1cXG4gIC5hbGlnbi1pdGVtcy14bC1jZW50ZXIge1xcbiAgICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7XFxuICAgICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7XFxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50OyB9XFxuICAuYWxpZ24taXRlbXMteGwtYmFzZWxpbmUge1xcbiAgICAtd2Via2l0LWJveC1hbGlnbjogYmFzZWxpbmUgIWltcG9ydGFudDtcXG4gICAgICAgIC1tcy1mbGV4LWFsaWduOiBiYXNlbGluZSAhaW1wb3J0YW50O1xcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZSAhaW1wb3J0YW50OyB9XFxuICAuYWxpZ24taXRlbXMteGwtc3RyZXRjaCB7XFxuICAgIC13ZWJraXQtYm94LWFsaWduOiBzdHJldGNoICFpbXBvcnRhbnQ7XFxuICAgICAgICAtbXMtZmxleC1hbGlnbjogc3RyZXRjaCAhaW1wb3J0YW50O1xcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoICFpbXBvcnRhbnQ7IH1cXG4gIC5hbGlnbi1jb250ZW50LXhsLXN0YXJ0IHtcXG4gICAgLW1zLWZsZXgtbGluZS1wYWNrOiBzdGFydCAhaW1wb3J0YW50O1xcbiAgICAgICAgYWxpZ24tY29udGVudDogZmxleC1zdGFydCAhaW1wb3J0YW50OyB9XFxuICAuYWxpZ24tY29udGVudC14bC1lbmQge1xcbiAgICAtbXMtZmxleC1saW5lLXBhY2s6IGVuZCAhaW1wb3J0YW50O1xcbiAgICAgICAgYWxpZ24tY29udGVudDogZmxleC1lbmQgIWltcG9ydGFudDsgfVxcbiAgLmFsaWduLWNvbnRlbnQteGwtY2VudGVyIHtcXG4gICAgLW1zLWZsZXgtbGluZS1wYWNrOiBjZW50ZXIgIWltcG9ydGFudDtcXG4gICAgICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlciAhaW1wb3J0YW50OyB9XFxuICAuYWxpZ24tY29udGVudC14bC1iZXR3ZWVuIHtcXG4gICAgLW1zLWZsZXgtbGluZS1wYWNrOiBqdXN0aWZ5ICFpbXBvcnRhbnQ7XFxuICAgICAgICBhbGlnbi1jb250ZW50OiBzcGFjZS1iZXR3ZWVuICFpbXBvcnRhbnQ7IH1cXG4gIC5hbGlnbi1jb250ZW50LXhsLWFyb3VuZCB7XFxuICAgIC1tcy1mbGV4LWxpbmUtcGFjazogZGlzdHJpYnV0ZSAhaW1wb3J0YW50O1xcbiAgICAgICAgYWxpZ24tY29udGVudDogc3BhY2UtYXJvdW5kICFpbXBvcnRhbnQ7IH1cXG4gIC5hbGlnbi1jb250ZW50LXhsLXN0cmV0Y2gge1xcbiAgICAtbXMtZmxleC1saW5lLXBhY2s6IHN0cmV0Y2ggIWltcG9ydGFudDtcXG4gICAgICAgIGFsaWduLWNvbnRlbnQ6IHN0cmV0Y2ggIWltcG9ydGFudDsgfVxcbiAgLmFsaWduLXNlbGYteGwtYXV0byB7XFxuICAgIC1tcy1mbGV4LWl0ZW0tYWxpZ246IGF1dG8gIWltcG9ydGFudDtcXG4gICAgICAgIGFsaWduLXNlbGY6IGF1dG8gIWltcG9ydGFudDsgfVxcbiAgLmFsaWduLXNlbGYteGwtc3RhcnQge1xcbiAgICAtbXMtZmxleC1pdGVtLWFsaWduOiBzdGFydCAhaW1wb3J0YW50O1xcbiAgICAgICAgYWxpZ24tc2VsZjogZmxleC1zdGFydCAhaW1wb3J0YW50OyB9XFxuICAuYWxpZ24tc2VsZi14bC1lbmQge1xcbiAgICAtbXMtZmxleC1pdGVtLWFsaWduOiBlbmQgIWltcG9ydGFudDtcXG4gICAgICAgIGFsaWduLXNlbGY6IGZsZXgtZW5kICFpbXBvcnRhbnQ7IH1cXG4gIC5hbGlnbi1zZWxmLXhsLWNlbnRlciB7XFxuICAgIC1tcy1mbGV4LWl0ZW0tYWxpZ246IGNlbnRlciAhaW1wb3J0YW50O1xcbiAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyICFpbXBvcnRhbnQ7IH1cXG4gIC5hbGlnbi1zZWxmLXhsLWJhc2VsaW5lIHtcXG4gICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogYmFzZWxpbmUgIWltcG9ydGFudDtcXG4gICAgICAgIGFsaWduLXNlbGY6IGJhc2VsaW5lICFpbXBvcnRhbnQ7IH1cXG4gIC5hbGlnbi1zZWxmLXhsLXN0cmV0Y2gge1xcbiAgICAtbXMtZmxleC1pdGVtLWFsaWduOiBzdHJldGNoICFpbXBvcnRhbnQ7XFxuICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoICFpbXBvcnRhbnQ7IH0gfVxcbi5mbG9hdC1sZWZ0IHtcXG4gIGZsb2F0OiBsZWZ0ICFpbXBvcnRhbnQ7IH1cXG4uZmxvYXQtcmlnaHQge1xcbiAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7IH1cXG4uZmxvYXQtbm9uZSB7XFxuICBmbG9hdDogbm9uZSAhaW1wb3J0YW50OyB9XFxuQG1lZGlhIChtaW4td2lkdGg6IDU3NnB4KSB7XFxuICAuZmxvYXQtc20tbGVmdCB7XFxuICAgIGZsb2F0OiBsZWZ0ICFpbXBvcnRhbnQ7IH1cXG4gIC5mbG9hdC1zbS1yaWdodCB7XFxuICAgIGZsb2F0OiByaWdodCAhaW1wb3J0YW50OyB9XFxuICAuZmxvYXQtc20tbm9uZSB7XFxuICAgIGZsb2F0OiBub25lICFpbXBvcnRhbnQ7IH0gfVxcbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xcbiAgLmZsb2F0LW1kLWxlZnQge1xcbiAgICBmbG9hdDogbGVmdCAhaW1wb3J0YW50OyB9XFxuICAuZmxvYXQtbWQtcmlnaHQge1xcbiAgICBmbG9hdDogcmlnaHQgIWltcG9ydGFudDsgfVxcbiAgLmZsb2F0LW1kLW5vbmUge1xcbiAgICBmbG9hdDogbm9uZSAhaW1wb3J0YW50OyB9IH1cXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcXG4gIC5mbG9hdC1sZy1sZWZ0IHtcXG4gICAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDsgfVxcbiAgLmZsb2F0LWxnLXJpZ2h0IHtcXG4gICAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7IH1cXG4gIC5mbG9hdC1sZy1ub25lIHtcXG4gICAgZmxvYXQ6IG5vbmUgIWltcG9ydGFudDsgfSB9XFxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xcbiAgLmZsb2F0LXhsLWxlZnQge1xcbiAgICBmbG9hdDogbGVmdCAhaW1wb3J0YW50OyB9XFxuICAuZmxvYXQteGwtcmlnaHQge1xcbiAgICBmbG9hdDogcmlnaHQgIWltcG9ydGFudDsgfVxcbiAgLmZsb2F0LXhsLW5vbmUge1xcbiAgICBmbG9hdDogbm9uZSAhaW1wb3J0YW50OyB9IH1cXG4uZml4ZWQtdG9wIHtcXG4gIHBvc2l0aW9uOiBmaXhlZDtcXG4gIHRvcDogMDtcXG4gIHJpZ2h0OiAwO1xcbiAgbGVmdDogMDtcXG4gIHotaW5kZXg6IDEwMzA7IH1cXG4uZml4ZWQtYm90dG9tIHtcXG4gIHBvc2l0aW9uOiBmaXhlZDtcXG4gIHJpZ2h0OiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgbGVmdDogMDtcXG4gIHotaW5kZXg6IDEwMzA7IH1cXG4uc3RpY2t5LXRvcCB7XFxuICBwb3NpdGlvbjogLXdlYmtpdC1zdGlja3k7XFxuICBwb3NpdGlvbjogc3RpY2t5O1xcbiAgdG9wOiAwO1xcbiAgei1pbmRleDogMTAzMDsgfVxcbi5zci1vbmx5IHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHdpZHRoOiAxcHg7XFxuICBoZWlnaHQ6IDFweDtcXG4gIHBhZGRpbmc6IDA7XFxuICBtYXJnaW46IC0xcHg7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcXG4gIGJvcmRlcjogMDsgfVxcbi5zci1vbmx5LWZvY3VzYWJsZTphY3RpdmUsIC5zci1vbmx5LWZvY3VzYWJsZTpmb2N1cyB7XFxuICBwb3NpdGlvbjogc3RhdGljO1xcbiAgd2lkdGg6IGF1dG87XFxuICBoZWlnaHQ6IGF1dG87XFxuICBtYXJnaW46IDA7XFxuICBvdmVyZmxvdzogdmlzaWJsZTtcXG4gIGNsaXA6IGF1dG87IH1cXG4udy0yNSB7XFxuICB3aWR0aDogMjUlICFpbXBvcnRhbnQ7IH1cXG4udy01MCB7XFxuICB3aWR0aDogNTAlICFpbXBvcnRhbnQ7IH1cXG4udy03NSB7XFxuICB3aWR0aDogNzUlICFpbXBvcnRhbnQ7IH1cXG4udy0xMDAge1xcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfVxcbi5oLTI1IHtcXG4gIGhlaWdodDogMjUlICFpbXBvcnRhbnQ7IH1cXG4uaC01MCB7XFxuICBoZWlnaHQ6IDUwJSAhaW1wb3J0YW50OyB9XFxuLmgtNzUge1xcbiAgaGVpZ2h0OiA3NSUgIWltcG9ydGFudDsgfVxcbi5oLTEwMCB7XFxuICBoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDsgfVxcbi5tdy0xMDAge1xcbiAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH1cXG4ubWgtMTAwIHtcXG4gIG1heC1oZWlnaHQ6IDEwMCUgIWltcG9ydGFudDsgfVxcbi5tLTAge1xcbiAgbWFyZ2luOiAwIDAgIWltcG9ydGFudDsgfVxcbi5tdC0wIHtcXG4gIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDsgfVxcbi5tci0wIHtcXG4gIG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50OyB9XFxuLm1iLTAge1xcbiAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50OyB9XFxuLm1sLTAge1xcbiAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDsgfVxcbi5teC0wIHtcXG4gIG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50O1xcbiAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDsgfVxcbi5teS0wIHtcXG4gIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcXG4gIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDsgfVxcbi5tLTEge1xcbiAgbWFyZ2luOiAwLjI1cmVtIDAuMjVyZW0gIWltcG9ydGFudDsgfVxcbi5tdC0xIHtcXG4gIG1hcmdpbi10b3A6IDAuMjVyZW0gIWltcG9ydGFudDsgfVxcbi5tci0xIHtcXG4gIG1hcmdpbi1yaWdodDogMC4yNXJlbSAhaW1wb3J0YW50OyB9XFxuLm1iLTEge1xcbiAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbSAhaW1wb3J0YW50OyB9XFxuLm1sLTEge1xcbiAgbWFyZ2luLWxlZnQ6IDAuMjVyZW0gIWltcG9ydGFudDsgfVxcbi5teC0xIHtcXG4gIG1hcmdpbi1yaWdodDogMC4yNXJlbSAhaW1wb3J0YW50O1xcbiAgbWFyZ2luLWxlZnQ6IDAuMjVyZW0gIWltcG9ydGFudDsgfVxcbi5teS0xIHtcXG4gIG1hcmdpbi10b3A6IDAuMjVyZW0gIWltcG9ydGFudDtcXG4gIG1hcmdpbi1ib3R0b206IDAuMjVyZW0gIWltcG9ydGFudDsgfVxcbi5tLTIge1xcbiAgbWFyZ2luOiAwLjVyZW0gMC41cmVtICFpbXBvcnRhbnQ7IH1cXG4ubXQtMiB7XFxuICBtYXJnaW4tdG9wOiAwLjVyZW0gIWltcG9ydGFudDsgfVxcbi5tci0yIHtcXG4gIG1hcmdpbi1yaWdodDogMC41cmVtICFpbXBvcnRhbnQ7IH1cXG4ubWItMiB7XFxuICBtYXJnaW4tYm90dG9tOiAwLjVyZW0gIWltcG9ydGFudDsgfVxcbi5tbC0yIHtcXG4gIG1hcmdpbi1sZWZ0OiAwLjVyZW0gIWltcG9ydGFudDsgfVxcbi5teC0yIHtcXG4gIG1hcmdpbi1yaWdodDogMC41cmVtICFpbXBvcnRhbnQ7XFxuICBtYXJnaW4tbGVmdDogMC41cmVtICFpbXBvcnRhbnQ7IH1cXG4ubXktMiB7XFxuICBtYXJnaW4tdG9wOiAwLjVyZW0gIWltcG9ydGFudDtcXG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbSAhaW1wb3J0YW50OyB9XFxuLm0tMyB7XFxuICBtYXJnaW46IDFyZW0gMXJlbSAhaW1wb3J0YW50OyB9XFxuLm10LTMge1xcbiAgbWFyZ2luLXRvcDogMXJlbSAhaW1wb3J0YW50OyB9XFxuLm1yLTMge1xcbiAgbWFyZ2luLXJpZ2h0OiAxcmVtICFpbXBvcnRhbnQ7IH1cXG4ubWItMyB7XFxuICBtYXJnaW4tYm90dG9tOiAxcmVtICFpbXBvcnRhbnQ7IH1cXG4ubWwtMyB7XFxuICBtYXJnaW4tbGVmdDogMXJlbSAhaW1wb3J0YW50OyB9XFxuLm14LTMge1xcbiAgbWFyZ2luLXJpZ2h0OiAxcmVtICFpbXBvcnRhbnQ7XFxuICBtYXJnaW4tbGVmdDogMXJlbSAhaW1wb3J0YW50OyB9XFxuLm15LTMge1xcbiAgbWFyZ2luLXRvcDogMXJlbSAhaW1wb3J0YW50O1xcbiAgbWFyZ2luLWJvdHRvbTogMXJlbSAhaW1wb3J0YW50OyB9XFxuLm0tNCB7XFxuICBtYXJnaW46IDEuNXJlbSAxLjVyZW0gIWltcG9ydGFudDsgfVxcbi5tdC00IHtcXG4gIG1hcmdpbi10b3A6IDEuNXJlbSAhaW1wb3J0YW50OyB9XFxuLm1yLTQge1xcbiAgbWFyZ2luLXJpZ2h0OiAxLjVyZW0gIWltcG9ydGFudDsgfVxcbi5tYi00IHtcXG4gIG1hcmdpbi1ib3R0b206IDEuNXJlbSAhaW1wb3J0YW50OyB9XFxuLm1sLTQge1xcbiAgbWFyZ2luLWxlZnQ6IDEuNXJlbSAhaW1wb3J0YW50OyB9XFxuLm14LTQge1xcbiAgbWFyZ2luLXJpZ2h0OiAxLjVyZW0gIWltcG9ydGFudDtcXG4gIG1hcmdpbi1sZWZ0OiAxLjVyZW0gIWltcG9ydGFudDsgfVxcbi5teS00IHtcXG4gIG1hcmdpbi10b3A6IDEuNXJlbSAhaW1wb3J0YW50O1xcbiAgbWFyZ2luLWJvdHRvbTogMS41cmVtICFpbXBvcnRhbnQ7IH1cXG4ubS01IHtcXG4gIG1hcmdpbjogM3JlbSAzcmVtICFpbXBvcnRhbnQ7IH1cXG4ubXQtNSB7XFxuICBtYXJnaW4tdG9wOiAzcmVtICFpbXBvcnRhbnQ7IH1cXG4ubXItNSB7XFxuICBtYXJnaW4tcmlnaHQ6IDNyZW0gIWltcG9ydGFudDsgfVxcbi5tYi01IHtcXG4gIG1hcmdpbi1ib3R0b206IDNyZW0gIWltcG9ydGFudDsgfVxcbi5tbC01IHtcXG4gIG1hcmdpbi1sZWZ0OiAzcmVtICFpbXBvcnRhbnQ7IH1cXG4ubXgtNSB7XFxuICBtYXJnaW4tcmlnaHQ6IDNyZW0gIWltcG9ydGFudDtcXG4gIG1hcmdpbi1sZWZ0OiAzcmVtICFpbXBvcnRhbnQ7IH1cXG4ubXktNSB7XFxuICBtYXJnaW4tdG9wOiAzcmVtICFpbXBvcnRhbnQ7XFxuICBtYXJnaW4tYm90dG9tOiAzcmVtICFpbXBvcnRhbnQ7IH1cXG4ucC0wIHtcXG4gIHBhZGRpbmc6IDAgMCAhaW1wb3J0YW50OyB9XFxuLnB0LTAge1xcbiAgcGFkZGluZy10b3A6IDAgIWltcG9ydGFudDsgfVxcbi5wci0wIHtcXG4gIHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDsgfVxcbi5wYi0wIHtcXG4gIHBhZGRpbmctYm90dG9tOiAwICFpbXBvcnRhbnQ7IH1cXG4ucGwtMCB7XFxuICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDsgfVxcbi5weC0wIHtcXG4gIHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDtcXG4gIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50OyB9XFxuLnB5LTAge1xcbiAgcGFkZGluZy10b3A6IDAgIWltcG9ydGFudDtcXG4gIHBhZGRpbmctYm90dG9tOiAwICFpbXBvcnRhbnQ7IH1cXG4ucC0xIHtcXG4gIHBhZGRpbmc6IDAuMjVyZW0gMC4yNXJlbSAhaW1wb3J0YW50OyB9XFxuLnB0LTEge1xcbiAgcGFkZGluZy10b3A6IDAuMjVyZW0gIWltcG9ydGFudDsgfVxcbi5wci0xIHtcXG4gIHBhZGRpbmctcmlnaHQ6IDAuMjVyZW0gIWltcG9ydGFudDsgfVxcbi5wYi0xIHtcXG4gIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtICFpbXBvcnRhbnQ7IH1cXG4ucGwtMSB7XFxuICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW0gIWltcG9ydGFudDsgfVxcbi5weC0xIHtcXG4gIHBhZGRpbmctcmlnaHQ6IDAuMjVyZW0gIWltcG9ydGFudDtcXG4gIHBhZGRpbmctbGVmdDogMC4yNXJlbSAhaW1wb3J0YW50OyB9XFxuLnB5LTEge1xcbiAgcGFkZGluZy10b3A6IDAuMjVyZW0gIWltcG9ydGFudDtcXG4gIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtICFpbXBvcnRhbnQ7IH1cXG4ucC0yIHtcXG4gIHBhZGRpbmc6IDAuNXJlbSAwLjVyZW0gIWltcG9ydGFudDsgfVxcbi5wdC0yIHtcXG4gIHBhZGRpbmctdG9wOiAwLjVyZW0gIWltcG9ydGFudDsgfVxcbi5wci0yIHtcXG4gIHBhZGRpbmctcmlnaHQ6IDAuNXJlbSAhaW1wb3J0YW50OyB9XFxuLnBiLTIge1xcbiAgcGFkZGluZy1ib3R0b206IDAuNXJlbSAhaW1wb3J0YW50OyB9XFxuLnBsLTIge1xcbiAgcGFkZGluZy1sZWZ0OiAwLjVyZW0gIWltcG9ydGFudDsgfVxcbi5weC0yIHtcXG4gIHBhZGRpbmctcmlnaHQ6IDAuNXJlbSAhaW1wb3J0YW50O1xcbiAgcGFkZGluZy1sZWZ0OiAwLjVyZW0gIWltcG9ydGFudDsgfVxcbi5weS0yIHtcXG4gIHBhZGRpbmctdG9wOiAwLjVyZW0gIWltcG9ydGFudDtcXG4gIHBhZGRpbmctYm90dG9tOiAwLjVyZW0gIWltcG9ydGFudDsgfVxcbi5wLTMge1xcbiAgcGFkZGluZzogMXJlbSAxcmVtICFpbXBvcnRhbnQ7IH1cXG4ucHQtMyB7XFxuICBwYWRkaW5nLXRvcDogMXJlbSAhaW1wb3J0YW50OyB9XFxuLnByLTMge1xcbiAgcGFkZGluZy1yaWdodDogMXJlbSAhaW1wb3J0YW50OyB9XFxuLnBiLTMge1xcbiAgcGFkZGluZy1ib3R0b206IDFyZW0gIWltcG9ydGFudDsgfVxcbi5wbC0zIHtcXG4gIHBhZGRpbmctbGVmdDogMXJlbSAhaW1wb3J0YW50OyB9XFxuLnB4LTMge1xcbiAgcGFkZGluZy1yaWdodDogMXJlbSAhaW1wb3J0YW50O1xcbiAgcGFkZGluZy1sZWZ0OiAxcmVtICFpbXBvcnRhbnQ7IH1cXG4ucHktMyB7XFxuICBwYWRkaW5nLXRvcDogMXJlbSAhaW1wb3J0YW50O1xcbiAgcGFkZGluZy1ib3R0b206IDFyZW0gIWltcG9ydGFudDsgfVxcbi5wLTQge1xcbiAgcGFkZGluZzogMS41cmVtIDEuNXJlbSAhaW1wb3J0YW50OyB9XFxuLnB0LTQge1xcbiAgcGFkZGluZy10b3A6IDEuNXJlbSAhaW1wb3J0YW50OyB9XFxuLnByLTQge1xcbiAgcGFkZGluZy1yaWdodDogMS41cmVtICFpbXBvcnRhbnQ7IH1cXG4ucGItNCB7XFxuICBwYWRkaW5nLWJvdHRvbTogMS41cmVtICFpbXBvcnRhbnQ7IH1cXG4ucGwtNCB7XFxuICBwYWRkaW5nLWxlZnQ6IDEuNXJlbSAhaW1wb3J0YW50OyB9XFxuLnB4LTQge1xcbiAgcGFkZGluZy1yaWdodDogMS41cmVtICFpbXBvcnRhbnQ7XFxuICBwYWRkaW5nLWxlZnQ6IDEuNXJlbSAhaW1wb3J0YW50OyB9XFxuLnB5LTQge1xcbiAgcGFkZGluZy10b3A6IDEuNXJlbSAhaW1wb3J0YW50O1xcbiAgcGFkZGluZy1ib3R0b206IDEuNXJlbSAhaW1wb3J0YW50OyB9XFxuLnAtNSB7XFxuICBwYWRkaW5nOiAzcmVtIDNyZW0gIWltcG9ydGFudDsgfVxcbi5wdC01IHtcXG4gIHBhZGRpbmctdG9wOiAzcmVtICFpbXBvcnRhbnQ7IH1cXG4ucHItNSB7XFxuICBwYWRkaW5nLXJpZ2h0OiAzcmVtICFpbXBvcnRhbnQ7IH1cXG4ucGItNSB7XFxuICBwYWRkaW5nLWJvdHRvbTogM3JlbSAhaW1wb3J0YW50OyB9XFxuLnBsLTUge1xcbiAgcGFkZGluZy1sZWZ0OiAzcmVtICFpbXBvcnRhbnQ7IH1cXG4ucHgtNSB7XFxuICBwYWRkaW5nLXJpZ2h0OiAzcmVtICFpbXBvcnRhbnQ7XFxuICBwYWRkaW5nLWxlZnQ6IDNyZW0gIWltcG9ydGFudDsgfVxcbi5weS01IHtcXG4gIHBhZGRpbmctdG9wOiAzcmVtICFpbXBvcnRhbnQ7XFxuICBwYWRkaW5nLWJvdHRvbTogM3JlbSAhaW1wb3J0YW50OyB9XFxuLm0tYXV0byB7XFxuICBtYXJnaW46IGF1dG8gIWltcG9ydGFudDsgfVxcbi5tdC1hdXRvIHtcXG4gIG1hcmdpbi10b3A6IGF1dG8gIWltcG9ydGFudDsgfVxcbi5tci1hdXRvIHtcXG4gIG1hcmdpbi1yaWdodDogYXV0byAhaW1wb3J0YW50OyB9XFxuLm1iLWF1dG8ge1xcbiAgbWFyZ2luLWJvdHRvbTogYXV0byAhaW1wb3J0YW50OyB9XFxuLm1sLWF1dG8ge1xcbiAgbWFyZ2luLWxlZnQ6IGF1dG8gIWltcG9ydGFudDsgfVxcbi5teC1hdXRvIHtcXG4gIG1hcmdpbi1yaWdodDogYXV0byAhaW1wb3J0YW50O1xcbiAgbWFyZ2luLWxlZnQ6IGF1dG8gIWltcG9ydGFudDsgfVxcbi5teS1hdXRvIHtcXG4gIG1hcmdpbi10b3A6IGF1dG8gIWltcG9ydGFudDtcXG4gIG1hcmdpbi1ib3R0b206IGF1dG8gIWltcG9ydGFudDsgfVxcbkBtZWRpYSAobWluLXdpZHRoOiA1NzZweCkge1xcbiAgLm0tc20tMCB7XFxuICAgIG1hcmdpbjogMCAwICFpbXBvcnRhbnQ7IH1cXG4gIC5tdC1zbS0wIHtcXG4gICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50OyB9XFxuICAubXItc20tMCB7XFxuICAgIG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50OyB9XFxuICAubWItc20tMCB7XFxuICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDsgfVxcbiAgLm1sLXNtLTAge1xcbiAgICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50OyB9XFxuICAubXgtc20tMCB7XFxuICAgIG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50O1xcbiAgICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50OyB9XFxuICAubXktc20tMCB7XFxuICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcXG4gICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50OyB9XFxuICAubS1zbS0xIHtcXG4gICAgbWFyZ2luOiAwLjI1cmVtIDAuMjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLm10LXNtLTEge1xcbiAgICBtYXJnaW4tdG9wOiAwLjI1cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5tci1zbS0xIHtcXG4gICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5tYi1zbS0xIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbSAhaW1wb3J0YW50OyB9XFxuICAubWwtc20tMSB7XFxuICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5teC1zbS0xIHtcXG4gICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtICFpbXBvcnRhbnQ7XFxuICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5teS1zbS0xIHtcXG4gICAgbWFyZ2luLXRvcDogMC4yNXJlbSAhaW1wb3J0YW50O1xcbiAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5tLXNtLTIge1xcbiAgICBtYXJnaW46IDAuNXJlbSAwLjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLm10LXNtLTIge1xcbiAgICBtYXJnaW4tdG9wOiAwLjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLm1yLXNtLTIge1xcbiAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAubWItc20tMiB7XFxuICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAubWwtc20tMiB7XFxuICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLm14LXNtLTIge1xcbiAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbSAhaW1wb3J0YW50O1xcbiAgICBtYXJnaW4tbGVmdDogMC41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5teS1zbS0yIHtcXG4gICAgbWFyZ2luLXRvcDogMC41cmVtICFpbXBvcnRhbnQ7XFxuICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAubS1zbS0zIHtcXG4gICAgbWFyZ2luOiAxcmVtIDFyZW0gIWltcG9ydGFudDsgfVxcbiAgLm10LXNtLTMge1xcbiAgICBtYXJnaW4tdG9wOiAxcmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5tci1zbS0zIHtcXG4gICAgbWFyZ2luLXJpZ2h0OiAxcmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5tYi1zbS0zIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbSAhaW1wb3J0YW50OyB9XFxuICAubWwtc20tMyB7XFxuICAgIG1hcmdpbi1sZWZ0OiAxcmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5teC1zbS0zIHtcXG4gICAgbWFyZ2luLXJpZ2h0OiAxcmVtICFpbXBvcnRhbnQ7XFxuICAgIG1hcmdpbi1sZWZ0OiAxcmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5teS1zbS0zIHtcXG4gICAgbWFyZ2luLXRvcDogMXJlbSAhaW1wb3J0YW50O1xcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5tLXNtLTQge1xcbiAgICBtYXJnaW46IDEuNXJlbSAxLjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLm10LXNtLTQge1xcbiAgICBtYXJnaW4tdG9wOiAxLjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLm1yLXNtLTQge1xcbiAgICBtYXJnaW4tcmlnaHQ6IDEuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAubWItc20tNCB7XFxuICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAubWwtc20tNCB7XFxuICAgIG1hcmdpbi1sZWZ0OiAxLjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLm14LXNtLTQge1xcbiAgICBtYXJnaW4tcmlnaHQ6IDEuNXJlbSAhaW1wb3J0YW50O1xcbiAgICBtYXJnaW4tbGVmdDogMS41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5teS1zbS00IHtcXG4gICAgbWFyZ2luLXRvcDogMS41cmVtICFpbXBvcnRhbnQ7XFxuICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAubS1zbS01IHtcXG4gICAgbWFyZ2luOiAzcmVtIDNyZW0gIWltcG9ydGFudDsgfVxcbiAgLm10LXNtLTUge1xcbiAgICBtYXJnaW4tdG9wOiAzcmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5tci1zbS01IHtcXG4gICAgbWFyZ2luLXJpZ2h0OiAzcmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5tYi1zbS01IHtcXG4gICAgbWFyZ2luLWJvdHRvbTogM3JlbSAhaW1wb3J0YW50OyB9XFxuICAubWwtc20tNSB7XFxuICAgIG1hcmdpbi1sZWZ0OiAzcmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5teC1zbS01IHtcXG4gICAgbWFyZ2luLXJpZ2h0OiAzcmVtICFpbXBvcnRhbnQ7XFxuICAgIG1hcmdpbi1sZWZ0OiAzcmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5teS1zbS01IHtcXG4gICAgbWFyZ2luLXRvcDogM3JlbSAhaW1wb3J0YW50O1xcbiAgICBtYXJnaW4tYm90dG9tOiAzcmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5wLXNtLTAge1xcbiAgICBwYWRkaW5nOiAwIDAgIWltcG9ydGFudDsgfVxcbiAgLnB0LXNtLTAge1xcbiAgICBwYWRkaW5nLXRvcDogMCAhaW1wb3J0YW50OyB9XFxuICAucHItc20tMCB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDsgfVxcbiAgLnBiLXNtLTAge1xcbiAgICBwYWRkaW5nLWJvdHRvbTogMCAhaW1wb3J0YW50OyB9XFxuICAucGwtc20tMCB7XFxuICAgIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50OyB9XFxuICAucHgtc20tMCB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDtcXG4gICAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7IH1cXG4gIC5weS1zbS0wIHtcXG4gICAgcGFkZGluZy10b3A6IDAgIWltcG9ydGFudDtcXG4gICAgcGFkZGluZy1ib3R0b206IDAgIWltcG9ydGFudDsgfVxcbiAgLnAtc20tMSB7XFxuICAgIHBhZGRpbmc6IDAuMjVyZW0gMC4yNXJlbSAhaW1wb3J0YW50OyB9XFxuICAucHQtc20tMSB7XFxuICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5wci1zbS0xIHtcXG4gICAgcGFkZGluZy1yaWdodDogMC4yNXJlbSAhaW1wb3J0YW50OyB9XFxuICAucGItc20tMSB7XFxuICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5wbC1zbS0xIHtcXG4gICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5weC1zbS0xIHtcXG4gICAgcGFkZGluZy1yaWdodDogMC4yNXJlbSAhaW1wb3J0YW50O1xcbiAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLnB5LXNtLTEge1xcbiAgICBwYWRkaW5nLXRvcDogMC4yNXJlbSAhaW1wb3J0YW50O1xcbiAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbSAhaW1wb3J0YW50OyB9XFxuICAucC1zbS0yIHtcXG4gICAgcGFkZGluZzogMC41cmVtIDAuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAucHQtc20tMiB7XFxuICAgIHBhZGRpbmctdG9wOiAwLjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLnByLXNtLTIge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLnBiLXNtLTIge1xcbiAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5wbC1zbS0yIHtcXG4gICAgcGFkZGluZy1sZWZ0OiAwLjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLnB4LXNtLTIge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW0gIWltcG9ydGFudDtcXG4gICAgcGFkZGluZy1sZWZ0OiAwLjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLnB5LXNtLTIge1xcbiAgICBwYWRkaW5nLXRvcDogMC41cmVtICFpbXBvcnRhbnQ7XFxuICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLnAtc20tMyB7XFxuICAgIHBhZGRpbmc6IDFyZW0gMXJlbSAhaW1wb3J0YW50OyB9XFxuICAucHQtc20tMyB7XFxuICAgIHBhZGRpbmctdG9wOiAxcmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5wci1zbS0zIHtcXG4gICAgcGFkZGluZy1yaWdodDogMXJlbSAhaW1wb3J0YW50OyB9XFxuICAucGItc20tMyB7XFxuICAgIHBhZGRpbmctYm90dG9tOiAxcmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5wbC1zbS0zIHtcXG4gICAgcGFkZGluZy1sZWZ0OiAxcmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5weC1zbS0zIHtcXG4gICAgcGFkZGluZy1yaWdodDogMXJlbSAhaW1wb3J0YW50O1xcbiAgICBwYWRkaW5nLWxlZnQ6IDFyZW0gIWltcG9ydGFudDsgfVxcbiAgLnB5LXNtLTMge1xcbiAgICBwYWRkaW5nLXRvcDogMXJlbSAhaW1wb3J0YW50O1xcbiAgICBwYWRkaW5nLWJvdHRvbTogMXJlbSAhaW1wb3J0YW50OyB9XFxuICAucC1zbS00IHtcXG4gICAgcGFkZGluZzogMS41cmVtIDEuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAucHQtc20tNCB7XFxuICAgIHBhZGRpbmctdG9wOiAxLjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLnByLXNtLTQge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLnBiLXNtLTQge1xcbiAgICBwYWRkaW5nLWJvdHRvbTogMS41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5wbC1zbS00IHtcXG4gICAgcGFkZGluZy1sZWZ0OiAxLjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLnB4LXNtLTQge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW0gIWltcG9ydGFudDtcXG4gICAgcGFkZGluZy1sZWZ0OiAxLjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLnB5LXNtLTQge1xcbiAgICBwYWRkaW5nLXRvcDogMS41cmVtICFpbXBvcnRhbnQ7XFxuICAgIHBhZGRpbmctYm90dG9tOiAxLjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLnAtc20tNSB7XFxuICAgIHBhZGRpbmc6IDNyZW0gM3JlbSAhaW1wb3J0YW50OyB9XFxuICAucHQtc20tNSB7XFxuICAgIHBhZGRpbmctdG9wOiAzcmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5wci1zbS01IHtcXG4gICAgcGFkZGluZy1yaWdodDogM3JlbSAhaW1wb3J0YW50OyB9XFxuICAucGItc20tNSB7XFxuICAgIHBhZGRpbmctYm90dG9tOiAzcmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5wbC1zbS01IHtcXG4gICAgcGFkZGluZy1sZWZ0OiAzcmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5weC1zbS01IHtcXG4gICAgcGFkZGluZy1yaWdodDogM3JlbSAhaW1wb3J0YW50O1xcbiAgICBwYWRkaW5nLWxlZnQ6IDNyZW0gIWltcG9ydGFudDsgfVxcbiAgLnB5LXNtLTUge1xcbiAgICBwYWRkaW5nLXRvcDogM3JlbSAhaW1wb3J0YW50O1xcbiAgICBwYWRkaW5nLWJvdHRvbTogM3JlbSAhaW1wb3J0YW50OyB9XFxuICAubS1zbS1hdXRvIHtcXG4gICAgbWFyZ2luOiBhdXRvICFpbXBvcnRhbnQ7IH1cXG4gIC5tdC1zbS1hdXRvIHtcXG4gICAgbWFyZ2luLXRvcDogYXV0byAhaW1wb3J0YW50OyB9XFxuICAubXItc20tYXV0byB7XFxuICAgIG1hcmdpbi1yaWdodDogYXV0byAhaW1wb3J0YW50OyB9XFxuICAubWItc20tYXV0byB7XFxuICAgIG1hcmdpbi1ib3R0b206IGF1dG8gIWltcG9ydGFudDsgfVxcbiAgLm1sLXNtLWF1dG8ge1xcbiAgICBtYXJnaW4tbGVmdDogYXV0byAhaW1wb3J0YW50OyB9XFxuICAubXgtc20tYXV0byB7XFxuICAgIG1hcmdpbi1yaWdodDogYXV0byAhaW1wb3J0YW50O1xcbiAgICBtYXJnaW4tbGVmdDogYXV0byAhaW1wb3J0YW50OyB9XFxuICAubXktc20tYXV0byB7XFxuICAgIG1hcmdpbi10b3A6IGF1dG8gIWltcG9ydGFudDtcXG4gICAgbWFyZ2luLWJvdHRvbTogYXV0byAhaW1wb3J0YW50OyB9IH1cXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcXG4gIC5tLW1kLTAge1xcbiAgICBtYXJnaW46IDAgMCAhaW1wb3J0YW50OyB9XFxuICAubXQtbWQtMCB7XFxuICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDsgfVxcbiAgLm1yLW1kLTAge1xcbiAgICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDsgfVxcbiAgLm1iLW1kLTAge1xcbiAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7IH1cXG4gIC5tbC1tZC0wIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDsgfVxcbiAgLm14LW1kLTAge1xcbiAgICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDtcXG4gICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDsgfVxcbiAgLm15LW1kLTAge1xcbiAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XFxuICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDsgfVxcbiAgLm0tbWQtMSB7XFxuICAgIG1hcmdpbjogMC4yNXJlbSAwLjI1cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5tdC1tZC0xIHtcXG4gICAgbWFyZ2luLXRvcDogMC4yNXJlbSAhaW1wb3J0YW50OyB9XFxuICAubXItbWQtMSB7XFxuICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbSAhaW1wb3J0YW50OyB9XFxuICAubWItbWQtMSB7XFxuICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLm1sLW1kLTEge1xcbiAgICBtYXJnaW4tbGVmdDogMC4yNXJlbSAhaW1wb3J0YW50OyB9XFxuICAubXgtbWQtMSB7XFxuICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbSAhaW1wb3J0YW50O1xcbiAgICBtYXJnaW4tbGVmdDogMC4yNXJlbSAhaW1wb3J0YW50OyB9XFxuICAubXktbWQtMSB7XFxuICAgIG1hcmdpbi10b3A6IDAuMjVyZW0gIWltcG9ydGFudDtcXG4gICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbSAhaW1wb3J0YW50OyB9XFxuICAubS1tZC0yIHtcXG4gICAgbWFyZ2luOiAwLjVyZW0gMC41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5tdC1tZC0yIHtcXG4gICAgbWFyZ2luLXRvcDogMC41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5tci1tZC0yIHtcXG4gICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLm1iLW1kLTIge1xcbiAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLm1sLW1kLTIge1xcbiAgICBtYXJnaW4tbGVmdDogMC41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5teC1tZC0yIHtcXG4gICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW0gIWltcG9ydGFudDtcXG4gICAgbWFyZ2luLWxlZnQ6IDAuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAubXktbWQtMiB7XFxuICAgIG1hcmdpbi10b3A6IDAuNXJlbSAhaW1wb3J0YW50O1xcbiAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLm0tbWQtMyB7XFxuICAgIG1hcmdpbjogMXJlbSAxcmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5tdC1tZC0zIHtcXG4gICAgbWFyZ2luLXRvcDogMXJlbSAhaW1wb3J0YW50OyB9XFxuICAubXItbWQtMyB7XFxuICAgIG1hcmdpbi1yaWdodDogMXJlbSAhaW1wb3J0YW50OyB9XFxuICAubWItbWQtMyB7XFxuICAgIG1hcmdpbi1ib3R0b206IDFyZW0gIWltcG9ydGFudDsgfVxcbiAgLm1sLW1kLTMge1xcbiAgICBtYXJnaW4tbGVmdDogMXJlbSAhaW1wb3J0YW50OyB9XFxuICAubXgtbWQtMyB7XFxuICAgIG1hcmdpbi1yaWdodDogMXJlbSAhaW1wb3J0YW50O1xcbiAgICBtYXJnaW4tbGVmdDogMXJlbSAhaW1wb3J0YW50OyB9XFxuICAubXktbWQtMyB7XFxuICAgIG1hcmdpbi10b3A6IDFyZW0gIWltcG9ydGFudDtcXG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbSAhaW1wb3J0YW50OyB9XFxuICAubS1tZC00IHtcXG4gICAgbWFyZ2luOiAxLjVyZW0gMS41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5tdC1tZC00IHtcXG4gICAgbWFyZ2luLXRvcDogMS41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5tci1tZC00IHtcXG4gICAgbWFyZ2luLXJpZ2h0OiAxLjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLm1iLW1kLTQge1xcbiAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLm1sLW1kLTQge1xcbiAgICBtYXJnaW4tbGVmdDogMS41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5teC1tZC00IHtcXG4gICAgbWFyZ2luLXJpZ2h0OiAxLjVyZW0gIWltcG9ydGFudDtcXG4gICAgbWFyZ2luLWxlZnQ6IDEuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAubXktbWQtNCB7XFxuICAgIG1hcmdpbi10b3A6IDEuNXJlbSAhaW1wb3J0YW50O1xcbiAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLm0tbWQtNSB7XFxuICAgIG1hcmdpbjogM3JlbSAzcmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5tdC1tZC01IHtcXG4gICAgbWFyZ2luLXRvcDogM3JlbSAhaW1wb3J0YW50OyB9XFxuICAubXItbWQtNSB7XFxuICAgIG1hcmdpbi1yaWdodDogM3JlbSAhaW1wb3J0YW50OyB9XFxuICAubWItbWQtNSB7XFxuICAgIG1hcmdpbi1ib3R0b206IDNyZW0gIWltcG9ydGFudDsgfVxcbiAgLm1sLW1kLTUge1xcbiAgICBtYXJnaW4tbGVmdDogM3JlbSAhaW1wb3J0YW50OyB9XFxuICAubXgtbWQtNSB7XFxuICAgIG1hcmdpbi1yaWdodDogM3JlbSAhaW1wb3J0YW50O1xcbiAgICBtYXJnaW4tbGVmdDogM3JlbSAhaW1wb3J0YW50OyB9XFxuICAubXktbWQtNSB7XFxuICAgIG1hcmdpbi10b3A6IDNyZW0gIWltcG9ydGFudDtcXG4gICAgbWFyZ2luLWJvdHRvbTogM3JlbSAhaW1wb3J0YW50OyB9XFxuICAucC1tZC0wIHtcXG4gICAgcGFkZGluZzogMCAwICFpbXBvcnRhbnQ7IH1cXG4gIC5wdC1tZC0wIHtcXG4gICAgcGFkZGluZy10b3A6IDAgIWltcG9ydGFudDsgfVxcbiAgLnByLW1kLTAge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7IH1cXG4gIC5wYi1tZC0wIHtcXG4gICAgcGFkZGluZy1ib3R0b206IDAgIWltcG9ydGFudDsgfVxcbiAgLnBsLW1kLTAge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDsgfVxcbiAgLnB4LW1kLTAge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XFxuICAgIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50OyB9XFxuICAucHktbWQtMCB7XFxuICAgIHBhZGRpbmctdG9wOiAwICFpbXBvcnRhbnQ7XFxuICAgIHBhZGRpbmctYm90dG9tOiAwICFpbXBvcnRhbnQ7IH1cXG4gIC5wLW1kLTEge1xcbiAgICBwYWRkaW5nOiAwLjI1cmVtIDAuMjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLnB0LW1kLTEge1xcbiAgICBwYWRkaW5nLXRvcDogMC4yNXJlbSAhaW1wb3J0YW50OyB9XFxuICAucHItbWQtMSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDAuMjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLnBiLW1kLTEge1xcbiAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbSAhaW1wb3J0YW50OyB9XFxuICAucGwtbWQtMSB7XFxuICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbSAhaW1wb3J0YW50OyB9XFxuICAucHgtbWQtMSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDAuMjVyZW0gIWltcG9ydGFudDtcXG4gICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5weS1tZC0xIHtcXG4gICAgcGFkZGluZy10b3A6IDAuMjVyZW0gIWltcG9ydGFudDtcXG4gICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLnAtbWQtMiB7XFxuICAgIHBhZGRpbmc6IDAuNXJlbSAwLjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLnB0LW1kLTIge1xcbiAgICBwYWRkaW5nLXRvcDogMC41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5wci1tZC0yIHtcXG4gICAgcGFkZGluZy1yaWdodDogMC41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5wYi1tZC0yIHtcXG4gICAgcGFkZGluZy1ib3R0b206IDAuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAucGwtbWQtMiB7XFxuICAgIHBhZGRpbmctbGVmdDogMC41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5weC1tZC0yIHtcXG4gICAgcGFkZGluZy1yaWdodDogMC41cmVtICFpbXBvcnRhbnQ7XFxuICAgIHBhZGRpbmctbGVmdDogMC41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5weS1tZC0yIHtcXG4gICAgcGFkZGluZy10b3A6IDAuNXJlbSAhaW1wb3J0YW50O1xcbiAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5wLW1kLTMge1xcbiAgICBwYWRkaW5nOiAxcmVtIDFyZW0gIWltcG9ydGFudDsgfVxcbiAgLnB0LW1kLTMge1xcbiAgICBwYWRkaW5nLXRvcDogMXJlbSAhaW1wb3J0YW50OyB9XFxuICAucHItbWQtMyB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDFyZW0gIWltcG9ydGFudDsgfVxcbiAgLnBiLW1kLTMge1xcbiAgICBwYWRkaW5nLWJvdHRvbTogMXJlbSAhaW1wb3J0YW50OyB9XFxuICAucGwtbWQtMyB7XFxuICAgIHBhZGRpbmctbGVmdDogMXJlbSAhaW1wb3J0YW50OyB9XFxuICAucHgtbWQtMyB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDFyZW0gIWltcG9ydGFudDtcXG4gICAgcGFkZGluZy1sZWZ0OiAxcmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5weS1tZC0zIHtcXG4gICAgcGFkZGluZy10b3A6IDFyZW0gIWltcG9ydGFudDtcXG4gICAgcGFkZGluZy1ib3R0b206IDFyZW0gIWltcG9ydGFudDsgfVxcbiAgLnAtbWQtNCB7XFxuICAgIHBhZGRpbmc6IDEuNXJlbSAxLjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLnB0LW1kLTQge1xcbiAgICBwYWRkaW5nLXRvcDogMS41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5wci1tZC00IHtcXG4gICAgcGFkZGluZy1yaWdodDogMS41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5wYi1tZC00IHtcXG4gICAgcGFkZGluZy1ib3R0b206IDEuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAucGwtbWQtNCB7XFxuICAgIHBhZGRpbmctbGVmdDogMS41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5weC1tZC00IHtcXG4gICAgcGFkZGluZy1yaWdodDogMS41cmVtICFpbXBvcnRhbnQ7XFxuICAgIHBhZGRpbmctbGVmdDogMS41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5weS1tZC00IHtcXG4gICAgcGFkZGluZy10b3A6IDEuNXJlbSAhaW1wb3J0YW50O1xcbiAgICBwYWRkaW5nLWJvdHRvbTogMS41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5wLW1kLTUge1xcbiAgICBwYWRkaW5nOiAzcmVtIDNyZW0gIWltcG9ydGFudDsgfVxcbiAgLnB0LW1kLTUge1xcbiAgICBwYWRkaW5nLXRvcDogM3JlbSAhaW1wb3J0YW50OyB9XFxuICAucHItbWQtNSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDNyZW0gIWltcG9ydGFudDsgfVxcbiAgLnBiLW1kLTUge1xcbiAgICBwYWRkaW5nLWJvdHRvbTogM3JlbSAhaW1wb3J0YW50OyB9XFxuICAucGwtbWQtNSB7XFxuICAgIHBhZGRpbmctbGVmdDogM3JlbSAhaW1wb3J0YW50OyB9XFxuICAucHgtbWQtNSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDNyZW0gIWltcG9ydGFudDtcXG4gICAgcGFkZGluZy1sZWZ0OiAzcmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5weS1tZC01IHtcXG4gICAgcGFkZGluZy10b3A6IDNyZW0gIWltcG9ydGFudDtcXG4gICAgcGFkZGluZy1ib3R0b206IDNyZW0gIWltcG9ydGFudDsgfVxcbiAgLm0tbWQtYXV0byB7XFxuICAgIG1hcmdpbjogYXV0byAhaW1wb3J0YW50OyB9XFxuICAubXQtbWQtYXV0byB7XFxuICAgIG1hcmdpbi10b3A6IGF1dG8gIWltcG9ydGFudDsgfVxcbiAgLm1yLW1kLWF1dG8ge1xcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG8gIWltcG9ydGFudDsgfVxcbiAgLm1iLW1kLWF1dG8ge1xcbiAgICBtYXJnaW4tYm90dG9tOiBhdXRvICFpbXBvcnRhbnQ7IH1cXG4gIC5tbC1tZC1hdXRvIHtcXG4gICAgbWFyZ2luLWxlZnQ6IGF1dG8gIWltcG9ydGFudDsgfVxcbiAgLm14LW1kLWF1dG8ge1xcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcXG4gICAgbWFyZ2luLWxlZnQ6IGF1dG8gIWltcG9ydGFudDsgfVxcbiAgLm15LW1kLWF1dG8ge1xcbiAgICBtYXJnaW4tdG9wOiBhdXRvICFpbXBvcnRhbnQ7XFxuICAgIG1hcmdpbi1ib3R0b206IGF1dG8gIWltcG9ydGFudDsgfSB9XFxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XFxuICAubS1sZy0wIHtcXG4gICAgbWFyZ2luOiAwIDAgIWltcG9ydGFudDsgfVxcbiAgLm10LWxnLTAge1xcbiAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7IH1cXG4gIC5tci1sZy0wIHtcXG4gICAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7IH1cXG4gIC5tYi1sZy0wIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50OyB9XFxuICAubWwtbGctMCB7XFxuICAgIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7IH1cXG4gIC5teC1sZy0wIHtcXG4gICAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XFxuICAgIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7IH1cXG4gIC5teS1sZy0wIHtcXG4gICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xcbiAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7IH1cXG4gIC5tLWxnLTEge1xcbiAgICBtYXJnaW46IDAuMjVyZW0gMC4yNXJlbSAhaW1wb3J0YW50OyB9XFxuICAubXQtbGctMSB7XFxuICAgIG1hcmdpbi10b3A6IDAuMjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLm1yLWxnLTEge1xcbiAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLm1iLWxnLTEge1xcbiAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5tbC1sZy0xIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLm14LWxnLTEge1xcbiAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW0gIWltcG9ydGFudDtcXG4gICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLm15LWxnLTEge1xcbiAgICBtYXJnaW4tdG9wOiAwLjI1cmVtICFpbXBvcnRhbnQ7XFxuICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLm0tbGctMiB7XFxuICAgIG1hcmdpbjogMC41cmVtIDAuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAubXQtbGctMiB7XFxuICAgIG1hcmdpbi10b3A6IDAuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAubXItbGctMiB7XFxuICAgIG1hcmdpbi1yaWdodDogMC41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5tYi1sZy0yIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMC41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5tbC1sZy0yIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDAuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAubXgtbGctMiB7XFxuICAgIG1hcmdpbi1yaWdodDogMC41cmVtICFpbXBvcnRhbnQ7XFxuICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLm15LWxnLTIge1xcbiAgICBtYXJnaW4tdG9wOiAwLjVyZW0gIWltcG9ydGFudDtcXG4gICAgbWFyZ2luLWJvdHRvbTogMC41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5tLWxnLTMge1xcbiAgICBtYXJnaW46IDFyZW0gMXJlbSAhaW1wb3J0YW50OyB9XFxuICAubXQtbGctMyB7XFxuICAgIG1hcmdpbi10b3A6IDFyZW0gIWltcG9ydGFudDsgfVxcbiAgLm1yLWxnLTMge1xcbiAgICBtYXJnaW4tcmlnaHQ6IDFyZW0gIWltcG9ydGFudDsgfVxcbiAgLm1iLWxnLTMge1xcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5tbC1sZy0zIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDFyZW0gIWltcG9ydGFudDsgfVxcbiAgLm14LWxnLTMge1xcbiAgICBtYXJnaW4tcmlnaHQ6IDFyZW0gIWltcG9ydGFudDtcXG4gICAgbWFyZ2luLWxlZnQ6IDFyZW0gIWltcG9ydGFudDsgfVxcbiAgLm15LWxnLTMge1xcbiAgICBtYXJnaW4tdG9wOiAxcmVtICFpbXBvcnRhbnQ7XFxuICAgIG1hcmdpbi1ib3R0b206IDFyZW0gIWltcG9ydGFudDsgfVxcbiAgLm0tbGctNCB7XFxuICAgIG1hcmdpbjogMS41cmVtIDEuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAubXQtbGctNCB7XFxuICAgIG1hcmdpbi10b3A6IDEuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAubXItbGctNCB7XFxuICAgIG1hcmdpbi1yaWdodDogMS41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5tYi1sZy00IHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMS41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5tbC1sZy00IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDEuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAubXgtbGctNCB7XFxuICAgIG1hcmdpbi1yaWdodDogMS41cmVtICFpbXBvcnRhbnQ7XFxuICAgIG1hcmdpbi1sZWZ0OiAxLjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLm15LWxnLTQge1xcbiAgICBtYXJnaW4tdG9wOiAxLjVyZW0gIWltcG9ydGFudDtcXG4gICAgbWFyZ2luLWJvdHRvbTogMS41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5tLWxnLTUge1xcbiAgICBtYXJnaW46IDNyZW0gM3JlbSAhaW1wb3J0YW50OyB9XFxuICAubXQtbGctNSB7XFxuICAgIG1hcmdpbi10b3A6IDNyZW0gIWltcG9ydGFudDsgfVxcbiAgLm1yLWxnLTUge1xcbiAgICBtYXJnaW4tcmlnaHQ6IDNyZW0gIWltcG9ydGFudDsgfVxcbiAgLm1iLWxnLTUge1xcbiAgICBtYXJnaW4tYm90dG9tOiAzcmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5tbC1sZy01IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDNyZW0gIWltcG9ydGFudDsgfVxcbiAgLm14LWxnLTUge1xcbiAgICBtYXJnaW4tcmlnaHQ6IDNyZW0gIWltcG9ydGFudDtcXG4gICAgbWFyZ2luLWxlZnQ6IDNyZW0gIWltcG9ydGFudDsgfVxcbiAgLm15LWxnLTUge1xcbiAgICBtYXJnaW4tdG9wOiAzcmVtICFpbXBvcnRhbnQ7XFxuICAgIG1hcmdpbi1ib3R0b206IDNyZW0gIWltcG9ydGFudDsgfVxcbiAgLnAtbGctMCB7XFxuICAgIHBhZGRpbmc6IDAgMCAhaW1wb3J0YW50OyB9XFxuICAucHQtbGctMCB7XFxuICAgIHBhZGRpbmctdG9wOiAwICFpbXBvcnRhbnQ7IH1cXG4gIC5wci1sZy0wIHtcXG4gICAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50OyB9XFxuICAucGItbGctMCB7XFxuICAgIHBhZGRpbmctYm90dG9tOiAwICFpbXBvcnRhbnQ7IH1cXG4gIC5wbC1sZy0wIHtcXG4gICAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7IH1cXG4gIC5weC1sZy0wIHtcXG4gICAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50O1xcbiAgICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDsgfVxcbiAgLnB5LWxnLTAge1xcbiAgICBwYWRkaW5nLXRvcDogMCAhaW1wb3J0YW50O1xcbiAgICBwYWRkaW5nLWJvdHRvbTogMCAhaW1wb3J0YW50OyB9XFxuICAucC1sZy0xIHtcXG4gICAgcGFkZGluZzogMC4yNXJlbSAwLjI1cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5wdC1sZy0xIHtcXG4gICAgcGFkZGluZy10b3A6IDAuMjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLnByLWxnLTEge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjI1cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5wYi1sZy0xIHtcXG4gICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLnBsLWxnLTEge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLnB4LWxnLTEge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjI1cmVtICFpbXBvcnRhbnQ7XFxuICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbSAhaW1wb3J0YW50OyB9XFxuICAucHktbGctMSB7XFxuICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtICFpbXBvcnRhbnQ7XFxuICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5wLWxnLTIge1xcbiAgICBwYWRkaW5nOiAwLjVyZW0gMC41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5wdC1sZy0yIHtcXG4gICAgcGFkZGluZy10b3A6IDAuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAucHItbGctMiB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAucGItbGctMiB7XFxuICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLnBsLWxnLTIge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAucHgtbGctMiB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbSAhaW1wb3J0YW50O1xcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAucHktbGctMiB7XFxuICAgIHBhZGRpbmctdG9wOiAwLjVyZW0gIWltcG9ydGFudDtcXG4gICAgcGFkZGluZy1ib3R0b206IDAuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAucC1sZy0zIHtcXG4gICAgcGFkZGluZzogMXJlbSAxcmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5wdC1sZy0zIHtcXG4gICAgcGFkZGluZy10b3A6IDFyZW0gIWltcG9ydGFudDsgfVxcbiAgLnByLWxnLTMge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5wYi1sZy0zIHtcXG4gICAgcGFkZGluZy1ib3R0b206IDFyZW0gIWltcG9ydGFudDsgfVxcbiAgLnBsLWxnLTMge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDFyZW0gIWltcG9ydGFudDsgfVxcbiAgLnB4LWxnLTMge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtICFpbXBvcnRhbnQ7XFxuICAgIHBhZGRpbmctbGVmdDogMXJlbSAhaW1wb3J0YW50OyB9XFxuICAucHktbGctMyB7XFxuICAgIHBhZGRpbmctdG9wOiAxcmVtICFpbXBvcnRhbnQ7XFxuICAgIHBhZGRpbmctYm90dG9tOiAxcmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5wLWxnLTQge1xcbiAgICBwYWRkaW5nOiAxLjVyZW0gMS41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5wdC1sZy00IHtcXG4gICAgcGFkZGluZy10b3A6IDEuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAucHItbGctNCB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAucGItbGctNCB7XFxuICAgIHBhZGRpbmctYm90dG9tOiAxLjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLnBsLWxnLTQge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDEuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAucHgtbGctNCB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbSAhaW1wb3J0YW50O1xcbiAgICBwYWRkaW5nLWxlZnQ6IDEuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAucHktbGctNCB7XFxuICAgIHBhZGRpbmctdG9wOiAxLjVyZW0gIWltcG9ydGFudDtcXG4gICAgcGFkZGluZy1ib3R0b206IDEuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAucC1sZy01IHtcXG4gICAgcGFkZGluZzogM3JlbSAzcmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5wdC1sZy01IHtcXG4gICAgcGFkZGluZy10b3A6IDNyZW0gIWltcG9ydGFudDsgfVxcbiAgLnByLWxnLTUge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAzcmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5wYi1sZy01IHtcXG4gICAgcGFkZGluZy1ib3R0b206IDNyZW0gIWltcG9ydGFudDsgfVxcbiAgLnBsLWxnLTUge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDNyZW0gIWltcG9ydGFudDsgfVxcbiAgLnB4LWxnLTUge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAzcmVtICFpbXBvcnRhbnQ7XFxuICAgIHBhZGRpbmctbGVmdDogM3JlbSAhaW1wb3J0YW50OyB9XFxuICAucHktbGctNSB7XFxuICAgIHBhZGRpbmctdG9wOiAzcmVtICFpbXBvcnRhbnQ7XFxuICAgIHBhZGRpbmctYm90dG9tOiAzcmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5tLWxnLWF1dG8ge1xcbiAgICBtYXJnaW46IGF1dG8gIWltcG9ydGFudDsgfVxcbiAgLm10LWxnLWF1dG8ge1xcbiAgICBtYXJnaW4tdG9wOiBhdXRvICFpbXBvcnRhbnQ7IH1cXG4gIC5tci1sZy1hdXRvIHtcXG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7IH1cXG4gIC5tYi1sZy1hdXRvIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogYXV0byAhaW1wb3J0YW50OyB9XFxuICAubWwtbGctYXV0byB7XFxuICAgIG1hcmdpbi1sZWZ0OiBhdXRvICFpbXBvcnRhbnQ7IH1cXG4gIC5teC1sZy1hdXRvIHtcXG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XFxuICAgIG1hcmdpbi1sZWZ0OiBhdXRvICFpbXBvcnRhbnQ7IH1cXG4gIC5teS1sZy1hdXRvIHtcXG4gICAgbWFyZ2luLXRvcDogYXV0byAhaW1wb3J0YW50O1xcbiAgICBtYXJnaW4tYm90dG9tOiBhdXRvICFpbXBvcnRhbnQ7IH0gfVxcbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcXG4gIC5tLXhsLTAge1xcbiAgICBtYXJnaW46IDAgMCAhaW1wb3J0YW50OyB9XFxuICAubXQteGwtMCB7XFxuICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDsgfVxcbiAgLm1yLXhsLTAge1xcbiAgICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDsgfVxcbiAgLm1iLXhsLTAge1xcbiAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7IH1cXG4gIC5tbC14bC0wIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDsgfVxcbiAgLm14LXhsLTAge1xcbiAgICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDtcXG4gICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDsgfVxcbiAgLm15LXhsLTAge1xcbiAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XFxuICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDsgfVxcbiAgLm0teGwtMSB7XFxuICAgIG1hcmdpbjogMC4yNXJlbSAwLjI1cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5tdC14bC0xIHtcXG4gICAgbWFyZ2luLXRvcDogMC4yNXJlbSAhaW1wb3J0YW50OyB9XFxuICAubXIteGwtMSB7XFxuICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbSAhaW1wb3J0YW50OyB9XFxuICAubWIteGwtMSB7XFxuICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLm1sLXhsLTEge1xcbiAgICBtYXJnaW4tbGVmdDogMC4yNXJlbSAhaW1wb3J0YW50OyB9XFxuICAubXgteGwtMSB7XFxuICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbSAhaW1wb3J0YW50O1xcbiAgICBtYXJnaW4tbGVmdDogMC4yNXJlbSAhaW1wb3J0YW50OyB9XFxuICAubXkteGwtMSB7XFxuICAgIG1hcmdpbi10b3A6IDAuMjVyZW0gIWltcG9ydGFudDtcXG4gICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbSAhaW1wb3J0YW50OyB9XFxuICAubS14bC0yIHtcXG4gICAgbWFyZ2luOiAwLjVyZW0gMC41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5tdC14bC0yIHtcXG4gICAgbWFyZ2luLXRvcDogMC41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5tci14bC0yIHtcXG4gICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLm1iLXhsLTIge1xcbiAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLm1sLXhsLTIge1xcbiAgICBtYXJnaW4tbGVmdDogMC41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5teC14bC0yIHtcXG4gICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW0gIWltcG9ydGFudDtcXG4gICAgbWFyZ2luLWxlZnQ6IDAuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAubXkteGwtMiB7XFxuICAgIG1hcmdpbi10b3A6IDAuNXJlbSAhaW1wb3J0YW50O1xcbiAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLm0teGwtMyB7XFxuICAgIG1hcmdpbjogMXJlbSAxcmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5tdC14bC0zIHtcXG4gICAgbWFyZ2luLXRvcDogMXJlbSAhaW1wb3J0YW50OyB9XFxuICAubXIteGwtMyB7XFxuICAgIG1hcmdpbi1yaWdodDogMXJlbSAhaW1wb3J0YW50OyB9XFxuICAubWIteGwtMyB7XFxuICAgIG1hcmdpbi1ib3R0b206IDFyZW0gIWltcG9ydGFudDsgfVxcbiAgLm1sLXhsLTMge1xcbiAgICBtYXJnaW4tbGVmdDogMXJlbSAhaW1wb3J0YW50OyB9XFxuICAubXgteGwtMyB7XFxuICAgIG1hcmdpbi1yaWdodDogMXJlbSAhaW1wb3J0YW50O1xcbiAgICBtYXJnaW4tbGVmdDogMXJlbSAhaW1wb3J0YW50OyB9XFxuICAubXkteGwtMyB7XFxuICAgIG1hcmdpbi10b3A6IDFyZW0gIWltcG9ydGFudDtcXG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbSAhaW1wb3J0YW50OyB9XFxuICAubS14bC00IHtcXG4gICAgbWFyZ2luOiAxLjVyZW0gMS41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5tdC14bC00IHtcXG4gICAgbWFyZ2luLXRvcDogMS41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5tci14bC00IHtcXG4gICAgbWFyZ2luLXJpZ2h0OiAxLjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLm1iLXhsLTQge1xcbiAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLm1sLXhsLTQge1xcbiAgICBtYXJnaW4tbGVmdDogMS41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5teC14bC00IHtcXG4gICAgbWFyZ2luLXJpZ2h0OiAxLjVyZW0gIWltcG9ydGFudDtcXG4gICAgbWFyZ2luLWxlZnQ6IDEuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAubXkteGwtNCB7XFxuICAgIG1hcmdpbi10b3A6IDEuNXJlbSAhaW1wb3J0YW50O1xcbiAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLm0teGwtNSB7XFxuICAgIG1hcmdpbjogM3JlbSAzcmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5tdC14bC01IHtcXG4gICAgbWFyZ2luLXRvcDogM3JlbSAhaW1wb3J0YW50OyB9XFxuICAubXIteGwtNSB7XFxuICAgIG1hcmdpbi1yaWdodDogM3JlbSAhaW1wb3J0YW50OyB9XFxuICAubWIteGwtNSB7XFxuICAgIG1hcmdpbi1ib3R0b206IDNyZW0gIWltcG9ydGFudDsgfVxcbiAgLm1sLXhsLTUge1xcbiAgICBtYXJnaW4tbGVmdDogM3JlbSAhaW1wb3J0YW50OyB9XFxuICAubXgteGwtNSB7XFxuICAgIG1hcmdpbi1yaWdodDogM3JlbSAhaW1wb3J0YW50O1xcbiAgICBtYXJnaW4tbGVmdDogM3JlbSAhaW1wb3J0YW50OyB9XFxuICAubXkteGwtNSB7XFxuICAgIG1hcmdpbi10b3A6IDNyZW0gIWltcG9ydGFudDtcXG4gICAgbWFyZ2luLWJvdHRvbTogM3JlbSAhaW1wb3J0YW50OyB9XFxuICAucC14bC0wIHtcXG4gICAgcGFkZGluZzogMCAwICFpbXBvcnRhbnQ7IH1cXG4gIC5wdC14bC0wIHtcXG4gICAgcGFkZGluZy10b3A6IDAgIWltcG9ydGFudDsgfVxcbiAgLnByLXhsLTAge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7IH1cXG4gIC5wYi14bC0wIHtcXG4gICAgcGFkZGluZy1ib3R0b206IDAgIWltcG9ydGFudDsgfVxcbiAgLnBsLXhsLTAge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDsgfVxcbiAgLnB4LXhsLTAge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XFxuICAgIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50OyB9XFxuICAucHkteGwtMCB7XFxuICAgIHBhZGRpbmctdG9wOiAwICFpbXBvcnRhbnQ7XFxuICAgIHBhZGRpbmctYm90dG9tOiAwICFpbXBvcnRhbnQ7IH1cXG4gIC5wLXhsLTEge1xcbiAgICBwYWRkaW5nOiAwLjI1cmVtIDAuMjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLnB0LXhsLTEge1xcbiAgICBwYWRkaW5nLXRvcDogMC4yNXJlbSAhaW1wb3J0YW50OyB9XFxuICAucHIteGwtMSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDAuMjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLnBiLXhsLTEge1xcbiAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbSAhaW1wb3J0YW50OyB9XFxuICAucGwteGwtMSB7XFxuICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbSAhaW1wb3J0YW50OyB9XFxuICAucHgteGwtMSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDAuMjVyZW0gIWltcG9ydGFudDtcXG4gICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5weS14bC0xIHtcXG4gICAgcGFkZGluZy10b3A6IDAuMjVyZW0gIWltcG9ydGFudDtcXG4gICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLnAteGwtMiB7XFxuICAgIHBhZGRpbmc6IDAuNXJlbSAwLjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLnB0LXhsLTIge1xcbiAgICBwYWRkaW5nLXRvcDogMC41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5wci14bC0yIHtcXG4gICAgcGFkZGluZy1yaWdodDogMC41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5wYi14bC0yIHtcXG4gICAgcGFkZGluZy1ib3R0b206IDAuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAucGwteGwtMiB7XFxuICAgIHBhZGRpbmctbGVmdDogMC41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5weC14bC0yIHtcXG4gICAgcGFkZGluZy1yaWdodDogMC41cmVtICFpbXBvcnRhbnQ7XFxuICAgIHBhZGRpbmctbGVmdDogMC41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5weS14bC0yIHtcXG4gICAgcGFkZGluZy10b3A6IDAuNXJlbSAhaW1wb3J0YW50O1xcbiAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5wLXhsLTMge1xcbiAgICBwYWRkaW5nOiAxcmVtIDFyZW0gIWltcG9ydGFudDsgfVxcbiAgLnB0LXhsLTMge1xcbiAgICBwYWRkaW5nLXRvcDogMXJlbSAhaW1wb3J0YW50OyB9XFxuICAucHIteGwtMyB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDFyZW0gIWltcG9ydGFudDsgfVxcbiAgLnBiLXhsLTMge1xcbiAgICBwYWRkaW5nLWJvdHRvbTogMXJlbSAhaW1wb3J0YW50OyB9XFxuICAucGwteGwtMyB7XFxuICAgIHBhZGRpbmctbGVmdDogMXJlbSAhaW1wb3J0YW50OyB9XFxuICAucHgteGwtMyB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDFyZW0gIWltcG9ydGFudDtcXG4gICAgcGFkZGluZy1sZWZ0OiAxcmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5weS14bC0zIHtcXG4gICAgcGFkZGluZy10b3A6IDFyZW0gIWltcG9ydGFudDtcXG4gICAgcGFkZGluZy1ib3R0b206IDFyZW0gIWltcG9ydGFudDsgfVxcbiAgLnAteGwtNCB7XFxuICAgIHBhZGRpbmc6IDEuNXJlbSAxLjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLnB0LXhsLTQge1xcbiAgICBwYWRkaW5nLXRvcDogMS41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5wci14bC00IHtcXG4gICAgcGFkZGluZy1yaWdodDogMS41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5wYi14bC00IHtcXG4gICAgcGFkZGluZy1ib3R0b206IDEuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAucGwteGwtNCB7XFxuICAgIHBhZGRpbmctbGVmdDogMS41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5weC14bC00IHtcXG4gICAgcGFkZGluZy1yaWdodDogMS41cmVtICFpbXBvcnRhbnQ7XFxuICAgIHBhZGRpbmctbGVmdDogMS41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5weS14bC00IHtcXG4gICAgcGFkZGluZy10b3A6IDEuNXJlbSAhaW1wb3J0YW50O1xcbiAgICBwYWRkaW5nLWJvdHRvbTogMS41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5wLXhsLTUge1xcbiAgICBwYWRkaW5nOiAzcmVtIDNyZW0gIWltcG9ydGFudDsgfVxcbiAgLnB0LXhsLTUge1xcbiAgICBwYWRkaW5nLXRvcDogM3JlbSAhaW1wb3J0YW50OyB9XFxuICAucHIteGwtNSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDNyZW0gIWltcG9ydGFudDsgfVxcbiAgLnBiLXhsLTUge1xcbiAgICBwYWRkaW5nLWJvdHRvbTogM3JlbSAhaW1wb3J0YW50OyB9XFxuICAucGwteGwtNSB7XFxuICAgIHBhZGRpbmctbGVmdDogM3JlbSAhaW1wb3J0YW50OyB9XFxuICAucHgteGwtNSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDNyZW0gIWltcG9ydGFudDtcXG4gICAgcGFkZGluZy1sZWZ0OiAzcmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5weS14bC01IHtcXG4gICAgcGFkZGluZy10b3A6IDNyZW0gIWltcG9ydGFudDtcXG4gICAgcGFkZGluZy1ib3R0b206IDNyZW0gIWltcG9ydGFudDsgfVxcbiAgLm0teGwtYXV0byB7XFxuICAgIG1hcmdpbjogYXV0byAhaW1wb3J0YW50OyB9XFxuICAubXQteGwtYXV0byB7XFxuICAgIG1hcmdpbi10b3A6IGF1dG8gIWltcG9ydGFudDsgfVxcbiAgLm1yLXhsLWF1dG8ge1xcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG8gIWltcG9ydGFudDsgfVxcbiAgLm1iLXhsLWF1dG8ge1xcbiAgICBtYXJnaW4tYm90dG9tOiBhdXRvICFpbXBvcnRhbnQ7IH1cXG4gIC5tbC14bC1hdXRvIHtcXG4gICAgbWFyZ2luLWxlZnQ6IGF1dG8gIWltcG9ydGFudDsgfVxcbiAgLm14LXhsLWF1dG8ge1xcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcXG4gICAgbWFyZ2luLWxlZnQ6IGF1dG8gIWltcG9ydGFudDsgfVxcbiAgLm15LXhsLWF1dG8ge1xcbiAgICBtYXJnaW4tdG9wOiBhdXRvICFpbXBvcnRhbnQ7XFxuICAgIG1hcmdpbi1ib3R0b206IGF1dG8gIWltcG9ydGFudDsgfSB9XFxuLnRleHQtanVzdGlmeSB7XFxuICB0ZXh0LWFsaWduOiBqdXN0aWZ5ICFpbXBvcnRhbnQ7IH1cXG4udGV4dC1ub3dyYXAge1xcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcCAhaW1wb3J0YW50OyB9XFxuLnRleHQtdHJ1bmNhdGUge1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxcbi50ZXh0LWxlZnQge1xcbiAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50OyB9XFxuLnRleHQtcmlnaHQge1xcbiAgdGV4dC1hbGlnbjogcmlnaHQgIWltcG9ydGFudDsgfVxcbi50ZXh0LWNlbnRlciB7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDsgfVxcbkBtZWRpYSAobWluLXdpZHRoOiA1NzZweCkge1xcbiAgLnRleHQtc20tbGVmdCB7XFxuICAgIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDsgfVxcbiAgLnRleHQtc20tcmlnaHQge1xcbiAgICB0ZXh0LWFsaWduOiByaWdodCAhaW1wb3J0YW50OyB9XFxuICAudGV4dC1zbS1jZW50ZXIge1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDsgfSB9XFxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XFxuICAudGV4dC1tZC1sZWZ0IHtcXG4gICAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50OyB9XFxuICAudGV4dC1tZC1yaWdodCB7XFxuICAgIHRleHQtYWxpZ246IHJpZ2h0ICFpbXBvcnRhbnQ7IH1cXG4gIC50ZXh0LW1kLWNlbnRlciB7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50OyB9IH1cXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcXG4gIC50ZXh0LWxnLWxlZnQge1xcbiAgICB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7IH1cXG4gIC50ZXh0LWxnLXJpZ2h0IHtcXG4gICAgdGV4dC1hbGlnbjogcmlnaHQgIWltcG9ydGFudDsgfVxcbiAgLnRleHQtbGctY2VudGVyIHtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7IH0gfVxcbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcXG4gIC50ZXh0LXhsLWxlZnQge1xcbiAgICB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7IH1cXG4gIC50ZXh0LXhsLXJpZ2h0IHtcXG4gICAgdGV4dC1hbGlnbjogcmlnaHQgIWltcG9ydGFudDsgfVxcbiAgLnRleHQteGwtY2VudGVyIHtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7IH0gfVxcbi50ZXh0LWxvd2VyY2FzZSB7XFxuICB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlICFpbXBvcnRhbnQ7IH1cXG4udGV4dC11cHBlcmNhc2Uge1xcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSAhaW1wb3J0YW50OyB9XFxuLnRleHQtY2FwaXRhbGl6ZSB7XFxuICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZSAhaW1wb3J0YW50OyB9XFxuLmZvbnQtd2VpZ2h0LW5vcm1hbCB7XFxuICBmb250LXdlaWdodDogbm9ybWFsOyB9XFxuLmZvbnQtd2VpZ2h0LWJvbGQge1xcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cXG4uZm9udC1pdGFsaWMge1xcbiAgZm9udC1zdHlsZTogaXRhbGljOyB9XFxuLnRleHQtd2hpdGUge1xcbiAgY29sb3I6ICNmZmYgIWltcG9ydGFudDsgfVxcbi50ZXh0LW11dGVkIHtcXG4gIGNvbG9yOiAjNjM2YzcyICFpbXBvcnRhbnQ7IH1cXG5hLnRleHQtbXV0ZWQ6Zm9jdXMsIGEudGV4dC1tdXRlZDpob3ZlciB7XFxuICBjb2xvcjogIzRiNTI1NyAhaW1wb3J0YW50OyB9XFxuLnRleHQtcHJpbWFyeSB7XFxuICBjb2xvcjogIzAyNzVkOCAhaW1wb3J0YW50OyB9XFxuYS50ZXh0LXByaW1hcnk6Zm9jdXMsIGEudGV4dC1wcmltYXJ5OmhvdmVyIHtcXG4gIGNvbG9yOiAjMDI1YWE1ICFpbXBvcnRhbnQ7IH1cXG4udGV4dC1zdWNjZXNzIHtcXG4gIGNvbG9yOiAjNWNiODVjICFpbXBvcnRhbnQ7IH1cXG5hLnRleHQtc3VjY2Vzczpmb2N1cywgYS50ZXh0LXN1Y2Nlc3M6aG92ZXIge1xcbiAgY29sb3I6ICM0NDlkNDQgIWltcG9ydGFudDsgfVxcbi50ZXh0LWluZm8ge1xcbiAgY29sb3I6ICM1YmMwZGUgIWltcG9ydGFudDsgfVxcbmEudGV4dC1pbmZvOmZvY3VzLCBhLnRleHQtaW5mbzpob3ZlciB7XFxuICBjb2xvcjogIzMxYjBkNSAhaW1wb3J0YW50OyB9XFxuLnRleHQtd2FybmluZyB7XFxuICBjb2xvcjogI2YwYWQ0ZSAhaW1wb3J0YW50OyB9XFxuYS50ZXh0LXdhcm5pbmc6Zm9jdXMsIGEudGV4dC13YXJuaW5nOmhvdmVyIHtcXG4gIGNvbG9yOiAjZWM5NzFmICFpbXBvcnRhbnQ7IH1cXG4udGV4dC1kYW5nZXIge1xcbiAgY29sb3I6ICNkOTUzNGYgIWltcG9ydGFudDsgfVxcbmEudGV4dC1kYW5nZXI6Zm9jdXMsIGEudGV4dC1kYW5nZXI6aG92ZXIge1xcbiAgY29sb3I6ICNjOTMwMmMgIWltcG9ydGFudDsgfVxcbi50ZXh0LWdyYXktZGFyayB7XFxuICBjb2xvcjogIzI5MmIyYyAhaW1wb3J0YW50OyB9XFxuYS50ZXh0LWdyYXktZGFyazpmb2N1cywgYS50ZXh0LWdyYXktZGFyazpob3ZlciB7XFxuICBjb2xvcjogIzEwMTExMiAhaW1wb3J0YW50OyB9XFxuLnRleHQtaGlkZSB7XFxuICBmb250OiAwLzAgYTtcXG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcXG4gIHRleHQtc2hhZG93OiBub25lO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICBib3JkZXI6IDA7IH1cXG4uaW52aXNpYmxlIHtcXG4gIHZpc2liaWxpdHk6IGhpZGRlbiAhaW1wb3J0YW50OyB9XFxuLmhpZGRlbi14cy11cCB7XFxuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cXG5AbWVkaWEgKG1heC13aWR0aDogNTc1cHgpIHtcXG4gIC5oaWRkZW4teHMtZG93biB7XFxuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XFxuQG1lZGlhIChtaW4td2lkdGg6IDU3NnB4KSB7XFxuICAuaGlkZGVuLXNtLXVwIHtcXG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cXG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcXG4gIC5oaWRkZW4tc20tZG93biB7XFxuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XFxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XFxuICAuaGlkZGVuLW1kLXVwIHtcXG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cXG5AbWVkaWEgKG1heC13aWR0aDogOTkxcHgpIHtcXG4gIC5oaWRkZW4tbWQtZG93biB7XFxuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XFxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XFxuICAuaGlkZGVuLWxnLXVwIHtcXG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cXG5AbWVkaWEgKG1heC13aWR0aDogMTE5OXB4KSB7XFxuICAuaGlkZGVuLWxnLWRvd24ge1xcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxcbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcXG4gIC5oaWRkZW4teGwtdXAge1xcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxcbi5oaWRkZW4teGwtZG93biB7XFxuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cXG4udmlzaWJsZS1wcmludC1ibG9jayB7XFxuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cXG5AbWVkaWEgcHJpbnQge1xcbiAgICAudmlzaWJsZS1wcmludC1ibG9jayB7XFxuICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfSB9XFxuLnZpc2libGUtcHJpbnQtaW5saW5lIHtcXG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxcbkBtZWRpYSBwcmludCB7XFxuICAgIC52aXNpYmxlLXByaW50LWlubGluZSB7XFxuICAgICAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7IH0gfVxcbi52aXNpYmxlLXByaW50LWlubGluZS1ibG9jayB7XFxuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cXG5AbWVkaWEgcHJpbnQge1xcbiAgICAudmlzaWJsZS1wcmludC1pbmxpbmUtYmxvY2sge1xcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50OyB9IH1cXG5AbWVkaWEgcHJpbnQge1xcbiAgLmhpZGRlbi1wcmludCB7XFxuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XFxuaHRtbCB7XFxuICBmb250LXNpemU6IDE0cHg7IH1cXG4ud3JhcHBlciB7XFxuICBkaXNwbGF5OiBncmlkO1xcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgNGZyO1xcbiAgZ3JpZC1hdXRvLXJvd3M6IG1pbm1heCgxMDAlLCBhdXRvKTtcXG4gIGhlaWdodDogMTAwdmg7IH1cXG4uc2lkZWJhciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjZmOGZhOyB9XFxuLm1haW4sIC5zaWRlYmFyIHtcXG4gIHBhZGRpbmc6IDJyZW07IH1cXG4uaGlkZSB7XFxuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cXG5mb3JtIC5hbGVydCB7XFxuICBtYXJnaW4tdG9wOiAxcmVtOyB9XFxudGV4dGFyZWEuZm9ybS1jb250cm9sIHtcXG4gIGxpbmUtaGVpZ2h0OiAxLjU7IH1cXG5cIiwgXCJcIl0pO1xuXG4vLyBleHBvcnRzXG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2xpYj97fSEuL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9saWIvbG9hZGVyLmpzP3tcImluY2x1ZGVQYXRoc1wiOltcIm5vZGVfbW9kdWxlc1wiLFwiLi9mcmFwcGUvY2xpZW50L3Njc3NcIl19IS4vc2Nzcy9tYWluLnNjc3Ncbi8vIG1vZHVsZSBpZCA9IDZcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwiLypcblx0TUlUIExpY2Vuc2UgaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHBcblx0QXV0aG9yIFRvYmlhcyBLb3BwZXJzIEBzb2tyYVxuKi9cbi8vIGNzcyBiYXNlIGNvZGUsIGluamVjdGVkIGJ5IHRoZSBjc3MtbG9hZGVyXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKHVzZVNvdXJjZU1hcCkge1xuXHR2YXIgbGlzdCA9IFtdO1xuXG5cdC8vIHJldHVybiB0aGUgbGlzdCBvZiBtb2R1bGVzIGFzIGNzcyBzdHJpbmdcblx0bGlzdC50b1N0cmluZyA9IGZ1bmN0aW9uIHRvU3RyaW5nKCkge1xuXHRcdHJldHVybiB0aGlzLm1hcChmdW5jdGlvbiAoaXRlbSkge1xuXHRcdFx0dmFyIGNvbnRlbnQgPSBjc3NXaXRoTWFwcGluZ1RvU3RyaW5nKGl0ZW0sIHVzZVNvdXJjZU1hcCk7XG5cdFx0XHRpZihpdGVtWzJdKSB7XG5cdFx0XHRcdHJldHVybiBcIkBtZWRpYSBcIiArIGl0ZW1bMl0gKyBcIntcIiArIGNvbnRlbnQgKyBcIn1cIjtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHJldHVybiBjb250ZW50O1xuXHRcdFx0fVxuXHRcdH0pLmpvaW4oXCJcIik7XG5cdH07XG5cblx0Ly8gaW1wb3J0IGEgbGlzdCBvZiBtb2R1bGVzIGludG8gdGhlIGxpc3Rcblx0bGlzdC5pID0gZnVuY3Rpb24obW9kdWxlcywgbWVkaWFRdWVyeSkge1xuXHRcdGlmKHR5cGVvZiBtb2R1bGVzID09PSBcInN0cmluZ1wiKVxuXHRcdFx0bW9kdWxlcyA9IFtbbnVsbCwgbW9kdWxlcywgXCJcIl1dO1xuXHRcdHZhciBhbHJlYWR5SW1wb3J0ZWRNb2R1bGVzID0ge307XG5cdFx0Zm9yKHZhciBpID0gMDsgaSA8IHRoaXMubGVuZ3RoOyBpKyspIHtcblx0XHRcdHZhciBpZCA9IHRoaXNbaV1bMF07XG5cdFx0XHRpZih0eXBlb2YgaWQgPT09IFwibnVtYmVyXCIpXG5cdFx0XHRcdGFscmVhZHlJbXBvcnRlZE1vZHVsZXNbaWRdID0gdHJ1ZTtcblx0XHR9XG5cdFx0Zm9yKGkgPSAwOyBpIDwgbW9kdWxlcy5sZW5ndGg7IGkrKykge1xuXHRcdFx0dmFyIGl0ZW0gPSBtb2R1bGVzW2ldO1xuXHRcdFx0Ly8gc2tpcCBhbHJlYWR5IGltcG9ydGVkIG1vZHVsZVxuXHRcdFx0Ly8gdGhpcyBpbXBsZW1lbnRhdGlvbiBpcyBub3QgMTAwJSBwZXJmZWN0IGZvciB3ZWlyZCBtZWRpYSBxdWVyeSBjb21iaW5hdGlvbnNcblx0XHRcdC8vICB3aGVuIGEgbW9kdWxlIGlzIGltcG9ydGVkIG11bHRpcGxlIHRpbWVzIHdpdGggZGlmZmVyZW50IG1lZGlhIHF1ZXJpZXMuXG5cdFx0XHQvLyAgSSBob3BlIHRoaXMgd2lsbCBuZXZlciBvY2N1ciAoSGV5IHRoaXMgd2F5IHdlIGhhdmUgc21hbGxlciBidW5kbGVzKVxuXHRcdFx0aWYodHlwZW9mIGl0ZW1bMF0gIT09IFwibnVtYmVyXCIgfHwgIWFscmVhZHlJbXBvcnRlZE1vZHVsZXNbaXRlbVswXV0pIHtcblx0XHRcdFx0aWYobWVkaWFRdWVyeSAmJiAhaXRlbVsyXSkge1xuXHRcdFx0XHRcdGl0ZW1bMl0gPSBtZWRpYVF1ZXJ5O1xuXHRcdFx0XHR9IGVsc2UgaWYobWVkaWFRdWVyeSkge1xuXHRcdFx0XHRcdGl0ZW1bMl0gPSBcIihcIiArIGl0ZW1bMl0gKyBcIikgYW5kIChcIiArIG1lZGlhUXVlcnkgKyBcIilcIjtcblx0XHRcdFx0fVxuXHRcdFx0XHRsaXN0LnB1c2goaXRlbSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9O1xuXHRyZXR1cm4gbGlzdDtcbn07XG5cbmZ1bmN0aW9uIGNzc1dpdGhNYXBwaW5nVG9TdHJpbmcoaXRlbSwgdXNlU291cmNlTWFwKSB7XG5cdHZhciBjb250ZW50ID0gaXRlbVsxXSB8fCAnJztcblx0dmFyIGNzc01hcHBpbmcgPSBpdGVtWzNdO1xuXHRpZiAoIWNzc01hcHBpbmcpIHtcblx0XHRyZXR1cm4gY29udGVudDtcblx0fVxuXG5cdGlmICh1c2VTb3VyY2VNYXAgJiYgdHlwZW9mIGJ0b2EgPT09ICdmdW5jdGlvbicpIHtcblx0XHR2YXIgc291cmNlTWFwcGluZyA9IHRvQ29tbWVudChjc3NNYXBwaW5nKTtcblx0XHR2YXIgc291cmNlVVJMcyA9IGNzc01hcHBpbmcuc291cmNlcy5tYXAoZnVuY3Rpb24gKHNvdXJjZSkge1xuXHRcdFx0cmV0dXJuICcvKiMgc291cmNlVVJMPScgKyBjc3NNYXBwaW5nLnNvdXJjZVJvb3QgKyBzb3VyY2UgKyAnICovJ1xuXHRcdH0pO1xuXG5cdFx0cmV0dXJuIFtjb250ZW50XS5jb25jYXQoc291cmNlVVJMcykuY29uY2F0KFtzb3VyY2VNYXBwaW5nXSkuam9pbignXFxuJyk7XG5cdH1cblxuXHRyZXR1cm4gW2NvbnRlbnRdLmpvaW4oJ1xcbicpO1xufVxuXG4vLyBBZGFwdGVkIGZyb20gY29udmVydC1zb3VyY2UtbWFwIChNSVQpXG5mdW5jdGlvbiB0b0NvbW1lbnQoc291cmNlTWFwKSB7XG5cdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bmRlZlxuXHR2YXIgYmFzZTY0ID0gYnRvYSh1bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkoc291cmNlTWFwKSkpKTtcblx0dmFyIGRhdGEgPSAnc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsJyArIGJhc2U2NDtcblxuXHRyZXR1cm4gJy8qIyAnICsgZGF0YSArICcgKi8nO1xufVxuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9saWIvY3NzLWJhc2UuanNcbi8vIG1vZHVsZSBpZCA9IDdcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwiLypcblx0TUlUIExpY2Vuc2UgaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHBcblx0QXV0aG9yIFRvYmlhcyBLb3BwZXJzIEBzb2tyYVxuKi9cblxudmFyIHN0eWxlc0luRG9tID0ge307XG5cbnZhclx0bWVtb2l6ZSA9IGZ1bmN0aW9uIChmbikge1xuXHR2YXIgbWVtbztcblxuXHRyZXR1cm4gZnVuY3Rpb24gKCkge1xuXHRcdGlmICh0eXBlb2YgbWVtbyA9PT0gXCJ1bmRlZmluZWRcIikgbWVtbyA9IGZuLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG5cdFx0cmV0dXJuIG1lbW87XG5cdH07XG59O1xuXG52YXIgaXNPbGRJRSA9IG1lbW9pemUoZnVuY3Rpb24gKCkge1xuXHQvLyBUZXN0IGZvciBJRSA8PSA5IGFzIHByb3Bvc2VkIGJ5IEJyb3dzZXJoYWNrc1xuXHQvLyBAc2VlIGh0dHA6Ly9icm93c2VyaGFja3MuY29tLyNoYWNrLWU3MWQ4NjkyZjY1MzM0MTczZmVlNzE1YzIyMmNiODA1XG5cdC8vIFRlc3RzIGZvciBleGlzdGVuY2Ugb2Ygc3RhbmRhcmQgZ2xvYmFscyBpcyB0byBhbGxvdyBzdHlsZS1sb2FkZXJcblx0Ly8gdG8gb3BlcmF0ZSBjb3JyZWN0bHkgaW50byBub24tc3RhbmRhcmQgZW52aXJvbm1lbnRzXG5cdC8vIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3dlYnBhY2stY29udHJpYi9zdHlsZS1sb2FkZXIvaXNzdWVzLzE3N1xuXHRyZXR1cm4gd2luZG93ICYmIGRvY3VtZW50ICYmIGRvY3VtZW50LmFsbCAmJiAhd2luZG93LmF0b2I7XG59KTtcblxudmFyIGdldEVsZW1lbnQgPSAoZnVuY3Rpb24gKGZuKSB7XG5cdHZhciBtZW1vID0ge307XG5cblx0cmV0dXJuIGZ1bmN0aW9uKHNlbGVjdG9yKSB7XG5cdFx0aWYgKHR5cGVvZiBtZW1vW3NlbGVjdG9yXSA9PT0gXCJ1bmRlZmluZWRcIikge1xuXHRcdFx0dmFyIHN0eWxlVGFyZ2V0ID0gZm4uY2FsbCh0aGlzLCBzZWxlY3Rvcik7XG5cdFx0XHQvLyBTcGVjaWFsIGNhc2UgdG8gcmV0dXJuIGhlYWQgb2YgaWZyYW1lIGluc3RlYWQgb2YgaWZyYW1lIGl0c2VsZlxuXHRcdFx0aWYgKHN0eWxlVGFyZ2V0IGluc3RhbmNlb2Ygd2luZG93LkhUTUxJRnJhbWVFbGVtZW50KSB7XG5cdFx0XHRcdHRyeSB7XG5cdFx0XHRcdFx0Ly8gVGhpcyB3aWxsIHRocm93IGFuIGV4Y2VwdGlvbiBpZiBhY2Nlc3MgdG8gaWZyYW1lIGlzIGJsb2NrZWRcblx0XHRcdFx0XHQvLyBkdWUgdG8gY3Jvc3Mtb3JpZ2luIHJlc3RyaWN0aW9uc1xuXHRcdFx0XHRcdHN0eWxlVGFyZ2V0ID0gc3R5bGVUYXJnZXQuY29udGVudERvY3VtZW50LmhlYWQ7XG5cdFx0XHRcdH0gY2F0Y2goZSkge1xuXHRcdFx0XHRcdHN0eWxlVGFyZ2V0ID0gbnVsbDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0bWVtb1tzZWxlY3Rvcl0gPSBzdHlsZVRhcmdldDtcblx0XHR9XG5cdFx0cmV0dXJuIG1lbW9bc2VsZWN0b3JdXG5cdH07XG59KShmdW5jdGlvbiAodGFyZ2V0KSB7XG5cdHJldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHRhcmdldClcbn0pO1xuXG52YXIgc2luZ2xldG9uID0gbnVsbDtcbnZhclx0c2luZ2xldG9uQ291bnRlciA9IDA7XG52YXJcdHN0eWxlc0luc2VydGVkQXRUb3AgPSBbXTtcblxudmFyXHRmaXhVcmxzID0gcmVxdWlyZShcIi4vdXJsc1wiKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihsaXN0LCBvcHRpb25zKSB7XG5cdGlmICh0eXBlb2YgREVCVUcgIT09IFwidW5kZWZpbmVkXCIgJiYgREVCVUcpIHtcblx0XHRpZiAodHlwZW9mIGRvY3VtZW50ICE9PSBcIm9iamVjdFwiKSB0aHJvdyBuZXcgRXJyb3IoXCJUaGUgc3R5bGUtbG9hZGVyIGNhbm5vdCBiZSB1c2VkIGluIGEgbm9uLWJyb3dzZXIgZW52aXJvbm1lbnRcIik7XG5cdH1cblxuXHRvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcblxuXHRvcHRpb25zLmF0dHJzID0gdHlwZW9mIG9wdGlvbnMuYXR0cnMgPT09IFwib2JqZWN0XCIgPyBvcHRpb25zLmF0dHJzIDoge307XG5cblx0Ly8gRm9yY2Ugc2luZ2xlLXRhZyBzb2x1dGlvbiBvbiBJRTYtOSwgd2hpY2ggaGFzIGEgaGFyZCBsaW1pdCBvbiB0aGUgIyBvZiA8c3R5bGU+XG5cdC8vIHRhZ3MgaXQgd2lsbCBhbGxvdyBvbiBhIHBhZ2Vcblx0aWYgKCFvcHRpb25zLnNpbmdsZXRvbiAmJiB0eXBlb2Ygb3B0aW9ucy5zaW5nbGV0b24gIT09IFwiYm9vbGVhblwiKSBvcHRpb25zLnNpbmdsZXRvbiA9IGlzT2xkSUUoKTtcblxuXHQvLyBCeSBkZWZhdWx0LCBhZGQgPHN0eWxlPiB0YWdzIHRvIHRoZSA8aGVhZD4gZWxlbWVudFxuXHRpZiAoIW9wdGlvbnMuaW5zZXJ0SW50bykgb3B0aW9ucy5pbnNlcnRJbnRvID0gXCJoZWFkXCI7XG5cblx0Ly8gQnkgZGVmYXVsdCwgYWRkIDxzdHlsZT4gdGFncyB0byB0aGUgYm90dG9tIG9mIHRoZSB0YXJnZXRcblx0aWYgKCFvcHRpb25zLmluc2VydEF0KSBvcHRpb25zLmluc2VydEF0ID0gXCJib3R0b21cIjtcblxuXHR2YXIgc3R5bGVzID0gbGlzdFRvU3R5bGVzKGxpc3QsIG9wdGlvbnMpO1xuXG5cdGFkZFN0eWxlc1RvRG9tKHN0eWxlcywgb3B0aW9ucyk7XG5cblx0cmV0dXJuIGZ1bmN0aW9uIHVwZGF0ZSAobmV3TGlzdCkge1xuXHRcdHZhciBtYXlSZW1vdmUgPSBbXTtcblxuXHRcdGZvciAodmFyIGkgPSAwOyBpIDwgc3R5bGVzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHR2YXIgaXRlbSA9IHN0eWxlc1tpXTtcblx0XHRcdHZhciBkb21TdHlsZSA9IHN0eWxlc0luRG9tW2l0ZW0uaWRdO1xuXG5cdFx0XHRkb21TdHlsZS5yZWZzLS07XG5cdFx0XHRtYXlSZW1vdmUucHVzaChkb21TdHlsZSk7XG5cdFx0fVxuXG5cdFx0aWYobmV3TGlzdCkge1xuXHRcdFx0dmFyIG5ld1N0eWxlcyA9IGxpc3RUb1N0eWxlcyhuZXdMaXN0LCBvcHRpb25zKTtcblx0XHRcdGFkZFN0eWxlc1RvRG9tKG5ld1N0eWxlcywgb3B0aW9ucyk7XG5cdFx0fVxuXG5cdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCBtYXlSZW1vdmUubGVuZ3RoOyBpKyspIHtcblx0XHRcdHZhciBkb21TdHlsZSA9IG1heVJlbW92ZVtpXTtcblxuXHRcdFx0aWYoZG9tU3R5bGUucmVmcyA9PT0gMCkge1xuXHRcdFx0XHRmb3IgKHZhciBqID0gMDsgaiA8IGRvbVN0eWxlLnBhcnRzLmxlbmd0aDsgaisrKSBkb21TdHlsZS5wYXJ0c1tqXSgpO1xuXG5cdFx0XHRcdGRlbGV0ZSBzdHlsZXNJbkRvbVtkb21TdHlsZS5pZF07XG5cdFx0XHR9XG5cdFx0fVxuXHR9O1xufTtcblxuZnVuY3Rpb24gYWRkU3R5bGVzVG9Eb20gKHN0eWxlcywgb3B0aW9ucykge1xuXHRmb3IgKHZhciBpID0gMDsgaSA8IHN0eWxlcy5sZW5ndGg7IGkrKykge1xuXHRcdHZhciBpdGVtID0gc3R5bGVzW2ldO1xuXHRcdHZhciBkb21TdHlsZSA9IHN0eWxlc0luRG9tW2l0ZW0uaWRdO1xuXG5cdFx0aWYoZG9tU3R5bGUpIHtcblx0XHRcdGRvbVN0eWxlLnJlZnMrKztcblxuXHRcdFx0Zm9yKHZhciBqID0gMDsgaiA8IGRvbVN0eWxlLnBhcnRzLmxlbmd0aDsgaisrKSB7XG5cdFx0XHRcdGRvbVN0eWxlLnBhcnRzW2pdKGl0ZW0ucGFydHNbal0pO1xuXHRcdFx0fVxuXG5cdFx0XHRmb3IoOyBqIDwgaXRlbS5wYXJ0cy5sZW5ndGg7IGorKykge1xuXHRcdFx0XHRkb21TdHlsZS5wYXJ0cy5wdXNoKGFkZFN0eWxlKGl0ZW0ucGFydHNbal0sIG9wdGlvbnMpKTtcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0dmFyIHBhcnRzID0gW107XG5cblx0XHRcdGZvcih2YXIgaiA9IDA7IGogPCBpdGVtLnBhcnRzLmxlbmd0aDsgaisrKSB7XG5cdFx0XHRcdHBhcnRzLnB1c2goYWRkU3R5bGUoaXRlbS5wYXJ0c1tqXSwgb3B0aW9ucykpO1xuXHRcdFx0fVxuXG5cdFx0XHRzdHlsZXNJbkRvbVtpdGVtLmlkXSA9IHtpZDogaXRlbS5pZCwgcmVmczogMSwgcGFydHM6IHBhcnRzfTtcblx0XHR9XG5cdH1cbn1cblxuZnVuY3Rpb24gbGlzdFRvU3R5bGVzIChsaXN0LCBvcHRpb25zKSB7XG5cdHZhciBzdHlsZXMgPSBbXTtcblx0dmFyIG5ld1N0eWxlcyA9IHt9O1xuXG5cdGZvciAodmFyIGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7IGkrKykge1xuXHRcdHZhciBpdGVtID0gbGlzdFtpXTtcblx0XHR2YXIgaWQgPSBvcHRpb25zLmJhc2UgPyBpdGVtWzBdICsgb3B0aW9ucy5iYXNlIDogaXRlbVswXTtcblx0XHR2YXIgY3NzID0gaXRlbVsxXTtcblx0XHR2YXIgbWVkaWEgPSBpdGVtWzJdO1xuXHRcdHZhciBzb3VyY2VNYXAgPSBpdGVtWzNdO1xuXHRcdHZhciBwYXJ0ID0ge2NzczogY3NzLCBtZWRpYTogbWVkaWEsIHNvdXJjZU1hcDogc291cmNlTWFwfTtcblxuXHRcdGlmKCFuZXdTdHlsZXNbaWRdKSBzdHlsZXMucHVzaChuZXdTdHlsZXNbaWRdID0ge2lkOiBpZCwgcGFydHM6IFtwYXJ0XX0pO1xuXHRcdGVsc2UgbmV3U3R5bGVzW2lkXS5wYXJ0cy5wdXNoKHBhcnQpO1xuXHR9XG5cblx0cmV0dXJuIHN0eWxlcztcbn1cblxuZnVuY3Rpb24gaW5zZXJ0U3R5bGVFbGVtZW50IChvcHRpb25zLCBzdHlsZSkge1xuXHR2YXIgdGFyZ2V0ID0gZ2V0RWxlbWVudChvcHRpb25zLmluc2VydEludG8pXG5cblx0aWYgKCF0YXJnZXQpIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoXCJDb3VsZG4ndCBmaW5kIGEgc3R5bGUgdGFyZ2V0LiBUaGlzIHByb2JhYmx5IG1lYW5zIHRoYXQgdGhlIHZhbHVlIGZvciB0aGUgJ2luc2VydEludG8nIHBhcmFtZXRlciBpcyBpbnZhbGlkLlwiKTtcblx0fVxuXG5cdHZhciBsYXN0U3R5bGVFbGVtZW50SW5zZXJ0ZWRBdFRvcCA9IHN0eWxlc0luc2VydGVkQXRUb3Bbc3R5bGVzSW5zZXJ0ZWRBdFRvcC5sZW5ndGggLSAxXTtcblxuXHRpZiAob3B0aW9ucy5pbnNlcnRBdCA9PT0gXCJ0b3BcIikge1xuXHRcdGlmICghbGFzdFN0eWxlRWxlbWVudEluc2VydGVkQXRUb3ApIHtcblx0XHRcdHRhcmdldC5pbnNlcnRCZWZvcmUoc3R5bGUsIHRhcmdldC5maXJzdENoaWxkKTtcblx0XHR9IGVsc2UgaWYgKGxhc3RTdHlsZUVsZW1lbnRJbnNlcnRlZEF0VG9wLm5leHRTaWJsaW5nKSB7XG5cdFx0XHR0YXJnZXQuaW5zZXJ0QmVmb3JlKHN0eWxlLCBsYXN0U3R5bGVFbGVtZW50SW5zZXJ0ZWRBdFRvcC5uZXh0U2libGluZyk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRhcmdldC5hcHBlbmRDaGlsZChzdHlsZSk7XG5cdFx0fVxuXHRcdHN0eWxlc0luc2VydGVkQXRUb3AucHVzaChzdHlsZSk7XG5cdH0gZWxzZSBpZiAob3B0aW9ucy5pbnNlcnRBdCA9PT0gXCJib3R0b21cIikge1xuXHRcdHRhcmdldC5hcHBlbmRDaGlsZChzdHlsZSk7XG5cdH0gZWxzZSBpZiAodHlwZW9mIG9wdGlvbnMuaW5zZXJ0QXQgPT09IFwib2JqZWN0XCIgJiYgb3B0aW9ucy5pbnNlcnRBdC5iZWZvcmUpIHtcblx0XHR2YXIgbmV4dFNpYmxpbmcgPSBnZXRFbGVtZW50KG9wdGlvbnMuaW5zZXJ0SW50byArIFwiIFwiICsgb3B0aW9ucy5pbnNlcnRBdC5iZWZvcmUpO1xuXHRcdHRhcmdldC5pbnNlcnRCZWZvcmUoc3R5bGUsIG5leHRTaWJsaW5nKTtcblx0fSBlbHNlIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoXCJbU3R5bGUgTG9hZGVyXVxcblxcbiBJbnZhbGlkIHZhbHVlIGZvciBwYXJhbWV0ZXIgJ2luc2VydEF0JyAoJ29wdGlvbnMuaW5zZXJ0QXQnKSBmb3VuZC5cXG4gTXVzdCBiZSAndG9wJywgJ2JvdHRvbScsIG9yIE9iamVjdC5cXG4gKGh0dHBzOi8vZ2l0aHViLmNvbS93ZWJwYWNrLWNvbnRyaWIvc3R5bGUtbG9hZGVyI2luc2VydGF0KVxcblwiKTtcblx0fVxufVxuXG5mdW5jdGlvbiByZW1vdmVTdHlsZUVsZW1lbnQgKHN0eWxlKSB7XG5cdGlmIChzdHlsZS5wYXJlbnROb2RlID09PSBudWxsKSByZXR1cm4gZmFsc2U7XG5cdHN0eWxlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoc3R5bGUpO1xuXG5cdHZhciBpZHggPSBzdHlsZXNJbnNlcnRlZEF0VG9wLmluZGV4T2Yoc3R5bGUpO1xuXHRpZihpZHggPj0gMCkge1xuXHRcdHN0eWxlc0luc2VydGVkQXRUb3Auc3BsaWNlKGlkeCwgMSk7XG5cdH1cbn1cblxuZnVuY3Rpb24gY3JlYXRlU3R5bGVFbGVtZW50IChvcHRpb25zKSB7XG5cdHZhciBzdHlsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzdHlsZVwiKTtcblxuXHRvcHRpb25zLmF0dHJzLnR5cGUgPSBcInRleHQvY3NzXCI7XG5cblx0YWRkQXR0cnMoc3R5bGUsIG9wdGlvbnMuYXR0cnMpO1xuXHRpbnNlcnRTdHlsZUVsZW1lbnQob3B0aW9ucywgc3R5bGUpO1xuXG5cdHJldHVybiBzdHlsZTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlTGlua0VsZW1lbnQgKG9wdGlvbnMpIHtcblx0dmFyIGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwibGlua1wiKTtcblxuXHRvcHRpb25zLmF0dHJzLnR5cGUgPSBcInRleHQvY3NzXCI7XG5cdG9wdGlvbnMuYXR0cnMucmVsID0gXCJzdHlsZXNoZWV0XCI7XG5cblx0YWRkQXR0cnMobGluaywgb3B0aW9ucy5hdHRycyk7XG5cdGluc2VydFN0eWxlRWxlbWVudChvcHRpb25zLCBsaW5rKTtcblxuXHRyZXR1cm4gbGluaztcbn1cblxuZnVuY3Rpb24gYWRkQXR0cnMgKGVsLCBhdHRycykge1xuXHRPYmplY3Qua2V5cyhhdHRycykuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG5cdFx0ZWwuc2V0QXR0cmlidXRlKGtleSwgYXR0cnNba2V5XSk7XG5cdH0pO1xufVxuXG5mdW5jdGlvbiBhZGRTdHlsZSAob2JqLCBvcHRpb25zKSB7XG5cdHZhciBzdHlsZSwgdXBkYXRlLCByZW1vdmUsIHJlc3VsdDtcblxuXHQvLyBJZiBhIHRyYW5zZm9ybSBmdW5jdGlvbiB3YXMgZGVmaW5lZCwgcnVuIGl0IG9uIHRoZSBjc3Ncblx0aWYgKG9wdGlvbnMudHJhbnNmb3JtICYmIG9iai5jc3MpIHtcblx0ICAgIHJlc3VsdCA9IG9wdGlvbnMudHJhbnNmb3JtKG9iai5jc3MpO1xuXG5cdCAgICBpZiAocmVzdWx0KSB7XG5cdCAgICBcdC8vIElmIHRyYW5zZm9ybSByZXR1cm5zIGEgdmFsdWUsIHVzZSB0aGF0IGluc3RlYWQgb2YgdGhlIG9yaWdpbmFsIGNzcy5cblx0ICAgIFx0Ly8gVGhpcyBhbGxvd3MgcnVubmluZyBydW50aW1lIHRyYW5zZm9ybWF0aW9ucyBvbiB0aGUgY3NzLlxuXHQgICAgXHRvYmouY3NzID0gcmVzdWx0O1xuXHQgICAgfSBlbHNlIHtcblx0ICAgIFx0Ly8gSWYgdGhlIHRyYW5zZm9ybSBmdW5jdGlvbiByZXR1cm5zIGEgZmFsc3kgdmFsdWUsIGRvbid0IGFkZCB0aGlzIGNzcy5cblx0ICAgIFx0Ly8gVGhpcyBhbGxvd3MgY29uZGl0aW9uYWwgbG9hZGluZyBvZiBjc3Ncblx0ICAgIFx0cmV0dXJuIGZ1bmN0aW9uKCkge1xuXHQgICAgXHRcdC8vIG5vb3Bcblx0ICAgIFx0fTtcblx0ICAgIH1cblx0fVxuXG5cdGlmIChvcHRpb25zLnNpbmdsZXRvbikge1xuXHRcdHZhciBzdHlsZUluZGV4ID0gc2luZ2xldG9uQ291bnRlcisrO1xuXG5cdFx0c3R5bGUgPSBzaW5nbGV0b24gfHwgKHNpbmdsZXRvbiA9IGNyZWF0ZVN0eWxlRWxlbWVudChvcHRpb25zKSk7XG5cblx0XHR1cGRhdGUgPSBhcHBseVRvU2luZ2xldG9uVGFnLmJpbmQobnVsbCwgc3R5bGUsIHN0eWxlSW5kZXgsIGZhbHNlKTtcblx0XHRyZW1vdmUgPSBhcHBseVRvU2luZ2xldG9uVGFnLmJpbmQobnVsbCwgc3R5bGUsIHN0eWxlSW5kZXgsIHRydWUpO1xuXG5cdH0gZWxzZSBpZiAoXG5cdFx0b2JqLnNvdXJjZU1hcCAmJlxuXHRcdHR5cGVvZiBVUkwgPT09IFwiZnVuY3Rpb25cIiAmJlxuXHRcdHR5cGVvZiBVUkwuY3JlYXRlT2JqZWN0VVJMID09PSBcImZ1bmN0aW9uXCIgJiZcblx0XHR0eXBlb2YgVVJMLnJldm9rZU9iamVjdFVSTCA9PT0gXCJmdW5jdGlvblwiICYmXG5cdFx0dHlwZW9mIEJsb2IgPT09IFwiZnVuY3Rpb25cIiAmJlxuXHRcdHR5cGVvZiBidG9hID09PSBcImZ1bmN0aW9uXCJcblx0KSB7XG5cdFx0c3R5bGUgPSBjcmVhdGVMaW5rRWxlbWVudChvcHRpb25zKTtcblx0XHR1cGRhdGUgPSB1cGRhdGVMaW5rLmJpbmQobnVsbCwgc3R5bGUsIG9wdGlvbnMpO1xuXHRcdHJlbW92ZSA9IGZ1bmN0aW9uICgpIHtcblx0XHRcdHJlbW92ZVN0eWxlRWxlbWVudChzdHlsZSk7XG5cblx0XHRcdGlmKHN0eWxlLmhyZWYpIFVSTC5yZXZva2VPYmplY3RVUkwoc3R5bGUuaHJlZik7XG5cdFx0fTtcblx0fSBlbHNlIHtcblx0XHRzdHlsZSA9IGNyZWF0ZVN0eWxlRWxlbWVudChvcHRpb25zKTtcblx0XHR1cGRhdGUgPSBhcHBseVRvVGFnLmJpbmQobnVsbCwgc3R5bGUpO1xuXHRcdHJlbW92ZSA9IGZ1bmN0aW9uICgpIHtcblx0XHRcdHJlbW92ZVN0eWxlRWxlbWVudChzdHlsZSk7XG5cdFx0fTtcblx0fVxuXG5cdHVwZGF0ZShvYmopO1xuXG5cdHJldHVybiBmdW5jdGlvbiB1cGRhdGVTdHlsZSAobmV3T2JqKSB7XG5cdFx0aWYgKG5ld09iaikge1xuXHRcdFx0aWYgKFxuXHRcdFx0XHRuZXdPYmouY3NzID09PSBvYmouY3NzICYmXG5cdFx0XHRcdG5ld09iai5tZWRpYSA9PT0gb2JqLm1lZGlhICYmXG5cdFx0XHRcdG5ld09iai5zb3VyY2VNYXAgPT09IG9iai5zb3VyY2VNYXBcblx0XHRcdCkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cblx0XHRcdHVwZGF0ZShvYmogPSBuZXdPYmopO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZW1vdmUoKTtcblx0XHR9XG5cdH07XG59XG5cbnZhciByZXBsYWNlVGV4dCA9IChmdW5jdGlvbiAoKSB7XG5cdHZhciB0ZXh0U3RvcmUgPSBbXTtcblxuXHRyZXR1cm4gZnVuY3Rpb24gKGluZGV4LCByZXBsYWNlbWVudCkge1xuXHRcdHRleHRTdG9yZVtpbmRleF0gPSByZXBsYWNlbWVudDtcblxuXHRcdHJldHVybiB0ZXh0U3RvcmUuZmlsdGVyKEJvb2xlYW4pLmpvaW4oJ1xcbicpO1xuXHR9O1xufSkoKTtcblxuZnVuY3Rpb24gYXBwbHlUb1NpbmdsZXRvblRhZyAoc3R5bGUsIGluZGV4LCByZW1vdmUsIG9iaikge1xuXHR2YXIgY3NzID0gcmVtb3ZlID8gXCJcIiA6IG9iai5jc3M7XG5cblx0aWYgKHN0eWxlLnN0eWxlU2hlZXQpIHtcblx0XHRzdHlsZS5zdHlsZVNoZWV0LmNzc1RleHQgPSByZXBsYWNlVGV4dChpbmRleCwgY3NzKTtcblx0fSBlbHNlIHtcblx0XHR2YXIgY3NzTm9kZSA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGNzcyk7XG5cdFx0dmFyIGNoaWxkTm9kZXMgPSBzdHlsZS5jaGlsZE5vZGVzO1xuXG5cdFx0aWYgKGNoaWxkTm9kZXNbaW5kZXhdKSBzdHlsZS5yZW1vdmVDaGlsZChjaGlsZE5vZGVzW2luZGV4XSk7XG5cblx0XHRpZiAoY2hpbGROb2Rlcy5sZW5ndGgpIHtcblx0XHRcdHN0eWxlLmluc2VydEJlZm9yZShjc3NOb2RlLCBjaGlsZE5vZGVzW2luZGV4XSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHN0eWxlLmFwcGVuZENoaWxkKGNzc05vZGUpO1xuXHRcdH1cblx0fVxufVxuXG5mdW5jdGlvbiBhcHBseVRvVGFnIChzdHlsZSwgb2JqKSB7XG5cdHZhciBjc3MgPSBvYmouY3NzO1xuXHR2YXIgbWVkaWEgPSBvYmoubWVkaWE7XG5cblx0aWYobWVkaWEpIHtcblx0XHRzdHlsZS5zZXRBdHRyaWJ1dGUoXCJtZWRpYVwiLCBtZWRpYSlcblx0fVxuXG5cdGlmKHN0eWxlLnN0eWxlU2hlZXQpIHtcblx0XHRzdHlsZS5zdHlsZVNoZWV0LmNzc1RleHQgPSBjc3M7XG5cdH0gZWxzZSB7XG5cdFx0d2hpbGUoc3R5bGUuZmlyc3RDaGlsZCkge1xuXHRcdFx0c3R5bGUucmVtb3ZlQ2hpbGQoc3R5bGUuZmlyc3RDaGlsZCk7XG5cdFx0fVxuXG5cdFx0c3R5bGUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoY3NzKSk7XG5cdH1cbn1cblxuZnVuY3Rpb24gdXBkYXRlTGluayAobGluaywgb3B0aW9ucywgb2JqKSB7XG5cdHZhciBjc3MgPSBvYmouY3NzO1xuXHR2YXIgc291cmNlTWFwID0gb2JqLnNvdXJjZU1hcDtcblxuXHQvKlxuXHRcdElmIGNvbnZlcnRUb0Fic29sdXRlVXJscyBpc24ndCBkZWZpbmVkLCBidXQgc291cmNlbWFwcyBhcmUgZW5hYmxlZFxuXHRcdGFuZCB0aGVyZSBpcyBubyBwdWJsaWNQYXRoIGRlZmluZWQgdGhlbiBsZXRzIHR1cm4gY29udmVydFRvQWJzb2x1dGVVcmxzXG5cdFx0b24gYnkgZGVmYXVsdC4gIE90aGVyd2lzZSBkZWZhdWx0IHRvIHRoZSBjb252ZXJ0VG9BYnNvbHV0ZVVybHMgb3B0aW9uXG5cdFx0ZGlyZWN0bHlcblx0Ki9cblx0dmFyIGF1dG9GaXhVcmxzID0gb3B0aW9ucy5jb252ZXJ0VG9BYnNvbHV0ZVVybHMgPT09IHVuZGVmaW5lZCAmJiBzb3VyY2VNYXA7XG5cblx0aWYgKG9wdGlvbnMuY29udmVydFRvQWJzb2x1dGVVcmxzIHx8IGF1dG9GaXhVcmxzKSB7XG5cdFx0Y3NzID0gZml4VXJscyhjc3MpO1xuXHR9XG5cblx0aWYgKHNvdXJjZU1hcCkge1xuXHRcdC8vIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9hLzI2NjAzODc1XG5cdFx0Y3NzICs9IFwiXFxuLyojIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxcIiArIGJ0b2EodW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KHNvdXJjZU1hcCkpKSkgKyBcIiAqL1wiO1xuXHR9XG5cblx0dmFyIGJsb2IgPSBuZXcgQmxvYihbY3NzXSwgeyB0eXBlOiBcInRleHQvY3NzXCIgfSk7XG5cblx0dmFyIG9sZFNyYyA9IGxpbmsuaHJlZjtcblxuXHRsaW5rLmhyZWYgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xuXG5cdGlmKG9sZFNyYykgVVJMLnJldm9rZU9iamVjdFVSTChvbGRTcmMpO1xufVxuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2xpYi9hZGRTdHlsZXMuanNcbi8vIG1vZHVsZSBpZCA9IDhcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwiXG4vKipcbiAqIFdoZW4gc291cmNlIG1hcHMgYXJlIGVuYWJsZWQsIGBzdHlsZS1sb2FkZXJgIHVzZXMgYSBsaW5rIGVsZW1lbnQgd2l0aCBhIGRhdGEtdXJpIHRvXG4gKiBlbWJlZCB0aGUgY3NzIG9uIHRoZSBwYWdlLiBUaGlzIGJyZWFrcyBhbGwgcmVsYXRpdmUgdXJscyBiZWNhdXNlIG5vdyB0aGV5IGFyZSByZWxhdGl2ZSB0byBhXG4gKiBidW5kbGUgaW5zdGVhZCBvZiB0aGUgY3VycmVudCBwYWdlLlxuICpcbiAqIE9uZSBzb2x1dGlvbiBpcyB0byBvbmx5IHVzZSBmdWxsIHVybHMsIGJ1dCB0aGF0IG1heSBiZSBpbXBvc3NpYmxlLlxuICpcbiAqIEluc3RlYWQsIHRoaXMgZnVuY3Rpb24gXCJmaXhlc1wiIHRoZSByZWxhdGl2ZSB1cmxzIHRvIGJlIGFic29sdXRlIGFjY29yZGluZyB0byB0aGUgY3VycmVudCBwYWdlIGxvY2F0aW9uLlxuICpcbiAqIEEgcnVkaW1lbnRhcnkgdGVzdCBzdWl0ZSBpcyBsb2NhdGVkIGF0IGB0ZXN0L2ZpeFVybHMuanNgIGFuZCBjYW4gYmUgcnVuIHZpYSB0aGUgYG5wbSB0ZXN0YCBjb21tYW5kLlxuICpcbiAqL1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChjc3MpIHtcbiAgLy8gZ2V0IGN1cnJlbnQgbG9jYXRpb25cbiAgdmFyIGxvY2F0aW9uID0gdHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIiAmJiB3aW5kb3cubG9jYXRpb247XG5cbiAgaWYgKCFsb2NhdGlvbikge1xuICAgIHRocm93IG5ldyBFcnJvcihcImZpeFVybHMgcmVxdWlyZXMgd2luZG93LmxvY2F0aW9uXCIpO1xuICB9XG5cblx0Ly8gYmxhbmsgb3IgbnVsbD9cblx0aWYgKCFjc3MgfHwgdHlwZW9mIGNzcyAhPT0gXCJzdHJpbmdcIikge1xuXHQgIHJldHVybiBjc3M7XG4gIH1cblxuICB2YXIgYmFzZVVybCA9IGxvY2F0aW9uLnByb3RvY29sICsgXCIvL1wiICsgbG9jYXRpb24uaG9zdDtcbiAgdmFyIGN1cnJlbnREaXIgPSBiYXNlVXJsICsgbG9jYXRpb24ucGF0aG5hbWUucmVwbGFjZSgvXFwvW15cXC9dKiQvLCBcIi9cIik7XG5cblx0Ly8gY29udmVydCBlYWNoIHVybCguLi4pXG5cdC8qXG5cdFRoaXMgcmVndWxhciBleHByZXNzaW9uIGlzIGp1c3QgYSB3YXkgdG8gcmVjdXJzaXZlbHkgbWF0Y2ggYnJhY2tldHMgd2l0aGluXG5cdGEgc3RyaW5nLlxuXG5cdCAvdXJsXFxzKlxcKCAgPSBNYXRjaCBvbiB0aGUgd29yZCBcInVybFwiIHdpdGggYW55IHdoaXRlc3BhY2UgYWZ0ZXIgaXQgYW5kIHRoZW4gYSBwYXJlbnNcblx0ICAgKCAgPSBTdGFydCBhIGNhcHR1cmluZyBncm91cFxuXHQgICAgICg/OiAgPSBTdGFydCBhIG5vbi1jYXB0dXJpbmcgZ3JvdXBcblx0ICAgICAgICAgW14pKF0gID0gTWF0Y2ggYW55dGhpbmcgdGhhdCBpc24ndCBhIHBhcmVudGhlc2VzXG5cdCAgICAgICAgIHwgID0gT1Jcblx0ICAgICAgICAgXFwoICA9IE1hdGNoIGEgc3RhcnQgcGFyZW50aGVzZXNcblx0ICAgICAgICAgICAgICg/OiAgPSBTdGFydCBhbm90aGVyIG5vbi1jYXB0dXJpbmcgZ3JvdXBzXG5cdCAgICAgICAgICAgICAgICAgW14pKF0rICA9IE1hdGNoIGFueXRoaW5nIHRoYXQgaXNuJ3QgYSBwYXJlbnRoZXNlc1xuXHQgICAgICAgICAgICAgICAgIHwgID0gT1Jcblx0ICAgICAgICAgICAgICAgICBcXCggID0gTWF0Y2ggYSBzdGFydCBwYXJlbnRoZXNlc1xuXHQgICAgICAgICAgICAgICAgICAgICBbXikoXSogID0gTWF0Y2ggYW55dGhpbmcgdGhhdCBpc24ndCBhIHBhcmVudGhlc2VzXG5cdCAgICAgICAgICAgICAgICAgXFwpICA9IE1hdGNoIGEgZW5kIHBhcmVudGhlc2VzXG5cdCAgICAgICAgICAgICApICA9IEVuZCBHcm91cFxuICAgICAgICAgICAgICAqXFwpID0gTWF0Y2ggYW55dGhpbmcgYW5kIHRoZW4gYSBjbG9zZSBwYXJlbnNcbiAgICAgICAgICApICA9IENsb3NlIG5vbi1jYXB0dXJpbmcgZ3JvdXBcbiAgICAgICAgICAqICA9IE1hdGNoIGFueXRoaW5nXG4gICAgICAgKSAgPSBDbG9zZSBjYXB0dXJpbmcgZ3JvdXBcblx0IFxcKSAgPSBNYXRjaCBhIGNsb3NlIHBhcmVuc1xuXG5cdCAvZ2kgID0gR2V0IGFsbCBtYXRjaGVzLCBub3QgdGhlIGZpcnN0LiAgQmUgY2FzZSBpbnNlbnNpdGl2ZS5cblx0ICovXG5cdHZhciBmaXhlZENzcyA9IGNzcy5yZXBsYWNlKC91cmxcXHMqXFwoKCg/OlteKShdfFxcKCg/OlteKShdK3xcXChbXikoXSpcXCkpKlxcKSkqKVxcKS9naSwgZnVuY3Rpb24oZnVsbE1hdGNoLCBvcmlnVXJsKSB7XG5cdFx0Ly8gc3RyaXAgcXVvdGVzIChpZiB0aGV5IGV4aXN0KVxuXHRcdHZhciB1bnF1b3RlZE9yaWdVcmwgPSBvcmlnVXJsXG5cdFx0XHQudHJpbSgpXG5cdFx0XHQucmVwbGFjZSgvXlwiKC4qKVwiJC8sIGZ1bmN0aW9uKG8sICQxKXsgcmV0dXJuICQxOyB9KVxuXHRcdFx0LnJlcGxhY2UoL14nKC4qKSckLywgZnVuY3Rpb24obywgJDEpeyByZXR1cm4gJDE7IH0pO1xuXG5cdFx0Ly8gYWxyZWFkeSBhIGZ1bGwgdXJsPyBubyBjaGFuZ2Vcblx0XHRpZiAoL14oI3xkYXRhOnxodHRwOlxcL1xcL3xodHRwczpcXC9cXC98ZmlsZTpcXC9cXC9cXC8pL2kudGVzdCh1bnF1b3RlZE9yaWdVcmwpKSB7XG5cdFx0ICByZXR1cm4gZnVsbE1hdGNoO1xuXHRcdH1cblxuXHRcdC8vIGNvbnZlcnQgdGhlIHVybCB0byBhIGZ1bGwgdXJsXG5cdFx0dmFyIG5ld1VybDtcblxuXHRcdGlmICh1bnF1b3RlZE9yaWdVcmwuaW5kZXhPZihcIi8vXCIpID09PSAwKSB7XG5cdFx0ICBcdC8vVE9ETzogc2hvdWxkIHdlIGFkZCBwcm90b2NvbD9cblx0XHRcdG5ld1VybCA9IHVucXVvdGVkT3JpZ1VybDtcblx0XHR9IGVsc2UgaWYgKHVucXVvdGVkT3JpZ1VybC5pbmRleE9mKFwiL1wiKSA9PT0gMCkge1xuXHRcdFx0Ly8gcGF0aCBzaG91bGQgYmUgcmVsYXRpdmUgdG8gdGhlIGJhc2UgdXJsXG5cdFx0XHRuZXdVcmwgPSBiYXNlVXJsICsgdW5xdW90ZWRPcmlnVXJsOyAvLyBhbHJlYWR5IHN0YXJ0cyB3aXRoICcvJ1xuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyBwYXRoIHNob3VsZCBiZSByZWxhdGl2ZSB0byBjdXJyZW50IGRpcmVjdG9yeVxuXHRcdFx0bmV3VXJsID0gY3VycmVudERpciArIHVucXVvdGVkT3JpZ1VybC5yZXBsYWNlKC9eXFwuXFwvLywgXCJcIik7IC8vIFN0cmlwIGxlYWRpbmcgJy4vJ1xuXHRcdH1cblxuXHRcdC8vIHNlbmQgYmFjayB0aGUgZml4ZWQgdXJsKC4uLilcblx0XHRyZXR1cm4gXCJ1cmwoXCIgKyBKU09OLnN0cmluZ2lmeShuZXdVcmwpICsgXCIpXCI7XG5cdH0pO1xuXG5cdC8vIHNlbmQgYmFjayB0aGUgZml4ZWQgY3NzXG5cdHJldHVybiBmaXhlZENzcztcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvbGliL3VybHMuanNcbi8vIG1vZHVsZSBpZCA9IDlcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwiY29uc3QgY29tbW9uID0gcmVxdWlyZSgnZnJhcHBlLWNvcmUvZnJhcHBlL2NvbW1vbicpO1xuY29uc3QgRGF0YWJhc2UgPSByZXF1aXJlKCdmcmFwcGUtY29yZS9mcmFwcGUvYmFja2VuZHMvcmVzdF9jbGllbnQnKS5EYXRhYmFzZTtcbmNvbnN0IGZyYXBwZSA9IHJlcXVpcmUoJ2ZyYXBwZS1jb3JlJyk7XG5mcmFwcGUudWkgPSByZXF1aXJlKCcuL3VpJyk7XG5mcmFwcGUudmlldyA9IHJlcXVpcmUoJy4vdmlldycpO1xuY29uc3QgUm91dGVyID0gcmVxdWlyZSgnLi92aWV3L3JvdXRlcicpLlJvdXRlcjtcblxubW9kdWxlLmV4cG9ydHMgPSB7XG5cdGFzeW5jIHN0YXJ0KHtzZXJ2ZXIsIGNvbnRhaW5lcn0pIHtcblx0XHR3aW5kb3cuZnJhcHBlID0gZnJhcHBlO1xuXHRcdGZyYXBwZS5pbml0KCk7XG5cdFx0Y29tbW9uLmluaXRfbGlicyhmcmFwcGUpO1xuXG5cdFx0ZnJhcHBlLmRiID0gYXdhaXQgbmV3IERhdGFiYXNlKHtcblx0XHRcdHNlcnZlcjogc2VydmVyLFxuXHRcdFx0ZmV0Y2g6IHdpbmRvdy5mZXRjaC5iaW5kKClcblx0XHR9KTtcblxuXHRcdGZyYXBwZS52aWV3LmluaXQoe2NvbnRhaW5lcjogY29udGFpbmVyfSk7XG5cdFx0ZnJhcHBlLnJvdXRlciA9IG5ldyBSb3V0ZXIoKTtcblx0XHRhd2FpdCBmcmFwcGUubG9naW4oKTtcblx0fVxufTtcblxuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi4vZnJhcHBlLWNvcmUvZnJhcHBlL2NsaWVudC9pbmRleC5qc1xuLy8gbW9kdWxlIGlkID0gMTBcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwiY29uc3QgdXRpbHMgPSByZXF1aXJlKCcuLi91dGlscycpO1xuY29uc3QgbW9kZWxzID0gcmVxdWlyZSgnLi4vbW9kZWwvbW9kZWxzJyk7XG5jb25zdCBtb2RlbCA9IHJlcXVpcmUoJy4uL21vZGVsJyk7XG5jb25zdCBfZG9jdW1lbnQgPSByZXF1aXJlKCcuLi9tb2RlbC9kb2N1bWVudCcpO1xuY29uc3QgbWV0YSA9IHJlcXVpcmUoJy4uL21vZGVsL21ldGEnKTtcbmNvbnN0IF9zZXNzaW9uID0gcmVxdWlyZSgnLi4vc2Vzc2lvbicpO1xuXG5cbm1vZHVsZS5leHBvcnRzID0ge1xuXHRpbml0X2xpYnMoZnJhcHBlKSB7XG5cdFx0T2JqZWN0LmFzc2lnbihmcmFwcGUsIHV0aWxzKTtcblx0XHRmcmFwcGUubW9kZWwgPSBtb2RlbDtcblx0XHRmcmFwcGUubW9kZWxzID0gbmV3IG1vZGVscy5Nb2RlbHMoKTtcblx0XHRmcmFwcGUuZG9jdW1lbnQgPSBfZG9jdW1lbnQ7XG5cdFx0ZnJhcHBlLm1ldGEgPSBtZXRhO1xuXHRcdGZyYXBwZS5fc2Vzc2lvbiA9IF9zZXNzaW9uO1xuXHR9XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi4vZnJhcHBlLWNvcmUvZnJhcHBlL2NvbW1vbi9pbmRleC5qc1xuLy8gbW9kdWxlIGlkID0gMTFcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwibW9kdWxlLmV4cG9ydHMgPSB7XG5cdHNsdWcodGV4dCkge1xuXHRcdHJldHVybiB0ZXh0LnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvIC9nLCAnXycpO1xuXHR9LFxuXG5cdGFzeW5jX2hhbmRsZXIoZm4pIHtcblx0XHRyZXR1cm4gKHJlcSwgcmVzLCBuZXh0KSA9PiBQcm9taXNlLnJlc29sdmUoZm4ocmVxLCByZXMsIG5leHQpKVxuXHRcdFx0LmNhdGNoKG5leHQpO1xuXHR9LFxuXG5cdGFzeW5jIHNsZWVwKHNlY29uZHMpIHtcblx0XHRyZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XG5cdFx0XHRzZXRUaW1lb3V0KHJlc29sdmUsIHNlY29uZHMgKiAxMDAwKTtcblx0XHR9KTtcblx0fVxufVxuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi4vZnJhcHBlLWNvcmUvZnJhcHBlL3V0aWxzLmpzXG4vLyBtb2R1bGUgaWQgPSAxMlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJjb25zdCBwcm9jZXNzID0gcmVxdWlyZSgncHJvY2VzcycpO1xuY29uc3QgZnJhcHBlID0gcmVxdWlyZSgnZnJhcHBlLWNvcmUnKTtcblxuY2xhc3MgTW9kZWxzIHtcblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0dGhpcy5kYXRhID0ge2RvY3R5cGU6IHt9fTtcblx0XHR0aGlzLmNvbnRyb2xsZXJzID0ge307XG5cdFx0dGhpcy5tZXRhX2NsYXNzZXMgPSB7fTtcblx0fVxuXG5cdGdldChkb2N0eXBlLCBuYW1lKSB7XG5cdFx0cmV0dXJuIHRoaXMuZGF0YVtmcmFwcGUuc2x1Zyhkb2N0eXBlKV1bZnJhcHBlLnNsdWcobmFtZSldO1xuXHR9XG5cblx0Z2V0X2NvbnRyb2xsZXIoZG9jdHlwZSkge1xuXHRcdHJldHVybiB0aGlzLmNvbnRyb2xsZXJzW2ZyYXBwZS5zbHVnKGRvY3R5cGUpXTtcblx0fVxuXG5cdGdldF9tZXRhX2NsYXNzKGRvY3R5cGUpIHtcblx0XHRyZXR1cm4gdGhpcy5tZXRhX2NsYXNzZXNbZnJhcHBlLnNsdWcoZG9jdHlwZSldIHx8IGZyYXBwZS5tZXRhLk1ldGE7XG5cdH1cblxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHsgTW9kZWxzOiBNb2RlbHMgfVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4uL2ZyYXBwZS1jb3JlL2ZyYXBwZS9tb2RlbC9tb2RlbHMuanNcbi8vIG1vZHVsZSBpZCA9IDEzXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsIm1vZHVsZS5leHBvcnRzID0ge1xuXHRzdGFuZGFyZF9maWVsZHM6IFtcblx0XHR7XG5cdFx0XHRmaWVsZG5hbWU6ICduYW1lJywgZmllbGR0eXBlOiAnRGF0YScsIHJlcWQ6IDFcblx0XHR9LFxuXHRcdHtcblx0XHRcdGZpZWxkbmFtZTogJ293bmVyJywgZmllbGR0eXBlOiAnTGluaycsIHJlcWQ6IDEsIG9wdGlvbnM6ICdVc2VyJ1xuXHRcdH0sXG5cdFx0e1xuXHRcdFx0ZmllbGRuYW1lOiAnbW9kaWZpZWRfYnknLCBmaWVsZHR5cGU6ICdMaW5rJywgcmVxZDogMSwgb3B0aW9uczogJ1VzZXInXG5cdFx0fSxcblx0XHR7XG5cdFx0XHRmaWVsZG5hbWU6ICdjcmVhdGlvbicsIGZpZWxkdHlwZTogJ0RhdGV0aW1lJywgcmVxZDogMVxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0ZmllbGRuYW1lOiAnbW9kaWZpZWQnLCBmaWVsZHR5cGU6ICdEYXRldGltZScsIHJlcWQ6IDFcblx0XHR9LFxuXHRcdHtcblx0XHRcdGZpZWxkbmFtZTogJ2RvY3N0YXR1cycsIGZpZWxkdHlwZTogJ0ludCcsIHJlcWQ6IDEsIGRlZmF1bHQ6IDBcblx0XHR9XG5cdF0sXG5cdGNoaWxkX2ZpZWxkczogW1xuXHRcdHtcblx0XHRcdGZpZWxkbmFtZTogJ2lkeCcsIGZpZWxkdHlwZTogJ0ludCcsIHJlcWQ6IDFcblx0XHR9LFxuXHRcdHtcblx0XHRcdGZpZWxkbmFtZTogJ3BhcmVudCcsIGZpZWxkdHlwZTogJ0RhdGEnLCByZXFkOiAxXG5cdFx0fSxcblx0XHR7XG5cdFx0XHRmaWVsZG5hbWU6ICdwYXJlbnR0eXBlJywgZmllbGR0eXBlOiAnTGluaycsIHJlcWQ6IDEsIG9wdGlvbnM6ICdEb2NUeXBlJ1xuXHRcdH0sXG5cdFx0e1xuXHRcdFx0ZmllbGRuYW1lOiAncGFyZW50ZmllbGQnLCBmaWVsZHR5cGU6ICdEYXRhJywgcmVxZDogMVxuXHRcdH1cblx0XVxufTtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuLi9mcmFwcGUtY29yZS9mcmFwcGUvbW9kZWwvaW5kZXguanNcbi8vIG1vZHVsZSBpZCA9IDE0XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsImNvbnN0IERvY3VtZW50ID0gcmVxdWlyZSgnLi9kb2N1bWVudCcpLkRvY3VtZW50O1xuY29uc3QgZnJhcHBlID0gcmVxdWlyZSgnZnJhcHBlLWNvcmUnKTtcblxuY2xhc3MgTWV0YSBleHRlbmRzIERvY3VtZW50IHtcblx0Y29uc3RydWN0b3IoZGF0YSkge1xuXHRcdHN1cGVyKGRhdGEpO1xuXHRcdHRoaXMuZXZlbnRfaGFuZGxlcnMgPSB7fTtcblx0XHR0aGlzLmxpc3Rfb3B0aW9ucyA9IHtcblx0XHRcdGZpZWxkczogWyduYW1lJywgJ21vZGlmaWVkJ11cblx0XHR9O1xuXHRcdGlmICh0aGlzLnNldHVwX21ldGEpICB7XG5cdFx0XHR0aGlzLnNldHVwX21ldGEoKTtcblx0XHR9XG5cdH1cblxuXHRnZXRfZmllbGQoZmllbGRuYW1lKSB7XG5cdFx0aWYgKCF0aGlzLmZpZWxkX21hcCkge1xuXHRcdFx0dGhpcy5maWVsZF9tYXAgPSB7fTtcblx0XHRcdGZvciAobGV0IGRmIG9mIHRoaXMuZmllbGRzKSB7XG5cdFx0XHRcdHRoaXMuZmllbGRfbWFwW2RmLmZpZWxkbmFtZV0gPSBkZjtcblx0XHRcdH1cblx0XHR9XG5cdFx0cmV0dXJuIHRoaXMuZmllbGRfbWFwW2ZpZWxkbmFtZV07XG5cdH1cblxuXHRvbihrZXksIGZuKSB7XG5cdFx0aWYgKCF0aGlzLmV2ZW50X2hhbmRsZXJzW2tleV0pIHtcblx0XHRcdHRoaXMuZXZlbnRfaGFuZGxlcnNba2V5XSA9IFtdO1xuXHRcdH1cblx0XHR0aGlzLmV2ZW50X2hhbmRsZXJzW2tleV0ucHVzaChmbik7XG5cdH1cblxuXHRhc3luYyBzZXQoZmllbGRuYW1lLCB2YWx1ZSkge1xuXHRcdHRoaXNbZmllbGRuYW1lXSA9IHZhbHVlO1xuXHRcdGF3YWl0IHRoaXMudHJpZ2dlcihmaWVsZG5hbWUpO1xuXHR9XG5cblx0Z2V0KGZpZWxkbmFtZSkge1xuXHRcdHJldHVybiB0aGlzW2ZpZWxkbmFtZV07XG5cdH1cblxuXHRnZXRfdmFsaWRfZmllbGRzKCkge1xuXHRcdGlmICghdGhpcy5fdmFsaWRfZmllbGRzKSB7XG5cdFx0XHR0aGlzLl92YWxpZF9maWVsZHMgPSBbXTtcblxuXHRcdFx0Ly8gc3RhbmRhcmQgZmllbGRzXG5cdFx0XHRmb3IgKGxldCBkZiBvZiBmcmFwcGUubW9kZWwuc3RhbmRhcmRfZmllbGRzKSB7XG5cdFx0XHRcdHRoaXMuX3ZhbGlkX2ZpZWxkcy5wdXNoKGRmKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gcGFyZW50IGZpZWxkc1xuXHRcdFx0aWYgKHRoaXMuaXN0YWJsZSkge1xuXHRcdFx0XHRmb3IgKGxldCBkZiBvZiBmcmFwcGUubW9kZWwuY2hpbGRfZmllbGRzKSB7XG5cdFx0XHRcdFx0dGhpcy5fdmFsaWRfZmllbGRzLnB1c2goZGYpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC8vIGRvY3R5cGUgZmllbGRzXG5cdFx0XHRmb3IgKGxldCBkZiBvZiB0aGlzLmZpZWxkcykge1xuXHRcdFx0XHRpZiAoZnJhcHBlLmRiLnR5cGVfbWFwW2RmLmZpZWxkdHlwZV0pIHtcblx0XHRcdFx0XHR0aGlzLl92YWxpZF9maWVsZHMucHVzaChkZik7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gdGhpcy5fdmFsaWRfZmllbGRzO1xuXHR9XG5cblx0dmFsaWRhdGVfc2VsZWN0KGRmLCB2YWx1ZSkge1xuXHRcdGxldCBvcHRpb25zID0gZGYub3B0aW9ucztcblx0XHRpZiAodHlwZW9mIG9wdGlvbnMgPT09ICdzdHJpbmcnKSB7XG5cdFx0XHQvLyB2YWx1ZXMgZ2l2ZW4gYXMgc3RyaW5nXG5cdFx0XHRvcHRpb25zID0gZGYub3B0aW9ucy5zcGxpdCgnXFxuJyk7XG5cdFx0fVxuXHRcdGlmICghb3B0aW9ucy5pbmNsdWRlcyh2YWx1ZSkpIHtcblx0XHRcdHRocm93IG5ldyBmcmFwcGUuVmFsdWVFcnJvcihgJHt2YWx1ZX0gbXVzdCBiZSBvbmUgb2YgJHtvcHRpb25zLmpvaW4oXCIsIFwiKX1gKTtcblx0XHR9XG5cdH1cblxuXHRhc3luYyB0cmlnZ2VyKGtleSwgZXZlbnQgPSB7fSkge1xuXG5cdFx0T2JqZWN0LmFzc2lnbihldmVudCwge1xuXHRcdFx0ZG9jOiB0aGlzLFxuXHRcdFx0bmFtZToga2V5XG5cdFx0fSk7XG5cblx0XHRpZiAodGhpcy5ldmVudF9oYW5kbGVyc1trZXldKSB7XG5cdFx0XHRmb3IgKHZhciBoYW5kbGVyIG9mIHRoaXMuZXZlbnRfaGFuZGxlcnNba2V5XSkge1xuXHRcdFx0XHRhd2FpdCBoYW5kbGVyKGV2ZW50KTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvLyBjb2xsZWN0aW9uc1xuXHRhc3luYyBnZXRfbGlzdCh7c3RhcnQsIGxpbWl0PTIwLCBmaWx0ZXJzfSkge1xuXHRcdHJldHVybiBhd2FpdCBmcmFwcGUuZGIuZ2V0X2FsbCh7XG5cdFx0XHRkb2N0eXBlOiB0aGlzLm5hbWUsXG5cdFx0XHRmaWVsZHM6IHRoaXMubGlzdF9vcHRpb25zLmZpZWxkcyxcblx0XHRcdGZpbHRlcnM6IGZpbHRlcnMsXG5cdFx0XHRzdGFydDogc3RhcnQsXG5cdFx0XHRsaW1pdDogbGltaXRcblx0XHR9KTtcblx0fVxuXG5cdGdldF9yb3dfaHRtbChkYXRhKSB7XG5cdFx0cmV0dXJuIGA8YSBocmVmPVwiL3ZpZXcvJHt0aGlzLm5hbWV9LyR7ZGF0YS5uYW1lfVwiPiR7ZGF0YS5uYW1lfTwvYT5gO1xuXHR9XG5cbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7IE1ldGE6IE1ldGEgfVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4uL2ZyYXBwZS1jb3JlL2ZyYXBwZS9tb2RlbC9tZXRhLmpzXG4vLyBtb2R1bGUgaWQgPSAxNVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJjb25zdCBmcmFwcGUgPSByZXF1aXJlKCdmcmFwcGUtY29yZScpO1xuXG5jbGFzcyBTZXNzaW9uIHtcblx0Y29uc3RydWN0b3IodXNlciwgdXNlcl9rZXkpIHtcblx0XHR0aGlzLnVzZXIgPSB1c2VyIHx8ICdndWVzdCc7XG5cdFx0aWYgKHRoaXMudXNlciAhPT0gJ2d1ZXN0Jykge1xuXHRcdFx0dGhpcy5sb2dpbih1c2VyX2tleSk7XG5cdFx0fVxuXHR9XG5cblx0bG9naW4odXNlcl9rZXkpIHtcblx0XHQvLyBjb3VsZCBiZSBwYXNzd29yZCwgc2Vzc2lvbmlkLCBvdHBcblx0fVxuXG59XG5cbm1vZHVsZS5leHBvcnRzID0geyBTZXNzaW9uOiBTZXNzaW9uIH07XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi4vZnJhcHBlLWNvcmUvZnJhcHBlL3Nlc3Npb24uanNcbi8vIG1vZHVsZSBpZCA9IDE2XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsImNvbnN0IGZyYXBwZSA9IHJlcXVpcmUoJ2ZyYXBwZS1jb3JlJyk7XG5jb25zdCBwYXRoID0gcmVxdWlyZSgncGF0aCcpO1xuXG5jbGFzcyBSRVNUQ2xpZW50IHtcblx0Y29uc3RydWN0b3Ioe3NlcnZlciwgcHJvdG9jb2w9J2h0dHAnLCBmZXRjaH0pIHtcblx0XHR0aGlzLnNlcnZlciA9IHNlcnZlcjtcblx0XHR0aGlzLnByb3RvY29sID0gcHJvdG9jb2w7XG5cblx0XHR0aGlzLmluaXRfdHlwZV9tYXAoKTtcblxuXHRcdGZyYXBwZS5mZXRjaCA9IGZldGNoO1xuXHRcdHRoaXMuanNvbl9oZWFkZXJzID0ge1xuXHRcdFx0J0FjY2VwdCc6ICdhcHBsaWNhdGlvbi9qc29uJyxcblx0XHRcdCdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbidcblx0XHR9XG5cdH1cblxuXHRjb25uZWN0KCkge1xuXG5cdH1cblxuXHRhc3luYyBpbnNlcnQoZG9jdHlwZSwgZG9jKSB7XG5cdFx0ZG9jLmRvY3R5cGUgPSBkb2N0eXBlO1xuXHRcdGxldCB1cmwgPSB0aGlzLnByb3RvY29sICsgJzovLycgKyBwYXRoLmpvaW4odGhpcy5zZXJ2ZXIsIGAvYXBpL3Jlc291cmNlLyR7ZnJhcHBlLnNsdWcoZG9jdHlwZSl9YCk7XG5cdFx0bGV0IHJlc3BvbnNlID0gYXdhaXQgZnJhcHBlLmZldGNoKHVybCwge1xuXHRcdFx0bWV0aG9kOiAnUE9TVCcsXG5cdFx0XHRoZWFkZXJzOiB0aGlzLmpzb25faGVhZGVycyxcblx0XHRcdGJvZHk6IEpTT04uc3RyaW5naWZ5KGRvYylcblx0XHR9KTtcblxuXHRcdHJldHVybiBhd2FpdCByZXNwb25zZS5qc29uKCk7XG5cdH1cblxuXHRhc3luYyBnZXQoZG9jdHlwZSwgbmFtZSkge1xuXHRcdGxldCB1cmwgPSB0aGlzLnByb3RvY29sICsgJzovLycgKyBwYXRoLmpvaW4odGhpcy5zZXJ2ZXIsIGAvYXBpL3Jlc291cmNlLyR7ZnJhcHBlLnNsdWcoZG9jdHlwZSl9LyR7bmFtZX1gKTtcblx0XHRsZXQgcmVzcG9uc2UgPSBhd2FpdCBmcmFwcGUuZmV0Y2godXJsLCB7XG5cdFx0XHRtZXRob2Q6ICdHRVQnLFxuXHRcdFx0aGVhZGVyczogdGhpcy5qc29uX2hlYWRlcnNcblx0XHR9KTtcblx0XHRyZXR1cm4gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xuXHR9XG5cblx0YXN5bmMgZ2V0X2FsbCh7ZG9jdHlwZSwgZmllbGRzLCBmaWx0ZXJzLCBzdGFydCwgbGltaXQsIHNvcnRfYnksIG9yZGVyfSkge1xuXHRcdGxldCB1cmwgPSB0aGlzLnByb3RvY29sICsgJzovLycgKyBwYXRoLmpvaW4odGhpcy5zZXJ2ZXIsIGAvYXBpL3Jlc291cmNlLyR7ZnJhcHBlLnNsdWcoZG9jdHlwZSl9YCk7XG5cdFx0bGV0IHJlc3BvbnNlID0gYXdhaXQgZnJhcHBlLmZldGNoKHVybCwge1xuXHRcdFx0bWV0aG9kOiAnR0VUJyxcblx0XHRcdHBhcmFtczoge1xuXHRcdFx0XHRmaWVsZHM6IEpTT04uc3RyaW5naWZ5KGZpZWxkcyksXG5cdFx0XHRcdGZpbHRlcnM6IEpTT04uc3RyaW5naWZ5KGZpbHRlcnMpLFxuXHRcdFx0XHRzdGFydDogc3RhcnQsXG5cdFx0XHRcdGxpbWl0OiBsaW1pdCxcblx0XHRcdFx0c29ydF9ieTogc29ydF9ieSxcblx0XHRcdFx0b3JkZXI6IG9yZGVyXG5cdFx0XHR9LFxuXHRcdFx0aGVhZGVyczogdGhpcy5qc29uX2hlYWRlcnNcblx0XHR9KTtcblx0XHRyZXR1cm4gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xuXG5cdH1cblxuXHRhc3luYyB1cGRhdGUoZG9jdHlwZSwgZG9jKSB7XG5cdFx0ZG9jLmRvY3R5cGUgPSBkb2N0eXBlO1xuXHRcdGxldCB1cmwgPSB0aGlzLnByb3RvY29sICsgJzovLycgKyBwYXRoLmpvaW4odGhpcy5zZXJ2ZXIsIGAvYXBpL3Jlc291cmNlLyR7ZnJhcHBlLnNsdWcoZG9jdHlwZSl9LyR7ZG9jLm5hbWV9YCk7XG5cdFx0bGV0IHJlc3BvbnNlID0gYXdhaXQgZnJhcHBlLmZldGNoKHVybCwge1xuXHRcdFx0bWV0aG9kOiAnUFVUJyxcblx0XHRcdGhlYWRlcnM6IHRoaXMuanNvbl9oZWFkZXJzLFxuXHRcdFx0Ym9keTogSlNPTi5zdHJpbmdpZnkoZG9jKVxuXHRcdH0pO1xuXG5cdFx0cmV0dXJuIGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcblx0fVxuXG5cdGFzeW5jIGRlbGV0ZShkb2N0eXBlLCBuYW1lKSB7XG5cdFx0bGV0IHVybCA9IHRoaXMucHJvdG9jb2wgKyAnOi8vJyArIHBhdGguam9pbih0aGlzLnNlcnZlciwgYC9hcGkvcmVzb3VyY2UvJHtmcmFwcGUuc2x1Zyhkb2N0eXBlKX0vJHtuYW1lfWApO1xuXG5cdFx0bGV0IHJlc3BvbnNlID0gYXdhaXQgZnJhcHBlLmZldGNoKHVybCwge1xuXHRcdFx0bWV0aG9kOiAnREVMRVRFJyxcblx0XHRcdGhlYWRlcnM6IHRoaXMuanNvbl9oZWFkZXJzXG5cdFx0fSk7XG5cblx0XHRyZXR1cm4gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xuXHR9XG5cblx0aW5pdF90eXBlX21hcCgpIHtcblx0XHR0aGlzLnR5cGVfbWFwID0ge1xuXHRcdFx0J0N1cnJlbmN5JzpcdFx0dHJ1ZVxuXHRcdFx0LCdJbnQnOlx0XHRcdHRydWVcblx0XHRcdCwnRmxvYXQnOlx0XHR0cnVlXG5cdFx0XHQsJ1BlcmNlbnQnOlx0XHR0cnVlXG5cdFx0XHQsJ0NoZWNrJzpcdFx0dHJ1ZVxuXHRcdFx0LCdTbWFsbCBUZXh0JzpcdHRydWVcblx0XHRcdCwnTG9uZyBUZXh0JzpcdHRydWVcblx0XHRcdCwnQ29kZSc6XHRcdHRydWVcblx0XHRcdCwnVGV4dCBFZGl0b3InOlx0dHJ1ZVxuXHRcdFx0LCdEYXRlJzpcdFx0dHJ1ZVxuXHRcdFx0LCdEYXRldGltZSc6XHR0cnVlXG5cdFx0XHQsJ1RpbWUnOlx0XHR0cnVlXG5cdFx0XHQsJ1RleHQnOlx0XHR0cnVlXG5cdFx0XHQsJ0RhdGEnOlx0XHR0cnVlXG5cdFx0XHQsJ0xpbmsnOlx0XHR0cnVlXG5cdFx0XHQsJ0R5bmFtaWMgTGluayc6dHJ1ZVxuXHRcdFx0LCdQYXNzd29yZCc6XHR0cnVlXG5cdFx0XHQsJ1NlbGVjdCc6XHRcdHRydWVcblx0XHRcdCwnUmVhZCBPbmx5JzpcdHRydWVcblx0XHRcdCwnQXR0YWNoJzpcdFx0dHJ1ZVxuXHRcdFx0LCdBdHRhY2ggSW1hZ2UnOnRydWVcblx0XHRcdCwnU2lnbmF0dXJlJzpcdHRydWVcblx0XHRcdCwnQ29sb3InOlx0XHR0cnVlXG5cdFx0XHQsJ0JhcmNvZGUnOlx0XHR0cnVlXG5cdFx0XHQsJ0dlb2xvY2F0aW9uJzpcdHRydWVcblx0XHR9XG5cdH1cblxuXHRjbG9zZSgpIHtcblxuXHR9XG5cbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG5cdERhdGFiYXNlOiBSRVNUQ2xpZW50XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi4vZnJhcHBlLWNvcmUvZnJhcHBlL2JhY2tlbmRzL3Jlc3RfY2xpZW50LmpzXG4vLyBtb2R1bGUgaWQgPSAxN1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCIvLyBDb3B5cmlnaHQgSm95ZW50LCBJbmMuIGFuZCBvdGhlciBOb2RlIGNvbnRyaWJ1dG9ycy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYVxuLy8gY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZVxuLy8gXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nXG4vLyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsXG4vLyBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0XG4vLyBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGVcbi8vIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkXG4vLyBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTXG4vLyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GXG4vLyBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOXG4vLyBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSxcbi8vIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUlxuLy8gT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRVxuLy8gVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS5cblxuLy8gcmVzb2x2ZXMgLiBhbmQgLi4gZWxlbWVudHMgaW4gYSBwYXRoIGFycmF5IHdpdGggZGlyZWN0b3J5IG5hbWVzIHRoZXJlXG4vLyBtdXN0IGJlIG5vIHNsYXNoZXMsIGVtcHR5IGVsZW1lbnRzLCBvciBkZXZpY2UgbmFtZXMgKGM6XFwpIGluIHRoZSBhcnJheVxuLy8gKHNvIGFsc28gbm8gbGVhZGluZyBhbmQgdHJhaWxpbmcgc2xhc2hlcyAtIGl0IGRvZXMgbm90IGRpc3Rpbmd1aXNoXG4vLyByZWxhdGl2ZSBhbmQgYWJzb2x1dGUgcGF0aHMpXG5mdW5jdGlvbiBub3JtYWxpemVBcnJheShwYXJ0cywgYWxsb3dBYm92ZVJvb3QpIHtcbiAgLy8gaWYgdGhlIHBhdGggdHJpZXMgdG8gZ28gYWJvdmUgdGhlIHJvb3QsIGB1cGAgZW5kcyB1cCA+IDBcbiAgdmFyIHVwID0gMDtcbiAgZm9yICh2YXIgaSA9IHBhcnRzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgdmFyIGxhc3QgPSBwYXJ0c1tpXTtcbiAgICBpZiAobGFzdCA9PT0gJy4nKSB7XG4gICAgICBwYXJ0cy5zcGxpY2UoaSwgMSk7XG4gICAgfSBlbHNlIGlmIChsYXN0ID09PSAnLi4nKSB7XG4gICAgICBwYXJ0cy5zcGxpY2UoaSwgMSk7XG4gICAgICB1cCsrO1xuICAgIH0gZWxzZSBpZiAodXApIHtcbiAgICAgIHBhcnRzLnNwbGljZShpLCAxKTtcbiAgICAgIHVwLS07XG4gICAgfVxuICB9XG5cbiAgLy8gaWYgdGhlIHBhdGggaXMgYWxsb3dlZCB0byBnbyBhYm92ZSB0aGUgcm9vdCwgcmVzdG9yZSBsZWFkaW5nIC4uc1xuICBpZiAoYWxsb3dBYm92ZVJvb3QpIHtcbiAgICBmb3IgKDsgdXAtLTsgdXApIHtcbiAgICAgIHBhcnRzLnVuc2hpZnQoJy4uJyk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHBhcnRzO1xufVxuXG4vLyBTcGxpdCBhIGZpbGVuYW1lIGludG8gW3Jvb3QsIGRpciwgYmFzZW5hbWUsIGV4dF0sIHVuaXggdmVyc2lvblxuLy8gJ3Jvb3QnIGlzIGp1c3QgYSBzbGFzaCwgb3Igbm90aGluZy5cbnZhciBzcGxpdFBhdGhSZSA9XG4gICAgL14oXFwvP3wpKFtcXHNcXFNdKj8pKCg/OlxcLnsxLDJ9fFteXFwvXSs/fCkoXFwuW14uXFwvXSp8KSkoPzpbXFwvXSopJC87XG52YXIgc3BsaXRQYXRoID0gZnVuY3Rpb24oZmlsZW5hbWUpIHtcbiAgcmV0dXJuIHNwbGl0UGF0aFJlLmV4ZWMoZmlsZW5hbWUpLnNsaWNlKDEpO1xufTtcblxuLy8gcGF0aC5yZXNvbHZlKFtmcm9tIC4uLl0sIHRvKVxuLy8gcG9zaXggdmVyc2lvblxuZXhwb3J0cy5yZXNvbHZlID0gZnVuY3Rpb24oKSB7XG4gIHZhciByZXNvbHZlZFBhdGggPSAnJyxcbiAgICAgIHJlc29sdmVkQWJzb2x1dGUgPSBmYWxzZTtcblxuICBmb3IgKHZhciBpID0gYXJndW1lbnRzLmxlbmd0aCAtIDE7IGkgPj0gLTEgJiYgIXJlc29sdmVkQWJzb2x1dGU7IGktLSkge1xuICAgIHZhciBwYXRoID0gKGkgPj0gMCkgPyBhcmd1bWVudHNbaV0gOiBwcm9jZXNzLmN3ZCgpO1xuXG4gICAgLy8gU2tpcCBlbXB0eSBhbmQgaW52YWxpZCBlbnRyaWVzXG4gICAgaWYgKHR5cGVvZiBwYXRoICE9PSAnc3RyaW5nJykge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignQXJndW1lbnRzIHRvIHBhdGgucmVzb2x2ZSBtdXN0IGJlIHN0cmluZ3MnKTtcbiAgICB9IGVsc2UgaWYgKCFwYXRoKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICByZXNvbHZlZFBhdGggPSBwYXRoICsgJy8nICsgcmVzb2x2ZWRQYXRoO1xuICAgIHJlc29sdmVkQWJzb2x1dGUgPSBwYXRoLmNoYXJBdCgwKSA9PT0gJy8nO1xuICB9XG5cbiAgLy8gQXQgdGhpcyBwb2ludCB0aGUgcGF0aCBzaG91bGQgYmUgcmVzb2x2ZWQgdG8gYSBmdWxsIGFic29sdXRlIHBhdGgsIGJ1dFxuICAvLyBoYW5kbGUgcmVsYXRpdmUgcGF0aHMgdG8gYmUgc2FmZSAobWlnaHQgaGFwcGVuIHdoZW4gcHJvY2Vzcy5jd2QoKSBmYWlscylcblxuICAvLyBOb3JtYWxpemUgdGhlIHBhdGhcbiAgcmVzb2x2ZWRQYXRoID0gbm9ybWFsaXplQXJyYXkoZmlsdGVyKHJlc29sdmVkUGF0aC5zcGxpdCgnLycpLCBmdW5jdGlvbihwKSB7XG4gICAgcmV0dXJuICEhcDtcbiAgfSksICFyZXNvbHZlZEFic29sdXRlKS5qb2luKCcvJyk7XG5cbiAgcmV0dXJuICgocmVzb2x2ZWRBYnNvbHV0ZSA/ICcvJyA6ICcnKSArIHJlc29sdmVkUGF0aCkgfHwgJy4nO1xufTtcblxuLy8gcGF0aC5ub3JtYWxpemUocGF0aClcbi8vIHBvc2l4IHZlcnNpb25cbmV4cG9ydHMubm9ybWFsaXplID0gZnVuY3Rpb24ocGF0aCkge1xuICB2YXIgaXNBYnNvbHV0ZSA9IGV4cG9ydHMuaXNBYnNvbHV0ZShwYXRoKSxcbiAgICAgIHRyYWlsaW5nU2xhc2ggPSBzdWJzdHIocGF0aCwgLTEpID09PSAnLyc7XG5cbiAgLy8gTm9ybWFsaXplIHRoZSBwYXRoXG4gIHBhdGggPSBub3JtYWxpemVBcnJheShmaWx0ZXIocGF0aC5zcGxpdCgnLycpLCBmdW5jdGlvbihwKSB7XG4gICAgcmV0dXJuICEhcDtcbiAgfSksICFpc0Fic29sdXRlKS5qb2luKCcvJyk7XG5cbiAgaWYgKCFwYXRoICYmICFpc0Fic29sdXRlKSB7XG4gICAgcGF0aCA9ICcuJztcbiAgfVxuICBpZiAocGF0aCAmJiB0cmFpbGluZ1NsYXNoKSB7XG4gICAgcGF0aCArPSAnLyc7XG4gIH1cblxuICByZXR1cm4gKGlzQWJzb2x1dGUgPyAnLycgOiAnJykgKyBwYXRoO1xufTtcblxuLy8gcG9zaXggdmVyc2lvblxuZXhwb3J0cy5pc0Fic29sdXRlID0gZnVuY3Rpb24ocGF0aCkge1xuICByZXR1cm4gcGF0aC5jaGFyQXQoMCkgPT09ICcvJztcbn07XG5cbi8vIHBvc2l4IHZlcnNpb25cbmV4cG9ydHMuam9pbiA9IGZ1bmN0aW9uKCkge1xuICB2YXIgcGF0aHMgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsIDApO1xuICByZXR1cm4gZXhwb3J0cy5ub3JtYWxpemUoZmlsdGVyKHBhdGhzLCBmdW5jdGlvbihwLCBpbmRleCkge1xuICAgIGlmICh0eXBlb2YgcCAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0FyZ3VtZW50cyB0byBwYXRoLmpvaW4gbXVzdCBiZSBzdHJpbmdzJyk7XG4gICAgfVxuICAgIHJldHVybiBwO1xuICB9KS5qb2luKCcvJykpO1xufTtcblxuXG4vLyBwYXRoLnJlbGF0aXZlKGZyb20sIHRvKVxuLy8gcG9zaXggdmVyc2lvblxuZXhwb3J0cy5yZWxhdGl2ZSA9IGZ1bmN0aW9uKGZyb20sIHRvKSB7XG4gIGZyb20gPSBleHBvcnRzLnJlc29sdmUoZnJvbSkuc3Vic3RyKDEpO1xuICB0byA9IGV4cG9ydHMucmVzb2x2ZSh0bykuc3Vic3RyKDEpO1xuXG4gIGZ1bmN0aW9uIHRyaW0oYXJyKSB7XG4gICAgdmFyIHN0YXJ0ID0gMDtcbiAgICBmb3IgKDsgc3RhcnQgPCBhcnIubGVuZ3RoOyBzdGFydCsrKSB7XG4gICAgICBpZiAoYXJyW3N0YXJ0XSAhPT0gJycpIGJyZWFrO1xuICAgIH1cblxuICAgIHZhciBlbmQgPSBhcnIubGVuZ3RoIC0gMTtcbiAgICBmb3IgKDsgZW5kID49IDA7IGVuZC0tKSB7XG4gICAgICBpZiAoYXJyW2VuZF0gIT09ICcnKSBicmVhaztcbiAgICB9XG5cbiAgICBpZiAoc3RhcnQgPiBlbmQpIHJldHVybiBbXTtcbiAgICByZXR1cm4gYXJyLnNsaWNlKHN0YXJ0LCBlbmQgLSBzdGFydCArIDEpO1xuICB9XG5cbiAgdmFyIGZyb21QYXJ0cyA9IHRyaW0oZnJvbS5zcGxpdCgnLycpKTtcbiAgdmFyIHRvUGFydHMgPSB0cmltKHRvLnNwbGl0KCcvJykpO1xuXG4gIHZhciBsZW5ndGggPSBNYXRoLm1pbihmcm9tUGFydHMubGVuZ3RoLCB0b1BhcnRzLmxlbmd0aCk7XG4gIHZhciBzYW1lUGFydHNMZW5ndGggPSBsZW5ndGg7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoZnJvbVBhcnRzW2ldICE9PSB0b1BhcnRzW2ldKSB7XG4gICAgICBzYW1lUGFydHNMZW5ndGggPSBpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgdmFyIG91dHB1dFBhcnRzID0gW107XG4gIGZvciAodmFyIGkgPSBzYW1lUGFydHNMZW5ndGg7IGkgPCBmcm9tUGFydHMubGVuZ3RoOyBpKyspIHtcbiAgICBvdXRwdXRQYXJ0cy5wdXNoKCcuLicpO1xuICB9XG5cbiAgb3V0cHV0UGFydHMgPSBvdXRwdXRQYXJ0cy5jb25jYXQodG9QYXJ0cy5zbGljZShzYW1lUGFydHNMZW5ndGgpKTtcblxuICByZXR1cm4gb3V0cHV0UGFydHMuam9pbignLycpO1xufTtcblxuZXhwb3J0cy5zZXAgPSAnLyc7XG5leHBvcnRzLmRlbGltaXRlciA9ICc6JztcblxuZXhwb3J0cy5kaXJuYW1lID0gZnVuY3Rpb24ocGF0aCkge1xuICB2YXIgcmVzdWx0ID0gc3BsaXRQYXRoKHBhdGgpLFxuICAgICAgcm9vdCA9IHJlc3VsdFswXSxcbiAgICAgIGRpciA9IHJlc3VsdFsxXTtcblxuICBpZiAoIXJvb3QgJiYgIWRpcikge1xuICAgIC8vIE5vIGRpcm5hbWUgd2hhdHNvZXZlclxuICAgIHJldHVybiAnLic7XG4gIH1cblxuICBpZiAoZGlyKSB7XG4gICAgLy8gSXQgaGFzIGEgZGlybmFtZSwgc3RyaXAgdHJhaWxpbmcgc2xhc2hcbiAgICBkaXIgPSBkaXIuc3Vic3RyKDAsIGRpci5sZW5ndGggLSAxKTtcbiAgfVxuXG4gIHJldHVybiByb290ICsgZGlyO1xufTtcblxuXG5leHBvcnRzLmJhc2VuYW1lID0gZnVuY3Rpb24ocGF0aCwgZXh0KSB7XG4gIHZhciBmID0gc3BsaXRQYXRoKHBhdGgpWzJdO1xuICAvLyBUT0RPOiBtYWtlIHRoaXMgY29tcGFyaXNvbiBjYXNlLWluc2Vuc2l0aXZlIG9uIHdpbmRvd3M/XG4gIGlmIChleHQgJiYgZi5zdWJzdHIoLTEgKiBleHQubGVuZ3RoKSA9PT0gZXh0KSB7XG4gICAgZiA9IGYuc3Vic3RyKDAsIGYubGVuZ3RoIC0gZXh0Lmxlbmd0aCk7XG4gIH1cbiAgcmV0dXJuIGY7XG59O1xuXG5cbmV4cG9ydHMuZXh0bmFtZSA9IGZ1bmN0aW9uKHBhdGgpIHtcbiAgcmV0dXJuIHNwbGl0UGF0aChwYXRoKVszXTtcbn07XG5cbmZ1bmN0aW9uIGZpbHRlciAoeHMsIGYpIHtcbiAgICBpZiAoeHMuZmlsdGVyKSByZXR1cm4geHMuZmlsdGVyKGYpO1xuICAgIHZhciByZXMgPSBbXTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHhzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChmKHhzW2ldLCBpLCB4cykpIHJlcy5wdXNoKHhzW2ldKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlcztcbn1cblxuLy8gU3RyaW5nLnByb3RvdHlwZS5zdWJzdHIgLSBuZWdhdGl2ZSBpbmRleCBkb24ndCB3b3JrIGluIElFOFxudmFyIHN1YnN0ciA9ICdhYicuc3Vic3RyKC0xKSA9PT0gJ2InXG4gICAgPyBmdW5jdGlvbiAoc3RyLCBzdGFydCwgbGVuKSB7IHJldHVybiBzdHIuc3Vic3RyKHN0YXJ0LCBsZW4pIH1cbiAgICA6IGZ1bmN0aW9uIChzdHIsIHN0YXJ0LCBsZW4pIHtcbiAgICAgICAgaWYgKHN0YXJ0IDwgMCkgc3RhcnQgPSBzdHIubGVuZ3RoICsgc3RhcnQ7XG4gICAgICAgIHJldHVybiBzdHIuc3Vic3RyKHN0YXJ0LCBsZW4pO1xuICAgIH1cbjtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL3BhdGgtYnJvd3NlcmlmeS9pbmRleC5qc1xuLy8gbW9kdWxlIGlkID0gMThcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwiY29uc3QgZnJhcHBlID0gcmVxdWlyZSgnZnJhcHBlLWNvcmUnKTtcblxubW9kdWxlLmV4cG9ydHMgPSB7XG5cdGFkZCh0YWcsIGNsYXNzTmFtZSwgcGFyZW50KSB7XG5cdFx0bGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRhZyk7XG5cdFx0aWYgKGNsYXNzTmFtZSkge1xuXHRcdFx0Zm9yIChsZXQgYyBvZiBjbGFzc05hbWUuc3BsaXQoJyAnKSkge1xuXHRcdFx0XHR0aGlzLmFkZF9jbGFzcyhlbGVtZW50LCBjKTtcblx0XHRcdH1cblx0XHR9XG5cdFx0aWYgKHBhcmVudCkge1xuXHRcdFx0cGFyZW50LmFwcGVuZENoaWxkKGVsZW1lbnQpO1xuXHRcdH1cblx0XHRyZXR1cm4gZWxlbWVudDtcblx0fSxcblxuXHRyZW1vdmUoZWxlbWVudCkge1xuXHRcdGVsZW1lbnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlbGVtZW50KTtcblx0fSxcblxuXHRhZGRfY2xhc3MoZWxlbWVudCwgY2xhc3NOYW1lKSB7XG5cdFx0aWYgKGVsZW1lbnQuY2xhc3NMaXN0KSB7XG5cdFx0XHRlbGVtZW50LmNsYXNzTGlzdC5hZGQoY2xhc3NOYW1lKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0ZWxlbWVudC5jbGFzc05hbWUgKz0gXCIgXCIgKyBjbGFzc05hbWU7XG5cdFx0fVxuXHR9LFxuXG5cdHJlbW92ZV9jbGFzcyhlbGVtZW50LCBjbGFzc05hbWUpIHtcblx0XHRpZiAoZWxlbWVudC5jbGFzc0xpc3QpIHtcblx0XHRcdGVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShjbGFzc05hbWUpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRlbGVtZW50LmNsYXNzTmFtZSA9IGVsZW1lbnQuY2xhc3NOYW1lLnJlcGxhY2UobmV3IFJlZ0V4cCgnKF58XFxcXGIpJyArIGNsYXNzTmFtZS5zcGxpdCgnICcpLmpvaW4oJ3wnKSArICcoXFxcXGJ8JCknLCAnZ2knKSwgJyAnKTtcblx0XHR9XG5cdH1cblxufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4uL2ZyYXBwZS1jb3JlL2ZyYXBwZS9jbGllbnQvdWkvaW5kZXguanNcbi8vIG1vZHVsZSBpZCA9IDE5XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsImNvbnN0IGZyYXBwZSA9IHJlcXVpcmUoJ2ZyYXBwZS1jb3JlJyk7XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuXHRpbml0KHtjb250YWluZXIsIG1haW4sIHNpZGViYXJ9KSB7XG5cdFx0ZnJhcHBlLmNvbnRhaW5lciA9IGNvbnRhaW5lcjtcblxuXHRcdGlmIChzaWRlYmFyKSB7XG5cdFx0XHRmcmFwcGUuc2lkZWJhciA9IHNpZGViYXI7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGZyYXBwZS5zaWRlYmFyID0gZnJhcHBlLnVpLmFkZCgnZGl2JywgJ3NpZGViYXInLCBmcmFwcGUuY29udGFpbmVyKTtcblx0XHR9XG5cblx0XHRpZiAobWFpbikge1xuXHRcdFx0ZnJhcHBlLm1haW4gPSBtYWluO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRmcmFwcGUubWFpbiA9IGZyYXBwZS51aS5hZGQoJ2RpdicsICdtYWluJywgZnJhcHBlLmNvbnRhaW5lcik7XG5cdFx0fVxuXHR9LFxuXG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi4vZnJhcHBlLWNvcmUvZnJhcHBlL2NsaWVudC92aWV3L2luZGV4LmpzXG4vLyBtb2R1bGUgaWQgPSAyMFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJjb25zdCBmcmFwcGUgPSByZXF1aXJlKCdmcmFwcGUtY29yZScpO1xuXG5jbGFzcyBSb3V0ZXIge1xuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHR0aGlzLmN1cnJlbnRfcGFnZSA9IG51bGw7XG5cdFx0dGhpcy5yb3V0ZXMgPSB7fTtcblx0XHR0aGlzLmxpc3RlbigpO1xuXHR9XG5cblx0YWRkKHJvdXRlLCBoYW5kbGVyKSB7XG5cdFx0bGV0IHBhZ2UgPSB7aGFuZGxlcjogaGFuZGxlcn07XG5cblx0XHQvLyAnL3RvZG8vOm5hbWUvOnBsYWNlJy5tYXRjaCgvOihbXi9dKykvZyk7XG5cdFx0cGFnZS5wYXJhbV9rZXlzID0gcm91dGUubWF0Y2goLzooW14vXSspL2cpO1xuXG5cdFx0aWYgKHBhZ2UucGFyYW1fa2V5cykge1xuXHRcdFx0Ly8gbWFrZSBleHByZXNzaW9uXG5cdFx0XHQvLyAnL3RvZG8vOm5hbWUvOnBsYWNlJy5yZXBsYWNlKC9cXC86KFthLXoxLTldKykvZywgXCJcXC8oW2EtejAtOV0rKVwiKTtcblx0XHRcdHBhZ2UuZXhwcmVzc2lvbiA9IHJvdXRlLnJlcGxhY2UoL1xcLzooW2EtejEtOV0rKS9nLCBcIlxcLyhbYS16MC05XSspXCIpO1xuXHRcdH1cblxuXHRcdHRoaXMucm91dGVzW3JvdXRlXSA9IHBhZ2U7XG5cdH1cblxuXHRsaXN0ZW4oKSB7XG5cdFx0d2luZG93Lm9uaGFzaGNoYW5nZSA9IHRoaXMuY2hhbmdlZC5iaW5kKHRoaXMpO1xuXHRcdHRoaXMuY2hhbmdlZCgpO1xuXHR9XG5cblx0YXN5bmMgY2hhbmdlZChldmVudCkge1xuXHRcdGlmICh3aW5kb3cubG9jYXRpb24uaGFzaC5sZW5ndGggPiAwKSB7XG5cdFx0XHRjb25zdCBwYWdlX25hbWUgPSB3aW5kb3cubG9jYXRpb24uaGFzaC5zdWJzdHIoMSk7XG5cdFx0XHR0aGlzLnNob3cocGFnZV9uYW1lKTtcblx0XHR9IGVsc2UgaWYgKHRoaXMucm91dGVzWydkZWZhdWx0J10pIHtcblx0XHRcdHRoaXMuc2hvdygnZGVmYXVsdCcpO1xuXHRcdH1cblx0fVxuXG5cdHNob3cocm91dGUpIHtcblx0XHRpZiAoIXJvdXRlKSB7XG5cdFx0XHRyb3V0ZSA9ICdkZWZhdWx0Jztcblx0XHR9XG5cblx0XHRpZiAocm91dGVbMF09PT0nIycpIHtcblx0XHRcdHJvdXRlID0gcm91dGUuc3Vic3RyKDEpO1xuXHRcdH1cblxuXHRcdGxldCBwYWdlID0gdGhpcy5tYXRjaChyb3V0ZSk7XG5cblx0XHRpZiAocGFnZSkge1xuXHRcdFx0aWYgKHR5cGVvZiBwYWdlLmhhbmRsZXI9PT0nZnVuY3Rpb24nKSB7XG5cdFx0XHRcdHBhZ2UuaGFuZGxlcihwYWdlLnBhcmFtcyk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRwYWdlLmhhbmRsZXIuc2hvdyhwYWdlLnBhcmFtcyk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0bWF0Y2gocm91dGUpIHtcblx0XHRmb3IobGV0IGtleSBpbiB0aGlzLnJvdXRlcykge1xuXHRcdFx0bGV0IHBhZ2UgPSB0aGlzLnJvdXRlc1trZXldO1xuXG5cdFx0XHRpZiAocGFnZS5wYXJhbV9rZXlzKSB7XG5cdFx0XHRcdGxldCBtYXRjaGVzID0gcm91dGUubWF0Y2gobmV3IFJlZ0V4cChwYWdlLmV4cHJlc3Npb24pKTtcblx0XHRcdFx0aWYgKG1hdGNoZXMgJiYgbWF0Y2hlcy5sZW5ndGggPT0gcGFnZS5wYXJhbV9rZXlzLmxlbmd0aCArIDEpIHtcblx0XHRcdFx0XHRsZXQgcGFyYW1zID0ge31cblx0XHRcdFx0XHRmb3IgKGxldCBpPTA7IGkgPCBwYWdlLnBhcmFtX2tleXMubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0XHRcdHBhcmFtc1twYWdlLnBhcmFtX2tleXNbaV0uc3Vic3RyKDEpXSA9IG1hdGNoZXNbaSArIDFdO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRyZXR1cm4ge2hhbmRsZXI6cGFnZS5oYW5kbGVyLCBwYXJhbXM6IHBhcmFtc307XG5cdFx0XHRcdH1cblxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0aWYgKGtleSA9PT0gcm91dGUpIHtcblx0XHRcdFx0XHRyZXR1cm4ge2hhbmRsZXI6cGFnZS5oYW5kbGVyfTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtSb3V0ZXI6IFJvdXRlcn07XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi4vZnJhcHBlLWNvcmUvZnJhcHBlL2NsaWVudC92aWV3L3JvdXRlci5qc1xuLy8gbW9kdWxlIGlkID0gMjFcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwiY29uc3QgZnJhcHBlID0gcmVxdWlyZSgnZnJhcHBlLWNvcmUnKTtcblxuY2xhc3MgTGlzdFZpZXcge1xuXHRjb25zdHJ1Y3Rvcih7ZG9jdHlwZSwgcGFyZW50fSkge1xuXHRcdHRoaXMuZG9jdHlwZSA9IGRvY3R5cGU7XG5cdFx0dGhpcy5wYXJlbnQgPSBwYXJlbnQ7XG5cdFx0dGhpcy5tZXRhID0gZnJhcHBlLmdldF9tZXRhKHRoaXMuZG9jdHlwZSk7XG5cblx0XHR0aGlzLnN0YXJ0ID0gMDtcblx0XHR0aGlzLnBhZ2VfbGVuZ3RoID0gMjA7XG5cblx0XHR0aGlzLmJvZHkgPSBudWxsO1xuXHRcdHRoaXMucm93cyA9IFtdO1xuXHR9XG5cblx0YXN5bmMgcnVuKCkge1xuXHRcdHRoaXMubWFrZV9ib2R5KCk7XG5cdFx0bGV0IGRhdGEgPSBhd2FpdCB0aGlzLm1ldGEuZ2V0X2xpc3Qoe3N0YXJ0OnRoaXMuc3RhcnQsIGxpbWl0OnRoaXMucGFnZV9sZW5ndGh9KTtcblxuXHRcdGZvciAobGV0IGk9MDsgaTwgZGF0YS5sZW5ndGg7IGkrKykge1xuXHRcdFx0dGhpcy5yZW5kZXJfcm93KHRoaXMuc3RhcnQgKyBpLCBkYXRhW2ldKTtcblx0XHR9XG5cdH1cblxuXHRtYWtlX2JvZHkoKSB7XG5cdFx0aWYgKCF0aGlzLmJvZHkpIHtcblx0XHRcdHRoaXMuYm9keSA9IGZyYXBwZS51aS5hZGQoJ2RpdicsICdsaXN0LWJvZHknLCB0aGlzLnBhcmVudCk7XG5cdFx0fVxuXHR9XG5cblx0cmVuZGVyX3JvdyhpLCBkYXRhKSB7XG5cdFx0bGV0IHJvdyA9IHRoaXMuZ2V0X3JvdyhpKTtcblx0XHRyb3cuaW5uZXJIVE1MID0gdGhpcy5tZXRhLmdldF9yb3dfaHRtbChkYXRhKTtcblx0fVxuXG5cdGdldF9yb3coaSkge1xuXHRcdGlmICghdGhpcy5yb3dzW2ldKSB7XG5cdFx0XHR0aGlzLnJvd3NbaV0gPSBmcmFwcGUudWkuYWRkKCdkaXYnLCAnbGlzdC1yb3cnLCB0aGlzLmJvZHkpO1xuXHRcdH1cblx0XHRyZXR1cm4gdGhpcy5yb3dzW2ldO1xuXHR9XG5cbn07XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuXHRMaXN0VmlldzogTGlzdFZpZXdcbn07XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi4vZnJhcHBlLWNvcmUvZnJhcHBlL2NsaWVudC92aWV3L2xpc3QuanNcbi8vIG1vZHVsZSBpZCA9IDIyXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsImNvbnN0IGZyYXBwZSA9IHJlcXVpcmUoJ2ZyYXBwZS1jb3JlJyk7XG5cbmNsYXNzIFBhZ2Uge1xuXHRjb25zdHJ1Y3Rvcih0aXRsZSkge1xuXHRcdHRoaXMudGl0bGUgPSB0aXRsZTtcblx0XHR0aGlzLm1ha2UoKTtcblx0fVxuXHRtYWtlKCkge1xuXHRcdHRoaXMuYm9keSA9IGZyYXBwZS51aS5hZGQoJ2RpdicsICdwYWdlIGhpZGUnLCBmcmFwcGUubWFpbik7XG5cdH1cblx0aGlkZSgpIHtcblx0XHRmcmFwcGUudWkuYWRkX2NsYXNzKHRoaXMuYm9keSwgJ2hpZGUnKTtcblx0fVxuXHRzaG93KCkge1xuXHRcdGlmIChmcmFwcGUucm91dGVyLmN1cnJlbnRfcGFnZSkge1xuXHRcdFx0ZnJhcHBlLnJvdXRlci5jdXJyZW50X3BhZ2UuaGlkZSgpO1xuXHRcdH1cblx0XHRmcmFwcGUudWkucmVtb3ZlX2NsYXNzKHRoaXMuYm9keSwgJ2hpZGUnKTtcblx0XHRmcmFwcGUucm91dGVyLmN1cnJlbnRfcGFnZSA9IHRoaXM7XG5cdFx0ZG9jdW1lbnQudGl0bGUgPSB0aGlzLnRpdGxlO1xuXHR9XG59XG5cbm1vZHVsZS5leHBvcnRzID0geyBQYWdlOiBQYWdlIH07XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi4vZnJhcHBlLWNvcmUvZnJhcHBlL2NsaWVudC92aWV3L3BhZ2UuanNcbi8vIG1vZHVsZSBpZCA9IDIzXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsImNvbnN0IGZyYXBwZSA9IHJlcXVpcmUoJ2ZyYXBwZS1jb3JlJyk7XG5jb25zdCBjb250cm9scyA9IHJlcXVpcmUoJy4vY29udHJvbHMnKTtcblxuY2xhc3MgRm9ybSB7XG5cdGNvbnN0cnVjdG9yKHtkb2N0eXBlLCBwYXJlbnQsIHN1Ym1pdF9sYWJlbD0nU3VibWl0J30pIHtcblx0XHR0aGlzLnBhcmVudCA9IHBhcmVudDtcblx0XHR0aGlzLmRvY3R5cGUgPSBkb2N0eXBlO1xuXHRcdHRoaXMuc3VibWl0X2xhYmVsID0gc3VibWl0X2xhYmVsO1xuXG5cdFx0dGhpcy5jb250cm9scyA9IHt9O1xuXHRcdHRoaXMuY29udHJvbHNfbGlzdCA9IFtdO1xuXG5cdFx0dGhpcy5tZXRhID0gZnJhcHBlLmdldF9tZXRhKHRoaXMuZG9jdHlwZSk7XG5cdH1cblxuXHRtYWtlKCkge1xuXHRcdHRoaXMuYm9keSA9IGZyYXBwZS51aS5hZGQoJ2Zvcm0nLCBudWxsLCB0aGlzLnBhcmVudCk7XG5cdFx0Zm9yKGxldCBkZiBvZiB0aGlzLm1ldGEuZmllbGRzKSB7XG5cdFx0XHRpZiAoY29udHJvbHMuZ2V0X2NvbnRyb2xfY2xhc3MoZGYuZmllbGR0eXBlKSkge1xuXHRcdFx0XHRsZXQgY29udHJvbCA9IGNvbnRyb2xzLm1ha2VfY29udHJvbChkZiwgdGhpcy5ib2R5KTtcblx0XHRcdFx0dGhpcy5jb250cm9sc19saXN0LnB1c2goY29udHJvbCk7XG5cdFx0XHRcdHRoaXMuY29udHJvbHNbZGYuZmllbGRuYW1lXSA9IGNvbnRyb2w7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHRoaXMubWFrZV9zdWJtaXQoKTtcblx0fVxuXG5cdG1ha2Vfc3VibWl0KCkge1xuXHRcdHRoaXMuc3VibWl0X2J0biA9IGZyYXBwZS51aS5hZGQoJ2J1dHRvbicsICdidG4gYnRuLW91dGxpbmUtcHJpbWFyeScsIHRoaXMuYm9keSk7XG5cdFx0dGhpcy5zdWJtaXRfYnRuLnNldEF0dHJpYnV0ZSgndHlwZScsICdzdWJtaXQnKTtcblx0XHR0aGlzLnN1Ym1pdF9idG4udGV4dENvbnRlbnQgPSB0aGlzLnN1Ym1pdF9sYWJlbDtcblx0XHR0aGlzLnN1Ym1pdF9idG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoZXZlbnQpID0+IHtcblx0XHRcdHRoaXMuc3VibWl0KCk7XG5cdFx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXHRcdH0pXG5cdH1cblxuXHRzaG93X2FsZXJ0KG1lc3NhZ2UsIHR5cGUpIHtcblx0XHR0aGlzLmFsZXJ0ID0gZnJhcHBlLnVpLmFkZCgnZGl2JywgYGFsZXJ0IGFsZXJ0LSR7dHlwZX1gLCB0aGlzLmJvZHkpO1xuXHRcdHRoaXMuYWxlcnQudGV4dENvbnRlbnQgPSBtZXNzYWdlO1xuXHR9XG5cblx0Y2xlYXJfYWxlcnQoKSB7XG5cdFx0aWYgKHRoaXMuYWxlcnQpIHtcblx0XHRcdGZyYXBwZS51aS5yZW1vdmUodGhpcy5hbGVydCk7XG5cdFx0XHR0aGlzLmFsZXJ0ID0gbnVsbDtcblx0XHR9XG5cdH1cblxuXHRhc3luYyB1c2UoZG9jLCBpc19uZXcgPSBmYWxzZSkge1xuXHRcdGlmICh0aGlzLmRvYykge1xuXHRcdFx0Ly8gY2xlYXIgaGFuZGxlcnMgb2Ygb3V0Z29pbmcgZG9jXG5cdFx0XHR0aGlzLmRvYy5jbGVhcl9oYW5kbGVycygpO1xuXHRcdH1cblx0XHR0aGlzLmNsZWFyX2FsZXJ0KCk7XG5cdFx0dGhpcy5kb2MgPSBkb2M7XG5cdFx0dGhpcy5pc19uZXcgPSBpc19uZXc7XG5cdFx0Zm9yIChsZXQgY29udHJvbCBvZiB0aGlzLmNvbnRyb2xzX2xpc3QpIHtcblx0XHRcdGNvbnRyb2wuYmluZCh0aGlzLmRvYyk7XG5cdFx0fVxuXHR9XG5cblx0YXN5bmMgc3VibWl0KCkge1xuXHRcdHRyeSB7XG5cdFx0XHRpZiAodGhpcy5pc19uZXcpIHtcblx0XHRcdFx0YXdhaXQgdGhpcy5kb2MuaW5zZXJ0KCk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRhd2FpdCB0aGlzLmRvYy51cGRhdGUoKTtcblx0XHRcdH1cblx0XHRcdGF3YWl0IHRoaXMucmVmcmVzaCgpO1xuXHRcdFx0dGhpcy5zaG93X2FsZXJ0KCdTYXZlZCcsICdzdWNjZXNzJyk7XG5cdFx0fSBjYXRjaCAoZSkge1xuXHRcdFx0dGhpcy5zaG93X2FsZXJ0KCdGYWlsZWQnLCAnZGFuZ2VyJyk7XG5cdFx0fVxuXHR9XG5cblx0cmVmcmVzaCgpIHtcblx0XHRmb3IobGV0IGNvbnRyb2wgb2YgdGhpcy5jb250cm9sc19saXN0KSB7XG5cdFx0XHRjb250cm9sLnJlZnJlc2goKTtcblx0XHR9XG5cdH1cblxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtGb3JtOiBGb3JtfTtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuLi9mcmFwcGUtY29yZS9mcmFwcGUvY2xpZW50L3ZpZXcvZm9ybS5qc1xuLy8gbW9kdWxlIGlkID0gMjRcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwiY29uc3QgY29udHJvbF9jbGFzc2VzID0ge1xuXHREYXRhOiByZXF1aXJlKCcuL2RhdGEnKSxcblx0VGV4dDogcmVxdWlyZSgnLi90ZXh0JyksXG5cdFNlbGVjdDogcmVxdWlyZSgnLi9zZWxlY3QnKVxufVxuXG5cbm1vZHVsZS5leHBvcnRzID0ge1xuXHRnZXRfY29udHJvbF9jbGFzcyhmaWVsZHR5cGUpIHtcblx0XHRyZXR1cm4gY29udHJvbF9jbGFzc2VzW2ZpZWxkdHlwZV07XG5cdH0sXG5cdG1ha2VfY29udHJvbChmaWVsZCwgcGFyZW50KSB7XG5cdFx0Y29uc3QgY29udHJvbF9jbGFzcyA9IHRoaXMuZ2V0X2NvbnRyb2xfY2xhc3MoZmllbGQuZmllbGR0eXBlKTtcblx0XHRsZXQgY29udHJvbCA9IG5ldyBjb250cm9sX2NsYXNzKGZpZWxkLCBwYXJlbnQpO1xuXHRcdGNvbnRyb2wubWFrZSgpO1xuXHRcdHJldHVybiBjb250cm9sO1xuXHR9XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi4vZnJhcHBlLWNvcmUvZnJhcHBlL2NsaWVudC92aWV3L2NvbnRyb2xzL2luZGV4LmpzXG4vLyBtb2R1bGUgaWQgPSAyNVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJjb25zdCBCYXNlQ29udHJvbCA9IHJlcXVpcmUoJy4vYmFzZScpO1xuXG5jbGFzcyBEYXRhQ29udHJvbCBleHRlbmRzIEJhc2VDb250cm9sIHtcblx0bWFrZSgpIHtcblx0XHRzdXBlci5tYWtlKCk7XG5cdFx0dGhpcy5pbnB1dC5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAndGV4dCcpO1xuXHR9XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IERhdGFDb250cm9sO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4uL2ZyYXBwZS1jb3JlL2ZyYXBwZS9jbGllbnQvdmlldy9jb250cm9scy9kYXRhLmpzXG4vLyBtb2R1bGUgaWQgPSAyNlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJjb25zdCBCYXNlQ29udHJvbCA9IHJlcXVpcmUoJy4vYmFzZScpO1xuXG5jbGFzcyBUZXh0Q29udHJvbCBleHRlbmRzIEJhc2VDb250cm9sIHtcblx0bWFrZV9pbnB1dCgpIHtcblx0XHR0aGlzLmlucHV0ID0gZnJhcHBlLnVpLmFkZCgndGV4dGFyZWEnLCAnZm9ybS1jb250cm9sJywgdGhpcy5mb3JtX2dyb3VwKTtcblx0fVxuXHRtYWtlKCkge1xuXHRcdHN1cGVyLm1ha2UoKTtcblx0XHR0aGlzLmlucHV0LnNldEF0dHJpYnV0ZSgncm93cycsICc4Jyk7XG5cdH1cbn07XG5cbm1vZHVsZS5leHBvcnRzID0gVGV4dENvbnRyb2w7XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi4vZnJhcHBlLWNvcmUvZnJhcHBlL2NsaWVudC92aWV3L2NvbnRyb2xzL3RleHQuanNcbi8vIG1vZHVsZSBpZCA9IDI3XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsImNvbnN0IEJhc2VDb250cm9sID0gcmVxdWlyZSgnLi9iYXNlJyk7XG5cbmNsYXNzIFNlbGVjdENvbnRyb2wgZXh0ZW5kcyBCYXNlQ29udHJvbCB7XG5cdG1ha2VfaW5wdXQoKSB7XG5cdFx0dGhpcy5pbnB1dCA9IGZyYXBwZS51aS5hZGQoJ3NlbGVjdCcsICdmb3JtLWNvbnRyb2wnLCB0aGlzLmZvcm1fZ3JvdXApO1xuXG5cdFx0bGV0IG9wdGlvbnMgPSB0aGlzLm9wdGlvbnM7XG5cdFx0aWYgKHR5cGVvZiBvcHRpb25zPT09J3N0cmluZycpIHtcblx0XHRcdG9wdGlvbnMgPSBvcHRpb25zLnNwbGl0KCdcXG4nKTtcblx0XHR9XG5cblx0XHRmb3IgKGxldCB2YWx1ZSBvZiBvcHRpb25zKSB7XG5cdFx0XHRsZXQgb3B0aW9uID0gZnJhcHBlLnVpLmFkZCgnb3B0aW9uJywgbnVsbCwgdGhpcy5pbnB1dCk7XG5cdFx0XHRvcHRpb24udGV4dENvbnRlbnQgPSB2YWx1ZTtcblx0XHRcdG9wdGlvbi5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgdmFsdWUpO1xuXHRcdH1cblx0fVxuXHRtYWtlKCkge1xuXHRcdHN1cGVyLm1ha2UoKTtcblx0XHR0aGlzLmlucHV0LnNldEF0dHJpYnV0ZSgncm93JywgJzMnKTtcblx0fVxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBTZWxlY3RDb250cm9sO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4uL2ZyYXBwZS1jb3JlL2ZyYXBwZS9jbGllbnQvdmlldy9jb250cm9scy9zZWxlY3QuanNcbi8vIG1vZHVsZSBpZCA9IDI4XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsImNvbnN0IGZyYXBwZSA9IHJlcXVpcmUoJ2ZyYXBwZS1jb3JlJyk7XG5cbmNsYXNzIHRvZG9fbWV0YSBleHRlbmRzIGZyYXBwZS5tZXRhLk1ldGEge1xuXHRzZXR1cF9tZXRhKCkge1xuXHRcdE9iamVjdC5hc3NpZ24odGhpcywgcmVxdWlyZSgnLi90b2RvLmpzb24nKSk7XG5cdFx0dGhpcy5uYW1lID0gJ1RvRG8nO1xuXHRcdHRoaXMubGlzdF9vcHRpb25zLmZpZWxkcyA9IFsnbmFtZScsICdzdWJqZWN0JywgJ3N0YXR1cycsICdkZXNjcmlwdGlvbiddO1xuXHR9XG5cblx0Z2V0X3Jvd19odG1sKGRhdGEpIHtcblx0XHRyZXR1cm4gYDxhIGhyZWY9XCIjZWRpdC90b2RvLyR7ZGF0YS5uYW1lfVwiPiR7ZGF0YS5zdWJqZWN0fTwvYT5gO1xuXHR9XG5cbn1cblxuY2xhc3MgdG9kbyBleHRlbmRzIGZyYXBwZS5kb2N1bWVudC5Eb2N1bWVudCB7XG5cdHNldHVwKCkge1xuXHRcdHRoaXMuYWRkX2hhbmRsZXIoJ3ZhbGlkYXRlJyk7XG5cdH1cblx0dmFsaWRhdGUoKSB7XG5cdFx0aWYgKCF0aGlzLnN0YXR1cykge1xuXHRcdFx0dGhpcy5zdGF0dXMgPSAnT3Blbic7XG5cdFx0fVxuXHR9XG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuXHR0b2RvOiB0b2RvLFxuXHR0b2RvX21ldGE6IHRvZG9fbWV0YVxufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4uL2ZyYXBwZS1jb3JlL2ZyYXBwZS9tb2RlbHMvZG9jdHlwZS90b2RvL3RvZG8uanNcbi8vIG1vZHVsZSBpZCA9IDI5XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsIm1vZHVsZS5leHBvcnRzID0ge1wiYXV0b25hbWVcIjpcImhhc2hcIixcIm5hbWVcIjpcIlRvRG9cIixcImRvY3R5cGVcIjpcIkRvY1R5cGVcIixcImlzc2luZ2xlXCI6MCxcImZpZWxkc1wiOlt7XCJmaWVsZG5hbWVcIjpcInN1YmplY3RcIixcImxhYmVsXCI6XCJTdWJqZWN0XCIsXCJmaWVsZHR5cGVcIjpcIkRhdGFcIixcInJlcWRcIjoxfSx7XCJmaWVsZG5hbWVcIjpcImRlc2NyaXB0aW9uXCIsXCJsYWJlbFwiOlwiRGVzY3JpcHRpb25cIixcImZpZWxkdHlwZVwiOlwiVGV4dFwifSx7XCJmaWVsZG5hbWVcIjpcInN0YXR1c1wiLFwibGFiZWxcIjpcIlN0YXR1c1wiLFwiZmllbGR0eXBlXCI6XCJTZWxlY3RcIixcIm9wdGlvbnNcIjpbXCJPcGVuXCIsXCJDbG9zZWRcIl0sXCJkZWZhdWx0XCI6XCJPcGVuXCIsXCJyZXFkXCI6MX1dfVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4uL2ZyYXBwZS1jb3JlL2ZyYXBwZS9tb2RlbHMvZG9jdHlwZS90b2RvL3RvZG8uanNvblxuLy8gbW9kdWxlIGlkID0gMzBcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==
|