Social Share Icons & Social Share Buttons - Version 3.0.1

Version Description

  • Design updates for Gutenberg
  • Security updates
Download this release

Release Info

Developer socialdude
Plugin Icon 128x128 Social Share Icons & Social Share Buttons
Version 3.0.1
Comparing to
See all releases

Code changes from version 3.0.0 to 3.0.1

dist/blocks.build.js CHANGED
@@ -84,7 +84,7 @@ eval("Object.defineProperty(__webpack_exports__, \"__esModule\", { value: true }
84
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
85
 
86
  "use strict";
87
- eval("/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__style_scss__ = __webpack_require__(/*! ./style.scss */ 2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__style_scss___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__style_scss__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__editor_scss__ = __webpack_require__(/*! ./editor.scss */ 3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__editor_scss___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1__editor_scss__);\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * BLOCK: social-share-block\n *\n * Registering a basic block with Gutenberg.\n * Simple block, renders and saves the same content without any interactivity.\n */\n\n// Import CSS.\n\n\n\nvar __ = wp.i18n.__; // Import __() from wp.i18n\n\nvar _wp$blocks = wp.blocks,\n registerBlockType = _wp$blocks.registerBlockType,\n RichText = _wp$blocks.RichText,\n TextControl = _wp$blocks.TextControl,\n AlignmentToolbar = _wp$blocks.AlignmentToolbar,\n BlockControls = _wp$blocks.BlockControls,\n InspectorControls = _wp$blocks.InspectorControls; // Import registerBlockType() from wp.blocks\n\n// const {\n// TextControl\n// } = wp.components;\n\nvar el = wp.element.createElement;\n/**\n * Register: aa Gutenberg Block.\n *\n * Registers a new block provided a unique name and an object defining its\n * behavior. Once registered, the block is made editor as an option to any\n * editor interface where blocks are implemented.\n *\n * @link https://wordpress.org/gutenberg/handbook/block-api/\n * @param {string} name Block name.\n * @param {Object} settings Block settings.\n * @return {?WPBlock} The block, if it has been successfully\n * registered; otherwise `undefined`.\n */\n\nvar iconEl = el('svg', { width: 20, height: 20 }, el('g', { 'transform': \"translate(0.000000,20.000000) scale(0.0062,-0.0070)\", 'fill': \"#000000\", 'stroke': \"none\" }, el('path', { d: \"M2055 2721 c-284 -83 -461 -332 -442 -624 l6 -89 -72 6 c-406 39 -818 246 -1090 548 l-66 73 -26 -60 c-101 -227 -55 -484 120 -661 l72 -74 -32 0 c-39 0 -127 26 -179 52 l-39 20 6 -74 c18 -224 178 -428 395 -504 58 -20 61 -22 35 -29 -15 -4 -72 -6 -126 -6 -98 1 -98 1 -92 -21 19 -62 77 -150 141 -214 88 -89 200 -148 317 -166 43 -7 77 -15 77 -18 0 -7 -152 -102 -205 -128 -72 -36 -216 -82 -302 -97 -46 -8 -146 -15 -221 -16 -159 -1 -160 2 10 -85 257 -131 542 -193 838 -181 209 8 392 45 572 115 l68 26 0 393 0 393 -100 0 c-93 0 -100 1 -100 20 0 11 -1 90 -1 175 0 85 1 160 1 165 0 6 40 10 100 10 l100 0 1 138 c1 144 3 170 20 241 34 147 165 265 319 288 49 8 174 9 358 5 l62 -2 0 -175 0 -175 -127 0 c-83 0 -137 -5 -153 -13 -35 -18 -46 -61 -49 -193 l-2 -114 165 0 166 0 0 -37 c0 -21 -7 -96 -15 -168 -8 -71 -15 -138 -15 -147 0 -16 -14 -18 -150 -18 l-150 0 0 -332 c1 -686 3 -637 -22 -642 -13 -3 -90 -8 -172 -12 -82 -3 -143 -10 -136 -14 6 -4 93 -8 191 -9 l179 -2 0 272 0 271 63 72 c119 134 198 250 273 397 113 225 184 512 184 745 l0 101 79 66 c64 54 226 235 217 244 -1 1 -26 -6 -55 -17 -59 -23 -176 -55 -235 -65 l-40 -7 50 39 c86 69 147 149 184 242 l19 49 -88 -43 c-69 -34 -199 -81 -276 -99 -5 -2 -37 19 -70 46 -150 122 -366 170 -540 119z\" })));\n\nregisterBlockType('ultimate-social-media-plus/sfsi-plus-share-block', {\n\t// Block name. Block names must be string that contains a namespace prefix. Example: my-plugin/my-custom-block.\n\ttitle: __('Social Icons'), // Block title.\n\ticon: iconEl, // Block icon from Dashicons → https://developer.wordpress.org/resource/dashicons/.\n\tcategory: 'common', // Block category — Group blocks together based on common traits E.g. common, formatting, layout widgets, embed.\n\tkeywords: [__('Social Icons'), __('Social share'), __('Gutenberg Share')],\n\tattributes: {\n\t\t\"jscode\": {\n\t\t\t\"default\": \"\\n\\t\\tjQuery(document).ready(function($) {\\n\\t\\t\\tjQuery.ajax({\\n\\t\\t\\t\\t'url': '/wp-json/ultimate-social-media-plus/v1/icons/?share_url='+window.location.href,\\n\\t\\t\\t\\t'method': 'GET'\\n\\t\\t\\t}).done( function(response){\\n\\t\\t\\t\\t$('.sfsi_plus_block_wrapper .sfsi_plus_block').html(response);sfsi_plus_update_iconcount();if(window.gapi){window.gapi.plusone.go();window.gapi.plus.go();window.gapi.ytsubscribe.go();};if(window.twttr){window.twttr.widgets.load();};if(window.IN){window.IN.parse();};if(window.addthis){if(window.addthis.toolbox){window.addthis.toolbox('.addthis_button.sficn');}else{window.addthis.init();window.addthis.toolbox('.addthis_button.sficn');}};if(window.PinUtils){window.PinUtils.build();};if(jQuery('.sfsi_plus_wDiv').length > 0) {setTimeout(function() { var s = parseInt(jQuery('.sfsi_plus_wDiv').height()) + 15 + 'px';jQuery('.sfsi_plus_holders').each(function() {jQuery(this).css('height', s);});jQuery('.sfsi_plus_widget').css('min-height', 'auto');}, 200);};if(window.FB){if(window.FB.XFBML){window.FB.XFBML.parse();}};\\n\\t\\t\\t});\\n\\t\\t});\\n\\t\",\n\t\t\ttype: 'string'\n\t\t},\n\t\tshowTextBeforeShare: {\n\t\t\ttype: 'string',\n\t\t\t// source: 'text',\n\t\t\tdefault: 'yes'\n\t\t\t// meta: 'sfsi_plus_gutenberg_show_text_before_share'\n\t\t},\n\t\ttextBeforeShare: {\n\t\t\ttype: 'string',\n\t\t\t// source: 'text',\n\t\t\tdefault: 'Please Share:'\n\t\t},\n\t\ticonType: {\n\t\t\ttype: 'string',\n\t\t\t// source: 'text',\n\t\t\tdefault: 'round'\n\t\t},\n\t\ticonAlignemt: {\n\t\t\ttype: 'string',\n\t\t\t// source: 'text',\n\t\t\tdefault: 'left'\n\t\t},\n\t\tmaxPerRow: {\n\t\t\ttype: 'string',\n\t\t\t// source: 'text',\n\t\t\tdefault: '5'\n\n\t\t}\n\t},\n\t/**\n * The edit function describes the structure of your block in the context of the editor.\n * This represents what the editor will render when the block is used.\n *\n * The \"edit\" property must be a valid function.\n *\n * @link https://wordpress.org/gutenberg/handbook/block-api/block-edit-save/\n */\n\tedit: function edit(props) {\n\t\tfunction onAttrChange(meta, value) {\n\t\t\tprops.setAttributes(_defineProperty({}, meta, value));\n\t\t}\n\t\tvar setAttributes = props.setAttributes;\n\t\t// var focus = props.isSelected;\n\t\tvar attributes = props.attributes;\n\t\t// console.log('attributes',attributes,wp.element);\n\t\tvar showTextBeforeShare = \"yes\";\n\t\tvar textBeforeShare = \"Please Share:\";\n\t\tif (attributes.showTextBeforeShare || '' !== attributes.showTextBeforeShare) {\n\t\t\tshowTextBeforeShare = attributes.showTextBeforeShare;\n\t\t} else {\n\t\t\tonAttrChange('showTextBeforeShare', 'yes');\n\t\t}\n\t\tif (attributes.textBeforeShare || '' !== attributes.textBeforeShare) {\n\t\t\ttextBeforeShare = attributes.textBeforeShare;\n\t\t} else {\n\t\t\tonAttrChange('textBeforeShare', 'Please Share:');\n\t\t}\n\n\t\t// Creates a <p class='wp-block-cgb-block-social-share-block'></p>.\n\t\t// return renderButtons(props.attributes);\n\t\tvar target = jQuery('div[data-block=\"' + props.clientId + '\"]').find('.sfsi_plus_block_container');\n\t\t// console.log(props,target,target.length);\n\t\tif (target.length > 0) {\n\t\t\tvar buttons = target.find('.sfsi_plus_block>div');\n\t\t\tif (buttons.length === 0) {\n\t\t\t\tfetchButtons(attributes.iconType, attributes, target);\n\t\t\t}\n\t\t} else {\n\t\t\tsetTimeout(function () {\n\t\t\t\tvar target = jQuery('div[data-block=\"' + props.clientId + '\"]').find('.sfsi_plus_block_container');\n\t\t\t\tvar buttons = target.find('.sfsi_plus_block>div');\n\t\t\t\tif (buttons.length === 0) {\n\t\t\t\t\tfetchButtons(attributes.iconType, attributes, target);\n\t\t\t\t}\n\t\t\t}, 3000);\n\t\t}\n\n\t\treturn [el(wp.editor.InspectorControls, { key: 'sfsi-plus-block-inspector' }, el('div', { className: \"sfsi_plus_block_inspector\" }, el('h3', { className: 'sfsi_plus_block_icontype_header' }, __('Type')), el('select', { className: 'form-control sfsi_plus_block_icontype_selector',\n\t\t\tvalue: attributes.iconType,\n\t\t\tonChange: function onChange(event) {\n\t\t\t\tvar target = jQuery('.wp-block.is-selected').find('.sfsi_plus_block_container');\n\t\t\t\tsetAttributes({ iconType: event.target.value });\n\t\t\t\tfetchButtons(event.target.value, attributes, target);\n\t\t\t}\n\t\t}, el('option', {\n\t\t\t'value': 'round'\n\t\t}, 'Round / «main» icons'), el('option', {\n\t\t\t'value': 'rectangle'\n\t\t}, 'Rectangle icons')), (props.attributes.iconType === \"round\" || undefined === props.attributes.iconType) && el('p', { className: 'sfsi_plus_block_icontype_desc' }, __(' Those are the icons you selected under question 1 on the plugin‘s '), el('a', { 'target': '_blank', 'href': '/wp-admin/admin.php?page=sfsi-plus-options#ui-id-1' }, __(' settings page.'))), props.attributes.iconType === \"rectangle\" && el('p', { className: 'sfsi_plus_block_icontype_desc' }, __('Those are the icons you selected '), el('a', { 'target': '_blank', 'href': '/wp-admin/admin.php?page=sfsi-plus-options#ui-id-5' }, __('here.'))), el('h3', { className: 'sfsi_plus_block_icontype_header' }, __('Alignment')), el('select', { className: 'form-control sfsi_plus_block_iconalignment_selector',\n\t\t\tvalue: attributes.iconAlignemt,\n\t\t\tonChange: function onChange(event) {\n\t\t\t\tsetAttributes({ iconAlignemt: event.target.value });\n\t\t\t\tvar target = jQuery('.wp-block.is-selected .sfsi_plus_block_container');\n\t\t\t\tif ('center' === event.target.value) {\n\t\t\t\t\tjQuery(target).find('.sfsi_plus_block_text_before_icon').css({ 'display': 'inherit' });\n\t\t\t\t}\n\t\t\t\tjQuery(target).css({ 'text-align': event.target.value });\n\t\t\t}\n\t\t}, el('option', {\n\t\t\t'value': 'left'\n\t\t}, 'Left'), el('option', {\n\t\t\t'value': 'right'\n\t\t}, 'Right'), el('option', {\n\t\t\t'value': 'center'\n\t\t}, 'Center')), (props.attributes.iconType === \"round\" || undefined === props.attributes.iconType) && el('div', { className: 'sfsi_plus_block_iconperrow_body' }, el('span', { className: 'label' }, __('Max. icons per row')), el('input', {\n\t\t\ttype: 'text',\n\t\t\tvalue: attributes.maxPerRow,\n\t\t\tonChange: function onChange(event) {\n\t\t\t\t// console.log(event.target,event.target.value);\n\t\t\t\tsetAttributes({ maxPerRow: (parseInt(event.target.value) || 0) + '' });\n\t\t\t\tchangeIconWidth(event.target.value);\n\t\t\t}\n\t\t})), el('label', {\n\t\t\thtmlFor: 'sfsi-plus-text-before-icons',\n\t\t\tclassName: 'sfsi_plus_block_textbeforeicons'\n\t\t}, el('input', {\n\t\t\tclassName: \"form-control\",\n\t\t\tchecked: attributes.showTextBeforeShare == 'yes',\n\t\t\ttype: 'checkbox',\n\t\t\tonChange: function onChange(event) {\n\t\t\t\tsetAttributes({ showTextBeforeShare: event.target.checked ? 'yes' : 'no' });\n\t\t\t}\n\t\t}), 'Text before icons?'), attributes.showTextBeforeShare == 'yes' && el('input', {\n\t\t\tclassName: 'form-input sfsi_plus_block_textbeforeicons_header',\n\t\t\tvalue: attributes.textBeforeShare,\n\t\t\tstyle: {\n\t\t\t\t'padding-top': '3px'\n\t\t\t},\n\t\t\tonChange: function onChange(event) {\n\t\t\t\tsetAttributes({ textBeforeShare: event.target.value });\n\t\t\t}\n\t\t}), attributes.showTextBeforeShare === 'yes' && el('div', { className: 'form-input sfsi_plus_block_textbeforeicons_body' }, __('Define the font size & type in our '), el('a', { 'href': 'https://www.ultimatelysocial.com/usm-premium/', 'target': '_blank' }, __('Premium plugin'))), el('h3', { className: 'sfsi_plus_block_notes_heading' }, __('Notes')), el('hr'), el('ul', { className: 'sfsi_plus_block_notes_list' }, el('li', { className: 'sfsi_plus_block_notes_item' }, __('For all other selections ( What the icons should do etc.) please go to '), el('a', { 'href': (window.sfsi_plus_links ? window.sfsi_plus_links.admin_url : '/wp-admin/admin.php') + '?page=sfsi-plus-options', 'target': '_blank' }, __('settings page'))), el('li', { className: 'sfsi_plus_block_notes_item' }, __('To see the icons in ‚full action‘ (with all features) please open the page in live or preview mode.')), el('li', { className: 'sfsi_plus_block_notes_item' }, __('If questions remain, please ask them in the '), el('a', {\n\t\t\t'href': 'https://goo.gl/ktAeDv',\n\t\t\t'target': '_blank'\n\t\t}, __('support forum')), __(' – we‘ll try to respond quickly.'), el('img', { src: (window.sfsi_plus_links ? window.sfsi_plus_links.plugin_dir_url : '/wp-content/plugins/ultimate-social-media-plus') + '/images/Ic_insert_emoticon_48px.svg', style: { width: '18px', 'vertical-align': 'text-bottom' } }))), el('h3', { className: 'sfsi_plus_block_ad_heading' }, 'Want (much) more?'), el('div', { className: 'sfsi_plus_block_ad_body' }, el('div', {}, __('Check out our '), el('a', { 'href': 'https://www.ultimatelysocial.com/usm-premium/?utm_source=plus_gutenberg_page&utm_campaign=side_widget&utm_medium=link', 'target': '_blank' }, __('premium plugin‘s features')), __('. Watch a teaser: '))), el('div', { style: { 'text-align': 'center' } }, el('iframe', { src: 'https://player.vimeo.com/video/269140798', width: '640', frameborder: 0, 'webkitallowfullscreen': \"\", 'mozallowfullscreen': \"\", 'allowfullscreen': \"\" }), el('a', { href: \"https://www.ultimatelysocial.com/usm-premium/?utm_source=plus_gutenberg_page&utm_campaign=side_widget&utm_medium=link\", 'target': '_blank', style: { 'display': 'inline-block', padding: '4px 10px', 'text-decoration': 'none', 'background': '#00A15A', 'color': '#fff', 'font-size': '11px', 'font-weight': '900' } }, __('Check out the Premium Plugin >>'))), el('br'), el('span', { className: 'sfsi_plus_block_ad_footer' }, __('..only 24.98 USD (includes support and updates for 1 year, and after that it will not be deactivated, so you can just keep using it!)')))), el('div', { key: 'sfsi-plus-block-content', className: 'sfsi_plus_block_container sfsi_plus_block_wrapper' }, '\\t', showTextBeforeShare == \"yes\" && el('span', { className: 'sfsi_plus_block_text_before_icon', 'data-align': attributes.iconAlignemt }, textBeforeShare), el('div', { className: 'sfsi_plus_block', 'data-count': attributes.maxPerRow, 'data-align': attributes.iconAlignemt, 'data-icon-type': attributes.iconType }, 'loading....'))];\n\t},\n\n\t/**\n * The save function defines the way in which the different attributes should be combined\n * into the final markup, which is then serialized by Gutenberg into post_content.\n *\n * The \"save\" property must be specified and must be a valid function.\n *\n * @link https://wordpress.org/gutenberg/handbook/block-api/block-edit-save/\n */\n\tdeprecated: [{\n\t\tattributes: {\n\t\t\t\"jscode\": {\n\t\t\t\t\"default\": \"\\n\\t\\tjQuery(document).ready(function($) {\\n\\t\\t\\tjQuery.ajax({\\n\\t\\t\\t\\t'url': '/wp-json/ultimate-social-media-plus/v1/icons/?share_url='+window.location.href,\\n\\t\\t\\t\\t'method': 'GET'\\n\\t\\t\\t}).done( function(response){\\n\\t\\t\\t\\t$('.sfsi_plus_block_container .sfsi_plus_block').html(response);if(window.gapi){window.gapi.plusone.go();window.gapi.plus.go();window.gapi.ytsubscribe.go();};if(window.twttr){window.twttr.widgets.load();};if(window.IN){window.IN.parse();};if(window.addthis){if(window.addthis.toolbox){window.addthis.toolbox('.addthis_button.sficn');}else{window.addthis.init();window.addthis.toolbox('.addthis_button.sficn');}};if(window.PinUtils){window.PinUtils.build();};if(jQuery('.sfsi_plus_wDiv').length > 0) {setTimeout(function() { var s = parseInt(jQuery('.sfsi_plus_wDiv').height()) + 15 + 'px';jQuery('.sfsi_plus_holders').each(function() {jQuery(this).css('height', s);});jQuery('.sfsi_plus_widget').css('min-height', 'auto');}, 200);};if(window.FB){if(window.FB.XFBML){window.FB.XFBML.parse();}};\\n\\t\\t\\t});\\n\\t\\t});\\n\\t\",\n\t\t\t\ttype: 'string'\n\t\t\t}\n\t\t},\n\n\t\tisEligible: function isEligible(attributes) {\n\t\t\tconsole.log(attributes);\n\t\t\treturn true;\n\t\t\t// return (attributes.jscode===\"\\n\\t\\tjQuery(document).ready(function($) {\\n\\t\\t\\tjQuery.ajax({\\n\\t\\t\\t\\t'url': '/wp-json/ultimate-social-media-plus/v1/icons/?share_url='+window.location.href,\\n\\t\\t\\t\\t'method': 'GET'\\n\\t\\t\\t}).done( function(response){\\n\\t\\t\\t\\t$('.sfsi_plus_block_container .sfsi_plus_block').html(response);if(window.gapi){window.gapi.plusone.go();window.gapi.plus.go();window.gapi.ytsubscribe.go();};if(window.twttr){window.twttr.widgets.load();};if(window.IN){window.IN.parse();};if(window.addthis){if(window.addthis.toolbox){window.addthis.toolbox('.addthis_button.sficn');}else{window.addthis.init();window.addthis.toolbox('.addthis_button.sficn');}};if(window.PinUtils){window.PinUtils.build();};if(jQuery('.sfsi_plus_wDiv').length > 0) {setTimeout(function() { var s = parseInt(jQuery('.sfsi_plus_wDiv').height()) + 15 + 'px';jQuery('.sfsi_plus_holders').each(function() {jQuery(this).css('height', s);});jQuery('.sfsi_plus_widget').css('min-height', 'auto');}, 200);};if(window.FB){if(window.FB.XFBML){window.FB.XFBML.parse();}};\\n\\t\\t\\t});\\n\\t\\t});\\n\\t\");\n\t\t},\n\t\tmigrate: function migrate(attributes) {\n\t\t\tconsole.log('migrate', attributes);\n\t\t\treturn [{\n\t\t\t\t\"jscode\": \"\\n\\t\\tjQuery(document).ready(function($) {\\n\\t\\t\\tjQuery.ajax({\\n\\t\\t\\t\\t'url': '/wp-json/ultimate-social-media-plus/v1/icons/?share_url='+window.location.href,\\n\\t\\t\\t\\t'method': 'GET'\\n\\t\\t\\t}).done( function(response){\\n\\t\\t\\t\\t$('.sfsi_plus_block_wrapper .sfsi_plus_block').html(response);sfsi_plus_update_iconcount();if(window.gapi){window.gapi.plusone.go();window.gapi.plus.go();window.gapi.ytsubscribe.go();};if(window.twttr){window.twttr.widgets.load();};if(window.IN){window.IN.parse();};if(window.addthis){if(window.addthis.toolbox){window.addthis.toolbox('.addthis_button.sficn');}else{window.addthis.init();window.addthis.toolbox('.addthis_button.sficn');}};if(window.PinUtils){window.PinUtils.build();};if(jQuery('.sfsi_plus_wDiv').length > 0) {setTimeout(function() { var s = parseInt(jQuery('.sfsi_plus_wDiv').height()) + 15 + 'px';jQuery('.sfsi_plus_holders').each(function() {jQuery(this).css('height', s);});jQuery('.sfsi_plus_widget').css('min-height', 'auto');}, 200);};if(window.FB){if(window.FB.XFBML){window.FB.XFBML.parse();}};\\n\\t\\t\\t});\\n\\t\\t});\\n\\t\",\n\t\t\t\tshowTextBeforeShare: 'yes',\n\t\t\t\ttextBeforeShare: 'Please Share:',\n\t\t\t\ticonType: 'round',\n\t\t\t\ticonAlignemt: 'left',\n\t\t\t\tmaxPerRow: '5'\n\t\t\t}];\n\t\t},\n\t\tsave: function save(props) {\n\t\t\tconsole.log(props);\n\t\t\tvar attributes = props.attributes;\n\t\t\treturn renderButtons(attributes);\n\t\t}\n\t}],\n\n\t// deprecated: [\n\t// \t{\n\t// \t\tattributes: {\n\t// \t\t\t\"jscode\":{\n\t// \t\t\t\t\t\t\"default\":\"\\n\\t\\tjQuery(document).ready(function($) {\\n\\t\\t\\tjQuery.ajax({\\n\\t\\t\\t\\t'url': '/wp-json/ultimate-social-media-plus/v1/icons/?share_url='+window.location.href,\\n\\t\\t\\t\\t'method': 'GET'\\n\\t\\t\\t}).done( function(response){\\n\\t\\t\\t\\t$('.sfsi_plus_block_container .sfsi_plus_block').html(response);if(window.gapi){window.gapi.plusone.go();window.gapi.plus.go();window.gapi.ytsubscribe.go();};if(window.twttr){window.twttr.widgets.load();};if(window.IN){window.IN.parse();};if(window.addthis){if(window.addthis.toolbox){window.addthis.toolbox('.addthis_button.sficn');}else{window.addthis.init();window.addthis.toolbox('.addthis_button.sficn');}};if(window.PinUtils){window.PinUtils.build();};if(jQuery('.sfsi_plus_wDiv').length > 0) {setTimeout(function() { var s = parseInt(jQuery('.sfsi_plus_wDiv').height()) + 15 + 'px';jQuery('.sfsi_plus_holders').each(function() {jQuery(this).css('height', s);});jQuery('.sfsi_plus_widget').css('min-height', 'auto');}, 200);};if(window.FB){if(window.FB.XFBML){window.FB.XFBML.parse();}};\\n\\t\\t\\t});\\n\\t\\t});\\n\\t\",\n\t// \t\t\t\t\t\ttype: 'string'\n\t// \t\t\t}\n\t// \t\t},\n\t// \t\tsave: function( props ) {\n\t// \t\t\tvar attributes = props.attributes;\n\t// \t\t\treturn renderButtons(attributes);\n\t// \t\t}\n\t// \t\tmigrate: function(){\n\t// \t\t\treturn \n\t// \t\t}\n\t// \t}\n\t// ],\n\n\n\tsave: function save(props) {\n\t\t// console.log(props);\n\t\tvar attributes = props.attributes;\n\t\tsetTimeout(function () {\n\t\t\tchangeIconWidth(attributes.maxPerRow);\n\t\t\t// console.log('changedIconWidth');\n\t\t}, 300);\n\t\treturn renderButtons_new(attributes);\n\t}\n\n});\n\nfunction renderButtons(attributes) {\n\tvar jscode = attributes.jscode;\n\t// if(attributes.iconType===\"rectangle\"){\n\t// \tjscode=jscode.replace(/window.location.href/gi,'window.location.href+\"&ractangle_icon=1\"')\n\t// }\n\treturn el('div', { 'className': 'sfsi_plus_block_container' }, \"\\n\t\", el('div', { className: 'sfsi_plus_block' }, \"\"), \"\\n\t\", el('script', {}, jscode), \"\\n\");\n}\n\nfunction renderButtons_new(attributes) {\n\t// console.log(attributes);\n\tvar jscode = attributes.jscode;\n\tif (attributes.iconType === \"rectangle\") {\n\t\tjscode = jscode.replace(/window.location.href/gi, 'window.location.href+\"&ractangle_icon=1\"');\n\t}\n\tvar showTextBeforeShare = \"yes\";\n\tvar textBeforeShare = \"Please Share:\";\n\tif (attributes.showTextBeforeShare || '' !== attributes.showTextBeforeShare) {\n\t\tshowTextBeforeShare = attributes.showTextBeforeShare;\n\t} else {\n\t\tonAttrChange('showTextBeforeShare', 'yes');\n\t}\n\tif (attributes.textBeforeShare || '' !== attributes.textBeforeShare) {\n\t\ttextBeforeShare = attributes.textBeforeShare;\n\t} else {\n\t\tonAttrChange('textBeforeShare', 'Please Share:');\n\t}\n\treturn el('div', { 'className': 'sfsi_plus_block_wrapper' }, \"\\n\t\", showTextBeforeShare == \"yes\" && el('span', { className: 'sfsi_plus_block_text_before_icon' }, textBeforeShare), \"\\n\", el('div', { className: 'sfsi_plus_block', 'data-count': attributes.maxPerRow, 'data-align': attributes.iconAlignemt, 'data-icon-type': attributes.iconType }, \"\"), \"\\n\\t\"\n\t// el('script',{},jscode\n\t// ),\"\\n\"\n\t);\n}\nfunction changeIconWidth() {\n\tvar per_row = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\n\t// console.log('iconchangecalled');\n\t// jQuery(document).ready(function($){\n\t// console.log('iconchangecalled and doc ready');\n\tvar iconWidth = parseInt(jQuery('.sfsi_plus_block_wrapper .sfsi_plus_wDiv div').css('width')) || 40;\n\t// console.log('iconwidth',iconWidth);\n\n\tvar iconMargin = parseInt(jQuery('.sfsi_plus_block_wrapper .sfsi_plus_wDiv div').css('margin-left')) || 0;\n\t// console.log('iconMargin',iconMargin);\n\n\tvar wrapperWidth = (iconWidth + iconMargin) * per_row;\n\t// console.log('in icon change ',iconWidth,iconMargin,wrapperWidth);\n\tvar iconHeight = jQuery('.sfsi_plus_block_wrapper .sfsi_plus_wDiv img').first().height();\n\tvar textHeight = jQuery('.sfsi_plus_block_text_before_icon').height();\n\t// console.log('wrapperWidth',wrapperWidth);\n\tjQuery('.sfsi_plus_block_text_before_icon').css({ 'margin-top': (textHeight - iconHeight) / 2 - 2 + 'px' });\n\tif (jQuery('.sfsi_plus_block_wrapper .sfsiplus_norm_row').length < 1) {\n\t\t// console.log('setTimeout',jQuery('.sfsi_plus_block_wrapper .sfsiplus_norm_row'));\n\t\tsetTimeout(function () {\n\t\t\tjQuery('.sfsi_plus_block_wrapper .sfsiplus_norm_row').css({ 'width': wrapperWidth + 'px' });\n\t\t}, 1000);\n\t} else {}\n\t// console.log('didnot setTimeout',jQuery('.sfsi_plus_block_wrapper .sfsiplus_norm_row'));\n\n\t// var target=jQuery('.sfsi_plus_block_container');\n\t// console.log(target,icon_alignment);\n\tjQuery('.sfsi_plus_block_wrapper .sfsiplus_norm_row').css({ 'width': wrapperWidth + 'px' });\n\tsetIconBlockAlignment();\n\n\t// })\n}\n\nfunction setIconBlockAlignment() {\n\tvar target = jQuery('.wp-block.is-selected .sfsi_plus_block_container');\n\tvar icon_alignment = target.find('.sfsi_plus_block').attr('data-align');\n\tif ('center' === icon_alignment) {\n\t\tjQuery(target).find('.sfsi_plus_block_text_before_icon').css({ 'display': 'inherit' });\n\t}\n\tjQuery(target).css({ 'text-align': icon_alignment });\n}\n\nfunction fetchButtons() {\n\tvar iconType = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\tvar attributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\tvar target = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n\tif (null === iconType || undefined === iconType) {\n\t\ticonType = \"round\";\n\t}\n\t// console.log(iconType);\n\t// return jQuery(document).ready(function($){\n\t// console.log(iconType);\n\tif (null == target) {\n\t\ttarget = $(document);\n\t}\n\t// console.log(target);\n\treturn jQuery.ajax({\n\t\t'url': '/wp-json/ultimate-social-media-plus/v1/icons/?admin_refereal=true&ractangle_icon=' + ('round' == iconType ? 0 : 1),\n\t\t'method': 'GET'\n\t\t// 'data':{'is_admin':true,'share_url':'/'}\n\t}).done(function (response) {\n\t\t// console.log(response,$('.sfsi_plus_block'));\n\n\t\tif (jQuery(target).find('.sfsi_plus_block').length > 0) {\n\t\t\tjQuery(target).find('.sfsi_plus_block').html(response);\n\t\t\tchangeIconWidth(attributes.maxPerRow);\n\t\t\tif (iconType !== 'round') {\n\t\t\t\trenderAutoSocialIcons();\n\t\t\t}\n\t\t\t// console.log('updated');\n\t\t} else {\n\t\t\tsetTimeout(function () {\n\t\t\t\tjQuery('.sfsi_plus_block').html(response);\n\t\t\t\tchangeIconWidth(attributes.maxPerRow);\n\n\t\t\t\tconsole.log('now updated');\n\t\t\t}, 5000);\n\t\t\tconsole.log('timeset');\n\t\t}\n\t}).fail(function (response) {\n\t\t// console.log(response,$('.sfsi_plus_block'));\n\t\tjQuery(target).find('.sfsi_plus_block').html(response.responseText.replace('/\\\\/g', ''));\n\t});\n\t// });\n}\nfunction renderAutoSocialIcons() {\n\tif (window.gapi) {\n\t\twindow.gapi.plusone.go();window.gapi.plus.go();window.gapi.ytsubscribe.go();\n\t};\n\tif (window.twttr) {\n\t\twindow.twttr.widgets.load();\n\t};\n\tif (window.IN && window.IN.parse) {\n\t\twindow.IN.parse();\n\t};\n\tif (window.addthis) {\n\t\tif (window.addthis.toolbox) {\n\t\t\twindow.addthis.toolbox('.addthis_button.sficn');\n\t\t} else {\n\t\t\twindow.addthis.init();window.addthis.toolbox('.addthis_button.sficn');\n\t\t}\n\t};\n\tif (window.PinUtils) {\n\t\twindow.PinUtils.build();\n\t};\n\tif (window.FB) {\n\t\tif (window.FB.XFBML) {\n\t\t\twindow.FB.XFBML.parse();\n\t\t}\n\t};\n}\nif (undefined === sfsi_plus_float_widget) {\n\tvar _sfsi_plus_float_widget = function _sfsi_plus_float_widget() {\n\t\treturn;\n\t};\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9ibG9jay9ibG9jay5qcz85MjFkIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgdmFsdWUpIHsgaWYgKGtleSBpbiBvYmopIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7IHZhbHVlOiB2YWx1ZSwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlLCB3cml0YWJsZTogdHJ1ZSB9KTsgfSBlbHNlIHsgb2JqW2tleV0gPSB2YWx1ZTsgfSByZXR1cm4gb2JqOyB9XG5cbi8qKlxuICogQkxPQ0s6IHNvY2lhbC1zaGFyZS1ibG9ja1xuICpcbiAqIFJlZ2lzdGVyaW5nIGEgYmFzaWMgYmxvY2sgd2l0aCBHdXRlbmJlcmcuXG4gKiBTaW1wbGUgYmxvY2ssIHJlbmRlcnMgYW5kIHNhdmVzIHRoZSBzYW1lIGNvbnRlbnQgd2l0aG91dCBhbnkgaW50ZXJhY3Rpdml0eS5cbiAqL1xuXG4vLyAgSW1wb3J0IENTUy5cbmltcG9ydCAnLi9zdHlsZS5zY3NzJztcbmltcG9ydCAnLi9lZGl0b3Iuc2Nzcyc7XG5cbnZhciBfXyA9IHdwLmkxOG4uX187IC8vIEltcG9ydCBfXygpIGZyb20gd3AuaTE4blxuXG52YXIgX3dwJGJsb2NrcyA9IHdwLmJsb2NrcyxcbiAgICByZWdpc3RlckJsb2NrVHlwZSA9IF93cCRibG9ja3MucmVnaXN0ZXJCbG9ja1R5cGUsXG4gICAgUmljaFRleHQgPSBfd3AkYmxvY2tzLlJpY2hUZXh0LFxuICAgIFRleHRDb250cm9sID0gX3dwJGJsb2Nrcy5UZXh0Q29udHJvbCxcbiAgICBBbGlnbm1lbnRUb29sYmFyID0gX3dwJGJsb2Nrcy5BbGlnbm1lbnRUb29sYmFyLFxuICAgIEJsb2NrQ29udHJvbHMgPSBfd3AkYmxvY2tzLkJsb2NrQ29udHJvbHMsXG4gICAgSW5zcGVjdG9yQ29udHJvbHMgPSBfd3AkYmxvY2tzLkluc3BlY3RvckNvbnRyb2xzOyAvLyBJbXBvcnQgcmVnaXN0ZXJCbG9ja1R5cGUoKSBmcm9tIHdwLmJsb2Nrc1xuXG4vLyBjb25zdCB7XG4vLyAgICAgVGV4dENvbnRyb2xcbi8vIH0gPSB3cC5jb21wb25lbnRzO1xuXG52YXIgZWwgPSB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQ7XG4vKipcbiAqIFJlZ2lzdGVyOiBhYSBHdXRlbmJlcmcgQmxvY2suXG4gKlxuICogUmVnaXN0ZXJzIGEgbmV3IGJsb2NrIHByb3ZpZGVkIGEgdW5pcXVlIG5hbWUgYW5kIGFuIG9iamVjdCBkZWZpbmluZyBpdHNcbiAqIGJlaGF2aW9yLiBPbmNlIHJlZ2lzdGVyZWQsIHRoZSBibG9jayBpcyBtYWRlIGVkaXRvciBhcyBhbiBvcHRpb24gdG8gYW55XG4gKiBlZGl0b3IgaW50ZXJmYWNlIHdoZXJlIGJsb2NrcyBhcmUgaW1wbGVtZW50ZWQuXG4gKlxuICogQGxpbmsgaHR0cHM6Ly93b3JkcHJlc3Mub3JnL2d1dGVuYmVyZy9oYW5kYm9vay9ibG9jay1hcGkvXG4gKiBAcGFyYW0gIHtzdHJpbmd9ICAgbmFtZSAgICAgQmxvY2sgbmFtZS5cbiAqIEBwYXJhbSAge09iamVjdH0gICBzZXR0aW5ncyBCbG9jayBzZXR0aW5ncy5cbiAqIEByZXR1cm4gez9XUEJsb2NrfSAgICAgICAgICBUaGUgYmxvY2ssIGlmIGl0IGhhcyBiZWVuIHN1Y2Nlc3NmdWxseVxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZ2lzdGVyZWQ7IG90aGVyd2lzZSBgdW5kZWZpbmVkYC5cbiAqL1xuXG52YXIgaWNvbkVsID0gZWwoJ3N2ZycsIHsgd2lkdGg6IDIwLCBoZWlnaHQ6IDIwIH0sIGVsKCdnJywgeyAndHJhbnNmb3JtJzogXCJ0cmFuc2xhdGUoMC4wMDAwMDAsMjAuMDAwMDAwKSBzY2FsZSgwLjAwNjIsLTAuMDA3MClcIiwgJ2ZpbGwnOiBcIiMwMDAwMDBcIiwgJ3N0cm9rZSc6IFwibm9uZVwiIH0sIGVsKCdwYXRoJywgeyBkOiBcIk0yMDU1IDI3MjEgYy0yODQgLTgzIC00NjEgLTMzMiAtNDQyIC02MjQgbDYgLTg5IC03MiA2IGMtNDA2IDM5IC04MTggMjQ2IC0xMDkwIDU0OCBsLTY2IDczIC0yNiAtNjAgYy0xMDEgLTIyNyAtNTUgLTQ4NCAxMjAgLTY2MSBsNzIgLTc0IC0zMiAwIGMtMzkgMCAtMTI3IDI2IC0xNzkgNTIgbC0zOSAyMCA2IC03NCBjMTggLTIyNCAxNzggLTQyOCAzOTUgLTUwNCA1OCAtMjAgNjEgLTIyIDM1IC0yOSAtMTUgLTQgLTcyIC02IC0xMjYgLTYgLTk4IDEgLTk4IDEgLTkyIC0yMSAxOSAtNjIgNzcgLTE1MCAxNDEgLTIxNCA4OCAtODkgMjAwIC0xNDggMzE3IC0xNjYgNDMgLTcgNzcgLTE1IDc3IC0xOCAwIC03IC0xNTIgLTEwMiAtMjA1IC0xMjggLTcyIC0zNiAtMjE2IC04MiAtMzAyIC05NyAtNDYgLTggLTE0NiAtMTUgLTIyMSAtMTYgLTE1OSAtMSAtMTYwIDIgMTAgLTg1IDI1NyAtMTMxIDU0MiAtMTkzIDgzOCAtMTgxIDIwOSA4IDM5MiA0NSA1NzIgMTE1IGw2OCAyNiAwIDM5MyAwIDM5MyAtMTAwIDAgYy05MyAwIC0xMDAgMSAtMTAwIDIwIDAgMTEgLTEgOTAgLTEgMTc1IDAgODUgMSAxNjAgMSAxNjUgMCA2IDQwIDEwIDEwMCAxMCBsMTAwIDAgMSAxMzggYzEgMTQ0IDMgMTcwIDIwIDI0MSAzNCAxNDcgMTY1IDI2NSAzMTkgMjg4IDQ5IDggMTc0IDkgMzU4IDUgbDYyIC0yIDAgLTE3NSAwIC0xNzUgLTEyNyAwIGMtODMgMCAtMTM3IC01IC0xNTMgLTEzIC0zNSAtMTggLTQ2IC02MSAtNDkgLTE5MyBsLTIgLTExNCAxNjUgMCAxNjYgMCAwIC0zNyBjMCAtMjEgLTcgLTk2IC0xNSAtMTY4IC04IC03MSAtMTUgLTEzOCAtMTUgLTE0NyAwIC0xNiAtMTQgLTE4IC0xNTAgLTE4IGwtMTUwIDAgMCAtMzMyIGMxIC02ODYgMyAtNjM3IC0yMiAtNjQyIC0xMyAtMyAtOTAgLTggLTE3MiAtMTIgLTgyIC0zIC0xNDMgLTEwIC0xMzYgLTE0IDYgLTQgOTMgLTggMTkxIC05IGwxNzkgLTIgMCAyNzIgMCAyNzEgNjMgNzIgYzExOSAxMzQgMTk4IDI1MCAyNzMgMzk3IDExMyAyMjUgMTg0IDUxMiAxODQgNzQ1IGwwIDEwMSA3OSA2NiBjNjQgNTQgMjI2IDIzNSAyMTcgMjQ0IC0xIDEgLTI2IC02IC01NSAtMTcgLTU5IC0yMyAtMTc2IC01NSAtMjM1IC02NSBsLTQwIC03IDUwIDM5IGM4NiA2OSAxNDcgMTQ5IDE4NCAyNDIgbDE5IDQ5IC04OCAtNDMgYy02OSAtMzQgLTE5OSAtODEgLTI3NiAtOTkgLTUgLTIgLTM3IDE5IC03MCA0NiAtMTUwIDEyMiAtMzY2IDE3MCAtNTQwIDExOXpcIiB9KSkpO1xuXG5yZWdpc3RlckJsb2NrVHlwZSgndWx0aW1hdGUtc29jaWFsLW1lZGlhLXBsdXMvc2ZzaS1wbHVzLXNoYXJlLWJsb2NrJywge1xuXHQvLyBCbG9jayBuYW1lLiBCbG9jayBuYW1lcyBtdXN0IGJlIHN0cmluZyB0aGF0IGNvbnRhaW5zIGEgbmFtZXNwYWNlIHByZWZpeC4gRXhhbXBsZTogbXktcGx1Z2luL215LWN1c3RvbS1ibG9jay5cblx0dGl0bGU6IF9fKCdTb2NpYWwgSWNvbnMnKSwgLy8gQmxvY2sgdGl0bGUuXG5cdGljb246IGljb25FbCwgLy8gQmxvY2sgaWNvbiBmcm9tIERhc2hpY29ucyDihpIgaHR0cHM6Ly9kZXZlbG9wZXIud29yZHByZXNzLm9yZy9yZXNvdXJjZS9kYXNoaWNvbnMvLlxuXHRjYXRlZ29yeTogJ2NvbW1vbicsIC8vIEJsb2NrIGNhdGVnb3J5IOKAlCBHcm91cCBibG9ja3MgdG9nZXRoZXIgYmFzZWQgb24gY29tbW9uIHRyYWl0cyBFLmcuIGNvbW1vbiwgZm9ybWF0dGluZywgbGF5b3V0IHdpZGdldHMsIGVtYmVkLlxuXHRrZXl3b3JkczogW19fKCdTb2NpYWwgSWNvbnMnKSwgX18oJ1NvY2lhbCBzaGFyZScpLCBfXygnR3V0ZW5iZXJnIFNoYXJlJyldLFxuXHRhdHRyaWJ1dGVzOiB7XG5cdFx0XCJqc2NvZGVcIjoge1xuXHRcdFx0XCJkZWZhdWx0XCI6IFwiXFxuXFx0XFx0alF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigkKSB7XFxuXFx0XFx0XFx0alF1ZXJ5LmFqYXgoe1xcblxcdFxcdFxcdFxcdCd1cmwnOiAnL3dwLWpzb24vdWx0aW1hdGUtc29jaWFsLW1lZGlhLXBsdXMvdjEvaWNvbnMvP3NoYXJlX3VybD0nK3dpbmRvdy5sb2NhdGlvbi5ocmVmLFxcblxcdFxcdFxcdFxcdCdtZXRob2QnOiAnR0VUJ1xcblxcdFxcdFxcdH0pLmRvbmUoIGZ1bmN0aW9uKHJlc3BvbnNlKXtcXG5cXHRcXHRcXHRcXHQkKCcuc2ZzaV9wbHVzX2Jsb2NrX3dyYXBwZXIgLnNmc2lfcGx1c19ibG9jaycpLmh0bWwocmVzcG9uc2UpO3Nmc2lfcGx1c191cGRhdGVfaWNvbmNvdW50KCk7aWYod2luZG93LmdhcGkpe3dpbmRvdy5nYXBpLnBsdXNvbmUuZ28oKTt3aW5kb3cuZ2FwaS5wbHVzLmdvKCk7d2luZG93LmdhcGkueXRzdWJzY3JpYmUuZ28oKTt9O2lmKHdpbmRvdy50d3R0cil7d2luZG93LnR3dHRyLndpZGdldHMubG9hZCgpO307aWYod2luZG93LklOKXt3aW5kb3cuSU4ucGFyc2UoKTt9O2lmKHdpbmRvdy5hZGR0aGlzKXtpZih3aW5kb3cuYWRkdGhpcy50b29sYm94KXt3aW5kb3cuYWRkdGhpcy50b29sYm94KCcuYWRkdGhpc19idXR0b24uc2ZpY24nKTt9ZWxzZXt3aW5kb3cuYWRkdGhpcy5pbml0KCk7d2luZG93LmFkZHRoaXMudG9vbGJveCgnLmFkZHRoaXNfYnV0dG9uLnNmaWNuJyk7fX07aWYod2luZG93LlBpblV0aWxzKXt3aW5kb3cuUGluVXRpbHMuYnVpbGQoKTt9O2lmKGpRdWVyeSgnLnNmc2lfcGx1c193RGl2JykubGVuZ3RoID4gMCkge3NldFRpbWVvdXQoZnVuY3Rpb24oKSB7IHZhciBzID0gcGFyc2VJbnQoalF1ZXJ5KCcuc2ZzaV9wbHVzX3dEaXYnKS5oZWlnaHQoKSkgKyAxNSArICdweCc7alF1ZXJ5KCcuc2ZzaV9wbHVzX2hvbGRlcnMnKS5lYWNoKGZ1bmN0aW9uKCkge2pRdWVyeSh0aGlzKS5jc3MoJ2hlaWdodCcsIHMpO30pO2pRdWVyeSgnLnNmc2lfcGx1c193aWRnZXQnKS5jc3MoJ21pbi1oZWlnaHQnLCAnYXV0bycpO30sIDIwMCk7fTtpZih3aW5kb3cuRkIpe2lmKHdpbmRvdy5GQi5YRkJNTCl7d2luZG93LkZCLlhGQk1MLnBhcnNlKCk7fX07XFxuXFx0XFx0XFx0fSk7XFxuXFx0XFx0fSk7XFxuXFx0XCIsXG5cdFx0XHR0eXBlOiAnc3RyaW5nJ1xuXHRcdH0sXG5cdFx0c2hvd1RleHRCZWZvcmVTaGFyZToge1xuXHRcdFx0dHlwZTogJ3N0cmluZycsXG5cdFx0XHQvLyBzb3VyY2U6ICd0ZXh0Jyxcblx0XHRcdGRlZmF1bHQ6ICd5ZXMnXG5cdFx0XHQvLyBtZXRhOiAnc2ZzaV9wbHVzX2d1dGVuYmVyZ19zaG93X3RleHRfYmVmb3JlX3NoYXJlJ1xuXHRcdH0sXG5cdFx0dGV4dEJlZm9yZVNoYXJlOiB7XG5cdFx0XHR0eXBlOiAnc3RyaW5nJyxcblx0XHRcdC8vIHNvdXJjZTogJ3RleHQnLFxuXHRcdFx0ZGVmYXVsdDogJ1BsZWFzZSBTaGFyZTonXG5cdFx0fSxcblx0XHRpY29uVHlwZToge1xuXHRcdFx0dHlwZTogJ3N0cmluZycsXG5cdFx0XHQvLyBzb3VyY2U6ICd0ZXh0Jyxcblx0XHRcdGRlZmF1bHQ6ICdyb3VuZCdcblx0XHR9LFxuXHRcdGljb25BbGlnbmVtdDoge1xuXHRcdFx0dHlwZTogJ3N0cmluZycsXG5cdFx0XHQvLyBzb3VyY2U6ICd0ZXh0Jyxcblx0XHRcdGRlZmF1bHQ6ICdsZWZ0J1xuXHRcdH0sXG5cdFx0bWF4UGVyUm93OiB7XG5cdFx0XHR0eXBlOiAnc3RyaW5nJyxcblx0XHRcdC8vIHNvdXJjZTogJ3RleHQnLFxuXHRcdFx0ZGVmYXVsdDogJzUnXG5cblx0XHR9XG5cdH0sXG5cdC8qKlxuICAqIFRoZSBlZGl0IGZ1bmN0aW9uIGRlc2NyaWJlcyB0aGUgc3RydWN0dXJlIG9mIHlvdXIgYmxvY2sgaW4gdGhlIGNvbnRleHQgb2YgdGhlIGVkaXRvci5cbiAgKiBUaGlzIHJlcHJlc2VudHMgd2hhdCB0aGUgZWRpdG9yIHdpbGwgcmVuZGVyIHdoZW4gdGhlIGJsb2NrIGlzIHVzZWQuXG4gICpcbiAgKiBUaGUgXCJlZGl0XCIgcHJvcGVydHkgbXVzdCBiZSBhIHZhbGlkIGZ1bmN0aW9uLlxuICAqXG4gICogQGxpbmsgaHR0cHM6Ly93b3JkcHJlc3Mub3JnL2d1dGVuYmVyZy9oYW5kYm9vay9ibG9jay1hcGkvYmxvY2stZWRpdC1zYXZlL1xuICAqL1xuXHRlZGl0OiBmdW5jdGlvbiBlZGl0KHByb3BzKSB7XG5cdFx0ZnVuY3Rpb24gb25BdHRyQ2hhbmdlKG1ldGEsIHZhbHVlKSB7XG5cdFx0XHRwcm9wcy5zZXRBdHRyaWJ1dGVzKF9kZWZpbmVQcm9wZXJ0eSh7fSwgbWV0YSwgdmFsdWUpKTtcblx0XHR9XG5cdFx0dmFyIHNldEF0dHJpYnV0ZXMgPSBwcm9wcy5zZXRBdHRyaWJ1dGVzO1xuXHRcdC8vIHZhciBmb2N1cyA9IHByb3BzLmlzU2VsZWN0ZWQ7XG5cdFx0dmFyIGF0dHJpYnV0ZXMgPSBwcm9wcy5hdHRyaWJ1dGVzO1xuXHRcdC8vIGNvbnNvbGUubG9nKCdhdHRyaWJ1dGVzJyxhdHRyaWJ1dGVzLHdwLmVsZW1lbnQpO1xuXHRcdHZhciBzaG93VGV4dEJlZm9yZVNoYXJlID0gXCJ5ZXNcIjtcblx0XHR2YXIgdGV4dEJlZm9yZVNoYXJlID0gXCJQbGVhc2UgU2hhcmU6XCI7XG5cdFx0aWYgKGF0dHJpYnV0ZXMuc2hvd1RleHRCZWZvcmVTaGFyZSB8fCAnJyAhPT0gYXR0cmlidXRlcy5zaG93VGV4dEJlZm9yZVNoYXJlKSB7XG5cdFx0XHRzaG93VGV4dEJlZm9yZVNoYXJlID0gYXR0cmlidXRlcy5zaG93VGV4dEJlZm9yZVNoYXJlO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRvbkF0dHJDaGFuZ2UoJ3Nob3dUZXh0QmVmb3JlU2hhcmUnLCAneWVzJyk7XG5cdFx0fVxuXHRcdGlmIChhdHRyaWJ1dGVzLnRleHRCZWZvcmVTaGFyZSB8fCAnJyAhPT0gYXR0cmlidXRlcy50ZXh0QmVmb3JlU2hhcmUpIHtcblx0XHRcdHRleHRCZWZvcmVTaGFyZSA9IGF0dHJpYnV0ZXMudGV4dEJlZm9yZVNoYXJlO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRvbkF0dHJDaGFuZ2UoJ3RleHRCZWZvcmVTaGFyZScsICdQbGVhc2UgU2hhcmU6Jyk7XG5cdFx0fVxuXG5cdFx0Ly8gQ3JlYXRlcyBhIDxwIGNsYXNzPSd3cC1ibG9jay1jZ2ItYmxvY2stc29jaWFsLXNoYXJlLWJsb2NrJz48L3A+LlxuXHRcdC8vIHJldHVybiByZW5kZXJCdXR0b25zKHByb3BzLmF0dHJpYnV0ZXMpO1xuXHRcdHZhciB0YXJnZXQgPSBqUXVlcnkoJ2RpdltkYXRhLWJsb2NrPVwiJyArIHByb3BzLmNsaWVudElkICsgJ1wiXScpLmZpbmQoJy5zZnNpX3BsdXNfYmxvY2tfY29udGFpbmVyJyk7XG5cdFx0Ly8gY29uc29sZS5sb2cocHJvcHMsdGFyZ2V0LHRhcmdldC5sZW5ndGgpO1xuXHRcdGlmICh0YXJnZXQubGVuZ3RoID4gMCkge1xuXHRcdFx0dmFyIGJ1dHRvbnMgPSB0YXJnZXQuZmluZCgnLnNmc2lfcGx1c19ibG9jaz5kaXYnKTtcblx0XHRcdGlmIChidXR0b25zLmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0XHRmZXRjaEJ1dHRvbnMoYXR0cmlidXRlcy5pY29uVHlwZSwgYXR0cmlidXRlcywgdGFyZ2V0KTtcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0c2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdHZhciB0YXJnZXQgPSBqUXVlcnkoJ2RpdltkYXRhLWJsb2NrPVwiJyArIHByb3BzLmNsaWVudElkICsgJ1wiXScpLmZpbmQoJy5zZnNpX3BsdXNfYmxvY2tfY29udGFpbmVyJyk7XG5cdFx0XHRcdHZhciBidXR0b25zID0gdGFyZ2V0LmZpbmQoJy5zZnNpX3BsdXNfYmxvY2s+ZGl2Jyk7XG5cdFx0XHRcdGlmIChidXR0b25zLmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0XHRcdGZldGNoQnV0dG9ucyhhdHRyaWJ1dGVzLmljb25UeXBlLCBhdHRyaWJ1dGVzLCB0YXJnZXQpO1xuXHRcdFx0XHR9XG5cdFx0XHR9LCAzMDAwKTtcblx0XHR9XG5cblx0XHRyZXR1cm4gW2VsKHdwLmVkaXRvci5JbnNwZWN0b3JDb250cm9scywgeyBrZXk6ICdzZnNpLXBsdXMtYmxvY2staW5zcGVjdG9yJyB9LCBlbCgnZGl2JywgeyBjbGFzc05hbWU6IFwic2ZzaV9wbHVzX2Jsb2NrX2luc3BlY3RvclwiIH0sIGVsKCdoMycsIHsgY2xhc3NOYW1lOiAnc2ZzaV9wbHVzX2Jsb2NrX2ljb250eXBlX2hlYWRlcicgfSwgX18oJ1R5cGUnKSksIGVsKCdzZWxlY3QnLCB7IGNsYXNzTmFtZTogJ2Zvcm0tY29udHJvbCBzZnNpX3BsdXNfYmxvY2tfaWNvbnR5cGVfc2VsZWN0b3InLFxuXHRcdFx0dmFsdWU6IGF0dHJpYnV0ZXMuaWNvblR5cGUsXG5cdFx0XHRvbkNoYW5nZTogZnVuY3Rpb24gb25DaGFuZ2UoZXZlbnQpIHtcblx0XHRcdFx0dmFyIHRhcmdldCA9IGpRdWVyeSgnLndwLWJsb2NrLmlzLXNlbGVjdGVkJykuZmluZCgnLnNmc2lfcGx1c19ibG9ja19jb250YWluZXInKTtcblx0XHRcdFx0c2V0QXR0cmlidXRlcyh7IGljb25UeXBlOiBldmVudC50YXJnZXQudmFsdWUgfSk7XG5cdFx0XHRcdGZldGNoQnV0dG9ucyhldmVudC50YXJnZXQudmFsdWUsIGF0dHJpYnV0ZXMsIHRhcmdldCk7XG5cdFx0XHR9XG5cdFx0fSwgZWwoJ29wdGlvbicsIHtcblx0XHRcdCd2YWx1ZSc6ICdyb3VuZCdcblx0XHR9LCAnUm91bmQgLyDCq21haW7CuyBpY29ucycpLCBlbCgnb3B0aW9uJywge1xuXHRcdFx0J3ZhbHVlJzogJ3JlY3RhbmdsZSdcblx0XHR9LCAnUmVjdGFuZ2xlIGljb25zJykpLCAocHJvcHMuYXR0cmlidXRlcy5pY29uVHlwZSA9PT0gXCJyb3VuZFwiIHx8IHVuZGVmaW5lZCA9PT0gcHJvcHMuYXR0cmlidXRlcy5pY29uVHlwZSkgJiYgZWwoJ3AnLCB7IGNsYXNzTmFtZTogJ3Nmc2lfcGx1c19ibG9ja19pY29udHlwZV9kZXNjJyB9LCBfXygnIFRob3NlIGFyZSB0aGUgaWNvbnMgeW91IHNlbGVjdGVkIHVuZGVyIHF1ZXN0aW9uIDEgb24gdGhlIHBsdWdpbuKAmHMgJyksIGVsKCdhJywgeyAndGFyZ2V0JzogJ19ibGFuaycsICdocmVmJzogJy93cC1hZG1pbi9hZG1pbi5waHA/cGFnZT1zZnNpLXBsdXMtb3B0aW9ucyN1aS1pZC0xJyB9LCBfXygnIHNldHRpbmdzIHBhZ2UuJykpKSwgcHJvcHMuYXR0cmlidXRlcy5pY29uVHlwZSA9PT0gXCJyZWN0YW5nbGVcIiAmJiBlbCgncCcsIHsgY2xhc3NOYW1lOiAnc2ZzaV9wbHVzX2Jsb2NrX2ljb250eXBlX2Rlc2MnIH0sIF9fKCdUaG9zZSBhcmUgdGhlIGljb25zIHlvdSBzZWxlY3RlZCAnKSwgZWwoJ2EnLCB7ICd0YXJnZXQnOiAnX2JsYW5rJywgJ2hyZWYnOiAnL3dwLWFkbWluL2FkbWluLnBocD9wYWdlPXNmc2ktcGx1cy1vcHRpb25zI3VpLWlkLTUnIH0sIF9fKCdoZXJlLicpKSksIGVsKCdoMycsIHsgY2xhc3NOYW1lOiAnc2ZzaV9wbHVzX2Jsb2NrX2ljb250eXBlX2hlYWRlcicgfSwgX18oJ0FsaWdubWVudCcpKSwgZWwoJ3NlbGVjdCcsIHsgY2xhc3NOYW1lOiAnZm9ybS1jb250cm9sIHNmc2lfcGx1c19ibG9ja19pY29uYWxpZ25tZW50X3NlbGVjdG9yJyxcblx0XHRcdHZhbHVlOiBhdHRyaWJ1dGVzLmljb25BbGlnbmVtdCxcblx0XHRcdG9uQ2hhbmdlOiBmdW5jdGlvbiBvbkNoYW5nZShldmVudCkge1xuXHRcdFx0XHRzZXRBdHRyaWJ1dGVzKHsgaWNvbkFsaWduZW10OiBldmVudC50YXJnZXQudmFsdWUgfSk7XG5cdFx0XHRcdHZhciB0YXJnZXQgPSBqUXVlcnkoJy53cC1ibG9jay5pcy1zZWxlY3RlZCAuc2ZzaV9wbHVzX2Jsb2NrX2NvbnRhaW5lcicpO1xuXHRcdFx0XHRpZiAoJ2NlbnRlcicgPT09IGV2ZW50LnRhcmdldC52YWx1ZSkge1xuXHRcdFx0XHRcdGpRdWVyeSh0YXJnZXQpLmZpbmQoJy5zZnNpX3BsdXNfYmxvY2tfdGV4dF9iZWZvcmVfaWNvbicpLmNzcyh7ICdkaXNwbGF5JzogJ2luaGVyaXQnIH0pO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGpRdWVyeSh0YXJnZXQpLmNzcyh7ICd0ZXh0LWFsaWduJzogZXZlbnQudGFyZ2V0LnZhbHVlIH0pO1xuXHRcdFx0fVxuXHRcdH0sIGVsKCdvcHRpb24nLCB7XG5cdFx0XHQndmFsdWUnOiAnbGVmdCdcblx0XHR9LCAnTGVmdCcpLCBlbCgnb3B0aW9uJywge1xuXHRcdFx0J3ZhbHVlJzogJ3JpZ2h0J1xuXHRcdH0sICdSaWdodCcpLCBlbCgnb3B0aW9uJywge1xuXHRcdFx0J3ZhbHVlJzogJ2NlbnRlcidcblx0XHR9LCAnQ2VudGVyJykpLCAocHJvcHMuYXR0cmlidXRlcy5pY29uVHlwZSA9PT0gXCJyb3VuZFwiIHx8IHVuZGVmaW5lZCA9PT0gcHJvcHMuYXR0cmlidXRlcy5pY29uVHlwZSkgJiYgZWwoJ2RpdicsIHsgY2xhc3NOYW1lOiAnc2ZzaV9wbHVzX2Jsb2NrX2ljb25wZXJyb3dfYm9keScgfSwgZWwoJ3NwYW4nLCB7IGNsYXNzTmFtZTogJ2xhYmVsJyB9LCBfXygnTWF4LiBpY29ucyBwZXIgcm93JykpLCBlbCgnaW5wdXQnLCB7XG5cdFx0XHR0eXBlOiAndGV4dCcsXG5cdFx0XHR2YWx1ZTogYXR0cmlidXRlcy5tYXhQZXJSb3csXG5cdFx0XHRvbkNoYW5nZTogZnVuY3Rpb24gb25DaGFuZ2UoZXZlbnQpIHtcblx0XHRcdFx0Ly8gY29uc29sZS5sb2coZXZlbnQudGFyZ2V0LGV2ZW50LnRhcmdldC52YWx1ZSk7XG5cdFx0XHRcdHNldEF0dHJpYnV0ZXMoeyBtYXhQZXJSb3c6IChwYXJzZUludChldmVudC50YXJnZXQudmFsdWUpIHx8IDApICsgJycgfSk7XG5cdFx0XHRcdGNoYW5nZUljb25XaWR0aChldmVudC50YXJnZXQudmFsdWUpO1xuXHRcdFx0fVxuXHRcdH0pKSwgZWwoJ2xhYmVsJywge1xuXHRcdFx0aHRtbEZvcjogJ3Nmc2ktcGx1cy10ZXh0LWJlZm9yZS1pY29ucycsXG5cdFx0XHRjbGFzc05hbWU6ICdzZnNpX3BsdXNfYmxvY2tfdGV4dGJlZm9yZWljb25zJ1xuXHRcdH0sIGVsKCdpbnB1dCcsIHtcblx0XHRcdGNsYXNzTmFtZTogXCJmb3JtLWNvbnRyb2xcIixcblx0XHRcdGNoZWNrZWQ6IGF0dHJpYnV0ZXMuc2hvd1RleHRCZWZvcmVTaGFyZSA9PSAneWVzJyxcblx0XHRcdHR5cGU6ICdjaGVja2JveCcsXG5cdFx0XHRvbkNoYW5nZTogZnVuY3Rpb24gb25DaGFuZ2UoZXZlbnQpIHtcblx0XHRcdFx0c2V0QXR0cmlidXRlcyh7IHNob3dUZXh0QmVmb3JlU2hhcmU6IGV2ZW50LnRhcmdldC5jaGVja2VkID8gJ3llcycgOiAnbm8nIH0pO1xuXHRcdFx0fVxuXHRcdH0pLCAnVGV4dCBiZWZvcmUgaWNvbnM/JyksIGF0dHJpYnV0ZXMuc2hvd1RleHRCZWZvcmVTaGFyZSA9PSAneWVzJyAmJiBlbCgnaW5wdXQnLCB7XG5cdFx0XHRjbGFzc05hbWU6ICdmb3JtLWlucHV0IHNmc2lfcGx1c19ibG9ja190ZXh0YmVmb3JlaWNvbnNfaGVhZGVyJyxcblx0XHRcdHZhbHVlOiBhdHRyaWJ1dGVzLnRleHRCZWZvcmVTaGFyZSxcblx0XHRcdHN0eWxlOiB7XG5cdFx0XHRcdCdwYWRkaW5nLXRvcCc6ICczcHgnXG5cdFx0XHR9LFxuXHRcdFx0b25DaGFuZ2U6IGZ1bmN0aW9uIG9uQ2hhbmdlKGV2ZW50KSB7XG5cdFx0XHRcdHNldEF0dHJpYnV0ZXMoeyB0ZXh0QmVmb3JlU2hhcmU6IGV2ZW50LnRhcmdldC52YWx1ZSB9KTtcblx0XHRcdH1cblx0XHR9KSwgYXR0cmlidXRlcy5zaG93VGV4dEJlZm9yZVNoYXJlID09PSAneWVzJyAmJiBlbCgnZGl2JywgeyBjbGFzc05hbWU6ICdmb3JtLWlucHV0IHNmc2lfcGx1c19ibG9ja190ZXh0YmVmb3JlaWNvbnNfYm9keScgfSwgX18oJ0RlZmluZSB0aGUgZm9udCBzaXplICYgdHlwZSBpbiBvdXIgJyksIGVsKCdhJywgeyAnaHJlZic6ICdodHRwczovL3d3dy51bHRpbWF0ZWx5c29jaWFsLmNvbS91c20tcHJlbWl1bS8nLCAndGFyZ2V0JzogJ19ibGFuaycgfSwgX18oJ1ByZW1pdW0gcGx1Z2luJykpKSwgZWwoJ2gzJywgeyBjbGFzc05hbWU6ICdzZnNpX3BsdXNfYmxvY2tfbm90ZXNfaGVhZGluZycgfSwgX18oJ05vdGVzJykpLCBlbCgnaHInKSwgZWwoJ3VsJywgeyBjbGFzc05hbWU6ICdzZnNpX3BsdXNfYmxvY2tfbm90ZXNfbGlzdCcgfSwgZWwoJ2xpJywgeyBjbGFzc05hbWU6ICdzZnNpX3BsdXNfYmxvY2tfbm90ZXNfaXRlbScgfSwgX18oJ0ZvciBhbGwgb3RoZXIgc2VsZWN0aW9ucyAoIFdoYXQgdGhlIGljb25zIHNob3VsZCBkbyBldGMuKSBwbGVhc2UgZ28gdG8gJyksIGVsKCdhJywgeyAnaHJlZic6ICh3aW5kb3cuc2ZzaV9wbHVzX2xpbmtzID8gd2luZG93LnNmc2lfcGx1c19saW5rcy5hZG1pbl91cmwgOiAnL3dwLWFkbWluL2FkbWluLnBocCcpICsgJz9wYWdlPXNmc2ktcGx1cy1vcHRpb25zJywgJ3RhcmdldCc6ICdfYmxhbmsnIH0sIF9fKCdzZXR0aW5ncyBwYWdlJykpKSwgZWwoJ2xpJywgeyBjbGFzc05hbWU6ICdzZnNpX3BsdXNfYmxvY2tfbm90ZXNfaXRlbScgfSwgX18oJ1RvIHNlZSB0aGUgaWNvbnMgaW4g4oCaZnVsbCBhY3Rpb27igJggKHdpdGggYWxsIGZlYXR1cmVzKSBwbGVhc2Ugb3BlbiB0aGUgcGFnZSBpbiBsaXZlIG9yIHByZXZpZXcgbW9kZS4nKSksIGVsKCdsaScsIHsgY2xhc3NOYW1lOiAnc2ZzaV9wbHVzX2Jsb2NrX25vdGVzX2l0ZW0nIH0sIF9fKCdJZiBxdWVzdGlvbnMgcmVtYWluLCBwbGVhc2UgYXNrIHRoZW0gaW4gdGhlICcpLCBlbCgnYScsIHtcblx0XHRcdCdocmVmJzogJ2h0dHBzOi8vZ29vLmdsL2t0QWVEdicsXG5cdFx0XHQndGFyZ2V0JzogJ19ibGFuaydcblx0XHR9LCBfXygnc3VwcG9ydCBmb3J1bScpKSwgX18oJyDigJMgd2XigJhsbCB0cnkgdG8gcmVzcG9uZCBxdWlja2x5LicpLCBlbCgnaW1nJywgeyBzcmM6ICh3aW5kb3cuc2ZzaV9wbHVzX2xpbmtzID8gd2luZG93LnNmc2lfcGx1c19saW5rcy5wbHVnaW5fZGlyX3VybCA6ICcvd3AtY29udGVudC9wbHVnaW5zL3VsdGltYXRlLXNvY2lhbC1tZWRpYS1wbHVzJykgKyAnL2ltYWdlcy9JY19pbnNlcnRfZW1vdGljb25fNDhweC5zdmcnLCBzdHlsZTogeyB3aWR0aDogJzE4cHgnLCAndmVydGljYWwtYWxpZ24nOiAndGV4dC1ib3R0b20nIH0gfSkpKSwgZWwoJ2gzJywgeyBjbGFzc05hbWU6ICdzZnNpX3BsdXNfYmxvY2tfYWRfaGVhZGluZycgfSwgJ1dhbnQgKG11Y2gpIG1vcmU/JyksIGVsKCdkaXYnLCB7IGNsYXNzTmFtZTogJ3Nmc2lfcGx1c19ibG9ja19hZF9ib2R5JyB9LCBlbCgnZGl2Jywge30sIF9fKCdDaGVjayBvdXQgb3VyICcpLCBlbCgnYScsIHsgJ2hyZWYnOiAnaHR0cHM6Ly93d3cudWx0aW1hdGVseXNvY2lhbC5jb20vdXNtLXByZW1pdW0vP3V0bV9zb3VyY2U9cGx1c19ndXRlbmJlcmdfcGFnZSZ1dG1fY2FtcGFpZ249c2lkZV93aWRnZXQmdXRtX21lZGl1bT1saW5rJywgJ3RhcmdldCc6ICdfYmxhbmsnIH0sIF9fKCdwcmVtaXVtIHBsdWdpbuKAmHMgZmVhdHVyZXMnKSksIF9fKCcuIFdhdGNoIGEgdGVhc2VyOiAnKSkpLCBlbCgnZGl2JywgeyBzdHlsZTogeyAndGV4dC1hbGlnbic6ICdjZW50ZXInIH0gfSwgZWwoJ2lmcmFtZScsIHsgc3JjOiAnaHR0cHM6Ly9wbGF5ZXIudmltZW8uY29tL3ZpZGVvLzI2OTE0MDc5OCcsIHdpZHRoOiAnNjQwJywgZnJhbWVib3JkZXI6IDAsICd3ZWJraXRhbGxvd2Z1bGxzY3JlZW4nOiBcIlwiLCAnbW96YWxsb3dmdWxsc2NyZWVuJzogXCJcIiwgJ2FsbG93ZnVsbHNjcmVlbic6IFwiXCIgfSksIGVsKCdhJywgeyBocmVmOiBcImh0dHBzOi8vd3d3LnVsdGltYXRlbHlzb2NpYWwuY29tL3VzbS1wcmVtaXVtLz91dG1fc291cmNlPXBsdXNfZ3V0ZW5iZXJnX3BhZ2UmdXRtX2NhbXBhaWduPXNpZGVfd2lkZ2V0JnV0bV9tZWRpdW09bGlua1wiLCAndGFyZ2V0JzogJ19ibGFuaycsIHN0eWxlOiB7ICdkaXNwbGF5JzogJ2lubGluZS1ibG9jaycsIHBhZGRpbmc6ICc0cHggMTBweCcsICd0ZXh0LWRlY29yYXRpb24nOiAnbm9uZScsICdiYWNrZ3JvdW5kJzogJyMwMEExNUEnLCAnY29sb3InOiAnI2ZmZicsICdmb250LXNpemUnOiAnMTFweCcsICdmb250LXdlaWdodCc6ICc5MDAnIH0gfSwgX18oJ0NoZWNrIG91dCB0aGUgUHJlbWl1bSBQbHVnaW4gPj4nKSkpLCBlbCgnYnInKSwgZWwoJ3NwYW4nLCB7IGNsYXNzTmFtZTogJ3Nmc2lfcGx1c19ibG9ja19hZF9mb290ZXInIH0sIF9fKCcuLm9ubHkgMjQuOTggVVNEIChpbmNsdWRlcyBzdXBwb3J0IGFuZCB1cGRhdGVzIGZvciAxIHllYXIsIGFuZCBhZnRlciB0aGF0IGl0IHdpbGwgbm90IGJlIGRlYWN0aXZhdGVkLCBzbyB5b3UgY2FuIGp1c3Qga2VlcCB1c2luZyBpdCEpJykpKSksIGVsKCdkaXYnLCB7IGtleTogJ3Nmc2ktcGx1cy1ibG9jay1jb250ZW50JywgY2xhc3NOYW1lOiAnc2ZzaV9wbHVzX2Jsb2NrX2NvbnRhaW5lciBzZnNpX3BsdXNfYmxvY2tfd3JhcHBlcicgfSwgJ1xcdCcsIHNob3dUZXh0QmVmb3JlU2hhcmUgPT0gXCJ5ZXNcIiAmJiBlbCgnc3BhbicsIHsgY2xhc3NOYW1lOiAnc2ZzaV9wbHVzX2Jsb2NrX3RleHRfYmVmb3JlX2ljb24nLCAnZGF0YS1hbGlnbic6IGF0dHJpYnV0ZXMuaWNvbkFsaWduZW10IH0sIHRleHRCZWZvcmVTaGFyZSksIGVsKCdkaXYnLCB7IGNsYXNzTmFtZTogJ3Nmc2lfcGx1c19ibG9jaycsICdkYXRhLWNvdW50JzogYXR0cmlidXRlcy5tYXhQZXJSb3csICdkYXRhLWFsaWduJzogYXR0cmlidXRlcy5pY29uQWxpZ25lbXQsICdkYXRhLWljb24tdHlwZSc6IGF0dHJpYnV0ZXMuaWNvblR5cGUgfSwgJ2xvYWRpbmcuLi4uJykpXTtcblx0fSxcblxuXHQvKipcbiAgKiBUaGUgc2F2ZSBmdW5jdGlvbiBkZWZpbmVzIHRoZSB3YXkgaW4gd2hpY2ggdGhlIGRpZmZlcmVudCBhdHRyaWJ1dGVzIHNob3VsZCBiZSBjb21iaW5lZFxuICAqIGludG8gdGhlIGZpbmFsIG1hcmt1cCwgd2hpY2ggaXMgdGhlbiBzZXJpYWxpemVkIGJ5IEd1dGVuYmVyZyBpbnRvIHBvc3RfY29udGVudC5cbiAgKlxuICAqIFRoZSBcInNhdmVcIiBwcm9wZXJ0eSBtdXN0IGJlIHNwZWNpZmllZCBhbmQgbXVzdCBiZSBhIHZhbGlkIGZ1bmN0aW9uLlxuICAqXG4gICogQGxpbmsgaHR0cHM6Ly93b3JkcHJlc3Mub3JnL2d1dGVuYmVyZy9oYW5kYm9vay9ibG9jay1hcGkvYmxvY2stZWRpdC1zYXZlL1xuICAqL1xuXHRkZXByZWNhdGVkOiBbe1xuXHRcdGF0dHJpYnV0ZXM6IHtcblx0XHRcdFwianNjb2RlXCI6IHtcblx0XHRcdFx0XCJkZWZhdWx0XCI6IFwiXFxuXFx0XFx0alF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigkKSB7XFxuXFx0XFx0XFx0alF1ZXJ5LmFqYXgoe1xcblxcdFxcdFxcdFxcdCd1cmwnOiAnL3dwLWpzb24vdWx0aW1hdGUtc29jaWFsLW1lZGlhLXBsdXMvdjEvaWNvbnMvP3NoYXJlX3VybD0nK3dpbmRvdy5sb2NhdGlvbi5ocmVmLFxcblxcdFxcdFxcdFxcdCdtZXRob2QnOiAnR0VUJ1xcblxcdFxcdFxcdH0pLmRvbmUoIGZ1bmN0aW9uKHJlc3BvbnNlKXtcXG5cXHRcXHRcXHRcXHQkKCcuc2ZzaV9wbHVzX2Jsb2NrX2NvbnRhaW5lciAuc2ZzaV9wbHVzX2Jsb2NrJykuaHRtbChyZXNwb25zZSk7aWYod2luZG93LmdhcGkpe3dpbmRvdy5nYXBpLnBsdXNvbmUuZ28oKTt3aW5kb3cuZ2FwaS5wbHVzLmdvKCk7d2luZG93LmdhcGkueXRzdWJzY3JpYmUuZ28oKTt9O2lmKHdpbmRvdy50d3R0cil7d2luZG93LnR3dHRyLndpZGdldHMubG9hZCgpO307aWYod2luZG93LklOKXt3aW5kb3cuSU4ucGFyc2UoKTt9O2lmKHdpbmRvdy5hZGR0aGlzKXtpZih3aW5kb3cuYWRkdGhpcy50b29sYm94KXt3aW5kb3cuYWRkdGhpcy50b29sYm94KCcuYWRkdGhpc19idXR0b24uc2ZpY24nKTt9ZWxzZXt3aW5kb3cuYWRkdGhpcy5pbml0KCk7d2luZG93LmFkZHRoaXMudG9vbGJveCgnLmFkZHRoaXNfYnV0dG9uLnNmaWNuJyk7fX07aWYod2luZG93LlBpblV0aWxzKXt3aW5kb3cuUGluVXRpbHMuYnVpbGQoKTt9O2lmKGpRdWVyeSgnLnNmc2lfcGx1c193RGl2JykubGVuZ3RoID4gMCkge3NldFRpbWVvdXQoZnVuY3Rpb24oKSB7IHZhciBzID0gcGFyc2VJbnQoalF1ZXJ5KCcuc2ZzaV9wbHVzX3dEaXYnKS5oZWlnaHQoKSkgKyAxNSArICdweCc7alF1ZXJ5KCcuc2ZzaV9wbHVzX2hvbGRlcnMnKS5lYWNoKGZ1bmN0aW9uKCkge2pRdWVyeSh0aGlzKS5jc3MoJ2hlaWdodCcsIHMpO30pO2pRdWVyeSgnLnNmc2lfcGx1c193aWRnZXQnKS5jc3MoJ21pbi1oZWlnaHQnLCAnYXV0bycpO30sIDIwMCk7fTtpZih3aW5kb3cuRkIpe2lmKHdpbmRvdy5GQi5YRkJNTCl7d2luZG93LkZCLlhGQk1MLnBhcnNlKCk7fX07XFxuXFx0XFx0XFx0fSk7XFxuXFx0XFx0fSk7XFxuXFx0XCIsXG5cdFx0XHRcdHR5cGU6ICdzdHJpbmcnXG5cdFx0XHR9XG5cdFx0fSxcblxuXHRcdGlzRWxpZ2libGU6IGZ1bmN0aW9uIGlzRWxpZ2libGUoYXR0cmlidXRlcykge1xuXHRcdFx0Y29uc29sZS5sb2coYXR0cmlidXRlcyk7XG5cdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdC8vIHJldHVybiAoYXR0cmlidXRlcy5qc2NvZGU9PT1cIlxcblxcdFxcdGpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oJCkge1xcblxcdFxcdFxcdGpRdWVyeS5hamF4KHtcXG5cXHRcXHRcXHRcXHQndXJsJzogJy93cC1qc29uL3VsdGltYXRlLXNvY2lhbC1tZWRpYS1wbHVzL3YxL2ljb25zLz9zaGFyZV91cmw9Jyt3aW5kb3cubG9jYXRpb24uaHJlZixcXG5cXHRcXHRcXHRcXHQnbWV0aG9kJzogJ0dFVCdcXG5cXHRcXHRcXHR9KS5kb25lKCBmdW5jdGlvbihyZXNwb25zZSl7XFxuXFx0XFx0XFx0XFx0JCgnLnNmc2lfcGx1c19ibG9ja19jb250YWluZXIgLnNmc2lfcGx1c19ibG9jaycpLmh0bWwocmVzcG9uc2UpO2lmKHdpbmRvdy5nYXBpKXt3aW5kb3cuZ2FwaS5wbHVzb25lLmdvKCk7d2luZG93LmdhcGkucGx1cy5nbygpO3dpbmRvdy5nYXBpLnl0c3Vic2NyaWJlLmdvKCk7fTtpZih3aW5kb3cudHd0dHIpe3dpbmRvdy50d3R0ci53aWRnZXRzLmxvYWQoKTt9O2lmKHdpbmRvdy5JTil7d2luZG93LklOLnBhcnNlKCk7fTtpZih3aW5kb3cuYWRkdGhpcyl7aWYod2luZG93LmFkZHRoaXMudG9vbGJveCl7d2luZG93LmFkZHRoaXMudG9vbGJveCgnLmFkZHRoaXNfYnV0dG9uLnNmaWNuJyk7fWVsc2V7d2luZG93LmFkZHRoaXMuaW5pdCgpO3dpbmRvdy5hZGR0aGlzLnRvb2xib3goJy5hZGR0aGlzX2J1dHRvbi5zZmljbicpO319O2lmKHdpbmRvdy5QaW5VdGlscyl7d2luZG93LlBpblV0aWxzLmJ1aWxkKCk7fTtpZihqUXVlcnkoJy5zZnNpX3BsdXNfd0RpdicpLmxlbmd0aCA+IDApIHtzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyB2YXIgcyA9IHBhcnNlSW50KGpRdWVyeSgnLnNmc2lfcGx1c193RGl2JykuaGVpZ2h0KCkpICsgMTUgKyAncHgnO2pRdWVyeSgnLnNmc2lfcGx1c19ob2xkZXJzJykuZWFjaChmdW5jdGlvbigpIHtqUXVlcnkodGhpcykuY3NzKCdoZWlnaHQnLCBzKTt9KTtqUXVlcnkoJy5zZnNpX3BsdXNfd2lkZ2V0JykuY3NzKCdtaW4taGVpZ2h0JywgJ2F1dG8nKTt9LCAyMDApO307aWYod2luZG93LkZCKXtpZih3aW5kb3cuRkIuWEZCTUwpe3dpbmRvdy5GQi5YRkJNTC5wYXJzZSgpO319O1xcblxcdFxcdFxcdH0pO1xcblxcdFxcdH0pO1xcblxcdFwiKTtcblx0XHR9LFxuXHRcdG1pZ3JhdGU6IGZ1bmN0aW9uIG1pZ3JhdGUoYXR0cmlidXRlcykge1xuXHRcdFx0Y29uc29sZS5sb2coJ21pZ3JhdGUnLCBhdHRyaWJ1dGVzKTtcblx0XHRcdHJldHVybiBbe1xuXHRcdFx0XHRcImpzY29kZVwiOiBcIlxcblxcdFxcdGpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oJCkge1xcblxcdFxcdFxcdGpRdWVyeS5hamF4KHtcXG5cXHRcXHRcXHRcXHQndXJsJzogJy93cC1qc29uL3VsdGltYXRlLXNvY2lhbC1tZWRpYS1wbHVzL3YxL2ljb25zLz9zaGFyZV91cmw9Jyt3aW5kb3cubG9jYXRpb24uaHJlZixcXG5cXHRcXHRcXHRcXHQnbWV0aG9kJzogJ0dFVCdcXG5cXHRcXHRcXHR9KS5kb25lKCBmdW5jdGlvbihyZXNwb25zZSl7XFxuXFx0XFx0XFx0XFx0JCgnLnNmc2lfcGx1c19ibG9ja193cmFwcGVyIC5zZnNpX3BsdXNfYmxvY2snKS5odG1sKHJlc3BvbnNlKTtzZnNpX3BsdXNfdXBkYXRlX2ljb25jb3VudCgpO2lmKHdpbmRvdy5nYXBpKXt3aW5kb3cuZ2FwaS5wbHVzb25lLmdvKCk7d2luZG93LmdhcGkucGx1cy5nbygpO3dpbmRvdy5nYXBpLnl0c3Vic2NyaWJlLmdvKCk7fTtpZih3aW5kb3cudHd0dHIpe3dpbmRvdy50d3R0ci53aWRnZXRzLmxvYWQoKTt9O2lmKHdpbmRvdy5JTil7d2luZG93LklOLnBhcnNlKCk7fTtpZih3aW5kb3cuYWRkdGhpcyl7aWYod2luZG93LmFkZHRoaXMudG9vbGJveCl7d2luZG93LmFkZHRoaXMudG9vbGJveCgnLmFkZHRoaXNfYnV0dG9uLnNmaWNuJyk7fWVsc2V7d2luZG93LmFkZHRoaXMuaW5pdCgpO3dpbmRvdy5hZGR0aGlzLnRvb2xib3goJy5hZGR0aGlzX2J1dHRvbi5zZmljbicpO319O2lmKHdpbmRvdy5QaW5VdGlscyl7d2luZG93LlBpblV0aWxzLmJ1aWxkKCk7fTtpZihqUXVlcnkoJy5zZnNpX3BsdXNfd0RpdicpLmxlbmd0aCA+IDApIHtzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyB2YXIgcyA9IHBhcnNlSW50KGpRdWVyeSgnLnNmc2lfcGx1c193RGl2JykuaGVpZ2h0KCkpICsgMTUgKyAncHgnO2pRdWVyeSgnLnNmc2lfcGx1c19ob2xkZXJzJykuZWFjaChmdW5jdGlvbigpIHtqUXVlcnkodGhpcykuY3NzKCdoZWlnaHQnLCBzKTt9KTtqUXVlcnkoJy5zZnNpX3BsdXNfd2lkZ2V0JykuY3NzKCdtaW4taGVpZ2h0JywgJ2F1dG8nKTt9LCAyMDApO307aWYod2luZG93LkZCKXtpZih3aW5kb3cuRkIuWEZCTUwpe3dpbmRvdy5GQi5YRkJNTC5wYXJzZSgpO319O1xcblxcdFxcdFxcdH0pO1xcblxcdFxcdH0pO1xcblxcdFwiLFxuXHRcdFx0XHRzaG93VGV4dEJlZm9yZVNoYXJlOiAneWVzJyxcblx0XHRcdFx0dGV4dEJlZm9yZVNoYXJlOiAnUGxlYXNlIFNoYXJlOicsXG5cdFx0XHRcdGljb25UeXBlOiAncm91bmQnLFxuXHRcdFx0XHRpY29uQWxpZ25lbXQ6ICdsZWZ0Jyxcblx0XHRcdFx0bWF4UGVyUm93OiAnNSdcblx0XHRcdH1dO1xuXHRcdH0sXG5cdFx0c2F2ZTogZnVuY3Rpb24gc2F2ZShwcm9wcykge1xuXHRcdFx0Y29uc29sZS5sb2cocHJvcHMpO1xuXHRcdFx0dmFyIGF0dHJpYnV0ZXMgPSBwcm9wcy5hdHRyaWJ1dGVzO1xuXHRcdFx0cmV0dXJuIHJlbmRlckJ1dHRvbnMoYXR0cmlidXRlcyk7XG5cdFx0fVxuXHR9XSxcblxuXHQvLyBkZXByZWNhdGVkOiBbXG5cdC8vIFx0e1xuXHQvLyBcdFx0YXR0cmlidXRlczoge1xuXHQvLyBcdFx0XHRcImpzY29kZVwiOntcblx0Ly8gXHRcdFx0XHRcdFx0XCJkZWZhdWx0XCI6XCJcXG5cXHRcXHRqUXVlcnkoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCQpIHtcXG5cXHRcXHRcXHRqUXVlcnkuYWpheCh7XFxuXFx0XFx0XFx0XFx0J3VybCc6ICcvd3AtanNvbi91bHRpbWF0ZS1zb2NpYWwtbWVkaWEtcGx1cy92MS9pY29ucy8/c2hhcmVfdXJsPScrd2luZG93LmxvY2F0aW9uLmhyZWYsXFxuXFx0XFx0XFx0XFx0J21ldGhvZCc6ICdHRVQnXFxuXFx0XFx0XFx0fSkuZG9uZSggZnVuY3Rpb24ocmVzcG9uc2Upe1xcblxcdFxcdFxcdFxcdCQoJy5zZnNpX3BsdXNfYmxvY2tfY29udGFpbmVyIC5zZnNpX3BsdXNfYmxvY2snKS5odG1sKHJlc3BvbnNlKTtpZih3aW5kb3cuZ2FwaSl7d2luZG93LmdhcGkucGx1c29uZS5nbygpO3dpbmRvdy5nYXBpLnBsdXMuZ28oKTt3aW5kb3cuZ2FwaS55dHN1YnNjcmliZS5nbygpO307aWYod2luZG93LnR3dHRyKXt3aW5kb3cudHd0dHIud2lkZ2V0cy5sb2FkKCk7fTtpZih3aW5kb3cuSU4pe3dpbmRvdy5JTi5wYXJzZSgpO307aWYod2luZG93LmFkZHRoaXMpe2lmKHdpbmRvdy5hZGR0aGlzLnRvb2xib3gpe3dpbmRvdy5hZGR0aGlzLnRvb2xib3goJy5hZGR0aGlzX2J1dHRvbi5zZmljbicpO31lbHNle3dpbmRvdy5hZGR0aGlzLmluaXQoKTt3aW5kb3cuYWRkdGhpcy50b29sYm94KCcuYWRkdGhpc19idXR0b24uc2ZpY24nKTt9fTtpZih3aW5kb3cuUGluVXRpbHMpe3dpbmRvdy5QaW5VdGlscy5idWlsZCgpO307aWYoalF1ZXJ5KCcuc2ZzaV9wbHVzX3dEaXYnKS5sZW5ndGggPiAwKSB7c2V0VGltZW91dChmdW5jdGlvbigpIHsgdmFyIHMgPSBwYXJzZUludChqUXVlcnkoJy5zZnNpX3BsdXNfd0RpdicpLmhlaWdodCgpKSArIDE1ICsgJ3B4JztqUXVlcnkoJy5zZnNpX3BsdXNfaG9sZGVycycpLmVhY2goZnVuY3Rpb24oKSB7alF1ZXJ5KHRoaXMpLmNzcygnaGVpZ2h0Jywgcyk7fSk7alF1ZXJ5KCcuc2ZzaV9wbHVzX3dpZGdldCcpLmNzcygnbWluLWhlaWdodCcsICdhdXRvJyk7fSwgMjAwKTt9O2lmKHdpbmRvdy5GQil7aWYod2luZG93LkZCLlhGQk1MKXt3aW5kb3cuRkIuWEZCTUwucGFyc2UoKTt9fTtcXG5cXHRcXHRcXHR9KTtcXG5cXHRcXHR9KTtcXG5cXHRcIixcblx0Ly8gXHRcdFx0XHRcdFx0dHlwZTogJ3N0cmluZydcblx0Ly8gXHRcdFx0fVxuXHQvLyBcdFx0fSxcblx0Ly8gXHRcdHNhdmU6IGZ1bmN0aW9uKCBwcm9wcyApIHtcblx0Ly8gXHRcdFx0dmFyIGF0dHJpYnV0ZXMgPSBwcm9wcy5hdHRyaWJ1dGVzO1xuXHQvLyBcdFx0XHRyZXR1cm4gcmVuZGVyQnV0dG9ucyhhdHRyaWJ1dGVzKTtcblx0Ly8gXHRcdH1cblx0Ly8gXHRcdG1pZ3JhdGU6IGZ1bmN0aW9uKCl7XG5cdC8vIFx0XHRcdHJldHVybiBcblx0Ly8gXHRcdH1cblx0Ly8gXHR9XG5cdC8vIF0sXG5cblxuXHRzYXZlOiBmdW5jdGlvbiBzYXZlKHByb3BzKSB7XG5cdFx0Ly8gY29uc29sZS5sb2cocHJvcHMpO1xuXHRcdHZhciBhdHRyaWJ1dGVzID0gcHJvcHMuYXR0cmlidXRlcztcblx0XHRzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcblx0XHRcdGNoYW5nZUljb25XaWR0aChhdHRyaWJ1dGVzLm1heFBlclJvdyk7XG5cdFx0XHQvLyBjb25zb2xlLmxvZygnY2hhbmdlZEljb25XaWR0aCcpO1xuXHRcdH0sIDMwMCk7XG5cdFx0cmV0dXJuIHJlbmRlckJ1dHRvbnNfbmV3KGF0dHJpYnV0ZXMpO1xuXHR9XG5cbn0pO1xuXG5mdW5jdGlvbiByZW5kZXJCdXR0b25zKGF0dHJpYnV0ZXMpIHtcblx0dmFyIGpzY29kZSA9IGF0dHJpYnV0ZXMuanNjb2RlO1xuXHQvLyBpZihhdHRyaWJ1dGVzLmljb25UeXBlPT09XCJyZWN0YW5nbGVcIil7XG5cdC8vIFx0anNjb2RlPWpzY29kZS5yZXBsYWNlKC93aW5kb3cubG9jYXRpb24uaHJlZi9naSwnd2luZG93LmxvY2F0aW9uLmhyZWYrXCImcmFjdGFuZ2xlX2ljb249MVwiJylcblx0Ly8gfVxuXHRyZXR1cm4gZWwoJ2RpdicsIHsgJ2NsYXNzTmFtZSc6ICdzZnNpX3BsdXNfYmxvY2tfY29udGFpbmVyJyB9LCBcIlxcblx0XCIsIGVsKCdkaXYnLCB7IGNsYXNzTmFtZTogJ3Nmc2lfcGx1c19ibG9jaycgfSwgXCJcIiksIFwiXFxuXHRcIiwgZWwoJ3NjcmlwdCcsIHt9LCBqc2NvZGUpLCBcIlxcblwiKTtcbn1cblxuZnVuY3Rpb24gcmVuZGVyQnV0dG9uc19uZXcoYXR0cmlidXRlcykge1xuXHQvLyBjb25zb2xlLmxvZyhhdHRyaWJ1dGVzKTtcblx0dmFyIGpzY29kZSA9IGF0dHJpYnV0ZXMuanNjb2RlO1xuXHRpZiAoYXR0cmlidXRlcy5pY29uVHlwZSA9PT0gXCJyZWN0YW5nbGVcIikge1xuXHRcdGpzY29kZSA9IGpzY29kZS5yZXBsYWNlKC93aW5kb3cubG9jYXRpb24uaHJlZi9naSwgJ3dpbmRvdy5sb2NhdGlvbi5ocmVmK1wiJnJhY3RhbmdsZV9pY29uPTFcIicpO1xuXHR9XG5cdHZhciBzaG93VGV4dEJlZm9yZVNoYXJlID0gXCJ5ZXNcIjtcblx0dmFyIHRleHRCZWZvcmVTaGFyZSA9IFwiUGxlYXNlIFNoYXJlOlwiO1xuXHRpZiAoYXR0cmlidXRlcy5zaG93VGV4dEJlZm9yZVNoYXJlIHx8ICcnICE9PSBhdHRyaWJ1dGVzLnNob3dUZXh0QmVmb3JlU2hhcmUpIHtcblx0XHRzaG93VGV4dEJlZm9yZVNoYXJlID0gYXR0cmlidXRlcy5zaG93VGV4dEJlZm9yZVNoYXJlO1xuXHR9IGVsc2Uge1xuXHRcdG9uQXR0ckNoYW5nZSgnc2hvd1RleHRCZWZvcmVTaGFyZScsICd5ZXMnKTtcblx0fVxuXHRpZiAoYXR0cmlidXRlcy50ZXh0QmVmb3JlU2hhcmUgfHwgJycgIT09IGF0dHJpYnV0ZXMudGV4dEJlZm9yZVNoYXJlKSB7XG5cdFx0dGV4dEJlZm9yZVNoYXJlID0gYXR0cmlidXRlcy50ZXh0QmVmb3JlU2hhcmU7XG5cdH0gZWxzZSB7XG5cdFx0b25BdHRyQ2hhbmdlKCd0ZXh0QmVmb3JlU2hhcmUnLCAnUGxlYXNlIFNoYXJlOicpO1xuXHR9XG5cdHJldHVybiBlbCgnZGl2JywgeyAnY2xhc3NOYW1lJzogJ3Nmc2lfcGx1c19ibG9ja193cmFwcGVyJyB9LCBcIlxcblx0XCIsIHNob3dUZXh0QmVmb3JlU2hhcmUgPT0gXCJ5ZXNcIiAmJiBlbCgnc3BhbicsIHsgY2xhc3NOYW1lOiAnc2ZzaV9wbHVzX2Jsb2NrX3RleHRfYmVmb3JlX2ljb24nIH0sIHRleHRCZWZvcmVTaGFyZSksIFwiXFxuXCIsIGVsKCdkaXYnLCB7IGNsYXNzTmFtZTogJ3Nmc2lfcGx1c19ibG9jaycsICdkYXRhLWNvdW50JzogYXR0cmlidXRlcy5tYXhQZXJSb3csICdkYXRhLWFsaWduJzogYXR0cmlidXRlcy5pY29uQWxpZ25lbXQsICdkYXRhLWljb24tdHlwZSc6IGF0dHJpYnV0ZXMuaWNvblR5cGUgfSwgXCJcIiksIFwiXFxuXFx0XCJcblx0Ly8gZWwoJ3NjcmlwdCcse30sanNjb2RlXG5cdC8vICksXCJcXG5cIlxuXHQpO1xufVxuZnVuY3Rpb24gY2hhbmdlSWNvbldpZHRoKCkge1xuXHR2YXIgcGVyX3JvdyA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDogbnVsbDtcblxuXHQvLyBjb25zb2xlLmxvZygnaWNvbmNoYW5nZWNhbGxlZCcpO1xuXHQvLyBqUXVlcnkoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCQpe1xuXHQvLyBjb25zb2xlLmxvZygnaWNvbmNoYW5nZWNhbGxlZCBhbmQgZG9jIHJlYWR5Jyk7XG5cdHZhciBpY29uV2lkdGggPSBwYXJzZUludChqUXVlcnkoJy5zZnNpX3BsdXNfYmxvY2tfd3JhcHBlciAuc2ZzaV9wbHVzX3dEaXYgZGl2JykuY3NzKCd3aWR0aCcpKSB8fCA0MDtcblx0Ly8gY29uc29sZS5sb2coJ2ljb253aWR0aCcsaWNvbldpZHRoKTtcblxuXHR2YXIgaWNvbk1hcmdpbiA9IHBhcnNlSW50KGpRdWVyeSgnLnNmc2lfcGx1c19ibG9ja193cmFwcGVyIC5zZnNpX3BsdXNfd0RpdiBkaXYnKS5jc3MoJ21hcmdpbi1sZWZ0JykpIHx8IDA7XG5cdC8vIGNvbnNvbGUubG9nKCdpY29uTWFyZ2luJyxpY29uTWFyZ2luKTtcblxuXHR2YXIgd3JhcHBlcldpZHRoID0gKGljb25XaWR0aCArIGljb25NYXJnaW4pICogcGVyX3Jvdztcblx0Ly8gY29uc29sZS5sb2coJ2luIGljb24gY2hhbmdlICcsaWNvbldpZHRoLGljb25NYXJnaW4sd3JhcHBlcldpZHRoKTtcblx0dmFyIGljb25IZWlnaHQgPSBqUXVlcnkoJy5zZnNpX3BsdXNfYmxvY2tfd3JhcHBlciAuc2ZzaV9wbHVzX3dEaXYgaW1nJykuZmlyc3QoKS5oZWlnaHQoKTtcblx0dmFyIHRleHRIZWlnaHQgPSBqUXVlcnkoJy5zZnNpX3BsdXNfYmxvY2tfdGV4dF9iZWZvcmVfaWNvbicpLmhlaWdodCgpO1xuXHQvLyBjb25zb2xlLmxvZygnd3JhcHBlcldpZHRoJyx3cmFwcGVyV2lkdGgpO1xuXHRqUXVlcnkoJy5zZnNpX3BsdXNfYmxvY2tfdGV4dF9iZWZvcmVfaWNvbicpLmNzcyh7ICdtYXJnaW4tdG9wJzogKHRleHRIZWlnaHQgLSBpY29uSGVpZ2h0KSAvIDIgLSAyICsgJ3B4JyB9KTtcblx0aWYgKGpRdWVyeSgnLnNmc2lfcGx1c19ibG9ja193cmFwcGVyIC5zZnNpcGx1c19ub3JtX3JvdycpLmxlbmd0aCA8IDEpIHtcblx0XHQvLyBjb25zb2xlLmxvZygnc2V0VGltZW91dCcsalF1ZXJ5KCcuc2ZzaV9wbHVzX2Jsb2NrX3dyYXBwZXIgLnNmc2lwbHVzX25vcm1fcm93JykpO1xuXHRcdHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuXHRcdFx0alF1ZXJ5KCcuc2ZzaV9wbHVzX2Jsb2NrX3dyYXBwZXIgLnNmc2lwbHVzX25vcm1fcm93JykuY3NzKHsgJ3dpZHRoJzogd3JhcHBlcldpZHRoICsgJ3B4JyB9KTtcblx0XHR9LCAxMDAwKTtcblx0fSBlbHNlIHt9XG5cdC8vIGNvbnNvbGUubG9nKCdkaWRub3Qgc2V0VGltZW91dCcsalF1ZXJ5KCcuc2ZzaV9wbHVzX2Jsb2NrX3dyYXBwZXIgLnNmc2lwbHVzX25vcm1fcm93JykpO1xuXG5cdC8vIHZhciB0YXJnZXQ9alF1ZXJ5KCcuc2ZzaV9wbHVzX2Jsb2NrX2NvbnRhaW5lcicpO1xuXHQvLyBjb25zb2xlLmxvZyh0YXJnZXQsaWNvbl9hbGlnbm1lbnQpO1xuXHRqUXVlcnkoJy5zZnNpX3BsdXNfYmxvY2tfd3JhcHBlciAuc2ZzaXBsdXNfbm9ybV9yb3cnKS5jc3MoeyAnd2lkdGgnOiB3cmFwcGVyV2lkdGggKyAncHgnIH0pO1xuXHRzZXRJY29uQmxvY2tBbGlnbm1lbnQoKTtcblxuXHQvLyB9KVxufVxuXG5mdW5jdGlvbiBzZXRJY29uQmxvY2tBbGlnbm1lbnQoKSB7XG5cdHZhciB0YXJnZXQgPSBqUXVlcnkoJy53cC1ibG9jay5pcy1zZWxlY3RlZCAuc2ZzaV9wbHVzX2Jsb2NrX2NvbnRhaW5lcicpO1xuXHR2YXIgaWNvbl9hbGlnbm1lbnQgPSB0YXJnZXQuZmluZCgnLnNmc2lfcGx1c19ibG9jaycpLmF0dHIoJ2RhdGEtYWxpZ24nKTtcblx0aWYgKCdjZW50ZXInID09PSBpY29uX2FsaWdubWVudCkge1xuXHRcdGpRdWVyeSh0YXJnZXQpLmZpbmQoJy5zZnNpX3BsdXNfYmxvY2tfdGV4dF9iZWZvcmVfaWNvbicpLmNzcyh7ICdkaXNwbGF5JzogJ2luaGVyaXQnIH0pO1xuXHR9XG5cdGpRdWVyeSh0YXJnZXQpLmNzcyh7ICd0ZXh0LWFsaWduJzogaWNvbl9hbGlnbm1lbnQgfSk7XG59XG5cbmZ1bmN0aW9uIGZldGNoQnV0dG9ucygpIHtcblx0dmFyIGljb25UeXBlID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiBudWxsO1xuXHR2YXIgYXR0cmlidXRlcyA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDogbnVsbDtcblx0dmFyIHRhcmdldCA9IGFyZ3VtZW50cy5sZW5ndGggPiAyICYmIGFyZ3VtZW50c1syXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzJdIDogbnVsbDtcblxuXHRpZiAobnVsbCA9PT0gaWNvblR5cGUgfHwgdW5kZWZpbmVkID09PSBpY29uVHlwZSkge1xuXHRcdGljb25UeXBlID0gXCJyb3VuZFwiO1xuXHR9XG5cdC8vIGNvbnNvbGUubG9nKGljb25UeXBlKTtcblx0Ly8gcmV0dXJuIGpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oJCl7XG5cdC8vIGNvbnNvbGUubG9nKGljb25UeXBlKTtcblx0aWYgKG51bGwgPT0gdGFyZ2V0KSB7XG5cdFx0dGFyZ2V0ID0gJChkb2N1bWVudCk7XG5cdH1cblx0Ly8gY29uc29sZS5sb2codGFyZ2V0KTtcblx0cmV0dXJuIGpRdWVyeS5hamF4KHtcblx0XHQndXJsJzogJy93cC1qc29uL3VsdGltYXRlLXNvY2lhbC1tZWRpYS1wbHVzL3YxL2ljb25zLz9hZG1pbl9yZWZlcmVhbD10cnVlJnJhY3RhbmdsZV9pY29uPScgKyAoJ3JvdW5kJyA9PSBpY29uVHlwZSA/IDAgOiAxKSxcblx0XHQnbWV0aG9kJzogJ0dFVCdcblx0XHQvLyAnZGF0YSc6eydpc19hZG1pbic6dHJ1ZSwnc2hhcmVfdXJsJzonLyd9XG5cdH0pLmRvbmUoZnVuY3Rpb24gKHJlc3BvbnNlKSB7XG5cdFx0Ly8gY29uc29sZS5sb2cocmVzcG9uc2UsJCgnLnNmc2lfcGx1c19ibG9jaycpKTtcblxuXHRcdGlmIChqUXVlcnkodGFyZ2V0KS5maW5kKCcuc2ZzaV9wbHVzX2Jsb2NrJykubGVuZ3RoID4gMCkge1xuXHRcdFx0alF1ZXJ5KHRhcmdldCkuZmluZCgnLnNmc2lfcGx1c19ibG9jaycpLmh0bWwocmVzcG9uc2UpO1xuXHRcdFx0Y2hhbmdlSWNvbldpZHRoKGF0dHJpYnV0ZXMubWF4UGVyUm93KTtcblx0XHRcdGlmIChpY29uVHlwZSAhPT0gJ3JvdW5kJykge1xuXHRcdFx0XHRyZW5kZXJBdXRvU29jaWFsSWNvbnMoKTtcblx0XHRcdH1cblx0XHRcdC8vIGNvbnNvbGUubG9nKCd1cGRhdGVkJyk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRqUXVlcnkoJy5zZnNpX3BsdXNfYmxvY2snKS5odG1sKHJlc3BvbnNlKTtcblx0XHRcdFx0Y2hhbmdlSWNvbldpZHRoKGF0dHJpYnV0ZXMubWF4UGVyUm93KTtcblxuXHRcdFx0XHRjb25zb2xlLmxvZygnbm93IHVwZGF0ZWQnKTtcblx0XHRcdH0sIDUwMDApO1xuXHRcdFx0Y29uc29sZS5sb2coJ3RpbWVzZXQnKTtcblx0XHR9XG5cdH0pLmZhaWwoZnVuY3Rpb24gKHJlc3BvbnNlKSB7XG5cdFx0Ly8gY29uc29sZS5sb2cocmVzcG9uc2UsJCgnLnNmc2lfcGx1c19ibG9jaycpKTtcblx0XHRqUXVlcnkodGFyZ2V0KS5maW5kKCcuc2ZzaV9wbHVzX2Jsb2NrJykuaHRtbChyZXNwb25zZS5yZXNwb25zZVRleHQucmVwbGFjZSgnL1xcXFwvZycsICcnKSk7XG5cdH0pO1xuXHQvLyB9KTtcbn1cbmZ1bmN0aW9uIHJlbmRlckF1dG9Tb2NpYWxJY29ucygpIHtcblx0aWYgKHdpbmRvdy5nYXBpKSB7XG5cdFx0d2luZG93LmdhcGkucGx1c29uZS5nbygpO3dpbmRvdy5nYXBpLnBsdXMuZ28oKTt3aW5kb3cuZ2FwaS55dHN1YnNjcmliZS5nbygpO1xuXHR9O1xuXHRpZiAod2luZG93LnR3dHRyKSB7XG5cdFx0d2luZG93LnR3dHRyLndpZGdldHMubG9hZCgpO1xuXHR9O1xuXHRpZiAod2luZG93LklOICYmIHdpbmRvdy5JTi5wYXJzZSkge1xuXHRcdHdpbmRvdy5JTi5wYXJzZSgpO1xuXHR9O1xuXHRpZiAod2luZG93LmFkZHRoaXMpIHtcblx0XHRpZiAod2luZG93LmFkZHRoaXMudG9vbGJveCkge1xuXHRcdFx0d2luZG93LmFkZHRoaXMudG9vbGJveCgnLmFkZHRoaXNfYnV0dG9uLnNmaWNuJyk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHdpbmRvdy5hZGR0aGlzLmluaXQoKTt3aW5kb3cuYWRkdGhpcy50b29sYm94KCcuYWRkdGhpc19idXR0b24uc2ZpY24nKTtcblx0XHR9XG5cdH07XG5cdGlmICh3aW5kb3cuUGluVXRpbHMpIHtcblx0XHR3aW5kb3cuUGluVXRpbHMuYnVpbGQoKTtcblx0fTtcblx0aWYgKHdpbmRvdy5GQikge1xuXHRcdGlmICh3aW5kb3cuRkIuWEZCTUwpIHtcblx0XHRcdHdpbmRvdy5GQi5YRkJNTC5wYXJzZSgpO1xuXHRcdH1cblx0fTtcbn1cbmlmICh1bmRlZmluZWQgPT09IHNmc2lfcGx1c19mbG9hdF93aWRnZXQpIHtcblx0dmFyIF9zZnNpX3BsdXNfZmxvYXRfd2lkZ2V0ID0gZnVuY3Rpb24gX3Nmc2lfcGx1c19mbG9hdF93aWRnZXQoKSB7XG5cdFx0cmV0dXJuO1xuXHR9O1xufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vc3JjL2Jsb2NrL2Jsb2NrLmpzXG4vLyBtb2R1bGUgaWQgPSAxXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///1\n");
88
 
89
  /***/ }),
