diff --git a/client/dist/js/AssetUploadField.js b/client/dist/js/AssetUploadField.js
deleted file mode 100644
index b5e2b1f57..000000000
--- a/client/dist/js/AssetUploadField.js
+++ /dev/null
@@ -1,50 +0,0 @@
-(function (global, factory) {
- if (typeof define === "function" && define.amd) {
- define('ss.AssetUploadField', ['jQuery'], factory);
- } else if (typeof exports !== "undefined") {
- factory(require('jQuery'));
- } else {
- var mod = {
- exports: {}
- };
- factory(global.jQuery);
- global.ssAssetUploadField = mod.exports;
- }
-})(this, function (_jQuery) {
- 'use strict';
-
- var _jQuery2 = _interopRequireDefault(_jQuery);
-
- function _interopRequireDefault(obj) {
- return obj && obj.__esModule ? obj : {
- default: obj
- };
- }
-
- (0, _jQuery2.default)('.ss-assetuploadfield').entwine({
- onmatch: function onmatch() {
- this._super();
-
- this.find('.ss-uploadfield-editandorganize').hide();
- },
- onunmatch: function onunmatch() {
- this._super();
- },
- onfileuploadadd: function onfileuploadadd(e) {
- this.find('.ss-uploadfield-editandorganize').show();
- },
- onfileuploadstart: function onfileuploadstart(e) {
- this.find('.ss-uploadfield-editandorganize').show();
- }
- });
-
- (0, _jQuery2.default)('.ss-uploadfield-view-allowed-extensions .toggle').entwine({
- onclick: function onclick(e) {
- var allowedExt = this.closest('.ss-uploadfield-view-allowed-extensions'),
- minHeightVal = this.closest('.ui-tabs-panel').height() + 20;
-
- allowedExt.toggleClass('active');
- allowedExt.find('.toggle-content').css('minHeight', minHeightVal);
- }
- });
-});
\ No newline at end of file
diff --git a/client/dist/js/ConfirmedPasswordField.js b/client/dist/js/ConfirmedPasswordField.js
deleted file mode 100644
index 12fa38aa2..000000000
--- a/client/dist/js/ConfirmedPasswordField.js
+++ /dev/null
@@ -1,33 +0,0 @@
-(function (global, factory) {
- if (typeof define === "function" && define.amd) {
- define('ss.ConfirmedPasswordField', ['jQuery'], factory);
- } else if (typeof exports !== "undefined") {
- factory(require('jQuery'));
- } else {
- var mod = {
- exports: {}
- };
- factory(global.jQuery);
- global.ssConfirmedPasswordField = mod.exports;
- }
-})(this, function (_jQuery) {
- 'use strict';
-
- var _jQuery2 = _interopRequireDefault(_jQuery);
-
- function _interopRequireDefault(obj) {
- return obj && obj.__esModule ? obj : {
- default: obj
- };
- }
-
- (0, _jQuery2.default)(document).on('click', '.confirmedpassword .showOnClick a', function () {
- var $container = (0, _jQuery2.default)('.showOnClickContainer', (0, _jQuery2.default)(this).parent());
-
- $container.toggle('fast', function () {
- $container.find('input[type="hidden"]').val($container.is(":visible") ? 1 : 0);
- });
-
- return false;
- });
-});
\ No newline at end of file
diff --git a/client/dist/js/DateField.js b/client/dist/js/DateField.js
deleted file mode 100644
index 79ae16ede..000000000
--- a/client/dist/js/DateField.js
+++ /dev/null
@@ -1,55 +0,0 @@
-(function (global, factory) {
- if (typeof define === "function" && define.amd) {
- define('ss.DateField', ['jQuery'], factory);
- } else if (typeof exports !== "undefined") {
- factory(require('jQuery'));
- } else {
- var mod = {
- exports: {}
- };
- factory(global.jQuery);
- global.ssDateField = mod.exports;
- }
-})(this, function (_jQuery) {
- 'use strict';
-
- var _jQuery2 = _interopRequireDefault(_jQuery);
-
- function _interopRequireDefault(obj) {
- return obj && obj.__esModule ? obj : {
- default: obj
- };
- }
-
- _jQuery2.default.fn.extend({
- ssDatepicker: function ssDatepicker(opts) {
- return (0, _jQuery2.default)(this).each(function () {
- if ((0, _jQuery2.default)(this).prop('disabled') || (0, _jQuery2.default)(this).prop('readonly') || (0, _jQuery2.default)(this).data('datepicker')) return;
-
- (0, _jQuery2.default)(this).siblings("button").addClass("ui-icon ui-icon-calendar");
-
- var holder = (0, _jQuery2.default)(this).closest('.field.date'),
- config = _jQuery2.default.extend(opts || {}, (0, _jQuery2.default)(this).data(), (0, _jQuery2.default)(this).data('jqueryuiconfig'), {});
- if (!config.showcalendar) return;
-
- if (config.locale && _jQuery2.default.datepicker.regional[config.locale]) {
- config = _jQuery2.default.extend(config, _jQuery2.default.datepicker.regional[config.locale], {});
- }
-
- if (config.min) config.minDate = _jQuery2.default.datepicker.parseDate('yy-mm-dd', config.min);
- if (config.max) config.maxDate = _jQuery2.default.datepicker.parseDate('yy-mm-dd', config.max);
-
- config.dateFormat = config.jquerydateformat;
- (0, _jQuery2.default)(this).datepicker(config);
- });
- }
- });
-
- (0, _jQuery2.default)(document).on("click", ".field.date input.text,input.text.date", function () {
- (0, _jQuery2.default)(this).ssDatepicker();
-
- if ((0, _jQuery2.default)(this).data('datepicker')) {
- (0, _jQuery2.default)(this).datepicker('show');
- }
- });
-});
\ No newline at end of file
diff --git a/client/dist/js/GridField.js b/client/dist/js/GridField.js
deleted file mode 100644
index 061d704ff..000000000
--- a/client/dist/js/GridField.js
+++ /dev/null
@@ -1,360 +0,0 @@
-(function (global, factory) {
- if (typeof define === "function" && define.amd) {
- define('ss.GridField', ['jQuery', 'i18n'], factory);
- } else if (typeof exports !== "undefined") {
- factory(require('jQuery'), require('i18n'));
- } else {
- var mod = {
- exports: {}
- };
- factory(global.jQuery, global.i18n);
- global.ssGridField = mod.exports;
- }
-})(this, function (_jQuery, _i18n) {
- 'use strict';
-
- var _jQuery2 = _interopRequireDefault(_jQuery);
-
- var _i18n2 = _interopRequireDefault(_i18n);
-
- function _interopRequireDefault(obj) {
- return obj && obj.__esModule ? obj : {
- default: obj
- };
- }
-
- _jQuery2.default.entwine('ss', function ($) {
- $('.grid-field').entwine({
-
- reload: function reload(ajaxOpts, successCallback) {
- var self = this,
- form = this.closest('form'),
- focusedElName = this.find(':input:focus').attr('name'),
- data = form.find(':input').serializeArray();
-
- if (!ajaxOpts) ajaxOpts = {};
- if (!ajaxOpts.data) ajaxOpts.data = [];
- ajaxOpts.data = ajaxOpts.data.concat(data);
-
- if (window.location.search) {
- ajaxOpts.data = window.location.search.replace(/^\?/, '') + '&' + $.param(ajaxOpts.data);
- }
-
- form.addClass('loading');
-
- $.ajax($.extend({}, {
- headers: { "X-Pjax": 'CurrentField' },
- type: "POST",
- url: this.data('url'),
- dataType: 'html',
- success: function success(data) {
- self.empty().append($(data).children());
-
- if (focusedElName) self.find(':input[name="' + focusedElName + '"]').focus();
-
- if (self.find('.filter-header').length) {
- var content;
- if (ajaxOpts.data[0].filter == "show") {
- content = '';
- self.addClass('show-filter').find('.filter-header').show();
- } else {
- content = '';
- self.removeClass('show-filter').find('.filter-header').hide();
- }
-
- self.find('.sortable-header th:last').html(content);
- }
-
- form.removeClass('loading');
- if (successCallback) successCallback.apply(this, arguments);
- self.trigger('reload', self);
- },
- error: function error(e) {
- alert(_i18n2.default._t('GRIDFIELD.ERRORINTRANSACTION'));
- form.removeClass('loading');
- }
- }, ajaxOpts));
- },
- showDetailView: function showDetailView(url) {
- window.location.href = url;
- },
- getItems: function getItems() {
- return this.find('.ss-gridfield-item');
- },
-
- setState: function setState(k, v) {
- var state = this.getState();
- state[k] = v;
- this.find(':input[name="' + this.data('name') + '[GridState]"]').val(JSON.stringify(state));
- },
-
- getState: function getState() {
- return JSON.parse(this.find(':input[name="' + this.data('name') + '[GridState]"]').val());
- }
- });
-
- $('.grid-field *').entwine({
- getGridField: function getGridField() {
- return this.closest('.grid-field');
- }
- });
-
- $('.grid-field :button[name=showFilter]').entwine({
- onclick: function onclick(e) {
- $('.filter-header').show('slow').find(':input:first').focus();
- this.closest('.grid-field').addClass('show-filter');
- this.parent().html('');
- e.preventDefault();
- }
- });
-
- $('.grid-field .ss-gridfield-item').entwine({
- onclick: function onclick(e) {
- if ($(e.target).closest('.action').length) {
- this._super(e);
- return false;
- }
-
- var editLink = this.find('.edit-link');
- if (editLink.length) this.getGridField().showDetailView(editLink.prop('href'));
- },
- onmouseover: function onmouseover() {
- if (this.find('.edit-link').length) this.css('cursor', 'pointer');
- },
- onmouseout: function onmouseout() {
- this.css('cursor', 'default');
- }
- });
-
- $('.grid-field .action:button').entwine({
- onclick: function onclick(e) {
- var filterState = 'show';
- if (this.button('option', 'disabled')) {
- e.preventDefault();
- return;
- }
-
- if (this.hasClass('ss-gridfield-button-close') || !this.closest('.grid-field').hasClass('show-filter')) {
- filterState = 'hidden';
- }
-
- this.getGridField().reload({ data: [{ name: this.attr('name'), value: this.val(), filter: filterState }] });
- e.preventDefault();
- },
-
- actionurl: function actionurl() {
- var btn = this.closest(':button'),
- grid = this.getGridField(),
- form = this.closest('form'),
- data = form.find(':input.gridstate').serialize(),
- csrf = form.find('input[name="SecurityID"]').val();
-
- data += "&" + encodeURIComponent(btn.attr('name')) + '=' + encodeURIComponent(btn.val());
-
- if (csrf) {
- data += "&SecurityID=" + encodeURIComponent(csrf);
- }
-
- if (window.location.search) {
- data = window.location.search.replace(/^\?/, '') + '&' + data;
- }
-
- var connector = grid.data('url').indexOf('?') == -1 ? '?' : '&';
-
- return $.path.makeUrlAbsolute(grid.data('url') + connector + data, $('base').attr('href'));
- }
-
- });
-
- $('.grid-field .add-existing-autocompleter').entwine({
- onbuttoncreate: function onbuttoncreate() {
- var self = this;
-
- this.toggleDisabled();
-
- this.find('input[type="text"]').on('keyup', function () {
- self.toggleDisabled();
- });
- },
- onunmatch: function onunmatch() {
- this.find('input[type="text"]').off('keyup');
- },
- toggleDisabled: function toggleDisabled() {
- var $button = this.find('.ss-ui-button'),
- $input = this.find('input[type="text"]'),
- inputHasValue = $input.val() !== '',
- buttonDisabled = $button.is(':disabled');
-
- if (inputHasValue && buttonDisabled || !inputHasValue && !buttonDisabled) {
- $button.button("option", "disabled", !buttonDisabled);
- }
- }
- });
-
- $('.grid-field .grid-field__col-compact .action.gridfield-button-delete, .cms-edit-form .btn-toolbar button.action.action-delete').entwine({
- onclick: function onclick(e) {
- if (!confirm(_i18n2.default._t('TABLEFIELD.DELETECONFIRMMESSAGE'))) {
- e.preventDefault();
- return false;
- } else {
- this._super(e);
- }
- }
- });
-
- $('.grid-field .action.gridfield-button-print').entwine({
- UUID: null,
- onmatch: function onmatch() {
- this._super();
- this.setUUID(new Date().getTime());
- },
- onunmatch: function onunmatch() {
- this._super();
- },
- onclick: function onclick(e) {
- var url = this.actionurl();
- window.open(url);
- e.preventDefault();
- return false;
- }
- });
-
- $('.ss-gridfield-print-iframe').entwine({
- onmatch: function onmatch() {
- this._super();
-
- this.hide().bind('load', function () {
- this.focus();
- var ifWin = this.contentWindow || this;
- ifWin.print();
- });
- },
- onunmatch: function onunmatch() {
- this._super();
- }
- });
-
- $('.grid-field .action.no-ajax').entwine({
- onclick: function onclick(e) {
- window.location.href = this.actionurl();
- e.preventDefault();
- return false;
- }
- });
-
- $('.grid-field .action-detail').entwine({
- onclick: function onclick() {
- this.getGridField().showDetailView($(this).prop('href'));
- return false;
- }
- });
-
- $('.grid-field[data-selectable]').entwine({
- getSelectedItems: function getSelectedItems() {
- return this.find('.ss-gridfield-item.ui-selected');
- },
-
- getSelectedIDs: function getSelectedIDs() {
- return $.map(this.getSelectedItems(), function (el) {
- return $(el).data('id');
- });
- }
- });
- $('.grid-field[data-selectable] .ss-gridfield-items').entwine({
- onadd: function onadd() {
- this._super();
-
- this.selectable();
- },
- onremove: function onremove() {
- this._super();
- if (this.data('selectable')) this.selectable('destroy');
- }
- });
-
- $('.grid-field .filter-header :input').entwine({
- onmatch: function onmatch() {
- var filterbtn = this.closest('.extra').find('.ss-gridfield-button-filter'),
- resetbtn = this.closest('.extra').find('.ss-gridfield-button-reset');
-
- if (this.val()) {
- filterbtn.addClass('filtered');
- resetbtn.addClass('filtered');
- }
- this._super();
- },
- onunmatch: function onunmatch() {
- this._super();
- },
- onkeydown: function onkeydown(e) {
- if (this.closest('.ss-gridfield-button-reset').length) return;
-
- var filterbtn = this.closest('.extra').find('.ss-gridfield-button-filter'),
- resetbtn = this.closest('.extra').find('.ss-gridfield-button-reset');
-
- if (e.keyCode == '13') {
- var btns = this.closest('.filter-header').find('.ss-gridfield-button-filter');
- var filterState = 'show';
- if (this.hasClass('ss-gridfield-button-close') || !this.closest('.grid-field').hasClass('show-filter')) {
- filterState = 'hidden';
- }
-
- this.getGridField().reload({ data: [{ name: btns.attr('name'), value: btns.val(), filter: filterState }] });
- return false;
- } else {
- filterbtn.addClass('hover-alike');
- resetbtn.addClass('hover-alike');
- }
- }
- });
-
- $(".grid-field .relation-search").entwine({
- onfocusin: function onfocusin(event) {
- this.autocomplete({
- source: function source(request, response) {
- var searchField = $(this.element);
- var form = $(this.element).closest("form");
- $.ajax({
- headers: {
- "X-Pjax": 'Partial'
- },
- dataType: 'json',
- type: "GET",
- url: $(searchField).data('searchUrl'),
- data: encodeURIComponent(searchField.attr('name')) + '=' + encodeURIComponent(searchField.val()),
- success: response,
- error: function error(e) {
- alert(_i18n2.default._t('GRIDFIELD.ERRORINTRANSACTION', 'An error occured while fetching data from the server\n Please try again later.'));
- }
- });
- },
- select: function select(event, ui) {
- var hiddenField = $('');
- hiddenField.val(ui.item.id);
- $(this).closest(".grid-field").find(".action_gridfield_relationfind").replaceWith(hiddenField);
- var addbutton = $(this).closest(".grid-field").find(".action_gridfield_relationadd");
- if (addbutton.data('button')) {
- addbutton.button('enable');
- } else {
- addbutton.removeAttr('disabled');
- }
- }
- });
- }
- });
-
- $(".grid-field .pagination-page-number input").entwine({
- onkeydown: function onkeydown(event) {
- if (event.keyCode == 13) {
- var newpage = parseInt($(this).val(), 10);
-
- var gridfield = $(this).getGridField();
- gridfield.setState('GridFieldPaginator', { currentPage: newpage });
- gridfield.reload();
-
- return false;
- }
- }
- });
- });
-});
\ No newline at end of file
diff --git a/client/dist/js/InlineFormAction.js b/client/dist/js/InlineFormAction.js
deleted file mode 100644
index 8b8fc44dc..000000000
--- a/client/dist/js/InlineFormAction.js
+++ /dev/null
@@ -1,45 +0,0 @@
-(function (global, factory) {
- if (typeof define === "function" && define.amd) {
- define('ss.InlineFormAction', [], factory);
- } else if (typeof exports !== "undefined") {
- factory();
- } else {
- var mod = {
- exports: {}
- };
- factory();
- global.ssInlineFormAction = mod.exports;
- }
-})(this, function () {
- 'use strict';
-
- function _defineProperty(obj, key, value) {
- if (key in obj) {
- Object.defineProperty(obj, key, {
- value: value,
- enumerable: true,
- configurable: true,
- writable: true
- });
- } else {
- obj[key] = value;
- }
-
- return obj;
- }
-
- Behaviour.register({
- 'div.inlineformaction input#$ID': {
- onclick: function onclick() {
- var url = jQuery('base').attr('href') + 'admin-custom/' + this.name.substring(7) + '?ID=' + document.getElementById('Form_EditForm_ID').value + '&ajax=1';
-
- jQuery.ajax(_defineProperty({
- 'url': url,
- success: Ajax.Evaluator
- }, 'success', Ajax.Evaluator));
-
- return false;
- }
- }
- });
-});
\ No newline at end of file
diff --git a/client/dist/js/PermissionCheckboxSetField.js b/client/dist/js/PermissionCheckboxSetField.js
deleted file mode 100644
index ab26560b9..000000000
--- a/client/dist/js/PermissionCheckboxSetField.js
+++ /dev/null
@@ -1,92 +0,0 @@
-(function (global, factory) {
- if (typeof define === "function" && define.amd) {
- define('ss.PermissionCheckboxSetField', ['jQuery'], factory);
- } else if (typeof exports !== "undefined") {
- factory(require('jQuery'));
- } else {
- var mod = {
- exports: {}
- };
- factory(global.jQuery);
- global.ssPermissionCheckboxSetField = mod.exports;
- }
-})(this, function (_jQuery) {
- 'use strict';
-
- var _jQuery2 = _interopRequireDefault(_jQuery);
-
- function _interopRequireDefault(obj) {
- return obj && obj.__esModule ? obj : {
- default: obj
- };
- }
-
- _jQuery2.default.entwine('ss', function ($) {
- $('.permissioncheckboxset .valADMIN input').entwine({
- onmatch: function onmatch() {
- this._super();
- },
- onunmatch: function onunmatch() {
- this._super();
- },
- onclick: function onclick(e) {
- this.toggleCheckboxes();
- },
- toggleCheckboxes: function toggleCheckboxes() {
- var checkboxes = $(this).parents('.field:eq(0)').find('.checkbox').not(this);
-
- if ($(this).is(':checked')) {
- checkboxes.each(function () {
- $(this).data('SecurityAdmin.oldChecked', $(this).attr('checked'));
- $(this).data('SecurityAdmin.oldDisabled', $(this).attr('disabled'));
- $(this).attr('disabled', 'disabled');
- $(this).attr('checked', 'checked');
- });
- } else {
- checkboxes.each(function () {
- var oldChecked = $(this).data('SecurityAdmin.oldChecked');
- var oldDisabled = $(this).data('SecurityAdmin.oldDisabled');
- if (oldChecked !== null) $(this).attr('checked', oldChecked);
- if (oldDisabled !== null) $(this).attr('disabled', oldDisabled);
- });
- }
- }
- });
-
- $('.permissioncheckboxset .valCMS_ACCESS_LeftAndMain input').entwine({
- getCheckboxesExceptThisOne: function getCheckboxesExceptThisOne() {
- return $(this).parents('.field:eq(0)').find('li').filter(function (i) {
- var klass = $(this).attr('class');
- return klass ? klass.match(/CMS_ACCESS_/) : false;
- }).find('.checkbox').not(this);
- },
- onmatch: function onmatch() {
- this.toggleCheckboxes();
-
- this._super();
- },
- onunmatch: function onunmatch() {
- this._super();
- },
- onclick: function onclick(e) {
- this.toggleCheckboxes();
- },
- toggleCheckboxes: function toggleCheckboxes() {
- var checkboxes = this.getCheckboxesExceptThisOne();
- if ($(this).is(':checked')) {
- checkboxes.each(function () {
- $(this).data('PermissionCheckboxSetField.oldChecked', $(this).is(':checked'));
- $(this).data('PermissionCheckboxSetField.oldDisabled', $(this).is(':disabled'));
- $(this).prop('disabled', 'disabled');
- $(this).prop('checked', 'checked');
- });
- } else {
- checkboxes.each(function () {
- $(this).prop('checked', $(this).data('PermissionCheckboxSetField.oldChecked'));
- $(this).prop('disabled', $(this).data('PermissionCheckboxSetField.oldDisabled'));
- });
- }
- }
- });
- });
-});
\ No newline at end of file
diff --git a/client/dist/js/SelectionGroup.js b/client/dist/js/SelectionGroup.js
deleted file mode 100644
index b30e3c2f0..000000000
--- a/client/dist/js/SelectionGroup.js
+++ /dev/null
@@ -1,41 +0,0 @@
-(function (global, factory) {
- if (typeof define === "function" && define.amd) {
- define('ss.SelectionGroup', ['jQuery'], factory);
- } else if (typeof exports !== "undefined") {
- factory(require('jQuery'));
- } else {
- var mod = {
- exports: {}
- };
- factory(global.jQuery);
- global.ssSelectionGroup = mod.exports;
- }
-})(this, function (_jQuery) {
- 'use strict';
-
- var _jQuery2 = _interopRequireDefault(_jQuery);
-
- function _interopRequireDefault(obj) {
- return obj && obj.__esModule ? obj : {
- default: obj
- };
- }
-
- (0, _jQuery2.default)(document).ready(function () {
- (0, _jQuery2.default)('ul.SelectionGroup input.selector, ul.selection-group input.selector').live('click', function () {
- var li = (0, _jQuery2.default)(this).closest('li');
- li.addClass('selected');
-
- var prev = li.prevAll('li.selected');
- if (prev.length) {
- prev.removeClass('selected');
- }
- var next = li.nextAll('li.selected');
- if (next.length) {
- next.removeClass('selected');
- }
-
- (0, _jQuery2.default)(this).focus();
- });
- });
-});
\ No newline at end of file
diff --git a/client/dist/js/TabSet.js b/client/dist/js/TabSet.js
deleted file mode 100644
index 64c502e01..000000000
--- a/client/dist/js/TabSet.js
+++ /dev/null
@@ -1,89 +0,0 @@
-(function (global, factory) {
- if (typeof define === "function" && define.amd) {
- define('ss.TabSet', ['jQuery'], factory);
- } else if (typeof exports !== "undefined") {
- factory(require('jQuery'));
- } else {
- var mod = {
- exports: {}
- };
- factory(global.jQuery);
- global.ssTabSet = mod.exports;
- }
-})(this, function (_jQuery) {
- 'use strict';
-
- var _jQuery2 = _interopRequireDefault(_jQuery);
-
- function _interopRequireDefault(obj) {
- return obj && obj.__esModule ? obj : {
- default: obj
- };
- }
-
- _jQuery2.default.entwine('ss', function ($) {
- $('.ss-tabset').entwine({
- IgnoreTabState: false,
-
- onadd: function onadd() {
- var hash = window.location.hash;
-
- this.redrawTabs();
-
- if (hash !== '') {
- this.openTabFromURL(hash);
- }
-
- this._super();
- },
-
- onremove: function onremove() {
- if (this.data('tabs')) this.tabs('destroy');
- this._super();
- },
-
- redrawTabs: function redrawTabs() {
- this.rewriteHashlinks();
- this.tabs();
- },
-
- openTabFromURL: function openTabFromURL(hash) {
- var $trigger;
-
- $.each(this.find('.cms-panel-link'), function () {
- if (this.href.indexOf(hash) !== -1 && $(hash).length === 1) {
- $trigger = $(this);
- return false;
- }
- });
-
- if ($trigger === void 0) {
- return;
- }
-
- $(window).one('ajaxComplete', function () {
- $trigger.click();
- });
- },
-
- rewriteHashlinks: function rewriteHashlinks() {
- $(this).find('ul a').each(function () {
- if (!$(this).attr('href')) return;
-
- var matches = $(this).attr('href').match(/#.*/);
- if (!matches) return;
- $(this).attr('href', document.location.href.replace(/#.*/, '') + matches[0]);
- });
- }
- });
-
- $('.ui-tabs-active .ui-tabs-anchor').entwine({
- onmatch: function onmatch() {
- this.addClass('nav-link active');
- },
- onunmatch: function onunmatch() {
- this.removeClass('active');
- }
- });
- });
-});
\ No newline at end of file
diff --git a/client/dist/js/ToggleCompositeField.js b/client/dist/js/ToggleCompositeField.js
deleted file mode 100644
index f9fd7f065..000000000
--- a/client/dist/js/ToggleCompositeField.js
+++ /dev/null
@@ -1,51 +0,0 @@
-(function (global, factory) {
- if (typeof define === "function" && define.amd) {
- define('ss.ToggleCompositeField', ['jQuery'], factory);
- } else if (typeof exports !== "undefined") {
- factory(require('jQuery'));
- } else {
- var mod = {
- exports: {}
- };
- factory(global.jQuery);
- global.ssToggleCompositeField = mod.exports;
- }
-})(this, function (_jQuery) {
- 'use strict';
-
- var _jQuery2 = _interopRequireDefault(_jQuery);
-
- function _interopRequireDefault(obj) {
- return obj && obj.__esModule ? obj : {
- default: obj
- };
- }
-
- _jQuery2.default.entwine('ss', function ($) {
- $('.ss-toggle').entwine({
- onadd: function onadd() {
- this._super();
-
- this.accordion({
- heightStyle: "content",
- collapsible: true,
- active: this.hasClass("ss-toggle-start-closed") ? false : 0
- });
- },
- onremove: function onremove() {
- if (this.data('accordion')) this.accordion('destroy');
- this._super();
- },
-
- getTabSet: function getTabSet() {
- return this.closest(".ss-tabset");
- },
-
- fromTabSet: {
- ontabsshow: function ontabsshow() {
- this.accordion("resize");
- }
- }
- });
- });
-});
\ No newline at end of file
diff --git a/client/dist/js/ToggleField.js b/client/dist/js/ToggleField.js
deleted file mode 100644
index be1d59335..000000000
--- a/client/dist/js/ToggleField.js
+++ /dev/null
@@ -1,35 +0,0 @@
-(function (global, factory) {
- if (typeof define === "function" && define.amd) {
- define('ss.ToggleField', ['jQuery'], factory);
- } else if (typeof exports !== "undefined") {
- factory(require('jQuery'));
- } else {
- var mod = {
- exports: {}
- };
- factory(global.jQuery);
- global.ssToggleField = mod.exports;
- }
-})(this, function (_jQuery) {
- 'use strict';
-
- var _jQuery2 = _interopRequireDefault(_jQuery);
-
- function _interopRequireDefault(obj) {
- return obj && obj.__esModule ? obj : {
- default: obj
- };
- }
-
- var field = (0, _jQuery2.default)('div.toggleField');
-
- if (field.hasClass('startClosed')) {
- field.find('div.contentMore').hide();
- field.find('div.contentLess').show();
- }
-
- (0, _jQuery2.default)('div.toggleField .triggerLess, div.toggleField .triggerMore').click(function () {
- field.find('div.contentMore').toggle();
- field.find('div.contentLess').toggle();
- });
-});
\ No newline at end of file
diff --git a/client/dist/js/TreeDropdownField.js b/client/dist/js/TreeDropdownField.js
deleted file mode 100644
index c317ec179..000000000
--- a/client/dist/js/TreeDropdownField.js
+++ /dev/null
@@ -1,414 +0,0 @@
-(function (global, factory) {
- if (typeof define === "function" && define.amd) {
- define('ss.TreeDropdownField', ['jQuery', 'i18n'], factory);
- } else if (typeof exports !== "undefined") {
- factory(require('jQuery'), require('i18n'));
- } else {
- var mod = {
- exports: {}
- };
- factory(global.jQuery, global.i18n);
- global.ssTreeDropdownField = mod.exports;
- }
-})(this, function (_jQuery, _i18n) {
- 'use strict';
-
- var _jQuery2 = _interopRequireDefault(_jQuery);
-
- var _i18n2 = _interopRequireDefault(_i18n);
-
- function _interopRequireDefault(obj) {
- return obj && obj.__esModule ? obj : {
- default: obj
- };
- }
-
- _jQuery2.default.entwine('ss', function ($) {
- var windowWidth, windowHeight;
- $(window).bind('resize.treedropdownfield', function () {
- var cb = function cb() {
- $('.TreeDropdownField').closePanel();
- };
-
- if ($.browser.msie && parseInt($.browser.version, 10) < 9) {
- var newWindowWidth = $(window).width(),
- newWindowHeight = $(window).height();
- if (newWindowWidth != windowWidth || newWindowHeight != windowHeight) {
- windowWidth = newWindowWidth;
- windowHeight = newWindowHeight;
- cb();
- }
- } else {
- cb();
- }
- });
-
- var strings = {
- 'openlink': _i18n2.default._t('TreeDropdownField.OpenLink'),
- 'fieldTitle': '(' + _i18n2.default._t('TreeDropdownField.FieldTitle') + ')',
- 'searchFieldTitle': '(' + _i18n2.default._t('TreeDropdownField.SearchFieldTitle') + ')'
- };
-
- var _clickTestFn = function _clickTestFn(e) {
- if (!$(e.target).parents('.TreeDropdownField').length) $('.TreeDropdownField').closePanel();
- };
-
- $('.TreeDropdownField').entwine({
- CurrentXhr: null,
-
- onadd: function onadd() {
- this.append('' + '
' + '');
-
- var linkTitle = strings.openLink;
- if (linkTitle) this.find("treedropdownfield-toggle-panel-link a").attr('title', linkTitle);
- if (this.data('title')) this.setTitle(this.data('title'));
-
- this.getPanel().hide();
- this._super();
- },
- getPanel: function getPanel() {
- return this.find('.treedropdownfield-panel');
- },
- openPanel: function openPanel() {
- $('.TreeDropdownField').closePanel();
-
- $('body').bind('click', _clickTestFn);
-
- var panel = this.getPanel(),
- tree = this.find('.tree-holder');
-
- panel.css('width', this.width());
-
- panel.show();
-
- var toggle = this.find(".treedropdownfield-toggle-panel-link");
- toggle.addClass('treedropdownfield-open-tree');
- this.addClass("treedropdownfield-open-tree");
-
- toggle.find("a").removeClass('ui-icon-triangle-1-s').addClass('ui-icon-triangle-1-n');
-
- if (tree.is(':empty') && !panel.hasClass('loading')) {
- this.loadTree(null, this._riseUp);
- } else {
- this._riseUp();
- }
-
- this.trigger('panelshow');
- },
- _riseUp: function _riseUp() {
- var container = this,
- dropdown = this.getPanel(),
- toggle = this.find(".treedropdownfield-toggle-panel-link"),
- offsetTop = toggle.innerHeight(),
- elHeight,
- elPos,
- endOfWindow;
-
- if (toggle.length > 0) {
- endOfWindow = $(window).height() + $(document).scrollTop() - toggle.innerHeight();
- elPos = toggle.offset().top;
- elHeight = dropdown.innerHeight();
-
- if (elPos + elHeight > endOfWindow && elPos - elHeight > 0) {
- container.addClass('treedropdownfield-with-rise');
- offsetTop = -dropdown.outerHeight();
- } else {
- container.removeClass('treedropdownfield-with-rise');
- }
- }
- dropdown.css({ "top": offsetTop + "px" });
- },
- closePanel: function closePanel() {
- jQuery('body').unbind('click', _clickTestFn);
-
- var toggle = this.find(".treedropdownfield-toggle-panel-link");
- toggle.removeClass('treedropdownfield-open-tree');
- this.removeClass('treedropdownfield-open-tree treedropdownfield-with-rise');
-
- toggle.find("a").removeClass('ui-icon-triangle-1-n').addClass('ui-icon-triangle-1-s');
-
- this.getPanel().hide();
- this.trigger('panelhide');
- },
- togglePanel: function togglePanel() {
- this[this.getPanel().is(':visible') ? 'closePanel' : 'openPanel']();
- },
- setTitle: function setTitle(title) {
- title = title || this.data('title') || strings.fieldTitle;
-
- this.find('.treedropdownfield-title').html(title);
- this.data('title', title);
- },
- getTitle: function getTitle() {
- return this.find('.treedropdownfield-title').text();
- },
-
- updateTitle: function updateTitle() {
- var self = this,
- tree = self.find('.tree-holder'),
- val = this.getValue();
- var updateFn = function updateFn() {
- var val = self.getValue();
- if (val) {
-
- var node = tree.find('*[data-id="' + val + '"]'),
- title = node.children('a').find("span.jstree_pageicon") ? node.children('a').find("span.item").html() : null;
- if (!title) title = node.length > 0 ? tree.jstree('get_text', node[0]) : null;
-
- if (title) {
- self.setTitle(title);
- self.data('title', title);
- }
- if (node) tree.jstree('select_node', node);
- } else {
- self.setTitle(self.data('empty-title'));
- self.removeData('title');
- }
- };
-
- if (!tree.is(':empty') || !val) updateFn();else this.loadTree({ forceValue: val }, updateFn);
- },
- setValue: function setValue(val) {
- this.data('metadata', $.extend(this.data('metadata'), { id: val }));
- this.find(':input:hidden').val(val).trigger('valueupdated').trigger('change');
- },
- getValue: function getValue() {
- return this.find(':input:hidden').val();
- },
- loadTree: function loadTree(params, callback) {
- var self = this,
- panel = this.getPanel(),
- treeHolder = $(panel).find('.tree-holder'),
- params = params ? $.extend({}, this.getRequestParams(), params) : this.getRequestParams(),
- xhr;
-
- if (this.getCurrentXhr()) this.getCurrentXhr().abort();
- panel.addClass('loading');
- xhr = $.ajax({
- url: this.data('urlTree'),
- data: params,
- complete: function complete(xhr, status) {
- panel.removeClass('loading');
- },
- success: function success(html, status, xhr) {
- treeHolder.html(html);
- var firstLoad = true;
- treeHolder.jstree('destroy').bind('loaded.jstree', function (e, data) {
- var val = self.getValue(),
- selectNode = treeHolder.find('*[data-id="' + val + '"]'),
- currentNode = data.inst.get_selected();
- if (val && selectNode != currentNode) data.inst.select_node(selectNode);
- firstLoad = false;
- if (callback) callback.apply(self);
- }).jstree(self.getTreeConfig()).bind('select_node.jstree', function (e, data) {
- var node = data.rslt.obj,
- id = $(node).data('id');
- if (!firstLoad && self.getValue() == id) {
- self.data('metadata', null);
- self.setTitle(null);
- self.setValue(null);
- data.inst.deselect_node(node);
- } else {
- self.data('metadata', $.extend({ id: id }, $(node).getMetaData()));
- self.setTitle(data.inst.get_text(node));
- self.setValue(id);
- }
-
- if (!firstLoad) self.closePanel();
- firstLoad = false;
- });
-
- self.setCurrentXhr(null);
- }
- });
- this.setCurrentXhr(xhr);
- },
- getTreeConfig: function getTreeConfig() {
- var self = this;
- return {
- 'core': {
- 'html_titles': true,
-
- 'animation': 0
- },
- 'html_data': {
- 'data': this.getPanel().find('.tree-holder').html(),
- 'ajax': {
- 'url': function url(node) {
- var url = $.path.parseUrl(self.data('urlTree')).hrefNoSearch;
- return url + '/' + ($(node).data("id") ? $(node).data("id") : 0);
- },
- 'data': function data(node) {
- var query = $.query.load(self.data('urlTree')).keys;
- var params = self.getRequestParams();
- params = $.extend({}, query, params, { ajax: 1 });
- return params;
- }
- }
- },
- 'ui': {
- "select_limit": 1,
- 'initially_select': [this.getPanel().find('.current').attr('id')]
- },
- 'themes': {
- 'theme': 'apple'
- },
- 'types': {
- 'types': {
- 'default': {
- 'check_node': function check_node(node) {
- return !node.hasClass('disabled');
- },
- 'uncheck_node': function uncheck_node(node) {
- return !node.hasClass('disabled');
- },
- 'select_node': function select_node(node) {
- return !node.hasClass('disabled');
- },
- 'deselect_node': function deselect_node(node) {
- return !node.hasClass('disabled');
- }
- }
- }
- },
- 'plugins': ['html_data', 'ui', 'themes', 'types']
- };
- },
-
- getRequestParams: function getRequestParams() {
- return {};
- }
- });
-
- $('.TreeDropdownField .tree-holder li').entwine({
- getMetaData: function getMetaData() {
- var matches = this.attr('class').match(/class-([^\s]*)/i);
- var klass = matches ? matches[1] : '';
- return { ClassName: klass };
- }
- });
-
- $('.TreeDropdownField *').entwine({
- getField: function getField() {
- return this.parents('.TreeDropdownField:first');
- }
- });
-
- $('.TreeDropdownField').entwine({
- onclick: function onclick(e) {
- this.togglePanel();
-
- return false;
- }
- });
-
- $('.TreeDropdownField .treedropdownfield-panel').entwine({
- onclick: function onclick(e) {
- return false;
- }
- });
-
- $('.TreeDropdownField.searchable').entwine({
- onadd: function onadd() {
- this._super();
- var title = _i18n2.default._t('TreeDropdownField.ENTERTOSEARCH');
- this.find('.treedropdownfield-panel').prepend($(''));
- },
- search: function search(str, callback) {
- this.openPanel();
- this.loadTree({ search: str }, callback);
- },
- cancelSearch: function cancelSearch() {
- this.closePanel();
- this.loadTree();
- }
- });
-
- $('.TreeDropdownField.searchable input.search').entwine({
- onkeydown: function onkeydown(e) {
- var field = this.getField();
- if (e.keyCode == 13) {
- field.search(this.val());
- return false;
- } else if (e.keyCode == 27) {
- field.cancelSearch();
- }
- }
- });
-
- $('.TreeDropdownField.multiple').entwine({
- getTreeConfig: function getTreeConfig() {
- var cfg = this._super();
- cfg.checkbox = { override_ui: true, two_state: true };
- cfg.plugins.push('checkbox');
- cfg.ui.select_limit = -1;
- return cfg;
- },
- loadTree: function loadTree(params, callback) {
- var self = this,
- panel = this.getPanel(),
- treeHolder = $(panel).find('.tree-holder');
- var params = params ? $.extend({}, this.getRequestParams(), params) : this.getRequestParams(),
- xhr;
-
- if (this.getCurrentXhr()) this.getCurrentXhr().abort();
- panel.addClass('loading');
- xhr = $.ajax({
- url: this.data('urlTree'),
- data: params,
- complete: function complete(xhr, status) {
- panel.removeClass('loading');
- },
- success: function success(html, status, xhr) {
- treeHolder.html(html);
- var firstLoad = true;
- self.setCurrentXhr(null);
- treeHolder.jstree('destroy').bind('loaded.jstree', function (e, data) {
- $.each(self.getValue(), function (i, val) {
- data.inst.check_node(treeHolder.find('*[data-id=' + val + ']'));
- });
- firstLoad = false;
- if (callback) callback.apply(self);
- }).jstree(self.getTreeConfig()).bind('uncheck_node.jstree check_node.jstree', function (e, data) {
- var nodes = data.inst.get_checked(null, true);
- self.setValue($.map(nodes, function (el, i) {
- return $(el).data('id');
- }));
- self.setTitle($.map(nodes, function (el, i) {
- return data.inst.get_text(el);
- }));
- self.data('metadata', $.map(nodes, function (el, i) {
- return { id: $(el).data('id'), metadata: $(el).getMetaData() };
- }));
- });
- }
- });
- this.setCurrentXhr(xhr);
- },
- getValue: function getValue() {
- var val = this._super();
- return val.split(/ *, */);
- },
- setValue: function setValue(val) {
- this._super($.isArray(val) ? val.join(',') : val);
- },
- setTitle: function setTitle(title) {
- this._super($.isArray(title) ? title.join(', ') : title);
- },
- updateTitle: function updateTitle() {}
- });
-
- $('.TreeDropdownField input[type=hidden]').entwine({
- onadd: function onadd() {
- this._super();
- this.bind('change.TreeDropdownField', function () {
- $(this).getField().updateTitle();
- });
- },
- onremove: function onremove() {
- this._super();
- this.unbind('.TreeDropdownField');
- }
- });
- });
-});
\ No newline at end of file
diff --git a/client/dist/js/UploadField.js b/client/dist/js/UploadField.js
deleted file mode 100644
index 4a719409f..000000000
--- a/client/dist/js/UploadField.js
+++ /dev/null
@@ -1,541 +0,0 @@
-(function (global, factory) {
- if (typeof define === "function" && define.amd) {
- define('ss.UploadField', ['jQuery', 'i18n'], factory);
- } else if (typeof exports !== "undefined") {
- factory(require('jQuery'), require('i18n'));
- } else {
- var mod = {
- exports: {}
- };
- factory(global.jQuery, global.i18n);
- global.ssUploadField = mod.exports;
- }
-})(this, function (_jQuery, _i18n) {
- 'use strict';
-
- var _jQuery2 = _interopRequireDefault(_jQuery);
-
- var _i18n2 = _interopRequireDefault(_i18n);
-
- function _interopRequireDefault(obj) {
- return obj && obj.__esModule ? obj : {
- default: obj
- };
- }
-
- _jQuery2.default.widget('blueimpUIX.fileupload', _jQuery2.default.blueimpUI.fileupload, {
- _initTemplates: function _initTemplates() {
- this.options.templateContainer = document.createElement(this._files.prop('nodeName'));
- this.options.uploadTemplate = window.tmpl(this.options.uploadTemplateName);
- this.options.downloadTemplate = window.tmpl(this.options.downloadTemplateName);
- },
- _enableFileInputButton: function _enableFileInputButton() {
- _jQuery2.default.blueimpUI.fileupload.prototype._enableFileInputButton.call(this);
- this.element.find('.ss-uploadfield-addfile').show();
- },
- _disableFileInputButton: function _disableFileInputButton() {
- _jQuery2.default.blueimpUI.fileupload.prototype._disableFileInputButton.call(this);
- this.element.find('.ss-uploadfield-addfile').hide();
- },
- _onAdd: function _onAdd(e, data) {
- var result = _jQuery2.default.blueimpUI.fileupload.prototype._onAdd.call(this, e, data);
- var firstNewFile = this._files.find('.ss-uploadfield-item').slice(data.files.length * -1).first();
- var top = '+=' + (firstNewFile.position().top - parseInt(firstNewFile.css('marginTop'), 10) || 0 - parseInt(firstNewFile.css('borderTopWidth'), 10) || 0);
- firstNewFile.offsetParent().animate({ scrollTop: top }, 1000);
-
- var fSize = 0;
- for (var i = 0; i < data.files.length; i++) {
- if (typeof data.files[i].size === 'number') {
- fSize = fSize + data.files[i].size;
- }
- }
-
- (0, _jQuery2.default)('.fileOverview .uploadStatus .details .total').text(data.files.length);
- if (typeof fSize === 'number' && fSize > 0) {
- fSize = this._formatFileSize(fSize);
- (0, _jQuery2.default)('.fileOverview .uploadStatus .details .fileSize').text(fSize);
- }
-
- if (data.files.length == 1 && data.files[0].error !== null) {
- (0, _jQuery2.default)('.fileOverview .uploadStatus .state').text(_i18n2.default._t('AssetUploadField.UploadField.UPLOADFAIL', 'Sorry your upload failed'));
- (0, _jQuery2.default)('.fileOverview .uploadStatus').addClass("bad").removeClass("good").removeClass("notice");
- } else {
- (0, _jQuery2.default)('.fileOverview .uploadStatus .state').text(_i18n2.default._t('AssetUploadField.UPLOADINPROGRESS', 'Please wait… upload in progress'));
- (0, _jQuery2.default)('.ss-uploadfield-item-edit-all').hide();
- (0, _jQuery2.default)('.fileOverview .uploadStatus').addClass("notice").removeClass("good").removeClass("bad");
- }
-
- return result;
- },
- _onDone: function _onDone(result, textStatus, jqXHR, options) {
- if (this.options.changeDetection) {
- this.element.closest('form').trigger('dirty');
- }
-
- _jQuery2.default.blueimpUI.fileupload.prototype._onDone.call(this, result, textStatus, jqXHR, options);
- },
- _onSend: function _onSend(e, data) {
- var that = this;
- var config = this.options;
- if (config.overwriteWarning && config.replaceFile) {
- _jQuery2.default.get(config['urlFileExists'], { 'filename': data.files[0].name }, function (response, status, xhr) {
- if (response.exists) {
- data.context.find('.ss-uploadfield-item-status').text(config.errorMessages.overwriteWarning).addClass('ui-state-warning-text');
- data.context.find('.ss-uploadfield-item-progress').hide();
- data.context.find('.ss-uploadfield-item-overwrite').show();
- data.context.find('.ss-uploadfield-item-overwrite-warning').on('click', function (e) {
- data.context.find('.ss-uploadfield-item-progress').show();
- data.context.find('.ss-uploadfield-item-overwrite').hide();
- data.context.find('.ss-uploadfield-item-status').removeClass('ui-state-warning-text');
-
- _jQuery2.default.blueimpUI.fileupload.prototype._onSend.call(that, e, data);
-
- e.preventDefault();
- return false;
- });
- } else {
- return _jQuery2.default.blueimpUI.fileupload.prototype._onSend.call(that, e, data);
- }
- });
- } else {
- return _jQuery2.default.blueimpUI.fileupload.prototype._onSend.call(that, e, data);
- }
- },
- _onAlways: function _onAlways(jqXHRorResult, textStatus, jqXHRorError, options) {
- _jQuery2.default.blueimpUI.fileupload.prototype._onAlways.call(this, jqXHRorResult, textStatus, jqXHRorError, options);
-
- if (typeof jqXHRorError === 'string') {
- (0, _jQuery2.default)('.fileOverview .uploadStatus .state').text(_i18n2.default._t('AssetUploadField.UploadField.UPLOADFAIL', 'Sorry your upload failed'));
- (0, _jQuery2.default)('.fileOverview .uploadStatus').addClass("bad").removeClass("good").removeClass("notice");
- } else if (jqXHRorError.status === 200) {
- (0, _jQuery2.default)('.fileOverview .uploadStatus .state').text(_i18n2.default._t('AssetUploadField.FILEUPLOADCOMPLETED', 'File upload completed!'));
- (0, _jQuery2.default)('.ss-uploadfield-item-edit-all').show();
- (0, _jQuery2.default)('.fileOverview .uploadStatus').addClass("good").removeClass("notice").removeClass("bad");
- }
- },
- _create: function _create() {
- _jQuery2.default.blueimpUI.fileupload.prototype._create.call(this);
-
- this._adjustMaxNumberOfFiles(0);
- },
- attach: function attach(data) {
- if (this.options.changeDetection) {
- this.element.closest('form').trigger('dirty');
- }
-
- var self = this,
- files = data.files,
- replaceFileID = data.replaceFileID,
- valid = true;
-
- var replacedElement = null;
- if (replaceFileID) {
- replacedElement = (0, _jQuery2.default)(".ss-uploadfield-item[data-fileid='" + replaceFileID + "']");
- if (replacedElement.length === 0) {
- replacedElement = null;
- } else {
- self._adjustMaxNumberOfFiles(1);
- }
- }
-
- _jQuery2.default.each(files, function (index, file) {
- self._adjustMaxNumberOfFiles(-1);
- valid = self._validate([file]) && valid;
- });
- data.isAdjusted = true;
- data.files.valid = data.isValidated = valid;
-
- data.context = this._renderDownload(files);
- if (replacedElement) {
- replacedElement.replaceWith(data.context);
- } else {
- data.context.appendTo(this._files);
- }
- data.context.data('data', data);
-
- this._reflow = this._transition && data.context[0].offsetWidth;
- data.context.addClass('in');
- }
- });
-
- _jQuery2.default.entwine('ss', function ($) {
-
- $('div.ss-upload').entwine({
-
- Config: null,
-
- onmatch: function onmatch() {
-
- if (this.is('.readonly,.disabled')) {
- return;
- }
-
- var $fileInput = this.find('.ss-uploadfield-fromcomputer-fileinput'),
- $dropZone = $('.ss-uploadfield-dropzone'),
- config = $fileInput.data('config');
-
- $dropZone.on('dragover', function (e) {
- e.preventDefault();
- });
-
- $dropZone.on('dragenter', function (e) {
- $dropZone.addClass('hover active');
- });
-
- $dropZone.on('dragleave', function (e) {
- if (e.target === $dropZone[0]) {
- $dropZone.removeClass('hover active');
- }
- });
-
- $dropZone.on('drop', function (e) {
- $dropZone.removeClass('hover active');
-
- if (e.target !== $dropZone[0]) {
- return false;
- }
- });
-
- this.setConfig(config);
- this.fileupload($.extend(true, {
- formData: function formData(form) {
- var idVal = $(form).find(':input[name=ID]').val();
- var data = [{ name: 'SecurityID', value: $(form).find(':input[name=SecurityID]').val() }];
- if (idVal) data.push({ name: 'ID', value: idVal });
-
- return data;
- },
- errorMessages: {
- 1: _i18n2.default._t('UploadField.PHP_MAXFILESIZE'),
- 2: _i18n2.default._t('UploadField.HTML_MAXFILESIZE'),
- 3: _i18n2.default._t('UploadField.ONLYPARTIALUPLOADED'),
- 4: _i18n2.default._t('UploadField.NOFILEUPLOADED'),
- 5: _i18n2.default._t('UploadField.NOTMPFOLDER'),
- 6: _i18n2.default._t('UploadField.WRITEFAILED'),
- 7: _i18n2.default._t('UploadField.STOPEDBYEXTENSION'),
- maxFileSize: _i18n2.default._t('UploadField.TOOLARGESHORT'),
- minFileSize: _i18n2.default._t('UploadField.TOOSMALL'),
- acceptFileTypes: _i18n2.default._t('UploadField.INVALIDEXTENSIONSHORT'),
- maxNumberOfFiles: _i18n2.default._t('UploadField.MAXNUMBEROFFILESSHORT'),
- uploadedBytes: _i18n2.default._t('UploadField.UPLOADEDBYTES'),
- emptyResult: _i18n2.default._t('UploadField.EMPTYRESULT')
- },
- send: function send(e, data) {
- if (data.context && data.dataType && data.dataType.substr(0, 6) === 'iframe') {
- data.total = 1;
- data.loaded = 1;
- $(this).data('fileupload').options.progress(e, data);
- }
- },
- progress: function progress(e, data) {
- if (data.context) {
- var value = parseInt(data.loaded / data.total * 100, 10) + '%';
- data.context.find('.ss-uploadfield-item-status').html(data.total == 1 ? _i18n2.default._t('UploadField.LOADING') : value);
- data.context.find('.ss-uploadfield-item-progressbarvalue').css('width', value);
- }
- }
- }, config, {
- fileInput: $fileInput,
- dropZone: $dropZone,
- form: $fileInput.closest('form'),
- previewAsCanvas: false,
- acceptFileTypes: new RegExp(config.acceptFileTypes, 'i')
- }));
-
- if (this.data('fileupload')._isXHRUpload({ multipart: true })) {
- $('.ss-uploadfield-item-uploador').hide().show();
- }
-
- this._super();
- },
- onunmatch: function onunmatch() {
- $('.ss-uploadfield-dropzone').off('dragover dragenter dragleave drop');
- this._super();
- },
- openSelectDialog: function openSelectDialog(uploadedFile) {
- var self = this,
- config = this.getConfig(),
- dialogId = 'ss-uploadfield-dialog-' + this.attr('id'),
- dialog = jQuery('#' + dialogId);
- if (!dialog.length) dialog = jQuery('');
-
- var iframeUrl = config['urlSelectDialog'];
- var uploadedFileId = null;
- if (uploadedFile && uploadedFile.attr('data-fileid') > 0) {
- uploadedFileId = uploadedFile.attr('data-fileid');
- }
-
- dialog.ssdialog({ iframeUrl: iframeUrl, height: 550 });
-
- dialog.find('iframe').bind('load', function (e) {
- var contents = $(this).contents(),
- gridField = contents.find('.grid-field');
-
- contents.find('table.grid-field').css('margin-top', 0);
-
- contents.find('input[name=action_doAttach]').unbind('click.openSelectDialog').bind('click.openSelectDialog', function () {
- var ids = $.map(gridField.find('.ss-gridfield-item.ui-selected'), function (el) {
- return $(el).data('id');
- });
- if (ids && ids.length) self.attachFiles(ids, uploadedFileId);
-
- dialog.ssdialog('close');
- return false;
- });
- });
- dialog.ssdialog('open');
- },
- attachFiles: function attachFiles(ids, uploadedFileId) {
- var self = this,
- config = this.getConfig(),
- indicator = $(''),
- target = uploadedFileId ? this.find(".ss-uploadfield-item[data-fileid='" + uploadedFileId + "']") : this.find('.ss-uploadfield-addfile');
-
- target.children().hide();
- target.append(indicator);
-
- $.ajax({
- type: "POST",
- url: config['urlAttach'],
- data: { 'ids': ids },
- complete: function complete(xhr, status) {
- target.children().show();
- indicator.remove();
- },
- success: function success(data, status, xhr) {
- if (!data || $.isEmptyObject(data)) return;
-
- self.fileupload('attach', {
- files: data,
- options: self.fileupload('option'),
- replaceFileID: uploadedFileId
- });
- }
- });
- }
- });
- $('div.ss-upload *').entwine({
- getUploadField: function getUploadField() {
-
- return this.parents('div.ss-upload:first');
- }
- });
- $('div.ss-upload .ss-uploadfield-files .ss-uploadfield-item').entwine({
- onadd: function onadd() {
- this._super();
- this.closest('.ss-upload').find('.ss-uploadfield-addfile').addClass('borderTop');
- },
- onremove: function onremove() {
- $('.ss-uploadfield-files:not(:has(.ss-uploadfield-item))').closest('.ss-upload').find('.ss-uploadfield-addfile').removeClass('borderTop');
- this._super();
- }
- });
- $('div.ss-upload .ss-uploadfield-startall').entwine({
- onclick: function onclick(e) {
- this.closest('.ss-upload').find('.ss-uploadfield-item-start button').click();
- e.preventDefault();
- return false;
- }
- });
- $('div.ss-upload .ss-uploadfield-item-cancelfailed').entwine({
- onclick: function onclick(e) {
- this.closest('.ss-uploadfield-item').remove();
- e.preventDefault();
- return false;
- }
- });
-
- $('div.ss-upload .ss-uploadfield-item-remove:not(.ui-state-disabled), .ss-uploadfield-item-delete:not(.ui-state-disabled)').entwine({
- onclick: function onclick(e) {
- var field = this.closest('div.ss-upload'),
- config = field.getConfig('changeDetection'),
- fileupload = field.data('fileupload'),
- item = this.closest('.ss-uploadfield-item'),
- msg = '';
-
- if (this.is('.ss-uploadfield-item-delete')) {
- if (confirm(_i18n2.default._t('UploadField.ConfirmDelete'))) {
- if (config.changeDetection) {
- this.closest('form').trigger('dirty');
- }
-
- if (fileupload) {
- fileupload._trigger('destroy', e, {
- context: item,
- url: this.data('href'),
- type: 'get',
- dataType: fileupload.options.dataType
- });
- }
- }
- } else {
- if (config.changeDetection) {
- this.closest('form').trigger('dirty');
- }
-
- if (fileupload) {
- fileupload._trigger('destroy', e, { context: item });
- }
- }
-
- e.preventDefault();
- return false;
- }
- });
-
- $('div.ss-upload .ss-uploadfield-item-edit-all').entwine({
- onclick: function onclick(e) {
-
- if ($(this).hasClass('opened')) {
- $('.ss-uploadfield-item .ss-uploadfield-item-edit .toggle-details-icon.opened').each(function (i) {
- $(this).closest('.ss-uploadfield-item-edit').click();
- });
- $(this).removeClass('opened').find('.toggle-details-icon').removeClass('opened');
- } else {
- $('.ss-uploadfield-item .ss-uploadfield-item-edit .toggle-details-icon').each(function (i) {
- if (!$(this).hasClass('opened')) {
- $(this).closest('.ss-uploadfield-item-edit').click();
- }
- });
- $(this).addClass('opened').find('.toggle-details-icon').addClass('opened');
- }
-
- e.preventDefault();
- return false;
- }
- });
- $('div.ss-upload:not(.disabled):not(.readonly) .ss-uploadfield-item-edit').entwine({
- onclick: function onclick(e) {
- var self = this,
- editform = self.closest('.ss-uploadfield-item').find('.ss-uploadfield-item-editform'),
- itemInfo = editform.prev('.ss-uploadfield-item-info'),
- iframe = editform.find('iframe');
-
- if (iframe.parent().hasClass('loading')) {
- e.preventDefault();
- return false;
- }
-
- if (iframe.attr('src') == 'about:blank') {
- var disabled = this.siblings();
-
- iframe.attr('src', iframe.data('src'));
-
- iframe.parent().addClass('loading');
- disabled.addClass('ui-state-disabled');
- disabled.attr('disabled', 'disabled');
-
- iframe.on('load', function () {
- iframe.parent().removeClass('loading');
-
- if (iframe.data('src')) {
- self._prepareIframe(iframe, editform, itemInfo);
- iframe.data('src', '');
- }
- });
- } else {
- self._prepareIframe(iframe, editform, itemInfo);
- }
-
- e.preventDefault();
- return false;
- },
- _prepareIframe: function _prepareIframe(iframe, editform, itemInfo) {
- var disabled;
-
- iframe.contents().ready(function () {
- var iframe_jQuery = iframe.get(0).contentWindow.jQuery;
- iframe_jQuery(iframe_jQuery.find(':input')).bind('change', function (e) {
- editform.removeClass('edited');
- editform.addClass('edited');
- });
- });
-
- if (editform.hasClass('loading')) {} else {
- if (this.hasClass('ss-uploadfield-item-edit')) {
- disabled = this.siblings();
- } else {
- disabled = this.find('ss-uploadfield-item-edit').siblings();
- }
- editform.parent('.ss-uploadfield-item').removeClass('ui-state-warning');
- editform.toggleEditForm();
-
- if (itemInfo.find('.toggle-details-icon').hasClass('opened')) {
- disabled.addClass('ui-state-disabled');
- disabled.attr('disabled', 'disabled');
- } else {
- disabled.removeClass('ui-state-disabled');
- disabled.removeAttr('disabled');
- }
- }
- }
- });
-
- $('div.ss-upload .ss-uploadfield-item-editform').entwine({
- fitHeight: function fitHeight() {
- var iframe = this.find('iframe'),
- contents = iframe.contents().find('body'),
- bodyH = contents.find('form').outerHeight(true),
- iframeH = bodyH + (iframe.outerHeight(true) - iframe.height()),
- containerH = iframeH + (this.outerHeight(true) - this.height());
- if (!$.browser.msie && $.browser.version.slice(0, 3) != "8.0") {
- contents.find('body').css({ 'height': bodyH });
- }
-
- iframe.height(iframeH);
- this.animate({ height: containerH }, 500);
- },
- toggleEditForm: function toggleEditForm() {
- var itemInfo = this.prev('.ss-uploadfield-item-info'),
- status = itemInfo.find('.ss-uploadfield-item-status');
-
- var iframe = this.find('iframe').contents(),
- saved = iframe.find('#Form_EditForm_error');
-
- var text = "";
-
- if (this.height() === 0) {
- text = _i18n2.default._t('UploadField.Editing', "Editing ...");
- this.fitHeight();
- this.addClass('opened');
- itemInfo.find('.toggle-details-icon').addClass('opened');
- status.removeClass('ui-state-success-text').removeClass('ui-state-warning-text');
- iframe.find('#Form_EditForm_action_doEdit').click(function () {
- itemInfo.find('label .name').text(iframe.find('#Name input').val());
- });
- if ($('div.ss-upload .ss-uploadfield-files .ss-uploadfield-item-actions .toggle-details-icon:not(.opened)').index() < 0) {
- $('div.ss-upload .ss-uploadfield-item-edit-all').addClass('opened').find('.toggle-details-icon').addClass('opened');
- }
- } else {
- this.animate({ height: 0 }, 500);
- this.removeClass('opened');
- itemInfo.find('.toggle-details-icon').removeClass('opened');
- $('div.ss-upload .ss-uploadfield-item-edit-all').removeClass('opened').find('.toggle-details-icon').removeClass('opened');
- if (!this.hasClass('edited')) {
- text = _i18n2.default._t('UploadField.NOCHANGES', 'No Changes');
- status.addClass('ui-state-success-text');
- } else {
- if (saved.hasClass('good')) {
- text = _i18n2.default._t('UploadField.CHANGESSAVED', 'Changes Saved');
- this.removeClass('edited').parent('.ss-uploadfield-item').removeClass('ui-state-warning');
- status.addClass('ui-state-success-text');
- } else {
- text = _i18n2.default._t('UploadField.UNSAVEDCHANGES', 'Unsaved Changes');
- this.parent('.ss-uploadfield-item').addClass('ui-state-warning');
- status.addClass('ui-state-warning-text');
- }
- }
- saved.removeClass('good').hide();
- }
- status.attr('title', text).text(text);
- }
- });
- $('div.ss-upload .ss-uploadfield-fromfiles').entwine({
- onclick: function onclick(e) {
- this.getUploadField().openSelectDialog(this.closest('.ss-uploadfield-item'));
- e.preventDefault();
- return false;
- }
- });
- });
-});
\ No newline at end of file
diff --git a/client/dist/js/UploadField_downloadtemplate.js b/client/dist/js/UploadField_downloadtemplate.js
deleted file mode 100644
index 3da10b5aa..000000000
--- a/client/dist/js/UploadField_downloadtemplate.js
+++ /dev/null
@@ -1,17 +0,0 @@
-(function (global, factory) {
- if (typeof define === "function" && define.amd) {
- define('ss.UploadField_downloadtemplate', [], factory);
- } else if (typeof exports !== "undefined") {
- factory();
- } else {
- var mod = {
- exports: {}
- };
- factory();
- global.ssUploadField_downloadtemplate = mod.exports;
- }
-})(this, function () {
- 'use strict';
-
- window.tmpl.cache['ss-uploadfield-downloadtemplate'] = tmpl('{% for (var i=0, files=o.files, l=files.length, file=files[0]; i' + '{% if (file.thumbnail_url) { %}' + '' + '' + ' ' + '{% } %}' + '' + '{% if (!file.error && file.id) { %}' + '
' + '{% } %}' + '{% if (!file.error && file.filename) { %}' + '
' + '
' + '
' + '{% } %}' + '
' + '{% if (file.error) { %}' + '
' + '
' + '
' + '{% } else { %}' + '
{% print(file.buttons, true); %}
' + '{% } %}' + '
' + '{% if (!file.error) { %}' + '' + '{% } %}' + '' + '{% } %}');
-});
\ No newline at end of file
diff --git a/client/dist/js/UploadField_select.js b/client/dist/js/UploadField_select.js
deleted file mode 100644
index ee30eea26..000000000
--- a/client/dist/js/UploadField_select.js
+++ /dev/null
@@ -1,41 +0,0 @@
-(function (global, factory) {
- if (typeof define === "function" && define.amd) {
- define('ss.UploadField_select', ['jQuery'], factory);
- } else if (typeof exports !== "undefined") {
- factory(require('jQuery'));
- } else {
- var mod = {
- exports: {}
- };
- factory(global.jQuery);
- global.ssUploadField_select = mod.exports;
- }
-})(this, function (_jQuery) {
- 'use strict';
-
- var _jQuery2 = _interopRequireDefault(_jQuery);
-
- function _interopRequireDefault(obj) {
- return obj && obj.__esModule ? obj : {
- default: obj
- };
- }
-
- _jQuery2.default.entwine('ss', function ($) {
- $('form.uploadfield-form .TreeDropdownField').entwine({
- onmatch: function onmatch() {
- this._super();
-
- var self = this;
- this.bind('change', function () {
- var fileList = self.closest('form').find('.grid-field');
- fileList.setState('ParentID', self.getValue());
- fileList.reload();
- });
- },
- onunmatch: function onunmatch() {
- this._super();
- }
- });
- });
-});
\ No newline at end of file
diff --git a/client/dist/js/UploadField_uploadtemplate.js b/client/dist/js/UploadField_uploadtemplate.js
deleted file mode 100644
index 876b5494f..000000000
--- a/client/dist/js/UploadField_uploadtemplate.js
+++ /dev/null
@@ -1,17 +0,0 @@
-(function (global, factory) {
- if (typeof define === "function" && define.amd) {
- define('ss.UploadField_uploadtemplate', [], factory);
- } else if (typeof exports !== "undefined") {
- factory();
- } else {
- var mod = {
- exports: {}
- };
- factory();
- global.ssUploadField_uploadtemplate = mod.exports;
- }
-})(this, function () {
- 'use strict';
-
- window.tmpl.cache['ss-uploadfield-uploadtemplate'] = tmpl('{% for (var i=0, files=o.files, l=files.length, file=files[0]; i' + '
' + '' + '
' + '
' + '{% if (!file.error) { %}' + '
' + '{% if (!o.options.autoUpload) { %}' + '
' + '{% } %}' + '{% } %}' + '
' + '' + '
' + '
' + '' + '
' + '
' + '
' + '' + '{% } %}');
-});
\ No newline at end of file
diff --git a/client/dist/js/router.js b/client/dist/js/router.js
deleted file mode 100644
index 39ababf96..000000000
--- a/client/dist/js/router.js
+++ /dev/null
@@ -1,66 +0,0 @@
-(function (global, factory) {
- if (typeof define === "function" && define.amd) {
- define('ss.router', ['exports', 'page.js', 'url'], factory);
- } else if (typeof exports !== "undefined") {
- factory(exports, require('page.js'), require('url'));
- } else {
- var mod = {
- exports: {}
- };
- factory(mod.exports, global.page, global.url);
- global.ssRouter = mod.exports;
- }
-})(this, function (exports, _page, _url) {
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
-
- var _page2 = _interopRequireDefault(_page);
-
- var _url2 = _interopRequireDefault(_url);
-
- function _interopRequireDefault(obj) {
- return obj && obj.__esModule ? obj : {
- default: obj
- };
- }
-
- function resolveURLToBase(path) {
- var absoluteBase = this.getAbsoluteBase();
- var absolutePath = _url2.default.resolve(absoluteBase, path);
-
- if (absolutePath.indexOf(absoluteBase) !== 0) {
- return absolutePath;
- }
-
- return absolutePath.substring(absoluteBase.length - 1);
- }
-
- function show(pageShow) {
- return function (path, state, dispatch, push) {
- return pageShow(_page2.default.resolveURLToBase(path), state, dispatch, push);
- };
- }
-
- function routeAppliesToCurrentLocation(route) {
- var r = new _page2.default.Route(route);
- return r.match(_page2.default.current, {});
- }
-
- function getAbsoluteBase() {
- var baseTags = window.document.getElementsByTagName('base');
- if (baseTags && baseTags[0]) {
- return baseTags[0].href;
- }
- return null;
- }
-
- _page2.default.getAbsoluteBase = getAbsoluteBase.bind(_page2.default);
- _page2.default.resolveURLToBase = resolveURLToBase.bind(_page2.default);
- _page2.default.show = show(_page2.default.show);
- _page2.default.routeAppliesToCurrentLocation = routeAppliesToCurrentLocation;
-
- exports.default = _page2.default;
-});
\ No newline at end of file
diff --git a/client/dist/styles/CheckboxSetField.css b/client/dist/styles/CheckboxSetField.css
deleted file mode 100755
index df6497527..000000000
--- a/client/dist/styles/CheckboxSetField.css
+++ /dev/null
@@ -1,3 +0,0 @@
-#right form .CheckboxSetField ul{margin:0;padding:0}#right form .CheckboxSetField ul li{list-style:none !important;margin:0;padding:0}#right form .CheckboxSetField input{width:auto}
-
-/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxlZ2FjeS9DaGVja2JveFNldEZpZWxkLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUNBRUUsU0FDQSxTQUFVLENBSFosb0NBTUUsMkJBQ0EsU0FDQSxTQUFVLENBUlosb0NBV0UsVUFBVyxDQUNYIiwiZmlsZSI6ImxlZ2FjeS9DaGVja2JveFNldEZpZWxkLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIiNyaWdodCBmb3JtIC5DaGVja2JveFNldEZpZWxkIHtcblx0dWx7XG5cdFx0bWFyZ2luOjA7XG5cdFx0cGFkZGluZzowO1xuXHR9XG5cdHVsIGxpe1xuXHRcdGxpc3Qtc3R5bGU6bm9uZSAhaW1wb3J0YW50O1xuXHRcdG1hcmdpbjowO1xuXHRcdHBhZGRpbmc6MDtcblx0fVxuXHRpbnB1dHtcblx0XHR3aWR0aDphdXRvO1xuXHR9XG59XG4iXSwic291cmNlUm9vdCI6Ii9zb3VyY2UvIn0= */
diff --git a/client/dist/styles/ConfirmedPasswordField.css b/client/dist/styles/ConfirmedPasswordField.css
deleted file mode 100755
index 16551b6a2..000000000
--- a/client/dist/styles/ConfirmedPasswordField.css
+++ /dev/null
@@ -1,3 +0,0 @@
-.confirmedpassword .showOnClickContainer{display:none}
-
-/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxlZ2FjeS9Db25maXJtZWRQYXNzd29yZEZpZWxkLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEseUNBRUMsWUFBYSxDQUNiIiwiZmlsZSI6ImxlZ2FjeS9Db25maXJtZWRQYXNzd29yZEZpZWxkLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5jb25maXJtZWRwYXNzd29yZCAuc2hvd09uQ2xpY2tDb250YWluZXIge1xuXHQvKiB1c2VkIHRvIGhpZGUgYSBjb250YWluZXIgYnktZGVmYXVsdCB3aGVuIGxvYWRpbmcgaXQgc28gdGhlcmUgaXMgbm8gXCJmbGFzaFwiIGFzIHRoZSBjb250ZW50IGxvYWRzICovXG5cdGRpc3BsYXk6bm9uZTtcbn1cbiJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ== */
diff --git a/client/dist/styles/DatetimeField.css b/client/dist/styles/DatetimeField.css
deleted file mode 100755
index 9f56a74b0..000000000
--- a/client/dist/styles/DatetimeField.css
+++ /dev/null
@@ -1,3 +0,0 @@
-.datetime .middleColumn .middleColumn{margin:0;padding:0;clear:none;float:left}.datetime .middleColumn .field{margin:0;border-bottom:none;-webkit-box-shadow:none;box-shadow:none}
-
-/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxlZ2FjeS9EYXRldGltZUZpZWxkLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsc0NBQ0MsU0FDQSxVQUNBLFdBQ0EsVUFBWSxDQUNaLCtCQUVBLFNBQ0EsbUJBQ0Esd0JBQUEsQUFBaUIsZUFBQSxDQUNqQiIsImZpbGUiOiJsZWdhY3kvRGF0ZXRpbWVGaWVsZC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuZGF0ZXRpbWUgLm1pZGRsZUNvbHVtbiAubWlkZGxlQ29sdW1uIHtcblx0bWFyZ2luOiAwO1xuXHRwYWRkaW5nOiAwO1xuXHRjbGVhcjogbm9uZTtcblx0ZmxvYXQ6IGxlZnQ7XG59XG4uZGF0ZXRpbWUgLm1pZGRsZUNvbHVtbiAuZmllbGQge1xuXHRtYXJnaW46IDA7XG5cdGJvcmRlci1ib3R0b206IG5vbmU7XG5cdGJveC1zaGFkb3c6IG5vbmU7XG59XG4iXSwic291cmNlUm9vdCI6Ii9zb3VyY2UvIn0= */
diff --git a/client/dist/styles/GridField.css b/client/dist/styles/GridField.css
deleted file mode 100644
index bb0a4a5ed..000000000
--- a/client/dist/styles/GridField.css
+++ /dev/null
@@ -1,3 +0,0 @@
-.grid-field__row--drillable{cursor:pointer}.grid-field__cell--actions{white-space:nowrap;width:1px}.filter-buttons{min-width:68px}.cms .grid-field>.addNewGridFieldButton{margin-bottom:0}.cms .grid-field>.addNewGridFieldButton .action{margin-bottom:0.9231rem}.cms .grid-field[data-selectable] tr.ui-selected,.cms .grid-field[data-selectable] tr.ui-selecting{background:#fff !important}.cms .grid-field[data-selectable] td{cursor:pointer}.cms .grid-field span button.action_gridfield_relationfind{display:none}.cms .grid-field p button.action_export span.btn-icon-download-csv{height:17px}.cms .grid-field .pull-xs-right>*{float:right;margin-left:0.6154rem}.cms .grid-field .pull-xs-left>*{margin-right:0.6154rem;float:left}.cms .grid-field .add-existing-autocompleter span{float:left;display:inline-block;vertical-align:top}.cms .grid-field .add-existing-autocompleter input.relation-search{width:270px;height:32px;margin-bottom:0.9231rem;border-top-right-radius:0;border-bottom-right-radius:0}.cms .grid-field .add-existing-autocompleter button.action_gridfield_relationadd{height:32px;margin-left:0;border-top-left-radius:0;border-bottom-left-radius:0;border-left:0}.cms .grid-field .grid-csv-button,.cms .grid-field .grid-print-button{margin-bottom:0;display:inline-block}.cms .grid-field__table .filter-header .fieldholder-small{padding-bottom:0}.cms .grid-field__table .filter-header .fieldgroup .fieldgroup-field{padding:0}.cms .grid-field__table tbody td.col-listChildrenLink{width:26px;border-right:0;padding-right:0}.cms .grid-field__table tbody td.col-listChildrenLink .list-children-link{margin-top:-1.2308rem;margin-right:-0.6154rem;margin-bottom:-1.2308rem;margin-left:-1.5385rem;padding-top:1.2308rem;padding-right:0;padding-bottom:1.2308rem;padding-left:1.5385rem;height:calc(2.4616rem + 20px);line-height:20px;border-radius:0;display:block}.cms .grid-field__table tbody td.col-listChildrenLink .list-children-link:before{margin-top:-2px}.cms .grid-field__table tbody td.col-listChildrenLink .list-children-link:hover{background-color:#e3eaf0}.cms .grid-field__table tbody td.col-getTreeTitle span.item{color:#0071c4}.cms .grid-field__table tbody td.col-getTreeTitle span.badge{clear:both;text-transform:uppercase;display:inline-block;padding:0 3px;font-size:0.75em;line-height:1em;margin-left:10px;margin-right:6px;margin-top:-1px;border-radius:2px, 2px}.cms .grid-field__table tbody td.col-getTreeTitle span.badge.status-modified{color:#7E7470;border:1px solid #C9B800;background-color:#FFF0BC}.cms .grid-field__table tbody td.col-getTreeTitle span.badge.status-addedtodraft{color:#7E7470;border:1px solid #C9B800;background-color:#FFF0BC}.cms .grid-field__table tbody td.col-getTreeTitle span.badge.status-deletedonlive{color:#636363;border:1px solid #E49393;background-color:#F2DADB}.cms .grid-field__table tbody td.col-getTreeTitle span.badge.status-removedfromdraft{color:#636363;border:1px solid #E49393;background-color:#F2DADB}.cms .grid-field__table tbody td.col-getTreeTitle span.badge.status-workflow-approval{color:#56660C;border:1px solid #7C8816;background-color:#DAE79A}.cms .grid-field__table tbody td button.gridfield-button-delete span.btn-icon-decline{left:2px}.cms .grid-field__table tbody td a.view-link{display:inline-block}.cms .grid-field__table tbody td a.view-link{background:url(../../../admin/client/src/sprites/btn-icon/magnifier.png) no-repeat 0 1px}.cms .grid-field__table .filter-buttons .fieldgroup-field{width:auto}.cms .grid-field__table tr th.main{white-space:nowrap}.cms .grid-field__table tr th.main>*{vertical-align:bottom}.cms .grid-field__table tr th.main span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;-o-text-overflow:ellipsis}.cms .grid-field__table tr th.main.col-listChildrenLink{border-right:0}.cms .grid-field__table tr th.extra,.cms .grid-field__table tr th.action{cursor:default}.cms .grid-field__table tr th.extra{position:relative;background:#4f5861;padding-top:0.9231rem;padding-bottom:0.9231rem}.cms .grid-field__table tr th.extra:last-child{width:1%;min-width:1%;white-space:nowrap}.cms .grid-field__table tr th.extra:last-child>.form__fieldgroup-item{display:inline-block}.cms .grid-field__table tr th.extra select{margin:0}.cms .grid-field__table tr th button.ss-gridfield-button-filter:not(.trigger){color:#fff}.cms .grid-field__table tr th button.ss-gridfield-button-filter:not(.trigger),.cms .grid-field__table tr th button.grid-field__filter-clear{margin-top:3px;margin-bottom:3px}.cms .grid-field__table tr th button.action_gridfield_relationadd:hover{color:#444 !important}.cms .grid-field__table tr th button.ss-ui-button.ss-gridfield-button-close.hover-alike:active,.cms .grid-field__table tr th button.ss-ui-button.ss-gridfield-button-close:active,.cms .grid-field__table tr th button.ss-ui-button.ss-gridfield-button-close.hover-alike,.cms .grid-field__table tr th button.ss-ui-button.ss-gridfield-button-close:hover,.cms .grid-field__table tr th button.ss-ui-button.ss-gridfield-button-filter:not(.trigger).hover-alike:active,.cms .grid-field__table tr th button.ss-ui-button.ss-gridfield-button-filter:not(.trigger):active,.cms .grid-field__table tr th button.ss-ui-button.ss-gridfield-button-filter:not(.trigger).hover-alike,.cms .grid-field__table tr th button.ss-ui-button.ss-gridfield-button-filter:not(.trigger):hover{color:#fff}.cms .grid-field__table tr th button.ss-ui-button.ss-gridfield-button-reset{margin:0;display:none}.cms .grid-field__table tr th button.ss-ui-button.ss-gridfield-button-reset:hover,.cms .grid-field__table tr th button.ss-ui-button.ss-gridfield-button-reset:active{opacity:1;background:transparent}.cms .grid-field__table tr th button.ss-ui-button.ss-gridfield-button-reset.filtered{display:block;opacity:0.8}.cms .grid-field__table tr td.bottom-all .datagrid-footer-message{text-align:center;padding-top:6px}.cms .grid-field__table td.col-StripThumbnail{padding:0 4px;width:32px;height:32px;vertical-align:middle}.cms .grid-field__table td.col-StripThumbnail img{width:32px;height:32px;display:block}.grid-field__paginator{position:relative}.grid-field__paginator_numbers{float:right}.grid-field__paginator__controls{position:absolute;height:36px;top:50%;left:50%;margin-top:-18px;margin-left:-125px;z-index:5;width:250px;text-align:center}.grid-field__paginator__controls .pagination-page-number{text-align:center}.grid-field__paginator__controls .pagination-page-number input{width:35px;padding-left:0;padding-right:0;text-align:center;border-color:#e2e5e8;background-color:#fff;background-image:none;display:inline}.grid-field__paginator__controls .pagination-page-number input:focus{border-color:#66afe9;-webkit-box-shadow:rgba(102,175,233,0.6);box-shadow:rgba(102,175,233,0.6)}.grid-field__paginator__controls button,.grid-field__paginator__controls button[class*="font-icon-"]{margin:0;margin-top:-2px}.grid-field__paginator__controls button .ui-button-text,.grid-field__paginator__controls button[class*="font-icon-"] .ui-button-text{text-indent:-9999em}.grid-field__paginator__controls button.ssui-button-disabled,.grid-field__paginator__controls button[class*="font-icon-"].ssui-button-disabled{opacity:0}
-
-/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxlZ2FjeS9HcmlkRmllbGQuc2NzcyIsIi4uLy4uLy4uL2FkbWluL2NsaWVudC9zcmMvc3R5bGVzL2xlZ2FjeS90aGVtZXMvX2RlZmF1bHQuc2NzcyIsIi4uLy4uLy4uL2FkbWluL2NsaWVudC9zcmMvc3R5bGVzL2xlZ2FjeS9fbWl4aW5zLnNjc3MiLCIuLi8uLi8uLi9hZG1pbi9jbGllbnQvc3JjL3N0eWxlcy9fdmFyaWFibGVzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBY0EsNEJBQ0UsY0FBZ0IsQ0FDakIsMkJBR0MsbUJBQ0EsU0FBVyxDQUNaLGdCQUdDLGNBQWdCLENBQ2pCLHdDQU1LLGVBQWlCLENBSHZCLGdEQU1RLHVCQUF3QixDQU5oQyxtR0FjUSwwQkFBdUMsQ0FkL0MscUNBa0JRLGNBQWdCLENBbEJ4QiwyREF1Qk0sWUFBYyxDQXZCcEIsbUVBMkJNLFdBQWEsQ0EzQm5CLGtDQStCTSxZQUNBLHFCQUFzQixDQWhDNUIsaUNBb0NNLHVCQUNBLFVBQVksQ0FyQ2xCLGtEQTBDUSxXQUNBLHFCQUNBLGtCQUFvQixDQTVDNUIsbUVBZ0RRLFlBQ0EsWUFDQSx3QkFDQSwwQkFDQSw0QkFBOEIsQ0FwRHRDLGlGQXdEUSxZQUNBLGNBQ0EseUJBQ0EsNEJBQ0EsYUFBZSxDQTVEdkIsc0VBa0VNLGdCQUNBLG9CQUFzQixDQW5FNUIsMERBMEVRLGdCQUFrQixDQTFFMUIscUVBOEVRLFNBQVcsQ0E5RW5CLHNEQXFGVSxXQUNBLGVBQ0EsZUFBaUIsQ0F2RjNCLDBFQTBGWSxzQkFDQSx3QkFDQSx5QkFDQSx1QkFDQSxzQkFDQSxnQkFDQSx5QkFDQSx1QkFDQSw4QkFDQSxpQkFDQSxnQkFDQSxhQUFlLENBckczQixpRkF3R2MsZUFBaUIsQ0F4Ry9CLGdGQTRHYyx3QkFBd0IsQ0E1R3RDLDREQW1IWSxhQy9Fa0IsQ0RwQzlCLDZEQXVIWSxXQUNBLHlCQUNBLHFCQUNBLGNBQ0EsaUJBQ0EsZ0JBQ0EsaUJBQ0EsaUJBQ0EsZ0JBQ0Esc0JBQXdCLENBaElwQyw2RUFvSVksY0FDQSx5QkFDQSx3QkFBMEIsQ0F0SXRDLGlGQTBJWSxjQUNBLHlCQUNBLHdCQUEwQixDQTVJdEMsa0ZBZ0pZLGNBQ0EseUJBQ0Esd0JBQTBCLENBbEp0QyxxRkFzSlksY0FDQSx5QkFDQSx3QkFBMEIsQ0F4SnRDLHNGQTRKWSxjQUNBLHlCQUNBLHdCQUEwQixDQTlKdEMsc0ZBbUtVLFFBQVUsQ0FuS3BCLDZDQXVLVSxvQkFBc0IsQ0F2S2hDLDZDQTJLVSx3RkFBeUYsQ0EzS25HLDBEQWlMTSxVQUFZLENBakxsQixtQ0F1TFUsa0JBQW9CLENBdkw5QixxQ0EwTFkscUJBQXVCLENBMUxuQyx3Q0ViQyxnQkFDQSxtQkFDQSx1QkFDQSx5QkFBMkIsQ0ZVNUIsd0RBa01ZLGNBQWdCLENBbE01Qix5RUF3TVUsY0FBZ0IsQ0F4TTFCLG9DQTRNVSxrQkFDQSxtQkFDQSxzQkFDQSx3QkdpQnFCLENIaE8vQiwrQ0FrTlksU0FDQSxhQUNBLGtCQUFvQixDQXBOaEMsc0VBdU5jLG9CQUFzQixDQXZOcEMsMkNBNE5ZLFFBQVUsQ0E1TnRCLDhFQWtPWSxVRzNOQSxDSFBaLDRJQXVPWSxlQUNBLGlCQUFtQixDQXhPL0Isd0VBNE9ZLHFCQUF1QixDQTVPbkMsb3ZCQXNQZ0IsVUcvT0osQ0hQWiw0RUEyUGMsU0FDQSxZQUFjLENBNVA1QixxS0FnUWdCLFVBQ0Esc0JBQXdCLENBalF4QyxxRkFxUWdCLGNBQ0EsV0FBYSxDQXRRN0Isa0VBOFFRLGtCQUNBLGVBQWlCLENBL1F6Qiw4Q0FxUk0sY0FDQSxXQUNBLFlBQ0EscUJBQXVCLENBeFI3QixrREEyUlEsV0FDQSxZQUNBLGFBQWUsQ0FDaEIsdUJBTUwsaUJBQW1CLENBQ3BCLCtCQUlDLFdBQWEsQ0FDZCxpQ0FHQyxrQkFDQSxZQUNBLFFBQ0EsU0FDQSxpQkFDQSxtQkFDQSxVQUNBLFlBQ0EsaUJBQW1CLENBVHJCLHlEQVlJLGlCQUFtQixDQVp2QiwrREFlTSxXQUNBLGVBQ0EsZ0JBQ0Esa0JBQ0EscUJBQ0Esc0JBQ0Esc0JBQ0EsY0FBZ0IsQ0F0QnRCLHFFQXlCUSxxQkFDQSx5Q0FBQSxBR2ZxQixnQ0FBQSxDSFg3QixxR0FpQ0ksU0FDQSxlQUFpQixDQWxDckIscUlBcUNNLG1CQUFxQixDQXJDM0IsK0lBeUNNLFNBQVcsQ0FDWiIsImZpbGUiOiJsZWdhY3kvR3JpZEZpZWxkLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29yZSBzdHlsZXMgZm9yIHRoZSBiYXNpYyBHcmlkRmllbGQgZm9ybSBmaWVsZCB3aXRob3V0IGFueSBzcGVjaWZpYyBzdHlsZS5cbiAqXG4gKiBAcGFja2FnZSBmcmFtZXdvcmtcbiAqIEBzdWJwYWNrYWdlIHNjc3NcbiAqIEB0b2RvIEFkZCByYWRpYWwgZ3JhZGllbnQgdG8gZGVmYXVsdCBkZWxldGUgYnV0dG9uIHN0YXRlXG4gKiBAdG9kbyBDcmVhdGUgU0FTUyBtaXhpbi1mdW5jdGlvbiB0byBzaW1wbHkgc3dhcCB0aGUgZnJvbS90bywgdG8gdG8vZnJvbSBjb2xvdXJzIGluIGdyc2RpZW50IG1peGlucz9cbiAqL1xuQGltcG9ydCBcIi4uLy4uLy4uLy4uL2FkbWluL2NsaWVudC9zcmMvc3R5bGVzL2xlZ2FjeS90aGVtZXMvZGVmYXVsdFwiO1xuQGltcG9ydCBcIi4uLy4uLy4uLy4uL2FkbWluL2NsaWVudC9zcmMvc3R5bGVzL2xlZ2FjeS9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi9lbGVtZW50TWl4aW5zXCI7XG5cblxuLy8gRXh0ZW5kcyBiYXNpYyB0YWJsZSBzdHlsZXMsIHJlcXVpcmVzIC50YWJsZSAudGFibGUtaG92ZXJcbi5ncmlkLWZpZWxkX19yb3ctLWRyaWxsYWJsZSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmdyaWQtZmllbGRfX2NlbGwtLWFjdGlvbnMge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB3aWR0aDogMXB4O1xufVxuXG4uZmlsdGVyLWJ1dHRvbnMge1xuICBtaW4td2lkdGg6IDY4cHg7XG59XG5cblxuLmNtcyB7XG4gIC5ncmlkLWZpZWxkIHtcbiAgICA+IC5hZGROZXdHcmlkRmllbGRCdXR0b24ge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgICAgLmFjdGlvbiB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRzcGFjZXIteSAqIC43NTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmW2RhdGEtc2VsZWN0YWJsZV0ge1xuXG4gICAgICB0ci51aS1zZWxlY3RlZCxcbiAgICAgIHRyLnVpLXNlbGVjdGluZyB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR0YWJsZS1iZy1hY2NlbnQgIWltcG9ydGFudDtcbiAgICAgIH1cblxuICAgICAgdGQge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgc3BhbiBidXR0b24uYWN0aW9uX2dyaWRmaWVsZF9yZWxhdGlvbmZpbmQge1xuICAgICAgZGlzcGxheTogbm9uZTsgLy9oaWRlcyBmaW5kIGJ1dHRvbiAtIHJlZHVuZGFudCBmdW5jdGlvbmFsaXR5XG4gICAgfVxuXG4gICAgcCBidXR0b24uYWN0aW9uX2V4cG9ydCBzcGFuLmJ0bi1pY29uLWRvd25sb2FkLWNzdiB7XG4gICAgICBoZWlnaHQ6IDE3cHg7IC8vZXhhY3QgaGVpZ2h0IG9mIGljb25cbiAgICB9XG5cbiAgICAucHVsbC14cy1yaWdodCA+ICoge1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgbWFyZ2luLWxlZnQ6ICRzcGFjZXIteCAvIDI7XG4gICAgfVxuXG4gICAgLnB1bGwteHMtbGVmdCA+ICoge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAkc3BhY2VyLXggLyAyO1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgfVxuXG4gICAgLmFkZC1leGlzdGluZy1hdXRvY29tcGxldGVyIHtcbiAgICAgIHNwYW4ge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgfVxuXG4gICAgICBpbnB1dC5yZWxhdGlvbi1zZWFyY2gge1xuICAgICAgICB3aWR0aDogMjcwcHg7XG4gICAgICAgIGhlaWdodDogMzJweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHNwYWNlci15ICogLjc1O1xuICAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gICAgICB9XG5cbiAgICAgIGJ1dHRvbi5hY3Rpb25fZ3JpZGZpZWxkX3JlbGF0aW9uYWRkIHtcbiAgICAgICAgaGVpZ2h0OiAzMnB4O1xuICAgICAgICBtYXJnaW4tbGVmdDogMDsgLy8gV2Via2l0IG5lZWRzIHRoaXNcbiAgICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmdyaWQtY3N2LWJ1dHRvbixcbiAgICAuZ3JpZC1wcmludC1idXR0b24ge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG4gIH1cblxuICAuZ3JpZC1maWVsZF9fdGFibGUge1xuICAgIC5maWx0ZXItaGVhZGVyIHtcbiAgICAgIC5maWVsZGhvbGRlci1zbWFsbCB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgfVxuXG4gICAgICAuZmllbGRncm91cCAuZmllbGRncm91cC1maWVsZCB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGJvZHkge1xuICAgICAgdGQge1xuICAgICAgICAmLmNvbC1saXN0Q2hpbGRyZW5MaW5rIHtcbiAgICAgICAgICB3aWR0aDogMjZweDtcbiAgICAgICAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcblxuICAgICAgICAgIC5saXN0LWNoaWxkcmVuLWxpbmsge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogLSR0YWJsZS1jZWxsLXBhZGRpbmc7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kdGFibGUtY2VsbC1wYWRkaW5nIC8gMjtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IC0kdGFibGUtY2VsbC1wYWRkaW5nO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kZ3JpZC1ndXR0ZXItd2lkdGgtaGFsZjtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAkdGFibGUtY2VsbC1wYWRkaW5nO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAkdGFibGUtY2VsbC1wYWRkaW5nO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkZ3JpZC1ndXR0ZXItd2lkdGgtaGFsZjtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygjeyR0YWJsZS1jZWxsLXBhZGRpbmcgKiAyfSArICN7JGxpbmUtaGVpZ2h0LWJhc2V9KTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQtYmFzZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAtMnB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCR0YWJsZS1iZy1ob3ZlciwgNCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYuY29sLWdldFRyZWVUaXRsZSB7XG4gICAgICAgICAgc3Bhbi5pdGVtIHtcbiAgICAgICAgICAgIGNvbG9yOiAkY29sb3ItdGV4dC1ibHVlLWxpbms7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgc3Bhbi5iYWRnZSB7XG4gICAgICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDNweDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC43NWVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDFlbTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAtMXB4O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4LCAycHg7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgc3Bhbi5iYWRnZS5zdGF0dXMtbW9kaWZpZWQge1xuICAgICAgICAgICAgY29sb3I6ICM3RTc0NzA7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjQzlCODAwO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRjBCQztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBzcGFuLmJhZGdlLnN0YXR1cy1hZGRlZHRvZHJhZnQge1xuICAgICAgICAgICAgY29sb3I6ICM3RTc0NzA7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjQzlCODAwO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRjBCQztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBzcGFuLmJhZGdlLnN0YXR1cy1kZWxldGVkb25saXZlIHtcbiAgICAgICAgICAgIGNvbG9yOiAjNjM2MzYzO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI0U0OTM5MztcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNGMkRBREI7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgc3Bhbi5iYWRnZS5zdGF0dXMtcmVtb3ZlZGZyb21kcmFmdCB7XG4gICAgICAgICAgICBjb2xvcjogIzYzNjM2MztcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNFNDkzOTM7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjJEQURCO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHNwYW4uYmFkZ2Uuc3RhdHVzLXdvcmtmbG93LWFwcHJvdmFsIHtcbiAgICAgICAgICAgIGNvbG9yOiAjNTY2NjBDO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzdDODgxNjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNEQUU3OUE7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgYnV0dG9uLmdyaWRmaWVsZC1idXR0b24tZGVsZXRlIHNwYW4uYnRuLWljb24tZGVjbGluZSB7XG4gICAgICAgICAgbGVmdDogMnB4O1xuICAgICAgICB9XG5cbiAgICAgICAgYS52aWV3LWxpbmsge1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIGEudmlldy1saW5rIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vLi4vLi4vYWRtaW4vY2xpZW50L3NyYy9zcHJpdGVzL2J0bi1pY29uL21hZ25pZmllci5wbmcpIG5vLXJlcGVhdCAwIDFweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5maWx0ZXItYnV0dG9ucyAuZmllbGRncm91cC1maWVsZCB7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICB9XG5cbiAgICB0ciB7XG4gICAgICB0aCB7XG4gICAgICAgICYubWFpbiB7XG4gICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgICAgICAgID4gKiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGlkZS10ZXh0LW92ZXJmbG93OyAvLyBBZGQgZWxsaXBzZXMgdG8gb3ZlcmZsb3dpbmcgdGV4dFxuICAgICAgICAgIH1cblxuICAgICAgICAgICYuY29sLWxpc3RDaGlsZHJlbkxpbmsge1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYuZXh0cmEsXG4gICAgICAgICYuYWN0aW9uIHtcbiAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLmV4dHJhIHtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgYmFja2dyb3VuZDogJHRhYmxlLWJnLXRvb2xzO1xuICAgICAgICAgIHBhZGRpbmctdG9wOiAkdGFibGUtc20tY2VsbC1wYWRkaW5nO1xuICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAkdGFibGUtc20tY2VsbC1wYWRkaW5nO1xuXG4gICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIHdpZHRoOiAxJTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMSU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgICAgICAgICA+IC5mb3JtX19maWVsZGdyb3VwLWl0ZW0ge1xuICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgc2VsZWN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBidXR0b24ge1xuICAgICAgICAgICYuc3MtZ3JpZGZpZWxkLWJ1dHRvbi1maWx0ZXI6bm90KC50cmlnZ2VyKSB7XG4gICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgICYuc3MtZ3JpZGZpZWxkLWJ1dHRvbi1maWx0ZXI6bm90KC50cmlnZ2VyKSxcbiAgICAgICAgICAmLmdyaWQtZmllbGRfX2ZpbHRlci1jbGVhciB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAzcHg7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzcHg7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJi5hY3Rpb25fZ3JpZGZpZWxkX3JlbGF0aW9uYWRkOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAjNDQ0ICFpbXBvcnRhbnQ7IC8qIE5vdCBzdXJlIHdoeSBJRSB0aGluayBpdCBuZWVkcyB0aGlzICovXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJi5zcy11aS1idXR0b24ge1xuICAgICAgICAgICAgJi5zcy1ncmlkZmllbGQtYnV0dG9uLWNsb3NlLFxuICAgICAgICAgICAgJi5zcy1ncmlkZmllbGQtYnV0dG9uLWZpbHRlcjpub3QoLnRyaWdnZXIpIHtcbiAgICAgICAgICAgICAgJi5ob3Zlci1hbGlrZTphY3RpdmUsXG4gICAgICAgICAgICAgICY6YWN0aXZlLFxuICAgICAgICAgICAgICAmLmhvdmVyLWFsaWtlLFxuICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYuc3MtZ3JpZGZpZWxkLWJ1dHRvbi1yZXNldCB7XG4gICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICYuZmlsdGVyZWQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuODtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB0ZC5ib3R0b20tYWxsIC5kYXRhZ3JpZC1mb290ZXItbWVzc2FnZSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZy10b3A6IDZweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBUaHVtYm5haWxzIGUuZy4gaW4gRmlsZSBhZG1pbiwgVXBsb2FkRmllbGQgYW5kIEh0bWxFZGl0b3JGaWVsZCBmaWxlIHNlbGVjdGlvblxuICAgIHRkLmNvbC1TdHJpcFRodW1ibmFpbCB7XG4gICAgICBwYWRkaW5nOiAwIDRweDtcbiAgICAgIHdpZHRoOiAzMnB4O1xuICAgICAgaGVpZ2h0OiAzMnB4O1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgaW1nIHtcbiAgICAgICAgd2lkdGg6IDMycHg7XG4gICAgICAgIGhlaWdodDogMzJweDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5ncmlkLWZpZWxkX19wYWdpbmF0b3Ige1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi8vIFRPRE8gY3JlYXRlIHBhZ2luYXRpb24gY29tcG9uZW50XG4uZ3JpZC1maWVsZF9fcGFnaW5hdG9yX251bWJlcnMgIHtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuXG4uZ3JpZC1maWVsZF9fcGFnaW5hdG9yX19jb250cm9scyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaGVpZ2h0OiAzNnB4O1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tdG9wOiAtMThweDtcbiAgbWFyZ2luLWxlZnQ6IC0xMjVweDsgLy8gaGFsZiB0aGUgd2lkdGggb2YgLmRhdGFncmlkLXBhZ2luYXRpb24gLSBjZW50ZXJzIHBhZ2luYXRpb25cbiAgei1pbmRleDogNTtcbiAgd2lkdGg6IDI1MHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgLnBhZ2luYXRpb24tcGFnZS1udW1iZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIGlucHV0IHtcbiAgICAgIHdpZHRoOiAzNXB4OyAvLyBleGFjdCB3aWR0aCBzbyB0aGF0IGEgZm91ciBkaWdpdCBudW1iZXIgY2FuIGJlIGVudGVyZWRcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBib3JkZXItY29sb3I6IGRhcmtlbigkYmFja2dyb3VuZC1kYXJrZXIsIDUlKTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gICAgICBkaXNwbGF5OiBpbmxpbmU7XG5cbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBib3JkZXItY29sb3I6ICRpbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIGJveC1zaGFkb3c6ICRpbnB1dC1ib3gtc2hhZG93LWZvY3VzO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGJ1dHRvbixcbiAgYnV0dG9uW2NsYXNzKj1cImZvbnQtaWNvbi1cIl0ge1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXJnaW4tdG9wOiAtMnB4O1xuXG4gICAgLnVpLWJ1dHRvbi10ZXh0IHtcbiAgICAgIHRleHQtaW5kZW50OiAtOTk5OWVtO1xuICAgIH1cblxuICAgICYuc3N1aS1idXR0b24tZGlzYWJsZWQge1xuICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuICogVGhpcyBmaWxlIGNvbnRhaW5zIHRoZSBkZWZhdWx0IHRoZW1lIGRlZmluaXRpb25zIGZvciB0aGUgYWRtaW4gaW50ZXJmYWNlLlxuICogUGxlYXNlIHB1dCBtb3N0bHkgU0NTUyB2YXJpYWJsZSBkZWZpbml0aW9ucyBpbiBoZXJlLFxuICogYW5kIGxlYXZlIHRoZSBhY3R1YWwgc3R5bGluZyB0byBfc3R5bGUuc2NzcyBhbmQgYXV4aWxsaWFyeSBmaWxlcy5cbiAqL1xuXG5AaW1wb3J0IFwiLi4vLi4vdmFyaWFibGVzLnNjc3NcIjtcblxuLyoqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBDb2xvdXJzXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbiRjb2xvci1iYXNlOiAjYjBiZWM3ICFkZWZhdWx0O1xuJGNvbG9yLXdpZGdldC1iZzogbGlnaHRlbigkY29sb3ItYmFzZSwgMjAlKSAhZGVmYXVsdDtcblxuLy8gTWVudSB0aGVtZSBjb2xvdXJzXG4kY29sb3ItdGhlbWUtYmFzZTogXHQjZDhlNGViICFkZWZhdWx0O1xuXG4kY29sb3ItdGhlbWUtYmc6IFx0bGlnaHRlbigkY29sb3ItdGhlbWUtYmFzZSwgNSUpO1xuJGNvbG9yLXRoZW1lLWljb25zOiBkYXJrZW4oJGNvbG9yLXRoZW1lLWJhc2UsIDI2JSk7XG4kY29sb3ItdGhlbWUtYWN0aXZlOiAkY29sb3ItdGhlbWUtYmFzZTtcblxuLy8gQ01TIDQgbWVudVxuJGJhc2UtbWVudTogI2Q4ZTRlYjtcbiRiYXNlLW1lbnUtYmc6IGxpZ2h0ZW4oJGJhc2UtbWVudSw1JSk7XG4kYmFzZS1tZW51LWljb246IGRhcmtlbigkYmFzZS1tZW51LCAyNiUpO1xuXG4vL29mZmljYWwgc2lsdmVyc3RyaXBlIGJyYW5kIGNvbG9yXG4kY29sb3ItYnJhbmQtYmc6ICMwMDVhOTMgIWRlZmF1bHQ7XG4kY29sb3ItYnJhbmQ6ICM0M2M3ZjQgIWRlZmF1bHQ7XG5cbi8qIEtlZXAgYXMgc29saWQgY29sb3VycyB0cmFuc3BhcmVudCBib3JkZXJzIHdvbnQgd29yayBpbiBpZSAqL1xuJGNvbG9yLWRhcmtlci1iZzogI2YwZjJmNCAhZGVmYXVsdDtcbiRjb2xvci1kYXJrLWJnOiAjMTQyMTM2ICFkZWZhdWx0O1xuJGNvbG9yLWRhcmstc2VwYXJhdG9yOiAjMTk0MzVjICFkZWZhdWx0O1xuJGNvbG9yLW1lZGl1bS1zZXBhcmF0b3I6ICM4MDgwODAgIWRlZmF1bHQ7XG4kY29sb3Itc2VwYXJhdG9yOiAjQzFDN0NDICFkZWZhdWx0OyAvLyBWZXJ0aWNhbCBkaXZpZGVyc1xuJGNvbG9yLWxpZ2h0LXNlcGFyYXRvcjogI0QyRDVEOCAhZGVmYXVsdDsgLy8gSG9yaW9udGFsIGRpdmlkZXJzXG5cbiRjb2xvci10YWI6ICNkOWQ5ZDkgIWRlZmF1bHQ7XG4kY29sb3ItZGFyay1ncmV5OiAjN0I4QzkxICFkZWZhdWx0O1xuXG4vKiBPbmx5IGZvciB1c2UgYXMgc2hhZG93cyBhcyB0aGV5IHdvbnQgd29yayBpbiBvbGRlciBicm93c2VycyAqL1xuJGNvbG9yLXNoYWRvdy1saWdodDogcmdiYSgyMDEsIDIwNSwgMjA2LCAwLjgpICFkZWZhdWx0O1xuJGNvbG9yLXNoYWRvdy1kYXJrOiByZ2JhKDEwNywgMTIwLCAxMjMsIDAuNSkgIWRlZmF1bHQ7XG4kY29sb3Itc2hhZG93LWJsYWNrOiByZ2JhKDAsIDAsIDAsIDAuNikgIWRlZmF1bHQ7XG4kY29sb3Itc2hhZG93LWJsYWNrZXI6IHJnYmEoMCwgMCwgMCwgMC45KSAhZGVmYXVsdDtcbiRib3gtc2hhZG93LXNoaW5lOiByZ2JhKDI0OCwgMjQ4LCAyNDgsIDAuOSk7XG4kYm94LXNoYWRvdy1zaGluZS1taW5pbWFsOiByZ2JhKDI0NSwgMjQ1LCAyNDUsIDAuOCk7XG5cbiRjb2xvci1oaWdobGlnaHQ6ICNGRkZGNjYgIWRlZmF1bHQ7XG4kY29sb3ItaGlnaGxpZ2h0LW9wYWNpdHk6IHJnYmEoMjU1LCAyNTUsIDEwMiwgMC4zKSAhZGVmYXVsdDtcblxuJGNvbG9yLW1lbnUtYnV0dG9uOiAjMzM4REMxICFkZWZhdWx0O1xuJGNvbG9yLW1lbnUtYmFja2dyb3VuZDogI2M2ZDdkZiAhZGVmYXVsdDtcbiRjb2xvci1tZW51LWJvcmRlcjogIzhjOTlhMSAhZGVmYXVsdDtcbiRjb2xvci1wYW5lbC1iYWNrZ3JvdW5kOiAjYzZkN2RmICFkZWZhdWx0O1xuXG4kY29sb3ItdGV4dC1kZWZhdWx0OiAjNGY1ODYxICFkZWZhdWx0OyAvKiBuZXcgaW4gU2lsdmVyU3RyaXBlIDQgKi9cbiRjb2xvci10ZXh0OiAjNjY3MjdkICFkZWZhdWx0O1xuJGNvbG9yLXRleHQtbGlnaHQ6IHdoaXRlICFkZWZhdWx0O1xuJGNvbG9yLXRleHQtbGlnaHQtbGluazogd2hpdGUgIWRlZmF1bHQ7XG4kY29sb3ItdGV4dC1kaXNhYmxlZDogI2FhYSAhZGVmYXVsdDtcbiRjb2xvci10ZXh0LWRhcms6ICMxZjFmMWYgIWRlZmF1bHQ7XG4kY29sb3ItdGV4dC1kYXJrLWxpbms6ICMzRUJBRTAgIWRlZmF1bHQ7XG4kY29sb3ItdGV4dC1ibHVlLWxpbms6ICMwMDcxYzQgIWRlZmF1bHQ7XG4kY29sb3ItdGV4dC1zaGFkb3c6IHdoaXRlICFkZWZhdWx0O1xuXG5cbiRjb2xvci1idXR0b24tZ2VuZXJpYzogI2U2ZTZlNiAhZGVmYXVsdDtcbiRjb2xvci1idXR0b24tZ2VuZXJpYy1ib3JkZXI6ICNkMGQzZDUgIWRlZmF1bHQ7XG5cbiRjb2xvci1idXR0b24taGlnaGxpZ2h0OiAjZTZlNmU2ICFkZWZhdWx0O1xuJGNvbG9yLWJ1dHRvbi1oaWdobGlnaHQtYm9yZGVyOiAjNzA4Mjg0ICFkZWZhdWx0O1xuXG4kY29sb3ItYnV0dG9uLWNvbnN0cnVjdGl2ZTogIzFGOTQzMyAhZGVmYXVsdDtcbiRjb2xvci1idXR0b24tY29uc3RydWN0aXZlLWJvcmRlcjogIzFGOTQzMyAhZGVmYXVsdDtcblxuJGNvbG9yLWJ1dHRvbi1kZXN0cnVjdGl2ZTogI2YwMCAhZGVmYXVsdDtcblxuJGNvbG9yLWJ1dHRvbi1kaXNhYmxlZDogI2VlZWRlZCAhZGVmYXVsdDtcblxuJGNvbG9yLW5vdGljZTogIzkzQ0RFOCAhZGVmYXVsdDtcdFx0Ly8gYmx1ZVxuJGNvbG9yLXdhcm5pbmc6ICNFOUQxMDQgIWRlZmF1bHQ7XHRcdC8vIHllbGxvd1xuJGNvbG9yLWVycm9yOiAjZTY4Mjg4ICFkZWZhdWx0O1x0XHRcdC8vIHJlZFxuJGNvbG9yLWdvb2Q6ICM3MmMzNGIgIWRlZmF1bHQ7XHRcdFx0Ly8gZ3JlZW5cbi8qJGNvbG9yLW9wdGlvbmFsOiAjYTFkMmViICFkZWZhdWx0OyAqL1x0Ly8gb3JhbmdlXG5cbiRjb2xvci1jbXMtYmF0Y2hhY3Rpb25zLW1lbnUtYmFja2dyb3VuZDogI2Y1ZjVmNSAhZGVmYXVsdDtcbiRjb2xvci1jbXMtYmF0Y2hhY3Rpb25zLW1lbnUtc2VsZWN0ZWQtYmFja2dyb3VuZDogI2ZmZmNkYyAhZGVmYXVsdDtcblxuLyoqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBUZXh0dXJlc1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbiR0YWItcGFuZWwtdGV4dHVyZS1jb2xvcjogI2Y2ZjdmOCAhZGVmYXVsdDtcbiR0YWItcGFuZWwtdGV4dHVyZS1iYWNrZ3JvdW5kOiAkdGFiLXBhbmVsLXRleHR1cmUtY29sb3IgdXJsKC4uL2ltYWdlcy90ZXh0dXJlcy9iZ19jbXNfbWFpbl9jb250ZW50LnBuZykgcmVwZWF0IHRvcCBsZWZ0ICFkZWZhdWx0O1xuXG5cbi8qKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogR3JpZCBVbml0cyAocHgpXG4gKlxuICogV2UgaGF2ZSBhIHZlcnRpY2FsIHJoeXRobSB0aGF0IHRoZSBncmlkIGlzIGJhc2VkIG9mZlxuICogYm90aCB4ICg9aG9yaXpvbnRhbCkgYW5kIHkgKD12ZXJ0aWNhbCkuIEFsbCBpbnRlcm5hbCBwYWRkaW5nIGFuZFxuICogbWFyZ2lucyBhcmUgc2NhbGVkIHRvIHRoaXMgYW5kIGFjY291bnRpbmcgZm9yIHBhcmFncmFwaHNcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuJGdyaWQteTogOHB4ICFkZWZhdWx0O1xuJGdyaWQteDogOHB4ICFkZWZhdWx0O1xuXG4vKiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIEFwcGxpY2F0aW9uIExvZ28gKENNUyBMb2dvKSBNdXN0IGJlIDI0cHggeCAyNHB4XG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbiRhcHBsaWNhdGlvbi1sb2dvLXNtYWxsOiB1cmwoXCIuLi9pbWFnZXMvbG9nb19zbWFsbC5wbmdcIikgIWRlZmF1bHQ7XG4kYXBwbGljYXRpb24tbG9nby1zbWFsbC0yeDogdXJsKFwiLi4vaW1hZ2VzL2xvZ29fc21hbGxAMngucG5nXCIpICFkZWZhdWx0O1xuIiwiLy8qKlxuLy8gKiBUaGlzIGZpbGUgY29udGFpbnMgZ2VuZXJpYyBtaXhpbnMgd2hpY2ggd2UgdXNlIHRocm91Z2hvdXRcbi8vICogdGhlIGFkbWluIHBhbmVscy5cbi8vICpcbi8vICogTWl4aW5zIHNob3VsZCBiZSBzdG9yZWQgaGVyZSByYXRoZXIgdGhhbiBpbmRpdmlkdWFsIGZpbGVzXG4vLyAqIHNvIHRoYXQgd2UgY2FuIGtlZXAuXG4vLyAqL1xuXG4vLyoqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vICogSGlkZXMgdGhlIG92ZXJmbG93aW5nIHRleHQgZnJvbSBhIGNvbnRhaW5lclxuLy8gKlxuLy8gKiBOb3RlOiB5b3UgbXVzdCBkZWZpbmUgYSB3aWR0aCBvbiB0aGUgZWxlbWVudCB3aXRoIHRoaXNcbi8vICogb3ZlcmZsb3cuXG4vLyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5AbWl4aW4gaGlkZS10ZXh0LW92ZXJmbG93IHtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cdC1vLXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuXG5AbWl4aW4gYm94LXNoYWRvdy1ub25le1xuXHQtbW96LWJveC1zaGFkb3c6IG5vbmU7XG5cdC13ZWJraXQtYm94LXNoYWRvdzogbm9uZTtcbiAgICBib3gtc2hhZG93OiBub25lO1xufVxuXG5cbi8vKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vL0NsZWFyZml4IG1peGluIGNsZWFycyB0aGUgZmxvYXQgb2YgaXQncyBwYXJlbnQgZWxlbWVudFxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKiovXG5AbWl4aW4gY2xlYXJmaXh7XG5cdCY6YWZ0ZXJ7XG5cdFx0Y29udGVudDogXCIuXCI7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0aGVpZ2h0OiAwO1xuXHRcdGNsZWFyOiBib3RoO1xuXHRcdHZpc2liaWxpdHk6IGhpZGRlbjtcblx0fVxuXHQqOmZpcnN0LWNoaWxkICZ7IHpvb206MTt9XG59XG5cblxuXG4vLyoqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vICogQ2xlYXIgdGhlIHByb3BlcnRpZXMgb2Ygc3ViIGZvcm0gZmllbGRzLlxuLy8gKlxuLy8gKiBPZnRlbiBuZWVkZWQgZm9yIG5lc3RlZCBmb3JtIGZpZWxkcyBhbmRcbi8vICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbkBtaXhpbiBjbGVhci1mb3JtLWZpZWxkLXN0eWxlcyB7XG5cdC5maWVsZCB7XG5cdFx0cGFkZGluZzogMDtcblx0XHRib3JkZXI6IDA7XG5cdH1cblxuXHRsYWJlbCB7XG5cdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0d2lkdGg6IGF1dG87XG5cblx0XHQmLmxlZnQge1xuXHRcdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0XHRkaXNwbGF5OiBpbmhlcml0O1xuXHRcdFx0d2lkdGg6IGF1dG87XG5cdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0bGluZS1oZWlnaHQ6IGluaGVyaXQ7XG5cdFx0fVxuXHR9XG5cblx0Lm1pZGRsZUNvbHVtbiB7XG5cdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdH1cblxuXHRpbnB1dC50ZXh0LFxuXHR0ZXh0YXJlYSxcblx0c2VsZWN0LFxuXHQuVHJlZURyb3Bkb3duRmllbGQge1xuXHRcdHdpZHRoOiBhdXRvO1xuXHRcdG1heC13aWR0aDogYXV0bztcblx0fVxufVxuXG4vLyoqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vICogRG91YmxlIHRvbmUgYm9yZGVyc1xuLy8gKlxuLy8gKiBodHRwOi8vZGF2ZXJ1cGVydC5jb20vMjAxMS8wNi90d28tdG9uZS1ib3JkZXJzLXdpdGgtY3NzMy9cbi8vICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbkBtaXhpbiBkb3VibGVib3JkZXIoJHNpZGUsICRpbm5lckNvbG9yLCAkb3V0ZXJDb2xvcikge1xuICAgICRzaGFkb3c6IFwiMCAwIDBcIjtcbiAgICBib3JkZXItI3skc2lkZX06IDFweCBzb2xpZCAkaW5uZXJDb2xvcjtcbiAgICBAaWYgKCRzaWRlID09IFwidG9wXCIpIHsgJHNoYWRvdzogMCAtMXB4IDA7IH1cbiAgICBAaWYgKCRzaWRlID09IFwicmlnaHRcIikgeyAkc2hhZG93OiAxcHggMCAwOyB9XG4gICAgQGlmICgkc2lkZSA9PSBcImJvdHRvbVwiKSB7ICRzaGFkb3c6IDAgMXB4IDA7IH1cbiAgICBAaWYgKCRzaWRlID09IFwibGVmdFwiKSB7ICRzaGFkb3c6IC0xcHggMCAwOyB9XG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiAkc2hhZG93ICRvdXRlckNvbG9yO1xuICAgIC1tb3otYm94LXNoYWRvdzogJHNoYWRvdyAkb3V0ZXJDb2xvcjtcbiAgICAtby1ib3gtc2hhZG93OiAkc2hhZG93ICRvdXRlckNvbG9yO1xuICAgIGJveC1zaGFkb3c6ICRzaGFkb3cgJG91dGVyQ29sb3I7XG59XG5cblxuLypNaXhpbiB1c2VkIHRvIGdlbmVyYXRlIHNsaWdodGx5IHNtYWxsZXIgdGV4dCBhbmQgZm9ybXNcblVzZWQgaW4gc2lkZSBwYW5lbHMgYW5kIGFjdGlvbiB0YWJzXG4qL1xuQG1peGluIHRpZ2h0U3BhY2luZ3tcblx0aDMsaDQsaDUge1xuXHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdGxpbmUtaGVpZ2h0OiAkZ3JpZC15ICogMjtcblx0fVxuXHRoMyB7XG5cdFx0Zm9udC1zaXplOiAkZm9udC1zaXplLXJvb3Q7XG5cdH1cblxuXHRoNCB7XG5cdFx0Zm9udC1zaXplOiAkZm9udC1zaXplLXJvb3QgLTE7XG5cdFx0bWFyZ2luOiA1cHggMDtcblx0fVxuXG5cdC51aS13aWRnZXQtY29udGVudCB7XG5cdFx0YmFja2dyb3VuZDogbm9uZTtcblx0fVxuXG5cdC5maWVsZCB7XG5cdFx0Lypcblx0XHQgKiBGaWVsZHMgYXJlIG1vcmUgY29tcHJlc3NlZCBpbiBzb21lIGFyZWFzIGNvbXBhcmVkIHRvIHRoZVxuXHRcdCAqIG1haW4gY29udGVudCBlZGl0aW5nIHdpbmRvdyBzbyB0aGUgYmVsb3cgYWx0ZXJzIHRoZSBpbnRlcm5hbFxuXHRcdCAqIHNwYWNpbmcgb2YgdGhlIGZpZWxkcyBzbyB3ZSBjYW4gbW92ZSB0aGF0IHNwYWNpbmcgdG8gYmV0d2VlblxuXHRcdCAqIHRoZSBmb3JtIGZpZWxkcyByYXRoZXIgdGhhbiBwYWRkaW5nXG5cdFx0ICovXG5cdFx0Ym9yZGVyLWJvdHRvbTpub25lO1xuXHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cdFx0bGFiZWwge1xuXHRcdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0XHR3aWR0aDogYXV0bztcblx0XHRcdGZvbnQtc2l6ZTogMTJweDtcblx0XHRcdHBhZGRpbmc6IDAgJGdyaWQteCA0cHggMDtcblx0XHRcdCYuZXh0cmEtZGV0YWlsc3tcblx0XHRcdFx0b3ZlcmZsb3c6aGlkZGVuO1xuXHRcdFx0XHRtYXJnaW4tdG9wOjEwcHg7XG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHRjb2xvcjogbGlnaHRlbigkY29sb3ItdGV4dCwgMzUlKTtcblx0XHRcdFx0Zm9udC1zdHlsZTppdGFsaWM7XG5cdFx0XHRcdGZvbnQtd2VpZ2h0Om5vcm1hbDtcblx0XHRcdFx0Zm9udC1zaXplOjFlbTtcblx0XHRcdFx0ZmxvYXQ6bGVmdDtcblx0XHRcdFx0dGV4dC1zaGFkb3c6IG5vbmU7XG5cdFx0XHRcdCYuZmlsbHtcblx0XHRcdFx0XHQmOmJlZm9yZXtcblx0XHRcdFx0XHRcdGNvbG9yOiNmZmY7XG5cdFx0XHRcdFx0XHRjb250ZW50OiAnPyc7XG5cdFx0XHRcdFx0XHRmb250LXNpemU6MTJweDtcblx0XHRcdFx0XHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0XHRcdFx0XHRwYWRkaW5nLWxlZnQ6M3B4O1xuXHRcdFx0XHRcdFx0cGFkZGluZy1yaWdodDozcHg7XG5cdFx0XHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdFx0XHRcdFx0ZmxvYXQ6bGVmdDtcblx0XHRcdFx0XHRcdHRleHQtc2hhZG93OiBub25lO1xuXHRcdFx0XHRcdFx0Ym9yZGVyLXJhZGl1czogNTBweDtcblx0XHRcdFx0XHRcdGJhY2tncm91bmQtY29sb3I6bGlnaHRlbigkY29sb3ItdGV4dCwgNDUlKTtcblx0XHRcdFx0XHRcdHdpZHRoOjIxcHg7XG5cdFx0XHRcdFx0XHRoZWlnaHQ6MTVweDtcblx0XHRcdFx0XHRcdG1hcmdpbi1yaWdodDo1cHg7XG5cdFx0XHRcdFx0XHRtYXJnaW4tYm90dG9tOjVweDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHQubWlkZGxlQ29sdW1uIHtcblx0XHRcdG1hcmdpbjogMDtcblx0XHR9XG5cblx0XHRpbnB1dC50ZXh0LFxuXHRcdHNlbGVjdCxcblx0XHR0ZXh0YXJlYSB7XG5cdFx0XHRwYWRkaW5nOiA1cHg7XG5cdFx0XHRmb250LXNpemU6IDExcHg7XG5cdFx0fVxuXG5cdFx0Ji5jaGVja2JveCB7XG5cdFx0XHRwYWRkaW5nOiAwIDhweCAwO1xuXG5cdFx0XHRpbnB1dCB7XG5cdFx0XHRcdG1hcmdpbjogMnB4IDA7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0LmZvcm1fX2ZpZWxkZ3JvdXAge1xuXHRcdC5mb3JtX19maWVsZGdyb3VwLWl0ZW0ge1xuXHRcdFx0cGFkZGluZzogMDtcblxuXHRcdFx0LmZpZWxkIHtcblx0XHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8qIFJlc3R5bGUgZm9yIHNtYWxsZXIgYXJlYSovXG5cdC5jbXMtY29udGVudC1maWVsZHN7XG5cdFx0b3ZlcmZsb3c6dmlzaWJsZTtcblx0fVxuXHQuY2hvc2VuLWNvbnRhaW5lci1zaW5nbGV7XG5cdFx0d2lkdGg6MTAwJSAhaW1wb3J0YW50O1xuXHRcdC5jaG9zZW4tc2luZ2xle1xuXHRcdFx0cGFkZGluZzogMCAwIDAgNXB4O1xuXHRcdFx0ZmxvYXQ6bm9uZTtcblx0XHR9XG5cdH1cblx0LmNtcy1jb250ZW50LWFjdGlvbnMsIC5jbXMtcHJldmlldy1jb250cm9sc3tcblx0XHRwYWRkaW5nOjA7XG5cdFx0aGVpZ2h0OmF1dG87XG5cdFx0Ym9yZGVyOm5vbmU7XG5cdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0fVxuXHQuY21zLWVkaXQtZm9ybXtcblx0XHR3aWR0aDoxMDAlO1xuXHR9XG5cdC5Db21wb3NpdGVGaWVsZHtcblx0XHRtYXJnaW46MDtcblx0XHRwYWRkaW5nOjA7XG5cdFx0ZmxvYXQ6bm9uZTtcblx0fVxuXHQucGFyZW50LW1vZGV7XG5cdFx0cGFkZGluZy10b3A6MDtcblx0fVxuXHQudHJlZWRyb3Bkb3duLCAuU2VsZWN0aW9uR3JvdXAgbGkuc2VsZWN0ZWQgZGl2LmZpZWxke1xuXHRcdG1hcmdpbjoxMHB4IDAgMCAwO1xuXHRcdC8vQGluY2x1ZGUgYm94LXNoYWRvdyhpbnNldCAwIDFweCAwICNmZmYsIDAgMXB4IDFweCByZ2JhKDAsMCwwLDAuMSkpO1xuXHRcdC50cmVlZHJvcGRvd25maWVsZC10aXRsZXtcblx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xuXHRcdFx0ei1pbmRleDoyO1xuXHRcdFx0cGFkZGluZzo1cHg7XG5cdFx0fVxuXHRcdC50cmVlZHJvcGRvd25maWVsZC1wYW5lbHtcblx0XHRcdG1hcmdpbi10b3A6MTFweDtcblx0XHR9XG5cdFx0LnRyZWVkcm9wZG93bmZpZWxkLXRvZ2dsZS1wYW5lbC1saW5re1xuXHRcdFx0YmFja2dyb3VuZDpub25lO1xuXHRcdFx0Ym9yZGVyLWxlZnQ6bm9uZTtcblx0XHRcdHBhZGRpbmc6NXB4IDNweDtcblx0XHRcdC51aS1pY29ue1xuXHRcdFx0XHRmbG9hdDpyaWdodDtcblx0XHRcdFx0b3BhY2l0eTowLjc7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdC5jbXMtYWRkLWZvcm0gdWwuU2VsZWN0aW9uR3JvdXB7XG5cdFx0cGFkZGluZy1sZWZ0OjA7XG5cdFx0cGFkZGluZy1yaWdodDowO1xuXHRcdG92ZXJmbG93OnZpc2libGU7XG5cdFx0Ym9yZGVyLWJvdHRvbTpub25lO1xuXHR9XG59XG5cbi8vKiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gKiBDb21wYXNzIHJlcGxhY2VtZW50IG1peGlucy5cbi8vICpcbi8vICogTWl4aW5zIHRoYXQgd2VyZSBidWlsdC1pbiB3aXRoIGNvbXBhc3Ncbi8vICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuQG1peGluIGxlZ2FjeS1waWUtY2xlYXJmaXgge1xuXHQmOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlxcMDAyMFwiO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMDtcbiAgICBjbGVhcjogYm90aDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxufVxuIiwiLy8gVmFyaWFibGVzXG4vL1xuLy8gVGhpcyBmaWxlIGNvbnRhaW5zIHRoZSBrZXlzIGZvciBib290c3RyYXAgdmFyaWFibGVzLCB0aGUgY29tbWVudGVkIGNvZGUgaXMgYm9vdHN0cmFwJ3MgZGVmYXVsdCB2YWx1ZXMuXG4vLyBDb21tZW50ZWQgbGluZXMgaW5kaWNhdGUgdGhhdCB0aGUgZGVmYXVsdCBCb290c3RyYXAgdmFsdWVzIGFyZSBiZWluZyB1c2VkLlxuLy8gQWxsIHZhcmlhYmxlcyB3aGljaCBhcmUgdW5jb21tZW50ZWQgdGhlIHZhbHVlcyB3aWxsIGJlIGluIHVzZSBzbyBiZSBjYXV0aW91cyB3aGVuIGFkanVzdGluZyB0aGVpciB2YWx1ZXMuLlxuXG5cbi8vIFRhYmxlIG9mIENvbnRlbnRzXG4vL1xuLy8gQ29sb3JzXG4vLyBPcHRpb25zXG4vLyBTcGFjaW5nXG4vLyBCb2R5XG4vLyBMaW5rc1xuLy8gR3JpZCBicmVha3BvaW50c1xuLy8gR3JpZCBjb250YWluZXJzXG4vLyBHcmlkIGNvbHVtbnNcbi8vIEZvbnRzXG4vLyBDb21wb25lbnRzXG5cbi8vIEdlbmVyYWwgdmFyaWFibGUgc3RydWN0dXJlXG4vLyBWYXJpYWJsZSBmb3JtYXQgc2hvdWxkIGZvbGxvdyB0aGUgYCRjb21wb25lbnQtbW9kaWZpZXItc3RhdGUtcHJvcGVydHlgIG9yZGVyLlxuXG5cbi8vIENvbG9yc1xuLy8gR3JheXNjYWxlIGFuZCBicmFuZCBjb2xvcnMgZm9yIHVzZSBhY3Jvc3MgQm9vdHN0cmFwLlxuXG5cbiRncmF5LWRhcms6ICM0ZjU4NjE7IC8vIFVzZWQgZm9yIHRleHRcbiRncmF5OiBsaWdodGVuKCRncmF5LWRhcmssIDIlKTtcbiRncmF5LWxpZ2h0OiBsaWdodGVuKCRncmF5LWRhcmssIDUwJSk7XG4kZ3JheS1saWdodGVyOiBsaWdodGVuKCRncmF5LWRhcmssIDU3JSk7XG4vLyAkZ3JheS1saWdodGVzdDogI2Y3ZjdmOTtcbiRncmF5LWRhcmtlcjogZGFya2VuKCRncmF5LWRhcmssIDEwJSk7XG4kZ3JheS1kYXJrZXN0OiBkYXJrZW4oJGdyYXktZGFyaywgMjAlKTtcbiR3aGl0ZTogI2ZmZjsgLy8gTmV2ZXIgY2hhbmdlLCBjcmVhdGUgbmV3IHZhcmlhYmxlIGlmIG5lZWRlZFxuJGJsYWNrOiAjMDAwOyAvLyBOZXZlciBjaGFuZ2VcblxuJGJyYW5kLXNlY29uZGFyeTogIzAwNWE5MztcbiRicmFuZC1wcmltYXJ5OiAjMjlhYmUyO1xuJGJyYW5kLXN1Y2Nlc3M6ICMzZmExNDI7XG4vLyAkYnJhbmQtaW5mbzogIzViYzBkZTtcbi8vICRicmFuZC13YXJuaW5nOiAjZjBhZDRlO1xuJGJyYW5kLWRhbmdlcjogI2Q0MDQwNDtcblxuLy8gQmFja2dyb3VuZHNcbiRiYWNrZ3JvdW5kLW1haW46ICNmNmY3Zjg7XG4kYmFja2dyb3VuZC1kYXJrZXI6IGRhcmtlbigkYmFja2dyb3VuZC1tYWluLCAyKTtcblxuXG4vLyBCb3JkZXJzXG4kYm9yZGVyLWNvbG9yLWxpZ2h0ZXI6IGRhcmtlbigkYmFja2dyb3VuZC1tYWluLCAyKTtcbiRib3JkZXItY29sb3ItbGlnaHQ6IGRhcmtlbigkYmFja2dyb3VuZC1tYWluLCA2KTtcbiRib3JkZXItY29sb3I6IGRhcmtlbigkYmFja2dyb3VuZC1tYWluLCAxMCk7XG4kYm9yZGVyLWNvbG9yLWRhcms6IGRhcmtlbigkYmFja2dyb3VuZC1tYWluLCAxNCk7XG5cbi8vIE9wdGlvbnNcbi8vXG4vLyBRdWlja2x5IG1vZGlmeSBnbG9iYWwgc3R5bGluZyBieSBlbmFibGluZyBvciBkaXNhYmxpbmcgb3B0aW9uYWwgZmVhdHVyZXMuXG5cbiRlbmFibGUtZmxleDogdHJ1ZTtcbi8vICRlbmFibGUtcm91bmRlZDogdHJ1ZTtcbiRlbmFibGUtc2hhZG93czogdHJ1ZTtcbi8vICRlbmFibGUtZ3JhZGllbnRzOiBmYWxzZTtcbiRlbmFibGUtdHJhbnNpdGlvbnM6IHRydWU7XG4vLyAkZW5hYmxlLWhvdmVyLW1lZGlhLXF1ZXJ5OiBmYWxzZTtcbi8vICRlbmFibGUtZ3JpZC1jbGFzc2VzOiB0cnVlO1xuXG5cbi8vIFNwYWNpbmdcbi8vXG4vLyBDb250cm9sIHRoZSBkZWZhdWx0IHN0eWxpbmcgb2YgbW9zdCBCb290c3RyYXAgZWxlbWVudHMgYnkgbW9kaWZ5aW5nIHRoZXNlXG4vLyB2YXJpYWJsZXMuIE1vc3RseSBmb2N1c2VkIG9uIHNwYWNpbmcuXG5cbiRzcGFjZXI6IDEuMjMwOHJlbTsgLy8gJGZvbnQtc2l6ZS1yb290ICgxM3B4KSAqICRzcGFjZXIgPSAxNnB4XG4kc3BhY2VyLXg6ICRzcGFjZXI7XG4kc3BhY2VyLXk6ICRzcGFjZXI7XG5cbiRzcGFjZXJzOiAoXG4gIDA6IChcbiAgICB4OiAwLFxuICAgIHk6IDBcbiAgKSxcbiAgMTogKFxuICAgIHg6ICRzcGFjZXIteCxcbiAgICB5OiAkc3BhY2VyLXlcbiAgKSxcbiAgMjogKFxuICAgIHg6ICgkc3BhY2VyLXggKiAxLjUpLFxuICAgIHk6ICgkc3BhY2VyLXkgKiAxLjUpXG4gICksXG4gIDM6IChcbiAgICB4OiAoJHNwYWNlci14ICogMyksXG4gICAgeTogKCRzcGFjZXIteSAqIDMpXG4gIClcbik7XG4kYm9yZGVyLXdpZHRoOiAxcHg7XG5cblxuLy8gQm9keVxuLy9cbi8vIFNldHRpbmdzIGZvciB0aGUgYDxib2R5PmAgZWxlbWVudC5cblxuJGJvZHktYmc6ICRiYWNrZ3JvdW5kLW1haW47XG4kYm9keS1jb2xvcjogJGdyYXktZGFyazsgLy8gZWcuIFRleHQsIGxhYmVscywgaWNvbm9ncmFwaHlcbiRib2R5LWNvbG9yLWxpZ2h0OiBsaWdodGVuKCRncmF5LWRhcmssIDEwKTsgLy8gZWcuIEZpZWxkIGRlc2NyaXB0aW9uc1xuJGJvZHktY29sb3ItbGlnaHRlcjogbGlnaHRlbigkZ3JheS1kYXJrLCAyMCk7IC8vIGVnLiBwbGFjZWhvbGRlciB0ZXh0XG4kYm9keS1jb2xvci1kYXJrOiAgICBkYXJrZW4oJGJvZHktY29sb3IsIDEwJSk7ICAvLyBlZy4gaWNvbm9ncmFwaHkgaG92ZXJlZFxuXG5cbi8vIExpbmtzXG4vL1xuLy8gU3R5bGUgYW5jaG9yIGVsZW1lbnRzLlxuXG4kbGluay1jb2xvcjogIzAwNzFjNDtcbiRsaW5rLWRlY29yYXRpb246IG5vbmU7XG4kbGluay1ob3Zlci1jb2xvcjogZGFya2VuKCRsaW5rLWNvbG9yLCA1JSk7XG4kbGluay1ob3Zlci1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cblxuLy8gR3JpZCBicmVha3BvaW50c1xuLy9cbi8vIERlZmluZSB0aGUgbWluaW11bSBhbmQgbWF4aW11bSBkaW1lbnNpb25zIGF0IHdoaWNoIHlvdXIgbGF5b3V0IHdpbGwgY2hhbmdlLFxuLy8gYWRhcHRpbmcgdG8gZGlmZmVyZW50IHNjcmVlbiBzaXplcywgZm9yIHVzZSBpbiBtZWRpYSBxdWVyaWVzLlxuXG4kZ3JpZC1icmVha3BvaW50czogKFxuICAvLyBFeHRyYSBzbWFsbCBzY3JlZW4gLyBwaG9uZVxuICB4czogMCxcbiAgLy8gU21hbGwgc2NyZWVuIC8gcGhvbmVcbiAgc206IDU0NHB4LFxuICAvLyBNZWRpdW0gc2NyZWVuIC8gdGFibGV0XG4gIG1kOiA3NjhweCxcbiAgLy8gTGFyZ2Ugc2NyZWVuIC8gZGVza3RvcFxuICBsZzogOTkycHgsXG4gIC8vIEV4dHJhIGxhcmdlIHNjcmVlbiAvIHdpZGUgZGVza3RvcFxuICB4bDogMTIwMHB4LFxuICAvLyBFeHRyYSBleHRyYSBsYXJnZSBzY3JlZW4gLyB3aWRlIGRlc2t0b3BcbiAgeHhsOiAxNDAwcHhcbik7XG5cblxuLy8gR3JpZCBjb250YWluZXJzXG4vL1xuLy8gRGVmaW5lIHRoZSBtYXhpbXVtIHdpZHRoIG9mIGAuY29udGFpbmVyYCBmb3IgZGlmZmVyZW50IHNjcmVlbiBzaXplcy5cblxuJGNvbnRhaW5lci1tYXgtd2lkdGhzOiAoXG4gIHNtOiA1NzZweCxcbiAgbWQ6IDcyMHB4LFxuICBsZzogOTQwcHgsXG4gIHhsOiAxMTQwcHhcbik7XG5cblxuLy8gR3JpZCBjb2x1bW5zXG4vL1xuLy8gU2V0IHRoZSBudW1iZXIgb2YgY29sdW1ucyBhbmQgc3BlY2lmeSB0aGUgd2lkdGggb2YgdGhlIGd1dHRlcnMuXG5cbiRncmlkLWNvbHVtbnM6IDEyO1xuJGdyaWQtZ3V0dGVyLXdpZHRoOiAkc3BhY2VyICogMi41OyAvLyA0MHB4XG4kZ3JpZC1ndXR0ZXItd2lkdGgtaGFsZjogJGdyaWQtZ3V0dGVyLXdpZHRoIC8gMjsgLy8gVE9ETzogRGVwcmVjYXRlIHRoaXMsIHJlcGxhY2luZyB3aXRoICRwYW5lbC1wYWRkaW5nLXggYW5kICRwYW5lbC1wYWRkaW5nLXlcblxuXG4vLyBUeXBvZ3JhcGh5XG4vL1xuLy8gRm9udCwgbGluZS1oZWlnaHQsIGFuZCBjb2xvciBmb3IgYm9keSB0ZXh0LCBoZWFkaW5ncywgYW5kIG1vcmUuXG5cbiRmb250LWZhbWlseS1zYW5zLXNlcmlmOiBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4kZm9udC1mYW1pbHktc2VyaWY6IEdlb3JnaWEsIFwiVGltZXMgTmV3IFJvbWFuXCIsIFRpbWVzLCBzZXJpZjtcbiRmb250LWZhbWlseS1tb25vc3BhY2U6IE1lbmxvLCBNb25hY28sIENvbnNvbGFzLCBcIkNvdXJpZXIgTmV3XCIsIG1vbm9zcGFjZTtcbiRmb250LWZhbWlseS1iYXNlOiAkZm9udC1mYW1pbHktc2Fucy1zZXJpZjtcblxuLy8gUGl4ZWwgdmFsdWUgdXNlZCB0byByZXNwb25zaXZlbHkgc2NhbGUgYWxsIHR5cG9ncmFwaHkuIEFwcGxpZWQgdG8gdGhlIGA8aHRtbD5gIGVsZW1lbnQuXG4kZm9udC1zaXplLXJvb3Q6IDEzcHg7XG5cbiRmb250LXNpemUtYmFzZTogMXJlbTtcbiRmb250LXNpemUtbGc6IDEuMjNyZW07IC8vIDE2cHhcbiRmb250LXNpemUtc206IC45MjNyZW07IC8vIDEycHhcbiRmb250LXNpemUteHM6IC44NDdyZW07IC8vIDExcHhcbiRmb250LXNpemUteHhzOiAuNzdyZW07IC8vIDEwcHhcblxuJGZvbnQtc2l6ZS1oMTogMS42OTNyZW07IC8vIDIycHhcbiRmb250LXNpemUtaDI6IDE4cHg7IC8vIDJyZW07XG4kZm9udC1zaXplLWgzOiAxNnB4OyAvLyAxLjc1cmVtO1xuJGZvbnQtc2l6ZS1oNDogMTRweDsgLy8gMS41cmVtO1xuJGZvbnQtc2l6ZS1oNTogMTNweDsgLy8gMS4yNXJlbTtcbiRmb250LXNpemUtaDY6IDEycHg7IC8vIDFyZW07XG5cbi8vICRkaXNwbGF5MS1zaXplOiA2cmVtO1xuLy8gJGRpc3BsYXkyLXNpemU6IDUuNXJlbTtcbi8vICRkaXNwbGF5My1zaXplOiA0LjVyZW07XG4vLyAkZGlzcGxheTQtc2l6ZTogMy41cmVtO1xuLy9cbi8vICRkaXNwbGF5MS13ZWlnaHQ6IDMwMDtcbi8vICRkaXNwbGF5Mi13ZWlnaHQ6IDMwMDtcbi8vICRkaXNwbGF5My13ZWlnaHQ6IDMwMDtcbi8vICRkaXNwbGF5NC13ZWlnaHQ6IDMwMDtcblxuJGxpbmUtaGVpZ2h0OiAxLjUzOTtcbiRsaW5lLWhlaWdodC1iYXNlOiAyMHB4OyAvLyBjYW4gYmUgdXNlZCB3aXRoIHZhcnlpbmcgZm9udC1zaXplcywgaG9sZHMgZ3JpZCBzaXppbmdcblxuJGhlYWRpbmdzLW1hcmdpbi1ib3R0b206ICRzcGFjZXI7XG4kaGVhZGluZ3MtZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4kaGVhZGluZ3MtZm9udC13ZWlnaHQ6IDUwMDtcbiRoZWFkaW5ncy1saW5lLWhlaWdodDogMS4xO1xuJGhlYWRpbmdzLWNvbG9yOiBpbmhlcml0O1xuXG4vLyAkbGVhZC1mb250LXNpemU6IDEuMjVyZW07XG4vLyAkbGVhZC1mb250LXdlaWdodDogMzAwO1xuLy9cbiR0ZXh0LW11dGVkOiBsaWdodGVuKCRib2R5LWNvbG9yLCAxMCUpO1xuLy9cbi8vICRhYmJyLWJvcmRlci1jb2xvcjogJGdyYXktbGlnaHQ7XG4vL1xuLy8gJGJsb2NrcXVvdGUtc21hbGwtY29sb3I6ICRncmF5LWxpZ2h0O1xuLy8gJGJsb2NrcXVvdGUtZm9udC1zaXplOiAoJGZvbnQtc2l6ZS1iYXNlICogMS4yNSk7XG4vLyAkYmxvY2txdW90ZS1ib3JkZXItY29sb3I6ICRncmF5LWxpZ2h0ZXI7XG4vL1xuLy8gJGhyLWJvcmRlci1jb2xvcjogcmdiYSgwLDAsMCwuMSk7XG4vLyAkaHItYm9yZGVyLXdpZHRoOiAkYm9yZGVyLXdpZHRoO1xuLy9cbi8vICRkdC1mb250LXdlaWdodDogYm9sZDtcbi8vXG4vLyAkbmVzdGVkLWtiZC1mb250LXdlaWdodDogYm9sZDtcbi8vXG4vLyAkbGlzdC1pbmxpbmUtcGFkZGluZzogNXB4O1xuXG5cbi8vIENvbXBvbmVudHNcbi8vXG4vLyBEZWZpbmUgY29tbW9uIHBhZGRpbmcgYW5kIGJvcmRlciByYWRpdXMgc2l6ZXMgYW5kIG1vcmUuXG5cbiRsaW5lLWhlaWdodC1sZzogKDQgLyAzKTtcbiRsaW5lLWhlaWdodC1zbTogMS41O1xuXG4kYm9yZGVyLXJhZGl1czogLjI1cmVtO1xuJGJvcmRlci1yYWRpdXMtbGc6IC4zcmVtO1xuJGJvcmRlci1yYWRpdXMtc206IC4ycmVtO1xuXG4kY29tcG9uZW50LWFjdGl2ZS1jb2xvcjogJHdoaXRlO1xuJGNvbXBvbmVudC1hY3RpdmUtYmc6ICRicmFuZC1wcmltYXJ5OyAvLyBTUzMgd2FzICMzMzhEQzFcbiRjb21wb25lbnQtYWN0aXZlLWJnLWxpZ2h0OiBsaWdodGVuKCRjb21wb25lbnQtYWN0aXZlLWJnLCA0MiUpO1xuJGNvbXBvbmVudC1hY3RpdmUtYm9yZGVyLWNvbG9yOiAkYnJhbmQtcHJpbWFyeTtcblxuJGNhcmV0LXdpZHRoOiAuM2VtO1xuJGNhcmV0LXdpZHRoLWxnOiAkY2FyZXQtd2lkdGg7XG5cblxuLy8gVGFibGVzXG4vL1xuLy8gQ3VzdG9taXplcyB0aGUgYC50YWJsZWAgY29tcG9uZW50IHdpdGggYmFzaWMgdmFsdWVzLCBlYWNoIHVzZWQgYWNyb3NzIGFsbCB0YWJsZSB2YXJpYXRpb25zLlxuXG4kdGFibGUtY2VsbC1wYWRkaW5nOiAkc3BhY2VyO1xuJHRhYmxlLXNtLWNlbGwtcGFkZGluZzogJHNwYWNlciAqIC43NTtcblxuJHRhYmxlLWJnOiB0cmFuc3BhcmVudDtcbiR0YWJsZS1iZy1hY2NlbnQ6ICR3aGl0ZTsgLy8gbGlnaHRlbigjZjBmNGY3LCAxJSkgI0YwRjRGNyAjZTlmMGY0XG4kdGFibGUtYmctaG92ZXI6ICNmMGY0Zjc7XG4kdGFibGUtYmctYWN0aXZlOiAkYnJhbmQtcHJpbWFyeTtcbiR0YWJsZS1iZy10b29sczogJGdyYXktZGFyaztcbiR0YWJsZS1iZy1mb290ZXI6ICRiYWNrZ3JvdW5kLW1haW47XG5cbiR0YWJsZS1ib3JkZXItd2lkdGg6ICRib3JkZXItd2lkdGg7XG4kdGFibGUtYm9yZGVyLWNvbG9yOiAkZ3JheS1saWdodGVyO1xuXG5cbi8vIEJ1dHRvbnNcbi8vXG4vLyBGb3IgZWFjaCBvZiBCb290c3RyYXAncyBidXR0b25zLCBkZWZpbmUgdGV4dCwgYmFja2dyb3VuZCBhbmQgYm9yZGVyIGNvbG9yLlxuXG4kYnRuLXBhZGRpbmcteDogLjc2OTJyZW07IC8vIDEwcHhcbiRidG4tcGFkZGluZy15OiAuMzg0NnJlbTsgLy8gNXB4XG4kYnRuLWZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cbiRidG4tcHJpbWFyeS1jb2xvcjogJHdoaXRlO1xuJGJ0bi1wcmltYXJ5LWJnOiAkYnJhbmQtc3VjY2VzcztcbiRidG4tcHJpbWFyeS1ib3JkZXI6ICRidG4tcHJpbWFyeS1iZztcbiRidG4tcHJpbWFyeS1zaGFkb3c6IGRhcmtlbigkYnRuLXByaW1hcnktYmcsIDYlKTtcblxuJGJ0bi1zZWNvbmRhcnktY29sb3I6ICRib2R5LWNvbG9yLWxpZ2h0O1xuJGJ0bi1zZWNvbmRhcnktYmc6ICRncmF5LWxpZ2h0ZXI7XG4kYnRuLXNlY29uZGFyeS1ib3JkZXI6ICRib3JkZXItY29sb3ItZGFyaztcblxuLy8gJGJ0bi1pbmZvLWNvbG9yOiAjZmZmO1xuLy8gJGJ0bi1pbmZvLWJnOiAkYnJhbmQtaW5mbztcbi8vICRidG4taW5mby1ib3JkZXI6ICRidG4taW5mby1iZztcblxuLy8gJGJ0bi1zdWNjZXNzLWNvbG9yOiAjZmZmO1xuLy8gJGJ0bi1zdWNjZXNzLWJnOiAkYnJhbmQtc3VjY2Vzcztcbi8vICRidG4tc3VjY2Vzcy1ib3JkZXI6ICRidG4tc3VjY2Vzcy1iZztcblxuJGJ0bi1jb21wbGV0ZS1jb2xvcjogIzU1NTtcbiRidG4tY29tcGxldGUtYmc6ICRidG4tcHJpbWFyeS1iZztcbiRidG4tY29tcGxldGUtYm9yZGVyOiAkZ3JheS1saWdodDtcbiRidG4tY29tcGxldGUtc2hhZG93OiBkYXJrZW4oJGJ0bi1wcmltYXJ5LWJnLCA2JSk7XG5cbi8vICRidG4td2FybmluZy1jb2xvcjogI2ZmZjtcbi8vICRidG4td2FybmluZy1iZzogJGJyYW5kLXdhcm5pbmc7XG4vLyAkYnRuLXdhcm5pbmctYm9yZGVyOiAkYnRuLXdhcm5pbmctYmc7XG5cbiRidG4tZGFuZ2VyLWNvbG9yOiAkd2hpdGU7XG4kYnRuLWRhbmdlci1iZzogJGJyYW5kLWRhbmdlcjtcbiRidG4tZGFuZ2VyLWJvcmRlcjogJGJyYW5kLWRhbmdlcjtcblxuLy8gJGJ0bi1saW5rLWRpc2FibGVkLWNvbG9yOiAkZ3JheS1saWdodDtcbi8vXG4vLyAkYnRuLXBhZGRpbmcteC1zbTogLjc1cmVtO1xuLy8gJGJ0bi1wYWRkaW5nLXktc206IC4yNXJlbTtcbi8vXG4vLyAkYnRuLXBhZGRpbmcteC1sZzogMS4yNXJlbTtcbi8vICRidG4tcGFkZGluZy15LWxnOiAuNzVyZW07XG5cbi8vIEFsbG93cyBmb3IgY3VzdG9taXppbmcgYnV0dG9uIHJhZGl1cyBpbmRlcGVuZGVudGx5IGZyb20gZ2xvYmFsIGJvcmRlciByYWRpdXNcbiRidG4tYm9yZGVyLXJhZGl1czogLjIzcmVtO1xuJGJ0bi1ib3JkZXItcmFkaXVzLWxnOiAuMjVyZW07XG4kYnRuLWJvcmRlci1yYWRpdXMtc206IC4xNTRyZW07XG5cblxuLy8gRm9ybXNcblxuJGlucHV0LXBhZGRpbmcteDogLjc1cmVtO1xuJGlucHV0LXBhZGRpbmcteTogLjUzODVyZW07XG4kaW5wdXQtbWF4LXdpZHRoOiA4OTVweDsgLy8gQXBwcm94IG1heCBwb3NzaWJsZSBhdCBzbWFsbCBzY3JlZW4gc2l6ZXNcblxuJGlucHV0LWJnOiAkd2hpdGU7XG4kaW5wdXQtYmctZGlzYWJsZWQ6ICRiYWNrZ3JvdW5kLWRhcmtlcjtcblxuJGlucHV0LWNvbG9yOiAkYm9keS1jb2xvci1saWdodDtcbiRpbnB1dC1ib3JkZXItY29sb3I6ICRib3JkZXItY29sb3ItZGFyaztcbiRpbnB1dC1idG4tYm9yZGVyLXdpZHRoOiAkYm9yZGVyLXdpZHRoOyAvLyBGb3IgZm9ybSBjb250cm9scyBhbmQgYnV0dG9uc1xuLy8gc2Nzcy1saW50OmRpc2FibGUgQ29sb3JWYXJpYWJsZVxuJGlucHV0LWJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIC4wNzUpO1xuLy8gc2Nzcy1saW50OmVuYWJsZSBDb2xvclZhcmlhYmxlXG5cbiRpbnB1dC1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiRpbnB1dC1ib3JkZXItcmFkaXVzLWxnOiAkYm9yZGVyLXJhZGl1cy1sZztcbiRpbnB1dC1ib3JkZXItcmFkaXVzLXNtOiAkYm9yZGVyLXJhZGl1cy1zbTtcblxuJGlucHV0LWJvcmRlci1mb2N1czogIzY2YWZlOTtcbi8vIHNjc3MtbGludDpkaXNhYmxlIENvbG9yVmFyaWFibGVcbiRpbnB1dC1ib3gtc2hhZG93LWZvY3VzOiByZ2JhKDEwMiwgMTc1LCAyMzMsIC42KTtcbi8vIHNjc3MtbGludDplbmFibGUgQ29sb3JWYXJpYWJsZVxuXG4vLyAkaW5wdXQtY29sb3ItcGxhY2Vob2xkZXI6ICM5OTk7XG4vL1xuLy8gJGlucHV0LXBhZGRpbmcteC1zbTogLjc1cmVtO1xuLy8gJGlucHV0LXBhZGRpbmcteS1zbTogLjI3NXJlbTtcbi8vXG4vLyAkaW5wdXQtcGFkZGluZy14LWxnOiAxLjI1cmVtO1xuLy8gJGlucHV0LXBhZGRpbmcteS1sZzogLjc1cmVtO1xuLy9cbi8vICRpbnB1dC1oZWlnaHQ6ICgoJGZvbnQtc2l6ZS1iYXNlICogJGxpbmUtaGVpZ2h0KSArICgkaW5wdXQtcGFkZGluZy15ICogMikpO1xuLy8gJGlucHV0LWhlaWdodC1sZzogKCgkZm9udC1zaXplLWxnICogJGxpbmUtaGVpZ2h0LWxnKSArICgkaW5wdXQtcGFkZGluZy15LWxnICogMikpO1xuLy8gJGlucHV0LWhlaWdodC1zbTogKCgkZm9udC1zaXplLXNtICogJGxpbmUtaGVpZ2h0LXNtKSArICgkaW5wdXQtcGFkZGluZy15LXNtICogMikpO1xuLy9cbi8vICRmb3JtLWdyb3VwLW1hcmdpbi1ib3R0b206ICRzcGFjZXIteTtcbi8vXG4vLyAkaW5wdXQtZ3JvdXAtYWRkb24tYmc6ICRncmF5LWxpZ2h0ZXI7XG4vLyAkaW5wdXQtZ3JvdXAtYWRkb24tYm9yZGVyLWNvbG9yOiAkaW5wdXQtYm9yZGVyLWNvbG9yO1xuLy9cbi8vICRjdXJzb3ItZGlzYWJsZWQ6IG5vdC1hbGxvd2VkO1xuXG5cbi8vIEZvcm0gdmFsaWRhdGlvbiBpY29uc1xuLy8gJGZvcm0taWNvbi1zdWNjZXNzOiBcImRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIWnBaWGRDYjNnOUlqQWdNQ0EyTVRJZ056a3lJajQ4Y0dGMGFDQm1hV3hzUFNJak5XTmlPRFZqSWlCa1BTSk5Nak16TGpnZ05qRXdZeTB4TXk0eklEQXRNall0Tmkwek5DMHhOaTQ0VERrd0xqVWdORFE0TGpoRE56WXVNeUEwTXpBZ09EQWdOREF6TGpNZ09UZ3VPQ0F6T0Rsak1UZ3VPQzB4TkM0eUlEUTFMalV0TVRBdU5DQTFPUzQ0SURndU5HdzNNaUE1TlV3ME5URXVNeUF5TkRKak1USXVOUzB5TUNBek9DNDRMVEkyTGpJZ05UZ3VPQzB4TXk0M0lESXdJREV5TGpRZ01qWWdNemd1TnlBeE15NDNJRFU0TGpoTU1qY3dJRFU1TUdNdE55NDBJREV5TFRJd0xqSWdNVGt1TkMwek5DNHpJREl3YUMweWVpSXZQand2YzNablBnPT1cIjtcbi8vICRmb3JtLWljb24td2FybmluZzogXCJkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUI0Yld4dWN6MGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY2lJSFpwWlhkQ2IzZzlJakFnTUNBMk1USWdOemt5SWo0OGNHRjBhQ0JtYVd4c1BTSWpaakJoWkRSbElpQmtQU0pOTmpBeklEWTBNQzR5YkMweU56Z3VOUzAxTURsakxUTXVPQzAyTGpZdE1UQXVPQzB4TUM0MkxURTRMalV0TVRBdU5uTXRNVFF1TnlBMExURTRMalVnTVRBdU5rdzVJRFkwTUM0eVl5MHpMamNnTmk0MUxUTXVOaUF4TkM0MExqSWdNakF1T0NBekxqZ2dOaTQxSURFd0xqZ2dNVEF1TkNBeE9DNHpJREV3TGpSb05UVTNZemN1TmlBd0lERTBMall0TkNBeE9DNDBMVEV3TGpRZ015NDFMVFl1TkNBekxqWXRNVFF1TkNBd0xUSXdMamg2YlMweU5qWXVOQzB6TUdndE5qRXVNbFkxTkRsb05qRXVNblkyTVM0eWVtMHdMVEV3TjJndE5qRXVNbFl6TURSb05qRXVNbll4T1RsNklpOCtQQzl6ZG1jK1wiO1xuLy8gJGZvcm0taWNvbi1kYW5nZXI6IFwiZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCNGJXeHVjejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNpSUhacFpYZENiM2c5SWpBZ01DQTJNVElnTnpreUlqNDhjR0YwYUNCbWFXeHNQU0lqWkRrMU16Um1JaUJrUFNKTk5EUTNJRFUwTkM0MFl5MHhOQzQwSURFMExqUXRNemN1TmlBeE5DNDBMVFV5SURCc0xUZzVMVGt5TGpjdE9Ea2dPVEl1TjJNdE1UUXVOU0F4TkM0MExUTTNMamNnTVRRdU5DMDFNaUF3TFRFMExqUXRNVFF1TkMweE5DNDBMVE0zTGpZZ01DMDFNbXc1TWk0MExUazJMak10T1RJdU5DMDVOaTR6WXkweE5DNDBMVEUwTGpRdE1UUXVOQzB6Tnk0MklEQXROVEp6TXpjdU5pMHhOQzR6SURVeUlEQnNPRGtnT1RJdU9DQTRPUzR5TFRreUxqZGpNVFF1TkMweE5DNDBJRE0zTGpZdE1UUXVOQ0ExTWlBd0lERTBMak1nTVRRdU5DQXhOQzR6SURNM0xqWWdNQ0ExTWt3ek5UUXVOaUF6T1Rac09USXVOQ0E1Tmk0MFl6RTBMalFnTVRRdU5DQXhOQzQwSURNM0xqWWdNQ0ExTW5vaUx6NDhMM04yWno0PVwiO1xuXG5cbi8vIERyb3Bkb3duc1xuLy9cbi8vIERyb3Bkb3duIG1lbnUgY29udGFpbmVyIGFuZCBjb250ZW50cy5cblxuLy8gJGRyb3Bkb3duLWJnOiAjZmZmO1xuLy8gJGRyb3Bkb3duLWJvcmRlci1jb2xvcjogcmdiYSgwLDAsMCwuMTUpO1xuLy8gJGRyb3Bkb3duLWJvcmRlci13aWR0aDogJGJvcmRlci13aWR0aDtcbi8vICRkcm9wZG93bi1kaXZpZGVyLWJnOiAjZTVlNWU1O1xuLy9cbi8vICRkcm9wZG93bi1saW5rLWNvbG9yOiAkZ3JheS1kYXJrO1xuLy8gJGRyb3Bkb3duLWxpbmstaG92ZXItY29sb3I6IGRhcmtlbigkZ3JheS1kYXJrLCA1JSk7XG4vLyAkZHJvcGRvd24tbGluay1ob3Zlci1iZzogI2Y1ZjVmNTtcbi8vXG4vLyAkZHJvcGRvd24tbGluay1hY3RpdmUtY29sb3I6ICRjb21wb25lbnQtYWN0aXZlLWNvbG9yO1xuLy8gJGRyb3Bkb3duLWxpbmstYWN0aXZlLWJnOiAkY29tcG9uZW50LWFjdGl2ZS1iZztcbi8vXG4vLyAkZHJvcGRvd24tbGluay1kaXNhYmxlZC1jb2xvcjogJGdyYXktbGlnaHQ7XG4vL1xuLy8gJGRyb3Bkb3duLWhlYWRlci1jb2xvcjogJGdyYXktbGlnaHQ7XG5cblxuLy8gWi1pbmRleCBtYXN0ZXIgbGlzdFxuLy9cbi8vIFdhcm5pbmc6IEF2b2lkIGN1c3RvbWl6aW5nIHRoZXNlIHZhbHVlcy4gVGhleSdyZSB1c2VkIGZvciBhIGJpcmQncyBleWUgdmlld1xuLy8gb2YgY29tcG9uZW50cyBkZXBlbmRlbnQgb24gdGhlIHotYXhpcyBhbmQgYXJlIGRlc2lnbmVkIHRvIGFsbCB3b3JrIHRvZ2V0aGVyLlxuXG4vLyAkemluZGV4LW5hdmJhcjogMTAwMDtcbi8vICR6aW5kZXgtZHJvcGRvd246IDEwMDA7XG4kemluZGV4LXBvcG92ZXI6IDEwNjA7XG4vLyAkemluZGV4LXRvb2x0aXA6IDEwNzA7XG4vLyAkemluZGV4LW5hdmJhci1maXhlZDogMTAzMDtcbi8vICR6aW5kZXgtbmF2YmFyLXN0aWNreTogMTAzMDtcbi8vICR6aW5kZXgtbW9kYWwtYmc6IDEwNDA7XG4vLyAkemluZGV4LW1vZGFsOiAxMDUwO1xuXG5cbi8vIFNTIHRvb2xiYXJzXG4vLyBVc2VkIGZvciB1aSBsYXlvdXQgd2hpY2ggY29udGFpbnMgbWFpbiBhY3Rpb25zLCBzZWNvbmRheSBwYWdlIGFjdGlvbiwgdG9wIGJyZWFkY3J1bWJzIGFuZCBuYXZpZ2F0aW9uIGJhcnMuXG5cbiR0b29sYmFyLWhlaWdodDogNTJweDtcbiR0b29sYmFyLXRvdGFsLWhlaWdodDogJHRvb2xiYXItaGVpZ2h0ICsgMXB4OyAvLyBJbmNsdWRlIGJvcmRlclxuXG5cbi8vIE5hdmJhclxuXG4kbmF2YmFyLWJvcmRlci1yYWRpdXM6ICAwO1xuJG5hdmJhci1wYWRkaW5nLWhvcml6b250YWw6ICRzcGFjZXI7XG4kbmF2YmFyLXBhZGRpbmctdmVydGljYWw6ICgkc3BhY2VyIC8gMik7XG5cbi8vICRuYXZiYXItZGFyay1jb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwuNSk7XG4vLyAkbmF2YmFyLWRhcmstaG92ZXItY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsLjc1KTtcbi8vICRuYXZiYXItZGFyay1hY3RpdmUtY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMSk7XG4vLyAkbmF2YmFyLWRhcmstZGlzYWJsZWQtY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsLjI1KTtcbi8vXG4vLyAkbmF2YmFyLWxpZ2h0LWNvbG9yOiByZ2JhKDAsMCwwLC4zKTtcbi8vICRuYXZiYXItbGlnaHQtaG92ZXItY29sb3I6IHJnYmEoMCwwLDAsLjYpO1xuLy8gJG5hdmJhci1saWdodC1hY3RpdmUtY29sb3I6IHJnYmEoMCwwLDAsLjgpO1xuLy8gJG5hdmJhci1saWdodC1kaXNhYmxlZC1jb2xvcjogcmdiYSgwLDAsMCwuMTUpO1xuXG5cbi8vIE5hdnNcblxuJG5hdi10YWJzLWxpbmstYm9yZGVyLXdpZHRoOiAuMTUzOHJlbTsgIC8vIDJweFxuJG5hdi10YWJzLWxpbmstaG92ZXItYm9yZGVyLWNvbG9yOiAkZ3JheS1saWdodDtcblxuJG5hdi1saW5rLXBhZGRpbmc6ICRzcGFjZXIteSAjeyRzcGFjZXIteCAvIDR9ICN7JHNwYWNlci15IC0gJG5hdi10YWJzLWxpbmstYm9yZGVyLXdpZHRofTtcbiRuYXYtbGluay1ob3Zlci1iZzogdHJhbnNwYXJlbnQ7XG5cbi8vICRuYXYtZGlzYWJsZWQtbGluay1jb2xvcjogJGdyYXktbGlnaHQ7XG4vLyAkbmF2LWRpc2FibGVkLWxpbmstaG92ZXItY29sb3I6ICRncmF5LWxpZ2h0O1xuXG4kbmF2LXRhYnMtYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuJG5hdi10YWJzLWFjdGl2ZS1saW5rLWhvdmVyLWJnOiB0cmFuc3BhcmVudDtcbiRuYXYtdGFicy1hY3RpdmUtbGluay1ob3Zlci1jb2xvcjogJGJvZHktY29sb3I7XG4kbmF2LXRhYnMtYWN0aXZlLWxpbmstaG92ZXItYm9yZGVyLWNvbG9yOiAkYm9keS1jb2xvci1saWdodDtcblxuLy8gJG5hdi10YWJzLWp1c3RpZmllZC1saW5rLWJvcmRlci1jb2xvcjogI2RkZDtcbi8vICRuYXYtdGFicy1qdXN0aWZpZWQtYWN0aXZlLWxpbmstYm9yZGVyLWNvbG9yOiAkYm9keS1iZztcblxuLy8gJG5hdi1waWxscy1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbi8vICRuYXYtcGlsbHMtYWN0aXZlLWxpbmstaG92ZXItYmc6ICRjb21wb25lbnQtYWN0aXZlLWJnO1xuLy8gJG5hdi1waWxscy1hY3RpdmUtbGluay1ob3Zlci1jb2xvcjogJGNvbXBvbmVudC1hY3RpdmUtY29sb3I7XG5cblxuLy8gUGFnaW5hdGlvblxuXG4vLyAkcGFnaW5hdGlvbi1wYWRkaW5nLXg6IC43NXJlbTtcbi8vICRwYWdpbmF0aW9uLXBhZGRpbmcteTogLjVyZW07XG4vLyAkcGFnaW5hdGlvbi1wYWRkaW5nLXgtc206IC43NXJlbTtcbi8vICRwYWdpbmF0aW9uLXBhZGRpbmcteS1zbTogLjI3NXJlbTtcbi8vICRwYWdpbmF0aW9uLXBhZGRpbmcteC1sZzogMS41cmVtO1xuLy8gJHBhZ2luYXRpb24tcGFkZGluZy15LWxnOiAuNzVyZW07XG4vL1xuLy9cbi8vICRwYWdpbmF0aW9uLWNvbG9yOiAkbGluay1jb2xvcjtcbi8vICRwYWdpbmF0aW9uLWJnOiAjZmZmO1xuLy8gJHBhZ2luYXRpb24tYm9yZGVyLXdpZHRoOiAkYm9yZGVyLXdpZHRoO1xuLy8gJHBhZ2luYXRpb24tYm9yZGVyLWNvbG9yOiAjZGRkO1xuLy9cbi8vICRwYWdpbmF0aW9uLWhvdmVyLWNvbG9yOiAkbGluay1ob3Zlci1jb2xvcjtcbi8vICRwYWdpbmF0aW9uLWhvdmVyLWJnOiAkZ3JheS1saWdodGVyO1xuLy8gJHBhZ2luYXRpb24taG92ZXItYm9yZGVyOiAjZGRkO1xuLy9cbi8vICRwYWdpbmF0aW9uLWFjdGl2ZS1jb2xvcjogI2ZmZjtcbi8vICRwYWdpbmF0aW9uLWFjdGl2ZS1iZzogJGJyYW5kLXByaW1hcnk7XG4vLyAkcGFnaW5hdGlvbi1hY3RpdmUtYm9yZGVyOiAkYnJhbmQtcHJpbWFyeTtcbi8vXG4vLyAkcGFnaW5hdGlvbi1kaXNhYmxlZC1jb2xvcjogJGdyYXktbGlnaHQ7XG4vLyAkcGFnaW5hdGlvbi1kaXNhYmxlZC1iZzogI2ZmZjtcbi8vICRwYWdpbmF0aW9uLWRpc2FibGVkLWJvcmRlcjogI2RkZDtcblxuXG4vLyBQYWdlclxuXG4vLyAkcGFnZXItYmc6ICRwYWdpbmF0aW9uLWJnO1xuLy8gJHBhZ2VyLWJvcmRlci13aWR0aDogJGJvcmRlci13aWR0aDtcbi8vICRwYWdlci1ib3JkZXItY29sb3I6ICRwYWdpbmF0aW9uLWJvcmRlci1jb2xvcjtcbi8vICRwYWdlci1ib3JkZXItcmFkaXVzOiAxNXB4O1xuLy9cbi8vICRwYWdlci1ob3Zlci1iZzogJHBhZ2luYXRpb24taG92ZXItYmc7XG4vL1xuLy8gJHBhZ2VyLWFjdGl2ZS1iZzogJHBhZ2luYXRpb24tYWN0aXZlLWJnO1xuLy8gJHBhZ2VyLWFjdGl2ZS1jb2xvcjogJHBhZ2luYXRpb24tYWN0aXZlLWNvbG9yO1xuLy9cbi8vICRwYWdlci1kaXNhYmxlZC1jb2xvcjogJHBhZ2luYXRpb24tZGlzYWJsZWQtY29sb3I7XG5cblxuLy8gSnVtYm90cm9uXG5cbi8vICRqdW1ib3Ryb24tcGFkZGluZzogMnJlbTtcbi8vICRqdW1ib3Ryb24tYmc6ICRncmF5LWxpZ2h0ZXI7XG5cblxuLy8gRm9ybSBzdGF0ZXMgYW5kIGFsZXJ0c1xuLy8gRGVmaW5lIGNvbG9ycyBmb3IgZm9ybSBmZWVkYmFjayBzdGF0ZXMgYW5kLCBieSBkZWZhdWx0LCBhbGVydHMuXG5cbi8vICRzdGF0ZS1zdWNjZXNzLXRleHQ6ICMzYzc2M2Q7XG4vLyAkc3RhdGUtc3VjY2Vzcy1iZzogI2RmZjBkODtcbi8vICRzdGF0ZS1zdWNjZXNzLWJvcmRlcjogZGFya2VuKCRzdGF0ZS1zdWNjZXNzLWJnLCA1JSk7XG4vL1xuLy8gJHN0YXRlLWluZm8tdGV4dDogIzMxNzA4Zjtcbi8vICRzdGF0ZS1pbmZvLWJnOiAjZDllZGY3O1xuLy8gJHN0YXRlLWluZm8tYm9yZGVyOiBkYXJrZW4oJHN0YXRlLWluZm8tYmcsIDclKTtcblxuJHN0YXRlLXdhcm5pbmctdGV4dDogIzhhNmQzYjtcbiRzdGF0ZS13YXJuaW5nLWJnOiAjZmNmOGUzO1xuJHN0YXRlLXdhcm5pbmctYm9yZGVyOiBkYXJrZW4oJHN0YXRlLXdhcm5pbmctYmcsIDE1JSk7XG5cbi8vICRzdGF0ZS1kYW5nZXItdGV4dDogI2E5NDQ0Mjtcbi8vICRzdGF0ZS1kYW5nZXItYmc6ICNmMmRlZGU7XG4vLyAkc3RhdGUtZGFuZ2VyLWJvcmRlcjogZGFya2VuKCRzdGF0ZS1kYW5nZXItYmcsIDUlKTtcblxuXG4vLyBDYXJkc1xuLy8gJGNhcmQtc3BhY2VyLXg6IDEuMjVyZW07XG4vLyAkY2FyZC1zcGFjZXIteTogLjc1cmVtO1xuLy8gJGNhcmQtYm9yZGVyLXdpZHRoOiAxcHg7XG4vLyAkY2FyZC1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbi8vICRjYXJkLWJvcmRlci1jb2xvcjogI2U1ZTVlNTtcbi8vICRjYXJkLWJvcmRlci1yYWRpdXMtaW5uZXI6ICRjYXJkLWJvcmRlci1yYWRpdXM7XG4vLyAkY2FyZC1jYXAtYmc6ICNmNWY1ZjU7XG4vLyAkY2FyZC1iZzogI2ZmZjtcbi8vXG4vLyAkY2FyZC1saW5rLWhvdmVyLWNvbG9yOiAjZmZmO1xuXG5cbi8vIFRvb2x0aXBzXG5cbi8vICR0b29sdGlwLW1heC13aWR0aDogMjAwcHg7XG4vLyAkdG9vbHRpcC1jb2xvcjogI2ZmZjtcbi8vICR0b29sdGlwLWJnOiAjMDAwO1xuLy8gJHRvb2x0aXAtb3BhY2l0eTogLjk7XG4vL1xuLy8gJHRvb2x0aXAtYXJyb3ctd2lkdGg6IDVweDtcbi8vICR0b29sdGlwLWFycm93LWNvbG9yOiAkdG9vbHRpcC1iZztcblxuXG4vLyBQb3BvdmVyc1xuXG4kcG9wb3Zlci1iZzogJHdoaXRlO1xuJHBvcG92ZXItbWF4LXdpZHRoOiAyNzZweDtcbiRwb3BvdmVyLWJvcmRlci13aWR0aDogJGJvcmRlci13aWR0aDtcbiRwb3BvdmVyLWJvcmRlci1jb2xvcjogcmdiYSgwICwgMCwgMCwgLjEpO1xuXG4kcG9wb3Zlci10aXRsZS1iZzogJGJhY2tncm91bmQtZGFya2VyO1xuXG4kcG9wb3Zlci1hcnJvdy13aWR0aDogMTBweDtcbiRwb3BvdmVyLWFycm93LWNvbG9yOiAkcG9wb3Zlci1iZztcblxuJHBvcG92ZXItYXJyb3ctb3V0ZXItd2lkdGg6ICgkcG9wb3Zlci1hcnJvdy13aWR0aCArIDEpO1xuJHBvcG92ZXItYXJyb3ctb3V0ZXItY29sb3I6IGZhZGUtaW4oJHBvcG92ZXItYm9yZGVyLWNvbG9yLCAwLjA1KTtcbiRwb3BvdmVyLXBhZGRpbmc6ICRzcGFjZXIteDtcblxuXG4vLyBMYWJlbHNcblxuLy8gJGxhYmVsLWRlZmF1bHQtYmc6ICRncmF5LWxpZ2h0O1xuLy8gJGxhYmVsLXByaW1hcnktYmc6ICRicmFuZC1wcmltYXJ5O1xuLy8gJGxhYmVsLXN1Y2Nlc3MtYmc6ICRicmFuZC1zdWNjZXNzO1xuLy8gJGxhYmVsLWluZm8tYmc6ICRicmFuZC1pbmZvO1xuLy8gJGxhYmVsLXdhcm5pbmctYmc6ICRicmFuZC13YXJuaW5nO1xuLy8gJGxhYmVsLWRhbmdlci1iZzogJGJyYW5kLWRhbmdlcjtcbi8vXG4vLyAkbGFiZWwtY29sb3I6ICNmZmY7XG4vLyAkbGFiZWwtbGluay1ob3Zlci1jb2xvcjogI2ZmZjtcbi8vICRsYWJlbC1mb250LXdlaWdodDogYm9sZDtcblxuXG4vLyBNb2RhbHNcblxuLy8gUGFkZGluZyBhcHBsaWVkIHRvIHRoZSBtb2RhbCBib2R5XG4vLyAkbW9kYWwtaW5uZXItcGFkZGluZzogMTVweDtcbi8vXG4vLyAkbW9kYWwtdGl0bGUtcGFkZGluZzogMTVweDtcbi8vICRtb2RhbC10aXRsZS1saW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0O1xuLy9cbi8vICRtb2RhbC1jb250ZW50LWJnOiAjZmZmO1xuLy8gJG1vZGFsLWNvbnRlbnQtYm9yZGVyLWNvbG9yOiByZ2JhKDAsMCwwLC4yKTtcbi8vXG4vLyAkbW9kYWwtYmFja2Ryb3AtYmc6ICMwMDA7XG4vLyAkbW9kYWwtYmFja2Ryb3Atb3BhY2l0eTogLjU7XG4vLyAkbW9kYWwtaGVhZGVyLWJvcmRlci1jb2xvcjogI2U1ZTVlNTtcbi8vICRtb2RhbC1mb290ZXItYm9yZGVyLWNvbG9yOiAkbW9kYWwtaGVhZGVyLWJvcmRlci1jb2xvcjtcbi8vXG4vLyAkbW9kYWwtbGc6IDkwMHB4O1xuLy8gJG1vZGFsLW1kOiA2MDBweDtcbi8vICRtb2RhbC1zbTogMzAwcHg7XG5cblxuLy8gQWxlcnRzXG4vL1xuLy8gRGVmaW5lIGFsZXJ0IGNvbG9ycywgYm9yZGVyIHJhZGl1cywgYW5kIHBhZGRpbmcuXG5cbi8vICRhbGVydC1wYWRkaW5nOiAxNXB4O1xuLy8gJGFsZXJ0LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuLy8gJGFsZXJ0LWxpbmstZm9udC13ZWlnaHQ6IGJvbGQ7XG4vLyAkYWxlcnQtYm9yZGVyLXdpZHRoOiAkYm9yZGVyLXdpZHRoO1xuLy9cbi8vICRhbGVydC1zdWNjZXNzLWJnOiAkc3RhdGUtc3VjY2Vzcy1iZztcbi8vICRhbGVydC1zdWNjZXNzLXRleHQ6ICRzdGF0ZS1zdWNjZXNzLXRleHQ7XG4vLyAkYWxlcnQtc3VjY2Vzcy1ib3JkZXI6ICRzdGF0ZS1zdWNjZXNzLWJvcmRlcjtcbi8vXG4vLyAkYWxlcnQtaW5mby1iZzogJHN0YXRlLWluZm8tYmc7XG4vLyAkYWxlcnQtaW5mby10ZXh0OiAkc3RhdGUtaW5mby10ZXh0O1xuLy8gJGFsZXJ0LWluZm8tYm9yZGVyOiAkc3RhdGUtaW5mby1ib3JkZXI7XG4vL1xuLy8gJGFsZXJ0LXdhcm5pbmctYmc6ICRzdGF0ZS13YXJuaW5nLWJnO1xuLy8gJGFsZXJ0LXdhcm5pbmctdGV4dDogJHN0YXRlLXdhcm5pbmctdGV4dDtcbi8vICRhbGVydC13YXJuaW5nLWJvcmRlcjogJHN0YXRlLXdhcm5pbmctYm9yZGVyO1xuLy9cbi8vICRhbGVydC1kYW5nZXItYmc6ICRzdGF0ZS1kYW5nZXItYmc7XG4vLyAkYWxlcnQtZGFuZ2VyLXRleHQ6ICRzdGF0ZS1kYW5nZXItdGV4dDtcbi8vICRhbGVydC1kYW5nZXItYm9yZGVyOiAkc3RhdGUtZGFuZ2VyLWJvcmRlcjtcblxuXG4vLyBQcm9ncmVzcyBiYXJzXG5cbi8vICRwcm9ncmVzcy1iZzogI2Y1ZjVmNTtcbi8vICRwcm9ncmVzcy1iYXItY29sb3I6ICNmZmY7XG4vLyAkcHJvZ3Jlc3MtYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4vL1xuLy8gJHByb2dyZXNzLWJhci1iZzogJGJyYW5kLXByaW1hcnk7XG4vLyAkcHJvZ3Jlc3MtYmFyLXN1Y2Nlc3MtYmc6ICRicmFuZC1zdWNjZXNzO1xuLy8gJHByb2dyZXNzLWJhci13YXJuaW5nLWJnOiAkYnJhbmQtd2FybmluZztcbi8vICRwcm9ncmVzcy1iYXItZGFuZ2VyLWJnOiAkYnJhbmQtZGFuZ2VyO1xuLy8gJHByb2dyZXNzLWJhci1pbmZvLWJnOiAkYnJhbmQtaW5mbztcblxuXG4vLyBMaXN0IGdyb3VwXG5cbiRsaXN0LWdyb3VwLWJnOiAjZmZmO1xuJGxpc3QtZ3JvdXAtYm9yZGVyLWNvbG9yOiAjZGRkO1xuJGxpc3QtZ3JvdXAtYm9yZGVyLXdpZHRoOiAkYm9yZGVyLXdpZHRoO1xuJGxpc3QtZ3JvdXAtYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG5cbiRsaXN0LWdyb3VwLWhvdmVyLWJnOiAjZjVmNWY1O1xuJGxpc3QtZ3JvdXAtYWN0aXZlLWNvbG9yOiAkY29tcG9uZW50LWFjdGl2ZS1jb2xvcjtcbiRsaXN0LWdyb3VwLWFjdGl2ZS1iZzogJGNvbXBvbmVudC1hY3RpdmUtYmc7XG4kbGlzdC1ncm91cC1hY3RpdmUtYm9yZGVyOiAkbGlzdC1ncm91cC1hY3RpdmUtYmc7XG4kbGlzdC1ncm91cC1hY3RpdmUtdGV4dC1jb2xvcjogbGlnaHRlbigkbGlzdC1ncm91cC1hY3RpdmUtYmcsIDQwJSk7XG5cbiRsaXN0LWdyb3VwLWRpc2FibGVkLWNvbG9yOiAkZ3JheS1saWdodDtcbiRsaXN0LWdyb3VwLWRpc2FibGVkLWJnOiAkZ3JheS1saWdodGVyO1xuJGxpc3QtZ3JvdXAtZGlzYWJsZWQtdGV4dC1jb2xvcjogJGxpc3QtZ3JvdXAtZGlzYWJsZWQtY29sb3I7XG5cbiRsaXN0LWdyb3VwLWxpbmstY29sb3I6ICRib2R5LWNvbG9yO1xuJGxpc3QtZ3JvdXAtbGluay1ob3Zlci1jb2xvcjogJGxpc3QtZ3JvdXAtbGluay1jb2xvcjtcbiRsaXN0LWdyb3VwLWxpbmstaGVhZGluZy1jb2xvcjogJGJvZHktY29sb3I7XG5cblxuLy8gSW1hZ2UgdGh1bWJuYWlsc1xuXG4vLyAkdGh1bWJuYWlsLXBhZGRpbmc6IC4yNXJlbTtcbi8vICR0aHVtYm5haWwtYmc6ICRib2R5LWJnO1xuLy8gJHRodW1ibmFpbC1ib3JkZXItd2lkdGg6ICRib3JkZXItd2lkdGg7XG4vLyAkdGh1bWJuYWlsLWJvcmRlci1jb2xvcjogI2RkZDtcbi8vICR0aHVtYm5haWwtYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG5cblxuLy8gQnJlYWRjcnVtYnNcblxuJGJyZWFkY3J1bWItcGFkZGluZy12ZXJ0aWNhbDogN3B4O1xuJGJyZWFkY3J1bWItcGFkZGluZy1ob3Jpem9udGFsOiAwO1xuJGJyZWFkY3J1bWItYmc6IHRyYW5zcGFyZW50O1xuJGJyZWFkY3J1bWItZGl2aWRlci1jb2xvcjogJGJvcmRlci1jb2xvci1kYXJrO1xuJGJyZWFkY3J1bWItYWN0aXZlLWNvbG9yOiAkYm9keS1jb2xvcjtcbiRicmVhZGNydW1iLWRpdmlkZXI6IFwiL1wiO1xuXG5cbi8vIENhcm91c2VsXG5cbi8vICRjYXJvdXNlbC10ZXh0LXNoYWRvdzogMCAxcHggMnB4IHJnYmEoMCwwLDAsLjYpO1xuLy9cbi8vICRjYXJvdXNlbC1jb250cm9sLWNvbG9yOiAjZmZmO1xuLy8gJGNhcm91c2VsLWNvbnRyb2wtd2lkdGg6IDE1JTtcbi8vICRjYXJvdXNlbC1jb250cm9sLW9wYWNpdHk6IC41O1xuLy8gJGNhcm91c2VsLWNvbnRyb2wtZm9udC1zaXplOiAyMHB4O1xuLy9cbi8vICRjYXJvdXNlbC1pbmRpY2F0b3ItYWN0aXZlLWJnOiAjZmZmO1xuLy8gJGNhcm91c2VsLWluZGljYXRvci1ib3JkZXItY29sb3I6ICNmZmY7XG4vL1xuLy8gJGNhcm91c2VsLWNhcHRpb24tY29sb3I6ICNmZmY7XG5cblxuLy8gQ2xvc2VcblxuLy8gJGNsb3NlLWZvbnQtd2VpZ2h0OiBib2xkO1xuLy8gJGNsb3NlLWNvbG9yOiAjMDAwO1xuLy8gJGNsb3NlLXRleHQtc2hhZG93OiAwIDFweCAwICNmZmY7XG5cblxuLy8gQ29kZVxuXG4vLyAkY29kZS1jb2xvcjogI2JkNDE0Nztcbi8vICRjb2RlLWJnOiAjZjdmN2Y5O1xuLy9cbi8vICRrYmQtY29sb3I6ICNmZmY7XG4vLyAka2JkLWJnOiAjMzMzO1xuLy9cbi8vICRwcmUtYmc6ICNmN2Y3Zjk7XG4vLyAkcHJlLWNvbG9yOiAkZ3JheS1kYXJrO1xuLy8gJHByZS1ib3JkZXItY29sb3I6ICNjY2M7XG4vLyAkcHJlLXNjcm9sbGFibGUtbWF4LWhlaWdodDogMzQwcHg7XG5cbi8vIFBhbmVsIHNpemVzXG4kY21zLXBhbmVsLXhzOiA2MHB4O1xuJGNtcy1wYW5lbC1zbTogMzAwcHg7XG4kY21zLXBhbmVsLW1kOiA0NDhweDtcbiRjbXMtcGFuZWwtbGc6IDYzOHB4O1xuXG4vLyBQYW5lbCBwYWRkaW5nXG4kcGFuZWwtcGFkZGluZy14OiAkZ3JpZC1ndXR0ZXItd2lkdGggLyAyO1xuJHBhbmVsLXBhZGRpbmcteTogJGdyaWQtZ3V0dGVyLXdpZHRoIC8gMjtcblxuXG4vLyBTaGFkb3dzXG4kc2hhZG93LWxldmVsLTE6IHJnYmEoMCwgMCwgMCwgLjEpO1xuJHNoYWRvdy1sZXZlbC0yOiByZ2JhKDAsIDAsIDAsIC4xNSk7XG4kc2hhZG93LWxldmVsLTM6IHJnYmEoMCwgMCwgMCwgLjIpO1xuJHNoYWRvdy1sZXZlbC00OiByZ2JhKDAsIDAsIDAsIC4yNSk7XG4kc2hhZG93LWxldmVsLTU6IHJnYmEoMCwgMCwgMCwgLjMwKTtcblxuLy8gVE9ETyB0aWR5IGFsbCBzaGFkb3dzIGNtcyB3aWRlIChpbmNsdWRpbmcgQXNzZXRBZG1pbilcbiRzaGFkb3ctbGlnaHQ6ICRzaGFkb3ctbGV2ZWwtMztcbiRzaGFkb3ctbGlnaHRlcjogJHNoYWRvdy1sZXZlbC0xO1xuJGRyb3Bkb3duLXNoYWRvdzogMCAwIDNweCAkc2hhZG93LWxldmVsLTM7XG4kZ2FsbGVyeS1pdGVtLXNoYWRvdzogMCAxcHggNHB4ICRzaGFkb3ctbGV2ZWwtMztcblxuLy8gR2l2ZXMgaXRlbXMgZGVwdGggb2YgZGlmZmVyZW50IGxldmVsc1xuJHotZGVwdGgtMTogMCAycHggNXB4IDAgJHNoYWRvdy1sZXZlbC0xLCAwIDJweCAxMHB4IDAgJHNoYWRvdy1sZXZlbC0xO1xuJHotZGVwdGgtMjogMCA4cHggMTJweCAwICRzaGFkb3ctbGV2ZWwtMywgMCA2cHggMjBweCAwICRzaGFkb3ctbGV2ZWwtMjtcbiR6LWRlcHRoLTM6IDAgMTJweCAyMHB4IDAgJHNoYWRvdy1sZXZlbC00LCAwIDE3cHggNDBweCAwICRzaGFkb3ctbGV2ZWwtMztcbiR6LWRlcHRoLTQ6IDAgMTZweCAyOHB4IDAgJHNoYWRvdy1sZXZlbC01LCAwIDI1cHggNTVweCAwICRzaGFkb3ctbGV2ZWwtNTtcblxuLy8gTWFza3M6IHR5cGljYWxseSBiZWhpbmQgbW9kYWxzLCBkcmFnIGRyb3AgYXJlYXNcbiRwYWdlLW1hc2stbGlnaHQ6IHJnYmEoMjM2LCAyMzksIDI0MSwgLjkpO1xuXG5cbi8vIEdhbGxlcnkgdGh1bWJuYWlsIGFuZCBpbWFnZSBzaXplc1xuXG4kZ2FsbGVyeS10aHVtYi13aWR0aDogICAxNzZweDtcbiRnYWxsZXJ5LXRodW1iLWhlaWdodDogIDEzMnB4O1xuXG4kZ2FsbGVyeS1pdGVtLXdpZHRoOiAgICAkZ2FsbGVyeS10aHVtYi13aWR0aCArIDI7IC8vIGluY2x1ZGUgYm9yZGVyc1xuJGdhbGxlcnktaXRlbS1oZWlnaHQ6ICAgMTc0cHg7XG4kZ2FsbGVyeS10aXRsZS1oZWlnaHQ6ICA0MHB4O1xuXG4kZ2FsbGVyeS1mb2xkZXItaGVpZ2h0Olx0ICA1NHB4O1xuJGdhbGxlcnktZm9sZGVyLXRpdGxlLWhlaWdodDogJGdhbGxlcnktZm9sZGVyLWhlaWdodCAtIDI7XG5cblxuLy8gVHJhbnNpdGlvbiBzcGVlZHNcblxuJHRyYW5zaXRpb24tc3BlZWQtc2xvdzogICAxcztcbiR0cmFuc2l0aW9uLXNwZWVkLW1pZDogIC41cztcbiR0cmFuc2l0aW9uLXNwZWVkLWZhc3Q6ICAgLjNzO1xuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9 */
diff --git a/client/dist/styles/SelectionGroup.css b/client/dist/styles/SelectionGroup.css
deleted file mode 100755
index ff680c335..000000000
--- a/client/dist/styles/SelectionGroup.css
+++ /dev/null
@@ -1,3 +0,0 @@
-.SelectionGroup,.selection-group{padding-left:0;clear:both}.SelectionGroup li,.selection-group li{list-style-type:none}.SelectionGroup li>div.selectiongroup_item,.SelectionGroup li>.selection-group__item__fieldlist,.selection-group li>div.selectiongroup_item,.selection-group li>.selection-group__item__fieldlist{display:none}.SelectionGroup li.selected>div.selectiongroup_item,.SelectionGroup li.selected>.selection-group__item__fieldlist,.selection-group li.selected>div.selectiongroup_item,.selection-group li.selected>.selection-group__item__fieldlist{display:block}.SelectionGroup input.selector,.selection-group input.selector{width:20px;margin-top:2px;float:left}.mainblock.allassets ul{padding:0 0 0 10px;height:100px;overflow-y:scroll}.mainblock.allassets ul li{width:150px}
-
-/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxlZ2FjeS9TZWxlY3Rpb25Hcm91cC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlDQUVFLGVBQ0EsVUFBWSxDQUhkLHVDQU1JLG9CQUFzQixDQU4xQixrTUFVTSxZQUFjLENBVnBCLHNPQWVNLGFBQWUsQ0FmckIsK0RBcUJJLFdBQ0EsZUFDQSxVQUFZLENBQ2Isd0JBSUQsbUJBQ0EsYUFDQSxpQkFBbUIsQ0FIckIsMkJBTUksV0FBYSxDQUNkIiwiZmlsZSI6ImxlZ2FjeS9TZWxlY3Rpb25Hcm91cC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuU2VsZWN0aW9uR3JvdXAsXG4uc2VsZWN0aW9uLWdyb3VwIHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBjbGVhcjogYm90aDtcblxuICBsaSB7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuXG4gICAgPiBkaXYuc2VsZWN0aW9uZ3JvdXBfaXRlbSxcbiAgICA+IC5zZWxlY3Rpb24tZ3JvdXBfX2l0ZW1fX2ZpZWxkbGlzdCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgICYuc2VsZWN0ZWQgPiBkaXYuc2VsZWN0aW9uZ3JvdXBfaXRlbSxcbiAgICAmLnNlbGVjdGVkID4gLnNlbGVjdGlvbi1ncm91cF9faXRlbV9fZmllbGRsaXN0IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxuXG4gIC8vIEZpeCBmb3IgdGhlIGxhYmVsIG5vdCB3cmFwcGluZyBhcm91bmQgdGhlIGlucHV0IGFzIGl0IHNob3VsZCB3aXRoIEJvb3RzdHJhcFxuICBpbnB1dC5zZWxlY3RvciB7XG4gICAgd2lkdGg6IDIwcHg7XG4gICAgbWFyZ2luLXRvcDogMnB4O1xuICAgIGZsb2F0OiBsZWZ0O1xuICB9XG59XG5cbi5tYWluYmxvY2suYWxsYXNzZXRzIHVsIHtcbiAgcGFkZGluZzogMCAwIDAgMTBweDtcbiAgaGVpZ2h0OiAxMDBweDtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuXG4gIGxpIHtcbiAgICB3aWR0aDogMTUwcHg7XG4gIH1cbn1cbiJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ== */
diff --git a/client/dist/styles/TreeDropdownField.css b/client/dist/styles/TreeDropdownField.css
deleted file mode 100755
index 03f25b9f9..000000000
--- a/client/dist/styles/TreeDropdownField.css
+++ /dev/null
@@ -1,3 +0,0 @@
-div.TreeDropdownField{width:400px;background:#fff;border:1px solid #aaa;cursor:pointer;overflow:visible;position:relative}div.TreeDropdownField input{border:0;background:none;padding:0;margin:0}div.TreeDropdownField .treedropdownfield-title,div.TreeDropdownField .treedropdownfield-search{overflow:hidden;outline:none;z-index:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;-o-text-overflow:ellipsis}div.TreeDropdownField .treedropdownfield-search{background:url("../../../admin/client/dist/images/chosen-sprite.png") no-repeat 100% -22px;background:url("../../../admin/client/dist/images/chosen-sprite.png") no-repeat 100% -22px,-webkit-gradient(linear, left top, left bottom, color-stop(1%, #eee), color-stop(15%, #fff));background:url("../../../admin/client/dist/images/chosen-sprite.png") no-repeat 100% -22px,-webkit-linear-gradient(top, #eee 1%, #fff 15%);background:url("../../../admin/client/dist/images/chosen-sprite.png") no-repeat 100% -22px,-o-linear-gradient(top, #eee 1%, #fff 15%);background:url("../../../admin/client/dist/images/chosen-sprite.png") no-repeat 100% -22px,linear-gradient(to bottom, #eee 1%, #fff 15%);-webkit-box-sizing:border-box;box-sizing:border-box;position:relative;z-index:1100;border:1px solid #aaa;display:inline-block;font-family:sans-serif;font-size:1em;margin:1.5%;outline:0;padding:4px 20px 4px 5px;width:97%}div.TreeDropdownField.searchable .treedropdownfield-panel.loading{min-height:64px;background-position:98% 39px}div.TreeDropdownField .treedropdownfield-panel{clear:left;position:absolute;display:none;cursor:default;border:1px solid #66afe9;border-top:0;margin:-1px 0 0 -1px;background-color:#fff;z-index:70;-webkit-box-shadow:0 4px 5px rgba(0,0,0,0.15);-o-box-shadow:0 4px 5px rgba(0,0,0,0.15);box-shadow:0 4px 5px rgba(0,0,0,0.15);right:0;left:0;width:calc(100% + 2px) !important;border-bottom-left-radius:3px;border-bottom-right-radius:3px}div.TreeDropdownField .treedropdownfield-panel.loading{min-height:30px;background:#fff url("../images/network-save.gif") 98% 7px no-repeat}div.TreeDropdownField .treedropdownfield-panel .tree-holder{position:relative;z-index:1}div.TreeDropdownField .treedropdownfield-panel .tree-holder>ul{position:relative;max-height:200px;overflow-y:auto;margin-bottom:10px}div.TreeDropdownField .treedropdownfield-panel ul{overflow-x:hidden;float:left;width:100%}div.TreeDropdownField .treedropdownfield-panel ul .jstree-icon{margin-left:5px}div.TreeDropdownField .treedropdownfield-panel ul .jstree-open>ins{background-position:-18px 0}div.TreeDropdownField .treedropdownfield-panel ul.tree{margin:0}div.TreeDropdownField .treedropdownfield-panel ul.tree a{font-size:12px}div.TreeDropdownField .treedropdownfield-toggle-panel-link{border:0;margin:0;z-index:0;padding:7px 3px;overflow:hidden;border-radius:0 4px 4px 0;position:absolute;right:5px;top:3px}div.TreeDropdownField .treedropdownfield-toggle-panel-link.treedropdownfield-open-tree{background:transparent;border:0}div.TreeDropdownField .treedropdownfield-toggle-panel-link a{text-decoration:none;display:block;border:0;margin:0;opacity:0.5}div.TreeDropdownField a.jstree-loading .jstree-pageicon{background:#fff url("../images/network-save.gif") center center no-repeat}
-
-/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxlZ2FjeS9UcmVlRHJvcGRvd25GaWVsZC5zY3NzIiwiLi4vLi4vLi4vYWRtaW4vY2xpZW50L3NyYy9zdHlsZXMvbGVnYWN5L19taXhpbnMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxzQkFDQyxZQUNBLGdCQUNBLHNCQUNBLGVBQ0EsaUJBQ0EsaUJBQW1CLENBTnBCLDRCQVNFLFNBQ0EsZ0JBQ0EsVUFDQSxRQUFVLENBWlosK0ZBZ0JFLGdCQUNBLGFBQ0EsVUNMRCxnQkFDQSxtQkFDQSx1QkFDQSx5QkFBMkIsQ0RoQjVCLGdEQTBCRSwyRkFDQSx3TEFBQSxBQUdBLDJJQUhBLEFBR0Esc0lBSEEsQUFHQSx5SUFBQSw4QkFBQSxBQUNBLHNCQUFBLGtCQUNBLGFBQ0Esc0JBQ0EscUJBQ0EsdUJBQ0EsY0FDQSxZQUNBLFVBQ0EseUJBQ0EsU0FBVyxDQXhDYixrRUE0Q0UsZ0JBQ0EsNEJBQThCLENBN0NoQywrQ0FpREUsV0FDQSxrQkFDQSxhQUNBLGVBQ0EseUJBQ0EsYUFDQSxxQkFDQSxzQkFDQSxXQUNBLDhDQUNBLEFBQ0EseUNBQ0Esc0NBQ0UsUUFDQSxPQUNBLGtDQUNBLDhCQUNBLDhCQUFnQyxDQWxFcEMsdURBcUVHLGdCQUNBLG1FQUFvRSxDQXRFdkUsNERBMEVNLGtCQUNBLFNBQVcsQ0EzRWpCLCtEQThFUSxrQkFDQSxpQkFDQSxnQkFDQSxrQkFBb0IsQ0FqRjVCLGtEQXNGRyxrQkFDQSxXQUNBLFVBQVksQ0F4RmYsK0RBMkZJLGVBQWlCLENBM0ZyQixtRUErRkksMkJBQTZCLENBL0ZqQyx1REFvR0csUUFBVSxDQXBHYix5REF1R0ksY0FBZ0IsQ0F2R3BCLDJEQTZHRSxTQUNBLFNBQ0EsVUFDQSxnQkFDQSxnQkFDQSxBQUVBLDBCQUNBLGtCQUNBLFVBQ0EsT0FBUyxDQXZIWCx1RkEwSEcsdUJBQ0EsUUFBVSxDQTNIYiw2REErSEcscUJBQ0EsY0FDQSxTQUNBLFNBQ0EsV0FBYSxDQW5JaEIsd0RBeUlFLHlFQUEwRSxDQUMxRSIsImZpbGUiOiJsZWdhY3kvVHJlZURyb3Bkb3duRmllbGQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGltcG9ydCBcIi4uLy4uLy4uLy4uL2FkbWluL2NsaWVudC9zcmMvc3R5bGVzL2xlZ2FjeS9fbWl4aW5zLnNjc3NcIjtcblxuZGl2LlRyZWVEcm9wZG93bkZpZWxkIHtcblx0d2lkdGg6IDQwMHB4O1xuXHRiYWNrZ3JvdW5kOiAjZmZmO1xuXHRib3JkZXI6IDFweCBzb2xpZCAjYWFhO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdG92ZXJmbG93OiB2aXNpYmxlO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0aW5wdXQge1xuXHRcdGJvcmRlcjogMDtcblx0XHRiYWNrZ3JvdW5kOiBub25lO1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0bWFyZ2luOiAwO1xuXHR9XG5cblx0LnRyZWVkcm9wZG93bmZpZWxkLXRpdGxlIHtcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdG91dGxpbmU6IG5vbmU7XG5cdFx0ei1pbmRleDogMTtcblx0XHRAaW5jbHVkZSBoaWRlLXRleHQtb3ZlcmZsb3c7XG5cdH1cblxuXHQudHJlZWRyb3Bkb3duZmllbGQtc2VhcmNoIHtcblx0XHRAZXh0ZW5kIC50cmVlZHJvcGRvd25maWVsZC10aXRsZTtcblxuXHRcdC8vIFN0eWxlIHNlYXJjaCBib3ggdG8gbWF0Y2ggY2hvc2VuIHNlYXJjaFxuXHRcdGJhY2tncm91bmQ6IHVybCgnLi4vLi4vLi4vYWRtaW4vY2xpZW50L2Rpc3QvaW1hZ2VzL2Nob3Nlbi1zcHJpdGUucG5nJykgbm8tcmVwZWF0IDEwMCUgLTIycHg7IC8vIEZvciBicm93c2VycyB0aGF0IG9ubHkgc3VwcG9ydCAxIGJhY2tncm91bmRcblx0XHRiYWNrZ3JvdW5kOlxuXHRcdFx0dXJsKCcuLi8uLi8uLi9hZG1pbi9jbGllbnQvZGlzdC9pbWFnZXMvY2hvc2VuLXNwcml0ZS5wbmcnKSBuby1yZXBlYXQgMTAwJSAtMjJweCxcblx0XHRcdGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICNlZWVlZWUgMSUsICNmZmZmZmYgMTUlKTtcblx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHR6LWluZGV4OiAxMTAwOyAvLyBOZWVkZWQgdG8gd29yayB3aXRoaW4gbW9kYWxzIGluIGNocm9tZVxuXHRcdGJvcmRlcjogMXB4IHNvbGlkICNhYWE7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xuXHRcdGZvbnQtc2l6ZTogMWVtO1xuXHRcdG1hcmdpbjogMS41JTtcblx0XHRvdXRsaW5lOiAwO1xuXHRcdHBhZGRpbmc6IDRweCAyMHB4IDRweCA1cHg7XG5cdFx0d2lkdGg6IDk3JTsgLy8gb3B0aW1pemVkIGZvciBtb3N0IGNvbW1vbiB0cmVlIHdpZHRoXG5cdH1cblxuXHQmLnNlYXJjaGFibGUgLnRyZWVkcm9wZG93bmZpZWxkLXBhbmVsLmxvYWRpbmcge1xuXHRcdG1pbi1oZWlnaHQ6IDE2cHggKyAxNHB4ICsgMzRweDsgLy8gaWNvbiArIHBhZGRpbmcgKyBhcHByb3guIGhlaWdodCBzZWFyY2ggaW5wdXQuIEVuc3VyZSB0aGVyZSdzIHJvb20gZm9yIGxvYWRpbmcgaW5kaWNhdG9yXG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogOTglIDM5cHg7XG5cdH1cblxuXHQudHJlZWRyb3Bkb3duZmllbGQtcGFuZWwge1xuXHRcdGNsZWFyOiBsZWZ0O1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRkaXNwbGF5OiBub25lO1xuXHRcdGN1cnNvcjogZGVmYXVsdDtcblx0XHRib3JkZXI6IDFweCBzb2xpZCAjNjZhZmU5O1xuXHRcdGJvcmRlci10b3A6IDA7XG5cdFx0bWFyZ2luOiAtMXB4IDAgMCAtMXB4OyAvLyBhY2NvdW50IGZvciBib3JkZXIgb24gY29udGFpbmVyIGRpdlxuXHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG5cdFx0ei1pbmRleDogNzA7XG5cdFx0LXdlYmtpdC1ib3gtc2hhZG93OiAwIDRweCA1cHggcmdiYSgwLDAsMCwuMTUpO1xuXHRcdC1tb3otYm94LXNoYWRvdyAgIDogMCA0cHggNXB4IHJnYmEoMCwwLDAsLjE1KTtcblx0XHQtby1ib3gtc2hhZG93ICAgICA6IDAgNHB4IDVweCByZ2JhKDAsMCwwLC4xNSk7XG5cdFx0Ym94LXNoYWRvdyAgICAgICAgOiAwIDRweCA1cHggcmdiYSgwLDAsMCwuMTUpO1xuICAgIHJpZ2h0OiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSArIDJweCkgIWltcG9ydGFudDtcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAzcHg7XG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDNweDtcblxuXHRcdCYubG9hZGluZyB7XG5cdFx0XHRtaW4taGVpZ2h0OiAxNnB4ICsgMTRweDsgLy8gaWNvbiArIHBhZGRpbmcuIEVuc3VyZSB0aGVyZSdzIHJvb20gZm9yIGxvYWRpbmcgaW5kaWNhdG9yXG5cdFx0XHRiYWNrZ3JvdW5kOiAjZmZmIHVybChcIi4uL2ltYWdlcy9uZXR3b3JrLXNhdmUuZ2lmXCIpIDk4JSA3cHggbm8tcmVwZWF0O1xuXHRcdH1cblxuICAgIC50cmVlLWhvbGRlciB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB6LWluZGV4OiAxO1xuXG4gICAgICA+IHVsIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtaGVpZ2h0OiAyMDBweDtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAgIH1cbiAgICB9XG5cblx0XHR1bCB7XG5cdFx0XHRvdmVyZmxvdy14OiBoaWRkZW47XG5cdFx0XHRmbG9hdDogbGVmdDtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXG5cdFx0XHQuanN0cmVlLWljb24ge1xuXHRcdFx0XHRtYXJnaW4tbGVmdDogNXB4OyAvLyBtb3ZlIHRvIGFsaWduIHdpdGggcG9zc2libGUgc2VhcmNoIGJveFxuXHRcdFx0fVxuXG5cdFx0XHQuanN0cmVlLW9wZW4gPiBpbnMge1xuXHRcdFx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMThweCAwOyAvLyBtb3ZlIHRvIGFsaWduIHdpdGggcG9zc2libGUgc2VhcmNoIGJveFxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHVsLnRyZWUge1xuXHRcdFx0bWFyZ2luOiAwO1xuXG5cdFx0XHRhIHtcblx0XHRcdFx0Zm9udC1zaXplOiAxMnB4O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC50cmVlZHJvcGRvd25maWVsZC10b2dnbGUtcGFuZWwtbGluayB7XG5cdFx0Ym9yZGVyOiAwO1xuXHRcdG1hcmdpbjogMDtcblx0XHR6LWluZGV4OiAwO1xuXHRcdHBhZGRpbmc6IDdweCAzcHg7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHQtd2Via2l0LWJvcmRlci1yYWRpdXM6IDAgNHB4IDRweCAwO1xuXHRcdC1tb3otYm9yZGVyLXJhZGl1czogMCA0cHggNHB4IDA7XG5cdFx0Ym9yZGVyLXJhZGl1czogMCA0cHggNHB4IDA7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHJpZ2h0OiA1cHg7XG5cdFx0dG9wOiAzcHg7XG5cblx0XHQmLnRyZWVkcm9wZG93bmZpZWxkLW9wZW4tdHJlZSB7XG5cdFx0XHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0XHRcdGJvcmRlcjogMDtcblx0XHR9XG5cblx0XHRhIHtcblx0XHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0Ym9yZGVyOiAwO1xuXHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0b3BhY2l0eTogMC41O1xuXHRcdH1cblx0fVxuXG5cdGEuanN0cmVlLWxvYWRpbmcgLmpzdHJlZS1wYWdlaWNvbiB7XG5cdFx0Ly8gQXBwbHkgdG8gLmpzdHJlZS1wYWdlaWNvbiBzaW5jZSAuanN0cmVlLWljb24gaXMgaGlkZGVuXG5cdFx0YmFja2dyb3VuZDogI2ZmZiB1cmwoXCIuLi9pbWFnZXMvbmV0d29yay1zYXZlLmdpZlwiKSBjZW50ZXIgY2VudGVyIG5vLXJlcGVhdDtcblx0fVxufVxuIiwiLy8qKlxuLy8gKiBUaGlzIGZpbGUgY29udGFpbnMgZ2VuZXJpYyBtaXhpbnMgd2hpY2ggd2UgdXNlIHRocm91Z2hvdXRcbi8vICogdGhlIGFkbWluIHBhbmVscy5cbi8vICpcbi8vICogTWl4aW5zIHNob3VsZCBiZSBzdG9yZWQgaGVyZSByYXRoZXIgdGhhbiBpbmRpdmlkdWFsIGZpbGVzXG4vLyAqIHNvIHRoYXQgd2UgY2FuIGtlZXAuXG4vLyAqL1xuXG4vLyoqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vICogSGlkZXMgdGhlIG92ZXJmbG93aW5nIHRleHQgZnJvbSBhIGNvbnRhaW5lclxuLy8gKlxuLy8gKiBOb3RlOiB5b3UgbXVzdCBkZWZpbmUgYSB3aWR0aCBvbiB0aGUgZWxlbWVudCB3aXRoIHRoaXNcbi8vICogb3ZlcmZsb3cuXG4vLyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5AbWl4aW4gaGlkZS10ZXh0LW92ZXJmbG93IHtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cdC1vLXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuXG5AbWl4aW4gYm94LXNoYWRvdy1ub25le1xuXHQtbW96LWJveC1zaGFkb3c6IG5vbmU7XG5cdC13ZWJraXQtYm94LXNoYWRvdzogbm9uZTtcbiAgICBib3gtc2hhZG93OiBub25lO1xufVxuXG5cbi8vKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vL0NsZWFyZml4IG1peGluIGNsZWFycyB0aGUgZmxvYXQgb2YgaXQncyBwYXJlbnQgZWxlbWVudFxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKiovXG5AbWl4aW4gY2xlYXJmaXh7XG5cdCY6YWZ0ZXJ7XG5cdFx0Y29udGVudDogXCIuXCI7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0aGVpZ2h0OiAwO1xuXHRcdGNsZWFyOiBib3RoO1xuXHRcdHZpc2liaWxpdHk6IGhpZGRlbjtcblx0fVxuXHQqOmZpcnN0LWNoaWxkICZ7IHpvb206MTt9XG59XG5cblxuXG4vLyoqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vICogQ2xlYXIgdGhlIHByb3BlcnRpZXMgb2Ygc3ViIGZvcm0gZmllbGRzLlxuLy8gKlxuLy8gKiBPZnRlbiBuZWVkZWQgZm9yIG5lc3RlZCBmb3JtIGZpZWxkcyBhbmRcbi8vICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbkBtaXhpbiBjbGVhci1mb3JtLWZpZWxkLXN0eWxlcyB7XG5cdC5maWVsZCB7XG5cdFx0cGFkZGluZzogMDtcblx0XHRib3JkZXI6IDA7XG5cdH1cblxuXHRsYWJlbCB7XG5cdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0d2lkdGg6IGF1dG87XG5cblx0XHQmLmxlZnQge1xuXHRcdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0XHRkaXNwbGF5OiBpbmhlcml0O1xuXHRcdFx0d2lkdGg6IGF1dG87XG5cdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0bGluZS1oZWlnaHQ6IGluaGVyaXQ7XG5cdFx0fVxuXHR9XG5cblx0Lm1pZGRsZUNvbHVtbiB7XG5cdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdH1cblxuXHRpbnB1dC50ZXh0LFxuXHR0ZXh0YXJlYSxcblx0c2VsZWN0LFxuXHQuVHJlZURyb3Bkb3duRmllbGQge1xuXHRcdHdpZHRoOiBhdXRvO1xuXHRcdG1heC13aWR0aDogYXV0bztcblx0fVxufVxuXG4vLyoqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vICogRG91YmxlIHRvbmUgYm9yZGVyc1xuLy8gKlxuLy8gKiBodHRwOi8vZGF2ZXJ1cGVydC5jb20vMjAxMS8wNi90d28tdG9uZS1ib3JkZXJzLXdpdGgtY3NzMy9cbi8vICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbkBtaXhpbiBkb3VibGVib3JkZXIoJHNpZGUsICRpbm5lckNvbG9yLCAkb3V0ZXJDb2xvcikge1xuICAgICRzaGFkb3c6IFwiMCAwIDBcIjtcbiAgICBib3JkZXItI3skc2lkZX06IDFweCBzb2xpZCAkaW5uZXJDb2xvcjtcbiAgICBAaWYgKCRzaWRlID09IFwidG9wXCIpIHsgJHNoYWRvdzogMCAtMXB4IDA7IH1cbiAgICBAaWYgKCRzaWRlID09IFwicmlnaHRcIikgeyAkc2hhZG93OiAxcHggMCAwOyB9XG4gICAgQGlmICgkc2lkZSA9PSBcImJvdHRvbVwiKSB7ICRzaGFkb3c6IDAgMXB4IDA7IH1cbiAgICBAaWYgKCRzaWRlID09IFwibGVmdFwiKSB7ICRzaGFkb3c6IC0xcHggMCAwOyB9XG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiAkc2hhZG93ICRvdXRlckNvbG9yO1xuICAgIC1tb3otYm94LXNoYWRvdzogJHNoYWRvdyAkb3V0ZXJDb2xvcjtcbiAgICAtby1ib3gtc2hhZG93OiAkc2hhZG93ICRvdXRlckNvbG9yO1xuICAgIGJveC1zaGFkb3c6ICRzaGFkb3cgJG91dGVyQ29sb3I7XG59XG5cblxuLypNaXhpbiB1c2VkIHRvIGdlbmVyYXRlIHNsaWdodGx5IHNtYWxsZXIgdGV4dCBhbmQgZm9ybXNcblVzZWQgaW4gc2lkZSBwYW5lbHMgYW5kIGFjdGlvbiB0YWJzXG4qL1xuQG1peGluIHRpZ2h0U3BhY2luZ3tcblx0aDMsaDQsaDUge1xuXHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdGxpbmUtaGVpZ2h0OiAkZ3JpZC15ICogMjtcblx0fVxuXHRoMyB7XG5cdFx0Zm9udC1zaXplOiAkZm9udC1zaXplLXJvb3Q7XG5cdH1cblxuXHRoNCB7XG5cdFx0Zm9udC1zaXplOiAkZm9udC1zaXplLXJvb3QgLTE7XG5cdFx0bWFyZ2luOiA1cHggMDtcblx0fVxuXG5cdC51aS13aWRnZXQtY29udGVudCB7XG5cdFx0YmFja2dyb3VuZDogbm9uZTtcblx0fVxuXG5cdC5maWVsZCB7XG5cdFx0Lypcblx0XHQgKiBGaWVsZHMgYXJlIG1vcmUgY29tcHJlc3NlZCBpbiBzb21lIGFyZWFzIGNvbXBhcmVkIHRvIHRoZVxuXHRcdCAqIG1haW4gY29udGVudCBlZGl0aW5nIHdpbmRvdyBzbyB0aGUgYmVsb3cgYWx0ZXJzIHRoZSBpbnRlcm5hbFxuXHRcdCAqIHNwYWNpbmcgb2YgdGhlIGZpZWxkcyBzbyB3ZSBjYW4gbW92ZSB0aGF0IHNwYWNpbmcgdG8gYmV0d2VlblxuXHRcdCAqIHRoZSBmb3JtIGZpZWxkcyByYXRoZXIgdGhhbiBwYWRkaW5nXG5cdFx0ICovXG5cdFx0Ym9yZGVyLWJvdHRvbTpub25lO1xuXHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cdFx0bGFiZWwge1xuXHRcdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0XHR3aWR0aDogYXV0bztcblx0XHRcdGZvbnQtc2l6ZTogMTJweDtcblx0XHRcdHBhZGRpbmc6IDAgJGdyaWQteCA0cHggMDtcblx0XHRcdCYuZXh0cmEtZGV0YWlsc3tcblx0XHRcdFx0b3ZlcmZsb3c6aGlkZGVuO1xuXHRcdFx0XHRtYXJnaW4tdG9wOjEwcHg7XG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHRjb2xvcjogbGlnaHRlbigkY29sb3ItdGV4dCwgMzUlKTtcblx0XHRcdFx0Zm9udC1zdHlsZTppdGFsaWM7XG5cdFx0XHRcdGZvbnQtd2VpZ2h0Om5vcm1hbDtcblx0XHRcdFx0Zm9udC1zaXplOjFlbTtcblx0XHRcdFx0ZmxvYXQ6bGVmdDtcblx0XHRcdFx0dGV4dC1zaGFkb3c6IG5vbmU7XG5cdFx0XHRcdCYuZmlsbHtcblx0XHRcdFx0XHQmOmJlZm9yZXtcblx0XHRcdFx0XHRcdGNvbG9yOiNmZmY7XG5cdFx0XHRcdFx0XHRjb250ZW50OiAnPyc7XG5cdFx0XHRcdFx0XHRmb250LXNpemU6MTJweDtcblx0XHRcdFx0XHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0XHRcdFx0XHRwYWRkaW5nLWxlZnQ6M3B4O1xuXHRcdFx0XHRcdFx0cGFkZGluZy1yaWdodDozcHg7XG5cdFx0XHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdFx0XHRcdFx0ZmxvYXQ6bGVmdDtcblx0XHRcdFx0XHRcdHRleHQtc2hhZG93OiBub25lO1xuXHRcdFx0XHRcdFx0Ym9yZGVyLXJhZGl1czogNTBweDtcblx0XHRcdFx0XHRcdGJhY2tncm91bmQtY29sb3I6bGlnaHRlbigkY29sb3ItdGV4dCwgNDUlKTtcblx0XHRcdFx0XHRcdHdpZHRoOjIxcHg7XG5cdFx0XHRcdFx0XHRoZWlnaHQ6MTVweDtcblx0XHRcdFx0XHRcdG1hcmdpbi1yaWdodDo1cHg7XG5cdFx0XHRcdFx0XHRtYXJnaW4tYm90dG9tOjVweDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHQubWlkZGxlQ29sdW1uIHtcblx0XHRcdG1hcmdpbjogMDtcblx0XHR9XG5cblx0XHRpbnB1dC50ZXh0LFxuXHRcdHNlbGVjdCxcblx0XHR0ZXh0YXJlYSB7XG5cdFx0XHRwYWRkaW5nOiA1cHg7XG5cdFx0XHRmb250LXNpemU6IDExcHg7XG5cdFx0fVxuXG5cdFx0Ji5jaGVja2JveCB7XG5cdFx0XHRwYWRkaW5nOiAwIDhweCAwO1xuXG5cdFx0XHRpbnB1dCB7XG5cdFx0XHRcdG1hcmdpbjogMnB4IDA7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0LmZvcm1fX2ZpZWxkZ3JvdXAge1xuXHRcdC5mb3JtX19maWVsZGdyb3VwLWl0ZW0ge1xuXHRcdFx0cGFkZGluZzogMDtcblxuXHRcdFx0LmZpZWxkIHtcblx0XHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8qIFJlc3R5bGUgZm9yIHNtYWxsZXIgYXJlYSovXG5cdC5jbXMtY29udGVudC1maWVsZHN7XG5cdFx0b3ZlcmZsb3c6dmlzaWJsZTtcblx0fVxuXHQuY2hvc2VuLWNvbnRhaW5lci1zaW5nbGV7XG5cdFx0d2lkdGg6MTAwJSAhaW1wb3J0YW50O1xuXHRcdC5jaG9zZW4tc2luZ2xle1xuXHRcdFx0cGFkZGluZzogMCAwIDAgNXB4O1xuXHRcdFx0ZmxvYXQ6bm9uZTtcblx0XHR9XG5cdH1cblx0LmNtcy1jb250ZW50LWFjdGlvbnMsIC5jbXMtcHJldmlldy1jb250cm9sc3tcblx0XHRwYWRkaW5nOjA7XG5cdFx0aGVpZ2h0OmF1dG87XG5cdFx0Ym9yZGVyOm5vbmU7XG5cdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0fVxuXHQuY21zLWVkaXQtZm9ybXtcblx0XHR3aWR0aDoxMDAlO1xuXHR9XG5cdC5Db21wb3NpdGVGaWVsZHtcblx0XHRtYXJnaW46MDtcblx0XHRwYWRkaW5nOjA7XG5cdFx0ZmxvYXQ6bm9uZTtcblx0fVxuXHQucGFyZW50LW1vZGV7XG5cdFx0cGFkZGluZy10b3A6MDtcblx0fVxuXHQudHJlZWRyb3Bkb3duLCAuU2VsZWN0aW9uR3JvdXAgbGkuc2VsZWN0ZWQgZGl2LmZpZWxke1xuXHRcdG1hcmdpbjoxMHB4IDAgMCAwO1xuXHRcdC8vQGluY2x1ZGUgYm94LXNoYWRvdyhpbnNldCAwIDFweCAwICNmZmYsIDAgMXB4IDFweCByZ2JhKDAsMCwwLDAuMSkpO1xuXHRcdC50cmVlZHJvcGRvd25maWVsZC10aXRsZXtcblx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xuXHRcdFx0ei1pbmRleDoyO1xuXHRcdFx0cGFkZGluZzo1cHg7XG5cdFx0fVxuXHRcdC50cmVlZHJvcGRvd25maWVsZC1wYW5lbHtcblx0XHRcdG1hcmdpbi10b3A6MTFweDtcblx0XHR9XG5cdFx0LnRyZWVkcm9wZG93bmZpZWxkLXRvZ2dsZS1wYW5lbC1saW5re1xuXHRcdFx0YmFja2dyb3VuZDpub25lO1xuXHRcdFx0Ym9yZGVyLWxlZnQ6bm9uZTtcblx0XHRcdHBhZGRpbmc6NXB4IDNweDtcblx0XHRcdC51aS1pY29ue1xuXHRcdFx0XHRmbG9hdDpyaWdodDtcblx0XHRcdFx0b3BhY2l0eTowLjc7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdC5jbXMtYWRkLWZvcm0gdWwuU2VsZWN0aW9uR3JvdXB7XG5cdFx0cGFkZGluZy1sZWZ0OjA7XG5cdFx0cGFkZGluZy1yaWdodDowO1xuXHRcdG92ZXJmbG93OnZpc2libGU7XG5cdFx0Ym9yZGVyLWJvdHRvbTpub25lO1xuXHR9XG59XG5cbi8vKiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gKiBDb21wYXNzIHJlcGxhY2VtZW50IG1peGlucy5cbi8vICpcbi8vICogTWl4aW5zIHRoYXQgd2VyZSBidWlsdC1pbiB3aXRoIGNvbXBhc3Ncbi8vICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuQG1peGluIGxlZ2FjeS1waWUtY2xlYXJmaXgge1xuXHQmOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlxcMDAyMFwiO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMDtcbiAgICBjbGVhcjogYm90aDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxufVxuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9 */
diff --git a/docs/en/04_Changelogs/4.0.0.md b/docs/en/04_Changelogs/4.0.0.md
index 20c57e4c2..f0328f649 100644
--- a/docs/en/04_Changelogs/4.0.0.md
+++ b/docs/en/04_Changelogs/4.0.0.md
@@ -138,11 +138,14 @@ admin/images/sprites/dist/ => admin/client/dist/sprites/
admin/font/ => admin/client/dist/font/
```
-If you're not doing this already, we suggest looking into a JavaScript bundler
-like [Webpack](http://webpack.github.io/), to combine JavaScript files. SilverStripe
-core is moving away from `Requirements::combine_files` in favour of Webpack as of
-4.0 and `Requirements::combine_files` is being considered for deprecation in future
-versions.
+Most JavaScript files in `framework/javascript` have been removed,
+and are bundled through [Webpack](http://webpack.github.io/) into a combined file instead.
+If you have referenced these files elsewhere, please consider
+running the ES6 source files in `admin/client/src/legacy`
+through your own transpiling and bundle process.
+
+SilverStripe core is moving away from `Requirements::combine_files` in favour of Webpack as of
+4.0. `Requirements::combine_files` is being considered for deprecation in future versions.
#### Explicit text casting is now enforced on all template variables