');
- $('body').append(dialog);
- }
-
- $.ajax({
- url: url,
- complete: function complete() {
- dialog.removeClass('loading');
- },
- success: function success(html) {
- dialog.html(html);
- dialog.getForm().setElement(self);
- dialog.trigger('ssdialogopen');
- }
- });
- }
- });
-
- $('.htmleditorfield-dialog').entwine({
- onadd: function onadd() {
- if (!this.is('.ui-dialog-content')) {
- this.ssdialog({
- autoOpen: true,
- buttons: {
- 'insert': {
- text: _i18n2.default._t('HtmlEditorField.INSERT', 'Insert'),
- 'data-icon': 'accept',
- class: 'ss-ui-action-constructive media-insert',
- click: function click() {
- $(this).find('form').submit();
- }
- }
- }
- });
- }
-
- this._super();
- },
-
- getForm: function getForm() {
- return this.find('form');
- },
- open: function open() {
- this.ssdialog('open');
- },
- close: function close() {
- this.ssdialog('close');
- },
- toggle: function toggle(bool) {
- if (this.is(':visible')) this.close();else this.open();
- },
- onscroll: function onscroll() {
- this.animate({
- scrollTop: this.find('form').height()
- }, 500);
- }
- });
-
- $('form.htmleditorfield-form').entwine({
- Selection: null,
-
- Bookmark: null,
-
- Element: null,
-
- setSelection: function setSelection(node) {
- return this._super($(node));
- },
-
- onadd: function onadd() {
- var titleEl = this.find(':header:first');
- this.getDialog().attr('title', titleEl.text());
-
- this._super();
- },
- onremove: function onremove() {
- this.setSelection(null);
- this.setBookmark(null);
- this.setElement(null);
-
- this._super();
- },
-
- getDialog: function getDialog() {
- return this.closest('.htmleditorfield-dialog');
- },
-
- fromDialog: {
- onssdialogopen: function onssdialogopen() {
- var ed = this.getEditor();
-
- this.setSelection(ed.getSelectedNode());
- this.setBookmark(ed.createBookmark());
-
- ed.blur();
-
- this.find(':input:not(:submit)[data-skip-autofocus!="true"]').filter(':visible:enabled').eq(0).focus();
-
- this.redraw();
- this.updateFromEditor();
- },
-
- onssdialogclose: function onssdialogclose() {
- var ed = this.getEditor();
-
- ed.moveToBookmark(this.getBookmark());
-
- this.setSelection(null);
- this.setBookmark(null);
-
- this.resetFields();
- }
- },
-
- getEditor: function getEditor() {
- return this.getElement().getEditor();
- },
-
- modifySelection: function modifySelection(callback) {
- var ed = this.getEditor();
-
- ed.moveToBookmark(this.getBookmark());
- callback.call(this, ed);
-
- this.setSelection(ed.getSelectedNode());
- this.setBookmark(ed.createBookmark());
-
- ed.blur();
- },
-
- updateFromEditor: function updateFromEditor() {},
- redraw: function redraw() {},
- resetFields: function resetFields() {
- this.find('.tree-holder').empty();
- }
- });
-
- $('form.htmleditorfield-linkform').entwine({
- onsubmit: function onsubmit(e) {
- this.insertLink();
- this.getDialog().close();
- return false;
- },
- resetFields: function resetFields() {
- this._super();
-
- this[0].reset();
- },
- redraw: function redraw() {
- this._super();
-
- var linkType = this.find(':input[name=LinkType]:checked').val();
-
- this.addAnchorSelector();
-
- this.resetFileField();
-
- this.find('.step2').nextAll('.field').not('.field[id$="' + linkType + '_Holder"]').hide();
- this.find('.field[id$="LinkType_Holder"]').attr('style', 'display: -webkit-flex; display: flex');
- this.find('.field[id$="' + linkType + '_Holder"]').attr('style', 'display: -webkit-flex; display: flex');
-
- if (linkType == 'internal' || linkType == 'anchor') {
- this.find('.field[id$="Anchor_Holder"]').attr('style', 'display: -webkit-flex; display: flex');
- }
-
- if (linkType == 'email') {
- this.find('.field[id$="Subject_Holder"]').attr('style', 'display: -webkit-flex; display: flex');
- } else {
- this.find('.field[id$="TargetBlank_Holder"]').attr('style', 'display: -webkit-flex; display: flex');
- }
-
- if (linkType == 'anchor') {
- this.find('.field[id$="AnchorSelector_Holder"]').attr('style', 'display: -webkit-flex; display: flex');
- }
- this.find('.field[id$="Description_Holder"]').attr('style', 'display: -webkit-flex; display: flex');
- },
-
- getLinkAttributes: function getLinkAttributes() {
- var href,
- target = null,
- subject = this.find(':input[name=Subject]').val(),
- anchor = this.find(':input[name=Anchor]').val();
-
- if (this.find(':input[name=TargetBlank]').is(':checked')) {
- target = '_blank';
- }
-
- switch (this.find(':input[name=LinkType]:checked').val()) {
- case 'internal':
- href = '[sitetree_link,id=' + this.find(':input[name=internal]').val() + ']';
-
- if (anchor) {
- href += '#' + anchor;
- }
-
- break;
-
- case 'anchor':
- href = '#' + anchor;
- break;
-
- case 'file':
- var fileid = this.find('.ss-uploadfield .ss-uploadfield-item').attr('data-fileid');
- href = fileid ? '[file_link,id=' + fileid + ']' : '';
- break;
-
- case 'email':
- href = 'mailto:' + this.find(':input[name=email]').val();
- if (subject) {
- href += '?subject=' + encodeURIComponent(subject);
- }
- target = null;
- break;
-
- default:
- href = this.find(':input[name=external]').val();
-
- if (href.indexOf('://') == -1) href = 'http://' + href;
- break;
- }
-
- return {
- href: href,
- target: target,
- title: this.find(':input[name=Description]').val()
- };
- },
- insertLink: function insertLink() {
- this.modifySelection(function (ed) {
- ed.insertLink(this.getLinkAttributes());
- });
- },
- removeLink: function removeLink() {
- this.modifySelection(function (ed) {
- ed.removeLink();
- });
-
- this.resetFileField();
- this.close();
- },
-
- resetFileField: function resetFileField() {
- var fileField = this.find('.ss-uploadfield[id$="file_Holder"]'),
- fileUpload = fileField.data('fileupload'),
- currentItem = fileField.find('.ss-uploadfield-item[data-fileid]');
-
- if (currentItem.length) {
- fileUpload._trigger('destroy', null, { context: currentItem });
- fileField.find('.ss-uploadfield-addfile').removeClass('borderTop');
- }
- },
-
- addAnchorSelector: function addAnchorSelector() {
- if (this.find(':input[name=AnchorSelector]').length) return;
-
- var self = this;
- var anchorSelector = $('
');
- this.find(':input[name=Anchor]').parent().append(anchorSelector);
-
- this.updateAnchorSelector();
-
- anchorSelector.change(function (e) {
- self.find(':input[name="Anchor"]').val($(this).val());
- });
- },
-
- getAnchors: function getAnchors() {
- var linkType = this.find(':input[name=LinkType]:checked').val();
- var dfdAnchors = $.Deferred();
-
- switch (linkType) {
- case 'anchor':
- var collectedAnchors = [];
- var ed = this.getEditor();
-
-
- if (ed) {
- var raw = ed.getContent().match(/\s+(name|id)\s*=\s*(["'])([^\2\s>]*?)\2|\s+(name|id)\s*=\s*([^"']+)[\s +>]/gim);
- if (raw && raw.length) {
- for (var i = 0; i < raw.length; i++) {
- var indexStart = raw[i].indexOf('id=') == -1 ? 7 : 5;
- collectedAnchors.push(raw[i].substr(indexStart).replace(/"$/, ''));
- }
- }
- }
-
- dfdAnchors.resolve(collectedAnchors);
- break;
-
- case 'internal':
- var pageId = this.find(':input[name=internal]').val();
-
- if (pageId) {
- $.ajax({
- url: $.path.addSearchParams(this.attr('action').replace('LinkForm', 'getanchors'), { 'PageID': parseInt(pageId) }),
- success: function success(body, status, xhr) {
- dfdAnchors.resolve($.parseJSON(body));
- },
- error: function error(xhr, status) {
- dfdAnchors.reject(xhr.responseText);
- }
- });
- } else {
- dfdAnchors.resolve([]);
- }
- break;
-
- default:
- dfdAnchors.reject(_i18n2.default._t('HtmlEditorField.ANCHORSNOTSUPPORTED', 'Anchors are not supported for this link type.'));
- break;
- }
-
- return dfdAnchors.promise();
- },
-
- updateAnchorSelector: function updateAnchorSelector() {
- var self = this;
- var selector = this.find(':input[name=AnchorSelector]');
- var dfdAnchors = this.getAnchors();
-
- selector.empty();
- selector.append($('
'));
-
- dfdAnchors.done(function (anchors) {
- selector.empty();
- selector.append($('
'));
-
- if (anchors) {
- for (var j = 0; j < anchors.length; j++) {
- selector.append($('
'));
- }
- }
- }).fail(function (message) {
- selector.empty();
- selector.append($('
'));
- });
-
- if ($.browser.msie) selector.hide().show();
- },
-
- updateFromEditor: function updateFromEditor() {
- var htmlTagPattern = /<\S[^><]*>/g,
- fieldName,
- data = this.getCurrentLink();
-
- if (data) {
- for (fieldName in data) {
- var el = this.find(':input[name=' + fieldName + ']'),
- selected = data[fieldName];
-
- if (typeof selected == 'string') selected = selected.replace(htmlTagPattern, '');
-
- if (el.is(':checkbox')) {
- el.prop('checked', selected).change();
- } else if (el.is(':radio')) {
- el.val([selected]).change();
- } else if (fieldName == 'file') {
- el = this.find(':input[name="' + fieldName + '[Uploads][]"]');
-
- el = el.parents('.ss-uploadfield');
-
- (function attach(el, selected) {
- if (!el.getConfig()) {
- setTimeout(function () {
- attach(el, selected);
- }, 50);
- } else {
- el.attachFiles([selected]);
- }
- })(el, selected);
- } else {
- el.val(selected).change();
- }
- }
- }
- },
-
- getCurrentLink: function getCurrentLink() {
- var selectedEl = this.getSelection(),
- href = "",
- target = "",
- title = "",
- action = "insert",
- style_class = "";
-
- var linkDataSource = null;
- if (selectedEl.length) {
- if (selectedEl.is('a')) {
- linkDataSource = selectedEl;
- } else {
- linkDataSource = selectedEl = selectedEl.parents('a:first');
- }
- }
- if (linkDataSource && linkDataSource.length) this.modifySelection(function (ed) {
- ed.selectNode(linkDataSource[0]);
- });
-
- if (!linkDataSource.attr('href')) linkDataSource = null;
-
- if (linkDataSource) {
- href = linkDataSource.attr('href');
- target = linkDataSource.attr('target');
- title = linkDataSource.attr('title');
- style_class = linkDataSource.attr('class');
- href = this.getEditor().cleanLink(href, linkDataSource);
- action = "update";
- }
-
- if (href.match(/^mailto:(.*)$/)) {
- return {
- LinkType: 'email',
- email: RegExp.$1,
- Description: title
- };
- } else if (href.match(/^(assets\/.*)$/) || href.match(/^\[file_link\s*(?:\s*|%20|,)?id=([0-9]+)\]?(#.*)?$/)) {
- return {
- LinkType: 'file',
- file: RegExp.$1,
- Description: title,
- TargetBlank: target ? true : false
- };
- } else if (href.match(/^#(.*)$/)) {
- return {
- LinkType: 'anchor',
- Anchor: RegExp.$1,
- Description: title,
- TargetBlank: target ? true : false
- };
- } else if (href.match(/^\[sitetree_link(?:\s*|%20|,)?id=([0-9]+)\]?(#.*)?$/i)) {
- return {
- LinkType: 'internal',
- internal: RegExp.$1,
- Anchor: RegExp.$2 ? RegExp.$2.substr(1) : '',
- Description: title,
- TargetBlank: target ? true : false
- };
- } else if (href) {
- return {
- LinkType: 'external',
- external: href,
- Description: title,
- TargetBlank: target ? true : false
- };
- } else {
- return null;
- }
- }
- });
-
- $('form.htmleditorfield-linkform input[name=LinkType]').entwine({
- onclick: function onclick(e) {
- this.parents('form:first').redraw();
- this._super();
- },
- onchange: function onchange() {
- this.parents('form:first').redraw();
-
- var linkType = this.parent().find(':checked').val();
- if (linkType === 'anchor' || linkType === 'internal') {
- this.parents('form.htmleditorfield-linkform').updateAnchorSelector();
- }
- this._super();
- }
- });
-
- $('form.htmleditorfield-linkform input[name=internal]').entwine({
- onvalueupdated: function onvalueupdated() {
- this.parents('form.htmleditorfield-linkform').updateAnchorSelector();
- this._super();
- }
- });
-
- $('form.htmleditorfield-linkform :submit[name=action_remove]').entwine({
- onclick: function onclick(e) {
- this.parents('form:first').removeLink();
- this._super();
- return false;
- }
- });
-
- $('form.htmleditorfield-mediaform').entwine({
- toggleCloseButton: function toggleCloseButton() {
- var updateExisting = Boolean(this.find('.ss-htmleditorfield-file').length);
- this.find('.overview .action-delete')[updateExisting ? 'hide' : 'show']();
- },
- onsubmit: function onsubmit() {
- this.modifySelection(function (ed) {
- this.find('.ss-htmleditorfield-file').each(function () {
- $(this).insertHTML(ed);
- });
- });
-
- this.getDialog().close();
- return false;
- },
- updateFromEditor: function updateFromEditor() {
- var self = this,
- node = this.getSelection();
-
- if (node.is('img')) {
- var idOrUrl = node.data('id') || node.data('url') || node.attr('src');
- this.showFileView(idOrUrl).done(function (filefield) {
- filefield.updateFromNode(node);
- self.toggleCloseButton();
- self.redraw();
- });
- }
- this.redraw();
- },
- redraw: function redraw(updateExisting) {
- this._super();
-
- var node = this.getSelection(),
- hasItems = Boolean(this.find('.ss-htmleditorfield-file').length),
- editingSelected = node.is('img'),
- insertingURL = this.hasClass('insertingURL'),
- header = this.find('.header-edit');
-
- header[hasItems ? 'show' : 'hide']();
-
- this.closest('ui-dialog').find('ui-dialog-buttonpane .media-insert').button(hasItems ? 'enable' : 'disable').toggleClass('ui-state-disabled', !hasItems);
-
- this.find('.htmleditorfield-default-panel')[editingSelected || insertingURL ? 'hide' : 'show']();
- this.find('.htmleditorfield-web-panel')[editingSelected || !insertingURL ? 'hide' : 'show']();
-
- var mediaFormHeading = this.find('.htmleditorfield-mediaform-heading.insert');
-
- if (editingSelected) {
- mediaFormHeading.hide();
- } else if (insertingURL) {
- mediaFormHeading.show().text(_i18n2.default._t("HtmlEditorField.INSERTURL")).prepend('
');
-
- this.find('.htmleditorfield-web-panel input.remoteurl').focus();
- } else {
- mediaFormHeading.show().text(_i18n2.default._t("HtmlEditorField.INSERTFROM")).find('.back-button').remove();
- }
-
- this.find('.htmleditorfield-mediaform-heading.update')[editingSelected ? 'show' : 'hide']();
- this.find('.ss-uploadfield-item-actions')[editingSelected ? 'hide' : 'show']();
- this.find('.ss-uploadfield-item-name')[editingSelected ? 'hide' : 'show']();
- this.find('.ss-uploadfield-item-preview')[editingSelected ? 'hide' : 'show']();
- this.find('.btn-toolbar .media-update')[editingSelected ? 'show' : 'hide']();
- this.find('.ss-uploadfield-item-editform').toggleEditForm(editingSelected);
- this.find('.htmleditorfield-from-cms .field.treedropdown').css('left', $('.htmleditorfield-mediaform-heading:visible').outerWidth());
- this.closest('.ui-dialog').addClass('ss-uploadfield-dropzone');
- this.closest('.ui-dialog').find('.ui-dialog-buttonpane .media-insert .ui-button-text').text([editingSelected ? _i18n2.default._t('HtmlEditorField.UPDATE', 'Update') : _i18n2.default._t('HtmlEditorField.INSERT', 'Insert')]);
- },
- resetFields: function resetFields() {
- this.find('.ss-htmleditorfield-file').remove();
- this.find('.ss-gridfield-items .ui-selected').removeClass('ui-selected');
- this.find('li.ss-uploadfield-item').remove();
- this.redraw();
-
- this._super();
- },
- getFileView: function getFileView(idOrUrl) {
- return this.find('.ss-htmleditorfield-file[data-id=' + idOrUrl + ']');
- },
- showFileView: function showFileView(idOrUrl) {
- var self = this,
- params = Number(idOrUrl) == idOrUrl ? { ID: idOrUrl } : { FileURL: idOrUrl };
-
- var item = $('
');
- this.find('.content-edit').prepend(item);
-
- var dfr = $.Deferred();
-
- $.ajax({
- url: $.path.addSearchParams(this.attr('action').replace(/MediaForm/, 'viewfile'), params),
- success: function success(html, status, xhr) {
- var newItem = $(html).filter('.ss-htmleditorfield-file');
- item.replaceWith(newItem);
- self.redraw();
- dfr.resolve(newItem);
- },
- error: function error() {
- item.remove();
- dfr.reject();
- }
- });
-
- return dfr.promise();
- }
- });
-
- $('form.htmleditorfield-mediaform div.ss-upload .upload-url').entwine({
- onclick: function onclick() {
- var form = this.closest('form');
-
- form.addClass('insertingURL');
- form.redraw();
- }
- });
-
- $('form.htmleditorfield-mediaform .htmleditorfield-mediaform-heading .back-button').entwine({
- onclick: function onclick() {
- var form = this.closest('form');
-
- form.removeClass('insertingURL');
- form.redraw();
- }
- });
-
- $('form.htmleditorfield-mediaform .ss-gridfield-items').entwine({
- onselectableselected: function onselectableselected(e, ui) {
- var form = this.closest('form'),
- item = $(ui.selected);
- if (!item.is('.ss-gridfield-item')) return;
- form.closest('form').showFileView(item.data('id'));
- form.redraw();
-
- form.parent().trigger('scroll');
- },
- onselectableunselected: function onselectableunselected(e, ui) {
- var form = this.closest('form'),
- item = $(ui.unselected);
- if (!item.is('.ss-gridfield-item')) return;
- form.getFileView(item.data('id')).remove();
- form.redraw();
- }
- });
-
- $('form.htmleditorfield-form.htmleditorfield-mediaform div.ss-assetuploadfield').entwine({
- onfileuploadstop: function onfileuploadstop(e) {
- var form = this.closest('form');
-
- var editFieldIDs = [];
- form.find('div.content-edit').find('div.ss-htmleditorfield-file').each(function () {
- editFieldIDs.push($(this).data('id'));
- });
-
- var uploadedFiles = $('.ss-uploadfield-files', this).children('.ss-uploadfield-item');
- uploadedFiles.each(function () {
- var uploadedID = $(this).data('fileid');
- if (uploadedID && $.inArray(uploadedID, editFieldIDs) == -1) {
- $(this).remove();
- form.showFileView(uploadedID);
- }
- });
-
- form.parent().trigger('scroll');
-
- form.redraw();
- }
-
- });
-
- $('form.htmleditorfield-form.htmleditorfield-mediaform input.remoteurl').entwine({
- onadd: function onadd() {
- this._super();
- this.validate();
- },
-
- onkeyup: function onkeyup() {
- this.validate();
- },
-
- onchange: function onchange() {
- this.validate();
- },
-
- getAddButton: function getAddButton() {
- return this.closest('.CompositeField').find('button.add-url');
- },
-
- validate: function validate() {
- var val = this.val(),
- orig = val;
-
- val = $.trim(val);
- val = val.replace(/^https?:\/\//i, '');
- if (orig !== val) this.val(val);
-
- this.getAddButton().button(!!val ? 'enable' : 'disable');
- return !!val;
- }
- });
-
- $('form.htmleditorfield-form.htmleditorfield-mediaform .add-url').entwine({
- getURLField: function getURLField() {
- return this.closest('.CompositeField').find('input.remoteurl');
- },
-
- onclick: function onclick(e) {
- var urlField = this.getURLField(),
- container = this.closest('.CompositeField'),
- form = this.closest('form');
-
- if (urlField.validate()) {
- container.addClass('loading');
- form.showFileView('http://' + urlField.val()).done(function () {
- container.removeClass('loading');
-
- form.parent().trigger('scroll');
- });
- form.redraw();
- }
-
- return false;
- }
- });
-
- $('form.htmleditorfield-mediaform .ss-htmleditorfield-file').entwine({
- getAttributes: function getAttributes() {},
-
- getExtraData: function getExtraData() {},
-
- getHTML: function getHTML() {
- return $('
').append($('
').attr({ href: this.data('url') }).text(this.find('.name').text())).html();
- },
-
- insertHTML: function insertHTML(ed) {
- ed.replaceContent(this.getHTML());
- },
-
- updateFromNode: function updateFromNode(node) {},
-
- updateDimensions: function updateDimensions(constrainBy, maxW, maxH) {
- var widthEl = this.find(':input[name=Width]'),
- heightEl = this.find(':input[name=Height]'),
- w = widthEl.val(),
- h = heightEl.val(),
- aspect;
-
- if (w && h) {
- if (constrainBy) {
- aspect = heightEl.getOrigVal() / widthEl.getOrigVal();
-
- if (constrainBy == 'Width') {
- if (maxW && w > maxW) w = maxW;
- h = Math.floor(w * aspect);
- } else if (constrainBy == 'Height') {
- if (maxH && h > maxH) h = maxH;
- w = Math.ceil(h / aspect);
- }
- } else {
- if (maxW && w > maxW) w = maxW;
- if (maxH && h > maxH) h = maxH;
- }
-
- widthEl.val(w);
- heightEl.val(h);
- }
- }
- });
-
- $('form.htmleditorfield-mediaform .ss-htmleditorfield-file.image').entwine({
- getAttributes: function getAttributes() {
- var width = this.find(':input[name=Width]').val(),
- height = this.find(':input[name=Height]').val();
- return {
- 'src': this.find(':input[name=URL]').val(),
- 'alt': this.find(':input[name=AltText]').val(),
- 'width': width ? parseInt(width, 10) : null,
- 'height': height ? parseInt(height, 10) : null,
- 'title': this.find(':input[name=Title]').val(),
- 'class': this.find(':input[name=CSSClass]').val(),
- 'data-id': this.find(':input[name=FileID]').val()
- };
- },
- getExtraData: function getExtraData() {
- return {
- 'CaptionText': this.find(':input[name=CaptionText]').val()
- };
- },
- getHTML: function getHTML() {},
-
- insertHTML: function insertHTML(ed) {
- var form = this.closest('form');
- var node = form.getSelection();
- if (!ed) ed = form.getEditor();
-
- var attrs = this.getAttributes(),
- extraData = this.getExtraData();
-
- var replacee = node && node.is('img') ? node : null;
- if (replacee && replacee.parent().is('.captionImage')) replacee = replacee.parent();
-
- var img = node && node.is('img') ? node : $('
');
- img.attr(attrs);
-
- var container = img.parent('.captionImage'),
- caption = container.find('.caption');
-
- if (extraData.CaptionText) {
- if (!container.length) {
- container = $('
');
- }
-
- container.attr('class', 'captionImage ' + attrs['class']).css('width', attrs.width);
-
- if (!caption.length) {
- caption = $('
').appendTo(container);
- }
-
- caption.attr('class', 'caption ' + attrs['class']).text(extraData.CaptionText);
- } else {
- container = caption = null;
- }
-
- var replacer = container ? container : img;
-
- if (replacee && replacee.not(replacer).length) {
- replacee.replaceWith(replacer);
- }
-
- if (container) {
- container.prepend(img);
- }
-
- if (!replacee) {
- ed.repaint();
- ed.insertContent($('
').append(replacer).html(), { skip_undo: 1 });
- }
-
- ed.addUndo();
- ed.repaint();
- },
- updateFromNode: function updateFromNode(node) {
- this.find(':input[name=AltText]').val(node.attr('alt'));
- this.find(':input[name=Title]').val(node.attr('title'));
- this.find(':input[name=CSSClass]').val(node.attr('class'));
- this.find(':input[name=Width]').val(node.width());
- this.find(':input[name=Height]').val(node.height());
- this.find(':input[name=CaptionText]').val(node.siblings('.caption:first').text());
- this.find(':input[name=FileID]').val(node.data('id'));
- }
- });
-
- $('form.htmleditorfield-mediaform .ss-htmleditorfield-file.flash').entwine({
- getAttributes: function getAttributes() {
- var width = this.find(':input[name=Width]').val(),
- height = this.find(':input[name=Height]').val();
- return {
- 'src': this.find(':input[name=URL]').val(),
- 'width': width ? parseInt(width, 10) : null,
- 'height': height ? parseInt(height, 10) : null,
- 'data-fileid': this.find(':input[name=FileID]').val()
- };
- },
- getHTML: function getHTML() {
- var attrs = this.getAttributes();
-
- var el = tinyMCE.activeEditor.plugins.media.dataToImg({
- 'type': 'flash',
- 'width': attrs.width,
- 'height': attrs.height,
- 'params': { 'src': attrs.src },
- 'video': { 'sources': [] }
- });
-
- return $('
').append(el).html();
- },
- updateFromNode: function updateFromNode(node) {}
- });
-
- $('form.htmleditorfield-mediaform .ss-htmleditorfield-file.embed').entwine({
- getAttributes: function getAttributes() {
- var width = this.find(':input[name=Width]').val(),
- height = this.find(':input[name=Height]').val();
- return {
- 'src': this.find('.thumbnail-preview').attr('src'),
- 'width': width ? parseInt(width, 10) : null,
- 'height': height ? parseInt(height, 10) : null,
- 'class': this.find(':input[name=CSSClass]').val(),
- 'alt': this.find(':input[name=AltText]').val(),
- 'title': this.find(':input[name=Title]').val(),
- 'data-fileid': this.find(':input[name=FileID]').val()
- };
- },
- getExtraData: function getExtraData() {
- var width = this.find(':input[name=Width]').val(),
- height = this.find(':input[name=Height]').val();
- return {
- 'CaptionText': this.find(':input[name=CaptionText]').val(),
- 'Url': this.find(':input[name=URL]').val(),
- 'thumbnail': this.find('.thumbnail-preview').attr('src'),
- 'width': width ? parseInt(width, 10) : null,
- 'height': height ? parseInt(height, 10) : null,
- 'cssclass': this.find(':input[name=CSSClass]').val()
- };
- },
- getHTML: function getHTML() {
- var el,
- attrs = this.getAttributes(),
- extraData = this.getExtraData(),
- imgEl = $('
').attr(attrs).addClass('ss-htmleditorfield-file embed');
-
- $.each(extraData, function (key, value) {
- imgEl.attr('data-' + key, value);
- });
-
- if (extraData.CaptionText) {
- el = $('
' + extraData.CaptionText + '
').prepend(imgEl);
- } else {
- el = imgEl;
- }
- return $('
').append(el).html();
- },
- updateFromNode: function updateFromNode(node) {
- this.find(':input[name=AltText]').val(node.attr('alt'));
- this.find(':input[name=Title]').val(node.attr('title'));
- this.find(':input[name=Width]').val(node.width());
- this.find(':input[name=Height]').val(node.height());
- this.find(':input[name=Title]').val(node.attr('title'));
- this.find(':input[name=CSSClass]').val(node.data('cssclass'));
- this.find(':input[name=FileID]').val(node.data('fileid'));
- }
- });
-
- $('form.htmleditorfield-mediaform .ss-htmleditorfield-file .dimensions :input').entwine({
- OrigVal: null,
- onmatch: function onmatch() {
- this._super();
-
- this.setOrigVal(parseInt(this.val(), 10));
- },
- onunmatch: function onunmatch() {
- this._super();
- },
- onfocusout: function onfocusout(e) {
- this.closest('.ss-htmleditorfield-file').updateDimensions(this.attr('name'));
- }
- });
-
- $('form.htmleditorfield-mediaform .ss-uploadfield-item .ss-uploadfield-item-cancel').entwine({
- onclick: function onclick(e) {
- var form = this.closest('form'),
- file = this.closest('ss-uploadfield-item');
- form.find('.ss-gridfield-item[data-id=' + file.data('id') + ']').removeClass('ui-selected');
- this.closest('.ss-uploadfield-item').remove();
- form.redraw();
- e.preventDefault();
- }
- });
-
- $('div.ss-assetuploadfield .ss-uploadfield-item-edit, div.ss-assetuploadfield .ss-uploadfield-item-name').entwine({
- getEditForm: function getEditForm() {
- return this.closest('.ss-uploadfield-item').find('.ss-uploadfield-item-editform');
- },
-
- fromEditForm: {
- onchange: function onchange(e) {
- var form = $(e.target);
- form.removeClass('edited');
- form.addClass('edited');
- }
- },
-
- onclick: function onclick(e) {
- var editForm = this.getEditForm();
-
- if (this.closest('.ss-uploadfield-item').hasClass('ss-htmleditorfield-file')) {
- editForm.parent('ss-uploadfield-item').removeClass('ui-state-warning');
-
- editForm.toggleEditForm();
-
- e.preventDefault();
-
- return false;
- }
-
- this._super(e);
- }
- });
-
- $('div.ss-assetuploadfield .ss-uploadfield-item-editform').entwine({
- toggleEditForm: function toggleEditForm(bool) {
- var itemInfo = this.prev('.ss-uploadfield-item-info'),
- status = itemInfo.find('.ss-uploadfield-item-status');
- var text = "";
-
- if (bool === true || bool !== false && this.height() === 0) {
- text = _i18n2.default._t('UploadField.Editing', "Editing ...");
- this.height('auto');
- itemInfo.find('.toggle-details-icon').addClass('opened');
- status.removeClass('ui-state-success-text').removeClass('ui-state-warning-text');
- } else {
- this.height(0);
- itemInfo.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 {
- text = _i18n2.default._t('UploadField.CHANGESSAVED', 'Changes Made');
- this.removeClass('edited');
- status.addClass('ui-state-success-text');
- }
- }
- status.attr('title', text).text(text);
- }
- });
-
- $('form.htmleditorfield-mediaform .field[id$="ParentID_Holder"] .TreeDropdownField').entwine({
- onadd: function onadd() {
- this._super();
-
- var self = this;
- this.bind('change', function () {
- var fileList = self.closest('form').find('.grid-field');
- fileList.setState('ParentID', self.getValue());
- fileList.reload();
- });
- }
- });
- });
-});
\ No newline at end of file
diff --git a/client/dist/js/TinyMCE_SSPlugin.js b/client/dist/js/TinyMCE_SSPlugin.js
deleted file mode 100644
index 11f0ab624..000000000
--- a/client/dist/js/TinyMCE_SSPlugin.js
+++ /dev/null
@@ -1,173 +0,0 @@
-(function (global, factory) {
- if (typeof define === "function" && define.amd) {
- define('ss.TinyMCE_SSPlugin', [], factory);
- } else if (typeof exports !== "undefined") {
- factory();
- } else {
- var mod = {
- exports: {}
- };
- factory();
- global.ssTinyMCE_SSPlugin = mod.exports;
- }
-})(this, function () {
- 'use strict';
-
- (function () {
-
- var ssbuttons = {
- getInfo: function getInfo() {
- return {
- longname: 'Special buttons for SilverStripe CMS',
- author: 'Sam Minnée',
- authorurl: 'http://www.siverstripe.com/',
- infourl: 'http://www.silverstripe.com/',
- version: "1.0"
- };
- },
-
- init: function init(ed) {
- ed.addButton('sslink', {
- icon: 'link',
- title: 'Insert Link',
- cmd: 'sslink'
- });
- ed.addMenuItem('sslink', {
- icon: 'link',
- text: 'Insert Link',
- cmd: 'sslink'
- });
- ed.addButton('ssmedia', {
- icon: 'image',
- title: 'Insert Media',
- cmd: 'ssmedia'
- });
- ed.addMenuItem('ssmedia', {
- icon: 'image',
- text: 'Insert Media',
- cmd: 'ssmedia'
- });
-
- ed.addCommand('sslink', function (ed) {
- jQuery('#' + this.id).entwine('ss').openLinkDialog();
- });
-
- ed.addCommand('ssmedia', function (ed) {
- jQuery('#' + this.id).entwine('ss').openMediaDialog();
- });
-
- ed.on('BeforeExecCommand', function (e) {
- var cmd = e.command;
- var ui = e.ui;
- var val = e.value;
- if (cmd == 'mceAdvLink' || cmd == 'mceLink') {
- e.preventDefault();
- ed.execCommand('sslink', ui, val);
- } else if (cmd == 'mceAdvImage' || cmd == 'mceImage') {
- e.preventDefault();
- ed.execCommand('ssmedia', ui, val);
- }
- });
-
- ed.on('SaveContent', function (o) {
- var content = jQuery(o.content);
- var attrsFn = function attrsFn(attrs) {
- return Object.keys(attrs).map(function (name) {
- return attrs[name] ? name + '="' + attrs[name] + '"' : null;
- }).filter(function (el) {
- return el !== null;
- }).join(' ');
- };
-
- content.find('.ss-htmleditorfield-file.embed').each(function () {
- var el = jQuery(this);
- var attrs = {
- width: el.attr('width'),
- class: el.attr('cssclass'),
- thumbnail: el.data('thumbnail')
- };
- var shortCode = '[embed ' + attrsFn(attrs) + ']' + el.data('url') + '[/embed]';
- el.replaceWith(shortCode);
- });
-
- content.find('img').each(function () {
- var el = jQuery(this);
- var attrs = {
- src: el.attr('src'),
- id: el.data('id'),
- width: el.attr('width'),
- height: el.attr('height'),
- class: el.attr('class'),
-
- title: el.attr('title'),
- alt: el.attr('alt')
- };
- var shortCode = '[image ' + attrsFn(attrs) + ']';
- el.replaceWith(shortCode);
- });
-
- o.content = '';
- content.each(function () {
- if (this.outerHTML !== undefined) {
- o.content += this.outerHTML;
- }
- });
- });
- ed.on('BeforeSetContent', function (o) {
- var matches;
- var content = o.content;
- var attrFromStrFn = function attrFromStrFn(str) {
- return str.match(/([^\s\/'"=,]+)\s*=\s*(('([^']+)')|("([^"]+)")|([^\s,\]]+))/g).reduce(function (coll, val) {
- var match = val.match(/^([^\s\/'"=,]+)\s*=\s*(?:(?:'([^']+)')|(?:"([^"]+)")|(?:[^\s,\]]+))$/),
- key = match[1],
- value = match[2] || match[3] || match[4];
- coll[key] = value;
- return coll;
- }, {});
- };
-
- var shortTagRegex = /\[embed(.*?)\](.+?)\[\/\s*embed\s*\]/gi;
- while (matches = shortTagRegex.exec(content)) {
- var attrs = attrFromStrFn(matches[1]);
- var el;
-
- el = jQuery('
').attr({
- 'src': attrs['thumbnail'],
- 'width': attrs['width'],
- 'height': attrs['height'],
- 'class': attrs['class'],
- 'data-url': matches[2]
- }).addClass('ss-htmleditorfield-file embed');
- attrs['cssclass'] = attrs['class'];
-
- Object.keys(attrs).forEach(function (key) {
- return el.attr('data-' + key, attrs[key]);
- });
- content = content.replace(matches[0], jQuery('
').append(el).html());
- }
-
- var shortTagRegex = /\[image(.*?)\]/gi;
- while (matches = shortTagRegex.exec(content)) {
- var attrs = attrFromStrFn(matches[1]);
- var el = jQuery('
').attr({
- 'src': attrs['src'],
- 'width': attrs['width'],
- 'height': attrs['height'],
- 'class': attrs['class'],
- 'alt': attrs['alt'],
- 'title': attrs['title'],
- 'data-id': attrs['id']
- });
- content = content.replace(matches[0], jQuery('
').append(el).html());
- }
-
- o.content = content;
- });
- }
- };
-
- tinymce.PluginManager.add("ssbuttons", function (editor) {
- ssbuttons.init(editor);
- });
- })();
-});
\ No newline at end of file
diff --git a/client/dist/js/i18n.js b/client/dist/js/i18n.js
deleted file mode 100644
index 2e89eb057..000000000
--- a/client/dist/js/i18n.js
+++ /dev/null
@@ -1,207 +0,0 @@
-(function (global, factory) {
- if (typeof define === "function" && define.amd) {
- define('ss.i18n', ['exports'], factory);
- } else if (typeof exports !== "undefined") {
- factory(exports);
- } else {
- var mod = {
- exports: {}
- };
- factory(mod.exports);
- global.ssI18n = mod.exports;
- }
-})(this, function (exports) {
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
-
- function _classCallCheck(instance, Constructor) {
- if (!(instance instanceof Constructor)) {
- throw new TypeError("Cannot call a class as a function");
- }
- }
-
- var _createClass = function () {
- function defineProperties(target, props) {
- for (var i = 0; i < props.length; i++) {
- var descriptor = props[i];
- descriptor.enumerable = descriptor.enumerable || false;
- descriptor.configurable = true;
- if ("value" in descriptor) descriptor.writable = true;
- Object.defineProperty(target, descriptor.key, descriptor);
- }
- }
-
- return function (Constructor, protoProps, staticProps) {
- if (protoProps) defineProperties(Constructor.prototype, protoProps);
- if (staticProps) defineProperties(Constructor, staticProps);
- return Constructor;
- };
- }();
-
- var i18n = function () {
- function i18n() {
- _classCallCheck(this, i18n);
-
- this.currentLocale = null;
- this.defaultLocale = 'en_US';
- this.lang = {};
- }
-
- _createClass(i18n, [{
- key: 'setLocale',
- value: function setLocale(locale) {
- this.currentLocale = locale;
- }
- }, {
- key: 'getLocale',
- value: function getLocale() {
- return this.currentLocale !== null ? this.currentLocale : this.defaultLocale;
- }
- }, {
- key: '_t',
- value: function _t(entity, fallbackString, priority, context) {
- var langName = this.getLocale().replace(/_[\w]+/i, '');
- var defaultlangName = this.defaultLocale.replace(/_[\w]+/i, '');
-
- if (this.lang && this.lang[this.getLocale()] && this.lang[this.getLocale()][entity]) {
- return this.lang[this.getLocale()][entity];
- } else if (this.lang && this.lang[langName] && this.lang[langName][entity]) {
- return this.lang[langName][entity];
- } else if (this.lang && this.lang[this.defaultLocale] && this.lang[this.defaultLocale][entity]) {
- return this.lang[this.defaultLocale][entity];
- } else if (this.lang && this.lang[defaultlangName] && this.lang[defaultlangName][entity]) {
- return this.lang[defaultlangName][entity];
- } else if (fallbackString) {
- return fallbackString;
- } else {
- return '';
- }
- }
- }, {
- key: 'addDictionary',
- value: function addDictionary(locale, dict) {
- if (typeof this.lang[locale] === 'undefined') {
- this.lang[locale] = {};
- }
-
- for (var entity in dict) {
- this.lang[locale][entity] = dict[entity];
- }
- }
- }, {
- key: 'getDictionary',
- value: function getDictionary(locale) {
- return this.lang[locale];
- }
- }, {
- key: 'stripStr',
- value: function stripStr(str) {
- return str.replace(/^\s*/, '').replace(/\s*$/, '');
- }
- }, {
- key: 'stripStrML',
- value: function stripStrML(str) {
- var parts = str.split('\n');
-
- for (var i = 0; i < parts.length; i += 1) {
- parts[i] = stripStr(parts[i]);
- }
-
- return stripStr(parts.join(' '));
- }
- }, {
- key: 'sprintf',
- value: function sprintf(s) {
- for (var _len = arguments.length, params = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
- params[_key - 1] = arguments[_key];
- }
-
- if (params.length === 0) {
- return s;
- }
-
- var regx = new RegExp('(.?)(%s)', 'g');
-
- var i = 0;
-
- return s.replace(regx, function (match, subMatch1, subMatch2, offset, string) {
- if (subMatch1 === '%') {
- return match;
- }
-
- return subMatch1 + params[i++];
- });
- }
- }, {
- key: 'inject',
- value: function inject(s, map) {
- var regx = new RegExp('\{([A-Za-z0-9_]*)\}', 'g');
-
- return s.replace(regx, function (match, key, offset, string) {
- return map[key] ? map[key] : match;
- });
- }
- }, {
- key: 'detectLocale',
- value: function detectLocale() {
- var rawLocale;
- var detectedLocale;
-
- rawLocale = jQuery('body').attr('lang');
-
- if (!rawLocale) {
- var metas = document.getElementsByTagName('meta');
-
- for (var i = 0; i < metas.length; i++) {
- if (metas[i].attributes['http-equiv'] && metas[i].attributes['http-equiv'].nodeValue.toLowerCase() == 'content-language') {
- rawLocale = metas[i].attributes['content'].nodeValue;
- }
- }
- }
-
- if (!rawLocale) {
- rawLocale = this.defaultLocale;
- }
-
- var rawLocaleParts = rawLocale.match(/([^-|_]*)[-|_](.*)/);
-
- if (rawLocale.length == 2) {
- for (var compareLocale in i18n.lang) {
- if (compareLocale.substr(0, 2).toLowerCase() == rawLocale.toLowerCase()) {
- detectedLocale = compareLocale;
- break;
- }
- }
- } else if (rawLocaleParts) {
- detectedLocale = rawLocaleParts[1].toLowerCase() + '_' + rawLocaleParts[2].toUpperCase();
- }
-
- return detectedLocale;
- }
- }, {
- key: 'addEvent',
- value: function addEvent(obj, evType, fn, useCapture) {
- if (obj.addEventListener) {
- obj.addEventListener(evType, fn, useCapture);
- return true;
- } else if (obj.attachEvent) {
- return obj.attachEvent('on' + evType, fn);
- } else {
- console.log('Handler could not be attached');
- }
- }
- }]);
-
- return i18n;
- }();
-
- var _i18n = new i18n();
-
- window.ss = typeof window.ss !== 'undefined' ? window.ss : {};
- window.ss.i18n = window.i18n = _i18n;
-
- exports.default = _i18n;
-});
\ No newline at end of file
diff --git a/client/dist/js/i18nx.js b/client/dist/js/i18nx.js
deleted file mode 100644
index a715a4266..000000000
--- a/client/dist/js/i18nx.js
+++ /dev/null
@@ -1,105 +0,0 @@
-(function (global, factory) {
- if (typeof define === "function" && define.amd) {
- define('ss.i18nx', ['exports'], factory);
- } else if (typeof exports !== "undefined") {
- factory(exports);
- } else {
- var mod = {
- exports: {}
- };
- factory(mod.exports);
- global.ssI18nx = mod.exports;
- }
-})(this, function (exports) {
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
-
- function _classCallCheck(instance, Constructor) {
- if (!(instance instanceof Constructor)) {
- throw new TypeError("Cannot call a class as a function");
- }
- }
-
- var _createClass = function () {
- function defineProperties(target, props) {
- for (var i = 0; i < props.length; i++) {
- var descriptor = props[i];
- descriptor.enumerable = descriptor.enumerable || false;
- descriptor.configurable = true;
- if ("value" in descriptor) descriptor.writable = true;
- Object.defineProperty(target, descriptor.key, descriptor);
- }
- }
-
- return function (Constructor, protoProps, staticProps) {
- if (protoProps) defineProperties(Constructor.prototype, protoProps);
- if (staticProps) defineProperties(Constructor, staticProps);
- return Constructor;
- };
- }();
-
- var i18nx = function () {
- function i18nx() {
- _classCallCheck(this, i18nx);
-
- this.currentLocale = 'en_US';
- this.defaultLocale = 'en_US';
- }
-
- _createClass(i18nx, [{
- key: '_t',
- value: function _t(entity, fallbackString, priority, context) {
- return fallbackString;
- }
- }, {
- key: 'sprintf',
- value: function sprintf(s) {
- for (var _len = arguments.length, params = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
- params[_key - 1] = arguments[_key];
- }
-
- if (params.length === 0) {
- return s;
- }
-
- var regx = new RegExp('(.?)(%s)', 'g');
-
- var i = 0;
-
- return s.replace(regx, function (match, subMatch1, subMatch2, offset, string) {
- if (subMatch1 === '%') {
- return match;
- }
-
- return subMatch1 + params[i += 1];
- });
- }
- }, {
- key: 'inject',
- value: function inject(s, map) {
- var regx = new RegExp('\{([A-Za-z0-9_]*)\}', 'g');
-
- return s.replace(regx, function (match, key, offset, string) {
- return map[key] ? map[key] : match;
- });
- }
- }, {
- key: 'addDictionary',
- value: function addDictionary() {}
- }, {
- key: 'getDictionary',
- value: function getDictionary() {}
- }]);
-
- return i18nx;
- }();
-
- ;
-
- var _i18nx = new i18nx();
-
- exports.default = _i18nx;
-});
\ No newline at end of file
diff --git a/client/dist/js/jQuery.js b/client/dist/js/jQuery.js
deleted file mode 100644
index ac652ffe3..000000000
--- a/client/dist/js/jQuery.js
+++ /dev/null
@@ -1,19 +0,0 @@
-(function (global, factory) {
- if (typeof define === "function" && define.amd) {
- define('ss.jQuery', ['module'], factory);
- } else if (typeof exports !== "undefined") {
- factory(module);
- } else {
- var mod = {
- exports: {}
- };
- factory(mod);
- global.ssJQuery = mod.exports;
- }
-})(this, function (module) {
- 'use strict';
-
- var jQuery = typeof window.jQuery !== 'undefined' ? window.jQuery : null;
-
- module.exports = jQuery;
-});
\ No newline at end of file
diff --git a/client/dist/styles/AssetUploadField.css b/client/dist/styles/AssetUploadField.css
deleted file mode 100644
index 1fc239a7e..000000000
--- a/client/dist/styles/AssetUploadField.css
+++ /dev/null
@@ -1,3 +0,0 @@
-.ss-uploadfield-view-allowed-extensions{margin-top:-36px;float:right}.ss-uploadfield-view-allowed-extensions .toggle-content{opacity:0;-webkit-box-sizing:border-box;box-sizing:border-box;position:absolute;z-index:1;padding:20px 16px;width:280px;right:-280px;top:0;bottom:0;border-left:1px solid #C1C7CC;background:#f6f7f8;-webkit-transition:all .3s linear;-o-transition:all .3s linear;transition:all .3s linear}.ss-uploadfield-view-allowed-extensions .toggle-content h4{margin:0 0 6px;padding-right:20px}.ss-uploadfield-view-allowed-extensions.active .toggle-content{right:0;opacity:1}.ss-uploadfield-view-allowed-extensions .toggle{cursor:pointer;font-size:16px;float:right;color:#66727d;width:16px;height:18px;overflow:hidden}.ss-uploadfield-view-allowed-extensions .toggle:hover,.ss-uploadfield-view-allowed-extensions .toggle:active,.ss-uploadfield-view-allowed-extensions .toggle:focus{text-decoration:none;color:#4f5861}.backlink{padding-left:12px}body.cms.ss-uploadfield-edit-iframe,.composite.ss-assetuploadfield .details fieldset{overflow:auto;background:#E2E2E2}body.cms.ss-uploadfield-edit-iframe span.readonly,.composite.ss-assetuploadfield .details fieldset span.readonly{font-style:italic;color:#9ba5ae;text-shadow:0px 1px 0px #fff}.composite.ss-assetuploadfield .details fieldset{padding:1.5385rem 1.5385rem;background-color:#f6f7f8}.ss-assetuploadfield .CompositeField{padding:1.5385rem 1.5385rem;margin:-1.5385rem -1.5385rem}.ss-assetuploadfield .CompositeField.dimensions.form-group{margin:0;padding:0}.ss-assetuploadfield .CompositeField.dimensions.form-group>.dimensions{padding-left:0;padding-right:0}.ss-assetuploadfield::after{content:"";visibility:hidden}.ss-assetuploadfield h3{border-bottom:1px solid rgba(201,205,206,0.8);-webkit-box-shadow:0 1px 0 rgba(255,255,255,0.8);box-shadow:0 1px 0 rgba(255,255,255,0.8);margin:0 0 8px;padding:0 0 7px;clear:both;position:relative}.ss-assetuploadfield .fileOverview{clear:both;margin-top:10px;position:relative}.ss-assetuploadfield .fileOverview .uploadStatus:after{content:".";display:block;height:0;clear:both;visibility:hidden}*:first-child .ss-assetuploadfield .fileOverview .uploadStatus{zoom:1}.ss-assetuploadfield .fileOverview .uploadStatus .state{float:left;font-size:16px;font-weight:bold;line-height:1.1em}.ss-assetuploadfield .fileOverview .uploadStatus .details{opacity:0.9;float:right}.ss-assetuploadfield .ss-uploadfield-item-actions.edit-all .ss-uploadfield-item-edit-all{float:right;margin:-8px 0 0;padding:0;background:none;border:0;-webkit-box-shadow:none;box-shadow:none;color:#66727d}.ss-assetuploadfield .ss-uploadfield-item-actions.edit-all .ss-uploadfield-item-edit-all:hover{color:#7f8c97}.ss-assetuploadfield .ss-uploadfield-files{margin:0;padding:0;clear:both}.ss-assetuploadfield .ss-uploadfield-files .ss-uploadfield-item{-webkit-background-clip:padding-box;background-clip:padding-box;margin:0 0 5px;padding:0;position:relative;margin-left:-1.5385rem;margin-right:-1.5385rem}.ss-assetuploadfield .ss-uploadfield-files .ss-uploadfield-item.ui-state-error{height:32px}.ss-assetuploadfield .ss-uploadfield-files .ss-uploadfield-item.ui-state-error .ss-uploadfield-item-info{height:30px}.ss-assetuploadfield .ss-uploadfield-files .ss-uploadfield-item.ui-state-error .ss-uploadfield-item-name{position:absolute}.ss-assetuploadfield .ss-uploadfield-files .ss-uploadfield-item .info{position:relative;padding:7px;overflow:hidden;background-color:#FFBE66;border:1px solid #FF9300}.ss-assetuploadfield .ss-uploadfield-files .ss-uploadfield-item-preview{position:absolute;height:30px;width:40px;overflow:hidden;z-index:1;top:0}.ss-assetuploadfield .ss-uploadfield-files .ss-uploadfield-item-preview img[src$="_32.png"]{width:auto;height:26px;margin:2px 0 0 2px}.ss-assetuploadfield .ss-uploadfield-files .ss-uploadfield-item-info{overflow:hidden;background-color:#5db4df;background-image:-webkit-gradient(linear, left top, left bottom, from(#5db4df), color-stop(8%, #5db1dd), color-stop(50%, #439bcb), color-stop(54%, #3f99cd), color-stop(96%, #207db6), to(#1e7cba));background-image:-webkit-linear-gradient(top, #5db4df 0%, #5db1dd 8%, #439bcb 50%, #3f99cd 54%, #207db6 96%, #1e7cba 100%);background-image:-o-linear-gradient(top, #5db4df 0%, #5db1dd 8%, #439bcb 50%, #3f99cd 54%, #207db6 96%, #1e7cba 100%);background-image:linear-gradient(to bottom, #5db4df 0%, #5db1dd 8%, #439bcb 50%, #3f99cd 54%, #207db6 96%, #1e7cba 100%)}.ss-assetuploadfield .ss-uploadfield-files .ui-state-error .ss-uploadfield-item-info{background-color:#c11f1d;padding-right:130px;background-image:-webkit-gradient(linear, left top, left bottom, from(#c11f1d), color-stop(4%, #bf1d1b), color-stop(8%, #b71b1c), color-stop(15%, #b61e1d), color-stop(27%, #b11d1d), color-stop(31%, #ab1d1c), color-stop(42%, #a51b1b), color-stop(46%, #9f1b19), color-stop(50%, #9f1b19), color-stop(54%, #991c1a), color-stop(58%, #971a18), color-stop(62%, #911b1b), color-stop(65%, #911b1b), color-stop(88%, #7e1816), color-stop(92%, #771919), to(#731817));background-image:-webkit-linear-gradient(top, #c11f1d 0%, #bf1d1b 4%, #b71b1c 8%, #b61e1d 15%, #b11d1d 27%, #ab1d1c 31%, #a51b1b 42%, #9f1b19 46%, #9f1b19 50%, #991c1a 54%, #971a18 58%, #911b1b 62%, #911b1b 65%, #7e1816 88%, #771919 92%, #731817 100%);background-image:-o-linear-gradient(top, #c11f1d 0%, #bf1d1b 4%, #b71b1c 8%, #b61e1d 15%, #b11d1d 27%, #ab1d1c 31%, #a51b1b 42%, #9f1b19 46%, #9f1b19 50%, #991c1a 54%, #971a18 58%, #911b1b 62%, #911b1b 65%, #7e1816 88%, #771919 92%, #731817 100%);background-image:linear-gradient(to bottom, #c11f1d 0%, #bf1d1b 4%, #b71b1c 8%, #b61e1d 15%, #b11d1d 27%, #ab1d1c 31%, #a51b1b 42%, #9f1b19 46%, #9f1b19 50%, #991c1a 54%, #971a18 58%, #911b1b 62%, #911b1b 65%, #7e1816 88%, #771919 92%, #731817 100%);width:100%}.ss-assetuploadfield .ss-uploadfield-files .ui-state-error .ss-uploadfield-item-info .ss-uploadfield-item-name{cursor:default;background:#bcb9b9;background:rgba(201,198,198,0.9)}.ss-assetuploadfield .ss-uploadfield-files .ui-state-error .ss-uploadfield-item-info .ss-uploadfield-item-name .name{text-shadow:0px 1px 0px rgba(255,255,255,0.7)}.ss-assetuploadfield .ss-uploadfield-files .ui-state-warning .ss-uploadfield-item-info{background-color:#E9D104;background-image:-webkit-gradient(linear, left top, left bottom, from(#e5d33b), color-stop(8%, #e2ce24), color-stop(50%, #d1be1c), color-stop(54%, #d1bd1c), color-stop(96%, #d09a1a), to(#cf871a));background-image:-webkit-linear-gradient(top, #e5d33b 0%, #e2ce24 8%, #d1be1c 50%, #d1bd1c 54%, #d09a1a 96%, #cf871a 100%);background-image:-o-linear-gradient(top, #e5d33b 0%, #e2ce24 8%, #d1be1c 50%, #d1bd1c 54%, #d09a1a 96%, #cf871a 100%);background-image:linear-gradient(to bottom, #e5d33b 0%, #e2ce24 8%, #d1be1c 50%, #d1bd1c 54%, #d09a1a 96%, #cf871a 100%)}.ss-assetuploadfield .ss-uploadfield-files .ss-uploadfield-item-name{position:relative;z-index:1;margin:3px 0 3px 50px;width:50%;color:#7f8c97;background:#eeeded;background:rgba(255,255,255,0.8);border-radius:3px;line-height:24px;height:22px;padding:0 5px;text-align:left;cursor:pointer;display:table;table-layout:fixed}.ss-assetuploadfield .ss-uploadfield-files .ss-uploadfield-item-name .name{text-shadow:0px 1px 0px rgba(255,255,255,0.5);display:inline;float:left;max-width:50%;font-weight:normal;padding:0 5px 0 0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;-o-text-overflow:ellipsis}.ss-assetuploadfield .ss-uploadfield-files .ss-uploadfield-item-name .ss-uploadfield-item-status{position:relative;float:right;padding:0 0 0 5px;max-width:30%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;-o-text-overflow:ellipsis;text-shadow:0px 1px 0px rgba(255,255,255,0.5)}.ss-assetuploadfield .ss-uploadfield-files .ss-uploadfield-item-name .ss-uploadfield-item-status.ui-state-error-text{text-shadow:0px 1px 0px rgba(255,255,255,0.6);color:#c00}.ss-assetuploadfield .ss-uploadfield-files .ss-uploadfield-item-name .ss-uploadfield-item-status.ui-state-warning-text{color:#b7a403}.ss-assetuploadfield .ss-uploadfield-files .ss-uploadfield-item-name .ss-uploadfield-item-status.ui-state-success-text{color:#1F9433}.ss-assetuploadfield .ss-uploadfield-files .ss-uploadfield-item-actions{position:absolute;top:0;right:0;left:0;z-index:0}.ss-assetuploadfield .ss-uploadfield-files .ss-uploadfield-item-actions .ss-ui-button{background:none;border:0;-webkit-box-shadow:none;box-shadow:none;text-shadow:none;color:#fff;float:right}.ss-assetuploadfield .ss-uploadfield-files .ss-uploadfield-item-actions .ss-ui-button.ss-uploadfield-item-delete{display:none}.ss-assetuploadfield .ss-uploadfield-files .ss-uploadfield-item-actions .ss-ui-button.ss-uploadfield-item-cancel,.ss-assetuploadfield .ss-uploadfield-files .ss-uploadfield-item-actions .ss-ui-button.ss-uploadfield-item-overwrite-warning{border-radius:0;border-left:1px solid rgba(255,255,255,0.2);margin-top:0px;cursor:pointer;opacity:0.9}.ss-assetuploadfield .ss-uploadfield-files .ss-uploadfield-item-actions .ss-ui-button.ss-uploadfield-item-cancel:hover,.ss-assetuploadfield .ss-uploadfield-files .ss-uploadfield-item-actions .ss-ui-button.ss-uploadfield-item-overwrite-warning:hover{opacity:1}.ss-assetuploadfield .ss-uploadfield-files .ss-uploadfield-item-actions .ss-ui-button.ss-uploadfield-item-cancel .ui-icon,.ss-assetuploadfield .ss-uploadfield-files .ss-uploadfield-item-actions .ss-ui-button.ss-uploadfield-item-overwrite-warning .ui-icon{display:block;margin:0;position:realtive;top:8px}.ss-assetuploadfield .ss-uploadfield-files .ss-uploadfield-item-actions .ss-ui-button.ss-uploadfield-item-edit{opacity:0.9;padding-top:1px;padding-bottom:0;height:100%;border-radius:0}.ss-assetuploadfield .ss-uploadfield-files .ss-uploadfield-item-actions .ss-ui-button.ss-uploadfield-item-edit.ui-state-hover{background:none;opacity:1}.ss-assetuploadfield .ss-uploadfield-files .ss-uploadfield-item-actions .ss-ui-button.ss-uploadfield-item-edit.ui-state-hover span.toggle-details{opacity:1}.ss-assetuploadfield .ss-uploadfield-files .ss-uploadfield-item-actions .ss-ui-button.ss-uploadfield-item-edit span.toggle-details{opacity:0.9;margin-left:3px;display:inline-block;width:5px;height:100%;cursor:pointer}.ss-assetuploadfield .ss-uploadfield-files .ss-uploadfield-item-actions .ss-ui-button.ss-uploadfield-item-edit span.toggle-details .toggle-details-icon{margin-top:1px;display:inline-block;width:8px;height:6px;vertical-align:middle}.ss-assetuploadfield .ss-uploadfield-files .ss-uploadfield-item-actions .ss-ui-button.ss-uploadfield-item-edit span.toggle-details .toggle-details-icon.opened{margin-top:0}.ss-assetuploadfield .ss-uploadfield-files .ss-uploadfield-item-actions .ss-ui-button .ui-icon{display:none}.ss-assetuploadfield .ss-uploadfield-files .ss-uploadfield-item-progress{width:100%}.ss-assetuploadfield .ss-uploadfield-files .ss-uploadfield-item-progress div{height:30px;padding:0;margin:0;overflow:hidden;width:100%}.ss-assetuploadfield .ss-uploadfield-files .ss-uploadfield-item-progress .ss-uploadfield-item-progressbar{background-color:#92a6b3;background-image:-webkit-gradient(linear, left top, left bottom, from(#92a6b3), color-stop(11%, #90aab8), color-stop(22%, #96b1bf), color-stop(33%, #9eb4c1), color-stop(44%, #a7bac7), to(#c1d5dc));background-image:-webkit-linear-gradient(top, #92a6b3 0%, #90aab8 11%, #96b1bf 22%, #9eb4c1 33%, #a7bac7 44%, #c1d5dc 100%);background-image:-o-linear-gradient(top, #92a6b3 0%, #90aab8 11%, #96b1bf 22%, #9eb4c1 33%, #a7bac7 44%, #c1d5dc 100%);background-image:linear-gradient(to bottom, #92a6b3 0%, #90aab8 11%, #96b1bf 22%, #9eb4c1 33%, #a7bac7 44%, #c1d5dc 100%)}.ss-assetuploadfield .ss-uploadfield-files .ss-uploadfield-item-progress .ss-uploadfield-item-progressbarvalue{width:0;background:#60b3dd url(../images/progressbar_blue.gif) repeat left center}.ss-assetuploadfield .ss-uploadfield-files .ss-uploadfield-item-editform{height:0;overflow:hidden;clear:both}.ss-assetuploadfield .ss-uploadfield-files .ss-uploadfield-item-editform.loading{width:100%;height:22px;padding:15px 0;background:url(../../admin/client/dist/images/spinner.gif) no-repeat 50% 50%}.ss-assetuploadfield .ss-uploadfield-files .ss-uploadfield-item-editform.loading iframe{padding-top:0;margin-top:37px;border:0}.ss-assetuploadfield .ss-uploadfield-files .ss-uploadfield-item-editform iframe{width:100%;padding:16px;background:#E2E2E2}.ss-assetuploadfield .ss-uploadfield-addfile .ss-uploadfield-item-info>span{display:block;padding:0;line-height:1;color:#9ba5ae;margin-top:-12px}.ss-uploadfield-fromcomputer .ss-insert-media .ss-assetuploadfield .ss-uploadfield-addfile{margin:0 12px 0 0}.ss-uploadfield-dropzone::after{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(236,239,241,0.9) url("../../admin/client/dist/images/drag_drop_opt.svg") center center no-repeat;-webkit-background-size:312px 325px;background-size:312px 325px;z-index:100}.ss-uploadfield-dropzone.active.hover::after{content:''}@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2 / 1), only screen and (min-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx){.ss-assetuploadfield .ss-uploadfield-files .ss-uploadfield-item-editform.loading{background-image:url(../../admin/client/dist/images/spinner@2x.gif);-webkit-background-size:43px 43px;background-size:43px 43px}}
-
-/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxlZ2FjeS9Bc3NldFVwbG9hZEZpZWxkLnNjc3MiLCIuLi8uLi8uLi9hZG1pbi9jbGllbnQvc3JjL3N0eWxlcy9fdmFyaWFibGVzLnNjc3MiLCIuLi8uLi8uLi9hZG1pbi9jbGllbnQvc3JjL3N0eWxlcy9sZWdhY3kvX21peGlucy5zY3NzIiwiLi4vLi4vLi4vYWRtaW4vY2xpZW50L3NyYy9zdHlsZXMvbGVnYWN5L3RoZW1lcy9fZGVmYXVsdC5zY3NzIiwiX2VsZW1lbnRNaXhpbnMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSx3Q0FDQyxpQkFDQSxXQUFhLENBRmQsd0RBS0UsVUFDQSw4QkFBQSxBQUNBLHNCQUFBLGtCQUNBLFVBQ0Esa0JBQ0EsWUFDQSxhQUNBLE1BQ0EsU0FDQSw4QkFDQSxtQkFDQSxrQ0FBQSxBQUEyQiw2QkFBM0IsQUFBMkIseUJBQUEsQ0FoQjdCLDJEQW1CRyxlQUNBLGtCQUFvQixDQXBCdkIsK0RBeUJFLFFBQ0EsU0FBVyxDQTFCYixnREE4QkUsZUFDQSxlQUNBLFlBQ0EsY0FDQSxXQUNBLFlBQ0EsZUFBaUIsQ0FwQ25CLG1LQXlDRyxxQkFDQSxhQUFhLENBQ2IsVUFLRixpQkFBbUIsQ0FDbkIscUZBR0EsY0FDQSxrQkFBb0IsQ0FGckIsaUhBS0Usa0JBQ0EsY0FDQSw0QkFBOEIsQ0FDOUIsaURBS0QsNEJBQ0Esd0JDeEJ3QixDRHlCeEIscUNBS0MsNEJBQ0EsNEJBQVEsQ0FKViwyREFPRyxTQUNBLFNBQVcsQ0FSZCx1RUFXSSxlQUNBLGVBQWlCLENBWnJCLDRCQXNCSSxXQUNBLGlCQUFtQixDQXZCdkIsd0JBMkJFLDhDQUNBLGlEQUFBLEFBQ0EseUNBQUEsZUFDQSxnQkFDQSxXQUNBLGlCQUFtQixDQWhDckIsbUNBb0NFLFdBQ0EsZ0JBQ0EsaUJBQW1CLENBdENyQix1REV4Q0UsWUFDQSxjQUNBLFNBQ0EsV0FDQSxpQkFBbUIsQ0FDbkIsK0RBQ2dCLE1BQU8sQ0ZrQ3pCLHdEQTRDSSxXQUNBLGVBQ0EsaUJBQ0EsaUJBQW1CLENBL0N2QiwwREFtREksWUFDQSxXQUFhLENBcERqQix5RkEyREcsWUFDQSxnQkFDQSxVQUNBLGdCQUNBLFNBQ0Esd0JBQUEsQUFDQSxnQkFBQSxhR2hGaUIsQ0hlcEIsK0ZBb0VJLGFBQWMsQ0FwRWxCLDJDQTJFRSxTQUNBLFVBQ0EsVUFBVyxDQTdFYixnRUFnRkcsb0NBQUEsQUFDQSw0QkFBQSxlQUNBLFVBQ0Esa0JBQ0EsdUJBQ0EsdUJDaWpCaUMsQ0R0b0JwQywrRUF3RkksV0FBYSxDQXhGakIseUdBMkZLLFdBQWEsQ0EzRmxCLHlHQStGSyxpQkFBbUIsQ0EvRnhCLHNFQW9HSSxrQkFDQSxZQUNBLGdCQUNBLHlCQUNBLHdCQUEwQixDQXhHOUIsd0VBNkdHLGtCQUNBLFlBQ0EsV0FDQSxnQkFDQSxVQUNBLEtBQU8sQ0FsSFYsNEZBc0hRLFdBQ0EsWUFDQSxrQkFBb0IsQ0F4SDVCLHFFQTZIRyxnQkFDQSx5QkFDQSxvTUFBQSxBQUFpQywySEFBakMsQUFBaUMsc0hBQWpDLEFBQWlDLHdIQUFBLENBL0hwQyxxRkFtSUcseUJBQ0Esb0JBQ0EsdWNBQUEsQUFDQSw0UEFEQSxBQUNBLHVQQURBLEFBQ0EsMFBBQUEsVUFBWSxDQXRJZiwrR0F5SUksZUFDQSxtQkFDQSxnQ0FBdUIsQ0EzSTNCLHFIQThJSyw2Q0FBa0MsQ0E5SXZDLHVGQW9KRyx5QkFDQSxvTUFBQSxBQUFpQywySEFBakMsQUFBaUMsc0hBQWpDLEFBQWlDLHdIQUFBLENBckpwQyxxRUFpS0csa0JBQ0EsVUFDQSxzQkFDQSxVQUNBLGNBQ0EsbUJBQ0EsaUNBQ0Esa0JBQ0EsaUJBQ0EsWUFDQSxjQUNBLGdCQUNBLGVBRUEsY0FDQSxrQkFBbUIsQ0FoTHRCLDJFQW1MSSw4Q0FDQSxlQUNBLFdBQ0EsY0FDQSxtQkFDQSxrQkVsUEgsZ0JBQ0EsbUJBQ0EsdUJBQ0EseUJBQTJCLENGdUQ1QixpR0E0TEksa0JBQ0EsWUFDQSxrQkFDQSxjRXpQSCxnQkFDQSxtQkFDQSx1QkFDQSwwQkZ3UEcsNkNBQWtDLENBak10QyxxSEFvTUssOENBQ0EsVUFBYSxDQXJNbEIsdUhBd01LLGFBQWEsQ0F4TWxCLHVIQTJNSyxhRzFNOEIsQ0hEbkMsd0VBZ05HLGtCQUNBLE1BQ0EsUUFDQSxPQUNBLFNBQVcsQ0FwTmQsc0ZJbkRFLGdCQUNBLFNBQ0Esd0JBQUEsQUFDQSxnQkFBQSxpQkFDQSxXQUNBLFdBQWEsQ0o4Q2YsaUhJMUNHLFlBQWMsQ0owQ2pCLDZPSXZDRyxnQkFDQSw0Q0FDQSxlQUNBLGVBQ0EsV0FBWSxDSm1DZix5UElqQ0ksU0FBVSxDSmlDZCwrUEk5QkssY0FDQSxTQUNBLGtCQUNBLE9BQVEsQ0oyQmIsK0dJYkUsWUFDQSxnQkFDQSxpQkFDQSxZQUNBLGVBQWlCLENKU25CLDhISVBHLGdCQUNBLFNBQVUsQ0pNYixrSklKSSxTQUFVLENKSWQsbUlJQUcsWUFDQSxnQkFDQSxxQkFDQSxVQUNBLFlBQ0EsY0FBZ0IsQ0pMbkIsd0pJT0ksZUFDQSxxQkFDQSxVQUNBLFdBQ0EscUJBQXVCLENKWDNCLCtKSWFLLFlBQWEsQ0pibEIsK0ZJb0JFLFlBQWMsQ0pwQmhCLHlFQXlORyxVQUFZLENBek5mLDZFQTROSSxZQUNBLFVBQ0EsU0FDQSxnQkFDQSxVQUFZLENBaE9oQiwwR0FtT0kseUJBQ0EscU1BQUEsQUFBaUMsNEhBQWpDLEFBQWlDLHVIQUFqQyxBQUFpQyx5SEFBQSxDQXBPckMsK0dBdU9JLFFBQ0EseUVBQTBFLENBeE85RSx5RUE4T0csU0FDQSxnQkFDQSxVQUFZLENBaFBmLGlGQW1QSSxXQUNBLFlBQ0EsZUFDQSw0RUFBNkUsQ0F0UGpGLHdGQTBQSyxjQUNBLGdCQUNBLFFBQVUsQ0E1UGYsZ0ZBaVFJLFdBQ0EsYUFDQSxrQkFBb0IsQ0FuUXhCLDRFQTJRRyxjQUNBLFVBQ0EsY0FDQSxjQUNBLGdCQUFrQixDQUNsQiwyRkFHQSxpQkFBbUIsQ0FDbkIsZ0NBTUQsa0JBQ0EsTUFDQSxRQUNBLFNBQ0EsT0FDQSxpSEFDQSxvQ0FBQSxBQUNBLDRCQUFBLFdBQWEsQ0FUZiw2Q0FhRSxVQUFZLENBQ1osbVZBZ0JELGlGQUlJLG9FQUNBLGtDQUFBLEFBQTJCLHlCQUFBLENBQzNCLENBQUEiLCJmaWxlIjoibGVnYWN5L0Fzc2V0VXBsb2FkRmllbGQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gVE9ETyB3ZSBuZWVkIGEgc2VwZXJhdGVkIGZpbGUgZm9yIHN0eWxlcyB0aGF0IGFyZSB1c2VkIGluIGJvdGggY21zIGFuZCBmcm9udCBlbmQgKHN1Y2ggYXMgYnV0dG9ucylcbkBpbXBvcnQgXCIuLi8uLi8uLi8uLi9hZG1pbi9jbGllbnQvc3JjL3N0eWxlcy9sZWdhY3kvdGhlbWVzL2RlZmF1bHQuc2Nzc1wiO1xuQGltcG9ydCBcIi4uLy4uLy4uLy4uL2FkbWluL2NsaWVudC9zcmMvc3R5bGVzL2xlZ2FjeS9fbWl4aW5zLnNjc3NcIjtcbkBpbXBvcnQgXCIuLi9fZWxlbWVudE1peGluc1wiO1xuXG4uc3MtdXBsb2FkZmllbGQtdmlldy1hbGxvd2VkLWV4dGVuc2lvbnMge1xuXHRtYXJnaW4tdG9wOiAtMzZweDtcblx0ZmxvYXQ6IHJpZ2h0O1xuXG5cdC50b2dnbGUtY29udGVudCB7XG5cdFx0b3BhY2l0eTogMDtcblx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR6LWluZGV4OiAxO1xuXHRcdHBhZGRpbmc6IDIuNSokZ3JpZC15IDIqJGdyaWQteDtcblx0XHR3aWR0aDogMjgwcHg7XG5cdFx0cmlnaHQ6IC0yODBweDtcblx0XHR0b3A6IDA7XG5cdFx0Ym90dG9tOiAwO1xuXHRcdGJvcmRlci1sZWZ0OiAxcHggc29saWQgJGNvbG9yLXNlcGFyYXRvcjtcblx0XHRiYWNrZ3JvdW5kOiAkdGFiLXBhbmVsLXRleHR1cmUtY29sb3I7XG5cdFx0dHJhbnNpdGlvbjogYWxsIC4zcyBsaW5lYXI7XG5cblx0XHRoNCB7XG5cdFx0XHRtYXJnaW46IDAgMCA2cHg7XG5cdFx0XHRwYWRkaW5nLXJpZ2h0OiAyMHB4O1xuXHRcdH1cblx0fVxuXG5cdCYuYWN0aXZlIC50b2dnbGUtY29udGVudCB7XG5cdFx0cmlnaHQ6IDA7XG5cdFx0b3BhY2l0eTogMTtcblx0fVxuXG5cdC50b2dnbGUge1xuXHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHRmb250LXNpemU6IDE2cHg7XG5cdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdGNvbG9yOiAkY29sb3ItdGV4dDtcblx0XHR3aWR0aDogMTZweDtcblx0XHRoZWlnaHQ6IDE4cHg7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblxuXHRcdCY6aG92ZXIsXG5cdFx0JjphY3RpdmUsXG5cdFx0Jjpmb2N1cyB7XG5cdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0XHRjb2xvcjogZGFya2VuKCRjb2xvci10ZXh0LCAxMCUpO1xuXHRcdH1cblx0fVxufVxuXG4uYmFja2xpbmsge1xuXHRwYWRkaW5nLWxlZnQ6IDEycHg7XG59XG5cbmJvZHkuY21zLnNzLXVwbG9hZGZpZWxkLWVkaXQtaWZyYW1lIHtcblx0b3ZlcmZsb3c6IGF1dG87XG5cdGJhY2tncm91bmQ6ICNFMkUyRTI7XG5cblx0c3Bhbi5yZWFkb25seSB7XG5cdFx0Zm9udC1zdHlsZTppdGFsaWM7XG5cdFx0Y29sb3I6bGlnaHRlbigkY29sb3ItdGV4dCwgMjAlKTtcblx0XHR0ZXh0LXNoYWRvdzogMHB4IDFweCAwcHggI2ZmZjtcblx0fVxufVxuXG4uY29tcG9zaXRlLnNzLWFzc2V0dXBsb2FkZmllbGQgLmRldGFpbHMgZmllbGRzZXQge1xuXHRAZXh0ZW5kIGJvZHkuY21zLnNzLXVwbG9hZGZpZWxkLWVkaXQtaWZyYW1lO1xuXHRwYWRkaW5nOiAkcGFuZWwtcGFkZGluZy15ICRwYW5lbC1wYWRkaW5nLXg7XG5cdGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kLW1haW47XG59XG5cbi5zcy1hc3NldHVwbG9hZGZpZWxkIHtcblxuXHQuQ29tcG9zaXRlRmllbGQge1xuXHRcdHBhZGRpbmc6ICRwYW5lbC1wYWRkaW5nLXkgJHBhbmVsLXBhZGRpbmcteDtcblx0XHRtYXJnaW46ICN7LSRwYW5lbC1wYWRkaW5nLXl9ICN7LSRwYW5lbC1wYWRkaW5nLXh9O1xuXG5cdFx0Ji5kaW1lbnNpb25zLmZvcm0tZ3JvdXAge1xuXHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0cGFkZGluZzogMDtcblxuXHRcdFx0PiAuZGltZW5zaW9ucyB7XG5cdFx0XHRcdHBhZGRpbmctbGVmdDogMDtcblx0XHRcdFx0cGFkZGluZy1yaWdodDogMDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuICA+IGZpZWxkc2V0IHtcbiAgICBAZXh0ZW5kIC5jbGVhcmZpeDtcbiAgfVxuXG4gICY6OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxuXG5cdGgzIHtcblx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgJGNvbG9yLXNoYWRvdy1saWdodDtcblx0XHRib3gtc2hhZG93OiAwIDFweCAwIGxpZ2h0ZW4oJGNvbG9yLXNoYWRvdy1saWdodCwgOTUlKTtcblx0XHRtYXJnaW46IDAgMCA4cHg7XG5cdFx0cGFkZGluZzogMCAwIDdweDtcblx0XHRjbGVhcjogYm90aDtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdH1cblxuXHQuZmlsZU92ZXJ2aWV3IHtcblx0XHRjbGVhcjogYm90aDtcblx0XHRtYXJnaW4tdG9wOiAxMHB4O1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHRcdC51cGxvYWRTdGF0dXN7XG5cdFx0XHRAaW5jbHVkZSBjbGVhcmZpeDtcblxuXHRcdFx0LnN0YXRle1xuXHRcdFx0XHRmbG9hdDogbGVmdDtcblx0XHRcdFx0Zm9udC1zaXplOiAxNnB4O1xuXHRcdFx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRcdFx0bGluZS1oZWlnaHQ6IDEuMWVtO1xuXHRcdFx0fVxuXG5cdFx0XHQuZGV0YWlscyB7XG5cdFx0XHRcdG9wYWNpdHk6IDAuOTtcblx0XHRcdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC5zcy11cGxvYWRmaWVsZC1pdGVtLWFjdGlvbnMuZWRpdC1hbGx7XG5cdFx0LnNzLXVwbG9hZGZpZWxkLWl0ZW0tZWRpdC1hbGwge1xuXHRcdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdFx0bWFyZ2luOiAtOHB4IDAgMDtcblx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0XHRiYWNrZ3JvdW5kOiBub25lO1xuXHRcdFx0Ym9yZGVyOiAwO1xuXHRcdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0XHRcdGNvbG9yOiAkY29sb3ItdGV4dDtcblxuXHRcdFx0Jjpob3Zlcntcblx0XHRcdFx0Y29sb3I6IGxpZ2h0ZW4oJGNvbG9yLXRleHQsIDEwJSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblxuXHQuc3MtdXBsb2FkZmllbGQtZmlsZXMge1xuXHRcdG1hcmdpbjogMDtcblx0XHRwYWRkaW5nOiAwO1xuXHRcdGNsZWFyOmJvdGg7XG5cblx0XHQuc3MtdXBsb2FkZmllbGQtaXRlbSB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuXHRcdFx0bWFyZ2luOiAwIDAgNXB4O1xuXHRcdFx0cGFkZGluZzogMDtcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdG1hcmdpbi1sZWZ0OiAtJHBhbmVsLXBhZGRpbmcteDtcblx0XHRcdG1hcmdpbi1yaWdodDogLSRwYW5lbC1wYWRkaW5nLXg7XG5cblx0XHRcdCYudWktc3RhdGUtZXJyb3Ige1xuXHRcdFx0XHRoZWlnaHQ6IDMycHg7IC8vIGxpbWl0IGhlaWdodCB0byBvbmx5IGVycm9yZWQgdXBsb2FkXG5cblx0XHRcdFx0LnNzLXVwbG9hZGZpZWxkLWl0ZW0taW5mbyB7XG5cdFx0XHRcdFx0aGVpZ2h0OiAzMHB4O1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0LnNzLXVwbG9hZGZpZWxkLWl0ZW0tbmFtZSB7XG5cdFx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC5pbmZvIHtcblx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0XHRwYWRkaW5nOiA3cHg7XG5cdFx0XHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICNGRkJFNjY7XG5cdFx0XHRcdGJvcmRlcjogMXB4IHNvbGlkICNGRjkzMDA7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LnNzLXVwbG9hZGZpZWxkLWl0ZW0tcHJldmlldyB7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRoZWlnaHQ6IDMwcHg7XG5cdFx0XHR3aWR0aDogNDBweDtcblx0XHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0XHR6LWluZGV4OiAxO1xuXHRcdFx0dG9wOiAwO1xuXHRcdFx0Ly8gUHJldmVudCBpY29ucyB0b3VjaGluZyBlZGdlXG5cbiBcdFx0XHRpbWdbc3JjJD1cIl8zMi5wbmdcIl0ge1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgaGVpZ2h0OiAyNnB4O1xuICAgICAgICBtYXJnaW46IDJweCAwIDAgMnB4O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC5zcy11cGxvYWRmaWVsZC1pdGVtLWluZm8ge1xuXHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICM1ZGI0ZGY7XG5cdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAgIzVkYjRkZiAwJSwjNWRiMWRkIDglLCM0MzliY2IgNTAlLCMzZjk5Y2QgNTQlLCMyMDdkYjYgOTYlLCMxZTdjYmEgMTAwJSk7XG5cdFx0fVxuXG5cdFx0LnVpLXN0YXRlLWVycm9yIC5zcy11cGxvYWRmaWVsZC1pdGVtLWluZm8ge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2MxMWYxZDtcblx0XHRcdHBhZGRpbmctcmlnaHQ6IDEzMHB4O1xuXHRcdFx0YmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgICNjMTFmMWQgMCUsI2JmMWQxYiA0JSwjYjcxYjFjIDglLCNiNjFlMWQgMTUlLCNiMTFkMWQgMjclLCNhYjFkMWMgMzElLCNhNTFiMWIgNDIlLCM5ZjFiMTkgNDYlLCM5ZjFiMTkgNTAlLCM5OTFjMWEgNTQlLCM5NzFhMTggNTglLCM5MTFiMWIgNjIlLCM5MTFiMWIgNjUlLCM3ZTE4MTYgODglLCM3NzE5MTkgOTIlLCM3MzE4MTcgMTAwJSk7XG5cdFx0XHR3aWR0aDogMTAwJTtcblxuXHRcdFx0LnNzLXVwbG9hZGZpZWxkLWl0ZW0tbmFtZSB7XG5cdFx0XHRcdGN1cnNvcjogZGVmYXVsdDtcblx0XHRcdFx0YmFja2dyb3VuZDogZGFya2VuKCRjb2xvci1idXR0b24tZGlzYWJsZWQsMjAlKTsgLy9mb3IgYnJvd3NlcnMgdGhhdCBkb24ndCBzdXBwb3J0IHJnYmFcblx0XHRcdFx0YmFja2dyb3VuZDogcmdiYShkYXJrZW4oJGNvbG9yLWJ1dHRvbi1kaXNhYmxlZCwgMTUlKSwwLjkpO1xuXG5cdFx0XHRcdC5uYW1lIHtcblx0XHRcdFx0XHR0ZXh0LXNoYWRvdzogMHB4IDFweCAwcHggcmdiYSgjZmZmLCAwLjcpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LnVpLXN0YXRlLXdhcm5pbmcgLnNzLXVwbG9hZGZpZWxkLWl0ZW0taW5mbyB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Itd2FybmluZztcblx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudChcblx0XHRcdFx0dG8gYm90dG9tLFxuXHRcdFx0XHRkZXNhdHVyYXRlKGxpZ2h0ZW4oJGNvbG9yLXdhcm5pbmcsIDEwJSksIDIwJSkgIDAlLFxuXHRcdFx0XHRkZXNhdHVyYXRlKGxpZ2h0ZW4oJGNvbG9yLXdhcm5pbmcsIDUlKSwgMjAlKSAgOCUsXG5cdFx0XHRcdGRlc2F0dXJhdGUoJGNvbG9yLXdhcm5pbmcsIDIwJSkgIDUwJSxcblx0XHRcdFx0ZGVzYXR1cmF0ZShkYXJrZW4obWl4KCRjb2xvci13YXJuaW5nLCAkY29sb3ItYnV0dG9uLWRlc3RydWN0aXZlLCA5OSUpLDAlKSwgMjAlKSAgNTQlLFxuXHRcdFx0XHRkZXNhdHVyYXRlKGRhcmtlbihtaXgoJGNvbG9yLXdhcm5pbmcsICRjb2xvci1idXR0b24tZGVzdHJ1Y3RpdmUsIDgwJSksMSUpLCAyMCUpICA5NiUsXG5cdFx0XHRcdGRlc2F0dXJhdGUoZGFya2VuKG1peCgkY29sb3Itd2FybmluZywgJGNvbG9yLWJ1dHRvbi1kZXN0cnVjdGl2ZSwgNzAlKSwyJSksIDIwJSkgMTAwJVxuXHRcdFx0KTtcblx0XHR9XG5cblx0XHQuc3MtdXBsb2FkZmllbGQtaXRlbS1uYW1lIHtcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdHotaW5kZXg6IDE7XG5cdFx0XHRtYXJnaW46IDNweCAwIDNweCA1MHB4O1xuXHRcdFx0d2lkdGg6IDUwJTtcblx0XHRcdGNvbG9yOiBsaWdodGVuKCRjb2xvci10ZXh0LCAxMCUpO1xuXHRcdFx0YmFja2dyb3VuZDogJGNvbG9yLWJ1dHRvbi1kaXNhYmxlZDsgLy9mb3IgYnJvd3NlcnMgdGhhdCBkb24ndCBzdXBwb3J0IHJnYmFcblx0XHRcdGJhY2tncm91bmQ6IHJnYmEoI2ZmZiwgMC44KTtcblx0XHRcdGJvcmRlci1yYWRpdXM6IDNweDtcblx0XHRcdGxpbmUtaGVpZ2h0OiAyNHB4O1xuXHRcdFx0aGVpZ2h0OiAyMnB4O1xuXHRcdFx0cGFkZGluZzogMCA1cHg7XG5cdFx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdFx0Ly9kaXNwbGF5OnRhYmxlLCBhbmQgdGFibGUtbGF5b3V0OmZpeGVkIGFsbG93cyB1cyB0byB1c2UgcGVyY2VudGFnZXMgd2l0aCB0ZXh0LW92ZXJmbG93XG5cdFx0XHRkaXNwbGF5OnRhYmxlO1xuXHRcdFx0dGFibGUtbGF5b3V0OmZpeGVkO1xuXG5cdFx0XHQubmFtZSB7XG5cdFx0XHRcdHRleHQtc2hhZG93OiAwcHggMXB4IDBweCByZ2JhKCNmZmYsIDAuNSk7XG5cdFx0XHRcdGRpc3BsYXk6IGlubGluZTtcblx0XHRcdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0XHRcdG1heC13aWR0aDogNTAlO1xuXHRcdFx0XHRmb250LXdlaWdodDogbm9ybWFsO1xuXHRcdFx0XHRwYWRkaW5nOiAwIDVweCAwIDA7XG5cdFx0XHRcdEBpbmNsdWRlIGhpZGUtdGV4dC1vdmVyZmxvdztcblx0XHRcdH1cblx0XHRcdC5zcy11cGxvYWRmaWVsZC1pdGVtLXN0YXR1cyB7XG5cdFx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdFx0XHRmbG9hdDogcmlnaHQ7XG5cdFx0XHRcdHBhZGRpbmc6IDAgMCAwIDVweDtcblx0XHRcdFx0bWF4LXdpZHRoOjMwJTtcblx0XHRcdFx0QGluY2x1ZGUgaGlkZS10ZXh0LW92ZXJmbG93O1xuXHRcdFx0XHR0ZXh0LXNoYWRvdzogMHB4IDFweCAwcHggcmdiYSgjZmZmLCAwLjUpO1xuXG5cdFx0XHRcdCYudWktc3RhdGUtZXJyb3ItdGV4dCB7XG5cdFx0XHRcdFx0dGV4dC1zaGFkb3c6IDBweCAxcHggMHB4IHJnYmEoI2ZmZiwgMC42KTtcblx0XHRcdFx0XHRjb2xvcjogZGFya2VuKCRjb2xvci1idXR0b24tZGVzdHJ1Y3RpdmUsIDEwJSk7XG5cdFx0XHRcdH1cblx0XHRcdFx0Ji51aS1zdGF0ZS13YXJuaW5nLXRleHQge1xuXHRcdFx0XHRcdGNvbG9yOiBkYXJrZW4oJGNvbG9yLXdhcm5pbmcsIDEwJSk7XG5cdFx0XHRcdH1cblx0XHRcdFx0Ji51aS1zdGF0ZS1zdWNjZXNzLXRleHQge1xuXHRcdFx0XHRcdGNvbG9yOiAkY29sb3ItYnV0dG9uLWNvbnN0cnVjdGl2ZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHQuc3MtdXBsb2FkZmllbGQtaXRlbS1hY3Rpb25zIHtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHRvcDogMDtcblx0XHRcdHJpZ2h0OiAwO1xuXHRcdFx0bGVmdDogMDtcblx0XHRcdHotaW5kZXg6IDA7XG5cdFx0XHRAaW5jbHVkZSBzcy11cGxvYWRmaWVsZC1hY3Rpb24tYnV0dG9ucztcblx0XHR9XG5cblx0XHQuc3MtdXBsb2FkZmllbGQtaXRlbS1wcm9ncmVzcyB7XG5cdFx0XHR3aWR0aDogMTAwJTtcblxuXHRcdFx0ZGl2IHtcblx0XHRcdFx0aGVpZ2h0OiAzMHB4O1xuXHRcdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0XHRtYXJnaW46IDA7XG5cdFx0XHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0fVxuXHRcdFx0LnNzLXVwbG9hZGZpZWxkLWl0ZW0tcHJvZ3Jlc3NiYXIge1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjOTJhNmIzO1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjOTJhNmIzIDAlLCM5MGFhYjggMTElLCM5NmIxYmYgMjIlLCM5ZWI0YzEgMzMlLCNhN2JhYzcgNDQlLCNjMWQ1ZGMgMTAwJSk7XG5cdFx0XHR9XG5cdFx0XHQuc3MtdXBsb2FkZmllbGQtaXRlbS1wcm9ncmVzc2JhcnZhbHVlIHtcblx0XHRcdFx0d2lkdGg6IDA7XG5cdFx0XHRcdGJhY2tncm91bmQ6ICM2MGIzZGQgdXJsKC4uL2ltYWdlcy9wcm9ncmVzc2Jhcl9ibHVlLmdpZikgcmVwZWF0IGxlZnQgY2VudGVyO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC5zcy11cGxvYWRmaWVsZC1pdGVtLWVkaXRmb3JtIHtcblx0XHRcdC8qIGRvbid0IHVzZSBkaXNwbGF5IG5vbmUsIGZvciBpdCB3aWxsIGJyZWFrIGpRdWVyeSgnaWZyYW1lJykuY29udGVudHMoKS5oZWlnaHQoKSAqL1xuXHRcdFx0aGVpZ2h0OiAwO1xuXHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRcdGNsZWFyOiBib3RoO1xuXG5cdFx0XHQmLmxvYWRpbmcge1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0aGVpZ2h0OiAyMnB4O1xuXHRcdFx0XHRwYWRkaW5nOiAxNXB4IDA7XG5cdFx0XHRcdGJhY2tncm91bmQ6IHVybCguLi8uLi9hZG1pbi9jbGllbnQvZGlzdC9pbWFnZXMvc3Bpbm5lci5naWYpIG5vLXJlcGVhdCA1MCUgNTAlO1xuXG5cdFx0XHRcdGlmcmFtZSB7XG5cdFx0XHRcdFx0LyogT2xkIElFIG5lZWRzIHRoaXMgb3IgaXQnbGwgZ2l2ZSB0aGUgaWZyYW1lIGEgd2hpdGUgYmFja2dyb3VuZCwgY292ZXJpbmcgdGhlIHNwaW5uZXIgKi9cblx0XHRcdFx0XHRwYWRkaW5nLXRvcDogMDtcblx0XHRcdFx0XHRtYXJnaW4tdG9wOiAzN3B4O1xuXHRcdFx0XHRcdGJvcmRlcjogMDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRpZnJhbWUge1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0cGFkZGluZzogJGdyaWQteCAqIDI7XG5cdFx0XHRcdGJhY2tncm91bmQ6ICNFMkUyRTI7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0LnNzLXVwbG9hZGZpZWxkLWFkZGZpbGUge1xuXG5cdFx0LnNzLXVwbG9hZGZpZWxkLWl0ZW0taW5mbyA+IHNwYW4ge1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0bGluZS1oZWlnaHQ6IDE7XG5cdFx0XHRjb2xvcjogbGlnaHRlbigkY29sb3ItdGV4dCwgMjAlKTtcblx0XHRcdG1hcmdpbi10b3A6IC0xMnB4O1xuXHRcdH1cblxuXHRcdC5zcy11cGxvYWRmaWVsZC1mcm9tY29tcHV0ZXIgLnNzLWluc2VydC1tZWRpYSAmIHtcblx0XHRcdG1hcmdpbjogMCAxMnB4IDAgMDtcblx0XHR9XG5cdH1cbn1cblxuLnNzLXVwbG9hZGZpZWxkLWRyb3B6b25lIHtcblx0Jjo6YWZ0ZXIge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR0b3A6IDA7XG5cdFx0cmlnaHQ6IDA7XG5cdFx0Ym90dG9tOiAwO1xuXHRcdGxlZnQ6IDA7XG5cdFx0YmFja2dyb3VuZDogcmdiYSgyMzYsIDIzOSwgMjQxLCAuOSkgdXJsKCcuLi8uLi9hZG1pbi9jbGllbnQvZGlzdC9pbWFnZXMvZHJhZ19kcm9wX29wdC5zdmcnKSBjZW50ZXIgY2VudGVyIG5vLXJlcGVhdDtcblx0XHRiYWNrZ3JvdW5kLXNpemU6IDMxMnB4IDMyNXB4O1xuXHRcdHotaW5kZXg6IDEwMDtcblx0fVxuXG5cdCYuYWN0aXZlLmhvdmVyOjphZnRlciB7XG5cdFx0Y29udGVudDogJyc7XG5cdH1cbn1cblxuLyoqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFwiQDJ4XCIgbWVkaWEgcXVlcnlcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuQG1lZGlhXG5cdG9ubHkgc2NyZWVuIGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSxcblx0b25seSBzY3JlZW4gYW5kICggICBtaW4tLW1vei1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLFxuXHRvbmx5IHNjcmVlbiBhbmQgKCAgICAgLW8tbWluLWRldmljZS1waXhlbC1yYXRpbzogMi8xKSxcblx0b25seSBzY3JlZW4gYW5kICggICAgICAgIG1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLFxuXHRvbmx5IHNjcmVlbiBhbmQgKCAgICAgICAgICAgICAgICBtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSxcblx0b25seSBzY3JlZW4gYW5kICggICAgICAgICAgICAgICAgbWluLXJlc29sdXRpb246IDJkcHB4KSB7XG5cblx0LyogTG9hZGluZyBzcGlubmVyICovXG5cdC5zcy1hc3NldHVwbG9hZGZpZWxkIHtcblx0XHQuc3MtdXBsb2FkZmllbGQtZmlsZXMge1xuXHRcdFx0LnNzLXVwbG9hZGZpZWxkLWl0ZW0tZWRpdGZvcm0ge1xuXHRcdFx0XHQmLmxvYWRpbmcge1xuXHRcdFx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi8uLi9hZG1pbi9jbGllbnQvZGlzdC9pbWFnZXMvc3Bpbm5lckAyeC5naWYpO1xuXHRcdFx0XHRcdGJhY2tncm91bmQtc2l6ZTogNDNweCA0M3B4O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iLCIvLyBWYXJpYWJsZXNcbi8vXG4vLyBUaGlzIGZpbGUgY29udGFpbnMgdGhlIGtleXMgZm9yIGJvb3RzdHJhcCB2YXJpYWJsZXMsIHRoZSBjb21tZW50ZWQgY29kZSBpcyBib290c3RyYXAncyBkZWZhdWx0IHZhbHVlcy5cbi8vIENvbW1lbnRlZCBsaW5lcyBpbmRpY2F0ZSB0aGF0IHRoZSBkZWZhdWx0IEJvb3RzdHJhcCB2YWx1ZXMgYXJlIGJlaW5nIHVzZWQuXG4vLyBBbGwgdmFyaWFibGVzIHdoaWNoIGFyZSB1bmNvbW1lbnRlZCB0aGUgdmFsdWVzIHdpbGwgYmUgaW4gdXNlIHNvIGJlIGNhdXRpb3VzIHdoZW4gYWRqdXN0aW5nIHRoZWlyIHZhbHVlcy4uXG5cblxuLy8gVGFibGUgb2YgQ29udGVudHNcbi8vXG4vLyBDb2xvcnNcbi8vIE9wdGlvbnNcbi8vIFNwYWNpbmdcbi8vIEJvZHlcbi8vIExpbmtzXG4vLyBHcmlkIGJyZWFrcG9pbnRzXG4vLyBHcmlkIGNvbnRhaW5lcnNcbi8vIEdyaWQgY29sdW1uc1xuLy8gRm9udHNcbi8vIENvbXBvbmVudHNcblxuLy8gR2VuZXJhbCB2YXJpYWJsZSBzdHJ1Y3R1cmVcbi8vIFZhcmlhYmxlIGZvcm1hdCBzaG91bGQgZm9sbG93IHRoZSBgJGNvbXBvbmVudC1tb2RpZmllci1zdGF0ZS1wcm9wZXJ0eWAgb3JkZXIuXG5cblxuLy8gQ29sb3JzXG4vLyBHcmF5c2NhbGUgYW5kIGJyYW5kIGNvbG9ycyBmb3IgdXNlIGFjcm9zcyBCb290c3RyYXAuXG5cblxuJGdyYXktZGFyazogIzRmNTg2MTsgLy8gVXNlZCBmb3IgdGV4dFxuJGdyYXk6IGxpZ2h0ZW4oJGdyYXktZGFyaywgMiUpO1xuJGdyYXktbGlnaHQ6IGxpZ2h0ZW4oJGdyYXktZGFyaywgNTAlKTtcbiRncmF5LWxpZ2h0ZXI6IGxpZ2h0ZW4oJGdyYXktZGFyaywgNTclKTtcbi8vICRncmF5LWxpZ2h0ZXN0OiAjZjdmN2Y5O1xuJGdyYXktZGFya2VyOiBkYXJrZW4oJGdyYXktZGFyaywgMTAlKTtcbiRncmF5LWRhcmtlc3Q6IGRhcmtlbigkZ3JheS1kYXJrLCAyMCUpO1xuJHdoaXRlOiAjZmZmOyAvLyBOZXZlciBjaGFuZ2UsIGNyZWF0ZSBuZXcgdmFyaWFibGUgaWYgbmVlZGVkXG4kYmxhY2s6ICMwMDA7IC8vIE5ldmVyIGNoYW5nZVxuXG4kYnJhbmQtc2Vjb25kYXJ5OiAjMDA1YTkzO1xuJGJyYW5kLXByaW1hcnk6ICMyOWFiZTI7XG4kYnJhbmQtc3VjY2VzczogIzNmYTE0Mjtcbi8vICRicmFuZC1pbmZvOiAjNWJjMGRlO1xuLy8gJGJyYW5kLXdhcm5pbmc6ICNmMGFkNGU7XG4kYnJhbmQtZGFuZ2VyOiAjZDQwNDA0O1xuXG4vLyBCYWNrZ3JvdW5kc1xuJGJhY2tncm91bmQtbWFpbjogI2Y2ZjdmODtcbiRiYWNrZ3JvdW5kLWRhcmtlcjogZGFya2VuKCRiYWNrZ3JvdW5kLW1haW4sIDIpO1xuXG5cbi8vIEJvcmRlcnNcbiRib3JkZXItY29sb3ItbGlnaHRlcjogZGFya2VuKCRiYWNrZ3JvdW5kLW1haW4sIDIpO1xuJGJvcmRlci1jb2xvci1saWdodDogZGFya2VuKCRiYWNrZ3JvdW5kLW1haW4sIDYpO1xuJGJvcmRlci1jb2xvcjogZGFya2VuKCRiYWNrZ3JvdW5kLW1haW4sIDEwKTtcbiRib3JkZXItY29sb3ItZGFyazogZGFya2VuKCRiYWNrZ3JvdW5kLW1haW4sIDE0KTtcblxuLy8gT3B0aW9uc1xuLy9cbi8vIFF1aWNrbHkgbW9kaWZ5IGdsb2JhbCBzdHlsaW5nIGJ5IGVuYWJsaW5nIG9yIGRpc2FibGluZyBvcHRpb25hbCBmZWF0dXJlcy5cblxuJGVuYWJsZS1mbGV4OiB0cnVlO1xuLy8gJGVuYWJsZS1yb3VuZGVkOiB0cnVlO1xuJGVuYWJsZS1zaGFkb3dzOiB0cnVlO1xuLy8gJGVuYWJsZS1ncmFkaWVudHM6IGZhbHNlO1xuJGVuYWJsZS10cmFuc2l0aW9uczogdHJ1ZTtcbi8vICRlbmFibGUtaG92ZXItbWVkaWEtcXVlcnk6IGZhbHNlO1xuLy8gJGVuYWJsZS1ncmlkLWNsYXNzZXM6IHRydWU7XG5cblxuLy8gU3BhY2luZ1xuLy9cbi8vIENvbnRyb2wgdGhlIGRlZmF1bHQgc3R5bGluZyBvZiBtb3N0IEJvb3RzdHJhcCBlbGVtZW50cyBieSBtb2RpZnlpbmcgdGhlc2Vcbi8vIHZhcmlhYmxlcy4gTW9zdGx5IGZvY3VzZWQgb24gc3BhY2luZy5cblxuJHNwYWNlcjogMS4yMzA4cmVtOyAvLyAkZm9udC1zaXplLXJvb3QgKDEzcHgpICogJHNwYWNlciA9IDE2cHhcbiRzcGFjZXIteDogJHNwYWNlcjtcbiRzcGFjZXIteTogJHNwYWNlcjtcblxuJHNwYWNlcnM6IChcbiAgMDogKFxuICAgIHg6IDAsXG4gICAgeTogMFxuICApLFxuICAxOiAoXG4gICAgeDogJHNwYWNlci14LFxuICAgIHk6ICRzcGFjZXIteVxuICApLFxuICAyOiAoXG4gICAgeDogKCRzcGFjZXIteCAqIDEuNSksXG4gICAgeTogKCRzcGFjZXIteSAqIDEuNSlcbiAgKSxcbiAgMzogKFxuICAgIHg6ICgkc3BhY2VyLXggKiAzKSxcbiAgICB5OiAoJHNwYWNlci15ICogMylcbiAgKVxuKTtcbiRib3JkZXItd2lkdGg6IDFweDtcblxuXG4vLyBCb2R5XG4vL1xuLy8gU2V0dGluZ3MgZm9yIHRoZSBgPGJvZHk+YCBlbGVtZW50LlxuXG4kYm9keS1iZzogJGJhY2tncm91bmQtbWFpbjtcbiRib2R5LWNvbG9yOiAkZ3JheS1kYXJrOyAvLyBlZy4gVGV4dCwgbGFiZWxzLCBpY29ub2dyYXBoeVxuJGJvZHktY29sb3ItbGlnaHQ6IGxpZ2h0ZW4oJGdyYXktZGFyaywgMTApOyAvLyBlZy4gRmllbGQgZGVzY3JpcHRpb25zXG4kYm9keS1jb2xvci1saWdodGVyOiBsaWdodGVuKCRncmF5LWRhcmssIDIwKTsgLy8gZWcuIHBsYWNlaG9sZGVyIHRleHRcbiRib2R5LWNvbG9yLWRhcms6ICAgIGRhcmtlbigkYm9keS1jb2xvciwgMTAlKTsgIC8vIGVnLiBpY29ub2dyYXBoeSBob3ZlcmVkXG5cblxuLy8gTGlua3Ncbi8vXG4vLyBTdHlsZSBhbmNob3IgZWxlbWVudHMuXG5cbiRsaW5rLWNvbG9yOiAjMDA3MWM0O1xuJGxpbmstZGVjb3JhdGlvbjogbm9uZTtcbiRsaW5rLWhvdmVyLWNvbG9yOiBkYXJrZW4oJGxpbmstY29sb3IsIDUlKTtcbiRsaW5rLWhvdmVyLWRlY29yYXRpb246IHVuZGVybGluZTtcblxuXG4vLyBHcmlkIGJyZWFrcG9pbnRzXG4vL1xuLy8gRGVmaW5lIHRoZSBtaW5pbXVtIGFuZCBtYXhpbXVtIGRpbWVuc2lvbnMgYXQgd2hpY2ggeW91ciBsYXlvdXQgd2lsbCBjaGFuZ2UsXG4vLyBhZGFwdGluZyB0byBkaWZmZXJlbnQgc2NyZWVuIHNpemVzLCBmb3IgdXNlIGluIG1lZGlhIHF1ZXJpZXMuXG5cbiRncmlkLWJyZWFrcG9pbnRzOiAoXG4gIC8vIEV4dHJhIHNtYWxsIHNjcmVlbiAvIHBob25lXG4gIHhzOiAwLFxuICAvLyBTbWFsbCBzY3JlZW4gLyBwaG9uZVxuICBzbTogNTQ0cHgsXG4gIC8vIE1lZGl1bSBzY3JlZW4gLyB0YWJsZXRcbiAgbWQ6IDc2OHB4LFxuICAvLyBMYXJnZSBzY3JlZW4gLyBkZXNrdG9wXG4gIGxnOiA5OTJweCxcbiAgLy8gRXh0cmEgbGFyZ2Ugc2NyZWVuIC8gd2lkZSBkZXNrdG9wXG4gIHhsOiAxMjAwcHgsXG4gIC8vIEV4dHJhIGV4dHJhIGxhcmdlIHNjcmVlbiAvIHdpZGUgZGVza3RvcFxuICB4eGw6IDE0MDBweFxuKTtcblxuXG4vLyBHcmlkIGNvbnRhaW5lcnNcbi8vXG4vLyBEZWZpbmUgdGhlIG1heGltdW0gd2lkdGggb2YgYC5jb250YWluZXJgIGZvciBkaWZmZXJlbnQgc2NyZWVuIHNpemVzLlxuXG4kY29udGFpbmVyLW1heC13aWR0aHM6IChcbiAgc206IDU3NnB4LFxuICBtZDogNzIwcHgsXG4gIGxnOiA5NDBweCxcbiAgeGw6IDExNDBweFxuKTtcblxuXG4vLyBHcmlkIGNvbHVtbnNcbi8vXG4vLyBTZXQgdGhlIG51bWJlciBvZiBjb2x1bW5zIGFuZCBzcGVjaWZ5IHRoZSB3aWR0aCBvZiB0aGUgZ3V0dGVycy5cblxuJGdyaWQtY29sdW1uczogMTI7XG4kZ3JpZC1ndXR0ZXItd2lkdGg6ICRzcGFjZXIgKiAyLjU7IC8vIDQwcHhcbiRncmlkLWd1dHRlci13aWR0aC1oYWxmOiAkZ3JpZC1ndXR0ZXItd2lkdGggLyAyOyAvLyBUT0RPOiBEZXByZWNhdGUgdGhpcywgcmVwbGFjaW5nIHdpdGggJHBhbmVsLXBhZGRpbmcteCBhbmQgJHBhbmVsLXBhZGRpbmcteVxuXG5cbi8vIFR5cG9ncmFwaHlcbi8vXG4vLyBGb250LCBsaW5lLWhlaWdodCwgYW5kIGNvbG9yIGZvciBib2R5IHRleHQsIGhlYWRpbmdzLCBhbmQgbW9yZS5cblxuJGZvbnQtZmFtaWx5LXNhbnMtc2VyaWY6IFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiRmb250LWZhbWlseS1zZXJpZjogR2VvcmdpYSwgXCJUaW1lcyBOZXcgUm9tYW5cIiwgVGltZXMsIHNlcmlmO1xuJGZvbnQtZmFtaWx5LW1vbm9zcGFjZTogTWVubG8sIE1vbmFjbywgQ29uc29sYXMsIFwiQ291cmllciBOZXdcIiwgbW9ub3NwYWNlO1xuJGZvbnQtZmFtaWx5LWJhc2U6ICRmb250LWZhbWlseS1zYW5zLXNlcmlmO1xuXG4vLyBQaXhlbCB2YWx1ZSB1c2VkIHRvIHJlc3BvbnNpdmVseSBzY2FsZSBhbGwgdHlwb2dyYXBoeS4gQXBwbGllZCB0byB0aGUgYDxodG1sPmAgZWxlbWVudC5cbiRmb250LXNpemUtcm9vdDogMTNweDtcblxuJGZvbnQtc2l6ZS1iYXNlOiAxcmVtO1xuJGZvbnQtc2l6ZS1sZzogMS4yM3JlbTsgLy8gMTZweFxuJGZvbnQtc2l6ZS1zbTogLjkyM3JlbTsgLy8gMTJweFxuJGZvbnQtc2l6ZS14czogLjg0N3JlbTsgLy8gMTFweFxuJGZvbnQtc2l6ZS14eHM6IC43N3JlbTsgLy8gMTBweFxuXG4kZm9udC1zaXplLWgxOiAxLjY5M3JlbTsgLy8gMjJweFxuJGZvbnQtc2l6ZS1oMjogMThweDsgLy8gMnJlbTtcbiRmb250LXNpemUtaDM6IDE2cHg7IC8vIDEuNzVyZW07XG4kZm9udC1zaXplLWg0OiAxNHB4OyAvLyAxLjVyZW07XG4kZm9udC1zaXplLWg1OiAxM3B4OyAvLyAxLjI1cmVtO1xuJGZvbnQtc2l6ZS1oNjogMTJweDsgLy8gMXJlbTtcblxuLy8gJGRpc3BsYXkxLXNpemU6IDZyZW07XG4vLyAkZGlzcGxheTItc2l6ZTogNS41cmVtO1xuLy8gJGRpc3BsYXkzLXNpemU6IDQuNXJlbTtcbi8vICRkaXNwbGF5NC1zaXplOiAzLjVyZW07XG4vL1xuLy8gJGRpc3BsYXkxLXdlaWdodDogMzAwO1xuLy8gJGRpc3BsYXkyLXdlaWdodDogMzAwO1xuLy8gJGRpc3BsYXkzLXdlaWdodDogMzAwO1xuLy8gJGRpc3BsYXk0LXdlaWdodDogMzAwO1xuXG4kbGluZS1oZWlnaHQ6IDEuNTM5O1xuJGxpbmUtaGVpZ2h0LWJhc2U6IDIwcHg7IC8vIGNhbiBiZSB1c2VkIHdpdGggdmFyeWluZyBmb250LXNpemVzLCBob2xkcyBncmlkIHNpemluZ1xuXG4kaGVhZGluZ3MtbWFyZ2luLWJvdHRvbTogJHNwYWNlcjtcbiRoZWFkaW5ncy1mb250LWZhbWlseTogaW5oZXJpdDtcbiRoZWFkaW5ncy1mb250LXdlaWdodDogNTAwO1xuJGhlYWRpbmdzLWxpbmUtaGVpZ2h0OiAxLjE7XG4kaGVhZGluZ3MtY29sb3I6IGluaGVyaXQ7XG5cbi8vICRsZWFkLWZvbnQtc2l6ZTogMS4yNXJlbTtcbi8vICRsZWFkLWZvbnQtd2VpZ2h0OiAzMDA7XG4vL1xuJHRleHQtbXV0ZWQ6IGxpZ2h0ZW4oJGJvZHktY29sb3IsIDEwJSk7XG4vL1xuLy8gJGFiYnItYm9yZGVyLWNvbG9yOiAkZ3JheS1saWdodDtcbi8vXG4vLyAkYmxvY2txdW90ZS1zbWFsbC1jb2xvcjogJGdyYXktbGlnaHQ7XG4vLyAkYmxvY2txdW90ZS1mb250LXNpemU6ICgkZm9udC1zaXplLWJhc2UgKiAxLjI1KTtcbi8vICRibG9ja3F1b3RlLWJvcmRlci1jb2xvcjogJGdyYXktbGlnaHRlcjtcbi8vXG4vLyAkaHItYm9yZGVyLWNvbG9yOiByZ2JhKDAsMCwwLC4xKTtcbi8vICRoci1ib3JkZXItd2lkdGg6ICRib3JkZXItd2lkdGg7XG4vL1xuLy8gJGR0LWZvbnQtd2VpZ2h0OiBib2xkO1xuLy9cbi8vICRuZXN0ZWQta2JkLWZvbnQtd2VpZ2h0OiBib2xkO1xuLy9cbi8vICRsaXN0LWlubGluZS1wYWRkaW5nOiA1cHg7XG5cblxuLy8gQ29tcG9uZW50c1xuLy9cbi8vIERlZmluZSBjb21tb24gcGFkZGluZyBhbmQgYm9yZGVyIHJhZGl1cyBzaXplcyBhbmQgbW9yZS5cblxuJGxpbmUtaGVpZ2h0LWxnOiAoNCAvIDMpO1xuJGxpbmUtaGVpZ2h0LXNtOiAxLjU7XG5cbiRib3JkZXItcmFkaXVzOiAuMjVyZW07XG4kYm9yZGVyLXJhZGl1cy1sZzogLjNyZW07XG4kYm9yZGVyLXJhZGl1cy1zbTogLjJyZW07XG5cbiRjb21wb25lbnQtYWN0aXZlLWNvbG9yOiAkd2hpdGU7XG4kY29tcG9uZW50LWFjdGl2ZS1iZzogJGJyYW5kLXByaW1hcnk7IC8vIFNTMyB3YXMgIzMzOERDMVxuJGNvbXBvbmVudC1hY3RpdmUtYmctbGlnaHQ6IGxpZ2h0ZW4oJGNvbXBvbmVudC1hY3RpdmUtYmcsIDQyJSk7XG4kY29tcG9uZW50LWFjdGl2ZS1ib3JkZXItY29sb3I6ICRicmFuZC1wcmltYXJ5O1xuXG4kY2FyZXQtd2lkdGg6IC4zZW07XG4kY2FyZXQtd2lkdGgtbGc6ICRjYXJldC13aWR0aDtcblxuXG4vLyBUYWJsZXNcbi8vXG4vLyBDdXN0b21pemVzIHRoZSBgLnRhYmxlYCBjb21wb25lbnQgd2l0aCBiYXNpYyB2YWx1ZXMsIGVhY2ggdXNlZCBhY3Jvc3MgYWxsIHRhYmxlIHZhcmlhdGlvbnMuXG5cbiR0YWJsZS1jZWxsLXBhZGRpbmc6ICRzcGFjZXI7XG4kdGFibGUtc20tY2VsbC1wYWRkaW5nOiAkc3BhY2VyICogLjc1O1xuXG4kdGFibGUtYmc6IHRyYW5zcGFyZW50O1xuJHRhYmxlLWJnLWFjY2VudDogJHdoaXRlOyAvLyBsaWdodGVuKCNmMGY0ZjcsIDElKSAjRjBGNEY3ICNlOWYwZjRcbiR0YWJsZS1iZy1ob3ZlcjogI2YwZjRmNztcbiR0YWJsZS1iZy1hY3RpdmU6ICRicmFuZC1wcmltYXJ5O1xuJHRhYmxlLWJnLXRvb2xzOiAkZ3JheS1kYXJrO1xuJHRhYmxlLWJnLWZvb3RlcjogJGJhY2tncm91bmQtbWFpbjtcblxuJHRhYmxlLWJvcmRlci13aWR0aDogJGJvcmRlci13aWR0aDtcbiR0YWJsZS1ib3JkZXItY29sb3I6ICRncmF5LWxpZ2h0ZXI7XG5cblxuLy8gQnV0dG9uc1xuLy9cbi8vIEZvciBlYWNoIG9mIEJvb3RzdHJhcCdzIGJ1dHRvbnMsIGRlZmluZSB0ZXh0LCBiYWNrZ3JvdW5kIGFuZCBib3JkZXIgY29sb3IuXG5cbiRidG4tcGFkZGluZy14OiAuNzY5MnJlbTsgLy8gMTBweFxuJGJ0bi1wYWRkaW5nLXk6IC4zODQ2cmVtOyAvLyA1cHhcbiRidG4tZm9udC13ZWlnaHQ6IG5vcm1hbDtcblxuJGJ0bi1wcmltYXJ5LWNvbG9yOiAkd2hpdGU7XG4kYnRuLXByaW1hcnktYmc6ICRicmFuZC1zdWNjZXNzO1xuJGJ0bi1wcmltYXJ5LWJvcmRlcjogJGJ0bi1wcmltYXJ5LWJnO1xuJGJ0bi1wcmltYXJ5LXNoYWRvdzogZGFya2VuKCRidG4tcHJpbWFyeS1iZywgNiUpO1xuXG4kYnRuLXNlY29uZGFyeS1jb2xvcjogJGJvZHktY29sb3ItbGlnaHQ7XG4kYnRuLXNlY29uZGFyeS1iZzogJGdyYXktbGlnaHRlcjtcbiRidG4tc2Vjb25kYXJ5LWJvcmRlcjogJGJvcmRlci1jb2xvci1kYXJrO1xuXG4vLyAkYnRuLWluZm8tY29sb3I6ICNmZmY7XG4vLyAkYnRuLWluZm8tYmc6ICRicmFuZC1pbmZvO1xuLy8gJGJ0bi1pbmZvLWJvcmRlcjogJGJ0bi1pbmZvLWJnO1xuXG4vLyAkYnRuLXN1Y2Nlc3MtY29sb3I6ICNmZmY7XG4vLyAkYnRuLXN1Y2Nlc3MtYmc6ICRicmFuZC1zdWNjZXNzO1xuLy8gJGJ0bi1zdWNjZXNzLWJvcmRlcjogJGJ0bi1zdWNjZXNzLWJnO1xuXG4kYnRuLWNvbXBsZXRlLWNvbG9yOiAjNTU1O1xuJGJ0bi1jb21wbGV0ZS1iZzogJGJ0bi1wcmltYXJ5LWJnO1xuJGJ0bi1jb21wbGV0ZS1ib3JkZXI6ICRncmF5LWxpZ2h0O1xuJGJ0bi1jb21wbGV0ZS1zaGFkb3c6IGRhcmtlbigkYnRuLXByaW1hcnktYmcsIDYlKTtcblxuLy8gJGJ0bi13YXJuaW5nLWNvbG9yOiAjZmZmO1xuLy8gJGJ0bi13YXJuaW5nLWJnOiAkYnJhbmQtd2FybmluZztcbi8vICRidG4td2FybmluZy1ib3JkZXI6ICRidG4td2FybmluZy1iZztcblxuJGJ0bi1kYW5nZXItY29sb3I6ICR3aGl0ZTtcbiRidG4tZGFuZ2VyLWJnOiAkYnJhbmQtZGFuZ2VyO1xuJGJ0bi1kYW5nZXItYm9yZGVyOiAkYnJhbmQtZGFuZ2VyO1xuXG4vLyAkYnRuLWxpbmstZGlzYWJsZWQtY29sb3I6ICRncmF5LWxpZ2h0O1xuLy9cbi8vICRidG4tcGFkZGluZy14LXNtOiAuNzVyZW07XG4vLyAkYnRuLXBhZGRpbmcteS1zbTogLjI1cmVtO1xuLy9cbi8vICRidG4tcGFkZGluZy14LWxnOiAxLjI1cmVtO1xuLy8gJGJ0bi1wYWRkaW5nLXktbGc6IC43NXJlbTtcblxuLy8gQWxsb3dzIGZvciBjdXN0b21pemluZyBidXR0b24gcmFkaXVzIGluZGVwZW5kZW50bHkgZnJvbSBnbG9iYWwgYm9yZGVyIHJhZGl1c1xuJGJ0bi1ib3JkZXItcmFkaXVzOiAuMjNyZW07XG4kYnRuLWJvcmRlci1yYWRpdXMtbGc6IC4yNXJlbTtcbiRidG4tYm9yZGVyLXJhZGl1cy1zbTogLjE1NHJlbTtcblxuXG4vLyBGb3Jtc1xuXG4kaW5wdXQtcGFkZGluZy14OiAuNzVyZW07XG4kaW5wdXQtcGFkZGluZy15OiAuNTM4NXJlbTtcbiRpbnB1dC1tYXgtd2lkdGg6IDg5NXB4OyAvLyBBcHByb3ggbWF4IHBvc3NpYmxlIGF0IHNtYWxsIHNjcmVlbiBzaXplc1xuXG4kaW5wdXQtYmc6ICR3aGl0ZTtcbiRpbnB1dC1iZy1kaXNhYmxlZDogJGJhY2tncm91bmQtZGFya2VyO1xuXG4kaW5wdXQtY29sb3I6ICRib2R5LWNvbG9yLWxpZ2h0O1xuJGlucHV0LWJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvci1kYXJrO1xuJGlucHV0LWJ0bi1ib3JkZXItd2lkdGg6ICRib3JkZXItd2lkdGg7IC8vIEZvciBmb3JtIGNvbnRyb2xzIGFuZCBidXR0b25zXG4vLyBzY3NzLWxpbnQ6ZGlzYWJsZSBDb2xvclZhcmlhYmxlXG4kaW5wdXQtYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgLjA3NSk7XG4vLyBzY3NzLWxpbnQ6ZW5hYmxlIENvbG9yVmFyaWFibGVcblxuJGlucHV0LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuJGlucHV0LWJvcmRlci1yYWRpdXMtbGc6ICRib3JkZXItcmFkaXVzLWxnO1xuJGlucHV0LWJvcmRlci1yYWRpdXMtc206ICRib3JkZXItcmFkaXVzLXNtO1xuXG4kaW5wdXQtYm9yZGVyLWZvY3VzOiAjNjZhZmU5O1xuLy8gc2Nzcy1saW50OmRpc2FibGUgQ29sb3JWYXJpYWJsZVxuJGlucHV0LWJveC1zaGFkb3ctZm9jdXM6IHJnYmEoMTAyLCAxNzUsIDIzMywgLjYpO1xuLy8gc2Nzcy1saW50OmVuYWJsZSBDb2xvclZhcmlhYmxlXG5cbi8vICRpbnB1dC1jb2xvci1wbGFjZWhvbGRlcjogIzk5OTtcbi8vXG4vLyAkaW5wdXQtcGFkZGluZy14LXNtOiAuNzVyZW07XG4vLyAkaW5wdXQtcGFkZGluZy15LXNtOiAuMjc1cmVtO1xuLy9cbi8vICRpbnB1dC1wYWRkaW5nLXgtbGc6IDEuMjVyZW07XG4vLyAkaW5wdXQtcGFkZGluZy15LWxnOiAuNzVyZW07XG4vL1xuLy8gJGlucHV0LWhlaWdodDogKCgkZm9udC1zaXplLWJhc2UgKiAkbGluZS1oZWlnaHQpICsgKCRpbnB1dC1wYWRkaW5nLXkgKiAyKSk7XG4vLyAkaW5wdXQtaGVpZ2h0LWxnOiAoKCRmb250LXNpemUtbGcgKiAkbGluZS1oZWlnaHQtbGcpICsgKCRpbnB1dC1wYWRkaW5nLXktbGcgKiAyKSk7XG4vLyAkaW5wdXQtaGVpZ2h0LXNtOiAoKCRmb250LXNpemUtc20gKiAkbGluZS1oZWlnaHQtc20pICsgKCRpbnB1dC1wYWRkaW5nLXktc20gKiAyKSk7XG4vL1xuLy8gJGZvcm0tZ3JvdXAtbWFyZ2luLWJvdHRvbTogJHNwYWNlci15O1xuLy9cbi8vICRpbnB1dC1ncm91cC1hZGRvbi1iZzogJGdyYXktbGlnaHRlcjtcbi8vICRpbnB1dC1ncm91cC1hZGRvbi1ib3JkZXItY29sb3I6ICRpbnB1dC1ib3JkZXItY29sb3I7XG4vL1xuLy8gJGN1cnNvci1kaXNhYmxlZDogbm90LWFsbG93ZWQ7XG5cblxuLy8gRm9ybSB2YWxpZGF0aW9uIGljb25zXG4vLyAkZm9ybS1pY29uLXN1Y2Nlc3M6IFwiZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCNGJXeHVjejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNpSUhacFpYZENiM2c5SWpBZ01DQTJNVElnTnpreUlqNDhjR0YwYUNCbWFXeHNQU0lqTldOaU9EVmpJaUJrUFNKTk1qTXpMamdnTmpFd1l5MHhNeTR6SURBdE1qWXROaTB6TkMweE5pNDRURGt3TGpVZ05EUTRMamhETnpZdU15QTBNekFnT0RBZ05EQXpMak1nT1RndU9DQXpPRGxqTVRndU9DMHhOQzR5SURRMUxqVXRNVEF1TkNBMU9TNDRJRGd1Tkd3M01pQTVOVXcwTlRFdU15QXlOREpqTVRJdU5TMHlNQ0F6T0M0NExUSTJMaklnTlRndU9DMHhNeTQzSURJd0lERXlMalFnTWpZZ016Z3VOeUF4TXk0M0lEVTRMamhNTWpjd0lEVTVNR010Tnk0MElERXlMVEl3TGpJZ01Ua3VOQzB6TkM0eklESXdhQzB5ZWlJdlBqd3ZjM1puUGc9PVwiO1xuLy8gJGZvcm0taWNvbi13YXJuaW5nOiBcImRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIWnBaWGRDYjNnOUlqQWdNQ0EyTVRJZ056a3lJajQ4Y0dGMGFDQm1hV3hzUFNJalpqQmhaRFJsSWlCa1BTSk5OakF6SURZME1DNHliQzB5TnpndU5TMDFNRGxqTFRNdU9DMDJMall0TVRBdU9DMHhNQzQyTFRFNExqVXRNVEF1Tm5NdE1UUXVOeUEwTFRFNExqVWdNVEF1Tmt3NUlEWTBNQzR5WXkwekxqY2dOaTQxTFRNdU5pQXhOQzQwTGpJZ01qQXVPQ0F6TGpnZ05pNDFJREV3TGpnZ01UQXVOQ0F4T0M0eklERXdMalJvTlRVM1l6Y3VOaUF3SURFMExqWXROQ0F4T0M0MExURXdMalFnTXk0MUxUWXVOQ0F6TGpZdE1UUXVOQ0F3TFRJd0xqaDZiUzB5TmpZdU5DMHpNR2d0TmpFdU1sWTFORGxvTmpFdU1uWTJNUzR5ZW0wd0xURXdOMmd0TmpFdU1sWXpNRFJvTmpFdU1uWXhPVGw2SWk4K1BDOXpkbWMrXCI7XG4vLyAkZm9ybS1pY29uLWRhbmdlcjogXCJkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUI0Yld4dWN6MGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY2lJSFpwWlhkQ2IzZzlJakFnTUNBMk1USWdOemt5SWo0OGNHRjBhQ0JtYVd4c1BTSWpaRGsxTXpSbUlpQmtQU0pOTkRRM0lEVTBOQzQwWXkweE5DNDBJREUwTGpRdE16Y3VOaUF4TkM0MExUVXlJREJzTFRnNUxUa3lMamN0T0RrZ09USXVOMk10TVRRdU5TQXhOQzQwTFRNM0xqY2dNVFF1TkMwMU1pQXdMVEUwTGpRdE1UUXVOQzB4TkM0MExUTTNMallnTUMwMU1tdzVNaTQwTFRrMkxqTXRPVEl1TkMwNU5pNHpZeTB4TkM0MExURTBMalF0TVRRdU5DMHpOeTQySURBdE5USnpNemN1TmkweE5DNHpJRFV5SURCc09Ea2dPVEl1T0NBNE9TNHlMVGt5TGpkak1UUXVOQzB4TkM0MElETTNMall0TVRRdU5DQTFNaUF3SURFMExqTWdNVFF1TkNBeE5DNHpJRE0zTGpZZ01DQTFNa3d6TlRRdU5pQXpPVFpzT1RJdU5DQTVOaTQwWXpFMExqUWdNVFF1TkNBeE5DNDBJRE0zTGpZZ01DQTFNbm9pTHo0OEwzTjJaejQ9XCI7XG5cblxuLy8gRHJvcGRvd25zXG4vL1xuLy8gRHJvcGRvd24gbWVudSBjb250YWluZXIgYW5kIGNvbnRlbnRzLlxuXG4vLyAkZHJvcGRvd24tYmc6ICNmZmY7XG4vLyAkZHJvcGRvd24tYm9yZGVyLWNvbG9yOiByZ2JhKDAsMCwwLC4xNSk7XG4vLyAkZHJvcGRvd24tYm9yZGVyLXdpZHRoOiAkYm9yZGVyLXdpZHRoO1xuLy8gJGRyb3Bkb3duLWRpdmlkZXItYmc6ICNlNWU1ZTU7XG4vL1xuLy8gJGRyb3Bkb3duLWxpbmstY29sb3I6ICRncmF5LWRhcms7XG4vLyAkZHJvcGRvd24tbGluay1ob3Zlci1jb2xvcjogZGFya2VuKCRncmF5LWRhcmssIDUlKTtcbi8vICRkcm9wZG93bi1saW5rLWhvdmVyLWJnOiAjZjVmNWY1O1xuLy9cbi8vICRkcm9wZG93bi1saW5rLWFjdGl2ZS1jb2xvcjogJGNvbXBvbmVudC1hY3RpdmUtY29sb3I7XG4vLyAkZHJvcGRvd24tbGluay1hY3RpdmUtYmc6ICRjb21wb25lbnQtYWN0aXZlLWJnO1xuLy9cbi8vICRkcm9wZG93bi1saW5rLWRpc2FibGVkLWNvbG9yOiAkZ3JheS1saWdodDtcbi8vXG4vLyAkZHJvcGRvd24taGVhZGVyLWNvbG9yOiAkZ3JheS1saWdodDtcblxuXG4vLyBaLWluZGV4IG1hc3RlciBsaXN0XG4vL1xuLy8gV2FybmluZzogQXZvaWQgY3VzdG9taXppbmcgdGhlc2UgdmFsdWVzLiBUaGV5J3JlIHVzZWQgZm9yIGEgYmlyZCdzIGV5ZSB2aWV3XG4vLyBvZiBjb21wb25lbnRzIGRlcGVuZGVudCBvbiB0aGUgei1heGlzIGFuZCBhcmUgZGVzaWduZWQgdG8gYWxsIHdvcmsgdG9nZXRoZXIuXG5cbi8vICR6aW5kZXgtbmF2YmFyOiAxMDAwO1xuLy8gJHppbmRleC1kcm9wZG93bjogMTAwMDtcbiR6aW5kZXgtcG9wb3ZlcjogMTA2MDtcbi8vICR6aW5kZXgtdG9vbHRpcDogMTA3MDtcbi8vICR6aW5kZXgtbmF2YmFyLWZpeGVkOiAxMDMwO1xuLy8gJHppbmRleC1uYXZiYXItc3RpY2t5OiAxMDMwO1xuLy8gJHppbmRleC1tb2RhbC1iZzogMTA0MDtcbi8vICR6aW5kZXgtbW9kYWw6IDEwNTA7XG5cblxuLy8gU1MgdG9vbGJhcnNcbi8vIFVzZWQgZm9yIHVpIGxheW91dCB3aGljaCBjb250YWlucyBtYWluIGFjdGlvbnMsIHNlY29uZGF5IHBhZ2UgYWN0aW9uLCB0b3AgYnJlYWRjcnVtYnMgYW5kIG5hdmlnYXRpb24gYmFycy5cblxuJHRvb2xiYXItaGVpZ2h0OiA1MnB4O1xuJHRvb2xiYXItdG90YWwtaGVpZ2h0OiAkdG9vbGJhci1oZWlnaHQgKyAxcHg7IC8vIEluY2x1ZGUgYm9yZGVyXG5cblxuLy8gTmF2YmFyXG5cbiRuYXZiYXItYm9yZGVyLXJhZGl1czogIDA7XG4kbmF2YmFyLXBhZGRpbmctaG9yaXpvbnRhbDogJHNwYWNlcjtcbiRuYXZiYXItcGFkZGluZy12ZXJ0aWNhbDogKCRzcGFjZXIgLyAyKTtcblxuLy8gJG5hdmJhci1kYXJrLWNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LC41KTtcbi8vICRuYXZiYXItZGFyay1ob3Zlci1jb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwuNzUpO1xuLy8gJG5hdmJhci1kYXJrLWFjdGl2ZS1jb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwxKTtcbi8vICRuYXZiYXItZGFyay1kaXNhYmxlZC1jb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwuMjUpO1xuLy9cbi8vICRuYXZiYXItbGlnaHQtY29sb3I6IHJnYmEoMCwwLDAsLjMpO1xuLy8gJG5hdmJhci1saWdodC1ob3Zlci1jb2xvcjogcmdiYSgwLDAsMCwuNik7XG4vLyAkbmF2YmFyLWxpZ2h0LWFjdGl2ZS1jb2xvcjogcmdiYSgwLDAsMCwuOCk7XG4vLyAkbmF2YmFyLWxpZ2h0LWRpc2FibGVkLWNvbG9yOiByZ2JhKDAsMCwwLC4xNSk7XG5cblxuLy8gTmF2c1xuXG4kbmF2LXRhYnMtbGluay1ib3JkZXItd2lkdGg6IC4xNTM4cmVtOyAgLy8gMnB4XG4kbmF2LXRhYnMtbGluay1ob3Zlci1ib3JkZXItY29sb3I6ICRncmF5LWxpZ2h0O1xuXG4kbmF2LWxpbmstcGFkZGluZzogJHNwYWNlci15ICN7JHNwYWNlci14IC8gNH0gI3skc3BhY2VyLXkgLSAkbmF2LXRhYnMtbGluay1ib3JkZXItd2lkdGh9O1xuJG5hdi1saW5rLWhvdmVyLWJnOiB0cmFuc3BhcmVudDtcblxuLy8gJG5hdi1kaXNhYmxlZC1saW5rLWNvbG9yOiAkZ3JheS1saWdodDtcbi8vICRuYXYtZGlzYWJsZWQtbGluay1ob3Zlci1jb2xvcjogJGdyYXktbGlnaHQ7XG5cbiRuYXYtdGFicy1ib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG4kbmF2LXRhYnMtYWN0aXZlLWxpbmstaG92ZXItYmc6IHRyYW5zcGFyZW50O1xuJG5hdi10YWJzLWFjdGl2ZS1saW5rLWhvdmVyLWNvbG9yOiAkYm9keS1jb2xvcjtcbiRuYXYtdGFicy1hY3RpdmUtbGluay1ob3Zlci1ib3JkZXItY29sb3I6ICRib2R5LWNvbG9yLWxpZ2h0O1xuXG4vLyAkbmF2LXRhYnMtanVzdGlmaWVkLWxpbmstYm9yZGVyLWNvbG9yOiAjZGRkO1xuLy8gJG5hdi10YWJzLWp1c3RpZmllZC1hY3RpdmUtbGluay1ib3JkZXItY29sb3I6ICRib2R5LWJnO1xuXG4vLyAkbmF2LXBpbGxzLWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuLy8gJG5hdi1waWxscy1hY3RpdmUtbGluay1ob3Zlci1iZzogJGNvbXBvbmVudC1hY3RpdmUtYmc7XG4vLyAkbmF2LXBpbGxzLWFjdGl2ZS1saW5rLWhvdmVyLWNvbG9yOiAkY29tcG9uZW50LWFjdGl2ZS1jb2xvcjtcblxuXG4vLyBQYWdpbmF0aW9uXG5cbi8vICRwYWdpbmF0aW9uLXBhZGRpbmcteDogLjc1cmVtO1xuLy8gJHBhZ2luYXRpb24tcGFkZGluZy15OiAuNXJlbTtcbi8vICRwYWdpbmF0aW9uLXBhZGRpbmcteC1zbTogLjc1cmVtO1xuLy8gJHBhZ2luYXRpb24tcGFkZGluZy15LXNtOiAuMjc1cmVtO1xuLy8gJHBhZ2luYXRpb24tcGFkZGluZy14LWxnOiAxLjVyZW07XG4vLyAkcGFnaW5hdGlvbi1wYWRkaW5nLXktbGc6IC43NXJlbTtcbi8vXG4vL1xuLy8gJHBhZ2luYXRpb24tY29sb3I6ICRsaW5rLWNvbG9yO1xuLy8gJHBhZ2luYXRpb24tYmc6ICNmZmY7XG4vLyAkcGFnaW5hdGlvbi1ib3JkZXItd2lkdGg6ICRib3JkZXItd2lkdGg7XG4vLyAkcGFnaW5hdGlvbi1ib3JkZXItY29sb3I6ICNkZGQ7XG4vL1xuLy8gJHBhZ2luYXRpb24taG92ZXItY29sb3I6ICRsaW5rLWhvdmVyLWNvbG9yO1xuLy8gJHBhZ2luYXRpb24taG92ZXItYmc6ICRncmF5LWxpZ2h0ZXI7XG4vLyAkcGFnaW5hdGlvbi1ob3Zlci1ib3JkZXI6ICNkZGQ7XG4vL1xuLy8gJHBhZ2luYXRpb24tYWN0aXZlLWNvbG9yOiAjZmZmO1xuLy8gJHBhZ2luYXRpb24tYWN0aXZlLWJnOiAkYnJhbmQtcHJpbWFyeTtcbi8vICRwYWdpbmF0aW9uLWFjdGl2ZS1ib3JkZXI6ICRicmFuZC1wcmltYXJ5O1xuLy9cbi8vICRwYWdpbmF0aW9uLWRpc2FibGVkLWNvbG9yOiAkZ3JheS1saWdodDtcbi8vICRwYWdpbmF0aW9uLWRpc2FibGVkLWJnOiAjZmZmO1xuLy8gJHBhZ2luYXRpb24tZGlzYWJsZWQtYm9yZGVyOiAjZGRkO1xuXG5cbi8vIFBhZ2VyXG5cbi8vICRwYWdlci1iZzogJHBhZ2luYXRpb24tYmc7XG4vLyAkcGFnZXItYm9yZGVyLXdpZHRoOiAkYm9yZGVyLXdpZHRoO1xuLy8gJHBhZ2VyLWJvcmRlci1jb2xvcjogJHBhZ2luYXRpb24tYm9yZGVyLWNvbG9yO1xuLy8gJHBhZ2VyLWJvcmRlci1yYWRpdXM6IDE1cHg7XG4vL1xuLy8gJHBhZ2VyLWhvdmVyLWJnOiAkcGFnaW5hdGlvbi1ob3Zlci1iZztcbi8vXG4vLyAkcGFnZXItYWN0aXZlLWJnOiAkcGFnaW5hdGlvbi1hY3RpdmUtYmc7XG4vLyAkcGFnZXItYWN0aXZlLWNvbG9yOiAkcGFnaW5hdGlvbi1hY3RpdmUtY29sb3I7XG4vL1xuLy8gJHBhZ2VyLWRpc2FibGVkLWNvbG9yOiAkcGFnaW5hdGlvbi1kaXNhYmxlZC1jb2xvcjtcblxuXG4vLyBKdW1ib3Ryb25cblxuLy8gJGp1bWJvdHJvbi1wYWRkaW5nOiAycmVtO1xuLy8gJGp1bWJvdHJvbi1iZzogJGdyYXktbGlnaHRlcjtcblxuXG4vLyBGb3JtIHN0YXRlcyBhbmQgYWxlcnRzXG4vLyBEZWZpbmUgY29sb3JzIGZvciBmb3JtIGZlZWRiYWNrIHN0YXRlcyBhbmQsIGJ5IGRlZmF1bHQsIGFsZXJ0cy5cblxuLy8gJHN0YXRlLXN1Y2Nlc3MtdGV4dDogIzNjNzYzZDtcbi8vICRzdGF0ZS1zdWNjZXNzLWJnOiAjZGZmMGQ4O1xuLy8gJHN0YXRlLXN1Y2Nlc3MtYm9yZGVyOiBkYXJrZW4oJHN0YXRlLXN1Y2Nlc3MtYmcsIDUlKTtcbi8vXG4vLyAkc3RhdGUtaW5mby10ZXh0OiAjMzE3MDhmO1xuLy8gJHN0YXRlLWluZm8tYmc6ICNkOWVkZjc7XG4vLyAkc3RhdGUtaW5mby1ib3JkZXI6IGRhcmtlbigkc3RhdGUtaW5mby1iZywgNyUpO1xuXG4kc3RhdGUtd2FybmluZy10ZXh0OiAjOGE2ZDNiO1xuJHN0YXRlLXdhcm5pbmctYmc6ICNmY2Y4ZTM7XG4kc3RhdGUtd2FybmluZy1ib3JkZXI6IGRhcmtlbigkc3RhdGUtd2FybmluZy1iZywgMTUlKTtcblxuLy8gJHN0YXRlLWRhbmdlci10ZXh0OiAjYTk0NDQyO1xuLy8gJHN0YXRlLWRhbmdlci1iZzogI2YyZGVkZTtcbi8vICRzdGF0ZS1kYW5nZXItYm9yZGVyOiBkYXJrZW4oJHN0YXRlLWRhbmdlci1iZywgNSUpO1xuXG5cbi8vIENhcmRzXG4vLyAkY2FyZC1zcGFjZXIteDogMS4yNXJlbTtcbi8vICRjYXJkLXNwYWNlci15OiAuNzVyZW07XG4vLyAkY2FyZC1ib3JkZXItd2lkdGg6IDFweDtcbi8vICRjYXJkLWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuLy8gJGNhcmQtYm9yZGVyLWNvbG9yOiAjZTVlNWU1O1xuLy8gJGNhcmQtYm9yZGVyLXJhZGl1cy1pbm5lcjogJGNhcmQtYm9yZGVyLXJhZGl1cztcbi8vICRjYXJkLWNhcC1iZzogI2Y1ZjVmNTtcbi8vICRjYXJkLWJnOiAjZmZmO1xuLy9cbi8vICRjYXJkLWxpbmstaG92ZXItY29sb3I6ICNmZmY7XG5cblxuLy8gVG9vbHRpcHNcblxuLy8gJHRvb2x0aXAtbWF4LXdpZHRoOiAyMDBweDtcbi8vICR0b29sdGlwLWNvbG9yOiAjZmZmO1xuLy8gJHRvb2x0aXAtYmc6ICMwMDA7XG4vLyAkdG9vbHRpcC1vcGFjaXR5OiAuOTtcbi8vXG4vLyAkdG9vbHRpcC1hcnJvdy13aWR0aDogNXB4O1xuLy8gJHRvb2x0aXAtYXJyb3ctY29sb3I6ICR0b29sdGlwLWJnO1xuXG5cbi8vIFBvcG92ZXJzXG5cbiRwb3BvdmVyLWJnOiAkd2hpdGU7XG4kcG9wb3Zlci1tYXgtd2lkdGg6IDI3NnB4O1xuJHBvcG92ZXItYm9yZGVyLXdpZHRoOiAkYm9yZGVyLXdpZHRoO1xuJHBvcG92ZXItYm9yZGVyLWNvbG9yOiByZ2JhKDAgLCAwLCAwLCAuMSk7XG5cbiRwb3BvdmVyLXRpdGxlLWJnOiAkYmFja2dyb3VuZC1kYXJrZXI7XG5cbiRwb3BvdmVyLWFycm93LXdpZHRoOiAxMHB4O1xuJHBvcG92ZXItYXJyb3ctY29sb3I6ICRwb3BvdmVyLWJnO1xuXG4kcG9wb3Zlci1hcnJvdy1vdXRlci13aWR0aDogKCRwb3BvdmVyLWFycm93LXdpZHRoICsgMSk7XG4kcG9wb3Zlci1hcnJvdy1vdXRlci1jb2xvcjogZmFkZS1pbigkcG9wb3Zlci1ib3JkZXItY29sb3IsIDAuMDUpO1xuJHBvcG92ZXItcGFkZGluZzogJHNwYWNlci14O1xuXG5cbi8vIExhYmVsc1xuXG4vLyAkbGFiZWwtZGVmYXVsdC1iZzogJGdyYXktbGlnaHQ7XG4vLyAkbGFiZWwtcHJpbWFyeS1iZzogJGJyYW5kLXByaW1hcnk7XG4vLyAkbGFiZWwtc3VjY2Vzcy1iZzogJGJyYW5kLXN1Y2Nlc3M7XG4vLyAkbGFiZWwtaW5mby1iZzogJGJyYW5kLWluZm87XG4vLyAkbGFiZWwtd2FybmluZy1iZzogJGJyYW5kLXdhcm5pbmc7XG4vLyAkbGFiZWwtZGFuZ2VyLWJnOiAkYnJhbmQtZGFuZ2VyO1xuLy9cbi8vICRsYWJlbC1jb2xvcjogI2ZmZjtcbi8vICRsYWJlbC1saW5rLWhvdmVyLWNvbG9yOiAjZmZmO1xuLy8gJGxhYmVsLWZvbnQtd2VpZ2h0OiBib2xkO1xuXG5cbi8vIE1vZGFsc1xuXG4vLyBQYWRkaW5nIGFwcGxpZWQgdG8gdGhlIG1vZGFsIGJvZHlcbi8vICRtb2RhbC1pbm5lci1wYWRkaW5nOiAxNXB4O1xuLy9cbi8vICRtb2RhbC10aXRsZS1wYWRkaW5nOiAxNXB4O1xuLy8gJG1vZGFsLXRpdGxlLWxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQ7XG4vL1xuLy8gJG1vZGFsLWNvbnRlbnQtYmc6ICNmZmY7XG4vLyAkbW9kYWwtY29udGVudC1ib3JkZXItY29sb3I6IHJnYmEoMCwwLDAsLjIpO1xuLy9cbi8vICRtb2RhbC1iYWNrZHJvcC1iZzogIzAwMDtcbi8vICRtb2RhbC1iYWNrZHJvcC1vcGFjaXR5OiAuNTtcbi8vICRtb2RhbC1oZWFkZXItYm9yZGVyLWNvbG9yOiAjZTVlNWU1O1xuLy8gJG1vZGFsLWZvb3Rlci1ib3JkZXItY29sb3I6ICRtb2RhbC1oZWFkZXItYm9yZGVyLWNvbG9yO1xuLy9cbi8vICRtb2RhbC1sZzogOTAwcHg7XG4vLyAkbW9kYWwtbWQ6IDYwMHB4O1xuLy8gJG1vZGFsLXNtOiAzMDBweDtcblxuXG4vLyBBbGVydHNcbi8vXG4vLyBEZWZpbmUgYWxlcnQgY29sb3JzLCBib3JkZXIgcmFkaXVzLCBhbmQgcGFkZGluZy5cblxuLy8gJGFsZXJ0LXBhZGRpbmc6IDE1cHg7XG4vLyAkYWxlcnQtYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4vLyAkYWxlcnQtbGluay1mb250LXdlaWdodDogYm9sZDtcbi8vICRhbGVydC1ib3JkZXItd2lkdGg6ICRib3JkZXItd2lkdGg7XG4vL1xuLy8gJGFsZXJ0LXN1Y2Nlc3MtYmc6ICRzdGF0ZS1zdWNjZXNzLWJnO1xuLy8gJGFsZXJ0LXN1Y2Nlc3MtdGV4dDogJHN0YXRlLXN1Y2Nlc3MtdGV4dDtcbi8vICRhbGVydC1zdWNjZXNzLWJvcmRlcjogJHN0YXRlLXN1Y2Nlc3MtYm9yZGVyO1xuLy9cbi8vICRhbGVydC1pbmZvLWJnOiAkc3RhdGUtaW5mby1iZztcbi8vICRhbGVydC1pbmZvLXRleHQ6ICRzdGF0ZS1pbmZvLXRleHQ7XG4vLyAkYWxlcnQtaW5mby1ib3JkZXI6ICRzdGF0ZS1pbmZvLWJvcmRlcjtcbi8vXG4vLyAkYWxlcnQtd2FybmluZy1iZzogJHN0YXRlLXdhcm5pbmctYmc7XG4vLyAkYWxlcnQtd2FybmluZy10ZXh0OiAkc3RhdGUtd2FybmluZy10ZXh0O1xuLy8gJGFsZXJ0LXdhcm5pbmctYm9yZGVyOiAkc3RhdGUtd2FybmluZy1ib3JkZXI7XG4vL1xuLy8gJGFsZXJ0LWRhbmdlci1iZzogJHN0YXRlLWRhbmdlci1iZztcbi8vICRhbGVydC1kYW5nZXItdGV4dDogJHN0YXRlLWRhbmdlci10ZXh0O1xuLy8gJGFsZXJ0LWRhbmdlci1ib3JkZXI6ICRzdGF0ZS1kYW5nZXItYm9yZGVyO1xuXG5cbi8vIFByb2dyZXNzIGJhcnNcblxuLy8gJHByb2dyZXNzLWJnOiAjZjVmNWY1O1xuLy8gJHByb2dyZXNzLWJhci1jb2xvcjogI2ZmZjtcbi8vICRwcm9ncmVzcy1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbi8vXG4vLyAkcHJvZ3Jlc3MtYmFyLWJnOiAkYnJhbmQtcHJpbWFyeTtcbi8vICRwcm9ncmVzcy1iYXItc3VjY2Vzcy1iZzogJGJyYW5kLXN1Y2Nlc3M7XG4vLyAkcHJvZ3Jlc3MtYmFyLXdhcm5pbmctYmc6ICRicmFuZC13YXJuaW5nO1xuLy8gJHByb2dyZXNzLWJhci1kYW5nZXItYmc6ICRicmFuZC1kYW5nZXI7XG4vLyAkcHJvZ3Jlc3MtYmFyLWluZm8tYmc6ICRicmFuZC1pbmZvO1xuXG5cbi8vIExpc3QgZ3JvdXBcblxuJGxpc3QtZ3JvdXAtYmc6ICNmZmY7XG4kbGlzdC1ncm91cC1ib3JkZXItY29sb3I6ICNkZGQ7XG4kbGlzdC1ncm91cC1ib3JkZXItd2lkdGg6ICRib3JkZXItd2lkdGg7XG4kbGlzdC1ncm91cC1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcblxuJGxpc3QtZ3JvdXAtaG92ZXItYmc6ICNmNWY1ZjU7XG4kbGlzdC1ncm91cC1hY3RpdmUtY29sb3I6ICRjb21wb25lbnQtYWN0aXZlLWNvbG9yO1xuJGxpc3QtZ3JvdXAtYWN0aXZlLWJnOiAkY29tcG9uZW50LWFjdGl2ZS1iZztcbiRsaXN0LWdyb3VwLWFjdGl2ZS1ib3JkZXI6ICRsaXN0LWdyb3VwLWFjdGl2ZS1iZztcbiRsaXN0LWdyb3VwLWFjdGl2ZS10ZXh0LWNvbG9yOiBsaWdodGVuKCRsaXN0LWdyb3VwLWFjdGl2ZS1iZywgNDAlKTtcblxuJGxpc3QtZ3JvdXAtZGlzYWJsZWQtY29sb3I6ICRncmF5LWxpZ2h0O1xuJGxpc3QtZ3JvdXAtZGlzYWJsZWQtYmc6ICRncmF5LWxpZ2h0ZXI7XG4kbGlzdC1ncm91cC1kaXNhYmxlZC10ZXh0LWNvbG9yOiAkbGlzdC1ncm91cC1kaXNhYmxlZC1jb2xvcjtcblxuJGxpc3QtZ3JvdXAtbGluay1jb2xvcjogJGJvZHktY29sb3I7XG4kbGlzdC1ncm91cC1saW5rLWhvdmVyLWNvbG9yOiAkbGlzdC1ncm91cC1saW5rLWNvbG9yO1xuJGxpc3QtZ3JvdXAtbGluay1oZWFkaW5nLWNvbG9yOiAkYm9keS1jb2xvcjtcblxuXG4vLyBJbWFnZSB0aHVtYm5haWxzXG5cbi8vICR0aHVtYm5haWwtcGFkZGluZzogLjI1cmVtO1xuLy8gJHRodW1ibmFpbC1iZzogJGJvZHktYmc7XG4vLyAkdGh1bWJuYWlsLWJvcmRlci13aWR0aDogJGJvcmRlci13aWR0aDtcbi8vICR0aHVtYm5haWwtYm9yZGVyLWNvbG9yOiAjZGRkO1xuLy8gJHRodW1ibmFpbC1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcblxuXG4vLyBCcmVhZGNydW1ic1xuXG4kYnJlYWRjcnVtYi1wYWRkaW5nLXZlcnRpY2FsOiA3cHg7XG4kYnJlYWRjcnVtYi1wYWRkaW5nLWhvcml6b250YWw6IDA7XG4kYnJlYWRjcnVtYi1iZzogdHJhbnNwYXJlbnQ7XG4kYnJlYWRjcnVtYi1kaXZpZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yLWRhcms7XG4kYnJlYWRjcnVtYi1hY3RpdmUtY29sb3I6ICRib2R5LWNvbG9yO1xuJGJyZWFkY3J1bWItZGl2aWRlcjogXCIvXCI7XG5cblxuLy8gQ2Fyb3VzZWxcblxuLy8gJGNhcm91c2VsLXRleHQtc2hhZG93OiAwIDFweCAycHggcmdiYSgwLDAsMCwuNik7XG4vL1xuLy8gJGNhcm91c2VsLWNvbnRyb2wtY29sb3I6ICNmZmY7XG4vLyAkY2Fyb3VzZWwtY29udHJvbC13aWR0aDogMTUlO1xuLy8gJGNhcm91c2VsLWNvbnRyb2wtb3BhY2l0eTogLjU7XG4vLyAkY2Fyb3VzZWwtY29udHJvbC1mb250LXNpemU6IDIwcHg7XG4vL1xuLy8gJGNhcm91c2VsLWluZGljYXRvci1hY3RpdmUtYmc6ICNmZmY7XG4vLyAkY2Fyb3VzZWwtaW5kaWNhdG9yLWJvcmRlci1jb2xvcjogI2ZmZjtcbi8vXG4vLyAkY2Fyb3VzZWwtY2FwdGlvbi1jb2xvcjogI2ZmZjtcblxuXG4vLyBDbG9zZVxuXG4vLyAkY2xvc2UtZm9udC13ZWlnaHQ6IGJvbGQ7XG4vLyAkY2xvc2UtY29sb3I6ICMwMDA7XG4vLyAkY2xvc2UtdGV4dC1zaGFkb3c6IDAgMXB4IDAgI2ZmZjtcblxuXG4vLyBDb2RlXG5cbi8vICRjb2RlLWNvbG9yOiAjYmQ0MTQ3O1xuLy8gJGNvZGUtYmc6ICNmN2Y3Zjk7XG4vL1xuLy8gJGtiZC1jb2xvcjogI2ZmZjtcbi8vICRrYmQtYmc6ICMzMzM7XG4vL1xuLy8gJHByZS1iZzogI2Y3ZjdmOTtcbi8vICRwcmUtY29sb3I6ICRncmF5LWRhcms7XG4vLyAkcHJlLWJvcmRlci1jb2xvcjogI2NjYztcbi8vICRwcmUtc2Nyb2xsYWJsZS1tYXgtaGVpZ2h0OiAzNDBweDtcblxuLy8gUGFuZWwgc2l6ZXNcbiRjbXMtcGFuZWwteHM6IDYwcHg7XG4kY21zLXBhbmVsLXNtOiAzMDBweDtcbiRjbXMtcGFuZWwtbWQ6IDQ0OHB4O1xuJGNtcy1wYW5lbC1sZzogNjM4cHg7XG5cbi8vIFBhbmVsIHBhZGRpbmdcbiRwYW5lbC1wYWRkaW5nLXg6ICRncmlkLWd1dHRlci13aWR0aCAvIDI7XG4kcGFuZWwtcGFkZGluZy15OiAkZ3JpZC1ndXR0ZXItd2lkdGggLyAyO1xuXG5cbi8vIFNoYWRvd3NcbiRzaGFkb3ctbGV2ZWwtMTogcmdiYSgwLCAwLCAwLCAuMSk7XG4kc2hhZG93LWxldmVsLTI6IHJnYmEoMCwgMCwgMCwgLjE1KTtcbiRzaGFkb3ctbGV2ZWwtMzogcmdiYSgwLCAwLCAwLCAuMik7XG4kc2hhZG93LWxldmVsLTQ6IHJnYmEoMCwgMCwgMCwgLjI1KTtcbiRzaGFkb3ctbGV2ZWwtNTogcmdiYSgwLCAwLCAwLCAuMzApO1xuXG4vLyBUT0RPIHRpZHkgYWxsIHNoYWRvd3MgY21zIHdpZGUgKGluY2x1ZGluZyBBc3NldEFkbWluKVxuJHNoYWRvdy1saWdodDogJHNoYWRvdy1sZXZlbC0zO1xuJHNoYWRvdy1saWdodGVyOiAkc2hhZG93LWxldmVsLTE7XG4kZHJvcGRvd24tc2hhZG93OiAwIDAgM3B4ICRzaGFkb3ctbGV2ZWwtMztcbiRnYWxsZXJ5LWl0ZW0tc2hhZG93OiAwIDFweCA0cHggJHNoYWRvdy1sZXZlbC0zO1xuXG4vLyBHaXZlcyBpdGVtcyBkZXB0aCBvZiBkaWZmZXJlbnQgbGV2ZWxzXG4kei1kZXB0aC0xOiAwIDJweCA1cHggMCAkc2hhZG93LWxldmVsLTEsIDAgMnB4IDEwcHggMCAkc2hhZG93LWxldmVsLTE7XG4kei1kZXB0aC0yOiAwIDhweCAxMnB4IDAgJHNoYWRvdy1sZXZlbC0zLCAwIDZweCAyMHB4IDAgJHNoYWRvdy1sZXZlbC0yO1xuJHotZGVwdGgtMzogMCAxMnB4IDIwcHggMCAkc2hhZG93LWxldmVsLTQsIDAgMTdweCA0MHB4IDAgJHNoYWRvdy1sZXZlbC0zO1xuJHotZGVwdGgtNDogMCAxNnB4IDI4cHggMCAkc2hhZG93LWxldmVsLTUsIDAgMjVweCA1NXB4IDAgJHNoYWRvdy1sZXZlbC01O1xuXG4vLyBNYXNrczogdHlwaWNhbGx5IGJlaGluZCBtb2RhbHMsIGRyYWcgZHJvcCBhcmVhc1xuJHBhZ2UtbWFzay1saWdodDogcmdiYSgyMzYsIDIzOSwgMjQxLCAuOSk7XG5cblxuLy8gR2FsbGVyeSB0aHVtYm5haWwgYW5kIGltYWdlIHNpemVzXG5cbiRnYWxsZXJ5LXRodW1iLXdpZHRoOiAgIDE3NnB4O1xuJGdhbGxlcnktdGh1bWItaGVpZ2h0OiAgMTMycHg7XG5cbiRnYWxsZXJ5LWl0ZW0td2lkdGg6ICAgICRnYWxsZXJ5LXRodW1iLXdpZHRoICsgMjsgLy8gaW5jbHVkZSBib3JkZXJzXG4kZ2FsbGVyeS1pdGVtLWhlaWdodDogICAxNzRweDtcbiRnYWxsZXJ5LXRpdGxlLWhlaWdodDogIDQwcHg7XG5cbiRnYWxsZXJ5LWZvbGRlci1oZWlnaHQ6XHQgIDU0cHg7XG4kZ2FsbGVyeS1mb2xkZXItdGl0bGUtaGVpZ2h0OiAkZ2FsbGVyeS1mb2xkZXItaGVpZ2h0IC0gMjtcblxuXG4vLyBUcmFuc2l0aW9uIHNwZWVkc1xuXG4kdHJhbnNpdGlvbi1zcGVlZC1zbG93OiAgIDFzO1xuJHRyYW5zaXRpb24tc3BlZWQtbWlkOiAgLjVzO1xuJHRyYW5zaXRpb24tc3BlZWQtZmFzdDogICAuM3M7XG4iLCIvLyoqXG4vLyAqIFRoaXMgZmlsZSBjb250YWlucyBnZW5lcmljIG1peGlucyB3aGljaCB3ZSB1c2UgdGhyb3VnaG91dFxuLy8gKiB0aGUgYWRtaW4gcGFuZWxzLlxuLy8gKlxuLy8gKiBNaXhpbnMgc2hvdWxkIGJlIHN0b3JlZCBoZXJlIHJhdGhlciB0aGFuIGluZGl2aWR1YWwgZmlsZXNcbi8vICogc28gdGhhdCB3ZSBjYW4ga2VlcC5cbi8vICovXG5cbi8vKiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gKiBIaWRlcyB0aGUgb3ZlcmZsb3dpbmcgdGV4dCBmcm9tIGEgY29udGFpbmVyXG4vLyAqXG4vLyAqIE5vdGU6IHlvdSBtdXN0IGRlZmluZSBhIHdpZHRoIG9uIHRoZSBlbGVtZW50IHdpdGggdGhpc1xuLy8gKiBvdmVyZmxvdy5cbi8vICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbkBtaXhpbiBoaWRlLXRleHQtb3ZlcmZsb3cge1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0LW8tdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG5cbkBtaXhpbiBib3gtc2hhZG93LW5vbmV7XG5cdC1tb3otYm94LXNoYWRvdzogbm9uZTtcblx0LXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG59XG5cblxuLy8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vQ2xlYXJmaXggbWl4aW4gY2xlYXJzIHRoZSBmbG9hdCBvZiBpdCdzIHBhcmVudCBlbGVtZW50XG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qKi9cbkBtaXhpbiBjbGVhcmZpeHtcblx0JjphZnRlcntcblx0XHRjb250ZW50OiBcIi5cIjtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRoZWlnaHQ6IDA7XG5cdFx0Y2xlYXI6IGJvdGg7XG5cdFx0dmlzaWJpbGl0eTogaGlkZGVuO1xuXHR9XG5cdCo6Zmlyc3QtY2hpbGQgJnsgem9vbToxO31cbn1cblxuXG5cbi8vKiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gKiBDbGVhciB0aGUgcHJvcGVydGllcyBvZiBzdWIgZm9ybSBmaWVsZHMuXG4vLyAqXG4vLyAqIE9mdGVuIG5lZWRlZCBmb3IgbmVzdGVkIGZvcm0gZmllbGRzIGFuZFxuLy8gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuQG1peGluIGNsZWFyLWZvcm0tZmllbGQtc3R5bGVzIHtcblx0LmZpZWxkIHtcblx0XHRwYWRkaW5nOiAwO1xuXHRcdGJvcmRlcjogMDtcblx0fVxuXG5cdGxhYmVsIHtcblx0XHRmbG9hdDogbm9uZTtcblx0XHR3aWR0aDogYXV0bztcblxuXHRcdCYubGVmdCB7XG5cdFx0XHRmbG9hdDogbm9uZTtcblx0XHRcdGRpc3BsYXk6IGluaGVyaXQ7XG5cdFx0XHR3aWR0aDogYXV0bztcblx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0XHRsaW5lLWhlaWdodDogaW5oZXJpdDtcblx0XHR9XG5cdH1cblxuXHQubWlkZGxlQ29sdW1uIHtcblx0XHRtYXJnaW4tbGVmdDogMDtcblx0fVxuXG5cdGlucHV0LnRleHQsXG5cdHRleHRhcmVhLFxuXHRzZWxlY3QsXG5cdC5UcmVlRHJvcGRvd25GaWVsZCB7XG5cdFx0d2lkdGg6IGF1dG87XG5cdFx0bWF4LXdpZHRoOiBhdXRvO1xuXHR9XG59XG5cbi8vKiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gKiBEb3VibGUgdG9uZSBib3JkZXJzXG4vLyAqXG4vLyAqIGh0dHA6Ly9kYXZlcnVwZXJ0LmNvbS8yMDExLzA2L3R3by10b25lLWJvcmRlcnMtd2l0aC1jc3MzL1xuLy8gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuQG1peGluIGRvdWJsZWJvcmRlcigkc2lkZSwgJGlubmVyQ29sb3IsICRvdXRlckNvbG9yKSB7XG4gICAgJHNoYWRvdzogXCIwIDAgMFwiO1xuICAgIGJvcmRlci0jeyRzaWRlfTogMXB4IHNvbGlkICRpbm5lckNvbG9yO1xuICAgIEBpZiAoJHNpZGUgPT0gXCJ0b3BcIikgeyAkc2hhZG93OiAwIC0xcHggMDsgfVxuICAgIEBpZiAoJHNpZGUgPT0gXCJyaWdodFwiKSB7ICRzaGFkb3c6IDFweCAwIDA7IH1cbiAgICBAaWYgKCRzaWRlID09IFwiYm90dG9tXCIpIHsgJHNoYWRvdzogMCAxcHggMDsgfVxuICAgIEBpZiAoJHNpZGUgPT0gXCJsZWZ0XCIpIHsgJHNoYWRvdzogLTFweCAwIDA7IH1cbiAgICAtd2Via2l0LWJveC1zaGFkb3c6ICRzaGFkb3cgJG91dGVyQ29sb3I7XG4gICAgLW1vei1ib3gtc2hhZG93OiAkc2hhZG93ICRvdXRlckNvbG9yO1xuICAgIC1vLWJveC1zaGFkb3c6ICRzaGFkb3cgJG91dGVyQ29sb3I7XG4gICAgYm94LXNoYWRvdzogJHNoYWRvdyAkb3V0ZXJDb2xvcjtcbn1cblxuXG4vKk1peGluIHVzZWQgdG8gZ2VuZXJhdGUgc2xpZ2h0bHkgc21hbGxlciB0ZXh0IGFuZCBmb3Jtc1xuVXNlZCBpbiBzaWRlIHBhbmVscyBhbmQgYWN0aW9uIHRhYnNcbiovXG5AbWl4aW4gdGlnaHRTcGFjaW5ne1xuXHRoMyxoNCxoNSB7XG5cdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0bGluZS1oZWlnaHQ6ICRncmlkLXkgKiAyO1xuXHR9XG5cdGgzIHtcblx0XHRmb250LXNpemU6ICRmb250LXNpemUtcm9vdDtcblx0fVxuXG5cdGg0IHtcblx0XHRmb250LXNpemU6ICRmb250LXNpemUtcm9vdCAtMTtcblx0XHRtYXJnaW46IDVweCAwO1xuXHR9XG5cblx0LnVpLXdpZGdldC1jb250ZW50IHtcblx0XHRiYWNrZ3JvdW5kOiBub25lO1xuXHR9XG5cblx0LmZpZWxkIHtcblx0XHQvKlxuXHRcdCAqIEZpZWxkcyBhcmUgbW9yZSBjb21wcmVzc2VkIGluIHNvbWUgYXJlYXMgY29tcGFyZWQgdG8gdGhlXG5cdFx0ICogbWFpbiBjb250ZW50IGVkaXRpbmcgd2luZG93IHNvIHRoZSBiZWxvdyBhbHRlcnMgdGhlIGludGVybmFsXG5cdFx0ICogc3BhY2luZyBvZiB0aGUgZmllbGRzIHNvIHdlIGNhbiBtb3ZlIHRoYXQgc3BhY2luZyB0byBiZXR3ZWVuXG5cdFx0ICogdGhlIGZvcm0gZmllbGRzIHJhdGhlciB0aGFuIHBhZGRpbmdcblx0XHQgKi9cblx0XHRib3JkZXItYm90dG9tOm5vbmU7XG5cdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0XHRsYWJlbCB7XG5cdFx0XHRmbG9hdDogbm9uZTtcblx0XHRcdHdpZHRoOiBhdXRvO1xuXHRcdFx0Zm9udC1zaXplOiAxMnB4O1xuXHRcdFx0cGFkZGluZzogMCAkZ3JpZC14IDRweCAwO1xuXHRcdFx0Ji5leHRyYS1kZXRhaWxze1xuXHRcdFx0XHRvdmVyZmxvdzpoaWRkZW47XG5cdFx0XHRcdG1hcmdpbi10b3A6MTBweDtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdGNvbG9yOiBsaWdodGVuKCRjb2xvci10ZXh0LCAzNSUpO1xuXHRcdFx0XHRmb250LXN0eWxlOml0YWxpYztcblx0XHRcdFx0Zm9udC13ZWlnaHQ6bm9ybWFsO1xuXHRcdFx0XHRmb250LXNpemU6MWVtO1xuXHRcdFx0XHRmbG9hdDpsZWZ0O1xuXHRcdFx0XHR0ZXh0LXNoYWRvdzogbm9uZTtcblx0XHRcdFx0Ji5maWxse1xuXHRcdFx0XHRcdCY6YmVmb3Jle1xuXHRcdFx0XHRcdFx0Y29sb3I6I2ZmZjtcblx0XHRcdFx0XHRcdGNvbnRlbnQ6ICc/Jztcblx0XHRcdFx0XHRcdGZvbnQtc2l6ZToxMnB4O1xuXHRcdFx0XHRcdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0XHRcdFx0XHRcdHBhZGRpbmctbGVmdDozcHg7XG5cdFx0XHRcdFx0XHRwYWRkaW5nLXJpZ2h0OjNweDtcblx0XHRcdFx0XHRcdGRpc3BsYXk6YmxvY2s7XG5cdFx0XHRcdFx0XHRmbG9hdDpsZWZ0O1xuXHRcdFx0XHRcdFx0dGV4dC1zaGFkb3c6IG5vbmU7XG5cdFx0XHRcdFx0XHRib3JkZXItcmFkaXVzOiA1MHB4O1xuXHRcdFx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjpsaWdodGVuKCRjb2xvci10ZXh0LCA0NSUpO1xuXHRcdFx0XHRcdFx0d2lkdGg6MjFweDtcblx0XHRcdFx0XHRcdGhlaWdodDoxNXB4O1xuXHRcdFx0XHRcdFx0bWFyZ2luLXJpZ2h0OjVweDtcblx0XHRcdFx0XHRcdG1hcmdpbi1ib3R0b206NXB4O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC5taWRkbGVDb2x1bW4ge1xuXHRcdFx0bWFyZ2luOiAwO1xuXHRcdH1cblxuXHRcdGlucHV0LnRleHQsXG5cdFx0c2VsZWN0LFxuXHRcdHRleHRhcmVhIHtcblx0XHRcdHBhZGRpbmc6IDVweDtcblx0XHRcdGZvbnQtc2l6ZTogMTFweDtcblx0XHR9XG5cblx0XHQmLmNoZWNrYm94IHtcblx0XHRcdHBhZGRpbmc6IDAgOHB4IDA7XG5cblx0XHRcdGlucHV0IHtcblx0XHRcdFx0bWFyZ2luOiAycHggMDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQuZm9ybV9fZmllbGRncm91cCB7XG5cdFx0LmZvcm1fX2ZpZWxkZ3JvdXAtaXRlbSB7XG5cdFx0XHRwYWRkaW5nOiAwO1xuXG5cdFx0XHQuZmllbGQge1xuXHRcdFx0XHRtYXJnaW46IDA7XG5cdFx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0LyogUmVzdHlsZSBmb3Igc21hbGxlciBhcmVhKi9cblx0LmNtcy1jb250ZW50LWZpZWxkc3tcblx0XHRvdmVyZmxvdzp2aXNpYmxlO1xuXHR9XG5cdC5jaG9zZW4tY29udGFpbmVyLXNpbmdsZXtcblx0XHR3aWR0aDoxMDAlICFpbXBvcnRhbnQ7XG5cdFx0LmNob3Nlbi1zaW5nbGV7XG5cdFx0XHRwYWRkaW5nOiAwIDAgMCA1cHg7XG5cdFx0XHRmbG9hdDpub25lO1xuXHRcdH1cblx0fVxuXHQuY21zLWNvbnRlbnQtYWN0aW9ucywgLmNtcy1wcmV2aWV3LWNvbnRyb2xze1xuXHRcdHBhZGRpbmc6MDtcblx0XHRoZWlnaHQ6YXV0bztcblx0XHRib3JkZXI6bm9uZTtcblx0XHRib3gtc2hhZG93OiBub25lO1xuXHR9XG5cdC5jbXMtZWRpdC1mb3Jte1xuXHRcdHdpZHRoOjEwMCU7XG5cdH1cblx0LkNvbXBvc2l0ZUZpZWxke1xuXHRcdG1hcmdpbjowO1xuXHRcdHBhZGRpbmc6MDtcblx0XHRmbG9hdDpub25lO1xuXHR9XG5cdC5wYXJlbnQtbW9kZXtcblx0XHRwYWRkaW5nLXRvcDowO1xuXHR9XG5cdC50cmVlZHJvcGRvd24sIC5TZWxlY3Rpb25Hcm91cCBsaS5zZWxlY3RlZCBkaXYuZmllbGR7XG5cdFx0bWFyZ2luOjEwcHggMCAwIDA7XG5cdFx0Ly9AaW5jbHVkZSBib3gtc2hhZG93KGluc2V0IDAgMXB4IDAgI2ZmZiwgMCAxcHggMXB4IHJnYmEoMCwwLDAsMC4xKSk7XG5cdFx0LnRyZWVkcm9wZG93bmZpZWxkLXRpdGxle1xuXHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XG5cdFx0XHR6LWluZGV4OjI7XG5cdFx0XHRwYWRkaW5nOjVweDtcblx0XHR9XG5cdFx0LnRyZWVkcm9wZG93bmZpZWxkLXBhbmVse1xuXHRcdFx0bWFyZ2luLXRvcDoxMXB4O1xuXHRcdH1cblx0XHQudHJlZWRyb3Bkb3duZmllbGQtdG9nZ2xlLXBhbmVsLWxpbmt7XG5cdFx0XHRiYWNrZ3JvdW5kOm5vbmU7XG5cdFx0XHRib3JkZXItbGVmdDpub25lO1xuXHRcdFx0cGFkZGluZzo1cHggM3B4O1xuXHRcdFx0LnVpLWljb257XG5cdFx0XHRcdGZsb2F0OnJpZ2h0O1xuXHRcdFx0XHRvcGFjaXR5OjAuNztcblx0XHRcdH1cblx0XHR9XG5cdH1cblx0LmNtcy1hZGQtZm9ybSB1bC5TZWxlY3Rpb25Hcm91cHtcblx0XHRwYWRkaW5nLWxlZnQ6MDtcblx0XHRwYWRkaW5nLXJpZ2h0OjA7XG5cdFx0b3ZlcmZsb3c6dmlzaWJsZTtcblx0XHRib3JkZXItYm90dG9tOm5vbmU7XG5cdH1cbn1cblxuLy8qKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAqIENvbXBhc3MgcmVwbGFjZW1lbnQgbWl4aW5zLlxuLy8gKlxuLy8gKiBNaXhpbnMgdGhhdCB3ZXJlIGJ1aWx0LWluIHdpdGggY29tcGFzc1xuLy8gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5AbWl4aW4gbGVnYWN5LXBpZS1jbGVhcmZpeCB7XG5cdCY6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXFwwMDIwXCI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGNsZWFyOiBib3RoO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB9XG59XG4iLCIvKipcbiAqIFRoaXMgZmlsZSBjb250YWlucyB0aGUgZGVmYXVsdCB0aGVtZSBkZWZpbml0aW9ucyBmb3IgdGhlIGFkbWluIGludGVyZmFjZS5cbiAqIFBsZWFzZSBwdXQgbW9zdGx5IFNDU1MgdmFyaWFibGUgZGVmaW5pdGlvbnMgaW4gaGVyZSxcbiAqIGFuZCBsZWF2ZSB0aGUgYWN0dWFsIHN0eWxpbmcgdG8gX3N0eWxlLnNjc3MgYW5kIGF1eGlsbGlhcnkgZmlsZXMuXG4gKi9cblxuQGltcG9ydCBcIi4uLy4uL3ZhcmlhYmxlcy5zY3NzXCI7XG5cbi8qKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogQ29sb3Vyc1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4kY29sb3ItYmFzZTogI2IwYmVjNyAhZGVmYXVsdDtcbiRjb2xvci13aWRnZXQtYmc6IGxpZ2h0ZW4oJGNvbG9yLWJhc2UsIDIwJSkgIWRlZmF1bHQ7XG5cbi8vIE1lbnUgdGhlbWUgY29sb3Vyc1xuJGNvbG9yLXRoZW1lLWJhc2U6IFx0I2Q4ZTRlYiAhZGVmYXVsdDtcblxuJGNvbG9yLXRoZW1lLWJnOiBcdGxpZ2h0ZW4oJGNvbG9yLXRoZW1lLWJhc2UsIDUlKTtcbiRjb2xvci10aGVtZS1pY29uczogZGFya2VuKCRjb2xvci10aGVtZS1iYXNlLCAyNiUpO1xuJGNvbG9yLXRoZW1lLWFjdGl2ZTogJGNvbG9yLXRoZW1lLWJhc2U7XG5cbi8vIENNUyA0IG1lbnVcbiRiYXNlLW1lbnU6ICNkOGU0ZWI7XG4kYmFzZS1tZW51LWJnOiBsaWdodGVuKCRiYXNlLW1lbnUsNSUpO1xuJGJhc2UtbWVudS1pY29uOiBkYXJrZW4oJGJhc2UtbWVudSwgMjYlKTtcblxuLy9vZmZpY2FsIHNpbHZlcnN0cmlwZSBicmFuZCBjb2xvclxuJGNvbG9yLWJyYW5kLWJnOiAjMDA1YTkzICFkZWZhdWx0O1xuJGNvbG9yLWJyYW5kOiAjNDNjN2Y0ICFkZWZhdWx0O1xuXG4vKiBLZWVwIGFzIHNvbGlkIGNvbG91cnMgdHJhbnNwYXJlbnQgYm9yZGVycyB3b250IHdvcmsgaW4gaWUgKi9cbiRjb2xvci1kYXJrZXItYmc6ICNmMGYyZjQgIWRlZmF1bHQ7XG4kY29sb3ItZGFyay1iZzogIzE0MjEzNiAhZGVmYXVsdDtcbiRjb2xvci1kYXJrLXNlcGFyYXRvcjogIzE5NDM1YyAhZGVmYXVsdDtcbiRjb2xvci1tZWRpdW0tc2VwYXJhdG9yOiAjODA4MDgwICFkZWZhdWx0O1xuJGNvbG9yLXNlcGFyYXRvcjogI0MxQzdDQyAhZGVmYXVsdDsgLy8gVmVydGljYWwgZGl2aWRlcnNcbiRjb2xvci1saWdodC1zZXBhcmF0b3I6ICNEMkQ1RDggIWRlZmF1bHQ7IC8vIEhvcmlvbnRhbCBkaXZpZGVyc1xuXG4kY29sb3ItdGFiOiAjZDlkOWQ5ICFkZWZhdWx0O1xuJGNvbG9yLWRhcmstZ3JleTogIzdCOEM5MSAhZGVmYXVsdDtcblxuLyogT25seSBmb3IgdXNlIGFzIHNoYWRvd3MgYXMgdGhleSB3b250IHdvcmsgaW4gb2xkZXIgYnJvd3NlcnMgKi9cbiRjb2xvci1zaGFkb3ctbGlnaHQ6IHJnYmEoMjAxLCAyMDUsIDIwNiwgMC44KSAhZGVmYXVsdDtcbiRjb2xvci1zaGFkb3ctZGFyazogcmdiYSgxMDcsIDEyMCwgMTIzLCAwLjUpICFkZWZhdWx0O1xuJGNvbG9yLXNoYWRvdy1ibGFjazogcmdiYSgwLCAwLCAwLCAwLjYpICFkZWZhdWx0O1xuJGNvbG9yLXNoYWRvdy1ibGFja2VyOiByZ2JhKDAsIDAsIDAsIDAuOSkgIWRlZmF1bHQ7XG4kYm94LXNoYWRvdy1zaGluZTogcmdiYSgyNDgsIDI0OCwgMjQ4LCAwLjkpO1xuJGJveC1zaGFkb3ctc2hpbmUtbWluaW1hbDogcmdiYSgyNDUsIDI0NSwgMjQ1LCAwLjgpO1xuXG4kY29sb3ItaGlnaGxpZ2h0OiAjRkZGRjY2ICFkZWZhdWx0O1xuJGNvbG9yLWhpZ2hsaWdodC1vcGFjaXR5OiByZ2JhKDI1NSwgMjU1LCAxMDIsIDAuMykgIWRlZmF1bHQ7XG5cbiRjb2xvci1tZW51LWJ1dHRvbjogIzMzOERDMSAhZGVmYXVsdDtcbiRjb2xvci1tZW51LWJhY2tncm91bmQ6ICNjNmQ3ZGYgIWRlZmF1bHQ7XG4kY29sb3ItbWVudS1ib3JkZXI6ICM4Yzk5YTEgIWRlZmF1bHQ7XG4kY29sb3ItcGFuZWwtYmFja2dyb3VuZDogI2M2ZDdkZiAhZGVmYXVsdDtcblxuJGNvbG9yLXRleHQtZGVmYXVsdDogIzRmNTg2MSAhZGVmYXVsdDsgLyogbmV3IGluIFNpbHZlclN0cmlwZSA0ICovXG4kY29sb3ItdGV4dDogIzY2NzI3ZCAhZGVmYXVsdDtcbiRjb2xvci10ZXh0LWxpZ2h0OiB3aGl0ZSAhZGVmYXVsdDtcbiRjb2xvci10ZXh0LWxpZ2h0LWxpbms6IHdoaXRlICFkZWZhdWx0O1xuJGNvbG9yLXRleHQtZGlzYWJsZWQ6ICNhYWEgIWRlZmF1bHQ7XG4kY29sb3ItdGV4dC1kYXJrOiAjMWYxZjFmICFkZWZhdWx0O1xuJGNvbG9yLXRleHQtZGFyay1saW5rOiAjM0VCQUUwICFkZWZhdWx0O1xuJGNvbG9yLXRleHQtYmx1ZS1saW5rOiAjMDA3MWM0ICFkZWZhdWx0O1xuJGNvbG9yLXRleHQtc2hhZG93OiB3aGl0ZSAhZGVmYXVsdDtcblxuXG4kY29sb3ItYnV0dG9uLWdlbmVyaWM6ICNlNmU2ZTYgIWRlZmF1bHQ7XG4kY29sb3ItYnV0dG9uLWdlbmVyaWMtYm9yZGVyOiAjZDBkM2Q1ICFkZWZhdWx0O1xuXG4kY29sb3ItYnV0dG9uLWhpZ2hsaWdodDogI2U2ZTZlNiAhZGVmYXVsdDtcbiRjb2xvci1idXR0b24taGlnaGxpZ2h0LWJvcmRlcjogIzcwODI4NCAhZGVmYXVsdDtcblxuJGNvbG9yLWJ1dHRvbi1jb25zdHJ1Y3RpdmU6ICMxRjk0MzMgIWRlZmF1bHQ7XG4kY29sb3ItYnV0dG9uLWNvbnN0cnVjdGl2ZS1ib3JkZXI6ICMxRjk0MzMgIWRlZmF1bHQ7XG5cbiRjb2xvci1idXR0b24tZGVzdHJ1Y3RpdmU6ICNmMDAgIWRlZmF1bHQ7XG5cbiRjb2xvci1idXR0b24tZGlzYWJsZWQ6ICNlZWVkZWQgIWRlZmF1bHQ7XG5cbiRjb2xvci1ub3RpY2U6ICM5M0NERTggIWRlZmF1bHQ7XHRcdC8vIGJsdWVcbiRjb2xvci13YXJuaW5nOiAjRTlEMTA0ICFkZWZhdWx0O1x0XHQvLyB5ZWxsb3dcbiRjb2xvci1lcnJvcjogI2U2ODI4OCAhZGVmYXVsdDtcdFx0XHQvLyByZWRcbiRjb2xvci1nb29kOiAjNzJjMzRiICFkZWZhdWx0O1x0XHRcdC8vIGdyZWVuXG4vKiRjb2xvci1vcHRpb25hbDogI2ExZDJlYiAhZGVmYXVsdDsgKi9cdC8vIG9yYW5nZVxuXG4kY29sb3ItY21zLWJhdGNoYWN0aW9ucy1tZW51LWJhY2tncm91bmQ6ICNmNWY1ZjUgIWRlZmF1bHQ7XG4kY29sb3ItY21zLWJhdGNoYWN0aW9ucy1tZW51LXNlbGVjdGVkLWJhY2tncm91bmQ6ICNmZmZjZGMgIWRlZmF1bHQ7XG5cbi8qKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVGV4dHVyZXNcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4kdGFiLXBhbmVsLXRleHR1cmUtY29sb3I6ICNmNmY3ZjggIWRlZmF1bHQ7XG4kdGFiLXBhbmVsLXRleHR1cmUtYmFja2dyb3VuZDogJHRhYi1wYW5lbC10ZXh0dXJlLWNvbG9yIHVybCguLi9pbWFnZXMvdGV4dHVyZXMvYmdfY21zX21haW5fY29udGVudC5wbmcpIHJlcGVhdCB0b3AgbGVmdCAhZGVmYXVsdDtcblxuXG4vKiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIEdyaWQgVW5pdHMgKHB4KVxuICpcbiAqIFdlIGhhdmUgYSB2ZXJ0aWNhbCByaHl0aG0gdGhhdCB0aGUgZ3JpZCBpcyBiYXNlZCBvZmZcbiAqIGJvdGggeCAoPWhvcml6b250YWwpIGFuZCB5ICg9dmVydGljYWwpLiBBbGwgaW50ZXJuYWwgcGFkZGluZyBhbmRcbiAqIG1hcmdpbnMgYXJlIHNjYWxlZCB0byB0aGlzIGFuZCBhY2NvdW50aW5nIGZvciBwYXJhZ3JhcGhzXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbiRncmlkLXk6IDhweCAhZGVmYXVsdDtcbiRncmlkLXg6IDhweCAhZGVmYXVsdDtcblxuLyoqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBBcHBsaWNhdGlvbiBMb2dvIChDTVMgTG9nbykgTXVzdCBiZSAyNHB4IHggMjRweFxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4kYXBwbGljYXRpb24tbG9nby1zbWFsbDogdXJsKFwiLi4vaW1hZ2VzL2xvZ29fc21hbGwucG5nXCIpICFkZWZhdWx0O1xuJGFwcGxpY2F0aW9uLWxvZ28tc21hbGwtMng6IHVybChcIi4uL2ltYWdlcy9sb2dvX3NtYWxsQDJ4LnBuZ1wiKSAhZGVmYXVsdDtcbiIsIi8vIHNjc3MtbGludDpkaXNhYmxlIGFsbFxuXG4vLyoqXG4vLyAqIFRoaXMgZmlsZSBjb250YWlucyBtaXhpbnMgcmVsYXRpbmcgdG8gc3BlY2lmaWMgZnVuY3Rpb25hbGl0eVxuLy8gKlxuLy8gKiBNaXhpbnMgc2hvdWxkIGJlIHN0b3JlZCBoZXJlIHJhdGhlciB0aGFuIGluZGl2aWR1YWwgZmlsZXNcbi8vICovXG5cblxuLy8qTWl4aW4gZ2VuZXJhdGVzIHRoZSBnZW5lcmljIGJ1dHRvbiBzdHlsaW5nIGZvciB0aGUgZ3JpZGZpZWxkKi9cbkBtaXhpbiBncmlkRmllbGRCdXR0b25ze1xuXHRib3JkZXI6bm9uZTtcblx0ZGlzcGxheTpibG9jaztcblx0dGV4dC1pbmRlbnQ6LTk5OTllbTtcblx0d2lkdGg6MzBweDtcblx0aGVpZ2h0OjI1cHg7IC8vbWF0Y2ggdGhlIGhlaWdodCBvZiB0aGUgaW5wdXQgZmllbGRcbn1cblxuXG4vLyBNaXhpbiBnZW5lcmF0ZXMgdGhlIHN0eWxpbmcgZm9yIHRoZSBhY3Rpb25zIGJ1dHRvbnMgaW4gZmlsZSB1cGxvYWRzXG5AbWl4aW4gc3MtdXBsb2FkZmllbGQtYWN0aW9uLWJ1dHRvbnN7XG5cdC5zcy11aS1idXR0b24ge1xuXHRcdGJhY2tncm91bmQ6IG5vbmU7XG5cdFx0Ym9yZGVyOiAwO1xuXHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cdFx0dGV4dC1zaGFkb3c6IG5vbmU7XG5cdFx0Y29sb3I6ICRjb2xvci10ZXh0LWxpZ2h0O1xuXHRcdGZsb2F0OiByaWdodDtcblxuXHRcdCYuc3MtdXBsb2FkZmllbGQtaXRlbS1kZWxldGUge1xuXHRcdFx0Ly8gVE9ETyB0bXAgaGFjayB1bnRpbCB3ZSBoYXZlIHBlcm1pc3Npb25zIGFuZCBjYW4gZGlzYWJsZSBkZWxldGVcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXHRcdCYuc3MtdXBsb2FkZmllbGQtaXRlbS1jYW5jZWwsICYuc3MtdXBsb2FkZmllbGQtaXRlbS1vdmVyd3JpdGUtd2FybmluZyB7XG5cdFx0XHRib3JkZXItcmFkaXVzOiAwO1xuXHRcdFx0Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkIHJnYmEoI2ZmZiwgMC4yKTtcblx0XHRcdG1hcmdpbi10b3A6MHB4O1xuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdFx0b3BhY2l0eTowLjk7XG5cdFx0XHQmOmhvdmVye1xuXHRcdFx0XHRvcGFjaXR5OjE7XG5cdFx0XHR9XG5cdFx0XHQudWktaWNvbiB7XG5cdFx0XHQgIGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0ICBtYXJnaW46IDA7XG5cdFx0XHQgIHBvc2l0aW9uOnJlYWx0aXZlO1xuXHRcdFx0ICB0b3A6OHB4O1xuXHRcdFx0fVxuXHRcdH1cblx0XHRAaW5jbHVkZSBzcy11cGxvYWRmaWVsZC1lZGl0QnV0dG9uO1xuXHR9XG59XG5cbi8vKipcbi8vXHRNaXhpbiBjcmVhdGVzIGEgdHJhbnNwYXJlbnQgYnV0dG9uIHdpdGggYSBkcm9wZG93biBhcnJvdyxcbi8vXHRhcyBpcyB1c2VkIGZvciBmaWxlcyBpbiB0aGUgZmlsZXMgdXAtbG9hZCBhcmVhLiBUaGUgYXJyb3dzXG4vL1x0dGhlbXNlbHZlcyBhcmUgYWRkZWQgaW4gdGhlIF9zdHlsZSBmaWxlXG4vLyoqL1xuQG1peGluIHNzLXVwbG9hZGZpZWxkLWVkaXRCdXR0b257XG5cdCYuc3MtdXBsb2FkZmllbGQtaXRlbS1lZGl0IHtcblx0XHRvcGFjaXR5OjAuOTtcblx0XHRwYWRkaW5nLXRvcDogMXB4O1xuXHRcdHBhZGRpbmctYm90dG9tOiAwO1xuXHRcdGhlaWdodDoxMDAlO1xuXHRcdGJvcmRlci1yYWRpdXM6IDA7XG5cdFx0Ji51aS1zdGF0ZS1ob3Zlcntcblx0XHRcdGJhY2tncm91bmQ6bm9uZTtcblx0XHRcdG9wYWNpdHk6MTtcblx0XHRcdHNwYW4udG9nZ2xlLWRldGFpbHN7XG5cdFx0XHRcdG9wYWNpdHk6MTtcblx0XHRcdH1cblx0XHR9XG5cdFx0c3Bhbi50b2dnbGUtZGV0YWlsc3tcblx0XHRcdG9wYWNpdHk6MC45O1xuXHRcdFx0bWFyZ2luLWxlZnQ6M3B4O1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0d2lkdGg6IDVweDtcblx0XHRcdGhlaWdodDogMTAwJTtcblx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHRcdC50b2dnbGUtZGV0YWlscy1pY29uIHtcblx0XHRcdFx0bWFyZ2luLXRvcDoxcHg7XG5cdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdFx0d2lkdGg6IDhweDtcblx0XHRcdFx0aGVpZ2h0OiA2cHg7XG5cdFx0XHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdFx0XHRcdCYub3BlbmVkIHtcblx0XHRcdFx0XHRtYXJnaW4tdG9wOjA7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQudWktaWNvbiB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxufVxuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9 */
diff --git a/client/dist/styles/Form.css b/client/dist/styles/Form.css
deleted file mode 100755
index 699fd0cae..000000000
--- a/client/dist/styles/Form.css
+++ /dev/null
@@ -1,3 +0,0 @@
-form *{font-size:12px}form fieldset{margin:0;padding:0;border-style:none}form .field{clear:both;padding:0.2em;margin:0 0 0 10em;vertical-align:middle}form p.checkbox{margin:0 0 0 8.5em}form .field.form-group--no-label{margin-left:0}form label.left{float:left;width:10em;margin-left:-10em}form input.maxlength{width:auto}form .validation,form .error,form .required{border:1px solid #f00;background:#fcc;padding:0.5em;width:50%}form .field span.readonly{border:1px #CCC dotted;background-color:#F7F7F7;display:block;width:98%;padding:3px;margin:5px 0}form .indicator.inline{display:inline;margin-left:5px;vertical-align:middle}form .indicator.block{display:inline}form button.minorAction{background:none;padding:0;border:0;color:#0074C6;text-decoration:underline}form .message{margin:1em 0;padding:0.5em;font-weight:bold;border:1px black solid;background-color:#B9FFB9;border-color:#00FF00}form .message.notice{background-color:#FCFFDF;border-color:#FF9300}form .message.warning{background-color:#FFD2A6;border-color:#FF9300}form .message.bad{background-color:#FF8080;border-color:#FF0000}form .message.required,form .message.validation{display:block;margin-top:5px;color:#FF9300;width:240px;border-color:#FF9300}form .message.validation{color:#FF4040;width:240px;border-color:#FF4040}.typography .ss-tabset ul{margin:0}
-
-/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxlZ2FjeS9Gb3JtLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FHRSxjQUFnQixDQUhsQixjQU9FLFNBQ0EsVUFDQSxpQkFBbUIsQ0FUckIsWUFhRSxXQUNBLGNBQ0Esa0JBQ0EscUJBQXVCLENBaEJ6QixnQkFvQkUsa0JBQW9CLENBcEJ0QixpQ0F3QkUsYUFBZSxDQXhCakIsZ0JBNEJFLFdBQ0EsV0FDQSxpQkFBbUIsQ0E5QnJCLHFCQWtDRSxVQUFZLENBbENkLDRDQXNDRSxzQkFDQSxnQkFDQSxjQUNBLFNBQVcsQ0F6Q2IsMEJBNkNFLHVCQUNBLHlCQUNBLGNBQ0EsVUFDQSxZQUNBLFlBQWEsQ0FsRGYsdUJBc0RFLGVBQ0EsZ0JBQ0EscUJBQXVCLENBeER6QixzQkE0REUsY0FBZ0IsQ0E1RGxCLHdCQWlFRSxnQkFDQSxVQUNBLFNBQ0EsY0FDQSx5QkFBMkIsQ0FyRTdCLGNBNEVFLGFBQ0EsY0FDQSxpQkFDQSx1QkFDQSx5QkFDQSxvQkFBc0IsQ0FqRnhCLHFCQW9GRyx5QkFDQSxvQkFBc0IsQ0FyRnpCLHNCQXlGRyx5QkFDQSxvQkFBc0IsQ0ExRnpCLGtCQThGRyx5QkFDQSxvQkFBc0IsQ0EvRnpCLGdEQW1HRyxjQUNBLGVBQ0EsY0FDQSxZQUNBLG9CQUFzQixDQXZHekIseUJBMkdHLGNBQ0EsWUFDQSxvQkFBc0IsQ0FDdEIsMEJBS0YsUUFBVSxDQUNWIiwiZmlsZSI6ImxlZ2FjeS9Gb3JtLmNzcyIsInNvdXJjZXNDb250ZW50IjpbImZvcm0ge1xuXG5cdCoge1xuXHRcdGZvbnQtc2l6ZTogMTJweDtcblx0fVxuXG5cdGZpZWxkc2V0IHtcblx0XHRtYXJnaW46IDA7XG5cdFx0cGFkZGluZzogMDtcblx0XHRib3JkZXItc3R5bGU6IG5vbmU7XG5cdH1cblxuXHQuZmllbGQge1xuXHRcdGNsZWFyOiBib3RoO1xuXHRcdHBhZGRpbmc6IDAuMmVtO1xuXHRcdG1hcmdpbjogMCAwIDAgMTBlbTtcblx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHR9XG5cblx0cC5jaGVja2JveCB7XG5cdFx0bWFyZ2luOiAwIDAgMCA4LjVlbTtcblx0fVxuXG5cdC5maWVsZC5mb3JtLWdyb3VwLS1uby1sYWJlbCB7XG5cdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdH1cblxuXHRsYWJlbC5sZWZ0IHtcblx0XHRmbG9hdDogbGVmdDtcblx0XHR3aWR0aDogMTBlbTtcblx0XHRtYXJnaW4tbGVmdDogLTEwZW07XG5cdH1cblxuXHRpbnB1dC5tYXhsZW5ndGgge1xuXHRcdHdpZHRoOiBhdXRvO1xuXHR9XG5cblx0LnZhbGlkYXRpb24sIC5lcnJvciwgLnJlcXVpcmVkIHtcblx0XHRib3JkZXI6IDFweCBzb2xpZCAjZjAwO1xuXHRcdGJhY2tncm91bmQ6ICNmY2M7XG5cdFx0cGFkZGluZzogMC41ZW07XG5cdFx0d2lkdGg6IDUwJTtcblx0fVxuXG5cdC5maWVsZCBzcGFuLnJlYWRvbmx5IHtcblx0XHRib3JkZXI6IDFweCAjQ0NDIGRvdHRlZDtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjRjdGN0Y3O1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHdpZHRoOiA5OCU7XG5cdFx0cGFkZGluZzogM3B4O1xuXHRcdG1hcmdpbjo1cHggMDtcblx0fVxuXG5cdC5pbmRpY2F0b3IuaW5saW5lIHtcblx0XHRkaXNwbGF5OiBpbmxpbmU7XG5cdFx0bWFyZ2luLWxlZnQ6IDVweDtcblx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHR9XG5cblx0LmluZGljYXRvci5ibG9jayB7XG5cdFx0ZGlzcGxheTogaW5saW5lO1xuXHR9XG5cblx0Ly8gRW11bGF0aW5nIGxpbmsgc3R5bGluZyBmb3IgYWN0aW9ucyByZXF1aXJpbmcgbGVzc2VyIGF0dGVudGlvbiwgZS5nLiBcImNhbmNlbFwiIEZvcm1BY3Rpb25zXG5cdGJ1dHRvbi5taW5vckFjdGlvbiB7XG5cdFx0YmFja2dyb3VuZDogbm9uZTtcblx0XHRwYWRkaW5nOiAwO1xuXHRcdGJvcmRlcjogMDtcblx0XHRjb2xvcjogIzAwNzRDNjtcblx0XHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcblx0fVxuXG5cdC8qKlxuXHQgKiBNZXNzYWdlc1xuXHQgKi9cblx0Lm1lc3NhZ2Uge1xuXHRcdG1hcmdpbjogMWVtIDA7XG5cdFx0cGFkZGluZzogMC41ZW07XG5cdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0Ym9yZGVyOiAxcHggYmxhY2sgc29saWQ7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI0I5RkZCOTtcblx0XHRib3JkZXItY29sb3I6ICMwMEZGMDA7XG5cblx0XHQmLm5vdGljZSB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjRkNGRkRGO1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiAjRkY5MzAwO1xuXHRcdH1cblxuXHRcdCYud2FybmluZyB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjRkZEMkE2O1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiAjRkY5MzAwO1xuXHRcdH1cblxuXHRcdCYuYmFkIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICNGRjgwODA7XG5cdFx0XHRib3JkZXItY29sb3I6ICNGRjAwMDA7XG5cdFx0fVxuXG5cdFx0Ji5yZXF1aXJlZCwgJi52YWxpZGF0aW9uIHtcblx0XHRcdGRpc3BsYXk6YmxvY2s7XG5cdFx0XHRtYXJnaW4tdG9wOjVweDtcblx0XHRcdGNvbG9yOiNGRjkzMDA7XG5cdFx0XHR3aWR0aDoyNDBweDtcblx0XHRcdGJvcmRlci1jb2xvcjogI0ZGOTMwMDtcblx0XHR9XG5cblx0XHQmLnZhbGlkYXRpb24ge1xuXHRcdFx0Y29sb3I6I0ZGNDA0MDtcblx0XHRcdHdpZHRoOjI0MHB4O1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiAjRkY0MDQwO1xuXHRcdH1cblx0fVxufVxuXG4udHlwb2dyYXBoeSAuc3MtdGFic2V0IHVsIHtcblx0bWFyZ2luOiAwO1xufVxuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9 */
diff --git a/client/dist/styles/GridField_print.css b/client/dist/styles/GridField_print.css
deleted file mode 100644
index 7069ded81..000000000
--- a/client/dist/styles/GridField_print.css
+++ /dev/null
@@ -1,3 +0,0 @@
-h3{font-family:Arial, sans-serif}table{border-collapse:collapse;font-family:Arial, sans-serif;color:#333;font-size:12pt}table th{border-bottom:2px solid #333;padding:5px 10px;font-weight:bold;text-align:left}table th:first-child{padding-left:0px}table td{border-top:1px solid #aaa;border-bottom:1px solid #aaa;text-align:left;padding:5px 10px}table td:first-child{padding-left:0px}
-
-/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxlZ2FjeS9HcmlkRmllbGRfcHJpbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxHQUNDLDZCQUErQixDQUMvQixNQUVBLHlCQUNBLDhCQUNBLFdBQ0EsY0FBZ0IsQ0FKakIsU0FTRSw2QkFDQSxpQkFDQSxpQkFDQSxlQUFpQixDQVpuQixxQkFjRyxnQkFBa0IsQ0FkckIsU0FtQkUsMEJBQ0EsNkJBQ0EsZ0JBQ0EsZ0JBQWtCLENBdEJwQixxQkF3QkcsZ0JBQWtCLENBQ2xCIiwiZmlsZSI6ImxlZ2FjeS9HcmlkRmllbGRfcHJpbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiaDMge1xuXHRmb250LWZhbWlseTogQXJpYWwsIHNhbnMtc2VyaWY7XG59XG50YWJsZSB7XG5cdGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG5cdGZvbnQtZmFtaWx5OiBBcmlhbCwgc2Fucy1zZXJpZjtcblx0Y29sb3I6ICMzMzM7XG5cdGZvbnQtc2l6ZTogMTJwdDtcblx0dHJ7XG5cblx0fVxuXHR0aHtcblx0XHRib3JkZXItYm90dG9tOiAycHggc29saWQgIzMzMztcblx0XHRwYWRkaW5nOiA1cHggMTBweDtcblx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRcdCY6Zmlyc3QtY2hpbGR7XG5cdFx0XHRwYWRkaW5nLWxlZnQ6IDBweDtcblx0XHR9XG5cblx0fVxuXHR0ZHtcblx0XHRib3JkZXItdG9wOiAxcHggc29saWQgI2FhYTtcblx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgI2FhYTtcblx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRcdHBhZGRpbmc6IDVweCAxMHB4O1xuXHRcdCY6Zmlyc3QtY2hpbGR7XG5cdFx0XHRwYWRkaW5nLWxlZnQ6IDBweDtcblx0XHR9XG5cdH1cbn1cbiJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ== */
diff --git a/client/dist/styles/Security_login.css b/client/dist/styles/Security_login.css
deleted file mode 100755
index 59f48b643..000000000
--- a/client/dist/styles/Security_login.css
+++ /dev/null
@@ -1,3 +0,0 @@
-#Remember{margin:0.5em 0 0.5em 11em !important}p#Remember label{display:inline-block;margin:0}#Remember input{float:left;margin:0 5px 0 0}#MemberLoginForm_LoginForm .btn-toolbar{padding-left:12em}#ForgotPassword{margin-top:1em}
-
-/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxlZ2FjeS9TZWN1cml0eV9sb2dpbi5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFVBQ0Msb0NBQXNDLENBQ3RDLGlCQUVDLHFCQUNBLFFBQVUsQ0FDVixnQkFFQSxXQUNBLGdCQUFrQixDQUNsQix3Q0FFRCxpQkFBbUIsQ0FDbkIsZ0JBRUEsY0FBZ0IsQ0FDaEIiLCJmaWxlIjoibGVnYWN5L1NlY3VyaXR5X2xvZ2luLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIiNSZW1lbWJlciB7XG5cdG1hcmdpbjogMC41ZW0gMCAwLjVlbSAxMWVtICFpbXBvcnRhbnQ7XG59XG5cdHAjUmVtZW1iZXIgbGFiZWwge1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRtYXJnaW46IDA7XG5cdH1cblx0I1JlbWVtYmVyIGlucHV0IHtcblx0XHRmbG9hdDogbGVmdDtcblx0XHRtYXJnaW46IDAgNXB4IDAgMDtcblx0fVxuI01lbWJlckxvZ2luRm9ybV9Mb2dpbkZvcm0gLmJ0bi10b29sYmFyIHtcblx0cGFkZGluZy1sZWZ0OiAxMmVtO1xufVxuI0ZvcmdvdFBhc3N3b3JkIHtcblx0bWFyZ2luLXRvcDogMWVtO1xufVxuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9 */
diff --git a/client/dist/styles/UploadField.css b/client/dist/styles/UploadField.css
deleted file mode 100644
index 5adb23858..000000000
--- a/client/dist/styles/UploadField.css
+++ /dev/null
@@ -1,3 +0,0 @@
-.ss-uploadfield.form-group::after,.ss-insert-media.form-group::after{visibility:hidden}.ss-uploadfield .clear{clear:both}.ss-uploadfield .description{margin-left:0}.ss-uploadfield .middleColumn{min-width:510px;max-width:696px;width:100%;margin-left:0;clear:both;padding:0;background:#fff;border:1px solid #b3b3b3;border-radius:4px;background-image:-webkit-gradient(linear, left top, left bottom, from(#efefef), color-stop(10%, #fff), color-stop(90%, #fff), color-stop(90%, #efefef));background-image:-webkit-linear-gradient(#efefef, #fff 10%, #fff 90%, #efefef);background-image:-o-linear-gradient(#efefef, #fff 10%, #fff 90%, #efefef);background-image:linear-gradient(#efefef, #fff 10%, #fff 90%, #efefef)}.ss-uploadfield .ss-uploadfield-item{margin:0;padding:15px;overflow:auto}.ss-uploadfield .ss-uploadfield-item .ss-uploadfield-item-preview{height:60px;line-height:60px;width:80px;text-align:center;font-weight:bold;float:left;overflow:hidden;background:#f0f2f4}.ss-uploadfield .ss-uploadfield-item .ss-uploadfield-item-preview span{height:60px;width:80px;display:table-cell;vertical-align:middle}.ss-uploadfield .ss-uploadfield-item .ss-uploadfield-item-preview.ss-uploadfield-dropzone{-webkit-box-shadow:0 0 4px 0 gray inset;box-shadow:0 0 4px 0 gray inset;border:2px dashed gray;background:#D2D5D8;margin-right:15px;position:relative}.ss-uploadfield .ss-uploadfield-item .ss-uploadfield-item-preview.ss-uploadfield-dropzone::after{background:none}.ss-uploadfield .ss-uploadfield-item .ss-uploadfield-item-preview img{display:block;margin:0 auto;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAJElEQVQYV2O8dOnSfwYkoKenx4jMZ6SDAmT7QGx0K1EcRBsFAJfOHd3Le79RAAAAAElFTkSuQmCC) repeat}.ss-uploadfield .ss-uploadfield-item .ss-uploadfield-item-preview img[src$="_32.png"]{background:transparent}.ss-uploadfield .ss-uploadfield-item .ss-uploadfield-item-info{margin-left:95px}.ss-uploadfield .ss-uploadfield-item .ss-uploadfield-item-info .ss-uploadfield-item-name{display:block;line-height:13px;height:26px;margin:0;text-align:left}.ss-uploadfield .ss-uploadfield-item .ss-uploadfield-item-info .ss-uploadfield-item-name .name{max-width:240px;font-weight:bold;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;-o-text-overflow:ellipsis;display:inline;float:left}.ss-uploadfield .ss-uploadfield-item .ss-uploadfield-item-info .ss-uploadfield-item-name .size{color:#a9b2b9;padding:0 0 0 5px;display:inline;float:left}.ss-uploadfield .ss-uploadfield-item .ss-uploadfield-item-info .ss-uploadfield-item-name .ss-uploadfield-item-status{float:right;padding:0 0 0 5px;text-align:right;max-width:75%}.ss-uploadfield .ss-uploadfield-item .ss-uploadfield-item-info .ss-uploadfield-item-name .ss-uploadfield-item-status.ui-state-error-text{color:red;font-weight:bold;width:150px}.ss-uploadfield .ss-uploadfield-item .ss-uploadfield-item-info .ss-uploadfield-item-name .ss-uploadfield-item-status.ui-state-warning-text{color:#b7a403}.ss-uploadfield .ss-uploadfield-item .ss-uploadfield-item-info .ss-uploadfield-item-name .ss-uploadfield-item-status.ui-state-success-text{color:#1F9433}.ss-uploadfield .ss-uploadfield-item.ui-state-error .ss-uploadfield-item-preview{width:auto;height:auto;margin-right:15px}.ss-uploadfield .ss-uploadfield-item.ui-state-error .ss-uploadfield-item-info{margin-left:0}.ss-uploadfield .ss-uploadfield-item.ui-state-error .ss-uploadfield-item-info .ss-uploadfield-item-name{float:left;width:70%;height:auto}.ss-uploadfield .ss-uploadfield-item.ui-state-error .ss-uploadfield-item-info .ss-uploadfield-item-name .name{float:left;width:100%;margin-bottom:5px}.ss-uploadfield .ss-uploadfield-item.ui-state-error .ss-uploadfield-item-info .ss-uploadfield-item-name .ss-uploadfield-item-status{float:left;width:100%;padding:0;text-align:left}.ss-uploadfield .ss-uploadfield-item.ui-state-error .ss-uploadfield-item-info .ss-uploadfield-item-actions{float:right;width:5%;min-height:0;margin:0}.ss-uploadfield .ss-uploadfield-item.ui-state-error .ss-uploadfield-item-info .ss-uploadfield-item-actions .ss-uploadfield-item-cancel{position:relative;top:auto}.ss-uploadfield .ss-uploadfield-files{margin:0;padding:0;overflow:auto;position:relative}.ss-uploadfield .ss-uploadfield-files .ss-uploadfield-item,.ss-uploadfield .ss-uploadfield-files .ss-uploadfield-item.ui-state-error{border:0;border-bottom:1px solid #b3b3b3;background:none;color:#66727d}.ss-uploadfield .ss-uploadfield-files .ss-uploadfield-item:last-child,.ss-uploadfield .ss-uploadfield-files .ss-uploadfield-item.ui-state-error:last-child{border-bottom:0}.ss-uploadfield .ss-uploadfield-files .ss-uploadfield-item-actions{min-height:28px;overflow:hidden;margin:6px 0 -6px 0;position:relative}.ss-uploadfield .ss-uploadfield-files .ss-uploadfield-item-progress{position:absolute;left:0;right:42px;width:auto;margin:11px 0 0;height:15px}.ss-uploadfield .ss-uploadfield-files .ss-uploadfield-item-progress div{border-radius:25px;height:13px;padding:0;margin:0;overflow:hidden}.ss-uploadfield .ss-uploadfield-files .ss-uploadfield-item-progressbar{border:1px solid gray;background-color:#92a6b3;background-image:-webkit-gradient(linear, left top, left bottom, from(#92a6b3), color-stop(11%, #90aab8), color-stop(22%, #96b1bf), color-stop(33%, #9eb4c1), color-stop(44%, #a7bac7), to(#c1d5dc));background-image:-webkit-linear-gradient(top, #92a6b3 0%, #90aab8 11%, #96b1bf 22%, #9eb4c1 33%, #a7bac7 44%, #c1d5dc 100%);background-image:-o-linear-gradient(top, #92a6b3 0%, #90aab8 11%, #96b1bf 22%, #9eb4c1 33%, #a7bac7 44%, #c1d5dc 100%);background-image:linear-gradient(to bottom, #92a6b3 0%, #90aab8 11%, #96b1bf 22%, #9eb4c1 33%, #a7bac7 44%, #c1d5dc 100%)}.ss-uploadfield .ss-uploadfield-files .ss-uploadfield-item-progressbarvalue{border:0;width:0%;background:#60b3dd url(../images/progressbar_blue.gif) repeat-x left center}.ss-uploadfield .ss-uploadfield-files .ss-uploadfield-item-cancel,.ss-uploadfield .ss-uploadfield-files .ss-uploadfield-item-start{position:absolute;top:10px;right:0}.ss-uploadfield .ss-uploadfield-files .ss-uploadfield-item-cancel button,.ss-uploadfield .ss-uploadfield-files .ss-uploadfield-item-start button{display:block;overflow:hidden;text-indent:-9999px;padding:0;margin:0;border:0;width:16px;height:16px;cursor:pointer;-webkit-box-shadow:none;box-shadow:none;position:relative}.ss-uploadfield .ss-uploadfield-files .ss-uploadfield-item-cancel button span,.ss-uploadfield .ss-uploadfield-files .ss-uploadfield-item-start button span{position:absolute;left:0;top:0;margin:0}.ss-uploadfield .ss-uploadfield-files .ss-uploadfield-item-cancel button span.ui-button-text,.ss-uploadfield .ss-uploadfield-files .ss-uploadfield-item-start button span.ui-button-text{display:none}.ss-uploadfield .ss-uploadfield-files .ss-uploadfield-item-start{right:20px}.ss-uploadfield .ss-uploadfield-files .ss-uploadfield-item-editform{height:0;overflow:hidden;clear:both}.ss-uploadfield .ss-uploadfield-files .ss-uploadfield-item-editform.loading{width:100%;height:22px;margin:15px 0 0;background:url(../admin/client/dist/images/spinner.gif) no-repeat 50% 0}.ss-uploadfield .ss-uploadfield-files .ss-uploadfield-item-editform.loading iframe{padding-top:0;margin-top:22px;border:none}.ss-uploadfield .ss-uploadfield-files .ss-uploadfield-item-editform iframe{margin-top:8px;padding-top:8px;border-top:1px solid #D2D5D8;width:100%}.ss-uploadfield .ss-uploadfield-addfile.borderTop{border-top:1px solid #b3b3b3}.ss-upload .clear{clear:both}.ss-upload .ss-uploadfield-fromcomputer input{position:absolute;top:0;margin:0;filter:alpha(opacity=0);-webkit-transform:translate(-200%, 0);-ms-transform:translate(-200%, 0);-o-transform:translate(-200%, 0);transform:translate(-200%, 0);direction:ltr;cursor:pointer;left:0;width:100%;height:100%}.ss-upload .loader{height:94px;background:transparent url(../admin/client/dist/images/spinner.gif) no-repeat 50% 50%}@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2 / 1), only screen and (min-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx){.ss-uploadfield .ss-uploadfield-files .ss-uploadfield-item-editform.loading{background-image:url(../admin/client/dist/images/spinner@2x.gif);-webkit-background-size:43px 43px;background-size:43px 43px}.ss-upload .loader{background-image:url(../admin/client/dist/images/spinner@2x.gif);-webkit-background-size:43px 43px;background-size:43px 43px}}
-
-/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxlZ2FjeS9VcGxvYWRGaWVsZC5zY3NzIiwiLi4vLi4vLi4vYWRtaW4vY2xpZW50L3NyYy9zdHlsZXMvbGVnYWN5L19taXhpbnMuc2NzcyIsIi4uLy4uLy4uL2FkbWluL2NsaWVudC9zcmMvc3R5bGVzL2xlZ2FjeS90aGVtZXMvX2RlZmF1bHQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxxRUFHRSxpQkFBbUIsQ0FDbkIsdUJBTUEsVUFBWSxDQUhkLDZCQU9FLGFBQWUsQ0FQakIsOEJBYUUsZ0JBQ0EsZ0JBQ0EsV0FDQSxjQUNBLFdBQ0EsVUFDQSxnQkFDQSx5QkFDQSxrQkFDQSx3SkFBQSxBQUFpQywrRUFBakMsQUFBaUMsMEVBQWpDLEFBQWlDLHNFQUFBLENBdEJuQyxxQ0F5QkUsU0FDQSxhQUNBLGFBQWUsQ0EzQmpCLGtFQThCRyxZQUNBLGlCQUNBLFdBQ0Esa0JBQ0EsaUJBQ0EsV0FDQSxnQkFDRyxrQkFBb0IsQ0FyQzFCLHVFQXVDUSxZQUNBLFdBQ0EsbUJBQ0EscUJBQXVCLENBMUMvQiwwRkE4Q0ksd0NBQUEsQUFDQSxnQ0FBQSx1QkFDQSxtQkFDQSxrQkFDQSxpQkFBbUIsQ0FsRHZCLGlHQXFESyxlQUFpQixDQXJEdEIsc0VBeURRLGNBQ0EsY0FDSix5S0FBMEssQ0EzRDlLLHNGQThEVSxzQkFBd0IsQ0E5RGxDLCtEQW1FRyxnQkFBa0IsQ0FuRXJCLHlGQXNFSSxjQUNBLGlCQUNBLFlBQ0EsU0FDQSxlQUFpQixDQTFFckIsK0ZBNEVLLGdCQUNBLGlCQ3pFSixnQkFDQSxtQkFDQSx1QkFDQSwwQkR3RUksZUFDQSxVQUFXLENBaEZoQiwrRkFtRkssY0FDQSxrQkFDQSxlQUNBLFVBQVcsQ0F0RmhCLHFIQXlGSyxZQUNBLGtCQUNBLGlCQUNBLGFBQWUsQ0E1RnBCLHlJQStGTSxVQUNBLGlCQUNBLFdBQVksQ0FqR2xCLDJJQXFHTSxhQUFhLENBckduQiwySUF5R00sYUUxQzZCLENGL0RuQyxpRkFtSEksV0FDQSxZQUNBLGlCQUFtQixDQXJIdkIsOEVBeUhJLGFBQWUsQ0F6SG5CLHdHQTRISyxXQUNBLFVBQ0EsV0FBYSxDQTlIbEIsOEdBa0lNLFdBQ0EsV0FDQSxpQkFBbUIsQ0FwSXpCLG9JQXdJTSxXQUNBLFdBQ0EsVUFDQSxlQUFpQixDQTNJdkIsMkdBZ0pLLFlBQ0EsU0FDQSxhQUNBLFFBQVUsQ0FuSmYsdUlBc0pNLGtCQUNBLFFBQVUsQ0F2SmhCLHNDQStKRSxTQUNBLFVBQ0EsY0FDQSxpQkFBbUIsQ0FsS3JCLHFJQXNLRyxTQUNBLGdDQUNBLGdCQUNBLGFFMUhpQixDRi9DcEIsMkpBNEtJLGVBQWlCLENBNUtyQixtRUFnTEcsZ0JBQ0EsZ0JBQ0Esb0JBQ0EsaUJBQW1CLENBbkx0QixvRUFzTEcsa0JBQ0EsT0FDQSxXQUNBLFdBQ0EsZ0JBQ0EsV0FBYSxDQTNMaEIsd0VBOExJLG1CQUNBLFlBQ0EsVUFDQSxTQUNBLGVBQWlCLENBbE1yQix1RUFzTUcsc0JBQ0EseUJBQ0EscU1BQUEsQUFBaUMsNEhBQWpDLEFBQWlDLHVIQUFqQyxBQUFpQyx5SEFBQSxDQXhNcEMsNEVBMk1HLFNBQ0EsU0FDQSwyRUFBNEUsQ0E3TS9FLG1JQWlORyxrQkFDQSxTQUNBLE9BQVMsQ0FuTlosaUpBc05JLGNBQ0EsZ0JBQ0Esb0JBQ0EsVUFDQSxTQUNBLFNBQ0EsV0FDQSxZQUNBLGVBQ0Esd0JBQUEsQUFDQSxnQkFBQSxpQkFBbUIsQ0FoT3ZCLDJKQW9PSyxrQkFDQSxPQUNBLE1BQ0EsUUFBVSxDQXZPZix5TEEwT00sWUFBYyxDQTFPcEIsaUVBZ1BHLFVBQVksQ0FoUGYsb0VBdVBHLFNBQ0EsZ0JBQ0EsVUFBWSxDQXpQZiw0RUE0UEksV0FDQSxZQUNBLGdCQUNBLHVFQUF3RSxDQS9QNUUsbUZBbVFLLGNBQWlCLGdCQUNqQixXQUFhLENBcFFsQiwyRUF5UUksZUFDQSxnQkFDQSw2QkFDQSxVQUFZLENBNVFoQixrREFrUkcsNEJBQTZCLENBQzdCLGtCQU9ELFVBQVksQ0FIZCw4Q0FRRSxrQkFDQSxNQUNBLFNBQ0Esd0JBQ0Esc0NBQUEsQUFDQSxrQ0FEQSxBQUNBLGlDQURBLEFBQ0EsOEJBQUEsY0FDQSxlQUNBLE9BQ0EsV0FDQSxXQUFhLENBakJmLG1CQXFCRSxZQUNBLHFGQUFzRixDQUN0RixtVkFlRCw0RUFJSSxpRUFDQSxrQ0FBQSxBQUEyQix5QkFBQSxDQUMzQixtQkFPRixpRUFDQSxrQ0FBQSxBQUEyQix5QkFBQSxDQUMzQixDQUFBIiwiZmlsZSI6ImxlZ2FjeS9VcGxvYWRGaWVsZC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUT0RPIHdlIG5lZWQgYSBzZXBlcmF0ZWQgZmlsZSBmb3Igc3R5bGVzIHRoYXQgYXJlIHVzZWQgaW4gYm90aCBjbXMgYW5kIGZyb250IGVuZCAoc3VjaCBhcyBidXR0b25zKVxuQGltcG9ydCBcIi4uLy4uLy4uLy4uL2FkbWluL2NsaWVudC9zcmMvc3R5bGVzL2xlZ2FjeS90aGVtZXMvZGVmYXVsdC5zY3NzXCI7XG5AaW1wb3J0IFwiLi4vLi4vLi4vLi4vYWRtaW4vY2xpZW50L3NyYy9zdHlsZXMvbGVnYWN5L19taXhpbnMuc2Nzc1wiO1xuXG4uc3MtdXBsb2FkZmllbGQsXG4uc3MtaW5zZXJ0LW1lZGlhIHtcblx0Ji5mb3JtLWdyb3VwOjphZnRlciB7XG5cdFx0dmlzaWJpbGl0eTogaGlkZGVuO1xuXHR9XG59XG5cbi5zcy11cGxvYWRmaWVsZCB7XG5cblx0LmNsZWFyIHtcblx0XHRjbGVhcjogYm90aDtcblx0fVxuXG5cdC5kZXNjcmlwdGlvbiB7XG5cdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdH1cblxuXHQubWlkZGxlQ29sdW1uIHtcblx0XHQvLyBUT0RPIC5taWRkbGVDb2x1bW4gc3R5bGluZyBzaG91bGQgcHJvYmFibHkgYmUgdGhlbWUgc3BlY2lmaWMgKGVnIGNtcyB1aSB3aWxsIGxvb2sgZGlmZmVyZW50IHRoYW4gYmxhY2tjYW5keSlcblx0XHQvLyBzbyB3ZSBzaG91bGQgbW92ZSB0aGlzIHN0eWxlIGludG8gdGhlIGNtcyBhbmQgYmxhY2sgY2FuZHkgZmlsZXNcblx0XHRtaW4td2lkdGg6IDUxMHB4O1xuXHRcdG1heC13aWR0aDogJGdyaWQteCAqIDg3OyAvLyBDYXBwZWQgd2lkdGggdG8gbGluZSB1cCB3aXRoIHRleHQgZmllbGRzXG5cdFx0d2lkdGg6MTAwJTtcblx0XHRtYXJnaW4tbGVmdDowO1xuXHRcdGNsZWFyOmJvdGg7XG5cdFx0cGFkZGluZzogMDtcblx0XHRiYWNrZ3JvdW5kOiAjZmZmO1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0ZW4oJGNvbG9yLW1lZGl1bS1zZXBhcmF0b3IsIDIwJSk7XG5cdFx0Ym9yZGVyLXJhZGl1czogNHB4O1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCgjZWZlZmVmLCAjZmZmIDEwJSwgI2ZmZiA5MCUsICNlZmVmZWYpO1xuXHR9XG5cdC5zcy11cGxvYWRmaWVsZC1pdGVtIHtcblx0XHRtYXJnaW46IDA7XG5cdFx0cGFkZGluZzogMTVweDtcblx0XHRvdmVyZmxvdzogYXV0bztcblxuXHRcdC5zcy11cGxvYWRmaWVsZC1pdGVtLXByZXZpZXcge1xuXHRcdFx0aGVpZ2h0OiA2MHB4O1xuXHRcdFx0bGluZS1oZWlnaHQ6IDYwcHg7XG5cdFx0XHR3aWR0aDogODBweDtcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0XHRvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgYmFja2dyb3VuZDogI2YwZjJmNDtcbiAgICAgIHNwYW4ge1xuICAgICAgICBoZWlnaHQ6IDYwcHg7XG4gICAgICAgIHdpZHRoOiA4MHB4O1xuICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgfVxuXG5cdFx0XHQmLnNzLXVwbG9hZGZpZWxkLWRyb3B6b25lIHtcblx0XHRcdFx0Ym94LXNoYWRvdzogMCAwIDRweCAwICRjb2xvci1tZWRpdW0tc2VwYXJhdG9yIGluc2V0O1xuXHRcdFx0XHRib3JkZXI6IDJweCBkYXNoZWQgJGNvbG9yLW1lZGl1bS1zZXBhcmF0b3I7XG5cdFx0XHRcdGJhY2tncm91bmQ6ICRjb2xvci1saWdodC1zZXBhcmF0b3I7XG5cdFx0XHRcdG1hcmdpbi1yaWdodDogMTVweDtcblx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdFx0XHRcdCY6OmFmdGVyIHtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kOiBub25lO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRpbWcge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG5cdFx0XHRcdGJhY2tncm91bmQ6IHVybChkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFnQUFBQUlDQVlBQUFERUQ3NkxBQUFBSkVsRVFWUVlWMk84ZE9uU2Z3WWtvS2VueDRqTVo2U0RBbVQ3UUd4MEsxRWNSQnNGQUpmT0hkM0xlNzlSQUFBQUFFbEZUa1N1UW1DQykgcmVwZWF0O1xuICAgICAgICAvLyBObyBjaGVja2VyIGJhY2tncm91bmQgZm9yIGljb25zXG4gICAgICAgICZbc3JjJD1cIl8zMi5wbmdcIl0ge1xuICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cdFx0XHR9XG5cdFx0fVxuXHRcdC5zcy11cGxvYWRmaWVsZC1pdGVtLWluZm8ge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IDk1cHg7XG5cblx0XHRcdC5zcy11cGxvYWRmaWVsZC1pdGVtLW5hbWUge1xuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0bGluZS1oZWlnaHQ6IDEzcHg7XG5cdFx0XHRcdGhlaWdodDogMjZweDtcblx0XHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRcdFx0XHQubmFtZSB7XG5cdFx0XHRcdFx0bWF4LXdpZHRoOiAyNDBweDtcblx0XHRcdFx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRcdFx0XHRAaW5jbHVkZSBoaWRlLXRleHQtb3ZlcmZsb3c7XG5cdFx0XHRcdFx0ZGlzcGxheTppbmxpbmU7XG5cdFx0XHRcdFx0ZmxvYXQ6bGVmdDtcblx0XHRcdFx0fVxuXHRcdFx0XHQuc2l6ZSB7XG5cdFx0XHRcdFx0Y29sb3I6IGxpZ2h0ZW4oJGNvbG9yLXRleHQsIDI1JSk7XG5cdFx0XHRcdFx0cGFkZGluZzogMCAwIDAgNXB4O1xuXHRcdFx0XHRcdGRpc3BsYXk6aW5saW5lO1xuXHRcdFx0XHRcdGZsb2F0OmxlZnQ7XG5cdFx0XHRcdH1cblx0XHRcdFx0LnNzLXVwbG9hZGZpZWxkLWl0ZW0tc3RhdHVzIHtcblx0XHRcdFx0XHRmbG9hdDogcmlnaHQ7XG5cdFx0XHRcdFx0cGFkZGluZzogMCAwIDAgNXB4O1xuXHRcdFx0XHRcdHRleHQtYWxpZ246cmlnaHQ7XG5cdFx0XHRcdFx0bWF4LXdpZHRoOiA3NSU7XG5cblx0XHRcdFx0XHQmLnVpLXN0YXRlLWVycm9yLXRleHQge1xuXHRcdFx0XHRcdFx0Y29sb3I6ICRjb2xvci1idXR0b24tZGVzdHJ1Y3RpdmU7XG5cdFx0XHRcdFx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRcdFx0XHRcdHdpZHRoOjE1MHB4OyAvL0FsbG9jYXRlcyB0aGUgc3RhdHVzIG1lc3NhZ2UgZW5vdWdoIHJvb20gdG8gYmUgdXNlZnVsLiBXaWxsIHdyYXAgaWYgaXQgaXMgbG9uZ2VyXG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Ji51aS1zdGF0ZS13YXJuaW5nLXRleHQge1xuXHRcdFx0XHRcdFx0Y29sb3I6IGRhcmtlbigkY29sb3Itd2FybmluZywgMTAlKTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHQmLnVpLXN0YXRlLXN1Y2Nlc3MtdGV4dCB7XG5cdFx0XHRcdFx0XHRjb2xvcjogJGNvbG9yLWJ1dHRvbi1jb25zdHJ1Y3RpdmU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly9VcGxvYWQvVmFsaWRhdGlvbiBlcnJvclxuXHRcdCYudWktc3RhdGUtZXJyb3Jcblx0XHR7XG5cdFx0XHQuc3MtdXBsb2FkZmllbGQtaXRlbS1wcmV2aWV3IHtcblx0XHRcdFx0d2lkdGg6IGF1dG87XG5cdFx0XHRcdGhlaWdodDogYXV0bztcblx0XHRcdFx0bWFyZ2luLXJpZ2h0OiAxNXB4O1xuXHRcdFx0fVxuXG5cdFx0XHQuc3MtdXBsb2FkZmllbGQtaXRlbS1pbmZvIHtcblx0XHRcdFx0bWFyZ2luLWxlZnQ6IDA7XG5cblx0XHRcdFx0LnNzLXVwbG9hZGZpZWxkLWl0ZW0tbmFtZSB7XG5cdFx0XHRcdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0XHRcdFx0d2lkdGg6IDcwJTtcblx0XHRcdFx0XHRoZWlnaHQ6IGF1dG87XG5cblx0XHRcdFx0XHQubmFtZVxuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdGZsb2F0OiBsZWZ0O1xuXHRcdFx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdFx0XHRtYXJnaW4tYm90dG9tOiA1cHg7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0LnNzLXVwbG9hZGZpZWxkLWl0ZW0tc3RhdHVzIHtcblx0XHRcdFx0XHRcdGZsb2F0OiBsZWZ0O1xuXHRcdFx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0XHRcdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQuc3MtdXBsb2FkZmllbGQtaXRlbS1hY3Rpb25zIHtcblx0XHRcdFx0XHRmbG9hdDogcmlnaHQ7XG5cdFx0XHRcdFx0d2lkdGg6IDUlO1xuXHRcdFx0XHRcdG1pbi1oZWlnaHQ6IDA7XG5cdFx0XHRcdFx0bWFyZ2luOiAwO1xuXG5cdFx0XHRcdFx0LnNzLXVwbG9hZGZpZWxkLWl0ZW0tY2FuY2VsIHtcblx0XHRcdFx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdFx0XHRcdHRvcDogYXV0bztcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQuc3MtdXBsb2FkZmllbGQtZmlsZXMge1xuXHRcdG1hcmdpbjogMDtcblx0XHRwYWRkaW5nOiAwO1xuXHRcdG92ZXJmbG93OiBhdXRvO1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHRcdC5zcy11cGxvYWRmaWVsZC1pdGVtLFxuXHRcdC5zcy11cGxvYWRmaWVsZC1pdGVtLnVpLXN0YXRlLWVycm9yIHtcblx0XHRcdGJvcmRlcjogMDtcblx0XHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBsaWdodGVuKCRjb2xvci1tZWRpdW0tc2VwYXJhdG9yLCAyMCUpO1xuXHRcdFx0YmFja2dyb3VuZDogbm9uZTtcblx0XHRcdGNvbG9yOiAkY29sb3ItdGV4dDtcblxuXHRcdFx0JjpsYXN0LWNoaWxkIHtcblx0XHRcdFx0Ym9yZGVyLWJvdHRvbTogMDtcblx0XHRcdH1cblx0XHR9XG5cdFx0LnNzLXVwbG9hZGZpZWxkLWl0ZW0tYWN0aW9ucyB7XG5cdFx0XHRtaW4taGVpZ2h0OiAyOHB4O1xuXHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRcdG1hcmdpbjogNnB4IDAgLTZweCAwO1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdH1cblx0XHQuc3MtdXBsb2FkZmllbGQtaXRlbS1wcm9ncmVzcyB7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRsZWZ0OiAwO1xuXHRcdFx0cmlnaHQ6IDQycHg7XG5cdFx0XHR3aWR0aDogYXV0bztcblx0XHRcdG1hcmdpbjogMTFweCAwIDA7XG5cdFx0XHRoZWlnaHQ6IDE1cHg7XG5cblx0XHRcdGRpdiB7XG5cdFx0XHRcdGJvcmRlci1yYWRpdXM6IDI1cHg7XG5cdFx0XHRcdGhlaWdodDogMTNweDtcblx0XHRcdFx0cGFkZGluZzogMDtcblx0XHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdFx0fVxuXHRcdH1cblx0XHQuc3MtdXBsb2FkZmllbGQtaXRlbS1wcm9ncmVzc2JhciB7XG5cdFx0XHRib3JkZXI6IDFweCBzb2xpZCAkY29sb3ItbWVkaXVtLXNlcGFyYXRvcjtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICM5MmE2YjM7XG5cdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjOTJhNmIzIDAlLCM5MGFhYjggMTElLCM5NmIxYmYgMjIlLCM5ZWI0YzEgMzMlLCNhN2JhYzcgNDQlLCNjMWQ1ZGMgMTAwJSk7XG5cdFx0fVxuXHRcdC5zcy11cGxvYWRmaWVsZC1pdGVtLXByb2dyZXNzYmFydmFsdWUge1xuXHRcdFx0Ym9yZGVyOiAwO1xuXHRcdFx0d2lkdGg6IDAlO1xuXHRcdFx0YmFja2dyb3VuZDogIzYwYjNkZCB1cmwoLi4vaW1hZ2VzL3Byb2dyZXNzYmFyX2JsdWUuZ2lmKSByZXBlYXQteCBsZWZ0IGNlbnRlcjtcblx0XHR9XG5cdFx0LnNzLXVwbG9hZGZpZWxkLWl0ZW0tY2FuY2VsLFxuXHRcdC5zcy11cGxvYWRmaWVsZC1pdGVtLXN0YXJ0IHtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHRvcDogMTBweDtcblx0XHRcdHJpZ2h0OiAwO1xuXG5cdFx0XHRidXR0b24ge1xuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRcdFx0dGV4dC1pbmRlbnQ6IC05OTk5cHg7XG5cdFx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0XHRcdG1hcmdpbjogMDtcblx0XHRcdFx0Ym9yZGVyOiAwO1xuXHRcdFx0XHR3aWR0aDogMTZweDtcblx0XHRcdFx0aGVpZ2h0OiAxNnB4O1xuXHRcdFx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0XHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cdFx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdFx0Ly8gYmFja2dyb3VuZDogc3ByaXRlKCRzcHJpdGVzMTYsIGNyb3NzLWNpcmNsZSkgbm8tcmVwZWF0O1xuXG5cdFx0XHRcdHNwYW4ge1xuXHRcdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0XHRsZWZ0OiAwO1xuXHRcdFx0XHRcdHRvcDogMDtcblx0XHRcdFx0XHRtYXJnaW46IDA7XG5cblx0XHRcdFx0XHQmLnVpLWJ1dHRvbi10ZXh0IHtcblx0XHRcdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHRcdC5zcy11cGxvYWRmaWVsZC1pdGVtLXN0YXJ0IHtcblx0XHRcdHJpZ2h0OiAyMHB4O1xuXHRcdFx0YnV0dG9uIHtcblx0XHRcdFx0Ly8gYmFja2dyb3VuZDogc3ByaXRlKCRzcHJpdGVzMTYsIG5hdmlnYXRpb24pIG5vLXJlcGVhdDtcblx0XHRcdH1cblx0XHR9XG5cdFx0LnNzLXVwbG9hZGZpZWxkLWl0ZW0tZWRpdGZvcm0ge1xuXHRcdFx0LyogZG9uJ3QgdXNlIGRpc3BsYXkgbm9uZSwgZm9yIGl0IHdpbGwgYnJlYWsgalF1ZXJ5KCdpZnJhbWUnKS5jb250ZW50cygpLmhlaWdodCgpICovXG5cdFx0XHRoZWlnaHQ6IDA7XG5cdFx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdFx0Y2xlYXI6IGJvdGg7XG5cblx0XHRcdCYubG9hZGluZyB7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHRoZWlnaHQ6IDIycHg7XG5cdFx0XHRcdG1hcmdpbjogMTVweCAwIDA7XG5cdFx0XHRcdGJhY2tncm91bmQ6IHVybCguLi9hZG1pbi9jbGllbnQvZGlzdC9pbWFnZXMvc3Bpbm5lci5naWYpIG5vLXJlcGVhdCA1MCUgMDtcblxuXHRcdFx0XHRpZnJhbWUge1xuXHRcdFx0XHRcdC8qIE9sZCBJRSBuZWVkcyB0aGlzIG9yIGl0J2xsIGdpdmUgdGhlIGlmcmFtZSBhIHdoaXRlIGJhY2tncm91bmQsIGNvdmVyaW5nIHRoZSBzcGlubmVyICovXG5cdFx0XHRcdFx0cGFkZGluZy10b3A6IDA7IG1hcmdpbi10b3A6IDIycHg7XG5cdFx0XHRcdFx0Ym9yZGVyOiBub25lO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdGlmcmFtZSB7XG5cdFx0XHRcdG1hcmdpbi10b3A6ICRncmlkLXk7XG5cdFx0XHRcdHBhZGRpbmctdG9wOiAkZ3JpZC15O1xuXHRcdFx0XHRib3JkZXItdG9wOiAxcHggc29saWQgJGNvbG9yLWxpZ2h0LXNlcGFyYXRvcjtcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdC5zcy11cGxvYWRmaWVsZC1hZGRmaWxlIHtcblx0XHQmLmJvcmRlclRvcCB7XG5cdFx0XHRib3JkZXItdG9wOiAxcHggc29saWQgbGlnaHRlbigkY29sb3ItbWVkaXVtLXNlcGFyYXRvciwgMjAlKTtcblx0XHR9XG5cdH1cbn1cblxuLnNzLXVwbG9hZCB7XG5cblx0LmNsZWFyIHtcblx0XHRjbGVhcjogYm90aDtcblx0fVxuXG5cdC5zcy11cGxvYWRmaWVsZC1mcm9tY29tcHV0ZXIgaW5wdXQge1xuXHRcdC8vIHNpbmNlIHdlIGNhbid0IHJlYWxseSBzdHlsZSB0aGUgZmlsZSBpbnB1dCwgd2UgdXNlIHRoaXMgaGFjayB0byBtYWtlIGl0IGFzIGJpZyBhcyB0aGUgYnV0dG9uIGFuZCBoaWRlIGl0XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHRvcDogMDtcblx0XHRtYXJnaW46IDA7XG5cdFx0ZmlsdGVyOiBhbHBoYShvcGFjaXR5ID0gMCk7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUoLTIwMCUsIDApO1xuXHRcdGRpcmVjdGlvbjogbHRyO1xuXHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHRsZWZ0OiAwO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGhlaWdodDogMTAwJTtcblx0fVxuXG5cdC5sb2FkZXIge1xuXHRcdGhlaWdodDogOTRweDsgLy8gQXBwcm94bWlhdGVseSBtYXRjaGVzIHRoZSBoZWlnaHQgb2YgdGhlIGZpZWxkIG9uY2UgYSBmaWxlIGlzIGF0dGFjaGVkLCBhdm9pZHMgYSAnanVtcCcgaW4gc2l6ZVxuXHRcdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50IHVybCguLi9hZG1pbi9jbGllbnQvZGlzdC9pbWFnZXMvc3Bpbm5lci5naWYpIG5vLXJlcGVhdCA1MCUgNTAlO1xuXHR9XG59XG5cbi8qKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBcIkAyeFwiIG1lZGlhIHF1ZXJ5XG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbkBtZWRpYVxuXHRvbmx5IHNjcmVlbiBhbmQgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksXG5cdG9ubHkgc2NyZWVuIGFuZCAoICAgbWluLS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSxcblx0b25seSBzY3JlZW4gYW5kICggICAgIC1vLW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIvMSksXG5cdG9ubHkgc2NyZWVuIGFuZCAoICAgICAgICBtaW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSxcblx0b25seSBzY3JlZW4gYW5kICggICAgICAgICAgICAgICAgbWluLXJlc29sdXRpb246IDE5MmRwaSksXG5cdG9ubHkgc2NyZWVuIGFuZCAoICAgICAgICAgICAgICAgIG1pbi1yZXNvbHV0aW9uOiAyZHBweCkge1xuXG5cdC5zcy11cGxvYWRmaWVsZCB7XG5cdFx0LnNzLXVwbG9hZGZpZWxkLWZpbGVzIHtcblx0XHRcdC5zcy11cGxvYWRmaWVsZC1pdGVtLWVkaXRmb3JtIHtcblx0XHRcdFx0Ji5sb2FkaW5nIHtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vYWRtaW4vY2xpZW50L2Rpc3QvaW1hZ2VzL3NwaW5uZXJAMnguZ2lmKTtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLXNpemU6IDQzcHggNDNweDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC5zcy11cGxvYWQge1xuXHRcdC5sb2FkZXIge1xuXHRcdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2FkbWluL2NsaWVudC9kaXN0L2ltYWdlcy9zcGlubmVyQDJ4LmdpZik7XG5cdFx0XHRiYWNrZ3JvdW5kLXNpemU6IDQzcHggNDNweDtcblx0XHR9XG5cdH1cblxufVxuIiwiLy8qKlxuLy8gKiBUaGlzIGZpbGUgY29udGFpbnMgZ2VuZXJpYyBtaXhpbnMgd2hpY2ggd2UgdXNlIHRocm91Z2hvdXRcbi8vICogdGhlIGFkbWluIHBhbmVscy5cbi8vICpcbi8vICogTWl4aW5zIHNob3VsZCBiZSBzdG9yZWQgaGVyZSByYXRoZXIgdGhhbiBpbmRpdmlkdWFsIGZpbGVzXG4vLyAqIHNvIHRoYXQgd2UgY2FuIGtlZXAuXG4vLyAqL1xuXG4vLyoqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vICogSGlkZXMgdGhlIG92ZXJmbG93aW5nIHRleHQgZnJvbSBhIGNvbnRhaW5lclxuLy8gKlxuLy8gKiBOb3RlOiB5b3UgbXVzdCBkZWZpbmUgYSB3aWR0aCBvbiB0aGUgZWxlbWVudCB3aXRoIHRoaXNcbi8vICogb3ZlcmZsb3cuXG4vLyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5AbWl4aW4gaGlkZS10ZXh0LW92ZXJmbG93IHtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cdC1vLXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuXG5AbWl4aW4gYm94LXNoYWRvdy1ub25le1xuXHQtbW96LWJveC1zaGFkb3c6IG5vbmU7XG5cdC13ZWJraXQtYm94LXNoYWRvdzogbm9uZTtcbiAgICBib3gtc2hhZG93OiBub25lO1xufVxuXG5cbi8vKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vL0NsZWFyZml4IG1peGluIGNsZWFycyB0aGUgZmxvYXQgb2YgaXQncyBwYXJlbnQgZWxlbWVudFxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKiovXG5AbWl4aW4gY2xlYXJmaXh7XG5cdCY6YWZ0ZXJ7XG5cdFx0Y29udGVudDogXCIuXCI7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0aGVpZ2h0OiAwO1xuXHRcdGNsZWFyOiBib3RoO1xuXHRcdHZpc2liaWxpdHk6IGhpZGRlbjtcblx0fVxuXHQqOmZpcnN0LWNoaWxkICZ7IHpvb206MTt9XG59XG5cblxuXG4vLyoqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vICogQ2xlYXIgdGhlIHByb3BlcnRpZXMgb2Ygc3ViIGZvcm0gZmllbGRzLlxuLy8gKlxuLy8gKiBPZnRlbiBuZWVkZWQgZm9yIG5lc3RlZCBmb3JtIGZpZWxkcyBhbmRcbi8vICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbkBtaXhpbiBjbGVhci1mb3JtLWZpZWxkLXN0eWxlcyB7XG5cdC5maWVsZCB7XG5cdFx0cGFkZGluZzogMDtcblx0XHRib3JkZXI6IDA7XG5cdH1cblxuXHRsYWJlbCB7XG5cdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0d2lkdGg6IGF1dG87XG5cblx0XHQmLmxlZnQge1xuXHRcdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0XHRkaXNwbGF5OiBpbmhlcml0O1xuXHRcdFx0d2lkdGg6IGF1dG87XG5cdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0bGluZS1oZWlnaHQ6IGluaGVyaXQ7XG5cdFx0fVxuXHR9XG5cblx0Lm1pZGRsZUNvbHVtbiB7XG5cdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdH1cblxuXHRpbnB1dC50ZXh0LFxuXHR0ZXh0YXJlYSxcblx0c2VsZWN0LFxuXHQuVHJlZURyb3Bkb3duRmllbGQge1xuXHRcdHdpZHRoOiBhdXRvO1xuXHRcdG1heC13aWR0aDogYXV0bztcblx0fVxufVxuXG4vLyoqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vICogRG91YmxlIHRvbmUgYm9yZGVyc1xuLy8gKlxuLy8gKiBodHRwOi8vZGF2ZXJ1cGVydC5jb20vMjAxMS8wNi90d28tdG9uZS1ib3JkZXJzLXdpdGgtY3NzMy9cbi8vICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbkBtaXhpbiBkb3VibGVib3JkZXIoJHNpZGUsICRpbm5lckNvbG9yLCAkb3V0ZXJDb2xvcikge1xuICAgICRzaGFkb3c6IFwiMCAwIDBcIjtcbiAgICBib3JkZXItI3skc2lkZX06IDFweCBzb2xpZCAkaW5uZXJDb2xvcjtcbiAgICBAaWYgKCRzaWRlID09IFwidG9wXCIpIHsgJHNoYWRvdzogMCAtMXB4IDA7IH1cbiAgICBAaWYgKCRzaWRlID09IFwicmlnaHRcIikgeyAkc2hhZG93OiAxcHggMCAwOyB9XG4gICAgQGlmICgkc2lkZSA9PSBcImJvdHRvbVwiKSB7ICRzaGFkb3c6IDAgMXB4IDA7IH1cbiAgICBAaWYgKCRzaWRlID09IFwibGVmdFwiKSB7ICRzaGFkb3c6IC0xcHggMCAwOyB9XG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiAkc2hhZG93ICRvdXRlckNvbG9yO1xuICAgIC1tb3otYm94LXNoYWRvdzogJHNoYWRvdyAkb3V0ZXJDb2xvcjtcbiAgICAtby1ib3gtc2hhZG93OiAkc2hhZG93ICRvdXRlckNvbG9yO1xuICAgIGJveC1zaGFkb3c6ICRzaGFkb3cgJG91dGVyQ29sb3I7XG59XG5cblxuLypNaXhpbiB1c2VkIHRvIGdlbmVyYXRlIHNsaWdodGx5IHNtYWxsZXIgdGV4dCBhbmQgZm9ybXNcblVzZWQgaW4gc2lkZSBwYW5lbHMgYW5kIGFjdGlvbiB0YWJzXG4qL1xuQG1peGluIHRpZ2h0U3BhY2luZ3tcblx0aDMsaDQsaDUge1xuXHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdGxpbmUtaGVpZ2h0OiAkZ3JpZC15ICogMjtcblx0fVxuXHRoMyB7XG5cdFx0Zm9udC1zaXplOiAkZm9udC1zaXplLXJvb3Q7XG5cdH1cblxuXHRoNCB7XG5cdFx0Zm9udC1zaXplOiAkZm9udC1zaXplLXJvb3QgLTE7XG5cdFx0bWFyZ2luOiA1cHggMDtcblx0fVxuXG5cdC51aS13aWRnZXQtY29udGVudCB7XG5cdFx0YmFja2dyb3VuZDogbm9uZTtcblx0fVxuXG5cdC5maWVsZCB7XG5cdFx0Lypcblx0XHQgKiBGaWVsZHMgYXJlIG1vcmUgY29tcHJlc3NlZCBpbiBzb21lIGFyZWFzIGNvbXBhcmVkIHRvIHRoZVxuXHRcdCAqIG1haW4gY29udGVudCBlZGl0aW5nIHdpbmRvdyBzbyB0aGUgYmVsb3cgYWx0ZXJzIHRoZSBpbnRlcm5hbFxuXHRcdCAqIHNwYWNpbmcgb2YgdGhlIGZpZWxkcyBzbyB3ZSBjYW4gbW92ZSB0aGF0IHNwYWNpbmcgdG8gYmV0d2VlblxuXHRcdCAqIHRoZSBmb3JtIGZpZWxkcyByYXRoZXIgdGhhbiBwYWRkaW5nXG5cdFx0ICovXG5cdFx0Ym9yZGVyLWJvdHRvbTpub25lO1xuXHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cdFx0bGFiZWwge1xuXHRcdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0XHR3aWR0aDogYXV0bztcblx0XHRcdGZvbnQtc2l6ZTogMTJweDtcblx0XHRcdHBhZGRpbmc6IDAgJGdyaWQteCA0cHggMDtcblx0XHRcdCYuZXh0cmEtZGV0YWlsc3tcblx0XHRcdFx0b3ZlcmZsb3c6aGlkZGVuO1xuXHRcdFx0XHRtYXJnaW4tdG9wOjEwcHg7XG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHRjb2xvcjogbGlnaHRlbigkY29sb3ItdGV4dCwgMzUlKTtcblx0XHRcdFx0Zm9udC1zdHlsZTppdGFsaWM7XG5cdFx0XHRcdGZvbnQtd2VpZ2h0Om5vcm1hbDtcblx0XHRcdFx0Zm9udC1zaXplOjFlbTtcblx0XHRcdFx0ZmxvYXQ6bGVmdDtcblx0XHRcdFx0dGV4dC1zaGFkb3c6IG5vbmU7XG5cdFx0XHRcdCYuZmlsbHtcblx0XHRcdFx0XHQmOmJlZm9yZXtcblx0XHRcdFx0XHRcdGNvbG9yOiNmZmY7XG5cdFx0XHRcdFx0XHRjb250ZW50OiAnPyc7XG5cdFx0XHRcdFx0XHRmb250LXNpemU6MTJweDtcblx0XHRcdFx0XHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0XHRcdFx0XHRwYWRkaW5nLWxlZnQ6M3B4O1xuXHRcdFx0XHRcdFx0cGFkZGluZy1yaWdodDozcHg7XG5cdFx0XHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdFx0XHRcdFx0ZmxvYXQ6bGVmdDtcblx0XHRcdFx0XHRcdHRleHQtc2hhZG93OiBub25lO1xuXHRcdFx0XHRcdFx0Ym9yZGVyLXJhZGl1czogNTBweDtcblx0XHRcdFx0XHRcdGJhY2tncm91bmQtY29sb3I6bGlnaHRlbigkY29sb3ItdGV4dCwgNDUlKTtcblx0XHRcdFx0XHRcdHdpZHRoOjIxcHg7XG5cdFx0XHRcdFx0XHRoZWlnaHQ6MTVweDtcblx0XHRcdFx0XHRcdG1hcmdpbi1yaWdodDo1cHg7XG5cdFx0XHRcdFx0XHRtYXJnaW4tYm90dG9tOjVweDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHQubWlkZGxlQ29sdW1uIHtcblx0XHRcdG1hcmdpbjogMDtcblx0XHR9XG5cblx0XHRpbnB1dC50ZXh0LFxuXHRcdHNlbGVjdCxcblx0XHR0ZXh0YXJlYSB7XG5cdFx0XHRwYWRkaW5nOiA1cHg7XG5cdFx0XHRmb250LXNpemU6IDExcHg7XG5cdFx0fVxuXG5cdFx0Ji5jaGVja2JveCB7XG5cdFx0XHRwYWRkaW5nOiAwIDhweCAwO1xuXG5cdFx0XHRpbnB1dCB7XG5cdFx0XHRcdG1hcmdpbjogMnB4IDA7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0LmZvcm1fX2ZpZWxkZ3JvdXAge1xuXHRcdC5mb3JtX19maWVsZGdyb3VwLWl0ZW0ge1xuXHRcdFx0cGFkZGluZzogMDtcblxuXHRcdFx0LmZpZWxkIHtcblx0XHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8qIFJlc3R5bGUgZm9yIHNtYWxsZXIgYXJlYSovXG5cdC5jbXMtY29udGVudC1maWVsZHN7XG5cdFx0b3ZlcmZsb3c6dmlzaWJsZTtcblx0fVxuXHQuY2hvc2VuLWNvbnRhaW5lci1zaW5nbGV7XG5cdFx0d2lkdGg6MTAwJSAhaW1wb3J0YW50O1xuXHRcdC5jaG9zZW4tc2luZ2xle1xuXHRcdFx0cGFkZGluZzogMCAwIDAgNXB4O1xuXHRcdFx0ZmxvYXQ6bm9uZTtcblx0XHR9XG5cdH1cblx0LmNtcy1jb250ZW50LWFjdGlvbnMsIC5jbXMtcHJldmlldy1jb250cm9sc3tcblx0XHRwYWRkaW5nOjA7XG5cdFx0aGVpZ2h0OmF1dG87XG5cdFx0Ym9yZGVyOm5vbmU7XG5cdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0fVxuXHQuY21zLWVkaXQtZm9ybXtcblx0XHR3aWR0aDoxMDAlO1xuXHR9XG5cdC5Db21wb3NpdGVGaWVsZHtcblx0XHRtYXJnaW46MDtcblx0XHRwYWRkaW5nOjA7XG5cdFx0ZmxvYXQ6bm9uZTtcblx0fVxuXHQucGFyZW50LW1vZGV7XG5cdFx0cGFkZGluZy10b3A6MDtcblx0fVxuXHQudHJlZWRyb3Bkb3duLCAuU2VsZWN0aW9uR3JvdXAgbGkuc2VsZWN0ZWQgZGl2LmZpZWxke1xuXHRcdG1hcmdpbjoxMHB4IDAgMCAwO1xuXHRcdC8vQGluY2x1ZGUgYm94LXNoYWRvdyhpbnNldCAwIDFweCAwICNmZmYsIDAgMXB4IDFweCByZ2JhKDAsMCwwLDAuMSkpO1xuXHRcdC50cmVlZHJvcGRvd25maWVsZC10aXRsZXtcblx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xuXHRcdFx0ei1pbmRleDoyO1xuXHRcdFx0cGFkZGluZzo1cHg7XG5cdFx0fVxuXHRcdC50cmVlZHJvcGRvd25maWVsZC1wYW5lbHtcblx0XHRcdG1hcmdpbi10b3A6MTFweDtcblx0XHR9XG5cdFx0LnRyZWVkcm9wZG93bmZpZWxkLXRvZ2dsZS1wYW5lbC1saW5re1xuXHRcdFx0YmFja2dyb3VuZDpub25lO1xuXHRcdFx0Ym9yZGVyLWxlZnQ6bm9uZTtcblx0XHRcdHBhZGRpbmc6NXB4IDNweDtcblx0XHRcdC51aS1pY29ue1xuXHRcdFx0XHRmbG9hdDpyaWdodDtcblx0XHRcdFx0b3BhY2l0eTowLjc7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdC5jbXMtYWRkLWZvcm0gdWwuU2VsZWN0aW9uR3JvdXB7XG5cdFx0cGFkZGluZy1sZWZ0OjA7XG5cdFx0cGFkZGluZy1yaWdodDowO1xuXHRcdG92ZXJmbG93OnZpc2libGU7XG5cdFx0Ym9yZGVyLWJvdHRvbTpub25lO1xuXHR9XG59XG5cbi8vKiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gKiBDb21wYXNzIHJlcGxhY2VtZW50IG1peGlucy5cbi8vICpcbi8vICogTWl4aW5zIHRoYXQgd2VyZSBidWlsdC1pbiB3aXRoIGNvbXBhc3Ncbi8vICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuQG1peGluIGxlZ2FjeS1waWUtY2xlYXJmaXgge1xuXHQmOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlxcMDAyMFwiO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMDtcbiAgICBjbGVhcjogYm90aDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxufVxuIiwiLyoqXG4gKiBUaGlzIGZpbGUgY29udGFpbnMgdGhlIGRlZmF1bHQgdGhlbWUgZGVmaW5pdGlvbnMgZm9yIHRoZSBhZG1pbiBpbnRlcmZhY2UuXG4gKiBQbGVhc2UgcHV0IG1vc3RseSBTQ1NTIHZhcmlhYmxlIGRlZmluaXRpb25zIGluIGhlcmUsXG4gKiBhbmQgbGVhdmUgdGhlIGFjdHVhbCBzdHlsaW5nIHRvIF9zdHlsZS5zY3NzIGFuZCBhdXhpbGxpYXJ5IGZpbGVzLlxuICovXG5cbkBpbXBvcnQgXCIuLi8uLi92YXJpYWJsZXMuc2Nzc1wiO1xuXG4vKiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIENvbG91cnNcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuJGNvbG9yLWJhc2U6ICNiMGJlYzcgIWRlZmF1bHQ7XG4kY29sb3Itd2lkZ2V0LWJnOiBsaWdodGVuKCRjb2xvci1iYXNlLCAyMCUpICFkZWZhdWx0O1xuXG4vLyBNZW51IHRoZW1lIGNvbG91cnNcbiRjb2xvci10aGVtZS1iYXNlOiBcdCNkOGU0ZWIgIWRlZmF1bHQ7XG5cbiRjb2xvci10aGVtZS1iZzogXHRsaWdodGVuKCRjb2xvci10aGVtZS1iYXNlLCA1JSk7XG4kY29sb3ItdGhlbWUtaWNvbnM6IGRhcmtlbigkY29sb3ItdGhlbWUtYmFzZSwgMjYlKTtcbiRjb2xvci10aGVtZS1hY3RpdmU6ICRjb2xvci10aGVtZS1iYXNlO1xuXG4vLyBDTVMgNCBtZW51XG4kYmFzZS1tZW51OiAjZDhlNGViO1xuJGJhc2UtbWVudS1iZzogbGlnaHRlbigkYmFzZS1tZW51LDUlKTtcbiRiYXNlLW1lbnUtaWNvbjogZGFya2VuKCRiYXNlLW1lbnUsIDI2JSk7XG5cbi8vb2ZmaWNhbCBzaWx2ZXJzdHJpcGUgYnJhbmQgY29sb3JcbiRjb2xvci1icmFuZC1iZzogIzAwNWE5MyAhZGVmYXVsdDtcbiRjb2xvci1icmFuZDogIzQzYzdmNCAhZGVmYXVsdDtcblxuLyogS2VlcCBhcyBzb2xpZCBjb2xvdXJzIHRyYW5zcGFyZW50IGJvcmRlcnMgd29udCB3b3JrIGluIGllICovXG4kY29sb3ItZGFya2VyLWJnOiAjZjBmMmY0ICFkZWZhdWx0O1xuJGNvbG9yLWRhcmstYmc6ICMxNDIxMzYgIWRlZmF1bHQ7XG4kY29sb3ItZGFyay1zZXBhcmF0b3I6ICMxOTQzNWMgIWRlZmF1bHQ7XG4kY29sb3ItbWVkaXVtLXNlcGFyYXRvcjogIzgwODA4MCAhZGVmYXVsdDtcbiRjb2xvci1zZXBhcmF0b3I6ICNDMUM3Q0MgIWRlZmF1bHQ7IC8vIFZlcnRpY2FsIGRpdmlkZXJzXG4kY29sb3ItbGlnaHQtc2VwYXJhdG9yOiAjRDJENUQ4ICFkZWZhdWx0OyAvLyBIb3Jpb250YWwgZGl2aWRlcnNcblxuJGNvbG9yLXRhYjogI2Q5ZDlkOSAhZGVmYXVsdDtcbiRjb2xvci1kYXJrLWdyZXk6ICM3QjhDOTEgIWRlZmF1bHQ7XG5cbi8qIE9ubHkgZm9yIHVzZSBhcyBzaGFkb3dzIGFzIHRoZXkgd29udCB3b3JrIGluIG9sZGVyIGJyb3dzZXJzICovXG4kY29sb3Itc2hhZG93LWxpZ2h0OiByZ2JhKDIwMSwgMjA1LCAyMDYsIDAuOCkgIWRlZmF1bHQ7XG4kY29sb3Itc2hhZG93LWRhcms6IHJnYmEoMTA3LCAxMjAsIDEyMywgMC41KSAhZGVmYXVsdDtcbiRjb2xvci1zaGFkb3ctYmxhY2s6IHJnYmEoMCwgMCwgMCwgMC42KSAhZGVmYXVsdDtcbiRjb2xvci1zaGFkb3ctYmxhY2tlcjogcmdiYSgwLCAwLCAwLCAwLjkpICFkZWZhdWx0O1xuJGJveC1zaGFkb3ctc2hpbmU6IHJnYmEoMjQ4LCAyNDgsIDI0OCwgMC45KTtcbiRib3gtc2hhZG93LXNoaW5lLW1pbmltYWw6IHJnYmEoMjQ1LCAyNDUsIDI0NSwgMC44KTtcblxuJGNvbG9yLWhpZ2hsaWdodDogI0ZGRkY2NiAhZGVmYXVsdDtcbiRjb2xvci1oaWdobGlnaHQtb3BhY2l0eTogcmdiYSgyNTUsIDI1NSwgMTAyLCAwLjMpICFkZWZhdWx0O1xuXG4kY29sb3ItbWVudS1idXR0b246ICMzMzhEQzEgIWRlZmF1bHQ7XG4kY29sb3ItbWVudS1iYWNrZ3JvdW5kOiAjYzZkN2RmICFkZWZhdWx0O1xuJGNvbG9yLW1lbnUtYm9yZGVyOiAjOGM5OWExICFkZWZhdWx0O1xuJGNvbG9yLXBhbmVsLWJhY2tncm91bmQ6ICNjNmQ3ZGYgIWRlZmF1bHQ7XG5cbiRjb2xvci10ZXh0LWRlZmF1bHQ6ICM0ZjU4NjEgIWRlZmF1bHQ7IC8qIG5ldyBpbiBTaWx2ZXJTdHJpcGUgNCAqL1xuJGNvbG9yLXRleHQ6ICM2NjcyN2QgIWRlZmF1bHQ7XG4kY29sb3ItdGV4dC1saWdodDogd2hpdGUgIWRlZmF1bHQ7XG4kY29sb3ItdGV4dC1saWdodC1saW5rOiB3aGl0ZSAhZGVmYXVsdDtcbiRjb2xvci10ZXh0LWRpc2FibGVkOiAjYWFhICFkZWZhdWx0O1xuJGNvbG9yLXRleHQtZGFyazogIzFmMWYxZiAhZGVmYXVsdDtcbiRjb2xvci10ZXh0LWRhcmstbGluazogIzNFQkFFMCAhZGVmYXVsdDtcbiRjb2xvci10ZXh0LWJsdWUtbGluazogIzAwNzFjNCAhZGVmYXVsdDtcbiRjb2xvci10ZXh0LXNoYWRvdzogd2hpdGUgIWRlZmF1bHQ7XG5cblxuJGNvbG9yLWJ1dHRvbi1nZW5lcmljOiAjZTZlNmU2ICFkZWZhdWx0O1xuJGNvbG9yLWJ1dHRvbi1nZW5lcmljLWJvcmRlcjogI2QwZDNkNSAhZGVmYXVsdDtcblxuJGNvbG9yLWJ1dHRvbi1oaWdobGlnaHQ6ICNlNmU2ZTYgIWRlZmF1bHQ7XG4kY29sb3ItYnV0dG9uLWhpZ2hsaWdodC1ib3JkZXI6ICM3MDgyODQgIWRlZmF1bHQ7XG5cbiRjb2xvci1idXR0b24tY29uc3RydWN0aXZlOiAjMUY5NDMzICFkZWZhdWx0O1xuJGNvbG9yLWJ1dHRvbi1jb25zdHJ1Y3RpdmUtYm9yZGVyOiAjMUY5NDMzICFkZWZhdWx0O1xuXG4kY29sb3ItYnV0dG9uLWRlc3RydWN0aXZlOiAjZjAwICFkZWZhdWx0O1xuXG4kY29sb3ItYnV0dG9uLWRpc2FibGVkOiAjZWVlZGVkICFkZWZhdWx0O1xuXG4kY29sb3Itbm90aWNlOiAjOTNDREU4ICFkZWZhdWx0O1x0XHQvLyBibHVlXG4kY29sb3Itd2FybmluZzogI0U5RDEwNCAhZGVmYXVsdDtcdFx0Ly8geWVsbG93XG4kY29sb3ItZXJyb3I6ICNlNjgyODggIWRlZmF1bHQ7XHRcdFx0Ly8gcmVkXG4kY29sb3ItZ29vZDogIzcyYzM0YiAhZGVmYXVsdDtcdFx0XHQvLyBncmVlblxuLyokY29sb3Itb3B0aW9uYWw6ICNhMWQyZWIgIWRlZmF1bHQ7ICovXHQvLyBvcmFuZ2VcblxuJGNvbG9yLWNtcy1iYXRjaGFjdGlvbnMtbWVudS1iYWNrZ3JvdW5kOiAjZjVmNWY1ICFkZWZhdWx0O1xuJGNvbG9yLWNtcy1iYXRjaGFjdGlvbnMtbWVudS1zZWxlY3RlZC1iYWNrZ3JvdW5kOiAjZmZmY2RjICFkZWZhdWx0O1xuXG4vKiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFRleHR1cmVzXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuJHRhYi1wYW5lbC10ZXh0dXJlLWNvbG9yOiAjZjZmN2Y4ICFkZWZhdWx0O1xuJHRhYi1wYW5lbC10ZXh0dXJlLWJhY2tncm91bmQ6ICR0YWItcGFuZWwtdGV4dHVyZS1jb2xvciB1cmwoLi4vaW1hZ2VzL3RleHR1cmVzL2JnX2Ntc19tYWluX2NvbnRlbnQucG5nKSByZXBlYXQgdG9wIGxlZnQgIWRlZmF1bHQ7XG5cblxuLyoqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBHcmlkIFVuaXRzIChweClcbiAqXG4gKiBXZSBoYXZlIGEgdmVydGljYWwgcmh5dGhtIHRoYXQgdGhlIGdyaWQgaXMgYmFzZWQgb2ZmXG4gKiBib3RoIHggKD1ob3Jpem9udGFsKSBhbmQgeSAoPXZlcnRpY2FsKS4gQWxsIGludGVybmFsIHBhZGRpbmcgYW5kXG4gKiBtYXJnaW5zIGFyZSBzY2FsZWQgdG8gdGhpcyBhbmQgYWNjb3VudGluZyBmb3IgcGFyYWdyYXBoc1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4kZ3JpZC15OiA4cHggIWRlZmF1bHQ7XG4kZ3JpZC14OiA4cHggIWRlZmF1bHQ7XG5cbi8qKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogQXBwbGljYXRpb24gTG9nbyAoQ01TIExvZ28pIE11c3QgYmUgMjRweCB4IDI0cHhcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuJGFwcGxpY2F0aW9uLWxvZ28tc21hbGw6IHVybChcIi4uL2ltYWdlcy9sb2dvX3NtYWxsLnBuZ1wiKSAhZGVmYXVsdDtcbiRhcHBsaWNhdGlvbi1sb2dvLXNtYWxsLTJ4OiB1cmwoXCIuLi9pbWFnZXMvbG9nb19zbWFsbEAyeC5wbmdcIikgIWRlZmF1bHQ7XG4iXSwic291cmNlUm9vdCI6Ii9zb3VyY2UvIn0= */
diff --git a/client/dist/styles/debug.css b/client/dist/styles/debug.css
deleted file mode 100644
index 3ffdfb217..000000000
--- a/client/dist/styles/debug.css
+++ /dev/null
@@ -1 +0,0 @@
-body{background:#eee!important;margin:0;overflow-x:hidden;padding:0;font-family:Helvetica,Arial,sans-serif}.info{padding:18px;background-color:#003050;position:relative;line-height:24px;background-image:-webkit-gradient(linear,left top,left bottom,from(#002137),color-stop(10%,#003050),color-stop(90%,#003050),color-stop(90%,#002137));background-image:-webkit-linear-gradient(#002137,#003050 10%,#003050 90%,#002137);background-image:linear-gradient(#002137,#003050 10%,#003050 90%,#002137);z-index:9999}.info,.info h1{margin:0 0 6px;color:#fff}.info h1{padding:0 32px 0 0;font-size:24px;text-shadow:0 1px #002137;line-height:30px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAmdJREFUeNpiYCASxJ17p8BAAmAh0sD5QAyiFYk1mJGAoQFQQwWgQoKLjIQ+kG0w0EABqIEByOKLjYWZ/////48Yg5lwuPI+uqF/f/88TqyhKGEMdWU/ECegK/r358/Va8tnx5AceVBD9wOxAbqCX18+zbm+am7HpaktD9AcEQCNUBDYAAz7CxhhDFTYAKTqkSX+//37+N3tq4Xboh33ALmfYcEAVJsA9ZkAmhtABifCLIAZ/B5Z4Z9vX1ddXjK15srMzkdAA38iudQB6jNcAJRiFEEpBxbGAsiRtNxWLh3I/ITkSpC3QUGRTyBoYfGUiJFBmJiY/wIN/IAl2S1AdgAoQr88fdjHysMjwyks3ohkBCioEsFBEXv2zUdGRiY+JEmQIQ+hLoQZdgBo2BMmFpaYnx/e9a1yVu0AhT0QM0cefjSPhYs7DEm/IAs0TFewcvOmodmKnuSevLp0uouVi3sDMEJ3AX31GZ60uLjV0DLSJ7DB9/dsalHxDrcGukYbV+B9enJ/xu5Un2tA5i1YhCKVIwbIqQkUN+Ccd7Ip7+nlRZP9QakB3UCQwrc3LoVsDrY4BdTwF8nQAiB1HogdkNX//v5tOUpZwQgMZCDFZ906S51fQVUGmjk+7Un3vwRKRkgGYi1HYMkUmKJSQMGEUQgBLWBGyur/gIp+I6VjA2g6Rs8cDNAIbYalKIzkBvIuKDnjCGqMHAdKdi8vnCgE+uwESoQykAYc0MuRlfaKVdCg+o232MRT6AugRyjQ0BKgga/RDSUJgCI39vTrRxGHHszWzahQBfLZGagFgIaJAzE/NAXhBQABBgBJL0aZBy/F5wAAAABJRU5ErkJggg==) no-repeat right 3px}.info h3{color:#7da4be;font-size:16px;line-height:18px;font-weight:400}.info p{margin:0;font-size:14px;color:#fff}.info a{color:#fff;font-weight:700;text-decoration:none}.info a:active,.info a:hover{color:#fff;text-decoration:underline}.header{margin:0;border-bottom:6px solid #ccdef3;height:23px;background-color:#666673;padding:4px 0 2px 6px}.build,.options,.trace{padding:6px 12px;background:#eee!important;position:relative;z-index:9999}.build li,.options li,.trace li{font-size:14px;margin:6px 0}a{color:#666}a:hover{color:#222}a:active{color:#111}p{margin-bottom:6px}pre{margin-bottom:20px;background-color:#f5f5f5;border:1px solid #eee;border:1px solid rgba(0,0,0,.08);color:#333;padding:11px;overflow:auto;border-radius:4px;box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}pre span{color:#999}pre .error{color:red}h2{margin:0 0 12px}h3{margin:0 0 6px;color:#333;font-size:18px;line-height:24px}ul{margin:0 0 18px;padding:0 0 0 18px}fieldset{border:1px solid #b2b2b2;margin-bottom:18px;padding:17px}.pass{color:#060;background:#e2f9e3;border:1px solid #8dd38d;border-radius:4px}.fail,.pass{margin-top:18px;padding:2px 20px 2px 40px}.fail{color:#c80700;background:#ffe9e9;border:1px solid #c80700;border-radius:4px}
\ No newline at end of file
diff --git a/client/dist/styles/images/progressbar_blue.gif b/client/dist/styles/images/progressbar_blue.gif
deleted file mode 100644
index 5ccc3fee3..000000000
Binary files a/client/dist/styles/images/progressbar_blue.gif and /dev/null differ
diff --git a/client/src/images/network-save-constructive.gif b/client/src/images/network-save-constructive.gif
deleted file mode 100644
index 735c8b870..000000000
Binary files a/client/src/images/network-save-constructive.gif and /dev/null differ
diff --git a/client/src/images/network-save.gif b/client/src/images/network-save.gif
deleted file mode 100644
index 1560b646c..000000000
Binary files a/client/src/images/network-save.gif and /dev/null differ
diff --git a/client/src/images/progressbar_blue.gif b/client/src/images/progressbar_blue.gif
deleted file mode 100644
index 5ccc3fee3..000000000
Binary files a/client/src/images/progressbar_blue.gif and /dev/null differ
diff --git a/client/src/images/sitetree_ss_default_icons.png b/client/src/images/sitetree_ss_default_icons.png
deleted file mode 100644
index 101351db9..000000000
Binary files a/client/src/images/sitetree_ss_default_icons.png and /dev/null differ
diff --git a/docs/en/04_Changelogs/4.0.0.md b/docs/en/04_Changelogs/4.0.0.md
index f0328f649..600800e69 100644
--- a/docs/en/04_Changelogs/4.0.0.md
+++ b/docs/en/04_Changelogs/4.0.0.md
@@ -121,11 +121,11 @@ or via SilverStripe templates (`
` tags).
failing silently, so check your `Requirements` are pointing to files that exist.
```
-framework/javascript => framework/client/dist/
-framework/javascript/lang => framework/client/lang/
-framework/images => framework/client/dist/images/
-framework/css => framework/client/dist/css/
-framework/scss => framework/client/src/styles/
+framework/javascript => admin/client/dist/
+framework/javascript/lang => admin/client/lang/
+framework/images => admin/client/dist/images/
+framework/css => admin/client/dist/css/
+framework/scss => admin/client/src/styles/
admin/javascript/ => admin/client/src/
admin/javascript/src/ => admin/client/src/legacy/ (mostly)
admin/javascript/lang/ => admin/client/lang/
diff --git a/webpack.config.js b/webpack.config.js
index 9df89e1f6..41734ef60 100644
--- a/webpack.config.js
+++ b/webpack.config.js
@@ -15,13 +15,9 @@ const PATHS = {
ADMIN_SPRITES_SRC: './admin/client/src/sprites',
ADMIN_SPRITES_DIST: './admin/client/dist/images/sprites',
FRAMEWORK: '.',
- FRAMEWORK_CSS_SRC: './client/src/styles',
- FRAMEWORK_CSS_DIST: './client/dist/styles',
FRAMEWORK_THIRDPARTY: './thirdparty',
INSTALL_CSS_SRC: './dev/install/client/src/styles',
INSTALL_CSS_DIST: './dev/install/client/dist/styles',
- FRAMEWORK_JS_SRC: './client/src',
- FRAMEWORK_JS_DIST: './client/dist/js',
};
// Used for autoprefixing css properties (same as Bootstrap Aplha.2 defaults)
@@ -48,10 +44,11 @@ const config = [
leaktools: `${PATHS.ADMIN_JS_SRC}/legacy/leaktools.js`,
MemberImportForm: `${PATHS.ADMIN_JS_SRC}/legacy/MemberImportForm.js`,
CMSSecurity: `${PATHS.ADMIN_JS_SRC}/legacy/CMSSecurity.js`,
- UploadField_select: `${PATHS.FRAMEWORK_JS_SRC}/legacy/UploadField_select.js`,
+ UploadField_select: `${PATHS.ADMIN_JS_SRC}/legacy/UploadField_select.js`,
+ TinyMCE_SSPlugin: `${PATHS.ADMIN_JS_SRC}/legacy/TinyMCE_SSPlugin.js`,
},
resolve: {
- modulesDirectories: [PATHS.ADMIN_JS_SRC, PATHS.FRAMEWORK_JS_SRC, PATHS.MODULES],
+ modulesDirectories: [PATHS.ADMIN_JS_SRC, PATHS.MODULES],
},
output: {
path: 'admin/client/dist',
@@ -168,16 +165,16 @@ const config = [
{
name: 'css',
entry: {
- 'admin/client/dist/styles/editor':
+ [`${PATHS.ADMIN_CSS_DIST}/editor`]:
`${PATHS.ADMIN_CSS_SRC}/editor.scss`,
- 'client/dist/styles/GridField_print':
- `${PATHS.FRAMEWORK_CSS_SRC}/legacy/GridField_print.scss`,
- 'client/dist/styles/debug':
- `${PATHS.FRAMEWORK_CSS_SRC}/legacy/debug.scss`,
- 'client/dist/styles/AssetUploadField':
- `${PATHS.FRAMEWORK_CSS_SRC}/legacy/AssetUploadField.scss`,
- 'client/dist/styles/UploadField':
- `${PATHS.FRAMEWORK_CSS_SRC}/legacy/UploadField.scss`,
+ [`${PATHS.ADMIN_CSS_DIST}/GridField_print`]:
+ `${PATHS.ADMIN_CSS_SRC}/legacy/GridField_print.scss`,
+ [`${PATHS.ADMIN_CSS_DIST}/debug`]:
+ `${PATHS.ADMIN_CSS_SRC}/legacy/debug.scss`,
+ [`${PATHS.ADMIN_CSS_DIST}/AssetUploadField`]:
+ `${PATHS.ADMIN_CSS_SRC}/legacy/AssetUploadField.scss`,
+ [`${PATHS.ADMIN_CSS_DIST}/UploadField`]:
+ `${PATHS.ADMIN_CSS_SRC}/legacy/UploadField.scss`,
[`${PATHS.INSTALL_CSS_DIST}/install`]:
`${PATHS.INSTALL_CSS_SRC}/install.scss`,
},
@@ -198,7 +195,7 @@ const config = [
},
{
test: /\.(png|gif|jpg|svg)$/,
- loader: 'url?limit=10000&name=client/dist/styles/images/[name].[ext]',
+ loader: `url?limit=10000&name=${PATHS.ADMIN_CSS_DIST}/images/[name].[ext]`,
},
{
test: /\.(woff|eot|ttf)$/,