90
  /* 2 */
84
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
85
 
86
  "use strict";
87
+ eval("/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__style_scss__ = __webpack_require__(/*! ./style.scss */ 2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__style_scss___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__style_scss__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__editor_scss__ = __webpack_require__(/*! ./editor.scss */ 3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__editor_scss___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1__editor_scss__);\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * BLOCK: social-share-block\n *\n * Registering a basic block with Gutenberg.\n * Simple block, renders and saves the same content without any interactivity.\n */\n\n// Import CSS.\n\n\n\nvar __ = wp.i18n.__; // Import __() from wp.i18n\n\nvar _wp$blocks = wp.blocks,\n registerBlockType = _wp$blocks.registerBlockType,\n RichText = _wp$blocks.RichText,\n TextControl = _wp$blocks.TextControl,\n AlignmentToolbar = _wp$blocks.AlignmentToolbar,\n BlockControls = _wp$blocks.BlockControls,\n InspectorControls = _wp$blocks.InspectorControls; // Import registerBlockType() from wp.blocks\n\n// const {\n// TextControl\n// } = wp.components;\n\nvar el = wp.element.createElement;\n/**\n * Register: aa Gutenberg Block.\n *\n * Registers a new block provided a unique name and an object defining its\n * behavior. Once registered, the block is made editor as an option to any\n * editor interface where blocks are implemented.\n *\n * @link https://wordpress.org/gutenberg/handbook/block-api/\n * @param {string} name Block name.\n * @param {Object} settings Block settings.\n * @return {?WPBlock} The block, if it has been successfully\n * registered; otherwise `undefined`.\n */\n\nvar iconEl = el('svg', { width: 20, height: 20 }, el('g', { 'transform': \"translate(0.000000,20.000000) scale(0.0062,-0.0070)\", 'fill': \"#000000\", 'stroke': \"none\" }, el('path', { d: \"M2055 2721 c-284 -83 -461 -332 -442 -624 l6 -89 -72 6 c-406 39 -818 246 -1090 548 l-66 73 -26 -60 c-101 -227 -55 -484 120 -661 l72 -74 -32 0 c-39 0 -127 26 -179 52 l-39 20 6 -74 c18 -224 178 -428 395 -504 58 -20 61 -22 35 -29 -15 -4 -72 -6 -126 -6 -98 1 -98 1 -92 -21 19 -62 77 -150 141 -214 88 -89 200 -148 317 -166 43 -7 77 -15 77 -18 0 -7 -152 -102 -205 -128 -72 -36 -216 -82 -302 -97 -46 -8 -146 -15 -221 -16 -159 -1 -160 2 10 -85 257 -131 542 -193 838 -181 209 8 392 45 572 115 l68 26 0 393 0 393 -100 0 c-93 0 -100 1 -100 20 0 11 -1 90 -1 175 0 85 1 160 1 165 0 6 40 10 100 10 l100 0 1 138 c1 144 3 170 20 241 34 147 165 265 319 288 49 8 174 9 358 5 l62 -2 0 -175 0 -175 -127 0 c-83 0 -137 -5 -153 -13 -35 -18 -46 -61 -49 -193 l-2 -114 165 0 166 0 0 -37 c0 -21 -7 -96 -15 -168 -8 -71 -15 -138 -15 -147 0 -16 -14 -18 -150 -18 l-150 0 0 -332 c1 -686 3 -637 -22 -642 -13 -3 -90 -8 -172 -12 -82 -3 -143 -10 -136 -14 6 -4 93 -8 191 -9 l179 -2 0 272 0 271 63 72 c119 134 198 250 273 397 113 225 184 512 184 745 l0 101 79 66 c64 54 226 235 217 244 -1 1 -26 -6 -55 -17 -59 -23 -176 -55 -235 -65 l-40 -7 50 39 c86 69 147 149 184 242 l19 49 -88 -43 c-69 -34 -199 -81 -276 -99 -5 -2 -37 19 -70 46 -150 122 -366 170 -540 119z\" })));\n\nregisterBlockType('ultimate-social-media-plus/sfsi-plus-share-block', {\n\t// Block name. Block names must be string that contains a namespace prefix. Example: my-plugin/my-custom-block.\n\ttitle: __('Social Icons'), // Block title.\n\ticon: iconEl, // Block icon from Dashicons → https://developer.wordpress.org/resource/dashicons/.\n\tcategory: 'common', // Block category — Group blocks together based on common traits E.g. common, formatting, layout widgets, embed.\n\tkeywords: [__('Social Icons'), __('Social share'), __('Gutenberg Share')],\n\tattributes: {\n\t\t\"jscode\": {\n\t\t\t\"default\": \"\\n\\t\\tjQuery(document).ready(function($) {\\n\\t\\t\\tjQuery.ajax({\\n\\t\\t\\t\\t'url': '/wp-json/ultimate-social-media-plus/v1/icons/?share_url='+window.location.href,\\n\\t\\t\\t\\t'method': 'GET'\\n\\t\\t\\t}).done( function(response){\\n\\t\\t\\t\\t$('.sfsi_plus_block_wrapper .sfsi_plus_block').html(response);sfsi_plus_update_iconcount();if(window.gapi){window.gapi.plusone.go();window.gapi.plus.go();window.gapi.ytsubscribe.go();};if(window.twttr){window.twttr.widgets.load();};if(window.IN){window.IN.parse();};if(window.addthis){if(window.addthis.toolbox){window.addthis.toolbox('.addthis_button.sficn');}else{window.addthis.init();window.addthis.toolbox('.addthis_button.sficn');}};if(window.PinUtils){window.PinUtils.build();};if(jQuery('.sfsi_plus_wDiv').length > 0) {setTimeout(function() { var s = parseInt(jQuery('.sfsi_plus_wDiv').height()) + 15 + 'px';jQuery('.sfsi_plus_holders').each(function() {jQuery(this).css('height', s);});jQuery('.sfsi_plus_widget').css('min-height', 'auto');}, 200);};if(window.FB){if(window.FB.XFBML){window.FB.XFBML.parse();}};\\n\\t\\t\\t});\\n\\t\\t});\\n\\t\",\n\t\t\ttype: 'string'\n\t\t},\n\t\tshowTextBeforeShare: {\n\t\t\ttype: 'string',\n\t\t\t// source: 'text',\n\t\t\tdefault: 'yes'\n\t\t\t// meta: 'sfsi_plus_gutenberg_show_text_before_share'\n\t\t},\n\t\ttextBeforeShare: {\n\t\t\ttype: 'string',\n\t\t\t// source: 'text',\n\t\t\tdefault: 'Please Share:'\n\t\t},\n\t\ticonType: {\n\t\t\ttype: 'string',\n\t\t\t// source: 'text',\n\t\t\tdefault: 'round'\n\t\t},\n\t\ticonAlignemt: {\n\t\t\ttype: 'string',\n\t\t\t// source: 'text',\n\t\t\tdefault: 'left'\n\t\t},\n\t\tmaxPerRow: {\n\t\t\ttype: 'string',\n\t\t\t// source: 'text',\n\t\t\tdefault: '5'\n\n\t\t}\n\t},\n\t/**\n * The edit function describes the structure of your block in the context of the editor.\n * This represents what the editor will render when the block is used.\n *\n * The \"edit\" property must be a valid function.\n *\n * @link https://wordpress.org/gutenberg/handbook/block-api/block-edit-save/\n */\n\tedit: function edit(props) {\n\t\tfunction onAttrChange(meta, value) {\n\t\t\tprops.setAttributes(_defineProperty({}, meta, value));\n\t\t}\n\t\tvar setAttributes = props.setAttributes;\n\t\t// var focus = props.isSelected;\n\t\tvar attributes = props.attributes;\n\t\t// console.log('attributes',attributes,wp.element);\n\t\tvar showTextBeforeShare = \"yes\";\n\t\tvar textBeforeShare = \"Please Share:\";\n\t\tif (attributes.showTextBeforeShare || '' !== attributes.showTextBeforeShare) {\n\t\t\tshowTextBeforeShare = attributes.showTextBeforeShare;\n\t\t} else {\n\t\t\tonAttrChange('showTextBeforeShare', 'yes');\n\t\t}\n\t\tif (attributes.textBeforeShare || '' !== attributes.textBeforeShare) {\n\t\t\ttextBeforeShare = attributes.textBeforeShare;\n\t\t} else {\n\t\t\tonAttrChange('textBeforeShare', 'Please Share:');\n\t\t}\n\n\t\t// Creates a <p class='wp-block-cgb-block-social-share-block'></p>.\n\t\t// return renderButtons(props.attributes);\n\t\tvar target = jQuery('div[data-block=\"' + props.clientId + '\"]').find('.sfsi_plus_block_container');\n\t\t// console.log(props,target,target.length);\n\t\tif (target.length > 0) {\n\t\t\tvar buttons = target.find('.sfsi_plus_block>div');\n\t\t\tif (buttons.length === 0) {\n\t\t\t\tfetchButtons(attributes.iconType, attributes, target);\n\t\t\t}\n\t\t} else {\n\t\t\tsetTimeout(function () {\n\t\t\t\tvar target = jQuery('div[data-block=\"' + props.clientId + '\"]').find('.sfsi_plus_block_container');\n\t\t\t\tvar buttons = target.find('.sfsi_plus_block>div');\n\t\t\t\tif (buttons.length === 0) {\n\t\t\t\t\tfetchButtons(attributes.iconType, attributes, target);\n\t\t\t\t}\n\t\t\t}, 3000);\n\t\t}\n\n\t\treturn [el(wp.editor.InspectorControls, { key: 'sfsi-plus-block-inspector' }, el('div', { className: \"sfsi_plus_block_inspector\" }, el('h3', { className: 'sfsi_plus_block_icontype_header' }, __('Type')), el('select', { className: 'form-control sfsi_plus_block_icontype_selector',\n\t\t\tvalue: attributes.iconType,\n\t\t\tonChange: function onChange(event) {\n\t\t\t\tvar target = jQuery('.wp-block.is-selected').find('.sfsi_plus_block_container');\n\t\t\t\tsetAttributes({ iconType: event.target.value });\n\t\t\t\tfetchButtons(event.target.value, attributes, target);\n\t\t\t}\n\t\t}, el('option', {\n\t\t\t'value': 'round'\n\t\t}, 'Round / «main» icons'), el('option', {\n\t\t\t'value': 'rectangle'\n\t\t}, 'Rectangle icons')), (props.attributes.iconType === \"round\" || undefined === props.attributes.iconType) && el('p', { className: 'sfsi_plus_block_icontype_desc' }, __(' Those are the icons you selected under question 1 on the plugin‘s '), el('a', { 'target': '_blank', 'href': '/wp-admin/admin.php?page=sfsi-plus-options#ui-id-1' }, __(' settings page.'))), props.attributes.iconType === \"rectangle\" && el('p', { className: 'sfsi_plus_block_icontype_desc' }, __('Those are the icons you selected '), el('a', { 'target': '_blank', 'href': '/wp-admin/admin.php?page=sfsi-plus-options#ui-id-5' }, __('here.'))), el('h3', { className: 'sfsi_plus_block_icontype_header' }, __('Alignment')), el('select', { className: 'form-control sfsi_plus_block_iconalignment_selector',\n\t\t\tvalue: attributes.iconAlignemt,\n\t\t\tonChange: function onChange(event) {\n\t\t\t\tsetAttributes({ iconAlignemt: event.target.value });\n\t\t\t\tvar target = jQuery('.wp-block.is-selected .sfsi_plus_block_container');\n\t\t\t\tif ('center' === event.target.value) {\n\t\t\t\t\tjQuery(target).find('.sfsi_plus_block_text_before_icon').css({ 'display': 'inherit' });\n\t\t\t\t}\n\t\t\t\tjQuery(target).css({ 'text-align': event.target.value });\n\t\t\t}\n\t\t}, el('option', {\n\t\t\t'value': 'left'\n\t\t}, 'Left'), el('option', {\n\t\t\t'value': 'right'\n\t\t}, 'Right'), el('option', {\n\t\t\t'value': 'center'\n\t\t}, 'Center')), (props.attributes.iconType === \"round\" || undefined === props.attributes.iconType) && el('div', { className: 'sfsi_plus_block_iconperrow_body' }, el('span', { className: 'label' }, __('Max. icons per row')), el('input', {\n\t\t\ttype: 'text',\n\t\t\tvalue: attributes.maxPerRow,\n\t\t\tonChange: function onChange(event) {\n\t\t\t\t// console.log(event.target,event.target.value);\n\t\t\t\tsetAttributes({ maxPerRow: (parseInt(event.target.value) || 0) + '' });\n\t\t\t\tchangeIconWidth(event.target.value);\n\t\t\t}\n\t\t})), el('label', {\n\t\t\thtmlFor: 'sfsi-plus-text-before-icons',\n\t\t\tclassName: 'sfsi_plus_block_textbeforeicons'\n\t\t}, el('input', {\n\t\t\tclassName: \"form-control\",\n\t\t\tchecked: attributes.showTextBeforeShare == 'yes',\n\t\t\ttype: 'checkbox',\n\t\t\tonChange: function onChange(event) {\n\t\t\t\tsetAttributes({ showTextBeforeShare: event.target.checked ? 'yes' : 'no' });\n\t\t\t}\n\t\t}), 'Text before icons?'), attributes.showTextBeforeShare == 'yes' && el('input', {\n\t\t\tclassName: 'form-input sfsi_plus_block_textbeforeicons_header',\n\t\t\tvalue: attributes.textBeforeShare,\n\t\t\tstyle: {\n\t\t\t\t'padding-top': '3px'\n\t\t\t},\n\t\t\tonChange: function onChange(event) {\n\t\t\t\tsetAttributes({ textBeforeShare: event.target.value });\n\t\t\t}\n\t\t}), attributes.showTextBeforeShare === 'yes' && el('div', { className: 'form-input sfsi_plus_block_textbeforeicons_body' }, __('Define the font size & type in our '), el('a', { 'href': 'https://www.ultimatelysocial.com/usm-premium/', 'target': '_blank' }, __('Premium plugin'))), el('h3', { className: 'sfsi_plus_block_notes_heading' }, __('Notes')), el('hr'), el('ul', { className: 'sfsi_plus_block_notes_list' }, el('li', { className: 'sfsi_plus_block_notes_item' }, __('For all other selections ( What the icons should do etc.) please go to '), el('a', { 'href': (window.sfsi_plus_links ? window.sfsi_plus_links.admin_url : '/wp-admin/admin.php') + '?page=sfsi-plus-options', 'target': '_blank' }, __('settings page'))), el('li', { className: 'sfsi_plus_block_notes_item' }, __('To see the icons in ‚full action‘ (with all features) please open the page in live or preview mode.')), el('li', { className: 'sfsi_plus_block_notes_item' }, __('If questions remain, please ask them in the '), el('a', {\n\t\t\t'href': 'https://goo.gl/ktAeDv',\n\t\t\t'target': '_blank'\n\t\t}, __('support forum')), __(' – we‘ll try to respond quickly.'), el('img', { src: (window.sfsi_plus_links ? window.sfsi_plus_links.plugin_dir_url : '/wp-content/plugins/ultimate-social-media-plus') + '/images/Ic_insert_emoticon_48px.svg', style: { width: '18px', 'vertical-align': 'text-bottom' } }))), el('h3', { className: 'sfsi_plus_block_ad_heading' }, 'Want (much) more?'), el('div', { className: 'sfsi_plus_block_ad_body' }, el('div', {}, __('Check out our '), el('a', { 'href': 'https://www.ultimatelysocial.com/usm-premium/?utm_source=plus_gutenberg_page&utm_campaign=side_widget&utm_medium=link', 'target': '_blank' }, __('premium plugin‘s features')), __('. Watch a teaser: '))), el('div', { style: { 'text-align': 'center' } }, el('iframe', { src: 'https://player.vimeo.com/video/269140798', width: '640', frameborder: 0, 'webkitallowfullscreen': \"\", 'mozallowfullscreen': \"\", 'allowfullscreen': \"\" }), el('a', { href: \"https://www.ultimatelysocial.com/usm-premium/?utm_source=plus_gutenberg_page&utm_campaign=side_widget&utm_medium=link\", 'target': '_blank', style: { 'display': 'inline-block', padding: '4px 10px', 'text-decoration': 'none', 'background': '#00A15A', 'color': '#fff', 'font-size': '11px', 'font-weight': '900' } }, __('Check out the Premium Plugin >>'))), el('br'), el('span', { className: 'sfsi_plus_block_ad_footer' }, __('..from 24.98 USD (includes support and updates for 1 year, and after that it will not be deactivated, so you can just keep using it!)')))), el('div', { key: 'sfsi-plus-block-content', className: 'sfsi_plus_block_container sfsi_plus_block_wrapper' }, '\\t', showTextBeforeShare == \"yes\" && el('span', { className: 'sfsi_plus_block_text_before_icon', 'data-align': attributes.iconAlignemt }, textBeforeShare), el('div', { className: 'sfsi_plus_block', 'data-count': attributes.maxPerRow, 'data-align': attributes.iconAlignemt, 'data-icon-type': attributes.iconType }, 'loading....'))];\n\t},\n\n\t/**\n * The save function defines the way in which the different attributes should be combined\n * into the final markup, which is then serialized by Gutenberg into post_content.\n *\n * The \"save\" property must be specified and must be a valid function.\n *\n * @link https://wordpress.org/gutenberg/handbook/block-api/block-edit-save/\n */\n\tdeprecated: [{\n\t\tattributes: {\n\t\t\t\"jscode\": {\n\t\t\t\t\"default\": \"\\n\\t\\tjQuery(document).ready(function($) {\\n\\t\\t\\tjQuery.ajax({\\n\\t\\t\\t\\t'url': '/wp-json/ultimate-social-media-plus/v1/icons/?share_url='+window.location.href,\\n\\t\\t\\t\\t'method': 'GET'\\n\\t\\t\\t}).done( function(response){\\n\\t\\t\\t\\t$('.sfsi_plus_block_container .sfsi_plus_block').html(response);if(window.gapi){window.gapi.plusone.go();window.gapi.plus.go();window.gapi.ytsubscribe.go();};if(window.twttr){window.twttr.widgets.load();};if(window.IN){window.IN.parse();};if(window.addthis){if(window.addthis.toolbox){window.addthis.toolbox('.addthis_button.sficn');}else{window.addthis.init();window.addthis.toolbox('.addthis_button.sficn');}};if(window.PinUtils){window.PinUtils.build();};if(jQuery('.sfsi_plus_wDiv').length > 0) {setTimeout(function() { var s = parseInt(jQuery('.sfsi_plus_wDiv').height()) + 15 + 'px';jQuery('.sfsi_plus_holders').each(function() {jQuery(this).css('height', s);});jQuery('.sfsi_plus_widget').css('min-height', 'auto');}, 200);};if(window.FB){if(window.FB.XFBML){window.FB.XFBML.parse();}};\\n\\t\\t\\t});\\n\\t\\t});\\n\\t\",\n\t\t\t\ttype: 'string'\n\t\t\t}\n\t\t},\n\n\t\tisEligible: function isEligible(attributes) {\n\t\t\tconsole.log(attributes);\n\t\t\treturn true;\n\t\t\t// return (attributes.jscode===\"\\n\\t\\tjQuery(document).ready(function($) {\\n\\t\\t\\tjQuery.ajax({\\n\\t\\t\\t\\t'url': '/wp-json/ultimate-social-media-plus/v1/icons/?share_url='+window.location.href,\\n\\t\\t\\t\\t'method': 'GET'\\n\\t\\t\\t}).done( function(response){\\n\\t\\t\\t\\t$('.sfsi_plus_block_container .sfsi_plus_block').html(response);if(window.gapi){window.gapi.plusone.go();window.gapi.plus.go();window.gapi.ytsubscribe.go();};if(window.twttr){window.twttr.widgets.load();};if(window.IN){window.IN.parse();};if(window.addthis){if(window.addthis.toolbox){window.addthis.toolbox('.addthis_button.sficn');}else{window.addthis.init();window.addthis.toolbox('.addthis_button.sficn');}};if(window.PinUtils){window.PinUtils.build();};if(jQuery('.sfsi_plus_wDiv').length > 0) {setTimeout(function() { var s = parseInt(jQuery('.sfsi_plus_wDiv').height()) + 15 + 'px';jQuery('.sfsi_plus_holders').each(function() {jQuery(this).css('height', s);});jQuery('.sfsi_plus_widget').css('min-height', 'auto');}, 200);};if(window.FB){if(window.FB.XFBML){window.FB.XFBML.parse();}};\\n\\t\\t\\t});\\n\\t\\t});\\n\\t\");\n\t\t},\n\t\tmigrate: function migrate(attributes) {\n\t\t\tconsole.log('migrate', attributes);\n\t\t\treturn [{\n\t\t\t\t\"jscode\": \"\\n\\t\\tjQuery(document).ready(function($) {\\n\\t\\t\\tjQuery.ajax({\\n\\t\\t\\t\\t'url': '/wp-json/ultimate-social-media-plus/v1/icons/?share_url='+window.location.href,\\n\\t\\t\\t\\t'method': 'GET'\\n\\t\\t\\t}).done( function(response){\\n\\t\\t\\t\\t$('.sfsi_plus_block_wrapper .sfsi_plus_block').html(response);sfsi_plus_update_iconcount();if(window.gapi){window.gapi.plusone.go();window.gapi.plus.go();window.gapi.ytsubscribe.go();};if(window.twttr){window.twttr.widgets.load();};if(window.IN){window.IN.parse();};if(window.addthis){if(window.addthis.toolbox){window.addthis.toolbox('.addthis_button.sficn');}else{window.addthis.init();window.addthis.toolbox('.addthis_button.sficn');}};if(window.PinUtils){window.PinUtils.build();};if(jQuery('.sfsi_plus_wDiv').length > 0) {setTimeout(function() { var s = parseInt(jQuery('.sfsi_plus_wDiv').height()) + 15 + 'px';jQuery('.sfsi_plus_holders').each(function() {jQuery(this).css('height', s);});jQuery('.sfsi_plus_widget').css('min-height', 'auto');}, 200);};if(window.FB){if(window.FB.XFBML){window.FB.XFBML.parse();}};\\n\\t\\t\\t});\\n\\t\\t});\\n\\t\",\n\t\t\t\tshowTextBeforeShare: 'yes',\n\t\t\t\ttextBeforeShare: 'Please Share:',\n\t\t\t\ticonType: 'round',\n\t\t\t\ticonAlignemt: 'left',\n\t\t\t\tmaxPerRow: '5'\n\t\t\t}];\n\t\t},\n\t\tsave: function save(props) {\n\t\t\tconsole.log(props);\n\t\t\tvar attributes = props.attributes;\n\t\t\treturn renderButtons(attributes);\n\t\t}\n\t}],\n\n\t// deprecated: [\n\t// \t{\n\t// \t\tattributes: {\n\t// \t\t\t\"jscode\":{\n\t// \t\t\t\t\t\t\"default\":\"\\n\\t\\tjQuery(document).ready(function($) {\\n\\t\\t\\tjQuery.ajax({\\n\\t\\t\\t\\t'url': '/wp-json/ultimate-social-media-plus/v1/icons/?share_url='+window.location.href,\\n\\t\\t\\t\\t'method': 'GET'\\n\\t\\t\\t}).done( function(response){\\n\\t\\t\\t\\t$('.sfsi_plus_block_container .sfsi_plus_block').html(response);if(window.gapi){window.gapi.plusone.go();window.gapi.plus.go();window.gapi.ytsubscribe.go();};if(window.twttr){window.twttr.widgets.load();};if(window.IN){window.IN.parse();};if(window.addthis){if(window.addthis.toolbox){window.addthis.toolbox('.addthis_button.sficn');}else{window.addthis.init();window.addthis.toolbox('.addthis_button.sficn');}};if(window.PinUtils){window.PinUtils.build();};if(jQuery('.sfsi_plus_wDiv').length > 0) {setTimeout(function() { var s = parseInt(jQuery('.sfsi_plus_wDiv').height()) + 15 + 'px';jQuery('.sfsi_plus_holders').each(function() {jQuery(this).css('height', s);});jQuery('.sfsi_plus_widget').css('min-height', 'auto');}, 200);};if(window.FB){if(window.FB.XFBML){window.FB.XFBML.parse();}};\\n\\t\\t\\t});\\n\\t\\t});\\n\\t\",\n\t// \t\t\t\t\t\ttype: 'string'\n\t// \t\t\t}\n\t// \t\t},\n\t// \t\tsave: function( props ) {\n\t// \t\t\tvar attributes = props.attributes;\n\t// \t\t\treturn renderButtons(attributes);\n\t// \t\t}\n\t// \t\tmigrate: function(){\n\t// \t\t\treturn \n\t// \t\t}\n\t// \t}\n\t// ],\n\n\n\tsave: function save(props) {\n\t\t// console.log(props);\n\t\tvar attributes = props.attributes;\n\t\tsetTimeout(function () {\n\t\t\tchangeIconWidth(attributes.maxPerRow);\n\t\t\t// console.log('changedIconWidth');\n\t\t}, 300);\n\t\treturn renderButtons_new(attributes);\n\t}\n\n});\n\nfunction renderButtons(attributes) {\n\tvar jscode = attributes.jscode;\n\t// if(attributes.iconType===\"rectangle\"){\n\t// \tjscode=jscode.replace(/window.location.href/gi,'window.location.href+\"&ractangle_icon=1\"')\n\t// }\n\treturn el('div', { 'className': 'sfsi_plus_block_container' }, \"\\n\t\", el('div', { className: 'sfsi_plus_block' }, \"\"), \"\\n\t\", el('script', {}, jscode), \"\\n\");\n}\n\nfunction renderButtons_new(attributes) {\n\t// console.log(attributes);\n\tvar jscode = attributes.jscode;\n\tif (attributes.iconType === \"rectangle\") {\n\t\tjscode = jscode.replace(/window.location.href/gi, 'window.location.href+\"&ractangle_icon=1\"');\n\t}\n\tvar showTextBeforeShare = \"yes\";\n\tvar textBeforeShare = \"Please Share:\";\n\tif (attributes.showTextBeforeShare || '' !== attributes.showTextBeforeShare) {\n\t\tshowTextBeforeShare = attributes.showTextBeforeShare;\n\t} else {\n\t\tonAttrChange('showTextBeforeShare', 'yes');\n\t}\n\tif (attributes.textBeforeShare || '' !== attributes.textBeforeShare) {\n\t\ttextBeforeShare = attributes.textBeforeShare;\n\t} else {\n\t\tonAttrChange('textBeforeShare', 'Please Share:');\n\t}\n\treturn el('div', { 'className': 'sfsi_plus_block_wrapper' }, \"\\n\t\", showTextBeforeShare == \"yes\" && el('span', { className: 'sfsi_plus_block_text_before_icon' }, textBeforeShare), \"\\n\", el('div', { className: 'sfsi_plus_block', 'data-count': attributes.maxPerRow, 'data-align': attributes.iconAlignemt, 'data-icon-type': attributes.iconType }, \"\"), \"\\n\\t\"\n\t// el('script',{},jscode\n\t// ),\"\\n\"\n\t);\n}\nfunction changeIconWidth() {\n\tvar per_row = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\n\t// console.log('iconchangecalled');\n\t// jQuery(document).ready(function($){\n\t// console.log('iconchangecalled and doc ready');\n\tvar iconWidth = parseInt(jQuery('.sfsi_plus_block_wrapper .sfsi_plus_wDiv div').css('width')) || 40;\n\t// console.log('iconwidth',iconWidth);\n\n\tvar iconMargin = parseInt(jQuery('.sfsi_plus_block_wrapper .sfsi_plus_wDiv div').css('margin-left')) || 0;\n\t// console.log('iconMargin',iconMargin);\n\n\tvar wrapperWidth = (iconWidth + iconMargin) * per_row;\n\t// console.log('in icon change ',iconWidth,iconMargin,wrapperWidth);\n\tvar iconHeight = jQuery('.sfsi_plus_block_wrapper .sfsi_plus_wDiv img').first().height();\n\tvar textHeight = jQuery('.sfsi_plus_block_text_before_icon').height();\n\t// console.log('wrapperWidth',wrapperWidth);\n\tjQuery('.sfsi_plus_block_text_before_icon').css({ 'margin-top': (textHeight - iconHeight) / 2 - 2 + 'px' });\n\tif (jQuery('.sfsi_plus_block_wrapper .sfsiplus_norm_row').length < 1) {\n\t\t// console.log('setTimeout',jQuery('.sfsi_plus_block_wrapper .sfsiplus_norm_row'));\n\t\tsetTimeout(function () {\n\t\t\tjQuery('.sfsi_plus_block_wrapper .sfsiplus_norm_row').css({ 'width': wrapperWidth + 'px' });\n\t\t}, 1000);\n\t} else {}\n\t// console.log('didnot setTimeout',jQuery('.sfsi_plus_block_wrapper .sfsiplus_norm_row'));\n\n\t// var target=jQuery('.sfsi_plus_block_container');\n\t// console.log(target,icon_alignment);\n\tjQuery('.sfsi_plus_block_wrapper .sfsiplus_norm_row').css({ 'width': wrapperWidth + 'px' });\n\tsetIconBlockAlignment();\n\n\t// })\n}\n\nfunction setIconBlockAlignment() {\n\tvar target = jQuery('.wp-block.is-selected .sfsi_plus_block_container');\n\tvar icon_alignment = target.find('.sfsi_plus_block').attr('data-align');\n\t// if('center'===icon_alignment){\n\tjQuery(target).find('.sfsi_plus_block_text_before_icon').css({ 'display': 'inherit' });\n\t// }\n\tjQuery(target).css({ 'text-align': icon_alignment });\n}\n\nfunction fetchButtons() {\n\tvar iconType = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\tvar attributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\tvar target = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n\tif (null === iconType || undefined === iconType) {\n\t\ticonType = \"round\";\n\t}\n\t// console.log(iconType);\n\t// return jQuery(document).ready(function($){\n\t// console.log(iconType);\n\tif (null == target) {\n\t\ttarget = $(document);\n\t}\n\t// console.log(target);\n\treturn jQuery.ajax({\n\t\t'url': '/wp-json/ultimate-social-media-plus/v1/icons/?admin_refereal=true&ractangle_icon=' + ('round' == iconType ? 0 : 1),\n\t\t'method': 'GET'\n\t\t// 'data':{'is_admin':true,'share_url':'/'}\n\t}).done(function (response) {\n\t\t// console.log(response,$('.sfsi_plus_block'));\n\n\t\tif (jQuery(target).find('.sfsi_plus_block').length > 0) {\n\t\t\tjQuery(target).find('.sfsi_plus_block').html(response);\n\t\t\tjQuery(target).find('.sfsi_plus_block_text_before_icon').css({ 'display': 'inherit' });\n\t\t\tchangeIconWidth(attributes.maxPerRow);\n\t\t\tif (iconType !== 'round') {\n\t\t\t\trenderAutoSocialIcons();\n\t\t\t}\n\t\t\t// console.log('updated');\n\t\t} else {\n\t\t\tsetTimeout(function () {\n\t\t\t\tjQuery('.sfsi_plus_block').html(response);\n\t\t\t\tchangeIconWidth(attributes.maxPerRow);\n\t\t\t\tjQuery(target).find('.sfsi_plus_block_text_before_icon').css({ 'display': 'inherit' });\n\t\t\t\tconsole.log('now updated');\n\t\t\t}, 5000);\n\t\t\tconsole.log('timeset');\n\t\t}\n\t}).fail(function (response) {\n\t\t// console.log(response,$('.sfsi_plus_block'));\n\t\tjQuery(target).find('.sfsi_plus_block').html(response.responseText.replace('/\\\\/g', ''));\n\t});\n\t// });\n}\nfunction renderAutoSocialIcons() {\n\tif (window.gapi) {\n\t\twindow.gapi.plusone.go();window.gapi.plus.go();window.gapi.ytsubscribe.go();\n\t};\n\tif (window.twttr) {\n\t\twindow.twttr.widgets.load();\n\t};\n\tif (window.IN && window.IN.parse) {\n\t\twindow.IN.parse();\n\t};\n\tif (window.addthis) {\n\t\tif (window.addthis.toolbox) {\n\t\t\twindow.addthis.toolbox('.addthis_button.sficn');\n\t\t} else {\n\t\t\twindow.addthis.init();window.addthis.toolbox('.addthis_button.sficn');\n\t\t}\n\t};\n\tif (window.PinUtils) {\n\t\twindow.PinUtils.build();\n\t};\n\tif (window.FB) {\n\t\tif (window.FB.XFBML) {\n\t\t\twindow.FB.XFBML.parse();\n\t\t}\n\t};\n}\nif (undefined === window.sfsi_plus_float_widget) {\n\tvar sfsi_plus_float_widget = function sfsi_plus_float_widget() {\n\t\treturn;\n\t};\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9ibG9jay9ibG9jay5qcz85MjFkIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgdmFsdWUpIHsgaWYgKGtleSBpbiBvYmopIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7IHZhbHVlOiB2YWx1ZSwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlLCB3cml0YWJsZTogdHJ1ZSB9KTsgfSBlbHNlIHsgb2JqW2tleV0gPSB2YWx1ZTsgfSByZXR1cm4gb2JqOyB9XG5cbi8qKlxuICogQkxPQ0s6IHNvY2lhbC1zaGFyZS1ibG9ja1xuICpcbiAqIFJlZ2lzdGVyaW5nIGEgYmFzaWMgYmxvY2sgd2l0aCBHdXRlbmJlcmcuXG4gKiBTaW1wbGUgYmxvY2ssIHJlbmRlcnMgYW5kIHNhdmVzIHRoZSBzYW1lIGNvbnRlbnQgd2l0aG91dCBhbnkgaW50ZXJhY3Rpdml0eS5cbiAqL1xuXG4vLyAgSW1wb3J0IENTUy5cbmltcG9ydCAnLi9zdHlsZS5zY3NzJztcbmltcG9ydCAnLi9lZGl0b3Iuc2Nzcyc7XG5cbnZhciBfXyA9IHdwLmkxOG4uX187IC8vIEltcG9ydCBfXygpIGZyb20gd3AuaTE4blxuXG52YXIgX3dwJGJsb2NrcyA9IHdwLmJsb2NrcyxcbiAgICByZWdpc3RlckJsb2NrVHlwZSA9IF93cCRibG9ja3MucmVnaXN0ZXJCbG9ja1R5cGUsXG4gICAgUmljaFRleHQgPSBfd3AkYmxvY2tzLlJpY2hUZXh0LFxuICAgIFRleHRDb250cm9sID0gX3dwJGJsb2Nrcy5UZXh0Q29udHJvbCxcbiAgICBBbGlnbm1lbnRUb29sYmFyID0gX3dwJGJsb2Nrcy5BbGlnbm1lbnRUb29sYmFyLFxuICAgIEJsb2NrQ29udHJvbHMgPSBfd3AkYmxvY2tzLkJsb2NrQ29udHJvbHMsXG4gICAgSW5zcGVjdG9yQ29udHJvbHMgPSBfd3AkYmxvY2tzLkluc3BlY3RvckNvbnRyb2xzOyAvLyBJbXBvcnQgcmVnaXN0ZXJCbG9ja1R5cGUoKSBmcm9tIHdwLmJsb2Nrc1xuXG4vLyBjb25zdCB7XG4vLyAgICAgVGV4dENvbnRyb2xcbi8vIH0gPSB3cC5jb21wb25lbnRzO1xuXG52YXIgZWwgPSB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQ7XG4vKipcbiAqIFJlZ2lzdGVyOiBhYSBHdXRlbmJlcmcgQmxvY2suXG4gKlxuICogUmVnaXN0ZXJzIGEgbmV3IGJsb2NrIHByb3ZpZGVkIGEgdW5pcXVlIG5hbWUgYW5kIGFuIG9iamVjdCBkZWZpbmluZyBpdHNcbiAqIGJlaGF2aW9yLiBPbmNlIHJlZ2lzdGVyZWQsIHRoZSBibG9jayBpcyBtYWRlIGVkaXRvciBhcyBhbiBvcHRpb24gdG8gYW55XG4gKiBlZGl0b3IgaW50ZXJmYWNlIHdoZXJlIGJsb2NrcyBhcmUgaW1wbGVtZW50ZWQuXG4gKlxuICogQGxpbmsgaHR0cHM6Ly93b3JkcHJlc3Mub3JnL2d1dGVuYmVyZy9oYW5kYm9vay9ibG9jay1hcGkvXG4gKiBAcGFyYW0gIHtzdHJpbmd9ICAgbmFtZSAgICAgQmxvY2sgbmFtZS5cbiAqIEBwYXJhbSAge09iamVjdH0gICBzZXR0aW5ncyBCbG9jayBzZXR0aW5ncy5cbiAqIEByZXR1cm4gez9XUEJsb2NrfSAgICAgICAgICBUaGUgYmxvY2ssIGlmIGl0IGhhcyBiZWVuIHN1Y2Nlc3NmdWxseVxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZ2lzdGVyZWQ7IG90aGVyd2lzZSBgdW5kZWZpbmVkYC5cbiAqL1xuXG52YXIgaWNvbkVsID0gZWwoJ3N2ZycsIHsgd2lkdGg6IDIwLCBoZWlnaHQ6IDIwIH0sIGVsKCdnJywgeyAndHJhbnNmb3JtJzogXCJ0cmFuc2xhdGUoMC4wMDAwMDAsMjAuMDAwMDAwKSBzY2FsZSgwLjAwNjIsLTAuMDA3MClcIiwgJ2ZpbGwnOiBcIiMwMDAwMDBcIiwgJ3N0cm9rZSc6IFwibm9uZVwiIH0sIGVsKCdwYXRoJywgeyBkOiBcIk0yMDU1IDI3MjEgYy0yODQgLTgzIC00NjEgLTMzMiAtNDQyIC02MjQgbDYgLTg5IC03MiA2IGMtNDA2IDM5IC04MTggMjQ2IC0xMDkwIDU0OCBsLTY2IDczIC0yNiAtNjAgYy0xMDEgLTIyNyAtNTUgLTQ4NCAxMjAgLTY2MSBsNzIgLTc0IC0zMiAwIGMtMzkgMCAtMTI3IDI2IC0xNzkgNTIgbC0zOSAyMCA2IC03NCBjMTggLTIyNCAxNzggLTQyOCAzOTUgLTUwNCA1OCAtMjAgNjEgLTIyIDM1IC0yOSAtMTUgLTQgLTcyIC02IC0xMjYgLTYgLTk4IDEgLTk4IDEgLTkyIC0yMSAxOSAtNjIgNzcgLTE1MCAxNDEgLTIxNCA4OCAtODkgMjAwIC0xNDggMzE3IC0xNjYgNDMgLTcgNzcgLTE1IDc3IC0xOCAwIC03IC0xNTIgLTEwMiAtMjA1IC0xMjggLTcyIC0zNiAtMjE2IC04MiAtMzAyIC05NyAtNDYgLTggLTE0NiAtMTUgLTIyMSAtMTYgLTE1OSAtMSAtMTYwIDIgMTAgLTg1IDI1NyAtMTMxIDU0MiAtMTkzIDgzOCAtMTgxIDIwOSA4IDM5MiA0NSA1NzIgMTE1IGw2OCAyNiAwIDM5MyAwIDM5MyAtMTAwIDAgYy05MyAwIC0xMDAgMSAtMTAwIDIwIDAgMTEgLTEgOTAgLTEgMTc1IDAgODUgMSAxNjAgMSAxNjUgMCA2IDQwIDEwIDEwMCAxMCBsMTAwIDAgMSAxMzggYzEgMTQ0IDMgMTcwIDIwIDI0MSAzNCAxNDcgMTY1IDI2NSAzMTkgMjg4IDQ5IDggMTc0IDkgMzU4IDUgbDYyIC0yIDAgLTE3NSAwIC0xNzUgLTEyNyAwIGMtODMgMCAtMTM3IC01IC0xNTMgLTEzIC0zNSAtMTggLTQ2IC02MSAtNDkgLTE5MyBsLTIgLTExNCAxNjUgMCAxNjYgMCAwIC0zNyBjMCAtMjEgLTcgLTk2IC0xNSAtMTY4IC04IC03MSAtMTUgLTEzOCAtMTUgLTE0NyAwIC0xNiAtMTQgLTE4IC0xNTAgLTE4IGwtMTUwIDAgMCAtMzMyIGMxIC02ODYgMyAtNjM3IC0yMiAtNjQyIC0xMyAtMyAtOTAgLTggLTE3MiAtMTIgLTgyIC0zIC0xNDMgLTEwIC0xMzYgLTE0IDYgLTQgOTMgLTggMTkxIC05IGwxNzkgLTIgMCAyNzIgMCAyNzEgNjMgNzIgYzExOSAxMzQgMTk4IDI1MCAyNzMgMzk3IDExMyAyMjUgMTg0IDUxMiAxODQgNzQ1IGwwIDEwMSA3OSA2NiBjNjQgNTQgMjI2IDIzNSAyMTcgMjQ0IC0xIDEgLTI2IC02IC01NSAtMTcgLTU5IC0yMyAtMTc2IC01NSAtMjM1IC02NSBsLTQwIC03IDUwIDM5IGM4NiA2OSAxNDcgMTQ5IDE4NCAyNDIgbDE5IDQ5IC04OCAtNDMgYy02OSAtMzQgLTE5OSAtODEgLTI3NiAtOTkgLTUgLTIgLTM3IDE5IC03MCA0NiAtMTUwIDEyMiAtMzY2IDE3MCAtNTQwIDExOXpcIiB9KSkpO1xuXG5yZWdpc3RlckJsb2NrVHlwZSgndWx0aW1hdGUtc29jaWFsLW1lZGlhLXBsdXMvc2ZzaS1wbHVzLXNoYXJlLWJsb2NrJywge1xuXHQvLyBCbG9jayBuYW1lLiBCbG9jayBuYW1lcyBtdXN0IGJlIHN0cmluZyB0aGF0IGNvbnRhaW5zIGEgbmFtZXNwYWNlIHByZWZpeC4gRXhhbXBsZTogbXktcGx1Z2luL215LWN1c3RvbS1ibG9jay5cblx0dGl0bGU6IF9fKCdTb2NpYWwgSWNvbnMnKSwgLy8gQmxvY2sgdGl0bGUuXG5cdGljb246IGljb25FbCwgLy8gQmxvY2sgaWNvbiBmcm9tIERhc2hpY29ucyDihpIgaHR0cHM6Ly9kZXZlbG9wZXIud29yZHByZXNzLm9yZy9yZXNvdXJjZS9kYXNoaWNvbnMvLlxuXHRjYXRlZ29yeTogJ2NvbW1vbicsIC8vIEJsb2NrIGNhdGVnb3J5IOKAlCBHcm91cCBibG9ja3MgdG9nZXRoZXIgYmFzZWQgb24gY29tbW9uIHRyYWl0cyBFLmcuIGNvbW1vbiwgZm9ybWF0dGluZywgbGF5b3V0IHdpZGdldHMsIGVtYmVkLlxuXHRrZXl3b3JkczogW19fKCdTb2NpYWwgSWNvbnMnKSwgX18oJ1NvY2lhbCBzaGFyZScpLCBfXygnR3V0ZW5iZXJnIFNoYXJlJyldLFxuXHRhdHRyaWJ1dGVzOiB7XG5cdFx0XCJqc2NvZGVcIjoge1xuXHRcdFx0XCJkZWZhdWx0XCI6IFwiXFxuXFx0XFx0alF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigkKSB7XFxuXFx0XFx0XFx0alF1ZXJ5LmFqYXgoe1xcblxcdFxcdFxcdFxcdCd1cmwnOiAnL3dwLWpzb24vdWx0aW1hdGUtc29jaWFsLW1lZGlhLXBsdXMvdjEvaWNvbnMvP3NoYXJlX3VybD0nK3dpbmRvdy5sb2NhdGlvbi5ocmVmLFxcblxcdFxcdFxcdFxcdCdtZXRob2QnOiAnR0VUJ1xcblxcdFxcdFxcdH0pLmRvbmUoIGZ1bmN0aW9uKHJlc3BvbnNlKXtcXG5cXHRcXHRcXHRcXHQkKCcuc2ZzaV9wbHVzX2Jsb2NrX3dyYXBwZXIgLnNmc2lfcGx1c19ibG9jaycpLmh0bWwocmVzcG9uc2UpO3Nmc2lfcGx1c191cGRhdGVfaWNvbmNvdW50KCk7aWYod2luZG93LmdhcGkpe3dpbmRvdy5nYXBpLnBsdXNvbmUuZ28oKTt3aW5kb3cuZ2FwaS5wbHVzLmdvKCk7d2luZG93LmdhcGkueXRzdWJzY3JpYmUuZ28oKTt9O2lmKHdpbmRvdy50d3R0cil7d2luZG93LnR3dHRyLndpZGdldHMubG9hZCgpO307aWYod2luZG93LklOKXt3aW5kb3cuSU4ucGFyc2UoKTt9O2lmKHdpbmRvdy5hZGR0aGlzKXtpZih3aW5kb3cuYWRkdGhpcy50b29sYm94KXt3aW5kb3cuYWRkdGhpcy50b29sYm94KCcuYWRkdGhpc19idXR0b24uc2ZpY24nKTt9ZWxzZXt3aW5kb3cuYWRkdGhpcy5pbml0KCk7d2luZG93LmFkZHRoaXMudG9vbGJveCgnLmFkZHRoaXNfYnV0dG9uLnNmaWNuJyk7fX07aWYod2luZG93LlBpblV0aWxzKXt3aW5kb3cuUGluVXRpbHMuYnVpbGQoKTt9O2lmKGpRdWVyeSgnLnNmc2lfcGx1c193RGl2JykubGVuZ3RoID4gMCkge3NldFRpbWVvdXQoZnVuY3Rpb24oKSB7IHZhciBzID0gcGFyc2VJbnQoalF1ZXJ5KCcuc2ZzaV9wbHVzX3dEaXYnKS5oZWlnaHQoKSkgKyAxNSArICdweCc7alF1ZXJ5KCcuc2ZzaV9wbHVzX2hvbGRlcnMnKS5lYWNoKGZ1bmN0aW9uKCkge2pRdWVyeSh0aGlzKS5jc3MoJ2hlaWdodCcsIHMpO30pO2pRdWVyeSgnLnNmc2lfcGx1c193aWRnZXQnKS5jc3MoJ21pbi1oZWlnaHQnLCAnYXV0bycpO30sIDIwMCk7fTtpZih3aW5kb3cuRkIpe2lmKHdpbmRvdy5GQi5YRkJNTCl7d2luZG93LkZCLlhGQk1MLnBhcnNlKCk7fX07XFxuXFx0XFx0XFx0fSk7XFxuXFx0XFx0fSk7XFxuXFx0XCIsXG5cdFx0XHR0eXBlOiAnc3RyaW5nJ1xuXHRcdH0sXG5cdFx0c2hvd1RleHRCZWZvcmVTaGFyZToge1xuXHRcdFx0dHlwZTogJ3N0cmluZycsXG5cdFx0XHQvLyBzb3VyY2U6ICd0ZXh0Jyxcblx0XHRcdGRlZmF1bHQ6ICd5ZXMnXG5cdFx0XHQvLyBtZXRhOiAnc2ZzaV9wbHVzX2d1dGVuYmVyZ19zaG93X3RleHRfYmVmb3JlX3NoYXJlJ1xuXHRcdH0sXG5cdFx0dGV4dEJlZm9yZVNoYXJlOiB7XG5cdFx0XHR0eXBlOiAnc3RyaW5nJyxcblx0XHRcdC8vIHNvdXJjZTogJ3RleHQnLFxuXHRcdFx0ZGVmYXVsdDogJ1BsZWFzZSBTaGFyZTonXG5cdFx0fSxcblx0XHRpY29uVHlwZToge1xuXHRcdFx0dHlwZTogJ3N0cmluZycsXG5cdFx0XHQvLyBzb3VyY2U6ICd0ZXh0Jyxcblx0XHRcdGRlZmF1bHQ6ICdyb3VuZCdcblx0XHR9LFxuXHRcdGljb25BbGlnbmVtdDoge1xuXHRcdFx0dHlwZTogJ3N0cmluZycsXG5cdFx0XHQvLyBzb3VyY2U6ICd0ZXh0Jyxcblx0XHRcdGRlZmF1bHQ6ICdsZWZ0J1xuXHRcdH0sXG5cdFx0bWF4UGVyUm93OiB7XG5cdFx0XHR0eXBlOiAnc3RyaW5nJyxcblx0XHRcdC8vIHNvdXJjZTogJ3RleHQnLFxuXHRcdFx0ZGVmYXVsdDogJzUnXG5cblx0XHR9XG5cdH0sXG5cdC8qKlxuICAqIFRoZSBlZGl0IGZ1bmN0aW9uIGRlc2NyaWJlcyB0aGUgc3RydWN0dXJlIG9mIHlvdXIgYmxvY2sgaW4gdGhlIGNvbnRleHQgb2YgdGhlIGVkaXRvci5cbiAgKiBUaGlzIHJlcHJlc2VudHMgd2hhdCB0aGUgZWRpdG9yIHdpbGwgcmVuZGVyIHdoZW4gdGhlIGJsb2NrIGlzIHVzZWQuXG4gICpcbiAgKiBUaGUgXCJlZGl0XCIgcHJvcGVydHkgbXVzdCBiZSBhIHZhbGlkIGZ1bmN0aW9uLlxuICAqXG4gICogQGxpbmsgaHR0cHM6Ly93b3JkcHJlc3Mub3JnL2d1dGVuYmVyZy9oYW5kYm9vay9ibG9jay1hcGkvYmxvY2stZWRpdC1zYXZlL1xuICAqL1xuXHRlZGl0OiBmdW5jdGlvbiBlZGl0KHByb3BzKSB7XG5cdFx0ZnVuY3Rpb24gb25BdHRyQ2hhbmdlKG1ldGEsIHZhbHVlKSB7XG5cdFx0XHRwcm9wcy5zZXRBdHRyaWJ1dGVzKF9kZWZpbmVQcm9wZXJ0eSh7fSwgbWV0YSwgdmFsdWUpKTtcblx0XHR9XG5cdFx0dmFyIHNldEF0dHJpYnV0ZXMgPSBwcm9wcy5zZXRBdHRyaWJ1dGVzO1xuXHRcdC8vIHZhciBmb2N1cyA9IHByb3BzLmlzU2VsZWN0ZWQ7XG5cdFx0dmFyIGF0dHJpYnV0ZXMgPSBwcm9wcy5hdHRyaWJ1dGVzO1xuXHRcdC8vIGNvbnNvbGUubG9nKCdhdHRyaWJ1dGVzJyxhdHRyaWJ1dGVzLHdwLmVsZW1lbnQpO1xuXHRcdHZhciBzaG93VGV4dEJlZm9yZVNoYXJlID0gXCJ5ZXNcIjtcblx0XHR2YXIgdGV4dEJlZm9yZVNoYXJlID0gXCJQbGVhc2UgU2hhcmU6XCI7XG5cdFx0aWYgKGF0dHJpYnV0ZXMuc2hvd1RleHRCZWZvcmVTaGFyZSB8fCAnJyAhPT0gYXR0cmlidXRlcy5zaG93VGV4dEJlZm9yZVNoYXJlKSB7XG5cdFx0XHRzaG93VGV4dEJlZm9yZVNoYXJlID0gYXR0cmlidXRlcy5zaG93VGV4dEJlZm9yZVNoYXJlO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRvbkF0dHJDaGFuZ2UoJ3Nob3dUZXh0QmVmb3JlU2hhcmUnLCAneWVzJyk7XG5cdFx0fVxuXHRcdGlmIChhdHRyaWJ1dGVzLnRleHRCZWZvcmVTaGFyZSB8fCAnJyAhPT0gYXR0cmlidXRlcy50ZXh0QmVmb3JlU2hhcmUpIHtcblx0XHRcdHRleHRCZWZvcmVTaGFyZSA9IGF0dHJpYnV0ZXMudGV4dEJlZm9yZVNoYXJlO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRvbkF0dHJDaGFuZ2UoJ3RleHRCZWZvcmVTaGFyZScsICdQbGVhc2UgU2hhcmU6Jyk7XG5cdFx0fVxuXG5cdFx0Ly8gQ3JlYXRlcyBhIDxwIGNsYXNzPSd3cC1ibG9jay1jZ2ItYmxvY2stc29jaWFsLXNoYXJlLWJsb2NrJz48L3A+LlxuXHRcdC8vIHJldHVybiByZW5kZXJCdXR0b25zKHByb3BzLmF0dHJpYnV0ZXMpO1xuXHRcdHZhciB0YXJnZXQgPSBqUXVlcnkoJ2RpdltkYXRhLWJsb2NrPVwiJyArIHByb3BzLmNsaWVudElkICsgJ1wiXScpLmZpbmQoJy5zZnNpX3BsdXNfYmxvY2tfY29udGFpbmVyJyk7XG5cdFx0Ly8gY29uc29sZS5sb2cocHJvcHMsdGFyZ2V0LHRhcmdldC5sZW5ndGgpO1xuXHRcdGlmICh0YXJnZXQubGVuZ3RoID4gMCkge1xuXHRcdFx0dmFyIGJ1dHRvbnMgPSB0YXJnZXQuZmluZCgnLnNmc2lfcGx1c19ibG9jaz5kaXYnKTtcblx0XHRcdGlmIChidXR0b25zLmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0XHRmZXRjaEJ1dHRvbnMoYXR0cmlidXRlcy5pY29uVHlwZSwgYXR0cmlidXRlcywgdGFyZ2V0KTtcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0c2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdHZhciB0YXJnZXQgPSBqUXVlcnkoJ2RpdltkYXRhLWJsb2NrPVwiJyArIHByb3BzLmNsaWVudElkICsgJ1wiXScpLmZpbmQoJy5zZnNpX3BsdXNfYmxvY2tfY29udGFpbmVyJyk7XG5cdFx0XHRcdHZhciBidXR0b25zID0gdGFyZ2V0LmZpbmQoJy5zZnNpX3BsdXNfYmxvY2s+ZGl2Jyk7XG5cdFx0XHRcdGlmIChidXR0b25zLmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0XHRcdGZldGNoQnV0dG9ucyhhdHRyaWJ1dGVzLmljb25UeXBlLCBhdHRyaWJ1dGVzLCB0YXJnZXQpO1xuXHRcdFx0XHR9XG5cdFx0XHR9LCAzMDAwKTtcblx0XHR9XG5cblx0XHRyZXR1cm4gW2VsKHdwLmVkaXRvci5JbnNwZWN0b3JDb250cm9scywgeyBrZXk6ICdzZnNpLXBsdXMtYmxvY2staW5zcGVjdG9yJyB9LCBlbCgnZGl2JywgeyBjbGFzc05hbWU6IFwic2ZzaV9wbHVzX2Jsb2NrX2luc3BlY3RvclwiIH0sIGVsKCdoMycsIHsgY2xhc3NOYW1lOiAnc2ZzaV9wbHVzX2Jsb2NrX2ljb250eXBlX2hlYWRlcicgfSwgX18oJ1R5cGUnKSksIGVsKCdzZWxlY3QnLCB7IGNsYXNzTmFtZTogJ2Zvcm0tY29udHJvbCBzZnNpX3BsdXNfYmxvY2tfaWNvbnR5cGVfc2VsZWN0b3InLFxuXHRcdFx0dmFsdWU6IGF0dHJpYnV0ZXMuaWNvblR5cGUsXG5cdFx0XHRvbkNoYW5nZTogZnVuY3Rpb24gb25DaGFuZ2UoZXZlbnQpIHtcblx0XHRcdFx0dmFyIHRhcmdldCA9IGpRdWVyeSgnLndwLWJsb2NrLmlzLXNlbGVjdGVkJykuZmluZCgnLnNmc2lfcGx1c19ibG9ja19jb250YWluZXInKTtcblx0XHRcdFx0c2V0QXR0cmlidXRlcyh7IGljb25UeXBlOiBldmVudC50YXJnZXQudmFsdWUgfSk7XG5cdFx0XHRcdGZldGNoQnV0dG9ucyhldmVudC50YXJnZXQudmFsdWUsIGF0dHJpYnV0ZXMsIHRhcmdldCk7XG5cdFx0XHR9XG5cdFx0fSwgZWwoJ29wdGlvbicsIHtcblx0XHRcdCd2YWx1ZSc6ICdyb3VuZCdcblx0XHR9LCAnUm91bmQgLyDCq21haW7CuyBpY29ucycpLCBlbCgnb3B0aW9uJywge1xuXHRcdFx0J3ZhbHVlJzogJ3JlY3RhbmdsZSdcblx0XHR9LCAnUmVjdGFuZ2xlIGljb25zJykpLCAocHJvcHMuYXR0cmlidXRlcy5pY29uVHlwZSA9PT0gXCJyb3VuZFwiIHx8IHVuZGVmaW5lZCA9PT0gcHJvcHMuYXR0cmlidXRlcy5pY29uVHlwZSkgJiYgZWwoJ3AnLCB7IGNsYXNzTmFtZTogJ3Nmc2lfcGx1c19ibG9ja19pY29udHlwZV9kZXNjJyB9LCBfXygnIFRob3NlIGFyZSB0aGUgaWNvbnMgeW91IHNlbGVjdGVkIHVuZGVyIHF1ZXN0aW9uIDEgb24gdGhlIHBsdWdpbuKAmHMgJyksIGVsKCdhJywgeyAndGFyZ2V0JzogJ19ibGFuaycsICdocmVmJzogJy93cC1hZG1pbi9hZG1pbi5waHA/cGFnZT1zZnNpLXBsdXMtb3B0aW9ucyN1aS1pZC0xJyB9LCBfXygnIHNldHRpbmdzIHBhZ2UuJykpKSwgcHJvcHMuYXR0cmlidXRlcy5pY29uVHlwZSA9PT0gXCJyZWN0YW5nbGVcIiAmJiBlbCgncCcsIHsgY2xhc3NOYW1lOiAnc2ZzaV9wbHVzX2Jsb2NrX2ljb250eXBlX2Rlc2MnIH0sIF9fKCdUaG9zZSBhcmUgdGhlIGljb25zIHlvdSBzZWxlY3RlZCAnKSwgZWwoJ2EnLCB7ICd0YXJnZXQnOiAnX2JsYW5rJywgJ2hyZWYnOiAnL3dwLWFkbWluL2FkbWluLnBocD9wYWdlPXNmc2ktcGx1cy1vcHRpb25zI3VpLWlkLTUnIH0sIF9fKCdoZXJlLicpKSksIGVsKCdoMycsIHsgY2xhc3NOYW1lOiAnc2ZzaV9wbHVzX2Jsb2NrX2ljb250eXBlX2hlYWRlcicgfSwgX18oJ0FsaWdubWVudCcpKSwgZWwoJ3NlbGVjdCcsIHsgY2xhc3NOYW1lOiAnZm9ybS1jb250cm9sIHNmc2lfcGx1c19ibG9ja19pY29uYWxpZ25tZW50X3NlbGVjdG9yJyxcblx0XHRcdHZhbHVlOiBhdHRyaWJ1dGVzLmljb25BbGlnbmVtdCxcblx0XHRcdG9uQ2hhbmdlOiBmdW5jdGlvbiBvbkNoYW5nZShldmVudCkge1xuXHRcdFx0XHRzZXRBdHRyaWJ1dGVzKHsgaWNvbkFsaWduZW10OiBldmVudC50YXJnZXQudmFsdWUgfSk7XG5cdFx0XHRcdHZhciB0YXJnZXQgPSBqUXVlcnkoJy53cC1ibG9jay5pcy1zZWxlY3RlZCAuc2ZzaV9wbHVzX2Jsb2NrX2NvbnRhaW5lcicpO1xuXHRcdFx0XHRpZiAoJ2NlbnRlcicgPT09IGV2ZW50LnRhcmdldC52YWx1ZSkge1xuXHRcdFx0XHRcdGpRdWVyeSh0YXJnZXQpLmZpbmQoJy5zZnNpX3BsdXNfYmxvY2tfdGV4dF9iZWZvcmVfaWNvbicpLmNzcyh7ICdkaXNwbGF5JzogJ2luaGVyaXQnIH0pO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGpRdWVyeSh0YXJnZXQpLmNzcyh7ICd0ZXh0LWFsaWduJzogZXZlbnQudGFyZ2V0LnZhbHVlIH0pO1xuXHRcdFx0fVxuXHRcdH0sIGVsKCdvcHRpb24nLCB7XG5cdFx0XHQndmFsdWUnOiAnbGVmdCdcblx0XHR9LCAnTGVmdCcpLCBlbCgnb3B0aW9uJywge1xuXHRcdFx0J3ZhbHVlJzogJ3JpZ2h0J1xuXHRcdH0sICdSaWdodCcpLCBlbCgnb3B0aW9uJywge1xuXHRcdFx0J3ZhbHVlJzogJ2NlbnRlcidcblx0XHR9LCAnQ2VudGVyJykpLCAocHJvcHMuYXR0cmlidXRlcy5pY29uVHlwZSA9PT0gXCJyb3VuZFwiIHx8IHVuZGVmaW5lZCA9PT0gcHJvcHMuYXR0cmlidXRlcy5pY29uVHlwZSkgJiYgZWwoJ2RpdicsIHsgY2xhc3NOYW1lOiAnc2ZzaV9wbHVzX2Jsb2NrX2ljb25wZXJyb3dfYm9keScgfSwgZWwoJ3NwYW4nLCB7IGNsYXNzTmFtZTogJ2xhYmVsJyB9LCBfXygnTWF4LiBpY29ucyBwZXIgcm93JykpLCBlbCgnaW5wdXQnLCB7XG5cdFx0XHR0eXBlOiAndGV4dCcsXG5cdFx0XHR2YWx1ZTogYXR0cmlidXRlcy5tYXhQZXJSb3csXG5cdFx0XHRvbkNoYW5nZTogZnVuY3Rpb24gb25DaGFuZ2UoZXZlbnQpIHtcblx0XHRcdFx0Ly8gY29uc29sZS5sb2coZXZlbnQudGFyZ2V0LGV2ZW50LnRhcmdldC52YWx1ZSk7XG5cdFx0XHRcdHNldEF0dHJpYnV0ZXMoeyBtYXhQZXJSb3c6IChwYXJzZUludChldmVudC50YXJnZXQudmFsdWUpIHx8IDApICsgJycgfSk7XG5cdFx0XHRcdGNoYW5nZUljb25XaWR0aChldmVudC50YXJnZXQudmFsdWUpO1xuXHRcdFx0fVxuXHRcdH0pKSwgZWwoJ2xhYmVsJywge1xuXHRcdFx0aHRtbEZvcjogJ3Nmc2ktcGx1cy10ZXh0LWJlZm9yZS1pY29ucycsXG5cdFx0XHRjbGFzc05hbWU6ICdzZnNpX3BsdXNfYmxvY2tfdGV4dGJlZm9yZWljb25zJ1xuXHRcdH0sIGVsKCdpbnB1dCcsIHtcblx0XHRcdGNsYXNzTmFtZTogXCJmb3JtLWNvbnRyb2xcIixcblx0XHRcdGNoZWNrZWQ6IGF0dHJpYnV0ZXMuc2hvd1RleHRCZWZvcmVTaGFyZSA9PSAneWVzJyxcblx0XHRcdHR5cGU6ICdjaGVja2JveCcsXG5cdFx0XHRvbkNoYW5nZTogZnVuY3Rpb24gb25DaGFuZ2UoZXZlbnQpIHtcblx0XHRcdFx0c2V0QXR0cmlidXRlcyh7IHNob3dUZXh0QmVmb3JlU2hhcmU6IGV2ZW50LnRhcmdldC5jaGVja2VkID8gJ3llcycgOiAnbm8nIH0pO1xuXHRcdFx0fVxuXHRcdH0pLCAnVGV4dCBiZWZvcmUgaWNvbnM/JyksIGF0dHJpYnV0ZXMuc2hvd1RleHRCZWZvcmVTaGFyZSA9PSAneWVzJyAmJiBlbCgnaW5wdXQnLCB7XG5cdFx0XHRjbGFzc05hbWU6ICdmb3JtLWlucHV0IHNmc2lfcGx1c19ibG9ja190ZXh0YmVmb3JlaWNvbnNfaGVhZGVyJyxcblx0XHRcdHZhbHVlOiBhdHRyaWJ1dGVzLnRleHRCZWZvcmVTaGFyZSxcblx0XHRcdHN0eWxlOiB7XG5cdFx0XHRcdCdwYWRkaW5nLXRvcCc6ICczcHgnXG5cdFx0XHR9LFxuXHRcdFx0b25DaGFuZ2U6IGZ1bmN0aW9uIG9uQ2hhbmdlKGV2ZW50KSB7XG5cdFx0XHRcdHNldEF0dHJpYnV0ZXMoeyB0ZXh0QmVmb3JlU2hhcmU6IGV2ZW50LnRhcmdldC52YWx1ZSB9KTtcblx0XHRcdH1cblx0XHR9KSwgYXR0cmlidXRlcy5zaG93VGV4dEJlZm9yZVNoYXJlID09PSAneWVzJyAmJiBlbCgnZGl2JywgeyBjbGFzc05hbWU6ICdmb3JtLWlucHV0IHNmc2lfcGx1c19ibG9ja190ZXh0YmVmb3JlaWNvbnNfYm9keScgfSwgX18oJ0RlZmluZSB0aGUgZm9udCBzaXplICYgdHlwZSBpbiBvdXIgJyksIGVsKCdhJywgeyAnaHJlZic6ICdodHRwczovL3d3dy51bHRpbWF0ZWx5c29jaWFsLmNvbS91c20tcHJlbWl1bS8nLCAndGFyZ2V0JzogJ19ibGFuaycgfSwgX18oJ1ByZW1pdW0gcGx1Z2luJykpKSwgZWwoJ2gzJywgeyBjbGFzc05hbWU6ICdzZnNpX3BsdXNfYmxvY2tfbm90ZXNfaGVhZGluZycgfSwgX18oJ05vdGVzJykpLCBlbCgnaHInKSwgZWwoJ3VsJywgeyBjbGFzc05hbWU6ICdzZnNpX3BsdXNfYmxvY2tfbm90ZXNfbGlzdCcgfSwgZWwoJ2xpJywgeyBjbGFzc05hbWU6ICdzZnNpX3BsdXNfYmxvY2tfbm90ZXNfaXRlbScgfSwgX18oJ0ZvciBhbGwgb3RoZXIgc2VsZWN0aW9ucyAoIFdoYXQgdGhlIGljb25zIHNob3VsZCBkbyBldGMuKSBwbGVhc2UgZ28gdG8gJyksIGVsKCdhJywgeyAnaHJlZic6ICh3aW5kb3cuc2ZzaV9wbHVzX2xpbmtzID8gd2luZG93LnNmc2lfcGx1c19saW5rcy5hZG1pbl91cmwgOiAnL3dwLWFkbWluL2FkbWluLnBocCcpICsgJz9wYWdlPXNmc2ktcGx1cy1vcHRpb25zJywgJ3RhcmdldCc6ICdfYmxhbmsnIH0sIF9fKCdzZXR0aW5ncyBwYWdlJykpKSwgZWwoJ2xpJywgeyBjbGFzc05hbWU6ICdzZnNpX3BsdXNfYmxvY2tfbm90ZXNfaXRlbScgfSwgX18oJ1RvIHNlZSB0aGUgaWNvbnMgaW4g4oCaZnVsbCBhY3Rpb27igJggKHdpdGggYWxsIGZlYXR1cmVzKSBwbGVhc2Ugb3BlbiB0aGUgcGFnZSBpbiBsaXZlIG9yIHByZXZpZXcgbW9kZS4nKSksIGVsKCdsaScsIHsgY2xhc3NOYW1lOiAnc2ZzaV9wbHVzX2Jsb2NrX25vdGVzX2l0ZW0nIH0sIF9fKCdJZiBxdWVzdGlvbnMgcmVtYWluLCBwbGVhc2UgYXNrIHRoZW0gaW4gdGhlICcpLCBlbCgnYScsIHtcblx0XHRcdCdocmVmJzogJ2h0dHBzOi8vZ29vLmdsL2t0QWVEdicsXG5cdFx0XHQndGFyZ2V0JzogJ19ibGFuaydcblx0XHR9LCBfXygnc3VwcG9ydCBmb3J1bScpKSwgX18oJyDigJMgd2XigJhsbCB0cnkgdG8gcmVzcG9uZCBxdWlja2x5LicpLCBlbCgnaW1nJywgeyBzcmM6ICh3aW5kb3cuc2ZzaV9wbHVzX2xpbmtzID8gd2luZG93LnNmc2lfcGx1c19saW5rcy5wbHVnaW5fZGlyX3VybCA6ICcvd3AtY29udGVudC9wbHVnaW5zL3VsdGltYXRlLXNvY2lhbC1tZWRpYS1wbHVzJykgKyAnL2ltYWdlcy9JY19pbnNlcnRfZW1vdGljb25fNDhweC5zdmcnLCBzdHlsZTogeyB3aWR0aDogJzE4cHgnLCAndmVydGljYWwtYWxpZ24nOiAndGV4dC1ib3R0b20nIH0gfSkpKSwgZWwoJ2gzJywgeyBjbGFzc05hbWU6ICdzZnNpX3BsdXNfYmxvY2tfYWRfaGVhZGluZycgfSwgJ1dhbnQgKG11Y2gpIG1vcmU/JyksIGVsKCdkaXYnLCB7IGNsYXNzTmFtZTogJ3Nmc2lfcGx1c19ibG9ja19hZF9ib2R5JyB9LCBlbCgnZGl2Jywge30sIF9fKCdDaGVjayBvdXQgb3VyICcpLCBlbCgnYScsIHsgJ2hyZWYnOiAnaHR0cHM6Ly93d3cudWx0aW1hdGVseXNvY2lhbC5jb20vdXNtLXByZW1pdW0vP3V0bV9zb3VyY2U9cGx1c19ndXRlbmJlcmdfcGFnZSZ1dG1fY2FtcGFpZ249c2lkZV93aWRnZXQmdXRtX21lZGl1bT1saW5rJywgJ3RhcmdldCc6ICdfYmxhbmsnIH0sIF9fKCdwcmVtaXVtIHBsdWdpbuKAmHMgZmVhdHVyZXMnKSksIF9fKCcuIFdhdGNoIGEgdGVhc2VyOiAnKSkpLCBlbCgnZGl2JywgeyBzdHlsZTogeyAndGV4dC1hbGlnbic6ICdjZW50ZXInIH0gfSwgZWwoJ2lmcmFtZScsIHsgc3JjOiAnaHR0cHM6Ly9wbGF5ZXIudmltZW8uY29tL3ZpZGVvLzI2OTE0MDc5OCcsIHdpZHRoOiAnNjQwJywgZnJhbWVib3JkZXI6IDAsICd3ZWJraXRhbGxvd2Z1bGxzY3JlZW4nOiBcIlwiLCAnbW96YWxsb3dmdWxsc2NyZWVuJzogXCJcIiwgJ2FsbG93ZnVsbHNjcmVlbic6IFwiXCIgfSksIGVsKCdhJywgeyBocmVmOiBcImh0dHBzOi8vd3d3LnVsdGltYXRlbHlzb2NpYWwuY29tL3VzbS1wcmVtaXVtLz91dG1fc291cmNlPXBsdXNfZ3V0ZW5iZXJnX3BhZ2UmdXRtX2NhbXBhaWduPXNpZGVfd2lkZ2V0JnV0bV9tZWRpdW09bGlua1wiLCAndGFyZ2V0JzogJ19ibGFuaycsIHN0eWxlOiB7ICdkaXNwbGF5JzogJ2lubGluZS1ibG9jaycsIHBhZGRpbmc6ICc0cHggMTBweCcsICd0ZXh0LWRlY29yYXRpb24nOiAnbm9uZScsICdiYWNrZ3JvdW5kJzogJyMwMEExNUEnLCAnY29sb3InOiAnI2ZmZicsICdmb250LXNpemUnOiAnMTFweCcsICdmb250LXdlaWdodCc6ICc5MDAnIH0gfSwgX18oJ0NoZWNrIG91dCB0aGUgUHJlbWl1bSBQbHVnaW4gPj4nKSkpLCBlbCgnYnInKSwgZWwoJ3NwYW4nLCB7IGNsYXNzTmFtZTogJ3Nmc2lfcGx1c19ibG9ja19hZF9mb290ZXInIH0sIF9fKCcuLmZyb20gMjQuOTggVVNEIChpbmNsdWRlcyBzdXBwb3J0IGFuZCB1cGRhdGVzIGZvciAxIHllYXIsIGFuZCBhZnRlciB0aGF0IGl0IHdpbGwgbm90IGJlIGRlYWN0aXZhdGVkLCBzbyB5b3UgY2FuIGp1c3Qga2VlcCB1c2luZyBpdCEpJykpKSksIGVsKCdkaXYnLCB7IGtleTogJ3Nmc2ktcGx1cy1ibG9jay1jb250ZW50JywgY2xhc3NOYW1lOiAnc2ZzaV9wbHVzX2Jsb2NrX2NvbnRhaW5lciBzZnNpX3BsdXNfYmxvY2tfd3JhcHBlcicgfSwgJ1xcdCcsIHNob3dUZXh0QmVmb3JlU2hhcmUgPT0gXCJ5ZXNcIiAmJiBlbCgnc3BhbicsIHsgY2xhc3NOYW1lOiAnc2ZzaV9wbHVzX2Jsb2NrX3RleHRfYmVmb3JlX2ljb24nLCAnZGF0YS1hbGlnbic6IGF0dHJpYnV0ZXMuaWNvbkFsaWduZW10IH0sIHRleHRCZWZvcmVTaGFyZSksIGVsKCdkaXYnLCB7IGNsYXNzTmFtZTogJ3Nmc2lfcGx1c19ibG9jaycsICdkYXRhLWNvdW50JzogYXR0cmlidXRlcy5tYXhQZXJSb3csICdkYXRhLWFsaWduJzogYXR0cmlidXRlcy5pY29uQWxpZ25lbXQsICdkYXRhLWljb24tdHlwZSc6IGF0dHJpYnV0ZXMuaWNvblR5cGUgfSwgJ2xvYWRpbmcuLi4uJykpXTtcblx0fSxcblxuXHQvKipcbiAgKiBUaGUgc2F2ZSBmdW5jdGlvbiBkZWZpbmVzIHRoZSB3YXkgaW4gd2hpY2ggdGhlIGRpZmZlcmVudCBhdHRyaWJ1dGVzIHNob3VsZCBiZSBjb21iaW5lZFxuICAqIGludG8gdGhlIGZpbmFsIG1hcmt1cCwgd2hpY2ggaXMgdGhlbiBzZXJpYWxpemVkIGJ5IEd1dGVuYmVyZyBpbnRvIHBvc3RfY29udGVudC5cbiAgKlxuICAqIFRoZSBcInNhdmVcIiBwcm9wZXJ0eSBtdXN0IGJlIHNwZWNpZmllZCBhbmQgbXVzdCBiZSBhIHZhbGlkIGZ1bmN0aW9uLlxuICAqXG4gICogQGxpbmsgaHR0cHM6Ly93b3JkcHJlc3Mub3JnL2d1dGVuYmVyZy9oYW5kYm9vay9ibG9jay1hcGkvYmxvY2stZWRpdC1zYXZlL1xuICAqL1xuXHRkZXByZWNhdGVkOiBbe1xuXHRcdGF0dHJpYnV0ZXM6IHtcblx0XHRcdFwianNjb2RlXCI6IHtcblx0XHRcdFx0XCJkZWZhdWx0XCI6IFwiXFxuXFx0XFx0alF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigkKSB7XFxuXFx0XFx0XFx0alF1ZXJ5LmFqYXgoe1xcblxcdFxcdFxcdFxcdCd1cmwnOiAnL3dwLWpzb24vdWx0aW1hdGUtc29jaWFsLW1lZGlhLXBsdXMvdjEvaWNvbnMvP3NoYXJlX3VybD0nK3dpbmRvdy5sb2NhdGlvbi5ocmVmLFxcblxcdFxcdFxcdFxcdCdtZXRob2QnOiAnR0VUJ1xcblxcdFxcdFxcdH0pLmRvbmUoIGZ1bmN0aW9uKHJlc3BvbnNlKXtcXG5cXHRcXHRcXHRcXHQkKCcuc2ZzaV9wbHVzX2Jsb2NrX2NvbnRhaW5lciAuc2ZzaV9wbHVzX2Jsb2NrJykuaHRtbChyZXNwb25zZSk7aWYod2luZG93LmdhcGkpe3dpbmRvdy5nYXBpLnBsdXNvbmUuZ28oKTt3aW5kb3cuZ2FwaS5wbHVzLmdvKCk7d2luZG93LmdhcGkueXRzdWJzY3JpYmUuZ28oKTt9O2lmKHdpbmRvdy50d3R0cil7d2luZG93LnR3dHRyLndpZGdldHMubG9hZCgpO307aWYod2luZG93LklOKXt3aW5kb3cuSU4ucGFyc2UoKTt9O2lmKHdpbmRvdy5hZGR0aGlzKXtpZih3aW5kb3cuYWRkdGhpcy50b29sYm94KXt3aW5kb3cuYWRkdGhpcy50b29sYm94KCcuYWRkdGhpc19idXR0b24uc2ZpY24nKTt9ZWxzZXt3aW5kb3cuYWRkdGhpcy5pbml0KCk7d2luZG93LmFkZHRoaXMudG9vbGJveCgnLmFkZHRoaXNfYnV0dG9uLnNmaWNuJyk7fX07aWYod2luZG93LlBpblV0aWxzKXt3aW5kb3cuUGluVXRpbHMuYnVpbGQoKTt9O2lmKGpRdWVyeSgnLnNmc2lfcGx1c193RGl2JykubGVuZ3RoID4gMCkge3NldFRpbWVvdXQoZnVuY3Rpb24oKSB7IHZhciBzID0gcGFyc2VJbnQoalF1ZXJ5KCcuc2ZzaV9wbHVzX3dEaXYnKS5oZWlnaHQoKSkgKyAxNSArICdweCc7alF1ZXJ5KCcuc2ZzaV9wbHVzX2hvbGRlcnMnKS5lYWNoKGZ1bmN0aW9uKCkge2pRdWVyeSh0aGlzKS5jc3MoJ2hlaWdodCcsIHMpO30pO2pRdWVyeSgnLnNmc2lfcGx1c193aWRnZXQnKS5jc3MoJ21pbi1oZWlnaHQnLCAnYXV0bycpO30sIDIwMCk7fTtpZih3aW5kb3cuRkIpe2lmKHdpbmRvdy5GQi5YRkJNTCl7d2luZG93LkZCLlhGQk1MLnBhcnNlKCk7fX07XFxuXFx0XFx0XFx0fSk7XFxuXFx0XFx0fSk7XFxuXFx0XCIsXG5cdFx0XHRcdHR5cGU6ICdzdHJpbmcnXG5cdFx0XHR9XG5cdFx0fSxcblxuXHRcdGlzRWxpZ2libGU6IGZ1bmN0aW9uIGlzRWxpZ2libGUoYXR0cmlidXRlcykge1xuXHRcdFx0Y29uc29sZS5sb2coYXR0cmlidXRlcyk7XG5cdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdC8vIHJldHVybiAoYXR0cmlidXRlcy5qc2NvZGU9PT1cIlxcblxcdFxcdGpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oJCkge1xcblxcdFxcdFxcdGpRdWVyeS5hamF4KHtcXG5cXHRcXHRcXHRcXHQndXJsJzogJy93cC1qc29uL3VsdGltYXRlLXNvY2lhbC1tZWRpYS1wbHVzL3YxL2ljb25zLz9zaGFyZV91cmw9Jyt3aW5kb3cubG9jYXRpb24uaHJlZixcXG5cXHRcXHRcXHRcXHQnbWV0aG9kJzogJ0dFVCdcXG5cXHRcXHRcXHR9KS5kb25lKCBmdW5jdGlvbihyZXNwb25zZSl7XFxuXFx0XFx0XFx0XFx0JCgnLnNmc2lfcGx1c19ibG9ja19jb250YWluZXIgLnNmc2lfcGx1c19ibG9jaycpLmh0bWwocmVzcG9uc2UpO2lmKHdpbmRvdy5nYXBpKXt3aW5kb3cuZ2FwaS5wbHVzb25lLmdvKCk7d2luZG93LmdhcGkucGx1cy5nbygpO3dpbmRvdy5nYXBpLnl0c3Vic2NyaWJlLmdvKCk7fTtpZih3aW5kb3cudHd0dHIpe3dpbmRvdy50d3R0ci53aWRnZXRzLmxvYWQoKTt9O2lmKHdpbmRvdy5JTil7d2luZG93LklOLnBhcnNlKCk7fTtpZih3aW5kb3cuYWRkdGhpcyl7aWYod2luZG93LmFkZHRoaXMudG9vbGJveCl7d2luZG93LmFkZHRoaXMudG9vbGJveCgnLmFkZHRoaXNfYnV0dG9uLnNmaWNuJyk7fWVsc2V7d2luZG93LmFkZHRoaXMuaW5pdCgpO3dpbmRvdy5hZGR0aGlzLnRvb2xib3goJy5hZGR0aGlzX2J1dHRvbi5zZmljbicpO319O2lmKHdpbmRvdy5QaW5VdGlscyl7d2luZG93LlBpblV0aWxzLmJ1aWxkKCk7fTtpZihqUXVlcnkoJy5zZnNpX3BsdXNfd0RpdicpLmxlbmd0aCA+IDApIHtzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyB2YXIgcyA9IHBhcnNlSW50KGpRdWVyeSgnLnNmc2lfcGx1c193RGl2JykuaGVpZ2h0KCkpICsgMTUgKyAncHgnO2pRdWVyeSgnLnNmc2lfcGx1c19ob2xkZXJzJykuZWFjaChmdW5jdGlvbigpIHtqUXVlcnkodGhpcykuY3NzKCdoZWlnaHQnLCBzKTt9KTtqUXVlcnkoJy5zZnNpX3BsdXNfd2lkZ2V0JykuY3NzKCdtaW4taGVpZ2h0JywgJ2F1dG8nKTt9LCAyMDApO307aWYod2luZG93LkZCKXtpZih3aW5kb3cuRkIuWEZCTUwpe3dpbmRvdy5GQi5YRkJNTC5wYXJzZSgpO319O1xcblxcdFxcdFxcdH0pO1xcblxcdFxcdH0pO1xcblxcdFwiKTtcblx0XHR9LFxuXHRcdG1pZ3JhdGU6IGZ1bmN0aW9uIG1pZ3JhdGUoYXR0cmlidXRlcykge1xuXHRcdFx0Y29uc29sZS5sb2coJ21pZ3JhdGUnLCBhdHRyaWJ1dGVzKTtcblx0XHRcdHJldHVybiBbe1xuXHRcdFx0XHRcImpzY29kZVwiOiBcIlxcblxcdFxcdGpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oJCkge1xcblxcdFxcdFxcdGpRdWVyeS5hamF4KHtcXG5cXHRcXHRcXHRcXHQndXJsJzogJy93cC1qc29uL3VsdGltYXRlLXNvY2lhbC1tZWRpYS1wbHVzL3YxL2ljb25zLz9zaGFyZV91cmw9Jyt3aW5kb3cubG9jYXRpb24uaHJlZixcXG5cXHRcXHRcXHRcXHQnbWV0aG9kJzogJ0dFVCdcXG5cXHRcXHRcXHR9KS5kb25lKCBmdW5jdGlvbihyZXNwb25zZSl7XFxuXFx0XFx0XFx0XFx0JCgnLnNmc2lfcGx1c19ibG9ja193cmFwcGVyIC5zZnNpX3BsdXNfYmxvY2snKS5odG1sKHJlc3BvbnNlKTtzZnNpX3BsdXNfdXBkYXRlX2ljb25jb3VudCgpO2lmKHdpbmRvdy5nYXBpKXt3aW5kb3cuZ2FwaS5wbHVzb25lLmdvKCk7d2luZG93LmdhcGkucGx1cy5nbygpO3dpbmRvdy5nYXBpLnl0c3Vic2NyaWJlLmdvKCk7fTtpZih3aW5kb3cudHd0dHIpe3dpbmRvdy50d3R0ci53aWRnZXRzLmxvYWQoKTt9O2lmKHdpbmRvdy5JTil7d2luZG93LklOLnBhcnNlKCk7fTtpZih3aW5kb3cuYWRkdGhpcyl7aWYod2luZG93LmFkZHRoaXMudG9vbGJveCl7d2luZG93LmFkZHRoaXMudG9vbGJveCgnLmFkZHRoaXNfYnV0dG9uLnNmaWNuJyk7fWVsc2V7d2luZG93LmFkZHRoaXMuaW5pdCgpO3dpbmRvdy5hZGR0aGlzLnRvb2xib3goJy5hZGR0aGlzX2J1dHRvbi5zZmljbicpO319O2lmKHdpbmRvdy5QaW5VdGlscyl7d2luZG93LlBpblV0aWxzLmJ1aWxkKCk7fTtpZihqUXVlcnkoJy5zZnNpX3BsdXNfd0RpdicpLmxlbmd0aCA+IDApIHtzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyB2YXIgcyA9IHBhcnNlSW50KGpRdWVyeSgnLnNmc2lfcGx1c193RGl2JykuaGVpZ2h0KCkpICsgMTUgKyAncHgnO2pRdWVyeSgnLnNmc2lfcGx1c19ob2xkZXJzJykuZWFjaChmdW5jdGlvbigpIHtqUXVlcnkodGhpcykuY3NzKCdoZWlnaHQnLCBzKTt9KTtqUXVlcnkoJy5zZnNpX3BsdXNfd2lkZ2V0JykuY3NzKCdtaW4taGVpZ2h0JywgJ2F1dG8nKTt9LCAyMDApO307aWYod2luZG93LkZCKXtpZih3aW5kb3cuRkIuWEZCTUwpe3dpbmRvdy5GQi5YRkJNTC5wYXJzZSgpO319O1xcblxcdFxcdFxcdH0pO1xcblxcdFxcdH0pO1xcblxcdFwiLFxuXHRcdFx0XHRzaG93VGV4dEJlZm9yZVNoYXJlOiAneWVzJyxcblx0XHRcdFx0dGV4dEJlZm9yZVNoYXJlOiAnUGxlYXNlIFNoYXJlOicsXG5cdFx0XHRcdGljb25UeXBlOiAncm91bmQnLFxuXHRcdFx0XHRpY29uQWxpZ25lbXQ6ICdsZWZ0Jyxcblx0XHRcdFx0bWF4UGVyUm93OiAnNSdcblx0XHRcdH1dO1xuXHRcdH0sXG5cdFx0c2F2ZTogZnVuY3Rpb24gc2F2ZShwcm9wcykge1xuXHRcdFx0Y29uc29sZS5sb2cocHJvcHMpO1xuXHRcdFx0dmFyIGF0dHJpYnV0ZXMgPSBwcm9wcy5hdHRyaWJ1dGVzO1xuXHRcdFx0cmV0dXJuIHJlbmRlckJ1dHRvbnMoYXR0cmlidXRlcyk7XG5cdFx0fVxuXHR9XSxcblxuXHQvLyBkZXByZWNhdGVkOiBbXG5cdC8vIFx0e1xuXHQvLyBcdFx0YXR0cmlidXRlczoge1xuXHQvLyBcdFx0XHRcImpzY29kZVwiOntcblx0Ly8gXHRcdFx0XHRcdFx0XCJkZWZhdWx0XCI6XCJcXG5cXHRcXHRqUXVlcnkoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCQpIHtcXG5cXHRcXHRcXHRqUXVlcnkuYWpheCh7XFxuXFx0XFx0XFx0XFx0J3VybCc6ICcvd3AtanNvbi91bHRpbWF0ZS1zb2NpYWwtbWVkaWEtcGx1cy92MS9pY29ucy8/c2hhcmVfdXJsPScrd2luZG93LmxvY2F0aW9uLmhyZWYsXFxuXFx0XFx0XFx0XFx0J21ldGhvZCc6ICdHRVQnXFxuXFx0XFx0XFx0fSkuZG9uZSggZnVuY3Rpb24ocmVzcG9uc2Upe1xcblxcdFxcdFxcdFxcdCQoJy5zZnNpX3BsdXNfYmxvY2tfY29udGFpbmVyIC5zZnNpX3BsdXNfYmxvY2snKS5odG1sKHJlc3BvbnNlKTtpZih3aW5kb3cuZ2FwaSl7d2luZG93LmdhcGkucGx1c29uZS5nbygpO3dpbmRvdy5nYXBpLnBsdXMuZ28oKTt3aW5kb3cuZ2FwaS55dHN1YnNjcmliZS5nbygpO307aWYod2luZG93LnR3dHRyKXt3aW5kb3cudHd0dHIud2lkZ2V0cy5sb2FkKCk7fTtpZih3aW5kb3cuSU4pe3dpbmRvdy5JTi5wYXJzZSgpO307aWYod2luZG93LmFkZHRoaXMpe2lmKHdpbmRvdy5hZGR0aGlzLnRvb2xib3gpe3dpbmRvdy5hZGR0aGlzLnRvb2xib3goJy5hZGR0aGlzX2J1dHRvbi5zZmljbicpO31lbHNle3dpbmRvdy5hZGR0aGlzLmluaXQoKTt3aW5kb3cuYWRkdGhpcy50b29sYm94KCcuYWRkdGhpc19idXR0b24uc2ZpY24nKTt9fTtpZih3aW5kb3cuUGluVXRpbHMpe3dpbmRvdy5QaW5VdGlscy5idWlsZCgpO307aWYoalF1ZXJ5KCcuc2ZzaV9wbHVzX3dEaXYnKS5sZW5ndGggPiAwKSB7c2V0VGltZW91dChmdW5jdGlvbigpIHsgdmFyIHMgPSBwYXJzZUludChqUXVlcnkoJy5zZnNpX3BsdXNfd0RpdicpLmhlaWdodCgpKSArIDE1ICsgJ3B4JztqUXVlcnkoJy5zZnNpX3BsdXNfaG9sZGVycycpLmVhY2goZnVuY3Rpb24oKSB7alF1ZXJ5KHRoaXMpLmNzcygnaGVpZ2h0Jywgcyk7fSk7alF1ZXJ5KCcuc2ZzaV9wbHVzX3dpZGdldCcpLmNzcygnbWluLWhlaWdodCcsICdhdXRvJyk7fSwgMjAwKTt9O2lmKHdpbmRvdy5GQil7aWYod2luZG93LkZCLlhGQk1MKXt3aW5kb3cuRkIuWEZCTUwucGFyc2UoKTt9fTtcXG5cXHRcXHRcXHR9KTtcXG5cXHRcXHR9KTtcXG5cXHRcIixcblx0Ly8gXHRcdFx0XHRcdFx0dHlwZTogJ3N0cmluZydcblx0Ly8gXHRcdFx0fVxuXHQvLyBcdFx0fSxcblx0Ly8gXHRcdHNhdmU6IGZ1bmN0aW9uKCBwcm9wcyApIHtcblx0Ly8gXHRcdFx0dmFyIGF0dHJpYnV0ZXMgPSBwcm9wcy5hdHRyaWJ1dGVzO1xuXHQvLyBcdFx0XHRyZXR1cm4gcmVuZGVyQnV0dG9ucyhhdHRyaWJ1dGVzKTtcblx0Ly8gXHRcdH1cblx0Ly8gXHRcdG1pZ3JhdGU6IGZ1bmN0aW9uKCl7XG5cdC8vIFx0XHRcdHJldHVybiBcblx0Ly8gXHRcdH1cblx0Ly8gXHR9XG5cdC8vIF0sXG5cblxuXHRzYXZlOiBmdW5jdGlvbiBzYXZlKHByb3BzKSB7XG5cdFx0Ly8gY29uc29sZS5sb2cocHJvcHMpO1xuXHRcdHZhciBhdHRyaWJ1dGVzID0gcHJvcHMuYXR0cmlidXRlcztcblx0XHRzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcblx0XHRcdGNoYW5nZUljb25XaWR0aChhdHRyaWJ1dGVzLm1heFBlclJvdyk7XG5cdFx0XHQvLyBjb25zb2xlLmxvZygnY2hhbmdlZEljb25XaWR0aCcpO1xuXHRcdH0sIDMwMCk7XG5cdFx0cmV0dXJuIHJlbmRlckJ1dHRvbnNfbmV3KGF0dHJpYnV0ZXMpO1xuXHR9XG5cbn0pO1xuXG5mdW5jdGlvbiByZW5kZXJCdXR0b25zKGF0dHJpYnV0ZXMpIHtcblx0dmFyIGpzY29kZSA9IGF0dHJpYnV0ZXMuanNjb2RlO1xuXHQvLyBpZihhdHRyaWJ1dGVzLmljb25UeXBlPT09XCJyZWN0YW5nbGVcIil7XG5cdC8vIFx0anNjb2RlPWpzY29kZS5yZXBsYWNlKC93aW5kb3cubG9jYXRpb24uaHJlZi9naSwnd2luZG93LmxvY2F0aW9uLmhyZWYrXCImcmFjdGFuZ2xlX2ljb249MVwiJylcblx0Ly8gfVxuXHRyZXR1cm4gZWwoJ2RpdicsIHsgJ2NsYXNzTmFtZSc6ICdzZnNpX3BsdXNfYmxvY2tfY29udGFpbmVyJyB9LCBcIlxcblx0XCIsIGVsKCdkaXYnLCB7IGNsYXNzTmFtZTogJ3Nmc2lfcGx1c19ibG9jaycgfSwgXCJcIiksIFwiXFxuXHRcIiwgZWwoJ3NjcmlwdCcsIHt9LCBqc2NvZGUpLCBcIlxcblwiKTtcbn1cblxuZnVuY3Rpb24gcmVuZGVyQnV0dG9uc19uZXcoYXR0cmlidXRlcykge1xuXHQvLyBjb25zb2xlLmxvZyhhdHRyaWJ1dGVzKTtcblx0dmFyIGpzY29kZSA9IGF0dHJpYnV0ZXMuanNjb2RlO1xuXHRpZiAoYXR0cmlidXRlcy5pY29uVHlwZSA9PT0gXCJyZWN0YW5nbGVcIikge1xuXHRcdGpzY29kZSA9IGpzY29kZS5yZXBsYWNlKC93aW5kb3cubG9jYXRpb24uaHJlZi9naSwgJ3dpbmRvdy5sb2NhdGlvbi5ocmVmK1wiJnJhY3RhbmdsZV9pY29uPTFcIicpO1xuXHR9XG5cdHZhciBzaG93VGV4dEJlZm9yZVNoYXJlID0gXCJ5ZXNcIjtcblx0dmFyIHRleHRCZWZvcmVTaGFyZSA9IFwiUGxlYXNlIFNoYXJlOlwiO1xuXHRpZiAoYXR0cmlidXRlcy5zaG93VGV4dEJlZm9yZVNoYXJlIHx8ICcnICE9PSBhdHRyaWJ1dGVzLnNob3dUZXh0QmVmb3JlU2hhcmUpIHtcblx0XHRzaG93VGV4dEJlZm9yZVNoYXJlID0gYXR0cmlidXRlcy5zaG93VGV4dEJlZm9yZVNoYXJlO1xuXHR9IGVsc2Uge1xuXHRcdG9uQXR0ckNoYW5nZSgnc2hvd1RleHRCZWZvcmVTaGFyZScsICd5ZXMnKTtcblx0fVxuXHRpZiAoYXR0cmlidXRlcy50ZXh0QmVmb3JlU2hhcmUgfHwgJycgIT09IGF0dHJpYnV0ZXMudGV4dEJlZm9yZVNoYXJlKSB7XG5cdFx0dGV4dEJlZm9yZVNoYXJlID0gYXR0cmlidXRlcy50ZXh0QmVmb3JlU2hhcmU7XG5cdH0gZWxzZSB7XG5cdFx0b25BdHRyQ2hhbmdlKCd0ZXh0QmVmb3JlU2hhcmUnLCAnUGxlYXNlIFNoYXJlOicpO1xuXHR9XG5cdHJldHVybiBlbCgnZGl2JywgeyAnY2xhc3NOYW1lJzogJ3Nmc2lfcGx1c19ibG9ja193cmFwcGVyJyB9LCBcIlxcblx0XCIsIHNob3dUZXh0QmVmb3JlU2hhcmUgPT0gXCJ5ZXNcIiAmJiBlbCgnc3BhbicsIHsgY2xhc3NOYW1lOiAnc2ZzaV9wbHVzX2Jsb2NrX3RleHRfYmVmb3JlX2ljb24nIH0sIHRleHRCZWZvcmVTaGFyZSksIFwiXFxuXCIsIGVsKCdkaXYnLCB7IGNsYXNzTmFtZTogJ3Nmc2lfcGx1c19ibG9jaycsICdkYXRhLWNvdW50JzogYXR0cmlidXRlcy5tYXhQZXJSb3csICdkYXRhLWFsaWduJzogYXR0cmlidXRlcy5pY29uQWxpZ25lbXQsICdkYXRhLWljb24tdHlwZSc6IGF0dHJpYnV0ZXMuaWNvblR5cGUgfSwgXCJcIiksIFwiXFxuXFx0XCJcblx0Ly8gZWwoJ3NjcmlwdCcse30sanNjb2RlXG5cdC8vICksXCJcXG5cIlxuXHQpO1xufVxuZnVuY3Rpb24gY2hhbmdlSWNvbldpZHRoKCkge1xuXHR2YXIgcGVyX3JvdyA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDogbnVsbDtcblxuXHQvLyBjb25zb2xlLmxvZygnaWNvbmNoYW5nZWNhbGxlZCcpO1xuXHQvLyBqUXVlcnkoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCQpe1xuXHQvLyBjb25zb2xlLmxvZygnaWNvbmNoYW5nZWNhbGxlZCBhbmQgZG9jIHJlYWR5Jyk7XG5cdHZhciBpY29uV2lkdGggPSBwYXJzZUludChqUXVlcnkoJy5zZnNpX3BsdXNfYmxvY2tfd3JhcHBlciAuc2ZzaV9wbHVzX3dEaXYgZGl2JykuY3NzKCd3aWR0aCcpKSB8fCA0MDtcblx0Ly8gY29uc29sZS5sb2coJ2ljb253aWR0aCcsaWNvbldpZHRoKTtcblxuXHR2YXIgaWNvbk1hcmdpbiA9IHBhcnNlSW50KGpRdWVyeSgnLnNmc2lfcGx1c19ibG9ja193cmFwcGVyIC5zZnNpX3BsdXNfd0RpdiBkaXYnKS5jc3MoJ21hcmdpbi1sZWZ0JykpIHx8IDA7XG5cdC8vIGNvbnNvbGUubG9nKCdpY29uTWFyZ2luJyxpY29uTWFyZ2luKTtcblxuXHR2YXIgd3JhcHBlcldpZHRoID0gKGljb25XaWR0aCArIGljb25NYXJnaW4pICogcGVyX3Jvdztcblx0Ly8gY29uc29sZS5sb2coJ2luIGljb24gY2hhbmdlICcsaWNvbldpZHRoLGljb25NYXJnaW4sd3JhcHBlcldpZHRoKTtcblx0dmFyIGljb25IZWlnaHQgPSBqUXVlcnkoJy5zZnNpX3BsdXNfYmxvY2tfd3JhcHBlciAuc2ZzaV9wbHVzX3dEaXYgaW1nJykuZmlyc3QoKS5oZWlnaHQoKTtcblx0dmFyIHRleHRIZWlnaHQgPSBqUXVlcnkoJy5zZnNpX3BsdXNfYmxvY2tfdGV4dF9iZWZvcmVfaWNvbicpLmhlaWdodCgpO1xuXHQvLyBjb25zb2xlLmxvZygnd3JhcHBlcldpZHRoJyx3cmFwcGVyV2lkdGgpO1xuXHRqUXVlcnkoJy5zZnNpX3BsdXNfYmxvY2tfdGV4dF9iZWZvcmVfaWNvbicpLmNzcyh7ICdtYXJnaW4tdG9wJzogKHRleHRIZWlnaHQgLSBpY29uSGVpZ2h0KSAvIDIgLSAyICsgJ3B4JyB9KTtcblx0aWYgKGpRdWVyeSgnLnNmc2lfcGx1c19ibG9ja193cmFwcGVyIC5zZnNpcGx1c19ub3JtX3JvdycpLmxlbmd0aCA8IDEpIHtcblx0XHQvLyBjb25zb2xlLmxvZygnc2V0VGltZW91dCcsalF1ZXJ5KCcuc2ZzaV9wbHVzX2Jsb2NrX3dyYXBwZXIgLnNmc2lwbHVzX25vcm1fcm93JykpO1xuXHRcdHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuXHRcdFx0alF1ZXJ5KCcuc2ZzaV9wbHVzX2Jsb2NrX3dyYXBwZXIgLnNmc2lwbHVzX25vcm1fcm93JykuY3NzKHsgJ3dpZHRoJzogd3JhcHBlcldpZHRoICsgJ3B4JyB9KTtcblx0XHR9LCAxMDAwKTtcblx0fSBlbHNlIHt9XG5cdC8vIGNvbnNvbGUubG9nKCdkaWRub3Qgc2V0VGltZW91dCcsalF1ZXJ5KCcuc2ZzaV9wbHVzX2Jsb2NrX3dyYXBwZXIgLnNmc2lwbHVzX25vcm1fcm93JykpO1xuXG5cdC8vIHZhciB0YXJnZXQ9alF1ZXJ5KCcuc2ZzaV9wbHVzX2Jsb2NrX2NvbnRhaW5lcicpO1xuXHQvLyBjb25zb2xlLmxvZyh0YXJnZXQsaWNvbl9hbGlnbm1lbnQpO1xuXHRqUXVlcnkoJy5zZnNpX3BsdXNfYmxvY2tfd3JhcHBlciAuc2ZzaXBsdXNfbm9ybV9yb3cnKS5jc3MoeyAnd2lkdGgnOiB3cmFwcGVyV2lkdGggKyAncHgnIH0pO1xuXHRzZXRJY29uQmxvY2tBbGlnbm1lbnQoKTtcblxuXHQvLyB9KVxufVxuXG5mdW5jdGlvbiBzZXRJY29uQmxvY2tBbGlnbm1lbnQoKSB7XG5cdHZhciB0YXJnZXQgPSBqUXVlcnkoJy53cC1ibG9jay5pcy1zZWxlY3RlZCAuc2ZzaV9wbHVzX2Jsb2NrX2NvbnRhaW5lcicpO1xuXHR2YXIgaWNvbl9hbGlnbm1lbnQgPSB0YXJnZXQuZmluZCgnLnNmc2lfcGx1c19ibG9jaycpLmF0dHIoJ2RhdGEtYWxpZ24nKTtcblx0Ly8gaWYoJ2NlbnRlcic9PT1pY29uX2FsaWdubWVudCl7XG5cdGpRdWVyeSh0YXJnZXQpLmZpbmQoJy5zZnNpX3BsdXNfYmxvY2tfdGV4dF9iZWZvcmVfaWNvbicpLmNzcyh7ICdkaXNwbGF5JzogJ2luaGVyaXQnIH0pO1xuXHQvLyB9XG5cdGpRdWVyeSh0YXJnZXQpLmNzcyh7ICd0ZXh0LWFsaWduJzogaWNvbl9hbGlnbm1lbnQgfSk7XG59XG5cbmZ1bmN0aW9uIGZldGNoQnV0dG9ucygpIHtcblx0dmFyIGljb25UeXBlID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiBudWxsO1xuXHR2YXIgYXR0cmlidXRlcyA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDogbnVsbDtcblx0dmFyIHRhcmdldCA9IGFyZ3VtZW50cy5sZW5ndGggPiAyICYmIGFyZ3VtZW50c1syXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzJdIDogbnVsbDtcblxuXHRpZiAobnVsbCA9PT0gaWNvblR5cGUgfHwgdW5kZWZpbmVkID09PSBpY29uVHlwZSkge1xuXHRcdGljb25UeXBlID0gXCJyb3VuZFwiO1xuXHR9XG5cdC8vIGNvbnNvbGUubG9nKGljb25UeXBlKTtcblx0Ly8gcmV0dXJuIGpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oJCl7XG5cdC8vIGNvbnNvbGUubG9nKGljb25UeXBlKTtcblx0aWYgKG51bGwgPT0gdGFyZ2V0KSB7XG5cdFx0dGFyZ2V0ID0gJChkb2N1bWVudCk7XG5cdH1cblx0Ly8gY29uc29sZS5sb2codGFyZ2V0KTtcblx0cmV0dXJuIGpRdWVyeS5hamF4KHtcblx0XHQndXJsJzogJy93cC1qc29uL3VsdGltYXRlLXNvY2lhbC1tZWRpYS1wbHVzL3YxL2ljb25zLz9hZG1pbl9yZWZlcmVhbD10cnVlJnJhY3RhbmdsZV9pY29uPScgKyAoJ3JvdW5kJyA9PSBpY29uVHlwZSA/IDAgOiAxKSxcblx0XHQnbWV0aG9kJzogJ0dFVCdcblx0XHQvLyAnZGF0YSc6eydpc19hZG1pbic6dHJ1ZSwnc2hhcmVfdXJsJzonLyd9XG5cdH0pLmRvbmUoZnVuY3Rpb24gKHJlc3BvbnNlKSB7XG5cdFx0Ly8gY29uc29sZS5sb2cocmVzcG9uc2UsJCgnLnNmc2lfcGx1c19ibG9jaycpKTtcblxuXHRcdGlmIChqUXVlcnkodGFyZ2V0KS5maW5kKCcuc2ZzaV9wbHVzX2Jsb2NrJykubGVuZ3RoID4gMCkge1xuXHRcdFx0alF1ZXJ5KHRhcmdldCkuZmluZCgnLnNmc2lfcGx1c19ibG9jaycpLmh0bWwocmVzcG9uc2UpO1xuXHRcdFx0alF1ZXJ5KHRhcmdldCkuZmluZCgnLnNmc2lfcGx1c19ibG9ja190ZXh0X2JlZm9yZV9pY29uJykuY3NzKHsgJ2Rpc3BsYXknOiAnaW5oZXJpdCcgfSk7XG5cdFx0XHRjaGFuZ2VJY29uV2lkdGgoYXR0cmlidXRlcy5tYXhQZXJSb3cpO1xuXHRcdFx0aWYgKGljb25UeXBlICE9PSAncm91bmQnKSB7XG5cdFx0XHRcdHJlbmRlckF1dG9Tb2NpYWxJY29ucygpO1xuXHRcdFx0fVxuXHRcdFx0Ly8gY29uc29sZS5sb2coJ3VwZGF0ZWQnKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0c2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdGpRdWVyeSgnLnNmc2lfcGx1c19ibG9jaycpLmh0bWwocmVzcG9uc2UpO1xuXHRcdFx0XHRjaGFuZ2VJY29uV2lkdGgoYXR0cmlidXRlcy5tYXhQZXJSb3cpO1xuXHRcdFx0XHRqUXVlcnkodGFyZ2V0KS5maW5kKCcuc2ZzaV9wbHVzX2Jsb2NrX3RleHRfYmVmb3JlX2ljb24nKS5jc3MoeyAnZGlzcGxheSc6ICdpbmhlcml0JyB9KTtcblx0XHRcdFx0Y29uc29sZS5sb2coJ25vdyB1cGRhdGVkJyk7XG5cdFx0XHR9LCA1MDAwKTtcblx0XHRcdGNvbnNvbGUubG9nKCd0aW1lc2V0Jyk7XG5cdFx0fVxuXHR9KS5mYWlsKGZ1bmN0aW9uIChyZXNwb25zZSkge1xuXHRcdC8vIGNvbnNvbGUubG9nKHJlc3BvbnNlLCQoJy5zZnNpX3BsdXNfYmxvY2snKSk7XG5cdFx0alF1ZXJ5KHRhcmdldCkuZmluZCgnLnNmc2lfcGx1c19ibG9jaycpLmh0bWwocmVzcG9uc2UucmVzcG9uc2VUZXh0LnJlcGxhY2UoJy9cXFxcL2cnLCAnJykpO1xuXHR9KTtcblx0Ly8gfSk7XG59XG5mdW5jdGlvbiByZW5kZXJBdXRvU29jaWFsSWNvbnMoKSB7XG5cdGlmICh3aW5kb3cuZ2FwaSkge1xuXHRcdHdpbmRvdy5nYXBpLnBsdXNvbmUuZ28oKTt3aW5kb3cuZ2FwaS5wbHVzLmdvKCk7d2luZG93LmdhcGkueXRzdWJzY3JpYmUuZ28oKTtcblx0fTtcblx0aWYgKHdpbmRvdy50d3R0cikge1xuXHRcdHdpbmRvdy50d3R0ci53aWRnZXRzLmxvYWQoKTtcblx0fTtcblx0aWYgKHdpbmRvdy5JTiAmJiB3aW5kb3cuSU4ucGFyc2UpIHtcblx0XHR3aW5kb3cuSU4ucGFyc2UoKTtcblx0fTtcblx0aWYgKHdpbmRvdy5hZGR0aGlzKSB7XG5cdFx0aWYgKHdpbmRvdy5hZGR0aGlzLnRvb2xib3gpIHtcblx0XHRcdHdpbmRvdy5hZGR0aGlzLnRvb2xib3goJy5hZGR0aGlzX2J1dHRvbi5zZmljbicpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR3aW5kb3cuYWRkdGhpcy5pbml0KCk7d2luZG93LmFkZHRoaXMudG9vbGJveCgnLmFkZHRoaXNfYnV0dG9uLnNmaWNuJyk7XG5cdFx0fVxuXHR9O1xuXHRpZiAod2luZG93LlBpblV0aWxzKSB7XG5cdFx0d2luZG93LlBpblV0aWxzLmJ1aWxkKCk7XG5cdH07XG5cdGlmICh3aW5kb3cuRkIpIHtcblx0XHRpZiAod2luZG93LkZCLlhGQk1MKSB7XG5cdFx0XHR3aW5kb3cuRkIuWEZCTUwucGFyc2UoKTtcblx0XHR9XG5cdH07XG59XG5pZiAodW5kZWZpbmVkID09PSB3aW5kb3cuc2ZzaV9wbHVzX2Zsb2F0X3dpZGdldCkge1xuXHR2YXIgc2ZzaV9wbHVzX2Zsb2F0X3dpZGdldCA9IGZ1bmN0aW9uIHNmc2lfcGx1c19mbG9hdF93aWRnZXQoKSB7XG5cdFx0cmV0dXJuO1xuXHR9O1xufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vc3JjL2Jsb2NrL2Jsb2NrLmpzXG4vLyBtb2R1bGUgaWQgPSAxXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///1\n");
88
 
89
  /***/ }),
90
  /* 2 */
dist/blocks.editor.build.css CHANGED
@@ -113,8 +113,8 @@
113
  vertical-align: top !important; }
114
 
115
  .sfsi_plus_block_inspector h3, .sfsi_plus_block_inspector label {
116
- padding-top: 20px;
117
- margin-bottom: 0; }
118
 
119
  .sfsi_plus_block_inspector select, .sfsi_plus_block_inspector input[type="text"], .sfsi_plus_block_inspector input[type="number"], .sfsi_plus_block_inspector input[type="email"], .sfsi_plus_block_inspector textarea {
120
  width: 100%; }
@@ -148,6 +148,15 @@
148
  .sfsi_plus_block_inspector .sfsi_plus_block_ad_heading, .sfsi_plus_block_inspector .sfsi_plus_block_ad_body {
149
  text-align: center; }
150
 
 
 
 
 
 
 
 
 
 
151
  .sfsi_plus_block_wrapper .sfsi_plus_block, .sfsi_plus_block_wrapper .sfsi_plus_block_text_before_icon {
152
  display: inline-block; }
153
 
113
  vertical-align: top !important; }
114
 
115
  .sfsi_plus_block_inspector h3, .sfsi_plus_block_inspector label {
116
+ padding-top: 12px;
117
+ margin-bottom: 5px; }
118
 
119
  .sfsi_plus_block_inspector select, .sfsi_plus_block_inspector input[type="text"], .sfsi_plus_block_inspector input[type="number"], .sfsi_plus_block_inspector input[type="email"], .sfsi_plus_block_inspector textarea {
120
  width: 100%; }
148
  .sfsi_plus_block_inspector .sfsi_plus_block_ad_heading, .sfsi_plus_block_inspector .sfsi_plus_block_ad_body {
149
  text-align: center; }
150
 
151
+ .sfsi_plus_block_inspector .sfsi_plus_block_icontype_desc {
152
+ margin-bottom: 0; }
153
+
154
+ .sfsi_plus_block_inspector input[type=checkbox] {
155
+ margin-right: 5px !important; }
156
+
157
+ .sfsi_plus_block_inspector .sfsi_plus_block_notes_list {
158
+ color: #000; }
159
+
160
  .sfsi_plus_block_wrapper .sfsi_plus_block, .sfsi_plus_block_wrapper .sfsi_plus_block_text_before_icon {
161
  display: inline-block; }
162
 
images/Chat_with_us_bar.svg ADDED
@@ -0,0 +1 @@
 
1
+ <svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 329 64"><defs><style>.cls-1{fill:#eee;}.cls-2{fill:#d6d6d6;}.cls-3{fill:#00b050;}.cls-4{fill:#8cd4ad;}.cls-5{fill:#272727;}.cls-6{fill:#9e9e9e;}</style></defs><title>Chat with us bar</title><path class="cls-1" d="M323.06,0H5.94A5.94,5.94,0,0,0,0,5.94V64H329V5.94A5.94,5.94,0,0,0,323.06,0Z"/><path class="cls-2" d="M323.06,2A4,4,0,0,1,327,5.94V62H2V5.94A4,4,0,0,1,5.94,2H323.06m0-2H5.94A5.94,5.94,0,0,0,0,5.94V64H329V5.94A5.94,5.94,0,0,0,323.06,0Z"/><path class="cls-3" d="M51.28,15H23.72A4.72,4.72,0,0,0,19,19.72V34.28A4.72,4.72,0,0,0,23.72,39h.22L22.5,44.5,30.44,39H51.28A4.72,4.72,0,0,0,56,34.28V19.72A4.72,4.72,0,0,0,51.28,15ZM28.5,28.5a2,2,0,1,1,2-2A2,2,0,0,1,28.5,28.5Zm9,0a2,2,0,1,1,2-2A2,2,0,0,1,37.5,28.5Zm9,0a2,2,0,1,1,2-2A2,2,0,0,1,46.5,28.5Z"/><path class="cls-2" d="M323.06,2A4,4,0,0,1,327,5.94V62H2V5.94A4,4,0,0,1,5.94,2H323.06m0-2H5.94A5.94,5.94,0,0,0,0,5.94V64H329V5.94A5.94,5.94,0,0,0,323.06,0Z"/><path class="cls-4" d="M59.5,24.09V36.78a4.72,4.72,0,0,1-4.72,4.72H31.66a4,4,0,0,0,3.86,3H53.26L59.87,49,58.8,44.47H59a4,4,0,0,0,4-4V28.05A4,4,0,0,0,59.5,24.09Z"/><path class="cls-5" d="M94.84,32.71l-2.31-1.77a7.11,7.11,0,0,1-3.77,1c-4.92,0-7.21-3.93-7.21-7.77,0-4.59,2.66-7.77,7.21-7.77S96,19.57,96,24.16a8.27,8.27,0,0,1-2.16,5.77l2,1.59Zm-4.43-5.44,2,1.54A6.35,6.35,0,0,0,94,24.16c0-3.52-1.92-6-5.23-6s-5.23,2.51-5.23,6,1.71,6,5.23,6A5.53,5.53,0,0,0,91,29.76L89.4,28.51Z"/><path class="cls-5" d="M106.93,31.55h-1.75v-1.5h0a3.93,3.93,0,0,1-3.3,1.83c-1.67,0-3.77-.68-3.77-3.75V20.78h1.85v6.67c0,1.88.54,2.82,2.31,2.82,1,0,2.84-.66,2.84-3.58V20.78h1.85Z"/><path class="cls-5" d="M118.76,28.12a4.64,4.64,0,0,1-4.7,3.77c-2.88,0-5-1.87-5-5.79s2.78-5.64,4.86-5.64c2.95,0,5,1.77,5,5.44v.93H111c0,2.1,1.15,3.46,3,3.46A2.86,2.86,0,0,0,117,28.12ZM117,25.33c0-2.1-1.22-3.28-3-3.28a3.17,3.17,0,0,0-3,3.28Z"/><path class="cls-5" d="M122.14,28.16c.08,1.59,1.17,2.25,2.84,2.25s2.55-.76,2.55-1.77c0-2.39-6.78-.95-6.78-4.74,0-2.25,1.75-3.44,4-3.44,2.66,0,4.14,1.46,4.16,3.38H127.2c-.1-1.21-.91-1.9-2.53-1.9-1.4,0-2.18.64-2.18,1.61,0,2.49,6.78.89,6.78,4.7,0,2-1.4,3.65-4.31,3.65-2.68,0-4.47-1.11-4.55-3.73Z"/><path class="cls-5" d="M133.57,22.26v7c0,.84.7.84,1.07.84h.64v1.46a11,11,0,0,1-1.36.14c-1.81,0-2.2-1-2.2-2.31V22.26h-1.44V20.78h1.44v-3h1.85v3h1.71v1.48Z"/><path class="cls-5" d="M137.07,16.89h1.85V19h-1.85Zm0,3.89h1.85V31.55h-1.85Z"/><path class="cls-5" d="M146,31.88c-3.13,0-5-2.21-5-5.73s1.87-5.71,5-5.71,5,2.21,5,5.71S149.14,31.88,146,31.88Zm0-9.83c-2.06,0-3.15,1.71-3.15,4.1S144,30.28,146,30.28s3.15-1.71,3.15-4.12S148.07,22.06,146,22.06Z"/><path class="cls-5" d="M153,20.78h1.75v1.5h0a3.93,3.93,0,0,1,3.3-1.83c1.67,0,3.77.68,3.77,3.75v7.35H160V24.88c0-1.87-.54-2.82-2.31-2.82-1,0-2.84.66-2.84,3.58v5.91H153Z"/><path class="cls-5" d="M165.65,28.16c.08,1.59,1.17,2.25,2.84,2.25s2.55-.76,2.55-1.77c0-2.39-6.78-.95-6.78-4.74,0-2.25,1.75-3.44,4-3.44,2.66,0,4.14,1.46,4.16,3.38h-1.73c-.1-1.21-.91-1.9-2.53-1.9-1.4,0-2.18.64-2.18,1.61,0,2.49,6.78.89,6.78,4.7,0,2-1.4,3.65-4.31,3.65-2.68,0-4.47-1.11-4.55-3.73Z"/><path class="cls-5" d="M175,21.4v-.56a4.34,4.34,0,0,1,4.61-4.28c2.66,0,4.47,1.59,4.47,4.06,0,3.11-3.79,3.54-3.79,6.63v.54h-1.85v-.58c0-3.5,3.67-4.1,3.67-6.57a2.32,2.32,0,0,0-2.53-2.47c-1.5,0-2.68.84-2.72,3.23Zm3.32,7.93h2.1v2.22h-2.1Z"/><path class="cls-5" d="M198.32,30.2a4.41,4.41,0,0,0,4.3-3.93h1.92a6.2,6.2,0,0,1-6.22,5.67c-2.7,0-6.84-1.48-6.84-7.58s3.67-8,6.9-8c4,0,5.89,2.68,6.06,4.76H202.5a4,4,0,0,0-4.06-3c-3,0-5,2.35-5,6S195.42,30.2,198.32,30.2Z"/><path class="cls-5" d="M206.85,16.76h1.85V22.2h0a3.82,3.82,0,0,1,3.19-1.75c1.67,0,3.77.68,3.77,3.75v7.35h-1.85V24.47c0-1.46-.41-2.41-2.14-2.41-1.48,0-3,.87-3,3.58v5.91h-1.85Z"/><path class="cls-5" d="M218.34,24c.08-2.64,1.9-3.56,4.43-3.56,2.08,0,4.1.82,4.1,3V29.7a.57.57,0,0,0,.6.64,3.14,3.14,0,0,0,.6-.08v1.28a3.39,3.39,0,0,1-1,.17c-1.28,0-1.85-.41-2-1.57a4.87,4.87,0,0,1-4,1.75,3.11,3.11,0,0,1-3.3-3.11,3.31,3.31,0,0,1,3.23-3.38l3-.37c.58-.06.93-.41.93-1.26,0-1.3-.89-1.83-2.47-1.83s-2.41.7-2.51,2.08ZM225,26.08a7.79,7.79,0,0,1-3,.68c-1.34.19-2.31.68-2.31,1.75a1.78,1.78,0,0,0,2,1.9c1.09,0,3.34-.74,3.34-2.6Z"/><path class="cls-5" d="M232,22.26v7c0,.84.7.84,1.07.84h.64v1.46a11,11,0,0,1-1.36.14c-1.81,0-2.2-1-2.2-2.31V22.26h-1.44V20.78h1.44v-3H232v3h1.71v1.48Z"/><path class="cls-5" d="M245.19,31.55h-1.87L240.2,20.78h2l2.06,8.47h0l2.08-8.47h2l2.1,8.47h0l2.18-8.47h1.81l-3.13,10.77h-1.87l-2.18-8.34h0Z"/><path class="cls-5" d="M256.15,16.89H258V19h-1.85Zm0,3.89H258V31.55h-1.85Z"/><path class="cls-5" d="M262.94,22.26v7c0,.84.7.84,1.07.84h.64v1.46a11,11,0,0,1-1.36.14c-1.81,0-2.2-1-2.2-2.31V22.26h-1.44V20.78h1.44v-3h1.85v3h1.71v1.48Z"/><path class="cls-5" d="M266.38,16.76h1.85V22.2h0a3.82,3.82,0,0,1,3.19-1.75c1.67,0,3.77.68,3.77,3.75v7.35h-1.85V24.47c0-1.46-.41-2.41-2.14-2.41-1.48,0-3,.87-3,3.58v5.91h-1.85Z"/><path class="cls-5" d="M292.42,31.55h-1.75v-1.5h0a3.93,3.93,0,0,1-3.3,1.83c-1.67,0-3.77-.68-3.77-3.75V20.78h1.85v6.67c0,1.88.54,2.82,2.31,2.82,1,0,2.84-.66,2.84-3.58V20.78h1.85Z"/><path class="cls-5" d="M296.17,28.16c.08,1.59,1.17,2.25,2.84,2.25s2.55-.76,2.55-1.77c0-2.39-6.78-.95-6.78-4.74,0-2.25,1.75-3.44,4-3.44,2.66,0,4.14,1.46,4.16,3.38h-1.73c-.1-1.21-.91-1.9-2.53-1.9-1.4,0-2.18.64-2.18,1.61,0,2.49,6.78.89,6.78,4.7,0,2-1.4,3.65-4.31,3.65-2.68,0-4.47-1.11-4.55-3.73Z"/><path class="cls-5" d="M305.83,29.33h2.1v2.22h-2.1Zm.06-12.57h2v4.88L307.4,28h-1l-.47-6.39Z"/><path class="cls-6" d="M82.39,40.44h6v.86H85.86v6.46h-1V41.3H82.39Z"/><path class="cls-6" d="M89.12,40.44H90v2.69h0a1.89,1.89,0,0,1,1.58-.87,1.69,1.69,0,0,1,1.87,1.86v3.64h-.92V44.25c0-.72-.2-1.19-1.06-1.19S90,43.49,90,44.83v2.93h-.92Z"/><path class="cls-6" d="M94.82,40.5h.92v1h-.92Zm0,1.93h.92v5.33h-.92Z"/><path class="cls-6" d="M97.63,46.08c0,.78.58,1.11,1.41,1.11s1.26-.38,1.26-.88c0-1.18-3.35-.47-3.35-2.34,0-1.11.87-1.7,2-1.7,1.31,0,2,.72,2.06,1.67h-.86c-.05-.6-.45-.94-1.25-.94s-1.08.32-1.08.79c0,1.23,3.35.44,3.35,2.32,0,1-.69,1.8-2.13,1.8s-2.21-.55-2.25-1.84Z"/><path class="cls-6" d="M107,47.76H106l-1.54-5.33h1l1,4.19h0l1-4.19h1l1,4.19h0l1.08-4.19h.9L110,47.76h-.93L108,43.63h0Z"/><path class="cls-6" d="M112.38,40.5h.92v1h-.92Zm0,1.93h.92v5.33h-.92Z"/><path class="cls-6" d="M115.57,47.76h-.92V40.44h.92Z"/><path class="cls-6" d="M117.83,47.76h-.92V40.44h.92Z"/><path class="cls-6" d="M126.55,46.06a2.29,2.29,0,0,1-2.32,1.87c-1.43,0-2.49-.93-2.49-2.86a2.55,2.55,0,0,1,2.41-2.79c1.46,0,2.47.88,2.47,2.69v.46h-3.89c0,1,.57,1.71,1.5,1.71a1.42,1.42,0,0,0,1.45-1.07Zm-.86-1.38a1.45,1.45,0,0,0-1.48-1.62,1.57,1.57,0,0,0-1.5,1.62Z"/><path class="cls-6" d="M128.22,46.08c0,.78.58,1.11,1.41,1.11s1.26-.38,1.26-.88c0-1.18-3.35-.47-3.35-2.34,0-1.11.87-1.7,2-1.7,1.31,0,2,.72,2.06,1.67h-.86c-.05-.6-.45-.94-1.25-.94s-1.08.32-1.08.79c0,1.23,3.35.44,3.35,2.32,0,1-.69,1.8-2.13,1.8s-2.21-.55-2.25-1.84Z"/><path class="cls-6" d="M133.88,43.16v3.46c0,.42.35.42.53.42h.32v.72a5.37,5.37,0,0,1-.67.07c-.9,0-1.09-.5-1.09-1.14V43.16h-.71v-.73H133V40.94h.92v1.49h.85v.73Z"/><path class="cls-6" d="M135.5,44c0-1.3.94-1.76,2.19-1.76,1,0,2,.41,2,1.48v3.1a.28.28,0,0,0,.3.32,1.58,1.58,0,0,0,.3,0v.63a1.72,1.72,0,0,1-.49.08c-.63,0-.92-.2-1-.77a2.41,2.41,0,0,1-2,.87,1.54,1.54,0,0,1-1.63-1.54,1.64,1.64,0,0,1,1.6-1.67l1.5-.18c.29,0,.46-.2.46-.62,0-.64-.44-.91-1.22-.91s-1.19.35-1.24,1Zm3.3,1a3.85,3.85,0,0,1-1.48.34c-.66.09-1.14.34-1.14.87a.88.88,0,0,0,1,.94c.54,0,1.65-.37,1.65-1.28Z"/><path class="cls-6" d="M141.08,40.44H142v2.73a1.84,1.84,0,0,1,1.6-.91c1.42,0,2.22,1.17,2.22,2.66,0,1.28-.53,3-2.34,3A1.61,1.61,0,0,1,142,47h0v.72h-.86Zm.92,4.88c0,1.42.89,1.8,1.47,1.8,1,0,1.44-.9,1.44-2.07,0-.68-.07-2-1.46-2S142,44.46,142,45.32Z"/><path class="cls-6" d="M147.77,47.76h-.92V40.44h.92Z"/><path class="cls-6" d="M149.12,40.5H150v1h-.92Zm0,1.93H150v5.33h-.92Z"/><path class="cls-6" d="M151.92,46.08c0,.78.58,1.11,1.41,1.11s1.26-.38,1.26-.88c0-1.18-3.35-.47-3.35-2.34,0-1.11.87-1.7,2-1.7,1.31,0,2,.72,2.06,1.67h-.86c-.05-.6-.45-.94-1.25-.94s-1.08.32-1.08.79c0,1.23,3.35.44,3.35,2.32,0,1-.69,1.8-2.13,1.8s-2.21-.55-2.25-1.84Z"/><path class="cls-6" d="M156.45,40.44h.92v2.69h0a1.89,1.89,0,0,1,1.58-.87,1.69,1.69,0,0,1,1.87,1.86v3.64h-.92V44.25c0-.72-.2-1.19-1.06-1.19s-1.49.43-1.49,1.77v2.93h-.92Z"/><path class="cls-6" d="M165,44c0-1.3.94-1.76,2.19-1.76,1,0,2,.41,2,1.48v3.1a.28.28,0,0,0,.29.32,1.57,1.57,0,0,0,.3,0v.63a1.72,1.72,0,0,1-.49.08c-.63,0-.92-.2-1-.77a2.41,2.41,0,0,1-2,.87,1.54,1.54,0,0,1-1.63-1.54,1.64,1.64,0,0,1,1.6-1.67l1.5-.18c.29,0,.46-.2.46-.62,0-.64-.44-.91-1.22-.91s-1.19.35-1.24,1Zm3.3,1a3.85,3.85,0,0,1-1.48.34c-.66.09-1.14.34-1.14.87a.88.88,0,0,0,1,.94c.54,0,1.65-.37,1.65-1.28Z"/><path class="cls-6" d="M177.68,45.88a2.14,2.14,0,0,1-2.28,2c-.95,0-2.22-.65-2.22-2.8,0-1.76,1.08-2.85,2.31-2.85a2,2,0,0,1,2.19,2h-.86a1.17,1.17,0,0,0-1.23-1.16c-1,0-1.5.86-1.5,2.11,0,1.41.54,2,1.44,2a1.36,1.36,0,0,0,1.29-1.3Z"/><path class="cls-6" d="M180.75,47.92c-1.55,0-2.48-1.09-2.48-2.83s.93-2.82,2.48-2.82,2.48,1.09,2.48,2.82S182.3,47.92,180.75,47.92Zm0-4.86c-1,0-1.56.85-1.56,2s.54,2,1.56,2,1.56-.85,1.56-2S181.77,43.06,180.75,43.06Z"/><path class="cls-6" d="M184.23,42.43h.87v.74h0a1.94,1.94,0,0,1,1.63-.91,1.69,1.69,0,0,1,1.87,1.86v3.64h-.92v-3.3c0-.93-.26-1.4-1.14-1.4-.51,0-1.41.33-1.41,1.77v2.93h-.92Z"/><path class="cls-6" d="M189.9,42.43h.87v.74h0a1.94,1.94,0,0,1,1.63-.91,1.69,1.69,0,0,1,1.87,1.86v3.64h-.92v-3.3c0-.93-.26-1.4-1.14-1.4-.51,0-1.41.33-1.41,1.77v2.93h-.92Z"/><path class="cls-6" d="M200.14,46.06a2.29,2.29,0,0,1-2.32,1.87c-1.43,0-2.49-.93-2.49-2.86a2.55,2.55,0,0,1,2.41-2.79c1.46,0,2.47.88,2.47,2.69v.46H196.3c0,1,.57,1.71,1.5,1.71a1.41,1.41,0,0,0,1.45-1.07Zm-.86-1.38a1.45,1.45,0,0,0-1.48-1.62,1.57,1.57,0,0,0-1.5,1.62Z"/><path class="cls-6" d="M205.46,45.88a2.14,2.14,0,0,1-2.28,2c-.95,0-2.22-.65-2.22-2.8,0-1.76,1.08-2.85,2.31-2.85a2,2,0,0,1,2.19,2h-.86a1.17,1.17,0,0,0-1.23-1.16c-1,0-1.5.86-1.5,2.11,0,1.41.54,2,1.44,2a1.36,1.36,0,0,0,1.29-1.3Z"/><path class="cls-6" d="M207.47,43.16v3.46c0,.42.35.42.53.42h.32v.72a5.35,5.35,0,0,1-.67.07c-.9,0-1.09-.5-1.09-1.14V43.16h-.71v-.73h.71V40.94h.92v1.49h.85v.73Z"/><path class="cls-6" d="M209.21,40.5h.92v1h-.92Zm0,1.93h.92v5.33h-.92Z"/><path class="cls-6" d="M213.63,47.92c-1.55,0-2.48-1.09-2.48-2.83s.93-2.82,2.48-2.82,2.48,1.09,2.48,2.82S215.18,47.92,213.63,47.92Zm0-4.86c-1,0-1.56.85-1.56,2s.54,2,1.56,2,1.56-.85,1.56-2S214.65,43.06,213.63,43.06Z"/><path class="cls-6" d="M217.11,42.43H218v.74h0a1.94,1.94,0,0,1,1.63-.91,1.69,1.69,0,0,1,1.87,1.86v3.64h-.92v-3.3c0-.93-.26-1.4-1.14-1.4-.51,0-1.41.33-1.41,1.77v2.93h-.92Z"/><path class="cls-6" d="M226.75,43.16v3.46c0,.42.35.42.53.42h.32v.72a5.35,5.35,0,0,1-.67.07c-.9,0-1.09-.5-1.09-1.14V43.16h-.71v-.73h.71V40.94h.92v1.49h.85v.73Z"/><path class="cls-6" d="M230.44,47.92c-1.55,0-2.48-1.09-2.48-2.83s.93-2.82,2.48-2.82,2.48,1.09,2.48,2.82S232,47.92,230.44,47.92Zm0-4.86c-1,0-1.56.85-1.56,2s.54,2,1.56,2,1.56-.85,1.56-2S231.46,43.06,230.44,43.06Z"/><path class="cls-6" d="M237.88,43.16v3.46c0,.42.35.42.53.42h.32v.72a5.35,5.35,0,0,1-.67.07c-.9,0-1.09-.5-1.09-1.14V43.16h-.71v-.73H237V40.94h.92v1.49h.85v.73Z"/><path class="cls-6" d="M239.59,40.44h.92v2.69h0a1.89,1.89,0,0,1,1.58-.87A1.69,1.69,0,0,1,244,44.12v3.64h-.92V44.25c0-.72-.2-1.19-1.06-1.19s-1.49.43-1.49,1.77v2.93h-.92Z"/><path class="cls-6" d="M249.82,46.06a2.29,2.29,0,0,1-2.32,1.87c-1.43,0-2.49-.93-2.49-2.86a2.55,2.55,0,0,1,2.41-2.79c1.46,0,2.47.88,2.47,2.69v.46H246c0,1,.57,1.71,1.5,1.71a1.41,1.41,0,0,0,1.45-1.07ZM249,44.68a1.45,1.45,0,0,0-1.48-1.62,1.57,1.57,0,0,0-1.5,1.62Z"/><path class="cls-6" d="M258,45.88a2.14,2.14,0,0,1-2.28,2c-.95,0-2.22-.65-2.22-2.8,0-1.76,1.08-2.85,2.31-2.85a2,2,0,0,1,2.19,2h-.86a1.17,1.17,0,0,0-1.23-1.16c-1,0-1.5.86-1.5,2.11,0,1.41.54,2,1.44,2a1.36,1.36,0,0,0,1.29-1.3Z"/><path class="cls-6" d="M258.86,40.44h.92v2.69h0a1.89,1.89,0,0,1,1.58-.87,1.69,1.69,0,0,1,1.87,1.86v3.64h-.92V44.25c0-.72-.2-1.19-1.06-1.19s-1.49.43-1.49,1.77v2.93h-.92Z"/><path class="cls-6" d="M264.55,44c0-1.3.94-1.76,2.19-1.76,1,0,2,.41,2,1.48v3.1a.28.28,0,0,0,.29.32,1.57,1.57,0,0,0,.3,0v.63a1.72,1.72,0,0,1-.49.08c-.63,0-.92-.2-1-.77a2.41,2.41,0,0,1-2,.87,1.54,1.54,0,0,1-1.63-1.54,1.64,1.64,0,0,1,1.6-1.67l1.5-.18c.29,0,.46-.2.46-.62,0-.64-.44-.91-1.22-.91s-1.19.35-1.24,1Zm3.3,1a3.85,3.85,0,0,1-1.48.34c-.66.09-1.14.34-1.14.87a.88.88,0,0,0,1,.94c.54,0,1.65-.37,1.65-1.28Z"/><path class="cls-6" d="M271.33,43.16v3.46c0,.42.35.42.53.42h.32v.72a5.35,5.35,0,0,1-.67.07c-.9,0-1.09-.5-1.09-1.14V43.16h-.71v-.73h.71V40.94h.92v1.49h.85v.73Z"/><path class="cls-6" d="M276.44,46.08c0,.78.58,1.11,1.41,1.11s1.26-.38,1.26-.88c0-1.18-3.35-.47-3.35-2.34,0-1.11.87-1.7,2-1.7,1.31,0,2,.72,2.06,1.67h-.86c-.05-.6-.45-.94-1.25-.94s-1.08.32-1.08.79c0,1.23,3.35.44,3.35,2.32,0,1-.69,1.8-2.13,1.8s-2.21-.55-2.25-1.84Z"/><path class="cls-6" d="M285.54,46.06a2.29,2.29,0,0,1-2.32,1.87c-1.43,0-2.49-.93-2.49-2.86a2.55,2.55,0,0,1,2.41-2.79c1.46,0,2.47.88,2.47,2.69v.46H281.7c0,1,.57,1.71,1.5,1.71a1.42,1.42,0,0,0,1.45-1.07Zm-.86-1.38a1.45,1.45,0,0,0-1.48-1.62,1.57,1.57,0,0,0-1.5,1.62Z"/><path class="cls-6" d="M286.77,42.43h.86v.88h0a1.73,1.73,0,0,1,1.5-1,.75.75,0,0,1,.23,0v.92H289a1.36,1.36,0,0,0-1.36,1.44v3.11h-.92Z"/><path class="cls-6" d="M293.43,42.43h1l-2,5.33h-1l-1.95-5.33h1l1.39,4.34h0Z"/><path class="cls-6" d="M299.5,46.06a2.29,2.29,0,0,1-2.32,1.87c-1.43,0-2.49-.93-2.49-2.86a2.55,2.55,0,0,1,2.41-2.79c1.46,0,2.47.88,2.47,2.69v.46h-3.89c0,1,.57,1.71,1.5,1.71a1.42,1.42,0,0,0,1.45-1.07Zm-.86-1.38a1.45,1.45,0,0,0-1.48-1.62,1.57,1.57,0,0,0-1.5,1.62Z"/><path class="cls-6" d="M300.73,42.43h.86v.88h0a1.73,1.73,0,0,1,1.5-1,.75.75,0,0,1,.23,0v.92H303a1.36,1.36,0,0,0-1.36,1.44v3.11h-.92Z"/><path class="cls-6" d="M304.36,46.08c0,.78.58,1.11,1.41,1.11s1.26-.38,1.26-.88c0-1.18-3.35-.47-3.35-2.34,0-1.11.87-1.7,2-1.7,1.32,0,2,.72,2.06,1.67h-.86c-.05-.6-.45-.94-1.25-.94s-1.08.32-1.08.79c0,1.23,3.35.44,3.35,2.32,0,1-.69,1.8-2.13,1.8s-2.21-.55-2.25-1.84Z"/></svg>
js/custom-admin.js CHANGED
@@ -2163,4 +2163,9 @@ function sfsi_close_offline_chat(e){
2163
 
2164
  SFSI('#sfsi_plus_jivo_offline_chat').hide();
2165
  SFSI('#sfsi_dummy_chat_icon').show();
 
 
 
 
 
2166
  }
2163
 
2164
  SFSI('#sfsi_plus_jivo_offline_chat').hide();
2165
  SFSI('#sfsi_dummy_chat_icon').show();
2166
+ }
2167
+ if(undefined == window.sfsi_plus_float_widget){
2168
+ function sfsi_plus_float_widget(data=null,data2=null,data3=null){
2169
+ return true;
2170
+ }
2171
  }
libs/controllers/sfsi_socialhelper.php CHANGED
@@ -65,6 +65,8 @@ class sfsi_plus_SocialHelper
65
  $appsecret = 'a780eb3d3687a084d6e5919585cc6a12';
66
  $json_url ='https://graph.facebook.com/'.$url.'?fields=fan_count&access_token='.$appid.'|'.$appsecret;
67
  $json_string = $this->file_get_contents_curl($json_url);
 
 
68
  $json = json_decode($json_string, true);
69
  return isset($json['fan_count'])? $json['fan_count']:0;
70
  }
@@ -104,18 +106,54 @@ class sfsi_plus_SocialHelper
104
  /* get google+ likes */
105
  function sfsi_getPlus1($url)
106
  {
107
- $curl = curl_init();
108
- curl_setopt($curl, CURLOPT_URL, "https://clients6.google.com/rpc");
109
- curl_setopt($curl, CURLOPT_POST, 1);
110
- curl_setopt($curl, CURLOPT_POSTFIELDS, '[{"method":"pos.plusones.get","id":"p","params":{"nolog":true,"id":"' . $url . '","source":"widget","userId":"@viewer","groupId":"@self"},"jsonrpc":"2.0","key":"p","apiVersion":"v1"}]');
111
- curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
112
- curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-type: application/json'));
113
- $curl_results = curl_exec ($curl);
114
- curl_close ($curl);
115
- $json = json_decode($curl_results, true);
116
- if(isset($json[0]['error'])){return 0;}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
117
  return intval( $json[0]['result']['metadata']['globalCounts']['count'] );
118
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
119
 
120
  /* get youtube subscribers */
121
  function sfsi_get_youtube($user)
@@ -190,40 +228,44 @@ class sfsi_plus_SocialHelper
190
  /* send curl request */
191
  private function file_get_contents_curl($url)
192
  {
193
- $ch=curl_init();
194
- curl_setopt($ch, CURLOPT_URL, $url);
195
- curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
196
- curl_setopt($ch, CURLOPT_FAILONERROR, 1);
197
- curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false);
198
- curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
199
- curl_setopt($ch, CURLOPT_TIMEOUT, $this->timeout);
200
- curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
201
- $cont = curl_exec($ch);
202
-
203
- if(curl_error($ch))
204
- {
205
- //die(curl_error($ch));
 
 
 
 
 
206
  }
207
- return $cont;
208
  }
209
 
210
  private function get_content_curl($url)
211
  {
212
- $curl = curl_init();
213
- curl_setopt($curl, CURLOPT_HEADER, false);
214
- curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
215
- curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
216
- curl_setopt($curl, CURLOPT_HTTPGET, 1);
217
- curl_setopt($curl, CURLOPT_URL, $url );
218
- curl_setopt($curl, CURLOPT_DNS_USE_GLOBAL_CACHE, false );
219
- curl_setopt($curl, CURLOPT_DNS_CACHE_TIMEOUT, 2 );
220
- $cont = curl_exec($curl);
221
-
222
- if(curl_error($curl))
223
- {
224
- //die(curl_error($ch));
 
225
  }
226
- return $cont;
227
  }
228
 
229
  /* convert no. to 2K,3M format */
@@ -520,31 +562,25 @@ class sfsi_plus_SocialHelper
520
  /* get no of subscribers from specificfeeds for current blog count*/
521
  public function sfsi_plus_getFeedSubscriberCount($feedid)
522
  {
523
- $curl = curl_init();
524
-
525
- curl_setopt_array($curl, array(
526
- CURLOPT_RETURNTRANSFER => 1,
527
- CURLOPT_URL => 'https://www.specificfeeds.com/wordpress/wpCountSubscriber',
528
- CURLOPT_USERAGENT => 'sf rss request',
529
- CURLOPT_POST => 1,
530
- CURLOPT_TIMEOUT => 30,
531
- CURLOPT_POSTFIELDS => array(
532
- 'feed_id' => $feedid,
533
- 'v' => 'newplugincount'
534
- )
535
- ));
536
- /* Send the request & save response to $resp */
537
- $resp = curl_exec($curl);
538
 
539
- $httpcode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
540
-
541
  if($httpcode == 200){
542
 
543
- if(!empty($resp))
544
  {
545
- $resp = json_decode($resp);
546
-
547
- curl_close($curl);
548
 
549
  $feeddata = stripslashes_deep($resp->subscriber_count);
550
  }
65
  $appsecret = 'a780eb3d3687a084d6e5919585cc6a12';
66
  $json_url ='https://graph.facebook.com/'.$url.'?fields=fan_count&access_token='.$appid.'|'.$appsecret;
67
  $json_string = $this->file_get_contents_curl($json_url);
68
+ // return $json_string;
69
+ // var_dump($json_string);die();
70
  $json = json_decode($json_string, true);
71
  return isset($json['fan_count'])? $json['fan_count']:0;
72
  }
106
  /* get google+ likes */
107
  function sfsi_getPlus1($url)
108
  {
109
+ // $body= array(
110
+ // array(
111
+ // "method"=>"pos.plusones.get",
112
+ // "id"=>"p",
113
+ // "params"=>array(
114
+ // "nolog"=>true,
115
+ // "id"=>$url,
116
+ // "source"=>"widget",
117
+ // "userId"=>"@viewer",
118
+ // "groupId"=>"@self"
119
+ // ),
120
+ // "jsonrpc"=>"2.0",
121
+ // "key"=>"p",
122
+ // "apiVersion"=>"v1"
123
+ // )
124
+ // );
125
+ $body = '[{"method":"pos.plusones.get","id":"p","params":{"nolog":true,"id":"' . $url . '","source":"widget","userId":"@viewer","groupId":"@self"},"jsonrpc":"2.0","key":"p","apiVersion":"v1"}]';
126
+ $args = array(
127
+ 'body' => $body,
128
+ 'blocking' => true,
129
+ 'header' => array('Content-type: application/json'),
130
+ 'sslverify' => true
131
+ );
132
+ // var_dump($args);
133
+ $resp = wp_remote_post( "https://clients6.google.com/rpc", $args );
134
+ if ( is_wp_error( $resp ) ) {
135
+ var_dump($resp->get_error_message());
136
+ return 0;
137
+ } else{
138
+ $json = json_decode($resp['body'], true);
139
+ // var_dump($resp);
140
+ if(isset($json[0]['error'])){return 0;}
141
  return intval( $json[0]['result']['metadata']['globalCounts']['count'] );
142
  }
143
+ exit;
144
+ // $curl = curl_init();
145
+ // curl_setopt($curl, CURLOPT_URL, "https://clients6.google.com/rpc");
146
+ // curl_setopt($curl, CURLOPT_POST, 1);
147
+ // curl_setopt($curl, CURLOPT_POSTFIELDS, '[{"method":"pos.plusones.get","id":"p","params":{"nolog":true,"id":"' . $url . '","source":"widget","userId":"@viewer","groupId":"@self"},"jsonrpc":"2.0","key":"p","apiVersion":"v1"}]');
148
+ // curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
149
+ // curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-type: application/json'));
150
+ // $curl_results = curl_exec ($curl);
151
+ // curl_close ($curl);
152
+ // var_dump($curl_results);
153
+ // $json = json_decode($curl_results, true);
154
+ // if(isset($json[0]['error'])){return 0;}
155
+ // return intval( $json[0]['result']['metadata']['globalCounts']['count'] );
156
+ }
157
 
158
  /* get youtube subscribers */
159
  function sfsi_get_youtube($user)
228
  /* send curl request */
229
  private function file_get_contents_curl($url)
230
  {
231
+ if ( ! ini_get( 'safe_mode' ) ){
232
+ set_time_limit( $this->timeout + 10 );
233
+ }
234
+ $args = array(
235
+ 'blocking' => true,
236
+ 'user-agent'=> $_SERVER['HTTP_USER_AGENT'],
237
+ 'timeout' => $this->timeout,
238
+ 'header' => array("Content-Type"=>"application/x-www-form-urlencoded"),
239
+ 'sslverify' => false
240
+ );
241
+ $resp = wp_remote_get( $url, $args );
242
+ if ( is_wp_error( $resp ) ) {
243
+ update_option("sfsi_plus_curlErrorNotices", "yes");
244
+ update_option("sfsi_plus_curlErrorMessage", $resp->get_error_message());
245
+ return null;
246
+ } else {
247
+ // var_dump($resp['body']);
248
+ return $resp['body'];
249
  }
 
250
  }
251
 
252
  private function get_content_curl($url)
253
  {
254
+ $args = array(
255
+ 'body' => $postto_array,
256
+ 'blocking' => true,
257
+ 'user-agent' => 'sf rss request',
258
+ 'header' => array("Content-Type"=>"application/x-www-form-urlencoded"),
259
+ 'sslverify' => false
260
+ );
261
+ $resp = wp_remote_get( $url, $args );
262
+ if ( is_wp_error( $resp ) ) {
263
+ update_option("sfsi_plus_curlErrorNotices", "yes");
264
+ update_option("sfsi_plus_curlErrorMessage", $resp->get_error_message());
265
+ return null;
266
+ } else {
267
+ return $resp['body'];
268
  }
 
269
  }
270
 
271
  /* convert no. to 2K,3M format */
562
  /* get no of subscribers from specificfeeds for current blog count*/
563
  public function sfsi_plus_getFeedSubscriberCount($feedid)
564
  {
565
+ $postto_array = array(
566
+ 'feed_id' => $feedid,
567
+ 'v' => 'newplugincount'
568
+ );
569
+ $args = array(
570
+ 'body' => $postto_array,
571
+ 'blocking' => true,
572
+ 'user-agent' => 'sf rss request',
573
+ 'header' => array("Content-Type"=>"application/x-www-form-urlencoded"),
574
+ 'sslverify' => true
575
+ );
576
+ $resp = wp_remote_post( 'https://www.specificfeeds.com/wordpress/wpCountSubscriber', $args );
577
+ $httpcode = wp_remote_retrieve_response_code($resp);
 
 
578
 
 
 
579
  if($httpcode == 200){
580
 
581
+ if(!empty($resp["body"]))
582
  {
583
+ $resp = json_decode($resp["body"]);
 
 
584
 
585
  $feeddata = stripslashes_deep($resp->subscriber_count);
586
  }
libs/sfsi_Init_JqueryCss.php CHANGED
@@ -65,6 +65,8 @@ function sfsiplus_plugin_back_enqueue_script()
65
  /* initilaize the ajax url in javascript */
66
  wp_localize_script( 'SFSIPLUSCustomJs', 'ajax_object', array( 'ajax_url' => admin_url( 'admin-ajax.php' ) ) );
67
  wp_localize_script( 'SFSIPLUSCustomValidateJs', 'ajax_object', array( 'ajax_url' => admin_url( 'admin-ajax.php' ),'plugin_url'=> SFSI_PLUS_PLUGURL) );
 
 
68
  }
69
  }
70
  }
@@ -98,6 +100,7 @@ function sfsiplus_plugin_front_enqueue_script()
98
 
99
  /* initilaize the ajax url in javascript */
100
  wp_localize_script( 'SFSIPLUSCustomJs', 'ajax_object', array( 'ajax_url' => admin_url( 'admin-ajax.php' ),'plugin_url'=> SFSI_PLUS_PLUGURL) );
 
101
  }
102
  add_action( 'wp_enqueue_scripts', 'sfsiplus_plugin_front_enqueue_script' );
103
  ?>
65
  /* initilaize the ajax url in javascript */
66
  wp_localize_script( 'SFSIPLUSCustomJs', 'ajax_object', array( 'ajax_url' => admin_url( 'admin-ajax.php' ) ) );
67
  wp_localize_script( 'SFSIPLUSCustomValidateJs', 'ajax_object', array( 'ajax_url' => admin_url( 'admin-ajax.php' ),'plugin_url'=> SFSI_PLUS_PLUGURL) );
68
+ wp_localize_script( 'SFSIPLUSCustomJs', 'sfsi_plus_links', array( 'admin_url' => admin_url('/'),'plugin_dir_url'=> SFSI_PLUS_PLUGURL) );
69
+ wp_localize_script( 'SFSIPLUSCustomValidateJs', 'sfsi_plus_links', array( 'admin_url' => admin_url('/'),'plugin_dir_url'=> SFSI_PLUS_PLUGURL) );
70
  }
71
  }
72
  }
100
 
101
  /* initilaize the ajax url in javascript */
102
  wp_localize_script( 'SFSIPLUSCustomJs', 'ajax_object', array( 'ajax_url' => admin_url( 'admin-ajax.php' ),'plugin_url'=> SFSI_PLUS_PLUGURL) );
103
+ wp_localize_script( 'SFSIPLUSCustomJs', 'sfsi_plus_links', array( 'admin_url' => admin_url('/'),'plugin_dir_url'=> SFSI_PLUS_PLUGURL) );
104
  }
105
  add_action( 'wp_enqueue_scripts', 'sfsiplus_plugin_front_enqueue_script' );
106
  ?>
libs/sfsi_gutenberg_block.php CHANGED
@@ -28,7 +28,7 @@ function sfsi_plus_share_block_editor_assets() {
28
  '1'
29
  // filemtime( plugin_dir_path( 'js/block.js', __FILE__ ) )
30
  );
31
-
32
  wp_enqueue_style(
33
  'sfsi-plus-share-block-editor', // Handle.
34
  plugins_url( 'dist/blocks.editor.build.css', dirname( __FILE__ ) ), // Block editor CSS.
@@ -107,7 +107,7 @@ function sfsi_plus_render_gutenberg_round($args = null, $content = null,$share_u
107
  $instance = array("showf" => 1, "title" => '');
108
  $sfsi_plus_section8_options = get_option("sfsi_plus_section8_options");
109
  $sfsi_plus_section8_options = unserialize($sfsi_plus_section8_options);
110
- $sfsi_plus_place_item_gutenberg = isset($sfsi_plus_section8_options['sfsi_plus_place_item_gutenberg'])?$sfsi_plus_section8_options['sfsi_plus_place_item_gutenberg']:'no';
111
  if($sfsi_plus_place_item_gutenberg == "yes")
112
  {
113
  $return = '';
@@ -298,5 +298,4 @@ function sfsi_plus_gutenberg_share_block_init(){
298
  }
299
 
300
  add_action( 'init','sfsi_plus_gutenberg_share_block_init' );
301
-
302
  ?>
28
  '1'
29
  // filemtime( plugin_dir_path( 'js/block.js', __FILE__ ) )
30
  );
31
+ wp_localize_script( 'sfsi-plus-share-block', 'sfsi_plus_links', array( 'admin_url' => admin_url('/'),'plugin_dir_url'=> SFSI_PLUS_PLUGURL) );
32
  wp_enqueue_style(
33
  'sfsi-plus-share-block-editor', // Handle.
34
  plugins_url( 'dist/blocks.editor.build.css', dirname( __FILE__ ) ), // Block editor CSS.
107
  $instance = array("showf" => 1, "title" => '');
108
  $sfsi_plus_section8_options = get_option("sfsi_plus_section8_options");
109
  $sfsi_plus_section8_options = unserialize($sfsi_plus_section8_options);
110
+ $sfsi_plus_place_item_gutenberg = isset($sfsi_plus_section8_options['sfsi_plus_place_item_gutenberg'])?$sfsi_plus_section8_options['sfsi_plus_place_item_gutenberg']:'yes';
111
  if($sfsi_plus_place_item_gutenberg == "yes")
112
  {
113
  $return = '';
298
  }
299
 
300
  add_action( 'init','sfsi_plus_gutenberg_share_block_init' );
 
301
  ?>
libs/sfsi_install_uninstall.php CHANGED
@@ -548,23 +548,23 @@ function sfsi_plus_deactivate_plugin()
548
  } /* end function */
549
  function sfsi_plus_updateFeedPing($status,$feed_id)
550
  {
551
- $curl = curl_init();
552
-
553
- curl_setopt_array($curl, array(
554
- CURLOPT_RETURNTRANSFER => 1,
555
- CURLOPT_URL => 'https://www.specificfeeds.com/wordpress/pingfeed',
556
- CURLOPT_USERAGENT => 'sf rss request',
557
- CURLOPT_POST => 1,
558
- CURLOPT_POSTFIELDS => array(
559
- 'feed_id' => $feed_id,
560
- 'status' => $status
561
- )
562
- ));
563
- // Send the request & save response to $resp
564
- $resp = curl_exec($curl);
565
- $resp=json_decode($resp);
566
- curl_close($curl);
567
-
568
  }
569
  /* unistall plugin function */
570
  function sfsi_plus_Unistall_plugin()
@@ -632,73 +632,76 @@ function sfsi_plus_about_page(){ include SFSI_PLUS_DOCROOT . '/views/sfsi_aboutu
632
  if ( is_admin() ){
633
  add_action('admin_menu', 'sfsi_plus_admin_menu');
634
  }
 
635
  /* fetch rss url from specificfeeds */
636
  function SFSI_PLUS_getFeedUrl()
637
  {
638
- $curl = curl_init();
639
-
640
- curl_setopt_array($curl, array(
641
- CURLOPT_RETURNTRANSFER => 1,
642
- CURLOPT_URL => 'https://www.specificfeeds.com/wordpress/plugin_setup',
643
- CURLOPT_USERAGENT => 'sf rss request',
644
- CURLOPT_POST => 1,
645
- CURLOPT_POSTFIELDS => array(
646
  'web_url' => get_bloginfo('url'),
647
  'feed_url' => sfsi_plus_get_bloginfo('rss2_url'),
648
  'email' => '',
649
  'subscriber_type' => 'PLWP'
650
- )
651
- ));
652
- // Send the request & save response to $resp
653
- $resp = curl_exec($curl);
654
- if(curl_errno($curl))
655
- {
 
 
 
 
 
656
  update_option("sfsi_plus_curlErrorNotices", "yes");
657
- update_option("sfsi_plus_curlErrorMessage", curl_errno($curl));
 
 
658
  }
659
- $resp = json_decode($resp);
660
- curl_close($curl);
661
-
662
  $feed_url = stripslashes_deep($resp->redirect_url);
663
  return $resp;exit;
664
  }
665
  /* fetch rss url from specificfeeds on */
666
  function SFSI_PLUS_updateFeedUrl()
667
  {
668
- $curl = curl_init();
669
-
670
- curl_setopt_array($curl, array(
671
- CURLOPT_RETURNTRANSFER => 1,
672
- CURLOPT_URL => 'https://www.specificfeeds.com/wordpress/updateFeedPlugin',
673
- CURLOPT_USERAGENT => 'sf rss request',
674
- CURLOPT_POST => 1,
675
- CURLOPT_POSTFIELDS => array(
676
- 'feed_id' => sanitize_text_field(get_option('sfsi_plus_feed_id')),
677
  'web_url' => get_bloginfo('url'),
678
  'feed_url' => sfsi_plus_get_bloginfo('rss2_url'),
679
  'email' => ''
680
- )
681
- ));
682
- // Send the request & save response to $resp
683
- $resp = curl_exec($curl);
684
- $resp = json_decode($resp);
685
- curl_close($curl);
686
-
 
 
 
 
 
 
 
 
 
 
687
  $feed_url = stripslashes_deep($resp->redirect_url);
688
  return $resp;exit;
689
  }
690
  /* add sf tags */
691
  function sfsi_plus_setUpfeeds($feed_id)
692
  {
693
- $curl = curl_init();
694
- curl_setopt_array($curl, array(
695
- CURLOPT_RETURNTRANSFER => 1,
696
- CURLOPT_URL => 'https//www.specificfeeds.com/rssegtcrons/download_rssmorefeed_data_single/'.$feed_id."/Y",
697
- CURLOPT_USERAGENT => 'sf rss request',
698
- CURLOPT_POST => 0
699
- ));
700
- $resp = curl_exec($curl);
701
- curl_close($curl);
 
 
702
  }
703
  /* admin notice if wp_head is missing in active theme */
704
  function sfsi_plus_check_wp_head() {
@@ -889,6 +892,7 @@ function sfsi_plus_pingVendor( $post_id )
889
  }
890
  $count++;
891
  }
 
892
  $postto_array = array(
893
  'feed_id' => sanitize_text_field(get_option('sfsi_plus_feed_id')),
894
  'title' => $post_data['post_title'],
@@ -899,20 +903,22 @@ function sfsi_plus_pingVendor( $post_id )
899
  'pubDate' => $post_data['post_modified'],
900
  'rssurl' => sfsi_plus_get_bloginfo('rss2_url')
901
  );
902
-
903
- $curl = curl_init();
904
- curl_setopt_array($curl, array(
905
- CURLOPT_RETURNTRANSFER => 1,
906
- CURLOPT_URL => 'https://www.specificfeeds.com/wordpress/addpostdata ',
907
- CURLOPT_USERAGENT => 'sf rss request',
908
- CURLOPT_POST => 1,
909
- CURLOPT_POSTFIELDS => $postto_array
910
- ));
911
- // Send the request & save response to $resp
912
- $resp = curl_exec($curl);
913
- $resp=json_decode($resp);
914
- curl_close($curl);
915
- return true;
 
 
916
  endif;
917
  }
918
  add_action( 'save_post', 'sfsi_plus_pingVendor' );
548
  } /* end function */
549
  function sfsi_plus_updateFeedPing($status,$feed_id)
550
  {
551
+ $body = array(
552
+ 'feed_id' => $feed_id,
553
+ 'status' => $status
554
+ );
555
+
556
+ $args = array(
557
+ 'body' => $body,
558
+ 'timeout' => '5',
559
+ 'redirection' => '5',
560
+ 'httpversion' => '1.0',
561
+ 'blocking' => true,
562
+ 'headers' => array(),
563
+ 'cookies' => array()
564
+ );
565
+
566
+ $resp = wp_remote_post( 'https://www.specificfeeds.com/wordpress/pingfeed', $args );
567
+ return $resp;
568
  }
569
  /* unistall plugin function */
570
  function sfsi_plus_Unistall_plugin()
632
  if ( is_admin() ){
633
  add_action('admin_menu', 'sfsi_plus_admin_menu');
634
  }
635
+
636
  /* fetch rss url from specificfeeds */
637
  function SFSI_PLUS_getFeedUrl()
638
  {
639
+ $body = array(
 
 
 
 
 
 
 
640
  'web_url' => get_bloginfo('url'),
641
  'feed_url' => sfsi_plus_get_bloginfo('rss2_url'),
642
  'email' => '',
643
  'subscriber_type' => 'PLWP'
644
+ );
645
+
646
+ $args = array(
647
+ 'body' => $body,
648
+ 'blocking' => true,
649
+ 'user-agent' => 'sf rss request',
650
+ 'header' => array("Content-Type"=>"application/x-www-form-urlencoded"),
651
+ 'sslverify' => true
652
+ );
653
+ $resp = wp_remote_post( 'https://www.specificfeeds.com/wordpress/plugin_setup', $args );
654
+ if ( is_wp_error( $resp ) ) {
655
  update_option("sfsi_plus_curlErrorNotices", "yes");
656
+ update_option("sfsi_plus_curlErrorMessage", $resp->get_error_message());
657
+ } else {
658
+ $resp = json_decode($resp['body']);
659
  }
 
 
 
660
  $feed_url = stripslashes_deep($resp->redirect_url);
661
  return $resp;exit;
662
  }
663
  /* fetch rss url from specificfeeds on */
664
  function SFSI_PLUS_updateFeedUrl()
665
  {
666
+ $body = array(
667
+ 'feed_id' => sanitize_text_field(get_option('sfsi_plus_feed_id')),
 
 
 
 
 
 
 
668
  'web_url' => get_bloginfo('url'),
669
  'feed_url' => sfsi_plus_get_bloginfo('rss2_url'),
670
  'email' => ''
671
+ );
672
+
673
+ $args = array(
674
+ 'body' => $body,
675
+ 'blocking' => true,
676
+ 'user-agent' => 'sf rss request',
677
+ 'header' => array("Content-Type"=>"application/x-www-form-urlencoded"),
678
+ 'sslverify' => true
679
+ );
680
+ $resp = wp_remote_post( 'https://www.specificfeeds.com/wordpress/updateFeedPlugin', $args );
681
+ if ( is_wp_error( $resp ) ) {
682
+ update_option("sfsi_plus_curlErrorNotices", "yes");
683
+ update_option("sfsi_plus_curlErrorMessage", $resp->get_error_message());
684
+ } else {
685
+ $resp = json_decode($resp['body']);
686
+ }
687
+
688
  $feed_url = stripslashes_deep($resp->redirect_url);
689
  return $resp;exit;
690
  }
691
  /* add sf tags */
692
  function sfsi_plus_setUpfeeds($feed_id)
693
  {
694
+ $args = array(
695
+ 'blocking' => true,
696
+ 'user-agent' => 'sf rss request',
697
+ 'header' => array("Content-Type"=>"application/json"),
698
+ 'sslverify' => true
699
+ );
700
+ $resp = wp_remote_get( 'https//www.specificfeeds.com/rssegtcrons/download_rssmorefeed_data_single/'.$feed_id."/Y", $args );
701
+ if ( is_wp_error( $resp ) ) {
702
+ update_option("sfsi_plus_curlErrorNotices", "yes");
703
+ update_option("sfsi_plus_curlErrorMessage", $resp->get_error_message());
704
+ }
705
  }
706
  /* admin notice if wp_head is missing in active theme */
707
  function sfsi_plus_check_wp_head() {
892
  }
893
  $count++;
894
  }
895
+
896
  $postto_array = array(
897
  'feed_id' => sanitize_text_field(get_option('sfsi_plus_feed_id')),
898
  'title' => $post_data['post_title'],
903
  'pubDate' => $post_data['post_modified'],
904
  'rssurl' => sfsi_plus_get_bloginfo('rss2_url')
905
  );
906
+ $args = array(
907
+ 'body' => $postto_array,
908
+ 'blocking' => true,
909
+ 'user-agent' => 'sf rss request',
910
+ 'header' => array("Content-Type"=>"application/x-www-form-urlencoded"),
911
+ 'sslverify' => true
912
+ );
913
+ $resp = wp_remote_post( 'https://www.specificfeeds.com/wordpress/updateFeedPlugin', $args );
914
+ if ( is_wp_error( $resp ) ) {
915
+ update_option("sfsi_plus_curlErrorNotices", "yes");
916
+ update_option("sfsi_plus_curlErrorMessage", $resp->get_error_message());
917
+ return false;
918
+ } else {
919
+ $resp = json_decode($resp['body']);
920
+ return true;
921
+ }
922
  endif;
923
  }
924
  add_action( 'save_post', 'sfsi_plus_pingVendor' );
readme.txt CHANGED
@@ -3,7 +3,7 @@ Contributors: socialsharepro
3
  Tags: Share, sharing, share buttons, share button, share social media, share icons, social buttons, sharing buttons, sharing icons, social media icons, social share, social sharing
4
  Requires at least: 3.0
5
  Tested up to: 5.0.2
6
- Stable tag: 3.0.0
7
  License: GPLv2
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
@@ -444,9 +444,13 @@ The premium plugin offrs many more social buttons from other social media platfo
444
 
445
 
446
  == Changelog ==
 
 
 
447
 
448
  = 3.0.0 =
449
- * Updated gutenberg block to incorporate current changes. Added support for multiple controls on block inspector controls.
 
450
 
451
  = 2.9.9 =
452
  * Duplicate IDs removed from icon's link
@@ -800,5 +804,5 @@ The premium plugin offrs many more social buttons from other social media platfo
800
 
801
  == Upgrade Notice ==
802
 
803
- = 3.0.0 =
804
  * Please update
3
  Tags: Share, sharing, share buttons, share button, share social media, share icons, social buttons, sharing buttons, sharing icons, social media icons, social share, social sharing
4
  Requires at least: 3.0
5
  Tested up to: 5.0.2
6
+ Stable tag: 3.0.1
7
  License: GPLv2
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
444
 
445
 
446
  == Changelog ==
447
+ = 3.0.1 =
448
+ * Design updates for Gutenberg
449
+ * Security updates
450
 
451
  = 3.0.0 =
452
+ * Update: Updated gutenberg block to incorporate current changes. Added support for multiple controls on block inspector controls.
453
+ * update: In-admin-pannel chat updated for more user friendly features.
454
 
455
  = 2.9.9 =
456
  * Duplicate IDs removed from icon's link
804
 
805
  == Upgrade Notice ==
806
 
807
+ = 3.0.1 =
808
  * Please update
ultimate_social_media_icons.php CHANGED
@@ -103,7 +103,7 @@ register_deactivation_hook(__FILE__, 'sfsi_plus_deactivate_plugin');
103
  //register_uninstall_hook(__FILE__, 'sfsi_plus_Unistall_plugin');
104
 
105
  /*Plugin version setup*/
106
- if(!get_option('sfsi_plus_pluginVersion') || get_option('sfsi_plus_pluginVersion') < 3.00)
107
  {
108
  add_action("init", "sfsi_plus_update_plugin");
109
  }
@@ -302,22 +302,24 @@ if(is_admin())
302
  function sfsi_plus_getverification_code()
303
  {
304
  $feed_id = sanitize_text_field(get_option('sfsi_plus_feed_id'));
305
- $curl = curl_init();
306
- curl_setopt_array($curl, array(
307
- CURLOPT_RETURNTRANSFER => 1,
308
- CURLOPT_URL => 'https://www.specificfeeds.com/wordpress/getVerifiedCode_plugin',
309
- CURLOPT_USERAGENT => 'sf get verification',
310
- CURLOPT_POST => 1,
311
- CURLOPT_POSTFIELDS => array(
312
- 'feed_id' => $feed_id
313
- )
314
- ));
315
-
316
- // Send the request & save response to $resp
317
- $resp = curl_exec($curl);
318
- $resp = json_decode($resp);
319
- update_option('sfsi_plus_verificatiom_code', $resp->code);
320
- curl_close($curl);
 
 
321
  }
322
 
323
  //functionality for before and after single posts
103
  //register_uninstall_hook(__FILE__, 'sfsi_plus_Unistall_plugin');
104
 
105
  /*Plugin version setup*/
106
+ if(!get_option('sfsi_plus_pluginVersion') || get_option('sfsi_plus_pluginVersion') < 3.01)
107
  {
108
  add_action("init", "sfsi_plus_update_plugin");
109
  }
302
  function sfsi_plus_getverification_code()
303
  {
304
  $feed_id = sanitize_text_field(get_option('sfsi_plus_feed_id'));
305
+ $url = $http_url = 'https://www.specificfeeds.com/wordpress/getVerifiedCode_plugin';
306
+
307
+ $args = array(
308
+ 'timeout' => 15,
309
+ 'body' => array(
310
+ 'feed_id' => $feed_id
311
+ )
312
+ );
313
+
314
+ $request = wp_remote_post( $url, $args );
315
+
316
+ if ( is_wp_error( $request ) ) {
317
+ update_option("sfsi_plus_curlErrorNotices", "yes");
318
+ update_option("sfsi_plus_curlErrorMessage", $request->get_error_message());
319
+ }else{
320
+ $resp = json_decode($request['body']);
321
+ update_option('sfsi_plus_verificatiom_code', $resp->code);
322
+ }
323
  }
324
 
325
  //functionality for before and after single posts
views/sfsi_option_view8.php CHANGED
@@ -55,7 +55,7 @@
55
  : '';
56
  $option8['sfsi_plus_place_item_gutenberg'] = (isset($option8['sfsi_plus_place_item_gutenberg']))
57
  ? sanitize_text_field($option8['sfsi_plus_place_item_gutenberg'])
58
- : 'no';
59
  $option8['sfsi_plus_display_button_type'] = (isset($option8['sfsi_plus_display_button_type']))
60
  ? sanitize_text_field($option8['sfsi_plus_display_button_type'])
61
  : '';
55
  : '';
56
  $option8['sfsi_plus_place_item_gutenberg'] = (isset($option8['sfsi_plus_place_item_gutenberg']))
57
  ? sanitize_text_field($option8['sfsi_plus_place_item_gutenberg'])
58
+ : 'yes';
59
  $option8['sfsi_plus_display_button_type'] = (isset($option8['sfsi_plus_display_button_type']))
60
  ? sanitize_text_field($option8['sfsi_plus_display_button_type'])
61
  : '';