Gutenberg Blocks and Template Library by Otter - Version 1.7.1

Version Description

Download this release

Release Info

Developer themeisle
Plugin Icon wp plugin Gutenberg Blocks and Template Library by Otter
Version 1.7.1
Comparing to
See all releases

Code changes from version 1.7.0 to 1.7.1

Files changed (33) hide show
  1. CHANGELOG.md +5 -0
  2. {packages/codeinwp/gutenberg-animation/assets/css → assets/animate}/animate.min.css +0 -0
  3. {packages/codeinwp/gutenberg-blocks/assets → assets}/glide/glide.core.min.css +0 -0
  4. {packages/codeinwp/gutenberg-blocks/assets → assets}/glide/glide.min.js +0 -0
  5. {packages/codeinwp/gutenberg-blocks/assets → assets}/glide/glide.theme.min.css +0 -0
  6. {packages/codeinwp/gutenberg-blocks/assets → assets}/icons/map-aubergine.png +0 -0
  7. {packages/codeinwp/gutenberg-blocks/assets → assets}/icons/map-dark.png +0 -0
  8. {packages/codeinwp/gutenberg-blocks/assets → assets}/icons/map-night.png +0 -0
  9. {packages/codeinwp/gutenberg-blocks/assets → assets}/icons/map-retro.png +0 -0
  10. {packages/codeinwp/gutenberg-blocks/assets → assets}/icons/map-silver.png +0 -0
  11. {packages/codeinwp/gutenberg-blocks/assets → assets}/icons/map-standard.png +0 -0
  12. {packages/codeinwp/gutenberg-blocks/assets → assets}/icons/posts-grid.jpg +0 -0
  13. {packages/codeinwp/gutenberg-blocks/assets → assets}/icons/posts-list.jpg +0 -0
  14. {packages/codeinwp/gutenberg-blocks/assets → assets}/leaflet/images/layers-2x.png +0 -0
  15. {packages/codeinwp/gutenberg-blocks/assets → assets}/leaflet/images/layers.png +0 -0
  16. {packages/codeinwp/gutenberg-blocks/assets → assets}/leaflet/images/marker-icon-2x.png +0 -0
  17. {packages/codeinwp/gutenberg-blocks/assets → assets}/leaflet/images/marker-icon.png +0 -0
  18. {packages/codeinwp/gutenberg-blocks/assets → assets}/leaflet/images/marker-shadow.png +0 -0
  19. {packages/codeinwp/gutenberg-blocks/assets → assets}/leaflet/leaflet-gesture-handling.min.css +0 -0
  20. {packages/codeinwp/gutenberg-blocks/assets → assets}/leaflet/leaflet-gesture-handling.min.js +0 -0
  21. {packages/codeinwp/gutenberg-blocks/assets → assets}/leaflet/leaflet.css +0 -0
  22. {packages/codeinwp/gutenberg-blocks/assets → assets}/leaflet/leaflet.js +0 -0
  23. {packages/codeinwp/gutenberg-blocks/assets → assets}/lottie/lottie-interactivity.min.js +0 -0
  24. {packages/codeinwp/gutenberg-blocks/assets → assets}/lottie/lottie-player.min.js +0 -0
  25. {packages/codeinwp/gutenberg-blocks/assets → assets}/macy/macy.js +0 -0
  26. packages/codeinwp/gutenberg-blocks/autoloader.php → autoloader.php +1 -1
  27. {packages/codeinwp/gutenberg-animation/build → build/animation}/frontend.asset.php +1 -1
  28. build/animation/frontend.js +1 -0
  29. {packages/codeinwp/gutenberg-animation/build → build/animation}/index.asset.php +1 -1
  30. build/animation/index.css +1 -0
  31. build/animation/index.js +1 -0
  32. build/blocks/blocks.asset.php +1 -0
  33. build/blocks/blocks.js +1 -0
CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
 
 
 
 
 
1
  #### [Version 1.7.0](https://github.com/Codeinwp/otter-blocks/compare/v1.6.9...v1.7.0) (2021-10-11)
2
 
3
  - Add Masonry Variation to Gallery
1
+ ##### [Version 1.7.1](https://github.com/Codeinwp/otter-blocks/compare/v1.7.0...v1.7.1) (2021-10-25)
2
+
3
+ - Development changes
4
+ - Development changes
5
+
6
  #### [Version 1.7.0](https://github.com/Codeinwp/otter-blocks/compare/v1.6.9...v1.7.0) (2021-10-11)
7
 
8
  - Add Masonry Variation to Gallery
{packages/codeinwp/gutenberg-animation/assets/css → assets/animate}/animate.min.css RENAMED
File without changes
{packages/codeinwp/gutenberg-blocks/assets → assets}/glide/glide.core.min.css RENAMED
File without changes
{packages/codeinwp/gutenberg-blocks/assets → assets}/glide/glide.min.js RENAMED
File without changes
{packages/codeinwp/gutenberg-blocks/assets → assets}/glide/glide.theme.min.css RENAMED
File without changes
{packages/codeinwp/gutenberg-blocks/assets → assets}/icons/map-aubergine.png RENAMED
File without changes
{packages/codeinwp/gutenberg-blocks/assets → assets}/icons/map-dark.png RENAMED
File without changes
{packages/codeinwp/gutenberg-blocks/assets → assets}/icons/map-night.png RENAMED
File without changes
{packages/codeinwp/gutenberg-blocks/assets → assets}/icons/map-retro.png RENAMED
File without changes
{packages/codeinwp/gutenberg-blocks/assets → assets}/icons/map-silver.png RENAMED
File without changes
{packages/codeinwp/gutenberg-blocks/assets → assets}/icons/map-standard.png RENAMED
File without changes
{packages/codeinwp/gutenberg-blocks/assets → assets}/icons/posts-grid.jpg RENAMED
File without changes
{packages/codeinwp/gutenberg-blocks/assets → assets}/icons/posts-list.jpg RENAMED
File without changes
{packages/codeinwp/gutenberg-blocks/assets → assets}/leaflet/images/layers-2x.png RENAMED
File without changes
{packages/codeinwp/gutenberg-blocks/assets → assets}/leaflet/images/layers.png RENAMED
File without changes
{packages/codeinwp/gutenberg-blocks/assets → assets}/leaflet/images/marker-icon-2x.png RENAMED
File without changes
{packages/codeinwp/gutenberg-blocks/assets → assets}/leaflet/images/marker-icon.png RENAMED
File without changes
{packages/codeinwp/gutenberg-blocks/assets → assets}/leaflet/images/marker-shadow.png RENAMED
File without changes
{packages/codeinwp/gutenberg-blocks/assets → assets}/leaflet/leaflet-gesture-handling.min.css RENAMED
File without changes
{packages/codeinwp/gutenberg-blocks/assets → assets}/leaflet/leaflet-gesture-handling.min.js RENAMED
File without changes
{packages/codeinwp/gutenberg-blocks/assets → assets}/leaflet/leaflet.css RENAMED
File without changes
{packages/codeinwp/gutenberg-blocks/assets → assets}/leaflet/leaflet.js RENAMED
File without changes
{packages/codeinwp/gutenberg-blocks/assets → assets}/lottie/lottie-interactivity.min.js RENAMED
File without changes
{packages/codeinwp/gutenberg-blocks/assets → assets}/lottie/lottie-player.min.js RENAMED
File without changes
{packages/codeinwp/gutenberg-blocks/assets → assets}/macy/macy.js RENAMED
File without changes
packages/codeinwp/gutenberg-blocks/autoloader.php → autoloader.php RENAMED
@@ -74,7 +74,7 @@ class Autoloader {
74
 
75
  // work backwards through the namespace names of the fully-qualified.
76
  // class name to find a mapped file name.
77
- while ( false !== $pos = strrpos( $prefix, '\\' ) ) { //phpcs:ignore WordPress.CodeAnalysis.AssignmentInCondition.FoundInWhileCondition
78
 
79
  // retain the trailing namespace separator in the prefix.
80
  $prefix = substr( $class, 0, $pos + 1 );
74
 
75
  // work backwards through the namespace names of the fully-qualified.
76
  // class name to find a mapped file name.
77
+ while ( false !== $pos = strrpos( $prefix, '\\' ) ) { // phpcs:ignore WordPress.CodeAnalysis.AssignmentInCondition.FoundInWhileCondition
78
 
79
  // retain the trailing namespace separator in the prefix.
80
  $prefix = substr( $class, 0, $pos + 1 );
{packages/codeinwp/gutenberg-animation/build → build/animation}/frontend.asset.php RENAMED
@@ -1 +1 @@
1
- <?php return array('dependencies' => array('wp-polyfill'), 'version' => '1a6b557931cf266dea133f1ea9fce541');
1
+ <?php return array('dependencies' => array('wp-polyfill'), 'version' => '0d96c73e78823d566cdeca0c5a4c8572');
build/animation/frontend.js ADDED
@@ -0,0 +1 @@
 
1
+ !function(){const t=["none","bounce","flash","pulse","rubberBand","shake","headShake","swing","tada","wobble","jello","heartBeat","hinge","jackInTheBox","bounceIn","bounceInDown","bounceInLeft","bounceInRight","bounceInUp","bounceOut","bounceOutDown","bounceOutLeft","bounceOutRight","bounceOutUp","fadeIn","fadeInDown","fadeInDownBig","fadeInLeft","fadeInLeftBig","fadeInRight","fadeInRightBig","fadeInUp","fadeOut","fadeOutDown","fadeOutDownBig","fadeOutLeft","fadeOutLeftBig","fadeOutRight","fadeOutRightBig","fadeOutUp","fadeOutUpBig","flip","flipInX","flipInY","flipOutX","flipOutY","lightSpeedIn","lightSpeedOut","rotateIn","rotateInDownLeft","rotateInDownRight","rotateInUpLeft","rotateInUpRight","rotateOut","rotateOutDownLeft","rotateOutDownRight","rotateOutUpLeft","rotateOutUpRight","slideInDown","slideInLeft","slideInRight","slideInUp","slideOutDown","slideOutLeft","slideOutRight","slideOutUp","zoomIn","zoomInDown","zoomInLeft","zoomInRight","zoomInUp","zoomOut","zoomOutDown","zoomOutLeft","zoomOutRight","zoomOutUp","rollIn","rollOut"],e=["bounceOut","bounceOutDown","bounceOutLeft","bounceOutRight","bounceOutUp","fadeOut","fadeOutDown","fadeOutDownBig","fadeOutLeft","fadeOutLeftBig","fadeOutRight","fadeOutRightBig","fadeOutUp","fadeOutUpBig","flipOutX","flipOutY","lightSpeedOut","rotateOut","rotateOutDownLeft","rotateOutDownRight","rotateOutUpLeft","rotateOutUpRight","slideOutDown","slideOutLeft","slideOutRight","slideOutUp","zoomOut","zoomOutDown","zoomOutLeft","zoomOutRight","zoomOutUp","rollOut"],n=["none","delay-100ms","delay-200ms","delay-500ms","delay-1s","delay-2s","delay-3s","delay-4s","delay-5s"],o=["none","slow","slower","fast","faster"];window.onload=()=>{const i=document.querySelectorAll(".animated");for(const s of i){if(classes=s.classList,s.animationClasses=[],!a(s)){const e=t.find((t=>Array.from(classes).find((e=>e===t)))),a=n.find((t=>Array.from(classes).find((e=>e===t)))),i=o.find((t=>Array.from(classes).find((e=>e===t))));s.classList.add("hidden-animated"),e&&(s.animationClasses.push(e),s.classList.remove(e)),a&&(s.animationClasses.push(a),s.classList.remove(a)),i&&(s.animationClasses.push(i),s.classList.remove(i))}e.forEach((t=>{s.className.includes(t)&&s.addEventListener("animationend",(()=>{s.classList.remove(t)}))}))}window.onscroll=()=>{for(const t of i)t.getBoundingClientRect().top<=.75*window.innerHeight&&0<t.getBoundingClientRect().top&&t.animationClasses&&0<t.animationClasses.length&&(t.animationClasses.forEach((e=>t.classList.add(e))),t.classList.remove("hidden-animated"),delete t.animationClasses)}};const a=t=>{const e=window.scrollY||window.pageYOffset,n=t.getBoundingClientRect().top+e,o=e,a=e+window.innerHeight,i=n,s=n+t.clientHeight;return s>=o&&s<=a||i<=a&&i>=o}}();
{packages/codeinwp/gutenberg-animation/build → build/animation}/index.asset.php RENAMED
@@ -1 +1 @@
1
- <?php return array('dependencies' => array('wp-block-editor', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-polyfill'), 'version' => 'c791289d0e669a2ddf900b60c57edcd7');
1
+ <?php return array('dependencies' => array('wp-block-editor', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-polyfill'), 'version' => '369ab3c84c44e8607b7429cc6a63a9b4');
build/animation/index.css ADDED
@@ -0,0 +1 @@
 
1
+ .hidden-animated{visibility:hidden}.animated.delay-100ms{-webkit-animation-delay:.1s;animation-delay:.1s}.animated.delay-200ms{-webkit-animation-delay:.2s;animation-delay:.2s}.animated.delay-500ms{-webkit-animation-delay:.5s;animation-delay:.5s}.themeisle-animations-control__popover:not(.is-mobile).is-bottom{z-index:9999999}.themeisle-animations-control__popover .components-popover__content{overflow-y:hidden}.themeisle-animations-control__popover .components-menu-group{padding:7px}.themeisle-animations-control__popover .components-popover__items{max-height:300px;overflow-y:auto}.themeisle-animations-control__popover .components-popover__items button.is-selected{background:#f8f9f9}.themeisle-animations-control__popover .components-popover__items button i{margin-right:5px}.themeisle-animations-control__popover .components-popover__items .themeisle-animations-control__category{font-weight:700}.themeisle-animations-control .components-dropdown{display:flex}.themeisle-animations-control .themeisle-animations-control__button{background:transparent;border:1px solid #8d96a0;border-radius:4px;box-shadow:0 0 0 transparent;height:auto;line-height:28px;padding:0 12px 2px;position:relative;transition:box-shadow .1s linear;width:100%}.themeisle-animations-control .themeisle-animations-control__button.is-button{background:transparent}.themeisle-animations-control .themeisle-animations-control__button:hover{background:#fafafa;border-color:#999;box-shadow:inset 0 -1px 0 #999;color:#23282d;text-decoration:none}.themeisle-animations-control .themeisle-animations-control__button:focus{border:1px solid #000}.themeisle-animations-control .themeisle-animations-control__button:after{border-left:3px solid transparent;border-right:3px solid transparent;border-top:5px solid;content:"";display:block;height:0;margin-left:4px;margin-right:2px;pointer-events:none;position:absolute;right:8px;top:12px;width:0}@media(max-width:782px){.themeisle-animations-control .themeisle-animations-control__button{padding:5px 24px 5px 8px}.themeisle-animations-control .themeisle-animations-control__button:after{top:16px}}
build/animation/index.js ADDED
@@ -0,0 +1 @@
 
1
+ !function(){"use strict";var e=window.wp.element,t=window.wp.i18n,l=window.wp.blocks,o=window.wp.components,a=window.wp.compose,n=window.wp.blockEditor,u=window.wp.hooks;const s=[{label:(0,t.__)("None","otter-blocks"),value:"none"},{label:(0,t.__)("Bounce","otter-blocks"),value:"bounce"},{label:(0,t.__)("Bounce In","otter-blocks"),value:"bounceIn"},{label:(0,t.__)("Bounce In Down","otter-blocks"),value:"bounceInDown"},{label:(0,t.__)("Bounce In Left","otter-blocks"),value:"bounceInLeft"},{label:(0,t.__)("Bounce In Right","otter-blocks"),value:"bounceInRight"},{label:(0,t.__)("Bounce In Up","otter-blocks"),value:"bounceInUp"},{label:(0,t.__)("Bounce Out","otter-blocks"),value:"bounceOut"},{label:(0,t.__)("Bounce Out Down","otter-blocks"),value:"bounceOutDown"},{label:(0,t.__)("Bounce Out Left","otter-blocks"),value:"bounceOutLeft"},{label:(0,t.__)("Bounce Out Right","otter-blocks"),value:"bounceOutRight"},{label:(0,t.__)("Bounce Out Up","otter-blocks"),value:"bounceOutUp"},{label:(0,t.__)("Fade In","otter-blocks"),value:"fadeIn"},{label:(0,t.__)("Fade In Down","otter-blocks"),value:"fadeInDown"},{label:(0,t.__)("Fade In Down Big","otter-blocks"),value:"fadeInDownBig"},{label:(0,t.__)("Fade In Left","otter-blocks"),value:"fadeInLeft"},{label:(0,t.__)("Fade In Left Big","otter-blocks"),value:"fadeInLeftBig"},{label:(0,t.__)("Fade In Right","otter-blocks"),value:"fadeInRight"},{label:(0,t.__)("Fade In Right Big","otter-blocks"),value:"fadeInRightBig"},{label:(0,t.__)("Fade In Up","otter-blocks"),value:"fadeInUp"},{label:(0,t.__)("Fade Out","otter-blocks"),value:"fadeOut"},{label:(0,t.__)("Fade Out Down","otter-blocks"),value:"fadeOutDown"},{label:(0,t.__)("Fade Out Down Big","otter-blocks"),value:"fadeOutDownBig"},{label:(0,t.__)("Fade Out Left","otter-blocks"),value:"fadeOutLeft"},{label:(0,t.__)("Fade Out Left Big","otter-blocks"),value:"fadeOutLeftBig"},{label:(0,t.__)("Fade Out Right","otter-blocks"),value:"fadeOutRight"},{label:(0,t.__)("Fade Out Right Big","otter-blocks"),value:"fadeOutRightBig"},{label:(0,t.__)("Fade Out Up","otter-blocks"),value:"fadeOutUp"},{label:(0,t.__)("Fade Out Up Big","otter-blocks"),value:"fadeOutUpBig"},{label:(0,t.__)("Flip","otter-blocks"),value:"flip"},{label:(0,t.__)("Flip In X","otter-blocks"),value:"flipInX"},{label:(0,t.__)("Flip In Y","otter-blocks"),value:"flipInY"},{label:(0,t.__)("Flip Out X","otter-blocks"),value:"flipOutX"},{label:(0,t.__)("Flip Out Y","otter-blocks"),value:"flipOutY"},{label:(0,t.__)("Rotate In","otter-blocks"),value:"rotateIn"},{label:(0,t.__)("Rotate In Down Left","otter-blocks"),value:"rotateInDownLeft"},{label:(0,t.__)("Rotate In Down Right","otter-blocks"),value:"rotateInDownRight"},{label:(0,t.__)("Rotate In Up Left","otter-blocks"),value:"rotateInUpLeft"},{label:(0,t.__)("Rotate In Up Right","otter-blocks"),value:"rotateInUpRight"},{label:(0,t.__)("Rotate Out","otter-blocks"),value:"rotateOut"},{label:(0,t.__)("Rotate Out Down Left","otter-blocks"),value:"rotateOutDownLeft"},{label:(0,t.__)("Rotate Out Down Right","otter-blocks"),value:"rotateOutDownRight"},{label:(0,t.__)("Rotate Out Up Left","otter-blocks"),value:"rotateOutUpLeft"},{label:(0,t.__)("Rotate Out Up Right","otter-blocks"),value:"rotateOutUpRight"},{label:(0,t.__)("Slide In Down","otter-blocks"),value:"slideInDown"},{label:(0,t.__)("Slide In Left","otter-blocks"),value:"slideInLeft"},{label:(0,t.__)("Slide In Right","otter-blocks"),value:"slideInRight"},{label:(0,t.__)("Slide In Up","otter-blocks"),value:"slideInUp"},{label:(0,t.__)("Slide Out Down","otter-blocks"),value:"slideOutDown"},{label:(0,t.__)("Slide Out Left","otter-blocks"),value:"slideOutLeft"},{label:(0,t.__)("Slide Out Right","otter-blocks"),value:"slideOutRight"},{label:(0,t.__)("Slide Out Up","otter-blocks"),value:"slideOutUp"},{label:(0,t.__)("Zoom In","otter-blocks"),value:"zoomIn"},{label:(0,t.__)("Zoom In Down","otter-blocks"),value:"zoomInDown"},{label:(0,t.__)("Zoom In Left","otter-blocks"),value:"zoomInLeft"},{label:(0,t.__)("Zoom In Right","otter-blocks"),value:"zoomInRight"},{label:(0,t.__)("Zoom In Up","otter-blocks"),value:"zoomInUp"},{label:(0,t.__)("Zoom Out","otter-blocks"),value:"zoomOut"},{label:(0,t.__)("Zoom Out Down","otter-blocks"),value:"zoomOutDown"},{label:(0,t.__)("Zoom Out Left","otter-blocks"),value:"zoomOutLeft"},{label:(0,t.__)("Zoom Out Right","otter-blocks"),value:"zoomOutRight"},{label:(0,t.__)("Zoom Out Up","otter-blocks"),value:"zoomOutUp"},{label:(0,t.__)("Roll In","otter-blocks"),value:"rollIn"},{label:(0,t.__)("Roll Out","otter-blocks"),value:"rollOut"},{label:(0,t.__)("Light Speed In","otter-blocks"),value:"lightSpeedIn"},{label:(0,t.__)("Light Speed Out","otter-blocks"),value:"lightSpeedOut"},{label:(0,t.__)("Flash","otter-blocks"),value:"flash"},{label:(0,t.__)("Pulse","otter-blocks"),value:"pulse"},{label:(0,t.__)("Rubber Band","otter-blocks"),value:"rubberBand"},{label:(0,t.__)("Shake","otter-blocks"),value:"shake"},{label:(0,t.__)("Head Shake","otter-blocks"),value:"headShake"},{label:(0,t.__)("Swing","otter-blocks"),value:"swing"},{label:(0,t.__)("TaDa","otter-blocks"),value:"tada"},{label:(0,t.__)("Wobble","otter-blocks"),value:"wobble"},{label:(0,t.__)("Jello","otter-blocks"),value:"jello"},{label:(0,t.__)("Heart Beat","otter-blocks"),value:"heartBeat"},{label:(0,t.__)("Hinge","otter-blocks"),value:"hinge"},{label:(0,t.__)("Jack In The Box","otter-blocks"),value:"jackInTheBox"}],b=[{label:(0,t.__)("Bouncing","otter-blocks"),value:"bounce"},{label:(0,t.__)("Fading","otter-blocks"),value:"fadeIn"},{label:(0,t.__)("Flipping","otter-blocks"),value:"flip"},{label:(0,t.__)("Rotating","otter-blocks"),value:"rotateIn"},{label:(0,t.__)("Sliding","otter-blocks"),value:"slideInDown"},{label:(0,t.__)("Zooming","otter-blocks"),value:"zoomIn"},{label:(0,t.__)("Rolling","otter-blocks"),value:"rollIn"},{label:(0,t.__)("Other","otter-blocks"),value:"lightSpeedIn"}],r=["bounceOut","bounceOutDown","bounceOutLeft","bounceOutRight","bounceOutUp","fadeOut","fadeOutDown","fadeOutDownBig","fadeOutLeft","fadeOutLeftBig","fadeOutRight","fadeOutRightBig","fadeOutUp","fadeOutUpBig","flipOutX","flipOutY","lightSpeedOut","rotateOut","rotateOutDownLeft","rotateOutDownRight","rotateOutUpLeft","rotateOutUpRight","slideOutDown","slideOutLeft","slideOutRight","slideOutUp","zoomOut","zoomOutDown","zoomOutLeft","zoomOutRight","zoomOutUp","rollOut"],c=[{label:(0,t.__)("None","otter-blocks"),value:"none"},{label:(0,t.__)("100 Milliseconds","otter-blocks"),value:"delay-100ms"},{label:(0,t.__)("200 Milliseconds","otter-blocks"),value:"delay-200ms"},{label:(0,t.__)("500 Milliseconds","otter-blocks"),value:"delay-500ms"},{label:(0,t.__)("One Second","otter-blocks"),value:"delay-1s"},{label:(0,t.__)("Two Second","otter-blocks"),value:"delay-2s"},{label:(0,t.__)("Three Second","otter-blocks"),value:"delay-3s"},{label:(0,t.__)("Four Second","otter-blocks"),value:"delay-4s"},{label:(0,t.__)("Five Second","otter-blocks"),value:"delay-5s"}],i=[{label:(0,t.__)("Default","otter-blocks"),value:"none"},{label:(0,t.__)("Slow","otter-blocks"),value:"slow"},{label:(0,t.__)("Slower","otter-blocks"),value:"slower"},{label:(0,t.__)("Fast","otter-blocks"),value:"fast"},{label:(0,t.__)("Faster","otter-blocks"),value:"faster"}];var _=function l({animationsList:n,updateAnimation:u,currentAnimationLabel:s,setCurrentAnimationLabel:r}){const c=(0,a.useInstanceId)(l),[i,_]=(0,e.useState)(""),[d,v]=(0,e.useState)(!1),m=`inspector-themeisle-animations-control-${c}`;return(0,e.createElement)(o.BaseControl,{label:(0,t.__)("Animation","otter-blocks"),id:m},(0,e.createElement)(o.Dropdown,{contentClassName:"themeisle-animations-control__popover",position:"bottom center",renderToggle:({isOpen:t,onToggle:l})=>(0,e.createElement)(o.Button,{isLarge:!0,className:"themeisle-animations-control__button",id:m,onClick:l,"aria-expanded":t},s),renderContent:({onToggle:l})=>(0,e.createElement)(o.MenuGroup,{label:(0,t.__)("Animations","otter-blocks")},(0,e.createElement)(o.TextControl,{placeholder:(0,t.__)("Search","otter-blocks"),value:i,onChange:e=>{_(e),v(!1)}}),(0,e.createElement)("div",{className:"components-popover__items"},n.map((t=>(0,e.createElement)(e.Fragment,null,""===i&&b.map((l=>l.value===t.value?(0,e.createElement)("div",{className:"themeisle-animations-control__category"},l.label):"")),((t,l)=>{let a=!0;return i&&i.toLowerCase().split(" ").forEach((e=>{t.label.toLowerCase().includes(e)||(a=!1)})),a&&!d&&v(!0),a&&(0,e.createElement)(o.MenuItem,{className:s===t.label?"is-selected":"",onClick:()=>{r(t.label),u(t.value),l()}},t.label)})(t,l)))),!d&&(0,e.createElement)("div",null,(0,t.__)("Nothing found. Try searching for something else!","otter-blocks"))))}))},d=function({attributes:l,clientId:a,setAttributes:n}){(0,e.useEffect)((()=>{let e;if(l.className){e=l.className,e=e.split(" ");const t=Array.from(s).find((t=>e.find((e=>e===t.value)))),o=Array.from(c).find((t=>e.find((e=>e===t.value)))),a=Array.from(i).find((t=>e.find((e=>e===t.value))));b(t?t.value:"none"),v(o?o.value:"default"),k(a?a.value:"default"),f(t?t.label:"none")}}),[]);const[u,b]=(0,e.useState)("none"),[d,v]=(0,e.useState)("default"),[m,k]=(0,e.useState)("default"),[p,f]=(0,e.useState)("none");return(0,e.createElement)("div",{className:"themeisle-animations-control"},(0,e.createElement)(_,{animationsList:s,updateAnimation:e=>{let t,o="none"!==e?e:"";if(l.className){t=l.className,t=t.split(" ");const e=t.find((e=>e===u));t.find((e=>"animated"===e))||t.push("animated"),e?t=t.join(" ").replace(u,o):(t.push(o),t=t.join(" "))}else t=`animated ${o}`;"none"===e&&(t=t.replace("animated","").replace(d,"").replace(m,""),v("default"),k("default")),t=t.replace(/\s+/g," ").trim(),""===t&&(t=void 0),b(e),n({className:t});let s=document.querySelector(`#block-${a} .animated`);s&&r.forEach((e=>{s.className.includes(e)&&s.addEventListener("animationend",(()=>{s.classList.remove(e),s.addEventListener("animationstart",(()=>{s.classList.remove(e)}))}))}))},currentAnimationLabel:p,setCurrentAnimationLabel:f}),"none"!==u&&(0,e.createElement)(e.Fragment,null,(0,e.createElement)(o.SelectControl,{label:(0,t.__)("Delay","otter-blocks"),value:d||"default",options:c,onChange:e=>{let t,o="none"!==e?e:"";l.className?(t=l.className,t=t.split(" "),t.find((e=>e===d))?t=t.join(" ").replace(d,o):(t.push(o),t=t.join(" "))):t=o,t=t.replace(/\s+/g," "),v(e),n({className:t})}}),(0,e.createElement)(o.SelectControl,{label:(0,t.__)("Speed","otter-blocks"),value:m||"default",options:i,onChange:e=>{let t,o="none"!==e?e:"";l.className?(t=l.className,t=t.split(" "),t.find((e=>e===m))?t=t.join(" ").replace(m,o):(t.push(o),t=t.join(" "))):t=o,t=t.replace(/\s+/g," "),k(e),n({className:t})}})))};const v=(0,a.createHigherOrderComponent)((a=>u=>(0,l.hasBlockSupport)(u.name,"customClassName",!0)&&u.isSelected?(0,e.createElement)(e.Fragment,null,(0,e.createElement)(a,u),(0,e.createElement)(n.InspectorControls,null,(0,e.createElement)(o.PanelBody,{title:(0,t.__)("Animations","otter-blocks"),initialOpen:!1},(0,e.createElement)(d,{clientId:u.clientId,setAttributes:u.setAttributes,attributes:u.attributes})))):(0,e.createElement)(a,u)),"withInspectorControl");(0,u.addFilter)("editor.BlockEdit","themeisle-custom-css/with-inspector-controls",v)}();
build/blocks/blocks.asset.php ADDED
@@ -0,0 +1 @@
 
1
+ <?php return array('dependencies' => array('lodash', 'moment', 'react', 'react-dom', 'wp-api', 'wp-api-fetch', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-data', 'wp-date', 'wp-edit-post', 'wp-element', 'wp-hooks', 'wp-html-entities', 'wp-i18n', 'wp-keycodes', 'wp-plugins', 'wp-polyfill', 'wp-primitives', 'wp-rich-text', 'wp-server-side-render'), 'version' => 'f4dd158fd8d09f9315eb4fc6725537d4');
build/blocks/blocks.js ADDED
@@ -0,0 +1 @@
 
1
+ (function(){"use strict";var __webpack_modules__={3802:function(__unused_webpack_module,__unused_webpack___webpack_exports__,__webpack_require__){eval('\n// EXTERNAL MODULE: external ["wp","i18n"]\nvar external_wp_i18n_ = __webpack_require__(5736);\n// EXTERNAL MODULE: external ["wp","blocks"]\nvar external_wp_blocks_ = __webpack_require__(4981);\n// EXTERNAL MODULE: ./src/blocks/helpers/icons.js\nvar icons = __webpack_require__(340);\n// EXTERNAL MODULE: external ["wp","element"]\nvar external_wp_element_ = __webpack_require__(9307);\n// EXTERNAL MODULE: external ["wp","components"]\nvar external_wp_components_ = __webpack_require__(5609);\n// EXTERNAL MODULE: external ["wp","serverSideRender"]\nvar external_wp_serverSideRender_ = __webpack_require__(8423);\nvar external_wp_serverSideRender_default = /*#__PURE__*/__webpack_require__.n(external_wp_serverSideRender_);\n;// CONCATENATED MODULE: ./src/blocks/blocks/about-author/edit.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\nconst Edit = () => {\n return (0,external_wp_element_.createElement)(external_wp_components_.Disabled, null, (0,external_wp_element_.createElement)((external_wp_serverSideRender_default()), {\n block: "themeisle-blocks/about-author"\n }));\n};\n\n/* harmony default export */ var edit = (Edit);\n;// CONCATENATED MODULE: ./src/blocks/blocks/about-author/index.js\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n(0,external_wp_blocks_.registerBlockType)(\'themeisle-blocks/about-author\', {\n title: (0,external_wp_i18n_.__)(\'About Author\', \'otter-blocks\'),\n description: (0,external_wp_i18n_.__)(\'About Author block is the easiest way to add a author bio below your posts.\', \'otter-blocks\'),\n icon: icons/* authorIcon */.VI,\n category: \'themeisle-blocks\',\n keywords: [\'about\', \'author\', \'profile\'],\n supports: {\n html: false\n },\n edit: edit,\n save: () => null\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMzgwMi5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7O0FBRUEsTUFBTUUsSUFBSSxHQUFHLE1BQU07QUFDbEIsU0FDQyx1Q0FBQyxnQ0FBRCxRQUNDLHVDQUFDLHdDQUFEO0FBQWtCLFNBQUssRUFBQztBQUF4QixJQURELENBREQ7QUFLQSxDQU5EOztBQVFBLHlDQUFlQSxJQUFmLEU7O0FDZkE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QUFDQTs7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBRSx5Q0FBaUIsQ0FBRSwrQkFBRixFQUFtQztBQUNuREksRUFBQUEsS0FBSyxFQUFFTCx3QkFBRSxDQUFFLGNBQUYsRUFBa0IsY0FBbEIsQ0FEMEM7QUFFbkRNLEVBQUFBLFdBQVcsRUFBRU4sd0JBQUUsQ0FBRSw2RUFBRixFQUFpRixjQUFqRixDQUZvQztBQUduREcsRUFBQUEsSUFIbUQ7QUFJbkRJLEVBQUFBLFFBQVEsRUFBRSxrQkFKeUM7QUFLbkRDLEVBQUFBLFFBQVEsRUFBRSxDQUNULE9BRFMsRUFFVCxRQUZTLEVBR1QsU0FIUyxDQUx5QztBQVVuREMsRUFBQUEsUUFBUSxFQUFFO0FBQ1RDLElBQUFBLElBQUksRUFBRTtBQURHLEdBVnlDO0FBYW5ETixFQUFBQSxJQWJtRDtBQWNuRE8sRUFBQUEsSUFBSSxFQUFFLE1BQU07QUFkdUMsQ0FBbkMsQ0FBakIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9vdHRlci1ibG9ja3MvLi9zcmMvYmxvY2tzL2Jsb2Nrcy9hYm91dC1hdXRob3IvZWRpdC5qcz8yZDViIiwid2VicGFjazovL290dGVyLWJsb2Nrcy8uL3NyYy9ibG9ja3MvYmxvY2tzL2Fib3V0LWF1dGhvci9pbmRleC5qcz9kN2VkIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogV29yZFByZXNzIGRlcGVuZGVuY2llc1xuICovXG5pbXBvcnQgeyBEaXNhYmxlZCB9IGZyb20gJ0B3b3JkcHJlc3MvY29tcG9uZW50cyc7XG5cbmltcG9ydCBTZXJ2ZXJTaWRlUmVuZGVyIGZyb20gJ0B3b3JkcHJlc3Mvc2VydmVyLXNpZGUtcmVuZGVyJztcblxuY29uc3QgRWRpdCA9ICgpID0+IHtcblx0cmV0dXJuIChcblx0XHQ8RGlzYWJsZWQ+XG5cdFx0XHQ8U2VydmVyU2lkZVJlbmRlciBibG9jaz1cInRoZW1laXNsZS1ibG9ja3MvYWJvdXQtYXV0aG9yXCIvPlxuXHRcdDwvRGlzYWJsZWQ+XG5cdCk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBFZGl0O1xuIiwiLyoqXG4gKiBXb3JkUHJlc3MgZGVwZW5kZW5jaWVzXG4gKi9cbmltcG9ydCB7IF9fIH0gZnJvbSAnQHdvcmRwcmVzcy9pMThuJztcblxuaW1wb3J0IHsgcmVnaXN0ZXJCbG9ja1R5cGUgfSBmcm9tICdAd29yZHByZXNzL2Jsb2Nrcyc7XG5cbi8qKlxuICogSW50ZXJuYWwgZGVwZW5kZW5jaWVzXG4gKi9cbmltcG9ydCAnLi9lZGl0b3Iuc2Nzcyc7XG5pbXBvcnQgJy4vc3R5bGUuc2Nzcyc7XG5pbXBvcnQgeyBhdXRob3JJY29uIGFzIGljb24gfSBmcm9tICcuLi8uLi9oZWxwZXJzL2ljb25zLmpzJztcbmltcG9ydCBlZGl0IGZyb20gJy4vZWRpdC5qcyc7XG5cbnJlZ2lzdGVyQmxvY2tUeXBlKCAndGhlbWVpc2xlLWJsb2Nrcy9hYm91dC1hdXRob3InLCB7XG5cdHRpdGxlOiBfXyggJ0Fib3V0IEF1dGhvcicsICdvdHRlci1ibG9ja3MnICksXG5cdGRlc2NyaXB0aW9uOiBfXyggJ0Fib3V0IEF1dGhvciBibG9jayBpcyB0aGUgZWFzaWVzdCB3YXkgdG8gYWRkIGEgYXV0aG9yIGJpbyBiZWxvdyB5b3VyIHBvc3RzLicsICdvdHRlci1ibG9ja3MnICksXG5cdGljb24sXG5cdGNhdGVnb3J5OiAndGhlbWVpc2xlLWJsb2NrcycsXG5cdGtleXdvcmRzOiBbXG5cdFx0J2Fib3V0Jyxcblx0XHQnYXV0aG9yJyxcblx0XHQncHJvZmlsZSdcblx0XSxcblx0c3VwcG9ydHM6IHtcblx0XHRodG1sOiBmYWxzZVxuXHR9LFxuXHRlZGl0LFxuXHRzYXZlOiAoKSA9PiBudWxsXG59KTtcbiJdLCJuYW1lcyI6WyJEaXNhYmxlZCIsIlNlcnZlclNpZGVSZW5kZXIiLCJFZGl0IiwiX18iLCJyZWdpc3RlckJsb2NrVHlwZSIsImF1dGhvckljb24iLCJpY29uIiwiZWRpdCIsInRpdGxlIiwiZGVzY3JpcHRpb24iLCJjYXRlZ29yeSIsImtleXdvcmRzIiwic3VwcG9ydHMiLCJodG1sIiwic2F2ZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///3802\n')},6299:function(__unused_webpack_module,__unused_webpack___webpack_exports__,__webpack_require__){eval("\n// EXTERNAL MODULE: external [\"wp\",\"i18n\"]\nvar external_wp_i18n_ = __webpack_require__(5736);\n// EXTERNAL MODULE: external [\"wp\",\"blocks\"]\nvar external_wp_blocks_ = __webpack_require__(4981);\n// EXTERNAL MODULE: ./src/blocks/helpers/icons.js\nvar icons = __webpack_require__(340);\n;// CONCATENATED MODULE: ./src/blocks/blocks/accordion/group/attributes.js\nconst attributes = {\n id: {\n type: 'string'\n },\n gap: {\n type: 'string'\n },\n titleColor: {\n type: 'string'\n },\n titleBackground: {\n type: 'string'\n },\n contentBackground: {\n type: 'string'\n },\n borderColor: {\n type: 'string'\n },\n spacing: {\n type: 'number',\n default: 20\n }\n};\n/* harmony default export */ var group_attributes = (attributes);\n// EXTERNAL MODULE: external [\"wp\",\"element\"]\nvar external_wp_element_ = __webpack_require__(9307);\n// EXTERNAL MODULE: ./node_modules/classnames/index.js\nvar classnames = __webpack_require__(4184);\nvar classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);\n// EXTERNAL MODULE: ./node_modules/@emotion/react/dist/emotion-react.browser.esm.js + 15 modules\nvar emotion_react_browser_esm = __webpack_require__(1216);\n// EXTERNAL MODULE: external [\"wp\",\"blockEditor\"]\nvar external_wp_blockEditor_ = __webpack_require__(2175);\n// EXTERNAL MODULE: external [\"wp\",\"components\"]\nvar external_wp_components_ = __webpack_require__(5609);\n;// CONCATENATED MODULE: ./src/blocks/blocks/accordion/group/inspector.js\n\n\n/**\n * WordPress dependencies.\n */\n\n\n\n\nconst Inspector = ({\n attributes,\n setAttributes\n}) => {\n return (0,external_wp_element_.createElement)(external_wp_blockEditor_.InspectorControls, null, (0,external_wp_element_.createElement)(external_wp_components_.PanelBody, {\n title: (0,external_wp_i18n_.__)('Settings', 'otter-blocks')\n }, (0,external_wp_element_.createElement)(external_wp_components_.SelectControl, {\n label: (0,external_wp_i18n_.__)('Gap', 'otter-blocks'),\n value: attributes.gap,\n options: [{\n label: (0,external_wp_i18n_.__)('No Gap', 'otter-blocks'),\n value: ''\n }, {\n label: (0,external_wp_i18n_.__)('Narrow (5px)', 'otter-blocks'),\n value: 'narrow'\n }, {\n label: (0,external_wp_i18n_.__)('Wide (10px)', 'otter-blocks'),\n value: 'wide'\n }, {\n label: (0,external_wp_i18n_.__)('Wider (20px)', 'otter-blocks'),\n value: 'wider'\n }],\n onChange: e => setAttributes({\n gap: e\n })\n })), (0,external_wp_element_.createElement)(external_wp_blockEditor_.PanelColorSettings, {\n title: (0,external_wp_i18n_.__)('Color', 'otter-blocks'),\n initialOpen: false,\n colorSettings: [{\n value: attributes.titleColor,\n onChange: value => setAttributes({\n titleColor: value\n }),\n label: (0,external_wp_i18n_.__)('Title', 'otter-blocks')\n }, {\n value: attributes.titleBackground,\n onChange: value => setAttributes({\n titleBackground: value\n }),\n label: (0,external_wp_i18n_.__)('Title Background', 'otter-blocks')\n }, {\n value: attributes.contentBackground,\n onChange: value => setAttributes({\n contentBackground: value\n }),\n label: (0,external_wp_i18n_.__)('Content Background', 'otter-blocks')\n }, {\n value: attributes.borderColor,\n onChange: value => setAttributes({\n borderColor: value\n }),\n label: (0,external_wp_i18n_.__)('Border Color', 'otter-blocks')\n }]\n }, (0,external_wp_element_.createElement)(external_wp_blockEditor_.ContrastChecker, {\n textColor: attributes.titleColor,\n backgroundColor: attributes.titleBackground\n })));\n};\n\n/* harmony default export */ var inspector = (Inspector);\n// EXTERNAL MODULE: ./src/blocks/helpers/block-utility.js\nvar block_utility = __webpack_require__(5225);\n;// CONCATENATED MODULE: ./src/blocks/blocks/accordion/group/edit.js\n\n\n/** @jsx jsx */\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies.\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\nconst Edit = ({\n attributes,\n setAttributes,\n className,\n clientId,\n isSelected\n}) => {\n (0,external_wp_element_.useEffect)(() => {\n const unsubscribe = (0,block_utility/* blockInit */.WX)(clientId, group_attributes);\n return () => unsubscribe(attributes.id);\n }, [attributes.id]);\n const styles = emotion_react_browser_esm/* css */.iv`\n\t\t&.wp-block-themeisle-blocks-accordion .wp-block-themeisle-blocks-accordion-item .wp-block-themeisle-blocks-accordion-item__title {\n\t\t\tcolor: ${attributes.titleColor};\n\t\t\tbackground: ${attributes.titleBackground};\n\t\t\tborder-color: ${attributes.borderColor};\n\t\t}\n\n\t\t&.wp-block-themeisle-blocks-accordion .wp-block-themeisle-blocks-accordion-item .wp-block-themeisle-blocks-accordion-item__title svg {\n\t\t\tfill: ${attributes.titleColor};\n\t\t}\n\n\t\t&.wp-block-themeisle-blocks-accordion .wp-block-themeisle-blocks-accordion-item .wp-block-themeisle-blocks-accordion-item__content {\n\t\t\tbackground: ${attributes.contentBackground};\n\t\t\tborder-color: ${attributes.borderColor};\n\t\t}\n\t`;\n return (0,emotion_react_browser_esm/* jsx */.tZ)(external_wp_element_.Fragment, null, (0,emotion_react_browser_esm/* jsx */.tZ)(inspector, {\n attributes: attributes,\n setAttributes: setAttributes\n }), (0,emotion_react_browser_esm/* jsx */.tZ)(\"div\", {\n id: attributes.id,\n className: classnames_default()(className, {\n [`is-${attributes.gap}-gap`]: attributes.gap\n }),\n css: styles\n }, (0,emotion_react_browser_esm/* jsx */.tZ)(external_wp_blockEditor_.InnerBlocks, {\n allowedBlocks: ['themeisle-blocks/accordion-item'],\n template: [['themeisle-blocks/accordion-item']],\n renderAppender: isSelected ? external_wp_blockEditor_.InnerBlocks.ButtonBlockAppender : ''\n })));\n};\n\n/* harmony default export */ var edit = (Edit);\n;// CONCATENATED MODULE: ./src/blocks/blocks/accordion/group/save.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies.\n */\n\n\n\nconst Save = ({\n attributes,\n className\n}) => {\n return (0,external_wp_element_.createElement)(\"div\", {\n id: attributes.id,\n className: classnames_default()(className, {\n [`is-${attributes.gap}-gap`]: attributes.gap\n })\n }, (0,external_wp_element_.createElement)(external_wp_blockEditor_.InnerBlocks.Content, null));\n};\n\n/* harmony default export */ var save = (Save);\n;// CONCATENATED MODULE: ./src/blocks/blocks/accordion/group/index.js\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n(0,external_wp_blocks_.registerBlockType)('themeisle-blocks/accordion', {\n title: (0,external_wp_i18n_.__)('Accordion', 'otter-blocks'),\n description: (0,external_wp_i18n_.__)('Vertically collapsing accordions perfect for displaying your FAQs.', 'otter-blocks'),\n icon: icons/* buttonsIcon */.Se,\n category: 'themeisle-blocks',\n keywords: ['accordions', 'collapse', 'faq'],\n attributes: group_attributes,\n supports: {\n html: false\n },\n edit: edit,\n save: save\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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Q0FBQ0MsRUFEakI7QUFFQyxhQUFTLEVBQUd1QixvQkFBVSxDQUNyQlMsU0FEcUIsRUFFckI7QUFDQyxPQUFHLE1BQU1qQyxVQUFVLENBQUNHLEdBQUssTUFBekIsR0FBa0NILFVBQVUsQ0FBQ0c7QUFEOUMsS0FGcUI7QUFGdkIsS0FTQyx1Q0FBQyw0Q0FBRCxPQVRELENBREQ7QUFhQSxDQWpCRDs7QUFtQkEseUNBQWVvQyxJQUFmLEU7O0FDN0JBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUNBO0FBQ0E7O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQUMseUNBQWlCLENBQUUsNEJBQUYsRUFBZ0M7QUFDaERLLEVBQUFBLEtBQUssRUFBRW5DLHdCQUFFLENBQUUsV0FBRixFQUFlLGNBQWYsQ0FEdUM7QUFFaERvQyxFQUFBQSxXQUFXLEVBQUVwQyx3QkFBRSxDQUFFLG9FQUFGLEVBQXdFLGNBQXhFLENBRmlDO0FBR2hEZ0MsRUFBQUEsSUFIZ0Q7QUFJaERLLEVBQUFBLFFBQVEsRUFBRSxrQkFKc0M7QUFLaERDLEVBQUFBLFFBQVEsRUFBRSxDQUNULFlBRFMsRUFFVCxVQUZTLEVBR1QsS0FIUyxDQUxzQztBQVVoRGhELEVBQUFBLFVBVmdEO0FBV2hEaUQsRUFBQUEsUUFBUSxFQUFFO0FBQ1RDLElBQUFBLElBQUksRUFBRTtBQURHLEdBWHNDO0FBY2hEUCxFQUFBQSxJQWRnRDtBQWVoREMsRUFBQUEsSUFBSUEsRUFBQUEsSUFBQUE7QUFmNEMsQ0FBaEMsQ0FBakIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9vdHRlci1ibG9ja3MvLi9zcmMvYmxvY2tzL2Jsb2Nrcy9hY2NvcmRpb24vZ3JvdXAvYXR0cmlidXRlcy5qcz82YjYyIiwid2VicGFjazovL290dGVyLWJsb2Nrcy8uL3NyYy9ibG9ja3MvYmxvY2tzL2FjY29yZGlvbi9ncm91cC9pbnNwZWN0b3IuanM/ODZiZCIsIndlYnBhY2s6Ly9vdHRlci1ibG9ja3MvLi9zcmMvYmxvY2tzL2Jsb2Nrcy9hY2NvcmRpb24vZ3JvdXAvZWRpdC5qcz82NDA1Iiwid2VicGFjazovL290dGVyLWJsb2Nrcy8uL3NyYy9ibG9ja3MvYmxvY2tzL2FjY29yZGlvbi9ncm91cC9zYXZlLmpzPzc0YjIiLCJ3ZWJwYWNrOi8vb3R0ZXItYmxvY2tzLy4vc3JjL2Jsb2Nrcy9ibG9ja3MvYWNjb3JkaW9uL2dyb3VwL2luZGV4LmpzPzRjZjMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgYXR0cmlidXRlcyA9IHtcblx0aWQ6IHtcblx0XHR0eXBlOiAnc3RyaW5nJ1xuXHR9LFxuXHRnYXA6IHtcblx0XHR0eXBlOiAnc3RyaW5nJ1xuXHR9LFxuXHR0aXRsZUNvbG9yOiB7XG5cdFx0dHlwZTogJ3N0cmluZydcblx0fSxcblx0dGl0bGVCYWNrZ3JvdW5kOiB7XG5cdFx0dHlwZTogJ3N0cmluZydcblx0fSxcblx0Y29udGVudEJhY2tncm91bmQ6IHtcblx0XHR0eXBlOiAnc3RyaW5nJ1xuXHR9LFxuXHRib3JkZXJDb2xvcjoge1xuXHRcdHR5cGU6ICdzdHJpbmcnXG5cdH0sXG5cdHNwYWNpbmc6IHtcblx0XHR0eXBlOiAnbnVtYmVyJyxcblx0XHRkZWZhdWx0OiAyMFxuXHR9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBhdHRyaWJ1dGVzO1xuIiwiLyoqXG4gKiBXb3JkUHJlc3MgZGVwZW5kZW5jaWVzLlxuICovXG5pbXBvcnQgeyBfXyB9IGZyb20gJ0B3b3JkcHJlc3MvaTE4bic7XG5cbmltcG9ydCB7XG5cdENvbnRyYXN0Q2hlY2tlcixcblx0SW5zcGVjdG9yQ29udHJvbHMsXG5cdFBhbmVsQ29sb3JTZXR0aW5nc1xufSBmcm9tICdAd29yZHByZXNzL2Jsb2NrLWVkaXRvcic7XG5cbmltcG9ydCB7XG5cdFBhbmVsQm9keSxcblx0U2VsZWN0Q29udHJvbFxufSBmcm9tICdAd29yZHByZXNzL2NvbXBvbmVudHMnO1xuXG5jb25zdCBJbnNwZWN0b3IgPSAoe1xuXHRhdHRyaWJ1dGVzLFxuXHRzZXRBdHRyaWJ1dGVzXG59KSA9PiB7XG5cdHJldHVybiAoXG5cdFx0PEluc3BlY3RvckNvbnRyb2xzPlxuXHRcdFx0PFBhbmVsQm9keVxuXHRcdFx0XHR0aXRsZT17IF9fKCAnU2V0dGluZ3MnLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdD5cblx0XHRcdFx0PFNlbGVjdENvbnRyb2xcblx0XHRcdFx0XHRsYWJlbD17IF9fKCAnR2FwJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdFx0dmFsdWU9eyBhdHRyaWJ1dGVzLmdhcCB9XG5cdFx0XHRcdFx0b3B0aW9ucz17IFtcblx0XHRcdFx0XHRcdHsgbGFiZWw6IF9fKCAnTm8gR2FwJywgJ290dGVyLWJsb2NrcycgKSwgdmFsdWU6ICcnIH0sXG5cdFx0XHRcdFx0XHR7IGxhYmVsOiBfXyggJ05hcnJvdyAoNXB4KScsICdvdHRlci1ibG9ja3MnICksIHZhbHVlOiAnbmFycm93JyB9LFxuXHRcdFx0XHRcdFx0eyBsYWJlbDogX18oICdXaWRlICgxMHB4KScsICdvdHRlci1ibG9ja3MnICksIHZhbHVlOiAnd2lkZScgfSxcblx0XHRcdFx0XHRcdHsgbGFiZWw6IF9fKCAnV2lkZXIgKDIwcHgpJywgJ290dGVyLWJsb2NrcycgKSwgdmFsdWU6ICd3aWRlcicgfVxuXHRcdFx0XHRcdF0gfVxuXHRcdFx0XHRcdG9uQ2hhbmdlPXsgZSA9PiBzZXRBdHRyaWJ1dGVzKHsgZ2FwOiBlIH0pIH1cblx0XHRcdFx0Lz5cblx0XHRcdDwvUGFuZWxCb2R5PlxuXG5cdFx0XHQ8UGFuZWxDb2xvclNldHRpbmdzXG5cdFx0XHRcdHRpdGxlPXsgX18oICdDb2xvcicsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHRpbml0aWFsT3Blbj17IGZhbHNlIH1cblx0XHRcdFx0Y29sb3JTZXR0aW5ncz17IFtcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHR2YWx1ZTogYXR0cmlidXRlcy50aXRsZUNvbG9yLFxuXHRcdFx0XHRcdFx0b25DaGFuZ2U6IHZhbHVlID0+IHNldEF0dHJpYnV0ZXMoeyB0aXRsZUNvbG9yOiB2YWx1ZSB9KSxcblx0XHRcdFx0XHRcdGxhYmVsOiBfXyggJ1RpdGxlJywgJ290dGVyLWJsb2NrcycgKVxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0dmFsdWU6IGF0dHJpYnV0ZXMudGl0bGVCYWNrZ3JvdW5kLFxuXHRcdFx0XHRcdFx0b25DaGFuZ2U6IHZhbHVlID0+IHNldEF0dHJpYnV0ZXMoeyB0aXRsZUJhY2tncm91bmQ6IHZhbHVlIH0pLFxuXHRcdFx0XHRcdFx0bGFiZWw6IF9fKCAnVGl0bGUgQmFja2dyb3VuZCcsICdvdHRlci1ibG9ja3MnIClcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdHZhbHVlOiBhdHRyaWJ1dGVzLmNvbnRlbnRCYWNrZ3JvdW5kLFxuXHRcdFx0XHRcdFx0b25DaGFuZ2U6IHZhbHVlID0+IHNldEF0dHJpYnV0ZXMoeyBjb250ZW50QmFja2dyb3VuZDogdmFsdWUgfSksXG5cdFx0XHRcdFx0XHRsYWJlbDogX18oICdDb250ZW50IEJhY2tncm91bmQnLCAnb3R0ZXItYmxvY2tzJyApXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHR2YWx1ZTogYXR0cmlidXRlcy5ib3JkZXJDb2xvcixcblx0XHRcdFx0XHRcdG9uQ2hhbmdlOiB2YWx1ZSA9PiBzZXRBdHRyaWJ1dGVzKHsgYm9yZGVyQ29sb3I6IHZhbHVlIH0pLFxuXHRcdFx0XHRcdFx0bGFiZWw6IF9fKCAnQm9yZGVyIENvbG9yJywgJ290dGVyLWJsb2NrcycgKVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XSB9XG5cdFx0XHQ+XG5cdFx0XHRcdDxDb250cmFzdENoZWNrZXJcblx0XHRcdFx0XHR7IC4uLntcblx0XHRcdFx0XHRcdHRleHRDb2xvcjogYXR0cmlidXRlcy50aXRsZUNvbG9yLFxuXHRcdFx0XHRcdFx0YmFja2dyb3VuZENvbG9yOiBhdHRyaWJ1dGVzLnRpdGxlQmFja2dyb3VuZFxuXHRcdFx0XHRcdH0gfVxuXHRcdFx0XHQvPlxuXHRcdFx0PC9QYW5lbENvbG9yU2V0dGluZ3M+XG5cdFx0PC9JbnNwZWN0b3JDb250cm9scz5cblx0KTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEluc3BlY3RvcjtcbiIsIi8qKiBAanN4IGpzeCAqL1xuXG4vKipcbiAqIEV4dGVybmFsIGRlcGVuZGVuY2llc1xuICovXG5pbXBvcnQgY2xhc3NuYW1lcyBmcm9tICdjbGFzc25hbWVzJztcblxuaW1wb3J0IHtcblx0Y3NzLFxuXHRqc3hcbn0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuXG4vKipcbiAqIFdvcmRQcmVzcyBkZXBlbmRlbmNpZXMuXG4gKi9cbmltcG9ydCB7IElubmVyQmxvY2tzIH0gZnJvbSAnQHdvcmRwcmVzcy9ibG9jay1lZGl0b3InO1xuXG5pbXBvcnQge1xuXHRGcmFnbWVudCxcblx0dXNlRWZmZWN0XG59IGZyb20gJ0B3b3JkcHJlc3MvZWxlbWVudCc7XG5cbi8qKlxuICogSW50ZXJuYWwgZGVwZW5kZW5jaWVzXG4gKi9cbmltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuL2F0dHJpYnV0ZXMuanMnO1xuXG5pbXBvcnQgSW5zcGVjdG9yIGZyb20gJy4vaW5zcGVjdG9yLmpzJztcbmltcG9ydCB7IGJsb2NrSW5pdCB9IGZyb20gJy4uLy4uLy4uL2hlbHBlcnMvYmxvY2stdXRpbGl0eS5qcyc7XG5cbmNvbnN0IEVkaXQgPSAoe1xuXHRhdHRyaWJ1dGVzLFxuXHRzZXRBdHRyaWJ1dGVzLFxuXHRjbGFzc05hbWUsXG5cdGNsaWVudElkLFxuXHRpc1NlbGVjdGVkXG59KSA9PiB7XG5cdHVzZUVmZmVjdCggKCkgPT4ge1xuXHRcdGNvbnN0IHVuc3Vic2NyaWJlID0gYmxvY2tJbml0KCBjbGllbnRJZCwgZGVmYXVsdEF0dHJpYnV0ZXMgKTtcblx0XHRyZXR1cm4gKCkgPT4gdW5zdWJzY3JpYmUoIGF0dHJpYnV0ZXMuaWQgKTtcblx0fSwgWyBhdHRyaWJ1dGVzLmlkIF0pO1xuXG5cdGNvbnN0IHN0eWxlcyA9IGNzc2Bcblx0XHQmLndwLWJsb2NrLXRoZW1laXNsZS1ibG9ja3MtYWNjb3JkaW9uIC53cC1ibG9jay10aGVtZWlzbGUtYmxvY2tzLWFjY29yZGlvbi1pdGVtIC53cC1ibG9jay10aGVtZWlzbGUtYmxvY2tzLWFjY29yZGlvbi1pdGVtX190aXRsZSB7XG5cdFx0XHRjb2xvcjogJHsgYXR0cmlidXRlcy50aXRsZUNvbG9yIH07XG5cdFx0XHRiYWNrZ3JvdW5kOiAkeyBhdHRyaWJ1dGVzLnRpdGxlQmFja2dyb3VuZCB9O1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiAkeyBhdHRyaWJ1dGVzLmJvcmRlckNvbG9yIH07XG5cdFx0fVxuXG5cdFx0Ji53cC1ibG9jay10aGVtZWlzbGUtYmxvY2tzLWFjY29yZGlvbiAud3AtYmxvY2stdGhlbWVpc2xlLWJsb2Nrcy1hY2NvcmRpb24taXRlbSAud3AtYmxvY2stdGhlbWVpc2xlLWJsb2Nrcy1hY2NvcmRpb24taXRlbV9fdGl0bGUgc3ZnIHtcblx0XHRcdGZpbGw6ICR7IGF0dHJpYnV0ZXMudGl0bGVDb2xvciB9O1xuXHRcdH1cblxuXHRcdCYud3AtYmxvY2stdGhlbWVpc2xlLWJsb2Nrcy1hY2NvcmRpb24gLndwLWJsb2NrLXRoZW1laXNsZS1ibG9ja3MtYWNjb3JkaW9uLWl0ZW0gLndwLWJsb2NrLXRoZW1laXNsZS1ibG9ja3MtYWNjb3JkaW9uLWl0ZW1fX2NvbnRlbnQge1xuXHRcdFx0YmFja2dyb3VuZDogJHsgYXR0cmlidXRlcy5jb250ZW50QmFja2dyb3VuZCB9O1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiAkeyBhdHRyaWJ1dGVzLmJvcmRlckNvbG9yIH07XG5cdFx0fVxuXHRgO1xuXG5cdHJldHVybiAoXG5cdFx0PEZyYWdtZW50PlxuXHRcdFx0PEluc3BlY3RvclxuXHRcdFx0XHRhdHRyaWJ1dGVzPXsgYXR0cmlidXRlcyB9XG5cdFx0XHRcdHNldEF0dHJpYnV0ZXM9eyBzZXRBdHRyaWJ1dGVzIH1cblx0XHRcdC8+XG5cblx0XHRcdDxkaXZcblx0XHRcdFx0aWQ9eyBhdHRyaWJ1dGVzLmlkIH1cblx0XHRcdFx0Y2xhc3NOYW1lPXsgY2xhc3NuYW1lcyhcblx0XHRcdFx0XHRjbGFzc05hbWUsXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0WyBgaXMtJHsgYXR0cmlidXRlcy5nYXAgfS1nYXBgIF06IGF0dHJpYnV0ZXMuZ2FwXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHQpIH1cblx0XHRcdFx0Y3NzPXsgc3R5bGVzIH1cblx0XHRcdD5cblx0XHRcdFx0PElubmVyQmxvY2tzXG5cdFx0XHRcdFx0YWxsb3dlZEJsb2Nrcz17IFsgJ3RoZW1laXNsZS1ibG9ja3MvYWNjb3JkaW9uLWl0ZW0nIF0gfVxuXHRcdFx0XHRcdHRlbXBsYXRlPXsgWyBbICd0aGVtZWlzbGUtYmxvY2tzL2FjY29yZGlvbi1pdGVtJyBdIF0gfVxuXHRcdFx0XHRcdHJlbmRlckFwcGVuZGVyPXsgaXNTZWxlY3RlZCA/IElubmVyQmxvY2tzLkJ1dHRvbkJsb2NrQXBwZW5kZXIgOiAnJyB9XG5cdFx0XHRcdC8+XG5cdFx0XHQ8L2Rpdj5cblx0XHQ8L0ZyYWdtZW50PlxuXHQpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgRWRpdDtcbiIsIi8qKlxuICogRXh0ZXJuYWwgZGVwZW5kZW5jaWVzXG4gKi9cbmltcG9ydCBjbGFzc25hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuXG4vKipcbiAqIFdvcmRQcmVzcyBkZXBlbmRlbmNpZXMuXG4gKi9cbmltcG9ydCB7IElubmVyQmxvY2tzIH0gZnJvbSAnQHdvcmRwcmVzcy9ibG9jay1lZGl0b3InO1xuXG5jb25zdCBTYXZlID0gKHtcblx0YXR0cmlidXRlcyxcblx0Y2xhc3NOYW1lXG59KSA9PiB7XG5cdHJldHVybiAoXG5cdFx0PGRpdlxuXHRcdFx0aWQ9eyBhdHRyaWJ1dGVzLmlkIH1cblx0XHRcdGNsYXNzTmFtZT17IGNsYXNzbmFtZXMoXG5cdFx0XHRcdGNsYXNzTmFtZSxcblx0XHRcdFx0e1xuXHRcdFx0XHRcdFsgYGlzLSR7IGF0dHJpYnV0ZXMuZ2FwIH0tZ2FwYCBdOiBhdHRyaWJ1dGVzLmdhcFxuXHRcdFx0XHR9XG5cdFx0XHQpIH1cblx0XHQ+XG5cdFx0XHQ8SW5uZXJCbG9ja3MuQ29udGVudCAvPlxuXHRcdDwvZGl2PlxuXHQpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgU2F2ZTtcbiIsIi8qKlxuICogV29yZFByZXNzIGRlcGVuZGVuY2llc1xuICovXG5pbXBvcnQgeyBfXyB9IGZyb20gJ0B3b3JkcHJlc3MvaTE4bic7XG5cbmltcG9ydCB7IHJlZ2lzdGVyQmxvY2tUeXBlIH0gZnJvbSAnQHdvcmRwcmVzcy9ibG9ja3MnO1xuXG4vKipcbiAqIEludGVybmFsIGRlcGVuZGVuY2llc1xuICovXG5pbXBvcnQgeyBidXR0b25zSWNvbiBhcyBpY29uIH0gZnJvbSAnLi4vLi4vLi4vaGVscGVycy9pY29ucy5qcyc7XG5pbXBvcnQgYXR0cmlidXRlcyBmcm9tICcuL2F0dHJpYnV0ZXMuanMnO1xuaW1wb3J0IGVkaXQgZnJvbSAnLi9lZGl0LmpzJztcbmltcG9ydCBzYXZlIGZyb20gJy4vc2F2ZS5qcyc7XG5cbnJlZ2lzdGVyQmxvY2tUeXBlKCAndGhlbWVpc2xlLWJsb2Nrcy9hY2NvcmRpb24nLCB7XG5cdHRpdGxlOiBfXyggJ0FjY29yZGlvbicsICdvdHRlci1ibG9ja3MnICksXG5cdGRlc2NyaXB0aW9uOiBfXyggJ1ZlcnRpY2FsbHkgY29sbGFwc2luZyBhY2NvcmRpb25zIHBlcmZlY3QgZm9yIGRpc3BsYXlpbmcgeW91ciBGQVFzLicsICdvdHRlci1ibG9ja3MnICksXG5cdGljb24sXG5cdGNhdGVnb3J5OiAndGhlbWVpc2xlLWJsb2NrcycsXG5cdGtleXdvcmRzOiBbXG5cdFx0J2FjY29yZGlvbnMnLFxuXHRcdCdjb2xsYXBzZScsXG5cdFx0J2ZhcSdcblx0XSxcblx0YXR0cmlidXRlcyxcblx0c3VwcG9ydHM6IHtcblx0XHRodG1sOiBmYWxzZVxuXHR9LFxuXHRlZGl0LFxuXHRzYXZlXG59KTtcbiJdLCJuYW1lcyI6WyJhdHRyaWJ1dGVzIiwiaWQiLCJ0eXBlIiwiZ2FwIiwidGl0bGVDb2xvciIsInRpdGxlQmFja2dyb3VuZCIsImNvbnRlbnRCYWNrZ3JvdW5kIiwiYm9yZGVyQ29sb3IiLCJzcGFjaW5nIiwiZGVmYXVsdCIsIl9fIiwiQ29udHJhc3RDaGVja2VyIiwiSW5zcGVjdG9yQ29udHJvbHMiLCJQYW5lbENvbG9yU2V0dGluZ3MiLCJQYW5lbEJvZHkiLCJTZWxlY3RDb250cm9sIiwiSW5zcGVjdG9yIiwic2V0QXR0cmlidXRlcyIsImxhYmVsIiwidmFsdWUiLCJlIiwib25DaGFuZ2UiLCJ0ZXh0Q29sb3IiLCJiYWNrZ3JvdW5kQ29sb3IiLCJjbGFzc25hbWVzIiwiY3NzIiwianN4IiwiSW5uZXJCbG9ja3MiLCJGcmFnbWVudCIsInVzZUVmZmVjdCIsImRlZmF1bHRBdHRyaWJ1dGVzIiwiYmxvY2tJbml0IiwiRWRpdCIsImNsYXNzTmFtZSIsImNsaWVudElkIiwiaXNTZWxlY3RlZCIsInVuc3Vic2NyaWJlIiwic3R5bGVzIiwiQnV0dG9uQmxvY2tBcHBlbmRlciIsIlNhdmUiLCJyZWdpc3RlckJsb2NrVHlwZSIsImJ1dHRvbnNJY29uIiwiaWNvbiIsImVkaXQiLCJzYXZlIiwidGl0bGUiLCJkZXNjcmlwdGlvbiIsImNhdGVnb3J5Iiwia2V5d29yZHMiLCJzdXBwb3J0cyIsImh0bWwiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///6299\n")},7767:function(__unused_webpack_module,__unused_webpack___webpack_exports__,__webpack_require__){eval("/* harmony import */ var _group_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6299);\n/* harmony import */ var _item_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3443);\n/**\n * Internal dependencies\n */\n\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNzc2Ny5qcyIsIm1hcHBpbmdzIjoiOztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL290dGVyLWJsb2Nrcy8uL3NyYy9ibG9ja3MvYmxvY2tzL2FjY29yZGlvbi9pbmRleC5qcz85NzkwIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogSW50ZXJuYWwgZGVwZW5kZW5jaWVzXG4gKi9cbmltcG9ydCAnLi9lZGl0b3Iuc2Nzcyc7XG5pbXBvcnQgJy4vc3R5bGUuc2Nzcyc7XG5pbXBvcnQgJy4vZ3JvdXAvaW5kZXguanMnO1xuaW1wb3J0ICcuL2l0ZW0vaW5kZXguanMnO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///7767\n")},3443:function(__unused_webpack_module,__unused_webpack___webpack_exports__,__webpack_require__){eval('\n// EXTERNAL MODULE: external ["wp","i18n"]\nvar external_wp_i18n_ = __webpack_require__(5736);\n// EXTERNAL MODULE: external ["wp","blocks"]\nvar external_wp_blocks_ = __webpack_require__(4981);\n// EXTERNAL MODULE: ./src/blocks/helpers/icons.js\nvar icons = __webpack_require__(340);\n;// CONCATENATED MODULE: ./src/blocks/blocks/accordion/item/attributes.js\nconst attributes = {\n title: {\n type: \'string\'\n },\n initialOpen: {\n type: \'boolean\',\n default: false\n }\n};\n/* harmony default export */ var item_attributes = (attributes);\n// EXTERNAL MODULE: external ["wp","element"]\nvar external_wp_element_ = __webpack_require__(9307);\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/chevron-up.js\nvar chevron_up = __webpack_require__(6015);\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/chevron-down.js\nvar chevron_down = __webpack_require__(3904);\n// EXTERNAL MODULE: external ["wp","blockEditor"]\nvar external_wp_blockEditor_ = __webpack_require__(2175);\n// EXTERNAL MODULE: external ["wp","components"]\nvar external_wp_components_ = __webpack_require__(5609);\n;// CONCATENATED MODULE: ./src/blocks/blocks/accordion/item/inspector.js\n\n\n/**\n * WordPress dependencies.\n */\n\n\n\n\nconst Inspector = ({\n attributes,\n setAttributes\n}) => {\n return (0,external_wp_element_.createElement)(external_wp_blockEditor_.InspectorControls, null, (0,external_wp_element_.createElement)(external_wp_components_.PanelBody, {\n title: (0,external_wp_i18n_.__)(\'Settings\', \'otter-blocks\')\n }, (0,external_wp_element_.createElement)(external_wp_components_.ToggleControl, {\n label: (0,external_wp_i18n_.__)(\'Initially Open\', \'otter-blocks\'),\n checked: attributes.initialOpen,\n onChange: value => setAttributes({\n initialOpen: value\n })\n })));\n};\n\n/* harmony default export */ var inspector = (Inspector);\n;// CONCATENATED MODULE: ./src/blocks/blocks/accordion/item/edit.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies.\n */\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\nconst Edit = ({\n attributes,\n className,\n setAttributes\n}) => {\n const [isOpen, setOpen] = (0,external_wp_element_.useState)(true);\n\n const toggle = e => {\n if (\'string\' === typeof e.target.className && e.target.className.includes(\'block-editor-rich-text__editable\')) {\n setOpen(true);\n } else {\n setOpen(!isOpen);\n }\n };\n\n return (0,external_wp_element_.createElement)(external_wp_element_.Fragment, null, (0,external_wp_element_.createElement)(inspector, {\n attributes: attributes,\n setAttributes: setAttributes\n }), (0,external_wp_element_.createElement)("div", {\n className: className\n }, (0,external_wp_element_.createElement)("div", {\n className: "wp-block-themeisle-blocks-accordion-item__title",\n onClick: toggle\n }, (0,external_wp_element_.createElement)(external_wp_blockEditor_.RichText, {\n placeholder: (0,external_wp_i18n_.__)(\'Add text…\', \'otter-blocks\'),\n value: attributes.title,\n onChange: value => {\n if (!isOpen) {\n setOpen(true);\n }\n\n setAttributes({\n title: value\n });\n },\n tagName: "span"\n }), (0,external_wp_element_.createElement)(external_wp_components_.Icon, {\n icon: isOpen ? chevron_up/* default */.Z : chevron_down/* default */.Z,\n size: 24\n })), isOpen && (0,external_wp_element_.createElement)("div", {\n className: "wp-block-themeisle-blocks-accordion-item__content"\n }, (0,external_wp_element_.createElement)(external_wp_blockEditor_.InnerBlocks, {\n template: [[\'core/paragraph\']]\n }))));\n};\n\n/* harmony default export */ var edit = (Edit);\n;// CONCATENATED MODULE: ./src/blocks/blocks/accordion/item/save.js\n\n\n/**\n * WordPress dependencies.\n */\n\n\nconst Save = ({\n attributes,\n className\n}) => {\n return (0,external_wp_element_.createElement)("details", {\n className: className,\n open: attributes.initialOpen ? true : false\n }, (0,external_wp_element_.createElement)("summary", {\n className: "wp-block-themeisle-blocks-accordion-item__title"\n }, (0,external_wp_element_.createElement)(external_wp_blockEditor_.RichText.Content, {\n tagName: "div",\n value: attributes.title\n })), (0,external_wp_element_.createElement)("div", {\n className: "wp-block-themeisle-blocks-accordion-item__content"\n }, (0,external_wp_element_.createElement)(external_wp_blockEditor_.InnerBlocks.Content, null)));\n};\n\n/* harmony default export */ var save = (Save);\n;// CONCATENATED MODULE: ./src/blocks/blocks/accordion/item/index.js\n/**\n * WordPress dependencies.\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n(0,external_wp_blocks_.registerBlockType)(\'themeisle-blocks/accordion-item\', {\n title: (0,external_wp_i18n_.__)(\'Accordion Item\', \'otter-blocks\'),\n description: (0,external_wp_i18n_.__)(\'Vertically collapsing accordions perfect for displaying your FAQs.\', \'otter-blocks\'),\n parent: [\'themeisle-blocks/accordion\'],\n icon: icons/* buttonsIcon */.Se,\n category: \'themeisle-blocks\',\n keywords: [\'accordions\', \'collapse\', \'faq\'],\n attributes: item_attributes,\n supports: {\n reusable: false\n },\n edit: edit,\n save: save\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUlBLEVBQUFBLElBQUFBO0FBaEJpRCxDQUFyQyxDQUFqQiIsInNvdXJjZXMiOlsid2VicGFjazovL290dGVyLWJsb2Nrcy8uL3NyYy9ibG9ja3MvYmxvY2tzL2FjY29yZGlvbi9pdGVtL2F0dHJpYnV0ZXMuanM/NGI2NiIsIndlYnBhY2s6Ly9vdHRlci1ibG9ja3MvLi9zcmMvYmxvY2tzL2Jsb2Nrcy9hY2NvcmRpb24vaXRlbS9pbnNwZWN0b3IuanM/MTA2YSIsIndlYnBhY2s6Ly9vdHRlci1ibG9ja3MvLi9zcmMvYmxvY2tzL2Jsb2Nrcy9hY2NvcmRpb24vaXRlbS9lZGl0LmpzPzNkMGUiLCJ3ZWJwYWNrOi8vb3R0ZXItYmxvY2tzLy4vc3JjL2Jsb2Nrcy9ibG9ja3MvYWNjb3JkaW9uL2l0ZW0vc2F2ZS5qcz8xY2IxIiwid2VicGFjazovL290dGVyLWJsb2Nrcy8uL3NyYy9ibG9ja3MvYmxvY2tzL2FjY29yZGlvbi9pdGVtL2luZGV4LmpzP2EzZTciXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgYXR0cmlidXRlcyA9IHtcblx0dGl0bGU6IHtcblx0XHR0eXBlOiAnc3RyaW5nJ1xuXHR9LFxuXHRpbml0aWFsT3Blbjoge1xuXHRcdHR5cGU6ICdib29sZWFuJyxcblx0XHRkZWZhdWx0OiBmYWxzZVxuXHR9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBhdHRyaWJ1dGVzO1xuIiwiLyoqXG4gKiBXb3JkUHJlc3MgZGVwZW5kZW5jaWVzLlxuICovXG5pbXBvcnQgeyBfXyB9IGZyb20gJ0B3b3JkcHJlc3MvaTE4bic7XG5cbmltcG9ydCB7IEluc3BlY3RvckNvbnRyb2xzIH0gZnJvbSAnQHdvcmRwcmVzcy9ibG9jay1lZGl0b3InO1xuXG5pbXBvcnQge1xuXHRQYW5lbEJvZHksXG5cdFRvZ2dsZUNvbnRyb2xcbn0gZnJvbSAnQHdvcmRwcmVzcy9jb21wb25lbnRzJztcblxuY29uc3QgSW5zcGVjdG9yID0gKHtcblx0YXR0cmlidXRlcyxcblx0c2V0QXR0cmlidXRlc1xufSkgPT4ge1xuXHRyZXR1cm4gKFxuXHRcdDxJbnNwZWN0b3JDb250cm9scz5cblx0XHRcdDxQYW5lbEJvZHlcblx0XHRcdFx0dGl0bGU9eyBfXyggJ1NldHRpbmdzJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHQ+XG5cdFx0XHRcdDxUb2dnbGVDb250cm9sXG5cdFx0XHRcdFx0bGFiZWw9eyBfXyggJ0luaXRpYWxseSBPcGVuJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdFx0Y2hlY2tlZD17IGF0dHJpYnV0ZXMuaW5pdGlhbE9wZW4gfVxuXHRcdFx0XHRcdG9uQ2hhbmdlPXsgdmFsdWUgPT4gc2V0QXR0cmlidXRlcyh7IGluaXRpYWxPcGVuOiB2YWx1ZSB9KSB9XG5cdFx0XHRcdC8+XG5cdFx0XHQ8L1BhbmVsQm9keT5cblx0XHQ8L0luc3BlY3RvckNvbnRyb2xzPlxuXHQpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgSW5zcGVjdG9yO1xuIiwiLyoqXG4gKiBFeHRlcm5hbCBkZXBlbmRlbmNpZXNcbiAqL1xuaW1wb3J0IHsgY2hldnJvbkRvd24sIGNoZXZyb25VcCB9IGZyb20gJ0B3b3JkcHJlc3MvaWNvbnMnO1xuXG4vKipcbiAqIFdvcmRQcmVzcyBkZXBlbmRlbmNpZXMuXG4gKi9cbmltcG9ydCB7IF9fIH0gZnJvbSAnQHdvcmRwcmVzcy9pMThuJztcblxuaW1wb3J0IHtcblx0SW5uZXJCbG9ja3MsXG5cdFJpY2hUZXh0XG59IGZyb20gJ0B3b3JkcHJlc3MvYmxvY2stZWRpdG9yJztcblxuaW1wb3J0IHsgSWNvbiB9IGZyb20gJ0B3b3JkcHJlc3MvY29tcG9uZW50cyc7XG5cbmltcG9ydCB7XG5cdEZyYWdtZW50LFxuXHR1c2VTdGF0ZVxufSBmcm9tICdAd29yZHByZXNzL2VsZW1lbnQnO1xuXG4vKipcbiAqIEludGVybmFsIGRlcGVuZGVuY2llc1xuICovXG5pbXBvcnQgSW5zcGVjdG9yIGZyb20gJy4vaW5zcGVjdG9yLmpzJztcblxuY29uc3QgRWRpdCA9ICh7XG5cdGF0dHJpYnV0ZXMsXG5cdGNsYXNzTmFtZSxcblx0c2V0QXR0cmlidXRlc1xufSkgPT4ge1xuXHRjb25zdCBbIGlzT3Blbiwgc2V0T3BlbiBdID0gdXNlU3RhdGUoIHRydWUgKTtcblxuXHRjb25zdCB0b2dnbGUgPSBlID0+IHtcblx0XHRpZiAoICdzdHJpbmcnID09PSB0eXBlb2YgZS50YXJnZXQuY2xhc3NOYW1lICYmIGUudGFyZ2V0LmNsYXNzTmFtZS5pbmNsdWRlcyggJ2Jsb2NrLWVkaXRvci1yaWNoLXRleHRfX2VkaXRhYmxlJyApICkge1xuXHRcdFx0c2V0T3BlbiggdHJ1ZSApO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRzZXRPcGVuKCAhIGlzT3BlbiApO1xuXHRcdH1cblx0fTtcblxuXHRyZXR1cm4gKFxuXHRcdDxGcmFnbWVudD5cblx0XHRcdDxJbnNwZWN0b3Jcblx0XHRcdFx0YXR0cmlidXRlcz17IGF0dHJpYnV0ZXMgfVxuXHRcdFx0XHRzZXRBdHRyaWJ1dGVzPXsgc2V0QXR0cmlidXRlcyB9XG5cdFx0XHQvPlxuXG5cdFx0XHQ8ZGl2IGNsYXNzTmFtZT17IGNsYXNzTmFtZSB9ID5cblx0XHRcdFx0PGRpdlxuXHRcdFx0XHRcdGNsYXNzTmFtZT1cIndwLWJsb2NrLXRoZW1laXNsZS1ibG9ja3MtYWNjb3JkaW9uLWl0ZW1fX3RpdGxlXCJcblx0XHRcdFx0XHRvbkNsaWNrPXsgdG9nZ2xlIH1cblx0XHRcdFx0PlxuXHRcdFx0XHRcdDxSaWNoVGV4dFxuXHRcdFx0XHRcdFx0cGxhY2Vob2xkZXI9eyBfXyggJ0FkZCB0ZXh04oCmJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdFx0XHR2YWx1ZT17IGF0dHJpYnV0ZXMudGl0bGUgfVxuXHRcdFx0XHRcdFx0b25DaGFuZ2U9eyB2YWx1ZSA9PiB7XG5cdFx0XHRcdFx0XHRcdGlmICggISBpc09wZW4gKSB7XG5cdFx0XHRcdFx0XHRcdFx0c2V0T3BlbiggdHJ1ZSApO1xuXHRcdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdFx0c2V0QXR0cmlidXRlcyh7IHRpdGxlOiB2YWx1ZSB9KTtcblx0XHRcdFx0XHRcdH0gfVxuXHRcdFx0XHRcdFx0dGFnTmFtZT1cInNwYW5cIlxuXHRcdFx0XHRcdC8+XG5cblx0XHRcdFx0XHQ8SWNvbiBpY29uPXsgaXNPcGVuID8gY2hldnJvblVwIDogY2hldnJvbkRvd24gfSBzaXplPXsgMjQgfS8+XG5cdFx0XHRcdDwvZGl2PlxuXG5cdFx0XHRcdHsgaXNPcGVuICYmIChcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzTmFtZT1cIndwLWJsb2NrLXRoZW1laXNsZS1ibG9ja3MtYWNjb3JkaW9uLWl0ZW1fX2NvbnRlbnRcIj5cblx0XHRcdFx0XHRcdDxJbm5lckJsb2Nrc1xuXHRcdFx0XHRcdFx0XHR0ZW1wbGF0ZT17IFsgWyAnY29yZS9wYXJhZ3JhcGgnIF0gXSB9XG5cdFx0XHRcdFx0XHQvPlxuXHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHQpIH1cblx0XHRcdDwvZGl2PlxuXHRcdDwvRnJhZ21lbnQ+XG5cdCk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBFZGl0O1xuIiwiLyoqXG4gKiBXb3JkUHJlc3MgZGVwZW5kZW5jaWVzLlxuICovXG5pbXBvcnQgeyBJbm5lckJsb2NrcywgUmljaFRleHQgfSBmcm9tICdAd29yZHByZXNzL2Jsb2NrLWVkaXRvcic7XG5cbmNvbnN0IFNhdmUgPSAoe1xuXHRhdHRyaWJ1dGVzLFxuXHRjbGFzc05hbWVcbn0pID0+IHtcblx0cmV0dXJuIChcblx0XHQ8ZGV0YWlsc1xuXHRcdFx0Y2xhc3NOYW1lPXsgY2xhc3NOYW1lIH1cblx0XHRcdG9wZW49eyBhdHRyaWJ1dGVzLmluaXRpYWxPcGVuID8gdHJ1ZSA6IGZhbHNlIH1cblx0XHQ+XG5cdFx0XHQ8c3VtbWFyeSBjbGFzc05hbWU9XCJ3cC1ibG9jay10aGVtZWlzbGUtYmxvY2tzLWFjY29yZGlvbi1pdGVtX190aXRsZVwiPlxuXHRcdFx0XHQ8UmljaFRleHQuQ29udGVudFxuXHRcdFx0XHRcdHRhZ05hbWU9XCJkaXZcIlxuXHRcdFx0XHRcdHZhbHVlPXsgYXR0cmlidXRlcy50aXRsZSB9XG5cdFx0XHRcdC8+XG5cdFx0XHQ8L3N1bW1hcnk+XG5cblx0XHRcdDxkaXYgY2xhc3NOYW1lPVwid3AtYmxvY2stdGhlbWVpc2xlLWJsb2Nrcy1hY2NvcmRpb24taXRlbV9fY29udGVudFwiPlxuXHRcdFx0XHQ8SW5uZXJCbG9ja3MuQ29udGVudCAvPlxuXHRcdFx0PC9kaXY+XG5cdFx0PC9kZXRhaWxzPlxuXHQpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgU2F2ZTtcbiIsIi8qKlxuICogV29yZFByZXNzIGRlcGVuZGVuY2llcy5cbiAqL1xuaW1wb3J0IHsgX18gfSBmcm9tICdAd29yZHByZXNzL2kxOG4nO1xuXG5pbXBvcnQgeyByZWdpc3RlckJsb2NrVHlwZSB9IGZyb20gJ0B3b3JkcHJlc3MvYmxvY2tzJztcblxuLyoqXG4gKiBJbnRlcm5hbCBkZXBlbmRlbmNpZXNcbiAqL1xuaW1wb3J0IHsgYnV0dG9uc0ljb24gYXMgaWNvbiB9IGZyb20gJy4uLy4uLy4uL2hlbHBlcnMvaWNvbnMuanMnO1xuaW1wb3J0IGF0dHJpYnV0ZXMgZnJvbSAnLi9hdHRyaWJ1dGVzLmpzJztcbmltcG9ydCBlZGl0IGZyb20gJy4vZWRpdC5qcyc7XG5pbXBvcnQgc2F2ZSBmcm9tICcuL3NhdmUuanMnO1xuXG5yZWdpc3RlckJsb2NrVHlwZSggJ3RoZW1laXNsZS1ibG9ja3MvYWNjb3JkaW9uLWl0ZW0nLCB7XG5cdHRpdGxlOiBfXyggJ0FjY29yZGlvbiBJdGVtJywgJ290dGVyLWJsb2NrcycgKSxcblx0ZGVzY3JpcHRpb246IF9fKCAnVmVydGljYWxseSBjb2xsYXBzaW5nIGFjY29yZGlvbnMgcGVyZmVjdCBmb3IgZGlzcGxheWluZyB5b3VyIEZBUXMuJywgJ290dGVyLWJsb2NrcycgKSxcblx0cGFyZW50OiBbICd0aGVtZWlzbGUtYmxvY2tzL2FjY29yZGlvbicgXSxcblx0aWNvbixcblx0Y2F0ZWdvcnk6ICd0aGVtZWlzbGUtYmxvY2tzJyxcblx0a2V5d29yZHM6IFtcblx0XHQnYWNjb3JkaW9ucycsXG5cdFx0J2NvbGxhcHNlJyxcblx0XHQnZmFxJ1xuXHRdLFxuXHRhdHRyaWJ1dGVzLFxuXHRzdXBwb3J0czoge1xuXHRcdHJldXNhYmxlOiBmYWxzZVxuXHR9LFxuXHRlZGl0LFxuXHRzYXZlXG59KTtcbiJdLCJuYW1lcyI6WyJhdHRyaWJ1dGVzIiwidGl0bGUiLCJ0eXBlIiwiaW5pdGlhbE9wZW4iLCJkZWZhdWx0IiwiX18iLCJJbnNwZWN0b3JDb250cm9scyIsIlBhbmVsQm9keSIsIlRvZ2dsZUNvbnRyb2wiLCJJbnNwZWN0b3IiLCJzZXRBdHRyaWJ1dGVzIiwidmFsdWUiLCJjaGV2cm9uRG93biIsImNoZXZyb25VcCIsIklubmVyQmxvY2tzIiwiUmljaFRleHQiLCJJY29uIiwiRnJhZ21lbnQiLCJ1c2VTdGF0ZSIsIkVkaXQiLCJjbGFzc05hbWUiLCJpc09wZW4iLCJzZXRPcGVuIiwidG9nZ2xlIiwiZSIsInRhcmdldCIsImluY2x1ZGVzIiwiU2F2ZSIsInJlZ2lzdGVyQmxvY2tUeXBlIiwiYnV0dG9uc0ljb24iLCJpY29uIiwiZWRpdCIsInNhdmUiLCJkZXNjcmlwdGlvbiIsInBhcmVudCIsImNhdGVnb3J5Iiwia2V5d29yZHMiLCJzdXBwb3J0cyIsInJldXNhYmxlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///3443\n')},4933:function(__unused_webpack_module,__unused_webpack___webpack_exports__,__webpack_require__){eval("\n// EXTERNAL MODULE: external [\"wp\",\"element\"]\nvar external_wp_element_ = __webpack_require__(9307);\n// EXTERNAL MODULE: external [\"wp\",\"i18n\"]\nvar external_wp_i18n_ = __webpack_require__(5736);\n// EXTERNAL MODULE: external [\"wp\",\"blocks\"]\nvar external_wp_blocks_ = __webpack_require__(4981);\n// EXTERNAL MODULE: external [\"wp\",\"components\"]\nvar external_wp_components_ = __webpack_require__(5609);\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/store.js\nvar store = __webpack_require__(1526);\n;// CONCATENATED MODULE: ./src/blocks/blocks/add-to-cart-button/attributes.js\nconst attributes = {\n product: {\n type: 'number'\n }\n};\n/* harmony default export */ var add_to_cart_button_attributes = (attributes);\n// EXTERNAL MODULE: external [\"wp\",\"serverSideRender\"]\nvar external_wp_serverSideRender_ = __webpack_require__(8423);\nvar external_wp_serverSideRender_default = /*#__PURE__*/__webpack_require__.n(external_wp_serverSideRender_);\n// EXTERNAL MODULE: ./src/blocks/components/select-products-control/index.js\nvar select_products_control = __webpack_require__(4779);\n;// CONCATENATED MODULE: ./src/blocks/blocks/add-to-cart-button/edit.js\n\n\n/* eslint-disable camelcase */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Internal dependencies.\n */\n\n\n\nconst Edit = ({\n attributes,\n setAttributes\n}) => {\n if (!attributes.product) {\n return (0,external_wp_element_.createElement)(external_wp_components_.Placeholder, {\n icon: store/* default */.Z,\n label: (0,external_wp_i18n_.__)('Add to Cart Button', 'otter-blocks'),\n instructions: (0,external_wp_i18n_.__)('Select a WooCommerce product for the Add to Cart button.', 'otter-blocks')\n }, (0,external_wp_element_.createElement)(select_products_control/* default */.Z, {\n label: (0,external_wp_i18n_.__)('Select Product', 'otter-blocks'),\n hideLabelFromVision: true,\n value: attributes.product,\n onChange: product => setAttributes({\n product: Number(product)\n })\n }));\n }\n\n return (0,external_wp_element_.createElement)(external_wp_components_.Disabled, null, (0,external_wp_element_.createElement)((external_wp_serverSideRender_default()), {\n block: \"themeisle-blocks/add-to-cart-button\",\n attributes: { ...attributes\n }\n }));\n};\n\n/* harmony default export */ var edit = (Edit);\n;// CONCATENATED MODULE: ./src/blocks/blocks/add-to-cart-button/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\nif (Boolean(window.themeisleGutenberg.hasNeveSupport.isBoosterActive) && Boolean(window.themeisleGutenberg.hasWooCommerce)) {\n (0,external_wp_blocks_.registerBlockType)('themeisle-blocks/add-to-cart-button', {\n title: (0,external_wp_i18n_.__)('Add to Cart Button', 'otter-blocks'),\n description: (0,external_wp_i18n_.__)('Display an Add to Cart button for your WooCommerce products.', 'otter-blocks'),\n icon: store/* default */.Z,\n category: 'themeisle-blocks',\n keywords: ['woocommerce', 'add to cart', 'products'],\n attributes: add_to_cart_button_attributes,\n styles: [{\n name: 'default',\n label: (0,external_wp_i18n_.__)('Default', 'otter-blocks'),\n isDefault: true\n }, {\n name: 'primary',\n label: (0,external_wp_i18n_.__)('Primary', 'otter-blocks')\n }, {\n name: 'secondary',\n label: (0,external_wp_i18n_.__)('Secondary', 'otter-blocks')\n }],\n edit: edit,\n save: () => null\n });\n} else {\n (0,external_wp_blocks_.registerBlockType)('themeisle-blocks/add-to-cart-button', {\n title: (0,external_wp_i18n_.__)('Add to Cart Button', 'otter-blocks'),\n description: (0,external_wp_i18n_.__)('Display an Add to Cart button for your WooCommerce products.', 'otter-blocks'),\n icon: store/* default */.Z,\n category: 'themeisle-blocks',\n keywords: ['woocommerce', 'add to cart', 'products'],\n attributes: add_to_cart_button_attributes,\n supports: {\n inserter: false\n },\n edit: () => (0,external_wp_element_.createElement)(external_wp_components_.Placeholder, null, (0,external_wp_i18n_.__)('You need to have Neve Pro & WooCommerce installed to edit Add to Cart Button block.', 'otter-blocks')),\n save: () => null\n });\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDkzMy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSxNQUFNQSxVQUFVLEdBQUc7QUFDbEJDLEVBQUFBLE9BQU8sRUFBRTtBQUNSQyxJQUFBQSxJQUFJLEVBQUU7QUFERTtBQURTLENBQW5CO0FBTUEsa0VBQWVGLFVBQWYsRTs7Ozs7Ozs7O0FDTkE7O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUtBO0FBRUE7QUFFQTtBQUNBO0FBQ0E7O0FBQ0E7O0FBRUEsTUFBTVMsSUFBSSxHQUFHLENBQUM7QUFDYlQsRUFBQUEsVUFEYTtBQUViVSxFQUFBQTtBQUZhLENBQUQsS0FHUDtBQUNMLE1BQUssQ0FBRVYsVUFBVSxDQUFDQyxPQUFsQixFQUE0QjtBQUMzQixXQUNDLHVDQUFDLG1DQUFEO0FBQ0MsVUFBSSxFQUFHSyxvQkFEUjtBQUVDLFdBQUssRUFBR0gsd0JBQUUsQ0FBRSxvQkFBRixFQUF3QixjQUF4QixDQUZYO0FBR0Msa0JBQVksRUFBR0Esd0JBQUUsQ0FBRSwwREFBRixFQUE4RCxjQUE5RDtBQUhsQixPQUtDLHVDQUFDLHNDQUFEO0FBQ0MsV0FBSyxFQUFHQSx3QkFBRSxDQUFFLGdCQUFGLEVBQW9CLGNBQXBCLENBRFg7QUFFQyx5QkFBbUIsTUFGcEI7QUFHQyxXQUFLLEVBQUdILFVBQVUsQ0FBQ0MsT0FIcEI7QUFJQyxjQUFRLEVBQUdBLE9BQU8sSUFBSVMsYUFBYSxDQUFDO0FBQUVULFFBQUFBLE9BQU8sRUFBRVUsTUFBTSxDQUFFVixPQUFGO0FBQWpCLE9BQUQ7QUFKcEMsTUFMRCxDQUREO0FBY0E7O0FBRUQsU0FDQyx1Q0FBQyxnQ0FBRCxRQUNDLHVDQUFDLHdDQUFEO0FBQ0MsU0FBSyxFQUFDLHFDQURQO0FBRUMsY0FBVSxFQUFHLEVBQUUsR0FBR0Q7QUFBTDtBQUZkLElBREQsQ0FERDtBQVFBLENBN0JEOztBQStCQSx5Q0FBZVMsSUFBZixFOzs7O0FDbkRBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUVBO0FBRUE7QUFDQTtBQUNBOztBQUNBO0FBQ0E7O0FBRUEsSUFBS00sT0FBTyxDQUFFQyxNQUFNLENBQUNDLGtCQUFQLENBQTBCQyxjQUExQixDQUF5Q0MsZUFBM0MsQ0FBUCxJQUF1RUosT0FBTyxDQUFFQyxNQUFNLENBQUNDLGtCQUFQLENBQTBCRyxjQUE1QixDQUFuRixFQUFrSTtBQUNqSVIsRUFBQUEseUNBQWlCLENBQUUscUNBQUYsRUFBeUM7QUFDekRTLElBQUFBLEtBQUssRUFBRWxCLHdCQUFFLENBQUUsb0JBQUYsRUFBd0IsY0FBeEIsQ0FEZ0Q7QUFFekRtQixJQUFBQSxXQUFXLEVBQUVuQix3QkFBRSxDQUFFLDhEQUFGLEVBQWtFLGNBQWxFLENBRjBDO0FBR3pEVSxJQUFBQSxJQUh5RDtBQUl6RFUsSUFBQUEsUUFBUSxFQUFFLGtCQUorQztBQUt6REMsSUFBQUEsUUFBUSxFQUFFLENBQ1QsYUFEUyxFQUVULGFBRlMsRUFHVCxVQUhTLENBTCtDO0FBVXpEeEIsSUFBQUEsVUFWeUQ7QUFXekR5QixJQUFBQSxNQUFNLEVBQUUsQ0FDUDtBQUNDQyxNQUFBQSxJQUFJLEVBQUUsU0FEUDtBQUVDQyxNQUFBQSxLQUFLLEVBQUV4Qix3QkFBRSxDQUFFLFNBQUYsRUFBYSxjQUFiLENBRlY7QUFHQ3lCLE1BQUFBLFNBQVMsRUFBRTtBQUhaLEtBRE8sRUFNUDtBQUNDRixNQUFBQSxJQUFJLEVBQUUsU0FEUDtBQUVDQyxNQUFBQSxLQUFLLEVBQUV4Qix3QkFBRSxDQUFFLFNBQUYsRUFBYSxjQUFiO0FBRlYsS0FOTyxFQVVQO0FBQ0N1QixNQUFBQSxJQUFJLEVBQUUsV0FEUDtBQUVDQyxNQUFBQSxLQUFLLEVBQUV4Qix3QkFBRSxDQUFFLFdBQUYsRUFBZSxjQUFmO0FBRlYsS0FWTyxDQVhpRDtBQTBCekRXLElBQUFBLElBMUJ5RDtBQTJCekRlLElBQUFBLElBQUksRUFBRSxNQUFNO0FBM0I2QyxHQUF6QyxDQUFqQjtBQTZCQSxDQTlCRCxNQThCTztBQUNOakIsRUFBQUEseUNBQWlCLENBQUUscUNBQUYsRUFBeUM7QUFDekRTLElBQUFBLEtBQUssRUFBRWxCLHdCQUFFLENBQUUsb0JBQUYsRUFBd0IsY0FBeEIsQ0FEZ0Q7QUFFekRtQixJQUFBQSxXQUFXLEVBQUVuQix3QkFBRSxDQUFFLDhEQUFGLEVBQWtFLGNBQWxFLENBRjBDO0FBR3pEVSxJQUFBQSxJQUh5RDtBQUl6RFUsSUFBQUEsUUFBUSxFQUFFLGtCQUorQztBQUt6REMsSUFBQUEsUUFBUSxFQUFFLENBQ1QsYUFEUyxFQUVULGFBRlMsRUFHVCxVQUhTLENBTCtDO0FBVXpEeEIsSUFBQUEsVUFWeUQ7QUFXekQ4QixJQUFBQSxRQUFRLEVBQUU7QUFDVEMsTUFBQUEsUUFBUSxFQUFFO0FBREQsS0FYK0M7QUFjekRqQixJQUFBQSxJQUFJLEVBQUUsTUFBTSx1Q0FBQyxtQ0FBRCxRQUFlWCx3QkFBRSxDQUFFLHFGQUFGLEVBQXlGLGNBQXpGLENBQWpCLENBZDZDO0FBZXpEMEIsSUFBQUEsSUFBSSxFQUFFLE1BQU07QUFmNkMsR0FBekMsQ0FBakI7QUFpQkEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9vdHRlci1ibG9ja3MvLi9zcmMvYmxvY2tzL2Jsb2Nrcy9hZGQtdG8tY2FydC1idXR0b24vYXR0cmlidXRlcy5qcz8zYmQ2Iiwid2VicGFjazovL290dGVyLWJsb2Nrcy8uL3NyYy9ibG9ja3MvYmxvY2tzL2FkZC10by1jYXJ0LWJ1dHRvbi9lZGl0LmpzPzM4MTQiLCJ3ZWJwYWNrOi8vb3R0ZXItYmxvY2tzLy4vc3JjL2Jsb2Nrcy9ibG9ja3MvYWRkLXRvLWNhcnQtYnV0dG9uL2luZGV4LmpzP2Q0MjIiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgYXR0cmlidXRlcyA9IHtcblx0cHJvZHVjdDoge1xuXHRcdHR5cGU6ICdudW1iZXInXG5cdH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IGF0dHJpYnV0ZXM7XG4iLCIvKiBlc2xpbnQtZGlzYWJsZSBjYW1lbGNhc2UgKi9cbi8qKlxuICogV29yZFByZXNzIGRlcGVuZGVuY2llc1xuICovXG5pbXBvcnQgeyBfXyB9IGZyb20gJ0B3b3JkcHJlc3MvaTE4bic7XG5cbmltcG9ydCB7XG5cdERpc2FibGVkLFxuXHRQbGFjZWhvbGRlclxufSBmcm9tICdAd29yZHByZXNzL2NvbXBvbmVudHMnO1xuXG5pbXBvcnQgeyBzdG9yZSB9IGZyb20gJ0B3b3JkcHJlc3MvaWNvbnMnO1xuXG5pbXBvcnQgU2VydmVyU2lkZVJlbmRlciBmcm9tICdAd29yZHByZXNzL3NlcnZlci1zaWRlLXJlbmRlcic7XG5cbi8qKlxuICogSW50ZXJuYWwgZGVwZW5kZW5jaWVzLlxuICovXG5pbXBvcnQgU2VsZWN0UHJvZHVjdHMgZnJvbSAnLi4vLi4vY29tcG9uZW50cy9zZWxlY3QtcHJvZHVjdHMtY29udHJvbC9pbmRleC5qcyc7XG5cbmNvbnN0IEVkaXQgPSAoe1xuXHRhdHRyaWJ1dGVzLFxuXHRzZXRBdHRyaWJ1dGVzXG59KSA9PiB7XG5cdGlmICggISBhdHRyaWJ1dGVzLnByb2R1Y3QgKSB7XG5cdFx0cmV0dXJuIChcblx0XHRcdDxQbGFjZWhvbGRlclxuXHRcdFx0XHRpY29uPXsgc3RvcmUgfVxuXHRcdFx0XHRsYWJlbD17IF9fKCAnQWRkIHRvIENhcnQgQnV0dG9uJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdGluc3RydWN0aW9ucz17IF9fKCAnU2VsZWN0IGEgV29vQ29tbWVyY2UgcHJvZHVjdCBmb3IgdGhlIEFkZCB0byBDYXJ0IGJ1dHRvbi4nLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdD5cblx0XHRcdFx0PFNlbGVjdFByb2R1Y3RzXG5cdFx0XHRcdFx0bGFiZWw9eyBfXyggJ1NlbGVjdCBQcm9kdWN0JywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdFx0aGlkZUxhYmVsRnJvbVZpc2lvblxuXHRcdFx0XHRcdHZhbHVlPXsgYXR0cmlidXRlcy5wcm9kdWN0IH1cblx0XHRcdFx0XHRvbkNoYW5nZT17IHByb2R1Y3QgPT4gc2V0QXR0cmlidXRlcyh7IHByb2R1Y3Q6IE51bWJlciggcHJvZHVjdCApIH0pIH1cblx0XHRcdFx0Lz5cblx0XHRcdDwvUGxhY2Vob2xkZXI+XG5cdFx0KTtcblx0fVxuXG5cdHJldHVybiAoXG5cdFx0PERpc2FibGVkPlxuXHRcdFx0PFNlcnZlclNpZGVSZW5kZXJcblx0XHRcdFx0YmxvY2s9XCJ0aGVtZWlzbGUtYmxvY2tzL2FkZC10by1jYXJ0LWJ1dHRvblwiXG5cdFx0XHRcdGF0dHJpYnV0ZXM9eyB7IC4uLmF0dHJpYnV0ZXMgfSB9XG5cdFx0XHQvPlxuXHRcdDwvRGlzYWJsZWQ+XG5cdCk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBFZGl0O1xuIiwiLyoqXG4gKiBXb3JkUHJlc3MgZGVwZW5kZW5jaWVzXG4gKi9cbmltcG9ydCB7IF9fIH0gZnJvbSAnQHdvcmRwcmVzcy9pMThuJztcblxuaW1wb3J0IHsgcmVnaXN0ZXJCbG9ja1R5cGUgfSBmcm9tICdAd29yZHByZXNzL2Jsb2Nrcyc7XG5cbmltcG9ydCB7IFBsYWNlaG9sZGVyIH0gZnJvbSAnQHdvcmRwcmVzcy9jb21wb25lbnRzJztcblxuaW1wb3J0IHsgc3RvcmUgYXMgaWNvbiB9IGZyb20gJ0B3b3JkcHJlc3MvaWNvbnMnO1xuXG4vKipcbiAqIEludGVybmFsIGRlcGVuZGVuY2llc1xuICovXG5pbXBvcnQgYXR0cmlidXRlcyBmcm9tICcuL2F0dHJpYnV0ZXMuanMnO1xuaW1wb3J0IGVkaXQgZnJvbSAnLi9lZGl0LmpzJztcblxuaWYgKCBCb29sZWFuKCB3aW5kb3cudGhlbWVpc2xlR3V0ZW5iZXJnLmhhc05ldmVTdXBwb3J0LmlzQm9vc3RlckFjdGl2ZSApICYmIEJvb2xlYW4oIHdpbmRvdy50aGVtZWlzbGVHdXRlbmJlcmcuaGFzV29vQ29tbWVyY2UgKSApIHtcblx0cmVnaXN0ZXJCbG9ja1R5cGUoICd0aGVtZWlzbGUtYmxvY2tzL2FkZC10by1jYXJ0LWJ1dHRvbicsIHtcblx0XHR0aXRsZTogX18oICdBZGQgdG8gQ2FydCBCdXR0b24nLCAnb3R0ZXItYmxvY2tzJyApLFxuXHRcdGRlc2NyaXB0aW9uOiBfXyggJ0Rpc3BsYXkgYW4gQWRkIHRvIENhcnQgYnV0dG9uIGZvciB5b3VyIFdvb0NvbW1lcmNlIHByb2R1Y3RzLicsICdvdHRlci1ibG9ja3MnICksXG5cdFx0aWNvbixcblx0XHRjYXRlZ29yeTogJ3RoZW1laXNsZS1ibG9ja3MnLFxuXHRcdGtleXdvcmRzOiBbXG5cdFx0XHQnd29vY29tbWVyY2UnLFxuXHRcdFx0J2FkZCB0byBjYXJ0Jyxcblx0XHRcdCdwcm9kdWN0cydcblx0XHRdLFxuXHRcdGF0dHJpYnV0ZXMsXG5cdFx0c3R5bGVzOiBbXG5cdFx0XHR7XG5cdFx0XHRcdG5hbWU6ICdkZWZhdWx0Jyxcblx0XHRcdFx0bGFiZWw6IF9fKCAnRGVmYXVsdCcsICdvdHRlci1ibG9ja3MnICksXG5cdFx0XHRcdGlzRGVmYXVsdDogdHJ1ZVxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0bmFtZTogJ3ByaW1hcnknLFxuXHRcdFx0XHRsYWJlbDogX18oICdQcmltYXJ5JywgJ290dGVyLWJsb2NrcycgKVxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0bmFtZTogJ3NlY29uZGFyeScsXG5cdFx0XHRcdGxhYmVsOiBfXyggJ1NlY29uZGFyeScsICdvdHRlci1ibG9ja3MnIClcblx0XHRcdH1cblx0XHRdLFxuXHRcdGVkaXQsXG5cdFx0c2F2ZTogKCkgPT4gbnVsbFxuXHR9KTtcbn0gZWxzZSB7XG5cdHJlZ2lzdGVyQmxvY2tUeXBlKCAndGhlbWVpc2xlLWJsb2Nrcy9hZGQtdG8tY2FydC1idXR0b24nLCB7XG5cdFx0dGl0bGU6IF9fKCAnQWRkIHRvIENhcnQgQnV0dG9uJywgJ290dGVyLWJsb2NrcycgKSxcblx0XHRkZXNjcmlwdGlvbjogX18oICdEaXNwbGF5IGFuIEFkZCB0byBDYXJ0IGJ1dHRvbiBmb3IgeW91ciBXb29Db21tZXJjZSBwcm9kdWN0cy4nLCAnb3R0ZXItYmxvY2tzJyApLFxuXHRcdGljb24sXG5cdFx0Y2F0ZWdvcnk6ICd0aGVtZWlzbGUtYmxvY2tzJyxcblx0XHRrZXl3b3JkczogW1xuXHRcdFx0J3dvb2NvbW1lcmNlJyxcblx0XHRcdCdhZGQgdG8gY2FydCcsXG5cdFx0XHQncHJvZHVjdHMnXG5cdFx0XSxcblx0XHRhdHRyaWJ1dGVzLFxuXHRcdHN1cHBvcnRzOiB7XG5cdFx0XHRpbnNlcnRlcjogZmFsc2Vcblx0XHR9LFxuXHRcdGVkaXQ6ICgpID0+IDxQbGFjZWhvbGRlcj57IF9fKCAnWW91IG5lZWQgdG8gaGF2ZSBOZXZlIFBybyAmIFdvb0NvbW1lcmNlIGluc3RhbGxlZCB0byBlZGl0IEFkZCB0byBDYXJ0IEJ1dHRvbiBibG9jay4nLCAnb3R0ZXItYmxvY2tzJyApIH08L1BsYWNlaG9sZGVyPixcblx0XHRzYXZlOiAoKSA9PiBudWxsXG5cdH0pO1xufVxuIl0sIm5hbWVzIjpbImF0dHJpYnV0ZXMiLCJwcm9kdWN0IiwidHlwZSIsIl9fIiwiRGlzYWJsZWQiLCJQbGFjZWhvbGRlciIsInN0b3JlIiwiU2VydmVyU2lkZVJlbmRlciIsIlNlbGVjdFByb2R1Y3RzIiwiRWRpdCIsInNldEF0dHJpYnV0ZXMiLCJOdW1iZXIiLCJyZWdpc3RlckJsb2NrVHlwZSIsImljb24iLCJlZGl0IiwiQm9vbGVhbiIsIndpbmRvdyIsInRoZW1laXNsZUd1dGVuYmVyZyIsImhhc05ldmVTdXBwb3J0IiwiaXNCb29zdGVyQWN0aXZlIiwiaGFzV29vQ29tbWVyY2UiLCJ0aXRsZSIsImRlc2NyaXB0aW9uIiwiY2F0ZWdvcnkiLCJrZXl3b3JkcyIsInN0eWxlcyIsIm5hbWUiLCJsYWJlbCIsImlzRGVmYXVsdCIsInNhdmUiLCJzdXBwb3J0cyIsImluc2VydGVyIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///4933\n")},6632:function(__unused_webpack_module,__unused_webpack___webpack_exports__,__webpack_require__){eval("\n// EXTERNAL MODULE: external [\"wp\",\"i18n\"]\nvar external_wp_i18n_ = __webpack_require__(5736);\n// EXTERNAL MODULE: external [\"wp\",\"blocks\"]\nvar external_wp_blocks_ = __webpack_require__(4981);\n// EXTERNAL MODULE: external [\"wp\",\"element\"]\nvar external_wp_element_ = __webpack_require__(9307);\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/brush.js\nvar brush = __webpack_require__(6713);\n;// CONCATENATED MODULE: external [\"wp\",\"richText\"]\nvar external_wp_richText_namespaceObject = window[\"wp\"][\"richText\"];\n// EXTERNAL MODULE: external [\"wp\",\"blockEditor\"]\nvar external_wp_blockEditor_ = __webpack_require__(2175);\n;// CONCATENATED MODULE: ./src/blocks/blocks/advanced-heading/registerHeadingHighlight.js\n\n\n/**\n * External dependencies.\n */\n\n/**\n * WordPress dependencies.\n */\n\n\n\n\n\nconst registerHeadingHighlight_name = 'themeisle-blocks/highlight';\n(0,external_wp_richText_namespaceObject.registerFormatType)(registerHeadingHighlight_name, {\n name: registerHeadingHighlight_name,\n title: (0,external_wp_i18n_.__)('Highlight', 'otter-blocks'),\n tagName: 'span',\n className: 'highlight',\n edit: ({\n isActive,\n value,\n onChange\n }) => {\n const onToggle = () => onChange((0,external_wp_richText_namespaceObject.toggleFormat)(value, {\n type: registerHeadingHighlight_name\n }));\n\n return (0,external_wp_element_.createElement)(external_wp_element_.Fragment, null, (0,external_wp_element_.createElement)(external_wp_blockEditor_.RichTextShortcut, {\n type: \"primary\",\n character: \"h\",\n onUse: onToggle\n }), (0,external_wp_element_.createElement)(external_wp_blockEditor_.RichTextToolbarButton, {\n icon: brush/* default */.Z,\n title: (0,external_wp_i18n_.__)('Highlight', 'otter-blocks'),\n onClick: onToggle,\n isActive: isActive,\n shortcutType: \"access\",\n shortcutCharacter: \"h\"\n }));\n }\n});\n// EXTERNAL MODULE: ./src/blocks/helpers/icons.js\nvar icons = __webpack_require__(340);\n;// CONCATENATED MODULE: ./src/blocks/blocks/advanced-heading/attributes.js\nconst attributes = {\n id: {\n type: 'string'\n },\n content: {\n type: 'string',\n source: 'html',\n selector: 'h1,h2,h3,h4,h5,h6,div,p,span',\n default: ''\n },\n tag: {\n default: 'h2',\n type: 'string'\n },\n align: {\n type: 'string'\n },\n alignTablet: {\n type: 'string'\n },\n alignMobile: {\n type: 'string'\n },\n headingColor: {\n type: 'string',\n default: '#000000'\n },\n highlightColor: {\n type: 'string'\n },\n highlightBackground: {\n type: 'string'\n },\n fontSize: {\n type: 'number'\n },\n fontSizeTablet: {\n type: 'number'\n },\n fontSizeMobile: {\n type: 'number'\n },\n fontFamily: {\n type: 'string'\n },\n fontVariant: {\n type: 'string'\n },\n fontStyle: {\n type: 'string',\n default: 'normal'\n },\n textTransform: {\n type: 'string',\n default: 'none'\n },\n lineHeight: {\n type: 'number'\n },\n letterSpacing: {\n type: 'number'\n },\n textShadow: {\n type: 'boolean',\n default: false\n },\n textShadowColor: {\n type: 'string',\n default: '#000000'\n },\n textShadowColorOpacity: {\n type: 'number',\n default: 50\n },\n textShadowBlur: {\n type: 'number',\n default: 5\n },\n textShadowHorizontal: {\n type: 'number',\n default: 0\n },\n textShadowVertical: {\n type: 'number',\n default: 0\n },\n paddingType: {\n type: 'string',\n default: 'linked'\n },\n paddingTypeTablet: {\n type: 'string',\n default: 'linked'\n },\n paddingTypeMobile: {\n type: 'string',\n default: 'linked'\n },\n padding: {\n type: 'number',\n default: 0\n },\n paddingTablet: {\n type: 'number'\n },\n paddingMobile: {\n type: 'number'\n },\n paddingTop: {\n type: 'number',\n default: 0\n },\n paddingTopTablet: {\n type: 'number'\n },\n paddingTopMobile: {\n type: 'number'\n },\n paddingRight: {\n type: 'number',\n default: 0\n },\n paddingRightTablet: {\n type: 'number'\n },\n paddingRightMobile: {\n type: 'number'\n },\n paddingBottom: {\n type: 'number',\n default: 0\n },\n paddingBottomTablet: {\n type: 'number'\n },\n paddingBottomMobile: {\n type: 'number'\n },\n paddingLeft: {\n type: 'number',\n default: 0\n },\n paddingLeftTablet: {\n type: 'number'\n },\n paddingLeftMobile: {\n type: 'number'\n },\n marginType: {\n type: 'string',\n default: 'unlinked'\n },\n marginTypeTablet: {\n type: 'string',\n default: 'unlinked'\n },\n marginTypeMobile: {\n type: 'string',\n default: 'unlinked'\n },\n margin: {\n type: 'number',\n default: 0\n },\n marginTablet: {\n type: 'number'\n },\n marginMobile: {\n type: 'number'\n },\n marginTop: {\n type: 'number',\n default: 0\n },\n marginTopTablet: {\n type: 'number'\n },\n marginTopMobile: {\n type: 'number'\n },\n marginBottom: {\n type: 'number',\n default: 25\n },\n marginBottomTablet: {\n type: 'number'\n },\n marginBottomMobile: {\n type: 'number'\n }\n};\n/* harmony default export */ var advanced_heading_attributes = (attributes);\n// EXTERNAL MODULE: ./node_modules/classnames/index.js\nvar classnames = __webpack_require__(4184);\nvar classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);\n// EXTERNAL MODULE: ./node_modules/hex-rgba/index.js\nvar hex_rgba = __webpack_require__(80);\nvar hex_rgba_default = /*#__PURE__*/__webpack_require__.n(hex_rgba);\n;// CONCATENATED MODULE: ./src/blocks/blocks/advanced-heading/deprecated.js\n\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies.\n */\n\n\nconst deprecated = [{\n attributes: {\n id: {\n type: 'string'\n },\n content: {\n type: 'string',\n source: 'html',\n selector: 'h1,h2,h3,h4,h5,h6,div,p,span',\n default: ''\n },\n tag: {\n default: 'h2',\n type: 'string'\n },\n align: {\n type: 'string'\n },\n alignTablet: {\n type: 'string'\n },\n alignMobile: {\n type: 'string'\n },\n headingColor: {\n type: 'string',\n default: '#000000'\n },\n highlightColor: {\n type: 'string'\n },\n highlightBackground: {\n type: 'string'\n },\n fontSize: {\n type: 'number'\n },\n fontSizeTablet: {\n type: 'number'\n },\n fontSizeMobile: {\n type: 'number'\n },\n fontFamily: {\n type: 'string'\n },\n fontVariant: {\n type: 'string'\n },\n fontStyle: {\n type: 'string',\n default: 'normal'\n },\n textTransform: {\n type: 'string',\n default: 'none'\n },\n lineHeight: {\n type: 'number'\n },\n letterSpacing: {\n type: 'number'\n },\n textShadow: {\n type: 'boolean',\n default: false\n },\n textShadowColor: {\n type: 'string',\n default: '#000000'\n },\n textShadowColorOpacity: {\n type: 'number',\n default: 50\n },\n textShadowBlur: {\n type: 'number',\n default: 5\n },\n textShadowHorizontal: {\n type: 'number',\n default: 0\n },\n textShadowVertical: {\n type: 'number',\n default: 0\n },\n paddingType: {\n type: 'string',\n default: 'linked'\n },\n paddingTypeTablet: {\n type: 'string',\n default: 'linked'\n },\n paddingTypeMobile: {\n type: 'string',\n default: 'linked'\n },\n padding: {\n type: 'number',\n default: 0\n },\n paddingTablet: {\n type: 'number',\n default: 0\n },\n paddingMobile: {\n type: 'number',\n default: 0\n },\n paddingTop: {\n type: 'number',\n default: 0\n },\n paddingTopTablet: {\n type: 'number',\n default: 0\n },\n paddingTopMobile: {\n type: 'number',\n default: 0\n },\n paddingRight: {\n type: 'number',\n default: 0\n },\n paddingRightTablet: {\n type: 'number',\n default: 0\n },\n paddingRightMobile: {\n type: 'number',\n default: 0\n },\n paddingBottom: {\n type: 'number',\n default: 0\n },\n paddingBottomTablet: {\n type: 'number',\n default: 0\n },\n paddingBottomMobile: {\n type: 'number',\n default: 0\n },\n paddingLeft: {\n type: 'number',\n default: 0\n },\n paddingLeftTablet: {\n type: 'number',\n default: 0\n },\n paddingLeftMobile: {\n type: 'number',\n default: 0\n },\n marginType: {\n type: 'string',\n default: 'unlinked'\n },\n marginTypeTablet: {\n type: 'string',\n default: 'unlinked'\n },\n marginTypeMobile: {\n type: 'string',\n default: 'unlinked'\n },\n margin: {\n type: 'number',\n default: 0\n },\n marginTablet: {\n type: 'number',\n default: 0\n },\n marginMobile: {\n type: 'number',\n default: 0\n },\n marginTop: {\n type: 'number',\n default: 0\n },\n marginTopTablet: {\n type: 'number',\n default: 0\n },\n marginTopMobile: {\n type: 'number',\n default: 0\n },\n marginBottom: {\n type: 'number',\n default: 25\n },\n marginBottomTablet: {\n type: 'number',\n default: 25\n },\n marginBottomMobile: {\n type: 'number',\n default: 20\n }\n },\n save: ({\n attributes,\n className\n }) => {\n let textShadowStyle;\n\n if (attributes.textShadow) {\n textShadowStyle = {\n textShadow: `${attributes.textShadowHorizontal}px ${attributes.textShadowVertical}px ${attributes.textShadowBlur}px ${hex_rgba_default()(attributes.textShadowColor ? attributes.textShadowColor : '#000000', attributes.textShadowColorOpacity)}`\n };\n }\n\n const style = {\n color: attributes.headingColor,\n fontFamily: attributes.fontFamily,\n fontWeight: 'regular' === attributes.fontVariant ? 'normal' : attributes.fontVariant,\n fontStyle: attributes.fontStyle,\n textTransform: attributes.textTransform,\n lineHeight: attributes.lineHeight && `${attributes.lineHeight}px`,\n letterSpacing: attributes.letterSpacing && `${attributes.letterSpacing}px`,\n ...textShadowStyle\n };\n return (0,external_wp_element_.createElement)(external_wp_blockEditor_.RichText.Content, {\n tagName: attributes.tag,\n value: attributes.content,\n id: attributes.id,\n className: classnames_default()(attributes.id, className),\n style: style\n });\n }\n}];\n/* harmony default export */ var advanced_heading_deprecated = (deprecated);\n;// CONCATENATED MODULE: ./src/blocks/blocks/advanced-heading/transforms.js\n/**\n * WordPress dependencies.\n */\n\nconst transforms = {\n from: [{\n type: 'block',\n blocks: ['core/heading'],\n transform: ({\n content\n }) => {\n return (0,external_wp_blocks_.createBlock)('themeisle-blocks/advanced-heading', {\n content\n });\n }\n }, {\n type: 'block',\n blocks: ['core/paragraph'],\n transform: ({\n content\n }) => {\n return (0,external_wp_blocks_.createBlock)('themeisle-blocks/advanced-heading', {\n content\n });\n }\n }],\n to: [{\n type: 'block',\n blocks: ['core/paragraph'],\n transform: ({\n content\n }) => {\n return (0,external_wp_blocks_.createBlock)('core/paragraph', {\n content\n });\n }\n }]\n};\n/* harmony default export */ var advanced_heading_transforms = (transforms);\n// EXTERNAL MODULE: ./node_modules/react-google-font-loader/build/index.js\nvar build = __webpack_require__(5988);\n// EXTERNAL MODULE: external [\"wp\",\"compose\"]\nvar external_wp_compose_ = __webpack_require__(4333);\n// EXTERNAL MODULE: external [\"wp\",\"data\"]\nvar external_wp_data_ = __webpack_require__(9818);\n// EXTERNAL MODULE: ./src/blocks/helpers/block-utility.js\nvar block_utility = __webpack_require__(5225);\n// EXTERNAL MODULE: external [\"wp\",\"components\"]\nvar external_wp_components_ = __webpack_require__(5609);\n// EXTERNAL MODULE: ./src/blocks/components/google-fonts-control/index.js\nvar google_fonts_control = __webpack_require__(9977);\n;// CONCATENATED MODULE: ./src/blocks/blocks/advanced-heading/controls.js\n\n\n/**\n * WordPress dependencies.\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\nconst Controls = ({\n attributes,\n setAttributes,\n changeFontFamily,\n changeFontVariant,\n changeFontStyle,\n changeTextTransform,\n changeLineHeight,\n changeLetterSpacing\n}) => {\n const getTagIcon = value => {\n if ('h1' === value) {\n return (0,external_wp_element_.createElement)(external_wp_components_.SVG, {\n style: {\n width: '25px',\n height: '20px'\n }\n }, (0,external_wp_element_.createElement)(\"text\", {\n style: {\n fontSize: '12px'\n },\n x: \"0\",\n y: \"15\"\n }, \"H1\"));\n }\n\n if ('h2' === value) {\n return (0,external_wp_element_.createElement)(external_wp_components_.SVG, {\n style: {\n width: '25px',\n height: '20px'\n }\n }, (0,external_wp_element_.createElement)(\"text\", {\n style: {\n fontSize: '12px'\n },\n x: \"0\",\n y: \"15\"\n }, \"H2\"));\n }\n\n if ('h3' === value) {\n return (0,external_wp_element_.createElement)(external_wp_components_.SVG, {\n style: {\n width: '25px',\n height: '20px'\n }\n }, (0,external_wp_element_.createElement)(\"text\", {\n style: {\n fontSize: '12px'\n },\n x: \"0\",\n y: \"15\"\n }, \"H3\"));\n }\n\n if ('h4' === value) {\n return (0,external_wp_element_.createElement)(external_wp_components_.SVG, {\n style: {\n width: '25px',\n height: '20px'\n }\n }, (0,external_wp_element_.createElement)(\"text\", {\n style: {\n fontSize: '12px'\n },\n x: \"0\",\n y: \"15\"\n }, \"H4\"));\n }\n\n if ('h5' === value) {\n return (0,external_wp_element_.createElement)(external_wp_components_.SVG, {\n style: {\n width: '25px',\n height: '20px'\n }\n }, (0,external_wp_element_.createElement)(\"text\", {\n style: {\n fontSize: '12px'\n },\n x: \"0\",\n y: \"15\"\n }, \"H5\"));\n }\n\n if ('h6' === value) {\n return (0,external_wp_element_.createElement)(external_wp_components_.SVG, {\n style: {\n width: '25px',\n height: '20px'\n }\n }, (0,external_wp_element_.createElement)(\"text\", {\n style: {\n fontSize: '12px'\n },\n x: \"0\",\n y: \"15\"\n }, \"H6\"));\n }\n\n if ('div' === value) {\n return (0,external_wp_element_.createElement)(external_wp_components_.SVG, {\n style: {\n width: '25px',\n height: '20px'\n }\n }, (0,external_wp_element_.createElement)(\"text\", {\n style: {\n fontSize: '12px'\n },\n x: \"0\",\n y: \"15\"\n }, \"DIV\"));\n }\n\n if ('p' === value) {\n return (0,external_wp_element_.createElement)(external_wp_components_.SVG, {\n style: {\n width: '25px',\n height: '20px'\n }\n }, (0,external_wp_element_.createElement)(\"text\", {\n x: \"0\",\n y: \"15\"\n }, \"P\"));\n }\n\n if ('span' === value) {\n return (0,external_wp_element_.createElement)(external_wp_components_.SVG, {\n style: {\n width: '25px',\n height: '20px'\n }\n }, (0,external_wp_element_.createElement)(\"text\", {\n style: {\n fontSize: '12px'\n },\n x: \"0\",\n y: \"15\"\n }, \"SPAN\"));\n }\n };\n\n const changeTag = value => {\n setAttributes({\n tag: value\n });\n };\n\n return (0,external_wp_element_.createElement)(external_wp_blockEditor_.BlockControls, null, (0,external_wp_element_.createElement)(external_wp_components_.DropdownMenu, {\n icon: getTagIcon(attributes.tag),\n label: (0,external_wp_i18n_.__)('Select tag', 'otter-blocks'),\n className: \"components-toolbar\",\n controls: [{\n title: (0,external_wp_i18n_.__)('Heading', 'otter-blocks') + ' 1',\n icon: getTagIcon('h1'),\n onClick: () => changeTag('h1')\n }, {\n title: (0,external_wp_i18n_.__)('Heading', 'otter-blocks') + ' 2',\n icon: getTagIcon('h2'),\n onClick: () => changeTag('h2')\n }, {\n title: (0,external_wp_i18n_.__)('Heading', 'otter-blocks') + ' 3',\n icon: getTagIcon('h3'),\n onClick: () => changeTag('h3')\n }, {\n title: (0,external_wp_i18n_.__)('Heading', 'otter-blocks') + ' 4',\n icon: getTagIcon('h4'),\n onClick: () => changeTag('h4')\n }, {\n title: (0,external_wp_i18n_.__)('Heading', 'otter-blocks') + ' 5',\n icon: getTagIcon('h5'),\n onClick: () => changeTag('h5')\n }, {\n title: (0,external_wp_i18n_.__)('Heading', 'otter-blocks') + ' 6',\n icon: getTagIcon('h6'),\n onClick: () => changeTag('h6')\n }, {\n title: (0,external_wp_i18n_.__)('Division', 'otter-blocks'),\n icon: getTagIcon('div'),\n onClick: () => changeTag('div')\n }, {\n title: (0,external_wp_i18n_.__)('Paragraph', 'otter-blocks'),\n icon: getTagIcon('p'),\n onClick: () => changeTag('p')\n }, {\n title: (0,external_wp_i18n_.__)('Span Tag', 'otter-blocks'),\n icon: getTagIcon('span'),\n onClick: () => changeTag('span')\n }]\n }), (0,external_wp_element_.createElement)(external_wp_components_.Toolbar, null, (0,external_wp_element_.createElement)(external_wp_components_.Dropdown, {\n contentClassName: \"wp-themesiel-blocks-advanced-heading-popover-content\",\n position: \"bottom center\",\n renderToggle: ({\n isOpen,\n onToggle\n }) => (0,external_wp_element_.createElement)(external_wp_components_.Button, {\n className: \"components-dropdown-menu__toggle\",\n icon: 'editor-textcolor',\n onClick: onToggle,\n \"aria-haspopup\": \"true\",\n \"aria-expanded\": isOpen,\n label: (0,external_wp_i18n_.__)('Typography Settings', 'otter-blocks'),\n showTooltip: true\n }, (0,external_wp_element_.createElement)(\"span\", {\n className: \"components-dropdown-menu__indicator\"\n })),\n renderContent: () => (0,external_wp_element_.createElement)(external_wp_element_.Fragment, null, (0,external_wp_element_.createElement)(google_fonts_control/* default */.Z, {\n label: (0,external_wp_i18n_.__)('Font Family', 'otter-blocks'),\n value: attributes.fontFamily,\n onChangeFontFamily: changeFontFamily,\n isSelect: true,\n valueVariant: attributes.fontVariant,\n onChangeFontVariant: changeFontVariant,\n valueStyle: attributes.fontStyle,\n onChangeFontStyle: changeFontStyle,\n valueTransform: attributes.textTransform,\n onChangeTextTransform: changeTextTransform\n }), (0,external_wp_element_.createElement)(external_wp_components_.RangeControl, {\n label: (0,external_wp_i18n_.__)('Line Height', 'otter-blocks'),\n value: attributes.lineHeight,\n onChange: changeLineHeight,\n min: 0,\n max: 200\n }), (0,external_wp_element_.createElement)(external_wp_components_.RangeControl, {\n label: (0,external_wp_i18n_.__)('Letter Spacing', 'otter-blocks'),\n value: attributes.letterSpacing,\n onChange: changeLetterSpacing,\n min: -50,\n max: 100\n }))\n })));\n};\n\n/* harmony default export */ var controls = (Controls);\n// EXTERNAL MODULE: ./src/blocks/components/color-base-control/index.js\nvar color_base_control = __webpack_require__(6778);\n// EXTERNAL MODULE: ./src/blocks/components/control-panel-control/index.js\nvar control_panel_control = __webpack_require__(2136);\n// EXTERNAL MODULE: ./src/blocks/components/responsive-control/index.js\nvar responsive_control = __webpack_require__(6993);\n// EXTERNAL MODULE: ./src/blocks/components/sizing-control/index.js + 1 modules\nvar sizing_control = __webpack_require__(2372);\n// EXTERNAL MODULE: ./src/blocks/components/html-anchor-control/index.js\nvar html_anchor_control = __webpack_require__(1661);\n;// CONCATENATED MODULE: ./src/blocks/blocks/advanced-heading/inspector.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies.\n */\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\n\n\nconst Inspector = ({\n attributes,\n setAttributes,\n changeFontFamily,\n changeFontVariant,\n changeFontStyle,\n changeTextTransform,\n changeLineHeight,\n changeLetterSpacing\n}) => {\n const getView = (0,external_wp_data_.useSelect)(select => {\n const {\n getView\n } = select('themeisle-gutenberg/data');\n const {\n __experimentalGetPreviewDeviceType\n } = select('core/edit-post') ? select('core/edit-post') : false;\n return __experimentalGetPreviewDeviceType ? __experimentalGetPreviewDeviceType() : getView();\n }, []);\n const [tab, setTab] = (0,external_wp_element_.useState)('style');\n\n const changeHeadingColor = value => {\n setAttributes({\n headingColor: value\n });\n };\n\n let getFontSize = () => {\n let value;\n\n if ('Desktop' === getView) {\n value = attributes.fontSize;\n }\n\n if ('Tablet' === getView) {\n value = attributes.fontSizeTablet;\n }\n\n if ('Mobile' === getView) {\n value = attributes.fontSizeMobile;\n }\n\n return value;\n };\n\n getFontSize = getFontSize();\n\n const changeFontSize = value => {\n if ('Desktop' === getView) {\n setAttributes({\n fontSize: value\n });\n }\n\n if ('Tablet' === getView) {\n setAttributes({\n fontSizeTablet: value\n });\n }\n\n if ('Mobile' === getView) {\n setAttributes({\n fontSizeMobile: value\n });\n }\n };\n\n let getAlignment = () => {\n let value;\n\n if ('Desktop' === getView) {\n value = attributes.align;\n }\n\n if ('Tablet' === getView) {\n value = attributes.alignTablet;\n }\n\n if ('Mobile' === getView) {\n value = attributes.alignMobile;\n }\n\n return value;\n };\n\n getAlignment = getAlignment();\n\n const changeAlignment = value => {\n if ('Desktop' === getView) {\n setAttributes({\n align: value\n });\n }\n\n if ('Tablet' === getView) {\n setAttributes({\n alignTablet: value\n });\n }\n\n if ('Mobile' === getView) {\n setAttributes({\n alignMobile: value\n });\n }\n };\n\n const changeTextShadowColor = value => {\n setAttributes({\n textShadowColor: value\n });\n };\n\n const changeTextShadow = value => {\n setAttributes({\n textShadow: value\n });\n };\n\n const changeTextShadowColorOpacity = value => {\n setAttributes({\n textShadowColorOpacity: value\n });\n };\n\n const changeTextShadowBlur = value => {\n setAttributes({\n textShadowBlur: value\n });\n };\n\n const changeTextShadowHorizontal = value => {\n setAttributes({\n textShadowHorizontal: value\n });\n };\n\n const changeTextShadowVertical = value => {\n setAttributes({\n textShadowVertical: value\n });\n };\n\n const changeHighlightColor = value => {\n setAttributes({\n highlightColor: value\n });\n };\n\n const changeHighlightBackground = value => {\n setAttributes({\n highlightBackground: value\n });\n };\n\n let getPaddingType = () => {\n let value;\n\n if ('Desktop' === getView) {\n value = attributes.paddingType;\n }\n\n if ('Tablet' === getView) {\n value = attributes.paddingTypeTablet;\n }\n\n if ('Mobile' === getView) {\n value = attributes.paddingTypeMobile;\n }\n\n return value;\n };\n\n getPaddingType = getPaddingType();\n\n const changePaddingType = value => {\n if ('Desktop' === getView) {\n setAttributes({\n paddingType: value\n });\n }\n\n if ('Tablet' === getView) {\n setAttributes({\n paddingTypeTablet: value\n });\n }\n\n if ('Mobile' === getView) {\n setAttributes({\n paddingTypeMobile: value\n });\n }\n };\n\n const desktopPaddingType = {\n top: 'paddingTop',\n right: 'paddingRight',\n bottom: 'paddingBottom',\n left: 'paddingLeft'\n };\n const tabletPaddingType = {\n top: 'paddingTopTablet',\n right: 'paddingRightTablet',\n bottom: 'paddingBottomTablet',\n left: 'paddingLeftTablet'\n };\n const mobilePaddingType = {\n top: 'paddingTopMobile',\n right: 'paddingRightMobile',\n bottom: 'paddingBottomMobile',\n left: 'paddingLeftMobile'\n };\n\n const changePadding = (type, value) => {\n if ('Desktop' === getView) {\n if ('linked' === attributes.paddingType) {\n setAttributes({\n padding: value\n });\n } else {\n setAttributes({\n [desktopPaddingType[type]]: value\n });\n }\n }\n\n if ('Tablet' === getView) {\n if ('linked' === attributes.paddingTypeTablet) {\n setAttributes({\n paddingTablet: value\n });\n } else {\n setAttributes({\n [tabletPaddingType[type]]: value\n });\n }\n }\n\n if ('Mobile' === getView) {\n if ('linked' === attributes.paddingTypeMobile) {\n setAttributes({\n paddingMobile: value\n });\n } else {\n setAttributes({\n [mobilePaddingType[type]]: value\n });\n }\n }\n };\n\n const getPadding = type => {\n let value;\n\n if ('top' == type) {\n if ('Desktop' === getView) {\n value = 'linked' === attributes.paddingType ? attributes.padding : attributes.paddingTop;\n }\n\n if ('Tablet' === getView) {\n value = 'linked' === attributes.paddingTypeTablet ? attributes.paddingTablet : attributes.paddingTopTablet;\n }\n\n if ('Mobile' === getView) {\n value = 'linked' === attributes.paddingTypeMobile ? attributes.paddingMobile : attributes.paddingTopMobile;\n }\n }\n\n if ('right' == type) {\n if ('Desktop' === getView) {\n value = 'linked' === attributes.paddingType ? attributes.padding : attributes.paddingRight;\n }\n\n if ('Tablet' === getView) {\n value = 'linked' === attributes.paddingTypeTablet ? attributes.paddingTablet : attributes.paddingRightTablet;\n }\n\n if ('Mobile' === getView) {\n value = 'linked' === attributes.paddingTypeMobile ? attributes.paddingMobile : attributes.paddingRightMobile;\n }\n }\n\n if ('bottom' == type) {\n if ('Desktop' === getView) {\n value = 'linked' === attributes.paddingType ? attributes.padding : attributes.paddingBottom;\n }\n\n if ('Tablet' === getView) {\n value = 'linked' === attributes.paddingTypeTablet ? attributes.paddingTablet : attributes.paddingBottomTablet;\n }\n\n if ('Mobile' === getView) {\n value = 'linked' === attributes.paddingTypeMobile ? attributes.paddingMobile : attributes.paddingBottomMobile;\n }\n }\n\n if ('left' == type) {\n if ('Desktop' === getView) {\n value = 'linked' === attributes.paddingType ? attributes.padding : attributes.paddingLeft;\n }\n\n if ('Tablet' === getView) {\n value = 'linked' === attributes.paddingTypeTablet ? attributes.paddingTablet : attributes.paddingLeftTablet;\n }\n\n if ('Mobile' === getView) {\n value = 'linked' === attributes.paddingTypeMobile ? attributes.paddingMobile : attributes.paddingLeftMobile;\n }\n }\n\n return value;\n };\n\n let getMarginType = () => {\n let value;\n\n if ('Desktop' === getView) {\n value = attributes.marginType;\n }\n\n if ('Tablet' === getView) {\n value = attributes.marginTypeTablet;\n }\n\n if ('Mobile' === getView) {\n value = attributes.marginTypeMobile;\n }\n\n return value;\n };\n\n getMarginType = getMarginType();\n\n const changeMarginType = value => {\n if ('Desktop' === getView) {\n setAttributes({\n marginType: value\n });\n }\n\n if ('Tablet' === getView) {\n setAttributes({\n marginTypeTablet: value\n });\n }\n\n if ('Mobile' === getView) {\n setAttributes({\n marginTypeMobile: value\n });\n }\n };\n\n const desktopMarginType = {\n top: 'marginTop',\n bottom: 'marginBottom'\n };\n const tabletMarginType = {\n top: 'marginTopTablet',\n bottom: 'marginBottomTablet'\n };\n const mobileMarginType = {\n top: 'marginTopMobile',\n bottom: 'marginBottomMobile'\n };\n\n const changeMargin = (type, value) => {\n if ('Desktop' === getView) {\n if ('linked' === attributes.marginType) {\n setAttributes({\n margin: value\n });\n } else {\n setAttributes({\n [desktopMarginType[type]]: value\n });\n }\n }\n\n if ('Tablet' === getView) {\n if ('linked' === attributes.marginTypeTablet) {\n setAttributes({\n marginTablet: value\n });\n } else {\n setAttributes({\n [tabletMarginType[type]]: value\n });\n }\n }\n\n if ('Mobile' === getView) {\n if ('linked' === attributes.marginTypeMobile) {\n setAttributes({\n marginMobile: value\n });\n } else {\n setAttributes({\n [mobileMarginType[type]]: value\n });\n }\n }\n };\n\n const getMargin = type => {\n let value;\n\n if ('top' == type) {\n if ('Desktop' === getView) {\n value = 'linked' === attributes.marginType ? attributes.margin : attributes.marginTop;\n }\n\n if ('Tablet' === getView) {\n value = 'linked' === attributes.marginTypeTablet ? attributes.marginTablet : attributes.marginTopTablet;\n }\n\n if ('Mobile' === getView) {\n value = 'linked' === attributes.marginTypeMobile ? attributes.marginMobile : attributes.marginTopMobile;\n }\n }\n\n if ('bottom' == type) {\n if ('Desktop' === getView) {\n value = 'linked' === attributes.marginType ? attributes.margin : attributes.marginBottom;\n }\n\n if ('Tablet' === getView) {\n value = 'linked' === attributes.marginTypeTablet ? attributes.marginTablet : attributes.marginBottomTablet;\n }\n\n if ('Mobile' === getView) {\n value = 'linked' === attributes.marginTypeMobile ? attributes.marginMobile : attributes.marginBottomMobile;\n }\n }\n\n return value;\n };\n\n const changeID = value => {\n setAttributes({\n id: value\n });\n };\n\n return (0,external_wp_element_.createElement)(external_wp_element_.Fragment, null, (0,external_wp_element_.createElement)(external_wp_blockEditor_.InspectorControls, null, (0,external_wp_element_.createElement)(external_wp_components_.PanelBody, {\n className: \"wp-block-themeisle-blocks-advanced-heading-header-panel\"\n }, (0,external_wp_element_.createElement)(external_wp_components_.Button, {\n className: classnames_default()('header-tab', {\n 'is-selected': 'style' === tab\n }),\n onClick: () => setTab('style')\n }, (0,external_wp_element_.createElement)(\"span\", null, (0,external_wp_element_.createElement)(external_wp_components_.Dashicon, {\n icon: \"admin-customizer\"\n }), (0,external_wp_i18n_.__)('Style', 'otter-blocks'))), (0,external_wp_element_.createElement)(external_wp_components_.Button, {\n className: classnames_default()('header-tab', {\n 'is-selected': 'advanced' === tab\n }),\n onClick: () => setTab('advanced')\n }, (0,external_wp_element_.createElement)(\"span\", null, (0,external_wp_element_.createElement)(external_wp_components_.Dashicon, {\n icon: \"admin-generic\"\n }), (0,external_wp_i18n_.__)('Advanced', 'otter-blocks')))), 'style' === tab && (0,external_wp_element_.createElement)(external_wp_element_.Fragment, null, (0,external_wp_element_.createElement)(external_wp_components_.PanelBody, {\n title: (0,external_wp_i18n_.__)('General Settings', 'otter-blocks')\n }, (0,external_wp_element_.createElement)(color_base_control/* default */.Z, {\n label: (0,external_wp_i18n_.__)('Heading Color', 'otter-blocks'),\n colorValue: attributes.headingColor\n }, (0,external_wp_element_.createElement)(external_wp_blockEditor_.ColorPalette, {\n label: (0,external_wp_i18n_.__)('Heading Color', 'otter-blocks'),\n value: attributes.headingColor,\n onChange: changeHeadingColor\n })), (0,external_wp_element_.createElement)(responsive_control/* default */.Z, {\n label: (0,external_wp_i18n_.__)('Font Size', 'otter-blocks')\n }, (0,external_wp_element_.createElement)(external_wp_components_.RangeControl, {\n value: getFontSize || '',\n onChange: changeFontSize,\n min: 1,\n max: 500\n })), (0,external_wp_element_.createElement)(responsive_control/* default */.Z, {\n label: (0,external_wp_i18n_.__)('Alignment', 'otter-blocks')\n }, (0,external_wp_element_.createElement)(external_wp_blockEditor_.AlignmentToolbar, {\n value: getAlignment,\n onChange: changeAlignment,\n isCollapsed: false\n }))), (0,external_wp_element_.createElement)(external_wp_components_.PanelBody, {\n title: (0,external_wp_i18n_.__)('Typography Settings', 'otter-blocks'),\n initialOpen: false\n }, (0,external_wp_element_.createElement)(google_fonts_control/* default */.Z, {\n label: (0,external_wp_i18n_.__)('Font Family', 'otter-blocks'),\n value: attributes.fontFamily,\n onChangeFontFamily: changeFontFamily,\n valueVariant: attributes.fontVariant,\n onChangeFontVariant: changeFontVariant,\n valueStyle: attributes.fontStyle,\n onChangeFontStyle: changeFontStyle,\n valueTransform: attributes.textTransform,\n onChangeTextTransform: changeTextTransform\n }), (0,external_wp_element_.createElement)(external_wp_components_.RangeControl, {\n label: (0,external_wp_i18n_.__)('Line Height', 'otter-blocks'),\n value: attributes.lineHeight,\n onChange: changeLineHeight,\n min: 0,\n step: 0.1,\n max: 3\n }), (0,external_wp_element_.createElement)(external_wp_components_.RangeControl, {\n label: (0,external_wp_i18n_.__)('Letter Spacing', 'otter-blocks'),\n value: attributes.letterSpacing,\n onChange: changeLetterSpacing,\n min: -50,\n max: 100\n }), (0,external_wp_element_.createElement)(external_wp_components_.ToggleControl, {\n label: (0,external_wp_i18n_.__)('Shadow Properties', 'otter-blocks'),\n checked: attributes.textShadow,\n onChange: changeTextShadow\n }), attributes.textShadow && (0,external_wp_element_.createElement)(external_wp_element_.Fragment, null, (0,external_wp_element_.createElement)(color_base_control/* default */.Z, {\n label: (0,external_wp_i18n_.__)('Color', 'otter-blocks'),\n colorValue: attributes.textShadowColor\n }, (0,external_wp_element_.createElement)(external_wp_blockEditor_.ColorPalette, {\n label: (0,external_wp_i18n_.__)('Color', 'otter-blocks'),\n value: attributes.textShadowColor,\n onChange: changeTextShadowColor\n })), (0,external_wp_element_.createElement)(control_panel_control/* default */.Z, {\n label: (0,external_wp_i18n_.__)('Shadow Properties', 'otter-blocks')\n }, (0,external_wp_element_.createElement)(external_wp_components_.RangeControl, {\n label: (0,external_wp_i18n_.__)('Opacity', 'otter-blocks'),\n value: attributes.textShadowColorOpacity,\n onChange: changeTextShadowColorOpacity,\n min: 0,\n max: 100\n }), (0,external_wp_element_.createElement)(external_wp_components_.RangeControl, {\n label: (0,external_wp_i18n_.__)('Blur', 'otter-blocks'),\n value: attributes.textShadowBlur,\n onChange: changeTextShadowBlur,\n min: 0,\n max: 100\n }), (0,external_wp_element_.createElement)(external_wp_components_.RangeControl, {\n label: (0,external_wp_i18n_.__)('Horizontal', 'otter-blocks'),\n value: attributes.textShadowHorizontal,\n onChange: changeTextShadowHorizontal,\n min: -100,\n max: 100\n }), (0,external_wp_element_.createElement)(external_wp_components_.RangeControl, {\n label: (0,external_wp_i18n_.__)('Vertical', 'otter-blocks'),\n value: attributes.textShadowVertical,\n onChange: changeTextShadowVertical,\n min: -100,\n max: 100\n }))))) || 'advanced' === tab && (0,external_wp_element_.createElement)(external_wp_element_.Fragment, null, (0,external_wp_element_.createElement)(external_wp_components_.PanelBody, {\n title: (0,external_wp_i18n_.__)('Highlight Color', 'otter-blocks')\n }, (0,external_wp_element_.createElement)(color_base_control/* default */.Z, {\n label: (0,external_wp_i18n_.__)('Highlight Color', 'otter-blocks'),\n colorValue: attributes.highlightColor\n }, (0,external_wp_element_.createElement)(external_wp_blockEditor_.ColorPalette, {\n label: (0,external_wp_i18n_.__)('Highlight Color', 'otter-blocks'),\n value: attributes.highlightColor,\n onChange: changeHighlightColor\n })), (0,external_wp_element_.createElement)(color_base_control/* default */.Z, {\n label: (0,external_wp_i18n_.__)('Highlight Background', 'otter-blocks'),\n colorValue: attributes.highlightBackground\n }, (0,external_wp_element_.createElement)(external_wp_blockEditor_.ColorPalette, {\n label: (0,external_wp_i18n_.__)('Highlight Background', 'otter-blocks'),\n value: attributes.highlightBackground,\n onChange: changeHighlightBackground\n }))), (0,external_wp_element_.createElement)(external_wp_components_.PanelBody, {\n title: (0,external_wp_i18n_.__)('Spacing', 'otter-blocks'),\n initialOpen: false\n }, (0,external_wp_element_.createElement)(responsive_control/* default */.Z, {\n label: (0,external_wp_i18n_.__)('Padding', 'otter-blocks')\n }, (0,external_wp_element_.createElement)(sizing_control/* default */.Z, {\n type: getPaddingType,\n min: 0,\n max: 500,\n changeType: changePaddingType,\n onChange: changePadding,\n options: [{\n label: (0,external_wp_i18n_.__)('Top', 'otter-blocks'),\n type: 'top',\n value: getPadding('top')\n }, {\n label: (0,external_wp_i18n_.__)('Right', 'otter-blocks'),\n type: 'right',\n value: getPadding('right')\n }, {\n label: (0,external_wp_i18n_.__)('Bottom', 'otter-blocks'),\n type: 'bottom',\n value: getPadding('bottom')\n }, {\n label: (0,external_wp_i18n_.__)('Left', 'otter-blocks'),\n type: 'left',\n value: getPadding('left')\n }]\n })), (0,external_wp_element_.createElement)(responsive_control/* default */.Z, {\n label: (0,external_wp_i18n_.__)('Margin', 'otter-blocks')\n }, (0,external_wp_element_.createElement)(sizing_control/* default */.Z, {\n type: getMarginType,\n min: -500,\n max: 500,\n changeType: changeMarginType,\n onChange: changeMargin,\n options: [{\n label: (0,external_wp_i18n_.__)('Top', 'otter-blocks'),\n type: 'top',\n value: getMargin('top')\n }, {\n label: (0,external_wp_i18n_.__)('Right', 'otter-blocks'),\n disabled: true\n }, {\n label: (0,external_wp_i18n_.__)('Bottom', 'otter-blocks'),\n type: 'bottom',\n value: getMargin('bottom')\n }, {\n label: (0,external_wp_i18n_.__)('Left', 'otter-blocks'),\n disabled: true\n }]\n }))))), (0,external_wp_element_.createElement)(html_anchor_control/* default */.Z, {\n value: attributes.id,\n onChange: changeID\n }));\n};\n\n/* harmony default export */ var inspector = (Inspector);\n;// CONCATENATED MODULE: ./src/blocks/blocks/advanced-heading/edit.js\n\n\n/**\n * External dependencies\n */\n\n\n\n/**\n * WordPress dependencies.\n */\n\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\nconst Edit = ({\n attributes,\n setAttributes,\n className,\n clientId,\n mergeBlocks,\n insertBlocksAfter,\n onReplace\n}) => {\n const {\n isViewportAvailable,\n isPreviewDesktop,\n isPreviewTablet,\n isPreviewMobile\n } = (0,external_wp_data_.useSelect)(select => {\n const {\n __experimentalGetPreviewDeviceType\n } = select('core/edit-post') ? select('core/edit-post') : false;\n return {\n isViewportAvailable: __experimentalGetPreviewDeviceType ? true : false,\n isPreviewDesktop: __experimentalGetPreviewDeviceType ? 'Desktop' === __experimentalGetPreviewDeviceType() : false,\n isPreviewTablet: __experimentalGetPreviewDeviceType ? 'Tablet' === __experimentalGetPreviewDeviceType() : false,\n isPreviewMobile: __experimentalGetPreviewDeviceType ? 'Mobile' === __experimentalGetPreviewDeviceType() : false\n };\n }, []);\n const isLarger = (0,external_wp_compose_.useViewportMatch)('large', '>=');\n const isLarge = (0,external_wp_compose_.useViewportMatch)('large', '<=');\n const isSmall = (0,external_wp_compose_.useViewportMatch)('small', '>=');\n const isSmaller = (0,external_wp_compose_.useViewportMatch)('small', '<=');\n (0,external_wp_element_.useEffect)(() => {\n const unsubscribe = (0,block_utility/* blockInit */.WX)(clientId, advanced_heading_attributes);\n return () => unsubscribe(attributes.id);\n }, [attributes.id]);\n let isDesktop = isLarger && !isLarge && isSmall && !isSmaller;\n let isTablet = !isLarger && !isLarge && isSmall && !isSmaller;\n let isMobile = !isLarger && !isLarge && !isSmall && !isSmaller;\n\n if (isViewportAvailable && !isMobile) {\n isDesktop = isPreviewDesktop;\n isTablet = isPreviewTablet;\n isMobile = isPreviewMobile;\n }\n\n const changeContent = value => {\n setAttributes({\n content: value\n });\n };\n\n const changeFontFamily = value => {\n if (!value) {\n setAttributes({\n fontFamily: value,\n fontVariant: value\n });\n } else {\n setAttributes({\n fontFamily: value,\n fontVariant: 'normal',\n fontStyle: 'normal'\n });\n }\n };\n\n const changeFontVariant = value => {\n setAttributes({\n fontVariant: value\n });\n };\n\n const changeFontStyle = value => {\n setAttributes({\n fontStyle: value\n });\n };\n\n const changeTextTransform = value => {\n setAttributes({\n textTransform: value\n });\n };\n\n const changeLineHeight = value => {\n setAttributes({\n lineHeight: value\n });\n };\n\n const changeLetterSpacing = value => {\n setAttributes({\n letterSpacing: value\n });\n };\n\n let fontSizeStyle, stylesheet, textShadowStyle;\n\n if (isDesktop) {\n fontSizeStyle = {\n fontSize: `${attributes.fontSize}px`\n };\n stylesheet = {\n textAlign: attributes.align,\n paddingTop: 'linked' === attributes.paddingType ? `${attributes.padding}px` : `${attributes.paddingTop}px`,\n paddingRight: 'linked' === attributes.paddingType ? `${attributes.padding}px` : `${attributes.paddingRight}px`,\n paddingBottom: 'linked' === attributes.paddingType ? `${attributes.padding}px` : `${attributes.paddingBottom}px`,\n paddingLeft: 'linked' === attributes.paddingType ? `${attributes.padding}px` : `${attributes.paddingLeft}px`,\n marginTop: 'linked' === attributes.marginType ? `${attributes.margin}px` : `${attributes.marginTop}px`,\n marginBottom: 'linked' === attributes.marginType ? `${attributes.margin}px` : `${attributes.marginBottom}px`\n };\n }\n\n if (isTablet) {\n fontSizeStyle = {\n fontSize: `${attributes.fontSizeTablet}px`\n };\n stylesheet = {\n textAlign: attributes.alignTablet,\n paddingTop: 'linked' === attributes.paddingTypeTablet ? `${attributes.paddingTablet}px` : `${attributes.paddingTopTablet}px`,\n paddingRight: 'linked' === attributes.paddingTypeTablet ? `${attributes.paddingTablet}px` : `${attributes.paddingRightTablet}px`,\n paddingBottom: 'linked' === attributes.paddingTypeTablet ? `${attributes.paddingTablet}px` : `${attributes.paddingBottomTablet}px`,\n paddingLeft: 'linked' === attributes.paddingTypeTablet ? `${attributes.paddingTablet}px` : `${attributes.paddingLeftTablet}px`,\n marginTop: 'linked' === attributes.marginTypeTablet ? `${attributes.marginTablet}px` : `${attributes.marginTopTablet}px`,\n marginBottom: 'linked' === attributes.marginTypeTablet ? `${attributes.marginTablet}px` : `${attributes.marginBottomTablet}px`\n };\n }\n\n if (isMobile) {\n fontSizeStyle = {\n fontSize: `${attributes.fontSizeMobile}px`\n };\n stylesheet = {\n textAlign: attributes.alignMobile,\n paddingTop: 'linked' === attributes.paddingTypeMobile ? `${attributes.paddingMobile}px` : `${attributes.paddingTopMobile}px`,\n paddingRight: 'linked' === attributes.paddingTypeMobile ? `${attributes.paddingMobile}px` : `${attributes.paddingRightMobile}px`,\n paddingBottom: 'linked' === attributes.paddingTypeMobile ? `${attributes.paddingMobile}px` : `${attributes.paddingBottomMobile}px`,\n paddingLeft: 'linked' === attributes.paddingTypeMobile ? `${attributes.paddingMobile}px` : `${attributes.paddingLeftMobile}px`,\n marginTop: 'linked' === attributes.marginTypeMobile ? `${attributes.marginMobile}px` : `${attributes.marginTopMobile}px`,\n marginBottom: 'linked' === attributes.marginTypeMobile ? `${attributes.marginMobile}px` : `${attributes.marginBottomMobile}px`\n };\n }\n\n if (attributes.textShadow) {\n textShadowStyle = {\n textShadow: `${attributes.textShadowHorizontal}px ${attributes.textShadowVertical}px ${attributes.textShadowBlur}px ${hex_rgba_default()(attributes.textShadowColor ? attributes.textShadowColor : '#000000', 0 <= attributes.textShadowColorOpacity ? attributes.textShadowColorOpacity || 0.00001 : 1)}`\n };\n }\n\n const style = {\n color: attributes.headingColor,\n ...fontSizeStyle,\n fontFamily: attributes.fontFamily,\n fontWeight: 'regular' === attributes.fontVariant ? 'normal' : attributes.fontVariant,\n fontStyle: attributes.fontStyle,\n textTransform: attributes.textTransform,\n lineHeight: 3 < attributes.lineHeight ? attributes.lineHeight + 'px' : attributes.lineHeight,\n letterSpacing: attributes.letterSpacing && `${attributes.letterSpacing}px`,\n ...stylesheet,\n ...textShadowStyle\n };\n return (0,external_wp_element_.createElement)(external_wp_element_.Fragment, null, (0,external_wp_element_.createElement)(\"style\", null, `.${attributes.id} mark, .${attributes.id} .highlight {\n\t\t\t\t\t\tcolor: ${attributes.highlightColor};\n\t\t\t\t\t\tbackground: ${attributes.highlightBackground};\n\t\t\t\t\t}`), attributes.fontFamily && (0,external_wp_element_.createElement)(build/* default */.Z, {\n fonts: [{\n font: attributes.fontFamily,\n weights: attributes.fontVariant && [`${attributes.fontVariant + ('italic' === attributes.fontStyle ? ':i' : '')}`]\n }]\n }), (0,external_wp_element_.createElement)(controls, {\n attributes: attributes,\n setAttributes: setAttributes,\n changeFontFamily: changeFontFamily,\n changeFontVariant: changeFontVariant,\n changeFontStyle: changeFontStyle,\n changeTextTransform: changeTextTransform,\n changeLineHeight: changeLineHeight,\n changeLetterSpacing: changeLetterSpacing\n }), (0,external_wp_element_.createElement)(inspector, {\n attributes: attributes,\n setAttributes: setAttributes,\n changeFontFamily: changeFontFamily,\n changeFontVariant: changeFontVariant,\n changeFontStyle: changeFontStyle,\n changeTextTransform: changeTextTransform,\n changeLineHeight: changeLineHeight,\n changeLetterSpacing: changeLetterSpacing\n }), (0,external_wp_element_.createElement)(external_wp_blockEditor_.RichText, {\n identifier: \"content\",\n className: classnames_default()(attributes.id, className),\n value: attributes.content,\n placeholder: (0,external_wp_i18n_.__)('Write heading…', 'otter-blocks'),\n tagName: attributes.tag,\n formattingControls: ['bold', 'italic', 'link', 'strikethrough', 'highlight'],\n allowedFormats: ['core/bold', 'core/italic', 'core/link', 'core/strikethrough', 'themeisle-blocks/highlight'],\n onMerge: mergeBlocks,\n unstableOnSplit: insertBlocksAfter ? (before, after, ...blocks) => {\n setAttributes({\n content: before\n });\n insertBlocksAfter([...blocks, (0,external_wp_blocks_.createBlock)('core/paragraph', {\n content: after\n })]);\n } : undefined,\n onRemove: () => onReplace([]),\n style: style,\n onChange: changeContent\n }));\n};\n\n/* harmony default export */ var edit = (Edit);\n;// CONCATENATED MODULE: ./src/blocks/blocks/advanced-heading/save.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies.\n */\n\n\n\nconst Save = ({\n attributes,\n className\n}) => {\n return (0,external_wp_element_.createElement)(external_wp_blockEditor_.RichText.Content, {\n tagName: attributes.tag,\n value: attributes.content,\n id: attributes.id,\n className: classnames_default()(attributes.id, className)\n });\n};\n\n/* harmony default export */ var save = (Save);\n;// CONCATENATED MODULE: ./src/blocks/blocks/advanced-heading/index.js\n/**\n * WordPress dependencies.\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\n\n\n\n\n(0,external_wp_blocks_.registerBlockType)('themeisle-blocks/advanced-heading', {\n title: (0,external_wp_i18n_.__)('Advanced Heading', 'otter-blocks'),\n description: (0,external_wp_i18n_.__)('Advanced Heading gives a spin to editor\\'s Heading block with much needed customization options.', 'otter-blocks'),\n icon: icons/* headingIcon */.cZ,\n category: 'themeisle-blocks',\n keywords: ['heading', 'title', 'advanced Heading'],\n attributes: advanced_heading_attributes,\n deprecated: advanced_heading_deprecated,\n transforms: advanced_heading_transforms,\n edit: edit,\n save: save\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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Q0MsdUNBQUMseUNBQUQ7QUFDQyxXQUFPLEVBQUdPLFVBQVUsQ0FBQ00sR0FEdEI7QUFFQyxTQUFLLEVBQUdOLFVBQVUsQ0FBQ0UsT0FGcEI7QUFHQyxNQUFFLEVBQUdGLFVBQVUsQ0FBQ0MsRUFIakI7QUFJQyxhQUFTLEVBQUd5RCxvQkFBVSxDQUNyQjFELFVBQVUsQ0FBQ0MsRUFEVSxFQUVyQlIsU0FGcUI7QUFKdkIsSUFERDtBQVdBLENBZkQ7O0FBaUJBLHlDQUFlMkwsSUFBZixFOztBQzNCQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUNBOztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBQyx5Q0FBaUIsQ0FBRSxtQ0FBRixFQUF1QztBQUN2RDlMLEVBQUFBLEtBQUssRUFBRVAsd0JBQUUsQ0FBRSxrQkFBRixFQUFzQixjQUF0QixDQUQ4QztBQUV2RHVNLEVBQUFBLFdBQVcsRUFBRXZNLHdCQUFFLENBQUUsa0dBQUYsRUFBc0csY0FBdEcsQ0FGd0M7QUFHdkQ2RyxFQUFBQSxJQUh1RDtBQUl2RDJGLEVBQUFBLFFBQVEsRUFBRSxrQkFKNkM7QUFLdkRDLEVBQUFBLFFBQVEsRUFBRSxDQUNULFNBRFMsRUFFVCxPQUZTLEVBR1Qsa0JBSFMsQ0FMNkM7QUFVdkR6TCxFQUFBQSxVQVZ1RDtBQVd2RDZELEVBQUFBLFVBWHVEO0FBWXZETyxFQUFBQSxVQVp1RDtBQWF2RDFFLEVBQUFBLElBYnVEO0FBY3ZEb0UsRUFBQUEsSUFBSUEsRUFBQUEsSUFBQUE7QUFkbUQsQ0FBdkMsQ0FBakIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9vdHRlci1ibG9ja3MvZXh0ZXJuYWwgd2luZG93IFtcIndwXCIsXCJyaWNoVGV4dFwiXT84MGMwIiwid2VicGFjazovL290dGVyLWJsb2Nrcy8uL3NyYy9ibG9ja3MvYmxvY2tzL2FkdmFuY2VkLWhlYWRpbmcvcmVnaXN0ZXJIZWFkaW5nSGlnaGxpZ2h0LmpzPzE3ZjkiLCJ3ZWJwYWNrOi8vb3R0ZXItYmxvY2tzLy4vc3JjL2Jsb2Nrcy9ibG9ja3MvYWR2YW5jZWQtaGVhZGluZy9hdHRyaWJ1dGVzLmpzP2EzYjQiLCJ3ZWJwYWNrOi8vb3R0ZXItYmxvY2tzLy4vc3JjL2Jsb2Nrcy9ibG9ja3MvYWR2YW5jZWQtaGVhZGluZy9kZXByZWNhdGVkLmpzP2RhNDIiLCJ3ZWJwYWNrOi8vb3R0ZXItYmxvY2tzLy4vc3JjL2Jsb2Nrcy9ibG9ja3MvYWR2YW5jZWQtaGVhZGluZy90cmFuc2Zvcm1zLmpzP2Y1MDIiLCJ3ZWJwYWNrOi8vb3R0ZXItYmxvY2tzLy4vc3JjL2Jsb2Nrcy9ibG9ja3MvYWR2YW5jZWQtaGVhZGluZy9jb250cm9scy5qcz8xZDIzIiwid2VicGFjazovL290dGVyLWJsb2Nrcy8uL3NyYy9ibG9ja3MvYmxvY2tzL2FkdmFuY2VkLWhlYWRpbmcvaW5zcGVjdG9yLmpzPzRkM2MiLCJ3ZWJwYWNrOi8vb3R0ZXItYmxvY2tzLy4vc3JjL2Jsb2Nrcy9ibG9ja3MvYWR2YW5jZWQtaGVhZGluZy9lZGl0LmpzP2ZjYWIiLCJ3ZWJwYWNrOi8vb3R0ZXItYmxvY2tzLy4vc3JjL2Jsb2Nrcy9ibG9ja3MvYWR2YW5jZWQtaGVhZGluZy9zYXZlLmpzP2VhY2EiLCJ3ZWJwYWNrOi8vb3R0ZXItYmxvY2tzLy4vc3JjL2Jsb2Nrcy9ibG9ja3MvYWR2YW5jZWQtaGVhZGluZy9pbmRleC5qcz9iYWM3Il0sInNvdXJjZXNDb250ZW50IjpbInZhciBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0gd2luZG93W1wid3BcIl1bXCJyaWNoVGV4dFwiXTsiLCIvKipcbiAqIEV4dGVybmFsIGRlcGVuZGVuY2llcy5cbiAqL1xuaW1wb3J0IHsgYnJ1c2ggfSBmcm9tICdAd29yZHByZXNzL2ljb25zJztcblxuLyoqXG4gKiBXb3JkUHJlc3MgZGVwZW5kZW5jaWVzLlxuICovXG5pbXBvcnQgeyBfXyB9IGZyb20gJ0B3b3JkcHJlc3MvaTE4bic7XG5cbmltcG9ydCB7XG5cdHJlZ2lzdGVyRm9ybWF0VHlwZSxcblx0dG9nZ2xlRm9ybWF0XG59IGZyb20gJ0B3b3JkcHJlc3MvcmljaC10ZXh0JztcblxuaW1wb3J0IHtcblx0UmljaFRleHRTaG9ydGN1dCxcblx0UmljaFRleHRUb29sYmFyQnV0dG9uXG59IGZyb20gJ0B3b3JkcHJlc3MvYmxvY2stZWRpdG9yJztcblxuaW1wb3J0IHsgRnJhZ21lbnQgfSBmcm9tICdAd29yZHByZXNzL2VsZW1lbnQnO1xuXG5jb25zdCBuYW1lID0gJ3RoZW1laXNsZS1ibG9ja3MvaGlnaGxpZ2h0JztcblxucmVnaXN0ZXJGb3JtYXRUeXBlKCBuYW1lLCB7XG5cdG5hbWUsXG5cdHRpdGxlOiBfXyggJ0hpZ2hsaWdodCcsICdvdHRlci1ibG9ja3MnICksXG5cdHRhZ05hbWU6ICdzcGFuJyxcblx0Y2xhc3NOYW1lOiAnaGlnaGxpZ2h0JyxcblxuXHRlZGl0OiAoeyBpc0FjdGl2ZSwgdmFsdWUsIG9uQ2hhbmdlIH0pID0+IHtcblx0XHRjb25zdCBvblRvZ2dsZSA9ICgpID0+IG9uQ2hhbmdlKCB0b2dnbGVGb3JtYXQoIHZhbHVlLCB7IHR5cGU6IG5hbWUgfSkgKTtcblxuXHRcdHJldHVybiAoXG5cdFx0XHQ8RnJhZ21lbnQ+XG5cdFx0XHRcdDxSaWNoVGV4dFNob3J0Y3V0XG5cdFx0XHRcdFx0dHlwZT1cInByaW1hcnlcIlxuXHRcdFx0XHRcdGNoYXJhY3Rlcj1cImhcIlxuXHRcdFx0XHRcdG9uVXNlPXsgb25Ub2dnbGUgfVxuXHRcdFx0XHQvPlxuXG5cdFx0XHRcdDxSaWNoVGV4dFRvb2xiYXJCdXR0b25cblx0XHRcdFx0XHRpY29uPXsgYnJ1c2ggfVxuXHRcdFx0XHRcdHRpdGxlPXsgX18oICdIaWdobGlnaHQnLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdFx0XHRvbkNsaWNrPXsgb25Ub2dnbGUgfVxuXHRcdFx0XHRcdGlzQWN0aXZlPXsgaXNBY3RpdmUgfVxuXHRcdFx0XHRcdHNob3J0Y3V0VHlwZT1cImFjY2Vzc1wiXG5cdFx0XHRcdFx0c2hvcnRjdXRDaGFyYWN0ZXI9XCJoXCJcblx0XHRcdFx0Lz5cblx0XHRcdDwvRnJhZ21lbnQ+XG5cdFx0KTtcblx0fVxufSk7XG4iLCJjb25zdCBhdHRyaWJ1dGVzID0ge1xuXHRpZDoge1xuXHRcdHR5cGU6ICdzdHJpbmcnXG5cdH0sXG5cdGNvbnRlbnQ6IHtcblx0XHR0eXBlOiAnc3RyaW5nJyxcblx0XHRzb3VyY2U6ICdodG1sJyxcblx0XHRzZWxlY3RvcjogJ2gxLGgyLGgzLGg0LGg1LGg2LGRpdixwLHNwYW4nLFxuXHRcdGRlZmF1bHQ6ICcnXG5cdH0sXG5cdHRhZzoge1xuXHRcdGRlZmF1bHQ6ICdoMicsXG5cdFx0dHlwZTogJ3N0cmluZydcblx0fSxcblx0YWxpZ246IHtcblx0XHR0eXBlOiAnc3RyaW5nJ1xuXHR9LFxuXHRhbGlnblRhYmxldDoge1xuXHRcdHR5cGU6ICdzdHJpbmcnXG5cdH0sXG5cdGFsaWduTW9iaWxlOiB7XG5cdFx0dHlwZTogJ3N0cmluZydcblx0fSxcblx0aGVhZGluZ0NvbG9yOiB7XG5cdFx0dHlwZTogJ3N0cmluZycsXG5cdFx0ZGVmYXVsdDogJyMwMDAwMDAnXG5cdH0sXG5cdGhpZ2hsaWdodENvbG9yOiB7XG5cdFx0dHlwZTogJ3N0cmluZydcblx0fSxcblx0aGlnaGxpZ2h0QmFja2dyb3VuZDoge1xuXHRcdHR5cGU6ICdzdHJpbmcnXG5cdH0sXG5cdGZvbnRTaXplOiB7XG5cdFx0dHlwZTogJ251bWJlcidcblx0fSxcblx0Zm9udFNpemVUYWJsZXQ6IHtcblx0XHR0eXBlOiAnbnVtYmVyJ1xuXHR9LFxuXHRmb250U2l6ZU1vYmlsZToge1xuXHRcdHR5cGU6ICdudW1iZXInXG5cdH0sXG5cdGZvbnRGYW1pbHk6IHtcblx0XHR0eXBlOiAnc3RyaW5nJ1xuXHR9LFxuXHRmb250VmFyaWFudDoge1xuXHRcdHR5cGU6ICdzdHJpbmcnXG5cdH0sXG5cdGZvbnRTdHlsZToge1xuXHRcdHR5cGU6ICdzdHJpbmcnLFxuXHRcdGRlZmF1bHQ6ICdub3JtYWwnXG5cdH0sXG5cdHRleHRUcmFuc2Zvcm06IHtcblx0XHR0eXBlOiAnc3RyaW5nJyxcblx0XHRkZWZhdWx0OiAnbm9uZSdcblx0fSxcblx0bGluZUhlaWdodDoge1xuXHRcdHR5cGU6ICdudW1iZXInXG5cdH0sXG5cdGxldHRlclNwYWNpbmc6IHtcblx0XHR0eXBlOiAnbnVtYmVyJ1xuXHR9LFxuXHR0ZXh0U2hhZG93OiB7XG5cdFx0dHlwZTogJ2Jvb2xlYW4nLFxuXHRcdGRlZmF1bHQ6IGZhbHNlXG5cdH0sXG5cdHRleHRTaGFkb3dDb2xvcjoge1xuXHRcdHR5cGU6ICdzdHJpbmcnLFxuXHRcdGRlZmF1bHQ6ICcjMDAwMDAwJ1xuXHR9LFxuXHR0ZXh0U2hhZG93Q29sb3JPcGFjaXR5OiB7XG5cdFx0dHlwZTogJ251bWJlcicsXG5cdFx0ZGVmYXVsdDogNTBcblx0fSxcblx0dGV4dFNoYWRvd0JsdXI6IHtcblx0XHR0eXBlOiAnbnVtYmVyJyxcblx0XHRkZWZhdWx0OiA1XG5cdH0sXG5cdHRleHRTaGFkb3dIb3Jpem9udGFsOiB7XG5cdFx0dHlwZTogJ251bWJlcicsXG5cdFx0ZGVmYXVsdDogMFxuXHR9LFxuXHR0ZXh0U2hhZG93VmVydGljYWw6IHtcblx0XHR0eXBlOiAnbnVtYmVyJyxcblx0XHRkZWZhdWx0OiAwXG5cdH0sXG5cdHBhZGRpbmdUeXBlOiB7XG5cdFx0dHlwZTogJ3N0cmluZycsXG5cdFx0ZGVmYXVsdDogJ2xpbmtlZCdcblx0fSxcblx0cGFkZGluZ1R5cGVUYWJsZXQ6IHtcblx0XHR0eXBlOiAnc3RyaW5nJyxcblx0XHRkZWZhdWx0OiAnbGlua2VkJ1xuXHR9LFxuXHRwYWRkaW5nVHlwZU1vYmlsZToge1xuXHRcdHR5cGU6ICdzdHJpbmcnLFxuXHRcdGRlZmF1bHQ6ICdsaW5rZWQnXG5cdH0sXG5cdHBhZGRpbmc6IHtcblx0XHR0eXBlOiAnbnVtYmVyJyxcblx0XHRkZWZhdWx0OiAwXG5cdH0sXG5cdHBhZGRpbmdUYWJsZXQ6IHtcblx0XHR0eXBlOiAnbnVtYmVyJ1xuXHR9LFxuXHRwYWRkaW5nTW9iaWxlOiB7XG5cdFx0dHlwZTogJ251bWJlcidcblx0fSxcblx0cGFkZGluZ1RvcDoge1xuXHRcdHR5cGU6ICdudW1iZXInLFxuXHRcdGRlZmF1bHQ6IDBcblx0fSxcblx0cGFkZGluZ1RvcFRhYmxldDoge1xuXHRcdHR5cGU6ICdudW1iZXInXG5cdH0sXG5cdHBhZGRpbmdUb3BNb2JpbGU6IHtcblx0XHR0eXBlOiAnbnVtYmVyJ1xuXHR9LFxuXHRwYWRkaW5nUmlnaHQ6IHtcblx0XHR0eXBlOiAnbnVtYmVyJyxcblx0XHRkZWZhdWx0OiAwXG5cdH0sXG5cdHBhZGRpbmdSaWdodFRhYmxldDoge1xuXHRcdHR5cGU6ICdudW1iZXInXG5cdH0sXG5cdHBhZGRpbmdSaWdodE1vYmlsZToge1xuXHRcdHR5cGU6ICdudW1iZXInXG5cdH0sXG5cdHBhZGRpbmdCb3R0b206IHtcblx0XHR0eXBlOiAnbnVtYmVyJyxcblx0XHRkZWZhdWx0OiAwXG5cdH0sXG5cdHBhZGRpbmdCb3R0b21UYWJsZXQ6IHtcblx0XHR0eXBlOiAnbnVtYmVyJ1xuXHR9LFxuXHRwYWRkaW5nQm90dG9tTW9iaWxlOiB7XG5cdFx0dHlwZTogJ251bWJlcidcblx0fSxcblx0cGFkZGluZ0xlZnQ6IHtcblx0XHR0eXBlOiAnbnVtYmVyJyxcblx0XHRkZWZhdWx0OiAwXG5cdH0sXG5cdHBhZGRpbmdMZWZ0VGFibGV0OiB7XG5cdFx0dHlwZTogJ251bWJlcidcblx0fSxcblx0cGFkZGluZ0xlZnRNb2JpbGU6IHtcblx0XHR0eXBlOiAnbnVtYmVyJ1xuXHR9LFxuXHRtYXJnaW5UeXBlOiB7XG5cdFx0dHlwZTogJ3N0cmluZycsXG5cdFx0ZGVmYXVsdDogJ3VubGlua2VkJ1xuXHR9LFxuXHRtYXJnaW5UeXBlVGFibGV0OiB7XG5cdFx0dHlwZTogJ3N0cmluZycsXG5cdFx0ZGVmYXVsdDogJ3VubGlua2VkJ1xuXHR9LFxuXHRtYXJnaW5UeXBlTW9iaWxlOiB7XG5cdFx0dHlwZTogJ3N0cmluZycsXG5cdFx0ZGVmYXVsdDogJ3VubGlua2VkJ1xuXHR9LFxuXHRtYXJnaW46IHtcblx0XHR0eXBlOiAnbnVtYmVyJyxcblx0XHRkZWZhdWx0OiAwXG5cdH0sXG5cdG1hcmdpblRhYmxldDoge1xuXHRcdHR5cGU6ICdudW1iZXInXG5cdH0sXG5cdG1hcmdpbk1vYmlsZToge1xuXHRcdHR5cGU6ICdudW1iZXInXG5cdH0sXG5cdG1hcmdpblRvcDoge1xuXHRcdHR5cGU6ICdudW1iZXInLFxuXHRcdGRlZmF1bHQ6IDBcblx0fSxcblx0bWFyZ2luVG9wVGFibGV0OiB7XG5cdFx0dHlwZTogJ251bWJlcidcblx0fSxcblx0bWFyZ2luVG9wTW9iaWxlOiB7XG5cdFx0dHlwZTogJ251bWJlcidcblx0fSxcblx0bWFyZ2luQm90dG9tOiB7XG5cdFx0dHlwZTogJ251bWJlcicsXG5cdFx0ZGVmYXVsdDogMjVcblx0fSxcblx0bWFyZ2luQm90dG9tVGFibGV0OiB7XG5cdFx0dHlwZTogJ251bWJlcidcblx0fSxcblx0bWFyZ2luQm90dG9tTW9iaWxlOiB7XG5cdFx0dHlwZTogJ251bWJlcidcblx0fVxufTtcblxuZXhwb3J0IGRlZmF1bHQgYXR0cmlidXRlcztcbiIsIi8qKlxuICogRXh0ZXJuYWwgZGVwZW5kZW5jaWVzXG4gKi9cbmltcG9ydCBjbGFzc25hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IGhleFRvUmdiYSBmcm9tICdoZXgtcmdiYSc7XG5cbi8qKlxuICogV29yZFByZXNzIGRlcGVuZGVuY2llcy5cbiAqL1xuaW1wb3J0IHsgUmljaFRleHQgfSBmcm9tICdAd29yZHByZXNzL2Jsb2NrLWVkaXRvcic7XG5cbmNvbnN0IGRlcHJlY2F0ZWQgPSBbIHtcblx0YXR0cmlidXRlczoge1xuXHRcdGlkOiB7XG5cdFx0XHR0eXBlOiAnc3RyaW5nJ1xuXHRcdH0sXG5cdFx0Y29udGVudDoge1xuXHRcdFx0dHlwZTogJ3N0cmluZycsXG5cdFx0XHRzb3VyY2U6ICdodG1sJyxcblx0XHRcdHNlbGVjdG9yOiAnaDEsaDIsaDMsaDQsaDUsaDYsZGl2LHAsc3BhbicsXG5cdFx0XHRkZWZhdWx0OiAnJ1xuXHRcdH0sXG5cdFx0dGFnOiB7XG5cdFx0XHRkZWZhdWx0OiAnaDInLFxuXHRcdFx0dHlwZTogJ3N0cmluZydcblx0XHR9LFxuXHRcdGFsaWduOiB7XG5cdFx0XHR0eXBlOiAnc3RyaW5nJ1xuXHRcdH0sXG5cdFx0YWxpZ25UYWJsZXQ6IHtcblx0XHRcdHR5cGU6ICdzdHJpbmcnXG5cdFx0fSxcblx0XHRhbGlnbk1vYmlsZToge1xuXHRcdFx0dHlwZTogJ3N0cmluZydcblx0XHR9LFxuXHRcdGhlYWRpbmdDb2xvcjoge1xuXHRcdFx0dHlwZTogJ3N0cmluZycsXG5cdFx0XHRkZWZhdWx0OiAnIzAwMDAwMCdcblx0XHR9LFxuXHRcdGhpZ2hsaWdodENvbG9yOiB7XG5cdFx0XHR0eXBlOiAnc3RyaW5nJ1xuXHRcdH0sXG5cdFx0aGlnaGxpZ2h0QmFja2dyb3VuZDoge1xuXHRcdFx0dHlwZTogJ3N0cmluZydcblx0XHR9LFxuXHRcdGZvbnRTaXplOiB7XG5cdFx0XHR0eXBlOiAnbnVtYmVyJ1xuXHRcdH0sXG5cdFx0Zm9udFNpemVUYWJsZXQ6IHtcblx0XHRcdHR5cGU6ICdudW1iZXInXG5cdFx0fSxcblx0XHRmb250U2l6ZU1vYmlsZToge1xuXHRcdFx0dHlwZTogJ251bWJlcidcblx0XHR9LFxuXHRcdGZvbnRGYW1pbHk6IHtcblx0XHRcdHR5cGU6ICdzdHJpbmcnXG5cdFx0fSxcblx0XHRmb250VmFyaWFudDoge1xuXHRcdFx0dHlwZTogJ3N0cmluZydcblx0XHR9LFxuXHRcdGZvbnRTdHlsZToge1xuXHRcdFx0dHlwZTogJ3N0cmluZycsXG5cdFx0XHRkZWZhdWx0OiAnbm9ybWFsJ1xuXHRcdH0sXG5cdFx0dGV4dFRyYW5zZm9ybToge1xuXHRcdFx0dHlwZTogJ3N0cmluZycsXG5cdFx0XHRkZWZhdWx0OiAnbm9uZSdcblx0XHR9LFxuXHRcdGxpbmVIZWlnaHQ6IHtcblx0XHRcdHR5cGU6ICdudW1iZXInXG5cdFx0fSxcblx0XHRsZXR0ZXJTcGFjaW5nOiB7XG5cdFx0XHR0eXBlOiAnbnVtYmVyJ1xuXHRcdH0sXG5cdFx0dGV4dFNoYWRvdzoge1xuXHRcdFx0dHlwZTogJ2Jvb2xlYW4nLFxuXHRcdFx0ZGVmYXVsdDogZmFsc2Vcblx0XHR9LFxuXHRcdHRleHRTaGFkb3dDb2xvcjoge1xuXHRcdFx0dHlwZTogJ3N0cmluZycsXG5cdFx0XHRkZWZhdWx0OiAnIzAwMDAwMCdcblx0XHR9LFxuXHRcdHRleHRTaGFkb3dDb2xvck9wYWNpdHk6IHtcblx0XHRcdHR5cGU6ICdudW1iZXInLFxuXHRcdFx0ZGVmYXVsdDogNTBcblx0XHR9LFxuXHRcdHRleHRTaGFkb3dCbHVyOiB7XG5cdFx0XHR0eXBlOiAnbnVtYmVyJyxcblx0XHRcdGRlZmF1bHQ6IDVcblx0XHR9LFxuXHRcdHRleHRTaGFkb3dIb3Jpem9udGFsOiB7XG5cdFx0XHR0eXBlOiAnbnVtYmVyJyxcblx0XHRcdGRlZmF1bHQ6IDBcblx0XHR9LFxuXHRcdHRleHRTaGFkb3dWZXJ0aWNhbDoge1xuXHRcdFx0dHlwZTogJ251bWJlcicsXG5cdFx0XHRkZWZhdWx0OiAwXG5cdFx0fSxcblx0XHRwYWRkaW5nVHlwZToge1xuXHRcdFx0dHlwZTogJ3N0cmluZycsXG5cdFx0XHRkZWZhdWx0OiAnbGlua2VkJ1xuXHRcdH0sXG5cdFx0cGFkZGluZ1R5cGVUYWJsZXQ6IHtcblx0XHRcdHR5cGU6ICdzdHJpbmcnLFxuXHRcdFx0ZGVmYXVsdDogJ2xpbmtlZCdcblx0XHR9LFxuXHRcdHBhZGRpbmdUeXBlTW9iaWxlOiB7XG5cdFx0XHR0eXBlOiAnc3RyaW5nJyxcblx0XHRcdGRlZmF1bHQ6ICdsaW5rZWQnXG5cdFx0fSxcblx0XHRwYWRkaW5nOiB7XG5cdFx0XHR0eXBlOiAnbnVtYmVyJyxcblx0XHRcdGRlZmF1bHQ6IDBcblx0XHR9LFxuXHRcdHBhZGRpbmdUYWJsZXQ6IHtcblx0XHRcdHR5cGU6ICdudW1iZXInLFxuXHRcdFx0ZGVmYXVsdDogMFxuXHRcdH0sXG5cdFx0cGFkZGluZ01vYmlsZToge1xuXHRcdFx0dHlwZTogJ251bWJlcicsXG5cdFx0XHRkZWZhdWx0OiAwXG5cdFx0fSxcblx0XHRwYWRkaW5nVG9wOiB7XG5cdFx0XHR0eXBlOiAnbnVtYmVyJyxcblx0XHRcdGRlZmF1bHQ6IDBcblx0XHR9LFxuXHRcdHBhZGRpbmdUb3BUYWJsZXQ6IHtcblx0XHRcdHR5cGU6ICdudW1iZXInLFxuXHRcdFx0ZGVmYXVsdDogMFxuXHRcdH0sXG5cdFx0cGFkZGluZ1RvcE1vYmlsZToge1xuXHRcdFx0dHlwZTogJ251bWJlcicsXG5cdFx0XHRkZWZhdWx0OiAwXG5cdFx0fSxcblx0XHRwYWRkaW5nUmlnaHQ6IHtcblx0XHRcdHR5cGU6ICdudW1iZXInLFxuXHRcdFx0ZGVmYXVsdDogMFxuXHRcdH0sXG5cdFx0cGFkZGluZ1JpZ2h0VGFibGV0OiB7XG5cdFx0XHR0eXBlOiAnbnVtYmVyJyxcblx0XHRcdGRlZmF1bHQ6IDBcblx0XHR9LFxuXHRcdHBhZGRpbmdSaWdodE1vYmlsZToge1xuXHRcdFx0dHlwZTogJ251bWJlcicsXG5cdFx0XHRkZWZhdWx0OiAwXG5cdFx0fSxcblx0XHRwYWRkaW5nQm90dG9tOiB7XG5cdFx0XHR0eXBlOiAnbnVtYmVyJyxcblx0XHRcdGRlZmF1bHQ6IDBcblx0XHR9LFxuXHRcdHBhZGRpbmdCb3R0b21UYWJsZXQ6IHtcblx0XHRcdHR5cGU6ICdudW1iZXInLFxuXHRcdFx0ZGVmYXVsdDogMFxuXHRcdH0sXG5cdFx0cGFkZGluZ0JvdHRvbU1vYmlsZToge1xuXHRcdFx0dHlwZTogJ251bWJlcicsXG5cdFx0XHRkZWZhdWx0OiAwXG5cdFx0fSxcblx0XHRwYWRkaW5nTGVmdDoge1xuXHRcdFx0dHlwZTogJ251bWJlcicsXG5cdFx0XHRkZWZhdWx0OiAwXG5cdFx0fSxcblx0XHRwYWRkaW5nTGVmdFRhYmxldDoge1xuXHRcdFx0dHlwZTogJ251bWJlcicsXG5cdFx0XHRkZWZhdWx0OiAwXG5cdFx0fSxcblx0XHRwYWRkaW5nTGVmdE1vYmlsZToge1xuXHRcdFx0dHlwZTogJ251bWJlcicsXG5cdFx0XHRkZWZhdWx0OiAwXG5cdFx0fSxcblx0XHRtYXJnaW5UeXBlOiB7XG5cdFx0XHR0eXBlOiAnc3RyaW5nJyxcblx0XHRcdGRlZmF1bHQ6ICd1bmxpbmtlZCdcblx0XHR9LFxuXHRcdG1hcmdpblR5cGVUYWJsZXQ6IHtcblx0XHRcdHR5cGU6ICdzdHJpbmcnLFxuXHRcdFx0ZGVmYXVsdDogJ3VubGlua2VkJ1xuXHRcdH0sXG5cdFx0bWFyZ2luVHlwZU1vYmlsZToge1xuXHRcdFx0dHlwZTogJ3N0cmluZycsXG5cdFx0XHRkZWZhdWx0OiAndW5saW5rZWQnXG5cdFx0fSxcblx0XHRtYXJnaW46IHtcblx0XHRcdHR5cGU6ICdudW1iZXInLFxuXHRcdFx0ZGVmYXVsdDogMFxuXHRcdH0sXG5cdFx0bWFyZ2luVGFibGV0OiB7XG5cdFx0XHR0eXBlOiAnbnVtYmVyJyxcblx0XHRcdGRlZmF1bHQ6IDBcblx0XHR9LFxuXHRcdG1hcmdpbk1vYmlsZToge1xuXHRcdFx0dHlwZTogJ251bWJlcicsXG5cdFx0XHRkZWZhdWx0OiAwXG5cdFx0fSxcblx0XHRtYXJnaW5Ub3A6IHtcblx0XHRcdHR5cGU6ICdudW1iZXInLFxuXHRcdFx0ZGVmYXVsdDogMFxuXHRcdH0sXG5cdFx0bWFyZ2luVG9wVGFibGV0OiB7XG5cdFx0XHR0eXBlOiAnbnVtYmVyJyxcblx0XHRcdGRlZmF1bHQ6IDBcblx0XHR9LFxuXHRcdG1hcmdpblRvcE1vYmlsZToge1xuXHRcdFx0dHlwZTogJ251bWJlcicsXG5cdFx0XHRkZWZhdWx0OiAwXG5cdFx0fSxcblx0XHRtYXJnaW5Cb3R0b206IHtcblx0XHRcdHR5cGU6ICdudW1iZXInLFxuXHRcdFx0ZGVmYXVsdDogMjVcblx0XHR9LFxuXHRcdG1hcmdpbkJvdHRvbVRhYmxldDoge1xuXHRcdFx0dHlwZTogJ251bWJlcicsXG5cdFx0XHRkZWZhdWx0OiAyNVxuXHRcdH0sXG5cdFx0bWFyZ2luQm90dG9tTW9iaWxlOiB7XG5cdFx0XHR0eXBlOiAnbnVtYmVyJyxcblx0XHRcdGRlZmF1bHQ6IDIwXG5cdFx0fVxuXHR9LFxuXG5cdHNhdmU6ICh7XG5cdFx0YXR0cmlidXRlcyxcblx0XHRjbGFzc05hbWVcblx0fSkgPT4ge1xuXHRcdGxldCB0ZXh0U2hhZG93U3R5bGU7XG5cblx0XHRpZiAoIGF0dHJpYnV0ZXMudGV4dFNoYWRvdyApIHtcblx0XHRcdHRleHRTaGFkb3dTdHlsZSA9IHtcblx0XHRcdFx0dGV4dFNoYWRvdzogYCR7IGF0dHJpYnV0ZXMudGV4dFNoYWRvd0hvcml6b250YWwgfXB4ICR7IGF0dHJpYnV0ZXMudGV4dFNoYWRvd1ZlcnRpY2FsIH1weCAkeyBhdHRyaWJ1dGVzLnRleHRTaGFkb3dCbHVyIH1weCAkeyAgaGV4VG9SZ2JhKCAoIGF0dHJpYnV0ZXMudGV4dFNoYWRvd0NvbG9yID8gYXR0cmlidXRlcy50ZXh0U2hhZG93Q29sb3IgOiAnIzAwMDAwMCcgKSwgYXR0cmlidXRlcy50ZXh0U2hhZG93Q29sb3JPcGFjaXR5ICkgfWBcblx0XHRcdH07XG5cdFx0fVxuXG5cdFx0Y29uc3Qgc3R5bGUgPSB7XG5cdFx0XHRjb2xvcjogYXR0cmlidXRlcy5oZWFkaW5nQ29sb3IsXG5cdFx0XHRmb250RmFtaWx5OiBhdHRyaWJ1dGVzLmZvbnRGYW1pbHksXG5cdFx0XHRmb250V2VpZ2h0OiAncmVndWxhcicgPT09IGF0dHJpYnV0ZXMuZm9udFZhcmlhbnQgPyAnbm9ybWFsJyA6IGF0dHJpYnV0ZXMuZm9udFZhcmlhbnQsXG5cdFx0XHRmb250U3R5bGU6IGF0dHJpYnV0ZXMuZm9udFN0eWxlLFxuXHRcdFx0dGV4dFRyYW5zZm9ybTogYXR0cmlidXRlcy50ZXh0VHJhbnNmb3JtLFxuXHRcdFx0bGluZUhlaWdodDogYXR0cmlidXRlcy5saW5lSGVpZ2h0ICYmIGAkeyBhdHRyaWJ1dGVzLmxpbmVIZWlnaHQgfXB4YCxcblx0XHRcdGxldHRlclNwYWNpbmc6IGF0dHJpYnV0ZXMubGV0dGVyU3BhY2luZyAmJiBgJHsgYXR0cmlidXRlcy5sZXR0ZXJTcGFjaW5nIH1weGAsXG5cdFx0XHQuLi50ZXh0U2hhZG93U3R5bGVcblx0XHR9O1xuXG5cdFx0cmV0dXJuIChcblx0XHRcdDxSaWNoVGV4dC5Db250ZW50XG5cdFx0XHRcdHRhZ05hbWU9eyBhdHRyaWJ1dGVzLnRhZyB9XG5cdFx0XHRcdHZhbHVlPXsgYXR0cmlidXRlcy5jb250ZW50IH1cblx0XHRcdFx0aWQ9eyBhdHRyaWJ1dGVzLmlkIH1cblx0XHRcdFx0Y2xhc3NOYW1lPXsgY2xhc3NuYW1lcyhcblx0XHRcdFx0XHRhdHRyaWJ1dGVzLmlkLFxuXHRcdFx0XHRcdGNsYXNzTmFtZVxuXHRcdFx0XHQpIH1cblx0XHRcdFx0c3R5bGU9eyBzdHlsZSB9XG5cdFx0XHQvPlxuXHRcdCk7XG5cdH1cbn0gXTtcblxuZXhwb3J0IGRlZmF1bHQgZGVwcmVjYXRlZDtcbiIsIi8qKlxuICogV29yZFByZXNzIGRlcGVuZGVuY2llcy5cbiAqL1xuaW1wb3J0IHsgY3JlYXRlQmxvY2sgfSBmcm9tICdAd29yZHByZXNzL2Jsb2Nrcyc7XG5cbmNvbnN0IHRyYW5zZm9ybXMgPSB7XG5cdGZyb206IFtcblx0XHR7XG5cdFx0XHR0eXBlOiAnYmxvY2snLFxuXHRcdFx0YmxvY2tzOiBbICdjb3JlL2hlYWRpbmcnIF0sXG5cdFx0XHR0cmFuc2Zvcm06ICh7IGNvbnRlbnQgfSkgPT4ge1xuXHRcdFx0XHRyZXR1cm4gY3JlYXRlQmxvY2soICd0aGVtZWlzbGUtYmxvY2tzL2FkdmFuY2VkLWhlYWRpbmcnLCB7XG5cdFx0XHRcdFx0Y29udGVudFxuXHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHR9LFxuXHRcdHtcblx0XHRcdHR5cGU6ICdibG9jaycsXG5cdFx0XHRibG9ja3M6IFsgJ2NvcmUvcGFyYWdyYXBoJyBdLFxuXHRcdFx0dHJhbnNmb3JtOiAoeyBjb250ZW50IH0pID0+IHtcblx0XHRcdFx0cmV0dXJuIGNyZWF0ZUJsb2NrKCAndGhlbWVpc2xlLWJsb2Nrcy9hZHZhbmNlZC1oZWFkaW5nJywge1xuXHRcdFx0XHRcdGNvbnRlbnRcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0fVxuXHRdLFxuXHR0bzogW1xuXHRcdHtcblx0XHRcdHR5cGU6ICdibG9jaycsXG5cdFx0XHRibG9ja3M6IFsgJ2NvcmUvcGFyYWdyYXBoJyBdLFxuXHRcdFx0dHJhbnNmb3JtOiAoeyBjb250ZW50IH0pID0+IHtcblx0XHRcdFx0cmV0dXJuIGNyZWF0ZUJsb2NrKCAnY29yZS9wYXJhZ3JhcGgnLCB7XG5cdFx0XHRcdFx0Y29udGVudFxuXHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHR9XG5cdF1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IHRyYW5zZm9ybXM7XG4iLCIvKipcbiAqIFdvcmRQcmVzcyBkZXBlbmRlbmNpZXMuXG4gKi9cbmltcG9ydCB7IF9fIH0gZnJvbSAnQHdvcmRwcmVzcy9pMThuJztcblxuaW1wb3J0IHtcblx0QnV0dG9uLFxuXHREcm9wZG93bixcblx0RHJvcGRvd25NZW51LFxuXHRSYW5nZUNvbnRyb2wsXG5cdFNWRyxcblx0VG9vbGJhclxufSBmcm9tICdAd29yZHByZXNzL2NvbXBvbmVudHMnO1xuXG5pbXBvcnQgeyBCbG9ja0NvbnRyb2xzIH0gZnJvbSAnQHdvcmRwcmVzcy9ibG9jay1lZGl0b3InO1xuXG5pbXBvcnQgeyBGcmFnbWVudCB9IGZyb20gJ0B3b3JkcHJlc3MvZWxlbWVudCc7XG5cbi8qKlxuICogSW50ZXJuYWwgZGVwZW5kZW5jaWVzXG4gKi9cbmltcG9ydCBHb29nbGVGb250c0NvbnRyb2wgZnJvbSAnLi4vLi4vY29tcG9uZW50cy9nb29nbGUtZm9udHMtY29udHJvbC9pbmRleC5qcyc7XG5cbmNvbnN0IENvbnRyb2xzID0gKHtcblx0YXR0cmlidXRlcyxcblx0c2V0QXR0cmlidXRlcyxcblx0Y2hhbmdlRm9udEZhbWlseSxcblx0Y2hhbmdlRm9udFZhcmlhbnQsXG5cdGNoYW5nZUZvbnRTdHlsZSxcblx0Y2hhbmdlVGV4dFRyYW5zZm9ybSxcblx0Y2hhbmdlTGluZUhlaWdodCxcblx0Y2hhbmdlTGV0dGVyU3BhY2luZ1xufSkgPT4ge1xuXHRjb25zdCBnZXRUYWdJY29uID0gdmFsdWUgPT4ge1xuXHRcdGlmICggJ2gxJyA9PT0gdmFsdWUgKSB7XG5cdFx0XHRyZXR1cm4gPFNWRyBzdHlsZT17IHsgd2lkdGg6ICcyNXB4JywgaGVpZ2h0OiAnMjBweCcgfSB9Pjx0ZXh0IHN0eWxlPXsgeyBmb250U2l6ZTogJzEycHgnIH0gfSB4PVwiMFwiIHk9XCIxNVwiPkgxPC90ZXh0PjwvU1ZHPjtcblx0XHR9XG5cblx0XHRpZiAoICdoMicgPT09IHZhbHVlICkge1xuXHRcdFx0cmV0dXJuIDxTVkcgc3R5bGU9eyB7IHdpZHRoOiAnMjVweCcsIGhlaWdodDogJzIwcHgnIH0gfT48dGV4dCBzdHlsZT17IHsgZm9udFNpemU6ICcxMnB4JyB9IH0geD1cIjBcIiB5PVwiMTVcIj5IMjwvdGV4dD48L1NWRz47XG5cdFx0fVxuXG5cdFx0aWYgKCAnaDMnID09PSB2YWx1ZSApIHtcblx0XHRcdHJldHVybiA8U1ZHIHN0eWxlPXsgeyB3aWR0aDogJzI1cHgnLCBoZWlnaHQ6ICcyMHB4JyB9IH0+PHRleHQgc3R5bGU9eyB7IGZvbnRTaXplOiAnMTJweCcgfSB9IHg9XCIwXCIgeT1cIjE1XCI+SDM8L3RleHQ+PC9TVkc+O1xuXHRcdH1cblxuXHRcdGlmICggJ2g0JyA9PT0gdmFsdWUgKSB7XG5cdFx0XHRyZXR1cm4gPFNWRyBzdHlsZT17IHsgd2lkdGg6ICcyNXB4JywgaGVpZ2h0OiAnMjBweCcgfSB9Pjx0ZXh0IHN0eWxlPXsgeyBmb250U2l6ZTogJzEycHgnIH0gfSB4PVwiMFwiIHk9XCIxNVwiPkg0PC90ZXh0PjwvU1ZHPjtcblx0XHR9XG5cblx0XHRpZiAoICdoNScgPT09IHZhbHVlICkge1xuXHRcdFx0cmV0dXJuIDxTVkcgc3R5bGU9eyB7IHdpZHRoOiAnMjVweCcsIGhlaWdodDogJzIwcHgnIH0gfT48dGV4dCBzdHlsZT17IHsgZm9udFNpemU6ICcxMnB4JyB9IH0geD1cIjBcIiB5PVwiMTVcIj5INTwvdGV4dD48L1NWRz47XG5cdFx0fVxuXG5cdFx0aWYgKCAnaDYnID09PSB2YWx1ZSApIHtcblx0XHRcdHJldHVybiA8U1ZHIHN0eWxlPXsgeyB3aWR0aDogJzI1cHgnLCBoZWlnaHQ6ICcyMHB4JyB9IH0+PHRleHQgc3R5bGU9eyB7IGZvbnRTaXplOiAnMTJweCcgfSB9IHg9XCIwXCIgeT1cIjE1XCI+SDY8L3RleHQ+PC9TVkc+O1xuXHRcdH1cblxuXHRcdGlmICggJ2RpdicgPT09IHZhbHVlICkge1xuXHRcdFx0cmV0dXJuIDxTVkcgc3R5bGU9eyB7IHdpZHRoOiAnMjVweCcsIGhlaWdodDogJzIwcHgnIH0gfT48dGV4dCBzdHlsZT17IHsgZm9udFNpemU6ICcxMnB4JyB9IH0geD1cIjBcIiB5PVwiMTVcIj5ESVY8L3RleHQ+PC9TVkc+O1xuXHRcdH1cblxuXHRcdGlmICggJ3AnID09PSB2YWx1ZSApIHtcblx0XHRcdHJldHVybiA8U1ZHIHN0eWxlPXsgeyB3aWR0aDogJzI1cHgnLCBoZWlnaHQ6ICcyMHB4JyB9IH0+PHRleHQgeD1cIjBcIiB5PVwiMTVcIj5QPC90ZXh0PjwvU1ZHPjtcblx0XHR9XG5cblx0XHRpZiAoICdzcGFuJyA9PT0gdmFsdWUgKSB7XG5cdFx0XHRyZXR1cm4gPFNWRyBzdHlsZT17IHsgd2lkdGg6ICcyNXB4JywgaGVpZ2h0OiAnMjBweCcgfSB9Pjx0ZXh0IHN0eWxlPXsgeyBmb250U2l6ZTogJzEycHgnIH0gfSB4PVwiMFwiIHk9XCIxNVwiPlNQQU48L3RleHQ+PC9TVkc+O1xuXHRcdH1cblx0fTtcblxuXG5cdGNvbnN0IGNoYW5nZVRhZyA9IHZhbHVlID0+IHtcblx0XHRzZXRBdHRyaWJ1dGVzKHsgdGFnOiB2YWx1ZSB9KTtcblx0fTtcblxuXHRyZXR1cm4gKFxuXHRcdDxCbG9ja0NvbnRyb2xzPlxuXHRcdFx0PERyb3Bkb3duTWVudVxuXHRcdFx0XHRpY29uPXsgZ2V0VGFnSWNvbiggYXR0cmlidXRlcy50YWcgKSB9XG5cdFx0XHRcdGxhYmVsPXsgX18oICdTZWxlY3QgdGFnJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdGNsYXNzTmFtZT1cImNvbXBvbmVudHMtdG9vbGJhclwiXG5cdFx0XHRcdGNvbnRyb2xzPXsgW1xuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdHRpdGxlOiBfXyggJ0hlYWRpbmcnLCAnb3R0ZXItYmxvY2tzJyApICsgJyAxJyxcblx0XHRcdFx0XHRcdGljb246IGdldFRhZ0ljb24oICdoMScgKSxcblx0XHRcdFx0XHRcdG9uQ2xpY2s6ICgpID0+IGNoYW5nZVRhZyggJ2gxJyApXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHR0aXRsZTogX18oICdIZWFkaW5nJywgJ290dGVyLWJsb2NrcycgKSArICcgMicsXG5cdFx0XHRcdFx0XHRpY29uOiBnZXRUYWdJY29uKCAnaDInICksXG5cdFx0XHRcdFx0XHRvbkNsaWNrOiAoKSA9PiBjaGFuZ2VUYWcoICdoMicgKVxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0dGl0bGU6IF9fKCAnSGVhZGluZycsICdvdHRlci1ibG9ja3MnICkgKyAnIDMnLFxuXHRcdFx0XHRcdFx0aWNvbjogZ2V0VGFnSWNvbiggJ2gzJyApLFxuXHRcdFx0XHRcdFx0b25DbGljazogKCkgPT4gY2hhbmdlVGFnKCAnaDMnIClcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdHRpdGxlOiBfXyggJ0hlYWRpbmcnLCAnb3R0ZXItYmxvY2tzJyApICsgJyA0Jyxcblx0XHRcdFx0XHRcdGljb246IGdldFRhZ0ljb24oICdoNCcgKSxcblx0XHRcdFx0XHRcdG9uQ2xpY2s6ICgpID0+IGNoYW5nZVRhZyggJ2g0JyApXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHR0aXRsZTogX18oICdIZWFkaW5nJywgJ290dGVyLWJsb2NrcycgKSArICcgNScsXG5cdFx0XHRcdFx0XHRpY29uOiBnZXRUYWdJY29uKCAnaDUnICksXG5cdFx0XHRcdFx0XHRvbkNsaWNrOiAoKSA9PiBjaGFuZ2VUYWcoICdoNScgKVxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0dGl0bGU6IF9fKCAnSGVhZGluZycsICdvdHRlci1ibG9ja3MnICkgKyAnIDYnLFxuXHRcdFx0XHRcdFx0aWNvbjogZ2V0VGFnSWNvbiggJ2g2JyApLFxuXHRcdFx0XHRcdFx0b25DbGljazogKCkgPT4gY2hhbmdlVGFnKCAnaDYnIClcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdHRpdGxlOiBfXyggJ0RpdmlzaW9uJywgJ290dGVyLWJsb2NrcycgKSxcblx0XHRcdFx0XHRcdGljb246IGdldFRhZ0ljb24oICdkaXYnICksXG5cdFx0XHRcdFx0XHRvbkNsaWNrOiAoKSA9PiBjaGFuZ2VUYWcoICdkaXYnIClcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdHRpdGxlOiBfXyggJ1BhcmFncmFwaCcsICdvdHRlci1ibG9ja3MnICksXG5cdFx0XHRcdFx0XHRpY29uOiBnZXRUYWdJY29uKCAncCcgKSxcblx0XHRcdFx0XHRcdG9uQ2xpY2s6ICgpID0+IGNoYW5nZVRhZyggJ3AnIClcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdHRpdGxlOiBfXyggJ1NwYW4gVGFnJywgJ290dGVyLWJsb2NrcycgKSxcblx0XHRcdFx0XHRcdGljb246IGdldFRhZ0ljb24oICdzcGFuJyApLFxuXHRcdFx0XHRcdFx0b25DbGljazogKCkgPT4gY2hhbmdlVGFnKCAnc3BhbicgKVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XSB9XG5cdFx0XHQvPlxuXG5cdFx0XHQ8VG9vbGJhcj5cblx0XHRcdFx0PERyb3Bkb3duXG5cdFx0XHRcdFx0Y29udGVudENsYXNzTmFtZT1cIndwLXRoZW1lc2llbC1ibG9ja3MtYWR2YW5jZWQtaGVhZGluZy1wb3BvdmVyLWNvbnRlbnRcIlxuXHRcdFx0XHRcdHBvc2l0aW9uPVwiYm90dG9tIGNlbnRlclwiXG5cdFx0XHRcdFx0cmVuZGVyVG9nZ2xlPXsgKHsgaXNPcGVuLCBvblRvZ2dsZSB9KSA9PiAoXG5cdFx0XHRcdFx0XHQ8QnV0dG9uXG5cdFx0XHRcdFx0XHRcdGNsYXNzTmFtZT1cImNvbXBvbmVudHMtZHJvcGRvd24tbWVudV9fdG9nZ2xlXCJcblx0XHRcdFx0XHRcdFx0aWNvbj17ICdlZGl0b3ItdGV4dGNvbG9yJyB9XG5cdFx0XHRcdFx0XHRcdG9uQ2xpY2s9eyBvblRvZ2dsZSB9XG5cdFx0XHRcdFx0XHRcdGFyaWEtaGFzcG9wdXA9XCJ0cnVlXCJcblx0XHRcdFx0XHRcdFx0YXJpYS1leHBhbmRlZD17IGlzT3BlbiB9XG5cdFx0XHRcdFx0XHRcdGxhYmVsPXsgX18oICdUeXBvZ3JhcGh5IFNldHRpbmdzJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdFx0XHRcdHNob3dUb29sdGlwPXsgdHJ1ZSB9XG5cdFx0XHRcdFx0XHQ+XG5cdFx0XHRcdFx0XHRcdDxzcGFuIGNsYXNzTmFtZT1cImNvbXBvbmVudHMtZHJvcGRvd24tbWVudV9faW5kaWNhdG9yXCIgLz5cblx0XHRcdFx0XHRcdDwvQnV0dG9uPlxuXHRcdFx0XHRcdCkgfVxuXHRcdFx0XHRcdHJlbmRlckNvbnRlbnQ9eyAoKSA9PiAoXG5cdFx0XHRcdFx0XHQ8RnJhZ21lbnQ+XG5cdFx0XHRcdFx0XHRcdDxHb29nbGVGb250c0NvbnRyb2xcblx0XHRcdFx0XHRcdFx0XHRsYWJlbD17IF9fKCAnRm9udCBGYW1pbHknLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdFx0XHRcdFx0XHR2YWx1ZT17IGF0dHJpYnV0ZXMuZm9udEZhbWlseSB9XG5cdFx0XHRcdFx0XHRcdFx0b25DaGFuZ2VGb250RmFtaWx5PXsgY2hhbmdlRm9udEZhbWlseSB9XG5cdFx0XHRcdFx0XHRcdFx0aXNTZWxlY3Q9eyB0cnVlIH1cblx0XHRcdFx0XHRcdFx0XHR2YWx1ZVZhcmlhbnQ9eyBhdHRyaWJ1dGVzLmZvbnRWYXJpYW50IH1cblx0XHRcdFx0XHRcdFx0XHRvbkNoYW5nZUZvbnRWYXJpYW50PXsgY2hhbmdlRm9udFZhcmlhbnQgfVxuXHRcdFx0XHRcdFx0XHRcdHZhbHVlU3R5bGU9eyBhdHRyaWJ1dGVzLmZvbnRTdHlsZSB9XG5cdFx0XHRcdFx0XHRcdFx0b25DaGFuZ2VGb250U3R5bGU9eyBjaGFuZ2VGb250U3R5bGUgfVxuXHRcdFx0XHRcdFx0XHRcdHZhbHVlVHJhbnNmb3JtPXsgYXR0cmlidXRlcy50ZXh0VHJhbnNmb3JtIH1cblx0XHRcdFx0XHRcdFx0XHRvbkNoYW5nZVRleHRUcmFuc2Zvcm09eyBjaGFuZ2VUZXh0VHJhbnNmb3JtIH1cblx0XHRcdFx0XHRcdFx0Lz5cblxuXHRcdFx0XHRcdFx0XHQ8UmFuZ2VDb250cm9sXG5cdFx0XHRcdFx0XHRcdFx0bGFiZWw9eyBfXyggJ0xpbmUgSGVpZ2h0JywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdFx0XHRcdFx0dmFsdWU9eyBhdHRyaWJ1dGVzLmxpbmVIZWlnaHQgfVxuXHRcdFx0XHRcdFx0XHRcdG9uQ2hhbmdlPXsgY2hhbmdlTGluZUhlaWdodCB9XG5cdFx0XHRcdFx0XHRcdFx0bWluPXsgMCB9XG5cdFx0XHRcdFx0XHRcdFx0bWF4PXsgMjAwIH1cblx0XHRcdFx0XHRcdFx0Lz5cblxuXHRcdFx0XHRcdFx0XHQ8UmFuZ2VDb250cm9sXG5cdFx0XHRcdFx0XHRcdFx0bGFiZWw9eyBfXyggJ0xldHRlciBTcGFjaW5nJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdFx0XHRcdFx0dmFsdWU9eyBhdHRyaWJ1dGVzLmxldHRlclNwYWNpbmcgfVxuXHRcdFx0XHRcdFx0XHRcdG9uQ2hhbmdlPXsgY2hhbmdlTGV0dGVyU3BhY2luZyB9XG5cdFx0XHRcdFx0XHRcdFx0bWluPXsgLTUwIH1cblx0XHRcdFx0XHRcdFx0XHRtYXg9eyAxMDAgfVxuXHRcdFx0XHRcdFx0XHQvPlxuXHRcdFx0XHRcdFx0PC9GcmFnbWVudD5cblx0XHRcdFx0XHQpIH1cblx0XHRcdFx0Lz5cblx0XHRcdDwvVG9vbGJhcj5cblx0XHQ8L0Jsb2NrQ29udHJvbHM+XG5cdCk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBDb250cm9scztcbiIsIi8qKlxuICogRXh0ZXJuYWwgZGVwZW5kZW5jaWVzXG4gKi9cbmltcG9ydCBjbGFzc25hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuXG4vKipcbiAqIFdvcmRQcmVzcyBkZXBlbmRlbmNpZXMuXG4gKi9cbmltcG9ydCB7IF9fIH0gZnJvbSAnQHdvcmRwcmVzcy9pMThuJztcblxuaW1wb3J0IHtcblx0QWxpZ25tZW50VG9vbGJhcixcblx0Q29sb3JQYWxldHRlLFxuXHRJbnNwZWN0b3JDb250cm9sc1xufSBmcm9tICdAd29yZHByZXNzL2Jsb2NrLWVkaXRvcic7XG5cbmltcG9ydCB7XG5cdEJ1dHRvbixcblx0RGFzaGljb24sXG5cdFBhbmVsQm9keSxcblx0UmFuZ2VDb250cm9sLFxuXHRUb2dnbGVDb250cm9sXG59IGZyb20gJ0B3b3JkcHJlc3MvY29tcG9uZW50cyc7XG5cbmltcG9ydCB7IHVzZVNlbGVjdCB9IGZyb20gJ0B3b3JkcHJlc3MvZGF0YSc7XG5cbmltcG9ydCB7XG5cdEZyYWdtZW50LFxuXHR1c2VTdGF0ZVxufSBmcm9tICdAd29yZHByZXNzL2VsZW1lbnQnO1xuXG4vKipcbiAqIEludGVybmFsIGRlcGVuZGVuY2llc1xuICovXG5pbXBvcnQgQ29sb3JCYXNlQ29udHJvbCBmcm9tICcuLi8uLi9jb21wb25lbnRzL2NvbG9yLWJhc2UtY29udHJvbC9pbmRleC5qcyc7XG5pbXBvcnQgR29vZ2xlRm9udHNDb250cm9sIGZyb20gJy4uLy4uL2NvbXBvbmVudHMvZ29vZ2xlLWZvbnRzLWNvbnRyb2wvaW5kZXguanMnO1xuaW1wb3J0IENvbnRyb2xQYW5lbENvbnRyb2wgZnJvbSAnLi4vLi4vY29tcG9uZW50cy9jb250cm9sLXBhbmVsLWNvbnRyb2wvaW5kZXguanMnO1xuaW1wb3J0IFJlc3BvbnNpdmVDb250cm9sIGZyb20gJy4uLy4uL2NvbXBvbmVudHMvcmVzcG9uc2l2ZS1jb250cm9sL2luZGV4LmpzJztcbmltcG9ydCBTaXppbmdDb250cm9sIGZyb20gJy4uLy4uL2NvbXBvbmVudHMvc2l6aW5nLWNvbnRyb2wvaW5kZXguanMnO1xuaW1wb3J0IEhUTUxBbmNob3JDb250cm9sIGZyb20gJy4uLy4uL2NvbXBvbmVudHMvaHRtbC1hbmNob3ItY29udHJvbC9pbmRleC5qcyc7XG5cbmNvbnN0IEluc3BlY3RvciA9ICh7XG5cdGF0dHJpYnV0ZXMsXG5cdHNldEF0dHJpYnV0ZXMsXG5cdGNoYW5nZUZvbnRGYW1pbHksXG5cdGNoYW5nZUZvbnRWYXJpYW50LFxuXHRjaGFuZ2VGb250U3R5bGUsXG5cdGNoYW5nZVRleHRUcmFuc2Zvcm0sXG5cdGNoYW5nZUxpbmVIZWlnaHQsXG5cdGNoYW5nZUxldHRlclNwYWNpbmdcbn0pID0+IHtcblx0Y29uc3QgZ2V0VmlldyA9IHVzZVNlbGVjdCggc2VsZWN0ID0+IHtcblx0XHRjb25zdCB7IGdldFZpZXcgfSA9IHNlbGVjdCggJ3RoZW1laXNsZS1ndXRlbmJlcmcvZGF0YScgKTtcblx0XHRjb25zdCB7IF9fZXhwZXJpbWVudGFsR2V0UHJldmlld0RldmljZVR5cGUgfSA9IHNlbGVjdCggJ2NvcmUvZWRpdC1wb3N0JyApID8gc2VsZWN0KCAnY29yZS9lZGl0LXBvc3QnICkgOiBmYWxzZTtcblxuXHRcdHJldHVybiBfX2V4cGVyaW1lbnRhbEdldFByZXZpZXdEZXZpY2VUeXBlID8gX19leHBlcmltZW50YWxHZXRQcmV2aWV3RGV2aWNlVHlwZSgpIDogZ2V0VmlldygpO1xuXHR9LCBbXSk7XG5cblx0Y29uc3QgWyB0YWIsIHNldFRhYiBdID0gdXNlU3RhdGUoICdzdHlsZScgKTtcblxuXHRjb25zdCBjaGFuZ2VIZWFkaW5nQ29sb3IgPSB2YWx1ZSA9PiB7XG5cdFx0c2V0QXR0cmlidXRlcyh7IGhlYWRpbmdDb2xvcjogdmFsdWUgfSk7XG5cdH07XG5cblx0bGV0IGdldEZvbnRTaXplID0gKCkgPT4ge1xuXHRcdGxldCB2YWx1ZTtcblxuXHRcdGlmICggJ0Rlc2t0b3AnID09PSBnZXRWaWV3ICkge1xuXHRcdFx0dmFsdWUgPSBhdHRyaWJ1dGVzLmZvbnRTaXplO1xuXHRcdH1cblxuXHRcdGlmICggJ1RhYmxldCcgPT09IGdldFZpZXcgKSB7XG5cdFx0XHR2YWx1ZSA9IGF0dHJpYnV0ZXMuZm9udFNpemVUYWJsZXQ7XG5cdFx0fVxuXG5cdFx0aWYgKCAnTW9iaWxlJyA9PT0gZ2V0VmlldyApIHtcblx0XHRcdHZhbHVlID0gYXR0cmlidXRlcy5mb250U2l6ZU1vYmlsZTtcblx0XHR9XG5cblx0XHRyZXR1cm4gdmFsdWU7XG5cdH07XG5cblx0Z2V0Rm9udFNpemUgPSBnZXRGb250U2l6ZSgpO1xuXG5cdGNvbnN0IGNoYW5nZUZvbnRTaXplID0gdmFsdWUgPT4ge1xuXHRcdGlmICggJ0Rlc2t0b3AnID09PSBnZXRWaWV3ICkge1xuXHRcdFx0c2V0QXR0cmlidXRlcyh7IGZvbnRTaXplOiB2YWx1ZSB9KTtcblx0XHR9XG5cblx0XHRpZiAoICdUYWJsZXQnID09PSBnZXRWaWV3ICkge1xuXHRcdFx0c2V0QXR0cmlidXRlcyh7IGZvbnRTaXplVGFibGV0OiB2YWx1ZSB9KTtcblx0XHR9XG5cblx0XHRpZiAoICdNb2JpbGUnID09PSBnZXRWaWV3ICkge1xuXHRcdFx0c2V0QXR0cmlidXRlcyh7IGZvbnRTaXplTW9iaWxlOiB2YWx1ZSB9KTtcblx0XHR9XG5cdH07XG5cblx0bGV0IGdldEFsaWdubWVudCA9ICgpID0+IHtcblx0XHRsZXQgdmFsdWU7XG5cblx0XHRpZiAoICdEZXNrdG9wJyA9PT0gZ2V0VmlldyApIHtcblx0XHRcdHZhbHVlID0gYXR0cmlidXRlcy5hbGlnbjtcblx0XHR9XG5cblx0XHRpZiAoICdUYWJsZXQnID09PSBnZXRWaWV3ICkge1xuXHRcdFx0dmFsdWUgPSBhdHRyaWJ1dGVzLmFsaWduVGFibGV0O1xuXHRcdH1cblxuXHRcdGlmICggJ01vYmlsZScgPT09IGdldFZpZXcgKSB7XG5cdFx0XHR2YWx1ZSA9IGF0dHJpYnV0ZXMuYWxpZ25Nb2JpbGU7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHZhbHVlO1xuXHR9O1xuXG5cdGdldEFsaWdubWVudCA9IGdldEFsaWdubWVudCgpO1xuXG5cdGNvbnN0IGNoYW5nZUFsaWdubWVudCA9IHZhbHVlID0+IHtcblx0XHRpZiAoICdEZXNrdG9wJyA9PT0gZ2V0VmlldyApIHtcblx0XHRcdHNldEF0dHJpYnV0ZXMoeyBhbGlnbjogdmFsdWUgfSk7XG5cdFx0fVxuXG5cdFx0aWYgKCAnVGFibGV0JyA9PT0gZ2V0VmlldyApIHtcblx0XHRcdHNldEF0dHJpYnV0ZXMoeyBhbGlnblRhYmxldDogdmFsdWUgfSk7XG5cdFx0fVxuXG5cdFx0aWYgKCAnTW9iaWxlJyA9PT0gZ2V0VmlldyApIHtcblx0XHRcdHNldEF0dHJpYnV0ZXMoeyBhbGlnbk1vYmlsZTogdmFsdWUgfSk7XG5cdFx0fVxuXHR9O1xuXG5cdGNvbnN0IGNoYW5nZVRleHRTaGFkb3dDb2xvciA9IHZhbHVlID0+IHtcblx0XHRzZXRBdHRyaWJ1dGVzKHsgdGV4dFNoYWRvd0NvbG9yOiB2YWx1ZSB9KTtcblx0fTtcblxuXHRjb25zdCBjaGFuZ2VUZXh0U2hhZG93ID0gdmFsdWUgPT4ge1xuXHRcdHNldEF0dHJpYnV0ZXMoeyB0ZXh0U2hhZG93OiB2YWx1ZSB9KTtcblx0fTtcblxuXHRjb25zdCBjaGFuZ2VUZXh0U2hhZG93Q29sb3JPcGFjaXR5ID0gdmFsdWUgPT4ge1xuXHRcdHNldEF0dHJpYnV0ZXMoeyB0ZXh0U2hhZG93Q29sb3JPcGFjaXR5OiB2YWx1ZSB9KTtcblx0fTtcblxuXHRjb25zdCBjaGFuZ2VUZXh0U2hhZG93Qmx1ciA9IHZhbHVlID0+IHtcblx0XHRzZXRBdHRyaWJ1dGVzKHsgdGV4dFNoYWRvd0JsdXI6IHZhbHVlIH0pO1xuXHR9O1xuXG5cdGNvbnN0IGNoYW5nZVRleHRTaGFkb3dIb3Jpem9udGFsID0gdmFsdWUgPT4ge1xuXHRcdHNldEF0dHJpYnV0ZXMoeyB0ZXh0U2hhZG93SG9yaXpvbnRhbDogdmFsdWUgfSk7XG5cdH07XG5cblx0Y29uc3QgY2hhbmdlVGV4dFNoYWRvd1ZlcnRpY2FsID0gdmFsdWUgPT4ge1xuXHRcdHNldEF0dHJpYnV0ZXMoeyB0ZXh0U2hhZG93VmVydGljYWw6IHZhbHVlIH0pO1xuXHR9O1xuXG5cdGNvbnN0IGNoYW5nZUhpZ2hsaWdodENvbG9yID0gdmFsdWUgPT4ge1xuXHRcdHNldEF0dHJpYnV0ZXMoeyBoaWdobGlnaHRDb2xvcjogdmFsdWUgfSk7XG5cdH07XG5cblx0Y29uc3QgY2hhbmdlSGlnaGxpZ2h0QmFja2dyb3VuZCA9IHZhbHVlID0+IHtcblx0XHRzZXRBdHRyaWJ1dGVzKHsgaGlnaGxpZ2h0QmFja2dyb3VuZDogdmFsdWUgfSk7XG5cdH07XG5cblx0bGV0IGdldFBhZGRpbmdUeXBlID0gKCkgPT4ge1xuXHRcdGxldCB2YWx1ZTtcblxuXHRcdGlmICggJ0Rlc2t0b3AnID09PSBnZXRWaWV3ICkge1xuXHRcdFx0dmFsdWUgPSBhdHRyaWJ1dGVzLnBhZGRpbmdUeXBlO1xuXHRcdH1cblx0XHRpZiAoICdUYWJsZXQnID09PSBnZXRWaWV3ICkge1xuXHRcdFx0dmFsdWUgPSBhdHRyaWJ1dGVzLnBhZGRpbmdUeXBlVGFibGV0O1xuXHRcdH1cblx0XHRpZiAoICdNb2JpbGUnID09PSBnZXRWaWV3ICkge1xuXHRcdFx0dmFsdWUgPSBhdHRyaWJ1dGVzLnBhZGRpbmdUeXBlTW9iaWxlO1xuXHRcdH1cblxuXHRcdHJldHVybiB2YWx1ZTtcblx0fTtcblxuXHRnZXRQYWRkaW5nVHlwZSA9IGdldFBhZGRpbmdUeXBlKCk7XG5cblx0Y29uc3QgY2hhbmdlUGFkZGluZ1R5cGUgPSB2YWx1ZSA9PiB7XG5cdFx0aWYgKCAnRGVza3RvcCcgPT09IGdldFZpZXcgKSB7XG5cdFx0XHRzZXRBdHRyaWJ1dGVzKHsgcGFkZGluZ1R5cGU6IHZhbHVlIH0pO1xuXHRcdH1cblx0XHRpZiAoICdUYWJsZXQnID09PSBnZXRWaWV3ICkge1xuXHRcdFx0c2V0QXR0cmlidXRlcyh7IHBhZGRpbmdUeXBlVGFibGV0OiB2YWx1ZSB9KTtcblx0XHR9XG5cdFx0aWYgKCAnTW9iaWxlJyA9PT0gZ2V0VmlldyApIHtcblx0XHRcdHNldEF0dHJpYnV0ZXMoeyBwYWRkaW5nVHlwZU1vYmlsZTogdmFsdWUgfSk7XG5cdFx0fVxuXHR9O1xuXG5cdGNvbnN0IGRlc2t0b3BQYWRkaW5nVHlwZSA9IHtcblx0XHR0b3A6ICdwYWRkaW5nVG9wJyxcblx0XHRyaWdodDogJ3BhZGRpbmdSaWdodCcsXG5cdFx0Ym90dG9tOiAncGFkZGluZ0JvdHRvbScsXG5cdFx0bGVmdDogJ3BhZGRpbmdMZWZ0J1xuXHR9O1xuXG5cdGNvbnN0IHRhYmxldFBhZGRpbmdUeXBlID0ge1xuXHRcdHRvcDogJ3BhZGRpbmdUb3BUYWJsZXQnLFxuXHRcdHJpZ2h0OiAncGFkZGluZ1JpZ2h0VGFibGV0Jyxcblx0XHRib3R0b206ICdwYWRkaW5nQm90dG9tVGFibGV0Jyxcblx0XHRsZWZ0OiAncGFkZGluZ0xlZnRUYWJsZXQnXG5cdH07XG5cblx0Y29uc3QgbW9iaWxlUGFkZGluZ1R5cGUgPSB7XG5cdFx0dG9wOiAncGFkZGluZ1RvcE1vYmlsZScsXG5cdFx0cmlnaHQ6ICdwYWRkaW5nUmlnaHRNb2JpbGUnLFxuXHRcdGJvdHRvbTogJ3BhZGRpbmdCb3R0b21Nb2JpbGUnLFxuXHRcdGxlZnQ6ICdwYWRkaW5nTGVmdE1vYmlsZSdcblx0fTtcblxuXHRjb25zdCBjaGFuZ2VQYWRkaW5nID0gKCB0eXBlLCB2YWx1ZSApID0+IHtcblx0XHRpZiAoICdEZXNrdG9wJyA9PT0gZ2V0VmlldyApIHtcblx0XHRcdGlmICggJ2xpbmtlZCcgPT09IGF0dHJpYnV0ZXMucGFkZGluZ1R5cGUgKSB7XG5cdFx0XHRcdHNldEF0dHJpYnV0ZXMoeyBwYWRkaW5nOiB2YWx1ZSB9KTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHNldEF0dHJpYnV0ZXMoeyBbZGVza3RvcFBhZGRpbmdUeXBlW3R5cGVdXTogdmFsdWUgfSk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0aWYgKCAnVGFibGV0JyA9PT0gZ2V0VmlldyApIHtcblx0XHRcdGlmICggJ2xpbmtlZCcgPT09IGF0dHJpYnV0ZXMucGFkZGluZ1R5cGVUYWJsZXQgKSB7XG5cdFx0XHRcdHNldEF0dHJpYnV0ZXMoeyBwYWRkaW5nVGFibGV0OiB2YWx1ZSB9KTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHNldEF0dHJpYnV0ZXMoeyBbdGFibGV0UGFkZGluZ1R5cGVbdHlwZV1dOiB2YWx1ZSB9KTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRpZiAoICdNb2JpbGUnID09PSBnZXRWaWV3ICkge1xuXHRcdFx0aWYgKCAnbGlua2VkJyA9PT0gYXR0cmlidXRlcy5wYWRkaW5nVHlwZU1vYmlsZSApIHtcblx0XHRcdFx0c2V0QXR0cmlidXRlcyh7IHBhZGRpbmdNb2JpbGU6IHZhbHVlIH0pO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0c2V0QXR0cmlidXRlcyh7IFttb2JpbGVQYWRkaW5nVHlwZVt0eXBlXV06IHZhbHVlIH0pO1xuXHRcdFx0fVxuXHRcdH1cblx0fTtcblxuXHRjb25zdCBnZXRQYWRkaW5nID0gdHlwZSA9PiB7XG5cdFx0bGV0IHZhbHVlO1xuXG5cdFx0aWYgKCAndG9wJyA9PSB0eXBlICkge1xuXHRcdFx0aWYgKCAnRGVza3RvcCcgPT09IGdldFZpZXcgKSB7XG5cdFx0XHRcdHZhbHVlID0gJ2xpbmtlZCcgPT09IGF0dHJpYnV0ZXMucGFkZGluZ1R5cGUgPyBhdHRyaWJ1dGVzLnBhZGRpbmcgOiBhdHRyaWJ1dGVzLnBhZGRpbmdUb3A7XG5cdFx0XHR9XG5cblx0XHRcdGlmICggJ1RhYmxldCcgPT09IGdldFZpZXcgKSB7XG5cdFx0XHRcdHZhbHVlID0gJ2xpbmtlZCcgPT09IGF0dHJpYnV0ZXMucGFkZGluZ1R5cGVUYWJsZXQgPyBhdHRyaWJ1dGVzLnBhZGRpbmdUYWJsZXQgOiBhdHRyaWJ1dGVzLnBhZGRpbmdUb3BUYWJsZXQ7XG5cdFx0XHR9XG5cblx0XHRcdGlmICggJ01vYmlsZScgPT09IGdldFZpZXcgKSB7XG5cdFx0XHRcdHZhbHVlID0gJ2xpbmtlZCcgPT09IGF0dHJpYnV0ZXMucGFkZGluZ1R5cGVNb2JpbGUgPyBhdHRyaWJ1dGVzLnBhZGRpbmdNb2JpbGUgOiBhdHRyaWJ1dGVzLnBhZGRpbmdUb3BNb2JpbGU7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0aWYgKCAncmlnaHQnID09IHR5cGUgKSB7XG5cdFx0XHRpZiAoICdEZXNrdG9wJyA9PT0gZ2V0VmlldyApIHtcblx0XHRcdFx0dmFsdWUgPSAnbGlua2VkJyA9PT0gYXR0cmlidXRlcy5wYWRkaW5nVHlwZSA/IGF0dHJpYnV0ZXMucGFkZGluZyA6IGF0dHJpYnV0ZXMucGFkZGluZ1JpZ2h0O1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAoICdUYWJsZXQnID09PSBnZXRWaWV3ICkge1xuXHRcdFx0XHR2YWx1ZSA9ICdsaW5rZWQnID09PSBhdHRyaWJ1dGVzLnBhZGRpbmdUeXBlVGFibGV0ID8gYXR0cmlidXRlcy5wYWRkaW5nVGFibGV0IDogYXR0cmlidXRlcy5wYWRkaW5nUmlnaHRUYWJsZXQ7XG5cdFx0XHR9XG5cblx0XHRcdGlmICggJ01vYmlsZScgPT09IGdldFZpZXcgKSB7XG5cdFx0XHRcdHZhbHVlID0gJ2xpbmtlZCcgPT09IGF0dHJpYnV0ZXMucGFkZGluZ1R5cGVNb2JpbGUgPyBhdHRyaWJ1dGVzLnBhZGRpbmdNb2JpbGUgOiBhdHRyaWJ1dGVzLnBhZGRpbmdSaWdodE1vYmlsZTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRpZiAoICdib3R0b20nID09IHR5cGUgKSB7XG5cdFx0XHRpZiAoICdEZXNrdG9wJyA9PT0gZ2V0VmlldyApIHtcblx0XHRcdFx0dmFsdWUgPSAnbGlua2VkJyA9PT0gYXR0cmlidXRlcy5wYWRkaW5nVHlwZSA/IGF0dHJpYnV0ZXMucGFkZGluZyA6IGF0dHJpYnV0ZXMucGFkZGluZ0JvdHRvbTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKCAnVGFibGV0JyA9PT0gZ2V0VmlldyApIHtcblx0XHRcdFx0dmFsdWUgPSAnbGlua2VkJyA9PT0gYXR0cmlidXRlcy5wYWRkaW5nVHlwZVRhYmxldCA/IGF0dHJpYnV0ZXMucGFkZGluZ1RhYmxldCA6IGF0dHJpYnV0ZXMucGFkZGluZ0JvdHRvbVRhYmxldDtcblx0XHRcdH1cblxuXHRcdFx0aWYgKCAnTW9iaWxlJyA9PT0gZ2V0VmlldyApIHtcblx0XHRcdFx0dmFsdWUgPSAnbGlua2VkJyA9PT0gYXR0cmlidXRlcy5wYWRkaW5nVHlwZU1vYmlsZSA/IGF0dHJpYnV0ZXMucGFkZGluZ01vYmlsZSA6IGF0dHJpYnV0ZXMucGFkZGluZ0JvdHRvbU1vYmlsZTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRpZiAoICdsZWZ0JyA9PSB0eXBlICkge1xuXHRcdFx0aWYgKCAnRGVza3RvcCcgPT09IGdldFZpZXcgKSB7XG5cdFx0XHRcdHZhbHVlID0gJ2xpbmtlZCcgPT09IGF0dHJpYnV0ZXMucGFkZGluZ1R5cGUgPyBhdHRyaWJ1dGVzLnBhZGRpbmcgOiBhdHRyaWJ1dGVzLnBhZGRpbmdMZWZ0O1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAoICdUYWJsZXQnID09PSBnZXRWaWV3ICkge1xuXHRcdFx0XHR2YWx1ZSA9ICdsaW5rZWQnID09PSBhdHRyaWJ1dGVzLnBhZGRpbmdUeXBlVGFibGV0ID8gYXR0cmlidXRlcy5wYWRkaW5nVGFibGV0IDogYXR0cmlidXRlcy5wYWRkaW5nTGVmdFRhYmxldDtcblx0XHRcdH1cblxuXHRcdFx0aWYgKCAnTW9iaWxlJyA9PT0gZ2V0VmlldyApIHtcblx0XHRcdFx0dmFsdWUgPSAnbGlua2VkJyA9PT0gYXR0cmlidXRlcy5wYWRkaW5nVHlwZU1vYmlsZSA/IGF0dHJpYnV0ZXMucGFkZGluZ01vYmlsZSA6IGF0dHJpYnV0ZXMucGFkZGluZ0xlZnRNb2JpbGU7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHZhbHVlO1xuXHR9O1xuXG5cdGxldCBnZXRNYXJnaW5UeXBlID0gKCkgPT4ge1xuXHRcdGxldCB2YWx1ZTtcblxuXHRcdGlmICggJ0Rlc2t0b3AnID09PSBnZXRWaWV3ICkge1xuXHRcdFx0dmFsdWUgPSBhdHRyaWJ1dGVzLm1hcmdpblR5cGU7XG5cdFx0fVxuXHRcdGlmICggJ1RhYmxldCcgPT09IGdldFZpZXcgKSB7XG5cdFx0XHR2YWx1ZSA9IGF0dHJpYnV0ZXMubWFyZ2luVHlwZVRhYmxldDtcblx0XHR9XG5cdFx0aWYgKCAnTW9iaWxlJyA9PT0gZ2V0VmlldyApIHtcblx0XHRcdHZhbHVlID0gYXR0cmlidXRlcy5tYXJnaW5UeXBlTW9iaWxlO1xuXHRcdH1cblxuXHRcdHJldHVybiB2YWx1ZTtcblx0fTtcblxuXHRnZXRNYXJnaW5UeXBlID0gZ2V0TWFyZ2luVHlwZSgpO1xuXG5cdGNvbnN0IGNoYW5nZU1hcmdpblR5cGUgPSB2YWx1ZSA9PiB7XG5cdFx0aWYgKCAnRGVza3RvcCcgPT09IGdldFZpZXcgKSB7XG5cdFx0XHRzZXRBdHRyaWJ1dGVzKHsgbWFyZ2luVHlwZTogdmFsdWUgfSk7XG5cdFx0fVxuXHRcdGlmICggJ1RhYmxldCcgPT09IGdldFZpZXcgKSB7XG5cdFx0XHRzZXRBdHRyaWJ1dGVzKHsgbWFyZ2luVHlwZVRhYmxldDogdmFsdWUgfSk7XG5cdFx0fVxuXHRcdGlmICggJ01vYmlsZScgPT09IGdldFZpZXcgKSB7XG5cdFx0XHRzZXRBdHRyaWJ1dGVzKHsgbWFyZ2luVHlwZU1vYmlsZTogdmFsdWUgfSk7XG5cdFx0fVxuXHR9O1xuXG5cdGNvbnN0IGRlc2t0b3BNYXJnaW5UeXBlID0ge1xuXHRcdHRvcDogJ21hcmdpblRvcCcsXG5cdFx0Ym90dG9tOiAnbWFyZ2luQm90dG9tJ1xuXHR9O1xuXG5cdGNvbnN0IHRhYmxldE1hcmdpblR5cGUgPSB7XG5cdFx0dG9wOiAnbWFyZ2luVG9wVGFibGV0Jyxcblx0XHRib3R0b206ICdtYXJnaW5Cb3R0b21UYWJsZXQnXG5cdH07XG5cblx0Y29uc3QgbW9iaWxlTWFyZ2luVHlwZSA9IHtcblx0XHR0b3A6ICdtYXJnaW5Ub3BNb2JpbGUnLFxuXHRcdGJvdHRvbTogJ21hcmdpbkJvdHRvbU1vYmlsZSdcblx0fTtcblxuXHRjb25zdCBjaGFuZ2VNYXJnaW4gPSAoIHR5cGUsIHZhbHVlICkgPT4ge1xuXHRcdGlmICggJ0Rlc2t0b3AnID09PSBnZXRWaWV3ICkge1xuXHRcdFx0aWYgKCAnbGlua2VkJyA9PT0gYXR0cmlidXRlcy5tYXJnaW5UeXBlICkge1xuXHRcdFx0XHRzZXRBdHRyaWJ1dGVzKHsgbWFyZ2luOiB2YWx1ZSB9KTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHNldEF0dHJpYnV0ZXMoeyBbZGVza3RvcE1hcmdpblR5cGVbdHlwZV1dOiB2YWx1ZSB9KTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRpZiAoICdUYWJsZXQnID09PSBnZXRWaWV3ICkge1xuXHRcdFx0aWYgKCAnbGlua2VkJyA9PT0gYXR0cmlidXRlcy5tYXJnaW5UeXBlVGFibGV0ICkge1xuXHRcdFx0XHRzZXRBdHRyaWJ1dGVzKHsgbWFyZ2luVGFibGV0OiB2YWx1ZSB9KTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHNldEF0dHJpYnV0ZXMoeyBbdGFibGV0TWFyZ2luVHlwZVt0eXBlXV06IHZhbHVlIH0pO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGlmICggJ01vYmlsZScgPT09IGdldFZpZXcgKSB7XG5cdFx0XHRpZiAoICdsaW5rZWQnID09PSBhdHRyaWJ1dGVzLm1hcmdpblR5cGVNb2JpbGUgKSB7XG5cdFx0XHRcdHNldEF0dHJpYnV0ZXMoeyBtYXJnaW5Nb2JpbGU6IHZhbHVlIH0pO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0c2V0QXR0cmlidXRlcyh7IFttb2JpbGVNYXJnaW5UeXBlW3R5cGVdXTogdmFsdWUgfSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9O1xuXG5cdGNvbnN0IGdldE1hcmdpbiA9IHR5cGUgPT4ge1xuXHRcdGxldCB2YWx1ZTtcblxuXHRcdGlmICggJ3RvcCcgPT0gdHlwZSApIHtcblx0XHRcdGlmICggJ0Rlc2t0b3AnID09PSBnZXRWaWV3ICkge1xuXHRcdFx0XHR2YWx1ZSA9ICdsaW5rZWQnID09PSBhdHRyaWJ1dGVzLm1hcmdpblR5cGUgPyBhdHRyaWJ1dGVzLm1hcmdpbiA6IGF0dHJpYnV0ZXMubWFyZ2luVG9wO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAoICdUYWJsZXQnID09PSBnZXRWaWV3ICkge1xuXHRcdFx0XHR2YWx1ZSA9ICdsaW5rZWQnID09PSBhdHRyaWJ1dGVzLm1hcmdpblR5cGVUYWJsZXQgPyBhdHRyaWJ1dGVzLm1hcmdpblRhYmxldCA6IGF0dHJpYnV0ZXMubWFyZ2luVG9wVGFibGV0O1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAoICdNb2JpbGUnID09PSBnZXRWaWV3ICkge1xuXHRcdFx0XHR2YWx1ZSA9ICdsaW5rZWQnID09PSBhdHRyaWJ1dGVzLm1hcmdpblR5cGVNb2JpbGUgPyBhdHRyaWJ1dGVzLm1hcmdpbk1vYmlsZSA6IGF0dHJpYnV0ZXMubWFyZ2luVG9wTW9iaWxlO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGlmICggJ2JvdHRvbScgPT0gdHlwZSApIHtcblx0XHRcdGlmICggJ0Rlc2t0b3AnID09PSBnZXRWaWV3ICkge1xuXHRcdFx0XHR2YWx1ZSA9ICdsaW5rZWQnID09PSBhdHRyaWJ1dGVzLm1hcmdpblR5cGUgPyBhdHRyaWJ1dGVzLm1hcmdpbiA6IGF0dHJpYnV0ZXMubWFyZ2luQm90dG9tO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAoICdUYWJsZXQnID09PSBnZXRWaWV3ICkge1xuXHRcdFx0XHR2YWx1ZSA9ICdsaW5rZWQnID09PSBhdHRyaWJ1dGVzLm1hcmdpblR5cGVUYWJsZXQgPyBhdHRyaWJ1dGVzLm1hcmdpblRhYmxldCA6IGF0dHJpYnV0ZXMubWFyZ2luQm90dG9tVGFibGV0O1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAoICdNb2JpbGUnID09PSBnZXRWaWV3ICkge1xuXHRcdFx0XHR2YWx1ZSA9ICdsaW5rZWQnID09PSBhdHRyaWJ1dGVzLm1hcmdpblR5cGVNb2JpbGUgPyBhdHRyaWJ1dGVzLm1hcmdpbk1vYmlsZSA6IGF0dHJpYnV0ZXMubWFyZ2luQm90dG9tTW9iaWxlO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiB2YWx1ZTtcblx0fTtcblxuXHRjb25zdCBjaGFuZ2VJRCA9IHZhbHVlID0+IHtcblx0XHRzZXRBdHRyaWJ1dGVzKHsgaWQ6IHZhbHVlIH0pO1xuXHR9O1xuXG5cdHJldHVybiAoXG5cdFx0PEZyYWdtZW50PlxuXHRcdFx0PEluc3BlY3RvckNvbnRyb2xzPlxuXHRcdFx0XHQ8UGFuZWxCb2R5IGNsYXNzTmFtZT1cIndwLWJsb2NrLXRoZW1laXNsZS1ibG9ja3MtYWR2YW5jZWQtaGVhZGluZy1oZWFkZXItcGFuZWxcIj5cblx0XHRcdFx0XHQ8QnV0dG9uXG5cdFx0XHRcdFx0XHRjbGFzc05hbWU9eyBjbGFzc25hbWVzKFxuXHRcdFx0XHRcdFx0XHQnaGVhZGVyLXRhYicsXG5cdFx0XHRcdFx0XHRcdHsgJ2lzLXNlbGVjdGVkJzogJ3N0eWxlJyA9PT0gdGFiIH1cblx0XHRcdFx0XHRcdCkgfVxuXHRcdFx0XHRcdFx0b25DbGljaz17ICgpID0+IHNldFRhYiggJ3N0eWxlJyApIH1cblx0XHRcdFx0XHQ+XG5cdFx0XHRcdFx0XHQ8c3Bhbj5cblx0XHRcdFx0XHRcdFx0PERhc2hpY29uIGljb249XCJhZG1pbi1jdXN0b21pemVyXCIvPlxuXHRcdFx0XHRcdFx0XHR7IF9fKCAnU3R5bGUnLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdFx0XHRcdDwvc3Bhbj5cblx0XHRcdFx0XHQ8L0J1dHRvbj5cblxuXHRcdFx0XHRcdDxCdXR0b25cblx0XHRcdFx0XHRcdGNsYXNzTmFtZT17IGNsYXNzbmFtZXMoXG5cdFx0XHRcdFx0XHRcdCdoZWFkZXItdGFiJyxcblx0XHRcdFx0XHRcdFx0eyAnaXMtc2VsZWN0ZWQnOiAnYWR2YW5jZWQnID09PSB0YWIgfVxuXHRcdFx0XHRcdFx0KSB9XG5cdFx0XHRcdFx0XHRvbkNsaWNrPXsgKCkgPT4gc2V0VGFiKCAnYWR2YW5jZWQnICkgfVxuXHRcdFx0XHRcdD5cblx0XHRcdFx0XHRcdDxzcGFuPlxuXHRcdFx0XHRcdFx0XHQ8RGFzaGljb24gaWNvbj1cImFkbWluLWdlbmVyaWNcIi8+XG5cdFx0XHRcdFx0XHRcdHsgX18oICdBZHZhbmNlZCcsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHRcdFx0PC9zcGFuPlxuXHRcdFx0XHRcdDwvQnV0dG9uPlxuXHRcdFx0XHQ8L1BhbmVsQm9keT5cblxuXHRcdFx0XHR7ICdzdHlsZScgPT09IHRhYiAmJiAoXG5cblx0XHRcdFx0XHQ8RnJhZ21lbnQ+XG5cdFx0XHRcdFx0XHQ8UGFuZWxCb2R5XG5cdFx0XHRcdFx0XHRcdHRpdGxlPXsgX18oICdHZW5lcmFsIFNldHRpbmdzJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdFx0XHQ+XG5cdFx0XHRcdFx0XHRcdDxDb2xvckJhc2VDb250cm9sXG5cdFx0XHRcdFx0XHRcdFx0bGFiZWw9eyBfXyggJ0hlYWRpbmcgQ29sb3InLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdFx0XHRcdFx0XHRjb2xvclZhbHVlPXsgYXR0cmlidXRlcy5oZWFkaW5nQ29sb3IgfVxuXHRcdFx0XHRcdFx0XHQ+XG5cdFx0XHRcdFx0XHRcdFx0PENvbG9yUGFsZXR0ZVxuXHRcdFx0XHRcdFx0XHRcdFx0bGFiZWw9eyBfXyggJ0hlYWRpbmcgQ29sb3InLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdFx0XHRcdFx0XHRcdHZhbHVlPXsgYXR0cmlidXRlcy5oZWFkaW5nQ29sb3IgfVxuXHRcdFx0XHRcdFx0XHRcdFx0b25DaGFuZ2U9eyBjaGFuZ2VIZWFkaW5nQ29sb3IgfVxuXHRcdFx0XHRcdFx0XHRcdC8+XG5cdFx0XHRcdFx0XHRcdDwvQ29sb3JCYXNlQ29udHJvbD5cblxuXHRcdFx0XHRcdFx0XHQ8UmVzcG9uc2l2ZUNvbnRyb2xcblx0XHRcdFx0XHRcdFx0XHRsYWJlbD17IF9fKCAnRm9udCBTaXplJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdFx0XHRcdD5cblx0XHRcdFx0XHRcdFx0XHQ8UmFuZ2VDb250cm9sXG5cdFx0XHRcdFx0XHRcdFx0XHR2YWx1ZT17IGdldEZvbnRTaXplIHx8ICcnIH1cblx0XHRcdFx0XHRcdFx0XHRcdG9uQ2hhbmdlPXsgY2hhbmdlRm9udFNpemUgfVxuXHRcdFx0XHRcdFx0XHRcdFx0bWluPXsgMSB9XG5cdFx0XHRcdFx0XHRcdFx0XHRtYXg9eyA1MDAgfVxuXHRcdFx0XHRcdFx0XHRcdC8+XG5cdFx0XHRcdFx0XHRcdDwvUmVzcG9uc2l2ZUNvbnRyb2w+XG5cblx0XHRcdFx0XHRcdFx0PFJlc3BvbnNpdmVDb250cm9sXG5cdFx0XHRcdFx0XHRcdFx0bGFiZWw9eyBfXyggJ0FsaWdubWVudCcsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHRcdFx0XHQ+XG5cdFx0XHRcdFx0XHRcdFx0PEFsaWdubWVudFRvb2xiYXJcblx0XHRcdFx0XHRcdFx0XHRcdHZhbHVlPXsgZ2V0QWxpZ25tZW50IH1cblx0XHRcdFx0XHRcdFx0XHRcdG9uQ2hhbmdlPXsgY2hhbmdlQWxpZ25tZW50IH1cblx0XHRcdFx0XHRcdFx0XHRcdGlzQ29sbGFwc2VkPXsgZmFsc2UgfVxuXHRcdFx0XHRcdFx0XHRcdC8+XG5cdFx0XHRcdFx0XHRcdDwvUmVzcG9uc2l2ZUNvbnRyb2w+XG5cdFx0XHRcdFx0XHQ8L1BhbmVsQm9keT5cblxuXHRcdFx0XHRcdFx0PFBhbmVsQm9keVxuXHRcdFx0XHRcdFx0XHR0aXRsZT17IF9fKCAnVHlwb2dyYXBoeSBTZXR0aW5ncycsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHRcdFx0XHRpbml0aWFsT3Blbj17IGZhbHNlIH1cblx0XHRcdFx0XHRcdD5cblx0XHRcdFx0XHRcdFx0PEdvb2dsZUZvbnRzQ29udHJvbFxuXHRcdFx0XHRcdFx0XHRcdGxhYmVsPXsgX18oICdGb250IEZhbWlseScsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHRcdFx0XHRcdHZhbHVlPXsgYXR0cmlidXRlcy5mb250RmFtaWx5IH1cblx0XHRcdFx0XHRcdFx0XHRvbkNoYW5nZUZvbnRGYW1pbHk9eyBjaGFuZ2VGb250RmFtaWx5IH1cblx0XHRcdFx0XHRcdFx0XHR2YWx1ZVZhcmlhbnQ9eyBhdHRyaWJ1dGVzLmZvbnRWYXJpYW50IH1cblx0XHRcdFx0XHRcdFx0XHRvbkNoYW5nZUZvbnRWYXJpYW50PXsgY2hhbmdlRm9udFZhcmlhbnQgfVxuXHRcdFx0XHRcdFx0XHRcdHZhbHVlU3R5bGU9eyBhdHRyaWJ1dGVzLmZvbnRTdHlsZSB9XG5cdFx0XHRcdFx0XHRcdFx0b25DaGFuZ2VGb250U3R5bGU9eyBjaGFuZ2VGb250U3R5bGUgfVxuXHRcdFx0XHRcdFx0XHRcdHZhbHVlVHJhbnNmb3JtPXsgYXR0cmlidXRlcy50ZXh0VHJhbnNmb3JtIH1cblx0XHRcdFx0XHRcdFx0XHRvbkNoYW5nZVRleHRUcmFuc2Zvcm09eyBjaGFuZ2VUZXh0VHJhbnNmb3JtIH1cblx0XHRcdFx0XHRcdFx0Lz5cblxuXHRcdFx0XHRcdFx0XHQ8UmFuZ2VDb250cm9sXG5cdFx0XHRcdFx0XHRcdFx0bGFiZWw9eyBfXyggJ0xpbmUgSGVpZ2h0JywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdFx0XHRcdFx0dmFsdWU9eyBhdHRyaWJ1dGVzLmxpbmVIZWlnaHQgfVxuXHRcdFx0XHRcdFx0XHRcdG9uQ2hhbmdlPXsgY2hhbmdlTGluZUhlaWdodCB9XG5cdFx0XHRcdFx0XHRcdFx0bWluPXsgMCB9XG5cdFx0XHRcdFx0XHRcdFx0c3RlcD17IDAuMSB9XG5cdFx0XHRcdFx0XHRcdFx0bWF4PXsgMyB9XG5cdFx0XHRcdFx0XHRcdC8+XG5cblx0XHRcdFx0XHRcdFx0PFJhbmdlQ29udHJvbFxuXHRcdFx0XHRcdFx0XHRcdGxhYmVsPXsgX18oICdMZXR0ZXIgU3BhY2luZycsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHRcdFx0XHRcdHZhbHVlPXsgYXR0cmlidXRlcy5sZXR0ZXJTcGFjaW5nIH1cblx0XHRcdFx0XHRcdFx0XHRvbkNoYW5nZT17IGNoYW5nZUxldHRlclNwYWNpbmcgfVxuXHRcdFx0XHRcdFx0XHRcdG1pbj17IC01MCB9XG5cdFx0XHRcdFx0XHRcdFx0bWF4PXsgMTAwIH1cblx0XHRcdFx0XHRcdFx0Lz5cblxuXHRcdFx0XHRcdFx0XHQ8VG9nZ2xlQ29udHJvbFxuXHRcdFx0XHRcdFx0XHRcdGxhYmVsPXsgX18oICdTaGFkb3cgUHJvcGVydGllcycsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHRcdFx0XHRcdGNoZWNrZWQ9eyBhdHRyaWJ1dGVzLnRleHRTaGFkb3cgfVxuXHRcdFx0XHRcdFx0XHRcdG9uQ2hhbmdlPXsgY2hhbmdlVGV4dFNoYWRvdyB9XG5cdFx0XHRcdFx0XHRcdC8+XG5cblx0XHRcdFx0XHRcdFx0eyBhdHRyaWJ1dGVzLnRleHRTaGFkb3cgJiYgKFxuXHRcdFx0XHRcdFx0XHRcdDxGcmFnbWVudD5cblxuXHRcdFx0XHRcdFx0XHRcdFx0PENvbG9yQmFzZUNvbnRyb2xcblx0XHRcdFx0XHRcdFx0XHRcdFx0bGFiZWw9eyBfXyggJ0NvbG9yJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGNvbG9yVmFsdWU9eyBhdHRyaWJ1dGVzLnRleHRTaGFkb3dDb2xvciB9XG5cdFx0XHRcdFx0XHRcdFx0XHQ+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxDb2xvclBhbGV0dGVcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRsYWJlbD17IF9fKCAnQ29sb3InLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR2YWx1ZT17IGF0dHJpYnV0ZXMudGV4dFNoYWRvd0NvbG9yIH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRvbkNoYW5nZT17IGNoYW5nZVRleHRTaGFkb3dDb2xvciB9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdC8+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8L0NvbG9yQmFzZUNvbnRyb2w+XG5cblx0XHRcdFx0XHRcdFx0XHRcdDxDb250cm9sUGFuZWxDb250cm9sXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGxhYmVsPXsgX18oICdTaGFkb3cgUHJvcGVydGllcycsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHRcdFx0XHRcdFx0PlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8UmFuZ2VDb250cm9sXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0bGFiZWw9eyBfXyggJ09wYWNpdHknLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR2YWx1ZT17IGF0dHJpYnV0ZXMudGV4dFNoYWRvd0NvbG9yT3BhY2l0eSB9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0b25DaGFuZ2U9eyBjaGFuZ2VUZXh0U2hhZG93Q29sb3JPcGFjaXR5IH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRtaW49eyAwIH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRtYXg9eyAxMDAgfVxuXHRcdFx0XHRcdFx0XHRcdFx0XHQvPlxuXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxSYW5nZUNvbnRyb2xcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRsYWJlbD17IF9fKCAnQmx1cicsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHZhbHVlPXsgYXR0cmlidXRlcy50ZXh0U2hhZG93Qmx1ciB9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0b25DaGFuZ2U9eyBjaGFuZ2VUZXh0U2hhZG93Qmx1ciB9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0bWluPXsgMCB9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0bWF4PXsgMTAwIH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0Lz5cblxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8UmFuZ2VDb250cm9sXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0bGFiZWw9eyBfXyggJ0hvcml6b250YWwnLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR2YWx1ZT17IGF0dHJpYnV0ZXMudGV4dFNoYWRvd0hvcml6b250YWwgfVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdG9uQ2hhbmdlPXsgY2hhbmdlVGV4dFNoYWRvd0hvcml6b250YWwgfVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdG1pbj17IC0xMDAgfVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdG1heD17IDEwMCB9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdC8+XG5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PFJhbmdlQ29udHJvbFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGxhYmVsPXsgX18oICdWZXJ0aWNhbCcsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHZhbHVlPXsgYXR0cmlidXRlcy50ZXh0U2hhZG93VmVydGljYWwgfVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdG9uQ2hhbmdlPXsgY2hhbmdlVGV4dFNoYWRvd1ZlcnRpY2FsIH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRtaW49eyAtMTAwIH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRtYXg9eyAxMDAgfVxuXHRcdFx0XHRcdFx0XHRcdFx0XHQvPlxuXHRcdFx0XHRcdFx0XHRcdFx0PC9Db250cm9sUGFuZWxDb250cm9sPlxuXG5cdFx0XHRcdFx0XHRcdFx0PC9GcmFnbWVudD5cblx0XHRcdFx0XHRcdFx0KSB9XG5cdFx0XHRcdFx0XHQ8L1BhbmVsQm9keT5cblx0XHRcdFx0XHQ8L0ZyYWdtZW50PlxuXG5cdFx0XHRcdCkgfHwgJ2FkdmFuY2VkJyA9PT0gdGFiICYmIChcblxuXHRcdFx0XHRcdDxGcmFnbWVudD5cblx0XHRcdFx0XHRcdDxQYW5lbEJvZHlcblx0XHRcdFx0XHRcdFx0dGl0bGU9eyBfXyggJ0hpZ2hsaWdodCBDb2xvcicsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHRcdFx0PlxuXHRcdFx0XHRcdFx0XHQ8Q29sb3JCYXNlQ29udHJvbFxuXHRcdFx0XHRcdFx0XHRcdGxhYmVsPXsgX18oICdIaWdobGlnaHQgQ29sb3InLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdFx0XHRcdFx0XHRjb2xvclZhbHVlPXsgYXR0cmlidXRlcy5oaWdobGlnaHRDb2xvciB9XG5cdFx0XHRcdFx0XHRcdD5cblx0XHRcdFx0XHRcdFx0XHQ8Q29sb3JQYWxldHRlXG5cdFx0XHRcdFx0XHRcdFx0XHRsYWJlbD17IF9fKCAnSGlnaGxpZ2h0IENvbG9yJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdFx0XHRcdFx0XHR2YWx1ZT17IGF0dHJpYnV0ZXMuaGlnaGxpZ2h0Q29sb3IgfVxuXHRcdFx0XHRcdFx0XHRcdFx0b25DaGFuZ2U9eyBjaGFuZ2VIaWdobGlnaHRDb2xvciB9XG5cdFx0XHRcdFx0XHRcdFx0Lz5cblx0XHRcdFx0XHRcdFx0PC9Db2xvckJhc2VDb250cm9sPlxuXG5cdFx0XHRcdFx0XHRcdDxDb2xvckJhc2VDb250cm9sXG5cdFx0XHRcdFx0XHRcdFx0bGFiZWw9eyBfXyggJ0hpZ2hsaWdodCBCYWNrZ3JvdW5kJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdFx0XHRcdFx0Y29sb3JWYWx1ZT17IGF0dHJpYnV0ZXMuaGlnaGxpZ2h0QmFja2dyb3VuZCB9XG5cdFx0XHRcdFx0XHRcdD5cblx0XHRcdFx0XHRcdFx0XHQ8Q29sb3JQYWxldHRlXG5cdFx0XHRcdFx0XHRcdFx0XHRsYWJlbD17IF9fKCAnSGlnaGxpZ2h0IEJhY2tncm91bmQnLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdFx0XHRcdFx0XHRcdHZhbHVlPXsgYXR0cmlidXRlcy5oaWdobGlnaHRCYWNrZ3JvdW5kIH1cblx0XHRcdFx0XHRcdFx0XHRcdG9uQ2hhbmdlPXsgY2hhbmdlSGlnaGxpZ2h0QmFja2dyb3VuZCB9XG5cdFx0XHRcdFx0XHRcdFx0Lz5cblx0XHRcdFx0XHRcdFx0PC9Db2xvckJhc2VDb250cm9sPlxuXHRcdFx0XHRcdFx0PC9QYW5lbEJvZHk+XG5cblx0XHRcdFx0XHRcdDxQYW5lbEJvZHlcblx0XHRcdFx0XHRcdFx0dGl0bGU9eyBfXyggJ1NwYWNpbmcnLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdFx0XHRcdFx0aW5pdGlhbE9wZW49eyBmYWxzZSB9XG5cdFx0XHRcdFx0XHQ+XG5cdFx0XHRcdFx0XHRcdDxSZXNwb25zaXZlQ29udHJvbFxuXHRcdFx0XHRcdFx0XHRcdGxhYmVsPXsgX18oICdQYWRkaW5nJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdFx0XHRcdD5cblx0XHRcdFx0XHRcdFx0XHQ8U2l6aW5nQ29udHJvbFxuXHRcdFx0XHRcdFx0XHRcdFx0dHlwZT17IGdldFBhZGRpbmdUeXBlIH1cblx0XHRcdFx0XHRcdFx0XHRcdG1pbj17IDAgfVxuXHRcdFx0XHRcdFx0XHRcdFx0bWF4PXsgNTAwIH1cblx0XHRcdFx0XHRcdFx0XHRcdGNoYW5nZVR5cGU9eyBjaGFuZ2VQYWRkaW5nVHlwZSB9XG5cdFx0XHRcdFx0XHRcdFx0XHRvbkNoYW5nZT17IGNoYW5nZVBhZGRpbmcgfVxuXHRcdFx0XHRcdFx0XHRcdFx0b3B0aW9ucz17IFtcblx0XHRcdFx0XHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGxhYmVsOiBfXyggJ1RvcCcsICdvdHRlci1ibG9ja3MnICksXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0dHlwZTogJ3RvcCcsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0dmFsdWU6IGdldFBhZGRpbmcoICd0b3AnIClcblx0XHRcdFx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGxhYmVsOiBfXyggJ1JpZ2h0JywgJ290dGVyLWJsb2NrcycgKSxcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0eXBlOiAncmlnaHQnLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHZhbHVlOiBnZXRQYWRkaW5nKCAncmlnaHQnIClcblx0XHRcdFx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGxhYmVsOiBfXyggJ0JvdHRvbScsICdvdHRlci1ibG9ja3MnICksXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0dHlwZTogJ2JvdHRvbScsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0dmFsdWU6IGdldFBhZGRpbmcoICdib3R0b20nIClcblx0XHRcdFx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGxhYmVsOiBfXyggJ0xlZnQnLCAnb3R0ZXItYmxvY2tzJyApLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHR5cGU6ICdsZWZ0Jyxcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR2YWx1ZTogZ2V0UGFkZGluZyggJ2xlZnQnIClcblx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XSB9XG5cdFx0XHRcdFx0XHRcdFx0Lz5cblx0XHRcdFx0XHRcdFx0PC9SZXNwb25zaXZlQ29udHJvbD5cblxuXHRcdFx0XHRcdFx0XHQ8UmVzcG9uc2l2ZUNvbnRyb2xcblx0XHRcdFx0XHRcdFx0XHRsYWJlbD17IF9fKCAnTWFyZ2luJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdFx0XHRcdD5cblx0XHRcdFx0XHRcdFx0XHQ8U2l6aW5nQ29udHJvbFxuXHRcdFx0XHRcdFx0XHRcdFx0dHlwZT17IGdldE1hcmdpblR5cGUgfVxuXHRcdFx0XHRcdFx0XHRcdFx0bWluPXsgLTUwMCB9XG5cdFx0XHRcdFx0XHRcdFx0XHRtYXg9eyA1MDAgfVxuXHRcdFx0XHRcdFx0XHRcdFx0Y2hhbmdlVHlwZT17IGNoYW5nZU1hcmdpblR5cGUgfVxuXHRcdFx0XHRcdFx0XHRcdFx0b25DaGFuZ2U9eyBjaGFuZ2VNYXJnaW4gfVxuXHRcdFx0XHRcdFx0XHRcdFx0b3B0aW9ucz17IFtcblx0XHRcdFx0XHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGxhYmVsOiBfXyggJ1RvcCcsICdvdHRlci1ibG9ja3MnICksXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0dHlwZTogJ3RvcCcsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0dmFsdWU6IGdldE1hcmdpbiggJ3RvcCcgKVxuXHRcdFx0XHRcdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0bGFiZWw6IF9fKCAnUmlnaHQnLCAnb3R0ZXItYmxvY2tzJyApLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGRpc2FibGVkOiB0cnVlXG5cdFx0XHRcdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRsYWJlbDogX18oICdCb3R0b20nLCAnb3R0ZXItYmxvY2tzJyApLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHR5cGU6ICdib3R0b20nLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHZhbHVlOiBnZXRNYXJnaW4oICdib3R0b20nIClcblx0XHRcdFx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGxhYmVsOiBfXyggJ0xlZnQnLCAnb3R0ZXItYmxvY2tzJyApLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGRpc2FibGVkOiB0cnVlXG5cdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdF0gfVxuXHRcdFx0XHRcdFx0XHRcdC8+XG5cdFx0XHRcdFx0XHRcdDwvUmVzcG9uc2l2ZUNvbnRyb2w+XG5cdFx0XHRcdFx0XHQ8L1BhbmVsQm9keT5cblx0XHRcdFx0XHQ8L0ZyYWdtZW50PlxuXHRcdFx0XHQpIH1cblx0XHRcdDwvSW5zcGVjdG9yQ29udHJvbHM+XG5cblx0XHRcdDxIVE1MQW5jaG9yQ29udHJvbFxuXHRcdFx0XHR2YWx1ZT17IGF0dHJpYnV0ZXMuaWQgfVxuXHRcdFx0XHRvbkNoYW5nZT17IGNoYW5nZUlEIH1cblx0XHRcdC8+XG5cdFx0PC9GcmFnbWVudD5cblx0KTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEluc3BlY3RvcjtcbiIsIi8qKlxuICogRXh0ZXJuYWwgZGVwZW5kZW5jaWVzXG4gKi9cbmltcG9ydCBjbGFzc25hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IGhleFRvUmdiYSBmcm9tICdoZXgtcmdiYSc7XG5pbXBvcnQgR29vZ2xlRm9udExvYWRlciBmcm9tICdyZWFjdC1nb29nbGUtZm9udC1sb2FkZXInO1xuXG4vKipcbiAqIFdvcmRQcmVzcyBkZXBlbmRlbmNpZXMuXG4gKi9cbmltcG9ydCB7IF9fIH0gZnJvbSAnQHdvcmRwcmVzcy9pMThuJztcblxuaW1wb3J0IHsgY3JlYXRlQmxvY2sgfSBmcm9tICdAd29yZHByZXNzL2Jsb2Nrcyc7XG5cbmltcG9ydCB7IFJpY2hUZXh0IH0gZnJvbSAnQHdvcmRwcmVzcy9ibG9jay1lZGl0b3InO1xuXG5pbXBvcnQgeyB1c2VWaWV3cG9ydE1hdGNoIH0gZnJvbSAnQHdvcmRwcmVzcy9jb21wb3NlJztcblxuaW1wb3J0IHsgdXNlU2VsZWN0IH0gZnJvbSAnQHdvcmRwcmVzcy9kYXRhJztcblxuaW1wb3J0IHtcblx0RnJhZ21lbnQsXG5cdHVzZUVmZmVjdFxufSBmcm9tICdAd29yZHByZXNzL2VsZW1lbnQnO1xuXG4vKipcbiAqIEludGVybmFsIGRlcGVuZGVuY2llc1xuICovXG5pbXBvcnQgeyBibG9ja0luaXQgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2Jsb2NrLXV0aWxpdHkuanMnO1xuaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4vYXR0cmlidXRlcy5qcyc7XG5pbXBvcnQgQ29udHJvbHMgZnJvbSAnLi9jb250cm9scy5qcyc7XG5pbXBvcnQgSW5zcGVjdG9yIGZyb20gJy4vaW5zcGVjdG9yLmpzJztcblxuY29uc3QgRWRpdCA9ICh7XG5cdGF0dHJpYnV0ZXMsXG5cdHNldEF0dHJpYnV0ZXMsXG5cdGNsYXNzTmFtZSxcblx0Y2xpZW50SWQsXG5cdG1lcmdlQmxvY2tzLFxuXHRpbnNlcnRCbG9ja3NBZnRlcixcblx0b25SZXBsYWNlXG59KSA9PiB7XG5cdGNvbnN0IHtcblx0XHRpc1ZpZXdwb3J0QXZhaWxhYmxlLFxuXHRcdGlzUHJldmlld0Rlc2t0b3AsXG5cdFx0aXNQcmV2aWV3VGFibGV0LFxuXHRcdGlzUHJldmlld01vYmlsZVxuXHR9ID0gdXNlU2VsZWN0KCBzZWxlY3QgPT4ge1xuXHRcdGNvbnN0IHsgX19leHBlcmltZW50YWxHZXRQcmV2aWV3RGV2aWNlVHlwZSB9ID0gc2VsZWN0KCAnY29yZS9lZGl0LXBvc3QnICkgPyBzZWxlY3QoICdjb3JlL2VkaXQtcG9zdCcgKSA6IGZhbHNlO1xuXG5cdFx0cmV0dXJuIHtcblx0XHRcdGlzVmlld3BvcnRBdmFpbGFibGU6IF9fZXhwZXJpbWVudGFsR2V0UHJldmlld0RldmljZVR5cGUgPyB0cnVlIDogZmFsc2UsXG5cdFx0XHRpc1ByZXZpZXdEZXNrdG9wOiBfX2V4cGVyaW1lbnRhbEdldFByZXZpZXdEZXZpY2VUeXBlID8gJ0Rlc2t0b3AnID09PSBfX2V4cGVyaW1lbnRhbEdldFByZXZpZXdEZXZpY2VUeXBlKCkgOiBmYWxzZSxcblx0XHRcdGlzUHJldmlld1RhYmxldDogX19leHBlcmltZW50YWxHZXRQcmV2aWV3RGV2aWNlVHlwZSA/ICdUYWJsZXQnID09PSBfX2V4cGVyaW1lbnRhbEdldFByZXZpZXdEZXZpY2VUeXBlKCkgOiBmYWxzZSxcblx0XHRcdGlzUHJldmlld01vYmlsZTogX19leHBlcmltZW50YWxHZXRQcmV2aWV3RGV2aWNlVHlwZSA/ICdNb2JpbGUnID09PSBfX2V4cGVyaW1lbnRhbEdldFByZXZpZXdEZXZpY2VUeXBlKCkgOiBmYWxzZVxuXHRcdH07XG5cdH0sIFtdKTtcblxuXHRjb25zdCBpc0xhcmdlciA9IHVzZVZpZXdwb3J0TWF0Y2goICdsYXJnZScsICc+PScgKTtcblxuXHRjb25zdCBpc0xhcmdlID0gdXNlVmlld3BvcnRNYXRjaCggJ2xhcmdlJywgJzw9JyApO1xuXG5cdGNvbnN0IGlzU21hbGwgPSB1c2VWaWV3cG9ydE1hdGNoKCAnc21hbGwnLCAnPj0nICk7XG5cblx0Y29uc3QgaXNTbWFsbGVyID0gdXNlVmlld3BvcnRNYXRjaCggJ3NtYWxsJywgJzw9JyApO1xuXG5cdHVzZUVmZmVjdCggKCkgPT4ge1xuXHRcdGNvbnN0IHVuc3Vic2NyaWJlID0gYmxvY2tJbml0KCBjbGllbnRJZCwgZGVmYXVsdEF0dHJpYnV0ZXMgKTtcblx0XHRyZXR1cm4gKCkgPT4gdW5zdWJzY3JpYmUoIGF0dHJpYnV0ZXMuaWQgKTtcblx0fSwgWyBhdHRyaWJ1dGVzLmlkIF0pO1xuXG5cdGxldCBpc0Rlc2t0b3AgPSBpc0xhcmdlciAmJiAhIGlzTGFyZ2UgJiYgaXNTbWFsbCAmJiAhIGlzU21hbGxlcjtcblxuXHRsZXQgaXNUYWJsZXQgPSAhIGlzTGFyZ2VyICYmICEgaXNMYXJnZSAmJiBpc1NtYWxsICYmICEgaXNTbWFsbGVyO1xuXG5cdGxldCBpc01vYmlsZSA9ICEgaXNMYXJnZXIgJiYgISBpc0xhcmdlICYmICEgaXNTbWFsbCAmJiAhIGlzU21hbGxlcjtcblxuXHRpZiAoIGlzVmlld3BvcnRBdmFpbGFibGUgJiYgISBpc01vYmlsZSApIHtcblx0XHRpc0Rlc2t0b3AgPSBpc1ByZXZpZXdEZXNrdG9wO1xuXHRcdGlzVGFibGV0ID0gaXNQcmV2aWV3VGFibGV0O1xuXHRcdGlzTW9iaWxlID0gaXNQcmV2aWV3TW9iaWxlO1xuXHR9XG5cblx0Y29uc3QgY2hhbmdlQ29udGVudCA9IHZhbHVlID0+IHtcblx0XHRzZXRBdHRyaWJ1dGVzKHsgY29udGVudDogdmFsdWUgfSk7XG5cdH07XG5cblx0Y29uc3QgY2hhbmdlRm9udEZhbWlseSA9IHZhbHVlID0+IHtcblx0XHRpZiAoICEgdmFsdWUgKSB7XG5cdFx0XHRzZXRBdHRyaWJ1dGVzKHtcblx0XHRcdFx0Zm9udEZhbWlseTogdmFsdWUsXG5cdFx0XHRcdGZvbnRWYXJpYW50OiB2YWx1ZVxuXHRcdFx0fSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHNldEF0dHJpYnV0ZXMoe1xuXHRcdFx0XHRmb250RmFtaWx5OiB2YWx1ZSxcblx0XHRcdFx0Zm9udFZhcmlhbnQ6ICdub3JtYWwnLFxuXHRcdFx0XHRmb250U3R5bGU6ICdub3JtYWwnXG5cdFx0XHR9KTtcblx0XHR9XG5cdH07XG5cblx0Y29uc3QgY2hhbmdlRm9udFZhcmlhbnQgPSB2YWx1ZSA9PiB7XG5cdFx0c2V0QXR0cmlidXRlcyh7IGZvbnRWYXJpYW50OiB2YWx1ZSB9KTtcblx0fTtcblxuXHRjb25zdCBjaGFuZ2VGb250U3R5bGUgPSB2YWx1ZSA9PiB7XG5cdFx0c2V0QXR0cmlidXRlcyh7IGZvbnRTdHlsZTogdmFsdWUgfSk7XG5cdH07XG5cblx0Y29uc3QgY2hhbmdlVGV4dFRyYW5zZm9ybSA9IHZhbHVlID0+IHtcblx0XHRzZXRBdHRyaWJ1dGVzKHsgdGV4dFRyYW5zZm9ybTogdmFsdWUgfSk7XG5cdH07XG5cblx0Y29uc3QgY2hhbmdlTGluZUhlaWdodCA9IHZhbHVlID0+IHtcblx0XHRzZXRBdHRyaWJ1dGVzKHsgbGluZUhlaWdodDogdmFsdWUgfSk7XG5cdH07XG5cblx0Y29uc3QgY2hhbmdlTGV0dGVyU3BhY2luZyA9IHZhbHVlID0+IHtcblx0XHRzZXRBdHRyaWJ1dGVzKHsgbGV0dGVyU3BhY2luZzogdmFsdWUgfSk7XG5cdH07XG5cblx0bGV0IGZvbnRTaXplU3R5bGUsIHN0eWxlc2hlZXQsIHRleHRTaGFkb3dTdHlsZTtcblxuXHRpZiAoIGlzRGVza3RvcCApIHtcblx0XHRmb250U2l6ZVN0eWxlID0ge1xuXHRcdFx0Zm9udFNpemU6IGAkeyBhdHRyaWJ1dGVzLmZvbnRTaXplIH1weGBcblx0XHR9O1xuXG5cdFx0c3R5bGVzaGVldCA9IHtcblx0XHRcdHRleHRBbGlnbjogYXR0cmlidXRlcy5hbGlnbixcblx0XHRcdHBhZGRpbmdUb3A6ICdsaW5rZWQnID09PSBhdHRyaWJ1dGVzLnBhZGRpbmdUeXBlID8gYCR7IGF0dHJpYnV0ZXMucGFkZGluZyB9cHhgIDogYCR7IGF0dHJpYnV0ZXMucGFkZGluZ1RvcCB9cHhgLFxuXHRcdFx0cGFkZGluZ1JpZ2h0OiAnbGlua2VkJyA9PT0gYXR0cmlidXRlcy5wYWRkaW5nVHlwZSA/IGAkeyBhdHRyaWJ1dGVzLnBhZGRpbmcgfXB4YCA6IGAkeyBhdHRyaWJ1dGVzLnBhZGRpbmdSaWdodCB9cHhgLFxuXHRcdFx0cGFkZGluZ0JvdHRvbTogJ2xpbmtlZCcgPT09IGF0dHJpYnV0ZXMucGFkZGluZ1R5cGUgPyBgJHsgYXR0cmlidXRlcy5wYWRkaW5nIH1weGAgOiBgJHsgYXR0cmlidXRlcy5wYWRkaW5nQm90dG9tIH1weGAsXG5cdFx0XHRwYWRkaW5nTGVmdDogJ2xpbmtlZCcgPT09IGF0dHJpYnV0ZXMucGFkZGluZ1R5cGUgPyBgJHsgYXR0cmlidXRlcy5wYWRkaW5nIH1weGAgOiBgJHsgYXR0cmlidXRlcy5wYWRkaW5nTGVmdCB9cHhgLFxuXHRcdFx0bWFyZ2luVG9wOiAnbGlua2VkJyA9PT0gYXR0cmlidXRlcy5tYXJnaW5UeXBlID8gYCR7IGF0dHJpYnV0ZXMubWFyZ2luIH1weGAgOiBgJHsgYXR0cmlidXRlcy5tYXJnaW5Ub3AgfXB4YCxcblx0XHRcdG1hcmdpbkJvdHRvbTogJ2xpbmtlZCcgPT09IGF0dHJpYnV0ZXMubWFyZ2luVHlwZSA/IGAkeyBhdHRyaWJ1dGVzLm1hcmdpbiB9cHhgIDogYCR7IGF0dHJpYnV0ZXMubWFyZ2luQm90dG9tIH1weGBcblx0XHR9O1xuXHR9XG5cblx0aWYgKCBpc1RhYmxldCApIHtcblx0XHRmb250U2l6ZVN0eWxlID0ge1xuXHRcdFx0Zm9udFNpemU6IGAkeyBhdHRyaWJ1dGVzLmZvbnRTaXplVGFibGV0IH1weGBcblx0XHR9O1xuXG5cdFx0c3R5bGVzaGVldCA9IHtcblx0XHRcdHRleHRBbGlnbjogYXR0cmlidXRlcy5hbGlnblRhYmxldCxcblx0XHRcdHBhZGRpbmdUb3A6ICdsaW5rZWQnID09PSBhdHRyaWJ1dGVzLnBhZGRpbmdUeXBlVGFibGV0ID8gYCR7IGF0dHJpYnV0ZXMucGFkZGluZ1RhYmxldCB9cHhgIDogYCR7IGF0dHJpYnV0ZXMucGFkZGluZ1RvcFRhYmxldCB9cHhgLFxuXHRcdFx0cGFkZGluZ1JpZ2h0OiAnbGlua2VkJyA9PT0gYXR0cmlidXRlcy5wYWRkaW5nVHlwZVRhYmxldCA/IGAkeyBhdHRyaWJ1dGVzLnBhZGRpbmdUYWJsZXQgfXB4YCA6IGAkeyBhdHRyaWJ1dGVzLnBhZGRpbmdSaWdodFRhYmxldCB9cHhgLFxuXHRcdFx0cGFkZGluZ0JvdHRvbTogJ2xpbmtlZCcgPT09IGF0dHJpYnV0ZXMucGFkZGluZ1R5cGVUYWJsZXQgPyBgJHsgYXR0cmlidXRlcy5wYWRkaW5nVGFibGV0IH1weGAgOiBgJHsgYXR0cmlidXRlcy5wYWRkaW5nQm90dG9tVGFibGV0IH1weGAsXG5cdFx0XHRwYWRkaW5nTGVmdDogJ2xpbmtlZCcgPT09IGF0dHJpYnV0ZXMucGFkZGluZ1R5cGVUYWJsZXQgPyBgJHsgYXR0cmlidXRlcy5wYWRkaW5nVGFibGV0IH1weGAgOiBgJHsgYXR0cmlidXRlcy5wYWRkaW5nTGVmdFRhYmxldCB9cHhgLFxuXHRcdFx0bWFyZ2luVG9wOiAnbGlua2VkJyA9PT0gYXR0cmlidXRlcy5tYXJnaW5UeXBlVGFibGV0ID8gYCR7IGF0dHJpYnV0ZXMubWFyZ2luVGFibGV0IH1weGAgOiBgJHsgYXR0cmlidXRlcy5tYXJnaW5Ub3BUYWJsZXQgfXB4YCxcblx0XHRcdG1hcmdpbkJvdHRvbTogJ2xpbmtlZCcgPT09IGF0dHJpYnV0ZXMubWFyZ2luVHlwZVRhYmxldCA/IGAkeyBhdHRyaWJ1dGVzLm1hcmdpblRhYmxldCB9cHhgIDogYCR7IGF0dHJpYnV0ZXMubWFyZ2luQm90dG9tVGFibGV0IH1weGBcblx0XHR9O1xuXHR9XG5cblx0aWYgKCBpc01vYmlsZSApIHtcblx0XHRmb250U2l6ZVN0eWxlID0ge1xuXHRcdFx0Zm9udFNpemU6IGAkeyBhdHRyaWJ1dGVzLmZvbnRTaXplTW9iaWxlIH1weGBcblx0XHR9O1xuXG5cdFx0c3R5bGVzaGVldCA9IHtcblx0XHRcdHRleHRBbGlnbjogYXR0cmlidXRlcy5hbGlnbk1vYmlsZSxcblx0XHRcdHBhZGRpbmdUb3A6ICdsaW5rZWQnID09PSBhdHRyaWJ1dGVzLnBhZGRpbmdUeXBlTW9iaWxlID8gYCR7IGF0dHJpYnV0ZXMucGFkZGluZ01vYmlsZSB9cHhgIDogYCR7IGF0dHJpYnV0ZXMucGFkZGluZ1RvcE1vYmlsZSB9cHhgLFxuXHRcdFx0cGFkZGluZ1JpZ2h0OiAnbGlua2VkJyA9PT0gYXR0cmlidXRlcy5wYWRkaW5nVHlwZU1vYmlsZSA/IGAkeyBhdHRyaWJ1dGVzLnBhZGRpbmdNb2JpbGUgfXB4YCA6IGAkeyBhdHRyaWJ1dGVzLnBhZGRpbmdSaWdodE1vYmlsZSB9cHhgLFxuXHRcdFx0cGFkZGluZ0JvdHRvbTogJ2xpbmtlZCcgPT09IGF0dHJpYnV0ZXMucGFkZGluZ1R5cGVNb2JpbGUgPyBgJHsgYXR0cmlidXRlcy5wYWRkaW5nTW9iaWxlIH1weGAgOiBgJHsgYXR0cmlidXRlcy5wYWRkaW5nQm90dG9tTW9iaWxlIH1weGAsXG5cdFx0XHRwYWRkaW5nTGVmdDogJ2xpbmtlZCcgPT09IGF0dHJpYnV0ZXMucGFkZGluZ1R5cGVNb2JpbGUgPyBgJHsgYXR0cmlidXRlcy5wYWRkaW5nTW9iaWxlIH1weGAgOiBgJHsgYXR0cmlidXRlcy5wYWRkaW5nTGVmdE1vYmlsZSB9cHhgLFxuXHRcdFx0bWFyZ2luVG9wOiAnbGlua2VkJyA9PT0gYXR0cmlidXRlcy5tYXJnaW5UeXBlTW9iaWxlID8gYCR7IGF0dHJpYnV0ZXMubWFyZ2luTW9iaWxlIH1weGAgOiBgJHsgYXR0cmlidXRlcy5tYXJnaW5Ub3BNb2JpbGUgfXB4YCxcblx0XHRcdG1hcmdpbkJvdHRvbTogJ2xpbmtlZCcgPT09IGF0dHJpYnV0ZXMubWFyZ2luVHlwZU1vYmlsZSA/IGAkeyBhdHRyaWJ1dGVzLm1hcmdpbk1vYmlsZSB9cHhgIDogYCR7IGF0dHJpYnV0ZXMubWFyZ2luQm90dG9tTW9iaWxlIH1weGBcblx0XHR9O1xuXHR9XG5cblx0aWYgKCBhdHRyaWJ1dGVzLnRleHRTaGFkb3cgKSB7XG5cdFx0dGV4dFNoYWRvd1N0eWxlID0ge1xuXHRcdFx0dGV4dFNoYWRvdzogYCR7IGF0dHJpYnV0ZXMudGV4dFNoYWRvd0hvcml6b250YWwgfXB4ICR7IGF0dHJpYnV0ZXMudGV4dFNoYWRvd1ZlcnRpY2FsIH1weCAkeyBhdHRyaWJ1dGVzLnRleHRTaGFkb3dCbHVyIH1weCAkeyAgaGV4VG9SZ2JhKCAoIGF0dHJpYnV0ZXMudGV4dFNoYWRvd0NvbG9yID8gYXR0cmlidXRlcy50ZXh0U2hhZG93Q29sb3IgOiAnIzAwMDAwMCcgKSwgMCA8PSBhdHRyaWJ1dGVzLnRleHRTaGFkb3dDb2xvck9wYWNpdHkgPyBhdHRyaWJ1dGVzLnRleHRTaGFkb3dDb2xvck9wYWNpdHkgfHwgMC4wMDAwMSAgOiAxICkgfWBcblx0XHR9O1xuXHR9XG5cblx0Y29uc3Qgc3R5bGUgPSB7XG5cdFx0Y29sb3I6IGF0dHJpYnV0ZXMuaGVhZGluZ0NvbG9yLFxuXHRcdC4uLmZvbnRTaXplU3R5bGUsXG5cdFx0Zm9udEZhbWlseTogYXR0cmlidXRlcy5mb250RmFtaWx5LFxuXHRcdGZvbnRXZWlnaHQ6ICdyZWd1bGFyJyA9PT0gYXR0cmlidXRlcy5mb250VmFyaWFudCA/ICdub3JtYWwnIDogYXR0cmlidXRlcy5mb250VmFyaWFudCxcblx0XHRmb250U3R5bGU6IGF0dHJpYnV0ZXMuZm9udFN0eWxlLFxuXHRcdHRleHRUcmFuc2Zvcm06IGF0dHJpYnV0ZXMudGV4dFRyYW5zZm9ybSxcblx0XHRsaW5lSGVpZ2h0OiAzIDwgYXR0cmlidXRlcy5saW5lSGVpZ2h0ID8gYXR0cmlidXRlcy5saW5lSGVpZ2h0ICsgJ3B4JyA6IGF0dHJpYnV0ZXMubGluZUhlaWdodCxcblx0XHRsZXR0ZXJTcGFjaW5nOiBhdHRyaWJ1dGVzLmxldHRlclNwYWNpbmcgJiYgYCR7IGF0dHJpYnV0ZXMubGV0dGVyU3BhY2luZyB9cHhgLFxuXHRcdC4uLnN0eWxlc2hlZXQsXG5cdFx0Li4udGV4dFNoYWRvd1N0eWxlXG5cdH07XG5cblx0cmV0dXJuIChcblx0XHQ8RnJhZ21lbnQ+XG5cdFx0XHQ8c3R5bGU+XG5cdFx0XHRcdHsgYC4keyBhdHRyaWJ1dGVzLmlkIH0gbWFyaywgLiR7IGF0dHJpYnV0ZXMuaWQgfSAuaGlnaGxpZ2h0IHtcblx0XHRcdFx0XHRcdGNvbG9yOiAkeyBhdHRyaWJ1dGVzLmhpZ2hsaWdodENvbG9yIH07XG5cdFx0XHRcdFx0XHRiYWNrZ3JvdW5kOiAkeyBhdHRyaWJ1dGVzLmhpZ2hsaWdodEJhY2tncm91bmQgfTtcblx0XHRcdFx0XHR9YCB9XG5cdFx0XHQ8L3N0eWxlPlxuXG5cdFx0XHR7IGF0dHJpYnV0ZXMuZm9udEZhbWlseSAmJiAoXG5cdFx0XHRcdDxHb29nbGVGb250TG9hZGVyIGZvbnRzPXsgWyB7XG5cdFx0XHRcdFx0Zm9udDogYXR0cmlidXRlcy5mb250RmFtaWx5LFxuXHRcdFx0XHRcdHdlaWdodHM6IGF0dHJpYnV0ZXMuZm9udFZhcmlhbnQgJiYgWyBgJHsgYXR0cmlidXRlcy5mb250VmFyaWFudCArICggJ2l0YWxpYycgPT09IGF0dHJpYnV0ZXMuZm9udFN0eWxlID8gJzppJyA6ICcnICkgfWAgXVxuXHRcdFx0XHR9IF0gfSAvPlxuXHRcdFx0KSB9XG5cblx0XHRcdDxDb250cm9sc1xuXHRcdFx0XHRhdHRyaWJ1dGVzPXsgYXR0cmlidXRlcyB9XG5cdFx0XHRcdHNldEF0dHJpYnV0ZXM9eyBzZXRBdHRyaWJ1dGVzIH1cblx0XHRcdFx0Y2hhbmdlRm9udEZhbWlseT17IGNoYW5nZUZvbnRGYW1pbHkgfVxuXHRcdFx0XHRjaGFuZ2VGb250VmFyaWFudD17IGNoYW5nZUZvbnRWYXJpYW50IH1cblx0XHRcdFx0Y2hhbmdlRm9udFN0eWxlPXsgY2hhbmdlRm9udFN0eWxlIH1cblx0XHRcdFx0Y2hhbmdlVGV4dFRyYW5zZm9ybT17IGNoYW5nZVRleHRUcmFuc2Zvcm0gfVxuXHRcdFx0XHRjaGFuZ2VMaW5lSGVpZ2h0PXsgY2hhbmdlTGluZUhlaWdodCB9XG5cdFx0XHRcdGNoYW5nZUxldHRlclNwYWNpbmc9eyBjaGFuZ2VMZXR0ZXJTcGFjaW5nIH1cblx0XHRcdC8+XG5cblx0XHRcdDxJbnNwZWN0b3Jcblx0XHRcdFx0YXR0cmlidXRlcz17IGF0dHJpYnV0ZXMgfVxuXHRcdFx0XHRzZXRBdHRyaWJ1dGVzPXsgc2V0QXR0cmlidXRlcyB9XG5cdFx0XHRcdGNoYW5nZUZvbnRGYW1pbHk9eyBjaGFuZ2VGb250RmFtaWx5IH1cblx0XHRcdFx0Y2hhbmdlRm9udFZhcmlhbnQ9eyBjaGFuZ2VGb250VmFyaWFudCB9XG5cdFx0XHRcdGNoYW5nZUZvbnRTdHlsZT17IGNoYW5nZUZvbnRTdHlsZSB9XG5cdFx0XHRcdGNoYW5nZVRleHRUcmFuc2Zvcm09eyBjaGFuZ2VUZXh0VHJhbnNmb3JtIH1cblx0XHRcdFx0Y2hhbmdlTGluZUhlaWdodD17IGNoYW5nZUxpbmVIZWlnaHQgfVxuXHRcdFx0XHRjaGFuZ2VMZXR0ZXJTcGFjaW5nPXsgY2hhbmdlTGV0dGVyU3BhY2luZyB9XG5cdFx0XHQvPlxuXG5cdFx0XHQ8UmljaFRleHRcblx0XHRcdFx0aWRlbnRpZmllcj1cImNvbnRlbnRcIlxuXHRcdFx0XHRjbGFzc05hbWU9eyBjbGFzc25hbWVzKFxuXHRcdFx0XHRcdGF0dHJpYnV0ZXMuaWQsXG5cdFx0XHRcdFx0Y2xhc3NOYW1lXG5cdFx0XHRcdCkgfVxuXHRcdFx0XHR2YWx1ZT17IGF0dHJpYnV0ZXMuY29udGVudCB9XG5cdFx0XHRcdHBsYWNlaG9sZGVyPXsgX18oICdXcml0ZSBoZWFkaW5n4oCmJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdHRhZ05hbWU9eyBhdHRyaWJ1dGVzLnRhZyB9XG5cdFx0XHRcdGZvcm1hdHRpbmdDb250cm9scz17IFsgJ2JvbGQnLCAnaXRhbGljJywgJ2xpbmsnLCAnc3RyaWtldGhyb3VnaCcsICdoaWdobGlnaHQnIF0gfVxuXHRcdFx0XHRhbGxvd2VkRm9ybWF0cz17IFsgJ2NvcmUvYm9sZCcsICdjb3JlL2l0YWxpYycsICdjb3JlL2xpbmsnLCAnY29yZS9zdHJpa2V0aHJvdWdoJywgJ3RoZW1laXNsZS1ibG9ja3MvaGlnaGxpZ2h0JyBdIH1cblx0XHRcdFx0b25NZXJnZT17IG1lcmdlQmxvY2tzIH1cblx0XHRcdFx0dW5zdGFibGVPblNwbGl0PXtcblx0XHRcdFx0XHRpbnNlcnRCbG9ja3NBZnRlciA/XG5cdFx0XHRcdFx0XHQoIGJlZm9yZSwgYWZ0ZXIsIC4uLmJsb2NrcyApID0+IHtcblx0XHRcdFx0XHRcdFx0c2V0QXR0cmlidXRlcyh7IGNvbnRlbnQ6IGJlZm9yZSB9KTtcblx0XHRcdFx0XHRcdFx0aW5zZXJ0QmxvY2tzQWZ0ZXIoW1xuXHRcdFx0XHRcdFx0XHRcdC4uLmJsb2Nrcyxcblx0XHRcdFx0XHRcdFx0XHRjcmVhdGVCbG9jayggJ2NvcmUvcGFyYWdyYXBoJywgeyBjb250ZW50OiBhZnRlciB9KVxuXHRcdFx0XHRcdFx0XHRdKTtcblx0XHRcdFx0XHRcdH0gOlxuXHRcdFx0XHRcdFx0dW5kZWZpbmVkXG5cdFx0XHRcdH1cblx0XHRcdFx0b25SZW1vdmU9eyAoKSA9PiBvblJlcGxhY2UoW10pIH1cblx0XHRcdFx0c3R5bGU9eyBzdHlsZSB9XG5cdFx0XHRcdG9uQ2hhbmdlPXsgY2hhbmdlQ29udGVudCB9XG5cdFx0XHQvPlxuXHRcdDwvRnJhZ21lbnQ+XG5cdCk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBFZGl0O1xuIiwiLyoqXG4gKiBFeHRlcm5hbCBkZXBlbmRlbmNpZXNcbiAqL1xuaW1wb3J0IGNsYXNzbmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5cbi8qKlxuICogV29yZFByZXNzIGRlcGVuZGVuY2llcy5cbiAqL1xuaW1wb3J0IHsgUmljaFRleHQgfSBmcm9tICdAd29yZHByZXNzL2Jsb2NrLWVkaXRvcic7XG5cbmNvbnN0IFNhdmUgPSAoe1xuXHRhdHRyaWJ1dGVzLFxuXHRjbGFzc05hbWVcbn0pID0+IHtcblx0cmV0dXJuIChcblx0XHQ8UmljaFRleHQuQ29udGVudFxuXHRcdFx0dGFnTmFtZT17IGF0dHJpYnV0ZXMudGFnIH1cblx0XHRcdHZhbHVlPXsgYXR0cmlidXRlcy5jb250ZW50IH1cblx0XHRcdGlkPXsgYXR0cmlidXRlcy5pZCB9XG5cdFx0XHRjbGFzc05hbWU9eyBjbGFzc25hbWVzKFxuXHRcdFx0XHRhdHRyaWJ1dGVzLmlkLFxuXHRcdFx0XHRjbGFzc05hbWVcblx0XHRcdCkgfVxuXHRcdC8+XG5cdCk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBTYXZlO1xuIiwiLyoqXG4gKiBXb3JkUHJlc3MgZGVwZW5kZW5jaWVzLlxuICovXG5pbXBvcnQgeyBfXyB9IGZyb20gJ0B3b3JkcHJlc3MvaTE4bic7XG5cbmltcG9ydCB7IHJlZ2lzdGVyQmxvY2tUeXBlIH0gZnJvbSAnQHdvcmRwcmVzcy9ibG9ja3MnO1xuXG4vKipcbiAqIEludGVybmFsIGRlcGVuZGVuY2llc1xuICovXG5pbXBvcnQgJy4vZWRpdG9yLnNjc3MnO1xuaW1wb3J0ICcuL3N0eWxlLnNjc3MnO1xuaW1wb3J0ICcuL3JlZ2lzdGVySGVhZGluZ0hpZ2hsaWdodC5qcyc7XG5pbXBvcnQgeyBoZWFkaW5nSWNvbiBhcyBpY29uIH0gZnJvbSAnLi4vLi4vaGVscGVycy9pY29ucy5qcyc7XG5pbXBvcnQgYXR0cmlidXRlcyBmcm9tICcuL2F0dHJpYnV0ZXMuanMnO1xuaW1wb3J0IGRlcHJlY2F0ZWQgZnJvbSAnLi9kZXByZWNhdGVkLmpzJztcbmltcG9ydCB0cmFuc2Zvcm1zIGZyb20gJy4vdHJhbnNmb3Jtcy5qcyc7XG5pbXBvcnQgZWRpdCBmcm9tICcuL2VkaXQuanMnO1xuaW1wb3J0IHNhdmUgZnJvbSAnLi9zYXZlLmpzJztcblxucmVnaXN0ZXJCbG9ja1R5cGUoICd0aGVtZWlzbGUtYmxvY2tzL2FkdmFuY2VkLWhlYWRpbmcnLCB7XG5cdHRpdGxlOiBfXyggJ0FkdmFuY2VkIEhlYWRpbmcnLCAnb3R0ZXItYmxvY2tzJyApLFxuXHRkZXNjcmlwdGlvbjogX18oICdBZHZhbmNlZCBIZWFkaW5nIGdpdmVzIGEgc3BpbiB0byBlZGl0b3JcXCdzIEhlYWRpbmcgYmxvY2sgd2l0aCBtdWNoIG5lZWRlZCBjdXN0b21pemF0aW9uIG9wdGlvbnMuJywgJ290dGVyLWJsb2NrcycgKSxcblx0aWNvbixcblx0Y2F0ZWdvcnk6ICd0aGVtZWlzbGUtYmxvY2tzJyxcblx0a2V5d29yZHM6IFtcblx0XHQnaGVhZGluZycsXG5cdFx0J3RpdGxlJyxcblx0XHQnYWR2YW5jZWQgSGVhZGluZydcblx0XSxcblx0YXR0cmlidXRlcyxcblx0ZGVwcmVjYXRlZCxcblx0dHJhbnNmb3Jtcyxcblx0ZWRpdCxcblx0c2F2ZVxufSk7XG4iXSwibmFtZXMiOlsiYnJ1c2giLCJfXyIsInJlZ2lzdGVyRm9ybWF0VHlwZSIsInRvZ2dsZUZvcm1hdCIsIlJpY2hUZXh0U2hvcnRjdXQiLCJSaWNoVGV4dFRvb2xiYXJCdXR0b24iLCJGcmFnbWVudCIsIm5hbWUiLCJ0aXRsZSIsInRhZ05hbWUiLCJjbGFzc05hbWUiLCJlZGl0IiwiaXNBY3RpdmUiLCJ2YWx1ZSIsIm9uQ2hhbmdlIiwib25Ub2dnbGUiLCJ0eXBlIiwiYXR0cmlidXRlcyIsImlkIiwiY29udGVudCIsInNvdXJjZSIsInNlbGVjdG9yIiwiZGVmYXVsdCIsInRhZyIsImFsaWduIiwiYWxpZ25UYWJsZXQiLCJhbGlnbk1vYmlsZSIsImhlYWRpbmdDb2xvciIsImhpZ2hsaWdodENvbG9yIiwiaGlnaGxpZ2h0QmFja2dyb3VuZCIsImZvbnRTaXplIiwiZm9udFNpemVUYWJsZXQiLCJmb250U2l6ZU1vYmlsZSIsImZvbnRGYW1pbHkiLCJmb250VmFyaWFudCIsImZvbnRTdHlsZSIsInRleHRUcmFuc2Zvcm0iLCJsaW5lSGVpZ2h0IiwibGV0dGVyU3BhY2luZyIsInRleHRTaGFkb3ciLCJ0ZXh0U2hhZG93Q29sb3IiLCJ0ZXh0U2hhZG93Q29sb3JPcGFjaXR5IiwidGV4dFNoYWRvd0JsdXIiLCJ0ZXh0U2hhZG93SG9yaXpvbnRhbCIsInRleHRTaGFkb3dWZXJ0aWNhbCIsInBhZGRpbmdUeXBlIiwicGFkZGluZ1R5cGVUYWJsZXQiLCJwYWRkaW5nVHlwZU1vYmlsZSIsInBhZGRpbmciLCJwYWRkaW5nVGFibGV0IiwicGFkZGluZ01vYmlsZSIsInBhZGRpbmdUb3AiLCJwYWRkaW5nVG9wVGFibGV0IiwicGFkZGluZ1RvcE1vYmlsZSIsInBhZGRpbmdSaWdodCIsInBhZGRpbmdSaWdodFRhYmxldCIsInBhZGRpbmdSaWdodE1vYmlsZSIsInBhZGRpbmdCb3R0b20iLCJwYWRkaW5nQm90dG9tVGFibGV0IiwicGFkZGluZ0JvdHRvbU1vYmlsZSIsInBhZGRpbmdMZWZ0IiwicGFkZGluZ0xlZnRUYWJsZXQiLCJwYWRkaW5nTGVmdE1vYmlsZSIsIm1hcmdpblR5cGUiLCJtYXJnaW5UeXBlVGFibGV0IiwibWFyZ2luVHlwZU1vYmlsZSIsIm1hcmdpbiIsIm1hcmdpblRhYmxldCIsIm1hcmdpbk1vYmlsZSIsIm1hcmdpblRvcCIsIm1hcmdpblRvcFRhYmxldCIsIm1hcmdpblRvcE1vYmlsZSIsIm1hcmdpbkJvdHRvbSIsIm1hcmdpbkJvdHRvbVRhYmxldCIsIm1hcmdpbkJvdHRvbU1vYmlsZSIsImNsYXNzbmFtZXMiLCJoZXhUb1JnYmEiLCJSaWNoVGV4dCIsImRlcHJlY2F0ZWQiLCJzYXZlIiwidGV4dFNoYWRvd1N0eWxlIiwic3R5bGUiLCJjb2xvciIsImZvbnRXZWlnaHQiLCJjcmVhdGVCbG9jayIsInRyYW5zZm9ybXMiLCJmcm9tIiwiYmxvY2tzIiwidHJhbnNmb3JtIiwidG8iLCJCdXR0b24iLCJEcm9wZG93biIsIkRyb3Bkb3duTWVudSIsIlJhbmdlQ29udHJvbCIsIlNWRyIsIlRvb2xiYXIiLCJCbG9ja0NvbnRyb2xzIiwiR29vZ2xlRm9udHNDb250cm9sIiwiQ29udHJvbHMiLCJzZXRBdHRyaWJ1dGVzIiwiY2hhbmdlRm9udEZhbWlseSIsImNoYW5nZUZvbnRWYXJpYW50IiwiY2hhbmdlRm9udFN0eWxlIiwiY2hhbmdlVGV4dFRyYW5zZm9ybSIsImNoYW5nZUxpbmVIZWlnaHQiLCJjaGFuZ2VMZXR0ZXJTcGFjaW5nIiwiZ2V0VGFnSWNvbiIsIndpZHRoIiwiaGVpZ2h0IiwiY2hhbmdlVGFnIiwiaWNvbiIsIm9uQ2xpY2siLCJpc09wZW4iLCJBbGlnbm1lbnRUb29sYmFyIiwiQ29sb3JQYWxldHRlIiwiSW5zcGVjdG9yQ29udHJvbHMiLCJEYXNoaWNvbiIsIlBhbmVsQm9keSIsIlRvZ2dsZUNvbnRyb2wiLCJ1c2VTZWxlY3QiLCJ1c2VTdGF0ZSIsIkNvbG9yQmFzZUNvbnRyb2wiLCJDb250cm9sUGFuZWxDb250cm9sIiwiUmVzcG9uc2l2ZUNvbnRyb2wiLCJTaXppbmdDb250cm9sIiwiSFRNTEFuY2hvckNvbnRyb2wiLCJJbnNwZWN0b3IiLCJnZXRWaWV3Iiwic2VsZWN0IiwiX19leHBlcmltZW50YWxHZXRQcmV2aWV3RGV2aWNlVHlwZSIsInRhYiIsInNldFRhYiIsImNoYW5nZUhlYWRpbmdDb2xvciIsImdldEZvbnRTaXplIiwiY2hhbmdlRm9udFNpemUiLCJnZXRBbGlnbm1lbnQiLCJjaGFuZ2VBbGlnbm1lbnQiLCJjaGFuZ2VUZXh0U2hhZG93Q29sb3IiLCJjaGFuZ2VUZXh0U2hhZG93IiwiY2hhbmdlVGV4dFNoYWRvd0NvbG9yT3BhY2l0eSIsImNoYW5nZVRleHRTaGFkb3dCbHVyIiwiY2hhbmdlVGV4dFNoYWRvd0hvcml6b250YWwiLCJjaGFuZ2VUZXh0U2hhZG93VmVydGljYWwiLCJjaGFuZ2VIaWdobGlnaHRDb2xvciIsImNoYW5nZUhpZ2hsaWdodEJhY2tncm91bmQiLCJnZXRQYWRkaW5nVHlwZSIsImNoYW5nZVBhZGRpbmdUeXBlIiwiZGVza3RvcFBhZGRpbmdUeXBlIiwidG9wIiwicmlnaHQiLCJib3R0b20iLCJsZWZ0IiwidGFibGV0UGFkZGluZ1R5cGUiLCJtb2JpbGVQYWRkaW5nVHlwZSIsImNoYW5nZVBhZGRpbmciLCJnZXRQYWRkaW5nIiwiZ2V0TWFyZ2luVHlwZSIsImNoYW5nZU1hcmdpblR5cGUiLCJkZXNrdG9wTWFyZ2luVHlwZSIsInRhYmxldE1hcmdpblR5cGUiLCJtb2JpbGVNYXJnaW5UeXBlIiwiY2hhbmdlTWFyZ2luIiwiZ2V0TWFyZ2luIiwiY2hhbmdlSUQiLCJsYWJlbCIsImRpc2FibGVkIiwiR29vZ2xlRm9udExvYWRlciIsInVzZVZpZXdwb3J0TWF0Y2giLCJ1c2VFZmZlY3QiLCJibG9ja0luaXQiLCJkZWZhdWx0QXR0cmlidXRlcyIsIkVkaXQiLCJjbGllbnRJZCIsIm1lcmdlQmxvY2tzIiwiaW5zZXJ0QmxvY2tzQWZ0ZXIiLCJvblJlcGxhY2UiLCJpc1ZpZXdwb3J0QXZhaWxhYmxlIiwiaXNQcmV2aWV3RGVza3RvcCIsImlzUHJldmlld1RhYmxldCIsImlzUHJldmlld01vYmlsZSIsImlzTGFyZ2VyIiwiaXNMYXJnZSIsImlzU21hbGwiLCJpc1NtYWxsZXIiLCJ1bnN1YnNjcmliZSIsImlzRGVza3RvcCIsImlzVGFibGV0IiwiaXNNb2JpbGUiLCJjaGFuZ2VDb250ZW50IiwiZm9udFNpemVTdHlsZSIsInN0eWxlc2hlZXQiLCJ0ZXh0QWxpZ24iLCJmb250Iiwid2VpZ2h0cyIsImJlZm9yZSIsImFmdGVyIiwidW5kZWZpbmVkIiwiU2F2ZSIsInJlZ2lzdGVyQmxvY2tUeXBlIiwiaGVhZGluZ0ljb24iLCJkZXNjcmlwdGlvbiIsImNhdGVnb3J5Iiwia2V5d29yZHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///6632\n")},58:function(__unused_webpack_module,__unused_webpack___webpack_exports__,__webpack_require__){eval("\n// EXTERNAL MODULE: external [\"wp\",\"element\"]\nvar external_wp_element_ = __webpack_require__(9307);\n// EXTERNAL MODULE: external [\"wp\",\"i18n\"]\nvar external_wp_i18n_ = __webpack_require__(5736);\n// EXTERNAL MODULE: external [\"wp\",\"blocks\"]\nvar external_wp_blocks_ = __webpack_require__(4981);\n// EXTERNAL MODULE: external [\"wp\",\"components\"]\nvar external_wp_components_ = __webpack_require__(5609);\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/receipt.js\nvar receipt = __webpack_require__(6779);\n;// CONCATENATED MODULE: ./src/blocks/blocks/business-hours/attributes.js\nconst attributes = {\n id: {\n type: 'string'\n },\n title: {\n type: 'string'\n },\n titleAlignment: {\n type: 'string'\n },\n titleFontSize: {\n type: 'number'\n },\n titleColor: {\n type: 'string'\n },\n itemsFontSize: {\n type: 'number'\n },\n backgroundColor: {\n type: 'string'\n },\n gap: {\n type: 'number'\n },\n borderWidth: {\n type: 'number'\n },\n borderColor: {\n type: 'string'\n },\n borderRadius: {\n type: 'number'\n }\n};\n/* harmony default export */ var business_hours_attributes = (attributes);\n// EXTERNAL MODULE: ./node_modules/@emotion/react/dist/emotion-react.browser.esm.js + 15 modules\nvar emotion_react_browser_esm = __webpack_require__(1216);\n// EXTERNAL MODULE: external [\"wp\",\"blockEditor\"]\nvar external_wp_blockEditor_ = __webpack_require__(2175);\n// EXTERNAL MODULE: ./src/blocks/helpers/block-utility.js\nvar block_utility = __webpack_require__(5225);\n;// CONCATENATED MODULE: ./src/blocks/blocks/business-hours/controls.js\n\n\n/**\n * WordPress dependencies.\n */\n\n\nconst Controls = ({\n attributes,\n setAttributes\n}) => {\n return (0,external_wp_element_.createElement)(external_wp_blockEditor_.BlockControls, null, (0,external_wp_element_.createElement)(external_wp_blockEditor_.AlignmentControl, {\n value: attributes.titleAlignment,\n onChange: titleAlignment => setAttributes({\n titleAlignment\n })\n }));\n};\n\n/* harmony default export */ var controls = (Controls);\n;// CONCATENATED MODULE: ./src/blocks/blocks/business-hours/inspector.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\nconst Inspector = ({\n attributes,\n setAttributes\n}) => {\n return (0,external_wp_element_.createElement)(external_wp_blockEditor_.InspectorControls, null, (0,external_wp_element_.createElement)(external_wp_components_.PanelBody, {\n title: (0,external_wp_i18n_.__)('Settings', 'otter-blocks')\n }, (0,external_wp_element_.createElement)(external_wp_components_.RangeControl, {\n label: (0,external_wp_i18n_.__)('Gap', 'otter-blocks'),\n value: attributes.gap,\n onChange: value => setAttributes({\n gap: Number(value)\n }),\n min: 0,\n max: 60\n }), (0,external_wp_element_.createElement)(external_wp_components_.RangeControl, {\n label: (0,external_wp_i18n_.__)('Title Font Size', 'otter-blocks'),\n value: attributes.titleFontSize,\n onChange: value => setAttributes({\n titleFontSize: Number(value)\n }),\n min: 0,\n max: 60\n }), (0,external_wp_element_.createElement)(external_wp_components_.RangeControl, {\n label: (0,external_wp_i18n_.__)('Items Font Size', 'otter-blocks'),\n value: attributes.itemsFontSize,\n onChange: value => setAttributes({\n itemsFontSize: Number(value)\n }),\n min: 0,\n max: 60\n }), (0,external_wp_element_.createElement)(external_wp_components_.RangeControl, {\n label: (0,external_wp_i18n_.__)('Border Radius', 'otter-blocks'),\n value: attributes.borderRadius,\n onChange: value => setAttributes({\n borderRadius: Number(value)\n }),\n min: 0,\n max: 60\n }), (0,external_wp_element_.createElement)(external_wp_components_.RangeControl, {\n label: (0,external_wp_i18n_.__)('Border Width', 'otter-blocks'),\n value: attributes.borderWidth,\n onChange: value => setAttributes({\n borderWidth: Number(value)\n }),\n min: 0,\n max: 120\n })), (0,external_wp_element_.createElement)(external_wp_blockEditor_.PanelColorSettings, {\n title: (0,external_wp_i18n_.__)('Color', 'otter-blocks'),\n initialOpen: false,\n colorSettings: [{\n value: attributes.titleColor,\n onChange: titleColor => setAttributes({\n titleColor\n }),\n label: (0,external_wp_i18n_.__)('Title', 'otter-blocks')\n }, {\n value: attributes.backgroundColor,\n onChange: backgroundColor => setAttributes({\n backgroundColor\n }),\n label: (0,external_wp_i18n_.__)('Background', 'otter-blocks')\n }, {\n value: attributes.borderColor,\n onChange: borderColor => setAttributes({\n borderColor\n }),\n label: (0,external_wp_i18n_.__)('Border', 'otter-blocks')\n }]\n }, (0,external_wp_element_.createElement)(external_wp_blockEditor_.ContrastChecker, {\n textColor: attributes.titleColor,\n backgroundColor: attributes.backgroundColor\n })));\n};\n\n/* harmony default export */ var inspector = (Inspector);\n;// CONCATENATED MODULE: ./src/blocks/blocks/business-hours/edit.js\n\n\n/** @jsx jsx */\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\nconst Edit = ({\n attributes,\n setAttributes,\n className,\n isSelected,\n clientId\n}) => {\n (0,external_wp_element_.useEffect)(() => {\n const unsubscribe = (0,block_utility/* blockInit */.WX)(clientId, business_hours_attributes);\n return () => unsubscribe(attributes.id);\n }, [attributes.id]);\n const style = {\n container: {\n backgroundColor: attributes.backgroundColor,\n borderRadius: attributes.borderRadius + 'px',\n border: attributes.borderWidth && `${attributes.borderWidth}px solid ${attributes.borderColor || '#000000'}`\n },\n title: {\n textAlign: attributes.titleAlignment,\n fontSize: attributes.titleFontSize + 'px',\n color: attributes.titleColor\n }\n };\n const contentCSS = emotion_react_browser_esm/* css */.iv`\n\t\t.otter-business-hour__container .otter-business-hour__content .wp-block-themeisle-blocks-business-hours-item {\n\t\t\tfont-size: ${attributes.itemsFontSize}px;\n\t\t\tpadding-top: ${attributes.gap}px;\n\t\t\tpadding-bottom: ${attributes.gap}px;\n\t\t}\n\n\t\t.otter-business-hour__container .otter-business-hour__content .block-editor-block-list__block:last-child .wp-block-themeisle-blocks-business-hours-item {\n\t\t\tborder-radius: 0 0 ${attributes.borderRadius || 0}px ${attributes.borderRadius || 0}px;\n\t\t}\n\t`;\n return (0,emotion_react_browser_esm/* jsx */.tZ)(external_wp_element_.Fragment, null, (0,emotion_react_browser_esm/* jsx */.tZ)(controls, {\n attributes: attributes,\n setAttributes: setAttributes\n }), (0,emotion_react_browser_esm/* jsx */.tZ)(inspector, {\n attributes: attributes,\n setAttributes: setAttributes\n }), (0,emotion_react_browser_esm/* jsx */.tZ)(\"div\", {\n className: className,\n id: attributes.id,\n style: style.container,\n css: contentCSS\n }, (0,emotion_react_browser_esm/* jsx */.tZ)(\"div\", {\n className: \"otter-business-hour__container\"\n }, (0,emotion_react_browser_esm/* jsx */.tZ)(\"div\", {\n style: style.title,\n className: \"otter-business-hour__title\"\n }, (0,emotion_react_browser_esm/* jsx */.tZ)(external_wp_blockEditor_.RichText, {\n placeholder: (0,external_wp_i18n_.__)('Opening Hours', 'otter-blocks'),\n value: attributes.title,\n onChange: title => {\n setAttributes({\n title\n });\n },\n tagName: \"span\"\n })), (0,emotion_react_browser_esm/* jsx */.tZ)(\"div\", {\n className: \"otter-business-hour__content\"\n }, (0,emotion_react_browser_esm/* jsx */.tZ)(external_wp_blockEditor_.InnerBlocks, {\n allowedBlocks: ['core/separator', 'themeisle-blocks/business-hours-item'],\n template: [['themeisle-blocks/business-hours-item', {\n label: (0,external_wp_i18n_.__)('Monday', 'otter-blocks'),\n time: (0,external_wp_i18n_.__)('09:00 AM - 05:00 PM', 'otter-blocks')\n }], ['themeisle-blocks/business-hours-item', {\n label: (0,external_wp_i18n_.__)('Tuesday', 'otter-blocks'),\n time: (0,external_wp_i18n_.__)('09:00 AM - 05:00 PM', 'otter-blocks')\n }], ['themeisle-blocks/business-hours-item', {\n label: (0,external_wp_i18n_.__)('Wednesday', 'otter-blocks'),\n time: (0,external_wp_i18n_.__)('09:00 AM - 05:00 PM', 'otter-blocks')\n }], ['themeisle-blocks/business-hours-item', {\n label: (0,external_wp_i18n_.__)('Thursday', 'otter-blocks'),\n time: (0,external_wp_i18n_.__)('09:00 AM - 05:00 PM', 'otter-blocks')\n }], ['themeisle-blocks/business-hours-item', {\n label: (0,external_wp_i18n_.__)('Friday', 'otter-blocks'),\n time: (0,external_wp_i18n_.__)('09:00 AM - 05:00 PM', 'otter-blocks')\n }], ['themeisle-blocks/business-hours-item', {\n label: (0,external_wp_i18n_.__)('Saturday', 'otter-blocks'),\n time: (0,external_wp_i18n_.__)('Closed', 'otter-blocks'),\n timeColor: '#F8002A'\n }], ['themeisle-blocks/business-hours-item', {\n label: (0,external_wp_i18n_.__)('Sunday', 'otter-blocks'),\n time: (0,external_wp_i18n_.__)('Closed', 'otter-blocks'),\n timeColor: '#F8002A'\n }]],\n renderAppender: isSelected ? external_wp_blockEditor_.InnerBlocks.ButtonBlockAppender : ''\n })))));\n};\n\n/* harmony default export */ var edit = (Edit);\n;// CONCATENATED MODULE: ./src/blocks/blocks/business-hours/save.js\n\n\n/**\n * WordPress dependencies\n */\n\n\nconst Save = ({\n attributes,\n className\n}) => {\n return (0,external_wp_element_.createElement)(\"div\", {\n className: className,\n id: attributes.id\n }, (0,external_wp_element_.createElement)(\"div\", {\n className: \"otter-business-hour__container\"\n }, (0,external_wp_element_.createElement)(\"div\", {\n className: \"otter-business-hour__title\"\n }, (0,external_wp_element_.createElement)(external_wp_blockEditor_.RichText.Content, {\n value: attributes.title,\n tagName: \"span\"\n })), (0,external_wp_element_.createElement)(\"div\", {\n className: \"otter-business-hour__content\"\n }, (0,external_wp_element_.createElement)(external_wp_blockEditor_.InnerBlocks.Content, null))));\n};\n\n/* harmony default export */ var save = (Save);\n;// CONCATENATED MODULE: ./src/blocks/blocks/business-hours/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\n\n\nif (Boolean(window.themeisleGutenberg.hasNeveSupport.isBoosterActive)) {\n (0,external_wp_blocks_.registerBlockType)('themeisle-blocks/business-hours', {\n title: (0,external_wp_i18n_.__)('Business Hours', 'otter-blocks'),\n description: (0,external_wp_i18n_.__)('Display your business schedule on your website.', 'otter-blocks'),\n icon: receipt/* default */.Z,\n category: 'themeisle-blocks',\n keywords: ['business', 'schedule', 'time'],\n attributes: business_hours_attributes,\n supports: {\n align: ['wide', 'full']\n },\n styles: [{\n name: 'default',\n label: (0,external_wp_i18n_.__)('default', 'otter-blocks'),\n isDefault: true\n }, {\n name: 'black-white',\n label: (0,external_wp_i18n_.__)('Black & White', 'otter-blocks')\n }],\n edit: edit,\n save: save\n });\n} else {\n (0,external_wp_blocks_.registerBlockType)('themeisle-blocks/business-hours', {\n title: (0,external_wp_i18n_.__)('Business Hours', 'otter-blocks'),\n description: (0,external_wp_i18n_.__)('Display your business schedule on your website.', 'otter-blocks'),\n icon: receipt/* default */.Z,\n category: 'themeisle-blocks',\n keywords: ['business', 'schedule', 'time'],\n attributes: business_hours_attributes,\n supports: {\n inserter: false\n },\n edit: () => (0,external_wp_element_.createElement)(external_wp_components_.Placeholder, null, (0,external_wp_i18n_.__)('You need to have Neve Pro installed to edit Business Hours block.', 'otter-blocks')),\n save: save\n });\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFLLEVBQUVWLHdCQUFFLENBQUUsZUFBRixFQUFtQixjQUFuQjtBQUZWLEtBTk8sQ0FkNkM7QUF5QnJEd0MsSUFBQUEsSUF6QnFEO0FBMEJyREMsSUFBQUEsSUFBSUEsRUFBQUEsSUFBQUE7QUExQmlELEdBQXJDLENBQWpCO0FBNEJBLENBN0JELE1BNkJPO0FBQ05MLEVBQUFBLHlDQUFpQixDQUFFLGlDQUFGLEVBQXFDO0FBQ3JEbEQsSUFBQUEsS0FBSyxFQUFFYyx3QkFBRSxDQUFFLGdCQUFGLEVBQW9CLGNBQXBCLENBRDRDO0FBRXJEK0MsSUFBQUEsV0FBVyxFQUFFL0Msd0JBQUUsQ0FBRSxpREFBRixFQUFxRCxjQUFyRCxDQUZzQztBQUdyRHVDLElBQUFBLElBSHFEO0FBSXJEUyxJQUFBQSxRQUFRLEVBQUUsa0JBSjJDO0FBS3JEQyxJQUFBQSxRQUFRLEVBQUUsQ0FDVCxVQURTLEVBRVQsVUFGUyxFQUdULE1BSFMsQ0FMMkM7QUFVckRsRSxJQUFBQSxVQVZxRDtBQVdyRG1FLElBQUFBLFFBQVEsRUFBRTtBQUNUSyxNQUFBQSxRQUFRLEVBQUU7QUFERCxLQVgyQztBQWNyRGYsSUFBQUEsSUFBSSxFQUFFLE1BQU0sdUNBQUMsbUNBQUQsUUFBZXhDLHdCQUFFLENBQUUsbUVBQUYsRUFBdUUsY0FBdkUsQ0FBakIsQ0FkeUM7QUFlckR5QyxJQUFBQSxJQUFJQSxFQUFBQSxJQUFBQTtBQWZpRCxHQUFyQyxDQUFqQjtBQWlCQSIsInNvdXJjZXMiOlsid2VicGFjazovL290dGVyLWJsb2Nrcy8uL3NyYy9ibG9ja3MvYmxvY2tzL2J1c2luZXNzLWhvdXJzL2F0dHJpYnV0ZXMuanM/MTNhNCIsIndlYnBhY2s6Ly9vdHRlci1ibG9ja3MvLi9zcmMvYmxvY2tzL2Jsb2Nrcy9idXNpbmVzcy1ob3Vycy9jb250cm9scy5qcz9hMGIzIiwid2VicGFjazovL290dGVyLWJsb2Nrcy8uL3NyYy9ibG9ja3MvYmxvY2tzL2J1c2luZXNzLWhvdXJzL2luc3BlY3Rvci5qcz84ZTgwIiwid2VicGFjazovL290dGVyLWJsb2Nrcy8uL3NyYy9ibG9ja3MvYmxvY2tzL2J1c2luZXNzLWhvdXJzL2VkaXQuanM/MjIyNyIsIndlYnBhY2s6Ly9vdHRlci1ibG9ja3MvLi9zcmMvYmxvY2tzL2Jsb2Nrcy9idXNpbmVzcy1ob3Vycy9zYXZlLmpzPzNhODAiLCJ3ZWJwYWNrOi8vb3R0ZXItYmxvY2tzLy4vc3JjL2Jsb2Nrcy9ibG9ja3MvYnVzaW5lc3MtaG91cnMvaW5kZXguanM/M2E2ZCJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBhdHRyaWJ1dGVzID0ge1xuXHRpZDoge1xuXHRcdHR5cGU6ICdzdHJpbmcnXG5cdH0sXG5cdHRpdGxlOiB7XG5cdFx0dHlwZTogJ3N0cmluZydcblx0fSxcblx0dGl0bGVBbGlnbm1lbnQ6IHtcblx0XHR0eXBlOiAnc3RyaW5nJ1xuXHR9LFxuXHR0aXRsZUZvbnRTaXplOiB7XG5cdFx0dHlwZTogJ251bWJlcidcblx0fSxcblx0dGl0bGVDb2xvcjoge1xuXHRcdHR5cGU6ICdzdHJpbmcnXG5cdH0sXG5cdGl0ZW1zRm9udFNpemU6IHtcblx0XHR0eXBlOiAnbnVtYmVyJ1xuXHR9LFxuXHRiYWNrZ3JvdW5kQ29sb3I6IHtcblx0XHR0eXBlOiAnc3RyaW5nJ1xuXHR9LFxuXHRnYXA6IHtcblx0XHR0eXBlOiAnbnVtYmVyJ1xuXHR9LFxuXHRib3JkZXJXaWR0aDoge1xuXHRcdHR5cGU6ICdudW1iZXInXG5cdH0sXG5cdGJvcmRlckNvbG9yOiB7XG5cdFx0dHlwZTogJ3N0cmluZydcblx0fSxcblx0Ym9yZGVyUmFkaXVzOiB7XG5cdFx0dHlwZTogJ251bWJlcidcblx0fVxufTtcblxuZXhwb3J0IGRlZmF1bHQgYXR0cmlidXRlcztcbiIsIi8qKlxuICogV29yZFByZXNzIGRlcGVuZGVuY2llcy5cbiAqL1xuaW1wb3J0IHtcblx0QWxpZ25tZW50Q29udHJvbCxcblx0QmxvY2tDb250cm9sc1xufSBmcm9tICdAd29yZHByZXNzL2Jsb2NrLWVkaXRvcic7XG5cbmNvbnN0IENvbnRyb2xzID0gKHtcblx0YXR0cmlidXRlcyxcblx0c2V0QXR0cmlidXRlc1xufSkgPT4ge1xuXHRyZXR1cm4gKFxuXHRcdDxCbG9ja0NvbnRyb2xzPlxuXHRcdFx0PEFsaWdubWVudENvbnRyb2xcblx0XHRcdFx0dmFsdWU9eyBhdHRyaWJ1dGVzLnRpdGxlQWxpZ25tZW50IH1cblx0XHRcdFx0b25DaGFuZ2U9eyB0aXRsZUFsaWdubWVudCA9PiBzZXRBdHRyaWJ1dGVzKHsgdGl0bGVBbGlnbm1lbnQgfSkgfVxuXHRcdFx0Lz5cblx0XHQ8L0Jsb2NrQ29udHJvbHM+XG5cdCk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBDb250cm9scztcbiIsIi8qKlxuICogV29yZFByZXNzIGRlcGVuZGVuY2llc1xuICovXG5pbXBvcnQgeyBfXyB9IGZyb20gJ0B3b3JkcHJlc3MvaTE4bic7XG5cbmltcG9ydCB7XG5cdENvbnRyYXN0Q2hlY2tlcixcblx0SW5zcGVjdG9yQ29udHJvbHMsXG5cdFBhbmVsQ29sb3JTZXR0aW5nc1xufSBmcm9tICdAd29yZHByZXNzL2Jsb2NrLWVkaXRvcic7XG5cbmltcG9ydCB7XG5cdFBhbmVsQm9keSxcblx0UmFuZ2VDb250cm9sXG59IGZyb20gJ0B3b3JkcHJlc3MvY29tcG9uZW50cyc7XG5cbmNvbnN0IEluc3BlY3RvciA9ICh7XG5cdGF0dHJpYnV0ZXMsXG5cdHNldEF0dHJpYnV0ZXNcbn0pID0+IHtcblx0cmV0dXJuIChcblx0XHQ8SW5zcGVjdG9yQ29udHJvbHM+XG5cdFx0XHQ8UGFuZWxCb2R5XG5cdFx0XHRcdHRpdGxlPXsgX18oICdTZXR0aW5ncycsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0PlxuXHRcdFx0XHQ8UmFuZ2VDb250cm9sXG5cdFx0XHRcdFx0bGFiZWw9eyBfXyggJ0dhcCcsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHRcdHZhbHVlPXsgYXR0cmlidXRlcy5nYXAgfVxuXHRcdFx0XHRcdG9uQ2hhbmdlPXsgdmFsdWUgPT4gc2V0QXR0cmlidXRlcyh7IGdhcDogTnVtYmVyKCB2YWx1ZSApIH0pIH1cblx0XHRcdFx0XHRtaW49eyAwIH1cblx0XHRcdFx0XHRtYXg9eyA2MCB9XG5cdFx0XHRcdC8+XG5cblx0XHRcdFx0PFJhbmdlQ29udHJvbFxuXHRcdFx0XHRcdGxhYmVsPXsgX18oICdUaXRsZSBGb250IFNpemUnLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdFx0XHR2YWx1ZT17IGF0dHJpYnV0ZXMudGl0bGVGb250U2l6ZSB9XG5cdFx0XHRcdFx0b25DaGFuZ2U9eyB2YWx1ZSA9PiBzZXRBdHRyaWJ1dGVzKHsgdGl0bGVGb250U2l6ZTogTnVtYmVyKCB2YWx1ZSApIH0pIH1cblx0XHRcdFx0XHRtaW49eyAwIH1cblx0XHRcdFx0XHRtYXg9eyA2MCB9XG5cdFx0XHRcdC8+XG5cblx0XHRcdFx0PFJhbmdlQ29udHJvbFxuXHRcdFx0XHRcdGxhYmVsPXsgX18oICdJdGVtcyBGb250IFNpemUnLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdFx0XHR2YWx1ZT17IGF0dHJpYnV0ZXMuaXRlbXNGb250U2l6ZSB9XG5cdFx0XHRcdFx0b25DaGFuZ2U9eyB2YWx1ZSA9PiBzZXRBdHRyaWJ1dGVzKHsgaXRlbXNGb250U2l6ZTogTnVtYmVyKCB2YWx1ZSApIH0pIH1cblx0XHRcdFx0XHRtaW49eyAwIH1cblx0XHRcdFx0XHRtYXg9eyA2MCB9XG5cdFx0XHRcdC8+XG5cblx0XHRcdFx0PFJhbmdlQ29udHJvbFxuXHRcdFx0XHRcdGxhYmVsPXsgX18oICdCb3JkZXIgUmFkaXVzJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdFx0dmFsdWU9eyBhdHRyaWJ1dGVzLmJvcmRlclJhZGl1cyB9XG5cdFx0XHRcdFx0b25DaGFuZ2U9eyB2YWx1ZSA9PiBzZXRBdHRyaWJ1dGVzKHsgYm9yZGVyUmFkaXVzOiBOdW1iZXIoIHZhbHVlICkgfSkgfVxuXHRcdFx0XHRcdG1pbj17IDAgfVxuXHRcdFx0XHRcdG1heD17IDYwIH1cblx0XHRcdFx0Lz5cblxuXHRcdFx0XHQ8UmFuZ2VDb250cm9sXG5cdFx0XHRcdFx0bGFiZWw9eyBfXyggJ0JvcmRlciBXaWR0aCcsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHRcdHZhbHVlPXsgYXR0cmlidXRlcy5ib3JkZXJXaWR0aCB9XG5cdFx0XHRcdFx0b25DaGFuZ2U9eyB2YWx1ZSA9PiBzZXRBdHRyaWJ1dGVzKHsgYm9yZGVyV2lkdGg6IE51bWJlciggdmFsdWUgKSB9KSB9XG5cdFx0XHRcdFx0bWluPXsgMCB9XG5cdFx0XHRcdFx0bWF4PXsgMTIwIH1cblx0XHRcdFx0Lz5cblx0XHRcdDwvUGFuZWxCb2R5PlxuXG5cdFx0XHQ8UGFuZWxDb2xvclNldHRpbmdzXG5cdFx0XHRcdHRpdGxlPXsgX18oICdDb2xvcicsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHRpbml0aWFsT3Blbj17IGZhbHNlIH1cblx0XHRcdFx0Y29sb3JTZXR0aW5ncz17IFtcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHR2YWx1ZTogYXR0cmlidXRlcy50aXRsZUNvbG9yLFxuXHRcdFx0XHRcdFx0b25DaGFuZ2U6IHRpdGxlQ29sb3IgPT4gc2V0QXR0cmlidXRlcyh7IHRpdGxlQ29sb3IgfSksXG5cdFx0XHRcdFx0XHRsYWJlbDogX18oICdUaXRsZScsICdvdHRlci1ibG9ja3MnIClcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdHZhbHVlOiBhdHRyaWJ1dGVzLmJhY2tncm91bmRDb2xvcixcblx0XHRcdFx0XHRcdG9uQ2hhbmdlOiBiYWNrZ3JvdW5kQ29sb3IgPT4gc2V0QXR0cmlidXRlcyh7IGJhY2tncm91bmRDb2xvciB9KSxcblx0XHRcdFx0XHRcdGxhYmVsOiBfXyggJ0JhY2tncm91bmQnLCAnb3R0ZXItYmxvY2tzJyApXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHR2YWx1ZTogYXR0cmlidXRlcy5ib3JkZXJDb2xvcixcblx0XHRcdFx0XHRcdG9uQ2hhbmdlOiBib3JkZXJDb2xvciA9PiBzZXRBdHRyaWJ1dGVzKHsgYm9yZGVyQ29sb3IgfSksXG5cdFx0XHRcdFx0XHRsYWJlbDogX18oICdCb3JkZXInLCAnb3R0ZXItYmxvY2tzJyApXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRdIH1cblx0XHRcdD5cblx0XHRcdFx0PENvbnRyYXN0Q2hlY2tlclxuXHRcdFx0XHRcdHsgLi4ue1xuXHRcdFx0XHRcdFx0dGV4dENvbG9yOiBhdHRyaWJ1dGVzLnRpdGxlQ29sb3IsXG5cdFx0XHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3I6IGF0dHJpYnV0ZXMuYmFja2dyb3VuZENvbG9yXG5cdFx0XHRcdFx0fSB9XG5cdFx0XHRcdC8+XG5cdFx0XHQ8L1BhbmVsQ29sb3JTZXR0aW5ncz5cblx0XHQ8L0luc3BlY3RvckNvbnRyb2xzPlxuXHQpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgSW5zcGVjdG9yO1xuIiwiLyoqIEBqc3gganN4ICovXG5cbi8qKlxuICogRXh0ZXJuYWwgZGVwZW5kZW5jaWVzXG4gKi9cbmltcG9ydCB7XG5cdGNzcyxcblx0anN4XG59IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcblxuLyoqXG4gKiBXb3JkUHJlc3MgZGVwZW5kZW5jaWVzXG4gKi9cbmltcG9ydCB7IF9fIH0gZnJvbSAnQHdvcmRwcmVzcy9pMThuJztcblxuaW1wb3J0IHtcblx0SW5uZXJCbG9ja3MsXG5cdFJpY2hUZXh0XG59IGZyb20gJ0B3b3JkcHJlc3MvYmxvY2stZWRpdG9yJztcblxuaW1wb3J0IHtcblx0RnJhZ21lbnQsXG5cdHVzZUVmZmVjdFxufSBmcm9tICdAd29yZHByZXNzL2VsZW1lbnQnO1xuXG4vKipcbiAqIEludGVybmFsIGRlcGVuZGVuY2llc1xuICovXG5pbXBvcnQgeyBibG9ja0luaXQgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2Jsb2NrLXV0aWxpdHkuanMnO1xuaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4vYXR0cmlidXRlcy5qcyc7XG5pbXBvcnQgQ29udHJvbHMgZnJvbSAnLi9jb250cm9scy5qcyc7XG5pbXBvcnQgSW5zcGVjdG9yIGZyb20gJy4vaW5zcGVjdG9yLmpzJztcblxuY29uc3QgRWRpdCA9ICh7XG5cdGF0dHJpYnV0ZXMsXG5cdHNldEF0dHJpYnV0ZXMsXG5cdGNsYXNzTmFtZSxcblx0aXNTZWxlY3RlZCxcblx0Y2xpZW50SWRcbn0pID0+IHtcblx0dXNlRWZmZWN0KCAoKSA9PiB7XG5cdFx0Y29uc3QgdW5zdWJzY3JpYmUgPSBibG9ja0luaXQoIGNsaWVudElkLCBkZWZhdWx0QXR0cmlidXRlcyApO1xuXHRcdHJldHVybiAoKSA9PiB1bnN1YnNjcmliZSggYXR0cmlidXRlcy5pZCApO1xuXHR9LCBbIGF0dHJpYnV0ZXMuaWQgXSk7XG5cblx0Y29uc3Qgc3R5bGUgPSB7XG5cdFx0Y29udGFpbmVyOiB7XG5cdFx0XHRiYWNrZ3JvdW5kQ29sb3I6IGF0dHJpYnV0ZXMuYmFja2dyb3VuZENvbG9yLFxuXHRcdFx0Ym9yZGVyUmFkaXVzOiBhdHRyaWJ1dGVzLmJvcmRlclJhZGl1cyArICdweCcsXG5cdFx0XHRib3JkZXI6IGF0dHJpYnV0ZXMuYm9yZGVyV2lkdGggJiYgYCR7IGF0dHJpYnV0ZXMuYm9yZGVyV2lkdGggfXB4IHNvbGlkICR7IGF0dHJpYnV0ZXMuYm9yZGVyQ29sb3IgfHwgJyMwMDAwMDAnIH1gXG5cdFx0fSxcblx0XHR0aXRsZToge1xuXHRcdFx0dGV4dEFsaWduOiBhdHRyaWJ1dGVzLnRpdGxlQWxpZ25tZW50LFxuXHRcdFx0Zm9udFNpemU6IGF0dHJpYnV0ZXMudGl0bGVGb250U2l6ZSArICdweCcsXG5cdFx0XHRjb2xvcjogYXR0cmlidXRlcy50aXRsZUNvbG9yXG5cdFx0fVxuXHR9O1xuXG5cdGNvbnN0IGNvbnRlbnRDU1MgPSBjc3NgXG5cdFx0Lm90dGVyLWJ1c2luZXNzLWhvdXJfX2NvbnRhaW5lciAub3R0ZXItYnVzaW5lc3MtaG91cl9fY29udGVudCAud3AtYmxvY2stdGhlbWVpc2xlLWJsb2Nrcy1idXNpbmVzcy1ob3Vycy1pdGVtIHtcblx0XHRcdGZvbnQtc2l6ZTogJHsgYXR0cmlidXRlcy5pdGVtc0ZvbnRTaXplIH1weDtcblx0XHRcdHBhZGRpbmctdG9wOiAkeyBhdHRyaWJ1dGVzLmdhcCB9cHg7XG5cdFx0XHRwYWRkaW5nLWJvdHRvbTogJHsgYXR0cmlidXRlcy5nYXAgfXB4O1xuXHRcdH1cblxuXHRcdC5vdHRlci1idXNpbmVzcy1ob3VyX19jb250YWluZXIgLm90dGVyLWJ1c2luZXNzLWhvdXJfX2NvbnRlbnQgLmJsb2NrLWVkaXRvci1ibG9jay1saXN0X19ibG9jazpsYXN0LWNoaWxkIC53cC1ibG9jay10aGVtZWlzbGUtYmxvY2tzLWJ1c2luZXNzLWhvdXJzLWl0ZW0ge1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogMCAwICR7IGF0dHJpYnV0ZXMuYm9yZGVyUmFkaXVzIHx8IDAgfXB4ICR7IGF0dHJpYnV0ZXMuYm9yZGVyUmFkaXVzIHx8IDAgfXB4O1xuXHRcdH1cblx0YDtcblxuXHRyZXR1cm4gKFxuXHRcdDxGcmFnbWVudD5cblx0XHRcdDxDb250cm9sc1xuXHRcdFx0XHRhdHRyaWJ1dGVzPXsgYXR0cmlidXRlcyB9XG5cdFx0XHRcdHNldEF0dHJpYnV0ZXM9eyBzZXRBdHRyaWJ1dGVzIH1cblx0XHRcdC8+XG5cblx0XHRcdDxJbnNwZWN0b3Jcblx0XHRcdFx0YXR0cmlidXRlcz17IGF0dHJpYnV0ZXMgfVxuXHRcdFx0XHRzZXRBdHRyaWJ1dGVzPXsgc2V0QXR0cmlidXRlcyB9XG5cdFx0XHQvPlxuXG5cdFx0XHQ8ZGl2XG5cdFx0XHRcdGNsYXNzTmFtZT17IGNsYXNzTmFtZSB9XG5cdFx0XHRcdGlkPXsgYXR0cmlidXRlcy5pZCB9XG5cdFx0XHRcdHN0eWxlPXsgc3R5bGUuY29udGFpbmVyIH1cblx0XHRcdFx0Y3NzPXsgY29udGVudENTUyB9XG5cdFx0XHQ+XG5cdFx0XHRcdDxkaXYgY2xhc3NOYW1lPVwib3R0ZXItYnVzaW5lc3MtaG91cl9fY29udGFpbmVyXCI+XG5cdFx0XHRcdFx0PGRpdlxuXHRcdFx0XHRcdFx0c3R5bGU9eyBzdHlsZS50aXRsZSB9XG5cdFx0XHRcdFx0XHRjbGFzc05hbWU9XCJvdHRlci1idXNpbmVzcy1ob3VyX190aXRsZVwiXG5cdFx0XHRcdFx0PlxuXHRcdFx0XHRcdFx0PFJpY2hUZXh0XG5cdFx0XHRcdFx0XHRcdHBsYWNlaG9sZGVyPXsgX18oICdPcGVuaW5nIEhvdXJzJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdFx0XHRcdHZhbHVlPXsgYXR0cmlidXRlcy50aXRsZSB9XG5cdFx0XHRcdFx0XHRcdG9uQ2hhbmdlPXsgdGl0bGUgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdHNldEF0dHJpYnV0ZXMoeyB0aXRsZSB9KTtcblx0XHRcdFx0XHRcdFx0fSB9XG5cdFx0XHRcdFx0XHRcdHRhZ05hbWU9XCJzcGFuXCJcblx0XHRcdFx0XHRcdC8+XG5cdFx0XHRcdFx0PC9kaXY+XG5cblx0XHRcdFx0XHQ8ZGl2IGNsYXNzTmFtZT1cIm90dGVyLWJ1c2luZXNzLWhvdXJfX2NvbnRlbnRcIj5cblx0XHRcdFx0XHRcdDxJbm5lckJsb2Nrc1xuXHRcdFx0XHRcdFx0XHRhbGxvd2VkQmxvY2tzPXsgW1xuXHRcdFx0XHRcdFx0XHRcdCdjb3JlL3NlcGFyYXRvcicsXG5cdFx0XHRcdFx0XHRcdFx0J3RoZW1laXNsZS1ibG9ja3MvYnVzaW5lc3MtaG91cnMtaXRlbSdcblx0XHRcdFx0XHRcdFx0XSB9XG5cdFx0XHRcdFx0XHRcdHRlbXBsYXRlPXsgW1xuXHRcdFx0XHRcdFx0XHRcdFtcblx0XHRcdFx0XHRcdFx0XHRcdCd0aGVtZWlzbGUtYmxvY2tzL2J1c2luZXNzLWhvdXJzLWl0ZW0nLFxuXHRcdFx0XHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRsYWJlbDogX18oICdNb25kYXknLCAnb3R0ZXItYmxvY2tzJyApLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHR0aW1lOiBfXyggJzA5OjAwIEFNIC0gMDU6MDAgUE0nLCAnb3R0ZXItYmxvY2tzJyApXG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XSxcblx0XHRcdFx0XHRcdFx0XHRbXG5cdFx0XHRcdFx0XHRcdFx0XHQndGhlbWVpc2xlLWJsb2Nrcy9idXNpbmVzcy1ob3Vycy1pdGVtJyxcblx0XHRcdFx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0bGFiZWw6IF9fKCAnVHVlc2RheScsICdvdHRlci1ibG9ja3MnICksXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHRpbWU6IF9fKCAnMDk6MDAgQU0gLSAwNTowMCBQTScsICdvdHRlci1ibG9ja3MnIClcblx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRdLFxuXHRcdFx0XHRcdFx0XHRcdFtcblx0XHRcdFx0XHRcdFx0XHRcdCd0aGVtZWlzbGUtYmxvY2tzL2J1c2luZXNzLWhvdXJzLWl0ZW0nLFxuXHRcdFx0XHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRsYWJlbDogX18oICdXZWRuZXNkYXknLCAnb3R0ZXItYmxvY2tzJyApLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHR0aW1lOiBfXyggJzA5OjAwIEFNIC0gMDU6MDAgUE0nLCAnb3R0ZXItYmxvY2tzJyApXG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XSxcblx0XHRcdFx0XHRcdFx0XHRbXG5cdFx0XHRcdFx0XHRcdFx0XHQndGhlbWVpc2xlLWJsb2Nrcy9idXNpbmVzcy1ob3Vycy1pdGVtJyxcblx0XHRcdFx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0bGFiZWw6IF9fKCAnVGh1cnNkYXknLCAnb3R0ZXItYmxvY2tzJyApLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHR0aW1lOiBfXyggJzA5OjAwIEFNIC0gMDU6MDAgUE0nLCAnb3R0ZXItYmxvY2tzJyApXG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XSxcblx0XHRcdFx0XHRcdFx0XHRbXG5cdFx0XHRcdFx0XHRcdFx0XHQndGhlbWVpc2xlLWJsb2Nrcy9idXNpbmVzcy1ob3Vycy1pdGVtJyxcblx0XHRcdFx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0bGFiZWw6IF9fKCAnRnJpZGF5JywgJ290dGVyLWJsb2NrcycgKSxcblx0XHRcdFx0XHRcdFx0XHRcdFx0dGltZTogX18oICcwOTowMCBBTSAtIDA1OjAwIFBNJywgJ290dGVyLWJsb2NrcycgKVxuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdF0sXG5cdFx0XHRcdFx0XHRcdFx0W1xuXHRcdFx0XHRcdFx0XHRcdFx0J3RoZW1laXNsZS1ibG9ja3MvYnVzaW5lc3MtaG91cnMtaXRlbScsXG5cdFx0XHRcdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGxhYmVsOiBfXyggJ1NhdHVyZGF5JywgJ290dGVyLWJsb2NrcycgKSxcblx0XHRcdFx0XHRcdFx0XHRcdFx0dGltZTogX18oICdDbG9zZWQnLCAnb3R0ZXItYmxvY2tzJyApLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHR0aW1lQ29sb3I6ICcjRjgwMDJBJ1xuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdF0sXG5cdFx0XHRcdFx0XHRcdFx0W1xuXHRcdFx0XHRcdFx0XHRcdFx0J3RoZW1laXNsZS1ibG9ja3MvYnVzaW5lc3MtaG91cnMtaXRlbScsXG5cdFx0XHRcdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGxhYmVsOiBfXyggJ1N1bmRheScsICdvdHRlci1ibG9ja3MnICksXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHRpbWU6IF9fKCAnQ2xvc2VkJywgJ290dGVyLWJsb2NrcycgKSxcblx0XHRcdFx0XHRcdFx0XHRcdFx0dGltZUNvbG9yOiAnI0Y4MDAyQSdcblx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRdXG5cdFx0XHRcdFx0XHRcdF0gfVxuXHRcdFx0XHRcdFx0XHRyZW5kZXJBcHBlbmRlcj17IGlzU2VsZWN0ZWQgPyBJbm5lckJsb2Nrcy5CdXR0b25CbG9ja0FwcGVuZGVyIDogJycgfVxuXHRcdFx0XHRcdFx0Lz5cblx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHQ8L2Rpdj5cblx0XHQ8L0ZyYWdtZW50PlxuXHQpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgRWRpdDtcbiIsIi8qKlxuICogV29yZFByZXNzIGRlcGVuZGVuY2llc1xuICovXG5pbXBvcnQge1xuXHRJbm5lckJsb2Nrcyxcblx0UmljaFRleHRcbn0gZnJvbSAnQHdvcmRwcmVzcy9ibG9jay1lZGl0b3InO1xuXG5jb25zdCBTYXZlID0gKHtcblx0YXR0cmlidXRlcyxcblx0Y2xhc3NOYW1lXG59KSA9PiB7XG5cdHJldHVybiAoXG5cdFx0PGRpdlxuXHRcdFx0Y2xhc3NOYW1lPXsgY2xhc3NOYW1lIH1cblx0XHRcdGlkPXsgYXR0cmlidXRlcy5pZCB9XG5cdFx0PlxuXHRcdFx0PGRpdiBjbGFzc05hbWU9XCJvdHRlci1idXNpbmVzcy1ob3VyX19jb250YWluZXJcIj5cblx0XHRcdFx0PGRpdiBjbGFzc05hbWU9XCJvdHRlci1idXNpbmVzcy1ob3VyX190aXRsZVwiPlxuXHRcdFx0XHRcdDxSaWNoVGV4dC5Db250ZW50XG5cdFx0XHRcdFx0XHR2YWx1ZT17IGF0dHJpYnV0ZXMudGl0bGUgfVxuXHRcdFx0XHRcdFx0dGFnTmFtZT1cInNwYW5cIlxuXHRcdFx0XHRcdC8+XG5cdFx0XHRcdDwvZGl2PlxuXG5cdFx0XHRcdDxkaXYgY2xhc3NOYW1lPVwib3R0ZXItYnVzaW5lc3MtaG91cl9fY29udGVudFwiPlxuXHRcdFx0XHRcdDxJbm5lckJsb2Nrcy5Db250ZW50IC8+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0PC9kaXY+XG5cdFx0PC9kaXY+XG5cdCk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBTYXZlO1xuIiwiLyoqXG4gKiBXb3JkUHJlc3MgZGVwZW5kZW5jaWVzXG4gKi9cbmltcG9ydCB7IF9fIH0gZnJvbSAnQHdvcmRwcmVzcy9pMThuJztcblxuaW1wb3J0IHsgcmVnaXN0ZXJCbG9ja1R5cGUgfSBmcm9tICdAd29yZHByZXNzL2Jsb2Nrcyc7XG5cbmltcG9ydCB7IFBsYWNlaG9sZGVyIH0gZnJvbSAnQHdvcmRwcmVzcy9jb21wb25lbnRzJztcblxuLyoqXG4gKiBJbnRlcm5hbCBkZXBlbmRlbmNpZXNcbiAqL1xuaW1wb3J0ICcuL3N0eWxlLnNjc3MnO1xuaW1wb3J0ICcuL2VkaXRvci5zY3NzJztcbmltcG9ydCB7IHJlY2VpcHQgYXMgaWNvbiB9IGZyb20gJ0B3b3JkcHJlc3MvaWNvbnMnO1xuaW1wb3J0IGF0dHJpYnV0ZXMgZnJvbSAnLi9hdHRyaWJ1dGVzLmpzJztcbmltcG9ydCBlZGl0IGZyb20gJy4vZWRpdC5qcyc7XG5pbXBvcnQgc2F2ZSBmcm9tICcuL3NhdmUuanMnO1xuXG5pZiAoIEJvb2xlYW4oIHdpbmRvdy50aGVtZWlzbGVHdXRlbmJlcmcuaGFzTmV2ZVN1cHBvcnQuaXNCb29zdGVyQWN0aXZlICkgKSB7XG5cdHJlZ2lzdGVyQmxvY2tUeXBlKCAndGhlbWVpc2xlLWJsb2Nrcy9idXNpbmVzcy1ob3VycycsIHtcblx0XHR0aXRsZTogX18oICdCdXNpbmVzcyBIb3VycycsICdvdHRlci1ibG9ja3MnICksXG5cdFx0ZGVzY3JpcHRpb246IF9fKCAnRGlzcGxheSB5b3VyIGJ1c2luZXNzIHNjaGVkdWxlIG9uIHlvdXIgd2Vic2l0ZS4nLCAnb3R0ZXItYmxvY2tzJyApLFxuXHRcdGljb24sXG5cdFx0Y2F0ZWdvcnk6ICd0aGVtZWlzbGUtYmxvY2tzJyxcblx0XHRrZXl3b3JkczogW1xuXHRcdFx0J2J1c2luZXNzJyxcblx0XHRcdCdzY2hlZHVsZScsXG5cdFx0XHQndGltZSdcblx0XHRdLFxuXHRcdGF0dHJpYnV0ZXMsXG5cdFx0c3VwcG9ydHM6IHtcblx0XHRcdGFsaWduOiBbICd3aWRlJywgJ2Z1bGwnIF1cblx0XHR9LFxuXHRcdHN0eWxlczogW1xuXHRcdFx0e1xuXHRcdFx0XHRuYW1lOiAnZGVmYXVsdCcsXG5cdFx0XHRcdGxhYmVsOiBfXyggJ2RlZmF1bHQnLCAnb3R0ZXItYmxvY2tzJyApLFxuXHRcdFx0XHRpc0RlZmF1bHQ6IHRydWVcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdG5hbWU6ICdibGFjay13aGl0ZScsXG5cdFx0XHRcdGxhYmVsOiBfXyggJ0JsYWNrICYgV2hpdGUnLCAnb3R0ZXItYmxvY2tzJyApXG5cdFx0XHR9XG5cdFx0XSxcblx0XHRlZGl0LFxuXHRcdHNhdmVcblx0fSk7XG59IGVsc2Uge1xuXHRyZWdpc3RlckJsb2NrVHlwZSggJ3RoZW1laXNsZS1ibG9ja3MvYnVzaW5lc3MtaG91cnMnLCB7XG5cdFx0dGl0bGU6IF9fKCAnQnVzaW5lc3MgSG91cnMnLCAnb3R0ZXItYmxvY2tzJyApLFxuXHRcdGRlc2NyaXB0aW9uOiBfXyggJ0Rpc3BsYXkgeW91ciBidXNpbmVzcyBzY2hlZHVsZSBvbiB5b3VyIHdlYnNpdGUuJywgJ290dGVyLWJsb2NrcycgKSxcblx0XHRpY29uLFxuXHRcdGNhdGVnb3J5OiAndGhlbWVpc2xlLWJsb2NrcycsXG5cdFx0a2V5d29yZHM6IFtcblx0XHRcdCdidXNpbmVzcycsXG5cdFx0XHQnc2NoZWR1bGUnLFxuXHRcdFx0J3RpbWUnXG5cdFx0XSxcblx0XHRhdHRyaWJ1dGVzLFxuXHRcdHN1cHBvcnRzOiB7XG5cdFx0XHRpbnNlcnRlcjogZmFsc2Vcblx0XHR9LFxuXHRcdGVkaXQ6ICgpID0+IDxQbGFjZWhvbGRlcj57IF9fKCAnWW91IG5lZWQgdG8gaGF2ZSBOZXZlIFBybyBpbnN0YWxsZWQgdG8gZWRpdCBCdXNpbmVzcyBIb3VycyBibG9jay4nLCAnb3R0ZXItYmxvY2tzJyApIH08L1BsYWNlaG9sZGVyPixcblx0XHRzYXZlXG5cdH0pO1xufVxuIl0sIm5hbWVzIjpbImF0dHJpYnV0ZXMiLCJpZCIsInR5cGUiLCJ0aXRsZSIsInRpdGxlQWxpZ25tZW50IiwidGl0bGVGb250U2l6ZSIsInRpdGxlQ29sb3IiLCJpdGVtc0ZvbnRTaXplIiwiYmFja2dyb3VuZENvbG9yIiwiZ2FwIiwiYm9yZGVyV2lkdGgiLCJib3JkZXJDb2xvciIsImJvcmRlclJhZGl1cyIsIkFsaWdubWVudENvbnRyb2wiLCJCbG9ja0NvbnRyb2xzIiwiQ29udHJvbHMiLCJzZXRBdHRyaWJ1dGVzIiwiX18iLCJDb250cmFzdENoZWNrZXIiLCJJbnNwZWN0b3JDb250cm9scyIsIlBhbmVsQ29sb3JTZXR0aW5ncyIsIlBhbmVsQm9keSIsIlJhbmdlQ29udHJvbCIsIkluc3BlY3RvciIsInZhbHVlIiwiTnVtYmVyIiwib25DaGFuZ2UiLCJsYWJlbCIsInRleHRDb2xvciIsImNzcyIsImpzeCIsIklubmVyQmxvY2tzIiwiUmljaFRleHQiLCJGcmFnbWVudCIsInVzZUVmZmVjdCIsImJsb2NrSW5pdCIsImRlZmF1bHRBdHRyaWJ1dGVzIiwiRWRpdCIsImNsYXNzTmFtZSIsImlzU2VsZWN0ZWQiLCJjbGllbnRJZCIsInVuc3Vic2NyaWJlIiwic3R5bGUiLCJjb250YWluZXIiLCJib3JkZXIiLCJ0ZXh0QWxpZ24iLCJmb250U2l6ZSIsImNvbG9yIiwiY29udGVudENTUyIsInRpbWUiLCJ0aW1lQ29sb3IiLCJCdXR0b25CbG9ja0FwcGVuZGVyIiwiU2F2ZSIsInJlZ2lzdGVyQmxvY2tUeXBlIiwiUGxhY2Vob2xkZXIiLCJyZWNlaXB0IiwiaWNvbiIsImVkaXQiLCJzYXZlIiwiQm9vbGVhbiIsIndpbmRvdyIsInRoZW1laXNsZUd1dGVuYmVyZyIsImhhc05ldmVTdXBwb3J0IiwiaXNCb29zdGVyQWN0aXZlIiwiZGVzY3JpcHRpb24iLCJjYXRlZ29yeSIsImtleXdvcmRzIiwic3VwcG9ydHMiLCJhbGlnbiIsInN0eWxlcyIsIm5hbWUiLCJpc0RlZmF1bHQiLCJpbnNlcnRlciJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///58\n")},6344:function(__unused_webpack_module,__unused_webpack___webpack_exports__,__webpack_require__){eval("\n// EXTERNAL MODULE: external [\"wp\",\"i18n\"]\nvar external_wp_i18n_ = __webpack_require__(5736);\n// EXTERNAL MODULE: external [\"wp\",\"blocks\"]\nvar external_wp_blocks_ = __webpack_require__(4981);\n// EXTERNAL MODULE: ./src/blocks/helpers/icons.js\nvar icons = __webpack_require__(340);\n;// CONCATENATED MODULE: ./src/blocks/blocks/business-hours/item/attributes.js\nconst attributes = {\n id: {\n type: 'string'\n },\n label: {\n type: 'string'\n },\n time: {\n type: 'string'\n },\n backgroundColor: {\n type: 'string'\n },\n labelColor: {\n type: 'string'\n },\n timeColor: {\n type: 'string'\n }\n};\n/* harmony default export */ var item_attributes = (attributes);\n// EXTERNAL MODULE: external [\"wp\",\"element\"]\nvar external_wp_element_ = __webpack_require__(9307);\n// EXTERNAL MODULE: external [\"wp\",\"blockEditor\"]\nvar external_wp_blockEditor_ = __webpack_require__(2175);\n// EXTERNAL MODULE: ./src/blocks/helpers/block-utility.js\nvar block_utility = __webpack_require__(5225);\n;// CONCATENATED MODULE: ./src/blocks/blocks/business-hours/item/inspector.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\nconst Inspector = ({\n attributes,\n setAttributes\n}) => {\n return (0,external_wp_element_.createElement)(external_wp_blockEditor_.InspectorControls, null, (0,external_wp_element_.createElement)(external_wp_blockEditor_.PanelColorSettings, {\n title: (0,external_wp_i18n_.__)('Color', 'otter-blocks'),\n initialOpen: false,\n colorSettings: [{\n value: attributes.backgroundColor,\n onChange: backgroundColor => setAttributes({\n backgroundColor\n }),\n label: (0,external_wp_i18n_.__)('Background', 'otter-blocks')\n }, {\n value: attributes.labelColor,\n onChange: labelColor => setAttributes({\n labelColor\n }),\n label: (0,external_wp_i18n_.__)('Label', 'otter-blocks')\n }, {\n value: attributes.timeColor,\n onChange: timeColor => setAttributes({\n timeColor\n }),\n label: (0,external_wp_i18n_.__)('Time', 'otter-blocks')\n }]\n }, (0,external_wp_element_.createElement)(external_wp_blockEditor_.ContrastChecker, {\n textColor: attributes.labelColor,\n backgroundColor: attributes.backgroundColor\n })));\n};\n\n/* harmony default export */ var inspector = (Inspector);\n;// CONCATENATED MODULE: ./src/blocks/blocks/business-hours/item/edit.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\nconst Edit = ({\n attributes,\n setAttributes,\n className,\n clientId\n}) => {\n (0,external_wp_element_.useEffect)(() => {\n const unsubscribe = (0,block_utility/* blockInit */.WX)(clientId, item_attributes);\n return () => unsubscribe(attributes.id);\n }, [attributes.id]);\n const style = {\n backgroundColor: attributes.backgroundColor\n };\n return (0,external_wp_element_.createElement)(external_wp_element_.Fragment, null, (0,external_wp_element_.createElement)(inspector, {\n attributes: attributes,\n setAttributes: setAttributes\n }), (0,external_wp_element_.createElement)(\"div\", {\n className: className,\n id: attributes.id,\n style: style\n }, (0,external_wp_element_.createElement)(\"div\", {\n className: \"otter-business-hour-item__label\",\n style: {\n color: attributes.labelColor\n }\n }, (0,external_wp_element_.createElement)(external_wp_blockEditor_.RichText, {\n placeholder: (0,external_wp_i18n_.__)('Day', 'otter-blocks'),\n value: attributes.label,\n onChange: label => {\n setAttributes({\n label\n });\n },\n tagName: \"span\"\n })), (0,external_wp_element_.createElement)(\"div\", {\n className: \"otter-business-hour-item__time\",\n style: {\n color: attributes.timeColor\n }\n }, (0,external_wp_element_.createElement)(external_wp_blockEditor_.RichText, {\n placeholder: (0,external_wp_i18n_.__)('Opening Hours', 'otter-blocks'),\n value: attributes.time,\n onChange: time => {\n setAttributes({\n time\n });\n },\n tagName: \"span\"\n }))));\n};\n\n/* harmony default export */ var edit = (Edit);\n;// CONCATENATED MODULE: ./src/blocks/blocks/business-hours/item/save.js\n\n\n/**\n * WordPress dependencies\n */\n\n\nconst Save = ({\n attributes,\n className\n}) => {\n return (0,external_wp_element_.createElement)(\"div\", {\n className: className,\n id: attributes.id\n }, (0,external_wp_element_.createElement)(\"div\", {\n className: \"otter-business-hour-item__label\"\n }, (0,external_wp_element_.createElement)(external_wp_blockEditor_.RichText.Content, {\n value: attributes.label,\n tagName: \"span\"\n })), (0,external_wp_element_.createElement)(\"div\", {\n className: \"otter-business-hour-item__time\"\n }, (0,external_wp_element_.createElement)(external_wp_blockEditor_.RichText.Content, {\n value: attributes.time,\n tagName: \"span\"\n })));\n};\n\n/* harmony default export */ var save = (Save);\n;// CONCATENATED MODULE: ./src/blocks/blocks/business-hours/item/index.js\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n(0,external_wp_blocks_.registerBlockType)('themeisle-blocks/business-hours-item', {\n title: (0,external_wp_i18n_.__)('Business Hours Item', 'otter-blocks'),\n description: (0,external_wp_i18n_.__)('Item used by Business Hours block to display the time.', 'otter-blocks'),\n icon: icons/* mapIcon */.aD,\n parent: ['themeisle-blocks/business-hours'],\n category: 'themeisle-blocks',\n keywords: ['business', 'time', 'schedule'],\n attributes: item_attributes,\n supports: {\n align: ['wide', 'full']\n },\n edit: edit,\n save: save\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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LEVBQUdBLFNBRGI7QUFFQyxNQUFFLEVBQUd2QixVQUFVLENBQUNDO0FBRmpCLEtBSUM7QUFBSyxhQUFTLEVBQUM7QUFBZixLQUNDLHVDQUFDLHlDQUFEO0FBQ0MsU0FBSyxFQUFHRCxVQUFVLENBQUNHLEtBRHBCO0FBRUMsV0FBTyxFQUFDO0FBRlQsSUFERCxDQUpELEVBV0M7QUFBSyxhQUFTLEVBQUM7QUFBZixLQUNDLHVDQUFDLHlDQUFEO0FBQ0MsU0FBSyxFQUFHSCxVQUFVLENBQUNJLElBRHBCO0FBRUMsV0FBTyxFQUFDO0FBRlQsSUFERCxDQVhELENBREQ7QUFvQkEsQ0F4QkQ7O0FBMEJBLHlDQUFld0IsSUFBZixFOztBQy9CQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUNBOztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUFDLHlDQUFpQixDQUFFLHNDQUFGLEVBQTBDO0FBQzFESyxFQUFBQSxLQUFLLEVBQUUxQix3QkFBRSxDQUFFLHFCQUFGLEVBQXlCLGNBQXpCLENBRGlEO0FBRTFEMkIsRUFBQUEsV0FBVyxFQUFFM0Isd0JBQUUsQ0FBRSx3REFBRixFQUE0RCxjQUE1RCxDQUYyQztBQUcxRHVCLEVBQUFBLElBSDBEO0FBSTFESyxFQUFBQSxNQUFNLEVBQUUsQ0FBRSxpQ0FBRixDQUprRDtBQUsxREMsRUFBQUEsUUFBUSxFQUFFLGtCQUxnRDtBQU0xREMsRUFBQUEsUUFBUSxFQUFFLENBQ1QsVUFEUyxFQUVULE1BRlMsRUFHVCxVQUhTLENBTmdEO0FBVzFEdEMsRUFBQUEsVUFYMEQ7QUFZMUR1QyxFQUFBQSxRQUFRLEVBQUU7QUFDVEMsSUFBQUEsS0FBSyxFQUFFLENBQUUsTUFBRixFQUFVLE1BQVY7QUFERSxHQVpnRDtBQWUxRFIsRUFBQUEsSUFmMEQ7QUFnQjFEQyxFQUFBQSxJQUFJQSxFQUFBQSxJQUFBQTtBQWhCc0QsQ0FBMUMsQ0FBakIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9vdHRlci1ibG9ja3MvLi9zcmMvYmxvY2tzL2Jsb2Nrcy9idXNpbmVzcy1ob3Vycy9pdGVtL2F0dHJpYnV0ZXMuanM/MzQ0NiIsIndlYnBhY2s6Ly9vdHRlci1ibG9ja3MvLi9zcmMvYmxvY2tzL2Jsb2Nrcy9idXNpbmVzcy1ob3Vycy9pdGVtL2luc3BlY3Rvci5qcz9mY2ZlIiwid2VicGFjazovL290dGVyLWJsb2Nrcy8uL3NyYy9ibG9ja3MvYmxvY2tzL2J1c2luZXNzLWhvdXJzL2l0ZW0vZWRpdC5qcz8xZmJkIiwid2VicGFjazovL290dGVyLWJsb2Nrcy8uL3NyYy9ibG9ja3MvYmxvY2tzL2J1c2luZXNzLWhvdXJzL2l0ZW0vc2F2ZS5qcz8zMDJmIiwid2VicGFjazovL290dGVyLWJsb2Nrcy8uL3NyYy9ibG9ja3MvYmxvY2tzL2J1c2luZXNzLWhvdXJzL2l0ZW0vaW5kZXguanM/NjZmMiJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBhdHRyaWJ1dGVzID0ge1xuXHRpZDoge1xuXHRcdHR5cGU6ICdzdHJpbmcnXG5cdH0sXG5cdGxhYmVsOiB7XG5cdFx0dHlwZTogJ3N0cmluZydcblx0fSxcblx0dGltZToge1xuXHRcdHR5cGU6ICdzdHJpbmcnXG5cdH0sXG5cdGJhY2tncm91bmRDb2xvcjoge1xuXHRcdHR5cGU6ICdzdHJpbmcnXG5cdH0sXG5cdGxhYmVsQ29sb3I6IHtcblx0XHR0eXBlOiAnc3RyaW5nJ1xuXHR9LFxuXHR0aW1lQ29sb3I6IHtcblx0XHR0eXBlOiAnc3RyaW5nJ1xuXHR9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBhdHRyaWJ1dGVzO1xuIiwiLyoqXG4gKiBXb3JkUHJlc3MgZGVwZW5kZW5jaWVzXG4gKi9cbmltcG9ydCB7IF9fIH0gZnJvbSAnQHdvcmRwcmVzcy9pMThuJztcblxuaW1wb3J0IHtcblx0Q29udHJhc3RDaGVja2VyLFxuXHRJbnNwZWN0b3JDb250cm9scyxcblx0UGFuZWxDb2xvclNldHRpbmdzXG59IGZyb20gJ0B3b3JkcHJlc3MvYmxvY2stZWRpdG9yJztcblxuY29uc3QgSW5zcGVjdG9yID0gKHtcblx0YXR0cmlidXRlcyxcblx0c2V0QXR0cmlidXRlc1xufSkgPT4ge1xuXHRyZXR1cm4gKFxuXHRcdDxJbnNwZWN0b3JDb250cm9scz5cblx0XHRcdDxQYW5lbENvbG9yU2V0dGluZ3Ncblx0XHRcdFx0dGl0bGU9eyBfXyggJ0NvbG9yJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdGluaXRpYWxPcGVuPXsgZmFsc2UgfVxuXHRcdFx0XHRjb2xvclNldHRpbmdzPXsgW1xuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdHZhbHVlOiBhdHRyaWJ1dGVzLmJhY2tncm91bmRDb2xvcixcblx0XHRcdFx0XHRcdG9uQ2hhbmdlOiBiYWNrZ3JvdW5kQ29sb3IgPT4gc2V0QXR0cmlidXRlcyh7IGJhY2tncm91bmRDb2xvciB9KSxcblx0XHRcdFx0XHRcdGxhYmVsOiBfXyggJ0JhY2tncm91bmQnLCAnb3R0ZXItYmxvY2tzJyApXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHR2YWx1ZTogYXR0cmlidXRlcy5sYWJlbENvbG9yLFxuXHRcdFx0XHRcdFx0b25DaGFuZ2U6IGxhYmVsQ29sb3IgPT4gc2V0QXR0cmlidXRlcyh7IGxhYmVsQ29sb3IgfSksXG5cdFx0XHRcdFx0XHRsYWJlbDogX18oICdMYWJlbCcsICdvdHRlci1ibG9ja3MnIClcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdHZhbHVlOiBhdHRyaWJ1dGVzLnRpbWVDb2xvcixcblx0XHRcdFx0XHRcdG9uQ2hhbmdlOiB0aW1lQ29sb3IgPT4gc2V0QXR0cmlidXRlcyh7IHRpbWVDb2xvciB9KSxcblx0XHRcdFx0XHRcdGxhYmVsOiBfXyggJ1RpbWUnLCAnb3R0ZXItYmxvY2tzJyApXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRdIH1cblx0XHRcdD5cblx0XHRcdFx0PENvbnRyYXN0Q2hlY2tlclxuXHRcdFx0XHRcdHsgLi4ue1xuXHRcdFx0XHRcdFx0dGV4dENvbG9yOiBhdHRyaWJ1dGVzLmxhYmVsQ29sb3IsXG5cdFx0XHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3I6IGF0dHJpYnV0ZXMuYmFja2dyb3VuZENvbG9yXG5cdFx0XHRcdFx0fSB9XG5cdFx0XHRcdC8+XG5cdFx0XHQ8L1BhbmVsQ29sb3JTZXR0aW5ncz5cblx0XHQ8L0luc3BlY3RvckNvbnRyb2xzPlxuXHQpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgSW5zcGVjdG9yO1xuIiwiLyoqXG4gKiBXb3JkUHJlc3MgZGVwZW5kZW5jaWVzXG4gKi9cbmltcG9ydCB7IF9fIH0gZnJvbSAnQHdvcmRwcmVzcy9pMThuJztcblxuaW1wb3J0IHsgUmljaFRleHQgfSBmcm9tICdAd29yZHByZXNzL2Jsb2NrLWVkaXRvcic7XG5cbmltcG9ydCB7XG5cdEZyYWdtZW50LFxuXHR1c2VFZmZlY3Rcbn0gZnJvbSAnQHdvcmRwcmVzcy9lbGVtZW50JztcblxuLyoqXG4gKiBJbnRlcm5hbCBkZXBlbmRlbmNpZXNcbiAqL1xuaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4vYXR0cmlidXRlcy5qcyc7XG5pbXBvcnQgeyBibG9ja0luaXQgfSBmcm9tICcuLi8uLi8uLi9oZWxwZXJzL2Jsb2NrLXV0aWxpdHkuanMnO1xuaW1wb3J0IEluc3BlY3RvciBmcm9tICcuL2luc3BlY3Rvci5qcyc7XG5cbmNvbnN0IEVkaXQgPSAoe1xuXHRhdHRyaWJ1dGVzLFxuXHRzZXRBdHRyaWJ1dGVzLFxuXHRjbGFzc05hbWUsXG5cdGNsaWVudElkXG59KSA9PiB7XG5cdHVzZUVmZmVjdCggKCkgPT4ge1xuXHRcdGNvbnN0IHVuc3Vic2NyaWJlID0gYmxvY2tJbml0KCBjbGllbnRJZCwgZGVmYXVsdEF0dHJpYnV0ZXMgKTtcblx0XHRyZXR1cm4gKCkgPT4gdW5zdWJzY3JpYmUoIGF0dHJpYnV0ZXMuaWQgKTtcblx0fSwgWyBhdHRyaWJ1dGVzLmlkIF0pO1xuXG5cdGNvbnN0IHN0eWxlID0ge1xuXHRcdGJhY2tncm91bmRDb2xvcjogYXR0cmlidXRlcy5iYWNrZ3JvdW5kQ29sb3Jcblx0fTtcblxuXHRyZXR1cm4gKFxuXHRcdDxGcmFnbWVudD5cblx0XHRcdDxJbnNwZWN0b3Jcblx0XHRcdFx0YXR0cmlidXRlcz17IGF0dHJpYnV0ZXMgfVxuXHRcdFx0XHRzZXRBdHRyaWJ1dGVzPXsgc2V0QXR0cmlidXRlcyB9XG5cdFx0XHQvPlxuXG5cdFx0XHQ8ZGl2XG5cdFx0XHRcdGNsYXNzTmFtZT17IGNsYXNzTmFtZSB9XG5cdFx0XHRcdGlkPXsgYXR0cmlidXRlcy5pZCB9XG5cdFx0XHRcdHN0eWxlPXsgc3R5bGUgfVxuXHRcdFx0PlxuXHRcdFx0XHQ8ZGl2XG5cdFx0XHRcdFx0Y2xhc3NOYW1lPVwib3R0ZXItYnVzaW5lc3MtaG91ci1pdGVtX19sYWJlbFwiXG5cdFx0XHRcdFx0c3R5bGU9eyB7XG5cdFx0XHRcdFx0XHRjb2xvcjogYXR0cmlidXRlcy5sYWJlbENvbG9yXG5cdFx0XHRcdFx0fSB9XG5cdFx0XHRcdD5cblx0XHRcdFx0XHQ8UmljaFRleHRcblx0XHRcdFx0XHRcdHBsYWNlaG9sZGVyPXsgX18oICdEYXknLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdFx0XHRcdHZhbHVlPXsgYXR0cmlidXRlcy5sYWJlbCB9XG5cdFx0XHRcdFx0XHRvbkNoYW5nZT17IGxhYmVsID0+IHtcblx0XHRcdFx0XHRcdFx0c2V0QXR0cmlidXRlcyh7IGxhYmVsIH0pO1xuXHRcdFx0XHRcdFx0fSB9XG5cdFx0XHRcdFx0XHR0YWdOYW1lPVwic3BhblwiXG5cdFx0XHRcdFx0Lz5cblx0XHRcdFx0PC9kaXY+XG5cblx0XHRcdFx0PGRpdlxuXHRcdFx0XHRcdGNsYXNzTmFtZT1cIm90dGVyLWJ1c2luZXNzLWhvdXItaXRlbV9fdGltZVwiXG5cdFx0XHRcdFx0c3R5bGU9eyB7XG5cdFx0XHRcdFx0XHRjb2xvcjogYXR0cmlidXRlcy50aW1lQ29sb3Jcblx0XHRcdFx0XHR9IH1cblx0XHRcdFx0PlxuXHRcdFx0XHRcdDxSaWNoVGV4dFxuXHRcdFx0XHRcdFx0cGxhY2Vob2xkZXI9eyBfXyggJ09wZW5pbmcgSG91cnMnLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdFx0XHRcdHZhbHVlPXsgYXR0cmlidXRlcy50aW1lIH1cblx0XHRcdFx0XHRcdG9uQ2hhbmdlPXsgdGltZSA9PiB7XG5cdFx0XHRcdFx0XHRcdHNldEF0dHJpYnV0ZXMoeyB0aW1lIH0pO1xuXHRcdFx0XHRcdFx0fSB9XG5cdFx0XHRcdFx0XHR0YWdOYW1lPVwic3BhblwiXG5cdFx0XHRcdFx0Lz5cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHQ8L2Rpdj5cblx0XHQ8L0ZyYWdtZW50PlxuXHQpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgRWRpdDtcbiIsIi8qKlxuICogV29yZFByZXNzIGRlcGVuZGVuY2llc1xuICovXG5pbXBvcnQgeyBSaWNoVGV4dCB9IGZyb20gJ0B3b3JkcHJlc3MvYmxvY2stZWRpdG9yJztcblxuY29uc3QgU2F2ZSA9ICh7XG5cdGF0dHJpYnV0ZXMsXG5cdGNsYXNzTmFtZVxufSkgPT4ge1xuXHRyZXR1cm4gKFxuXHRcdDxkaXZcblx0XHRcdGNsYXNzTmFtZT17IGNsYXNzTmFtZSB9XG5cdFx0XHRpZD17IGF0dHJpYnV0ZXMuaWQgfVxuXHRcdD5cblx0XHRcdDxkaXYgY2xhc3NOYW1lPVwib3R0ZXItYnVzaW5lc3MtaG91ci1pdGVtX19sYWJlbFwiPlxuXHRcdFx0XHQ8UmljaFRleHQuQ29udGVudFxuXHRcdFx0XHRcdHZhbHVlPXsgYXR0cmlidXRlcy5sYWJlbCB9XG5cdFx0XHRcdFx0dGFnTmFtZT1cInNwYW5cIlxuXHRcdFx0XHQvPlxuXHRcdFx0PC9kaXY+XG5cblx0XHRcdDxkaXYgY2xhc3NOYW1lPVwib3R0ZXItYnVzaW5lc3MtaG91ci1pdGVtX190aW1lXCI+XG5cdFx0XHRcdDxSaWNoVGV4dC5Db250ZW50XG5cdFx0XHRcdFx0dmFsdWU9eyBhdHRyaWJ1dGVzLnRpbWUgfVxuXHRcdFx0XHRcdHRhZ05hbWU9XCJzcGFuXCJcblx0XHRcdFx0Lz5cblx0XHRcdDwvZGl2PlxuXHRcdDwvZGl2PlxuXHQpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgU2F2ZTtcbiIsIi8qKlxuICogV29yZFByZXNzIGRlcGVuZGVuY2llc1xuICovXG5pbXBvcnQgeyBfXyB9IGZyb20gJ0B3b3JkcHJlc3MvaTE4bic7XG5cbmltcG9ydCB7IHJlZ2lzdGVyQmxvY2tUeXBlIH0gZnJvbSAnQHdvcmRwcmVzcy9ibG9ja3MnO1xuXG4vKipcbiAqIEludGVybmFsIGRlcGVuZGVuY2llc1xuICovXG5pbXBvcnQgeyBtYXBJY29uIGFzIGljb24gfSBmcm9tICcuLi8uLi8uLi9oZWxwZXJzL2ljb25zLmpzJztcbmltcG9ydCBhdHRyaWJ1dGVzIGZyb20gJy4vYXR0cmlidXRlcy5qcyc7XG5pbXBvcnQgZWRpdCBmcm9tICcuL2VkaXQuanMnO1xuaW1wb3J0IHNhdmUgZnJvbSAnLi9zYXZlLmpzJztcblxucmVnaXN0ZXJCbG9ja1R5cGUoICd0aGVtZWlzbGUtYmxvY2tzL2J1c2luZXNzLWhvdXJzLWl0ZW0nLCB7XG5cdHRpdGxlOiBfXyggJ0J1c2luZXNzIEhvdXJzIEl0ZW0nLCAnb3R0ZXItYmxvY2tzJyApLFxuXHRkZXNjcmlwdGlvbjogX18oICdJdGVtIHVzZWQgYnkgQnVzaW5lc3MgSG91cnMgYmxvY2sgdG8gZGlzcGxheSB0aGUgdGltZS4nLCAnb3R0ZXItYmxvY2tzJyApLFxuXHRpY29uLFxuXHRwYXJlbnQ6IFsgJ3RoZW1laXNsZS1ibG9ja3MvYnVzaW5lc3MtaG91cnMnIF0sXG5cdGNhdGVnb3J5OiAndGhlbWVpc2xlLWJsb2NrcycsXG5cdGtleXdvcmRzOiBbXG5cdFx0J2J1c2luZXNzJyxcblx0XHQndGltZScsXG5cdFx0J3NjaGVkdWxlJ1xuXHRdLFxuXHRhdHRyaWJ1dGVzLFxuXHRzdXBwb3J0czoge1xuXHRcdGFsaWduOiBbICd3aWRlJywgJ2Z1bGwnIF1cblx0fSxcblx0ZWRpdCxcblx0c2F2ZVxufSk7XG4iXSwibmFtZXMiOlsiYXR0cmlidXRlcyIsImlkIiwidHlwZSIsImxhYmVsIiwidGltZSIsImJhY2tncm91bmRDb2xvciIsImxhYmVsQ29sb3IiLCJ0aW1lQ29sb3IiLCJfXyIsIkNvbnRyYXN0Q2hlY2tlciIsIkluc3BlY3RvckNvbnRyb2xzIiwiUGFuZWxDb2xvclNldHRpbmdzIiwiSW5zcGVjdG9yIiwic2V0QXR0cmlidXRlcyIsInZhbHVlIiwib25DaGFuZ2UiLCJ0ZXh0Q29sb3IiLCJSaWNoVGV4dCIsIkZyYWdtZW50IiwidXNlRWZmZWN0IiwiZGVmYXVsdEF0dHJpYnV0ZXMiLCJibG9ja0luaXQiLCJFZGl0IiwiY2xhc3NOYW1lIiwiY2xpZW50SWQiLCJ1bnN1YnNjcmliZSIsInN0eWxlIiwiY29sb3IiLCJTYXZlIiwicmVnaXN0ZXJCbG9ja1R5cGUiLCJtYXBJY29uIiwiaWNvbiIsImVkaXQiLCJzYXZlIiwidGl0bGUiLCJkZXNjcmlwdGlvbiIsInBhcmVudCIsImNhdGVnb3J5Iiwia2V5d29yZHMiLCJzdXBwb3J0cyIsImFsaWduIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///6344\n")},3986:function(__unused_webpack_module,__unused_webpack___webpack_exports__,__webpack_require__){eval("\n// EXTERNAL MODULE: external [\"wp\",\"i18n\"]\nvar external_wp_i18n_ = __webpack_require__(5736);\n// EXTERNAL MODULE: external [\"wp\",\"blocks\"]\nvar external_wp_blocks_ = __webpack_require__(4981);\n// EXTERNAL MODULE: ./src/blocks/helpers/icons.js\nvar icons = __webpack_require__(340);\n;// CONCATENATED MODULE: ./src/blocks/blocks/button-group/button/attributes.js\nconst attributes = {\n id: {\n type: 'string'\n },\n text: {\n type: 'string',\n source: 'html',\n selector: 'span'\n },\n link: {\n type: 'string',\n source: 'attribute',\n selector: 'a',\n attribute: 'href'\n },\n newTab: {\n type: 'boolean',\n default: false\n },\n color: {\n type: 'string'\n },\n background: {\n type: 'string'\n },\n backgroundGradient: {\n type: 'string'\n },\n border: {\n type: 'string'\n },\n hoverColor: {\n type: 'string'\n },\n hoverBackground: {\n type: 'string'\n },\n hoverBackgroundGradient: {\n type: 'string'\n },\n hoverBorder: {\n type: 'string'\n },\n borderSize: {\n type: 'number'\n },\n borderRadius: {\n type: 'number'\n },\n boxShadow: {\n type: 'boolean',\n default: false\n },\n boxShadowColor: {\n type: 'string'\n },\n boxShadowColorOpacity: {\n type: 'number',\n default: 50\n },\n boxShadowBlur: {\n type: 'number',\n default: 5\n },\n boxShadowSpread: {\n type: 'number',\n default: 1\n },\n boxShadowHorizontal: {\n type: 'number',\n default: 0\n },\n boxShadowVertical: {\n type: 'number',\n default: 0\n },\n hoverBoxShadowColor: {\n type: 'string'\n },\n hoverBoxShadowColorOpacity: {\n type: 'number',\n default: 50\n },\n hoverBoxShadowBlur: {\n type: 'number',\n default: 5\n },\n hoverBoxShadowSpread: {\n type: 'number',\n default: 1\n },\n hoverBoxShadowHorizontal: {\n type: 'number',\n default: 0\n },\n hoverBoxShadowVertical: {\n type: 'number',\n default: 0\n },\n iconType: {\n type: 'string',\n default: 'none'\n },\n library: {\n type: 'string',\n default: 'fontawesome'\n },\n prefix: {\n type: 'string'\n },\n icon: {\n type: 'string'\n }\n};\n/* harmony default export */ var button_attributes = (attributes);\n// EXTERNAL MODULE: external [\"wp\",\"element\"]\nvar external_wp_element_ = __webpack_require__(9307);\n// EXTERNAL MODULE: ./node_modules/@emotion/react/dist/emotion-react.browser.esm.js + 15 modules\nvar emotion_react_browser_esm = __webpack_require__(1216);\n// EXTERNAL MODULE: ./node_modules/classnames/index.js\nvar classnames = __webpack_require__(4184);\nvar classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);\n// EXTERNAL MODULE: ./node_modules/hex-rgba/index.js\nvar hex_rgba = __webpack_require__(80);\nvar hex_rgba_default = /*#__PURE__*/__webpack_require__.n(hex_rgba);\n// EXTERNAL MODULE: external [\"wp\",\"blockEditor\"]\nvar external_wp_blockEditor_ = __webpack_require__(2175);\n// EXTERNAL MODULE: external [\"wp\",\"data\"]\nvar external_wp_data_ = __webpack_require__(9818);\n// EXTERNAL MODULE: ./src/blocks/components/link-control/index.js\nvar link_control = __webpack_require__(8504);\n;// CONCATENATED MODULE: ./src/blocks/blocks/button-group/button/controls.js\n\n\n/**\n * WordPress dependencies...\n */\n\n/**\n * Internal dependencies\n */\n\n\n\nconst Controls = ({\n attributes,\n setAttributes,\n isSelected\n}) => {\n return (0,external_wp_element_.createElement)(external_wp_blockEditor_.BlockControls, null, (0,external_wp_element_.createElement)(link_control/* default */.Z, {\n isSelected: isSelected,\n setAttributes: setAttributes,\n url: attributes.link,\n opensInNewTab: attributes.newTab\n }));\n};\n\n/* harmony default export */ var controls = (Controls);\n// EXTERNAL MODULE: external [\"wp\",\"components\"]\nvar external_wp_components_ = __webpack_require__(5609);\n// EXTERNAL MODULE: ./src/blocks/components/control-panel-control/index.js\nvar control_panel_control = __webpack_require__(2136);\n;// CONCATENATED MODULE: ./src/blocks/blocks/button-group/button/inspector.js\n\n\n/**\n * WordPress dependencies.\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\nconst IconPickerControl = (0,external_wp_element_.lazy)(() => Promise.all(/* import() */[__webpack_require__.e(189), __webpack_require__.e(110)]).then(__webpack_require__.bind(__webpack_require__, 2110)));\n\nconst Inspector = ({\n attributes,\n setAttributes\n}) => {\n const [hover, setHover] = (0,external_wp_element_.useState)(false);\n\n const changeLibrary = value => {\n setAttributes({\n library: value,\n icon: undefined,\n prefix: 'fab'\n });\n };\n\n const changeIcon = value => {\n if ('object' === typeof value) {\n setAttributes({\n icon: value.name,\n prefix: value.prefix\n });\n } else {\n setAttributes({\n icon: value\n });\n }\n };\n\n const HoverControl = () => {\n return (0,external_wp_element_.createElement)(external_wp_components_.ButtonGroup, null, (0,external_wp_element_.createElement)(external_wp_components_.Button, {\n isSmall: true,\n isSecondary: hover,\n isPrimary: !hover,\n onClick: () => setHover(false)\n }, (0,external_wp_i18n_.__)('Normal', 'otter-blocks')), (0,external_wp_element_.createElement)(external_wp_components_.Button, {\n isSmall: true,\n isSecondary: !hover,\n isPrimary: hover,\n onClick: () => setHover(true)\n }, (0,external_wp_i18n_.__)('Hover', 'otter-blocks')));\n };\n\n return (0,external_wp_element_.createElement)(external_wp_blockEditor_.InspectorControls, null, (0,external_wp_element_.createElement)(external_wp_components_.PanelBody, {\n title: (0,external_wp_i18n_.__)('Color', 'otter-blocks')\n }, (0,external_wp_element_.createElement)(HoverControl, null), !hover ? (0,external_wp_element_.createElement)(external_wp_element_.Fragment, {\n key: \"without-hover\"\n }, (0,external_wp_element_.createElement)(external_wp_blockEditor_.__experimentalColorGradientControl, {\n label: (0,external_wp_i18n_.__)('Color', 'otter-blocks'),\n colorValue: attributes.color,\n onColorChange: e => setAttributes({\n color: e\n })\n }), (0,external_wp_element_.createElement)(external_wp_blockEditor_.__experimentalColorGradientControl, {\n label: (0,external_wp_i18n_.__)('Background', 'otter-blocks'),\n colorValue: attributes.background,\n gradientValue: attributes.backgroundGradient,\n onColorChange: e => setAttributes({\n background: e\n }),\n onGradientChange: e => setAttributes({\n backgroundGradient: e\n })\n })) : (0,external_wp_element_.createElement)(external_wp_element_.Fragment, {\n key: \"with-hover\"\n }, (0,external_wp_element_.createElement)(external_wp_blockEditor_.__experimentalColorGradientControl, {\n label: (0,external_wp_i18n_.__)('Hover Color', 'otter-blocks'),\n colorValue: attributes.hoverColor,\n onColorChange: e => setAttributes({\n hoverColor: e\n })\n }), (0,external_wp_element_.createElement)(external_wp_blockEditor_.__experimentalColorGradientControl, {\n label: (0,external_wp_i18n_.__)('Hover Background', 'otter-blocks'),\n colorValue: attributes.hoverBackground,\n gradientValue: attributes.hoverBackgroundGradient,\n onColorChange: e => setAttributes({\n hoverBackground: e\n }),\n onGradientChange: e => setAttributes({\n hoverBackgroundGradient: e\n })\n }))), (0,external_wp_element_.createElement)(external_wp_components_.PanelBody, {\n title: (0,external_wp_i18n_.__)('Border & Box Shadow', 'otter-blocks'),\n initialOpen: false\n }, (0,external_wp_element_.createElement)(HoverControl, null), !hover ? (0,external_wp_element_.createElement)(external_wp_blockEditor_.__experimentalColorGradientControl, {\n label: (0,external_wp_i18n_.__)('Border', 'otter-blocks'),\n colorValue: attributes.border,\n onColorChange: e => setAttributes({\n border: e\n })\n }) : (0,external_wp_element_.createElement)(external_wp_blockEditor_.__experimentalColorGradientControl, {\n label: (0,external_wp_i18n_.__)('Hover Border', 'otter-blocks'),\n colorValue: attributes.hoverBorder,\n onColorChange: e => setAttributes({\n hoverBorder: e\n })\n }), (0,external_wp_element_.createElement)(external_wp_components_.RangeControl, {\n label: (0,external_wp_i18n_.__)('Border Width', 'otter-blocks'),\n value: attributes.borderSize,\n onChange: e => setAttributes({\n borderSize: e\n }),\n min: 0,\n max: 10\n }), (0,external_wp_element_.createElement)(external_wp_components_.RangeControl, {\n label: (0,external_wp_i18n_.__)('Border Radius', 'otter-blocks'),\n value: attributes.borderRadius,\n onChange: e => setAttributes({\n borderRadius: e\n }),\n min: 0,\n max: 100\n }), (0,external_wp_element_.createElement)(control_panel_control/* default */.Z, {\n label: (0,external_wp_i18n_.__)('Box Shadow', 'otter-blocks'),\n attributes: attributes,\n setAttributes: setAttributes,\n resetValues: {\n boxShadow: false,\n boxShadowColor: undefined,\n boxShadowColorOpacity: 50,\n boxShadowBlur: 5,\n boxShadowSpread: 1,\n boxShadowHorizontal: 0,\n boxShadowVertical: 0,\n hoverBoxShadowColor: undefined,\n hoverBoxShadowColorOpacity: 50,\n hoverBoxShadowBlur: 5,\n hoverBoxShadowSpread: 1,\n hoverBoxShadowHorizontal: 0,\n hoverBoxShadowVertical: 0\n },\n onClick: () => setAttributes({\n boxShadow: true\n })\n }, (0,external_wp_element_.createElement)(HoverControl, null), !hover ? (0,external_wp_element_.createElement)(external_wp_element_.Fragment, {\n key: \"without-hover\"\n }, (0,external_wp_element_.createElement)(external_wp_blockEditor_.__experimentalColorGradientControl, {\n label: (0,external_wp_i18n_.__)('Shadow Color', 'otter-blocks'),\n colorValue: attributes.boxShadowColor,\n onColorChange: e => setAttributes({\n boxShadowColor: e\n })\n }), (0,external_wp_element_.createElement)(external_wp_components_.RangeControl, {\n label: (0,external_wp_i18n_.__)('Opacity', 'otter-blocks'),\n value: attributes.boxShadowColorOpacity,\n onChange: e => setAttributes({\n boxShadowColorOpacity: e\n }),\n min: 0,\n max: 100\n }), (0,external_wp_element_.createElement)(external_wp_components_.RangeControl, {\n label: (0,external_wp_i18n_.__)('Blur', 'otter-blocks'),\n value: attributes.boxShadowBlur,\n onChange: e => setAttributes({\n boxShadowBlur: e\n }),\n min: 0,\n max: 100\n }), (0,external_wp_element_.createElement)(external_wp_components_.RangeControl, {\n label: (0,external_wp_i18n_.__)('Spread', 'otter-blocks'),\n value: attributes.boxShadowSpread,\n onChange: e => setAttributes({\n boxShadowSpread: e\n }),\n min: -100,\n max: 100\n }), (0,external_wp_element_.createElement)(external_wp_components_.RangeControl, {\n label: (0,external_wp_i18n_.__)('Horizontal', 'otter-blocks'),\n value: attributes.boxShadowHorizontal,\n onChange: e => setAttributes({\n boxShadowHorizontal: e\n }),\n min: -100,\n max: 100\n }), (0,external_wp_element_.createElement)(external_wp_components_.RangeControl, {\n label: (0,external_wp_i18n_.__)('Vertical', 'otter-blocks'),\n value: attributes.boxShadowVertical,\n onChange: e => setAttributes({\n boxShadowVertical: e\n }),\n min: -100,\n max: 100\n })) : (0,external_wp_element_.createElement)(external_wp_element_.Fragment, {\n key: \"with-hover\"\n }, (0,external_wp_element_.createElement)(external_wp_blockEditor_.__experimentalColorGradientControl, {\n label: (0,external_wp_i18n_.__)('Shadow Color on Hover', 'otter-blocks'),\n colorValue: attributes.hoverBoxShadowColor,\n onColorChange: e => setAttributes({\n hoverBoxShadowColor: e\n })\n }), (0,external_wp_element_.createElement)(external_wp_components_.RangeControl, {\n label: (0,external_wp_i18n_.__)('Opacity', 'otter-blocks'),\n value: attributes.hoverBoxShadowColorOpacity,\n onChange: e => setAttributes({\n hoverBoxShadowColorOpacity: e\n }),\n min: 0,\n max: 100\n }), (0,external_wp_element_.createElement)(external_wp_components_.RangeControl, {\n label: (0,external_wp_i18n_.__)('Blur', 'otter-blocks'),\n value: attributes.hoverBoxShadowBlur,\n onChange: e => setAttributes({\n hoverBoxShadowBlur: e\n }),\n min: 0,\n max: 100\n }), (0,external_wp_element_.createElement)(external_wp_components_.RangeControl, {\n label: (0,external_wp_i18n_.__)('Spread', 'otter-blocks'),\n value: attributes.hoverBoxShadowSpread,\n onChange: e => setAttributes({\n hoverBoxShadowSpread: e\n }),\n min: -100,\n max: 100\n }), (0,external_wp_element_.createElement)(external_wp_components_.RangeControl, {\n label: (0,external_wp_i18n_.__)('Horizontal', 'otter-blocks'),\n value: attributes.hoverBoxShadowHorizontal,\n onChange: e => setAttributes({\n hoverBoxShadowHorizontal: e\n }),\n min: -100,\n max: 100\n }), (0,external_wp_element_.createElement)(external_wp_components_.RangeControl, {\n label: (0,external_wp_i18n_.__)('Vertical', 'otter-blocks'),\n value: attributes.hoverBoxShadowVertical,\n onChange: e => setAttributes({\n hoverBoxShadowVertical: e\n }),\n min: -100,\n max: 100\n })))), (0,external_wp_element_.createElement)(external_wp_components_.PanelBody, {\n title: (0,external_wp_i18n_.__)('Icon Settings', 'otter-blocks'),\n initialOpen: false\n }, (0,external_wp_element_.createElement)(external_wp_components_.SelectControl, {\n label: (0,external_wp_i18n_.__)('Icon Position', 'otter-blocks'),\n value: attributes.iconType,\n options: [{\n label: (0,external_wp_i18n_.__)('No Icon', 'otter-blocks'),\n value: 'none'\n }, {\n label: (0,external_wp_i18n_.__)('Left', 'otter-blocks'),\n value: 'left'\n }, {\n label: (0,external_wp_i18n_.__)('Right', 'otter-blocks'),\n value: 'right'\n }, {\n label: (0,external_wp_i18n_.__)('Icon Only', 'otter-blocks'),\n value: 'only'\n }],\n onChange: e => setAttributes({\n iconType: e\n })\n }), 'none' !== attributes.iconType && (0,external_wp_element_.createElement)(external_wp_element_.Suspense, {\n fallback: (0,external_wp_element_.createElement)(external_wp_components_.Placeholder, null, (0,external_wp_element_.createElement)(external_wp_components_.Spinner, null))\n }, (0,external_wp_element_.createElement)(IconPickerControl, {\n label: (0,external_wp_i18n_.__)('Icon Picker', 'otter-blocks'),\n library: attributes.library,\n prefix: attributes.prefix,\n icon: attributes.icon,\n changeLibrary: changeLibrary,\n onChange: changeIcon\n }))));\n};\n\n/* harmony default export */ var inspector = (Inspector);\n// EXTERNAL MODULE: ./src/blocks/helpers/themeisle-icons.js\nvar themeisle_icons = __webpack_require__(48);\n// EXTERNAL MODULE: ./src/blocks/helpers/block-utility.js\nvar block_utility = __webpack_require__(5225);\n;// CONCATENATED MODULE: ./src/blocks/blocks/button-group/button/edit.js\n\n\n/** @jsx jsx */\n\n/**\n * External dependencies\n */\n\n\n\n/**\n * WordPress dependencies.\n */\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\n\nconst Edit = ({\n attributes,\n setAttributes,\n className,\n isSelected,\n clientId\n}) => {\n const {\n hasParent,\n parentAttributes,\n isLastChild\n } = (0,external_wp_data_.useSelect)(select => {\n const {\n getBlock,\n getBlockRootClientId\n } = select('core/block-editor');\n const parentClientId = getBlockRootClientId(clientId);\n const parentBlock = getBlock(parentClientId);\n return {\n hasParent: parentBlock ? true : false,\n parentAttributes: parentBlock ? parentBlock.attributes : {},\n isLastChild: parentBlock ? clientId === parentBlock.innerBlocks[parentBlock.innerBlocks.length - 1].clientId : true\n };\n }, []);\n (0,external_wp_element_.useEffect)(() => {\n const unsubscribe = (0,block_utility/* blockInit */.WX)(clientId, button_attributes);\n return () => unsubscribe(attributes.id);\n }, []);\n let boxShadowStyle = {};\n let buttonStyle = {};\n let buttonStyleParent = {};\n\n if (attributes.boxShadow) {\n boxShadowStyle = {\n boxShadow: `${attributes.boxShadowHorizontal}px ${attributes.boxShadowVertical}px ${attributes.boxShadowBlur}px ${attributes.boxShadowSpread}px ${hex_rgba_default()(attributes.boxShadowColor ? attributes.boxShadowColor : '#000000', attributes.boxShadowColorOpacity)}`\n };\n }\n\n if (hasParent) {\n buttonStyleParent = {\n marginRight: !isLastChild && `${parentAttributes.spacing}px`\n };\n buttonStyle = {\n paddingTop: `${parentAttributes.paddingTopBottom}px`,\n paddingBottom: `${parentAttributes.paddingTopBottom}px`,\n paddingLeft: `${parentAttributes.paddingLeftRight}px`,\n paddingRight: `${parentAttributes.paddingLeftRight}px`,\n fontSize: parentAttributes.fontSize && `${parentAttributes.fontSize}px`,\n fontFamily: parentAttributes.fontFamily,\n fontWeight: parentAttributes.fontVariant,\n fontStyle: parentAttributes.fontStyle,\n textTransform: parentAttributes.textTransform,\n lineHeight: parentAttributes.lineHeight && `${parentAttributes.lineHeight}px`\n };\n }\n\n const styles = {\n color: attributes.color,\n background: attributes.background || attributes.backgroundGradient,\n border: `${attributes.borderSize}px solid ${attributes.border}`,\n borderRadius: attributes.borderRadius,\n ...boxShadowStyle,\n ...buttonStyle\n };\n const hoverStyles = emotion_react_browser_esm/* css */.iv`\n\t\t&:hover {\n\t\t\tcolor: ${attributes.hoverColor} !important;\n\t\t\tbackground: ${attributes.hoverBackground || attributes.hoverBackgroundGradient} !important;\n\t\t\tborder-color: ${attributes.hoverBorder} !important;\n\t\t\t${attributes.boxShadow && `box-shadow: ${attributes.hoverBoxShadowHorizontal}px ${attributes.hoverBoxShadowVertical}px ${attributes.hoverBoxShadowBlur}px ${attributes.hoverBoxShadowSpread}px ${hex_rgba_default()(attributes.hoverBoxShadowColor ? attributes.hoverBoxShadowColor : '#000000', attributes.hoverBoxShadowColorOpacity)} !important;`}\n\t\t}\n\n\t\t&:hover svg {\n\t\t\tfill: ${attributes.hoverColor} !important;\n\t\t}\n\t`;\n const iconStyles = {\n fill: attributes.color,\n width: parentAttributes.fontSize && `${parentAttributes.fontSize}px`\n };\n const Icon = themeisle_icons/* default.icons */.ZP.icons[attributes.icon];\n return (0,emotion_react_browser_esm/* jsx */.tZ)(external_wp_element_.Fragment, null, (0,emotion_react_browser_esm/* jsx */.tZ)(controls, {\n attributes: attributes,\n setAttributes: setAttributes,\n isSelected: isSelected\n }), (0,emotion_react_browser_esm/* jsx */.tZ)(inspector, {\n attributes: attributes,\n setAttributes: setAttributes\n }), (0,emotion_react_browser_esm/* jsx */.tZ)(\"div\", {\n id: attributes.id,\n className: classnames_default()(className, 'wp-block-button'),\n style: buttonStyleParent\n }, 'none' !== attributes.iconType ? (0,emotion_react_browser_esm/* jsx */.tZ)(\"div\", {\n className: \"wp-block-button__link\",\n style: styles,\n css: hoverStyles\n }, ('left' === attributes.iconType || 'only' === attributes.iconType) && ('themeisle-icons' === attributes.library && attributes.icon ? (0,emotion_react_browser_esm/* jsx */.tZ)(Icon, {\n className: classnames_default()({\n 'margin-right': 'left' === attributes.iconType\n }),\n style: iconStyles\n }) : (0,emotion_react_browser_esm/* jsx */.tZ)(\"i\", {\n className: classnames_default()(attributes.prefix, 'fa-fw', `fa-${attributes.icon}`, {\n 'margin-right': 'left' === attributes.iconType\n })\n })), 'only' !== attributes.iconType && (0,emotion_react_browser_esm/* jsx */.tZ)(external_wp_blockEditor_.RichText, {\n placeholder: (0,external_wp_i18n_.__)('Add text…', 'otter-blocks'),\n value: attributes.text,\n onChange: value => setAttributes({\n text: value\n }),\n tagName: \"div\",\n withoutInteractiveFormatting: true\n }), 'right' === attributes.iconType && ('themeisle-icons' === attributes.library && attributes.icon ? (0,emotion_react_browser_esm/* jsx */.tZ)(Icon, {\n className: \"margin-left\",\n style: iconStyles\n }) : (0,emotion_react_browser_esm/* jsx */.tZ)(\"i\", {\n className: `${attributes.prefix} fa-fw fa-${attributes.icon} margin-left`\n }))) : (0,emotion_react_browser_esm/* jsx */.tZ)(external_wp_blockEditor_.RichText, {\n placeholder: (0,external_wp_i18n_.__)('Add text…', 'otter-blocks'),\n value: attributes.text,\n onChange: value => setAttributes({\n text: value\n }),\n tagName: \"div\",\n withoutInteractiveFormatting: true,\n className: \"wp-block-button__link\",\n style: styles,\n css: hoverStyles\n })));\n};\n\n/* harmony default export */ var edit = (Edit);\n;// CONCATENATED MODULE: ./src/blocks/blocks/button-group/button/save.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies.\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\nconst Save = ({\n attributes,\n className\n}) => {\n const Icon = themeisle_icons/* default.icons */.ZP.icons[attributes.icon];\n return (0,external_wp_element_.createElement)(\"div\", {\n id: attributes.id,\n className: classnames_default()(className, 'wp-block-button')\n }, (0,external_wp_element_.createElement)(\"a\", {\n href: attributes.link,\n target: attributes.newTab ? '_blank' : '_self',\n rel: \"noopener noreferrer\",\n className: \"wp-block-button__link\"\n }, ('left' === attributes.iconType || 'only' === attributes.iconType) && ('themeisle-icons' === attributes.library && attributes.icon ? (0,external_wp_element_.createElement)(Icon, {\n className: classnames_default()({\n 'margin-right': 'left' === attributes.iconType\n })\n }) : (0,external_wp_element_.createElement)(\"i\", {\n className: classnames_default()(attributes.prefix, 'fa-fw', `fa-${attributes.icon}`, {\n 'margin-right': 'left' === attributes.iconType\n })\n })), 'only' !== attributes.iconType && (0,external_wp_element_.createElement)(external_wp_blockEditor_.RichText.Content, {\n tagName: \"span\",\n value: attributes.text\n }), 'right' === attributes.iconType && ('themeisle-icons' === attributes.library && attributes.icon ? (0,external_wp_element_.createElement)(Icon, {\n className: \"margin-left\"\n }) : (0,external_wp_element_.createElement)(\"i\", {\n className: `${attributes.prefix} fa-fw fa-${attributes.icon} margin-left`\n }))));\n};\n\n/* harmony default export */ var save = (Save);\n;// CONCATENATED MODULE: ./src/blocks/blocks/button-group/button/index.js\n/**\n * WordPress dependencies.\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n(0,external_wp_blocks_.registerBlockType)('themeisle-blocks/button', {\n title: (0,external_wp_i18n_.__)('Button', 'otter-blocks'),\n description: (0,external_wp_i18n_.__)('Prompt visitors to take action with a button group.', 'otter-blocks'),\n parent: ['themeisle-blocks/button-group'],\n icon: icons/* buttonsIcon */.Se,\n category: 'themeisle-blocks',\n keywords: ['button', 'buttons', 'button group'],\n attributes: button_attributes,\n supports: {\n reusable: false\n },\n styles: [{\n name: 'fill',\n label: (0,external_wp_i18n_.__)('Fill', 'otter-blocks'),\n isDefault: true\n }, {\n name: 'outline',\n label: (0,external_wp_i18n_.__)('Outline', 'otter-blocks')\n }],\n edit: edit,\n save: save\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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SUFBSUEsRUFBQUEsSUFBQUE7QUEzQnlDLENBQTdCLENBQWpCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vb3R0ZXItYmxvY2tzLy4vc3JjL2Jsb2Nrcy9ibG9ja3MvYnV0dG9uLWdyb3VwL2J1dHRvbi9hdHRyaWJ1dGVzLmpzPzI1NTQiLCJ3ZWJwYWNrOi8vb3R0ZXItYmxvY2tzLy4vc3JjL2Jsb2Nrcy9ibG9ja3MvYnV0dG9uLWdyb3VwL2J1dHRvbi9jb250cm9scy5qcz9lODY1Iiwid2VicGFjazovL290dGVyLWJsb2Nrcy8uL3NyYy9ibG9ja3MvYmxvY2tzL2J1dHRvbi1ncm91cC9idXR0b24vaW5zcGVjdG9yLmpzPzYwOGQiLCJ3ZWJwYWNrOi8vb3R0ZXItYmxvY2tzLy4vc3JjL2Jsb2Nrcy9ibG9ja3MvYnV0dG9uLWdyb3VwL2J1dHRvbi9lZGl0LmpzPzcxZjEiLCJ3ZWJwYWNrOi8vb3R0ZXItYmxvY2tzLy4vc3JjL2Jsb2Nrcy9ibG9ja3MvYnV0dG9uLWdyb3VwL2J1dHRvbi9zYXZlLmpzPzEzZjUiLCJ3ZWJwYWNrOi8vb3R0ZXItYmxvY2tzLy4vc3JjL2Jsb2Nrcy9ibG9ja3MvYnV0dG9uLWdyb3VwL2J1dHRvbi9pbmRleC5qcz9jNjI1Il0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGF0dHJpYnV0ZXMgPSB7XG5cdGlkOiB7XG5cdFx0dHlwZTogJ3N0cmluZydcblx0fSxcblx0dGV4dDoge1xuXHRcdHR5cGU6ICdzdHJpbmcnLFxuXHRcdHNvdXJjZTogJ2h0bWwnLFxuXHRcdHNlbGVjdG9yOiAnc3Bhbidcblx0fSxcblx0bGluazoge1xuXHRcdHR5cGU6ICdzdHJpbmcnLFxuXHRcdHNvdXJjZTogJ2F0dHJpYnV0ZScsXG5cdFx0c2VsZWN0b3I6ICdhJyxcblx0XHRhdHRyaWJ1dGU6ICdocmVmJ1xuXHR9LFxuXHRuZXdUYWI6IHtcblx0XHR0eXBlOiAnYm9vbGVhbicsXG5cdFx0ZGVmYXVsdDogZmFsc2Vcblx0fSxcblx0Y29sb3I6IHtcblx0XHR0eXBlOiAnc3RyaW5nJ1xuXHR9LFxuXHRiYWNrZ3JvdW5kOiB7XG5cdFx0dHlwZTogJ3N0cmluZydcblx0fSxcblx0YmFja2dyb3VuZEdyYWRpZW50OiB7XG5cdFx0dHlwZTogJ3N0cmluZydcblx0fSxcblx0Ym9yZGVyOiB7XG5cdFx0dHlwZTogJ3N0cmluZydcblx0fSxcblx0aG92ZXJDb2xvcjoge1xuXHRcdHR5cGU6ICdzdHJpbmcnXG5cdH0sXG5cdGhvdmVyQmFja2dyb3VuZDoge1xuXHRcdHR5cGU6ICdzdHJpbmcnXG5cdH0sXG5cdGhvdmVyQmFja2dyb3VuZEdyYWRpZW50OiB7XG5cdFx0dHlwZTogJ3N0cmluZydcblx0fSxcblx0aG92ZXJCb3JkZXI6IHtcblx0XHR0eXBlOiAnc3RyaW5nJ1xuXHR9LFxuXHRib3JkZXJTaXplOiB7XG5cdFx0dHlwZTogJ251bWJlcidcblx0fSxcblx0Ym9yZGVyUmFkaXVzOiB7XG5cdFx0dHlwZTogJ251bWJlcidcblx0fSxcblx0Ym94U2hhZG93OiB7XG5cdFx0dHlwZTogJ2Jvb2xlYW4nLFxuXHRcdGRlZmF1bHQ6IGZhbHNlXG5cdH0sXG5cdGJveFNoYWRvd0NvbG9yOiB7XG5cdFx0dHlwZTogJ3N0cmluZydcblx0fSxcblx0Ym94U2hhZG93Q29sb3JPcGFjaXR5OiB7XG5cdFx0dHlwZTogJ251bWJlcicsXG5cdFx0ZGVmYXVsdDogNTBcblx0fSxcblx0Ym94U2hhZG93Qmx1cjoge1xuXHRcdHR5cGU6ICdudW1iZXInLFxuXHRcdGRlZmF1bHQ6IDVcblx0fSxcblx0Ym94U2hhZG93U3ByZWFkOiB7XG5cdFx0dHlwZTogJ251bWJlcicsXG5cdFx0ZGVmYXVsdDogMVxuXHR9LFxuXHRib3hTaGFkb3dIb3Jpem9udGFsOiB7XG5cdFx0dHlwZTogJ251bWJlcicsXG5cdFx0ZGVmYXVsdDogMFxuXHR9LFxuXHRib3hTaGFkb3dWZXJ0aWNhbDoge1xuXHRcdHR5cGU6ICdudW1iZXInLFxuXHRcdGRlZmF1bHQ6IDBcblx0fSxcblx0aG92ZXJCb3hTaGFkb3dDb2xvcjoge1xuXHRcdHR5cGU6ICdzdHJpbmcnXG5cdH0sXG5cdGhvdmVyQm94U2hhZG93Q29sb3JPcGFjaXR5OiB7XG5cdFx0dHlwZTogJ251bWJlcicsXG5cdFx0ZGVmYXVsdDogNTBcblx0fSxcblx0aG92ZXJCb3hTaGFkb3dCbHVyOiB7XG5cdFx0dHlwZTogJ251bWJlcicsXG5cdFx0ZGVmYXVsdDogNVxuXHR9LFxuXHRob3ZlckJveFNoYWRvd1NwcmVhZDoge1xuXHRcdHR5cGU6ICdudW1iZXInLFxuXHRcdGRlZmF1bHQ6IDFcblx0fSxcblx0aG92ZXJCb3hTaGFkb3dIb3Jpem9udGFsOiB7XG5cdFx0dHlwZTogJ251bWJlcicsXG5cdFx0ZGVmYXVsdDogMFxuXHR9LFxuXHRob3ZlckJveFNoYWRvd1ZlcnRpY2FsOiB7XG5cdFx0dHlwZTogJ251bWJlcicsXG5cdFx0ZGVmYXVsdDogMFxuXHR9LFxuXHRpY29uVHlwZToge1xuXHRcdHR5cGU6ICdzdHJpbmcnLFxuXHRcdGRlZmF1bHQ6ICdub25lJ1xuXHR9LFxuXHRsaWJyYXJ5OiB7XG5cdFx0dHlwZTogJ3N0cmluZycsXG5cdFx0ZGVmYXVsdDogJ2ZvbnRhd2Vzb21lJ1xuXHR9LFxuXHRwcmVmaXg6IHtcblx0XHR0eXBlOiAnc3RyaW5nJ1xuXHR9LFxuXHRpY29uOiB7XG5cdFx0dHlwZTogJ3N0cmluZydcblx0fVxufTtcblxuZXhwb3J0IGRlZmF1bHQgYXR0cmlidXRlcztcbiIsIi8qKlxuICogV29yZFByZXNzIGRlcGVuZGVuY2llcy4uLlxuICovXG5pbXBvcnQgeyBCbG9ja0NvbnRyb2xzIH0gZnJvbSAnQHdvcmRwcmVzcy9ibG9jay1lZGl0b3InO1xuXG4vKipcbiAqIEludGVybmFsIGRlcGVuZGVuY2llc1xuICovXG5pbXBvcnQgTGlua0NvbnRyb2wgZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9saW5rLWNvbnRyb2wvaW5kZXguanMnO1xuXG5jb25zdCBDb250cm9scyA9ICh7XG5cdGF0dHJpYnV0ZXMsXG5cdHNldEF0dHJpYnV0ZXMsXG5cdGlzU2VsZWN0ZWRcbn0pID0+IHtcblx0cmV0dXJuIChcblx0XHQ8QmxvY2tDb250cm9scz5cblx0XHRcdDxMaW5rQ29udHJvbFxuXHRcdFx0XHRpc1NlbGVjdGVkPXsgaXNTZWxlY3RlZCB9XG5cdFx0XHRcdHNldEF0dHJpYnV0ZXM9eyBzZXRBdHRyaWJ1dGVzIH1cblx0XHRcdFx0dXJsPXsgYXR0cmlidXRlcy5saW5rIH1cblx0XHRcdFx0b3BlbnNJbk5ld1RhYj17IGF0dHJpYnV0ZXMubmV3VGFiIH1cblx0XHRcdC8+XG5cdFx0PC9CbG9ja0NvbnRyb2xzPlxuXHQpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgQ29udHJvbHM7XG4iLCIvKipcbiAqIFdvcmRQcmVzcyBkZXBlbmRlbmNpZXMuXG4gKi9cbmltcG9ydCB7IF9fIH0gZnJvbSAnQHdvcmRwcmVzcy9pMThuJztcblxuaW1wb3J0IHtcblx0X19leHBlcmltZW50YWxDb2xvckdyYWRpZW50Q29udHJvbCBhcyBDb2xvckdyYWRpZW50Q29udHJvbCxcblx0SW5zcGVjdG9yQ29udHJvbHNcbn0gZnJvbSAnQHdvcmRwcmVzcy9ibG9jay1lZGl0b3InO1xuXG5pbXBvcnQge1xuXHRCdXR0b24sXG5cdEJ1dHRvbkdyb3VwLFxuXHRQYW5lbEJvZHksXG5cdFJhbmdlQ29udHJvbCxcblx0UGxhY2Vob2xkZXIsXG5cdFNlbGVjdENvbnRyb2wsXG5cdFNwaW5uZXJcbn0gZnJvbSAnQHdvcmRwcmVzcy9jb21wb25lbnRzJztcblxuaW1wb3J0IHtcblx0RnJhZ21lbnQsXG5cdGxhenksXG5cdFN1c3BlbnNlLFxuXHR1c2VTdGF0ZVxufSBmcm9tICdAd29yZHByZXNzL2VsZW1lbnQnO1xuXG4vKipcbiAqIEludGVybmFsIGRlcGVuZGVuY2llc1xuICovXG5pbXBvcnQgQ29udHJvbFBhbmVsQ29udHJvbCBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2NvbnRyb2wtcGFuZWwtY29udHJvbC9pbmRleC5qcyc7XG5jb25zdCBJY29uUGlja2VyQ29udHJvbCA9IGxhenkoICgpID0+IGltcG9ydCggJy4uLy4uLy4uL2NvbXBvbmVudHMvaWNvbi1waWNrZXItY29udHJvbC9pbmRleC5qcycgKSApO1xuXG5jb25zdCBJbnNwZWN0b3IgPSAoe1xuXHRhdHRyaWJ1dGVzLFxuXHRzZXRBdHRyaWJ1dGVzXG59KSA9PiB7XG5cdGNvbnN0IFsgaG92ZXIsIHNldEhvdmVyIF0gPSB1c2VTdGF0ZSggZmFsc2UgKTtcblxuXHRjb25zdCBjaGFuZ2VMaWJyYXJ5ID0gdmFsdWUgPT4ge1xuXHRcdHNldEF0dHJpYnV0ZXMoe1xuXHRcdFx0bGlicmFyeTogdmFsdWUsXG5cdFx0XHRpY29uOiB1bmRlZmluZWQsXG5cdFx0XHRwcmVmaXg6ICdmYWInXG5cdFx0fSk7XG5cdH07XG5cblx0Y29uc3QgY2hhbmdlSWNvbiA9IHZhbHVlID0+IHtcblx0XHRpZiAoICdvYmplY3QnID09PSB0eXBlb2YgdmFsdWUgKSB7XG5cdFx0XHRzZXRBdHRyaWJ1dGVzKHtcblx0XHRcdFx0aWNvbjogdmFsdWUubmFtZSxcblx0XHRcdFx0cHJlZml4OiB2YWx1ZS5wcmVmaXhcblx0XHRcdH0pO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRzZXRBdHRyaWJ1dGVzKHsgaWNvbjogdmFsdWUgfSk7XG5cdFx0fVxuXHR9O1xuXG5cdGNvbnN0IEhvdmVyQ29udHJvbCA9ICgpID0+IHtcblx0XHRyZXR1cm4gKFxuXHRcdFx0PEJ1dHRvbkdyb3VwPlxuXHRcdFx0XHQ8QnV0dG9uXG5cdFx0XHRcdFx0aXNTbWFsbFxuXHRcdFx0XHRcdGlzU2Vjb25kYXJ5PXsgaG92ZXIgfVxuXHRcdFx0XHRcdGlzUHJpbWFyeT17ICEgaG92ZXIgfVxuXHRcdFx0XHRcdG9uQ2xpY2s9eyAoKSA9PiBzZXRIb3ZlciggZmFsc2UgKSB9XG5cdFx0XHRcdD5cblx0XHRcdFx0XHR7IF9fKCAnTm9ybWFsJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdDwvQnV0dG9uPlxuXG5cdFx0XHRcdDxCdXR0b25cblx0XHRcdFx0XHRpc1NtYWxsXG5cdFx0XHRcdFx0aXNTZWNvbmRhcnk9eyAhIGhvdmVyIH1cblx0XHRcdFx0XHRpc1ByaW1hcnk9eyBob3ZlciB9XG5cdFx0XHRcdFx0b25DbGljaz17ICgpID0+IHNldEhvdmVyKCB0cnVlICkgfVxuXHRcdFx0XHQ+XG5cdFx0XHRcdFx0eyBfXyggJ0hvdmVyJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdDwvQnV0dG9uPlxuXHRcdFx0PC9CdXR0b25Hcm91cD5cblxuXHRcdCk7XG5cdH07XG5cblx0cmV0dXJuIChcblx0XHQ8SW5zcGVjdG9yQ29udHJvbHM+XG5cdFx0XHQ8UGFuZWxCb2R5XG5cdFx0XHRcdHRpdGxlPXsgX18oICdDb2xvcicsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0PlxuXHRcdFx0XHQ8SG92ZXJDb250cm9sLz5cblxuXHRcdFx0XHR7ICEgaG92ZXIgPyAoXG5cdFx0XHRcdFx0PEZyYWdtZW50IGtleT1cIndpdGhvdXQtaG92ZXJcIj5cblx0XHRcdFx0XHRcdDxDb2xvckdyYWRpZW50Q29udHJvbFxuXHRcdFx0XHRcdFx0XHRsYWJlbD17IF9fKCAnQ29sb3InLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdFx0XHRcdFx0Y29sb3JWYWx1ZT17IGF0dHJpYnV0ZXMuY29sb3IgfVxuXHRcdFx0XHRcdFx0XHRvbkNvbG9yQ2hhbmdlPXsgZSA9PiBzZXRBdHRyaWJ1dGVzKHsgY29sb3I6IGUgfSkgfVxuXHRcdFx0XHRcdFx0Lz5cblxuXHRcdFx0XHRcdFx0PENvbG9yR3JhZGllbnRDb250cm9sXG5cdFx0XHRcdFx0XHRcdGxhYmVsPXsgX18oICdCYWNrZ3JvdW5kJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdFx0XHRcdGNvbG9yVmFsdWU9eyBhdHRyaWJ1dGVzLmJhY2tncm91bmQgfVxuXHRcdFx0XHRcdFx0XHRncmFkaWVudFZhbHVlPXsgYXR0cmlidXRlcy5iYWNrZ3JvdW5kR3JhZGllbnQgfVxuXHRcdFx0XHRcdFx0XHRvbkNvbG9yQ2hhbmdlPXsgZSA9PiBzZXRBdHRyaWJ1dGVzKHsgYmFja2dyb3VuZDogZSB9KSB9XG5cdFx0XHRcdFx0XHRcdG9uR3JhZGllbnRDaGFuZ2U9eyBlID0+IHNldEF0dHJpYnV0ZXMoeyBiYWNrZ3JvdW5kR3JhZGllbnQ6IGUgfSkgfVxuXHRcdFx0XHRcdFx0Lz5cblx0XHRcdFx0XHQ8L0ZyYWdtZW50PlxuXHRcdFx0XHQpIDogKFxuXHRcdFx0XHRcdDxGcmFnbWVudCBrZXk9XCJ3aXRoLWhvdmVyXCI+XG5cdFx0XHRcdFx0XHQ8Q29sb3JHcmFkaWVudENvbnRyb2xcblx0XHRcdFx0XHRcdFx0bGFiZWw9eyBfXyggJ0hvdmVyIENvbG9yJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdFx0XHRcdGNvbG9yVmFsdWU9eyBhdHRyaWJ1dGVzLmhvdmVyQ29sb3IgfVxuXHRcdFx0XHRcdFx0XHRvbkNvbG9yQ2hhbmdlPXsgZSA9PiBzZXRBdHRyaWJ1dGVzKHsgaG92ZXJDb2xvcjogZSB9KSB9XG5cdFx0XHRcdFx0XHQvPlxuXG5cdFx0XHRcdFx0XHQ8Q29sb3JHcmFkaWVudENvbnRyb2xcblx0XHRcdFx0XHRcdFx0bGFiZWw9eyBfXyggJ0hvdmVyIEJhY2tncm91bmQnLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdFx0XHRcdFx0Y29sb3JWYWx1ZT17IGF0dHJpYnV0ZXMuaG92ZXJCYWNrZ3JvdW5kIH1cblx0XHRcdFx0XHRcdFx0Z3JhZGllbnRWYWx1ZT17IGF0dHJpYnV0ZXMuaG92ZXJCYWNrZ3JvdW5kR3JhZGllbnQgfVxuXHRcdFx0XHRcdFx0XHRvbkNvbG9yQ2hhbmdlPXsgZSA9PiBzZXRBdHRyaWJ1dGVzKHsgaG92ZXJCYWNrZ3JvdW5kOiBlIH0pIH1cblx0XHRcdFx0XHRcdFx0b25HcmFkaWVudENoYW5nZT17IGUgPT4gc2V0QXR0cmlidXRlcyh7IGhvdmVyQmFja2dyb3VuZEdyYWRpZW50OiBlIH0pIH1cblx0XHRcdFx0XHRcdC8+XG5cdFx0XHRcdFx0PC9GcmFnbWVudD5cblx0XHRcdFx0KSB9XG5cdFx0XHQ8L1BhbmVsQm9keT5cblxuXHRcdFx0PFBhbmVsQm9keVxuXHRcdFx0XHR0aXRsZT17IF9fKCAnQm9yZGVyICYgQm94IFNoYWRvdycsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHRpbml0aWFsT3Blbj17IGZhbHNlIH1cblx0XHRcdD5cblx0XHRcdFx0PEhvdmVyQ29udHJvbC8+XG5cblx0XHRcdFx0eyAhIGhvdmVyID8gKFxuXHRcdFx0XHRcdDxDb2xvckdyYWRpZW50Q29udHJvbFxuXHRcdFx0XHRcdFx0bGFiZWw9eyBfXyggJ0JvcmRlcicsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHRcdFx0Y29sb3JWYWx1ZT17IGF0dHJpYnV0ZXMuYm9yZGVyIH1cblx0XHRcdFx0XHRcdG9uQ29sb3JDaGFuZ2U9eyBlID0+IHNldEF0dHJpYnV0ZXMoeyBib3JkZXI6IGUgfSkgfVxuXHRcdFx0XHRcdC8+XG5cdFx0XHRcdCkgOiAoXG5cdFx0XHRcdFx0PENvbG9yR3JhZGllbnRDb250cm9sXG5cdFx0XHRcdFx0XHRsYWJlbD17IF9fKCAnSG92ZXIgQm9yZGVyJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdFx0XHRjb2xvclZhbHVlPXsgYXR0cmlidXRlcy5ob3ZlckJvcmRlciB9XG5cdFx0XHRcdFx0XHRvbkNvbG9yQ2hhbmdlPXsgZSA9PiBzZXRBdHRyaWJ1dGVzKHsgaG92ZXJCb3JkZXI6IGUgfSkgfVxuXHRcdFx0XHRcdC8+XG5cdFx0XHRcdCkgfVxuXG5cdFx0XHRcdDxSYW5nZUNvbnRyb2xcblx0XHRcdFx0XHRsYWJlbD17IF9fKCAnQm9yZGVyIFdpZHRoJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdFx0dmFsdWU9eyBhdHRyaWJ1dGVzLmJvcmRlclNpemUgfVxuXHRcdFx0XHRcdG9uQ2hhbmdlPXsgZSA9PiBzZXRBdHRyaWJ1dGVzKHsgYm9yZGVyU2l6ZTogZSB9KSB9XG5cdFx0XHRcdFx0bWluPXsgMCB9XG5cdFx0XHRcdFx0bWF4PXsgMTAgfVxuXHRcdFx0XHQvPlxuXG5cdFx0XHRcdDxSYW5nZUNvbnRyb2xcblx0XHRcdFx0XHRsYWJlbD17IF9fKCAnQm9yZGVyIFJhZGl1cycsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHRcdHZhbHVlPXsgYXR0cmlidXRlcy5ib3JkZXJSYWRpdXMgfVxuXHRcdFx0XHRcdG9uQ2hhbmdlPXsgZSA9PiBzZXRBdHRyaWJ1dGVzKHsgYm9yZGVyUmFkaXVzOiBlIH0pIH1cblx0XHRcdFx0XHRtaW49eyAwIH1cblx0XHRcdFx0XHRtYXg9eyAxMDAgfVxuXHRcdFx0XHQvPlxuXG5cdFx0XHRcdDxDb250cm9sUGFuZWxDb250cm9sXG5cdFx0XHRcdFx0bGFiZWw9eyBfXyggJ0JveCBTaGFkb3cnLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdFx0XHRhdHRyaWJ1dGVzPXsgYXR0cmlidXRlcyB9XG5cdFx0XHRcdFx0c2V0QXR0cmlidXRlcz17IHNldEF0dHJpYnV0ZXMgfVxuXHRcdFx0XHRcdHJlc2V0VmFsdWVzPXsge1xuXHRcdFx0XHRcdFx0Ym94U2hhZG93OiBmYWxzZSxcblx0XHRcdFx0XHRcdGJveFNoYWRvd0NvbG9yOiB1bmRlZmluZWQsXG5cdFx0XHRcdFx0XHRib3hTaGFkb3dDb2xvck9wYWNpdHk6IDUwLFxuXHRcdFx0XHRcdFx0Ym94U2hhZG93Qmx1cjogNSxcblx0XHRcdFx0XHRcdGJveFNoYWRvd1NwcmVhZDogMSxcblx0XHRcdFx0XHRcdGJveFNoYWRvd0hvcml6b250YWw6IDAsXG5cdFx0XHRcdFx0XHRib3hTaGFkb3dWZXJ0aWNhbDogMCxcblx0XHRcdFx0XHRcdGhvdmVyQm94U2hhZG93Q29sb3I6IHVuZGVmaW5lZCxcblx0XHRcdFx0XHRcdGhvdmVyQm94U2hhZG93Q29sb3JPcGFjaXR5OiA1MCxcblx0XHRcdFx0XHRcdGhvdmVyQm94U2hhZG93Qmx1cjogNSxcblx0XHRcdFx0XHRcdGhvdmVyQm94U2hhZG93U3ByZWFkOiAxLFxuXHRcdFx0XHRcdFx0aG92ZXJCb3hTaGFkb3dIb3Jpem9udGFsOiAwLFxuXHRcdFx0XHRcdFx0aG92ZXJCb3hTaGFkb3dWZXJ0aWNhbDogMFxuXHRcdFx0XHRcdH0gfVxuXHRcdFx0XHRcdG9uQ2xpY2s9eyAoKSA9PiBzZXRBdHRyaWJ1dGVzKHsgYm94U2hhZG93OiB0cnVlIH0pIH1cblx0XHRcdFx0PlxuXHRcdFx0XHRcdDxIb3ZlckNvbnRyb2wvPlxuXG5cdFx0XHRcdFx0eyAhIGhvdmVyID8gKFxuXHRcdFx0XHRcdFx0PEZyYWdtZW50IGtleT1cIndpdGhvdXQtaG92ZXJcIj5cblx0XHRcdFx0XHRcdFx0PENvbG9yR3JhZGllbnRDb250cm9sXG5cdFx0XHRcdFx0XHRcdFx0bGFiZWw9eyBfXyggJ1NoYWRvdyBDb2xvcicsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHRcdFx0XHRcdGNvbG9yVmFsdWU9eyBhdHRyaWJ1dGVzLmJveFNoYWRvd0NvbG9yIH1cblx0XHRcdFx0XHRcdFx0XHRvbkNvbG9yQ2hhbmdlPXsgZSA9PiBzZXRBdHRyaWJ1dGVzKHsgYm94U2hhZG93Q29sb3I6IGUgfSkgfVxuXHRcdFx0XHRcdFx0XHQvPlxuXG5cdFx0XHRcdFx0XHRcdDxSYW5nZUNvbnRyb2xcblx0XHRcdFx0XHRcdFx0XHRsYWJlbD17IF9fKCAnT3BhY2l0eScsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHRcdFx0XHRcdHZhbHVlPXsgYXR0cmlidXRlcy5ib3hTaGFkb3dDb2xvck9wYWNpdHkgfVxuXHRcdFx0XHRcdFx0XHRcdG9uQ2hhbmdlPXsgZSA9PiBzZXRBdHRyaWJ1dGVzKHsgYm94U2hhZG93Q29sb3JPcGFjaXR5OiBlIH0pIH1cblx0XHRcdFx0XHRcdFx0XHRtaW49eyAwIH1cblx0XHRcdFx0XHRcdFx0XHRtYXg9eyAxMDAgfVxuXHRcdFx0XHRcdFx0XHQvPlxuXG5cdFx0XHRcdFx0XHRcdDxSYW5nZUNvbnRyb2xcblx0XHRcdFx0XHRcdFx0XHRsYWJlbD17IF9fKCAnQmx1cicsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHRcdFx0XHRcdHZhbHVlPXsgYXR0cmlidXRlcy5ib3hTaGFkb3dCbHVyIH1cblx0XHRcdFx0XHRcdFx0XHRvbkNoYW5nZT17IGUgPT4gc2V0QXR0cmlidXRlcyh7IGJveFNoYWRvd0JsdXI6IGUgfSkgfVxuXHRcdFx0XHRcdFx0XHRcdG1pbj17IDAgfVxuXHRcdFx0XHRcdFx0XHRcdG1heD17IDEwMCB9XG5cdFx0XHRcdFx0XHRcdC8+XG5cblx0XHRcdFx0XHRcdFx0PFJhbmdlQ29udHJvbFxuXHRcdFx0XHRcdFx0XHRcdGxhYmVsPXsgX18oICdTcHJlYWQnLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdFx0XHRcdFx0XHR2YWx1ZT17IGF0dHJpYnV0ZXMuYm94U2hhZG93U3ByZWFkIH1cblx0XHRcdFx0XHRcdFx0XHRvbkNoYW5nZT17IGUgPT4gc2V0QXR0cmlidXRlcyh7IGJveFNoYWRvd1NwcmVhZDogZSB9KSB9XG5cdFx0XHRcdFx0XHRcdFx0bWluPXsgLTEwMCB9XG5cdFx0XHRcdFx0XHRcdFx0bWF4PXsgMTAwIH1cblx0XHRcdFx0XHRcdFx0Lz5cblxuXHRcdFx0XHRcdFx0XHQ8UmFuZ2VDb250cm9sXG5cdFx0XHRcdFx0XHRcdFx0bGFiZWw9eyBfXyggJ0hvcml6b250YWwnLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdFx0XHRcdFx0XHR2YWx1ZT17IGF0dHJpYnV0ZXMuYm94U2hhZG93SG9yaXpvbnRhbCB9XG5cdFx0XHRcdFx0XHRcdFx0b25DaGFuZ2U9eyBlID0+IHNldEF0dHJpYnV0ZXMoeyBib3hTaGFkb3dIb3Jpem9udGFsOiBlIH0pIH1cblx0XHRcdFx0XHRcdFx0XHRtaW49eyAtMTAwIH1cblx0XHRcdFx0XHRcdFx0XHRtYXg9eyAxMDAgfVxuXHRcdFx0XHRcdFx0XHQvPlxuXG5cdFx0XHRcdFx0XHRcdDxSYW5nZUNvbnRyb2xcblx0XHRcdFx0XHRcdFx0XHRsYWJlbD17IF9fKCAnVmVydGljYWwnLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdFx0XHRcdFx0XHR2YWx1ZT17IGF0dHJpYnV0ZXMuYm94U2hhZG93VmVydGljYWwgfVxuXHRcdFx0XHRcdFx0XHRcdG9uQ2hhbmdlPXsgZSA9PiBzZXRBdHRyaWJ1dGVzKHsgYm94U2hhZG93VmVydGljYWw6IGUgfSkgfVxuXHRcdFx0XHRcdFx0XHRcdG1pbj17IC0xMDAgfVxuXHRcdFx0XHRcdFx0XHRcdG1heD17IDEwMCB9XG5cdFx0XHRcdFx0XHRcdC8+XG5cdFx0XHRcdFx0XHQ8L0ZyYWdtZW50PlxuXHRcdFx0XHRcdCkgOiAoXG5cdFx0XHRcdFx0XHQ8RnJhZ21lbnQga2V5PVwid2l0aC1ob3ZlclwiPlxuXHRcdFx0XHRcdFx0XHQ8Q29sb3JHcmFkaWVudENvbnRyb2xcblx0XHRcdFx0XHRcdFx0XHRsYWJlbD17IF9fKCAnU2hhZG93IENvbG9yIG9uIEhvdmVyJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdFx0XHRcdFx0Y29sb3JWYWx1ZT17IGF0dHJpYnV0ZXMuaG92ZXJCb3hTaGFkb3dDb2xvciB9XG5cdFx0XHRcdFx0XHRcdFx0b25Db2xvckNoYW5nZT17IGUgPT4gc2V0QXR0cmlidXRlcyh7IGhvdmVyQm94U2hhZG93Q29sb3I6IGUgfSkgfVxuXHRcdFx0XHRcdFx0XHQvPlxuXG5cdFx0XHRcdFx0XHRcdDxSYW5nZUNvbnRyb2xcblx0XHRcdFx0XHRcdFx0XHRsYWJlbD17IF9fKCAnT3BhY2l0eScsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHRcdFx0XHRcdHZhbHVlPXsgYXR0cmlidXRlcy5ob3ZlckJveFNoYWRvd0NvbG9yT3BhY2l0eSB9XG5cdFx0XHRcdFx0XHRcdFx0b25DaGFuZ2U9eyBlID0+IHNldEF0dHJpYnV0ZXMoeyBob3ZlckJveFNoYWRvd0NvbG9yT3BhY2l0eTogZSB9KSB9XG5cdFx0XHRcdFx0XHRcdFx0bWluPXsgMCB9XG5cdFx0XHRcdFx0XHRcdFx0bWF4PXsgMTAwIH1cblx0XHRcdFx0XHRcdFx0Lz5cblxuXHRcdFx0XHRcdFx0XHQ8UmFuZ2VDb250cm9sXG5cdFx0XHRcdFx0XHRcdFx0bGFiZWw9eyBfXyggJ0JsdXInLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdFx0XHRcdFx0XHR2YWx1ZT17IGF0dHJpYnV0ZXMuaG92ZXJCb3hTaGFkb3dCbHVyIH1cblx0XHRcdFx0XHRcdFx0XHRvbkNoYW5nZT17IGUgPT4gc2V0QXR0cmlidXRlcyh7IGhvdmVyQm94U2hhZG93Qmx1cjogZSB9KSB9XG5cdFx0XHRcdFx0XHRcdFx0bWluPXsgMCB9XG5cdFx0XHRcdFx0XHRcdFx0bWF4PXsgMTAwIH1cblx0XHRcdFx0XHRcdFx0Lz5cblxuXHRcdFx0XHRcdFx0XHQ8UmFuZ2VDb250cm9sXG5cdFx0XHRcdFx0XHRcdFx0bGFiZWw9eyBfXyggJ1NwcmVhZCcsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHRcdFx0XHRcdHZhbHVlPXsgYXR0cmlidXRlcy5ob3ZlckJveFNoYWRvd1NwcmVhZCB9XG5cdFx0XHRcdFx0XHRcdFx0b25DaGFuZ2U9eyBlID0+IHNldEF0dHJpYnV0ZXMoeyBob3ZlckJveFNoYWRvd1NwcmVhZDogZSB9KSB9XG5cdFx0XHRcdFx0XHRcdFx0bWluPXsgLTEwMCB9XG5cdFx0XHRcdFx0XHRcdFx0bWF4PXsgMTAwIH1cblx0XHRcdFx0XHRcdFx0Lz5cblxuXHRcdFx0XHRcdFx0XHQ8UmFuZ2VDb250cm9sXG5cdFx0XHRcdFx0XHRcdFx0bGFiZWw9eyBfXyggJ0hvcml6b250YWwnLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdFx0XHRcdFx0XHR2YWx1ZT17IGF0dHJpYnV0ZXMuaG92ZXJCb3hTaGFkb3dIb3Jpem9udGFsIH1cblx0XHRcdFx0XHRcdFx0XHRvbkNoYW5nZT17IGUgPT4gc2V0QXR0cmlidXRlcyh7IGhvdmVyQm94U2hhZG93SG9yaXpvbnRhbDogZSB9KSB9XG5cdFx0XHRcdFx0XHRcdFx0bWluPXsgLTEwMCB9XG5cdFx0XHRcdFx0XHRcdFx0bWF4PXsgMTAwIH1cblx0XHRcdFx0XHRcdFx0Lz5cblxuXHRcdFx0XHRcdFx0XHQ8UmFuZ2VDb250cm9sXG5cdFx0XHRcdFx0XHRcdFx0bGFiZWw9eyBfXyggJ1ZlcnRpY2FsJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdFx0XHRcdFx0dmFsdWU9eyBhdHRyaWJ1dGVzLmhvdmVyQm94U2hhZG93VmVydGljYWwgfVxuXHRcdFx0XHRcdFx0XHRcdG9uQ2hhbmdlPXsgZSA9PiBzZXRBdHRyaWJ1dGVzKHsgaG92ZXJCb3hTaGFkb3dWZXJ0aWNhbDogZSB9KSB9XG5cdFx0XHRcdFx0XHRcdFx0bWluPXsgLTEwMCB9XG5cdFx0XHRcdFx0XHRcdFx0bWF4PXsgMTAwIH1cblx0XHRcdFx0XHRcdFx0Lz5cblx0XHRcdFx0XHRcdDwvRnJhZ21lbnQ+XG5cdFx0XHRcdFx0KSB9XG5cdFx0XHRcdDwvQ29udHJvbFBhbmVsQ29udHJvbD5cblx0XHRcdDwvUGFuZWxCb2R5PlxuXG5cdFx0XHQ8UGFuZWxCb2R5XG5cdFx0XHRcdHRpdGxlPXsgX18oICdJY29uIFNldHRpbmdzJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdGluaXRpYWxPcGVuPXsgZmFsc2UgfVxuXHRcdFx0PlxuXHRcdFx0XHQ8U2VsZWN0Q29udHJvbFxuXHRcdFx0XHRcdGxhYmVsPXsgX18oICdJY29uIFBvc2l0aW9uJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdFx0dmFsdWU9eyBhdHRyaWJ1dGVzLmljb25UeXBlIH1cblx0XHRcdFx0XHRvcHRpb25zPXsgW1xuXHRcdFx0XHRcdFx0eyBsYWJlbDogX18oICdObyBJY29uJywgJ290dGVyLWJsb2NrcycgKSwgdmFsdWU6ICdub25lJyB9LFxuXHRcdFx0XHRcdFx0eyBsYWJlbDogX18oICdMZWZ0JywgJ290dGVyLWJsb2NrcycgKSwgdmFsdWU6ICdsZWZ0JyB9LFxuXHRcdFx0XHRcdFx0eyBsYWJlbDogX18oICdSaWdodCcsICdvdHRlci1ibG9ja3MnICksIHZhbHVlOiAncmlnaHQnIH0sXG5cdFx0XHRcdFx0XHR7IGxhYmVsOiBfXyggJ0ljb24gT25seScsICdvdHRlci1ibG9ja3MnICksIHZhbHVlOiAnb25seScgfVxuXHRcdFx0XHRcdF0gfVxuXHRcdFx0XHRcdG9uQ2hhbmdlPXsgZSA9PiBzZXRBdHRyaWJ1dGVzKHsgaWNvblR5cGU6IGUgfSkgfVxuXHRcdFx0XHQvPlxuXG5cdFx0XHRcdHsgJ25vbmUnICE9PSBhdHRyaWJ1dGVzLmljb25UeXBlICYmIChcblx0XHRcdFx0XHQ8U3VzcGVuc2UgZmFsbGJhY2s9ezxQbGFjZWhvbGRlcj48U3Bpbm5lci8+PC9QbGFjZWhvbGRlcj59PlxuXHRcdFx0XHRcdFx0PEljb25QaWNrZXJDb250cm9sXG5cdFx0XHRcdFx0XHRcdGxhYmVsPXsgX18oICdJY29uIFBpY2tlcicsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHRcdFx0XHRsaWJyYXJ5PXsgYXR0cmlidXRlcy5saWJyYXJ5IH1cblx0XHRcdFx0XHRcdFx0cHJlZml4PXsgYXR0cmlidXRlcy5wcmVmaXggfVxuXHRcdFx0XHRcdFx0XHRpY29uPXsgYXR0cmlidXRlcy5pY29uIH1cblx0XHRcdFx0XHRcdFx0Y2hhbmdlTGlicmFyeT17IGNoYW5nZUxpYnJhcnkgfVxuXHRcdFx0XHRcdFx0XHRvbkNoYW5nZT17IGNoYW5nZUljb24gfVxuXHRcdFx0XHRcdFx0Lz5cblx0XHRcdFx0XHQ8L1N1c3BlbnNlPlxuXHRcdFx0XHQpIH1cblx0XHRcdDwvUGFuZWxCb2R5PlxuXHRcdDwvSW5zcGVjdG9yQ29udHJvbHM+XG5cdCk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBJbnNwZWN0b3I7XG4iLCIvKiogQGpzeCBqc3ggKi9cblxuLyoqXG4gKiBFeHRlcm5hbCBkZXBlbmRlbmNpZXNcbiAqL1xuaW1wb3J0IHtcblx0Y3NzLFxuXHRqc3hcbn0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IGNsYXNzbmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgaGV4VG9SZ2JhIGZyb20gJ2hleC1yZ2JhJztcblxuLyoqXG4gKiBXb3JkUHJlc3MgZGVwZW5kZW5jaWVzLlxuICovXG5pbXBvcnQgeyBfXyB9IGZyb20gJ0B3b3JkcHJlc3MvaTE4bic7XG5cbmltcG9ydCB7IFJpY2hUZXh0IH0gZnJvbSAnQHdvcmRwcmVzcy9ibG9jay1lZGl0b3InO1xuXG5pbXBvcnQgeyB1c2VTZWxlY3QgfSBmcm9tICdAd29yZHByZXNzL2RhdGEnO1xuXG5pbXBvcnQge1xuXHRGcmFnbWVudCxcblx0dXNlRWZmZWN0XG59IGZyb20gJ0B3b3JkcHJlc3MvZWxlbWVudCc7XG5cbi8qKlxuICogSW50ZXJuYWwgZGVwZW5kZW5jaWVzXG4gKi9cbmltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuL2F0dHJpYnV0ZXMuanMnO1xuaW1wb3J0IENvbnRyb2xzIGZyb20gJy4vY29udHJvbHMuanMnO1xuaW1wb3J0IEluc3BlY3RvciBmcm9tICcuL2luc3BlY3Rvci5qcyc7XG5pbXBvcnQgdGhlbWVJc2xlSWNvbnMgZnJvbSAnLi8uLi8uLi8uLi9oZWxwZXJzL3RoZW1laXNsZS1pY29ucyc7XG5pbXBvcnQgeyBibG9ja0luaXQgfSBmcm9tICcuLi8uLi8uLi9oZWxwZXJzL2Jsb2NrLXV0aWxpdHkuanMnO1xuXG5jb25zdCBFZGl0ID0gKHtcblx0YXR0cmlidXRlcyxcblx0c2V0QXR0cmlidXRlcyxcblx0Y2xhc3NOYW1lLFxuXHRpc1NlbGVjdGVkLFxuXHRjbGllbnRJZFxufSkgPT4ge1xuXHRjb25zdCB7XG5cdFx0aGFzUGFyZW50LFxuXHRcdHBhcmVudEF0dHJpYnV0ZXMsXG5cdFx0aXNMYXN0Q2hpbGRcblx0fSA9IHVzZVNlbGVjdCggc2VsZWN0ID0+IHtcblx0XHRjb25zdCB7XG5cdFx0XHRnZXRCbG9jayxcblx0XHRcdGdldEJsb2NrUm9vdENsaWVudElkXG5cdFx0fSA9IHNlbGVjdCggJ2NvcmUvYmxvY2stZWRpdG9yJyApO1xuXG5cdFx0Y29uc3QgcGFyZW50Q2xpZW50SWQgPSBnZXRCbG9ja1Jvb3RDbGllbnRJZCggY2xpZW50SWQgKTtcblx0XHRjb25zdCBwYXJlbnRCbG9jayA9IGdldEJsb2NrKCBwYXJlbnRDbGllbnRJZCApO1xuXG5cdFx0cmV0dXJuIHtcblx0XHRcdGhhc1BhcmVudDogcGFyZW50QmxvY2sgPyB0cnVlIDogZmFsc2UsXG5cdFx0XHRwYXJlbnRBdHRyaWJ1dGVzOiBwYXJlbnRCbG9jayA/IHBhcmVudEJsb2NrLmF0dHJpYnV0ZXMgOiB7fSxcblx0XHRcdGlzTGFzdENoaWxkOiBwYXJlbnRCbG9jayA/IGNsaWVudElkID09PSBwYXJlbnRCbG9jay5pbm5lckJsb2Nrc1sgcGFyZW50QmxvY2suaW5uZXJCbG9ja3MubGVuZ3RoIC0gMSBdLmNsaWVudElkIDogdHJ1ZVxuXHRcdH07XG5cdH0sIFtdKTtcblxuXHR1c2VFZmZlY3QoICgpID0+IHtcblx0XHRjb25zdCB1bnN1YnNjcmliZSA9IGJsb2NrSW5pdCggY2xpZW50SWQsIGRlZmF1bHRBdHRyaWJ1dGVzICk7XG5cdFx0cmV0dXJuICgpID0+IHVuc3Vic2NyaWJlKCBhdHRyaWJ1dGVzLmlkICk7XG5cdH0sIFtdKTtcblxuXHRsZXQgYm94U2hhZG93U3R5bGUgPSB7fTtcblxuXHRsZXQgYnV0dG9uU3R5bGUgPSB7fTtcblxuXHRsZXQgYnV0dG9uU3R5bGVQYXJlbnQgPSB7fTtcblxuXHRpZiAoIGF0dHJpYnV0ZXMuYm94U2hhZG93ICkge1xuXHRcdGJveFNoYWRvd1N0eWxlID0ge1xuXHRcdFx0Ym94U2hhZG93OiBgJHsgYXR0cmlidXRlcy5ib3hTaGFkb3dIb3Jpem9udGFsIH1weCAkeyBhdHRyaWJ1dGVzLmJveFNoYWRvd1ZlcnRpY2FsIH1weCAkeyBhdHRyaWJ1dGVzLmJveFNoYWRvd0JsdXIgfXB4ICR7IGF0dHJpYnV0ZXMuYm94U2hhZG93U3ByZWFkIH1weCAkeyBoZXhUb1JnYmEoICggYXR0cmlidXRlcy5ib3hTaGFkb3dDb2xvciA/IGF0dHJpYnV0ZXMuYm94U2hhZG93Q29sb3IgOiAnIzAwMDAwMCcgKSwgYXR0cmlidXRlcy5ib3hTaGFkb3dDb2xvck9wYWNpdHkgKSB9YFxuXHRcdH07XG5cdH1cblxuXHRpZiAoIGhhc1BhcmVudCApIHtcblx0XHRidXR0b25TdHlsZVBhcmVudCA9IHtcblx0XHRcdG1hcmdpblJpZ2h0OiAhIGlzTGFzdENoaWxkICYmIGAkeyBwYXJlbnRBdHRyaWJ1dGVzLnNwYWNpbmcgfXB4YFxuXHRcdH07XG5cblx0XHRidXR0b25TdHlsZSA9IHtcblx0XHRcdHBhZGRpbmdUb3A6IGAkeyBwYXJlbnRBdHRyaWJ1dGVzLnBhZGRpbmdUb3BCb3R0b20gfXB4YCxcblx0XHRcdHBhZGRpbmdCb3R0b206IGAkeyBwYXJlbnRBdHRyaWJ1dGVzLnBhZGRpbmdUb3BCb3R0b20gfXB4YCxcblx0XHRcdHBhZGRpbmdMZWZ0OiBgJHsgcGFyZW50QXR0cmlidXRlcy5wYWRkaW5nTGVmdFJpZ2h0IH1weGAsXG5cdFx0XHRwYWRkaW5nUmlnaHQ6IGAkeyBwYXJlbnRBdHRyaWJ1dGVzLnBhZGRpbmdMZWZ0UmlnaHQgfXB4YCxcblx0XHRcdGZvbnRTaXplOiBwYXJlbnRBdHRyaWJ1dGVzLmZvbnRTaXplICYmIGAkeyBwYXJlbnRBdHRyaWJ1dGVzLmZvbnRTaXplIH1weGAsXG5cdFx0XHRmb250RmFtaWx5OiBwYXJlbnRBdHRyaWJ1dGVzLmZvbnRGYW1pbHksXG5cdFx0XHRmb250V2VpZ2h0OiBwYXJlbnRBdHRyaWJ1dGVzLmZvbnRWYXJpYW50LFxuXHRcdFx0Zm9udFN0eWxlOiBwYXJlbnRBdHRyaWJ1dGVzLmZvbnRTdHlsZSxcblx0XHRcdHRleHRUcmFuc2Zvcm06IHBhcmVudEF0dHJpYnV0ZXMudGV4dFRyYW5zZm9ybSxcblx0XHRcdGxpbmVIZWlnaHQ6IHBhcmVudEF0dHJpYnV0ZXMubGluZUhlaWdodCAmJiBgJHsgcGFyZW50QXR0cmlidXRlcy5saW5lSGVpZ2h0IH1weGBcblx0XHR9O1xuXHR9XG5cblx0Y29uc3Qgc3R5bGVzID0ge1xuXHRcdGNvbG9yOiBhdHRyaWJ1dGVzLmNvbG9yLFxuXHRcdGJhY2tncm91bmQ6IGF0dHJpYnV0ZXMuYmFja2dyb3VuZCB8fCBhdHRyaWJ1dGVzLmJhY2tncm91bmRHcmFkaWVudCxcblx0XHRib3JkZXI6IGAkeyBhdHRyaWJ1dGVzLmJvcmRlclNpemUgfXB4IHNvbGlkICR7IGF0dHJpYnV0ZXMuYm9yZGVyIH1gLFxuXHRcdGJvcmRlclJhZGl1czogYXR0cmlidXRlcy5ib3JkZXJSYWRpdXMsXG5cdFx0Li4uYm94U2hhZG93U3R5bGUsXG5cdFx0Li4uYnV0dG9uU3R5bGVcblx0fTtcblxuXHRjb25zdCBob3ZlclN0eWxlcyA9IGNzc2Bcblx0XHQmOmhvdmVyIHtcblx0XHRcdGNvbG9yOiAkeyBhdHRyaWJ1dGVzLmhvdmVyQ29sb3IgfSAhaW1wb3J0YW50O1xuXHRcdFx0YmFja2dyb3VuZDogJHsgYXR0cmlidXRlcy5ob3ZlckJhY2tncm91bmQgfHwgYXR0cmlidXRlcy5ob3ZlckJhY2tncm91bmRHcmFkaWVudCB9ICFpbXBvcnRhbnQ7XG5cdFx0XHRib3JkZXItY29sb3I6ICR7IGF0dHJpYnV0ZXMuaG92ZXJCb3JkZXIgfSAhaW1wb3J0YW50O1xuXHRcdFx0JHsgYXR0cmlidXRlcy5ib3hTaGFkb3cgJiYgYGJveC1zaGFkb3c6ICR7IGF0dHJpYnV0ZXMuaG92ZXJCb3hTaGFkb3dIb3Jpem9udGFsIH1weCAkeyBhdHRyaWJ1dGVzLmhvdmVyQm94U2hhZG93VmVydGljYWwgfXB4ICR7IGF0dHJpYnV0ZXMuaG92ZXJCb3hTaGFkb3dCbHVyIH1weCAkeyBhdHRyaWJ1dGVzLmhvdmVyQm94U2hhZG93U3ByZWFkIH1weCAkeyBoZXhUb1JnYmEoICggYXR0cmlidXRlcy5ob3ZlckJveFNoYWRvd0NvbG9yID8gYXR0cmlidXRlcy5ob3ZlckJveFNoYWRvd0NvbG9yIDogJyMwMDAwMDAnICksIGF0dHJpYnV0ZXMuaG92ZXJCb3hTaGFkb3dDb2xvck9wYWNpdHkgKSB9ICFpbXBvcnRhbnQ7YCB9XG5cdFx0fVxuXG5cdFx0Jjpob3ZlciBzdmcge1xuXHRcdFx0ZmlsbDogJHsgYXR0cmlidXRlcy5ob3ZlckNvbG9yIH0gIWltcG9ydGFudDtcblx0XHR9XG5cdGA7XG5cblx0Y29uc3QgaWNvblN0eWxlcyA9IHtcblx0XHRmaWxsOiBhdHRyaWJ1dGVzLmNvbG9yLFxuXHRcdHdpZHRoOiBwYXJlbnRBdHRyaWJ1dGVzLmZvbnRTaXplICYmIGAkeyBwYXJlbnRBdHRyaWJ1dGVzLmZvbnRTaXplIH1weGBcblx0fTtcblxuXHRjb25zdCBJY29uID0gdGhlbWVJc2xlSWNvbnMuaWNvbnNbIGF0dHJpYnV0ZXMuaWNvbiBdO1xuXG5cdHJldHVybiAoXG5cdFx0PEZyYWdtZW50PlxuXHRcdFx0PENvbnRyb2xzXG5cdFx0XHRcdGF0dHJpYnV0ZXM9eyBhdHRyaWJ1dGVzIH1cblx0XHRcdFx0c2V0QXR0cmlidXRlcz17IHNldEF0dHJpYnV0ZXMgfVxuXHRcdFx0XHRpc1NlbGVjdGVkPXsgaXNTZWxlY3RlZCB9XG5cdFx0XHQvPlxuXG5cdFx0XHQ8SW5zcGVjdG9yXG5cdFx0XHRcdGF0dHJpYnV0ZXM9eyBhdHRyaWJ1dGVzIH1cblx0XHRcdFx0c2V0QXR0cmlidXRlcz17IHNldEF0dHJpYnV0ZXMgfVxuXHRcdFx0Lz5cblxuXHRcdFx0PGRpdlxuXHRcdFx0XHRpZD17IGF0dHJpYnV0ZXMuaWQgfVxuXHRcdFx0XHRjbGFzc05hbWU9eyBjbGFzc25hbWVzKFxuXHRcdFx0XHRcdGNsYXNzTmFtZSxcblx0XHRcdFx0XHQnd3AtYmxvY2stYnV0dG9uJ1xuXHRcdFx0XHQpIH1cblx0XHRcdFx0c3R5bGU9eyBidXR0b25TdHlsZVBhcmVudCB9XG5cdFx0XHQ+XG5cdFx0XHRcdHsgJ25vbmUnICE9PSBhdHRyaWJ1dGVzLmljb25UeXBlID8gKFxuXHRcdFx0XHRcdDxkaXZcblx0XHRcdFx0XHRcdGNsYXNzTmFtZT1cIndwLWJsb2NrLWJ1dHRvbl9fbGlua1wiXG5cdFx0XHRcdFx0XHRzdHlsZT17IHN0eWxlcyB9XG5cdFx0XHRcdFx0XHRjc3M9eyBob3ZlclN0eWxlcyB9XG5cdFx0XHRcdFx0PlxuXHRcdFx0XHRcdFx0eyAoICdsZWZ0JyA9PT0gYXR0cmlidXRlcy5pY29uVHlwZSB8fCAnb25seScgPT09IGF0dHJpYnV0ZXMuaWNvblR5cGUgKSAmJiAoXG5cdFx0XHRcdFx0XHRcdCd0aGVtZWlzbGUtaWNvbnMnID09PSBhdHRyaWJ1dGVzLmxpYnJhcnkgJiYgYXR0cmlidXRlcy5pY29uID8gKFxuXHRcdFx0XHRcdFx0XHRcdDxJY29uXG5cdFx0XHRcdFx0XHRcdFx0XHRjbGFzc05hbWU9eyBjbGFzc25hbWVzKFxuXHRcdFx0XHRcdFx0XHRcdFx0XHR7ICdtYXJnaW4tcmlnaHQnOiAnbGVmdCcgPT09IGF0dHJpYnV0ZXMuaWNvblR5cGUgfVxuXHRcdFx0XHRcdFx0XHRcdFx0KSB9XG5cdFx0XHRcdFx0XHRcdFx0XHRzdHlsZT17IGljb25TdHlsZXMgfVxuXHRcdFx0XHRcdFx0XHRcdC8+XG5cdFx0XHRcdFx0XHRcdCkgOiAoXG5cdFx0XHRcdFx0XHRcdFx0PGlcblx0XHRcdFx0XHRcdFx0XHRcdGNsYXNzTmFtZT17IGNsYXNzbmFtZXMoXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGF0dHJpYnV0ZXMucHJlZml4LFxuXHRcdFx0XHRcdFx0XHRcdFx0XHQnZmEtZncnLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRgZmEtJHsgYXR0cmlidXRlcy5pY29uIH1gLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHR7ICdtYXJnaW4tcmlnaHQnOiAnbGVmdCcgPT09IGF0dHJpYnV0ZXMuaWNvblR5cGUgfVxuXHRcdFx0XHRcdFx0XHRcdFx0KSB9XG5cdFx0XHRcdFx0XHRcdFx0PlxuXHRcdFx0XHRcdFx0XHRcdDwvaT5cblx0XHRcdFx0XHRcdFx0KVxuXHRcdFx0XHRcdFx0KSB9XG5cblx0XHRcdFx0XHRcdHsgJ29ubHknICE9PSBhdHRyaWJ1dGVzLmljb25UeXBlICYmIChcblx0XHRcdFx0XHRcdFx0PFJpY2hUZXh0XG5cdFx0XHRcdFx0XHRcdFx0cGxhY2Vob2xkZXI9eyBfXyggJ0FkZCB0ZXh04oCmJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdFx0XHRcdFx0dmFsdWU9eyBhdHRyaWJ1dGVzLnRleHQgfVxuXHRcdFx0XHRcdFx0XHRcdG9uQ2hhbmdlPXsgdmFsdWUgPT4gc2V0QXR0cmlidXRlcyh7IHRleHQ6IHZhbHVlIH0pIH1cblx0XHRcdFx0XHRcdFx0XHR0YWdOYW1lPVwiZGl2XCJcblx0XHRcdFx0XHRcdFx0XHR3aXRob3V0SW50ZXJhY3RpdmVGb3JtYXR0aW5nXG5cdFx0XHRcdFx0XHRcdC8+XG5cdFx0XHRcdFx0XHQpIH1cblxuXHRcdFx0XHRcdFx0eyAncmlnaHQnID09PSBhdHRyaWJ1dGVzLmljb25UeXBlICYmIChcblx0XHRcdFx0XHRcdFx0J3RoZW1laXNsZS1pY29ucycgPT09IGF0dHJpYnV0ZXMubGlicmFyeSAmJiBhdHRyaWJ1dGVzLmljb24gPyAoXG5cdFx0XHRcdFx0XHRcdFx0PEljb25cblx0XHRcdFx0XHRcdFx0XHRcdGNsYXNzTmFtZT1cIm1hcmdpbi1sZWZ0XCJcblx0XHRcdFx0XHRcdFx0XHRcdHN0eWxlPXsgaWNvblN0eWxlcyB9XG5cdFx0XHRcdFx0XHRcdFx0Lz5cblx0XHRcdFx0XHRcdFx0KSA6IChcblx0XHRcdFx0XHRcdFx0XHQ8aSBjbGFzc05hbWU9eyBgJHsgYXR0cmlidXRlcy5wcmVmaXggfSBmYS1mdyBmYS0keyBhdHRyaWJ1dGVzLmljb24gfSBtYXJnaW4tbGVmdGAgfT48L2k+XG5cdFx0XHRcdFx0XHRcdClcblx0XHRcdFx0XHRcdCkgfVxuXHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHQpIDogKFxuXHRcdFx0XHRcdDxSaWNoVGV4dFxuXHRcdFx0XHRcdFx0cGxhY2Vob2xkZXI9eyBfXyggJ0FkZCB0ZXh04oCmJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdFx0XHR2YWx1ZT17IGF0dHJpYnV0ZXMudGV4dCB9XG5cdFx0XHRcdFx0XHRvbkNoYW5nZT17IHZhbHVlID0+IHNldEF0dHJpYnV0ZXMoeyB0ZXh0OiB2YWx1ZSB9KSB9XG5cdFx0XHRcdFx0XHR0YWdOYW1lPVwiZGl2XCJcblx0XHRcdFx0XHRcdHdpdGhvdXRJbnRlcmFjdGl2ZUZvcm1hdHRpbmdcblx0XHRcdFx0XHRcdGNsYXNzTmFtZT1cIndwLWJsb2NrLWJ1dHRvbl9fbGlua1wiXG5cdFx0XHRcdFx0XHRzdHlsZT17IHN0eWxlcyB9XG5cdFx0XHRcdFx0XHRjc3M9eyBob3ZlclN0eWxlcyB9XG5cdFx0XHRcdFx0Lz5cblx0XHRcdFx0KSB9XG5cdFx0XHQ8L2Rpdj5cblx0XHQ8L0ZyYWdtZW50PlxuXHQpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgRWRpdDtcbiIsIi8qKlxuICogRXh0ZXJuYWwgZGVwZW5kZW5jaWVzXG4gKi9cbmltcG9ydCBjbGFzc25hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuXG4vKipcbiAqIFdvcmRQcmVzcyBkZXBlbmRlbmNpZXMuXG4gKi9cbmltcG9ydCB7IFJpY2hUZXh0IH0gZnJvbSAnQHdvcmRwcmVzcy9ibG9jay1lZGl0b3InO1xuXG4vKipcbiAqIEludGVybmFsIGRlcGVuZGVuY2llc1xuICovXG5pbXBvcnQgdGhlbWVJc2xlSWNvbnMgZnJvbSAnLi8uLi8uLi8uLi9oZWxwZXJzL3RoZW1laXNsZS1pY29ucyc7XG5cbmNvbnN0IFNhdmUgPSAoe1xuXHRhdHRyaWJ1dGVzLFxuXHRjbGFzc05hbWVcbn0pID0+IHtcblx0Y29uc3QgSWNvbiA9IHRoZW1lSXNsZUljb25zLmljb25zWyBhdHRyaWJ1dGVzLmljb24gXTtcblxuXHRyZXR1cm4gKFxuXHRcdDxkaXZcblx0XHRcdGlkPXsgYXR0cmlidXRlcy5pZCB9XG5cdFx0XHRjbGFzc05hbWU9eyBjbGFzc25hbWVzKFxuXHRcdFx0XHRjbGFzc05hbWUsXG5cdFx0XHRcdCd3cC1ibG9jay1idXR0b24nXG5cdFx0XHQpIH1cblx0XHQ+XG5cdFx0XHQ8YVxuXHRcdFx0XHRocmVmPXsgYXR0cmlidXRlcy5saW5rIH1cblx0XHRcdFx0dGFyZ2V0PXsgYXR0cmlidXRlcy5uZXdUYWIgPyAnX2JsYW5rJyA6ICdfc2VsZicgfVxuXHRcdFx0XHRyZWw9XCJub29wZW5lciBub3JlZmVycmVyXCJcblx0XHRcdFx0Y2xhc3NOYW1lPVwid3AtYmxvY2stYnV0dG9uX19saW5rXCJcblx0XHRcdD5cblx0XHRcdFx0eyAoICdsZWZ0JyA9PT0gYXR0cmlidXRlcy5pY29uVHlwZSB8fCAnb25seScgPT09IGF0dHJpYnV0ZXMuaWNvblR5cGUgKSAmJiAoXG5cdFx0XHRcdFx0J3RoZW1laXNsZS1pY29ucycgPT09IGF0dHJpYnV0ZXMubGlicmFyeSAmJiBhdHRyaWJ1dGVzLmljb24gPyAoXG5cdFx0XHRcdFx0XHQ8SWNvblxuXHRcdFx0XHRcdFx0XHRjbGFzc05hbWU9eyBjbGFzc25hbWVzKFxuXHRcdFx0XHRcdFx0XHRcdHsgJ21hcmdpbi1yaWdodCc6ICdsZWZ0JyA9PT0gYXR0cmlidXRlcy5pY29uVHlwZSB9XG5cdFx0XHRcdFx0XHRcdCkgfVxuXHRcdFx0XHRcdFx0Lz5cblx0XHRcdFx0XHQpIDogKFxuXHRcdFx0XHRcdFx0PGkgY2xhc3NOYW1lPXsgY2xhc3NuYW1lcyhcblx0XHRcdFx0XHRcdFx0YXR0cmlidXRlcy5wcmVmaXgsXG5cdFx0XHRcdFx0XHRcdCdmYS1mdycsXG5cdFx0XHRcdFx0XHRcdGBmYS0keyBhdHRyaWJ1dGVzLmljb24gfWAsXG5cdFx0XHRcdFx0XHRcdHsgJ21hcmdpbi1yaWdodCc6ICdsZWZ0JyA9PT0gYXR0cmlidXRlcy5pY29uVHlwZSB9XG5cdFx0XHRcdFx0XHQpIH0+XG5cdFx0XHRcdFx0XHQ8L2k+XG5cdFx0XHRcdFx0KVxuXHRcdFx0XHQpIH1cblxuXHRcdFx0XHR7ICdvbmx5JyAhPT0gYXR0cmlidXRlcy5pY29uVHlwZSAmJiAoXG5cdFx0XHRcdFx0PFJpY2hUZXh0LkNvbnRlbnRcblx0XHRcdFx0XHRcdHRhZ05hbWU9XCJzcGFuXCJcblx0XHRcdFx0XHRcdHZhbHVlPXsgYXR0cmlidXRlcy50ZXh0IH1cblx0XHRcdFx0XHQvPlxuXHRcdFx0XHQpIH1cblxuXHRcdFx0XHR7ICdyaWdodCcgPT09IGF0dHJpYnV0ZXMuaWNvblR5cGUgJiYgKFxuXHRcdFx0XHRcdCd0aGVtZWlzbGUtaWNvbnMnID09PSBhdHRyaWJ1dGVzLmxpYnJhcnkgJiYgYXR0cmlidXRlcy5pY29uID8gKFxuXHRcdFx0XHRcdFx0PEljb24gY2xhc3NOYW1lPVwibWFyZ2luLWxlZnRcIiAvPlxuXHRcdFx0XHRcdCkgOiAoXG5cdFx0XHRcdFx0XHQ8aSBjbGFzc05hbWU9eyBgJHsgYXR0cmlidXRlcy5wcmVmaXggfSBmYS1mdyBmYS0keyBhdHRyaWJ1dGVzLmljb24gfSBtYXJnaW4tbGVmdGAgfT48L2k+XG5cdFx0XHRcdFx0KVxuXHRcdFx0XHQpIH1cblx0XHRcdDwvYT5cblx0XHQ8L2Rpdj5cblx0KTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFNhdmU7XG4iLCIvKipcbiAqIFdvcmRQcmVzcyBkZXBlbmRlbmNpZXMuXG4gKi9cbmltcG9ydCB7IF9fIH0gZnJvbSAnQHdvcmRwcmVzcy9pMThuJztcblxuaW1wb3J0IHsgcmVnaXN0ZXJCbG9ja1R5cGUgfSBmcm9tICdAd29yZHByZXNzL2Jsb2Nrcyc7XG5cbi8qKlxuICogSW50ZXJuYWwgZGVwZW5kZW5jaWVzXG4gKi9cbmltcG9ydCB7IGJ1dHRvbnNJY29uIGFzIGljb24gfSBmcm9tICcuLi8uLi8uLi9oZWxwZXJzL2ljb25zLmpzJztcbmltcG9ydCBhdHRyaWJ1dGVzIGZyb20gJy4vYXR0cmlidXRlcy5qcyc7XG5pbXBvcnQgZWRpdCBmcm9tICcuL2VkaXQuanMnO1xuaW1wb3J0IHNhdmUgZnJvbSAnLi9zYXZlLmpzJztcblxucmVnaXN0ZXJCbG9ja1R5cGUoICd0aGVtZWlzbGUtYmxvY2tzL2J1dHRvbicsIHtcblx0dGl0bGU6IF9fKCAnQnV0dG9uJywgJ290dGVyLWJsb2NrcycgKSxcblx0ZGVzY3JpcHRpb246IF9fKCAnUHJvbXB0IHZpc2l0b3JzIHRvIHRha2UgYWN0aW9uIHdpdGggYSBidXR0b24gZ3JvdXAuJywgJ290dGVyLWJsb2NrcycgKSxcblx0cGFyZW50OiBbICd0aGVtZWlzbGUtYmxvY2tzL2J1dHRvbi1ncm91cCcgXSxcblx0aWNvbixcblx0Y2F0ZWdvcnk6ICd0aGVtZWlzbGUtYmxvY2tzJyxcblx0a2V5d29yZHM6IFtcblx0XHQnYnV0dG9uJyxcblx0XHQnYnV0dG9ucycsXG5cdFx0J2J1dHRvbiBncm91cCdcblx0XSxcblx0YXR0cmlidXRlcyxcblx0c3VwcG9ydHM6IHtcblx0XHRyZXVzYWJsZTogZmFsc2Vcblx0fSxcblx0c3R5bGVzOiBbXG5cdFx0e1xuXHRcdFx0bmFtZTogJ2ZpbGwnLFxuXHRcdFx0bGFiZWw6IF9fKCAnRmlsbCcsICdvdHRlci1ibG9ja3MnICksXG5cdFx0XHRpc0RlZmF1bHQ6IHRydWVcblx0XHR9LFxuXHRcdHtcblx0XHRcdG5hbWU6ICdvdXRsaW5lJyxcblx0XHRcdGxhYmVsOiBfXyggJ091dGxpbmUnLCAnb3R0ZXItYmxvY2tzJyApXG5cdFx0fVxuXHRdLFxuXHRlZGl0LFxuXHRzYXZlXG59KTtcbiJdLCJuYW1lcyI6WyJhdHRyaWJ1dGVzIiwiaWQiLCJ0eXBlIiwidGV4dCIsInNvdXJjZSIsInNlbGVjdG9yIiwibGluayIsImF0dHJpYnV0ZSIsIm5ld1RhYiIsImRlZmF1bHQiLCJjb2xvciIsImJhY2tncm91bmQiLCJiYWNrZ3JvdW5kR3JhZGllbnQiLCJib3JkZXIiLCJob3ZlckNvbG9yIiwiaG92ZXJCYWNrZ3JvdW5kIiwiaG92ZXJCYWNrZ3JvdW5kR3JhZGllbnQiLCJob3ZlckJvcmRlciIsImJvcmRlclNpemUiLCJib3JkZXJSYWRpdXMiLCJib3hTaGFkb3ciLCJib3hTaGFkb3dDb2xvciIsImJveFNoYWRvd0NvbG9yT3BhY2l0eSIsImJveFNoYWRvd0JsdXIiLCJib3hTaGFkb3dTcHJlYWQiLCJib3hTaGFkb3dIb3Jpem9udGFsIiwiYm94U2hhZG93VmVydGljYWwiLCJob3ZlckJveFNoYWRvd0NvbG9yIiwiaG92ZXJCb3hTaGFkb3dDb2xvck9wYWNpdHkiLCJob3ZlckJveFNoYWRvd0JsdXIiLCJob3ZlckJveFNoYWRvd1NwcmVhZCIsImhvdmVyQm94U2hhZG93SG9yaXpvbnRhbCIsImhvdmVyQm94U2hhZG93VmVydGljYWwiLCJpY29uVHlwZSIsImxpYnJhcnkiLCJwcmVmaXgiLCJpY29uIiwiQmxvY2tDb250cm9scyIsIkxpbmtDb250cm9sIiwiQ29udHJvbHMiLCJzZXRBdHRyaWJ1dGVzIiwiaXNTZWxlY3RlZCIsIl9fIiwiX19leHBlcmltZW50YWxDb2xvckdyYWRpZW50Q29udHJvbCIsIkNvbG9yR3JhZGllbnRDb250cm9sIiwiSW5zcGVjdG9yQ29udHJvbHMiLCJCdXR0b24iLCJCdXR0b25Hcm91cCIsIlBhbmVsQm9keSIsIlJhbmdlQ29udHJvbCIsIlBsYWNlaG9sZGVyIiwiU2VsZWN0Q29udHJvbCIsIlNwaW5uZXIiLCJGcmFnbWVudCIsImxhenkiLCJTdXNwZW5zZSIsInVzZVN0YXRlIiwiQ29udHJvbFBhbmVsQ29udHJvbCIsIkljb25QaWNrZXJDb250cm9sIiwiSW5zcGVjdG9yIiwiaG92ZXIiLCJzZXRIb3ZlciIsImNoYW5nZUxpYnJhcnkiLCJ2YWx1ZSIsInVuZGVmaW5lZCIsImNoYW5nZUljb24iLCJuYW1lIiwiSG92ZXJDb250cm9sIiwiZSIsImxhYmVsIiwiY3NzIiwianN4IiwiY2xhc3NuYW1lcyIsImhleFRvUmdiYSIsIlJpY2hUZXh0IiwidXNlU2VsZWN0IiwidXNlRWZmZWN0IiwiZGVmYXVsdEF0dHJpYnV0ZXMiLCJ0aGVtZUlzbGVJY29ucyIsImJsb2NrSW5pdCIsIkVkaXQiLCJjbGFzc05hbWUiLCJjbGllbnRJZCIsImhhc1BhcmVudCIsInBhcmVudEF0dHJpYnV0ZXMiLCJpc0xhc3RDaGlsZCIsInNlbGVjdCIsImdldEJsb2NrIiwiZ2V0QmxvY2tSb290Q2xpZW50SWQiLCJwYXJlbnRDbGllbnRJZCIsInBhcmVudEJsb2NrIiwiaW5uZXJCbG9ja3MiLCJsZW5ndGgiLCJ1bnN1YnNjcmliZSIsImJveFNoYWRvd1N0eWxlIiwiYnV0dG9uU3R5bGUiLCJidXR0b25TdHlsZVBhcmVudCIsIm1hcmdpblJpZ2h0Iiwic3BhY2luZyIsInBhZGRpbmdUb3AiLCJwYWRkaW5nVG9wQm90dG9tIiwicGFkZGluZ0JvdHRvbSIsInBhZGRpbmdMZWZ0IiwicGFkZGluZ0xlZnRSaWdodCIsInBhZGRpbmdSaWdodCIsImZvbnRTaXplIiwiZm9udEZhbWlseSIsImZvbnRXZWlnaHQiLCJmb250VmFyaWFudCIsImZvbnRTdHlsZSIsInRleHRUcmFuc2Zvcm0iLCJsaW5lSGVpZ2h0Iiwic3R5bGVzIiwiaG92ZXJTdHlsZXMiLCJpY29uU3R5bGVzIiwiZmlsbCIsIndpZHRoIiwiSWNvbiIsImljb25zIiwiU2F2ZSIsInJlZ2lzdGVyQmxvY2tUeXBlIiwiYnV0dG9uc0ljb24iLCJlZGl0Iiwic2F2ZSIsInRpdGxlIiwiZGVzY3JpcHRpb24iLCJwYXJlbnQiLCJjYXRlZ29yeSIsImtleXdvcmRzIiwic3VwcG9ydHMiLCJyZXVzYWJsZSIsImlzRGVmYXVsdCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///3986\n")},2756:function(__unused_webpack_module,__unused_webpack___webpack_exports__,__webpack_require__){eval("\n// EXTERNAL MODULE: external [\"wp\",\"i18n\"]\nvar external_wp_i18n_ = __webpack_require__(5736);\n// EXTERNAL MODULE: external [\"wp\",\"blocks\"]\nvar external_wp_blocks_ = __webpack_require__(4981);\n// EXTERNAL MODULE: ./src/blocks/helpers/icons.js\nvar icons = __webpack_require__(340);\n;// CONCATENATED MODULE: ./src/blocks/blocks/button-group/group/attributes.js\nconst attributes = {\n id: {\n type: 'string'\n },\n align: {\n type: 'string'\n },\n spacing: {\n type: 'number',\n default: 20\n },\n paddingTopBottom: {\n type: 'number'\n },\n paddingLeftRight: {\n type: 'number'\n },\n collapse: {\n type: 'string',\n default: 'collapse-none'\n },\n fontSize: {\n type: 'number'\n },\n fontFamily: {\n type: 'string'\n },\n fontVariant: {\n type: 'string'\n },\n textTransform: {\n type: 'string'\n },\n fontStyle: {\n type: 'string'\n },\n lineHeight: {\n type: 'number'\n }\n};\n/* harmony default export */ var group_attributes = (attributes);\n// EXTERNAL MODULE: external [\"wp\",\"element\"]\nvar external_wp_element_ = __webpack_require__(9307);\n// EXTERNAL MODULE: ./node_modules/classnames/index.js\nvar classnames = __webpack_require__(4184);\nvar classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);\n// EXTERNAL MODULE: external \"lodash\"\nvar external_lodash_ = __webpack_require__(2819);\n// EXTERNAL MODULE: external [\"wp\",\"blockEditor\"]\nvar external_wp_blockEditor_ = __webpack_require__(2175);\n;// CONCATENATED MODULE: ./src/blocks/blocks/button-group/group/deprecated.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies.\n */\n\n\n\n\n\nconst deprecated_attributes = {\n id: {\n type: 'string'\n },\n buttons: {\n type: 'number',\n default: 2\n },\n align: {\n type: 'string'\n },\n spacing: {\n type: 'number',\n default: 20\n },\n collapse: {\n type: 'string',\n default: 'collapse-none'\n },\n fontSize: {\n type: 'number',\n default: 18\n },\n fontFamily: {\n type: 'string'\n },\n fontVariant: {\n type: 'string'\n },\n textTransform: {\n type: 'string'\n },\n fontStyle: {\n type: 'string',\n default: 'normal'\n },\n lineHeight: {\n type: 'number'\n },\n data: {\n type: 'array',\n default: [{\n text: '',\n link: '',\n newTab: false,\n color: '#ffffff',\n background: '#32373c',\n border: '',\n hoverColor: '',\n hoverBackground: '',\n hoverBorder: '',\n borderSize: 0,\n borderRadius: 0,\n boxShadow: false,\n boxShadowColor: '',\n boxShadowColorOpacity: 50,\n boxShadowBlur: 5,\n boxShadowSpread: 1,\n boxShadowHorizontal: 0,\n boxShadowVertical: 0,\n hoverBoxShadowColor: '',\n hoverBoxShadowColorOpacity: 50,\n hoverBoxShadowBlur: 5,\n hoverBoxShadowSpread: 1,\n hoverBoxShadowHorizontal: 0,\n hoverBoxShadowVertical: 0,\n iconType: 'none',\n prefix: '',\n icon: '',\n paddingTopBottom: 12,\n paddingLeftRight: 24\n }, {\n text: '',\n link: '',\n newTab: false,\n color: '#ffffff',\n background: '#32373c',\n border: '',\n hoverColor: '',\n hoverBackground: '',\n hoverBorder: '',\n borderSize: 0,\n borderRadius: 0,\n boxShadow: false,\n boxShadowColor: '',\n boxShadowColorOpacity: 50,\n boxShadowBlur: 5,\n boxShadowSpread: 1,\n boxShadowHorizontal: 0,\n boxShadowVertical: 0,\n hoverBoxShadowColor: '',\n hoverBoxShadowColorOpacity: 50,\n hoverBoxShadowBlur: 5,\n hoverBoxShadowSpread: 1,\n hoverBoxShadowHorizontal: 0,\n hoverBoxShadowVertical: 0,\n iconType: 'none',\n prefix: '',\n icon: '',\n paddingTopBottom: 12,\n paddingLeftRight: 24\n }]\n }\n};\nconst deprecated = [{\n attributes: deprecated_attributes,\n save: ({\n attributes,\n className\n }) => {\n const collapseClass = 'collapse-none' !== attributes.collapse ? attributes.collapse : '';\n const style = {\n fontSize: `${attributes.fontSize}px`,\n fontFamily: attributes.fontFamily,\n fontWeight: attributes.fontVariant,\n fontStyle: attributes.fontStyle,\n textTransform: attributes.textTransform,\n lineHeight: attributes.lineHeight && `${attributes.lineHeight}px`\n };\n\n const button = i => {\n const buttonStyle = { ...style,\n borderWidth: `${attributes.data[i].borderSize}px`,\n borderRadius: `${attributes.data[i].borderRadius}px`,\n padding: `${attributes.data[i].paddingTopBottom}px ${attributes.data[i].paddingLeftRight}px`\n };\n return (0,external_wp_element_.createElement)(external_wp_element_.Fragment, null, (0,external_wp_element_.createElement)(\"a\", {\n href: attributes.data[i].link,\n target: attributes.data[i].newTab ? '_blank' : '_self',\n className: classnames_default()('wp-block-themeisle-blocks-button', `wp-block-themeisle-blocks-button-${i}`),\n style: buttonStyle\n }, ('left' === attributes.data[i].iconType || 'only' === attributes.data[i].iconType) && (0,external_wp_element_.createElement)(\"i\", {\n className: classnames_default()(attributes.data[i].prefix, 'fa-fw', `fa-${attributes.data[i].icon}`, {\n 'margin-right': 'left' === attributes.data[i].iconType\n })\n }), 'only' !== attributes.data[i].iconType && (0,external_wp_element_.createElement)(external_wp_blockEditor_.RichText.Content, {\n tagName: \"span\",\n value: attributes.data[i].text\n }), 'right' === attributes.data[i].iconType && (0,external_wp_element_.createElement)(\"i\", {\n className: `${attributes.data[i].prefix} fa-fw fa-${attributes.data[i].icon} margin-left`\n })));\n };\n\n return (0,external_wp_element_.createElement)(\"div\", {\n id: attributes.id,\n className: classnames_default()(className, collapseClass),\n style: {\n justifyContent: attributes.align,\n alignItems: attributes.align ? attributes.align : 'flex-start'\n }\n }, (0,external_lodash_.times)(attributes.buttons, i => button(i)));\n }\n}, {\n attributes: deprecated_attributes,\n save: ({\n attributes,\n className\n }) => {\n const collapseClass = 'collapse-none' !== attributes.collapse ? attributes.collapse : '';\n const style = {\n fontSize: `${attributes.fontSize}px`,\n fontFamily: attributes.fontFamily,\n fontWeight: attributes.fontVariant,\n fontStyle: attributes.fontStyle,\n textTransform: attributes.textTransform,\n lineHeight: attributes.lineHeight && `${attributes.lineHeight}px`\n };\n\n const button = i => {\n const buttonStyle = { ...style,\n borderWidth: `${attributes.data[i].borderSize}px`,\n borderRadius: `${attributes.data[i].borderRadius}px`,\n padding: `${attributes.data[i].paddingTopBottom}px ${attributes.data[i].paddingLeftRight}px`\n };\n return (0,external_wp_element_.createElement)(external_wp_element_.Fragment, null, (0,external_wp_element_.createElement)(\"a\", {\n href: attributes.data[i].link,\n target: attributes.data[i].newTab ? '_blank' : '_self',\n className: classnames_default()('wp-block-themeisle-blocks-button', `wp-block-themeisle-blocks-button-${i}`),\n style: buttonStyle,\n rel: \"noopener noreferrer\"\n }, ('left' === attributes.data[i].iconType || 'only' === attributes.data[i].iconType) && (0,external_wp_element_.createElement)(\"i\", {\n className: classnames_default()(attributes.data[i].prefix, 'fa-fw', `fa-${attributes.data[i].icon}`, {\n 'margin-right': 'left' === attributes.data[i].iconType\n })\n }), 'only' !== attributes.data[i].iconType && (0,external_wp_element_.createElement)(external_wp_blockEditor_.RichText.Content, {\n tagName: \"span\",\n value: attributes.data[i].text\n }), 'right' === attributes.data[i].iconType && (0,external_wp_element_.createElement)(\"i\", {\n className: `${attributes.data[i].prefix} fa-fw fa-${attributes.data[i].icon} margin-left`\n })));\n };\n\n return (0,external_wp_element_.createElement)(\"div\", {\n id: attributes.id,\n className: classnames_default()(className, collapseClass),\n style: {\n justifyContent: attributes.align,\n alignItems: attributes.align ? attributes.align : 'flex-start'\n }\n }, (0,external_lodash_.times)(attributes.buttons, i => button(i)));\n }\n}, {\n attributes: { ...deprecated_attributes,\n fontSize: {\n type: 'number'\n },\n fontStyle: {\n type: 'string'\n },\n data: {\n type: 'array',\n default: [{\n text: '',\n link: '',\n newTab: false,\n color: '',\n background: '',\n border: '',\n hoverColor: '',\n hoverBackground: '',\n hoverBorder: '',\n borderSize: '',\n borderRadius: '',\n boxShadow: false,\n boxShadowColor: '',\n boxShadowColorOpacity: 50,\n boxShadowBlur: 5,\n boxShadowSpread: 1,\n boxShadowHorizontal: 0,\n boxShadowVertical: 0,\n hoverBoxShadowColor: '',\n hoverBoxShadowColorOpacity: 50,\n hoverBoxShadowBlur: 5,\n hoverBoxShadowSpread: 1,\n hoverBoxShadowHorizontal: 0,\n hoverBoxShadowVertical: 0,\n iconType: 'none',\n prefix: '',\n icon: '',\n paddingTopBottom: '',\n paddingLeftRight: ''\n }, {\n text: '',\n link: '',\n newTab: false,\n color: '',\n background: '',\n border: '',\n hoverColor: '',\n hoverBackground: '',\n hoverBorder: '',\n borderSize: '',\n borderRadius: '',\n boxShadow: false,\n boxShadowColor: '',\n boxShadowColorOpacity: 50,\n boxShadowBlur: 5,\n boxShadowSpread: 1,\n boxShadowHorizontal: 0,\n boxShadowVertical: 0,\n hoverBoxShadowColor: '',\n hoverBoxShadowColorOpacity: 50,\n hoverBoxShadowBlur: 5,\n hoverBoxShadowSpread: 1,\n hoverBoxShadowHorizontal: 0,\n hoverBoxShadowVertical: 0,\n iconType: 'none',\n prefix: '',\n icon: '',\n paddingTopBottom: '',\n paddingLeftRight: ''\n }]\n }\n },\n migrate: (oldAttributes, innerBlocks) => {\n let align, padding, blocks;\n\n if ('flex-start' === oldAttributes.align) {\n align = 'left';\n }\n\n if ('center' === oldAttributes.align) {\n align = 'center';\n }\n\n if ('flex-end' === oldAttributes.align) {\n align = 'right';\n }\n\n if (oldAttributes.data) {\n padding = (0,external_lodash_.pick)(oldAttributes.data[0], ['paddingLeftRight', 'paddingTopBottom']);\n\n if (1 <= Object.keys(padding).length) {\n padding = (0,external_lodash_.pick)(padding, Object.keys(padding).filter(i => '' !== padding[i]));\n }\n\n blocks = oldAttributes.data.filter((block, i) => i < oldAttributes.buttons).map(block => {\n const atts = (0,external_lodash_.omit)(block, ['paddingLeftRight', 'paddingTopBottom']);\n return (0,external_wp_blocks_.createBlock)('themeisle-blocks/button', { ...atts\n });\n });\n }\n\n const attributes = { ...(0,external_lodash_.omit)(oldAttributes, ['buttons', 'data']),\n align,\n ...padding\n };\n return [attributes, [...blocks, ...innerBlocks]];\n },\n save: ({\n attributes,\n className\n }) => {\n const collapseClass = 'collapse-none' !== attributes.collapse ? attributes.collapse : '';\n\n const button = i => {\n return (0,external_wp_element_.createElement)(\"a\", {\n href: attributes.data[i].link,\n target: attributes.data[i].newTab ? '_blank' : '_self',\n className: classnames_default()('wp-block-themeisle-blocks-button', `wp-block-themeisle-blocks-button-${i}`, 'wp-block-button__link'),\n rel: \"noopener noreferrer\"\n }, ('left' === attributes.data[i].iconType || 'only' === attributes.data[i].iconType) && (0,external_wp_element_.createElement)(\"i\", {\n className: classnames_default()(attributes.data[i].prefix, 'fa-fw', `fa-${attributes.data[i].icon}`, {\n 'margin-right': 'left' === attributes.data[i].iconType\n })\n }), 'only' !== attributes.data[i].iconType && (0,external_wp_element_.createElement)(external_wp_blockEditor_.RichText.Content, {\n tagName: \"span\",\n value: attributes.data[i].text\n }), 'right' === attributes.data[i].iconType && (0,external_wp_element_.createElement)(\"i\", {\n className: `${attributes.data[i].prefix} fa-fw fa-${attributes.data[i].icon} margin-left`\n }));\n };\n\n return (0,external_wp_element_.createElement)(\"div\", {\n id: attributes.id,\n className: classnames_default()(className, collapseClass, 'wp-block-button')\n }, (0,external_lodash_.times)(attributes.buttons, i => button(i)));\n }\n}];\n/* harmony default export */ var group_deprecated = (deprecated);\n// EXTERNAL MODULE: ./node_modules/react-google-font-loader/build/index.js\nvar build = __webpack_require__(5988);\n// EXTERNAL MODULE: external [\"wp\",\"compose\"]\nvar external_wp_compose_ = __webpack_require__(4333);\n// EXTERNAL MODULE: external [\"wp\",\"data\"]\nvar external_wp_data_ = __webpack_require__(9818);\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/align-left.js\nvar align_left = __webpack_require__(1150);\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/align-center.js\nvar align_center = __webpack_require__(8065);\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/align-right.js\nvar align_right = __webpack_require__(199);\n;// CONCATENATED MODULE: ./src/blocks/blocks/button-group/group/controls.js\n\n\n/**\n * External dependencies.\n */\n\n/**\n * WordPress dependencies.\n */\n\n\n\n\nconst Controls = ({\n attributes,\n setAttributes\n}) => {\n return (0,external_wp_element_.createElement)(external_wp_blockEditor_.BlockControls, null, (0,external_wp_element_.createElement)(external_wp_blockEditor_.AlignmentToolbar, {\n value: attributes.align,\n onChange: e => setAttributes({\n align: e\n }),\n alignmentControls: [{\n icon: align_left/* default */.Z,\n title: (0,external_wp_i18n_.__)('Align left', 'otter-blocks'),\n align: 'left'\n }, {\n icon: align_center/* default */.Z,\n title: (0,external_wp_i18n_.__)('Align center', 'otter-blocks'),\n align: 'center'\n }, {\n icon: align_right/* default */.Z,\n title: (0,external_wp_i18n_.__)('Align right', 'otter-blocks'),\n align: 'right'\n }]\n }));\n};\n\n/* harmony default export */ var controls = (Controls);\n// EXTERNAL MODULE: external [\"wp\",\"components\"]\nvar external_wp_components_ = __webpack_require__(5609);\n// EXTERNAL MODULE: ./src/blocks/components/google-fonts-control/index.js\nvar google_fonts_control = __webpack_require__(9977);\n// EXTERNAL MODULE: ./src/blocks/components/sizing-control/index.js + 1 modules\nvar sizing_control = __webpack_require__(2372);\n;// CONCATENATED MODULE: ./src/blocks/blocks/button-group/group/inspector.js\n\n\n/**\n * WordPress dependencies.\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\nconst Inspector = ({\n attributes,\n setAttributes\n}) => {\n const changeFontFamily = value => {\n if (!value) {\n setAttributes({\n fontFamily: undefined,\n fontVariant: undefined,\n fontStyle: undefined\n });\n } else {\n setAttributes({\n fontFamily: value,\n fontVariant: 'normal',\n fontStyle: 'normal'\n });\n }\n };\n\n const changePadding = (type, value) => {\n if ('top' === type || 'bottom' === type) {\n setAttributes({\n paddingTopBottom: value\n });\n }\n\n if ('right' === type || 'left' === type) {\n setAttributes({\n paddingLeftRight: value\n });\n }\n };\n\n return (0,external_wp_element_.createElement)(external_wp_blockEditor_.InspectorControls, null, (0,external_wp_element_.createElement)(external_wp_components_.PanelBody, {\n title: (0,external_wp_i18n_.__)('Spacing', 'otter-blocks')\n }, (0,external_wp_element_.createElement)(sizing_control/* default */.Z, {\n label: (0,external_wp_i18n_.__)('Padding', 'otter-blocks'),\n min: 0,\n max: 100,\n onChange: changePadding,\n options: [{\n label: (0,external_wp_i18n_.__)('Top', 'otter-blocks'),\n type: 'top',\n value: attributes.paddingTopBottom\n }, {\n label: (0,external_wp_i18n_.__)('Right', 'otter-blocks'),\n type: 'right',\n value: attributes.paddingLeftRight\n }, {\n label: (0,external_wp_i18n_.__)('Bottom', 'otter-blocks'),\n type: 'bottom',\n value: attributes.paddingTopBottom\n }, {\n label: (0,external_wp_i18n_.__)('Left', 'otter-blocks'),\n type: 'left',\n value: attributes.paddingLeftRight\n }]\n }), (0,external_wp_element_.createElement)(external_wp_components_.RangeControl, {\n label: (0,external_wp_i18n_.__)('Spacing', 'otter-blocks'),\n value: attributes.spacing,\n onChange: e => setAttributes({\n spacing: e\n }),\n min: 0,\n max: 50\n }), (0,external_wp_element_.createElement)(external_wp_components_.SelectControl, {\n label: (0,external_wp_i18n_.__)('Collapse On', 'otter-blocks'),\n value: attributes.collapse,\n options: [{\n label: (0,external_wp_i18n_.__)('None', 'otter-blocks'),\n value: 'collapse-none'\n }, {\n label: (0,external_wp_i18n_.__)('Desktop', 'otter-blocks'),\n value: 'collapse-desktop'\n }, {\n label: (0,external_wp_i18n_.__)('Tablet', 'otter-blocks'),\n value: 'collapse-tablet'\n }, {\n label: (0,external_wp_i18n_.__)('Mobile', 'otter-blocks'),\n value: 'collapse-mobile'\n }],\n onChange: e => setAttributes({\n collapse: e\n })\n })), (0,external_wp_element_.createElement)(external_wp_components_.PanelBody, {\n title: (0,external_wp_i18n_.__)('Typography Settings', 'otter-blocks'),\n initialOpen: false\n }, (0,external_wp_element_.createElement)(external_wp_components_.RangeControl, {\n label: (0,external_wp_i18n_.__)('Font Size', 'otter-blocks'),\n value: attributes.fontSize,\n onChange: e => setAttributes({\n fontSize: e\n }),\n min: 0,\n max: 50\n }), (0,external_wp_element_.createElement)(google_fonts_control/* default */.Z, {\n label: (0,external_wp_i18n_.__)('Font Family', 'otter-blocks'),\n value: attributes.fontFamily,\n onChangeFontFamily: changeFontFamily,\n valueVariant: attributes.fontVariant,\n onChangeFontVariant: e => setAttributes({\n fontVariant: e\n }),\n valueStyle: attributes.fontStyle,\n onChangeFontStyle: e => setAttributes({\n fontStyle: e\n }),\n valueTransform: attributes.textTransform,\n onChangeTextTransform: e => setAttributes({\n textTransform: e\n })\n }), (0,external_wp_element_.createElement)(external_wp_components_.RangeControl, {\n label: (0,external_wp_i18n_.__)('Line Height', 'otter-blocks'),\n value: attributes.lineHeight,\n onChange: e => setAttributes({\n lineHeight: e\n }),\n min: 0,\n max: 200\n })));\n};\n\n/* harmony default export */ var inspector = (Inspector);\n// EXTERNAL MODULE: ./src/blocks/helpers/block-utility.js\nvar block_utility = __webpack_require__(5225);\n;// CONCATENATED MODULE: ./src/blocks/blocks/button-group/group/edit.js\n\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies.\n */\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\nconst Edit = ({\n attributes,\n setAttributes,\n className,\n clientId\n}) => {\n const {\n isViewportAvailable,\n isPreviewDesktop,\n isPreviewTablet,\n isPreviewMobile\n } = (0,external_wp_data_.useSelect)(select => {\n const {\n __experimentalGetPreviewDeviceType\n } = select('core/edit-post') ? select('core/edit-post') : false;\n return {\n isViewportAvailable: __experimentalGetPreviewDeviceType ? true : false,\n isPreviewDesktop: __experimentalGetPreviewDeviceType ? 'Desktop' === __experimentalGetPreviewDeviceType() : false,\n isPreviewTablet: __experimentalGetPreviewDeviceType ? 'Tablet' === __experimentalGetPreviewDeviceType() : false,\n isPreviewMobile: __experimentalGetPreviewDeviceType ? 'Mobile' === __experimentalGetPreviewDeviceType() : false\n };\n }, [attributes.id]);\n const isLarger = (0,external_wp_compose_.useViewportMatch)('large', '>=');\n const isLarge = (0,external_wp_compose_.useViewportMatch)('large', '<=');\n const isSmall = (0,external_wp_compose_.useViewportMatch)('small', '>=');\n const isSmaller = (0,external_wp_compose_.useViewportMatch)('small', '<=');\n (0,external_wp_element_.useEffect)(() => {\n const unsubscribe = (0,block_utility/* blockInit */.WX)(clientId, group_attributes);\n return () => unsubscribe(attributes.id);\n }, []);\n let isDesktop = isLarger && !isLarge && isSmall && !isSmaller;\n let isTablet = !isLarger && !isLarge && isSmall && !isSmaller;\n let isMobile = !isLarger && !isLarge && !isSmall && !isSmaller;\n\n if (isViewportAvailable && !isMobile) {\n isDesktop = isPreviewDesktop;\n isTablet = isPreviewTablet;\n isMobile = isPreviewMobile;\n }\n\n return (0,external_wp_element_.createElement)(external_wp_element_.Fragment, null, attributes.fontFamily && (0,external_wp_element_.createElement)(build/* default */.Z, {\n fonts: [{\n font: attributes.fontFamily,\n weights: attributes.fontVariant && [`${attributes.fontVariant + ('italic' === attributes.fontStyle ? ':i' : '')}`]\n }]\n }), (0,external_wp_element_.createElement)(controls, {\n attributes: attributes,\n setAttributes: setAttributes\n }), (0,external_wp_element_.createElement)(inspector, {\n attributes: attributes,\n setAttributes: setAttributes\n }), (0,external_wp_element_.createElement)(\"div\", {\n id: attributes.id,\n className: classnames_default()(className, 'wp-block-buttons', {\n [`align-${attributes.align}`]: attributes.align,\n 'collapse': 'collapse-desktop' === attributes.collapse && (isDesktop || isTablet || isMobile) || 'collapse-tablet' === attributes.collapse && (isTablet || isMobile) || 'collapse-mobile' === attributes.collapse && isMobile\n })\n }, (0,external_wp_element_.createElement)(external_wp_blockEditor_.InnerBlocks, {\n allowedBlocks: ['themeisle-blocks/button'],\n __experimentalMoverDirection: \"horizontal\",\n orientation: \"horizontal\",\n template: [['themeisle-blocks/button']],\n renderAppender: external_wp_blockEditor_.InnerBlocks.DefaultAppender\n })));\n};\n\n/* harmony default export */ var edit = (Edit);\n;// CONCATENATED MODULE: ./src/blocks/blocks/button-group/group/save.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies.\n */\n\n\n\nconst Save = ({\n attributes,\n className\n}) => {\n const collapseClass = 'collapse-none' !== attributes.collapse ? attributes.collapse : '';\n return (0,external_wp_element_.createElement)(\"div\", {\n id: attributes.id,\n className: classnames_default()(className, collapseClass, 'wp-block-buttons', {\n [`align-${attributes.align}`]: attributes.align\n })\n }, (0,external_wp_element_.createElement)(external_wp_blockEditor_.InnerBlocks.Content, null));\n};\n\n/* harmony default export */ var save = (Save);\n;// CONCATENATED MODULE: ./src/blocks/blocks/button-group/group/index.js\n/**\n * WordPress dependencies.\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\n(0,external_wp_blocks_.registerBlockType)('themeisle-blocks/button-group', {\n title: (0,external_wp_i18n_.__)('Button Group', 'otter-blocks'),\n description: (0,external_wp_i18n_.__)('Prompt visitors to take action with a button group.', 'otter-blocks'),\n icon: icons/* buttonsIcon */.Se,\n category: 'themeisle-blocks',\n keywords: ['button', 'buttons', 'button group'],\n attributes: group_attributes,\n deprecated: group_deprecated,\n edit: edit,\n save: save\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjc1Ni5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLE1BQU1BLFVBQVUsR0FBRztBQUNsQkMsRUFBQUEsRUFBRSxFQUFFO0FBQ0hDLElBQUFBLElBQUksRUFBRTtBQURILEdBRGM7QUFJbEJDLEVBQUFBLEtBQUssRUFBRTtBQUNORCxJQUFBQSxJQUFJLEVBQUU7QUFEQSxHQUpXO0FBT2xCRSxFQUFBQSxPQUFPLEVBQUU7QUFDUkYsSUFBQUEsSUFBSSxFQUFFLFFBREU7QUFFUkcsSUFBQUEsT0FBTyxFQUFFO0FBRkQsR0FQUztBQVdsQkMsRUFBQUEsZ0JBQWdCLEVBQUU7QUFDakJKLElBQUFBLElBQUksRUFBRTtBQURXLEdBWEE7QUFjbEJLLEVBQUFBLGdCQUFnQixFQUFFO0FBQ2pCTCxJQUFBQSxJQUFJLEVBQUU7QUFEVyxHQWRBO0FBaUJsQk0sRUFBQUEsUUFBUSxFQUFFO0FBQ1ROLElBQUFBLElBQUksRUFBRSxRQURHO0FBRVRHLElBQUFBLE9BQU8sRUFBRTtBQUZBLEdBakJRO0FBcUJsQkksRUFBQUEsUUFBUSxFQUFFO0FBQ1RQLElBQUFBLElBQUksRUFBRTtBQURHLEdBckJRO0FBd0JsQlEsRUFBQUEsVUFBVSxFQUFFO0FBQ1hSLElBQUFBLElBQUksRUFBRTtBQURLLEdBeEJNO0FBMkJsQlMsRUFBQUEsV0FBVyxFQUFFO0FBQ1pULElBQUFBLElBQUksRUFBRTtBQURNLEdBM0JLO0FBOEJsQlUsRUFBQUEsYUFBYSxFQUFFO0FBQ2RWLElBQUFBLElBQUksRUFBRTtBQURRLEdBOUJHO0FBaUNsQlcsRUFBQUEsU0FBUyxFQUFFO0FBQ1ZYLElBQUFBLElBQUksRUFBRTtBQURJLEdBakNPO0FBb0NsQlksRUFBQUEsVUFBVSxFQUFFO0FBQ1haLElBQUFBLElBQUksRUFBRTtBQURLO0FBcENNLENBQW5CO0FBeUNBLHFEQUFlRixVQUFmLEU7Ozs7Ozs7Ozs7Ozs7QUN6Q0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7O0FBQ0E7QUFNQTtBQUVBO0FBRUE7QUFFQSxNQUFNQSxxQkFBVSxHQUFHO0FBQ2xCQyxFQUFBQSxFQUFFLEVBQUU7QUFDSEMsSUFBQUEsSUFBSSxFQUFFO0FBREgsR0FEYztBQUlsQm9CLEVBQUFBLE9BQU8sRUFBRTtBQUNScEIsSUFBQUEsSUFBSSxFQUFFLFFBREU7QUFFUkcsSUFBQUEsT0FBTyxFQUFFO0FBRkQsR0FKUztBQVFsQkYsRUFBQUEsS0FBSyxFQUFFO0FBQ05ELElBQUFBLElBQUksRUFBRTtBQURBLEdBUlc7QUFXbEJFLEVBQUFBLE9BQU8sRUFBRTtBQUNSRixJQUFBQSxJQUFJLEVBQUUsUUFERTtBQUVSRyxJQUFBQSxPQUFPLEVBQUU7QUFGRCxHQVhTO0FBZWxCRyxFQUFBQSxRQUFRLEVBQUU7QUFDVE4sSUFBQUEsSUFBSSxFQUFFLFFBREc7QUFFVEcsSUFBQUEsT0FBTyxFQUFFO0FBRkEsR0FmUTtBQW1CbEJJLEVBQUFBLFFBQVEsRUFBRTtBQUNUUCxJQUFBQSxJQUFJLEVBQUUsUUFERztBQUVURyxJQUFBQSxPQUFPLEVBQUU7QUFGQSxHQW5CUTtBQXVCbEJLLEVBQUFBLFVBQVUsRUFBRTtBQUNYUixJQUFBQSxJQUFJLEVBQUU7QUFESyxHQXZCTTtBQTBCbEJTLEVBQUFBLFdBQVcsRUFBRTtBQUNaVCxJQUFBQSxJQUFJLEVBQUU7QUFETSxHQTFCSztBQTZCbEJVLEVBQUFBLGFBQWEsRUFBRTtBQUNkVixJQUFBQSxJQUFJLEVBQUU7QUFEUSxHQTdCRztBQWdDbEJXLEVBQUFBLFNBQVMsRUFBRTtBQUNWWCxJQUFBQSxJQUFJLEVBQUUsUUFESTtBQUVWRyxJQUFBQSxPQUFPLEVBQUU7QUFGQyxHQWhDTztBQW9DbEJTLEVBQUFBLFVBQVUsRUFBRTtBQUNYWixJQUFBQSxJQUFJLEVBQUU7QUFESyxHQXBDTTtBQXVDbEJxQixFQUFBQSxJQUFJLEVBQUU7QUFDTHJCLElBQUFBLElBQUksRUFBRSxPQUREO0FBRUxHLElBQUFBLE9BQU8sRUFBRSxDQUNSO0FBQ0NtQixNQUFBQSxJQUFJLEVBQUUsRUFEUDtBQUVDQyxNQUFBQSxJQUFJLEVBQUUsRUFGUDtBQUdDQyxNQUFBQSxNQUFNLEVBQUUsS0FIVDtBQUlDQyxNQUFBQSxLQUFLLEVBQUUsU0FKUjtBQUtDQyxNQUFBQSxVQUFVLEVBQUUsU0FMYjtBQU1DQyxNQUFBQSxNQUFNLEVBQUUsRUFOVDtBQU9DQyxNQUFBQSxVQUFVLEVBQUUsRUFQYjtBQVFDQyxNQUFBQSxlQUFlLEVBQUUsRUFSbEI7QUFTQ0MsTUFBQUEsV0FBVyxFQUFFLEVBVGQ7QUFVQ0MsTUFBQUEsVUFBVSxFQUFFLENBVmI7QUFXQ0MsTUFBQUEsWUFBWSxFQUFFLENBWGY7QUFZQ0MsTUFBQUEsU0FBUyxFQUFFLEtBWlo7QUFhQ0MsTUFBQUEsY0FBYyxFQUFFLEVBYmpCO0FBY0NDLE1BQUFBLHFCQUFxQixFQUFFLEVBZHhCO0FBZUNDLE1BQUFBLGFBQWEsRUFBRSxDQWZoQjtBQWdCQ0MsTUFBQUEsZUFBZSxFQUFFLENBaEJsQjtBQWlCQ0MsTUFBQUEsbUJBQW1CLEVBQUUsQ0FqQnRCO0FBa0JDQyxNQUFBQSxpQkFBaUIsRUFBRSxDQWxCcEI7QUFtQkNDLE1BQUFBLG1CQUFtQixFQUFFLEVBbkJ0QjtBQW9CQ0MsTUFBQUEsMEJBQTBCLEVBQUUsRUFwQjdCO0FBcUJDQyxNQUFBQSxrQkFBa0IsRUFBRSxDQXJCckI7QUFzQkNDLE1BQUFBLG9CQUFvQixFQUFFLENBdEJ2QjtBQXVCQ0MsTUFBQUEsd0JBQXdCLEVBQUUsQ0F2QjNCO0FBd0JDQyxNQUFBQSxzQkFBc0IsRUFBRSxDQXhCekI7QUF5QkNDLE1BQUFBLFFBQVEsRUFBRSxNQXpCWDtBQTBCQ0MsTUFBQUEsTUFBTSxFQUFFLEVBMUJUO0FBMkJDQyxNQUFBQSxJQUFJLEVBQUUsRUEzQlA7QUE0QkM1QyxNQUFBQSxnQkFBZ0IsRUFBRSxFQTVCbkI7QUE2QkNDLE1BQUFBLGdCQUFnQixFQUFFO0FBN0JuQixLQURRLEVBZ0NSO0FBQ0NpQixNQUFBQSxJQUFJLEVBQUUsRUFEUDtBQUVDQyxNQUFBQSxJQUFJLEVBQUUsRUFGUDtBQUdDQyxNQUFBQSxNQUFNLEVBQUUsS0FIVDtBQUlDQyxNQUFBQSxLQUFLLEVBQUUsU0FKUjtBQUtDQyxNQUFBQSxVQUFVLEVBQUUsU0FMYjtBQU1DQyxNQUFBQSxNQUFNLEVBQUUsRUFOVDtBQU9DQyxNQUFBQSxVQUFVLEVBQUUsRUFQYjtBQVFDQyxNQUFBQSxlQUFlLEVBQUUsRUFSbEI7QUFTQ0MsTUFBQUEsV0FBVyxFQUFFLEVBVGQ7QUFVQ0MsTUFBQUEsVUFBVSxFQUFFLENBVmI7QUFXQ0MsTUFBQUEsWUFBWSxFQUFFLENBWGY7QUFZQ0MsTUFBQUEsU0FBUyxFQUFFLEtBWlo7QUFhQ0MsTUFBQUEsY0FBYyxFQUFFLEVBYmpCO0FBY0NDLE1BQUFBLHFCQUFxQixFQUFFLEVBZHhCO0FBZUNDLE1BQUFBLGFBQWEsRUFBRSxDQWZoQjtBQWdCQ0MsTUFBQUEsZUFBZSxFQUFFLENBaEJsQjtBQWlCQ0MsTUFBQUEsbUJBQW1CLEVBQUUsQ0FqQnRCO0FBa0JDQyxNQUFBQSxpQkFBaUIsRUFBRSxDQWxCcEI7QUFtQkNDLE1BQUFBLG1CQUFtQixFQUFFLEVBbkJ0QjtBQW9CQ0MsTUFBQUEsMEJBQTBCLEVBQUUsRUFwQjdCO0FBcUJDQyxNQUFBQSxrQkFBa0IsRUFBRSxDQXJCckI7QUFzQkNDLE1BQUFBLG9CQUFvQixFQUFFLENBdEJ2QjtBQXVCQ0MsTUFBQUEsd0JBQXdCLEVBQUUsQ0F2QjNCO0FBd0JDQyxNQUFBQSxzQkFBc0IsRUFBRSxDQXhCekI7QUF5QkNDLE1BQUFBLFFBQVEsRUFBRSxNQXpCWDtBQTBCQ0MsTUFBQUEsTUFBTSxFQUFFLEVBMUJUO0FBMkJDQyxNQUFBQSxJQUFJLEVBQUUsRUEzQlA7QUE0QkM1QyxNQUFBQSxnQkFBZ0IsRUFBRSxFQTVCbkI7QUE2QkNDLE1BQUFBLGdCQUFnQixFQUFFO0FBN0JuQixLQWhDUTtBQUZKO0FBdkNZLENBQW5CO0FBNEdBLE1BQU00QyxVQUFVLEdBQUcsQ0FBRTtBQUNwQm5ELEVBQUFBLFVBRG9CO0FBR3BCb0QsRUFBQUEsSUFBSSxFQUFFLENBQUM7QUFDTnBELElBQUFBLFVBRE07QUFFTnFELElBQUFBO0FBRk0sR0FBRCxLQUdBO0FBQ0wsVUFBTUMsYUFBYSxHQUFHLG9CQUFvQnRELFVBQVUsQ0FBQ1EsUUFBL0IsR0FBMENSLFVBQVUsQ0FBQ1EsUUFBckQsR0FBZ0UsRUFBdEY7QUFFQSxVQUFNK0MsS0FBSyxHQUFHO0FBQ2I5QyxNQUFBQSxRQUFRLEVBQUcsR0FBR1QsVUFBVSxDQUFDUyxRQUFVLElBRHRCO0FBRWJDLE1BQUFBLFVBQVUsRUFBRVYsVUFBVSxDQUFDVSxVQUZWO0FBR2I4QyxNQUFBQSxVQUFVLEVBQUV4RCxVQUFVLENBQUNXLFdBSFY7QUFJYkUsTUFBQUEsU0FBUyxFQUFFYixVQUFVLENBQUNhLFNBSlQ7QUFLYkQsTUFBQUEsYUFBYSxFQUFFWixVQUFVLENBQUNZLGFBTGI7QUFNYkUsTUFBQUEsVUFBVSxFQUFFZCxVQUFVLENBQUNjLFVBQVgsSUFBMEIsR0FBR2QsVUFBVSxDQUFDYyxVQUFZO0FBTm5ELEtBQWQ7O0FBU0EsVUFBTTJDLE1BQU0sR0FBR0MsQ0FBQyxJQUFJO0FBQ25CLFlBQU1DLFdBQVcsR0FBRyxFQUNuQixHQUFHSixLQURnQjtBQUVuQkssUUFBQUEsV0FBVyxFQUFHLEdBQUc1RCxVQUFVLENBQUN1QixJQUFYLENBQWdCbUMsQ0FBaEIsRUFBbUJ6QixVQUFZLElBRjdCO0FBR25CQyxRQUFBQSxZQUFZLEVBQUcsR0FBR2xDLFVBQVUsQ0FBQ3VCLElBQVgsQ0FBZ0JtQyxDQUFoQixFQUFtQnhCLFlBQWMsSUFIaEM7QUFJbkIyQixRQUFBQSxPQUFPLEVBQUcsR0FBRzdELFVBQVUsQ0FBQ3VCLElBQVgsQ0FBZ0JtQyxDQUFoQixFQUFtQnBELGdCQUFrQixNQUFNTixVQUFVLENBQUN1QixJQUFYLENBQWdCbUMsQ0FBaEIsRUFBbUJuRCxnQkFBa0I7QUFKMUUsT0FBcEI7QUFPQSxhQUNDLHVDQUFDLDZCQUFELFFBQ0M7QUFDQyxZQUFJLEVBQUdQLFVBQVUsQ0FBQ3VCLElBQVgsQ0FBZ0JtQyxDQUFoQixFQUFtQmpDLElBRDNCO0FBRUMsY0FBTSxFQUFHekIsVUFBVSxDQUFDdUIsSUFBWCxDQUFnQm1DLENBQWhCLEVBQW1CaEMsTUFBbkIsR0FBNEIsUUFBNUIsR0FBdUMsT0FGakQ7QUFHQyxpQkFBUyxFQUFHWCxvQkFBVSxDQUNyQixrQ0FEcUIsRUFFcEIsb0NBQW9DMkMsQ0FBRyxFQUZuQixDQUh2QjtBQU9DLGFBQUssRUFBR0M7QUFQVCxTQVNHLENBQUUsV0FBVzNELFVBQVUsQ0FBQ3VCLElBQVgsQ0FBZ0JtQyxDQUFoQixFQUFtQlYsUUFBOUIsSUFBMEMsV0FBV2hELFVBQVUsQ0FBQ3VCLElBQVgsQ0FBZ0JtQyxDQUFoQixFQUFtQlYsUUFBMUUsS0FDRDtBQUFHLGlCQUFTLEVBQUdqQyxvQkFBVSxDQUN4QmYsVUFBVSxDQUFDdUIsSUFBWCxDQUFnQm1DLENBQWhCLEVBQW1CVCxNQURLLEVBRXhCLE9BRndCLEVBR3ZCLE1BQU1qRCxVQUFVLENBQUN1QixJQUFYLENBQWdCbUMsQ0FBaEIsRUFBbUJSLElBQU0sRUFIUixFQUl4QjtBQUFFLDBCQUFnQixXQUFXbEQsVUFBVSxDQUFDdUIsSUFBWCxDQUFnQm1DLENBQWhCLEVBQW1CVjtBQUFoRCxTQUp3QjtBQUF6QixRQVZGLEVBbUJHLFdBQVdoRCxVQUFVLENBQUN1QixJQUFYLENBQWdCbUMsQ0FBaEIsRUFBbUJWLFFBQTlCLElBQ0QsdUNBQUMseUNBQUQ7QUFDQyxlQUFPLEVBQUMsTUFEVDtBQUVDLGFBQUssRUFBR2hELFVBQVUsQ0FBQ3VCLElBQVgsQ0FBZ0JtQyxDQUFoQixFQUFtQmxDO0FBRjVCLFFBcEJGLEVBMEJHLFlBQVl4QixVQUFVLENBQUN1QixJQUFYLENBQWdCbUMsQ0FBaEIsRUFBbUJWLFFBQS9CLElBQ0Q7QUFBRyxpQkFBUyxFQUFJLEdBQUdoRCxVQUFVLENBQUN1QixJQUFYLENBQWdCbUMsQ0FBaEIsRUFBbUJULE1BQVEsYUFBYWpELFVBQVUsQ0FBQ3VCLElBQVgsQ0FBZ0JtQyxDQUFoQixFQUFtQlIsSUFBTTtBQUFwRixRQTNCRixDQURELENBREQ7QUFrQ0EsS0ExQ0Q7O0FBNENBLFdBQ0M7QUFDQyxRQUFFLEVBQUdsRCxVQUFVLENBQUNDLEVBRGpCO0FBRUMsZUFBUyxFQUFHYyxvQkFBVSxDQUNyQnNDLFNBRHFCLEVBRXJCQyxhQUZxQixDQUZ2QjtBQU1DLFdBQUssRUFBRztBQUNQUSxRQUFBQSxjQUFjLEVBQUU5RCxVQUFVLENBQUNHLEtBRHBCO0FBRVA0RCxRQUFBQSxVQUFVLEVBQUUvRCxVQUFVLENBQUNHLEtBQVgsR0FBbUJILFVBQVUsQ0FBQ0csS0FBOUIsR0FBc0M7QUFGM0M7QUFOVCxPQVdHZSwwQkFBSyxDQUFFbEIsVUFBVSxDQUFDc0IsT0FBYixFQUFzQm9DLENBQUMsSUFBSUQsTUFBTSxDQUFFQyxDQUFGLENBQWpDLENBWFIsQ0FERDtBQWVBO0FBN0VtQixDQUFGLEVBOEVoQjtBQUNGMUQsRUFBQUEsVUFERTtBQUdGb0QsRUFBQUEsSUFBSSxFQUFFLENBQUM7QUFDTnBELElBQUFBLFVBRE07QUFFTnFELElBQUFBO0FBRk0sR0FBRCxLQUdBO0FBQ0wsVUFBTUMsYUFBYSxHQUFHLG9CQUFvQnRELFVBQVUsQ0FBQ1EsUUFBL0IsR0FBMENSLFVBQVUsQ0FBQ1EsUUFBckQsR0FBZ0UsRUFBdEY7QUFFQSxVQUFNK0MsS0FBSyxHQUFHO0FBQ2I5QyxNQUFBQSxRQUFRLEVBQUcsR0FBR1QsVUFBVSxDQUFDUyxRQUFVLElBRHRCO0FBRWJDLE1BQUFBLFVBQVUsRUFBRVYsVUFBVSxDQUFDVSxVQUZWO0FBR2I4QyxNQUFBQSxVQUFVLEVBQUV4RCxVQUFVLENBQUNXLFdBSFY7QUFJYkUsTUFBQUEsU0FBUyxFQUFFYixVQUFVLENBQUNhLFNBSlQ7QUFLYkQsTUFBQUEsYUFBYSxFQUFFWixVQUFVLENBQUNZLGFBTGI7QUFNYkUsTUFBQUEsVUFBVSxFQUFFZCxVQUFVLENBQUNjLFVBQVgsSUFBMEIsR0FBR2QsVUFBVSxDQUFDYyxVQUFZO0FBTm5ELEtBQWQ7O0FBU0EsVUFBTTJDLE1BQU0sR0FBR0MsQ0FBQyxJQUFJO0FBQ25CLFlBQU1DLFdBQVcsR0FBRyxFQUNuQixHQUFHSixLQURnQjtBQUVuQkssUUFBQUEsV0FBVyxFQUFHLEdBQUc1RCxVQUFVLENBQUN1QixJQUFYLENBQWdCbUMsQ0FBaEIsRUFBbUJ6QixVQUFZLElBRjdCO0FBR25CQyxRQUFBQSxZQUFZLEVBQUcsR0FBR2xDLFVBQVUsQ0FBQ3VCLElBQVgsQ0FBZ0JtQyxDQUFoQixFQUFtQnhCLFlBQWMsSUFIaEM7QUFJbkIyQixRQUFBQSxPQUFPLEVBQUcsR0FBRzdELFVBQVUsQ0FBQ3VCLElBQVgsQ0FBZ0JtQyxDQUFoQixFQUFtQnBELGdCQUFrQixNQUFNTixVQUFVLENBQUN1QixJQUFYLENBQWdCbUMsQ0FBaEIsRUFBbUJuRCxnQkFBa0I7QUFKMUUsT0FBcEI7QUFPQSxhQUNDLHVDQUFDLDZCQUFELFFBQ0M7QUFDQyxZQUFJLEVBQUdQLFVBQVUsQ0FBQ3VCLElBQVgsQ0FBZ0JtQyxDQUFoQixFQUFtQmpDLElBRDNCO0FBRUMsY0FBTSxFQUFHekIsVUFBVSxDQUFDdUIsSUFBWCxDQUFnQm1DLENBQWhCLEVBQW1CaEMsTUFBbkIsR0FBNEIsUUFBNUIsR0FBdUMsT0FGakQ7QUFHQyxpQkFBUyxFQUFHWCxvQkFBVSxDQUNyQixrQ0FEcUIsRUFFcEIsb0NBQW9DMkMsQ0FBRyxFQUZuQixDQUh2QjtBQU9DLGFBQUssRUFBR0MsV0FQVDtBQVFDLFdBQUcsRUFBQztBQVJMLFNBVUcsQ0FBRSxXQUFXM0QsVUFBVSxDQUFDdUIsSUFBWCxDQUFnQm1DLENBQWhCLEVBQW1CVixRQUE5QixJQUEwQyxXQUFXaEQsVUFBVSxDQUFDdUIsSUFBWCxDQUFnQm1DLENBQWhCLEVBQW1CVixRQUExRSxLQUNEO0FBQUcsaUJBQVMsRUFBR2pDLG9CQUFVLENBQ3hCZixVQUFVLENBQUN1QixJQUFYLENBQWdCbUMsQ0FBaEIsRUFBbUJULE1BREssRUFFeEIsT0FGd0IsRUFHdkIsTUFBTWpELFVBQVUsQ0FBQ3VCLElBQVgsQ0FBZ0JtQyxDQUFoQixFQUFtQlIsSUFBTSxFQUhSLEVBSXhCO0FBQUUsMEJBQWdCLFdBQVdsRCxVQUFVLENBQUN1QixJQUFYLENBQWdCbUMsQ0FBaEIsRUFBbUJWO0FBQWhELFNBSndCO0FBQXpCLFFBWEYsRUFvQkcsV0FBV2hELFVBQVUsQ0FBQ3VCLElBQVgsQ0FBZ0JtQyxDQUFoQixFQUFtQlYsUUFBOUIsSUFDRCx1Q0FBQyx5Q0FBRDtBQUNDLGVBQU8sRUFBQyxNQURUO0FBRUMsYUFBSyxFQUFHaEQsVUFBVSxDQUFDdUIsSUFBWCxDQUFnQm1DLENBQWhCLEVBQW1CbEM7QUFGNUIsUUFyQkYsRUEyQkcsWUFBWXhCLFVBQVUsQ0FBQ3VCLElBQVgsQ0FBZ0JtQyxDQUFoQixFQUFtQlYsUUFBL0IsSUFDRDtBQUFHLGlCQUFTLEVBQUksR0FBR2hELFVBQVUsQ0FBQ3VCLElBQVgsQ0FBZ0JtQyxDQUFoQixFQUFtQlQsTUFBUSxhQUFhakQsVUFBVSxDQUFDdUIsSUFBWCxDQUFnQm1DLENBQWhCLEVBQW1CUixJQUFNO0FBQXBGLFFBNUJGLENBREQsQ0FERDtBQW1DQSxLQTNDRDs7QUE2Q0EsV0FDQztBQUNDLFFBQUUsRUFBR2xELFVBQVUsQ0FBQ0MsRUFEakI7QUFFQyxlQUFTLEVBQUdjLG9CQUFVLENBQ3JCc0MsU0FEcUIsRUFFckJDLGFBRnFCLENBRnZCO0FBTUMsV0FBSyxFQUFHO0FBQ1BRLFFBQUFBLGNBQWMsRUFBRTlELFVBQVUsQ0FBQ0csS0FEcEI7QUFFUDRELFFBQUFBLFVBQVUsRUFBRS9ELFVBQVUsQ0FBQ0csS0FBWCxHQUFtQkgsVUFBVSxDQUFDRyxLQUE5QixHQUFzQztBQUYzQztBQU5ULE9BV0dlLDBCQUFLLENBQUVsQixVQUFVLENBQUNzQixPQUFiLEVBQXNCb0MsQ0FBQyxJQUFJRCxNQUFNLENBQUVDLENBQUYsQ0FBakMsQ0FYUixDQUREO0FBZUE7QUE5RUMsQ0E5RWdCLEVBNkpoQjtBQUNGMUQsRUFBQUEsVUFBVSxFQUFFLEVBQ1gsR0FBR0EscUJBRFE7QUFFWFMsSUFBQUEsUUFBUSxFQUFFO0FBQ1RQLE1BQUFBLElBQUksRUFBRTtBQURHLEtBRkM7QUFLWFcsSUFBQUEsU0FBUyxFQUFFO0FBQ1ZYLE1BQUFBLElBQUksRUFBRTtBQURJLEtBTEE7QUFRWHFCLElBQUFBLElBQUksRUFBRTtBQUNMckIsTUFBQUEsSUFBSSxFQUFFLE9BREQ7QUFFTEcsTUFBQUEsT0FBTyxFQUFFLENBQ1I7QUFDQ21CLFFBQUFBLElBQUksRUFBRSxFQURQO0FBRUNDLFFBQUFBLElBQUksRUFBRSxFQUZQO0FBR0NDLFFBQUFBLE1BQU0sRUFBRSxLQUhUO0FBSUNDLFFBQUFBLEtBQUssRUFBRSxFQUpSO0FBS0NDLFFBQUFBLFVBQVUsRUFBRSxFQUxiO0FBTUNDLFFBQUFBLE1BQU0sRUFBRSxFQU5UO0FBT0NDLFFBQUFBLFVBQVUsRUFBRSxFQVBiO0FBUUNDLFFBQUFBLGVBQWUsRUFBRSxFQVJsQjtBQVNDQyxRQUFBQSxXQUFXLEVBQUUsRUFUZDtBQVVDQyxRQUFBQSxVQUFVLEVBQUUsRUFWYjtBQVdDQyxRQUFBQSxZQUFZLEVBQUUsRUFYZjtBQVlDQyxRQUFBQSxTQUFTLEVBQUUsS0FaWjtBQWFDQyxRQUFBQSxjQUFjLEVBQUUsRUFiakI7QUFjQ0MsUUFBQUEscUJBQXFCLEVBQUUsRUFkeEI7QUFlQ0MsUUFBQUEsYUFBYSxFQUFFLENBZmhCO0FBZ0JDQyxRQUFBQSxlQUFlLEVBQUUsQ0FoQmxCO0FBaUJDQyxRQUFBQSxtQkFBbUIsRUFBRSxDQWpCdEI7QUFrQkNDLFFBQUFBLGlCQUFpQixFQUFFLENBbEJwQjtBQW1CQ0MsUUFBQUEsbUJBQW1CLEVBQUUsRUFuQnRCO0FBb0JDQyxRQUFBQSwwQkFBMEIsRUFBRSxFQXBCN0I7QUFxQkNDLFFBQUFBLGtCQUFrQixFQUFFLENBckJyQjtBQXNCQ0MsUUFBQUEsb0JBQW9CLEVBQUUsQ0F0QnZCO0FBdUJDQyxRQUFBQSx3QkFBd0IsRUFBRSxDQXZCM0I7QUF3QkNDLFFBQUFBLHNCQUFzQixFQUFFLENBeEJ6QjtBQXlCQ0MsUUFBQUEsUUFBUSxFQUFFLE1BekJYO0FBMEJDQyxRQUFBQSxNQUFNLEVBQUUsRUExQlQ7QUEyQkNDLFFBQUFBLElBQUksRUFBRSxFQTNCUDtBQTRCQzVDLFFBQUFBLGdCQUFnQixFQUFFLEVBNUJuQjtBQTZCQ0MsUUFBQUEsZ0JBQWdCLEVBQUU7QUE3Qm5CLE9BRFEsRUFnQ1I7QUFDQ2lCLFFBQUFBLElBQUksRUFBRSxFQURQO0FBRUNDLFFBQUFBLElBQUksRUFBRSxFQUZQO0FBR0NDLFFBQUFBLE1BQU0sRUFBRSxLQUhUO0FBSUNDLFFBQUFBLEtBQUssRUFBRSxFQUpSO0FBS0NDLFFBQUFBLFVBQVUsRUFBRSxFQUxiO0FBTUNDLFFBQUFBLE1BQU0sRUFBRSxFQU5UO0FBT0NDLFFBQUFBLFVBQVUsRUFBRSxFQVBiO0FBUUNDLFFBQUFBLGVBQWUsRUFBRSxFQVJsQjtBQVNDQyxRQUFBQSxXQUFXLEVBQUUsRUFUZDtBQVVDQyxRQUFBQSxVQUFVLEVBQUUsRUFWYjtBQVdDQyxRQUFBQSxZQUFZLEVBQUUsRUFYZjtBQVlDQyxRQUFBQSxTQUFTLEVBQUUsS0FaWjtBQWFDQyxRQUFBQSxjQUFjLEVBQUUsRUFiakI7QUFjQ0MsUUFBQUEscUJBQXFCLEVBQUUsRUFkeEI7QUFlQ0MsUUFBQUEsYUFBYSxFQUFFLENBZmhCO0FBZ0JDQyxRQUFBQSxlQUFlLEVBQUUsQ0FoQmxCO0FBaUJDQyxRQUFBQSxtQkFBbUIsRUFBRSxDQWpCdEI7QUFrQkNDLFFBQUFBLGlCQUFpQixFQUFFLENBbEJwQjtBQW1CQ0MsUUFBQUEsbUJBQW1CLEVBQUUsRUFuQnRCO0FBb0JDQyxRQUFBQSwwQkFBMEIsRUFBRSxFQXBCN0I7QUFxQkNDLFFBQUFBLGtCQUFrQixFQUFFLENBckJyQjtBQXNCQ0MsUUFBQUEsb0JBQW9CLEVBQUUsQ0F0QnZCO0FBdUJDQyxRQUFBQSx3QkFBd0IsRUFBRSxDQXZCM0I7QUF3QkNDLFFBQUFBLHNCQUFzQixFQUFFLENBeEJ6QjtBQXlCQ0MsUUFBQUEsUUFBUSxFQUFFLE1BekJYO0FBMEJDQyxRQUFBQSxNQUFNLEVBQUUsRUExQlQ7QUEyQkNDLFFBQUFBLElBQUksRUFBRSxFQTNCUDtBQTRCQzVDLFFBQUFBLGdCQUFnQixFQUFFLEVBNUJuQjtBQTZCQ0MsUUFBQUEsZ0JBQWdCLEVBQUU7QUE3Qm5CLE9BaENRO0FBRko7QUFSSyxHQURWO0FBOEVGeUQsRUFBQUEsT0FBTyxFQUFFLENBQUVDLGFBQUYsRUFBaUJDLFdBQWpCLEtBQWtDO0FBQzFDLFFBQUkvRCxLQUFKLEVBQVcwRCxPQUFYLEVBQW9CTSxNQUFwQjs7QUFFQSxRQUFLLGlCQUFpQkYsYUFBYSxDQUFDOUQsS0FBcEMsRUFBNEM7QUFDM0NBLE1BQUFBLEtBQUssR0FBRyxNQUFSO0FBQ0E7O0FBRUQsUUFBSyxhQUFhOEQsYUFBYSxDQUFDOUQsS0FBaEMsRUFBd0M7QUFDdkNBLE1BQUFBLEtBQUssR0FBRyxRQUFSO0FBQ0E7O0FBRUQsUUFBSyxlQUFlOEQsYUFBYSxDQUFDOUQsS0FBbEMsRUFBMEM7QUFDekNBLE1BQUFBLEtBQUssR0FBRyxPQUFSO0FBQ0E7O0FBRUQsUUFBSzhELGFBQWEsQ0FBQzFDLElBQW5CLEVBQTBCO0FBQ3pCc0MsTUFBQUEsT0FBTyxHQUFHNUMseUJBQUksQ0FDYmdELGFBQWEsQ0FBQzFDLElBQWQsQ0FBbUIsQ0FBbkIsQ0FEYSxFQUViLENBQ0Msa0JBREQsRUFFQyxrQkFGRCxDQUZhLENBQWQ7O0FBUUEsVUFBSyxLQUFLNkMsTUFBTSxDQUFDQyxJQUFQLENBQWFSLE9BQWIsRUFBdUJTLE1BQWpDLEVBQTBDO0FBQ3pDVCxRQUFBQSxPQUFPLEdBQUc1Qyx5QkFBSSxDQUNiNEMsT0FEYSxFQUViTyxNQUFNLENBQUNDLElBQVAsQ0FBYVIsT0FBYixFQUF1QlUsTUFBdkIsQ0FBK0JiLENBQUMsSUFBSSxPQUFPRyxPQUFPLENBQUNILENBQUQsQ0FBbEQsQ0FGYSxDQUFkO0FBSUE7O0FBRURTLE1BQUFBLE1BQU0sR0FBR0YsYUFBYSxDQUFDMUMsSUFBZCxDQUNQZ0QsTUFETyxDQUNDLENBQUVDLEtBQUYsRUFBU2QsQ0FBVCxLQUFnQkEsQ0FBQyxHQUFHTyxhQUFhLENBQUMzQyxPQURuQyxFQUVQbUQsR0FGTyxDQUVGRCxLQUFLLElBQUk7QUFDZCxjQUFNRSxJQUFJLEdBQUcxRCx5QkFBSSxDQUNoQndELEtBRGdCLEVBRWhCLENBQ0Msa0JBREQsRUFFQyxrQkFGRCxDQUZnQixDQUFqQjtBQVFBLGVBQU9yRCxtQ0FBVyxDQUFFLHlCQUFGLEVBQTZCLEVBQzlDLEdBQUd1RDtBQUQyQyxTQUE3QixDQUFsQjtBQUdBLE9BZE8sQ0FBVDtBQWVBOztBQUVELFVBQU0xRSxVQUFVLEdBQUcsRUFDbEIsR0FBR2dCLHlCQUFJLENBQ05pRCxhQURNLEVBRU4sQ0FDQyxTQURELEVBRUMsTUFGRCxDQUZNLENBRFc7QUFRbEI5RCxNQUFBQSxLQVJrQjtBQVNsQixTQUFHMEQ7QUFUZSxLQUFuQjtBQVlBLFdBQU8sQ0FDTjdELFVBRE0sRUFFTixDQUNDLEdBQUdtRSxNQURKLEVBRUMsR0FBR0QsV0FGSixDQUZNLENBQVA7QUFPQSxHQWpKQztBQW1KRmQsRUFBQUEsSUFBSSxFQUFFLENBQUM7QUFDTnBELElBQUFBLFVBRE07QUFFTnFELElBQUFBO0FBRk0sR0FBRCxLQUdBO0FBQ0wsVUFBTUMsYUFBYSxHQUFHLG9CQUFvQnRELFVBQVUsQ0FBQ1EsUUFBL0IsR0FBMENSLFVBQVUsQ0FBQ1EsUUFBckQsR0FBZ0UsRUFBdEY7O0FBRUEsVUFBTWlELE1BQU0sR0FBR0MsQ0FBQyxJQUFJO0FBQ25CLGFBQ0M7QUFDQyxZQUFJLEVBQUcxRCxVQUFVLENBQUN1QixJQUFYLENBQWdCbUMsQ0FBaEIsRUFBbUJqQyxJQUQzQjtBQUVDLGNBQU0sRUFBR3pCLFVBQVUsQ0FBQ3VCLElBQVgsQ0FBZ0JtQyxDQUFoQixFQUFtQmhDLE1BQW5CLEdBQTRCLFFBQTVCLEdBQXVDLE9BRmpEO0FBR0MsaUJBQVMsRUFBR1gsb0JBQVUsQ0FDckIsa0NBRHFCLEVBRXBCLG9DQUFvQzJDLENBQUcsRUFGbkIsRUFHckIsdUJBSHFCLENBSHZCO0FBUUMsV0FBRyxFQUFDO0FBUkwsU0FVRyxDQUFFLFdBQVcxRCxVQUFVLENBQUN1QixJQUFYLENBQWdCbUMsQ0FBaEIsRUFBbUJWLFFBQTlCLElBQTBDLFdBQVdoRCxVQUFVLENBQUN1QixJQUFYLENBQWdCbUMsQ0FBaEIsRUFBbUJWLFFBQTFFLEtBQ0Q7QUFBRyxpQkFBUyxFQUFHakMsb0JBQVUsQ0FDeEJmLFVBQVUsQ0FBQ3VCLElBQVgsQ0FBZ0JtQyxDQUFoQixFQUFtQlQsTUFESyxFQUV4QixPQUZ3QixFQUd2QixNQUFNakQsVUFBVSxDQUFDdUIsSUFBWCxDQUFnQm1DLENBQWhCLEVBQW1CUixJQUFNLEVBSFIsRUFJeEI7QUFBRSwwQkFBZ0IsV0FBV2xELFVBQVUsQ0FBQ3VCLElBQVgsQ0FBZ0JtQyxDQUFoQixFQUFtQlY7QUFBaEQsU0FKd0I7QUFBekIsUUFYRixFQW9CRyxXQUFXaEQsVUFBVSxDQUFDdUIsSUFBWCxDQUFnQm1DLENBQWhCLEVBQW1CVixRQUE5QixJQUNELHVDQUFDLHlDQUFEO0FBQ0MsZUFBTyxFQUFDLE1BRFQ7QUFFQyxhQUFLLEVBQUdoRCxVQUFVLENBQUN1QixJQUFYLENBQWdCbUMsQ0FBaEIsRUFBbUJsQztBQUY1QixRQXJCRixFQTJCRyxZQUFZeEIsVUFBVSxDQUFDdUIsSUFBWCxDQUFnQm1DLENBQWhCLEVBQW1CVixRQUEvQixJQUNEO0FBQUcsaUJBQVMsRUFBSSxHQUFHaEQsVUFBVSxDQUFDdUIsSUFBWCxDQUFnQm1DLENBQWhCLEVBQW1CVCxNQUFRLGFBQWFqRCxVQUFVLENBQUN1QixJQUFYLENBQWdCbUMsQ0FBaEIsRUFBbUJSLElBQU07QUFBcEYsUUE1QkYsQ0FERDtBQWlDQSxLQWxDRDs7QUFvQ0EsV0FDQztBQUNDLFFBQUUsRUFBR2xELFVBQVUsQ0FBQ0MsRUFEakI7QUFFQyxlQUFTLEVBQUdjLG9CQUFVLENBQ3JCc0MsU0FEcUIsRUFFckJDLGFBRnFCLEVBR3JCLGlCQUhxQjtBQUZ2QixPQVFHcEMsMEJBQUssQ0FBRWxCLFVBQVUsQ0FBQ3NCLE9BQWIsRUFBc0JvQyxDQUFDLElBQUlELE1BQU0sQ0FBRUMsQ0FBRixDQUFqQyxDQVJSLENBREQ7QUFZQTtBQXpNQyxDQTdKZ0IsQ0FBbkI7QUF5V0EscURBQWVQLFVBQWYsRTs7Ozs7Ozs7Ozs7Ozs7OztBQ3plQTtBQUNBO0FBQ0E7QUFDQTtBQU1BO0FBQ0E7QUFDQTs7QUFDQTtBQUVBOztBQUtBLE1BQU04QixRQUFRLEdBQUcsQ0FBQztBQUNqQmpGLEVBQUFBLFVBRGlCO0FBRWpCa0YsRUFBQUE7QUFGaUIsQ0FBRCxLQUdYO0FBQ0wsU0FDQyx1Q0FBQyxzQ0FBRCxRQUNDLHVDQUFDLHlDQUFEO0FBQ0MsU0FBSyxFQUFHbEYsVUFBVSxDQUFDRyxLQURwQjtBQUVDLFlBQVEsRUFBR2dGLENBQUMsSUFBSUQsYUFBYSxDQUFDO0FBQUUvRSxNQUFBQSxLQUFLLEVBQUVnRjtBQUFULEtBQUQsQ0FGOUI7QUFHQyxxQkFBaUIsRUFBRyxDQUNuQjtBQUNDakMsTUFBQUEsSUFBSSxFQUFFMEIseUJBRFA7QUFFQ1EsTUFBQUEsS0FBSyxFQUFFTix3QkFBRSxDQUFFLFlBQUYsRUFBZ0IsY0FBaEIsQ0FGVjtBQUdDM0UsTUFBQUEsS0FBSyxFQUFFO0FBSFIsS0FEbUIsRUFNbkI7QUFDQytDLE1BQUFBLElBQUksRUFBRXlCLDJCQURQO0FBRUNTLE1BQUFBLEtBQUssRUFBRU4sd0JBQUUsQ0FBRSxjQUFGLEVBQWtCLGNBQWxCLENBRlY7QUFHQzNFLE1BQUFBLEtBQUssRUFBRTtBQUhSLEtBTm1CLEVBV25CO0FBQ0MrQyxNQUFBQSxJQUFJLEVBQUUyQiwwQkFEUDtBQUVDTyxNQUFBQSxLQUFLLEVBQUVOLHdCQUFFLENBQUUsYUFBRixFQUFpQixjQUFqQixDQUZWO0FBR0MzRSxNQUFBQSxLQUFLLEVBQUU7QUFIUixLQVhtQjtBQUhyQixJQURELENBREQ7QUF5QkEsQ0E3QkQ7O0FBK0JBLDZDQUFlOEUsUUFBZixFOzs7Ozs7Ozs7O0FDbERBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQU1BO0FBQ0E7QUFDQTs7QUFDQTtBQUNBOztBQUVBLE1BQU1VLFNBQVMsR0FBRyxDQUFDO0FBQ2xCM0YsRUFBQUEsVUFEa0I7QUFFbEJrRixFQUFBQTtBQUZrQixDQUFELEtBR1o7QUFDTCxRQUFNVSxnQkFBZ0IsR0FBR0MsS0FBSyxJQUFJO0FBQ2pDLFFBQUssQ0FBRUEsS0FBUCxFQUFlO0FBQ2RYLE1BQUFBLGFBQWEsQ0FBQztBQUNieEUsUUFBQUEsVUFBVSxFQUFFb0YsU0FEQztBQUVibkYsUUFBQUEsV0FBVyxFQUFFbUYsU0FGQTtBQUdiakYsUUFBQUEsU0FBUyxFQUFFaUY7QUFIRSxPQUFELENBQWI7QUFLQSxLQU5ELE1BTU87QUFDTlosTUFBQUEsYUFBYSxDQUFDO0FBQ2J4RSxRQUFBQSxVQUFVLEVBQUVtRixLQURDO0FBRWJsRixRQUFBQSxXQUFXLEVBQUUsUUFGQTtBQUdiRSxRQUFBQSxTQUFTLEVBQUU7QUFIRSxPQUFELENBQWI7QUFLQTtBQUNELEdBZEQ7O0FBZ0JBLFFBQU1rRixhQUFhLEdBQUcsQ0FBRTdGLElBQUYsRUFBUTJGLEtBQVIsS0FBbUI7QUFDeEMsUUFBSyxVQUFVM0YsSUFBVixJQUFrQixhQUFhQSxJQUFwQyxFQUEyQztBQUMxQ2dGLE1BQUFBLGFBQWEsQ0FBQztBQUFFNUUsUUFBQUEsZ0JBQWdCLEVBQUV1RjtBQUFwQixPQUFELENBQWI7QUFDQTs7QUFFRCxRQUFLLFlBQVkzRixJQUFaLElBQW9CLFdBQVdBLElBQXBDLEVBQTJDO0FBQzFDZ0YsTUFBQUEsYUFBYSxDQUFDO0FBQUUzRSxRQUFBQSxnQkFBZ0IsRUFBRXNGO0FBQXBCLE9BQUQsQ0FBYjtBQUNBO0FBQ0QsR0FSRDs7QUFVQSxTQUNDLHVDQUFDLDBDQUFELFFBQ0MsdUNBQUMsaUNBQUQ7QUFDQyxTQUFLLEVBQUdmLHdCQUFFLENBQUUsU0FBRixFQUFhLGNBQWI7QUFEWCxLQUdDLHVDQUFDLDZCQUFEO0FBQ0MsU0FBSyxFQUFHQSx3QkFBRSxDQUFFLFNBQUYsRUFBYSxjQUFiLENBRFg7QUFFQyxPQUFHLEVBQUcsQ0FGUDtBQUdDLE9BQUcsRUFBRyxHQUhQO0FBSUMsWUFBUSxFQUFHaUIsYUFKWjtBQUtDLFdBQU8sRUFBRyxDQUNUO0FBQ0NDLE1BQUFBLEtBQUssRUFBRWxCLHdCQUFFLENBQUUsS0FBRixFQUFTLGNBQVQsQ0FEVjtBQUVDNUUsTUFBQUEsSUFBSSxFQUFFLEtBRlA7QUFHQzJGLE1BQUFBLEtBQUssRUFBRTdGLFVBQVUsQ0FBQ007QUFIbkIsS0FEUyxFQU1UO0FBQ0MwRixNQUFBQSxLQUFLLEVBQUVsQix3QkFBRSxDQUFFLE9BQUYsRUFBVyxjQUFYLENBRFY7QUFFQzVFLE1BQUFBLElBQUksRUFBRSxPQUZQO0FBR0MyRixNQUFBQSxLQUFLLEVBQUU3RixVQUFVLENBQUNPO0FBSG5CLEtBTlMsRUFXVDtBQUNDeUYsTUFBQUEsS0FBSyxFQUFFbEIsd0JBQUUsQ0FBRSxRQUFGLEVBQVksY0FBWixDQURWO0FBRUM1RSxNQUFBQSxJQUFJLEVBQUUsUUFGUDtBQUdDMkYsTUFBQUEsS0FBSyxFQUFFN0YsVUFBVSxDQUFDTTtBQUhuQixLQVhTLEVBZ0JUO0FBQ0MwRixNQUFBQSxLQUFLLEVBQUVsQix3QkFBRSxDQUFFLE1BQUYsRUFBVSxjQUFWLENBRFY7QUFFQzVFLE1BQUFBLElBQUksRUFBRSxNQUZQO0FBR0MyRixNQUFBQSxLQUFLLEVBQUU3RixVQUFVLENBQUNPO0FBSG5CLEtBaEJTO0FBTFgsSUFIRCxFQWdDQyx1Q0FBQyxvQ0FBRDtBQUNDLFNBQUssRUFBR3VFLHdCQUFFLENBQUUsU0FBRixFQUFhLGNBQWIsQ0FEWDtBQUVDLFNBQUssRUFBRzlFLFVBQVUsQ0FBQ0ksT0FGcEI7QUFHQyxZQUFRLEVBQUcrRSxDQUFDLElBQUlELGFBQWEsQ0FBQztBQUFFOUUsTUFBQUEsT0FBTyxFQUFFK0U7QUFBWCxLQUFELENBSDlCO0FBSUMsT0FBRyxFQUFHLENBSlA7QUFLQyxPQUFHLEVBQUc7QUFMUCxJQWhDRCxFQXdDQyx1Q0FBQyxxQ0FBRDtBQUNDLFNBQUssRUFBR0wsd0JBQUUsQ0FBRSxhQUFGLEVBQWlCLGNBQWpCLENBRFg7QUFFQyxTQUFLLEVBQUc5RSxVQUFVLENBQUNRLFFBRnBCO0FBR0MsV0FBTyxFQUFHLENBQ1Q7QUFBRXdGLE1BQUFBLEtBQUssRUFBRWxCLHdCQUFFLENBQUUsTUFBRixFQUFVLGNBQVYsQ0FBWDtBQUF1Q2UsTUFBQUEsS0FBSyxFQUFFO0FBQTlDLEtBRFMsRUFFVDtBQUFFRyxNQUFBQSxLQUFLLEVBQUVsQix3QkFBRSxDQUFFLFNBQUYsRUFBYSxjQUFiLENBQVg7QUFBMENlLE1BQUFBLEtBQUssRUFBRTtBQUFqRCxLQUZTLEVBR1Q7QUFBRUcsTUFBQUEsS0FBSyxFQUFFbEIsd0JBQUUsQ0FBRSxRQUFGLEVBQVksY0FBWixDQUFYO0FBQXlDZSxNQUFBQSxLQUFLLEVBQUU7QUFBaEQsS0FIUyxFQUlUO0FBQUVHLE1BQUFBLEtBQUssRUFBRWxCLHdCQUFFLENBQUUsUUFBRixFQUFZLGNBQVosQ0FBWDtBQUF5Q2UsTUFBQUEsS0FBSyxFQUFFO0FBQWhELEtBSlMsQ0FIWDtBQVNDLFlBQVEsRUFBR1YsQ0FBQyxJQUFJRCxhQUFhLENBQUM7QUFBRTFFLE1BQUFBLFFBQVEsRUFBRTJFO0FBQVosS0FBRDtBQVQ5QixJQXhDRCxDQURELEVBc0RDLHVDQUFDLGlDQUFEO0FBQ0MsU0FBSyxFQUFHTCx3QkFBRSxDQUFFLHFCQUFGLEVBQXlCLGNBQXpCLENBRFg7QUFFQyxlQUFXLEVBQUc7QUFGZixLQUlDLHVDQUFDLG9DQUFEO0FBQ0MsU0FBSyxFQUFHQSx3QkFBRSxDQUFFLFdBQUYsRUFBZSxjQUFmLENBRFg7QUFFQyxTQUFLLEVBQUc5RSxVQUFVLENBQUNTLFFBRnBCO0FBR0MsWUFBUSxFQUFHMEUsQ0FBQyxJQUFJRCxhQUFhLENBQUM7QUFBRXpFLE1BQUFBLFFBQVEsRUFBRTBFO0FBQVosS0FBRCxDQUg5QjtBQUlDLE9BQUcsRUFBRyxDQUpQO0FBS0MsT0FBRyxFQUFHO0FBTFAsSUFKRCxFQVlDLHVDQUFDLG1DQUFEO0FBQ0MsU0FBSyxFQUFHTCx3QkFBRSxDQUFFLGFBQUYsRUFBaUIsY0FBakIsQ0FEWDtBQUVDLFNBQUssRUFBRzlFLFVBQVUsQ0FBQ1UsVUFGcEI7QUFHQyxzQkFBa0IsRUFBR2tGLGdCQUh0QjtBQUlDLGdCQUFZLEVBQUc1RixVQUFVLENBQUNXLFdBSjNCO0FBS0MsdUJBQW1CLEVBQUd3RSxDQUFDLElBQUlELGFBQWEsQ0FBQztBQUFFdkUsTUFBQUEsV0FBVyxFQUFFd0U7QUFBZixLQUFELENBTHpDO0FBTUMsY0FBVSxFQUFHbkYsVUFBVSxDQUFDYSxTQU56QjtBQU9DLHFCQUFpQixFQUFHc0UsQ0FBQyxJQUFJRCxhQUFhLENBQUM7QUFBRXJFLE1BQUFBLFNBQVMsRUFBRXNFO0FBQWIsS0FBRCxDQVB2QztBQVFDLGtCQUFjLEVBQUduRixVQUFVLENBQUNZLGFBUjdCO0FBU0MseUJBQXFCLEVBQUd1RSxDQUFDLElBQUlELGFBQWEsQ0FBQztBQUFFdEUsTUFBQUEsYUFBYSxFQUFFdUU7QUFBakIsS0FBRDtBQVQzQyxJQVpELEVBd0JDLHVDQUFDLG9DQUFEO0FBQ0MsU0FBSyxFQUFHTCx3QkFBRSxDQUFFLGFBQUYsRUFBaUIsY0FBakIsQ0FEWDtBQUVDLFNBQUssRUFBRzlFLFVBQVUsQ0FBQ2MsVUFGcEI7QUFHQyxZQUFRLEVBQUdxRSxDQUFDLElBQUlELGFBQWEsQ0FBQztBQUFFcEUsTUFBQUEsVUFBVSxFQUFFcUU7QUFBZCxLQUFELENBSDlCO0FBSUMsT0FBRyxFQUFHLENBSlA7QUFLQyxPQUFHLEVBQUc7QUFMUCxJQXhCRCxDQXRERCxDQUREO0FBeUZBLENBdkhEOztBQXlIQSw4Q0FBZVEsU0FBZixFOzs7Ozs7QUM1SUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTs7QUFDQTtBQUVBO0FBRUE7QUFFQTtBQUtBO0FBQ0E7QUFDQTs7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxNQUFNYSxJQUFJLEdBQUcsQ0FBQztBQUNieEcsRUFBQUEsVUFEYTtBQUVia0YsRUFBQUEsYUFGYTtBQUdiN0IsRUFBQUEsU0FIYTtBQUlib0QsRUFBQUE7QUFKYSxDQUFELEtBS1A7QUFDTCxRQUFNO0FBQ0xDLElBQUFBLG1CQURLO0FBRUxDLElBQUFBLGdCQUZLO0FBR0xDLElBQUFBLGVBSEs7QUFJTEMsSUFBQUE7QUFKSyxNQUtGVCwrQkFBUyxDQUFFVSxNQUFNLElBQUk7QUFDeEIsVUFBTTtBQUFFQyxNQUFBQTtBQUFGLFFBQXlDRCxNQUFNLENBQUUsZ0JBQUYsQ0FBTixHQUE2QkEsTUFBTSxDQUFFLGdCQUFGLENBQW5DLEdBQTBELEtBQXpHO0FBRUEsV0FBTztBQUNOSixNQUFBQSxtQkFBbUIsRUFBRUssa0NBQWtDLEdBQUcsSUFBSCxHQUFVLEtBRDNEO0FBRU5KLE1BQUFBLGdCQUFnQixFQUFFSSxrQ0FBa0MsR0FBRyxjQUFjQSxrQ0FBa0MsRUFBbkQsR0FBd0QsS0FGdEc7QUFHTkgsTUFBQUEsZUFBZSxFQUFFRyxrQ0FBa0MsR0FBRyxhQUFhQSxrQ0FBa0MsRUFBbEQsR0FBdUQsS0FIcEc7QUFJTkYsTUFBQUEsZUFBZSxFQUFFRSxrQ0FBa0MsR0FBRyxhQUFhQSxrQ0FBa0MsRUFBbEQsR0FBdUQ7QUFKcEcsS0FBUDtBQU1BLEdBVFksRUFTVixDQUFFL0csVUFBVSxDQUFDQyxFQUFiLENBVFUsQ0FMYjtBQWdCQSxRQUFNK0csUUFBUSxHQUFHYix5Q0FBZ0IsQ0FBRSxPQUFGLEVBQVcsSUFBWCxDQUFqQztBQUVBLFFBQU1jLE9BQU8sR0FBR2QseUNBQWdCLENBQUUsT0FBRixFQUFXLElBQVgsQ0FBaEM7QUFFQSxRQUFNZSxPQUFPLEdBQUdmLHlDQUFnQixDQUFFLE9BQUYsRUFBVyxJQUFYLENBQWhDO0FBRUEsUUFBTWdCLFNBQVMsR0FBR2hCLHlDQUFnQixDQUFFLE9BQUYsRUFBVyxJQUFYLENBQWxDO0FBRUFFLEVBQUFBLGtDQUFTLENBQUUsTUFBTTtBQUNoQixVQUFNZSxXQUFXLEdBQUdiLG1DQUFTLENBQUVFLFFBQUYsRUFBWUgsZ0JBQVosQ0FBN0I7QUFDQSxXQUFPLE1BQU1jLFdBQVcsQ0FBRXBILFVBQVUsQ0FBQ0MsRUFBYixDQUF4QjtBQUNBLEdBSFEsRUFHTixFQUhNLENBQVQ7QUFLQSxNQUFJb0gsU0FBUyxHQUFHTCxRQUFRLElBQUksQ0FBRUMsT0FBZCxJQUF5QkMsT0FBekIsSUFBb0MsQ0FBRUMsU0FBdEQ7QUFFQSxNQUFJRyxRQUFRLEdBQUcsQ0FBRU4sUUFBRixJQUFjLENBQUVDLE9BQWhCLElBQTJCQyxPQUEzQixJQUFzQyxDQUFFQyxTQUF2RDtBQUVBLE1BQUlJLFFBQVEsR0FBRyxDQUFFUCxRQUFGLElBQWMsQ0FBRUMsT0FBaEIsSUFBMkIsQ0FBRUMsT0FBN0IsSUFBd0MsQ0FBRUMsU0FBekQ7O0FBRUEsTUFBS1QsbUJBQW1CLElBQUksQ0FBRWEsUUFBOUIsRUFBeUM7QUFDeENGLElBQUFBLFNBQVMsR0FBR1YsZ0JBQVo7QUFDQVcsSUFBQUEsUUFBUSxHQUFHVixlQUFYO0FBQ0FXLElBQUFBLFFBQVEsR0FBR1YsZUFBWDtBQUNBOztBQUVELFNBQ0MsdUNBQUMsNkJBQUQsUUFDRzdHLFVBQVUsQ0FBQ1UsVUFBWCxJQUNELHVDQUFDLG9CQUFEO0FBQWtCLFNBQUssRUFBRyxDQUFFO0FBQzNCOEcsTUFBQUEsSUFBSSxFQUFFeEgsVUFBVSxDQUFDVSxVQURVO0FBRTNCK0csTUFBQUEsT0FBTyxFQUFFekgsVUFBVSxDQUFDVyxXQUFYLElBQTBCLENBQUcsR0FBR1gsVUFBVSxDQUFDVyxXQUFYLElBQTJCLGFBQWFYLFVBQVUsQ0FBQ2EsU0FBeEIsR0FBb0MsSUFBcEMsR0FBMkMsRUFBdEUsQ0FBNEUsRUFBbEY7QUFGUixLQUFGO0FBQTFCLElBRkYsRUFRQyx1Q0FBQyxRQUFEO0FBQ0MsY0FBVSxFQUFHYixVQURkO0FBRUMsaUJBQWEsRUFBR2tGO0FBRmpCLElBUkQsRUFhQyx1Q0FBQyxTQUFEO0FBQ0MsY0FBVSxFQUFHbEYsVUFEZDtBQUVDLGlCQUFhLEVBQUdrRjtBQUZqQixJQWJELEVBa0JDO0FBQ0MsTUFBRSxFQUFHbEYsVUFBVSxDQUFDQyxFQURqQjtBQUVDLGFBQVMsRUFBR2Msb0JBQVUsQ0FDckJzQyxTQURxQixFQUVyQixrQkFGcUIsRUFHckI7QUFDQyxPQUFHLFNBQVNyRCxVQUFVLENBQUNHLEtBQU8sRUFBOUIsR0FBbUNILFVBQVUsQ0FBQ0csS0FEL0M7QUFFQyxrQkFBYyx1QkFBdUJILFVBQVUsQ0FBQ1EsUUFBbEMsS0FBZ0Q2RyxTQUFTLElBQUlDLFFBQWIsSUFBeUJDLFFBQXpFLENBQUYsSUFBNkYsc0JBQXNCdkgsVUFBVSxDQUFDUSxRQUFqQyxLQUErQzhHLFFBQVEsSUFBSUMsUUFBM0QsQ0FBN0YsSUFBMEssc0JBQXNCdkgsVUFBVSxDQUFDUSxRQUFqQyxJQUE2QytHO0FBRnBPLEtBSHFCO0FBRnZCLEtBV0MsdUNBQUMsb0NBQUQ7QUFDQyxpQkFBYSxFQUFHLENBQUUseUJBQUYsQ0FEakI7QUFFQyxnQ0FBNEIsRUFBQyxZQUY5QjtBQUdDLGVBQVcsRUFBQyxZQUhiO0FBSUMsWUFBUSxFQUFHLENBQUUsQ0FBRSx5QkFBRixDQUFGLENBSlo7QUFLQyxrQkFBYyxFQUFHckIsb0RBQTJCd0I7QUFMN0MsSUFYRCxDQWxCRCxDQUREO0FBd0NBLENBdkZEOztBQXlGQSx5Q0FBZWxCLElBQWYsRTs7OztBQ3JIQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTs7QUFDQTs7QUFFQSxNQUFNbUIsSUFBSSxHQUFHLENBQUM7QUFDYjNILEVBQUFBLFVBRGE7QUFFYnFELEVBQUFBO0FBRmEsQ0FBRCxLQUdQO0FBQ0wsUUFBTUMsYUFBYSxHQUFHLG9CQUFvQnRELFVBQVUsQ0FBQ1EsUUFBL0IsR0FBMENSLFVBQVUsQ0FBQ1EsUUFBckQsR0FBZ0UsRUFBdEY7QUFFQSxTQUNDO0FBQ0MsTUFBRSxFQUFHUixVQUFVLENBQUNDLEVBRGpCO0FBRUMsYUFBUyxFQUFHYyxvQkFBVSxDQUNyQnNDLFNBRHFCLEVBRXJCQyxhQUZxQixFQUdyQixrQkFIcUIsRUFJckI7QUFDQyxPQUFHLFNBQVN0RCxVQUFVLENBQUNHLEtBQU8sRUFBOUIsR0FBbUNILFVBQVUsQ0FBQ0c7QUFEL0MsS0FKcUI7QUFGdkIsS0FXQyx1Q0FBQyw0Q0FBRCxPQVhELENBREQ7QUFlQSxDQXJCRDs7QUF1QkEseUNBQWV3SCxJQUFmLEU7O0FDakNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUNBO0FBQ0E7O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBQyx5Q0FBaUIsQ0FBRSwrQkFBRixFQUFtQztBQUNuRHhDLEVBQUFBLEtBQUssRUFBRU4sd0JBQUUsQ0FBRSxjQUFGLEVBQWtCLGNBQWxCLENBRDBDO0FBRW5EaUQsRUFBQUEsV0FBVyxFQUFFakQsd0JBQUUsQ0FBRSxxREFBRixFQUF5RCxjQUF6RCxDQUZvQztBQUduRDVCLEVBQUFBLElBSG1EO0FBSW5EOEUsRUFBQUEsUUFBUSxFQUFFLGtCQUp5QztBQUtuREMsRUFBQUEsUUFBUSxFQUFFLENBQ1QsUUFEUyxFQUVULFNBRlMsRUFHVCxjQUhTLENBTHlDO0FBVW5EakksRUFBQUEsVUFWbUQ7QUFXbkRtRCxFQUFBQSxVQVhtRDtBQVluRDJFLEVBQUFBLElBWm1EO0FBYW5EMUUsRUFBQUEsSUFBSUEsRUFBQUEsSUFBQUE7QUFiK0MsQ0FBbkMsQ0FBakIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9vdHRlci1ibG9ja3MvLi9zcmMvYmxvY2tzL2Jsb2Nrcy9idXR0b24tZ3JvdXAvZ3JvdXAvYXR0cmlidXRlcy5qcz8zZDUwIiwid2VicGFjazovL290dGVyLWJsb2Nrcy8uL3NyYy9ibG9ja3MvYmxvY2tzL2J1dHRvbi1ncm91cC9ncm91cC9kZXByZWNhdGVkLmpzP2U2MDciLCJ3ZWJwYWNrOi8vb3R0ZXItYmxvY2tzLy4vc3JjL2Jsb2Nrcy9ibG9ja3MvYnV0dG9uLWdyb3VwL2dyb3VwL2NvbnRyb2xzLmpzPzY5NzAiLCJ3ZWJwYWNrOi8vb3R0ZXItYmxvY2tzLy4vc3JjL2Jsb2Nrcy9ibG9ja3MvYnV0dG9uLWdyb3VwL2dyb3VwL2luc3BlY3Rvci5qcz9hOThjIiwid2VicGFjazovL290dGVyLWJsb2Nrcy8uL3NyYy9ibG9ja3MvYmxvY2tzL2J1dHRvbi1ncm91cC9ncm91cC9lZGl0LmpzPzAwNDciLCJ3ZWJwYWNrOi8vb3R0ZXItYmxvY2tzLy4vc3JjL2Jsb2Nrcy9ibG9ja3MvYnV0dG9uLWdyb3VwL2dyb3VwL3NhdmUuanM/MGIxMSIsIndlYnBhY2s6Ly9vdHRlci1ibG9ja3MvLi9zcmMvYmxvY2tzL2Jsb2Nrcy9idXR0b24tZ3JvdXAvZ3JvdXAvaW5kZXguanM/NWE5YyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBhdHRyaWJ1dGVzID0ge1xuXHRpZDoge1xuXHRcdHR5cGU6ICdzdHJpbmcnXG5cdH0sXG5cdGFsaWduOiB7XG5cdFx0dHlwZTogJ3N0cmluZydcblx0fSxcblx0c3BhY2luZzoge1xuXHRcdHR5cGU6ICdudW1iZXInLFxuXHRcdGRlZmF1bHQ6IDIwXG5cdH0sXG5cdHBhZGRpbmdUb3BCb3R0b206IHtcblx0XHR0eXBlOiAnbnVtYmVyJ1xuXHR9LFxuXHRwYWRkaW5nTGVmdFJpZ2h0OiB7XG5cdFx0dHlwZTogJ251bWJlcidcblx0fSxcblx0Y29sbGFwc2U6IHtcblx0XHR0eXBlOiAnc3RyaW5nJyxcblx0XHRkZWZhdWx0OiAnY29sbGFwc2Utbm9uZSdcblx0fSxcblx0Zm9udFNpemU6IHtcblx0XHR0eXBlOiAnbnVtYmVyJ1xuXHR9LFxuXHRmb250RmFtaWx5OiB7XG5cdFx0dHlwZTogJ3N0cmluZydcblx0fSxcblx0Zm9udFZhcmlhbnQ6IHtcblx0XHR0eXBlOiAnc3RyaW5nJ1xuXHR9LFxuXHR0ZXh0VHJhbnNmb3JtOiB7XG5cdFx0dHlwZTogJ3N0cmluZydcblx0fSxcblx0Zm9udFN0eWxlOiB7XG5cdFx0dHlwZTogJ3N0cmluZydcblx0fSxcblx0bGluZUhlaWdodDoge1xuXHRcdHR5cGU6ICdudW1iZXInXG5cdH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IGF0dHJpYnV0ZXM7XG4iLCIvKipcbiAqIEV4dGVybmFsIGRlcGVuZGVuY2llc1xuICovXG5pbXBvcnQgY2xhc3NuYW1lcyBmcm9tICdjbGFzc25hbWVzJztcblxuLyoqXG4gKiBXb3JkUHJlc3MgZGVwZW5kZW5jaWVzLlxuICovXG5pbXBvcnQge1xuXHRvbWl0LFxuXHRwaWNrLFxuXHR0aW1lc1xufSBmcm9tICdsb2Rhc2gnO1xuXG5pbXBvcnQgeyBjcmVhdGVCbG9jayB9IGZyb20gJ0B3b3JkcHJlc3MvYmxvY2tzJztcblxuaW1wb3J0IHsgUmljaFRleHQgfSBmcm9tICdAd29yZHByZXNzL2Jsb2NrLWVkaXRvcic7XG5cbmltcG9ydCB7IEZyYWdtZW50IH0gZnJvbSAnQHdvcmRwcmVzcy9lbGVtZW50JztcblxuY29uc3QgYXR0cmlidXRlcyA9IHtcblx0aWQ6IHtcblx0XHR0eXBlOiAnc3RyaW5nJ1xuXHR9LFxuXHRidXR0b25zOiB7XG5cdFx0dHlwZTogJ251bWJlcicsXG5cdFx0ZGVmYXVsdDogMlxuXHR9LFxuXHRhbGlnbjoge1xuXHRcdHR5cGU6ICdzdHJpbmcnXG5cdH0sXG5cdHNwYWNpbmc6IHtcblx0XHR0eXBlOiAnbnVtYmVyJyxcblx0XHRkZWZhdWx0OiAyMFxuXHR9LFxuXHRjb2xsYXBzZToge1xuXHRcdHR5cGU6ICdzdHJpbmcnLFxuXHRcdGRlZmF1bHQ6ICdjb2xsYXBzZS1ub25lJ1xuXHR9LFxuXHRmb250U2l6ZToge1xuXHRcdHR5cGU6ICdudW1iZXInLFxuXHRcdGRlZmF1bHQ6IDE4XG5cdH0sXG5cdGZvbnRGYW1pbHk6IHtcblx0XHR0eXBlOiAnc3RyaW5nJ1xuXHR9LFxuXHRmb250VmFyaWFudDoge1xuXHRcdHR5cGU6ICdzdHJpbmcnXG5cdH0sXG5cdHRleHRUcmFuc2Zvcm06IHtcblx0XHR0eXBlOiAnc3RyaW5nJ1xuXHR9LFxuXHRmb250U3R5bGU6IHtcblx0XHR0eXBlOiAnc3RyaW5nJyxcblx0XHRkZWZhdWx0OiAnbm9ybWFsJ1xuXHR9LFxuXHRsaW5lSGVpZ2h0OiB7XG5cdFx0dHlwZTogJ251bWJlcidcblx0fSxcblx0ZGF0YToge1xuXHRcdHR5cGU6ICdhcnJheScsXG5cdFx0ZGVmYXVsdDogW1xuXHRcdFx0e1xuXHRcdFx0XHR0ZXh0OiAnJyxcblx0XHRcdFx0bGluazogJycsXG5cdFx0XHRcdG5ld1RhYjogZmFsc2UsXG5cdFx0XHRcdGNvbG9yOiAnI2ZmZmZmZicsXG5cdFx0XHRcdGJhY2tncm91bmQ6ICcjMzIzNzNjJyxcblx0XHRcdFx0Ym9yZGVyOiAnJyxcblx0XHRcdFx0aG92ZXJDb2xvcjogJycsXG5cdFx0XHRcdGhvdmVyQmFja2dyb3VuZDogJycsXG5cdFx0XHRcdGhvdmVyQm9yZGVyOiAnJyxcblx0XHRcdFx0Ym9yZGVyU2l6ZTogMCxcblx0XHRcdFx0Ym9yZGVyUmFkaXVzOiAwLFxuXHRcdFx0XHRib3hTaGFkb3c6IGZhbHNlLFxuXHRcdFx0XHRib3hTaGFkb3dDb2xvcjogJycsXG5cdFx0XHRcdGJveFNoYWRvd0NvbG9yT3BhY2l0eTogNTAsXG5cdFx0XHRcdGJveFNoYWRvd0JsdXI6IDUsXG5cdFx0XHRcdGJveFNoYWRvd1NwcmVhZDogMSxcblx0XHRcdFx0Ym94U2hhZG93SG9yaXpvbnRhbDogMCxcblx0XHRcdFx0Ym94U2hhZG93VmVydGljYWw6IDAsXG5cdFx0XHRcdGhvdmVyQm94U2hhZG93Q29sb3I6ICcnLFxuXHRcdFx0XHRob3ZlckJveFNoYWRvd0NvbG9yT3BhY2l0eTogNTAsXG5cdFx0XHRcdGhvdmVyQm94U2hhZG93Qmx1cjogNSxcblx0XHRcdFx0aG92ZXJCb3hTaGFkb3dTcHJlYWQ6IDEsXG5cdFx0XHRcdGhvdmVyQm94U2hhZG93SG9yaXpvbnRhbDogMCxcblx0XHRcdFx0aG92ZXJCb3hTaGFkb3dWZXJ0aWNhbDogMCxcblx0XHRcdFx0aWNvblR5cGU6ICdub25lJyxcblx0XHRcdFx0cHJlZml4OiAnJyxcblx0XHRcdFx0aWNvbjogJycsXG5cdFx0XHRcdHBhZGRpbmdUb3BCb3R0b206IDEyLFxuXHRcdFx0XHRwYWRkaW5nTGVmdFJpZ2h0OiAyNFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0dGV4dDogJycsXG5cdFx0XHRcdGxpbms6ICcnLFxuXHRcdFx0XHRuZXdUYWI6IGZhbHNlLFxuXHRcdFx0XHRjb2xvcjogJyNmZmZmZmYnLFxuXHRcdFx0XHRiYWNrZ3JvdW5kOiAnIzMyMzczYycsXG5cdFx0XHRcdGJvcmRlcjogJycsXG5cdFx0XHRcdGhvdmVyQ29sb3I6ICcnLFxuXHRcdFx0XHRob3ZlckJhY2tncm91bmQ6ICcnLFxuXHRcdFx0XHRob3ZlckJvcmRlcjogJycsXG5cdFx0XHRcdGJvcmRlclNpemU6IDAsXG5cdFx0XHRcdGJvcmRlclJhZGl1czogMCxcblx0XHRcdFx0Ym94U2hhZG93OiBmYWxzZSxcblx0XHRcdFx0Ym94U2hhZG93Q29sb3I6ICcnLFxuXHRcdFx0XHRib3hTaGFkb3dDb2xvck9wYWNpdHk6IDUwLFxuXHRcdFx0XHRib3hTaGFkb3dCbHVyOiA1LFxuXHRcdFx0XHRib3hTaGFkb3dTcHJlYWQ6IDEsXG5cdFx0XHRcdGJveFNoYWRvd0hvcml6b250YWw6IDAsXG5cdFx0XHRcdGJveFNoYWRvd1ZlcnRpY2FsOiAwLFxuXHRcdFx0XHRob3ZlckJveFNoYWRvd0NvbG9yOiAnJyxcblx0XHRcdFx0aG92ZXJCb3hTaGFkb3dDb2xvck9wYWNpdHk6IDUwLFxuXHRcdFx0XHRob3ZlckJveFNoYWRvd0JsdXI6IDUsXG5cdFx0XHRcdGhvdmVyQm94U2hhZG93U3ByZWFkOiAxLFxuXHRcdFx0XHRob3ZlckJveFNoYWRvd0hvcml6b250YWw6IDAsXG5cdFx0XHRcdGhvdmVyQm94U2hhZG93VmVydGljYWw6IDAsXG5cdFx0XHRcdGljb25UeXBlOiAnbm9uZScsXG5cdFx0XHRcdHByZWZpeDogJycsXG5cdFx0XHRcdGljb246ICcnLFxuXHRcdFx0XHRwYWRkaW5nVG9wQm90dG9tOiAxMixcblx0XHRcdFx0cGFkZGluZ0xlZnRSaWdodDogMjRcblx0XHRcdH1cblx0XHRdXG5cdH1cbn07XG5cbmNvbnN0IGRlcHJlY2F0ZWQgPSBbIHtcblx0YXR0cmlidXRlcyxcblxuXHRzYXZlOiAoe1xuXHRcdGF0dHJpYnV0ZXMsXG5cdFx0Y2xhc3NOYW1lXG5cdH0pID0+IHtcblx0XHRjb25zdCBjb2xsYXBzZUNsYXNzID0gJ2NvbGxhcHNlLW5vbmUnICE9PSBhdHRyaWJ1dGVzLmNvbGxhcHNlID8gYXR0cmlidXRlcy5jb2xsYXBzZSA6ICcnO1xuXG5cdFx0Y29uc3Qgc3R5bGUgPSB7XG5cdFx0XHRmb250U2l6ZTogYCR7IGF0dHJpYnV0ZXMuZm9udFNpemUgfXB4YCxcblx0XHRcdGZvbnRGYW1pbHk6IGF0dHJpYnV0ZXMuZm9udEZhbWlseSxcblx0XHRcdGZvbnRXZWlnaHQ6IGF0dHJpYnV0ZXMuZm9udFZhcmlhbnQsXG5cdFx0XHRmb250U3R5bGU6IGF0dHJpYnV0ZXMuZm9udFN0eWxlLFxuXHRcdFx0dGV4dFRyYW5zZm9ybTogYXR0cmlidXRlcy50ZXh0VHJhbnNmb3JtLFxuXHRcdFx0bGluZUhlaWdodDogYXR0cmlidXRlcy5saW5lSGVpZ2h0ICYmIGAkeyBhdHRyaWJ1dGVzLmxpbmVIZWlnaHQgfXB4YFxuXHRcdH07XG5cblx0XHRjb25zdCBidXR0b24gPSBpID0+IHtcblx0XHRcdGNvbnN0IGJ1dHRvblN0eWxlID0ge1xuXHRcdFx0XHQuLi5zdHlsZSxcblx0XHRcdFx0Ym9yZGVyV2lkdGg6IGAkeyBhdHRyaWJ1dGVzLmRhdGFbaV0uYm9yZGVyU2l6ZSB9cHhgLFxuXHRcdFx0XHRib3JkZXJSYWRpdXM6IGAkeyBhdHRyaWJ1dGVzLmRhdGFbaV0uYm9yZGVyUmFkaXVzIH1weGAsXG5cdFx0XHRcdHBhZGRpbmc6IGAkeyBhdHRyaWJ1dGVzLmRhdGFbaV0ucGFkZGluZ1RvcEJvdHRvbSB9cHggJHsgYXR0cmlidXRlcy5kYXRhW2ldLnBhZGRpbmdMZWZ0UmlnaHQgfXB4YFxuXHRcdFx0fTtcblxuXHRcdFx0cmV0dXJuIChcblx0XHRcdFx0PEZyYWdtZW50PlxuXHRcdFx0XHRcdDxhXG5cdFx0XHRcdFx0XHRocmVmPXsgYXR0cmlidXRlcy5kYXRhW2ldLmxpbmsgfVxuXHRcdFx0XHRcdFx0dGFyZ2V0PXsgYXR0cmlidXRlcy5kYXRhW2ldLm5ld1RhYiA/ICdfYmxhbmsnIDogJ19zZWxmJyB9XG5cdFx0XHRcdFx0XHRjbGFzc05hbWU9eyBjbGFzc25hbWVzKFxuXHRcdFx0XHRcdFx0XHQnd3AtYmxvY2stdGhlbWVpc2xlLWJsb2Nrcy1idXR0b24nLFxuXHRcdFx0XHRcdFx0XHRgd3AtYmxvY2stdGhlbWVpc2xlLWJsb2Nrcy1idXR0b24tJHsgaSB9YFxuXHRcdFx0XHRcdFx0KSB9XG5cdFx0XHRcdFx0XHRzdHlsZT17IGJ1dHRvblN0eWxlIH1cblx0XHRcdFx0XHQ+XG5cdFx0XHRcdFx0XHR7ICggJ2xlZnQnID09PSBhdHRyaWJ1dGVzLmRhdGFbaV0uaWNvblR5cGUgfHwgJ29ubHknID09PSBhdHRyaWJ1dGVzLmRhdGFbaV0uaWNvblR5cGUgKSAmJiAoXG5cdFx0XHRcdFx0XHRcdDxpIGNsYXNzTmFtZT17IGNsYXNzbmFtZXMoXG5cdFx0XHRcdFx0XHRcdFx0YXR0cmlidXRlcy5kYXRhW2ldLnByZWZpeCxcblx0XHRcdFx0XHRcdFx0XHQnZmEtZncnLFxuXHRcdFx0XHRcdFx0XHRcdGBmYS0keyBhdHRyaWJ1dGVzLmRhdGFbaV0uaWNvbiB9YCxcblx0XHRcdFx0XHRcdFx0XHR7ICdtYXJnaW4tcmlnaHQnOiAnbGVmdCcgPT09IGF0dHJpYnV0ZXMuZGF0YVtpXS5pY29uVHlwZSB9XG5cdFx0XHRcdFx0XHRcdCkgfT5cblx0XHRcdFx0XHRcdFx0PC9pPlxuXHRcdFx0XHRcdFx0KSB9XG5cblx0XHRcdFx0XHRcdHsgJ29ubHknICE9PSBhdHRyaWJ1dGVzLmRhdGFbaV0uaWNvblR5cGUgJiYgKFxuXHRcdFx0XHRcdFx0XHQ8UmljaFRleHQuQ29udGVudFxuXHRcdFx0XHRcdFx0XHRcdHRhZ05hbWU9XCJzcGFuXCJcblx0XHRcdFx0XHRcdFx0XHR2YWx1ZT17IGF0dHJpYnV0ZXMuZGF0YVtpXS50ZXh0IH1cblx0XHRcdFx0XHRcdFx0Lz5cblx0XHRcdFx0XHRcdCkgfVxuXG5cdFx0XHRcdFx0XHR7ICdyaWdodCcgPT09IGF0dHJpYnV0ZXMuZGF0YVtpXS5pY29uVHlwZSAmJiAoXG5cdFx0XHRcdFx0XHRcdDxpIGNsYXNzTmFtZT17IGAkeyBhdHRyaWJ1dGVzLmRhdGFbaV0ucHJlZml4IH0gZmEtZncgZmEtJHsgYXR0cmlidXRlcy5kYXRhW2ldLmljb24gfSBtYXJnaW4tbGVmdGAgfT48L2k+XG5cdFx0XHRcdFx0XHQpIH1cblx0XHRcdFx0XHQ8L2E+XG5cdFx0XHRcdDwvRnJhZ21lbnQ+XG5cdFx0XHQpO1xuXHRcdH07XG5cblx0XHRyZXR1cm4gKFxuXHRcdFx0PGRpdlxuXHRcdFx0XHRpZD17IGF0dHJpYnV0ZXMuaWQgfVxuXHRcdFx0XHRjbGFzc05hbWU9eyBjbGFzc25hbWVzKFxuXHRcdFx0XHRcdGNsYXNzTmFtZSxcblx0XHRcdFx0XHRjb2xsYXBzZUNsYXNzXG5cdFx0XHRcdCkgfVxuXHRcdFx0XHRzdHlsZT17IHtcblx0XHRcdFx0XHRqdXN0aWZ5Q29udGVudDogYXR0cmlidXRlcy5hbGlnbixcblx0XHRcdFx0XHRhbGlnbkl0ZW1zOiBhdHRyaWJ1dGVzLmFsaWduID8gYXR0cmlidXRlcy5hbGlnbiA6ICdmbGV4LXN0YXJ0J1xuXHRcdFx0XHR9IH1cblx0XHRcdD5cblx0XHRcdFx0eyB0aW1lcyggYXR0cmlidXRlcy5idXR0b25zLCBpID0+IGJ1dHRvbiggaSApICkgfVxuXHRcdFx0PC9kaXY+XG5cdFx0KTtcblx0fVxufSwge1xuXHRhdHRyaWJ1dGVzLFxuXG5cdHNhdmU6ICh7XG5cdFx0YXR0cmlidXRlcyxcblx0XHRjbGFzc05hbWVcblx0fSkgPT4ge1xuXHRcdGNvbnN0IGNvbGxhcHNlQ2xhc3MgPSAnY29sbGFwc2Utbm9uZScgIT09IGF0dHJpYnV0ZXMuY29sbGFwc2UgPyBhdHRyaWJ1dGVzLmNvbGxhcHNlIDogJyc7XG5cblx0XHRjb25zdCBzdHlsZSA9IHtcblx0XHRcdGZvbnRTaXplOiBgJHsgYXR0cmlidXRlcy5mb250U2l6ZSB9cHhgLFxuXHRcdFx0Zm9udEZhbWlseTogYXR0cmlidXRlcy5mb250RmFtaWx5LFxuXHRcdFx0Zm9udFdlaWdodDogYXR0cmlidXRlcy5mb250VmFyaWFudCxcblx0XHRcdGZvbnRTdHlsZTogYXR0cmlidXRlcy5mb250U3R5bGUsXG5cdFx0XHR0ZXh0VHJhbnNmb3JtOiBhdHRyaWJ1dGVzLnRleHRUcmFuc2Zvcm0sXG5cdFx0XHRsaW5lSGVpZ2h0OiBhdHRyaWJ1dGVzLmxpbmVIZWlnaHQgJiYgYCR7IGF0dHJpYnV0ZXMubGluZUhlaWdodCB9cHhgXG5cdFx0fTtcblxuXHRcdGNvbnN0IGJ1dHRvbiA9IGkgPT4ge1xuXHRcdFx0Y29uc3QgYnV0dG9uU3R5bGUgPSB7XG5cdFx0XHRcdC4uLnN0eWxlLFxuXHRcdFx0XHRib3JkZXJXaWR0aDogYCR7IGF0dHJpYnV0ZXMuZGF0YVtpXS5ib3JkZXJTaXplIH1weGAsXG5cdFx0XHRcdGJvcmRlclJhZGl1czogYCR7IGF0dHJpYnV0ZXMuZGF0YVtpXS5ib3JkZXJSYWRpdXMgfXB4YCxcblx0XHRcdFx0cGFkZGluZzogYCR7IGF0dHJpYnV0ZXMuZGF0YVtpXS5wYWRkaW5nVG9wQm90dG9tIH1weCAkeyBhdHRyaWJ1dGVzLmRhdGFbaV0ucGFkZGluZ0xlZnRSaWdodCB9cHhgXG5cdFx0XHR9O1xuXG5cdFx0XHRyZXR1cm4gKFxuXHRcdFx0XHQ8RnJhZ21lbnQ+XG5cdFx0XHRcdFx0PGFcblx0XHRcdFx0XHRcdGhyZWY9eyBhdHRyaWJ1dGVzLmRhdGFbaV0ubGluayB9XG5cdFx0XHRcdFx0XHR0YXJnZXQ9eyBhdHRyaWJ1dGVzLmRhdGFbaV0ubmV3VGFiID8gJ19ibGFuaycgOiAnX3NlbGYnIH1cblx0XHRcdFx0XHRcdGNsYXNzTmFtZT17IGNsYXNzbmFtZXMoXG5cdFx0XHRcdFx0XHRcdCd3cC1ibG9jay10aGVtZWlzbGUtYmxvY2tzLWJ1dHRvbicsXG5cdFx0XHRcdFx0XHRcdGB3cC1ibG9jay10aGVtZWlzbGUtYmxvY2tzLWJ1dHRvbi0keyBpIH1gXG5cdFx0XHRcdFx0XHQpIH1cblx0XHRcdFx0XHRcdHN0eWxlPXsgYnV0dG9uU3R5bGUgfVxuXHRcdFx0XHRcdFx0cmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiXG5cdFx0XHRcdFx0PlxuXHRcdFx0XHRcdFx0eyAoICdsZWZ0JyA9PT0gYXR0cmlidXRlcy5kYXRhW2ldLmljb25UeXBlIHx8ICdvbmx5JyA9PT0gYXR0cmlidXRlcy5kYXRhW2ldLmljb25UeXBlICkgJiYgKFxuXHRcdFx0XHRcdFx0XHQ8aSBjbGFzc05hbWU9eyBjbGFzc25hbWVzKFxuXHRcdFx0XHRcdFx0XHRcdGF0dHJpYnV0ZXMuZGF0YVtpXS5wcmVmaXgsXG5cdFx0XHRcdFx0XHRcdFx0J2ZhLWZ3Jyxcblx0XHRcdFx0XHRcdFx0XHRgZmEtJHsgYXR0cmlidXRlcy5kYXRhW2ldLmljb24gfWAsXG5cdFx0XHRcdFx0XHRcdFx0eyAnbWFyZ2luLXJpZ2h0JzogJ2xlZnQnID09PSBhdHRyaWJ1dGVzLmRhdGFbaV0uaWNvblR5cGUgfVxuXHRcdFx0XHRcdFx0XHQpIH0+XG5cdFx0XHRcdFx0XHRcdDwvaT5cblx0XHRcdFx0XHRcdCkgfVxuXG5cdFx0XHRcdFx0XHR7ICdvbmx5JyAhPT0gYXR0cmlidXRlcy5kYXRhW2ldLmljb25UeXBlICYmIChcblx0XHRcdFx0XHRcdFx0PFJpY2hUZXh0LkNvbnRlbnRcblx0XHRcdFx0XHRcdFx0XHR0YWdOYW1lPVwic3BhblwiXG5cdFx0XHRcdFx0XHRcdFx0dmFsdWU9eyBhdHRyaWJ1dGVzLmRhdGFbaV0udGV4dCB9XG5cdFx0XHRcdFx0XHRcdC8+XG5cdFx0XHRcdFx0XHQpIH1cblxuXHRcdFx0XHRcdFx0eyAncmlnaHQnID09PSBhdHRyaWJ1dGVzLmRhdGFbaV0uaWNvblR5cGUgJiYgKFxuXHRcdFx0XHRcdFx0XHQ8aSBjbGFzc05hbWU9eyBgJHsgYXR0cmlidXRlcy5kYXRhW2ldLnByZWZpeCB9IGZhLWZ3IGZhLSR7IGF0dHJpYnV0ZXMuZGF0YVtpXS5pY29uIH0gbWFyZ2luLWxlZnRgIH0+PC9pPlxuXHRcdFx0XHRcdFx0KSB9XG5cdFx0XHRcdFx0PC9hPlxuXHRcdFx0XHQ8L0ZyYWdtZW50PlxuXHRcdFx0KTtcblx0XHR9O1xuXG5cdFx0cmV0dXJuIChcblx0XHRcdDxkaXZcblx0XHRcdFx0aWQ9eyBhdHRyaWJ1dGVzLmlkIH1cblx0XHRcdFx0Y2xhc3NOYW1lPXsgY2xhc3NuYW1lcyhcblx0XHRcdFx0XHRjbGFzc05hbWUsXG5cdFx0XHRcdFx0Y29sbGFwc2VDbGFzc1xuXHRcdFx0XHQpIH1cblx0XHRcdFx0c3R5bGU9eyB7XG5cdFx0XHRcdFx0anVzdGlmeUNvbnRlbnQ6IGF0dHJpYnV0ZXMuYWxpZ24sXG5cdFx0XHRcdFx0YWxpZ25JdGVtczogYXR0cmlidXRlcy5hbGlnbiA/IGF0dHJpYnV0ZXMuYWxpZ24gOiAnZmxleC1zdGFydCdcblx0XHRcdFx0fSB9XG5cdFx0XHQ+XG5cdFx0XHRcdHsgdGltZXMoIGF0dHJpYnV0ZXMuYnV0dG9ucywgaSA9PiBidXR0b24oIGkgKSApIH1cblx0XHRcdDwvZGl2PlxuXHRcdCk7XG5cdH1cbn0sIHtcblx0YXR0cmlidXRlczoge1xuXHRcdC4uLmF0dHJpYnV0ZXMsXG5cdFx0Zm9udFNpemU6IHtcblx0XHRcdHR5cGU6ICdudW1iZXInXG5cdFx0fSxcblx0XHRmb250U3R5bGU6IHtcblx0XHRcdHR5cGU6ICdzdHJpbmcnXG5cdFx0fSxcblx0XHRkYXRhOiB7XG5cdFx0XHR0eXBlOiAnYXJyYXknLFxuXHRcdFx0ZGVmYXVsdDogW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0dGV4dDogJycsXG5cdFx0XHRcdFx0bGluazogJycsXG5cdFx0XHRcdFx0bmV3VGFiOiBmYWxzZSxcblx0XHRcdFx0XHRjb2xvcjogJycsXG5cdFx0XHRcdFx0YmFja2dyb3VuZDogJycsXG5cdFx0XHRcdFx0Ym9yZGVyOiAnJyxcblx0XHRcdFx0XHRob3ZlckNvbG9yOiAnJyxcblx0XHRcdFx0XHRob3ZlckJhY2tncm91bmQ6ICcnLFxuXHRcdFx0XHRcdGhvdmVyQm9yZGVyOiAnJyxcblx0XHRcdFx0XHRib3JkZXJTaXplOiAnJyxcblx0XHRcdFx0XHRib3JkZXJSYWRpdXM6ICcnLFxuXHRcdFx0XHRcdGJveFNoYWRvdzogZmFsc2UsXG5cdFx0XHRcdFx0Ym94U2hhZG93Q29sb3I6ICcnLFxuXHRcdFx0XHRcdGJveFNoYWRvd0NvbG9yT3BhY2l0eTogNTAsXG5cdFx0XHRcdFx0Ym94U2hhZG93Qmx1cjogNSxcblx0XHRcdFx0XHRib3hTaGFkb3dTcHJlYWQ6IDEsXG5cdFx0XHRcdFx0Ym94U2hhZG93SG9yaXpvbnRhbDogMCxcblx0XHRcdFx0XHRib3hTaGFkb3dWZXJ0aWNhbDogMCxcblx0XHRcdFx0XHRob3ZlckJveFNoYWRvd0NvbG9yOiAnJyxcblx0XHRcdFx0XHRob3ZlckJveFNoYWRvd0NvbG9yT3BhY2l0eTogNTAsXG5cdFx0XHRcdFx0aG92ZXJCb3hTaGFkb3dCbHVyOiA1LFxuXHRcdFx0XHRcdGhvdmVyQm94U2hhZG93U3ByZWFkOiAxLFxuXHRcdFx0XHRcdGhvdmVyQm94U2hhZG93SG9yaXpvbnRhbDogMCxcblx0XHRcdFx0XHRob3ZlckJveFNoYWRvd1ZlcnRpY2FsOiAwLFxuXHRcdFx0XHRcdGljb25UeXBlOiAnbm9uZScsXG5cdFx0XHRcdFx0cHJlZml4OiAnJyxcblx0XHRcdFx0XHRpY29uOiAnJyxcblx0XHRcdFx0XHRwYWRkaW5nVG9wQm90dG9tOiAnJyxcblx0XHRcdFx0XHRwYWRkaW5nTGVmdFJpZ2h0OiAnJ1xuXHRcdFx0XHR9LFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0dGV4dDogJycsXG5cdFx0XHRcdFx0bGluazogJycsXG5cdFx0XHRcdFx0bmV3VGFiOiBmYWxzZSxcblx0XHRcdFx0XHRjb2xvcjogJycsXG5cdFx0XHRcdFx0YmFja2dyb3VuZDogJycsXG5cdFx0XHRcdFx0Ym9yZGVyOiAnJyxcblx0XHRcdFx0XHRob3ZlckNvbG9yOiAnJyxcblx0XHRcdFx0XHRob3ZlckJhY2tncm91bmQ6ICcnLFxuXHRcdFx0XHRcdGhvdmVyQm9yZGVyOiAnJyxcblx0XHRcdFx0XHRib3JkZXJTaXplOiAnJyxcblx0XHRcdFx0XHRib3JkZXJSYWRpdXM6ICcnLFxuXHRcdFx0XHRcdGJveFNoYWRvdzogZmFsc2UsXG5cdFx0XHRcdFx0Ym94U2hhZG93Q29sb3I6ICcnLFxuXHRcdFx0XHRcdGJveFNoYWRvd0NvbG9yT3BhY2l0eTogNTAsXG5cdFx0XHRcdFx0Ym94U2hhZG93Qmx1cjogNSxcblx0XHRcdFx0XHRib3hTaGFkb3dTcHJlYWQ6IDEsXG5cdFx0XHRcdFx0Ym94U2hhZG93SG9yaXpvbnRhbDogMCxcblx0XHRcdFx0XHRib3hTaGFkb3dWZXJ0aWNhbDogMCxcblx0XHRcdFx0XHRob3ZlckJveFNoYWRvd0NvbG9yOiAnJyxcblx0XHRcdFx0XHRob3ZlckJveFNoYWRvd0NvbG9yT3BhY2l0eTogNTAsXG5cdFx0XHRcdFx0aG92ZXJCb3hTaGFkb3dCbHVyOiA1LFxuXHRcdFx0XHRcdGhvdmVyQm94U2hhZG93U3ByZWFkOiAxLFxuXHRcdFx0XHRcdGhvdmVyQm94U2hhZG93SG9yaXpvbnRhbDogMCxcblx0XHRcdFx0XHRob3ZlckJveFNoYWRvd1ZlcnRpY2FsOiAwLFxuXHRcdFx0XHRcdGljb25UeXBlOiAnbm9uZScsXG5cdFx0XHRcdFx0cHJlZml4OiAnJyxcblx0XHRcdFx0XHRpY29uOiAnJyxcblx0XHRcdFx0XHRwYWRkaW5nVG9wQm90dG9tOiAnJyxcblx0XHRcdFx0XHRwYWRkaW5nTGVmdFJpZ2h0OiAnJ1xuXHRcdFx0XHR9XG5cdFx0XHRdXG5cdFx0fVxuXHR9LFxuXG5cdG1pZ3JhdGU6ICggb2xkQXR0cmlidXRlcywgaW5uZXJCbG9ja3MgKSA9PiB7XG5cdFx0bGV0IGFsaWduLCBwYWRkaW5nLCBibG9ja3M7XG5cblx0XHRpZiAoICdmbGV4LXN0YXJ0JyA9PT0gb2xkQXR0cmlidXRlcy5hbGlnbiApIHtcblx0XHRcdGFsaWduID0gJ2xlZnQnO1xuXHRcdH1cblxuXHRcdGlmICggJ2NlbnRlcicgPT09IG9sZEF0dHJpYnV0ZXMuYWxpZ24gKSB7XG5cdFx0XHRhbGlnbiA9ICdjZW50ZXInO1xuXHRcdH1cblxuXHRcdGlmICggJ2ZsZXgtZW5kJyA9PT0gb2xkQXR0cmlidXRlcy5hbGlnbiApIHtcblx0XHRcdGFsaWduID0gJ3JpZ2h0Jztcblx0XHR9XG5cblx0XHRpZiAoIG9sZEF0dHJpYnV0ZXMuZGF0YSApIHtcblx0XHRcdHBhZGRpbmcgPSBwaWNrKFxuXHRcdFx0XHRvbGRBdHRyaWJ1dGVzLmRhdGFbMF0sXG5cdFx0XHRcdFtcblx0XHRcdFx0XHQncGFkZGluZ0xlZnRSaWdodCcsXG5cdFx0XHRcdFx0J3BhZGRpbmdUb3BCb3R0b20nXG5cdFx0XHRcdF1cblx0XHRcdCk7XG5cblx0XHRcdGlmICggMSA8PSBPYmplY3Qua2V5cyggcGFkZGluZyApLmxlbmd0aCApIHtcblx0XHRcdFx0cGFkZGluZyA9IHBpY2soXG5cdFx0XHRcdFx0cGFkZGluZyxcblx0XHRcdFx0XHRPYmplY3Qua2V5cyggcGFkZGluZyApLmZpbHRlciggaSA9PiAnJyAhPT0gcGFkZGluZ1tpXSlcblx0XHRcdFx0KTtcblx0XHRcdH1cblxuXHRcdFx0YmxvY2tzID0gb2xkQXR0cmlidXRlcy5kYXRhXG5cdFx0XHRcdC5maWx0ZXIoICggYmxvY2ssIGkgKSA9PiBpIDwgb2xkQXR0cmlidXRlcy5idXR0b25zIClcblx0XHRcdFx0Lm1hcCggYmxvY2sgPT4ge1xuXHRcdFx0XHRcdGNvbnN0IGF0dHMgPSBvbWl0KFxuXHRcdFx0XHRcdFx0YmxvY2ssXG5cdFx0XHRcdFx0XHRbXG5cdFx0XHRcdFx0XHRcdCdwYWRkaW5nTGVmdFJpZ2h0Jyxcblx0XHRcdFx0XHRcdFx0J3BhZGRpbmdUb3BCb3R0b20nXG5cdFx0XHRcdFx0XHRdXG5cdFx0XHRcdFx0KTtcblxuXHRcdFx0XHRcdHJldHVybiBjcmVhdGVCbG9jayggJ3RoZW1laXNsZS1ibG9ja3MvYnV0dG9uJywge1xuXHRcdFx0XHRcdFx0Li4uYXR0c1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9KTtcblx0XHR9XG5cblx0XHRjb25zdCBhdHRyaWJ1dGVzID0ge1xuXHRcdFx0Li4ub21pdChcblx0XHRcdFx0b2xkQXR0cmlidXRlcyxcblx0XHRcdFx0W1xuXHRcdFx0XHRcdCdidXR0b25zJyxcblx0XHRcdFx0XHQnZGF0YSdcblx0XHRcdFx0XVxuXHRcdFx0KSxcblx0XHRcdGFsaWduLFxuXHRcdFx0Li4ucGFkZGluZ1xuXHRcdH07XG5cblx0XHRyZXR1cm4gW1xuXHRcdFx0YXR0cmlidXRlcyxcblx0XHRcdFtcblx0XHRcdFx0Li4uYmxvY2tzLFxuXHRcdFx0XHQuLi5pbm5lckJsb2Nrc1xuXHRcdFx0XVxuXHRcdF07XG5cdH0sXG5cblx0c2F2ZTogKHtcblx0XHRhdHRyaWJ1dGVzLFxuXHRcdGNsYXNzTmFtZVxuXHR9KSA9PiB7XG5cdFx0Y29uc3QgY29sbGFwc2VDbGFzcyA9ICdjb2xsYXBzZS1ub25lJyAhPT0gYXR0cmlidXRlcy5jb2xsYXBzZSA/IGF0dHJpYnV0ZXMuY29sbGFwc2UgOiAnJztcblxuXHRcdGNvbnN0IGJ1dHRvbiA9IGkgPT4ge1xuXHRcdFx0cmV0dXJuIChcblx0XHRcdFx0PGFcblx0XHRcdFx0XHRocmVmPXsgYXR0cmlidXRlcy5kYXRhW2ldLmxpbmsgfVxuXHRcdFx0XHRcdHRhcmdldD17IGF0dHJpYnV0ZXMuZGF0YVtpXS5uZXdUYWIgPyAnX2JsYW5rJyA6ICdfc2VsZicgfVxuXHRcdFx0XHRcdGNsYXNzTmFtZT17IGNsYXNzbmFtZXMoXG5cdFx0XHRcdFx0XHQnd3AtYmxvY2stdGhlbWVpc2xlLWJsb2Nrcy1idXR0b24nLFxuXHRcdFx0XHRcdFx0YHdwLWJsb2NrLXRoZW1laXNsZS1ibG9ja3MtYnV0dG9uLSR7IGkgfWAsXG5cdFx0XHRcdFx0XHQnd3AtYmxvY2stYnV0dG9uX19saW5rJ1xuXHRcdFx0XHRcdCkgfVxuXHRcdFx0XHRcdHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIlxuXHRcdFx0XHQ+XG5cdFx0XHRcdFx0eyAoICdsZWZ0JyA9PT0gYXR0cmlidXRlcy5kYXRhW2ldLmljb25UeXBlIHx8ICdvbmx5JyA9PT0gYXR0cmlidXRlcy5kYXRhW2ldLmljb25UeXBlICkgJiYgKFxuXHRcdFx0XHRcdFx0PGkgY2xhc3NOYW1lPXsgY2xhc3NuYW1lcyhcblx0XHRcdFx0XHRcdFx0YXR0cmlidXRlcy5kYXRhW2ldLnByZWZpeCxcblx0XHRcdFx0XHRcdFx0J2ZhLWZ3Jyxcblx0XHRcdFx0XHRcdFx0YGZhLSR7IGF0dHJpYnV0ZXMuZGF0YVtpXS5pY29uIH1gLFxuXHRcdFx0XHRcdFx0XHR7ICdtYXJnaW4tcmlnaHQnOiAnbGVmdCcgPT09IGF0dHJpYnV0ZXMuZGF0YVtpXS5pY29uVHlwZSB9XG5cdFx0XHRcdFx0XHQpIH0+XG5cdFx0XHRcdFx0XHQ8L2k+XG5cdFx0XHRcdFx0KSB9XG5cblx0XHRcdFx0XHR7ICdvbmx5JyAhPT0gYXR0cmlidXRlcy5kYXRhW2ldLmljb25UeXBlICYmIChcblx0XHRcdFx0XHRcdDxSaWNoVGV4dC5Db250ZW50XG5cdFx0XHRcdFx0XHRcdHRhZ05hbWU9XCJzcGFuXCJcblx0XHRcdFx0XHRcdFx0dmFsdWU9eyBhdHRyaWJ1dGVzLmRhdGFbaV0udGV4dCB9XG5cdFx0XHRcdFx0XHQvPlxuXHRcdFx0XHRcdCkgfVxuXG5cdFx0XHRcdFx0eyAncmlnaHQnID09PSBhdHRyaWJ1dGVzLmRhdGFbaV0uaWNvblR5cGUgJiYgKFxuXHRcdFx0XHRcdFx0PGkgY2xhc3NOYW1lPXsgYCR7IGF0dHJpYnV0ZXMuZGF0YVtpXS5wcmVmaXggfSBmYS1mdyBmYS0keyBhdHRyaWJ1dGVzLmRhdGFbaV0uaWNvbiB9IG1hcmdpbi1sZWZ0YCB9PjwvaT5cblx0XHRcdFx0XHQpIH1cblx0XHRcdFx0PC9hPlxuXHRcdFx0KTtcblx0XHR9O1xuXG5cdFx0cmV0dXJuIChcblx0XHRcdDxkaXZcblx0XHRcdFx0aWQ9eyBhdHRyaWJ1dGVzLmlkIH1cblx0XHRcdFx0Y2xhc3NOYW1lPXsgY2xhc3NuYW1lcyhcblx0XHRcdFx0XHRjbGFzc05hbWUsXG5cdFx0XHRcdFx0Y29sbGFwc2VDbGFzcyxcblx0XHRcdFx0XHQnd3AtYmxvY2stYnV0dG9uJ1xuXHRcdFx0XHQpIH1cblx0XHRcdD5cblx0XHRcdFx0eyB0aW1lcyggYXR0cmlidXRlcy5idXR0b25zLCBpID0+IGJ1dHRvbiggaSApICkgfVxuXHRcdFx0PC9kaXY+XG5cdFx0KTtcblx0fVxufSBdO1xuXG5leHBvcnQgZGVmYXVsdCBkZXByZWNhdGVkO1xuIiwiLyoqXG4gKiBFeHRlcm5hbCBkZXBlbmRlbmNpZXMuXG4gKi9cbmltcG9ydCB7XG5cdGFsaWduQ2VudGVyLFxuXHRhbGlnbkxlZnQsXG5cdGFsaWduUmlnaHRcbn0gZnJvbSAnQHdvcmRwcmVzcy9pY29ucyc7XG5cbi8qKlxuICogV29yZFByZXNzIGRlcGVuZGVuY2llcy5cbiAqL1xuaW1wb3J0IHsgX18gfSBmcm9tICdAd29yZHByZXNzL2kxOG4nO1xuXG5pbXBvcnQge1xuXHRBbGlnbm1lbnRUb29sYmFyLFxuXHRCbG9ja0NvbnRyb2xzXG59IGZyb20gJ0B3b3JkcHJlc3MvYmxvY2stZWRpdG9yJztcblxuY29uc3QgQ29udHJvbHMgPSAoe1xuXHRhdHRyaWJ1dGVzLFxuXHRzZXRBdHRyaWJ1dGVzXG59KSA9PiB7XG5cdHJldHVybiAoXG5cdFx0PEJsb2NrQ29udHJvbHM+XG5cdFx0XHQ8QWxpZ25tZW50VG9vbGJhclxuXHRcdFx0XHR2YWx1ZT17IGF0dHJpYnV0ZXMuYWxpZ24gfVxuXHRcdFx0XHRvbkNoYW5nZT17IGUgPT4gc2V0QXR0cmlidXRlcyh7IGFsaWduOiBlIH0pIH1cblx0XHRcdFx0YWxpZ25tZW50Q29udHJvbHM9eyBbXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0aWNvbjogYWxpZ25MZWZ0LFxuXHRcdFx0XHRcdFx0dGl0bGU6IF9fKCAnQWxpZ24gbGVmdCcsICdvdHRlci1ibG9ja3MnICksXG5cdFx0XHRcdFx0XHRhbGlnbjogJ2xlZnQnXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRpY29uOiBhbGlnbkNlbnRlcixcblx0XHRcdFx0XHRcdHRpdGxlOiBfXyggJ0FsaWduIGNlbnRlcicsICdvdHRlci1ibG9ja3MnICksXG5cdFx0XHRcdFx0XHRhbGlnbjogJ2NlbnRlcidcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdGljb246IGFsaWduUmlnaHQsXG5cdFx0XHRcdFx0XHR0aXRsZTogX18oICdBbGlnbiByaWdodCcsICdvdHRlci1ibG9ja3MnICksXG5cdFx0XHRcdFx0XHRhbGlnbjogJ3JpZ2h0J1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XSB9XG5cdFx0XHQvPlxuXHRcdDwvQmxvY2tDb250cm9scz5cblx0KTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IENvbnRyb2xzO1xuIiwiLyoqXG4gKiBXb3JkUHJlc3MgZGVwZW5kZW5jaWVzLlxuICovXG5pbXBvcnQgeyBfXyB9IGZyb20gJ0B3b3JkcHJlc3MvaTE4bic7XG5cbmltcG9ydCB7IEluc3BlY3RvckNvbnRyb2xzIH0gZnJvbSAnQHdvcmRwcmVzcy9ibG9jay1lZGl0b3InO1xuXG5pbXBvcnQge1xuXHRQYW5lbEJvZHksXG5cdFJhbmdlQ29udHJvbCxcblx0U2VsZWN0Q29udHJvbFxufSBmcm9tICdAd29yZHByZXNzL2NvbXBvbmVudHMnO1xuXG4vKipcbiAqIEludGVybmFsIGRlcGVuZGVuY2llc1xuICovXG5pbXBvcnQgR29vZ2xlRm9udHNDb250cm9sIGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvZ29vZ2xlLWZvbnRzLWNvbnRyb2wvaW5kZXguanMnO1xuaW1wb3J0IFNpemluZ0NvbnRyb2wgZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9zaXppbmctY29udHJvbC9pbmRleC5qcyc7XG5cbmNvbnN0IEluc3BlY3RvciA9ICh7XG5cdGF0dHJpYnV0ZXMsXG5cdHNldEF0dHJpYnV0ZXNcbn0pID0+IHtcblx0Y29uc3QgY2hhbmdlRm9udEZhbWlseSA9IHZhbHVlID0+IHtcblx0XHRpZiAoICEgdmFsdWUgKSB7XG5cdFx0XHRzZXRBdHRyaWJ1dGVzKHtcblx0XHRcdFx0Zm9udEZhbWlseTogdW5kZWZpbmVkLFxuXHRcdFx0XHRmb250VmFyaWFudDogdW5kZWZpbmVkLFxuXHRcdFx0XHRmb250U3R5bGU6IHVuZGVmaW5lZFxuXHRcdFx0fSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHNldEF0dHJpYnV0ZXMoe1xuXHRcdFx0XHRmb250RmFtaWx5OiB2YWx1ZSxcblx0XHRcdFx0Zm9udFZhcmlhbnQ6ICdub3JtYWwnLFxuXHRcdFx0XHRmb250U3R5bGU6ICdub3JtYWwnXG5cdFx0XHR9KTtcblx0XHR9XG5cdH07XG5cblx0Y29uc3QgY2hhbmdlUGFkZGluZyA9ICggdHlwZSwgdmFsdWUgKSA9PiB7XG5cdFx0aWYgKCAndG9wJyA9PT0gdHlwZSB8fCAnYm90dG9tJyA9PT0gdHlwZSApIHtcblx0XHRcdHNldEF0dHJpYnV0ZXMoeyBwYWRkaW5nVG9wQm90dG9tOiB2YWx1ZSB9KTtcblx0XHR9XG5cblx0XHRpZiAoICdyaWdodCcgPT09IHR5cGUgfHwgJ2xlZnQnID09PSB0eXBlICkge1xuXHRcdFx0c2V0QXR0cmlidXRlcyh7IHBhZGRpbmdMZWZ0UmlnaHQ6IHZhbHVlIH0pO1xuXHRcdH1cblx0fTtcblxuXHRyZXR1cm4gKFxuXHRcdDxJbnNwZWN0b3JDb250cm9scz5cblx0XHRcdDxQYW5lbEJvZHlcblx0XHRcdFx0dGl0bGU9eyBfXyggJ1NwYWNpbmcnLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdD5cblx0XHRcdFx0PFNpemluZ0NvbnRyb2xcblx0XHRcdFx0XHRsYWJlbD17IF9fKCAnUGFkZGluZycsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHRcdG1pbj17IDAgfVxuXHRcdFx0XHRcdG1heD17IDEwMCB9XG5cdFx0XHRcdFx0b25DaGFuZ2U9eyBjaGFuZ2VQYWRkaW5nIH1cblx0XHRcdFx0XHRvcHRpb25zPXsgW1xuXHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRsYWJlbDogX18oICdUb3AnLCAnb3R0ZXItYmxvY2tzJyApLFxuXHRcdFx0XHRcdFx0XHR0eXBlOiAndG9wJyxcblx0XHRcdFx0XHRcdFx0dmFsdWU6IGF0dHJpYnV0ZXMucGFkZGluZ1RvcEJvdHRvbVxuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0bGFiZWw6IF9fKCAnUmlnaHQnLCAnb3R0ZXItYmxvY2tzJyApLFxuXHRcdFx0XHRcdFx0XHR0eXBlOiAncmlnaHQnLFxuXHRcdFx0XHRcdFx0XHR2YWx1ZTogYXR0cmlidXRlcy5wYWRkaW5nTGVmdFJpZ2h0XG5cdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRsYWJlbDogX18oICdCb3R0b20nLCAnb3R0ZXItYmxvY2tzJyApLFxuXHRcdFx0XHRcdFx0XHR0eXBlOiAnYm90dG9tJyxcblx0XHRcdFx0XHRcdFx0dmFsdWU6IGF0dHJpYnV0ZXMucGFkZGluZ1RvcEJvdHRvbVxuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0bGFiZWw6IF9fKCAnTGVmdCcsICdvdHRlci1ibG9ja3MnICksXG5cdFx0XHRcdFx0XHRcdHR5cGU6ICdsZWZ0Jyxcblx0XHRcdFx0XHRcdFx0dmFsdWU6IGF0dHJpYnV0ZXMucGFkZGluZ0xlZnRSaWdodFxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdF0gfVxuXHRcdFx0XHQvPlxuXG5cdFx0XHRcdDxSYW5nZUNvbnRyb2xcblx0XHRcdFx0XHRsYWJlbD17IF9fKCAnU3BhY2luZycsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHRcdHZhbHVlPXsgYXR0cmlidXRlcy5zcGFjaW5nIH1cblx0XHRcdFx0XHRvbkNoYW5nZT17IGUgPT4gc2V0QXR0cmlidXRlcyh7IHNwYWNpbmc6IGUgfSkgfVxuXHRcdFx0XHRcdG1pbj17IDAgfVxuXHRcdFx0XHRcdG1heD17IDUwIH1cblx0XHRcdFx0Lz5cblxuXHRcdFx0XHQ8U2VsZWN0Q29udHJvbFxuXHRcdFx0XHRcdGxhYmVsPXsgX18oICdDb2xsYXBzZSBPbicsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHRcdHZhbHVlPXsgYXR0cmlidXRlcy5jb2xsYXBzZSB9XG5cdFx0XHRcdFx0b3B0aW9ucz17IFtcblx0XHRcdFx0XHRcdHsgbGFiZWw6IF9fKCAnTm9uZScsICdvdHRlci1ibG9ja3MnICksIHZhbHVlOiAnY29sbGFwc2Utbm9uZScgfSxcblx0XHRcdFx0XHRcdHsgbGFiZWw6IF9fKCAnRGVza3RvcCcsICdvdHRlci1ibG9ja3MnICksIHZhbHVlOiAnY29sbGFwc2UtZGVza3RvcCcgfSxcblx0XHRcdFx0XHRcdHsgbGFiZWw6IF9fKCAnVGFibGV0JywgJ290dGVyLWJsb2NrcycgKSwgdmFsdWU6ICdjb2xsYXBzZS10YWJsZXQnIH0sXG5cdFx0XHRcdFx0XHR7IGxhYmVsOiBfXyggJ01vYmlsZScsICdvdHRlci1ibG9ja3MnICksIHZhbHVlOiAnY29sbGFwc2UtbW9iaWxlJyB9XG5cdFx0XHRcdFx0XSB9XG5cdFx0XHRcdFx0b25DaGFuZ2U9eyBlID0+IHNldEF0dHJpYnV0ZXMoeyBjb2xsYXBzZTogZSB9KSB9XG5cdFx0XHRcdC8+XG5cdFx0XHQ8L1BhbmVsQm9keT5cblxuXHRcdFx0PFBhbmVsQm9keVxuXHRcdFx0XHR0aXRsZT17IF9fKCAnVHlwb2dyYXBoeSBTZXR0aW5ncycsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHRpbml0aWFsT3Blbj17IGZhbHNlIH1cblx0XHRcdD5cblx0XHRcdFx0PFJhbmdlQ29udHJvbFxuXHRcdFx0XHRcdGxhYmVsPXsgX18oICdGb250IFNpemUnLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdFx0XHR2YWx1ZT17IGF0dHJpYnV0ZXMuZm9udFNpemUgfVxuXHRcdFx0XHRcdG9uQ2hhbmdlPXsgZSA9PiBzZXRBdHRyaWJ1dGVzKHsgZm9udFNpemU6IGUgfSkgfVxuXHRcdFx0XHRcdG1pbj17IDAgfVxuXHRcdFx0XHRcdG1heD17IDUwIH1cblx0XHRcdFx0Lz5cblxuXHRcdFx0XHQ8R29vZ2xlRm9udHNDb250cm9sXG5cdFx0XHRcdFx0bGFiZWw9eyBfXyggJ0ZvbnQgRmFtaWx5JywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdFx0dmFsdWU9eyBhdHRyaWJ1dGVzLmZvbnRGYW1pbHkgfVxuXHRcdFx0XHRcdG9uQ2hhbmdlRm9udEZhbWlseT17IGNoYW5nZUZvbnRGYW1pbHkgfVxuXHRcdFx0XHRcdHZhbHVlVmFyaWFudD17IGF0dHJpYnV0ZXMuZm9udFZhcmlhbnQgfVxuXHRcdFx0XHRcdG9uQ2hhbmdlRm9udFZhcmlhbnQ9eyBlID0+IHNldEF0dHJpYnV0ZXMoeyBmb250VmFyaWFudDogZSB9KSB9XG5cdFx0XHRcdFx0dmFsdWVTdHlsZT17IGF0dHJpYnV0ZXMuZm9udFN0eWxlIH1cblx0XHRcdFx0XHRvbkNoYW5nZUZvbnRTdHlsZT17IGUgPT4gc2V0QXR0cmlidXRlcyh7IGZvbnRTdHlsZTogZSB9KSB9XG5cdFx0XHRcdFx0dmFsdWVUcmFuc2Zvcm09eyBhdHRyaWJ1dGVzLnRleHRUcmFuc2Zvcm0gfVxuXHRcdFx0XHRcdG9uQ2hhbmdlVGV4dFRyYW5zZm9ybT17IGUgPT4gc2V0QXR0cmlidXRlcyh7IHRleHRUcmFuc2Zvcm06IGUgfSkgfVxuXHRcdFx0XHQvPlxuXG5cdFx0XHRcdDxSYW5nZUNvbnRyb2xcblx0XHRcdFx0XHRsYWJlbD17IF9fKCAnTGluZSBIZWlnaHQnLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdFx0XHR2YWx1ZT17IGF0dHJpYnV0ZXMubGluZUhlaWdodCB9XG5cdFx0XHRcdFx0b25DaGFuZ2U9eyBlID0+IHNldEF0dHJpYnV0ZXMoeyBsaW5lSGVpZ2h0OiBlIH0pIH1cblx0XHRcdFx0XHRtaW49eyAwIH1cblx0XHRcdFx0XHRtYXg9eyAyMDAgfVxuXHRcdFx0XHQvPlxuXHRcdFx0PC9QYW5lbEJvZHk+XG5cdFx0PC9JbnNwZWN0b3JDb250cm9scz5cblx0KTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEluc3BlY3RvcjtcbiIsIi8qKlxuICogRXh0ZXJuYWwgZGVwZW5kZW5jaWVzXG4gKi9cbmltcG9ydCBjbGFzc25hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IEdvb2dsZUZvbnRMb2FkZXIgZnJvbSAncmVhY3QtZ29vZ2xlLWZvbnQtbG9hZGVyJztcblxuLyoqXG4gKiBXb3JkUHJlc3MgZGVwZW5kZW5jaWVzLlxuICovXG5pbXBvcnQgeyBJbm5lckJsb2NrcyB9IGZyb20gJ0B3b3JkcHJlc3MvYmxvY2stZWRpdG9yJztcblxuaW1wb3J0IHsgdXNlVmlld3BvcnRNYXRjaCB9IGZyb20gJ0B3b3JkcHJlc3MvY29tcG9zZSc7XG5cbmltcG9ydCB7IHVzZVNlbGVjdCB9IGZyb20gJ0B3b3JkcHJlc3MvZGF0YSc7XG5cbmltcG9ydCB7XG5cdEZyYWdtZW50LFxuXHR1c2VFZmZlY3Rcbn0gZnJvbSAnQHdvcmRwcmVzcy9lbGVtZW50JztcblxuLyoqXG4gKiBJbnRlcm5hbCBkZXBlbmRlbmNpZXNcbiAqL1xuaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4vYXR0cmlidXRlcy5qcyc7XG5pbXBvcnQgQ29udHJvbHMgZnJvbSAnLi9jb250cm9scy5qcyc7XG5pbXBvcnQgSW5zcGVjdG9yIGZyb20gJy4vaW5zcGVjdG9yLmpzJztcbmltcG9ydCB7IGJsb2NrSW5pdCB9IGZyb20gJy4uLy4uLy4uL2hlbHBlcnMvYmxvY2stdXRpbGl0eS5qcyc7XG5cbmNvbnN0IEVkaXQgPSAoe1xuXHRhdHRyaWJ1dGVzLFxuXHRzZXRBdHRyaWJ1dGVzLFxuXHRjbGFzc05hbWUsXG5cdGNsaWVudElkXG59KSA9PiB7XG5cdGNvbnN0IHtcblx0XHRpc1ZpZXdwb3J0QXZhaWxhYmxlLFxuXHRcdGlzUHJldmlld0Rlc2t0b3AsXG5cdFx0aXNQcmV2aWV3VGFibGV0LFxuXHRcdGlzUHJldmlld01vYmlsZVxuXHR9ID0gdXNlU2VsZWN0KCBzZWxlY3QgPT4ge1xuXHRcdGNvbnN0IHsgX19leHBlcmltZW50YWxHZXRQcmV2aWV3RGV2aWNlVHlwZSB9ID0gc2VsZWN0KCAnY29yZS9lZGl0LXBvc3QnICkgPyBzZWxlY3QoICdjb3JlL2VkaXQtcG9zdCcgKSA6IGZhbHNlO1xuXG5cdFx0cmV0dXJuIHtcblx0XHRcdGlzVmlld3BvcnRBdmFpbGFibGU6IF9fZXhwZXJpbWVudGFsR2V0UHJldmlld0RldmljZVR5cGUgPyB0cnVlIDogZmFsc2UsXG5cdFx0XHRpc1ByZXZpZXdEZXNrdG9wOiBfX2V4cGVyaW1lbnRhbEdldFByZXZpZXdEZXZpY2VUeXBlID8gJ0Rlc2t0b3AnID09PSBfX2V4cGVyaW1lbnRhbEdldFByZXZpZXdEZXZpY2VUeXBlKCkgOiBmYWxzZSxcblx0XHRcdGlzUHJldmlld1RhYmxldDogX19leHBlcmltZW50YWxHZXRQcmV2aWV3RGV2aWNlVHlwZSA/ICdUYWJsZXQnID09PSBfX2V4cGVyaW1lbnRhbEdldFByZXZpZXdEZXZpY2VUeXBlKCkgOiBmYWxzZSxcblx0XHRcdGlzUHJldmlld01vYmlsZTogX19leHBlcmltZW50YWxHZXRQcmV2aWV3RGV2aWNlVHlwZSA/ICdNb2JpbGUnID09PSBfX2V4cGVyaW1lbnRhbEdldFByZXZpZXdEZXZpY2VUeXBlKCkgOiBmYWxzZVxuXHRcdH07XG5cdH0sIFsgYXR0cmlidXRlcy5pZCBdKTtcblxuXHRjb25zdCBpc0xhcmdlciA9IHVzZVZpZXdwb3J0TWF0Y2goICdsYXJnZScsICc+PScgKTtcblxuXHRjb25zdCBpc0xhcmdlID0gdXNlVmlld3BvcnRNYXRjaCggJ2xhcmdlJywgJzw9JyApO1xuXG5cdGNvbnN0IGlzU21hbGwgPSB1c2VWaWV3cG9ydE1hdGNoKCAnc21hbGwnLCAnPj0nICk7XG5cblx0Y29uc3QgaXNTbWFsbGVyID0gdXNlVmlld3BvcnRNYXRjaCggJ3NtYWxsJywgJzw9JyApO1xuXG5cdHVzZUVmZmVjdCggKCkgPT4ge1xuXHRcdGNvbnN0IHVuc3Vic2NyaWJlID0gYmxvY2tJbml0KCBjbGllbnRJZCwgZGVmYXVsdEF0dHJpYnV0ZXMgKTtcblx0XHRyZXR1cm4gKCkgPT4gdW5zdWJzY3JpYmUoIGF0dHJpYnV0ZXMuaWQgKTtcblx0fSwgW10pO1xuXG5cdGxldCBpc0Rlc2t0b3AgPSBpc0xhcmdlciAmJiAhIGlzTGFyZ2UgJiYgaXNTbWFsbCAmJiAhIGlzU21hbGxlcjtcblxuXHRsZXQgaXNUYWJsZXQgPSAhIGlzTGFyZ2VyICYmICEgaXNMYXJnZSAmJiBpc1NtYWxsICYmICEgaXNTbWFsbGVyO1xuXG5cdGxldCBpc01vYmlsZSA9ICEgaXNMYXJnZXIgJiYgISBpc0xhcmdlICYmICEgaXNTbWFsbCAmJiAhIGlzU21hbGxlcjtcblxuXHRpZiAoIGlzVmlld3BvcnRBdmFpbGFibGUgJiYgISBpc01vYmlsZSApIHtcblx0XHRpc0Rlc2t0b3AgPSBpc1ByZXZpZXdEZXNrdG9wO1xuXHRcdGlzVGFibGV0ID0gaXNQcmV2aWV3VGFibGV0O1xuXHRcdGlzTW9iaWxlID0gaXNQcmV2aWV3TW9iaWxlO1xuXHR9XG5cblx0cmV0dXJuIChcblx0XHQ8RnJhZ21lbnQ+XG5cdFx0XHR7IGF0dHJpYnV0ZXMuZm9udEZhbWlseSAmJiAoXG5cdFx0XHRcdDxHb29nbGVGb250TG9hZGVyIGZvbnRzPXsgWyB7XG5cdFx0XHRcdFx0Zm9udDogYXR0cmlidXRlcy5mb250RmFtaWx5LFxuXHRcdFx0XHRcdHdlaWdodHM6IGF0dHJpYnV0ZXMuZm9udFZhcmlhbnQgJiYgWyBgJHsgYXR0cmlidXRlcy5mb250VmFyaWFudCArICggJ2l0YWxpYycgPT09IGF0dHJpYnV0ZXMuZm9udFN0eWxlID8gJzppJyA6ICcnICkgfWAgXVxuXHRcdFx0XHR9IF0gfSAvPlxuXHRcdFx0KSB9XG5cblx0XHRcdDxDb250cm9sc1xuXHRcdFx0XHRhdHRyaWJ1dGVzPXsgYXR0cmlidXRlcyB9XG5cdFx0XHRcdHNldEF0dHJpYnV0ZXM9eyBzZXRBdHRyaWJ1dGVzIH1cblx0XHRcdC8+XG5cblx0XHRcdDxJbnNwZWN0b3Jcblx0XHRcdFx0YXR0cmlidXRlcz17IGF0dHJpYnV0ZXMgfVxuXHRcdFx0XHRzZXRBdHRyaWJ1dGVzPXsgc2V0QXR0cmlidXRlcyB9XG5cdFx0XHQvPlxuXG5cdFx0XHQ8ZGl2XG5cdFx0XHRcdGlkPXsgYXR0cmlidXRlcy5pZCB9XG5cdFx0XHRcdGNsYXNzTmFtZT17IGNsYXNzbmFtZXMoXG5cdFx0XHRcdFx0Y2xhc3NOYW1lLFxuXHRcdFx0XHRcdCd3cC1ibG9jay1idXR0b25zJyxcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRbIGBhbGlnbi0keyBhdHRyaWJ1dGVzLmFsaWduIH1gIF06IGF0dHJpYnV0ZXMuYWxpZ24sXG5cdFx0XHRcdFx0XHQnY29sbGFwc2UnOiAoICdjb2xsYXBzZS1kZXNrdG9wJyA9PT0gYXR0cmlidXRlcy5jb2xsYXBzZSAmJiAoIGlzRGVza3RvcCB8fCBpc1RhYmxldCB8fCBpc01vYmlsZSApICkgfHwgKCAnY29sbGFwc2UtdGFibGV0JyA9PT0gYXR0cmlidXRlcy5jb2xsYXBzZSAmJiAoIGlzVGFibGV0IHx8IGlzTW9iaWxlICkgKSB8fCAoICdjb2xsYXBzZS1tb2JpbGUnID09PSBhdHRyaWJ1dGVzLmNvbGxhcHNlICYmIGlzTW9iaWxlIClcblx0XHRcdFx0XHR9XG5cdFx0XHRcdCkgfVxuXHRcdFx0PlxuXHRcdFx0XHQ8SW5uZXJCbG9ja3Ncblx0XHRcdFx0XHRhbGxvd2VkQmxvY2tzPXsgWyAndGhlbWVpc2xlLWJsb2Nrcy9idXR0b24nIF0gfVxuXHRcdFx0XHRcdF9fZXhwZXJpbWVudGFsTW92ZXJEaXJlY3Rpb249XCJob3Jpem9udGFsXCJcblx0XHRcdFx0XHRvcmllbnRhdGlvbj1cImhvcml6b250YWxcIlxuXHRcdFx0XHRcdHRlbXBsYXRlPXsgWyBbICd0aGVtZWlzbGUtYmxvY2tzL2J1dHRvbicgXSBdIH1cblx0XHRcdFx0XHRyZW5kZXJBcHBlbmRlcj17IElubmVyQmxvY2tzLkRlZmF1bHRBcHBlbmRlciB9XG5cdFx0XHRcdC8+XG5cdFx0XHQ8L2Rpdj5cblx0XHQ8L0ZyYWdtZW50PlxuXHQpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgRWRpdDtcbiIsIi8qKlxuICogRXh0ZXJuYWwgZGVwZW5kZW5jaWVzXG4gKi9cbmltcG9ydCBjbGFzc25hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuXG4vKipcbiAqIFdvcmRQcmVzcyBkZXBlbmRlbmNpZXMuXG4gKi9cbmltcG9ydCB7IElubmVyQmxvY2tzIH0gZnJvbSAnQHdvcmRwcmVzcy9ibG9jay1lZGl0b3InO1xuXG5jb25zdCBTYXZlID0gKHtcblx0YXR0cmlidXRlcyxcblx0Y2xhc3NOYW1lXG59KSA9PiB7XG5cdGNvbnN0IGNvbGxhcHNlQ2xhc3MgPSAnY29sbGFwc2Utbm9uZScgIT09IGF0dHJpYnV0ZXMuY29sbGFwc2UgPyBhdHRyaWJ1dGVzLmNvbGxhcHNlIDogJyc7XG5cblx0cmV0dXJuIChcblx0XHQ8ZGl2XG5cdFx0XHRpZD17IGF0dHJpYnV0ZXMuaWQgfVxuXHRcdFx0Y2xhc3NOYW1lPXsgY2xhc3NuYW1lcyhcblx0XHRcdFx0Y2xhc3NOYW1lLFxuXHRcdFx0XHRjb2xsYXBzZUNsYXNzLFxuXHRcdFx0XHQnd3AtYmxvY2stYnV0dG9ucycsXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRbIGBhbGlnbi0keyBhdHRyaWJ1dGVzLmFsaWduIH1gIF06IGF0dHJpYnV0ZXMuYWxpZ25cblx0XHRcdFx0fVxuXHRcdFx0KSB9XG5cdFx0PlxuXHRcdFx0PElubmVyQmxvY2tzLkNvbnRlbnQgLz5cblx0XHQ8L2Rpdj5cblx0KTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFNhdmU7XG4iLCIvKipcbiAqIFdvcmRQcmVzcyBkZXBlbmRlbmNpZXMuXG4gKi9cbmltcG9ydCB7IF9fIH0gZnJvbSAnQHdvcmRwcmVzcy9pMThuJztcblxuaW1wb3J0IHsgcmVnaXN0ZXJCbG9ja1R5cGUgfSBmcm9tICdAd29yZHByZXNzL2Jsb2Nrcyc7XG5cbi8qKlxuICogSW50ZXJuYWwgZGVwZW5kZW5jaWVzXG4gKi9cbmltcG9ydCB7IGJ1dHRvbnNJY29uIGFzIGljb24gfSBmcm9tICcuLi8uLi8uLi9oZWxwZXJzL2ljb25zLmpzJztcbmltcG9ydCBhdHRyaWJ1dGVzIGZyb20gJy4vYXR0cmlidXRlcy5qcyc7XG5pbXBvcnQgZGVwcmVjYXRlZCBmcm9tICcuL2RlcHJlY2F0ZWQuanMnO1xuaW1wb3J0IGVkaXQgZnJvbSAnLi9lZGl0LmpzJztcbmltcG9ydCBzYXZlIGZyb20gJy4vc2F2ZS5qcyc7XG5cbnJlZ2lzdGVyQmxvY2tUeXBlKCAndGhlbWVpc2xlLWJsb2Nrcy9idXR0b24tZ3JvdXAnLCB7XG5cdHRpdGxlOiBfXyggJ0J1dHRvbiBHcm91cCcsICdvdHRlci1ibG9ja3MnICksXG5cdGRlc2NyaXB0aW9uOiBfXyggJ1Byb21wdCB2aXNpdG9ycyB0byB0YWtlIGFjdGlvbiB3aXRoIGEgYnV0dG9uIGdyb3VwLicsICdvdHRlci1ibG9ja3MnICksXG5cdGljb24sXG5cdGNhdGVnb3J5OiAndGhlbWVpc2xlLWJsb2NrcycsXG5cdGtleXdvcmRzOiBbXG5cdFx0J2J1dHRvbicsXG5cdFx0J2J1dHRvbnMnLFxuXHRcdCdidXR0b24gZ3JvdXAnXG5cdF0sXG5cdGF0dHJpYnV0ZXMsXG5cdGRlcHJlY2F0ZWQsXG5cdGVkaXQsXG5cdHNhdmVcbn0pO1xuIl0sIm5hbWVzIjpbImF0dHJpYnV0ZXMiLCJpZCIsInR5cGUiLCJhbGlnbiIsInNwYWNpbmciLCJkZWZhdWx0IiwicGFkZGluZ1RvcEJvdHRvbSIsInBhZGRpbmdMZWZ0UmlnaHQiLCJjb2xsYXBzZSIsImZvbnRTaXplIiwiZm9udEZhbWlseSIsImZvbnRWYXJpYW50IiwidGV4dFRyYW5zZm9ybSIsImZvbnRTdHlsZSIsImxpbmVIZWlnaHQiLCJjbGFzc25hbWVzIiwib21pdCIsInBpY2siLCJ0aW1lcyIsImNyZWF0ZUJsb2NrIiwiUmljaFRleHQiLCJGcmFnbWVudCIsImJ1dHRvbnMiLCJkYXRhIiwidGV4dCIsImxpbmsiLCJuZXdUYWIiLCJjb2xvciIsImJhY2tncm91bmQiLCJib3JkZXIiLCJob3ZlckNvbG9yIiwiaG92ZXJCYWNrZ3JvdW5kIiwiaG92ZXJCb3JkZXIiLCJib3JkZXJTaXplIiwiYm9yZGVyUmFkaXVzIiwiYm94U2hhZG93IiwiYm94U2hhZG93Q29sb3IiLCJib3hTaGFkb3dDb2xvck9wYWNpdHkiLCJib3hTaGFkb3dCbHVyIiwiYm94U2hhZG93U3ByZWFkIiwiYm94U2hhZG93SG9yaXpvbnRhbCIsImJveFNoYWRvd1ZlcnRpY2FsIiwiaG92ZXJCb3hTaGFkb3dDb2xvciIsImhvdmVyQm94U2hhZG93Q29sb3JPcGFjaXR5IiwiaG92ZXJCb3hTaGFkb3dCbHVyIiwiaG92ZXJCb3hTaGFkb3dTcHJlYWQiLCJob3ZlckJveFNoYWRvd0hvcml6b250YWwiLCJob3ZlckJveFNoYWRvd1ZlcnRpY2FsIiwiaWNvblR5cGUiLCJwcmVmaXgiLCJpY29uIiwiZGVwcmVjYXRlZCIsInNhdmUiLCJjbGFzc05hbWUiLCJjb2xsYXBzZUNsYXNzIiwic3R5bGUiLCJmb250V2VpZ2h0IiwiYnV0dG9uIiwiaSIsImJ1dHRvblN0eWxlIiwiYm9yZGVyV2lkdGgiLCJwYWRkaW5nIiwianVzdGlmeUNvbnRlbnQiLCJhbGlnbkl0ZW1zIiwibWlncmF0ZSIsIm9sZEF0dHJpYnV0ZXMiLCJpbm5lckJsb2NrcyIsImJsb2NrcyIsIk9iamVjdCIsImtleXMiLCJsZW5ndGgiLCJmaWx0ZXIiLCJibG9jayIsIm1hcCIsImF0dHMiLCJhbGlnbkNlbnRlciIsImFsaWduTGVmdCIsImFsaWduUmlnaHQiLCJfXyIsIkFsaWdubWVudFRvb2xiYXIiLCJCbG9ja0NvbnRyb2xzIiwiQ29udHJvbHMiLCJzZXRBdHRyaWJ1dGVzIiwiZSIsInRpdGxlIiwiSW5zcGVjdG9yQ29udHJvbHMiLCJQYW5lbEJvZHkiLCJSYW5nZUNvbnRyb2wiLCJTZWxlY3RDb250cm9sIiwiR29vZ2xlRm9udHNDb250cm9sIiwiU2l6aW5nQ29udHJvbCIsIkluc3BlY3RvciIsImNoYW5nZUZvbnRGYW1pbHkiLCJ2YWx1ZSIsInVuZGVmaW5lZCIsImNoYW5nZVBhZGRpbmciLCJsYWJlbCIsIkdvb2dsZUZvbnRMb2FkZXIiLCJJbm5lckJsb2NrcyIsInVzZVZpZXdwb3J0TWF0Y2giLCJ1c2VTZWxlY3QiLCJ1c2VFZmZlY3QiLCJkZWZhdWx0QXR0cmlidXRlcyIsImJsb2NrSW5pdCIsIkVkaXQiLCJjbGllbnRJZCIsImlzVmlld3BvcnRBdmFpbGFibGUiLCJpc1ByZXZpZXdEZXNrdG9wIiwiaXNQcmV2aWV3VGFibGV0IiwiaXNQcmV2aWV3TW9iaWxlIiwic2VsZWN0IiwiX19leHBlcmltZW50YWxHZXRQcmV2aWV3RGV2aWNlVHlwZSIsImlzTGFyZ2VyIiwiaXNMYXJnZSIsImlzU21hbGwiLCJpc1NtYWxsZXIiLCJ1bnN1YnNjcmliZSIsImlzRGVza3RvcCIsImlzVGFibGV0IiwiaXNNb2JpbGUiLCJmb250Iiwid2VpZ2h0cyIsIkRlZmF1bHRBcHBlbmRlciIsIlNhdmUiLCJyZWdpc3RlckJsb2NrVHlwZSIsImJ1dHRvbnNJY29uIiwiZWRpdCIsImRlc2NyaXB0aW9uIiwiY2F0ZWdvcnkiLCJrZXl3b3JkcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///2756\n")},3312:function(__unused_webpack_module,__unused_webpack___webpack_exports__,__webpack_require__){eval("/* harmony import */ var _group_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2756);\n/* harmony import */ var _button_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3986);\n/**\n * Internal dependencies\n */\n\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMzMxMi5qcyIsIm1hcHBpbmdzIjoiOztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL290dGVyLWJsb2Nrcy8uL3NyYy9ibG9ja3MvYmxvY2tzL2J1dHRvbi1ncm91cC9pbmRleC5qcz8wNjBiIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogSW50ZXJuYWwgZGVwZW5kZW5jaWVzXG4gKi9cbmltcG9ydCAnLi9lZGl0b3Iuc2Nzcyc7XG5pbXBvcnQgJy4vc3R5bGUuc2Nzcyc7XG5pbXBvcnQgJy4vZ3JvdXAvaW5kZXguanMnO1xuaW1wb3J0ICcuL2J1dHRvbi9pbmRleC5qcyc7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///3312\n")},1941:function(__unused_webpack_module,__unused_webpack___webpack_exports__,__webpack_require__){eval("\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/rotate-right.js\nvar rotate_right = __webpack_require__(269);\n// EXTERNAL MODULE: external [\"wp\",\"i18n\"]\nvar external_wp_i18n_ = __webpack_require__(5736);\n// EXTERNAL MODULE: external [\"wp\",\"blocks\"]\nvar external_wp_blocks_ = __webpack_require__(4981);\n;// CONCATENATED MODULE: ./src/blocks/blocks/circle-counter/attributes.js\n/**\n * WordPress dependencies\n */\n\nconst attributes = {\n id: {\n type: 'string'\n },\n title: {\n type: 'string',\n default: (0,external_wp_i18n_.__)('Skill', 'otter-blocks')\n },\n percentage: {\n type: 'number',\n default: 50\n },\n duration: {\n type: 'number',\n default: 2\n },\n titleStyle: {\n type: 'string',\n default: 'default'\n },\n height: {\n type: 'number',\n default: 100\n },\n fontSizeTitle: {\n type: 'number'\n },\n fontSizePercent: {\n type: 'number'\n },\n strokeWidth: {\n type: 'number',\n default: 10\n },\n backgroundColor: {\n type: 'string'\n },\n progressColor: {\n type: 'string'\n },\n titleColor: {\n type: 'string'\n }\n};\n/* harmony default export */ var circle_counter_attributes = (attributes);\n// EXTERNAL MODULE: external [\"wp\",\"element\"]\nvar external_wp_element_ = __webpack_require__(9307);\n// EXTERNAL MODULE: ./node_modules/classnames/index.js\nvar classnames = __webpack_require__(4184);\nvar classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);\n// EXTERNAL MODULE: external \"lodash\"\nvar external_lodash_ = __webpack_require__(2819);\n// EXTERNAL MODULE: external [\"wp\",\"components\"]\nvar external_wp_components_ = __webpack_require__(5609);\n// EXTERNAL MODULE: external [\"wp\",\"blockEditor\"]\nvar external_wp_blockEditor_ = __webpack_require__(2175);\n;// CONCATENATED MODULE: ./src/blocks/blocks/circle-counter/inspector.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\nconst Inspector = ({\n attributes,\n setAttributes,\n onHeightChange\n}) => {\n const onPercentageChange = value => {\n if (value === undefined) {\n return;\n }\n\n value = (0,external_lodash_.clamp)(value, 0, 100);\n setAttributes({\n percentage: value\n });\n };\n\n const selectTitleStyle = value => {\n setAttributes({\n titleStyle: value\n });\n };\n\n const onStrokeWidthChange = value => {\n setAttributes({\n strokeWidth: value\n });\n };\n\n const onBackgroundColorChange = value => {\n setAttributes({\n backgroundColor: value\n });\n };\n\n const onProgressColorChange = value => {\n setAttributes({\n progressColor: value\n });\n };\n\n const onDurationChange = value => {\n if (value === undefined) {\n return;\n }\n\n value = (0,external_lodash_.clamp)(value, 0, 3);\n setAttributes({\n duration: value\n });\n };\n\n const onTitleColorChange = value => {\n setAttributes({\n titleColor: value\n });\n };\n\n const onFontSizePercentChange = value => {\n setAttributes({\n fontSizePercent: value\n });\n };\n\n const onFontSizeTitleChange = value => {\n setAttributes({\n fontSizeTitle: value\n });\n };\n\n return (0,external_wp_element_.createElement)(external_wp_blockEditor_.InspectorControls, null, (0,external_wp_element_.createElement)(external_wp_components_.PanelBody, {\n title: (0,external_wp_i18n_.__)('Settings', 'otter-blocks'),\n initialOpen: true\n }, (0,external_wp_element_.createElement)(external_wp_components_.RangeControl, {\n label: (0,external_wp_i18n_.__)('Percentage', 'otter-blocks'),\n help: (0,external_wp_i18n_.__)('The value of the counter.', 'otter-blocks'),\n value: attributes.percentage,\n onChange: onPercentageChange,\n min: 0,\n max: 100\n }), (0,external_wp_element_.createElement)(external_wp_components_.RangeControl, {\n label: (0,external_wp_i18n_.__)('Duration', 'otter-blocks'),\n help: (0,external_wp_i18n_.__)('The duration of the animation.', 'otter-blocks'),\n value: attributes.duration,\n onChange: onDurationChange,\n min: 0,\n max: 3,\n step: 0.1\n }), (0,external_wp_element_.createElement)(external_wp_components_.SelectControl, {\n label: (0,external_wp_i18n_.__)('Title Style', 'otter-blocks'),\n value: attributes.titleStyle,\n options: [{\n label: (0,external_wp_i18n_.__)('Default', 'otter-blocks'),\n value: 'default'\n }, {\n label: (0,external_wp_i18n_.__)('Hide', 'otter-blocks'),\n value: 'hide'\n }, {\n label: (0,external_wp_i18n_.__)('Bottom', 'otter-blocks'),\n value: 'bottom'\n }],\n onChange: selectTitleStyle\n })), (0,external_wp_element_.createElement)(external_wp_components_.PanelBody, {\n title: (0,external_wp_i18n_.__)('Style', 'otter-blocks')\n }, (0,external_wp_element_.createElement)(external_wp_components_.RangeControl, {\n label: (0,external_wp_i18n_.__)('Height', 'otter-blocks'),\n help: (0,external_wp_i18n_.__)('The height of the circle counter.', 'otter-blocks'),\n value: attributes.height,\n onChange: onHeightChange,\n min: 0,\n max: 240\n }), (0,external_wp_element_.createElement)(external_wp_components_.RangeControl, {\n label: (0,external_wp_i18n_.__)('Circle Thickness', 'otter-blocks'),\n help: (0,external_wp_i18n_.__)('Change the thickness (stroke width) of the circle.', 'otter-blocks'),\n value: attributes.strokeWidth,\n onChange: onStrokeWidthChange,\n initialPosition: 10,\n min: 0,\n max: 20\n }), (0,external_wp_element_.createElement)(external_wp_components_.RangeControl, {\n label: (0,external_wp_i18n_.__)('Font Size Title', 'otter-blocks'),\n help: (0,external_wp_i18n_.__)('Change the font size of the title.', 'otter-blocks'),\n value: attributes.fontSizeTitle,\n onChange: onFontSizeTitleChange,\n initialPosition: 37,\n min: 0,\n max: Math.round(attributes.height * 0.60)\n }), (0,external_wp_element_.createElement)(external_wp_components_.RangeControl, {\n label: (0,external_wp_i18n_.__)('Font Size Percent', 'otter-blocks'),\n help: (0,external_wp_i18n_.__)('Change the font size of the inner text.', 'otter-blocks'),\n value: attributes.fontSizePercent,\n onChange: onFontSizePercentChange,\n initialPosition: 27,\n min: 0,\n max: Math.round(attributes.height * 0.27)\n }), 'hide' !== attributes.titleStyle && (0,external_wp_element_.createElement)(external_wp_blockEditor_.__experimentalColorGradientControl, {\n label: (0,external_wp_i18n_.__)('Title Color', 'otter-blocks'),\n colorValue: attributes.titleColor,\n onColorChange: onTitleColorChange\n }), (0,external_wp_element_.createElement)(external_wp_blockEditor_.__experimentalColorGradientControl, {\n label: (0,external_wp_i18n_.__)('Progress Color', 'otter-blocks'),\n colorValue: attributes.progressColor,\n onColorChange: onProgressColorChange\n }), (0,external_wp_element_.createElement)(external_wp_blockEditor_.__experimentalColorGradientControl, {\n label: (0,external_wp_i18n_.__)('Background Color', 'otter-blocks'),\n colorValue: attributes.backgroundColor,\n onColorChange: onBackgroundColorChange\n })));\n};\n\n/* harmony default export */ var inspector = (Inspector);\n;// CONCATENATED MODULE: ./src/blocks/blocks/circle-counter/components/CircleCounter.js\n\n\nconst CircularProgressBar = ({\n attributes,\n progressRef,\n valueRef\n}) => {\n const size = attributes.height;\n const center = size / 2;\n const radius = size / 2 - attributes.strokeWidth / 2;\n const circumference = 2 * Math.PI * radius;\n\n if (0 > radius) {\n return (0,external_wp_element_.createElement)(\"div\", null);\n }\n\n return (0,external_wp_element_.createElement)(\"div\", {\n className: \"wp-block-themeisle-blocks-circle-counter__bar\",\n style: {\n height: size + 'px',\n width: size + 'px'\n }\n }, (0,external_wp_element_.createElement)(\"svg\", {\n className: \"wp-block-themeisle-blocks-circle-counter-container\",\n width: size,\n height: size\n }, (0,external_wp_element_.createElement)(\"circle\", {\n className: \"wp-block-themeisle-blocks-circle-counter-bg\",\n cx: center,\n cy: center,\n r: radius,\n strokeWidth: attributes.strokeWidth,\n style: {\n stroke: attributes.backgroundColor\n }\n }), (0,external_wp_element_.createElement)(\"circle\", {\n ref: progressRef,\n className: \"wp-block-themeisle-blocks-circle-counter-progress\",\n cx: center,\n cy: center,\n r: radius,\n strokeWidth: attributes.strokeWidth,\n strokeDasharray: circumference,\n style: {\n stroke: attributes.progressColor\n }\n }), (0,external_wp_element_.createElement)(\"text\", {\n ref: valueRef,\n className: \"wp-block-themeisle-blocks-circle-counter-text\",\n x: \"50%\",\n y: \"50%\",\n style: {\n fill: attributes.progressColor,\n fontSize: attributes.fontSizePercent + 'px'\n }\n }, attributes.percentage, \"%\")));\n};\n\n/* harmony default export */ var CircleCounter = (CircularProgressBar);\n// EXTERNAL MODULE: ./src/blocks/helpers/block-utility.js\nvar block_utility = __webpack_require__(5225);\n;// CONCATENATED MODULE: ./src/blocks/blocks/circle-counter/edit.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\nconst CircularProgressBarBlock = ({\n clientId,\n attributes,\n setAttributes,\n isSelected,\n toggleSelection,\n className\n}) => {\n (0,external_wp_element_.useEffect)(() => {\n const unsubscribe = (0,block_utility/* blockInit */.WX)(clientId, circle_counter_attributes);\n return () => unsubscribe(attributes.id);\n }, [attributes.id]);\n const progressRef = (0,external_wp_element_.useRef)(null);\n const valueRef = (0,external_wp_element_.useRef)(null);\n const [interval, changeInterval] = (0,external_wp_element_.useState)({});\n const center = attributes.height / 2;\n const radius = center - attributes.strokeWidth / 2;\n const circumference = 2 * Math.PI * radius;\n (0,external_wp_element_.useEffect)(() => {\n if (!progressRef.current || !progressRef.current || 0 === attributes.duration) {\n return;\n }\n\n const step = 20; // miliseconds\n\n const ratio = attributes.percentage / (attributes.duration * 1000);\n const percentageValues = (0,external_lodash_.range)(0, attributes.duration * 1000 + step, step).map(x => x * ratio).reverse();\n\n if (interval) {\n clearInterval(interval);\n }\n\n progressRef.current.style.strokeDashoffset = circumference;\n valueRef.current.innerText = '0%';\n const interv = setInterval(() => {\n if (!progressRef.current) {\n clearInterval(interv);\n return;\n }\n\n const percentage = Math.round(percentageValues.pop());\n progressRef.current.style.strokeDashoffset = (100 - percentage) / 100 * circumference;\n valueRef.current.innerHTML = percentage + '%';\n\n if (0 === percentageValues.length) {\n clearInterval(interv);\n }\n }, step);\n changeInterval(interv);\n }, [attributes.duration]);\n (0,external_wp_element_.useEffect)(() => {\n if (!progressRef.current || !progressRef.current) {\n return;\n }\n\n progressRef.current.style.strokeDashoffset = (100 - attributes.percentage) / 100 * circumference;\n valueRef.current.innerHTML = attributes.percentage + '%';\n clearInterval(interval);\n }, [attributes.percentage, attributes.height]);\n\n const onHeightChange = value => {\n const innerTextFontSizeRatio = (attributes.fontSizePercent || 27) / attributes.height;\n const titleFontSizeRatio = (attributes.fontSizeTitle || 37) / attributes.height;\n setAttributes({\n height: value,\n fontSizePercent: Math.round(value * innerTextFontSizeRatio),\n fontSizeTitle: Math.round(value * titleFontSizeRatio)\n });\n };\n\n const onTitleChange = value => {\n setAttributes({\n title: value\n });\n };\n\n return (0,external_wp_element_.createElement)(external_wp_element_.Fragment, null, (0,external_wp_element_.createElement)(inspector, {\n attributes: attributes,\n setAttributes: setAttributes,\n onHeightChange: onHeightChange\n }), (0,external_wp_element_.createElement)(\"div\", {\n className: classnames_default()(className),\n id: attributes.id\n }, 'default' === attributes.titleStyle && (0,external_wp_element_.createElement)(\"div\", {\n className: \"wp-block-themeisle-blocks-circle-counter-title__area\"\n }, (0,external_wp_element_.createElement)(external_wp_blockEditor_.RichText, {\n tagName: \"span\",\n allowedFormats: [],\n className: \"wp-block-themeisle-blocks-circle-counter-title__value\",\n placeholder: isSelected ? (0,external_wp_i18n_.__)('Write caption…', 'otter-blocks') : null,\n value: attributes.title,\n onChange: onTitleChange,\n multiline: false,\n style: {\n color: attributes.titleColor,\n fontSize: attributes.fontSizeTitle + 'px'\n }\n })), (0,external_wp_element_.createElement)(external_wp_components_.ResizableBox, {\n size: {\n height: attributes.height,\n width: attributes.height\n },\n minHeight: 0,\n maxHeight: 240,\n enable: {\n top: false,\n right: false,\n bottom: true,\n left: false\n },\n showHandle: isSelected,\n onResizeStop: (event, direction, elt, delta) => {\n onHeightChange(parseInt(attributes.height + delta.height, 10));\n toggleSelection(true);\n },\n onResizeStart: () => {\n toggleSelection(false);\n }\n }, (0,external_wp_element_.createElement)(CircleCounter, {\n attributes: attributes,\n progressRef: progressRef,\n valueRef: valueRef\n })), 'bottom' === attributes.titleStyle && (0,external_wp_element_.createElement)(\"div\", {\n className: \"wp-block-themeisle-blocks-circle-counter-title__area\"\n }, (0,external_wp_element_.createElement)(external_wp_blockEditor_.RichText, {\n tagName: \"span\",\n allowedFormats: [],\n className: \"wp-block-themeisle-blocks-circle-counter-title__value\",\n placeholder: isSelected ? (0,external_wp_i18n_.__)('Write caption…', 'otter-blocks') : null,\n value: attributes.title,\n onChange: onTitleChange,\n multiline: false,\n style: {\n color: attributes.titleColor,\n fontSize: attributes.fontSizeTitle + 'px'\n }\n }))));\n};\n\n/* harmony default export */ var edit = (CircularProgressBarBlock);\n;// CONCATENATED MODULE: ./src/blocks/blocks/circle-counter/save.js\n\n\nconst Save = ({\n attributes,\n className\n}) => {\n return (0,external_wp_element_.createElement)(\"div\", {\n className: className,\n id: attributes.id,\n \"data-percentage\": attributes.percentage,\n \"data-duration\": attributes.duration,\n \"data-height\": attributes.height,\n \"data-stroke-width\": attributes.strokeWidth,\n \"data-font-size-percent\": attributes.fontSizePercent,\n \"data-background-stroke\": attributes.backgroundColor,\n \"data-progress-stroke\": attributes.progressColor\n }, 'default' === attributes.titleStyle && (0,external_wp_element_.createElement)(\"div\", {\n className: \"wp-block-themeisle-blocks-circle-counter-title__area\"\n }, (0,external_wp_element_.createElement)(\"span\", {\n className: \"wp-block-themeisle-blocks-circle-counter-title__value\"\n }, attributes.title)), (0,external_wp_element_.createElement)(\"div\", {\n className: \"wp-block-themeisle-blocks-circle-counter__bar\"\n }), 'bottom' === attributes.titleStyle && (0,external_wp_element_.createElement)(\"div\", {\n className: \"wp-block-themeisle-blocks-circle-counter-title__area\"\n }, (0,external_wp_element_.createElement)(\"span\", {\n className: \"wp-block-themeisle-blocks-circle-counter-title__value\"\n }, attributes.title)));\n};\n\n/* harmony default export */ var save = (Save);\n;// CONCATENATED MODULE: ./src/blocks/blocks/circle-counter/transforms.js\n/**\n * WordPress dependencies\n */\n\nconst {\n clamp,\n omit\n} = lodash;\nconst transform = {\n to: [{\n type: 'block',\n blocks: ['themeisle-blocks/progress-bar'],\n transform: attributes => {\n const commonProps = omit(attributes, ['titleStyle', 'height', 'fontSize', 'strokeWidth', 'progressColor']);\n return (0,external_wp_blocks_.createBlock)('themeisle-blocks/progress-bar', { ...commonProps,\n barBackgroundColor: attributes.progressColor,\n height: clamp(attributes.height / 4, 0, 100),\n titleStyle: 'default'\n });\n }\n }]\n};\n/* harmony default export */ var transforms = (transform);\n;// CONCATENATED MODULE: ./src/blocks/blocks/circle-counter/index.js\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\n\n(0,external_wp_blocks_.registerBlockType)('themeisle-blocks/circle-counter', {\n title: (0,external_wp_i18n_.__)('Circle Counter', 'otter-blocks'),\n description: (0,external_wp_i18n_.__)('Show your progress with a beautiful Circle Counter block.', 'otter-blocks'),\n icon: rotate_right/* default */.Z,\n category: 'themeisle-blocks',\n keywords: ['progress', 'circle', 'counter'],\n attributes: circle_counter_attributes,\n transforms: transforms,\n edit: edit,\n save: save\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFjLENBQUUsWUFBRixFQUFnQixRQUFoQixFQUEwQixVQUExQixFQUFzQyxhQUF0QyxFQUFxRCxlQUFyRCxDQUFkLENBQXhCO0FBRUEsYUFBT21HLG1DQUFXLENBQUUsK0JBQUYsRUFBbUMsRUFDcEQsR0FBR00sV0FEaUQ7QUFFcERDLFFBQUFBLGtCQUFrQixFQUFFMUcsVUFBVSxDQUFDYSxhQUZxQjtBQUdwREwsUUFBQUEsTUFBTSxFQUFFTyxLQUFLLENBQUVmLFVBQVUsQ0FBQ1EsTUFBWCxHQUFvQixDQUF0QixFQUF5QixDQUF6QixFQUE0QixHQUE1QixDQUh1QztBQUlwREQsUUFBQUEsVUFBVSxFQUFFO0FBSndDLE9BQW5DLENBQWxCO0FBTUE7QUFaRixHQURHO0FBRGEsQ0FBbEI7QUFtQkEsK0NBQWUrRixTQUFmLEU7O0FDN0JBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBOztBQUNBO0FBRUE7QUFFQTtBQUNBO0FBQ0E7O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUFPLHlDQUFpQixDQUFFLGlDQUFGLEVBQXFDO0FBQ3JEMUcsRUFBQUEsS0FBSyxFQUFFSix3QkFBRSxDQUFFLGdCQUFGLEVBQW9CLGNBQXBCLENBRDRDO0FBRXJEa0gsRUFBQUEsV0FBVyxFQUFFbEgsd0JBQUUsQ0FBRSwyREFBRixFQUErRCxjQUEvRCxDQUZzQztBQUdyRDZHLEVBQUFBLElBSHFEO0FBSXJETSxFQUFBQSxRQUFRLEVBQUUsa0JBSjJDO0FBS3JEQyxFQUFBQSxRQUFRLEVBQUUsQ0FDVCxVQURTLEVBRVQsUUFGUyxFQUdULFNBSFMsQ0FMMkM7QUFVckRuSCxFQUFBQSxVQVZxRDtBQVdyRGdILEVBQUFBLFVBWHFEO0FBWXJERixFQUFBQSxJQVpxRDtBQWFyREMsRUFBQUEsSUFBSUEsRUFBQUEsSUFBQUE7QUFiaUQsQ0FBckMsQ0FBakIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9vdHRlci1ibG9ja3MvLi9zcmMvYmxvY2tzL2Jsb2Nrcy9jaXJjbGUtY291bnRlci9hdHRyaWJ1dGVzLmpzP2RmMDIiLCJ3ZWJwYWNrOi8vb3R0ZXItYmxvY2tzLy4vc3JjL2Jsb2Nrcy9ibG9ja3MvY2lyY2xlLWNvdW50ZXIvaW5zcGVjdG9yLmpzPzlmZWEiLCJ3ZWJwYWNrOi8vb3R0ZXItYmxvY2tzLy4vc3JjL2Jsb2Nrcy9ibG9ja3MvY2lyY2xlLWNvdW50ZXIvY29tcG9uZW50cy9DaXJjbGVDb3VudGVyLmpzP2ExNmEiLCJ3ZWJwYWNrOi8vb3R0ZXItYmxvY2tzLy4vc3JjL2Jsb2Nrcy9ibG9ja3MvY2lyY2xlLWNvdW50ZXIvZWRpdC5qcz85Y2ZjIiwid2VicGFjazovL290dGVyLWJsb2Nrcy8uL3NyYy9ibG9ja3MvYmxvY2tzL2NpcmNsZS1jb3VudGVyL3NhdmUuanM/MDNjYyIsIndlYnBhY2s6Ly9vdHRlci1ibG9ja3MvLi9zcmMvYmxvY2tzL2Jsb2Nrcy9jaXJjbGUtY291bnRlci90cmFuc2Zvcm1zLmpzPzA3MzkiLCJ3ZWJwYWNrOi8vb3R0ZXItYmxvY2tzLy4vc3JjL2Jsb2Nrcy9ibG9ja3MvY2lyY2xlLWNvdW50ZXIvaW5kZXguanM/NGQwOSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFdvcmRQcmVzcyBkZXBlbmRlbmNpZXNcbiAqL1xuaW1wb3J0IHsgX18gfSBmcm9tICdAd29yZHByZXNzL2kxOG4nO1xuXG5jb25zdCBhdHRyaWJ1dGVzID0ge1xuXHRpZDoge1xuXHRcdHR5cGU6ICdzdHJpbmcnXG5cdH0sXG5cdHRpdGxlOiB7XG5cdFx0dHlwZTogJ3N0cmluZycsXG5cdFx0ZGVmYXVsdDogX18oICdTa2lsbCcsICdvdHRlci1ibG9ja3MnIClcblx0fSxcblx0cGVyY2VudGFnZToge1xuXHRcdHR5cGU6ICdudW1iZXInLFxuXHRcdGRlZmF1bHQ6IDUwXG5cdH0sXG5cdGR1cmF0aW9uOiB7XG5cdFx0dHlwZTogJ251bWJlcicsXG5cdFx0ZGVmYXVsdDogMlxuXHR9LFxuXHR0aXRsZVN0eWxlOiB7XG5cdFx0dHlwZTogJ3N0cmluZycsXG5cdFx0ZGVmYXVsdDogJ2RlZmF1bHQnXG5cdH0sXG5cdGhlaWdodDoge1xuXHRcdHR5cGU6ICdudW1iZXInLFxuXHRcdGRlZmF1bHQ6IDEwMFxuXHR9LFxuXHRmb250U2l6ZVRpdGxlOiB7XG5cdFx0dHlwZTogJ251bWJlcidcblx0fSxcblx0Zm9udFNpemVQZXJjZW50OiB7XG5cdFx0dHlwZTogJ251bWJlcidcblx0fSxcblx0c3Ryb2tlV2lkdGg6IHtcblx0XHR0eXBlOiAnbnVtYmVyJyxcblx0XHRkZWZhdWx0OiAxMFxuXHR9LFxuXHRiYWNrZ3JvdW5kQ29sb3I6IHtcblx0XHR0eXBlOiAnc3RyaW5nJ1xuXHR9LFxuXHRwcm9ncmVzc0NvbG9yOiB7XG5cdFx0dHlwZTogJ3N0cmluZydcblx0fSxcblx0dGl0bGVDb2xvcjoge1xuXHRcdHR5cGU6ICdzdHJpbmcnXG5cdH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IGF0dHJpYnV0ZXM7XG4iLCIvKipcbiAqIFdvcmRQcmVzcyBkZXBlbmRlbmNpZXNcbiAqL1xuaW1wb3J0IHsgX18gfSBmcm9tICdAd29yZHByZXNzL2kxOG4nO1xuXG5pbXBvcnQgeyBjbGFtcCB9IGZyb20gJ2xvZGFzaCc7XG5cbmltcG9ydCB7XG5cdF9fZXhwZXJpbWVudGFsQ29sb3JHcmFkaWVudENvbnRyb2wgYXMgQ29sb3JHcmFkaWVudENvbnRyb2wsXG5cdEluc3BlY3RvckNvbnRyb2xzXG59IGZyb20gJ0B3b3JkcHJlc3MvYmxvY2stZWRpdG9yJztcblxuaW1wb3J0IHtcblx0UGFuZWxCb2R5LFxuXHRSYW5nZUNvbnRyb2wsXG5cdFNlbGVjdENvbnRyb2xcbn0gZnJvbSAnQHdvcmRwcmVzcy9jb21wb25lbnRzJztcblxuY29uc3QgSW5zcGVjdG9yID0gKHtcblx0YXR0cmlidXRlcyxcblx0c2V0QXR0cmlidXRlcyxcblx0b25IZWlnaHRDaGFuZ2Vcbn0pID0+IHtcblx0Y29uc3Qgb25QZXJjZW50YWdlQ2hhbmdlID0gdmFsdWUgPT4ge1xuXHRcdGlmICggdmFsdWUgPT09IHVuZGVmaW5lZCApIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0dmFsdWUgPSBjbGFtcCggdmFsdWUsIDAsIDEwMCApO1xuXHRcdHNldEF0dHJpYnV0ZXMoeyBwZXJjZW50YWdlOiB2YWx1ZSB9KTtcblx0fTtcblxuXHRjb25zdCBzZWxlY3RUaXRsZVN0eWxlID0gdmFsdWUgPT4ge1xuXHRcdHNldEF0dHJpYnV0ZXMoeyB0aXRsZVN0eWxlOiB2YWx1ZSB9KTtcblx0fTtcblxuXHRjb25zdCBvblN0cm9rZVdpZHRoQ2hhbmdlID0gdmFsdWUgPT4ge1xuXHRcdHNldEF0dHJpYnV0ZXMoeyBzdHJva2VXaWR0aDogdmFsdWUgfSk7XG5cdH07XG5cblx0Y29uc3Qgb25CYWNrZ3JvdW5kQ29sb3JDaGFuZ2UgPSB2YWx1ZSA9PiB7XG5cdFx0c2V0QXR0cmlidXRlcyh7IGJhY2tncm91bmRDb2xvcjogdmFsdWUgfSk7XG5cdH07XG5cblx0Y29uc3Qgb25Qcm9ncmVzc0NvbG9yQ2hhbmdlID0gdmFsdWUgPT4ge1xuXHRcdHNldEF0dHJpYnV0ZXMoeyBwcm9ncmVzc0NvbG9yOiB2YWx1ZSB9KTtcblx0fTtcblxuXHRjb25zdCBvbkR1cmF0aW9uQ2hhbmdlID0gdmFsdWUgPT4ge1xuXHRcdGlmICggdmFsdWUgPT09IHVuZGVmaW5lZCApIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHR2YWx1ZSA9IGNsYW1wKCB2YWx1ZSwgMCwgMyApO1xuXHRcdHNldEF0dHJpYnV0ZXMoeyBkdXJhdGlvbjogdmFsdWUgfSk7XG5cdH07XG5cblx0Y29uc3Qgb25UaXRsZUNvbG9yQ2hhbmdlID0gdmFsdWUgPT4ge1xuXHRcdHNldEF0dHJpYnV0ZXMoeyB0aXRsZUNvbG9yOiB2YWx1ZSB9KTtcblx0fTtcblxuXHRjb25zdCBvbkZvbnRTaXplUGVyY2VudENoYW5nZSA9IHZhbHVlID0+IHtcblx0XHRzZXRBdHRyaWJ1dGVzKHsgZm9udFNpemVQZXJjZW50OiB2YWx1ZSB9KTtcblx0fTtcblxuXHRjb25zdCBvbkZvbnRTaXplVGl0bGVDaGFuZ2UgPSB2YWx1ZSA9PiB7XG5cdFx0c2V0QXR0cmlidXRlcyh7IGZvbnRTaXplVGl0bGU6IHZhbHVlIH0pO1xuXHR9O1xuXG5cdHJldHVybiAoXG5cdFx0PEluc3BlY3RvckNvbnRyb2xzPlxuXHRcdFx0PFBhbmVsQm9keVxuXHRcdFx0XHR0aXRsZT17IF9fKCAnU2V0dGluZ3MnLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdFx0aW5pdGlhbE9wZW49eyB0cnVlIH1cblx0XHRcdD5cblx0XHRcdFx0PFJhbmdlQ29udHJvbFxuXHRcdFx0XHRcdGxhYmVsPXsgX18oICdQZXJjZW50YWdlJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdFx0aGVscD17IF9fKCAnVGhlIHZhbHVlIG9mIHRoZSBjb3VudGVyLicsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHRcdHZhbHVlPXsgYXR0cmlidXRlcy5wZXJjZW50YWdlIH1cblx0XHRcdFx0XHRvbkNoYW5nZT17IG9uUGVyY2VudGFnZUNoYW5nZSB9XG5cdFx0XHRcdFx0bWluPXsgMCB9XG5cdFx0XHRcdFx0bWF4PXsgMTAwIH1cblx0XHRcdFx0Lz5cblxuXHRcdFx0XHQ8UmFuZ2VDb250cm9sXG5cdFx0XHRcdFx0bGFiZWw9eyBfXyggJ0R1cmF0aW9uJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdFx0aGVscD17IF9fKCAnVGhlIGR1cmF0aW9uIG9mIHRoZSBhbmltYXRpb24uJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdFx0dmFsdWU9eyBhdHRyaWJ1dGVzLmR1cmF0aW9uIH1cblx0XHRcdFx0XHRvbkNoYW5nZT17IG9uRHVyYXRpb25DaGFuZ2UgfVxuXHRcdFx0XHRcdG1pbj17IDAgfVxuXHRcdFx0XHRcdG1heD17IDMgfVxuXHRcdFx0XHRcdHN0ZXA9eyAwLjEgfVxuXHRcdFx0XHQvPlxuXG5cdFx0XHRcdDxTZWxlY3RDb250cm9sXG5cdFx0XHRcdFx0bGFiZWw9eyBfXyggJ1RpdGxlIFN0eWxlJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdFx0dmFsdWU9eyBhdHRyaWJ1dGVzLnRpdGxlU3R5bGUgfVxuXHRcdFx0XHRcdG9wdGlvbnM9eyBbXG5cdFx0XHRcdFx0XHR7IGxhYmVsOiBfXyggJ0RlZmF1bHQnLCAnb3R0ZXItYmxvY2tzJyApLCB2YWx1ZTogJ2RlZmF1bHQnIH0sXG5cdFx0XHRcdFx0XHR7IGxhYmVsOiBfXyggJ0hpZGUnLCAnb3R0ZXItYmxvY2tzJyApLCB2YWx1ZTogJ2hpZGUnIH0sXG5cdFx0XHRcdFx0XHR7IGxhYmVsOiBfXyggJ0JvdHRvbScsICdvdHRlci1ibG9ja3MnICksIHZhbHVlOiAnYm90dG9tJyB9XG5cdFx0XHRcdFx0XSB9XG5cdFx0XHRcdFx0b25DaGFuZ2U9eyBzZWxlY3RUaXRsZVN0eWxlIH1cblx0XHRcdFx0Lz5cblx0XHRcdDwvUGFuZWxCb2R5PlxuXG5cdFx0XHQ8UGFuZWxCb2R5XG5cdFx0XHRcdHRpdGxlPXsgX18oICdTdHlsZScsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0PlxuXHRcdFx0XHQ8UmFuZ2VDb250cm9sXG5cdFx0XHRcdFx0bGFiZWw9eyBfXyggJ0hlaWdodCcsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHRcdGhlbHA9eyBfXyggJ1RoZSBoZWlnaHQgb2YgdGhlIGNpcmNsZSBjb3VudGVyLicsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHRcdHZhbHVlPXsgYXR0cmlidXRlcy5oZWlnaHQgfVxuXHRcdFx0XHRcdG9uQ2hhbmdlPXsgb25IZWlnaHRDaGFuZ2UgfVxuXHRcdFx0XHRcdG1pbj17IDAgfVxuXHRcdFx0XHRcdG1heD17IDI0MCB9XG5cdFx0XHRcdC8+XG5cblx0XHRcdFx0PFJhbmdlQ29udHJvbFxuXHRcdFx0XHRcdGxhYmVsPXsgX18oICdDaXJjbGUgVGhpY2tuZXNzJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdFx0aGVscD17IF9fKCAnQ2hhbmdlIHRoZSB0aGlja25lc3MgKHN0cm9rZSB3aWR0aCkgb2YgdGhlIGNpcmNsZS4nLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdFx0XHR2YWx1ZT17IGF0dHJpYnV0ZXMuc3Ryb2tlV2lkdGggfVxuXHRcdFx0XHRcdG9uQ2hhbmdlPXsgb25TdHJva2VXaWR0aENoYW5nZSB9XG5cdFx0XHRcdFx0aW5pdGlhbFBvc2l0aW9uPXsgMTAgfVxuXHRcdFx0XHRcdG1pbj17IDAgfVxuXHRcdFx0XHRcdG1heD17IDIwIH1cblx0XHRcdFx0Lz5cblxuXHRcdFx0XHQ8UmFuZ2VDb250cm9sXG5cdFx0XHRcdFx0bGFiZWw9eyBfXyggJ0ZvbnQgU2l6ZSBUaXRsZScsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHRcdGhlbHA9eyBfXyggJ0NoYW5nZSB0aGUgZm9udCBzaXplIG9mIHRoZSB0aXRsZS4nLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdFx0XHR2YWx1ZT17IGF0dHJpYnV0ZXMuZm9udFNpemVUaXRsZSB9XG5cdFx0XHRcdFx0b25DaGFuZ2U9eyBvbkZvbnRTaXplVGl0bGVDaGFuZ2UgfVxuXHRcdFx0XHRcdGluaXRpYWxQb3NpdGlvbj17IDM3IH1cblx0XHRcdFx0XHRtaW49eyAwIH1cblx0XHRcdFx0XHRtYXg9eyBNYXRoLnJvdW5kKCBhdHRyaWJ1dGVzLmhlaWdodCAqIDAuNjAgKSB9XG5cdFx0XHRcdC8+XG5cblx0XHRcdFx0PFJhbmdlQ29udHJvbFxuXHRcdFx0XHRcdGxhYmVsPXsgX18oICdGb250IFNpemUgUGVyY2VudCcsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHRcdGhlbHA9eyBfXyggJ0NoYW5nZSB0aGUgZm9udCBzaXplIG9mIHRoZSBpbm5lciB0ZXh0LicsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHRcdHZhbHVlPXsgYXR0cmlidXRlcy5mb250U2l6ZVBlcmNlbnQgfVxuXHRcdFx0XHRcdG9uQ2hhbmdlPXsgb25Gb250U2l6ZVBlcmNlbnRDaGFuZ2UgfVxuXHRcdFx0XHRcdGluaXRpYWxQb3NpdGlvbj17IDI3IH1cblx0XHRcdFx0XHRtaW49eyAwIH1cblx0XHRcdFx0XHRtYXg9eyBNYXRoLnJvdW5kKCBhdHRyaWJ1dGVzLmhlaWdodCAqIDAuMjcgKSB9XG5cdFx0XHRcdC8+XG5cblx0XHRcdFx0eyAoICdoaWRlJyAhPT0gYXR0cmlidXRlcy50aXRsZVN0eWxlICkgJiYgKFxuXHRcdFx0XHRcdDxDb2xvckdyYWRpZW50Q29udHJvbFxuXHRcdFx0XHRcdFx0bGFiZWw9eyBfXyggJ1RpdGxlIENvbG9yJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdFx0XHRjb2xvclZhbHVlPXsgYXR0cmlidXRlcy50aXRsZUNvbG9yIH1cblx0XHRcdFx0XHRcdG9uQ29sb3JDaGFuZ2U9eyBvblRpdGxlQ29sb3JDaGFuZ2UgfVxuXHRcdFx0XHRcdC8+XG5cdFx0XHRcdCkgfVxuXG5cdFx0XHRcdDxDb2xvckdyYWRpZW50Q29udHJvbFxuXHRcdFx0XHRcdGxhYmVsPXsgX18oICdQcm9ncmVzcyBDb2xvcicsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHRcdGNvbG9yVmFsdWU9eyBhdHRyaWJ1dGVzLnByb2dyZXNzQ29sb3IgfVxuXHRcdFx0XHRcdG9uQ29sb3JDaGFuZ2U9eyBvblByb2dyZXNzQ29sb3JDaGFuZ2UgfVxuXHRcdFx0XHQvPlxuXG5cdFx0XHRcdDxDb2xvckdyYWRpZW50Q29udHJvbFxuXHRcdFx0XHRcdGxhYmVsPXsgX18oICdCYWNrZ3JvdW5kIENvbG9yJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdFx0Y29sb3JWYWx1ZT17IGF0dHJpYnV0ZXMuYmFja2dyb3VuZENvbG9yIH1cblx0XHRcdFx0XHRvbkNvbG9yQ2hhbmdlPXsgb25CYWNrZ3JvdW5kQ29sb3JDaGFuZ2UgfVxuXHRcdFx0XHQvPlxuXHRcdFx0PC9QYW5lbEJvZHk+XG5cdFx0PC9JbnNwZWN0b3JDb250cm9scz5cblx0KTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEluc3BlY3RvcjtcbiIsImNvbnN0IENpcmN1bGFyUHJvZ3Jlc3NCYXIgPSAoe1xuXHRhdHRyaWJ1dGVzLFxuXHRwcm9ncmVzc1JlZixcblx0dmFsdWVSZWZcbn0pID0+IHtcblx0Y29uc3Qgc2l6ZSA9IGF0dHJpYnV0ZXMuaGVpZ2h0O1xuXHRjb25zdCBjZW50ZXIgPSBzaXplIC8gMjtcblx0Y29uc3QgcmFkaXVzID0gc2l6ZSAvIDIgLSBhdHRyaWJ1dGVzLnN0cm9rZVdpZHRoIC8gMjtcblx0Y29uc3QgY2lyY3VtZmVyZW5jZSA9IDIgKiBNYXRoLlBJICogcmFkaXVzO1xuXG5cdGlmICggMCA+IHJhZGl1cyApIHtcblx0XHRyZXR1cm4gPGRpdj48L2Rpdj47XG5cdH1cblxuXHRyZXR1cm4gKFxuXHRcdDxkaXZcblx0XHRcdGNsYXNzTmFtZT1cIndwLWJsb2NrLXRoZW1laXNsZS1ibG9ja3MtY2lyY2xlLWNvdW50ZXJfX2JhclwiXG5cdFx0XHRzdHlsZT17IHtcblx0XHRcdFx0aGVpZ2h0OiBzaXplICsgJ3B4Jyxcblx0XHRcdFx0d2lkdGg6IHNpemUgKyAncHgnXG5cdFx0XHR9IH1cblx0XHQ+XG5cdFx0XHQ8c3ZnXG5cdFx0XHRcdGNsYXNzTmFtZT1cIndwLWJsb2NrLXRoZW1laXNsZS1ibG9ja3MtY2lyY2xlLWNvdW50ZXItY29udGFpbmVyXCJcblx0XHRcdFx0d2lkdGg9eyBzaXplIH1cblx0XHRcdFx0aGVpZ2h0PXsgc2l6ZSB9XG5cdFx0XHQ+XG5cdFx0XHRcdDxjaXJjbGVcblx0XHRcdFx0XHRjbGFzc05hbWU9XCJ3cC1ibG9jay10aGVtZWlzbGUtYmxvY2tzLWNpcmNsZS1jb3VudGVyLWJnXCJcblx0XHRcdFx0XHRjeD17IGNlbnRlciB9XG5cdFx0XHRcdFx0Y3k9eyBjZW50ZXIgfVxuXHRcdFx0XHRcdHI9eyByYWRpdXMgfVxuXHRcdFx0XHRcdHN0cm9rZVdpZHRoPXsgYXR0cmlidXRlcy5zdHJva2VXaWR0aCB9XG5cdFx0XHRcdFx0c3R5bGU9eyB7XG5cdFx0XHRcdFx0XHRzdHJva2U6IGF0dHJpYnV0ZXMuYmFja2dyb3VuZENvbG9yXG5cdFx0XHRcdFx0fSB9XG5cdFx0XHRcdC8+XG5cdFx0XHRcdDxjaXJjbGVcblx0XHRcdFx0XHRyZWY9eyBwcm9ncmVzc1JlZiB9XG5cdFx0XHRcdFx0Y2xhc3NOYW1lPVwid3AtYmxvY2stdGhlbWVpc2xlLWJsb2Nrcy1jaXJjbGUtY291bnRlci1wcm9ncmVzc1wiXG5cdFx0XHRcdFx0Y3g9eyBjZW50ZXIgfVxuXHRcdFx0XHRcdGN5PXsgY2VudGVyIH1cblx0XHRcdFx0XHRyPXsgcmFkaXVzIH1cblx0XHRcdFx0XHRzdHJva2VXaWR0aD17IGF0dHJpYnV0ZXMuc3Ryb2tlV2lkdGggfVxuXHRcdFx0XHRcdHN0cm9rZURhc2hhcnJheT17IGNpcmN1bWZlcmVuY2UgfVxuXHRcdFx0XHRcdHN0eWxlPXsge1xuXHRcdFx0XHRcdFx0c3Ryb2tlOiBhdHRyaWJ1dGVzLnByb2dyZXNzQ29sb3Jcblx0XHRcdFx0XHR9IH1cblx0XHRcdFx0Lz5cblx0XHRcdFx0PHRleHRcblx0XHRcdFx0XHRyZWY9eyB2YWx1ZVJlZiB9XG5cdFx0XHRcdFx0Y2xhc3NOYW1lPVwid3AtYmxvY2stdGhlbWVpc2xlLWJsb2Nrcy1jaXJjbGUtY291bnRlci10ZXh0XCJcblx0XHRcdFx0XHR4PVwiNTAlXCJcblx0XHRcdFx0XHR5PVwiNTAlXCJcblx0XHRcdFx0XHRzdHlsZT17IHtcblx0XHRcdFx0XHRcdGZpbGw6IGF0dHJpYnV0ZXMucHJvZ3Jlc3NDb2xvcixcblx0XHRcdFx0XHRcdGZvbnRTaXplOiBhdHRyaWJ1dGVzLmZvbnRTaXplUGVyY2VudCArICdweCdcblx0XHRcdFx0XHR9IH1cblx0XHRcdFx0PlxuXHRcdFx0XHRcdHsgYXR0cmlidXRlcy5wZXJjZW50YWdlIH0lXG5cdFx0XHRcdDwvdGV4dD5cblx0XHRcdDwvc3ZnPlxuXHRcdDwvZGl2PlxuXHQpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgQ2lyY3VsYXJQcm9ncmVzc0JhcjtcbiIsIi8qKlxuICogRXh0ZXJuYWwgZGVwZW5kZW5jaWVzXG4gKi9cbmltcG9ydCBjbGFzc25hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuXG4vKipcbiAqIFdvcmRQcmVzcyBkZXBlbmRlbmNpZXNcbiAqL1xuaW1wb3J0IHsgX18gfSBmcm9tICdAd29yZHByZXNzL2kxOG4nO1xuXG5pbXBvcnQgeyByYW5nZSB9IGZyb20gJ2xvZGFzaCc7XG5cbmltcG9ydCB7IFJlc2l6YWJsZUJveCB9IGZyb20gJ0B3b3JkcHJlc3MvY29tcG9uZW50cyc7XG5cbmltcG9ydCB7XG5cdEZyYWdtZW50LFxuXHR1c2VFZmZlY3QsXG5cdHVzZVN0YXRlLFxuXHR1c2VSZWZcbn0gZnJvbSAnQHdvcmRwcmVzcy9lbGVtZW50JztcblxuaW1wb3J0IHsgUmljaFRleHQgfSBmcm9tICdAd29yZHByZXNzL2Jsb2NrLWVkaXRvcic7XG5cbi8qKlxuICogSW50ZXJuYWwgZGVwZW5kZW5jaWVzXG4gKi9cbmltcG9ydCBJbnNwZWN0b3IgZnJvbSAnLi9pbnNwZWN0b3IuanMnO1xuaW1wb3J0IENpcmN1bGFyUHJvZ3Jlc3NCYXIgZnJvbSAnLi9jb21wb25lbnRzL0NpcmNsZUNvdW50ZXIuanMnO1xuaW1wb3J0IHsgYmxvY2tJbml0IH0gZnJvbSAnLi4vLi4vaGVscGVycy9ibG9jay11dGlsaXR5LmpzJztcbmltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuL2F0dHJpYnV0ZXMuanMnO1xuXG5jb25zdCBDaXJjdWxhclByb2dyZXNzQmFyQmxvY2sgPSAoe1xuXHRjbGllbnRJZCxcblx0YXR0cmlidXRlcyxcblx0c2V0QXR0cmlidXRlcyxcblx0aXNTZWxlY3RlZCxcblx0dG9nZ2xlU2VsZWN0aW9uLFxuXHRjbGFzc05hbWVcbn0pID0+IHtcblxuXHR1c2VFZmZlY3QoICgpID0+IHtcblx0XHRjb25zdCB1bnN1YnNjcmliZSA9IGJsb2NrSW5pdCggY2xpZW50SWQsIGRlZmF1bHRBdHRyaWJ1dGVzICk7XG5cdFx0cmV0dXJuICgpID0+IHVuc3Vic2NyaWJlKCBhdHRyaWJ1dGVzLmlkICk7XG5cdH0sIFsgYXR0cmlidXRlcy5pZCBdKTtcblxuXHRjb25zdCBwcm9ncmVzc1JlZiA9IHVzZVJlZiggbnVsbCApO1xuXHRjb25zdCB2YWx1ZVJlZiA9IHVzZVJlZiggbnVsbCApO1xuXHRjb25zdCBbIGludGVydmFsLCBjaGFuZ2VJbnRlcnZhbCBdID0gdXNlU3RhdGUoe30pO1xuXG5cdGNvbnN0IGNlbnRlciA9IGF0dHJpYnV0ZXMuaGVpZ2h0IC8gMjtcblx0Y29uc3QgcmFkaXVzID0gY2VudGVyIC0gYXR0cmlidXRlcy5zdHJva2VXaWR0aCAvIDI7XG5cdGNvbnN0IGNpcmN1bWZlcmVuY2UgPSAyICogTWF0aC5QSSAqIHJhZGl1cztcblxuXHR1c2VFZmZlY3QoICgpID0+IHtcblx0XHRpZiAoICEgcHJvZ3Jlc3NSZWYuY3VycmVudCB8fCAhIHByb2dyZXNzUmVmLmN1cnJlbnQgfHwgMCA9PT0gYXR0cmlidXRlcy5kdXJhdGlvbiApIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRjb25zdCBzdGVwID0gMjA7IC8vIG1pbGlzZWNvbmRzXG5cdFx0Y29uc3QgcmF0aW8gPSAgYXR0cmlidXRlcy5wZXJjZW50YWdlIC8gKCBhdHRyaWJ1dGVzLmR1cmF0aW9uICogMTAwMCApIDtcblx0XHRjb25zdCBwZXJjZW50YWdlVmFsdWVzID0gcmFuZ2UoIDAsIGF0dHJpYnV0ZXMuZHVyYXRpb24gKiAxMDAwICsgc3RlcCwgc3RlcCApLm1hcCggeCA9PiB4ICogcmF0aW8gKS5yZXZlcnNlKCk7XG5cblx0XHRpZiAoIGludGVydmFsICkge1xuXHRcdFx0Y2xlYXJJbnRlcnZhbCggaW50ZXJ2YWwgKTtcblx0XHR9XG5cblx0XHRwcm9ncmVzc1JlZi5jdXJyZW50LnN0eWxlLnN0cm9rZURhc2hvZmZzZXQgPSBjaXJjdW1mZXJlbmNlO1xuXHRcdHZhbHVlUmVmLmN1cnJlbnQuaW5uZXJUZXh0ID0gJzAlJztcblxuXHRcdGNvbnN0IGludGVydiA9IHNldEludGVydmFsKCAoKSA9PiB7XG5cblx0XHRcdGlmICggISBwcm9ncmVzc1JlZi5jdXJyZW50ICkge1xuXHRcdFx0XHRjbGVhckludGVydmFsKCBpbnRlcnYgKTtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHRjb25zdCBwZXJjZW50YWdlID0gTWF0aC5yb3VuZCggcGVyY2VudGFnZVZhbHVlcy5wb3AoKSApO1xuXG5cdFx0XHRwcm9ncmVzc1JlZi5jdXJyZW50LnN0eWxlLnN0cm9rZURhc2hvZmZzZXQgPSAoICggMTAwIC0gcGVyY2VudGFnZSApIC8gMTAwICkgKiBjaXJjdW1mZXJlbmNlO1xuXHRcdFx0dmFsdWVSZWYuY3VycmVudC5pbm5lckhUTUwgPSBwZXJjZW50YWdlICsgJyUnO1xuXG5cdFx0XHRpZiAoIDAgPT09IHBlcmNlbnRhZ2VWYWx1ZXMubGVuZ3RoICkge1xuXHRcdFx0XHRjbGVhckludGVydmFsKCBpbnRlcnYgKTtcblx0XHRcdH1cblx0XHR9LCBzdGVwICk7XG5cblx0XHRjaGFuZ2VJbnRlcnZhbCggaW50ZXJ2ICk7XG5cdH0sIFsgYXR0cmlidXRlcy5kdXJhdGlvbiBdKTtcblxuXHR1c2VFZmZlY3QoICgpID0+IHtcblx0XHRpZiAoICEgcHJvZ3Jlc3NSZWYuY3VycmVudCB8fCAhIHByb2dyZXNzUmVmLmN1cnJlbnQgKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0cHJvZ3Jlc3NSZWYuY3VycmVudC5zdHlsZS5zdHJva2VEYXNob2Zmc2V0ID0gKCAoIDEwMCAtIGF0dHJpYnV0ZXMucGVyY2VudGFnZSApIC8gMTAwICkgKiBjaXJjdW1mZXJlbmNlO1xuXHRcdHZhbHVlUmVmLmN1cnJlbnQuaW5uZXJIVE1MID0gYXR0cmlidXRlcy5wZXJjZW50YWdlICsgJyUnO1xuXG5cdFx0Y2xlYXJJbnRlcnZhbCggaW50ZXJ2YWwgKTtcblx0fSwgWyBhdHRyaWJ1dGVzLnBlcmNlbnRhZ2UsIGF0dHJpYnV0ZXMuaGVpZ2h0IF0pO1xuXG5cdGNvbnN0IG9uSGVpZ2h0Q2hhbmdlID0gdmFsdWUgPT4ge1xuXHRcdGNvbnN0IGlubmVyVGV4dEZvbnRTaXplUmF0aW8gPSAoIGF0dHJpYnV0ZXMuZm9udFNpemVQZXJjZW50IHx8IDI3ICkgLyBhdHRyaWJ1dGVzLmhlaWdodDtcblx0XHRjb25zdCB0aXRsZUZvbnRTaXplUmF0aW8gPSAoIGF0dHJpYnV0ZXMuZm9udFNpemVUaXRsZSB8fCAzNyApIC8gYXR0cmlidXRlcy5oZWlnaHQ7XG5cblx0XHRzZXRBdHRyaWJ1dGVzKHtcblx0XHRcdGhlaWdodDogdmFsdWUsXG5cdFx0XHRmb250U2l6ZVBlcmNlbnQ6IE1hdGgucm91bmQoIHZhbHVlICogaW5uZXJUZXh0Rm9udFNpemVSYXRpbyApLFxuXHRcdFx0Zm9udFNpemVUaXRsZTogTWF0aC5yb3VuZCggdmFsdWUgKiB0aXRsZUZvbnRTaXplUmF0aW8gKVxuXHRcdH0pO1xuXHR9O1xuXG5cdGNvbnN0IG9uVGl0bGVDaGFuZ2UgPSB2YWx1ZSA9PiB7XG5cdFx0c2V0QXR0cmlidXRlcyh7IHRpdGxlOiB2YWx1ZSB9KTtcblx0fTtcblxuXHRyZXR1cm4gKFxuXHRcdDxGcmFnbWVudD5cblx0XHRcdDxJbnNwZWN0b3Jcblx0XHRcdFx0YXR0cmlidXRlcz17IGF0dHJpYnV0ZXMgfVxuXHRcdFx0XHRzZXRBdHRyaWJ1dGVzPXsgc2V0QXR0cmlidXRlcyB9XG5cdFx0XHRcdG9uSGVpZ2h0Q2hhbmdlPXsgb25IZWlnaHRDaGFuZ2UgfVxuXHRcdFx0Lz5cblxuXHRcdFx0PGRpdlxuXHRcdFx0XHRjbGFzc05hbWU9eyBjbGFzc25hbWVzKCBjbGFzc05hbWUgKSB9XG5cdFx0XHRcdGlkPXsgYXR0cmlidXRlcy5pZCB9XG5cdFx0XHQ+XG5cdFx0XHRcdHsgKCAnZGVmYXVsdCcgPT09IGF0dHJpYnV0ZXMudGl0bGVTdHlsZSApICYmIChcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzTmFtZT1cIndwLWJsb2NrLXRoZW1laXNsZS1ibG9ja3MtY2lyY2xlLWNvdW50ZXItdGl0bGVfX2FyZWFcIj5cblx0XHRcdFx0XHRcdDxSaWNoVGV4dFxuXHRcdFx0XHRcdFx0XHR0YWdOYW1lPVwic3BhblwiXG5cdFx0XHRcdFx0XHRcdGFsbG93ZWRGb3JtYXRzPXsgW10gfVxuXHRcdFx0XHRcdFx0XHRjbGFzc05hbWU9XCJ3cC1ibG9jay10aGVtZWlzbGUtYmxvY2tzLWNpcmNsZS1jb3VudGVyLXRpdGxlX192YWx1ZVwiXG5cdFx0XHRcdFx0XHRcdHBsYWNlaG9sZGVyPXsgaXNTZWxlY3RlZCA/IF9fKCAnV3JpdGUgY2FwdGlvbuKApicsICdvdHRlci1ibG9ja3MnICkgOiBudWxsIH1cblx0XHRcdFx0XHRcdFx0dmFsdWU9eyBhdHRyaWJ1dGVzLnRpdGxlIH1cblx0XHRcdFx0XHRcdFx0b25DaGFuZ2U9eyBvblRpdGxlQ2hhbmdlIH1cblx0XHRcdFx0XHRcdFx0bXVsdGlsaW5lPXsgZmFsc2UgfVxuXHRcdFx0XHRcdFx0XHRzdHlsZT17IHtcblx0XHRcdFx0XHRcdFx0XHRjb2xvcjogYXR0cmlidXRlcy50aXRsZUNvbG9yLFxuXHRcdFx0XHRcdFx0XHRcdGZvbnRTaXplOiBhdHRyaWJ1dGVzLmZvbnRTaXplVGl0bGUgKyAncHgnXG5cdFx0XHRcdFx0XHRcdH0gfVxuXHRcdFx0XHRcdFx0Lz5cblx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0KSB9XG5cblx0XHRcdFx0PFJlc2l6YWJsZUJveFxuXHRcdFx0XHRcdHNpemU9eyB7XG5cdFx0XHRcdFx0XHRoZWlnaHQ6IGF0dHJpYnV0ZXMuaGVpZ2h0LFxuXHRcdFx0XHRcdFx0d2lkdGg6IGF0dHJpYnV0ZXMuaGVpZ2h0XG5cdFx0XHRcdFx0fSB9XG5cdFx0XHRcdFx0bWluSGVpZ2h0PXsgMCB9XG5cdFx0XHRcdFx0bWF4SGVpZ2h0PXsgMjQwIH1cblx0XHRcdFx0XHRlbmFibGU9eyB7XG5cdFx0XHRcdFx0XHR0b3A6IGZhbHNlLFxuXHRcdFx0XHRcdFx0cmlnaHQ6IGZhbHNlLFxuXHRcdFx0XHRcdFx0Ym90dG9tOiB0cnVlLFxuXHRcdFx0XHRcdFx0bGVmdDogZmFsc2Vcblx0XHRcdFx0XHR9IH1cblx0XHRcdFx0XHRzaG93SGFuZGxlPXsgaXNTZWxlY3RlZCB9XG5cdFx0XHRcdFx0b25SZXNpemVTdG9wPXsgKCBldmVudCwgZGlyZWN0aW9uLCBlbHQsIGRlbHRhICkgPT4ge1xuXHRcdFx0XHRcdFx0b25IZWlnaHRDaGFuZ2UoIHBhcnNlSW50KCBhdHRyaWJ1dGVzLmhlaWdodCArIGRlbHRhLmhlaWdodCwgMTAgKSApO1xuXHRcdFx0XHRcdFx0dG9nZ2xlU2VsZWN0aW9uKCB0cnVlICk7XG5cdFx0XHRcdFx0fSB9XG5cdFx0XHRcdFx0b25SZXNpemVTdGFydD17ICgpID0+IHtcblx0XHRcdFx0XHRcdHRvZ2dsZVNlbGVjdGlvbiggZmFsc2UgKTtcblx0XHRcdFx0XHR9IH1cblx0XHRcdFx0PlxuXHRcdFx0XHRcdDxDaXJjdWxhclByb2dyZXNzQmFyXG5cdFx0XHRcdFx0XHRhdHRyaWJ1dGVzPXsgYXR0cmlidXRlcyB9XG5cdFx0XHRcdFx0XHRwcm9ncmVzc1JlZj17IHByb2dyZXNzUmVmIH1cblx0XHRcdFx0XHRcdHZhbHVlUmVmPXsgdmFsdWVSZWYgfVxuXHRcdFx0XHRcdC8+XG5cdFx0XHRcdDwvUmVzaXphYmxlQm94PlxuXG5cdFx0XHRcdHsgKCAnYm90dG9tJyA9PT0gYXR0cmlidXRlcy50aXRsZVN0eWxlICkgJiYgKFxuXHRcdFx0XHRcdDxkaXYgY2xhc3NOYW1lPVwid3AtYmxvY2stdGhlbWVpc2xlLWJsb2Nrcy1jaXJjbGUtY291bnRlci10aXRsZV9fYXJlYVwiPlxuXHRcdFx0XHRcdFx0PFJpY2hUZXh0XG5cdFx0XHRcdFx0XHRcdHRhZ05hbWU9XCJzcGFuXCJcblx0XHRcdFx0XHRcdFx0YWxsb3dlZEZvcm1hdHM9eyBbXSB9XG5cdFx0XHRcdFx0XHRcdGNsYXNzTmFtZT1cIndwLWJsb2NrLXRoZW1laXNsZS1ibG9ja3MtY2lyY2xlLWNvdW50ZXItdGl0bGVfX3ZhbHVlXCJcblx0XHRcdFx0XHRcdFx0cGxhY2Vob2xkZXI9eyBpc1NlbGVjdGVkID8gX18oICdXcml0ZSBjYXB0aW9u4oCmJywgJ290dGVyLWJsb2NrcycgKSA6IG51bGwgfVxuXHRcdFx0XHRcdFx0XHR2YWx1ZT17IGF0dHJpYnV0ZXMudGl0bGUgfVxuXHRcdFx0XHRcdFx0XHRvbkNoYW5nZT17IG9uVGl0bGVDaGFuZ2UgfVxuXHRcdFx0XHRcdFx0XHRtdWx0aWxpbmU9eyBmYWxzZSB9XG5cdFx0XHRcdFx0XHRcdHN0eWxlPXsge1xuXHRcdFx0XHRcdFx0XHRcdGNvbG9yOiBhdHRyaWJ1dGVzLnRpdGxlQ29sb3IsXG5cdFx0XHRcdFx0XHRcdFx0Zm9udFNpemU6IGF0dHJpYnV0ZXMuZm9udFNpemVUaXRsZSArICdweCdcblx0XHRcdFx0XHRcdFx0fSB9XG5cdFx0XHRcdFx0XHQvPlxuXHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHQpIH1cblx0XHRcdDwvZGl2PlxuXHRcdDwvRnJhZ21lbnQ+XG5cblx0KTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IENpcmN1bGFyUHJvZ3Jlc3NCYXJCbG9jaztcbiIsImNvbnN0IFNhdmUgPSAoe1xuXHRhdHRyaWJ1dGVzLFxuXHRjbGFzc05hbWVcbn0pID0+IHtcblx0cmV0dXJuIChcblx0XHQ8ZGl2XG5cdFx0XHRjbGFzc05hbWU9eyBjbGFzc05hbWUgfVxuXHRcdFx0aWQ9eyBhdHRyaWJ1dGVzLmlkIH1cblx0XHRcdGRhdGEtcGVyY2VudGFnZT17IGF0dHJpYnV0ZXMucGVyY2VudGFnZSB9XG5cdFx0XHRkYXRhLWR1cmF0aW9uPXsgYXR0cmlidXRlcy5kdXJhdGlvbiB9XG5cdFx0XHRkYXRhLWhlaWdodD17IGF0dHJpYnV0ZXMuaGVpZ2h0IH1cblx0XHRcdGRhdGEtc3Ryb2tlLXdpZHRoPXsgYXR0cmlidXRlcy5zdHJva2VXaWR0aCB9XG5cdFx0XHRkYXRhLWZvbnQtc2l6ZS1wZXJjZW50PXsgYXR0cmlidXRlcy5mb250U2l6ZVBlcmNlbnQgfVxuXHRcdFx0ZGF0YS1iYWNrZ3JvdW5kLXN0cm9rZT17IGF0dHJpYnV0ZXMuYmFja2dyb3VuZENvbG9yIH1cblx0XHRcdGRhdGEtcHJvZ3Jlc3Mtc3Ryb2tlPXsgYXR0cmlidXRlcy5wcm9ncmVzc0NvbG9yIH1cblx0XHQ+XG5cdFx0XHR7ICggJ2RlZmF1bHQnID09PSBhdHRyaWJ1dGVzLnRpdGxlU3R5bGUgKSAmJiAoXG5cdFx0XHRcdDxkaXYgY2xhc3NOYW1lPVwid3AtYmxvY2stdGhlbWVpc2xlLWJsb2Nrcy1jaXJjbGUtY291bnRlci10aXRsZV9fYXJlYVwiPlxuXHRcdFx0XHRcdDxzcGFuIGNsYXNzTmFtZT1cIndwLWJsb2NrLXRoZW1laXNsZS1ibG9ja3MtY2lyY2xlLWNvdW50ZXItdGl0bGVfX3ZhbHVlXCI+XG5cdFx0XHRcdFx0XHR7IGF0dHJpYnV0ZXMudGl0bGUgfVxuXHRcdFx0XHRcdDwvc3Bhbj5cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHQpIH1cblxuXHRcdFx0PGRpdiBjbGFzc05hbWU9XCJ3cC1ibG9jay10aGVtZWlzbGUtYmxvY2tzLWNpcmNsZS1jb3VudGVyX19iYXJcIj48L2Rpdj5cblxuXHRcdFx0eyAoICdib3R0b20nID09PSBhdHRyaWJ1dGVzLnRpdGxlU3R5bGUgKSAmJiAoXG5cdFx0XHRcdDxkaXYgY2xhc3NOYW1lPVwid3AtYmxvY2stdGhlbWVpc2xlLWJsb2Nrcy1jaXJjbGUtY291bnRlci10aXRsZV9fYXJlYVwiPlxuXHRcdFx0XHRcdDxzcGFuIGNsYXNzTmFtZT1cIndwLWJsb2NrLXRoZW1laXNsZS1ibG9ja3MtY2lyY2xlLWNvdW50ZXItdGl0bGVfX3ZhbHVlXCI+XG5cdFx0XHRcdFx0XHR7IGF0dHJpYnV0ZXMudGl0bGUgfVxuXHRcdFx0XHRcdDwvc3Bhbj5cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHQpIH1cblx0XHQ8L2Rpdj5cblx0KTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFNhdmU7XG4iLCIvKipcbiAqIFdvcmRQcmVzcyBkZXBlbmRlbmNpZXNcbiAqL1xuaW1wb3J0IHsgY3JlYXRlQmxvY2sgfSBmcm9tICdAd29yZHByZXNzL2Jsb2Nrcyc7XG5cbmNvbnN0IHtcblx0Y2xhbXAsXG5cdG9taXRcbn0gPSBsb2Rhc2g7XG5cbmNvbnN0IHRyYW5zZm9ybSA9IHtcblx0dG86IFtcblx0XHR7XG5cdFx0XHR0eXBlOiAnYmxvY2snLFxuXHRcdFx0YmxvY2tzOiBbICd0aGVtZWlzbGUtYmxvY2tzL3Byb2dyZXNzLWJhcicgXSxcblx0XHRcdHRyYW5zZm9ybTogKCBhdHRyaWJ1dGVzICkgPT4ge1xuXHRcdFx0XHRjb25zdCBjb21tb25Qcm9wcyA9IG9taXQoIGF0dHJpYnV0ZXMsIFsgJ3RpdGxlU3R5bGUnLCAnaGVpZ2h0JywgJ2ZvbnRTaXplJywgJ3N0cm9rZVdpZHRoJywgJ3Byb2dyZXNzQ29sb3InIF0pO1xuXG5cdFx0XHRcdHJldHVybiBjcmVhdGVCbG9jayggJ3RoZW1laXNsZS1ibG9ja3MvcHJvZ3Jlc3MtYmFyJywge1xuXHRcdFx0XHRcdC4uLmNvbW1vblByb3BzLFxuXHRcdFx0XHRcdGJhckJhY2tncm91bmRDb2xvcjogYXR0cmlidXRlcy5wcm9ncmVzc0NvbG9yLFxuXHRcdFx0XHRcdGhlaWdodDogY2xhbXAoIGF0dHJpYnV0ZXMuaGVpZ2h0IC8gNCwgMCwgMTAwICksXG5cdFx0XHRcdFx0dGl0bGVTdHlsZTogJ2RlZmF1bHQnXG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXHRcdH1cblx0XVxufTtcblxuZXhwb3J0IGRlZmF1bHQgdHJhbnNmb3JtO1xuIiwiLyoqXG4gKiBFeHRlcm5hbCBkZXBlbmRlbmNpZXNcbiAqL1xuaW1wb3J0IHsgcm90YXRlUmlnaHQgYXMgaWNvbiB9IGZyb20gJ0B3b3JkcHJlc3MvaWNvbnMnO1xuXG4vKipcbiAqIFdvcmRQcmVzcyBkZXBlbmRlbmNpZXNcbiAqL1xuaW1wb3J0IHsgX18gfSBmcm9tICdAd29yZHByZXNzL2kxOG4nO1xuXG5pbXBvcnQgeyByZWdpc3RlckJsb2NrVHlwZSB9IGZyb20gJ0B3b3JkcHJlc3MvYmxvY2tzJztcblxuLyoqXG4gKiBJbnRlcm5hbCBkZXBlbmRlbmNpZXNcbiAqL1xuaW1wb3J0ICcuL3N0eWxlLnNjc3MnO1xuaW1wb3J0ICcuL2VkaXRvci5zY3NzJztcbmltcG9ydCBhdHRyaWJ1dGVzIGZyb20gJy4vYXR0cmlidXRlcy5qcyc7XG5pbXBvcnQgZWRpdCBmcm9tICcuL2VkaXQuanMnO1xuaW1wb3J0IHNhdmUgZnJvbSAnLi9zYXZlLmpzJztcbmltcG9ydCB0cmFuc2Zvcm1zIGZyb20gJy4vdHJhbnNmb3Jtcy5qcyc7XG5cbnJlZ2lzdGVyQmxvY2tUeXBlKCAndGhlbWVpc2xlLWJsb2Nrcy9jaXJjbGUtY291bnRlcicsIHtcblx0dGl0bGU6IF9fKCAnQ2lyY2xlIENvdW50ZXInLCAnb3R0ZXItYmxvY2tzJyApLFxuXHRkZXNjcmlwdGlvbjogX18oICdTaG93IHlvdXIgcHJvZ3Jlc3Mgd2l0aCBhIGJlYXV0aWZ1bCBDaXJjbGUgQ291bnRlciBibG9jay4nLCAnb3R0ZXItYmxvY2tzJyApLFxuXHRpY29uLFxuXHRjYXRlZ29yeTogJ3RoZW1laXNsZS1ibG9ja3MnLFxuXHRrZXl3b3JkczogW1xuXHRcdCdwcm9ncmVzcycsXG5cdFx0J2NpcmNsZScsXG5cdFx0J2NvdW50ZXInXG5cdF0sXG5cdGF0dHJpYnV0ZXMsXG5cdHRyYW5zZm9ybXMsXG5cdGVkaXQsXG5cdHNhdmVcbn0pO1xuIl0sIm5hbWVzIjpbIl9fIiwiYXR0cmlidXRlcyIsImlkIiwidHlwZSIsInRpdGxlIiwiZGVmYXVsdCIsInBlcmNlbnRhZ2UiLCJkdXJhdGlvbiIsInRpdGxlU3R5bGUiLCJoZWlnaHQiLCJmb250U2l6ZVRpdGxlIiwiZm9udFNpemVQZXJjZW50Iiwic3Ryb2tlV2lkdGgiLCJiYWNrZ3JvdW5kQ29sb3IiLCJwcm9ncmVzc0NvbG9yIiwidGl0bGVDb2xvciIsImNsYW1wIiwiX19leHBlcmltZW50YWxDb2xvckdyYWRpZW50Q29udHJvbCIsIkNvbG9yR3JhZGllbnRDb250cm9sIiwiSW5zcGVjdG9yQ29udHJvbHMiLCJQYW5lbEJvZHkiLCJSYW5nZUNvbnRyb2wiLCJTZWxlY3RDb250cm9sIiwiSW5zcGVjdG9yIiwic2V0QXR0cmlidXRlcyIsIm9uSGVpZ2h0Q2hhbmdlIiwib25QZXJjZW50YWdlQ2hhbmdlIiwidmFsdWUiLCJ1bmRlZmluZWQiLCJzZWxlY3RUaXRsZVN0eWxlIiwib25TdHJva2VXaWR0aENoYW5nZSIsIm9uQmFja2dyb3VuZENvbG9yQ2hhbmdlIiwib25Qcm9ncmVzc0NvbG9yQ2hhbmdlIiwib25EdXJhdGlvbkNoYW5nZSIsIm9uVGl0bGVDb2xvckNoYW5nZSIsIm9uRm9udFNpemVQZXJjZW50Q2hhbmdlIiwib25Gb250U2l6ZVRpdGxlQ2hhbmdlIiwibGFiZWwiLCJNYXRoIiwicm91bmQiLCJDaXJjdWxhclByb2dyZXNzQmFyIiwicHJvZ3Jlc3NSZWYiLCJ2YWx1ZVJlZiIsInNpemUiLCJjZW50ZXIiLCJyYWRpdXMiLCJjaXJjdW1mZXJlbmNlIiwiUEkiLCJ3aWR0aCIsInN0cm9rZSIsImZpbGwiLCJmb250U2l6ZSIsImNsYXNzbmFtZXMiLCJyYW5nZSIsIlJlc2l6YWJsZUJveCIsIkZyYWdtZW50IiwidXNlRWZmZWN0IiwidXNlU3RhdGUiLCJ1c2VSZWYiLCJSaWNoVGV4dCIsImJsb2NrSW5pdCIsImRlZmF1bHRBdHRyaWJ1dGVzIiwiQ2lyY3VsYXJQcm9ncmVzc0JhckJsb2NrIiwiY2xpZW50SWQiLCJpc1NlbGVjdGVkIiwidG9nZ2xlU2VsZWN0aW9uIiwiY2xhc3NOYW1lIiwidW5zdWJzY3JpYmUiLCJpbnRlcnZhbCIsImNoYW5nZUludGVydmFsIiwiY3VycmVudCIsInN0ZXAiLCJyYXRpbyIsInBlcmNlbnRhZ2VWYWx1ZXMiLCJtYXAiLCJ4IiwicmV2ZXJzZSIsImNsZWFySW50ZXJ2YWwiLCJzdHlsZSIsInN0cm9rZURhc2hvZmZzZXQiLCJpbm5lclRleHQiLCJpbnRlcnYiLCJzZXRJbnRlcnZhbCIsInBvcCIsImlubmVySFRNTCIsImxlbmd0aCIsImlubmVyVGV4dEZvbnRTaXplUmF0aW8iLCJ0aXRsZUZvbnRTaXplUmF0aW8iLCJvblRpdGxlQ2hhbmdlIiwiY29sb3IiLCJ0b3AiLCJyaWdodCIsImJvdHRvbSIsImxlZnQiLCJldmVudCIsImRpcmVjdGlvbiIsImVsdCIsImRlbHRhIiwicGFyc2VJbnQiLCJTYXZlIiwiY3JlYXRlQmxvY2siLCJvbWl0IiwibG9kYXNoIiwidHJhbnNmb3JtIiwidG8iLCJibG9ja3MiLCJjb21tb25Qcm9wcyIsImJhckJhY2tncm91bmRDb2xvciIsInJvdGF0ZVJpZ2h0IiwiaWNvbiIsInJlZ2lzdGVyQmxvY2tUeXBlIiwiZWRpdCIsInNhdmUiLCJ0cmFuc2Zvcm1zIiwiZGVzY3JpcHRpb24iLCJjYXRlZ29yeSIsImtleXdvcmRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///1941\n")},3954:function(__unused_webpack_module,__unused_webpack___webpack_exports__,__webpack_require__){eval("\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/calendar.js\nvar calendar = __webpack_require__(2506);\n// EXTERNAL MODULE: external [\"wp\",\"i18n\"]\nvar external_wp_i18n_ = __webpack_require__(5736);\n// EXTERNAL MODULE: external [\"wp\",\"blocks\"]\nvar external_wp_blocks_ = __webpack_require__(4981);\n;// CONCATENATED MODULE: ./src/blocks/blocks/countdown/attributes.js\nconst attributes = {\n id: {\n type: 'string'\n },\n date: {\n type: 'string'\n },\n exclude: {\n type: 'array'\n },\n backgroundColor: {\n type: 'string'\n },\n valueColor: {\n type: 'string'\n },\n labelColor: {\n type: 'string'\n },\n labelDistance: {\n type: 'number'\n },\n gap: {\n type: 'number'\n },\n gapTablet: {\n type: 'number'\n },\n gapMobile: {\n type: 'number'\n },\n width: {\n type: 'number'\n },\n widthTablet: {\n type: 'number'\n },\n widthMobile: {\n type: 'number'\n },\n height: {\n type: 'number'\n },\n heightTablet: {\n type: 'number'\n },\n heightMobile: {\n type: 'number'\n },\n borderRadius: {\n type: 'number',\n default: 0\n },\n borderRadiusType: {\n type: 'string',\n default: 'linked'\n },\n borderRadiusTopRight: {\n type: 'number',\n default: 0\n },\n borderRadiusTopLeft: {\n type: 'number',\n default: 0\n },\n borderRadiusBottomRight: {\n type: 'number',\n default: 0\n },\n borderRadiusBottomLeft: {\n type: 'number',\n default: 0\n },\n borderWidth: {\n type: 'number'\n },\n borderWidthTablet: {\n type: 'number'\n },\n borderWidthMobile: {\n type: 'number'\n },\n borderColor: {\n type: 'string'\n },\n valueFontSize: {\n type: 'number'\n },\n valueFontSizeTablet: {\n type: 'number'\n },\n valueFontSizeMobile: {\n type: 'number'\n },\n labelFontSize: {\n type: 'number'\n },\n labelFontSizeTablet: {\n type: 'number'\n },\n labelFontSizeMobile: {\n type: 'number'\n },\n hasSeparators: {\n type: 'boolean'\n }\n};\n/* harmony default export */ var countdown_attributes = (attributes);\n// EXTERNAL MODULE: external [\"wp\",\"element\"]\nvar external_wp_element_ = __webpack_require__(9307);\n// EXTERNAL MODULE: external [\"wp\",\"compose\"]\nvar external_wp_compose_ = __webpack_require__(4333);\n// EXTERNAL MODULE: external [\"wp\",\"data\"]\nvar external_wp_data_ = __webpack_require__(9818);\n;// CONCATENATED MODULE: external \"moment\"\nvar external_moment_namespaceObject = window[\"moment\"];\nvar external_moment_default = /*#__PURE__*/__webpack_require__.n(external_moment_namespaceObject);\n// EXTERNAL MODULE: ./src/blocks/helpers/block-utility.js\nvar block_utility = __webpack_require__(5225);\n// EXTERNAL MODULE: external [\"wp\",\"blockEditor\"]\nvar external_wp_blockEditor_ = __webpack_require__(2175);\n// EXTERNAL MODULE: external [\"wp\",\"components\"]\nvar external_wp_components_ = __webpack_require__(5609);\n// EXTERNAL MODULE: external [\"wp\",\"date\"]\nvar external_wp_date_ = __webpack_require__(9771);\n// EXTERNAL MODULE: ./src/blocks/components/responsive-control/index.js\nvar responsive_control = __webpack_require__(6993);\n// EXTERNAL MODULE: ./src/blocks/components/sizing-control/index.js + 1 modules\nvar sizing_control = __webpack_require__(2372);\n;// CONCATENATED MODULE: ./src/blocks/blocks/countdown/inspector.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\nconst Inspector = ({\n attributes,\n setAttributes\n}) => {\n var _attributes$exclude2, _attributes$exclude3, _attributes$exclude4, _attributes$exclude5;\n\n const getView = (0,external_wp_data_.useSelect)(select => {\n const {\n getView\n } = select('themeisle-gutenberg/data');\n const {\n __experimentalGetPreviewDeviceType\n } = select('core/edit-post');\n return __experimentalGetPreviewDeviceType ? __experimentalGetPreviewDeviceType() : getView();\n }, []);\n\n const excludeComponent = (value, componentName) => {\n if (value) {\n var _attributes$exclude;\n\n setAttributes({\n exclude: attributes === null || attributes === void 0 ? void 0 : (_attributes$exclude = attributes.exclude) === null || _attributes$exclude === void 0 ? void 0 : _attributes$exclude.filter(name => name !== componentName)\n });\n } else {\n setAttributes({\n exclude: attributes !== null && attributes !== void 0 && attributes.exclude ? [...(attributes === null || attributes === void 0 ? void 0 : attributes.exclude), componentName] : [componentName]\n });\n }\n };\n\n const onBackgroundColorChange = value => {\n setAttributes({\n backgroundColor: value\n });\n };\n\n const onLabelColorChange = value => {\n setAttributes({\n labelColor: value\n });\n };\n\n const onValueColorChange = value => {\n setAttributes({\n valueColor: value\n });\n };\n\n const onGapChange = value => {\n if ('Desktop' === getView) {\n setAttributes({\n gap: Number(value)\n });\n }\n\n if ('Tablet' === getView) {\n setAttributes({\n gapTablet: Number(value)\n });\n }\n\n if ('Mobile' === getView) {\n setAttributes({\n gapMobile: Number(value)\n });\n }\n };\n\n const onWidthChange = value => {\n if ('Desktop' === getView) {\n setAttributes({\n width: Number(value)\n });\n }\n\n if ('Tablet' === getView) {\n setAttributes({\n widthTablet: Number(value)\n });\n }\n\n if ('Mobile' === getView) {\n setAttributes({\n widthMobile: Number(value)\n });\n }\n };\n\n const onHeightChange = value => {\n if ('Desktop' === getView) {\n setAttributes({\n height: Number(value)\n });\n }\n\n if ('Tablet' === getView) {\n setAttributes({\n heightTablet: Number(value)\n });\n }\n\n if ('Mobile' === getView) {\n setAttributes({\n heightMobile: Number(value)\n });\n }\n };\n\n const onValueFontSizeChange = value => {\n if ('Desktop' === getView) {\n setAttributes({\n valueFontSize: Number(value)\n });\n }\n\n if ('Tablet' === getView) {\n setAttributes({\n valueFontSizeTablet: Number(value)\n });\n }\n\n if ('Mobile' === getView) {\n setAttributes({\n valueFontSizeMobile: Number(value)\n });\n }\n };\n\n const onLabelFontSizeChange = value => {\n if ('Desktop' === getView) {\n setAttributes({\n labelFontSize: Number(value)\n });\n }\n\n if ('Tablet' === getView) {\n setAttributes({\n labelFontSizeTablet: Number(value)\n });\n }\n\n if ('Mobile' === getView) {\n setAttributes({\n labelFontSizeMobile: Number(value)\n });\n }\n };\n\n const onBorderWidthChange = value => {\n if ('Desktop' === getView) {\n setAttributes({\n borderWidth: Number(value)\n });\n }\n\n if ('Tablet' === getView) {\n setAttributes({\n borderWidthTablet: Number(value)\n });\n }\n\n if ('Mobile' === getView) {\n setAttributes({\n borderWidthMobile: Number(value)\n });\n }\n };\n\n const onBorderColorChange = value => {\n setAttributes({\n borderColor: value\n });\n };\n\n const changeBorderRadiusType = value => {\n setAttributes({\n borderRadiusType: value\n });\n };\n\n const getBorderRadius = type => {\n let value;\n\n if ('top-right' === type) {\n value = 'linked' === attributes.borderRadiusType ? attributes.borderRadius : attributes.borderRadiusTopRight;\n }\n\n if ('top-left' === type) {\n value = 'linked' === attributes.borderRadiusType ? attributes.borderRadius : attributes.borderRadiusTopLeft;\n }\n\n if ('bottom-right' === type) {\n value = 'linked' === attributes.borderRadiusType ? attributes.borderRadius : attributes.borderRadiusBottomRight;\n }\n\n if ('bottom-left' === type) {\n value = 'linked' === attributes.borderRadiusType ? attributes.borderRadius : attributes.borderRadiusBottomLeft;\n }\n\n return value;\n };\n\n const borderRadiusDirection = {\n 'top-right': 'borderRadiusTopRight',\n 'top-left': 'borderRadiusTopLeft',\n 'bottom-left': 'borderRadiusBottomLeft',\n 'bottom-right': 'borderRadiusBottomRight'\n };\n\n const changeBorderRadius = (type, value) => {\n if ('linked' === attributes.borderRadiusType) {\n setAttributes({\n borderRadius: value\n });\n } else {\n setAttributes({\n [borderRadiusDirection[type]]: value\n });\n }\n };\n\n const settings = (0,external_wp_date_.__experimentalGetSettings)();\n\n return (0,external_wp_element_.createElement)(external_wp_blockEditor_.InspectorControls, null, (0,external_wp_element_.createElement)(external_wp_components_.PanelBody, {\n title: (0,external_wp_i18n_.__)('Time', 'otter-blocks'),\n initialOpen: true\n }, (0,external_wp_element_.createElement)(external_wp_components_.Dropdown, {\n position: \"bottom left\",\n headerTitle: (0,external_wp_i18n_.__)('Select the date for the deadline', 'otter-blocks'),\n renderToggle: ({\n onToggle,\n isOpen\n }) => (0,external_wp_element_.createElement)(external_wp_element_.Fragment, null, (0,external_wp_element_.createElement)(external_wp_components_.Button, {\n onClick: onToggle,\n isSecondary: true,\n \"aria-expanded\": isOpen\n }, attributes.date ? (0,external_wp_date_.format)(settings.formats.datetime, attributes.date) : (0,external_wp_i18n_.__)('Select Date', 'otter-blocks'))),\n renderContent: () => (0,external_wp_element_.createElement)(external_wp_components_.DateTimePicker, {\n currentDate: attributes.date,\n onChange: date => setAttributes({\n date\n })\n })\n })), (0,external_wp_element_.createElement)(external_wp_components_.PanelBody, {\n title: (0,external_wp_i18n_.__)('Settings', 'otter-blocks'),\n initialOpen: true\n }, (0,external_wp_element_.createElement)(external_wp_components_.ToggleControl, {\n label: (0,external_wp_i18n_.__)('Display Days', 'otter-blocks'),\n checked: !(attributes !== null && attributes !== void 0 && (_attributes$exclude2 = attributes.exclude) !== null && _attributes$exclude2 !== void 0 && _attributes$exclude2.includes('day')),\n onChange: value => excludeComponent(value, 'day')\n }), (0,external_wp_element_.createElement)(external_wp_components_.ToggleControl, {\n label: (0,external_wp_i18n_.__)('Display Hours', 'otter-blocks'),\n checked: !(attributes !== null && attributes !== void 0 && (_attributes$exclude3 = attributes.exclude) !== null && _attributes$exclude3 !== void 0 && _attributes$exclude3.includes('hour')),\n onChange: value => excludeComponent(value, 'hour')\n }), (0,external_wp_element_.createElement)(external_wp_components_.ToggleControl, {\n label: (0,external_wp_i18n_.__)('Display Minutes', 'otter-blocks'),\n checked: !(attributes !== null && attributes !== void 0 && (_attributes$exclude4 = attributes.exclude) !== null && _attributes$exclude4 !== void 0 && _attributes$exclude4.includes('minute')),\n onChange: value => excludeComponent(value, 'minute')\n }), (0,external_wp_element_.createElement)(external_wp_components_.ToggleControl, {\n label: (0,external_wp_i18n_.__)('Display Seconds', 'otter-blocks'),\n checked: !(attributes !== null && attributes !== void 0 && (_attributes$exclude5 = attributes.exclude) !== null && _attributes$exclude5 !== void 0 && _attributes$exclude5.includes('second')),\n onChange: value => excludeComponent(value, 'second')\n }), (0,external_wp_element_.createElement)(external_wp_components_.ToggleControl, {\n label: (0,external_wp_i18n_.__)('Display Separators', 'otter-blocks'),\n checked: attributes === null || attributes === void 0 ? void 0 : attributes.hasSeparators,\n onChange: hasSeparators => setAttributes({\n hasSeparators\n })\n }), (0,external_wp_element_.createElement)(responsive_control/* default */.Z, {\n label: (0,external_wp_i18n_.__)('Box Spacing', 'otter-blocks')\n }, (0,external_wp_element_.createElement)(external_wp_components_.RangeControl, {\n value: 'Mobile' === getView ? attributes.gapMobile : 'Tablet' === getView ? attributes.gapTablet : attributes.gap,\n onChange: onGapChange,\n min: 0,\n max: 100\n })), (0,external_wp_element_.createElement)(responsive_control/* default */.Z, {\n label: (0,external_wp_i18n_.__)('Box Height', 'otter-blocks')\n }, (0,external_wp_element_.createElement)(external_wp_components_.RangeControl, {\n value: 'Mobile' === getView ? attributes.heightMobile : 'Tablet' === getView ? attributes.heightTablet : attributes.height,\n onChange: onHeightChange,\n min: 40,\n max: 300\n })), (0,external_wp_element_.createElement)(responsive_control/* default */.Z, {\n label: (0,external_wp_i18n_.__)('Box Width', 'otter-blocks')\n }, (0,external_wp_element_.createElement)(external_wp_components_.RangeControl, {\n value: 'Mobile' === getView ? attributes.widthMobile : 'Tablet' === getView ? attributes.widthTablet : attributes.width,\n onChange: onWidthChange,\n min: 40,\n max: 300\n })), (0,external_wp_element_.createElement)(responsive_control/* default */.Z, {\n label: (0,external_wp_i18n_.__)('Border Width', 'otter-blocks')\n }, (0,external_wp_element_.createElement)(external_wp_components_.RangeControl, {\n value: 'Mobile' === getView ? attributes.borderWidthMobile : 'Tablet' === getView ? attributes.borderWidthTablet : attributes.borderWidth,\n onChange: onBorderWidthChange,\n min: 0,\n max: 50\n })), (0,external_wp_element_.createElement)(responsive_control/* default */.Z, {\n label: (0,external_wp_i18n_.__)('Time Value Font Size', 'otter-blocks')\n }, (0,external_wp_element_.createElement)(external_wp_components_.RangeControl, {\n value: 'Mobile' === getView ? attributes.valueFontSizeMobile : 'Tablet' === getView ? attributes.valueFontSizeTablet : attributes.valueFontSize,\n onChange: onValueFontSizeChange,\n min: 0,\n max: 64\n })), (0,external_wp_element_.createElement)(responsive_control/* default */.Z, {\n label: (0,external_wp_i18n_.__)('Label Font Size', 'otter-blocks')\n }, (0,external_wp_element_.createElement)(external_wp_components_.RangeControl, {\n value: 'Mobile' === getView ? attributes.labelFontSizeMobile : 'Tablet' === getView ? attributes.labelFontSizeTablet : attributes.labelFontSize,\n onChange: onLabelFontSizeChange,\n min: 0,\n max: 64\n })), (0,external_wp_element_.createElement)(sizing_control/* default */.Z, {\n label: (0,external_wp_i18n_.__)('Border Radius (%)', 'otter-blocks'),\n type: attributes.borderRadiusType,\n min: 0,\n max: 100,\n changeType: changeBorderRadiusType,\n onChange: changeBorderRadius,\n options: [{\n label: (0,external_wp_i18n_.__)('Top Left', 'otter-blocks'),\n type: 'top-left',\n value: getBorderRadius('top-left')\n }, {\n label: (0,external_wp_i18n_.__)('Top Right', 'otter-blocks'),\n type: 'top-right',\n value: getBorderRadius('top-right')\n }, {\n label: (0,external_wp_i18n_.__)('Bottom Right', 'otter-blocks'),\n type: 'bottom-right',\n value: getBorderRadius('bottom-right')\n }, {\n label: (0,external_wp_i18n_.__)('Bottom Left', 'otter-blocks'),\n type: 'bottom-left',\n value: getBorderRadius('bottom-left')\n }]\n })), (0,external_wp_element_.createElement)(external_wp_blockEditor_.PanelColorSettings, {\n title: (0,external_wp_i18n_.__)('Color', 'otter-blocks'),\n initialOpen: false,\n colorSettings: [{\n value: attributes.backgroundColor,\n onChange: onBackgroundColorChange,\n label: (0,external_wp_i18n_.__)('Background', 'otter-blocks')\n }, {\n value: attributes.labelColor,\n onChange: onLabelColorChange,\n label: (0,external_wp_i18n_.__)('Label', 'otter-blocks')\n }, {\n value: attributes.valueColor,\n onChange: onValueColorChange,\n label: (0,external_wp_i18n_.__)('Value', 'otter-blocks')\n }, {\n value: attributes.borderColor,\n onChange: onBorderColorChange,\n label: (0,external_wp_i18n_.__)('Border', 'otter-blocks')\n }]\n }, (0,external_wp_element_.createElement)(external_wp_blockEditor_.ContrastChecker, {\n textColor: attributes.backgroundColor,\n backgroundColor: attributes.valueColor\n })));\n};\n\n/* harmony default export */ var inspector = (Inspector);\n// EXTERNAL MODULE: ./src/blocks/helpers/helper-functions.js\nvar helper_functions = __webpack_require__(4715);\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js\nvar esm_extends = __webpack_require__(7462);\n// EXTERNAL MODULE: ./node_modules/classnames/index.js\nvar classnames = __webpack_require__(4184);\nvar classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);\n;// CONCATENATED MODULE: ./src/blocks/blocks/countdown/components/display-time.js\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\nconst DisplayTimeComponent = ({\n name,\n value,\n tag,\n key,\n styles\n}) => {\n const compStyle = 'sep' !== name ? { ...styles.allComponents,\n ...styles.mainComponents\n } : styles.allComponents;\n return (0,external_wp_element_.createElement)(\"div\", {\n key: key,\n style: compStyle,\n name: tag,\n className: classnames_default()('otter-countdown__display-area', {\n 'is-main-component': 'separator' !== tag\n })\n }, (0,external_wp_element_.createElement)(\"div\", {\n style: styles.value,\n className: \"otter-countdown__value\"\n }, value), (0,external_wp_element_.createElement)(\"div\", {\n style: styles.label,\n className: \"otter-countdown__label\"\n }, name));\n};\n\nconst DisplayTime = ({\n time,\n hasSeparators,\n styles\n}) => {\n const elemToDisplay = hasSeparators ? (0,helper_functions/* insertBetweenItems */.S3)(time, {\n name: 'sep',\n value: ':',\n tag: 'separator'\n }) : time;\n const renderElem = elemToDisplay === null || elemToDisplay === void 0 ? void 0 : elemToDisplay.map((elem, key) => (0,external_wp_element_.createElement)(DisplayTimeComponent, (0,esm_extends/* default */.Z)({}, elem, {\n key: key,\n styles: styles\n })));\n return time !== undefined ? (0,external_wp_element_.createElement)(\"div\", {\n className: \"otter-countdown__container\"\n }, (0,external_wp_element_.createElement)(\"div\", {\n style: styles.display,\n className: \"otter-countdown__display\"\n }, renderElem)) : (0,external_wp_element_.createElement)(external_wp_element_.Fragment, null);\n};\n\n/* harmony default export */ var display_time = (DisplayTime);\n;// CONCATENATED MODULE: ./src/blocks/blocks/countdown/edit.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\n\nconst px = value => value ? `${value}px` : value;\n\nconst Edit = ({\n attributes,\n setAttributes,\n className,\n clientId\n}) => {\n const [unixTime, setUnixTime] = (0,external_wp_element_.useState)(0);\n (0,external_wp_element_.useEffect)(() => {\n const unsubscribe = (0,block_utility/* blockInit */.WX)(clientId, countdown_attributes);\n return () => unsubscribe(attributes.id);\n }, [attributes.id]);\n /**\n * Update the time interval\n */\n\n (0,external_wp_element_.useEffect)(() => {\n const interval = setInterval(() => {\n if (attributes.date) {\n let date = attributes.date + (0,helper_functions/* getTimezone */.EP)();\n date = external_moment_default()(date).unix() * 1000;\n setUnixTime(new Date(date) - new Date());\n }\n }, 500);\n return () => {\n clearInterval(interval);\n };\n }, [attributes.date]);\n /**\n * Determine the platform\n */\n\n const {\n isViewportAvailable,\n isPreviewDesktop,\n isPreviewTablet,\n isPreviewMobile\n } = (0,external_wp_data_.useSelect)(select => {\n const {\n __experimentalGetPreviewDeviceType\n } = select('core/edit-post') ? select('core/edit-post') : false;\n return {\n isViewportAvailable: __experimentalGetPreviewDeviceType ? true : false,\n isPreviewDesktop: __experimentalGetPreviewDeviceType ? 'Desktop' === __experimentalGetPreviewDeviceType() : false,\n isPreviewTablet: __experimentalGetPreviewDeviceType ? 'Tablet' === __experimentalGetPreviewDeviceType() : false,\n isPreviewMobile: __experimentalGetPreviewDeviceType ? 'Mobile' === __experimentalGetPreviewDeviceType() : false\n };\n }, []);\n const isLarger = (0,external_wp_compose_.useViewportMatch)('large', '>=');\n const isLarge = (0,external_wp_compose_.useViewportMatch)('large', '<=');\n const isSmall = (0,external_wp_compose_.useViewportMatch)('small', '>=');\n const isSmaller = (0,external_wp_compose_.useViewportMatch)('small', '<=');\n let isDesktop = isLarger && !isLarge && isSmall && !isSmaller;\n let isTablet = !isLarger && !isLarge && isSmall && !isSmaller;\n let isMobile = !isLarger && !isLarge && !isSmall && !isSmaller;\n\n if (isViewportAvailable && !isMobile) {\n isDesktop = isPreviewDesktop;\n isTablet = isPreviewTablet;\n isMobile = isPreviewMobile;\n }\n /**\n * Compute the components style based on the platform\n */\n\n\n let styles;\n\n if (isTablet) {\n styles = {\n value: {\n color: attributes.valueColor,\n fontSize: px(attributes === null || attributes === void 0 ? void 0 : attributes.valueFontSizeTablet)\n },\n label: {\n color: attributes.labelColor,\n fontSize: px(attributes === null || attributes === void 0 ? void 0 : attributes.labelFontSizeTablet)\n },\n display: {\n gap: px(attributes.gapTablet)\n },\n allComponents: {\n height: px(attributes === null || attributes === void 0 ? void 0 : attributes.heightTablet)\n },\n mainComponents: {\n backgroundColor: attributes.backgroundColor,\n width: px(attributes === null || attributes === void 0 ? void 0 : attributes.widthTablet),\n borderWidth: px(attributes.borderWidthTablet),\n borderColor: attributes.borderColor\n }\n };\n } else if (isMobile) {\n styles = {\n value: {\n color: attributes.valueColor,\n fontSize: px(attributes.valueFontSizeMobile)\n },\n label: {\n color: attributes.labelColor,\n fontSize: px(attributes.labelFontSizeMobile)\n },\n display: {\n gap: px(attributes.gapMobile)\n },\n allComponents: {\n height: px(attributes === null || attributes === void 0 ? void 0 : attributes.heightMobile)\n },\n mainComponents: {\n backgroundColor: attributes.backgroundColor,\n width: px(attributes === null || attributes === void 0 ? void 0 : attributes.widthMobile),\n borderWidth: px(attributes.borderWidthMobile),\n borderColor: attributes.borderColor\n }\n };\n } else if (isDesktop) {\n styles = {\n value: {\n color: attributes.valueColor,\n fontSize: px(attributes.valueFontSize)\n },\n label: {\n color: attributes.labelColor,\n fontSize: px(attributes.labelFontSize)\n },\n display: {\n gap: px(attributes.gap)\n },\n allComponents: {\n height: px(attributes.height)\n },\n mainComponents: {\n backgroundColor: attributes.backgroundColor,\n width: px(attributes.width),\n borderWidth: px(attributes.borderWidth),\n borderColor: attributes.borderColor\n }\n };\n } // Add `border-radius` for all the platforms\n\n\n styles.mainComponents.borderRadius = 'linked' === attributes.borderRadiusType ? attributes.borderRadius + '%' : `${attributes.borderRadiusTopLeft}% ${attributes.borderRadiusTopRight}% ${attributes.borderRadiusBottomRight}% ${attributes.borderRadiusBottomLeft}%`;\n return (0,external_wp_element_.createElement)(external_wp_element_.Fragment, null, (0,external_wp_element_.createElement)(inspector, {\n attributes: attributes,\n setAttributes: setAttributes\n }), (0,external_wp_element_.createElement)(\"div\", {\n id: attributes.id,\n className: className\n }, (0,external_wp_element_.createElement)(display_time, {\n time: (0,helper_functions/* getIntervalFromUnix */.Mg)(unixTime, {\n exclude: attributes === null || attributes === void 0 ? void 0 : attributes.exclude\n }),\n styles: styles,\n hasSeparators: attributes.hasSeparators\n })));\n};\n\n/* harmony default export */ var edit = (Edit);\n;// CONCATENATED MODULE: ./src/blocks/blocks/countdown/save.js\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * External dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\nconst save_DisplayTimeComponent = ({\n name,\n value,\n tag,\n key\n}) => {\n return (0,external_wp_element_.createElement)(\"div\", {\n key: key,\n name: tag,\n className: classnames_default()('otter-countdown__display-area', {\n 'is-main-component': 'separator' !== tag\n })\n }, (0,external_wp_element_.createElement)(\"div\", {\n className: \"otter-countdown__value\"\n }, value), (0,external_wp_element_.createElement)(\"div\", {\n className: \"otter-countdown__label\"\n }, name));\n};\n\nconst save_DisplayTime = ({\n time,\n hasSeparators\n}) => {\n const elemToDisplay = hasSeparators ? (0,helper_functions/* insertBetweenItems */.S3)(time, {\n name: 'sep',\n value: ':',\n tag: 'separator'\n }) : time;\n const renderElem = elemToDisplay === null || elemToDisplay === void 0 ? void 0 : elemToDisplay.map((elem, key) => (0,external_wp_element_.createElement)(save_DisplayTimeComponent, (0,esm_extends/* default */.Z)({}, elem, {\n key: key\n })));\n return time !== undefined ? (0,external_wp_element_.createElement)(\"div\", {\n className: \"otter-countdown__container\"\n }, (0,external_wp_element_.createElement)(\"div\", {\n className: \"otter-countdown__display\"\n }, renderElem)) : (0,external_wp_element_.createElement)(external_wp_element_.Fragment, null);\n};\n\nconst Save = ({\n attributes,\n className\n}) => {\n return (0,external_wp_element_.createElement)(\"div\", {\n id: attributes.id,\n className: className,\n \"data-date\": attributes.date\n }, (0,external_wp_element_.createElement)(save_DisplayTime, {\n time: (0,helper_functions/* getIntervalFromUnix */.Mg)(0, {\n exclude: attributes === null || attributes === void 0 ? void 0 : attributes.exclude\n }),\n hasSeparators: attributes === null || attributes === void 0 ? void 0 : attributes.hasSeparators\n }));\n};\n\n/* harmony default export */ var save = (Save);\n;// CONCATENATED MODULE: ./src/blocks/blocks/countdown/index.js\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\n(0,external_wp_blocks_.registerBlockType)('themeisle-blocks/countdown', {\n title: (0,external_wp_i18n_.__)('Countdown', 'otter-blocks'),\n description: (0,external_wp_i18n_.__)('Set a countdown for a date.', 'otter-blocks'),\n icon: calendar/* default */.Z,\n category: 'themeisle-blocks',\n keywords: ['countdown', 'time', 'counter'],\n supports: {\n align: ['wide', 'full']\n },\n attributes: countdown_attributes,\n edit: edit,\n save: save\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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STtBQUF2QixLQUFMLENBRDNCO0FBRUMsaUJBQWEsRUFBR0osVUFBSCxhQUFHQSxVQUFILHVCQUFHQSxVQUFVLENBQUVtQztBQUY3QixJQUxELENBREQ7QUFZQSxDQWhCRDs7QUFrQkEseUNBQWVxRyxJQUFmLEU7O0FDOUVBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBOztBQUNBO0FBRUE7QUFFQTtBQUNBO0FBQ0E7O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBRyx5Q0FBaUIsQ0FBRSw0QkFBRixFQUFnQztBQUNoREcsRUFBQUEsS0FBSyxFQUFFMUcsd0JBQUUsQ0FBRSxXQUFGLEVBQWUsY0FBZixDQUR1QztBQUVoRDJHLEVBQUFBLFdBQVcsRUFBRTNHLHdCQUFFLENBQUUsNkJBQUYsRUFBaUMsY0FBakMsQ0FGaUM7QUFHaERzRyxFQUFBQSxJQUhnRDtBQUloRE0sRUFBQUEsUUFBUSxFQUFFLGtCQUpzQztBQUtoREMsRUFBQUEsUUFBUSxFQUFFLENBQ1QsV0FEUyxFQUVULE1BRlMsRUFHVCxTQUhTLENBTHNDO0FBVWhEQyxFQUFBQSxRQUFRLEVBQUU7QUFDVEMsSUFBQUEsS0FBSyxFQUFFLENBQUUsTUFBRixFQUFVLE1BQVY7QUFERSxHQVZzQztBQWFoRG5KLEVBQUFBLFVBYmdEO0FBY2hENEksRUFBQUEsSUFkZ0Q7QUFlaERDLEVBQUFBLElBQUlBLEVBQUFBLElBQUFBO0FBZjRDLENBQWhDLENBQWpCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vb3R0ZXItYmxvY2tzLy4vc3JjL2Jsb2Nrcy9ibG9ja3MvY291bnRkb3duL2F0dHJpYnV0ZXMuanM/ZGMxOCIsIndlYnBhY2s6Ly9vdHRlci1ibG9ja3MvZXh0ZXJuYWwgd2luZG93IFwibW9tZW50XCI/M2MyZCIsIndlYnBhY2s6Ly9vdHRlci1ibG9ja3MvLi9zcmMvYmxvY2tzL2Jsb2Nrcy9jb3VudGRvd24vaW5zcGVjdG9yLmpzP2UyNDMiLCJ3ZWJwYWNrOi8vb3R0ZXItYmxvY2tzLy4vc3JjL2Jsb2Nrcy9ibG9ja3MvY291bnRkb3duL2NvbXBvbmVudHMvZGlzcGxheS10aW1lLmpzP2I2Y2IiLCJ3ZWJwYWNrOi8vb3R0ZXItYmxvY2tzLy4vc3JjL2Jsb2Nrcy9ibG9ja3MvY291bnRkb3duL2VkaXQuanM/NzY4MCIsIndlYnBhY2s6Ly9vdHRlci1ibG9ja3MvLi9zcmMvYmxvY2tzL2Jsb2Nrcy9jb3VudGRvd24vc2F2ZS5qcz9jN2VkIiwid2VicGFjazovL290dGVyLWJsb2Nrcy8uL3NyYy9ibG9ja3MvYmxvY2tzL2NvdW50ZG93bi9pbmRleC5qcz8xMzhiIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGF0dHJpYnV0ZXMgPSB7XG5cdGlkOiB7XG5cdFx0dHlwZTogJ3N0cmluZydcblx0fSxcblx0ZGF0ZToge1xuXHRcdHR5cGU6ICdzdHJpbmcnXG5cdH0sXG5cdGV4Y2x1ZGU6IHtcblx0XHR0eXBlOiAnYXJyYXknXG5cdH0sXG5cdGJhY2tncm91bmRDb2xvcjoge1xuXHRcdHR5cGU6ICdzdHJpbmcnXG5cdH0sXG5cdHZhbHVlQ29sb3I6IHtcblx0XHR0eXBlOiAnc3RyaW5nJ1xuXHR9LFxuXHRsYWJlbENvbG9yOiB7XG5cdFx0dHlwZTogJ3N0cmluZydcblx0fSxcblx0bGFiZWxEaXN0YW5jZToge1xuXHRcdHR5cGU6ICdudW1iZXInXG5cdH0sXG5cdGdhcDoge1xuXHRcdHR5cGU6ICdudW1iZXInXG5cdH0sXG5cdGdhcFRhYmxldDoge1xuXHRcdHR5cGU6ICdudW1iZXInXG5cdH0sXG5cdGdhcE1vYmlsZToge1xuXHRcdHR5cGU6ICdudW1iZXInXG5cdH0sXG5cdHdpZHRoOiB7XG5cdFx0dHlwZTogJ251bWJlcidcblx0fSxcblx0d2lkdGhUYWJsZXQ6IHtcblx0XHR0eXBlOiAnbnVtYmVyJ1xuXHR9LFxuXHR3aWR0aE1vYmlsZToge1xuXHRcdHR5cGU6ICdudW1iZXInXG5cdH0sXG5cdGhlaWdodDoge1xuXHRcdHR5cGU6ICdudW1iZXInXG5cdH0sXG5cdGhlaWdodFRhYmxldDoge1xuXHRcdHR5cGU6ICdudW1iZXInXG5cdH0sXG5cdGhlaWdodE1vYmlsZToge1xuXHRcdHR5cGU6ICdudW1iZXInXG5cdH0sXG5cdGJvcmRlclJhZGl1czoge1xuXHRcdHR5cGU6ICdudW1iZXInLFxuXHRcdGRlZmF1bHQ6IDBcblx0fSxcblx0Ym9yZGVyUmFkaXVzVHlwZToge1xuXHRcdHR5cGU6ICdzdHJpbmcnLFxuXHRcdGRlZmF1bHQ6ICdsaW5rZWQnXG5cdH0sXG5cdGJvcmRlclJhZGl1c1RvcFJpZ2h0OiB7XG5cdFx0dHlwZTogJ251bWJlcicsXG5cdFx0ZGVmYXVsdDogMFxuXHR9LFxuXHRib3JkZXJSYWRpdXNUb3BMZWZ0OiB7XG5cdFx0dHlwZTogJ251bWJlcicsXG5cdFx0ZGVmYXVsdDogMFxuXHR9LFxuXHRib3JkZXJSYWRpdXNCb3R0b21SaWdodDoge1xuXHRcdHR5cGU6ICdudW1iZXInLFxuXHRcdGRlZmF1bHQ6IDBcblx0fSxcblx0Ym9yZGVyUmFkaXVzQm90dG9tTGVmdDoge1xuXHRcdHR5cGU6ICdudW1iZXInLFxuXHRcdGRlZmF1bHQ6IDBcblx0fSxcblx0Ym9yZGVyV2lkdGg6IHtcblx0XHR0eXBlOiAnbnVtYmVyJ1xuXHR9LFxuXHRib3JkZXJXaWR0aFRhYmxldDoge1xuXHRcdHR5cGU6ICdudW1iZXInXG5cdH0sXG5cdGJvcmRlcldpZHRoTW9iaWxlOiB7XG5cdFx0dHlwZTogJ251bWJlcidcblx0fSxcblx0Ym9yZGVyQ29sb3I6IHtcblx0XHR0eXBlOiAnc3RyaW5nJ1xuXHR9LFxuXHR2YWx1ZUZvbnRTaXplOiB7XG5cdFx0dHlwZTogJ251bWJlcidcblx0fSxcblx0dmFsdWVGb250U2l6ZVRhYmxldDoge1xuXHRcdHR5cGU6ICdudW1iZXInXG5cdH0sXG5cdHZhbHVlRm9udFNpemVNb2JpbGU6IHtcblx0XHR0eXBlOiAnbnVtYmVyJ1xuXHR9LFxuXHRsYWJlbEZvbnRTaXplOiB7XG5cdFx0dHlwZTogJ251bWJlcidcblx0fSxcblx0bGFiZWxGb250U2l6ZVRhYmxldDoge1xuXHRcdHR5cGU6ICdudW1iZXInXG5cdH0sXG5cdGxhYmVsRm9udFNpemVNb2JpbGU6IHtcblx0XHR0eXBlOiAnbnVtYmVyJ1xuXHR9LFxuXHRoYXNTZXBhcmF0b3JzOiB7XG5cdFx0dHlwZTogJ2Jvb2xlYW4nXG5cdH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IGF0dHJpYnV0ZXM7XG4iLCJ2YXIgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHdpbmRvd1tcIm1vbWVudFwiXTsiLCIvKipcbiAqIFdvcmRQcmVzcyBkZXBlbmRlbmNpZXNcbiAqL1xuaW1wb3J0IHsgX18gfSBmcm9tICdAd29yZHByZXNzL2kxOG4nO1xuXG5pbXBvcnQge1xuXHRDb250cmFzdENoZWNrZXIsXG5cdEluc3BlY3RvckNvbnRyb2xzLFxuXHRQYW5lbENvbG9yU2V0dGluZ3Ncbn0gZnJvbSAnQHdvcmRwcmVzcy9ibG9jay1lZGl0b3InO1xuXG5pbXBvcnQge1xuXHRQYW5lbEJvZHksXG5cdFRvZ2dsZUNvbnRyb2wsXG5cdFJhbmdlQ29udHJvbCxcblx0RHJvcGRvd24sXG5cdEJ1dHRvbixcblx0RGF0ZVRpbWVQaWNrZXJcbn0gZnJvbSAnQHdvcmRwcmVzcy9jb21wb25lbnRzJztcblxuaW1wb3J0IHsgdXNlU2VsZWN0IH0gZnJvbSAnQHdvcmRwcmVzcy9kYXRhJztcblxuaW1wb3J0IHtcblx0Zm9ybWF0LFxuXHRfX2V4cGVyaW1lbnRhbEdldFNldHRpbmdzXG59IGZyb20gJ0B3b3JkcHJlc3MvZGF0ZSc7XG5cbi8qKlxuICogSW50ZXJuYWwgZGVwZW5kZW5jaWVzXG4gKi9cbmltcG9ydCBSZXNwb25zaXZlQ29udHJvbCBmcm9tICcuLi8uLi9jb21wb25lbnRzL3Jlc3BvbnNpdmUtY29udHJvbC9pbmRleC5qcyc7XG5pbXBvcnQgU2l6aW5nQ29udHJvbCBmcm9tICcuLi8uLi9jb21wb25lbnRzL3NpemluZy1jb250cm9sL2luZGV4LmpzJztcblxuY29uc3QgSW5zcGVjdG9yID0gKHtcblx0YXR0cmlidXRlcyxcblx0c2V0QXR0cmlidXRlc1xufSkgPT4ge1xuXHRjb25zdCBnZXRWaWV3ID0gdXNlU2VsZWN0KCAoIHNlbGVjdCApID0+IHtcblx0XHRjb25zdCB7IGdldFZpZXcgfSA9IHNlbGVjdCggJ3RoZW1laXNsZS1ndXRlbmJlcmcvZGF0YScgKTtcblx0XHRjb25zdCB7IF9fZXhwZXJpbWVudGFsR2V0UHJldmlld0RldmljZVR5cGUgfSA9IHNlbGVjdCggJ2NvcmUvZWRpdC1wb3N0JyApO1xuXG5cdFx0cmV0dXJuIF9fZXhwZXJpbWVudGFsR2V0UHJldmlld0RldmljZVR5cGUgPyBfX2V4cGVyaW1lbnRhbEdldFByZXZpZXdEZXZpY2VUeXBlKCkgOiBnZXRWaWV3KCk7XG5cdH0sIFtdKTtcblxuXHRjb25zdCBleGNsdWRlQ29tcG9uZW50ID0gKCB2YWx1ZSwgY29tcG9uZW50TmFtZSApID0+IHtcblx0XHRpZiAoIHZhbHVlICkge1xuXHRcdFx0c2V0QXR0cmlidXRlcyh7XG5cdFx0XHRcdGV4Y2x1ZGU6IGF0dHJpYnV0ZXM/LmV4Y2x1ZGU/LmZpbHRlciggbmFtZSA9PiBuYW1lICE9PSBjb21wb25lbnROYW1lIClcblx0XHRcdH0pO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRzZXRBdHRyaWJ1dGVzKHtcblx0XHRcdFx0ZXhjbHVkZTogYXR0cmlidXRlcz8uZXhjbHVkZSA/IFsgLi4uYXR0cmlidXRlcz8uZXhjbHVkZSwgY29tcG9uZW50TmFtZSBdIDogWyBjb21wb25lbnROYW1lIF1cblx0XHRcdH0pO1xuXHRcdH1cblx0fTtcblxuXHRjb25zdCBvbkJhY2tncm91bmRDb2xvckNoYW5nZSA9IHZhbHVlID0+IHtcblx0XHRzZXRBdHRyaWJ1dGVzKHsgYmFja2dyb3VuZENvbG9yOiB2YWx1ZSB9KTtcblx0fTtcblxuXHRjb25zdCBvbkxhYmVsQ29sb3JDaGFuZ2UgPSB2YWx1ZSA9PiB7XG5cdFx0c2V0QXR0cmlidXRlcyh7IGxhYmVsQ29sb3I6IHZhbHVlIH0pO1xuXHR9O1xuXG5cdGNvbnN0IG9uVmFsdWVDb2xvckNoYW5nZSA9IHZhbHVlID0+IHtcblx0XHRzZXRBdHRyaWJ1dGVzKHsgdmFsdWVDb2xvcjogdmFsdWUgfSk7XG5cdH07XG5cblx0Y29uc3Qgb25HYXBDaGFuZ2UgPSB2YWx1ZSA9PiB7XG5cdFx0aWYgKCAnRGVza3RvcCcgPT09IGdldFZpZXcgKSB7XG5cdFx0XHRzZXRBdHRyaWJ1dGVzKHsgZ2FwOiBOdW1iZXIoIHZhbHVlICl9KTtcblx0XHR9XG5cdFx0aWYgKCAnVGFibGV0JyA9PT0gZ2V0VmlldyApIHtcblx0XHRcdHNldEF0dHJpYnV0ZXMoeyBnYXBUYWJsZXQ6IE51bWJlciggdmFsdWUgKX0pO1xuXHRcdH1cblx0XHRpZiAoICdNb2JpbGUnID09PSBnZXRWaWV3ICkge1xuXHRcdFx0c2V0QXR0cmlidXRlcyh7IGdhcE1vYmlsZTogTnVtYmVyKCB2YWx1ZSApfSk7XG5cdFx0fVxuXHR9O1xuXG5cdGNvbnN0IG9uV2lkdGhDaGFuZ2UgPSB2YWx1ZSA9PiB7XG5cdFx0aWYgKCAnRGVza3RvcCcgPT09IGdldFZpZXcgKSB7XG5cdFx0XHRzZXRBdHRyaWJ1dGVzKHsgd2lkdGg6IE51bWJlciggdmFsdWUgKX0pO1xuXHRcdH1cblx0XHRpZiAoICdUYWJsZXQnID09PSBnZXRWaWV3ICkge1xuXHRcdFx0c2V0QXR0cmlidXRlcyh7IHdpZHRoVGFibGV0OiBOdW1iZXIoIHZhbHVlICl9KTtcblx0XHR9XG5cdFx0aWYgKCAnTW9iaWxlJyA9PT0gZ2V0VmlldyApIHtcblx0XHRcdHNldEF0dHJpYnV0ZXMoeyB3aWR0aE1vYmlsZTogTnVtYmVyKCB2YWx1ZSApfSk7XG5cdFx0fVxuXHR9O1xuXG5cdGNvbnN0IG9uSGVpZ2h0Q2hhbmdlID0gdmFsdWUgPT4ge1xuXHRcdGlmICggJ0Rlc2t0b3AnID09PSBnZXRWaWV3ICkge1xuXHRcdFx0c2V0QXR0cmlidXRlcyh7IGhlaWdodDogTnVtYmVyKCB2YWx1ZSApfSk7XG5cdFx0fVxuXHRcdGlmICggJ1RhYmxldCcgPT09IGdldFZpZXcgKSB7XG5cdFx0XHRzZXRBdHRyaWJ1dGVzKHsgaGVpZ2h0VGFibGV0OiBOdW1iZXIoIHZhbHVlICl9KTtcblx0XHR9XG5cdFx0aWYgKCAnTW9iaWxlJyA9PT0gZ2V0VmlldyApIHtcblx0XHRcdHNldEF0dHJpYnV0ZXMoeyBoZWlnaHRNb2JpbGU6IE51bWJlciggdmFsdWUgKX0pO1xuXHRcdH1cblx0fTtcblxuXHRjb25zdCBvblZhbHVlRm9udFNpemVDaGFuZ2UgPSB2YWx1ZSA9PiB7XG5cdFx0aWYgKCAnRGVza3RvcCcgPT09IGdldFZpZXcgKSB7XG5cdFx0XHRzZXRBdHRyaWJ1dGVzKHsgdmFsdWVGb250U2l6ZTogTnVtYmVyKCB2YWx1ZSApIH0pO1xuXHRcdH1cblx0XHRpZiAoICdUYWJsZXQnID09PSBnZXRWaWV3ICkge1xuXHRcdFx0c2V0QXR0cmlidXRlcyh7IHZhbHVlRm9udFNpemVUYWJsZXQ6IE51bWJlciggdmFsdWUgKX0pO1xuXHRcdH1cblx0XHRpZiAoICdNb2JpbGUnID09PSBnZXRWaWV3ICkge1xuXHRcdFx0c2V0QXR0cmlidXRlcyh7IHZhbHVlRm9udFNpemVNb2JpbGU6IE51bWJlciggdmFsdWUgKX0pO1xuXHRcdH1cblx0fTtcblxuXHRjb25zdCBvbkxhYmVsRm9udFNpemVDaGFuZ2UgPSB2YWx1ZSA9PiB7XG5cdFx0aWYgKCAnRGVza3RvcCcgPT09IGdldFZpZXcgKSB7XG5cdFx0XHRzZXRBdHRyaWJ1dGVzKHsgbGFiZWxGb250U2l6ZTogTnVtYmVyKCB2YWx1ZSApIH0pO1xuXHRcdH1cblx0XHRpZiAoICdUYWJsZXQnID09PSBnZXRWaWV3ICkge1xuXHRcdFx0c2V0QXR0cmlidXRlcyh7IGxhYmVsRm9udFNpemVUYWJsZXQ6IE51bWJlciggdmFsdWUgKX0pO1xuXHRcdH1cblx0XHRpZiAoICdNb2JpbGUnID09PSBnZXRWaWV3ICkge1xuXHRcdFx0c2V0QXR0cmlidXRlcyh7IGxhYmVsRm9udFNpemVNb2JpbGU6IE51bWJlciggdmFsdWUgKX0pO1xuXHRcdH1cblx0fTtcblxuXHRjb25zdCBvbkJvcmRlcldpZHRoQ2hhbmdlID0gdmFsdWUgPT4ge1xuXHRcdGlmICggJ0Rlc2t0b3AnID09PSBnZXRWaWV3ICkge1xuXHRcdFx0c2V0QXR0cmlidXRlcyh7IGJvcmRlcldpZHRoOiBOdW1iZXIoIHZhbHVlICkgfSk7XG5cdFx0fVxuXHRcdGlmICggJ1RhYmxldCcgPT09IGdldFZpZXcgKSB7XG5cdFx0XHRzZXRBdHRyaWJ1dGVzKHsgYm9yZGVyV2lkdGhUYWJsZXQ6IE51bWJlciggdmFsdWUgKX0pO1xuXHRcdH1cblx0XHRpZiAoICdNb2JpbGUnID09PSBnZXRWaWV3ICkge1xuXHRcdFx0c2V0QXR0cmlidXRlcyh7IGJvcmRlcldpZHRoTW9iaWxlOiBOdW1iZXIoIHZhbHVlICl9KTtcblx0XHR9XG5cdH07XG5cblx0Y29uc3Qgb25Cb3JkZXJDb2xvckNoYW5nZSA9IHZhbHVlID0+IHtcblx0XHRzZXRBdHRyaWJ1dGVzKHsgYm9yZGVyQ29sb3I6IHZhbHVlIH0pO1xuXHR9O1xuXG5cdGNvbnN0IGNoYW5nZUJvcmRlclJhZGl1c1R5cGUgPSB2YWx1ZSA9PiB7XG5cdFx0c2V0QXR0cmlidXRlcyh7IGJvcmRlclJhZGl1c1R5cGU6IHZhbHVlIH0pO1xuXHR9O1xuXG5cdGNvbnN0IGdldEJvcmRlclJhZGl1cyA9IHR5cGUgPT4ge1xuXHRcdGxldCB2YWx1ZTtcblxuXHRcdGlmICggJ3RvcC1yaWdodCcgPT09IHR5cGUgKSB7XG5cdFx0XHR2YWx1ZSA9ICdsaW5rZWQnID09PSBhdHRyaWJ1dGVzLmJvcmRlclJhZGl1c1R5cGUgPyBhdHRyaWJ1dGVzLmJvcmRlclJhZGl1cyA6IGF0dHJpYnV0ZXMuYm9yZGVyUmFkaXVzVG9wUmlnaHQ7XG5cdFx0fVxuXG5cdFx0aWYgKCAndG9wLWxlZnQnID09PSB0eXBlICkge1xuXHRcdFx0dmFsdWUgPSAnbGlua2VkJyA9PT0gYXR0cmlidXRlcy5ib3JkZXJSYWRpdXNUeXBlID8gYXR0cmlidXRlcy5ib3JkZXJSYWRpdXMgOiBhdHRyaWJ1dGVzLmJvcmRlclJhZGl1c1RvcExlZnQ7XG5cdFx0fVxuXG5cdFx0aWYgKCAnYm90dG9tLXJpZ2h0JyA9PT0gdHlwZSApIHtcblx0XHRcdHZhbHVlID0gJ2xpbmtlZCcgPT09IGF0dHJpYnV0ZXMuYm9yZGVyUmFkaXVzVHlwZSA/IGF0dHJpYnV0ZXMuYm9yZGVyUmFkaXVzIDogYXR0cmlidXRlcy5ib3JkZXJSYWRpdXNCb3R0b21SaWdodDtcblx0XHR9XG5cblx0XHRpZiAoICdib3R0b20tbGVmdCcgPT09IHR5cGUgKSB7XG5cdFx0XHR2YWx1ZSA9ICdsaW5rZWQnID09PSBhdHRyaWJ1dGVzLmJvcmRlclJhZGl1c1R5cGUgPyBhdHRyaWJ1dGVzLmJvcmRlclJhZGl1cyA6IGF0dHJpYnV0ZXMuYm9yZGVyUmFkaXVzQm90dG9tTGVmdDtcblx0XHR9XG5cblx0XHRyZXR1cm4gdmFsdWU7XG5cdH07XG5cblx0Y29uc3QgYm9yZGVyUmFkaXVzRGlyZWN0aW9uID0ge1xuXHRcdCd0b3AtcmlnaHQnOiAnYm9yZGVyUmFkaXVzVG9wUmlnaHQnLFxuXHRcdCd0b3AtbGVmdCc6ICdib3JkZXJSYWRpdXNUb3BMZWZ0Jyxcblx0XHQnYm90dG9tLWxlZnQnOiAnYm9yZGVyUmFkaXVzQm90dG9tTGVmdCcsXG5cdFx0J2JvdHRvbS1yaWdodCc6ICdib3JkZXJSYWRpdXNCb3R0b21SaWdodCdcblx0fTtcblxuXHRjb25zdCBjaGFuZ2VCb3JkZXJSYWRpdXMgPSAoIHR5cGUsIHZhbHVlICkgPT4ge1xuXHRcdGlmICggJ2xpbmtlZCcgPT09IGF0dHJpYnV0ZXMuYm9yZGVyUmFkaXVzVHlwZSApIHtcblx0XHRcdHNldEF0dHJpYnV0ZXMoeyBib3JkZXJSYWRpdXM6IHZhbHVlIH0pO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRzZXRBdHRyaWJ1dGVzKHsgW2JvcmRlclJhZGl1c0RpcmVjdGlvblt0eXBlXV06IHZhbHVlIH0pO1xuXHRcdH1cblx0fTtcblxuXHRjb25zdCBzZXR0aW5ncyA9IF9fZXhwZXJpbWVudGFsR2V0U2V0dGluZ3MoKTtcblxuXHRyZXR1cm4gKFxuXHRcdDxJbnNwZWN0b3JDb250cm9scz5cblx0XHRcdDxQYW5lbEJvZHlcblx0XHRcdFx0dGl0bGU9eyBfXyggJ1RpbWUnLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdFx0aW5pdGlhbE9wZW49eyB0cnVlIH1cblx0XHRcdD5cblx0XHRcdFx0PERyb3Bkb3duXG5cdFx0XHRcdFx0cG9zaXRpb249XCJib3R0b20gbGVmdFwiXG5cdFx0XHRcdFx0aGVhZGVyVGl0bGU9eyBfXyggJ1NlbGVjdCB0aGUgZGF0ZSBmb3IgdGhlIGRlYWRsaW5lJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdFx0cmVuZGVyVG9nZ2xlPXsgKHsgb25Ub2dnbGUsIGlzT3BlbiB9KSA9PiAoXG5cdFx0XHRcdFx0XHQ8PlxuXHRcdFx0XHRcdFx0XHQ8QnV0dG9uXG5cdFx0XHRcdFx0XHRcdFx0b25DbGljaz17IG9uVG9nZ2xlIH1cblx0XHRcdFx0XHRcdFx0XHRpc1NlY29uZGFyeVxuXHRcdFx0XHRcdFx0XHRcdGFyaWEtZXhwYW5kZWQ9eyBpc09wZW4gfVxuXHRcdFx0XHRcdFx0XHQ+XG5cdFx0XHRcdFx0XHRcdFx0eyBhdHRyaWJ1dGVzLmRhdGUgPyBmb3JtYXQoIHNldHRpbmdzLmZvcm1hdHMuZGF0ZXRpbWUsIGF0dHJpYnV0ZXMuZGF0ZSApIDogX18oICdTZWxlY3QgRGF0ZScsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHRcdFx0XHQ8L0J1dHRvbj5cblx0XHRcdFx0XHRcdDwvPlxuXHRcdFx0XHRcdCkgfVxuXHRcdFx0XHRcdHJlbmRlckNvbnRlbnQ9eyAoKSA9PiAoXG5cdFx0XHRcdFx0XHQ8RGF0ZVRpbWVQaWNrZXJcblx0XHRcdFx0XHRcdFx0Y3VycmVudERhdGU9eyBhdHRyaWJ1dGVzLmRhdGUgfVxuXHRcdFx0XHRcdFx0XHRvbkNoYW5nZT17IGRhdGUgPT4gc2V0QXR0cmlidXRlcyh7IGRhdGUgfSkgfVxuXHRcdFx0XHRcdFx0Lz5cblx0XHRcdFx0XHQpIH1cblx0XHRcdFx0Lz5cblx0XHRcdDwvUGFuZWxCb2R5PlxuXG5cdFx0XHQ8UGFuZWxCb2R5XG5cdFx0XHRcdHRpdGxlPXsgX18oICdTZXR0aW5ncycsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHRpbml0aWFsT3Blbj17IHRydWUgfVxuXHRcdFx0PlxuXHRcdFx0XHQ8VG9nZ2xlQ29udHJvbFxuXHRcdFx0XHRcdGxhYmVsPXsgX18oICdEaXNwbGF5IERheXMnLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdFx0XHRjaGVja2VkPXsgISBhdHRyaWJ1dGVzPy5leGNsdWRlPy5pbmNsdWRlcyggJ2RheScgKSB9XG5cdFx0XHRcdFx0b25DaGFuZ2U9eyB2YWx1ZSA9PiBleGNsdWRlQ29tcG9uZW50KCB2YWx1ZSwgJ2RheScgKSB9XG5cdFx0XHRcdC8+XG5cblx0XHRcdFx0PFRvZ2dsZUNvbnRyb2xcblx0XHRcdFx0XHRsYWJlbD17IF9fKCAnRGlzcGxheSBIb3VycycsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHRcdGNoZWNrZWQ9eyAhIGF0dHJpYnV0ZXM/LmV4Y2x1ZGU/LmluY2x1ZGVzKCAnaG91cicgKSB9XG5cdFx0XHRcdFx0b25DaGFuZ2U9eyB2YWx1ZSA9PiBleGNsdWRlQ29tcG9uZW50KCB2YWx1ZSwgJ2hvdXInICkgfVxuXHRcdFx0XHQvPlxuXG5cdFx0XHRcdDxUb2dnbGVDb250cm9sXG5cdFx0XHRcdFx0bGFiZWw9eyBfXyggJ0Rpc3BsYXkgTWludXRlcycsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHRcdGNoZWNrZWQ9eyAhIGF0dHJpYnV0ZXM/LmV4Y2x1ZGU/LmluY2x1ZGVzKCAnbWludXRlJyApIH1cblx0XHRcdFx0XHRvbkNoYW5nZT17IHZhbHVlID0+IGV4Y2x1ZGVDb21wb25lbnQoIHZhbHVlLCAnbWludXRlJyApIH1cblx0XHRcdFx0Lz5cblxuXHRcdFx0XHQ8VG9nZ2xlQ29udHJvbFxuXHRcdFx0XHRcdGxhYmVsPXsgX18oICdEaXNwbGF5IFNlY29uZHMnLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdFx0XHRjaGVja2VkPXsgISBhdHRyaWJ1dGVzPy5leGNsdWRlPy5pbmNsdWRlcyggJ3NlY29uZCcgKSB9XG5cdFx0XHRcdFx0b25DaGFuZ2U9eyB2YWx1ZSA9PiBleGNsdWRlQ29tcG9uZW50KCB2YWx1ZSwgJ3NlY29uZCcgKSB9XG5cdFx0XHRcdC8+XG5cblx0XHRcdFx0PFRvZ2dsZUNvbnRyb2xcblx0XHRcdFx0XHRsYWJlbD17IF9fKCAnRGlzcGxheSBTZXBhcmF0b3JzJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdFx0Y2hlY2tlZD17IGF0dHJpYnV0ZXM/Lmhhc1NlcGFyYXRvcnMgfVxuXHRcdFx0XHRcdG9uQ2hhbmdlPXsgaGFzU2VwYXJhdG9ycyA9PiBzZXRBdHRyaWJ1dGVzKHsgaGFzU2VwYXJhdG9ycyB9KSB9XG5cdFx0XHRcdC8+XG5cblx0XHRcdFx0PFJlc3BvbnNpdmVDb250cm9sXG5cdFx0XHRcdFx0bGFiZWw9eyBfXyggJ0JveCBTcGFjaW5nJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdD5cblx0XHRcdFx0XHQ8UmFuZ2VDb250cm9sXG5cdFx0XHRcdFx0XHR2YWx1ZT17ICdNb2JpbGUnID09PSBnZXRWaWV3ID8gYXR0cmlidXRlcy5nYXBNb2JpbGUgOiAnVGFibGV0JyA9PT0gZ2V0VmlldyA/IGF0dHJpYnV0ZXMuZ2FwVGFibGV0IDogYXR0cmlidXRlcy5nYXAgfVxuXHRcdFx0XHRcdFx0b25DaGFuZ2U9eyBvbkdhcENoYW5nZSB9XG5cdFx0XHRcdFx0XHRtaW49eyAwIH1cblx0XHRcdFx0XHRcdG1heD17IDEwMCB9XG5cdFx0XHRcdFx0Lz5cblx0XHRcdFx0PC9SZXNwb25zaXZlQ29udHJvbD5cblxuXHRcdFx0XHQ8UmVzcG9uc2l2ZUNvbnRyb2xcblx0XHRcdFx0XHRsYWJlbD17IF9fKCAnQm94IEhlaWdodCcsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHQ+XG5cdFx0XHRcdFx0PFJhbmdlQ29udHJvbFxuXHRcdFx0XHRcdFx0dmFsdWU9eyAnTW9iaWxlJyA9PT0gZ2V0VmlldyA/IGF0dHJpYnV0ZXMuaGVpZ2h0TW9iaWxlIDogJ1RhYmxldCcgPT09IGdldFZpZXcgPyBhdHRyaWJ1dGVzLmhlaWdodFRhYmxldCA6IGF0dHJpYnV0ZXMuaGVpZ2h0IH1cblx0XHRcdFx0XHRcdG9uQ2hhbmdlPXsgb25IZWlnaHRDaGFuZ2UgfVxuXHRcdFx0XHRcdFx0bWluPXsgNDAgfVxuXHRcdFx0XHRcdFx0bWF4PXsgMzAwIH1cblx0XHRcdFx0XHQvPlxuXHRcdFx0XHQ8L1Jlc3BvbnNpdmVDb250cm9sPlxuXG5cdFx0XHRcdDxSZXNwb25zaXZlQ29udHJvbFxuXHRcdFx0XHRcdGxhYmVsPXsgX18oICdCb3ggV2lkdGgnLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdFx0PlxuXHRcdFx0XHRcdDxSYW5nZUNvbnRyb2xcblx0XHRcdFx0XHRcdHZhbHVlPXsgJ01vYmlsZScgPT09IGdldFZpZXcgPyBhdHRyaWJ1dGVzLndpZHRoTW9iaWxlIDogJ1RhYmxldCcgPT09IGdldFZpZXcgPyBhdHRyaWJ1dGVzLndpZHRoVGFibGV0IDogYXR0cmlidXRlcy53aWR0aCB9XG5cdFx0XHRcdFx0XHRvbkNoYW5nZT17IG9uV2lkdGhDaGFuZ2UgfVxuXHRcdFx0XHRcdFx0bWluPXsgNDAgfVxuXHRcdFx0XHRcdFx0bWF4PXsgMzAwIH1cblx0XHRcdFx0XHQvPlxuXHRcdFx0XHQ8L1Jlc3BvbnNpdmVDb250cm9sPlxuXG5cdFx0XHRcdDxSZXNwb25zaXZlQ29udHJvbFxuXHRcdFx0XHRcdGxhYmVsPXsgX18oICdCb3JkZXIgV2lkdGgnLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdFx0PlxuXHRcdFx0XHRcdDxSYW5nZUNvbnRyb2xcblxuXHRcdFx0XHRcdFx0dmFsdWU9eyAnTW9iaWxlJyA9PT0gZ2V0VmlldyA/IGF0dHJpYnV0ZXMuYm9yZGVyV2lkdGhNb2JpbGUgOiAnVGFibGV0JyA9PT0gZ2V0VmlldyA/IGF0dHJpYnV0ZXMuYm9yZGVyV2lkdGhUYWJsZXQgOiBhdHRyaWJ1dGVzLmJvcmRlcldpZHRoIH1cblx0XHRcdFx0XHRcdG9uQ2hhbmdlPXsgb25Cb3JkZXJXaWR0aENoYW5nZSB9XG5cdFx0XHRcdFx0XHRtaW49eyAwIH1cblx0XHRcdFx0XHRcdG1heD17IDUwIH1cblx0XHRcdFx0XHQvPlxuXHRcdFx0XHQ8L1Jlc3BvbnNpdmVDb250cm9sPlxuXG5cdFx0XHRcdDxSZXNwb25zaXZlQ29udHJvbFxuXHRcdFx0XHRcdGxhYmVsPXsgX18oICdUaW1lIFZhbHVlIEZvbnQgU2l6ZScsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHQ+XG5cdFx0XHRcdFx0PFJhbmdlQ29udHJvbFxuXHRcdFx0XHRcdFx0dmFsdWU9eyAnTW9iaWxlJyA9PT0gZ2V0VmlldyA/IGF0dHJpYnV0ZXMudmFsdWVGb250U2l6ZU1vYmlsZSA6ICdUYWJsZXQnID09PSBnZXRWaWV3ID8gYXR0cmlidXRlcy52YWx1ZUZvbnRTaXplVGFibGV0IDogYXR0cmlidXRlcy52YWx1ZUZvbnRTaXplIH1cblx0XHRcdFx0XHRcdG9uQ2hhbmdlPXsgb25WYWx1ZUZvbnRTaXplQ2hhbmdlIH1cblx0XHRcdFx0XHRcdG1pbj17IDAgfVxuXHRcdFx0XHRcdFx0bWF4PXsgNjQgfVxuXHRcdFx0XHRcdC8+XG5cdFx0XHRcdDwvUmVzcG9uc2l2ZUNvbnRyb2w+XG5cblx0XHRcdFx0PFJlc3BvbnNpdmVDb250cm9sXG5cdFx0XHRcdFx0bGFiZWw9eyBfXyggJ0xhYmVsIEZvbnQgU2l6ZScsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHQ+XG5cdFx0XHRcdFx0PFJhbmdlQ29udHJvbFxuXHRcdFx0XHRcdFx0dmFsdWU9eyAnTW9iaWxlJyA9PT0gZ2V0VmlldyA/IGF0dHJpYnV0ZXMubGFiZWxGb250U2l6ZU1vYmlsZSA6ICdUYWJsZXQnID09PSBnZXRWaWV3ID8gYXR0cmlidXRlcy5sYWJlbEZvbnRTaXplVGFibGV0IDogYXR0cmlidXRlcy5sYWJlbEZvbnRTaXplIH1cblx0XHRcdFx0XHRcdG9uQ2hhbmdlPXsgb25MYWJlbEZvbnRTaXplQ2hhbmdlIH1cblx0XHRcdFx0XHRcdG1pbj17IDAgfVxuXHRcdFx0XHRcdFx0bWF4PXsgNjQgfVxuXHRcdFx0XHRcdC8+XG5cdFx0XHRcdDwvUmVzcG9uc2l2ZUNvbnRyb2w+XG5cblx0XHRcdFx0PFNpemluZ0NvbnRyb2xcblx0XHRcdFx0XHRsYWJlbD17IF9fKCAnQm9yZGVyIFJhZGl1cyAoJSknLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdFx0XHR0eXBlPXsgYXR0cmlidXRlcy5ib3JkZXJSYWRpdXNUeXBlIH1cblx0XHRcdFx0XHRtaW49eyAwIH1cblx0XHRcdFx0XHRtYXg9eyAxMDAgfVxuXHRcdFx0XHRcdGNoYW5nZVR5cGU9eyBjaGFuZ2VCb3JkZXJSYWRpdXNUeXBlIH1cblx0XHRcdFx0XHRvbkNoYW5nZT17IGNoYW5nZUJvcmRlclJhZGl1cyB9XG5cdFx0XHRcdFx0b3B0aW9ucz17IFtcblx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0bGFiZWw6IF9fKCAnVG9wIExlZnQnLCAnb3R0ZXItYmxvY2tzJyApLFxuXHRcdFx0XHRcdFx0XHR0eXBlOiAndG9wLWxlZnQnLFxuXHRcdFx0XHRcdFx0XHR2YWx1ZTogZ2V0Qm9yZGVyUmFkaXVzKCAndG9wLWxlZnQnIClcblx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdGxhYmVsOiBfXyggJ1RvcCBSaWdodCcsICdvdHRlci1ibG9ja3MnICksXG5cdFx0XHRcdFx0XHRcdHR5cGU6ICd0b3AtcmlnaHQnLFxuXHRcdFx0XHRcdFx0XHR2YWx1ZTogZ2V0Qm9yZGVyUmFkaXVzKCAndG9wLXJpZ2h0JyApXG5cdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRsYWJlbDogX18oICdCb3R0b20gUmlnaHQnLCAnb3R0ZXItYmxvY2tzJyApLFxuXHRcdFx0XHRcdFx0XHR0eXBlOiAnYm90dG9tLXJpZ2h0Jyxcblx0XHRcdFx0XHRcdFx0dmFsdWU6IGdldEJvcmRlclJhZGl1cyggJ2JvdHRvbS1yaWdodCcgKVxuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0bGFiZWw6IF9fKCAnQm90dG9tIExlZnQnLCAnb3R0ZXItYmxvY2tzJyApLFxuXHRcdFx0XHRcdFx0XHR0eXBlOiAnYm90dG9tLWxlZnQnLFxuXHRcdFx0XHRcdFx0XHR2YWx1ZTogZ2V0Qm9yZGVyUmFkaXVzKCAnYm90dG9tLWxlZnQnIClcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRdIH1cblx0XHRcdFx0Lz5cblxuXHRcdFx0PC9QYW5lbEJvZHk+XG5cblx0XHRcdDxQYW5lbENvbG9yU2V0dGluZ3Ncblx0XHRcdFx0dGl0bGU9eyBfXyggJ0NvbG9yJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdGluaXRpYWxPcGVuPXsgZmFsc2UgfVxuXHRcdFx0XHRjb2xvclNldHRpbmdzPXsgW1xuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdHZhbHVlOiBhdHRyaWJ1dGVzLmJhY2tncm91bmRDb2xvcixcblx0XHRcdFx0XHRcdG9uQ2hhbmdlOiBvbkJhY2tncm91bmRDb2xvckNoYW5nZSxcblx0XHRcdFx0XHRcdGxhYmVsOiBfXyggJ0JhY2tncm91bmQnLCAnb3R0ZXItYmxvY2tzJyApXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHR2YWx1ZTogYXR0cmlidXRlcy5sYWJlbENvbG9yLFxuXHRcdFx0XHRcdFx0b25DaGFuZ2U6IG9uTGFiZWxDb2xvckNoYW5nZSxcblx0XHRcdFx0XHRcdGxhYmVsOiBfXyggJ0xhYmVsJywgJ290dGVyLWJsb2NrcycgKVxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0dmFsdWU6IGF0dHJpYnV0ZXMudmFsdWVDb2xvcixcblx0XHRcdFx0XHRcdG9uQ2hhbmdlOiBvblZhbHVlQ29sb3JDaGFuZ2UsXG5cdFx0XHRcdFx0XHRsYWJlbDogX18oICdWYWx1ZScsICdvdHRlci1ibG9ja3MnIClcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdHZhbHVlOiBhdHRyaWJ1dGVzLmJvcmRlckNvbG9yLFxuXHRcdFx0XHRcdFx0b25DaGFuZ2U6IG9uQm9yZGVyQ29sb3JDaGFuZ2UsXG5cdFx0XHRcdFx0XHRsYWJlbDogX18oICdCb3JkZXInLCAnb3R0ZXItYmxvY2tzJyApXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRdIH1cblx0XHRcdD5cblx0XHRcdFx0PENvbnRyYXN0Q2hlY2tlclxuXHRcdFx0XHRcdHsgLi4ue1xuXHRcdFx0XHRcdFx0dGV4dENvbG9yOiBhdHRyaWJ1dGVzLmJhY2tncm91bmRDb2xvcixcblx0XHRcdFx0XHRcdGJhY2tncm91bmRDb2xvcjogYXR0cmlidXRlcy52YWx1ZUNvbG9yXG5cdFx0XHRcdFx0fSB9XG5cdFx0XHRcdC8+XG5cdFx0XHQ8L1BhbmVsQ29sb3JTZXR0aW5ncz5cblx0XHQ8L0luc3BlY3RvckNvbnRyb2xzPlxuXHQpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgSW5zcGVjdG9yO1xuIiwiLyoqXG4gKiBFeHRlcm5hbCBkZXBlbmRlbmNpZXNcbiAqL1xuaW1wb3J0IGNsYXNzbmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5cbi8qKlxuICogV29yZFByZXNzIGRlcGVuZGVuY2llc1xuICovXG5pbXBvcnQgeyBGcmFnbWVudCB9IGZyb20gJ0B3b3JkcHJlc3MvZWxlbWVudCc7XG5cbi8qKlxuICogSW50ZXJuYWwgZGVwZW5kZW5jaWVzXG4gKi9cbmltcG9ydCB7IGluc2VydEJldHdlZW5JdGVtcyB9IGZyb20gJy4uLy4uLy4uL2hlbHBlcnMvaGVscGVyLWZ1bmN0aW9ucy5qcyc7XG5cbmNvbnN0IERpc3BsYXlUaW1lQ29tcG9uZW50ID0gKHtcblx0bmFtZSxcblx0dmFsdWUsXG5cdHRhZyxcblx0a2V5LFxuXHRzdHlsZXNcbn0pID0+IHtcblx0Y29uc3QgY29tcFN0eWxlID0gJ3NlcCcgIT09IG5hbWUgPyB7IC4uLnN0eWxlcy5hbGxDb21wb25lbnRzLCAuLi5zdHlsZXMubWFpbkNvbXBvbmVudHMgfSA6IHN0eWxlcy5hbGxDb21wb25lbnRzO1xuXG5cdHJldHVybiAoXG5cdFx0PGRpdlxuXHRcdFx0a2V5PXsga2V5IH1cblx0XHRcdHN0eWxlPXsgY29tcFN0eWxlIH1cblx0XHRcdG5hbWU9eyB0YWcgfVxuXHRcdFx0Y2xhc3NOYW1lPXsgY2xhc3NuYW1lcyhcblx0XHRcdFx0J290dGVyLWNvdW50ZG93bl9fZGlzcGxheS1hcmVhJyxcblx0XHRcdFx0e1xuXHRcdFx0XHRcdCdpcy1tYWluLWNvbXBvbmVudCc6ICdzZXBhcmF0b3InICE9PSB0YWdcblx0XHRcdFx0fVxuXHRcdFx0KSB9XG5cdFx0PlxuXHRcdFx0PGRpdlxuXHRcdFx0XHRzdHlsZT17IHN0eWxlcy52YWx1ZSB9XG5cdFx0XHRcdGNsYXNzTmFtZT1cIm90dGVyLWNvdW50ZG93bl9fdmFsdWVcIlxuXHRcdFx0PlxuXHRcdFx0XHR7IHZhbHVlIH1cblx0XHRcdDwvZGl2PlxuXHRcdFx0PGRpdlxuXHRcdFx0XHRzdHlsZT17IHN0eWxlcy5sYWJlbCB9XG5cdFx0XHRcdGNsYXNzTmFtZT1cIm90dGVyLWNvdW50ZG93bl9fbGFiZWxcIlxuXHRcdFx0PlxuXHRcdFx0XHR7IG5hbWUgfVxuXHRcdFx0PC9kaXY+XG5cdFx0PC9kaXY+XG5cdCk7XG59O1xuXG5jb25zdCBEaXNwbGF5VGltZSA9ICh7XG5cdHRpbWUsXG5cdGhhc1NlcGFyYXRvcnMsXG5cdHN0eWxlc1xufSkgPT4ge1xuXHRjb25zdCBlbGVtVG9EaXNwbGF5ID0gaGFzU2VwYXJhdG9ycyA/XG5cdFx0aW5zZXJ0QmV0d2Vlbkl0ZW1zKCB0aW1lLCB7XG5cdFx0XHRuYW1lOiAnc2VwJyxcblx0XHRcdHZhbHVlOiAnOicsXG5cdFx0XHR0YWc6ICdzZXBhcmF0b3InXG5cdFx0fSkgOlxuXHRcdHRpbWU7XG5cblx0Y29uc3QgcmVuZGVyRWxlbSA9IGVsZW1Ub0Rpc3BsYXk/Lm1hcCggKCBlbGVtLCBrZXkgKSA9PiAoXG5cdFx0PERpc3BsYXlUaW1lQ29tcG9uZW50IHsgLi4uZWxlbSB9IGtleT17IGtleSB9IHN0eWxlcz17IHN0eWxlcyB9IC8+XG5cdCkgKTtcblxuXHRyZXR1cm4gdGltZSAhPT0gdW5kZWZpbmVkID8gKFxuXHRcdDxkaXYgY2xhc3NOYW1lPVwib3R0ZXItY291bnRkb3duX19jb250YWluZXJcIj5cblx0XHRcdDxkaXYgc3R5bGU9eyBzdHlsZXMuZGlzcGxheSB9IGNsYXNzTmFtZT1cIm90dGVyLWNvdW50ZG93bl9fZGlzcGxheVwiPnsgcmVuZGVyRWxlbSB9PC9kaXY+XG5cdFx0PC9kaXY+XG5cdCkgOiAoXG5cdFx0PEZyYWdtZW50PjwvRnJhZ21lbnQ+XG5cdCk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBEaXNwbGF5VGltZTtcbiIsIi8qKlxuICogV29yZFByZXNzIGRlcGVuZGVuY2llc1xuICovXG5pbXBvcnQgeyB1c2VWaWV3cG9ydE1hdGNoIH0gZnJvbSAnQHdvcmRwcmVzcy9jb21wb3NlJztcblxuaW1wb3J0IHsgdXNlU2VsZWN0IH0gZnJvbSAnQHdvcmRwcmVzcy9kYXRhJztcblxuaW1wb3J0IHtcblx0RnJhZ21lbnQsXG5cdHVzZVN0YXRlLFxuXHR1c2VFZmZlY3Rcbn0gZnJvbSAnQHdvcmRwcmVzcy9lbGVtZW50JztcblxuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xuXG4vKipcbiAqIEludGVybmFsIGRlcGVuZGVuY2llc1xuICovXG5pbXBvcnQgeyBibG9ja0luaXQgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2Jsb2NrLXV0aWxpdHknO1xuaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4vYXR0cmlidXRlcy5qcyc7XG5pbXBvcnQgSW5zcGVjdG9yIGZyb20gJy4vaW5zcGVjdG9yLmpzJztcbmltcG9ydCB7XG5cdGdldEludGVydmFsRnJvbVVuaXgsXG5cdGdldFRpbWV6b25lXG59IGZyb20gJy4uLy4uL2hlbHBlcnMvaGVscGVyLWZ1bmN0aW9ucy5qcyc7XG5pbXBvcnQgRGlzcGxheVRpbWUgZnJvbSAnLi9jb21wb25lbnRzL2Rpc3BsYXktdGltZS5qcyc7XG5cbmNvbnN0IHB4ID0gdmFsdWUgPT4gdmFsdWUgPyBgJHsgdmFsdWUgfXB4YCA6IHZhbHVlO1xuXG5jb25zdCBFZGl0ID0gKHtcblx0YXR0cmlidXRlcyxcblx0c2V0QXR0cmlidXRlcyxcblx0Y2xhc3NOYW1lLFxuXHRjbGllbnRJZFxufSkgPT4ge1xuXHRjb25zdCBbIHVuaXhUaW1lLCBzZXRVbml4VGltZSBdID0gdXNlU3RhdGUoIDAgKTtcblxuXHR1c2VFZmZlY3QoICgpID0+IHtcblx0XHRjb25zdCB1bnN1YnNjcmliZSA9IGJsb2NrSW5pdCggY2xpZW50SWQsIGRlZmF1bHRBdHRyaWJ1dGVzICk7XG5cdFx0cmV0dXJuICgpID0+IHVuc3Vic2NyaWJlKCBhdHRyaWJ1dGVzLmlkICk7XG5cdH0sIFsgYXR0cmlidXRlcy5pZCBdKTtcblxuXHQvKipcblx0ICogVXBkYXRlIHRoZSB0aW1lIGludGVydmFsXG5cdCAqL1xuXHR1c2VFZmZlY3QoICgpID0+IHtcblx0XHRjb25zdCBpbnRlcnZhbCA9IHNldEludGVydmFsKCAoKSA9PiB7XG5cdFx0XHRpZiAoIGF0dHJpYnV0ZXMuZGF0ZSApIHtcblx0XHRcdFx0bGV0IGRhdGUgPSBhdHRyaWJ1dGVzLmRhdGUgKyBnZXRUaW1lem9uZSgpO1xuXHRcdFx0XHRkYXRlID0gbW9tZW50KCBkYXRlICkudW5peCgpICogMTAwMDtcblx0XHRcdFx0c2V0VW5peFRpbWUoIG5ldyBEYXRlKCBkYXRlICkgLSBuZXcgRGF0ZSgpICk7XG5cdFx0XHR9XG5cdFx0fSwgNTAwICk7XG5cblx0XHRyZXR1cm4gKCkgPT4ge1xuXHRcdFx0Y2xlYXJJbnRlcnZhbCggaW50ZXJ2YWwgKTtcblx0XHR9O1xuXHR9LCBbIGF0dHJpYnV0ZXMuZGF0ZSBdKTtcblxuXHQvKipcblx0ICogRGV0ZXJtaW5lIHRoZSBwbGF0Zm9ybVxuXHQgKi9cblx0Y29uc3Qge1xuXHRcdGlzVmlld3BvcnRBdmFpbGFibGUsXG5cdFx0aXNQcmV2aWV3RGVza3RvcCxcblx0XHRpc1ByZXZpZXdUYWJsZXQsXG5cdFx0aXNQcmV2aWV3TW9iaWxlXG5cdH0gPSB1c2VTZWxlY3QoIHNlbGVjdCA9PiB7XG5cdFx0Y29uc3QgeyBfX2V4cGVyaW1lbnRhbEdldFByZXZpZXdEZXZpY2VUeXBlIH0gPSBzZWxlY3QoICdjb3JlL2VkaXQtcG9zdCcgKSA/IHNlbGVjdCggJ2NvcmUvZWRpdC1wb3N0JyApIDogZmFsc2U7XG5cblx0XHRyZXR1cm4ge1xuXHRcdFx0aXNWaWV3cG9ydEF2YWlsYWJsZTogX19leHBlcmltZW50YWxHZXRQcmV2aWV3RGV2aWNlVHlwZSA/IHRydWUgOiBmYWxzZSxcblx0XHRcdGlzUHJldmlld0Rlc2t0b3A6IF9fZXhwZXJpbWVudGFsR2V0UHJldmlld0RldmljZVR5cGUgPyAnRGVza3RvcCcgPT09IF9fZXhwZXJpbWVudGFsR2V0UHJldmlld0RldmljZVR5cGUoKSA6IGZhbHNlLFxuXHRcdFx0aXNQcmV2aWV3VGFibGV0OiBfX2V4cGVyaW1lbnRhbEdldFByZXZpZXdEZXZpY2VUeXBlID8gJ1RhYmxldCcgPT09IF9fZXhwZXJpbWVudGFsR2V0UHJldmlld0RldmljZVR5cGUoKSA6IGZhbHNlLFxuXHRcdFx0aXNQcmV2aWV3TW9iaWxlOiBfX2V4cGVyaW1lbnRhbEdldFByZXZpZXdEZXZpY2VUeXBlID8gJ01vYmlsZScgPT09IF9fZXhwZXJpbWVudGFsR2V0UHJldmlld0RldmljZVR5cGUoKSA6IGZhbHNlXG5cdFx0fTtcblx0fSwgW10pO1xuXG5cdGNvbnN0IGlzTGFyZ2VyID0gdXNlVmlld3BvcnRNYXRjaCggJ2xhcmdlJywgJz49JyApO1xuXG5cdGNvbnN0IGlzTGFyZ2UgPSB1c2VWaWV3cG9ydE1hdGNoKCAnbGFyZ2UnLCAnPD0nICk7XG5cblx0Y29uc3QgaXNTbWFsbCA9IHVzZVZpZXdwb3J0TWF0Y2goICdzbWFsbCcsICc+PScgKTtcblxuXHRjb25zdCBpc1NtYWxsZXIgPSB1c2VWaWV3cG9ydE1hdGNoKCAnc21hbGwnLCAnPD0nICk7XG5cblx0bGV0IGlzRGVza3RvcCA9IGlzTGFyZ2VyICYmICEgaXNMYXJnZSAmJiBpc1NtYWxsICYmICEgaXNTbWFsbGVyO1xuXG5cdGxldCBpc1RhYmxldCA9ICEgaXNMYXJnZXIgJiYgISBpc0xhcmdlICYmIGlzU21hbGwgJiYgISBpc1NtYWxsZXI7XG5cblx0bGV0IGlzTW9iaWxlID0gISBpc0xhcmdlciAmJiAhIGlzTGFyZ2UgJiYgISBpc1NtYWxsICYmICEgaXNTbWFsbGVyO1xuXG5cdGlmICggaXNWaWV3cG9ydEF2YWlsYWJsZSAmJiAhIGlzTW9iaWxlICkge1xuXHRcdGlzRGVza3RvcCA9IGlzUHJldmlld0Rlc2t0b3A7XG5cdFx0aXNUYWJsZXQgPSBpc1ByZXZpZXdUYWJsZXQ7XG5cdFx0aXNNb2JpbGUgPSBpc1ByZXZpZXdNb2JpbGU7XG5cdH1cblxuXHQvKipcblx0ICogQ29tcHV0ZSB0aGUgY29tcG9uZW50cyBzdHlsZSBiYXNlZCBvbiB0aGUgcGxhdGZvcm1cblx0ICovXG5cdGxldCBzdHlsZXM7XG5cblx0aWYgKCBpc1RhYmxldCApIHtcblx0XHRzdHlsZXMgPSB7XG5cdFx0XHR2YWx1ZToge1xuXHRcdFx0XHRjb2xvcjogYXR0cmlidXRlcy52YWx1ZUNvbG9yLFxuXHRcdFx0XHRmb250U2l6ZTogcHgoIGF0dHJpYnV0ZXM/LnZhbHVlRm9udFNpemVUYWJsZXQgKVxuXHRcdFx0fSxcblx0XHRcdGxhYmVsOiB7XG5cdFx0XHRcdGNvbG9yOiBhdHRyaWJ1dGVzLmxhYmVsQ29sb3IsXG5cdFx0XHRcdGZvbnRTaXplOiBweCggYXR0cmlidXRlcz8ubGFiZWxGb250U2l6ZVRhYmxldCApXG5cdFx0XHR9LFxuXHRcdFx0ZGlzcGxheToge1xuXHRcdFx0XHRnYXA6IHB4KCBhdHRyaWJ1dGVzLmdhcFRhYmxldCApXG5cdFx0XHR9LFxuXHRcdFx0YWxsQ29tcG9uZW50czoge1xuXHRcdFx0XHRoZWlnaHQ6IHB4KCBhdHRyaWJ1dGVzPy5oZWlnaHRUYWJsZXQgKVxuXHRcdFx0fSxcblx0XHRcdG1haW5Db21wb25lbnRzOiB7XG5cdFx0XHRcdGJhY2tncm91bmRDb2xvcjogYXR0cmlidXRlcy5iYWNrZ3JvdW5kQ29sb3IsXG5cdFx0XHRcdHdpZHRoOiBweCggYXR0cmlidXRlcz8ud2lkdGhUYWJsZXQgKSxcblx0XHRcdFx0Ym9yZGVyV2lkdGg6IHB4KCBhdHRyaWJ1dGVzLmJvcmRlcldpZHRoVGFibGV0ICksXG5cdFx0XHRcdGJvcmRlckNvbG9yOiBhdHRyaWJ1dGVzLmJvcmRlckNvbG9yXG5cdFx0XHR9XG5cdFx0fTtcblx0fSBlbHNlIGlmICggaXNNb2JpbGUgKSB7XG5cdFx0c3R5bGVzID0ge1xuXHRcdFx0dmFsdWU6IHtcblx0XHRcdFx0Y29sb3I6IGF0dHJpYnV0ZXMudmFsdWVDb2xvcixcblx0XHRcdFx0Zm9udFNpemU6IHB4KCBhdHRyaWJ1dGVzLnZhbHVlRm9udFNpemVNb2JpbGUgKVxuXHRcdFx0fSxcblx0XHRcdGxhYmVsOiB7XG5cdFx0XHRcdGNvbG9yOiBhdHRyaWJ1dGVzLmxhYmVsQ29sb3IsXG5cdFx0XHRcdGZvbnRTaXplOiBweCggYXR0cmlidXRlcy5sYWJlbEZvbnRTaXplTW9iaWxlIClcblx0XHRcdH0sXG5cdFx0XHRkaXNwbGF5OiB7XG5cdFx0XHRcdGdhcDogcHgoIGF0dHJpYnV0ZXMuZ2FwTW9iaWxlIClcblx0XHRcdH0sXG5cdFx0XHRhbGxDb21wb25lbnRzOiB7XG5cdFx0XHRcdGhlaWdodDogcHgoIGF0dHJpYnV0ZXM/LmhlaWdodE1vYmlsZSApXG5cdFx0XHR9LFxuXHRcdFx0bWFpbkNvbXBvbmVudHM6IHtcblx0XHRcdFx0YmFja2dyb3VuZENvbG9yOiBhdHRyaWJ1dGVzLmJhY2tncm91bmRDb2xvcixcblx0XHRcdFx0d2lkdGg6IHB4KCBhdHRyaWJ1dGVzPy53aWR0aE1vYmlsZSApLFxuXHRcdFx0XHRib3JkZXJXaWR0aDogcHgoIGF0dHJpYnV0ZXMuYm9yZGVyV2lkdGhNb2JpbGUgKSxcblx0XHRcdFx0Ym9yZGVyQ29sb3I6IGF0dHJpYnV0ZXMuYm9yZGVyQ29sb3Jcblx0XHRcdH1cblx0XHR9O1xuXHR9IGVsc2UgaWYgKCBpc0Rlc2t0b3AgKSB7XG5cdFx0c3R5bGVzID0ge1xuXHRcdFx0dmFsdWU6IHtcblx0XHRcdFx0Y29sb3I6IGF0dHJpYnV0ZXMudmFsdWVDb2xvcixcblx0XHRcdFx0Zm9udFNpemU6IHB4KCBhdHRyaWJ1dGVzLnZhbHVlRm9udFNpemUgKVxuXHRcdFx0fSxcblx0XHRcdGxhYmVsOiB7XG5cdFx0XHRcdGNvbG9yOiBhdHRyaWJ1dGVzLmxhYmVsQ29sb3IsXG5cdFx0XHRcdGZvbnRTaXplOiBweCggYXR0cmlidXRlcy5sYWJlbEZvbnRTaXplIClcblx0XHRcdH0sXG5cdFx0XHRkaXNwbGF5OiB7XG5cdFx0XHRcdGdhcDogcHgoIGF0dHJpYnV0ZXMuZ2FwIClcblx0XHRcdH0sXG5cdFx0XHRhbGxDb21wb25lbnRzOiB7XG5cdFx0XHRcdGhlaWdodDogcHgoIGF0dHJpYnV0ZXMuaGVpZ2h0IClcblx0XHRcdH0sXG5cdFx0XHRtYWluQ29tcG9uZW50czoge1xuXHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3I6IGF0dHJpYnV0ZXMuYmFja2dyb3VuZENvbG9yLFxuXHRcdFx0XHR3aWR0aDogcHgoIGF0dHJpYnV0ZXMud2lkdGggKSxcblx0XHRcdFx0Ym9yZGVyV2lkdGg6IHB4KCBhdHRyaWJ1dGVzLmJvcmRlcldpZHRoICksXG5cdFx0XHRcdGJvcmRlckNvbG9yOiBhdHRyaWJ1dGVzLmJvcmRlckNvbG9yXG5cdFx0XHR9XG5cdFx0fTtcblx0fVxuXG5cdC8vIEFkZCBgYm9yZGVyLXJhZGl1c2AgZm9yIGFsbCB0aGUgcGxhdGZvcm1zXG5cdHN0eWxlcy5tYWluQ29tcG9uZW50cy5ib3JkZXJSYWRpdXMgPSAnbGlua2VkJyA9PT0gYXR0cmlidXRlcy5ib3JkZXJSYWRpdXNUeXBlID8gYXR0cmlidXRlcy5ib3JkZXJSYWRpdXMgKyAnJScgOiBgJHsgYXR0cmlidXRlcy5ib3JkZXJSYWRpdXNUb3BMZWZ0IH0lICR7IGF0dHJpYnV0ZXMuYm9yZGVyUmFkaXVzVG9wUmlnaHQgfSUgJHsgYXR0cmlidXRlcy5ib3JkZXJSYWRpdXNCb3R0b21SaWdodCB9JSAkeyBhdHRyaWJ1dGVzLmJvcmRlclJhZGl1c0JvdHRvbUxlZnQgfSVgO1xuXG5cdHJldHVybiAoXG5cdFx0PEZyYWdtZW50PlxuXHRcdFx0PEluc3BlY3RvclxuXHRcdFx0XHRhdHRyaWJ1dGVzPXsgYXR0cmlidXRlcyB9XG5cdFx0XHRcdHNldEF0dHJpYnV0ZXM9eyBzZXRBdHRyaWJ1dGVzIH1cblx0XHRcdC8+XG5cblx0XHRcdDxkaXZcblx0XHRcdFx0aWQ9eyBhdHRyaWJ1dGVzLmlkIH1cblx0XHRcdFx0Y2xhc3NOYW1lPXsgY2xhc3NOYW1lIH1cblx0XHRcdD5cblx0XHRcdFx0PERpc3BsYXlUaW1lXG5cdFx0XHRcdFx0dGltZT17IGdldEludGVydmFsRnJvbVVuaXgoIHVuaXhUaW1lLCB7IGV4Y2x1ZGU6IGF0dHJpYnV0ZXM/LmV4Y2x1ZGUgfSkgfVxuXHRcdFx0XHRcdHN0eWxlcz17IHN0eWxlcyB9XG5cdFx0XHRcdFx0aGFzU2VwYXJhdG9ycz17IGF0dHJpYnV0ZXMuaGFzU2VwYXJhdG9ycyB9XG5cdFx0XHRcdC8+XG5cdFx0XHQ8L2Rpdj5cblx0XHQ8L0ZyYWdtZW50PlxuXHQpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgRWRpdDtcbiIsIi8qKlxuICogRXh0ZXJuYWwgZGVwZW5kZW5jaWVzXG4gKi9cbmltcG9ydCBjbGFzc25hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuXG4vKipcbiAqIEV4dGVybmFsIGRlcGVuZGVuY2llc1xuICovXG5pbXBvcnQgeyBGcmFnbWVudCB9IGZyb20gJ0B3b3JkcHJlc3MvZWxlbWVudCc7XG5cbi8qKlxuICogSW50ZXJuYWwgZGVwZW5kZW5jaWVzXG4gKi9cbmltcG9ydCB7XG5cdGdldEludGVydmFsRnJvbVVuaXgsXG5cdGluc2VydEJldHdlZW5JdGVtc1xufSBmcm9tICcuLi8uLi9oZWxwZXJzL2hlbHBlci1mdW5jdGlvbnMuanMnO1xuXG5jb25zdCBEaXNwbGF5VGltZUNvbXBvbmVudCA9ICh7XG5cdG5hbWUsXG5cdHZhbHVlLFxuXHR0YWcsXG5cdGtleVxufSkgPT4ge1xuXHRyZXR1cm4gKFxuXHRcdDxkaXZcblx0XHRcdGtleT17IGtleSB9XG5cdFx0XHRuYW1lPXsgdGFnIH1cblx0XHRcdGNsYXNzTmFtZT17IGNsYXNzbmFtZXMoXG5cdFx0XHRcdCdvdHRlci1jb3VudGRvd25fX2Rpc3BsYXktYXJlYScsXG5cdFx0XHRcdHtcblx0XHRcdFx0XHQnaXMtbWFpbi1jb21wb25lbnQnOiAnc2VwYXJhdG9yJyAhPT0gdGFnXG5cdFx0XHRcdH1cblx0XHRcdCkgfVxuXHRcdD5cblx0XHRcdDxkaXYgY2xhc3NOYW1lPVwib3R0ZXItY291bnRkb3duX192YWx1ZVwiPnsgdmFsdWUgfTwvZGl2PlxuXHRcdFx0PGRpdiBjbGFzc05hbWU9XCJvdHRlci1jb3VudGRvd25fX2xhYmVsXCI+eyBuYW1lIH08L2Rpdj5cblx0XHQ8L2Rpdj5cblx0KTtcbn07XG5cbmNvbnN0IERpc3BsYXlUaW1lID0gKHtcblx0dGltZSxcblx0aGFzU2VwYXJhdG9yc1xufSkgPT4ge1xuXHRjb25zdCBlbGVtVG9EaXNwbGF5ID0gaGFzU2VwYXJhdG9ycyA/IGluc2VydEJldHdlZW5JdGVtcyggdGltZSwgeyBuYW1lOiAnc2VwJywgdmFsdWU6ICc6JywgdGFnOiAnc2VwYXJhdG9yJyB9KSA6IHRpbWU7XG5cblx0Y29uc3QgcmVuZGVyRWxlbSA9IGVsZW1Ub0Rpc3BsYXk/Lm1hcCggKCBlbGVtLCBrZXkgKSA9PiA8RGlzcGxheVRpbWVDb21wb25lbnQgeyAuLi5lbGVtIH0ga2V5PXsga2V5IH0gLz4gKTtcblxuXHRyZXR1cm4gdGltZSAhPT0gdW5kZWZpbmVkID8gKFxuXHRcdDxkaXYgY2xhc3NOYW1lPVwib3R0ZXItY291bnRkb3duX19jb250YWluZXJcIj5cblx0XHRcdDxkaXYgY2xhc3NOYW1lPVwib3R0ZXItY291bnRkb3duX19kaXNwbGF5XCI+XG5cdFx0XHRcdHsgcmVuZGVyRWxlbSB9XG5cdFx0XHQ8L2Rpdj5cblx0XHQ8L2Rpdj5cblx0KSA6IChcblx0XHQ8RnJhZ21lbnQ+PC9GcmFnbWVudD5cblx0KTtcbn07XG5cbmNvbnN0IFNhdmUgPSAoe1xuXHRhdHRyaWJ1dGVzLFxuXHRjbGFzc05hbWVcbn0pID0+IHtcblx0cmV0dXJuIChcblx0XHQ8ZGl2XG5cdFx0XHRpZD17IGF0dHJpYnV0ZXMuaWQgfVxuXHRcdFx0Y2xhc3NOYW1lPXsgY2xhc3NOYW1lIH1cblx0XHRcdGRhdGEtZGF0ZT17IGF0dHJpYnV0ZXMuZGF0ZSB9XG5cdFx0PlxuXHRcdFx0PERpc3BsYXlUaW1lXG5cdFx0XHRcdHRpbWU9eyBnZXRJbnRlcnZhbEZyb21Vbml4KCAwLCB7IGV4Y2x1ZGU6IGF0dHJpYnV0ZXM/LmV4Y2x1ZGUgfSkgfVxuXHRcdFx0XHRoYXNTZXBhcmF0b3JzPXsgYXR0cmlidXRlcz8uaGFzU2VwYXJhdG9ycyB9XG5cdFx0XHQvPlxuXHRcdDwvZGl2PlxuXHQpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgU2F2ZTtcbiIsIi8qKlxuICogRXh0ZXJuYWwgZGVwZW5kZW5jaWVzXG4gKi9cbmltcG9ydCB7IGNhbGVuZGFyIGFzIGljb24gfSBmcm9tICdAd29yZHByZXNzL2ljb25zJztcblxuLyoqXG4gKiBXb3JkUHJlc3MgZGVwZW5kZW5jaWVzXG4gKi9cbmltcG9ydCB7IF9fIH0gZnJvbSAnQHdvcmRwcmVzcy9pMThuJztcblxuaW1wb3J0IHsgcmVnaXN0ZXJCbG9ja1R5cGUgfSBmcm9tICdAd29yZHByZXNzL2Jsb2Nrcyc7XG5cbi8qKlxuICogSW50ZXJuYWwgZGVwZW5kZW5jaWVzXG4gKi9cbmltcG9ydCAnLi9zdHlsZS5zY3NzJztcbmltcG9ydCAnLi9lZGl0b3Iuc2Nzcyc7XG5pbXBvcnQgYXR0cmlidXRlcyBmcm9tICcuL2F0dHJpYnV0ZXMuanMnO1xuaW1wb3J0IGVkaXQgZnJvbSAnLi9lZGl0LmpzJztcbmltcG9ydCBzYXZlIGZyb20gJy4vc2F2ZS5qcyc7XG5cbnJlZ2lzdGVyQmxvY2tUeXBlKCAndGhlbWVpc2xlLWJsb2Nrcy9jb3VudGRvd24nLCB7XG5cdHRpdGxlOiBfXyggJ0NvdW50ZG93bicsICdvdHRlci1ibG9ja3MnICksXG5cdGRlc2NyaXB0aW9uOiBfXyggJ1NldCBhIGNvdW50ZG93biBmb3IgYSBkYXRlLicsICdvdHRlci1ibG9ja3MnICksXG5cdGljb24sXG5cdGNhdGVnb3J5OiAndGhlbWVpc2xlLWJsb2NrcycsXG5cdGtleXdvcmRzOiBbXG5cdFx0J2NvdW50ZG93bicsXG5cdFx0J3RpbWUnLFxuXHRcdCdjb3VudGVyJ1xuXHRdLFxuXHRzdXBwb3J0czoge1xuXHRcdGFsaWduOiBbICd3aWRlJywgJ2Z1bGwnIF1cblx0fSxcblx0YXR0cmlidXRlcyxcblx0ZWRpdCxcblx0c2F2ZVxufSk7XG5cbiJdLCJuYW1lcyI6WyJhdHRyaWJ1dGVzIiwiaWQiLCJ0eXBlIiwiZGF0ZSIsImV4Y2x1ZGUiLCJiYWNrZ3JvdW5kQ29sb3IiLCJ2YWx1ZUNvbG9yIiwibGFiZWxDb2xvciIsImxhYmVsRGlzdGFuY2UiLCJnYXAiLCJnYXBUYWJsZXQiLCJnYXBNb2JpbGUiLCJ3aWR0aCIsIndpZHRoVGFibGV0Iiwid2lkdGhNb2JpbGUiLCJoZWlnaHQiLCJoZWlnaHRUYWJsZXQiLCJoZWlnaHRNb2JpbGUiLCJib3JkZXJSYWRpdXMiLCJkZWZhdWx0IiwiYm9yZGVyUmFkaXVzVHlwZSIsImJvcmRlclJhZGl1c1RvcFJpZ2h0IiwiYm9yZGVyUmFkaXVzVG9wTGVmdCIsImJvcmRlclJhZGl1c0JvdHRvbVJpZ2h0IiwiYm9yZGVyUmFkaXVzQm90dG9tTGVmdCIsImJvcmRlcldpZHRoIiwiYm9yZGVyV2lkdGhUYWJsZXQiLCJib3JkZXJXaWR0aE1vYmlsZSIsImJvcmRlckNvbG9yIiwidmFsdWVGb250U2l6ZSIsInZhbHVlRm9udFNpemVUYWJsZXQiLCJ2YWx1ZUZvbnRTaXplTW9iaWxlIiwibGFiZWxGb250U2l6ZSIsImxhYmVsRm9udFNpemVUYWJsZXQiLCJsYWJlbEZvbnRTaXplTW9iaWxlIiwiaGFzU2VwYXJhdG9ycyIsIl9fIiwiQ29udHJhc3RDaGVja2VyIiwiSW5zcGVjdG9yQ29udHJvbHMiLCJQYW5lbENvbG9yU2V0dGluZ3MiLCJQYW5lbEJvZHkiLCJUb2dnbGVDb250cm9sIiwiUmFuZ2VDb250cm9sIiwiRHJvcGRvd24iLCJCdXR0b24iLCJEYXRlVGltZVBpY2tlciIsInVzZVNlbGVjdCIsImZvcm1hdCIsIl9fZXhwZXJpbWVudGFsR2V0U2V0dGluZ3MiLCJSZXNwb25zaXZlQ29udHJvbCIsIlNpemluZ0NvbnRyb2wiLCJJbnNwZWN0b3IiLCJzZXRBdHRyaWJ1dGVzIiwiZ2V0VmlldyIsInNlbGVjdCIsIl9fZXhwZXJpbWVudGFsR2V0UHJldmlld0RldmljZVR5cGUiLCJleGNsdWRlQ29tcG9uZW50IiwidmFsdWUiLCJjb21wb25lbnROYW1lIiwiZmlsdGVyIiwibmFtZSIsIm9uQmFja2dyb3VuZENvbG9yQ2hhbmdlIiwib25MYWJlbENvbG9yQ2hhbmdlIiwib25WYWx1ZUNvbG9yQ2hhbmdlIiwib25HYXBDaGFuZ2UiLCJOdW1iZXIiLCJvbldpZHRoQ2hhbmdlIiwib25IZWlnaHRDaGFuZ2UiLCJvblZhbHVlRm9udFNpemVDaGFuZ2UiLCJvbkxhYmVsRm9udFNpemVDaGFuZ2UiLCJvbkJvcmRlcldpZHRoQ2hhbmdlIiwib25Cb3JkZXJDb2xvckNoYW5nZSIsImNoYW5nZUJvcmRlclJhZGl1c1R5cGUiLCJnZXRCb3JkZXJSYWRpdXMiLCJib3JkZXJSYWRpdXNEaXJlY3Rpb24iLCJjaGFuZ2VCb3JkZXJSYWRpdXMiLCJzZXR0aW5ncyIsIm9uVG9nZ2xlIiwiaXNPcGVuIiwiZm9ybWF0cyIsImRhdGV0aW1lIiwiaW5jbHVkZXMiLCJsYWJlbCIsIm9uQ2hhbmdlIiwidGV4dENvbG9yIiwiY2xhc3NuYW1lcyIsIkZyYWdtZW50IiwiaW5zZXJ0QmV0d2Vlbkl0ZW1zIiwiRGlzcGxheVRpbWVDb21wb25lbnQiLCJ0YWciLCJrZXkiLCJzdHlsZXMiLCJjb21wU3R5bGUiLCJhbGxDb21wb25lbnRzIiwibWFpbkNvbXBvbmVudHMiLCJEaXNwbGF5VGltZSIsInRpbWUiLCJlbGVtVG9EaXNwbGF5IiwicmVuZGVyRWxlbSIsIm1hcCIsImVsZW0iLCJ1bmRlZmluZWQiLCJkaXNwbGF5IiwidXNlVmlld3BvcnRNYXRjaCIsInVzZVN0YXRlIiwidXNlRWZmZWN0IiwibW9tZW50IiwiYmxvY2tJbml0IiwiZGVmYXVsdEF0dHJpYnV0ZXMiLCJnZXRJbnRlcnZhbEZyb21Vbml4IiwiZ2V0VGltZXpvbmUiLCJweCIsIkVkaXQiLCJjbGFzc05hbWUiLCJjbGllbnRJZCIsInVuaXhUaW1lIiwic2V0VW5peFRpbWUiLCJ1bnN1YnNjcmliZSIsImludGVydmFsIiwic2V0SW50ZXJ2YWwiLCJ1bml4IiwiRGF0ZSIsImNsZWFySW50ZXJ2YWwiLCJpc1ZpZXdwb3J0QXZhaWxhYmxlIiwiaXNQcmV2aWV3RGVza3RvcCIsImlzUHJldmlld1RhYmxldCIsImlzUHJldmlld01vYmlsZSIsImlzTGFyZ2VyIiwiaXNMYXJnZSIsImlzU21hbGwiLCJpc1NtYWxsZXIiLCJpc0Rlc2t0b3AiLCJpc1RhYmxldCIsImlzTW9iaWxlIiwiY29sb3IiLCJmb250U2l6ZSIsIlNhdmUiLCJjYWxlbmRhciIsImljb24iLCJyZWdpc3RlckJsb2NrVHlwZSIsImVkaXQiLCJzYXZlIiwidGl0bGUiLCJkZXNjcmlwdGlvbiIsImNhdGVnb3J5Iiwia2V5d29yZHMiLCJzdXBwb3J0cyIsImFsaWduIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///3954\n")},173:function(__unused_webpack_module,__unused_webpack___webpack_exports__,__webpack_require__){eval("\n// EXTERNAL MODULE: external [\"wp\",\"i18n\"]\nvar external_wp_i18n_ = __webpack_require__(5736);\n// EXTERNAL MODULE: external [\"wp\",\"blocks\"]\nvar external_wp_blocks_ = __webpack_require__(4981);\n// EXTERNAL MODULE: ./src/blocks/helpers/icons.js\nvar icons = __webpack_require__(340);\n;// CONCATENATED MODULE: ./src/blocks/blocks/font-awesome-icons/attributes.js\nconst attributes = {\n id: {\n type: 'string'\n },\n align: {\n type: 'string'\n },\n library: {\n type: 'string',\n default: 'fontawesome'\n },\n prefix: {\n type: 'string',\n default: 'fab'\n },\n icon: {\n type: 'string',\n default: 'themeisle'\n },\n link: {\n type: 'string'\n },\n newTab: {\n type: 'boolean',\n default: false\n },\n fontSize: {\n type: 'number',\n default: 16\n },\n padding: {\n type: 'number',\n default: 5\n },\n margin: {\n type: 'number',\n default: 5\n },\n backgroundColor: {\n type: 'string'\n },\n textColor: {\n type: 'string'\n },\n borderColor: {\n type: 'string'\n },\n backgroundColorHover: {\n type: 'string'\n },\n textColorHover: {\n type: 'string'\n },\n borderColorHover: {\n type: 'string'\n },\n borderSize: {\n type: 'number',\n default: 0\n },\n borderRadius: {\n type: 'number',\n default: 0\n }\n};\n/* harmony default export */ var font_awesome_icons_attributes = (attributes);\n// EXTERNAL MODULE: external [\"wp\",\"element\"]\nvar external_wp_element_ = __webpack_require__(9307);\n;// CONCATENATED MODULE: ./src/blocks/blocks/font-awesome-icons/deprecated.js\n\nconst deprecated_attributes = {\n prefix: {\n type: 'string',\n default: 'fab'\n },\n icon: {\n type: 'string',\n default: 'themeisle'\n },\n fontSize: {\n type: 'number',\n default: 16\n },\n padding: {\n type: 'number',\n default: 5\n },\n margin: {\n type: 'number',\n default: 5\n },\n backgroundColor: {\n type: 'string'\n },\n textColor: {\n type: 'string'\n },\n borderColor: {\n type: 'string'\n },\n borderSize: {\n type: 'number',\n default: 0\n },\n borderRadius: {\n type: 'number',\n default: 0\n }\n};\nconst deprecated = [{\n attributes: deprecated_attributes,\n supports: {\n align: ['left', 'center', 'right']\n },\n migrate: oldAttributes => {\n let align = 'center';\n\n if (oldAttributes.className.includes('alignleft')) {\n align = 'left';\n }\n\n if (oldAttributes.className.includes('aligncenter')) {\n align = 'center';\n }\n\n if (oldAttributes.className.includes('alignright')) {\n align = 'right';\n }\n\n return { ...oldAttributes,\n align,\n className: ''\n };\n },\n save: ({\n attributes,\n className\n }) => {\n const iconStyle = {\n borderRadius: attributes.borderRadius + '%',\n fontSize: attributes.fontSize + 'px',\n padding: attributes.padding + 'px'\n };\n const containerStyle = {\n color: attributes.textColor,\n backgroundColor: attributes.backgroundColor,\n borderColor: attributes.borderColor,\n borderRadius: attributes.borderRadius + '%',\n borderStyle: 'solid',\n borderWidth: attributes.borderSize + 'px',\n display: 'inline-block',\n margin: attributes.margin + 'px'\n };\n return (0,external_wp_element_.createElement)(\"p\", {\n className: className,\n style: {\n textAlign: attributes.align\n }\n }, (0,external_wp_element_.createElement)(\"span\", {\n className: `${className}-container`,\n style: containerStyle\n }, (0,external_wp_element_.createElement)(\"i\", {\n className: `${attributes.prefix} fa-${attributes.icon}`,\n style: iconStyle\n })));\n }\n}, {\n attributes: { ...deprecated_attributes,\n align: {\n type: 'string'\n }\n },\n save: ({\n attributes,\n className\n }) => {\n const iconStyle = {\n borderRadius: attributes.borderRadius + '%',\n fontSize: attributes.fontSize + 'px',\n padding: attributes.padding + 'px'\n };\n const containerStyle = {\n color: attributes.textColor,\n backgroundColor: attributes.backgroundColor,\n borderColor: attributes.borderColor,\n borderRadius: attributes.borderRadius + '%',\n borderStyle: 'solid',\n borderWidth: attributes.borderSize + 'px',\n display: 'inline-block',\n margin: attributes.margin + 'px'\n };\n return (0,external_wp_element_.createElement)(\"p\", {\n className: className,\n style: {\n textAlign: attributes.align\n }\n }, (0,external_wp_element_.createElement)(\"span\", {\n className: \"undefined-container\",\n style: containerStyle\n }, (0,external_wp_element_.createElement)(\"i\", {\n className: `${attributes.prefix} fa-${attributes.icon}`,\n style: iconStyle\n })));\n }\n}, {\n attributes: { ...deprecated_attributes,\n id: {\n type: 'string'\n },\n align: {\n type: 'string'\n },\n link: {\n type: 'string'\n },\n newTab: {\n type: 'boolean',\n default: false\n },\n backgroundColorHover: {\n type: 'string'\n },\n textColorHover: {\n type: 'string'\n },\n borderColorHover: {\n type: 'string'\n }\n },\n save: ({\n attributes,\n className\n }) => {\n const containerStyle = {\n borderRadius: attributes.borderRadius + '%',\n borderStyle: 'solid',\n borderWidth: attributes.borderSize + 'px',\n display: 'inline-block',\n margin: attributes.margin + 'px'\n };\n const iconStyle = {\n borderRadius: attributes.borderRadius + '%',\n fontSize: attributes.fontSize + 'px',\n padding: attributes.padding + 'px'\n };\n\n const IconElement = () => {\n return (0,external_wp_element_.createElement)(\"i\", {\n className: `${attributes.prefix} fa-${attributes.icon}`,\n style: iconStyle\n });\n };\n\n return (0,external_wp_element_.createElement)(\"p\", {\n className: className,\n id: attributes.id,\n style: {\n textAlign: attributes.align\n }\n }, (0,external_wp_element_.createElement)(\"span\", {\n className: \"wp-block-themeisle-blocks-font-awesome-icons-container\",\n style: containerStyle\n }, attributes.link ? (0,external_wp_element_.createElement)(\"a\", {\n href: attributes.link,\n target: attributes.newTab ? '_blank' : '_self',\n style: {\n color: attributes.textColor\n },\n rel: \"noopener noreferrer\"\n }, (0,external_wp_element_.createElement)(IconElement, null)) : (0,external_wp_element_.createElement)(IconElement, null)));\n }\n}];\n/* harmony default export */ var font_awesome_icons_deprecated = (deprecated);\n// EXTERNAL MODULE: external [\"wp\",\"blockEditor\"]\nvar external_wp_blockEditor_ = __webpack_require__(2175);\n// EXTERNAL MODULE: ./src/blocks/components/link-control/index.js\nvar link_control = __webpack_require__(8504);\n;// CONCATENATED MODULE: ./src/blocks/blocks/font-awesome-icons/controls.js\n\n\n/**\n * WordPress dependencies...\n */\n\n/**\n * Internal dependencies\n */\n\n\n\nconst Controls = ({\n attributes,\n setAttributes,\n isSelected\n}) => {\n return (0,external_wp_element_.createElement)(external_wp_blockEditor_.BlockControls, null, (0,external_wp_element_.createElement)(external_wp_blockEditor_.AlignmentToolbar, {\n value: attributes.align,\n onChange: e => setAttributes({\n align: e\n })\n }), (0,external_wp_element_.createElement)(link_control/* default */.Z, {\n isSelected: isSelected,\n setAttributes: setAttributes,\n url: attributes.link,\n opensInNewTab: attributes.newTab\n }));\n};\n\n/* harmony default export */ var controls = (Controls);\n// EXTERNAL MODULE: external [\"wp\",\"components\"]\nvar external_wp_components_ = __webpack_require__(5609);\n// EXTERNAL MODULE: ./src/blocks/components/color-base-control/index.js\nvar color_base_control = __webpack_require__(6778);\n;// CONCATENATED MODULE: ./src/blocks/blocks/font-awesome-icons/inspector.js\n\n\n/**\n * WordPress dependencies...\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\nconst IconPickerControl = (0,external_wp_element_.lazy)(() => Promise.all(/* import() */[__webpack_require__.e(189), __webpack_require__.e(110)]).then(__webpack_require__.bind(__webpack_require__, 2110)));\n\n\nconst Inspector = ({\n attributes,\n setAttributes\n}) => {\n const [hover, setHover] = (0,external_wp_element_.useState)(false);\n\n const changeLibrary = value => {\n setAttributes({\n library: value,\n icon: 'fontawesome' === value ? 'themeisle' : 'balance',\n prefix: 'fab'\n });\n };\n\n const changeIcon = value => {\n if ('object' === typeof value) {\n setAttributes({\n icon: value.name,\n prefix: value.prefix\n });\n } else {\n setAttributes({\n icon: value\n });\n }\n };\n\n return (0,external_wp_element_.createElement)(external_wp_blockEditor_.InspectorControls, null, (0,external_wp_element_.createElement)(external_wp_components_.PanelBody, {\n title: (0,external_wp_i18n_.__)('Icon', 'otter-blocks')\n }, (0,external_wp_element_.createElement)(external_wp_element_.Suspense, {\n fallback: (0,external_wp_element_.createElement)(external_wp_components_.Placeholder, null, (0,external_wp_element_.createElement)(external_wp_components_.Spinner, null))\n }, (0,external_wp_element_.createElement)(IconPickerControl, {\n label: (0,external_wp_i18n_.__)('Icon Picker', 'otter-blocks'),\n library: attributes.library,\n prefix: attributes.prefix,\n icon: attributes.icon,\n changeLibrary: changeLibrary,\n onChange: changeIcon\n }))), (0,external_wp_element_.createElement)(external_wp_components_.PanelBody, {\n title: (0,external_wp_i18n_.__)('Icon Sizes', 'otter-blocks'),\n initialOpen: false\n }, (0,external_wp_element_.createElement)(external_wp_components_.RangeControl, {\n label: (0,external_wp_i18n_.__)('Icon Size', 'otter-blocks'),\n value: attributes.fontSize || '',\n initialPosition: 16,\n onChange: e => setAttributes({\n fontSize: e\n }),\n min: 12,\n max: 140\n }), (0,external_wp_element_.createElement)(external_wp_components_.RangeControl, {\n label: (0,external_wp_i18n_.__)('Padding', 'otter-blocks'),\n value: attributes.padding || '',\n initialPosition: 5,\n onChange: e => setAttributes({\n padding: e\n }),\n min: 0,\n max: 100\n }), (0,external_wp_element_.createElement)(external_wp_components_.RangeControl, {\n label: (0,external_wp_i18n_.__)('Margin', 'otter-blocks'),\n value: attributes.margin || '',\n initialPosition: 5,\n onChange: e => setAttributes({\n margin: e\n }),\n min: 0,\n max: 100\n })), (0,external_wp_element_.createElement)(external_wp_components_.PanelBody, {\n title: (0,external_wp_i18n_.__)('Color', 'otter-blocks'),\n initialOpen: false\n }, (0,external_wp_element_.createElement)(external_wp_components_.ButtonGroup, null, (0,external_wp_element_.createElement)(external_wp_components_.Button, {\n isSmall: true,\n isSecondary: hover,\n isPrimary: !hover,\n onClick: () => setHover(false)\n }, (0,external_wp_i18n_.__)('Normal', 'otter-blocks')), (0,external_wp_element_.createElement)(external_wp_components_.Button, {\n isSmall: true,\n isSecondary: !hover,\n isPrimary: hover,\n onClick: () => setHover(true)\n }, (0,external_wp_i18n_.__)('Hover', 'otter-blocks'))), hover ? (0,external_wp_element_.createElement)(external_wp_element_.Fragment, null, (0,external_wp_element_.createElement)(color_base_control/* default */.Z, {\n label: (0,external_wp_i18n_.__)('Hover Background', 'otter-blocks'),\n colorValue: attributes.backgroundColorHover\n }, (0,external_wp_element_.createElement)(external_wp_blockEditor_.ColorPalette, {\n label: (0,external_wp_i18n_.__)('Hover Background', 'otter-blocks'),\n value: attributes.backgroundColorHover,\n onChange: e => setAttributes({\n backgroundColorHover: e\n })\n })), (0,external_wp_element_.createElement)(color_base_control/* default */.Z, {\n label: (0,external_wp_i18n_.__)('Hover Icon', 'otter-blocks'),\n colorValue: attributes.textColorHover\n }, (0,external_wp_element_.createElement)(external_wp_blockEditor_.ColorPalette, {\n label: (0,external_wp_i18n_.__)('Hover Icon', 'otter-blocks'),\n value: attributes.textColorHover,\n onChange: e => setAttributes({\n textColorHover: e\n })\n })), (0,external_wp_element_.createElement)(color_base_control/* default */.Z, {\n label: (0,external_wp_i18n_.__)('Hover Border', 'otter-blocks'),\n colorValue: attributes.borderColorHover\n }, (0,external_wp_element_.createElement)(external_wp_blockEditor_.ColorPalette, {\n label: (0,external_wp_i18n_.__)('Hover Border', 'otter-blocks'),\n value: attributes.borderColorHover,\n onChange: e => setAttributes({\n borderColorHover: e\n })\n })), (0,external_wp_element_.createElement)(external_wp_blockEditor_.ContrastChecker, {\n textColor: attributes.textColorHover,\n backgroundColor: attributes.backgroundColorHover\n })) : (0,external_wp_element_.createElement)(external_wp_element_.Fragment, null, (0,external_wp_element_.createElement)(color_base_control/* default */.Z, {\n label: (0,external_wp_i18n_.__)('Background', 'otter-blocks'),\n colorValue: attributes.backgroundColor\n }, (0,external_wp_element_.createElement)(external_wp_blockEditor_.ColorPalette, {\n label: (0,external_wp_i18n_.__)('Background', 'otter-blocks'),\n value: attributes.backgroundColor,\n onChange: e => setAttributes({\n backgroundColor: e\n })\n })), (0,external_wp_element_.createElement)(color_base_control/* default */.Z, {\n label: (0,external_wp_i18n_.__)('Icon', 'otter-blocks'),\n colorValue: attributes.textColor\n }, (0,external_wp_element_.createElement)(external_wp_blockEditor_.ColorPalette, {\n label: (0,external_wp_i18n_.__)('Icon', 'otter-blocks'),\n value: attributes.textColor,\n onChange: e => setAttributes({\n textColor: e\n })\n })), (0,external_wp_element_.createElement)(color_base_control/* default */.Z, {\n label: (0,external_wp_i18n_.__)('Border', 'otter-blocks'),\n colorValue: attributes.borderColor\n }, (0,external_wp_element_.createElement)(external_wp_blockEditor_.ColorPalette, {\n label: (0,external_wp_i18n_.__)('Border', 'otter-blocks'),\n value: attributes.borderColor,\n onChange: e => setAttributes({\n borderColor: e\n })\n })), (0,external_wp_element_.createElement)(external_wp_blockEditor_.ContrastChecker, {\n textColor: attributes.textColor,\n backgroundColor: attributes.backgroundColor\n }))), (0,external_wp_element_.createElement)(external_wp_components_.PanelBody, {\n title: (0,external_wp_i18n_.__)('Border Settings', 'otter-blocks'),\n initialOpen: false\n }, (0,external_wp_element_.createElement)(external_wp_components_.RangeControl, {\n label: (0,external_wp_i18n_.__)('Border Size', 'otter-blocks'),\n value: attributes.borderSize,\n onChange: e => setAttributes({\n borderSize: e\n }),\n min: 0,\n max: 120\n }), (0,external_wp_element_.createElement)(external_wp_components_.RangeControl, {\n label: (0,external_wp_i18n_.__)('Border Radius', 'otter-blocks'),\n value: attributes.borderRadius,\n onChange: e => setAttributes({\n borderRadius: e\n }),\n min: 0,\n max: 100\n })));\n};\n\n/* harmony default export */ var inspector = (Inspector);\n// EXTERNAL MODULE: ./src/blocks/helpers/themeisle-icons.js\nvar themeisle_icons = __webpack_require__(48);\n// EXTERNAL MODULE: ./src/blocks/helpers/block-utility.js\nvar block_utility = __webpack_require__(5225);\n;// CONCATENATED MODULE: ./src/blocks/blocks/font-awesome-icons/edit.js\n\n\n/**\n * WordPress dependencies...\n */\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\n\nconst Edit = ({\n attributes,\n setAttributes,\n className,\n isSelected,\n clientId\n}) => {\n (0,external_wp_element_.useEffect)(() => {\n const unsubscribe = (0,block_utility/* blockInit */.WX)(clientId, font_awesome_icons_attributes);\n return () => unsubscribe(attributes.id);\n }, [attributes.id]);\n let iconStyle = {\n borderRadius: attributes.borderRadius + '%',\n fontSize: attributes.fontSize + 'px',\n padding: attributes.padding + 'px'\n };\n\n if ('themeisle-icons' === attributes.library) {\n iconStyle = {\n fill: attributes.textColor,\n padding: attributes.padding + 'px',\n width: attributes.fontSize + attributes.padding * 2 + attributes.borderSize * 2\n };\n }\n\n const containerStyle = {\n color: attributes.textColor,\n backgroundColor: attributes.backgroundColor,\n borderColor: attributes.borderColor,\n borderRadius: attributes.borderRadius + '%',\n borderStyle: 'solid',\n borderWidth: attributes.borderSize + 'px',\n margin: attributes.margin + 'px',\n width: attributes.fontSize + attributes.padding * 2 + attributes.borderSize * 2\n };\n const Icon = themeisle_icons/* default.icons */.ZP.icons[attributes.icon];\n return (0,external_wp_element_.createElement)(external_wp_element_.Fragment, null, (0,external_wp_element_.createElement)(controls, {\n attributes: attributes,\n setAttributes: setAttributes,\n isSelected: isSelected\n }), (0,external_wp_element_.createElement)(inspector, {\n attributes: attributes,\n setAttributes: setAttributes\n }), (0,external_wp_element_.createElement)(\"style\", null, `#${attributes.id} .${className}-container:hover {\n\t\t\t\t\t\tcolor: ${attributes.textColorHover ? attributes.textColorHover : attributes.textColor} !important;\n\t\t\t\t\t\tbackground: ${attributes.backgroundColorHover ? attributes.backgroundColorHover : attributes.backgroundColor} !important;\n\t\t\t\t\t\tborder-color: ${attributes.borderColorHover ? attributes.borderColorHover : attributes.borderColor} !important;\n\t\t\t\t\t}\n\n\t\t\t\t\t#${attributes.id} .${className}-container:hover svg {\n\t\t\t\t\t\tfill: ${attributes.textColorHover ? attributes.textColorHover : attributes.textColor} !important;\n\t\t\t\t\t}`), (0,external_wp_element_.createElement)(\"p\", {\n className: className,\n id: attributes.id,\n style: {\n textAlign: attributes.align\n }\n }, (0,external_wp_element_.createElement)(\"span\", {\n className: \"wp-block-themeisle-blocks-font-awesome-icons-container\",\n style: containerStyle\n }, 'themeisle-icons' === attributes.library ? (0,external_wp_element_.createElement)(Icon, {\n style: iconStyle\n }) : (0,external_wp_element_.createElement)(\"i\", {\n className: `${attributes.prefix} fa-${attributes.icon}`,\n style: iconStyle\n }))));\n};\n\n/* harmony default export */ var edit = (Edit);\n;// CONCATENATED MODULE: ./src/blocks/blocks/font-awesome-icons/save.js\n\n\n/**\n * Internal dependencies\n */\n\n\nconst Save = ({\n attributes,\n className\n}) => {\n const Icon = themeisle_icons/* default.icons */.ZP.icons[attributes.icon];\n return (0,external_wp_element_.createElement)(\"p\", {\n className: className,\n id: attributes.id\n }, (0,external_wp_element_.createElement)(\"span\", {\n className: \"wp-block-themeisle-blocks-font-awesome-icons-container\"\n }, attributes.link ? (0,external_wp_element_.createElement)(\"a\", {\n href: attributes.link,\n target: attributes.newTab ? '_blank' : '_self',\n rel: \"noopener noreferrer\"\n }, 'themeisle-icons' === attributes.library ? (0,external_wp_element_.createElement)(Icon, null) : (0,external_wp_element_.createElement)(\"i\", {\n className: `${attributes.prefix} fa-${attributes.icon}`\n })) : 'themeisle-icons' === attributes.library ? (0,external_wp_element_.createElement)(Icon, null) : (0,external_wp_element_.createElement)(\"i\", {\n className: `${attributes.prefix} fa-${attributes.icon}`\n })));\n};\n\n/* harmony default export */ var save = (Save);\n;// CONCATENATED MODULE: ./src/blocks/blocks/font-awesome-icons/index.js\n/**\n * WordPress dependencies...\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\n\n\n(0,external_wp_blocks_.registerBlockType)('themeisle-blocks/font-awesome-icons', {\n title: (0,external_wp_i18n_.__)('Icon', 'otter-blocks'),\n description: (0,external_wp_i18n_.__)('Add icons from Font Awesome or ThemeIsle Icons library to your website.', 'otter-blocks'),\n icon: icons/* faIcon */.rL,\n category: 'themeisle-blocks',\n keywords: ['font awesome', 'dashicons', 'icons'],\n attributes: font_awesome_icons_attributes,\n deprecated: font_awesome_icons_deprecated,\n edit: edit,\n save: save\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUVDLFVBQU0sRUFBR1IsVUFBVSxDQUFDUyxNQUFYLEdBQW9CLFFBQXBCLEdBQStCLE9BRnpDO0FBR0MsT0FBRyxFQUFDO0FBSEwsS0FLRyxzQkFBc0JULFVBQVUsQ0FBQ0ksT0FBakMsR0FDRCx1Q0FBQyxJQUFELE9BREMsR0FFRDtBQUFHLGFBQVMsRUFBSSxHQUFHSixVQUFVLENBQUNNLE1BQVEsT0FBT04sVUFBVSxDQUFDTyxJQUFNO0FBQTlELElBUEYsQ0FEQyxHQVlELHNCQUFzQlAsVUFBVSxDQUFDSSxPQUFqQyxHQUNDLHVDQUFDLElBQUQsT0FERCxHQUVDO0FBQUcsYUFBUyxFQUFJLEdBQUdKLFVBQVUsQ0FBQ00sTUFBUSxPQUFPTixVQUFVLENBQUNPLElBQU07QUFBOUQsSUFmSCxDQUpELENBREQ7QUF5QkEsQ0EvQkQ7O0FBaUNBLHlDQUFlc0UsSUFBZixFOztBQ3RDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUNBOztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUFDLHlDQUFpQixDQUFFLHFDQUFGLEVBQXlDO0FBQ3pERyxFQUFBQSxLQUFLLEVBQUV0Qyx3QkFBRSxDQUFFLE1BQUYsRUFBVSxjQUFWLENBRGdEO0FBRXpEdUMsRUFBQUEsV0FBVyxFQUFFdkMsd0JBQUUsQ0FBRSx5RUFBRixFQUE2RSxjQUE3RSxDQUYwQztBQUd6RHBDLEVBQUFBLElBSHlEO0FBSXpENEUsRUFBQUEsUUFBUSxFQUFFLGtCQUorQztBQUt6REMsRUFBQUEsUUFBUSxFQUFFLENBQ1QsY0FEUyxFQUVULFdBRlMsRUFHVCxPQUhTLENBTCtDO0FBVXpEcEYsRUFBQUEsVUFWeUQ7QUFXekRxQixFQUFBQSxVQVh5RDtBQVl6RDJELEVBQUFBLElBWnlEO0FBYXpEckQsRUFBQUEsSUFBSUEsRUFBQUEsSUFBQUE7QUFicUQsQ0FBekMsQ0FBakIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9vdHRlci1ibG9ja3MvLi9zcmMvYmxvY2tzL2Jsb2Nrcy9mb250LWF3ZXNvbWUtaWNvbnMvYXR0cmlidXRlcy5qcz84MzMxIiwid2VicGFjazovL290dGVyLWJsb2Nrcy8uL3NyYy9ibG9ja3MvYmxvY2tzL2ZvbnQtYXdlc29tZS1pY29ucy9kZXByZWNhdGVkLmpzPzlhZGQiLCJ3ZWJwYWNrOi8vb3R0ZXItYmxvY2tzLy4vc3JjL2Jsb2Nrcy9ibG9ja3MvZm9udC1hd2Vzb21lLWljb25zL2NvbnRyb2xzLmpzP2FiMjIiLCJ3ZWJwYWNrOi8vb3R0ZXItYmxvY2tzLy4vc3JjL2Jsb2Nrcy9ibG9ja3MvZm9udC1hd2Vzb21lLWljb25zL2luc3BlY3Rvci5qcz8yMTJjIiwid2VicGFjazovL290dGVyLWJsb2Nrcy8uL3NyYy9ibG9ja3MvYmxvY2tzL2ZvbnQtYXdlc29tZS1pY29ucy9lZGl0LmpzPzBiNWMiLCJ3ZWJwYWNrOi8vb3R0ZXItYmxvY2tzLy4vc3JjL2Jsb2Nrcy9ibG9ja3MvZm9udC1hd2Vzb21lLWljb25zL3NhdmUuanM/NTIwMCIsIndlYnBhY2s6Ly9vdHRlci1ibG9ja3MvLi9zcmMvYmxvY2tzL2Jsb2Nrcy9mb250LWF3ZXNvbWUtaWNvbnMvaW5kZXguanM/NjgxYyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBhdHRyaWJ1dGVzID0ge1xuXHRpZDoge1xuXHRcdHR5cGU6ICdzdHJpbmcnXG5cdH0sXG5cdGFsaWduOiB7XG5cdFx0dHlwZTogJ3N0cmluZydcblx0fSxcblx0bGlicmFyeToge1xuXHRcdHR5cGU6ICdzdHJpbmcnLFxuXHRcdGRlZmF1bHQ6ICdmb250YXdlc29tZSdcblx0fSxcblx0cHJlZml4OiB7XG5cdFx0dHlwZTogJ3N0cmluZycsXG5cdFx0ZGVmYXVsdDogJ2ZhYidcblx0fSxcblx0aWNvbjoge1xuXHRcdHR5cGU6ICdzdHJpbmcnLFxuXHRcdGRlZmF1bHQ6ICd0aGVtZWlzbGUnXG5cdH0sXG5cdGxpbms6IHtcblx0XHR0eXBlOiAnc3RyaW5nJ1xuXHR9LFxuXHRuZXdUYWI6IHtcblx0XHR0eXBlOiAnYm9vbGVhbicsXG5cdFx0ZGVmYXVsdDogZmFsc2Vcblx0fSxcblx0Zm9udFNpemU6IHtcblx0XHR0eXBlOiAnbnVtYmVyJyxcblx0XHRkZWZhdWx0OiAxNlxuXHR9LFxuXHRwYWRkaW5nOiB7XG5cdFx0dHlwZTogJ251bWJlcicsXG5cdFx0ZGVmYXVsdDogNVxuXHR9LFxuXHRtYXJnaW46IHtcblx0XHR0eXBlOiAnbnVtYmVyJyxcblx0XHRkZWZhdWx0OiA1XG5cdH0sXG5cdGJhY2tncm91bmRDb2xvcjoge1xuXHRcdHR5cGU6ICdzdHJpbmcnXG5cdH0sXG5cdHRleHRDb2xvcjoge1xuXHRcdHR5cGU6ICdzdHJpbmcnXG5cdH0sXG5cdGJvcmRlckNvbG9yOiB7XG5cdFx0dHlwZTogJ3N0cmluZydcblx0fSxcblx0YmFja2dyb3VuZENvbG9ySG92ZXI6IHtcblx0XHR0eXBlOiAnc3RyaW5nJ1xuXHR9LFxuXHR0ZXh0Q29sb3JIb3Zlcjoge1xuXHRcdHR5cGU6ICdzdHJpbmcnXG5cdH0sXG5cdGJvcmRlckNvbG9ySG92ZXI6IHtcblx0XHR0eXBlOiAnc3RyaW5nJ1xuXHR9LFxuXHRib3JkZXJTaXplOiB7XG5cdFx0dHlwZTogJ251bWJlcicsXG5cdFx0ZGVmYXVsdDogMFxuXHR9LFxuXHRib3JkZXJSYWRpdXM6IHtcblx0XHR0eXBlOiAnbnVtYmVyJyxcblx0XHRkZWZhdWx0OiAwXG5cdH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IGF0dHJpYnV0ZXM7XG4iLCJjb25zdCBhdHRyaWJ1dGVzID0ge1xuXHRwcmVmaXg6IHtcblx0XHR0eXBlOiAnc3RyaW5nJyxcblx0XHRkZWZhdWx0OiAnZmFiJ1xuXHR9LFxuXHRpY29uOiB7XG5cdFx0dHlwZTogJ3N0cmluZycsXG5cdFx0ZGVmYXVsdDogJ3RoZW1laXNsZSdcblx0fSxcblx0Zm9udFNpemU6IHtcblx0XHR0eXBlOiAnbnVtYmVyJyxcblx0XHRkZWZhdWx0OiAxNlxuXHR9LFxuXHRwYWRkaW5nOiB7XG5cdFx0dHlwZTogJ251bWJlcicsXG5cdFx0ZGVmYXVsdDogNVxuXHR9LFxuXHRtYXJnaW46IHtcblx0XHR0eXBlOiAnbnVtYmVyJyxcblx0XHRkZWZhdWx0OiA1XG5cdH0sXG5cdGJhY2tncm91bmRDb2xvcjoge1xuXHRcdHR5cGU6ICdzdHJpbmcnXG5cdH0sXG5cdHRleHRDb2xvcjoge1xuXHRcdHR5cGU6ICdzdHJpbmcnXG5cdH0sXG5cdGJvcmRlckNvbG9yOiB7XG5cdFx0dHlwZTogJ3N0cmluZydcblx0fSxcblx0Ym9yZGVyU2l6ZToge1xuXHRcdHR5cGU6ICdudW1iZXInLFxuXHRcdGRlZmF1bHQ6IDBcblx0fSxcblx0Ym9yZGVyUmFkaXVzOiB7XG5cdFx0dHlwZTogJ251bWJlcicsXG5cdFx0ZGVmYXVsdDogMFxuXHR9XG59O1xuXG5jb25zdCBkZXByZWNhdGVkID0gWyB7XG5cdGF0dHJpYnV0ZXMsXG5cblx0c3VwcG9ydHM6IHtcblx0XHRhbGlnbjogWyAnbGVmdCcsICdjZW50ZXInLCAncmlnaHQnIF1cblx0fSxcblxuXHRtaWdyYXRlOiBvbGRBdHRyaWJ1dGVzID0+IHtcblx0XHRsZXQgYWxpZ24gPSAnY2VudGVyJztcblxuXHRcdGlmICggb2xkQXR0cmlidXRlcy5jbGFzc05hbWUuaW5jbHVkZXMoICdhbGlnbmxlZnQnICkgKSB7XG5cdFx0XHRhbGlnbiA9ICdsZWZ0Jztcblx0XHR9XG5cblx0XHRpZiAoIG9sZEF0dHJpYnV0ZXMuY2xhc3NOYW1lLmluY2x1ZGVzKCAnYWxpZ25jZW50ZXInICkgKSB7XG5cdFx0XHRhbGlnbiA9ICdjZW50ZXInO1xuXHRcdH1cblxuXHRcdGlmICggb2xkQXR0cmlidXRlcy5jbGFzc05hbWUuaW5jbHVkZXMoICdhbGlnbnJpZ2h0JyApICkge1xuXHRcdFx0YWxpZ24gPSAncmlnaHQnO1xuXHRcdH1cblxuXHRcdHJldHVybiB7XG5cdFx0XHQuLi5vbGRBdHRyaWJ1dGVzLFxuXHRcdFx0YWxpZ24sXG5cdFx0XHRjbGFzc05hbWU6ICcnXG5cdFx0fTtcblx0fSxcblxuXHRzYXZlOiAoe1xuXHRcdGF0dHJpYnV0ZXMsXG5cdFx0Y2xhc3NOYW1lXG5cdH0pID0+IHtcblx0XHRjb25zdCBpY29uU3R5bGUgPSB7XG5cdFx0XHRib3JkZXJSYWRpdXM6IGF0dHJpYnV0ZXMuYm9yZGVyUmFkaXVzICsgJyUnLFxuXHRcdFx0Zm9udFNpemU6IGF0dHJpYnV0ZXMuZm9udFNpemUgKyAncHgnLFxuXHRcdFx0cGFkZGluZzogYXR0cmlidXRlcy5wYWRkaW5nICsgJ3B4J1xuXHRcdH07XG5cblx0XHRjb25zdCBjb250YWluZXJTdHlsZSA9IHtcblx0XHRcdGNvbG9yOiBhdHRyaWJ1dGVzLnRleHRDb2xvcixcblx0XHRcdGJhY2tncm91bmRDb2xvcjogYXR0cmlidXRlcy5iYWNrZ3JvdW5kQ29sb3IsXG5cdFx0XHRib3JkZXJDb2xvcjogYXR0cmlidXRlcy5ib3JkZXJDb2xvcixcblx0XHRcdGJvcmRlclJhZGl1czogYXR0cmlidXRlcy5ib3JkZXJSYWRpdXMgKyAnJScsXG5cdFx0XHRib3JkZXJTdHlsZTogJ3NvbGlkJyxcblx0XHRcdGJvcmRlcldpZHRoOiBhdHRyaWJ1dGVzLmJvcmRlclNpemUgKyAncHgnLFxuXHRcdFx0ZGlzcGxheTogJ2lubGluZS1ibG9jaycsXG5cdFx0XHRtYXJnaW46IGF0dHJpYnV0ZXMubWFyZ2luICsgJ3B4J1xuXHRcdH07XG5cblx0XHRyZXR1cm4gKFxuXHRcdFx0PHBcblx0XHRcdFx0Y2xhc3NOYW1lPXsgY2xhc3NOYW1lIH1cblx0XHRcdFx0c3R5bGU9eyB7IHRleHRBbGlnbjogYXR0cmlidXRlcy5hbGlnbiB9IH1cblx0XHRcdD5cblx0XHRcdFx0PHNwYW5cblx0XHRcdFx0XHRjbGFzc05hbWU9eyBgJHsgY2xhc3NOYW1lIH0tY29udGFpbmVyYCB9XG5cdFx0XHRcdFx0c3R5bGU9eyBjb250YWluZXJTdHlsZSB9XG5cdFx0XHRcdD5cblx0XHRcdFx0XHQ8aVxuXHRcdFx0XHRcdFx0Y2xhc3NOYW1lPXsgYCR7IGF0dHJpYnV0ZXMucHJlZml4IH0gZmEtJHsgYXR0cmlidXRlcy5pY29uIH1gIH1cblx0XHRcdFx0XHRcdHN0eWxlPXsgaWNvblN0eWxlIH1cblx0XHRcdFx0XHQ+XG5cdFx0XHRcdFx0PC9pPlxuXHRcdFx0XHQ8L3NwYW4+XG5cdFx0XHQ8L3A+XG5cdFx0KTtcblx0fVxufSwge1xuXHRhdHRyaWJ1dGVzOiB7XG5cdFx0Li4uYXR0cmlidXRlcyxcblx0XHRhbGlnbjoge1xuXHRcdFx0dHlwZTogJ3N0cmluZydcblx0XHR9XG5cdH0sXG5cblx0c2F2ZTogKHtcblx0XHRhdHRyaWJ1dGVzLFxuXHRcdGNsYXNzTmFtZVxuXHR9KSA9PiB7XG5cdFx0Y29uc3QgaWNvblN0eWxlID0ge1xuXHRcdFx0Ym9yZGVyUmFkaXVzOiBhdHRyaWJ1dGVzLmJvcmRlclJhZGl1cyArICclJyxcblx0XHRcdGZvbnRTaXplOiBhdHRyaWJ1dGVzLmZvbnRTaXplICsgJ3B4Jyxcblx0XHRcdHBhZGRpbmc6IGF0dHJpYnV0ZXMucGFkZGluZyArICdweCdcblx0XHR9O1xuXG5cdFx0Y29uc3QgY29udGFpbmVyU3R5bGUgPSB7XG5cdFx0XHRjb2xvcjogYXR0cmlidXRlcy50ZXh0Q29sb3IsXG5cdFx0XHRiYWNrZ3JvdW5kQ29sb3I6IGF0dHJpYnV0ZXMuYmFja2dyb3VuZENvbG9yLFxuXHRcdFx0Ym9yZGVyQ29sb3I6IGF0dHJpYnV0ZXMuYm9yZGVyQ29sb3IsXG5cdFx0XHRib3JkZXJSYWRpdXM6IGF0dHJpYnV0ZXMuYm9yZGVyUmFkaXVzICsgJyUnLFxuXHRcdFx0Ym9yZGVyU3R5bGU6ICdzb2xpZCcsXG5cdFx0XHRib3JkZXJXaWR0aDogYXR0cmlidXRlcy5ib3JkZXJTaXplICsgJ3B4Jyxcblx0XHRcdGRpc3BsYXk6ICdpbmxpbmUtYmxvY2snLFxuXHRcdFx0bWFyZ2luOiBhdHRyaWJ1dGVzLm1hcmdpbiArICdweCdcblx0XHR9O1xuXG5cdFx0cmV0dXJuIChcblx0XHRcdDxwXG5cdFx0XHRcdGNsYXNzTmFtZT17IGNsYXNzTmFtZSB9XG5cdFx0XHRcdHN0eWxlPXsgeyB0ZXh0QWxpZ246IGF0dHJpYnV0ZXMuYWxpZ24gfSB9XG5cdFx0XHQ+XG5cdFx0XHRcdDxzcGFuXG5cdFx0XHRcdFx0Y2xhc3NOYW1lPVwidW5kZWZpbmVkLWNvbnRhaW5lclwiXG5cdFx0XHRcdFx0c3R5bGU9eyBjb250YWluZXJTdHlsZSB9XG5cdFx0XHRcdD5cblx0XHRcdFx0XHQ8aVxuXHRcdFx0XHRcdFx0Y2xhc3NOYW1lPXsgYCR7IGF0dHJpYnV0ZXMucHJlZml4IH0gZmEtJHsgYXR0cmlidXRlcy5pY29uIH1gIH1cblx0XHRcdFx0XHRcdHN0eWxlPXsgaWNvblN0eWxlIH1cblx0XHRcdFx0XHQ+XG5cdFx0XHRcdFx0PC9pPlxuXHRcdFx0XHQ8L3NwYW4+XG5cdFx0XHQ8L3A+XG5cdFx0KTtcblx0fVxufSwge1xuXHRhdHRyaWJ1dGVzOiB7XG5cdFx0Li4uYXR0cmlidXRlcyxcblx0XHRpZDoge1xuXHRcdFx0dHlwZTogJ3N0cmluZydcblx0XHR9LFxuXHRcdGFsaWduOiB7XG5cdFx0XHR0eXBlOiAnc3RyaW5nJ1xuXHRcdH0sXG5cdFx0bGluazoge1xuXHRcdFx0dHlwZTogJ3N0cmluZydcblx0XHR9LFxuXHRcdG5ld1RhYjoge1xuXHRcdFx0dHlwZTogJ2Jvb2xlYW4nLFxuXHRcdFx0ZGVmYXVsdDogZmFsc2Vcblx0XHR9LFxuXHRcdGJhY2tncm91bmRDb2xvckhvdmVyOiB7XG5cdFx0XHR0eXBlOiAnc3RyaW5nJ1xuXHRcdH0sXG5cdFx0dGV4dENvbG9ySG92ZXI6IHtcblx0XHRcdHR5cGU6ICdzdHJpbmcnXG5cdFx0fSxcblx0XHRib3JkZXJDb2xvckhvdmVyOiB7XG5cdFx0XHR0eXBlOiAnc3RyaW5nJ1xuXHRcdH1cblx0fSxcblxuXHRzYXZlOiAoe1xuXHRcdGF0dHJpYnV0ZXMsXG5cdFx0Y2xhc3NOYW1lXG5cdH0pID0+IHtcblx0XHRjb25zdCBjb250YWluZXJTdHlsZSA9IHtcblx0XHRcdGJvcmRlclJhZGl1czogYXR0cmlidXRlcy5ib3JkZXJSYWRpdXMgKyAnJScsXG5cdFx0XHRib3JkZXJTdHlsZTogJ3NvbGlkJyxcblx0XHRcdGJvcmRlcldpZHRoOiBhdHRyaWJ1dGVzLmJvcmRlclNpemUgKyAncHgnLFxuXHRcdFx0ZGlzcGxheTogJ2lubGluZS1ibG9jaycsXG5cdFx0XHRtYXJnaW46IGF0dHJpYnV0ZXMubWFyZ2luICsgJ3B4J1xuXHRcdH07XG5cblx0XHRjb25zdCBpY29uU3R5bGUgPSB7XG5cdFx0XHRib3JkZXJSYWRpdXM6IGF0dHJpYnV0ZXMuYm9yZGVyUmFkaXVzICsgJyUnLFxuXHRcdFx0Zm9udFNpemU6IGF0dHJpYnV0ZXMuZm9udFNpemUgKyAncHgnLFxuXHRcdFx0cGFkZGluZzogYXR0cmlidXRlcy5wYWRkaW5nICsgJ3B4J1xuXHRcdH07XG5cblx0XHRjb25zdCBJY29uRWxlbWVudCA9ICgpID0+IHtcblx0XHRcdHJldHVybiAoXG5cdFx0XHRcdDxpXG5cdFx0XHRcdFx0Y2xhc3NOYW1lPXsgYCR7IGF0dHJpYnV0ZXMucHJlZml4IH0gZmEtJHsgYXR0cmlidXRlcy5pY29uIH1gIH1cblx0XHRcdFx0XHRzdHlsZT17IGljb25TdHlsZSB9XG5cdFx0XHRcdD5cblx0XHRcdFx0PC9pPlxuXHRcdFx0KTtcblx0XHR9O1xuXG5cdFx0cmV0dXJuIChcblx0XHRcdDxwXG5cdFx0XHRcdGNsYXNzTmFtZT17IGNsYXNzTmFtZSB9XG5cdFx0XHRcdGlkPXsgYXR0cmlidXRlcy5pZCB9XG5cdFx0XHRcdHN0eWxlPXsgeyB0ZXh0QWxpZ246IGF0dHJpYnV0ZXMuYWxpZ24gfSB9XG5cdFx0XHQ+XG5cdFx0XHRcdDxzcGFuXG5cdFx0XHRcdFx0Y2xhc3NOYW1lPVwid3AtYmxvY2stdGhlbWVpc2xlLWJsb2Nrcy1mb250LWF3ZXNvbWUtaWNvbnMtY29udGFpbmVyXCJcblx0XHRcdFx0XHRzdHlsZT17IGNvbnRhaW5lclN0eWxlIH1cblx0XHRcdFx0PlxuXHRcdFx0XHRcdHsgKCBhdHRyaWJ1dGVzLmxpbmsgKSA/IChcblx0XHRcdFx0XHRcdDxhXG5cdFx0XHRcdFx0XHRcdGhyZWY9eyBhdHRyaWJ1dGVzLmxpbmsgfVxuXHRcdFx0XHRcdFx0XHR0YXJnZXQ9eyBhdHRyaWJ1dGVzLm5ld1RhYiA/ICdfYmxhbmsnIDogJ19zZWxmJyB9XG5cdFx0XHRcdFx0XHRcdHN0eWxlPXsge1xuXHRcdFx0XHRcdFx0XHRcdGNvbG9yOiBhdHRyaWJ1dGVzLnRleHRDb2xvclxuXHRcdFx0XHRcdFx0XHR9IH1cblx0XHRcdFx0XHRcdFx0cmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiXG5cdFx0XHRcdFx0XHQ+XG5cdFx0XHRcdFx0XHRcdDxJY29uRWxlbWVudCAvPlxuXHRcdFx0XHRcdFx0PC9hPlxuXHRcdFx0XHRcdCkgOiAoXG5cdFx0XHRcdFx0XHQ8SWNvbkVsZW1lbnQgLz5cblx0XHRcdFx0XHQpIH1cblx0XHRcdFx0PC9zcGFuPlxuXHRcdFx0PC9wPlxuXHRcdCk7XG5cdH1cbn0gXTtcblxuZXhwb3J0IGRlZmF1bHQgZGVwcmVjYXRlZDtcbiIsIi8qKlxuICogV29yZFByZXNzIGRlcGVuZGVuY2llcy4uLlxuICovXG5pbXBvcnQge1xuXHRBbGlnbm1lbnRUb29sYmFyLFxuXHRCbG9ja0NvbnRyb2xzXG59IGZyb20gJ0B3b3JkcHJlc3MvYmxvY2stZWRpdG9yJztcblxuLyoqXG4gKiBJbnRlcm5hbCBkZXBlbmRlbmNpZXNcbiAqL1xuaW1wb3J0IExpbmtDb250cm9sIGZyb20gJy4uLy4uL2NvbXBvbmVudHMvbGluay1jb250cm9sL2luZGV4LmpzJztcblxuY29uc3QgQ29udHJvbHMgPSAoe1xuXHRhdHRyaWJ1dGVzLFxuXHRzZXRBdHRyaWJ1dGVzLFxuXHRpc1NlbGVjdGVkXG59KSA9PiB7XG5cdHJldHVybiAoXG5cdFx0PEJsb2NrQ29udHJvbHM+XG5cdFx0XHQ8QWxpZ25tZW50VG9vbGJhclxuXHRcdFx0XHR2YWx1ZT17IGF0dHJpYnV0ZXMuYWxpZ24gfVxuXHRcdFx0XHRvbkNoYW5nZT17IGUgPT4gc2V0QXR0cmlidXRlcyh7IGFsaWduOiBlIH0pIH1cblx0XHRcdC8+XG5cblx0XHRcdDxMaW5rQ29udHJvbFxuXHRcdFx0XHRpc1NlbGVjdGVkPXsgaXNTZWxlY3RlZCB9XG5cdFx0XHRcdHNldEF0dHJpYnV0ZXM9eyBzZXRBdHRyaWJ1dGVzIH1cblx0XHRcdFx0dXJsPXsgYXR0cmlidXRlcy5saW5rIH1cblx0XHRcdFx0b3BlbnNJbk5ld1RhYj17IGF0dHJpYnV0ZXMubmV3VGFiIH1cblx0XHRcdC8+XG5cdFx0PC9CbG9ja0NvbnRyb2xzPlxuXHQpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgQ29udHJvbHM7XG4iLCIvKipcbiAqIFdvcmRQcmVzcyBkZXBlbmRlbmNpZXMuLi5cbiAqL1xuaW1wb3J0IHsgX18gfSBmcm9tICdAd29yZHByZXNzL2kxOG4nO1xuXG5pbXBvcnQge1xuXHRCdXR0b24sXG5cdEJ1dHRvbkdyb3VwLFxuXHRQYW5lbEJvZHksXG5cdFBsYWNlaG9sZGVyLFxuXHRSYW5nZUNvbnRyb2wsXG5cdFNwaW5uZXJcbn0gZnJvbSAnQHdvcmRwcmVzcy9jb21wb25lbnRzJztcblxuaW1wb3J0IHtcblx0Q29sb3JQYWxldHRlLFxuXHRDb250cmFzdENoZWNrZXIsXG5cdEluc3BlY3RvckNvbnRyb2xzXG59IGZyb20gJ0B3b3JkcHJlc3MvYmxvY2stZWRpdG9yJztcblxuaW1wb3J0IHtcblx0RnJhZ21lbnQsXG5cdGxhenksXG5cdFN1c3BlbnNlLFxuXHR1c2VTdGF0ZVxufSBmcm9tICdAd29yZHByZXNzL2VsZW1lbnQnO1xuXG4vKipcbiAqIEludGVybmFsIGRlcGVuZGVuY2llc1xuICovXG5jb25zdCBJY29uUGlja2VyQ29udHJvbCA9IGxhenkoICgpID0+IGltcG9ydCggJy4uLy4uL2NvbXBvbmVudHMvaWNvbi1waWNrZXItY29udHJvbC9pbmRleC5qcycgKSApO1xuaW1wb3J0IENvbG9yQmFzZUNvbnRyb2wgZnJvbSAnLi4vLi4vY29tcG9uZW50cy9jb2xvci1iYXNlLWNvbnRyb2wvaW5kZXguanMnO1xuXG5jb25zdCBJbnNwZWN0b3IgPSAoe1xuXHRhdHRyaWJ1dGVzLFxuXHRzZXRBdHRyaWJ1dGVzXG59KSA9PiB7XG5cdGNvbnN0IFsgaG92ZXIsIHNldEhvdmVyIF0gPSB1c2VTdGF0ZSggZmFsc2UgKTtcblxuXHRjb25zdCBjaGFuZ2VMaWJyYXJ5ID0gdmFsdWUgPT4ge1xuXHRcdHNldEF0dHJpYnV0ZXMoe1xuXHRcdFx0bGlicmFyeTogdmFsdWUsXG5cdFx0XHRpY29uOiAnZm9udGF3ZXNvbWUnID09PSB2YWx1ZSA/ICd0aGVtZWlzbGUnIDogJ2JhbGFuY2UnLFxuXHRcdFx0cHJlZml4OiAnZmFiJ1xuXHRcdH0pO1xuXHR9O1xuXG5cdGNvbnN0IGNoYW5nZUljb24gPSB2YWx1ZSA9PiB7XG5cdFx0aWYgKCAnb2JqZWN0JyA9PT0gdHlwZW9mIHZhbHVlICkge1xuXHRcdFx0c2V0QXR0cmlidXRlcyh7XG5cdFx0XHRcdGljb246IHZhbHVlLm5hbWUsXG5cdFx0XHRcdHByZWZpeDogdmFsdWUucHJlZml4XG5cdFx0XHR9KTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0c2V0QXR0cmlidXRlcyh7IGljb246IHZhbHVlIH0pO1xuXHRcdH1cblx0fTtcblxuXHRyZXR1cm4gKFxuXHRcdDxJbnNwZWN0b3JDb250cm9scz5cblx0XHRcdDxQYW5lbEJvZHlcblx0XHRcdFx0dGl0bGU9eyBfXyggJ0ljb24nLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdD5cblx0XHRcdFx0PFN1c3BlbnNlIGZhbGxiYWNrPXs8UGxhY2Vob2xkZXI+PFNwaW5uZXIvPjwvUGxhY2Vob2xkZXI+fT5cblx0XHRcdFx0XHQ8SWNvblBpY2tlckNvbnRyb2xcblx0XHRcdFx0XHRcdGxhYmVsPXsgX18oICdJY29uIFBpY2tlcicsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHRcdFx0bGlicmFyeT17IGF0dHJpYnV0ZXMubGlicmFyeSB9XG5cdFx0XHRcdFx0XHRwcmVmaXg9eyBhdHRyaWJ1dGVzLnByZWZpeCB9XG5cdFx0XHRcdFx0XHRpY29uPXsgYXR0cmlidXRlcy5pY29uIH1cblx0XHRcdFx0XHRcdGNoYW5nZUxpYnJhcnk9eyBjaGFuZ2VMaWJyYXJ5IH1cblx0XHRcdFx0XHRcdG9uQ2hhbmdlPXsgY2hhbmdlSWNvbiB9XG5cdFx0XHRcdFx0Lz5cblx0XHRcdFx0PC9TdXNwZW5zZT5cblx0XHRcdDwvUGFuZWxCb2R5PlxuXG5cdFx0XHQ8UGFuZWxCb2R5XG5cdFx0XHRcdHRpdGxlPXsgX18oICdJY29uIFNpemVzJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdGluaXRpYWxPcGVuPXsgZmFsc2UgfVxuXHRcdFx0PlxuXHRcdFx0XHQ8UmFuZ2VDb250cm9sXG5cdFx0XHRcdFx0bGFiZWw9eyBfXyggJ0ljb24gU2l6ZScsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHRcdHZhbHVlPXsgYXR0cmlidXRlcy5mb250U2l6ZSB8fCAnJyB9XG5cdFx0XHRcdFx0aW5pdGlhbFBvc2l0aW9uPXsgMTYgfVxuXHRcdFx0XHRcdG9uQ2hhbmdlPXsgZSA9PiBzZXRBdHRyaWJ1dGVzKHsgZm9udFNpemU6IGUgfSkgfVxuXHRcdFx0XHRcdG1pbj17IDEyIH1cblx0XHRcdFx0XHRtYXg9eyAxNDAgfVxuXHRcdFx0XHQvPlxuXG5cdFx0XHRcdDxSYW5nZUNvbnRyb2xcblx0XHRcdFx0XHRsYWJlbD17IF9fKCAnUGFkZGluZycsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHRcdHZhbHVlPXsgYXR0cmlidXRlcy5wYWRkaW5nIHx8ICcnIH1cblx0XHRcdFx0XHRpbml0aWFsUG9zaXRpb249eyA1IH1cblx0XHRcdFx0XHRvbkNoYW5nZT17IGUgPT4gc2V0QXR0cmlidXRlcyh7IHBhZGRpbmc6IGUgfSkgfVxuXHRcdFx0XHRcdG1pbj17IDAgfVxuXHRcdFx0XHRcdG1heD17IDEwMCB9XG5cdFx0XHRcdC8+XG5cblx0XHRcdFx0PFJhbmdlQ29udHJvbFxuXHRcdFx0XHRcdGxhYmVsPXsgX18oICdNYXJnaW4nLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdFx0XHR2YWx1ZT17IGF0dHJpYnV0ZXMubWFyZ2luIHx8ICcnIH1cblx0XHRcdFx0XHRpbml0aWFsUG9zaXRpb249eyA1IH1cblx0XHRcdFx0XHRvbkNoYW5nZT17IGUgPT4gc2V0QXR0cmlidXRlcyh7IG1hcmdpbjogZSB9KSB9XG5cdFx0XHRcdFx0bWluPXsgMCB9XG5cdFx0XHRcdFx0bWF4PXsgMTAwIH1cblx0XHRcdFx0Lz5cblx0XHRcdDwvUGFuZWxCb2R5PlxuXG5cdFx0XHQ8UGFuZWxCb2R5XG5cdFx0XHRcdHRpdGxlPXsgX18oICdDb2xvcicsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHRpbml0aWFsT3Blbj17IGZhbHNlIH1cblx0XHRcdD5cblx0XHRcdFx0PEJ1dHRvbkdyb3VwPlxuXHRcdFx0XHRcdDxCdXR0b25cblx0XHRcdFx0XHRcdGlzU21hbGxcblx0XHRcdFx0XHRcdGlzU2Vjb25kYXJ5PXsgaG92ZXIgfVxuXHRcdFx0XHRcdFx0aXNQcmltYXJ5PXsgISBob3ZlciB9XG5cdFx0XHRcdFx0XHRvbkNsaWNrPXsgKCkgPT4gc2V0SG92ZXIoIGZhbHNlICkgfVxuXHRcdFx0XHRcdD5cblx0XHRcdFx0XHRcdHsgX18oICdOb3JtYWwnLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdFx0XHQ8L0J1dHRvbj5cblxuXHRcdFx0XHRcdDxCdXR0b25cblx0XHRcdFx0XHRcdGlzU21hbGxcblx0XHRcdFx0XHRcdGlzU2Vjb25kYXJ5PXsgISBob3ZlciB9XG5cdFx0XHRcdFx0XHRpc1ByaW1hcnk9eyBob3ZlciB9XG5cdFx0XHRcdFx0XHRvbkNsaWNrPXsgKCkgPT4gc2V0SG92ZXIoIHRydWUgKSB9XG5cdFx0XHRcdFx0PlxuXHRcdFx0XHRcdFx0eyBfXyggJ0hvdmVyJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdFx0PC9CdXR0b24+XG5cdFx0XHRcdDwvQnV0dG9uR3JvdXA+XG5cblx0XHRcdFx0eyBob3ZlciA/IChcblx0XHRcdFx0XHQ8RnJhZ21lbnQ+XG5cdFx0XHRcdFx0XHQ8Q29sb3JCYXNlQ29udHJvbFxuXHRcdFx0XHRcdFx0XHRsYWJlbD17IF9fKCAnSG92ZXIgQmFja2dyb3VuZCcsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHRcdFx0XHRjb2xvclZhbHVlPXsgYXR0cmlidXRlcy5iYWNrZ3JvdW5kQ29sb3JIb3ZlciB9XG5cdFx0XHRcdFx0XHQ+XG5cdFx0XHRcdFx0XHRcdDxDb2xvclBhbGV0dGVcblx0XHRcdFx0XHRcdFx0XHRsYWJlbD17IF9fKCAnSG92ZXIgQmFja2dyb3VuZCcsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHRcdFx0XHRcdHZhbHVlPXsgYXR0cmlidXRlcy5iYWNrZ3JvdW5kQ29sb3JIb3ZlciB9XG5cdFx0XHRcdFx0XHRcdFx0b25DaGFuZ2U9eyBlID0+IHNldEF0dHJpYnV0ZXMoeyBiYWNrZ3JvdW5kQ29sb3JIb3ZlcjogZSB9KSB9XG5cdFx0XHRcdFx0XHRcdC8+XG5cdFx0XHRcdFx0XHQ8L0NvbG9yQmFzZUNvbnRyb2w+XG5cblx0XHRcdFx0XHRcdDxDb2xvckJhc2VDb250cm9sXG5cdFx0XHRcdFx0XHRcdGxhYmVsPXsgX18oICdIb3ZlciBJY29uJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdFx0XHRcdGNvbG9yVmFsdWU9eyBhdHRyaWJ1dGVzLnRleHRDb2xvckhvdmVyIH1cblx0XHRcdFx0XHRcdD5cblx0XHRcdFx0XHRcdFx0PENvbG9yUGFsZXR0ZVxuXHRcdFx0XHRcdFx0XHRcdGxhYmVsPXsgX18oICdIb3ZlciBJY29uJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdFx0XHRcdFx0dmFsdWU9eyBhdHRyaWJ1dGVzLnRleHRDb2xvckhvdmVyIH1cblx0XHRcdFx0XHRcdFx0XHRvbkNoYW5nZT17IGUgPT4gc2V0QXR0cmlidXRlcyh7IHRleHRDb2xvckhvdmVyOiBlIH0pIH1cblx0XHRcdFx0XHRcdFx0Lz5cblx0XHRcdFx0XHRcdDwvQ29sb3JCYXNlQ29udHJvbD5cblxuXHRcdFx0XHRcdFx0PENvbG9yQmFzZUNvbnRyb2xcblx0XHRcdFx0XHRcdFx0bGFiZWw9eyBfXyggJ0hvdmVyIEJvcmRlcicsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHRcdFx0XHRjb2xvclZhbHVlPXsgYXR0cmlidXRlcy5ib3JkZXJDb2xvckhvdmVyIH1cblx0XHRcdFx0XHRcdD5cblx0XHRcdFx0XHRcdFx0PENvbG9yUGFsZXR0ZVxuXHRcdFx0XHRcdFx0XHRcdGxhYmVsPXsgX18oICdIb3ZlciBCb3JkZXInLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdFx0XHRcdFx0XHR2YWx1ZT17IGF0dHJpYnV0ZXMuYm9yZGVyQ29sb3JIb3ZlciB9XG5cdFx0XHRcdFx0XHRcdFx0b25DaGFuZ2U9eyBlID0+IHNldEF0dHJpYnV0ZXMoeyBib3JkZXJDb2xvckhvdmVyOiBlIH0pIH1cblx0XHRcdFx0XHRcdFx0Lz5cblx0XHRcdFx0XHRcdDwvQ29sb3JCYXNlQ29udHJvbD5cblxuXHRcdFx0XHRcdFx0PENvbnRyYXN0Q2hlY2tlclxuXHRcdFx0XHRcdFx0XHR7IC4uLntcblx0XHRcdFx0XHRcdFx0XHR0ZXh0Q29sb3I6IGF0dHJpYnV0ZXMudGV4dENvbG9ySG92ZXIsXG5cdFx0XHRcdFx0XHRcdFx0YmFja2dyb3VuZENvbG9yOiBhdHRyaWJ1dGVzLmJhY2tncm91bmRDb2xvckhvdmVyXG5cdFx0XHRcdFx0XHRcdH0gfVxuXHRcdFx0XHRcdFx0Lz5cblx0XHRcdFx0XHQ8L0ZyYWdtZW50PlxuXHRcdFx0XHQpIDogKFxuXHRcdFx0XHRcdDxGcmFnbWVudD5cblx0XHRcdFx0XHRcdDxDb2xvckJhc2VDb250cm9sXG5cdFx0XHRcdFx0XHRcdGxhYmVsPXsgX18oICdCYWNrZ3JvdW5kJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdFx0XHRcdGNvbG9yVmFsdWU9eyBhdHRyaWJ1dGVzLmJhY2tncm91bmRDb2xvciB9XG5cdFx0XHRcdFx0XHQ+XG5cdFx0XHRcdFx0XHRcdDxDb2xvclBhbGV0dGVcblx0XHRcdFx0XHRcdFx0XHRsYWJlbD17IF9fKCAnQmFja2dyb3VuZCcsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHRcdFx0XHRcdHZhbHVlPXsgYXR0cmlidXRlcy5iYWNrZ3JvdW5kQ29sb3IgfVxuXHRcdFx0XHRcdFx0XHRcdG9uQ2hhbmdlPXsgZSA9PiBzZXRBdHRyaWJ1dGVzKHsgYmFja2dyb3VuZENvbG9yOiBlIH0pIH1cblx0XHRcdFx0XHRcdFx0Lz5cblx0XHRcdFx0XHRcdDwvQ29sb3JCYXNlQ29udHJvbD5cblxuXHRcdFx0XHRcdFx0PENvbG9yQmFzZUNvbnRyb2xcblx0XHRcdFx0XHRcdFx0bGFiZWw9eyBfXyggJ0ljb24nLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdFx0XHRcdFx0Y29sb3JWYWx1ZT17IGF0dHJpYnV0ZXMudGV4dENvbG9yIH1cblx0XHRcdFx0XHRcdD5cblx0XHRcdFx0XHRcdFx0PENvbG9yUGFsZXR0ZVxuXHRcdFx0XHRcdFx0XHRcdGxhYmVsPXsgX18oICdJY29uJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdFx0XHRcdFx0dmFsdWU9eyBhdHRyaWJ1dGVzLnRleHRDb2xvciB9XG5cdFx0XHRcdFx0XHRcdFx0b25DaGFuZ2U9eyBlID0+IHNldEF0dHJpYnV0ZXMoeyB0ZXh0Q29sb3I6IGUgfSkgfVxuXHRcdFx0XHRcdFx0XHQvPlxuXHRcdFx0XHRcdFx0PC9Db2xvckJhc2VDb250cm9sPlxuXG5cdFx0XHRcdFx0XHQ8Q29sb3JCYXNlQ29udHJvbFxuXHRcdFx0XHRcdFx0XHRsYWJlbD17IF9fKCAnQm9yZGVyJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdFx0XHRcdGNvbG9yVmFsdWU9eyBhdHRyaWJ1dGVzLmJvcmRlckNvbG9yIH1cblx0XHRcdFx0XHRcdD5cblx0XHRcdFx0XHRcdFx0PENvbG9yUGFsZXR0ZVxuXHRcdFx0XHRcdFx0XHRcdGxhYmVsPXsgX18oICdCb3JkZXInLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdFx0XHRcdFx0XHR2YWx1ZT17IGF0dHJpYnV0ZXMuYm9yZGVyQ29sb3IgfVxuXHRcdFx0XHRcdFx0XHRcdG9uQ2hhbmdlPXsgZSA9PiBzZXRBdHRyaWJ1dGVzKHsgYm9yZGVyQ29sb3I6IGUgfSkgfVxuXHRcdFx0XHRcdFx0XHQvPlxuXHRcdFx0XHRcdFx0PC9Db2xvckJhc2VDb250cm9sPlxuXG5cdFx0XHRcdFx0XHQ8Q29udHJhc3RDaGVja2VyXG5cdFx0XHRcdFx0XHRcdHsgLi4ue1xuXHRcdFx0XHRcdFx0XHRcdHRleHRDb2xvcjogYXR0cmlidXRlcy50ZXh0Q29sb3IsXG5cdFx0XHRcdFx0XHRcdFx0YmFja2dyb3VuZENvbG9yOiBhdHRyaWJ1dGVzLmJhY2tncm91bmRDb2xvclxuXHRcdFx0XHRcdFx0XHR9IH1cblx0XHRcdFx0XHRcdC8+XG5cdFx0XHRcdFx0PC9GcmFnbWVudD5cblx0XHRcdFx0KSB9XG5cdFx0XHQ8L1BhbmVsQm9keT5cblxuXHRcdFx0PFBhbmVsQm9keVxuXHRcdFx0XHR0aXRsZT17IF9fKCAnQm9yZGVyIFNldHRpbmdzJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdGluaXRpYWxPcGVuPXsgZmFsc2UgfVxuXHRcdFx0PlxuXHRcdFx0XHQ8UmFuZ2VDb250cm9sXG5cdFx0XHRcdFx0bGFiZWw9eyBfXyggJ0JvcmRlciBTaXplJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdFx0dmFsdWU9eyBhdHRyaWJ1dGVzLmJvcmRlclNpemUgfVxuXHRcdFx0XHRcdG9uQ2hhbmdlPXsgZSA9PiBzZXRBdHRyaWJ1dGVzKHsgYm9yZGVyU2l6ZTogZSB9KSB9XG5cdFx0XHRcdFx0bWluPXsgMCB9XG5cdFx0XHRcdFx0bWF4PXsgMTIwIH1cblx0XHRcdFx0Lz5cblxuXHRcdFx0XHQ8UmFuZ2VDb250cm9sXG5cdFx0XHRcdFx0bGFiZWw9eyBfXyggJ0JvcmRlciBSYWRpdXMnLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdFx0XHR2YWx1ZT17IGF0dHJpYnV0ZXMuYm9yZGVyUmFkaXVzIH1cblx0XHRcdFx0XHRvbkNoYW5nZT17IGUgPT4gc2V0QXR0cmlidXRlcyh7IGJvcmRlclJhZGl1czogZSB9KSB9XG5cdFx0XHRcdFx0bWluPXsgMCB9XG5cdFx0XHRcdFx0bWF4PXsgMTAwIH1cblx0XHRcdFx0Lz5cblx0XHRcdDwvUGFuZWxCb2R5PlxuXHRcdDwvSW5zcGVjdG9yQ29udHJvbHM+XG5cdCk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBJbnNwZWN0b3I7XG4iLCIvKipcbiAqIFdvcmRQcmVzcyBkZXBlbmRlbmNpZXMuLi5cbiAqL1xuaW1wb3J0IHtcblx0RnJhZ21lbnQsXG5cdHVzZUVmZmVjdFxufSBmcm9tICdAd29yZHByZXNzL2VsZW1lbnQnO1xuXG4vKipcbiAqIEludGVybmFsIGRlcGVuZGVuY2llc1xuICovXG5pbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi9hdHRyaWJ1dGVzLmpzJztcbmltcG9ydCBDb250cm9scyBmcm9tICcuL2NvbnRyb2xzLmpzJztcbmltcG9ydCBJbnNwZWN0b3IgZnJvbSAnLi9pbnNwZWN0b3IuanMnO1xuaW1wb3J0IHRoZW1lSXNsZUljb25zIGZyb20gJy4vLi4vLi4vaGVscGVycy90aGVtZWlzbGUtaWNvbnMnO1xuaW1wb3J0IHsgYmxvY2tJbml0IH0gZnJvbSAnLi4vLi4vaGVscGVycy9ibG9jay11dGlsaXR5LmpzJztcblxuY29uc3QgRWRpdCA9ICh7XG5cdGF0dHJpYnV0ZXMsXG5cdHNldEF0dHJpYnV0ZXMsXG5cdGNsYXNzTmFtZSxcblx0aXNTZWxlY3RlZCxcblx0Y2xpZW50SWRcbn0pID0+IHtcblxuXHR1c2VFZmZlY3QoICgpID0+IHtcblx0XHRjb25zdCB1bnN1YnNjcmliZSA9IGJsb2NrSW5pdCggY2xpZW50SWQsIGRlZmF1bHRBdHRyaWJ1dGVzICk7XG5cdFx0cmV0dXJuICgpID0+IHVuc3Vic2NyaWJlKCBhdHRyaWJ1dGVzLmlkICk7XG5cdH0sIFsgYXR0cmlidXRlcy5pZCBdKTtcblxuXHRsZXQgaWNvblN0eWxlID0ge1xuXHRcdGJvcmRlclJhZGl1czogYXR0cmlidXRlcy5ib3JkZXJSYWRpdXMgKyAnJScsXG5cdFx0Zm9udFNpemU6IGF0dHJpYnV0ZXMuZm9udFNpemUgKyAncHgnLFxuXHRcdHBhZGRpbmc6IGF0dHJpYnV0ZXMucGFkZGluZyArICdweCdcblx0fTtcblxuXHRpZiAoICd0aGVtZWlzbGUtaWNvbnMnID09PSBhdHRyaWJ1dGVzLmxpYnJhcnkgKSB7XG5cdFx0aWNvblN0eWxlID0ge1xuXHRcdFx0ZmlsbDogYXR0cmlidXRlcy50ZXh0Q29sb3IsXG5cdFx0XHRwYWRkaW5nOiBhdHRyaWJ1dGVzLnBhZGRpbmcgKyAncHgnLFxuXHRcdFx0d2lkdGg6IGF0dHJpYnV0ZXMuZm9udFNpemUgKyBhdHRyaWJ1dGVzLnBhZGRpbmcgKiAyICsgYXR0cmlidXRlcy5ib3JkZXJTaXplICogMlxuXHRcdH07XG5cdH1cblxuXHRjb25zdCBjb250YWluZXJTdHlsZSA9IHtcblx0XHRjb2xvcjogYXR0cmlidXRlcy50ZXh0Q29sb3IsXG5cdFx0YmFja2dyb3VuZENvbG9yOiBhdHRyaWJ1dGVzLmJhY2tncm91bmRDb2xvcixcblx0XHRib3JkZXJDb2xvcjogYXR0cmlidXRlcy5ib3JkZXJDb2xvcixcblx0XHRib3JkZXJSYWRpdXM6IGF0dHJpYnV0ZXMuYm9yZGVyUmFkaXVzICsgJyUnLFxuXHRcdGJvcmRlclN0eWxlOiAnc29saWQnLFxuXHRcdGJvcmRlcldpZHRoOiBhdHRyaWJ1dGVzLmJvcmRlclNpemUgKyAncHgnLFxuXHRcdG1hcmdpbjogYXR0cmlidXRlcy5tYXJnaW4gKyAncHgnLFxuXHRcdHdpZHRoOiBhdHRyaWJ1dGVzLmZvbnRTaXplICsgYXR0cmlidXRlcy5wYWRkaW5nICogMiArIGF0dHJpYnV0ZXMuYm9yZGVyU2l6ZSAqIDJcblx0fTtcblxuXHRjb25zdCBJY29uID0gdGhlbWVJc2xlSWNvbnMuaWNvbnNbIGF0dHJpYnV0ZXMuaWNvbiBdO1xuXG5cdHJldHVybiAoXG5cdFx0PEZyYWdtZW50PlxuXHRcdFx0PENvbnRyb2xzXG5cdFx0XHRcdGF0dHJpYnV0ZXM9eyBhdHRyaWJ1dGVzIH1cblx0XHRcdFx0c2V0QXR0cmlidXRlcz17IHNldEF0dHJpYnV0ZXMgfVxuXHRcdFx0XHRpc1NlbGVjdGVkPXsgaXNTZWxlY3RlZCB9XG5cdFx0XHQvPlxuXG5cdFx0XHQ8SW5zcGVjdG9yXG5cdFx0XHRcdGF0dHJpYnV0ZXM9eyBhdHRyaWJ1dGVzIH1cblx0XHRcdFx0c2V0QXR0cmlidXRlcz17IHNldEF0dHJpYnV0ZXMgfVxuXHRcdFx0Lz5cblxuXHRcdFx0PHN0eWxlPlxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0YCMkeyBhdHRyaWJ1dGVzLmlkIH0gLiR7IGNsYXNzTmFtZSB9LWNvbnRhaW5lcjpob3ZlciB7XG5cdFx0XHRcdFx0XHRjb2xvcjogJHsgYXR0cmlidXRlcy50ZXh0Q29sb3JIb3ZlciA/IGF0dHJpYnV0ZXMudGV4dENvbG9ySG92ZXIgOiBhdHRyaWJ1dGVzLnRleHRDb2xvciB9ICFpbXBvcnRhbnQ7XG5cdFx0XHRcdFx0XHRiYWNrZ3JvdW5kOiAkeyBhdHRyaWJ1dGVzLmJhY2tncm91bmRDb2xvckhvdmVyID8gYXR0cmlidXRlcy5iYWNrZ3JvdW5kQ29sb3JIb3ZlciA6IGF0dHJpYnV0ZXMuYmFja2dyb3VuZENvbG9yIH0gIWltcG9ydGFudDtcblx0XHRcdFx0XHRcdGJvcmRlci1jb2xvcjogJHsgYXR0cmlidXRlcy5ib3JkZXJDb2xvckhvdmVyID8gYXR0cmlidXRlcy5ib3JkZXJDb2xvckhvdmVyIDogYXR0cmlidXRlcy5ib3JkZXJDb2xvciB9ICFpbXBvcnRhbnQ7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0IyR7IGF0dHJpYnV0ZXMuaWQgfSAuJHsgY2xhc3NOYW1lIH0tY29udGFpbmVyOmhvdmVyIHN2ZyB7XG5cdFx0XHRcdFx0XHRmaWxsOiAkeyBhdHRyaWJ1dGVzLnRleHRDb2xvckhvdmVyID8gYXR0cmlidXRlcy50ZXh0Q29sb3JIb3ZlciA6IGF0dHJpYnV0ZXMudGV4dENvbG9yIH0gIWltcG9ydGFudDtcblx0XHRcdFx0XHR9YFxuXHRcdFx0XHR9XG5cdFx0XHQ8L3N0eWxlPlxuXG5cdFx0XHQ8cFxuXHRcdFx0XHRjbGFzc05hbWU9eyBjbGFzc05hbWUgfVxuXHRcdFx0XHRpZD17IGF0dHJpYnV0ZXMuaWQgfVxuXHRcdFx0XHRzdHlsZT17IHsgdGV4dEFsaWduOiBhdHRyaWJ1dGVzLmFsaWduIH0gfVxuXHRcdFx0PlxuXHRcdFx0XHQ8c3BhblxuXHRcdFx0XHRcdGNsYXNzTmFtZT1cIndwLWJsb2NrLXRoZW1laXNsZS1ibG9ja3MtZm9udC1hd2Vzb21lLWljb25zLWNvbnRhaW5lclwiXG5cdFx0XHRcdFx0c3R5bGU9eyBjb250YWluZXJTdHlsZSB9XG5cdFx0XHRcdD5cblx0XHRcdFx0XHR7ICd0aGVtZWlzbGUtaWNvbnMnID09PSBhdHRyaWJ1dGVzLmxpYnJhcnkgP1xuXHRcdFx0XHRcdFx0PEljb24gc3R5bGU9eyBpY29uU3R5bGUgfSAvPiA6XG5cdFx0XHRcdFx0XHQ8aVxuXHRcdFx0XHRcdFx0XHRjbGFzc05hbWU9eyBgJHsgYXR0cmlidXRlcy5wcmVmaXggfSBmYS0keyBhdHRyaWJ1dGVzLmljb24gfWAgfVxuXHRcdFx0XHRcdFx0XHRzdHlsZT17IGljb25TdHlsZSB9XG5cdFx0XHRcdFx0XHQ+XG5cdFx0XHRcdFx0XHQ8L2k+XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHQ8L3NwYW4+XG5cdFx0XHQ8L3A+XG5cdFx0PC9GcmFnbWVudD5cblx0KTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEVkaXQ7XG4iLCIvKipcbiAqIEludGVybmFsIGRlcGVuZGVuY2llc1xuICovXG5pbXBvcnQgdGhlbWVJc2xlSWNvbnMgZnJvbSAnLi8uLi8uLi9oZWxwZXJzL3RoZW1laXNsZS1pY29ucyc7XG5cbmNvbnN0IFNhdmUgPSAoe1xuXHRhdHRyaWJ1dGVzLFxuXHRjbGFzc05hbWVcbn0pID0+IHtcblx0Y29uc3QgSWNvbiA9IHRoZW1lSXNsZUljb25zLmljb25zWyBhdHRyaWJ1dGVzLmljb24gXTtcblxuXHRyZXR1cm4gKFxuXHRcdDxwXG5cdFx0XHRjbGFzc05hbWU9eyBjbGFzc05hbWUgfVxuXHRcdFx0aWQ9eyBhdHRyaWJ1dGVzLmlkIH1cblx0XHQ+XG5cdFx0XHQ8c3BhbiBjbGFzc05hbWU9XCJ3cC1ibG9jay10aGVtZWlzbGUtYmxvY2tzLWZvbnQtYXdlc29tZS1pY29ucy1jb250YWluZXJcIj5cblx0XHRcdFx0eyAoIGF0dHJpYnV0ZXMubGluayApID8gKFxuXHRcdFx0XHRcdDxhXG5cdFx0XHRcdFx0XHRocmVmPXsgYXR0cmlidXRlcy5saW5rIH1cblx0XHRcdFx0XHRcdHRhcmdldD17IGF0dHJpYnV0ZXMubmV3VGFiID8gJ19ibGFuaycgOiAnX3NlbGYnIH1cblx0XHRcdFx0XHRcdHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIlxuXHRcdFx0XHRcdD5cblx0XHRcdFx0XHRcdHsgJ3RoZW1laXNsZS1pY29ucycgPT09IGF0dHJpYnV0ZXMubGlicmFyeSA/XG5cdFx0XHRcdFx0XHRcdDxJY29uLz4gOlxuXHRcdFx0XHRcdFx0XHQ8aSBjbGFzc05hbWU9eyBgJHsgYXR0cmlidXRlcy5wcmVmaXggfSBmYS0keyBhdHRyaWJ1dGVzLmljb24gfWAgfT48L2k+XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0PC9hPlxuXHRcdFx0XHQpIDogKFxuXHRcdFx0XHRcdCd0aGVtZWlzbGUtaWNvbnMnID09PSBhdHRyaWJ1dGVzLmxpYnJhcnkgP1xuXHRcdFx0XHRcdFx0PEljb24vPiA6XG5cdFx0XHRcdFx0XHQ8aSBjbGFzc05hbWU9eyBgJHsgYXR0cmlidXRlcy5wcmVmaXggfSBmYS0keyBhdHRyaWJ1dGVzLmljb24gfWAgfT48L2k+XG5cdFx0XHRcdCkgfVxuXHRcdFx0PC9zcGFuPlxuXHRcdDwvcD5cblx0KTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFNhdmU7XG4iLCIvKipcbiAqIFdvcmRQcmVzcyBkZXBlbmRlbmNpZXMuLi5cbiAqL1xuaW1wb3J0IHsgX18gfSBmcm9tICdAd29yZHByZXNzL2kxOG4nO1xuXG5pbXBvcnQgeyByZWdpc3RlckJsb2NrVHlwZSB9IGZyb20gJ0B3b3JkcHJlc3MvYmxvY2tzJztcblxuLyoqXG4gKiBJbnRlcm5hbCBkZXBlbmRlbmNpZXNcbiAqL1xuaW1wb3J0ICcuL3N0eWxlLnNjc3MnO1xuaW1wb3J0ICcuL2VkaXRvci5zY3NzJztcbmltcG9ydCB7IGZhSWNvbiBhcyBpY29uIH0gZnJvbSAnLi4vLi4vaGVscGVycy9pY29ucy5qcyc7XG5pbXBvcnQgYXR0cmlidXRlcyBmcm9tICcuL2F0dHJpYnV0ZXMuanMnO1xuaW1wb3J0IGRlcHJlY2F0ZWQgZnJvbSAnLi9kZXByZWNhdGVkLmpzJztcbmltcG9ydCBlZGl0IGZyb20gJy4vZWRpdC5qcyc7XG5pbXBvcnQgc2F2ZSBmcm9tICcuL3NhdmUuanMnO1xuXG5yZWdpc3RlckJsb2NrVHlwZSggJ3RoZW1laXNsZS1ibG9ja3MvZm9udC1hd2Vzb21lLWljb25zJywge1xuXHR0aXRsZTogX18oICdJY29uJywgJ290dGVyLWJsb2NrcycgKSxcblx0ZGVzY3JpcHRpb246IF9fKCAnQWRkIGljb25zIGZyb20gRm9udCBBd2Vzb21lIG9yIFRoZW1lSXNsZSBJY29ucyBsaWJyYXJ5IHRvIHlvdXIgd2Vic2l0ZS4nLCAnb3R0ZXItYmxvY2tzJyApLFxuXHRpY29uLFxuXHRjYXRlZ29yeTogJ3RoZW1laXNsZS1ibG9ja3MnLFxuXHRrZXl3b3JkczogW1xuXHRcdCdmb250IGF3ZXNvbWUnLFxuXHRcdCdkYXNoaWNvbnMnLFxuXHRcdCdpY29ucydcblx0XSxcblx0YXR0cmlidXRlcyxcblx0ZGVwcmVjYXRlZCxcblx0ZWRpdCxcblx0c2F2ZVxufSk7XG4iXSwibmFtZXMiOlsiYXR0cmlidXRlcyIsImlkIiwidHlwZSIsImFsaWduIiwibGlicmFyeSIsImRlZmF1bHQiLCJwcmVmaXgiLCJpY29uIiwibGluayIsIm5ld1RhYiIsImZvbnRTaXplIiwicGFkZGluZyIsIm1hcmdpbiIsImJhY2tncm91bmRDb2xvciIsInRleHRDb2xvciIsImJvcmRlckNvbG9yIiwiYmFja2dyb3VuZENvbG9ySG92ZXIiLCJ0ZXh0Q29sb3JIb3ZlciIsImJvcmRlckNvbG9ySG92ZXIiLCJib3JkZXJTaXplIiwiYm9yZGVyUmFkaXVzIiwiZGVwcmVjYXRlZCIsInN1cHBvcnRzIiwibWlncmF0ZSIsIm9sZEF0dHJpYnV0ZXMiLCJjbGFzc05hbWUiLCJpbmNsdWRlcyIsInNhdmUiLCJpY29uU3R5bGUiLCJjb250YWluZXJTdHlsZSIsImNvbG9yIiwiYm9yZGVyU3R5bGUiLCJib3JkZXJXaWR0aCIsImRpc3BsYXkiLCJ0ZXh0QWxpZ24iLCJJY29uRWxlbWVudCIsIkFsaWdubWVudFRvb2xiYXIiLCJCbG9ja0NvbnRyb2xzIiwiTGlua0NvbnRyb2wiLCJDb250cm9scyIsInNldEF0dHJpYnV0ZXMiLCJpc1NlbGVjdGVkIiwiZSIsIl9fIiwiQnV0dG9uIiwiQnV0dG9uR3JvdXAiLCJQYW5lbEJvZHkiLCJQbGFjZWhvbGRlciIsIlJhbmdlQ29udHJvbCIsIlNwaW5uZXIiLCJDb2xvclBhbGV0dGUiLCJDb250cmFzdENoZWNrZXIiLCJJbnNwZWN0b3JDb250cm9scyIsIkZyYWdtZW50IiwibGF6eSIsIlN1c3BlbnNlIiwidXNlU3RhdGUiLCJJY29uUGlja2VyQ29udHJvbCIsIkNvbG9yQmFzZUNvbnRyb2wiLCJJbnNwZWN0b3IiLCJob3ZlciIsInNldEhvdmVyIiwiY2hhbmdlTGlicmFyeSIsInZhbHVlIiwiY2hhbmdlSWNvbiIsIm5hbWUiLCJ1c2VFZmZlY3QiLCJkZWZhdWx0QXR0cmlidXRlcyIsInRoZW1lSXNsZUljb25zIiwiYmxvY2tJbml0IiwiRWRpdCIsImNsaWVudElkIiwidW5zdWJzY3JpYmUiLCJmaWxsIiwid2lkdGgiLCJJY29uIiwiaWNvbnMiLCJTYXZlIiwicmVnaXN0ZXJCbG9ja1R5cGUiLCJmYUljb24iLCJlZGl0IiwidGl0bGUiLCJkZXNjcmlwdGlvbiIsImNhdGVnb3J5Iiwia2V5d29yZHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///173\n")},2219:function(__unused_webpack_module,__unused_webpack___webpack_exports__,__webpack_require__){eval("\n// EXTERNAL MODULE: external [\"wp\",\"i18n\"]\nvar external_wp_i18n_ = __webpack_require__(5736);\n// EXTERNAL MODULE: external [\"wp\",\"blocks\"]\nvar external_wp_blocks_ = __webpack_require__(4981);\n// EXTERNAL MODULE: ./src/blocks/helpers/icons.js\nvar icons = __webpack_require__(340);\n;// CONCATENATED MODULE: ./src/blocks/blocks/form/attributes.js\nconst attributes = {\n id: {\n type: 'string'\n },\n subject: {\n type: 'string'\n },\n emailTo: {\n type: 'string'\n },\n optionName: {\n type: 'string'\n },\n hasCaptcha: {\n type: 'boolean'\n },\n provider: {\n type: 'string',\n default: ''\n },\n apiKey: {\n type: 'string'\n },\n listId: {\n type: 'string'\n },\n action: {\n type: 'string',\n default: 'subscribe'\n }\n};\n/* harmony default export */ var form_attributes = (attributes);\n// EXTERNAL MODULE: external [\"wp\",\"element\"]\nvar external_wp_element_ = __webpack_require__(9307);\n// EXTERNAL MODULE: external \"lodash\"\nvar external_lodash_ = __webpack_require__(2819);\n;// CONCATENATED MODULE: external [\"wp\",\"api\"]\nvar external_wp_api_namespaceObject = window[\"wp\"][\"api\"];\nvar external_wp_api_default = /*#__PURE__*/__webpack_require__.n(external_wp_api_namespaceObject);\n// EXTERNAL MODULE: external [\"wp\",\"blockEditor\"]\nvar external_wp_blockEditor_ = __webpack_require__(2175);\n// EXTERNAL MODULE: external [\"wp\",\"data\"]\nvar external_wp_data_ = __webpack_require__(9818);\n// EXTERNAL MODULE: ./src/blocks/helpers/block-utility.js\nvar block_utility = __webpack_require__(5225);\n// EXTERNAL MODULE: external [\"wp\",\"components\"]\nvar external_wp_components_ = __webpack_require__(5609);\n;// CONCATENATED MODULE: ./src/blocks/blocks/form/integrations.js\nconst getListIdOptionFrom = (provider, apiKey, onSuccess, onError) => {\n window.wp.apiFetch({\n path: 'themeisle-gutenberg-blocks/v1/integration',\n method: 'POST',\n data: {\n provider,\n apiKey\n }\n }).then(res => {\n if (res !== null && res !== void 0 && res.success) {\n var _res$list_id;\n\n const result = (res === null || res === void 0 ? void 0 : (_res$list_id = res.list_id) === null || _res$list_id === void 0 ? void 0 : _res$list_id.map(item => {\n var _item$id;\n\n return {\n label: item.name,\n value: (_item$id = item.id) === null || _item$id === void 0 ? void 0 : _item$id.toString()\n };\n })) || [];\n onSuccess(result);\n } else {\n onError(res);\n }\n }).catch(err => {\n console.log(err);\n });\n};\n;// CONCATENATED MODULE: ./src/blocks/blocks/form/inspector.js\n\n\n/**\n * WordPress dependencies.\n */\n\n\n\n\n\n\n/**\n * Internal dependencies.\n */\n\n\n\nconst Inspector = ({\n attributes,\n setAttributes\n}) => {\n const {\n createNotice\n } = (0,external_wp_data_.dispatch)('core/notices');\n const [savedEmail, setSavedEmail] = (0,external_wp_element_.useState)('');\n const [email, setEmail] = (0,external_wp_element_.useState)('');\n const [isEmailLoaded, setEmailLoading] = (0,external_wp_element_.useState)(true);\n const [listIDOptions, setListIDOptions] = (0,external_wp_element_.useState)([{\n label: (0,external_wp_i18n_.__)('None', 'otter-blocks'),\n value: ''\n }]);\n const [fetchListIdStatus, setFetchListIdStatus] = (0,external_wp_element_.useState)('loading');\n (0,external_wp_element_.useEffect)(() => {\n if (attributes.optionName) {\n external_wp_api_default().loadPromise.then(() => {\n new (external_wp_api_default()).models.Settings().fetch().done(res => {\n var _res$themeisle_blocks, _res$themeisle_blocks2;\n\n (_res$themeisle_blocks = res.themeisle_blocks_form_emails) === null || _res$themeisle_blocks === void 0 ? void 0 : (_res$themeisle_blocks2 = _res$themeisle_blocks.filter(({\n form\n }) => form === attributes.optionName)) === null || _res$themeisle_blocks2 === void 0 ? void 0 : _res$themeisle_blocks2.forEach(item => {\n setEmail(item === null || item === void 0 ? void 0 : item.email);\n setEmailLoading(true);\n setSavedEmail(item === null || item === void 0 ? void 0 : item.email);\n });\n });\n });\n }\n }, [attributes.optionName]);\n (0,external_wp_element_.useEffect)(() => {\n if (attributes.apiKey && attributes.provider) {\n getListIdOptionFrom(attributes.provider, attributes.apiKey, options => {\n options.splice(0, 0, {\n label: (0,external_wp_i18n_.__)('None', 'otter-blocks'),\n value: ''\n });\n setListIDOptions(options);\n setFetchListIdStatus('ready');\n const isCurrentOptionValid = 1 === options.map(({\n value\n }) => value).filter(value => value === attributes.listId).length;\n\n if (attributes.listId && !isCurrentOptionValid) {\n createNotice('error', (0,external_wp_i18n_.__)('The current contact list is invalid! Please choose a new contact list.', 'otter-blocks'), {\n isDismissible: true,\n type: 'snackbar'\n });\n }\n }, err => {\n createNotice('error', err === null || err === void 0 ? void 0 : err.error, {\n isDismissible: true,\n type: 'snackbar',\n id: 'themeisle-form-server-error'\n });\n setFetchListIdStatus('error');\n });\n }\n }, [attributes.provider, attributes.apiKey]);\n\n const saveEmail = () => {\n new (external_wp_api_default()).models.Settings().fetch().done(res => {\n const emails = res.themeisle_blocks_form_emails ? res.themeisle_blocks_form_emails : [];\n let isMissing = true;\n let hasUpdated = false;\n emails === null || emails === void 0 ? void 0 : emails.forEach(({\n form\n }, index) => {\n if (form === attributes.optionName) {\n if (emails[index].email !== email) {\n emails[index].email = email; // update the value\n\n hasUpdated = true;\n }\n\n isMissing = false;\n }\n });\n\n if (isMissing) {\n emails.push({\n form: attributes.optionName,\n email\n });\n }\n\n if (isMissing || hasUpdated) {\n const model = new (external_wp_api_default()).models.Settings({\n // eslint-disable-next-line camelcase\n themeisle_blocks_form_emails: emails\n });\n setEmailLoading(false);\n model.save().then(response => {\n var _response$themeisle_b;\n\n (_response$themeisle_b = response.themeisle_blocks_form_emails) === null || _response$themeisle_b === void 0 ? void 0 : _response$themeisle_b.filter(({\n form\n }) => form === attributes.optionName).forEach(item => {\n {\n setEmailLoading(true);\n setSavedEmail(item === null || item === void 0 ? void 0 : item.email);\n createNotice('info', (0,external_wp_i18n_.__)('Email has been saved!', 'otter-blocks'), {\n isDismissible: true,\n type: 'snackbar'\n });\n }\n });\n });\n }\n });\n };\n\n return (0,external_wp_element_.createElement)(external_wp_blockEditor_.InspectorControls, null, (0,external_wp_element_.createElement)(external_wp_components_.PanelBody, {\n title: (0,external_wp_i18n_.__)('Settings', 'otter-blocks')\n }, (0,external_wp_element_.createElement)(external_wp_components_.TextControl, {\n label: (0,external_wp_i18n_.__)('Email Subject', 'otter-blocks'),\n placeholder: (0,external_wp_i18n_.__)('A new submission', 'otter-blocks'),\n value: attributes.subject,\n onChange: subject => setAttributes({\n subject\n }),\n help: (0,external_wp_i18n_.__)('Customize the email title send by this form.', 'otter-blocks')\n }), (0,external_wp_element_.createElement)(external_wp_components_.TextControl, {\n label: (0,external_wp_i18n_.__)('Email To', 'otter-blocks'),\n placeholder: (0,external_wp_i18n_.__)('Default is to admin site', 'otter-blocks'),\n value: email,\n onChange: email => setEmail(email),\n help: (0,external_wp_i18n_.__)('Send form data to another email. (Admin is default).', 'otter-blocks')\n }), (0,external_wp_element_.createElement)(external_wp_components_.Button, {\n isPrimary: true,\n onClick: saveEmail,\n disabled: email === savedEmail\n }, (0,external_wp_element_.createElement)(external_wp_element_.Fragment, null, !isEmailLoaded && (0,external_wp_element_.createElement)(external_wp_components_.Spinner, null), (0,external_wp_i18n_.__)('Save', 'otter-blocks'))), (0,external_wp_element_.createElement)(external_wp_components_.ToggleControl, {\n label: (0,external_wp_i18n_.__)('Add captcha checkbox', 'otter-blocks'),\n checked: attributes.hasCaptcha,\n onChange: hasCaptcha => setAttributes({\n hasCaptcha\n }),\n help: (0,external_wp_i18n_.__)('Add Google reCaptcha V2 for protection againts bots.', 'otter-blocks')\n }), attributes.hasCaptcha && (0,external_wp_i18n_.__)('You can change the API Keys in Settings > Otter', 'otter-blocks')), (0,external_wp_element_.createElement)(external_wp_components_.PanelBody, {\n title: (0,external_wp_i18n_.__)('Integration', 'otter-blocks'),\n initialOpen: false\n }, (0,external_wp_i18n_.__)('Add your client email to a Digital Marketing provider.', 'otter-blocks'), (0,external_wp_element_.createElement)(\"br\", null), \" \", (0,external_wp_element_.createElement)(\"br\", null), (0,external_wp_element_.createElement)(\"b\", null, \" \", (0,external_wp_i18n_.__)('You need to have at least one email field in your form. For multiple email fields, only the first will be used.', 'otter-blocks'), \" \"), (0,external_wp_element_.createElement)(external_wp_components_.SelectControl, {\n label: (0,external_wp_i18n_.__)('Provider', 'otter-blocks'),\n value: attributes.provider,\n options: [{\n label: (0,external_wp_i18n_.__)('None', 'otter-blocks'),\n value: ''\n }, {\n label: (0,external_wp_i18n_.__)('Mailchimp', 'otter-blocks'),\n value: 'mailchimp'\n }, {\n label: (0,external_wp_i18n_.__)('Sendinblue', 'otter-blocks'),\n value: 'sendinblue'\n }],\n onChange: provider => {\n setAttributes({\n provider,\n apiKey: '',\n listId: ''\n });\n }\n }), attributes.provider && (0,external_wp_element_.createElement)(external_wp_element_.Fragment, null, (0,external_wp_element_.createElement)(external_wp_components_.TextControl, {\n label: (0,external_wp_i18n_.__)('API Key', 'otter-blocks'),\n help: (0,external_wp_i18n_.__)('You can find the key in the provider\\'s website', 'otter-blocks'),\n value: attributes.apiKey,\n onChange: apiKey => {\n setFetchListIdStatus('loading');\n setListIDOptions([]);\n setAttributes({\n apiKey,\n listId: ''\n });\n }\n }), attributes.apiKey && 2 > listIDOptions.length && 'loading' === fetchListIdStatus && (0,external_wp_element_.createElement)(external_wp_element_.Fragment, null, (0,external_wp_element_.createElement)(external_wp_components_.Spinner, null), (0,external_wp_i18n_.__)('Fetching data from provider.', 'otter-blocks')), attributes.apiKey && 'ready' === fetchListIdStatus && (0,external_wp_element_.createElement)(external_wp_element_.Fragment, null, (0,external_wp_element_.createElement)(external_wp_components_.SelectControl, {\n label: (0,external_wp_i18n_.__)('Contact List', 'otter-blocks'),\n value: attributes.listId,\n options: listIDOptions,\n onChange: listId => setAttributes({\n listId\n })\n }), 2 <= (listIDOptions === null || listIDOptions === void 0 ? void 0 : listIDOptions.length) && attributes.listId && (0,external_wp_element_.createElement)(external_wp_element_.Fragment, null, (0,external_wp_element_.createElement)(external_wp_components_.SelectControl, {\n label: (0,external_wp_i18n_.__)('Action', 'otter-blocks'),\n value: attributes.action,\n options: [{\n label: (0,external_wp_i18n_.__)('None', 'otter-blocks'),\n value: ''\n }, {\n label: (0,external_wp_i18n_.__)('Subscribe', 'otter-blocks'),\n value: 'subscribe'\n }, {\n label: (0,external_wp_i18n_.__)('Submit & Subscribe', 'otter-blocks'),\n value: 'submit-subscribe'\n }],\n onChange: action => setAttributes({\n action\n })\n }), 'submit-subscribe' === attributes.action && (0,external_wp_i18n_.__)('This action will add the client to the contact list and send a separata email with the form data to administrator or to the email mentioned in \\'Form to\\' field. A checkbox for data-sharing consent with third-party will be added on form.', 'otter-blocks'))))));\n};\n\n/* harmony default export */ var inspector = (Inspector);\n;// CONCATENATED MODULE: ./src/blocks/blocks/form/placeholder.js\n\n\n/**\n * WordPress dependencies.\n */\n\n\n\n\nconst BlockPlaceholder = ({\n className,\n isAPILoaded,\n isAPISaved,\n isSaving,\n saveAPIKey,\n siteKey,\n secretKey,\n setSiteKey,\n setSecretKey\n}) => {\n if (!isAPILoaded) {\n return (0,external_wp_element_.createElement)(external_wp_element_.Fragment, null, (0,external_wp_element_.createElement)(\"br\", null), (0,external_wp_element_.createElement)(external_wp_components_.Placeholder, null, (0,external_wp_element_.createElement)(\"div\", null, (0,external_wp_element_.createElement)(external_wp_components_.Spinner, null), (0,external_wp_i18n_.__)('Checking the API Keys for reCaptcha', 'otter-blocks'))));\n }\n\n if (!isAPISaved) {\n return (0,external_wp_element_.createElement)(external_wp_components_.Placeholder, {\n icon: \"admin-site\",\n label: (0,external_wp_i18n_.__)('Google reCaptcha', 'otter-blocks'),\n instructions: (0,external_wp_i18n_.__)('A Google reCaptcha V2 API keys are required, please enter one below.', 'otter-blocks'),\n className: className\n }, (0,external_wp_element_.createElement)(\"div\", {\n className: \"components-placeholder__actions\"\n }, (0,external_wp_element_.createElement)(external_wp_components_.TextControl, {\n type: \"text\",\n label: (0,external_wp_i18n_.__)('Site Key', 'otter-blocks'),\n value: siteKey,\n className: \"components-placeholder__input\",\n onChange: setSiteKey\n }), (0,external_wp_element_.createElement)(external_wp_components_.TextControl, {\n type: \"text\",\n label: (0,external_wp_i18n_.__)('Secret Key', 'otter-blocks'),\n value: secretKey,\n className: \"components-placeholder__input\",\n onChange: setSecretKey\n }), (0,external_wp_element_.createElement)(external_wp_components_.Button, {\n isLarge: true,\n isPrimary: true,\n type: \"submit\",\n onClick: saveAPIKey,\n isBusy: isSaving,\n disabled: '' === siteKey || '' === secretKey\n }, (0,external_wp_i18n_.__)('Save', 'otter-blocks'))), (0,external_wp_element_.createElement)(\"div\", {\n className: \"components-placeholder__learn-more\"\n }, (0,external_wp_i18n_.__)('You need to activate reCaptcha API.', 'otter-blocks'), \" \", (0,external_wp_element_.createElement)(external_wp_components_.ExternalLink, {\n href: \"http://www.google.com/recaptcha/admin\"\n }, (0,external_wp_i18n_.__)('Need an API key? Get one here.', 'otter-blocks'))));\n }\n};\n\n/* harmony default export */ var placeholder = (BlockPlaceholder);\n;// CONCATENATED MODULE: ./src/blocks/blocks/form/edit.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\nconst Edit = ({\n attributes,\n setAttributes,\n className,\n clientId,\n name\n}) => {\n const [googleCaptchaAPISiteKey, setGoogleCaptchaAPISiteKey] = (0,external_wp_element_.useState)('');\n const [googleCaptchaAPISecretKey, setGoogleCaptchaAPISecretKey] = (0,external_wp_element_.useState)('');\n const [isAPILoaded, setAPILoaded] = (0,external_wp_element_.useState)(false);\n const [isAPISaved, setAPISaved] = (0,external_wp_element_.useState)(false);\n const settingsRef = (0,external_wp_element_.useRef)(null);\n const [areSettingsAvailable, setSettingsStatus] = (0,external_wp_element_.useState)(false);\n const {\n insertBlock,\n removeBlock\n } = (0,external_wp_data_.useDispatch)('core/block-editor');\n const {\n replaceInnerBlocks\n } = (0,external_wp_data_.useDispatch)('core/block-editor');\n const {\n createNotice\n } = (0,external_wp_data_.dispatch)('core/notices');\n const hasInnerBlocks = (0,external_wp_data_.useSelect)(select => 0 < select('core/block-editor').getBlocks(clientId).length, [clientId]);\n const {\n blockType,\n defaultVariation,\n variations\n } = (0,external_wp_data_.useSelect)(select => {\n const {\n getBlockVariations,\n getBlockType,\n getDefaultBlockVariation\n } = select('core/blocks');\n return {\n blockType: getBlockType(name),\n defaultVariation: getDefaultBlockVariation(name, 'block'),\n variations: getBlockVariations(name, 'block')\n };\n }, [name]);\n const children = (0,external_wp_data_.useSelect)(select => {\n const {\n getBlock\n } = select('core/block-editor');\n return getBlock(clientId).innerBlocks;\n });\n (0,external_wp_element_.useEffect)(() => {\n const unsubscribe = (0,block_utility/* blockInit */.WX)(clientId, form_attributes);\n return () => unsubscribe(attributes.id);\n }, [attributes.id]);\n /**\n * Create the form identification tag for Otter Options.\n */\n\n (0,external_wp_element_.useEffect)(() => {\n var _select;\n\n if (attributes.id && (0,external_wp_data_.select)('core/edit-widgets')) {\n setAttributes({\n optionName: `widget_${attributes.id.slice(-8)}`\n });\n } else if (attributes.id && (_select = (0,external_wp_data_.select)('core/editor')) !== null && _select !== void 0 && _select.getCurrentPostId()) {\n setAttributes({\n optionName: `${(0,external_wp_data_.select)('core/editor').getCurrentPostId()}_${attributes.id.slice(-8)}`\n });\n }\n }, [attributes.id]);\n /**\n * Make sure that a form nonce field is always present.\n */\n\n (0,external_wp_element_.useEffect)(() => {\n if (children) {\n const verificationBlocks = children.filter(({\n name\n }) => 'themeisle-blocks/form-nonce' === name);\n\n if (2 <= (verificationBlocks === null || verificationBlocks === void 0 ? void 0 : verificationBlocks.length)) {\n verificationBlocks.slice(1).forEach(block => {\n removeBlock(block.clientId, false);\n });\n } else if (0 === (verificationBlocks === null || verificationBlocks === void 0 ? void 0 : verificationBlocks.length) && clientId) {\n const nonceBlock = (0,external_wp_blocks_.createBlock)('themeisle-blocks/form-nonce');\n\n if (nonceBlock) {\n insertBlock === null || insertBlock === void 0 ? void 0 : insertBlock(nonceBlock, (children === null || children === void 0 ? void 0 : children.length) || 0, clientId, false);\n }\n }\n }\n }, [children]);\n /**\n * Load settings.\n */\n\n (0,external_wp_element_.useEffect)(() => {\n external_wp_api_default().loadPromise.then(() => {\n settingsRef.current = new (external_wp_api_default()).models.Settings();\n setSettingsStatus(true);\n });\n }, []);\n /**\n * Save the captcha option in settings.\n */\n\n (0,external_wp_element_.useEffect)(() => {\n if (attributes.hasCaptcha !== undefined) {\n var _settingsRef$current;\n\n settingsRef === null || settingsRef === void 0 ? void 0 : (_settingsRef$current = settingsRef.current) === null || _settingsRef$current === void 0 ? void 0 : _settingsRef$current.fetch().done(res => {\n const emails = res.themeisle_blocks_form_emails ? res.themeisle_blocks_form_emails : [];\n let isMissing = true;\n let hasChanged = false;\n emails === null || emails === void 0 ? void 0 : emails.forEach(({\n form\n }, index) => {\n if (form === attributes.optionName) {\n if (emails[index].hasCaptcha !== attributes.hasCaptcha) {\n hasChanged = true;\n }\n\n emails[index].hasCaptcha = attributes.hasCaptcha;\n isMissing = false;\n }\n });\n\n if (isMissing) {\n emails.push({\n form: attributes.optionName,\n hasCaptcha: attributes.hasCaptcha\n });\n }\n\n if (isMissing || hasChanged) {\n const model = new (external_wp_api_default()).models.Settings({\n // eslint-disable-next-line camelcase\n themeisle_blocks_form_emails: emails\n });\n model.save();\n createNotice('info', (0,external_wp_i18n_.__)('Form preference has been saved.', 'otter-blocks'), {\n isDismissible: true,\n type: 'snackbar'\n });\n }\n });\n }\n }, [attributes.hasCaptcha, settingsRef.current]);\n /**\n * Check if the API Keys are set.\n */\n\n (0,external_wp_element_.useEffect)(() => {\n const getAPIData = async () => {\n if (!isAPILoaded) {\n var _settingsRef$current2;\n\n settingsRef === null || settingsRef === void 0 ? void 0 : (_settingsRef$current2 = settingsRef.current) === null || _settingsRef$current2 === void 0 ? void 0 : _settingsRef$current2.fetch().then(response => {\n setAPILoaded(true);\n\n if ('' !== response.themeisle_google_captcha_api_site_key && '' !== response.themeisle_google_captcha_api_secret_key) {\n setAPISaved(true);\n }\n });\n }\n };\n\n if (areSettingsAvailable && attributes.hasCaptcha && !isAPISaved) {\n getAPIData();\n }\n }, [areSettingsAvailable, isAPILoaded, isAPISaved, attributes.hasCaptcha]);\n /**\n * Save API Keys in the Otter options.\n */\n\n const saveAPIKey = () => {\n const model = new window.wp.api.models.Settings({\n // eslint-disable-next-line camelcase\n themeisle_google_captcha_api_site_key: googleCaptchaAPISiteKey,\n // eslint-disable-next-line camelcase\n themeisle_google_captcha_api_secret_key: googleCaptchaAPISecretKey\n });\n model.save().then(response => {\n let saved = false;\n\n if ('' !== response.themeisle_google_captcha_api_site_key && '' !== response.themeisle_google_captcha_api_secret_key) {\n saved = true;\n }\n\n setAPISaved(saved);\n setGoogleCaptchaAPISecretKey('');\n setGoogleCaptchaAPISiteKey('');\n createNotice('info', (0,external_wp_i18n_.__)('API Keys have been saved.', 'otter-blocks'), {\n isDismissible: true,\n type: 'snackbar'\n });\n });\n };\n /**\n * Save integration data.\n */\n\n\n (0,external_wp_element_.useEffect)(() => {\n var _settingsRef$current3;\n\n settingsRef === null || settingsRef === void 0 ? void 0 : (_settingsRef$current3 = settingsRef.current) === null || _settingsRef$current3 === void 0 ? void 0 : _settingsRef$current3.fetch().done(res => {\n const emails = res.themeisle_blocks_form_emails ? res.themeisle_blocks_form_emails : [];\n let isMissing = true;\n let hasUpdated = false;\n let hasUpdatedNotice = false;\n emails === null || emails === void 0 ? void 0 : emails.forEach(({\n form\n }, index) => {\n if (form === attributes.optionName) {\n var _emails$index;\n\n if (!((_emails$index = emails[index]) !== null && _emails$index !== void 0 && _emails$index.integration)) {\n emails[index].integration = {};\n }\n\n hasUpdated = emails[index].integration.provider !== attributes.provider || emails[index].integration.apiKey !== attributes.apiKey || emails[index].integration.listId !== attributes.listId || emails[index].integration.action !== attributes.action;\n isMissing = false;\n hasUpdatedNotice = attributes.apiKey && (emails[index].integration.listId !== attributes.listId || emails[index].integration.action !== attributes.action);\n emails[index].integration.provider = attributes.provider; // update the value\n\n emails[index].integration.apiKey = attributes.apiKey;\n emails[index].integration.listId = attributes.listId;\n emails[index].integration.action = attributes.action;\n }\n });\n\n if (isMissing) {\n emails.push({\n form: attributes.optionName,\n integration: {\n provider: attributes.provider,\n apiKey: attributes.apiKey,\n listId: attributes.listId,\n action: attributes.action\n }\n });\n }\n\n if (isMissing || hasUpdated) {\n const model = new (external_wp_api_default()).models.Settings({\n // eslint-disable-next-line camelcase\n themeisle_blocks_form_emails: emails\n });\n model.save().then(() => {\n if (hasUpdatedNotice) {\n createNotice('info', (0,external_wp_i18n_.__)('Integration details have been saved.', 'otter-blocks'), {\n isDismissible: true,\n type: 'snackbar'\n });\n }\n });\n }\n });\n }, [attributes.optionName, attributes.provider, attributes.apiKey, attributes.listId, attributes.action, settingsRef.current]);\n const hasIntegrationActive = attributes.provider && attributes.apiKey && attributes.listId;\n return (0,external_wp_element_.createElement)(external_wp_element_.Fragment, null, (0,external_wp_element_.createElement)(inspector, {\n attributes: attributes,\n setAttributes: setAttributes\n }), (0,external_wp_element_.createElement)(\"div\", {\n className: className,\n id: attributes.id\n }, hasInnerBlocks ? (0,external_wp_element_.createElement)(\"div\", {\n className: \"otter-form__container\"\n }, (0,external_wp_element_.createElement)(external_wp_blockEditor_.InnerBlocks, null), attributes.hasCaptcha && (!isAPILoaded || !isAPISaved) && (0,external_wp_element_.createElement)(placeholder, {\n className: \"otter-form-captcha\",\n isAPILoaded: isAPILoaded,\n isAPISaved: isAPISaved,\n saveAPIKey: saveAPIKey,\n siteKey: googleCaptchaAPISiteKey,\n secretKey: googleCaptchaAPISecretKey,\n setSiteKey: setGoogleCaptchaAPISiteKey,\n setSecretKey: setGoogleCaptchaAPISecretKey\n }), (0,external_wp_element_.createElement)(\"div\", {\n className: \"wp-block-button\"\n }, (0,external_wp_element_.createElement)(\"button\", {\n className: \"wp-block-button__link\"\n }, hasIntegrationActive && 'subscribe' === attributes.action ? (0,external_wp_i18n_.__)('Subscribe', 'otter-blocks') : (0,external_wp_i18n_.__)('Submit', 'otter-blocks')))) : (0,external_wp_element_.createElement)(external_wp_blockEditor_.__experimentalBlockVariationPicker, {\n icon: (0,external_lodash_.get)(blockType, ['icon', 'src']),\n label: (0,external_lodash_.get)(blockType, ['title']),\n variations: variations,\n onSelect: (nextVariation = defaultVariation) => {\n if (nextVariation) {\n replaceInnerBlocks(clientId, (0,external_wp_blocks_.createBlocksFromInnerBlocksTemplate)(nextVariation.innerBlocks), true);\n }\n },\n allowSkip: true\n })));\n};\n\n/* harmony default export */ var edit = (Edit);\n// EXTERNAL MODULE: ./node_modules/classnames/index.js\nvar classnames = __webpack_require__(4184);\nvar classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);\n;// CONCATENATED MODULE: ./src/blocks/blocks/form/save.js\n\n\n/**\n * External dependencies.\n */\n\n/**\n * WordPress dependencies.\n */\n\n\n\n\nconst Save = ({\n attributes,\n className\n}) => {\n const hasIntegrationActive = attributes.provider && attributes.apiKey && attributes.listId;\n return (0,external_wp_element_.createElement)(\"div\", {\n id: attributes.id,\n className: classnames_default()(className, {\n 'is-subscription': hasIntegrationActive && 'subscribe' === attributes.action,\n 'can-submit-and-subscribe': hasIntegrationActive && 'submit-subscribe' === attributes.action,\n 'has-captcha': attributes.hasCaptcha\n }),\n \"data-email-subject\": attributes.subject,\n \"data-option-name\": attributes.optionName\n }, (0,external_wp_element_.createElement)(\"div\", {\n className: \"otter-form__container\"\n }, (0,external_wp_element_.createElement)(external_wp_blockEditor_.InnerBlocks.Content, null), (0,external_wp_element_.createElement)(\"div\", {\n className: \"wp-block-button\"\n }, (0,external_wp_element_.createElement)(\"button\", {\n className: \"wp-block-button__link\"\n }, 'subscribe' === attributes.action ? (0,external_wp_i18n_.__)('Subscribe', 'otter-blocks') : (0,external_wp_i18n_.__)('Submit', 'otter-blocks')))));\n};\n\n/* harmony default export */ var save = (Save);\n;// CONCATENATED MODULE: ./src/blocks/blocks/form/index.js\n/**\n * WordPress dependencies.\n */\n\n\n/**\n * Internal dependencies.\n */\n\n\n\n\n\n\n\n(0,external_wp_blocks_.registerBlockType)('themeisle-blocks/form', {\n title: (0,external_wp_i18n_.__)('Form', 'otter-blocks'),\n description: (0,external_wp_i18n_.__)('Display a form for your clients.', 'otter-blocks'),\n icon: icons/* contactIcon */.XQ,\n category: 'themeisle-blocks',\n keywords: ['business', 'form', 'email'],\n attributes: form_attributes,\n supports: {\n align: ['wide', 'full']\n },\n edit: edit,\n save: save,\n variations: [{\n name: 'themeisle-blocks/form-contact',\n description: (0,external_wp_i18n_.__)('Contact form for clients', 'otter-blocks'),\n icon: icons/* contactIcon */.XQ,\n title: (0,external_wp_i18n_.__)('Contact Form', 'otter-blocks'),\n innerBlocks: [['themeisle-blocks/form-input', {\n label: (0,external_wp_i18n_.__)('Name', 'otter-blocks'),\n type: 'text',\n isRequired: true\n }], ['themeisle-blocks/form-input', {\n label: (0,external_wp_i18n_.__)('Email', 'otter-blocks'),\n type: 'email',\n isRequired: true\n }], ['themeisle-blocks/form-textarea', {\n label: (0,external_wp_i18n_.__)('Message', 'otter-blocks')\n }], ['core/paragraph', {\n content: (0,external_wp_i18n_.__)('You agree to receive email communication from us by submitting this form and understand that your contact information will be stored with us.', 'otter-blocks'),\n fontSize: 'extra-small'\n }]]\n }, {\n name: 'themeisle-blocks/form-subscribe',\n description: (0,external_wp_i18n_.__)('Add the clients to your subscription list', 'otter-blocks'),\n icon: icons/* contactIcon */.XQ,\n title: (0,external_wp_i18n_.__)('Subscribe Form', 'otter-blocks'),\n innerBlocks: [['themeisle-blocks/form-input', {\n label: (0,external_wp_i18n_.__)('Name', 'otter-blocks'),\n type: 'text',\n isRequired: true\n }], ['themeisle-blocks/form-input', {\n label: (0,external_wp_i18n_.__)('Email', 'otter-blocks'),\n type: 'email',\n isRequired: true\n }], ['core/paragraph', {\n content: (0,external_wp_i18n_.__)('You agree to receive email communication from us by submitting this form and understand that your contact information will be stored with us.', 'otter-blocks'),\n fontSize: 'extra-small'\n }]]\n }]\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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RCxFQUVDO0FBQ0NDLE1BQUFBLE9BQU8sRUFBRWpJLHdCQUFFLENBQUUsK0lBQUYsRUFBbUosY0FBbkosQ0FEWjtBQUVDa0ksTUFBQUEsUUFBUSxFQUFFO0FBRlgsS0FGRCxDQWpCWTtBQUxkLEdBdENXO0FBaEIrQixDQUEzQixDQUFqQiIsInNvdXJjZXMiOlsid2VicGFjazovL290dGVyLWJsb2Nrcy8uL3NyYy9ibG9ja3MvYmxvY2tzL2Zvcm0vYXR0cmlidXRlcy5qcz8wMWU2Iiwid2VicGFjazovL290dGVyLWJsb2Nrcy9leHRlcm5hbCB3aW5kb3cgW1wid3BcIixcImFwaVwiXT81ZGMxIiwid2VicGFjazovL290dGVyLWJsb2Nrcy8uL3NyYy9ibG9ja3MvYmxvY2tzL2Zvcm0vaW50ZWdyYXRpb25zLmpzP2U1MDAiLCJ3ZWJwYWNrOi8vb3R0ZXItYmxvY2tzLy4vc3JjL2Jsb2Nrcy9ibG9ja3MvZm9ybS9pbnNwZWN0b3IuanM/YzVhMCIsIndlYnBhY2s6Ly9vdHRlci1ibG9ja3MvLi9zcmMvYmxvY2tzL2Jsb2Nrcy9mb3JtL3BsYWNlaG9sZGVyLmpzP2QwNWQiLCJ3ZWJwYWNrOi8vb3R0ZXItYmxvY2tzLy4vc3JjL2Jsb2Nrcy9ibG9ja3MvZm9ybS9lZGl0LmpzPzYwMzYiLCJ3ZWJwYWNrOi8vb3R0ZXItYmxvY2tzLy4vc3JjL2Jsb2Nrcy9ibG9ja3MvZm9ybS9zYXZlLmpzPzczNDgiLCJ3ZWJwYWNrOi8vb3R0ZXItYmxvY2tzLy4vc3JjL2Jsb2Nrcy9ibG9ja3MvZm9ybS9pbmRleC5qcz8yYzI0Il0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGF0dHJpYnV0ZXMgPSB7XG5cdGlkOiB7XG5cdFx0dHlwZTogJ3N0cmluZydcblx0fSxcblx0c3ViamVjdDoge1xuXHRcdHR5cGU6ICdzdHJpbmcnXG5cdH0sXG5cdGVtYWlsVG86IHtcblx0XHR0eXBlOiAnc3RyaW5nJ1xuXHR9LFxuXHRvcHRpb25OYW1lOiB7XG5cdFx0dHlwZTogJ3N0cmluZydcblx0fSxcblx0aGFzQ2FwdGNoYToge1xuXHRcdHR5cGU6ICdib29sZWFuJ1xuXHR9LFxuXHRwcm92aWRlcjoge1xuXHRcdHR5cGU6ICdzdHJpbmcnLFxuXHRcdGRlZmF1bHQ6ICcnXG5cdH0sXG5cdGFwaUtleToge1xuXHRcdHR5cGU6ICdzdHJpbmcnXG5cdH0sXG5cdGxpc3RJZDoge1xuXHRcdHR5cGU6ICdzdHJpbmcnXG5cdH0sXG5cdGFjdGlvbjoge1xuXHRcdHR5cGU6ICdzdHJpbmcnLFxuXHRcdGRlZmF1bHQ6ICdzdWJzY3JpYmUnXG5cdH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IGF0dHJpYnV0ZXM7XG4iLCJ2YXIgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHdpbmRvd1tcIndwXCJdW1wiYXBpXCJdOyIsImV4cG9ydCBjb25zdCBnZXRMaXN0SWRPcHRpb25Gcm9tID0gKCBwcm92aWRlciwgYXBpS2V5LCBvblN1Y2Nlc3MsIG9uRXJyb3IgKSA9PiB7XG5cdHdpbmRvdy53cC5hcGlGZXRjaCh7IHBhdGg6ICd0aGVtZWlzbGUtZ3V0ZW5iZXJnLWJsb2Nrcy92MS9pbnRlZ3JhdGlvbicsIG1ldGhvZDogJ1BPU1QnLCBkYXRhOiB7IHByb3ZpZGVyLCBhcGlLZXkgfX0pLnRoZW4oXG5cdFx0cmVzID0+IHtcblx0XHRcdGlmICggcmVzPy5zdWNjZXNzICkge1xuXHRcdFx0XHRjb25zdCByZXN1bHQgPSByZXM/Lmxpc3RfaWQ/Lm1hcCggaXRlbSA9PiB7XG5cdFx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHRcdGxhYmVsOiBpdGVtLm5hbWUsXG5cdFx0XHRcdFx0XHR2YWx1ZTogaXRlbS5pZD8udG9TdHJpbmcoKVxuXHRcdFx0XHRcdH07XG5cdFx0XHRcdH0pIHx8IFtdO1xuXHRcdFx0XHRvblN1Y2Nlc3MoIHJlc3VsdCApO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0b25FcnJvciggcmVzICk7XG5cdFx0XHR9XG5cdFx0fVxuXHQpLmNhdGNoKCBlcnIgPT4ge1xuXHRcdGNvbnNvbGUubG9nKCBlcnIgKTtcblx0fSk7XG59O1xuIiwiLyoqXG4gKiBXb3JkUHJlc3MgZGVwZW5kZW5jaWVzLlxuICovXG5pbXBvcnQgeyBfXyB9IGZyb20gJ0B3b3JkcHJlc3MvaTE4bic7XG5cbmltcG9ydCBhcGkgZnJvbSAnQHdvcmRwcmVzcy9hcGknO1xuXG5pbXBvcnQgeyBJbnNwZWN0b3JDb250cm9scyB9IGZyb20gJ0B3b3JkcHJlc3MvYmxvY2stZWRpdG9yJztcblxuaW1wb3J0IHtcblx0QnV0dG9uLFxuXHRQYW5lbEJvZHksXG5cdFNlbGVjdENvbnRyb2wsXG5cdFNwaW5uZXIsXG5cdFRleHRDb250cm9sLFxuXHRUb2dnbGVDb250cm9sXG59IGZyb20gJ0B3b3JkcHJlc3MvY29tcG9uZW50cyc7XG5cbmltcG9ydCB7IGRpc3BhdGNoIH0gZnJvbSAnQHdvcmRwcmVzcy9kYXRhJztcblxuaW1wb3J0IHtcblx0RnJhZ21lbnQsXG5cdHVzZVN0YXRlLFxuXHR1c2VFZmZlY3Rcbn0gZnJvbSAnQHdvcmRwcmVzcy9lbGVtZW50JztcblxuLyoqXG4gKiBJbnRlcm5hbCBkZXBlbmRlbmNpZXMuXG4gKi9cbmltcG9ydCB7IGdldExpc3RJZE9wdGlvbkZyb20gfSBmcm9tICcuL2ludGVncmF0aW9ucy5qcyc7XG5cbmNvbnN0IEluc3BlY3RvciA9ICh7XG5cdGF0dHJpYnV0ZXMsXG5cdHNldEF0dHJpYnV0ZXNcbn0pID0+IHtcblx0Y29uc3QgeyBjcmVhdGVOb3RpY2UgfSA9IGRpc3BhdGNoKCAnY29yZS9ub3RpY2VzJyApO1xuXG5cdGNvbnN0IFsgc2F2ZWRFbWFpbCwgc2V0U2F2ZWRFbWFpbCBdID0gdXNlU3RhdGUoICcnICk7XG5cdGNvbnN0IFsgZW1haWwsIHNldEVtYWlsIF0gPSB1c2VTdGF0ZSggJycgKTtcblx0Y29uc3QgWyBpc0VtYWlsTG9hZGVkLCBzZXRFbWFpbExvYWRpbmcgXSA9IHVzZVN0YXRlKCB0cnVlICk7XG5cdGNvbnN0IFsgbGlzdElET3B0aW9ucywgc2V0TGlzdElET3B0aW9ucyBdID0gdXNlU3RhdGUoWyB7IGxhYmVsOiBfXyggJ05vbmUnLCAnb3R0ZXItYmxvY2tzJyApLCB2YWx1ZTogJycgfSBdKTtcblx0Y29uc3QgWyBmZXRjaExpc3RJZFN0YXR1cywgc2V0RmV0Y2hMaXN0SWRTdGF0dXMgXSA9IHVzZVN0YXRlKCAnbG9hZGluZycgKTtcblxuXHR1c2VFZmZlY3QoICgpID0+IHtcblx0XHRpZiAoIGF0dHJpYnV0ZXMub3B0aW9uTmFtZSApIHtcblx0XHRcdGFwaS5sb2FkUHJvbWlzZS50aGVuKCAoKSA9PiB7XG5cdFx0XHRcdCggbmV3IGFwaS5tb2RlbHMuU2V0dGluZ3MoKSApLmZldGNoKCkuZG9uZSggcmVzID0+IHtcblx0XHRcdFx0XHRyZXMudGhlbWVpc2xlX2Jsb2Nrc19mb3JtX2VtYWlscz8uZmlsdGVyKCAoeyBmb3JtIH0pID0+IGZvcm0gPT09IGF0dHJpYnV0ZXMub3B0aW9uTmFtZSApPy5mb3JFYWNoKCBpdGVtID0+IHtcblx0XHRcdFx0XHRcdHNldEVtYWlsKCBpdGVtPy5lbWFpbCApO1xuXHRcdFx0XHRcdFx0c2V0RW1haWxMb2FkaW5nKCB0cnVlICk7XG5cdFx0XHRcdFx0XHRzZXRTYXZlZEVtYWlsKCBpdGVtPy5lbWFpbCApO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9KTtcblx0XHRcdH0pO1xuXHRcdH1cblx0fSwgWyBhdHRyaWJ1dGVzLm9wdGlvbk5hbWUgXSk7XG5cblx0dXNlRWZmZWN0KCAoKSA9PiB7XG5cdFx0aWYgKCBhdHRyaWJ1dGVzLmFwaUtleSAmJiBhdHRyaWJ1dGVzLnByb3ZpZGVyICkge1xuXHRcdFx0Z2V0TGlzdElkT3B0aW9uRnJvbSggYXR0cmlidXRlcy5wcm92aWRlciwgYXR0cmlidXRlcy5hcGlLZXksXG5cdFx0XHRcdG9wdGlvbnMgPT4ge1xuXHRcdFx0XHRcdG9wdGlvbnMuc3BsaWNlKCAwLCAwLCB7IGxhYmVsOiBfXyggJ05vbmUnLCAnb3R0ZXItYmxvY2tzJyApLCB2YWx1ZTogJycgfSk7XG5cdFx0XHRcdFx0c2V0TGlzdElET3B0aW9ucyggb3B0aW9ucyApO1xuXHRcdFx0XHRcdHNldEZldGNoTGlzdElkU3RhdHVzKCAncmVhZHknICk7XG5cblx0XHRcdFx0XHRjb25zdCBpc0N1cnJlbnRPcHRpb25WYWxpZCA9IDEgPT09IG9wdGlvbnMubWFwKCAoeyB2YWx1ZSB9KSA9PiB2YWx1ZSApLmZpbHRlciggdmFsdWUgPT4gdmFsdWUgPT09IGF0dHJpYnV0ZXMubGlzdElkICkubGVuZ3RoO1xuXHRcdFx0XHRcdGlmICggYXR0cmlidXRlcy5saXN0SWQgJiYgISBpc0N1cnJlbnRPcHRpb25WYWxpZCApIHtcblx0XHRcdFx0XHRcdGNyZWF0ZU5vdGljZShcblx0XHRcdFx0XHRcdFx0J2Vycm9yJyxcblx0XHRcdFx0XHRcdFx0X18oICdUaGUgY3VycmVudCBjb250YWN0IGxpc3QgaXMgaW52YWxpZCEgUGxlYXNlIGNob29zZSBhIG5ldyBjb250YWN0IGxpc3QuJywgJ290dGVyLWJsb2NrcycgKSxcblx0XHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcdGlzRGlzbWlzc2libGU6IHRydWUsXG5cdFx0XHRcdFx0XHRcdFx0dHlwZTogJ3NuYWNrYmFyJ1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSxcblx0XHRcdFx0ZXJyID0+IHtcblx0XHRcdFx0XHRjcmVhdGVOb3RpY2UoXG5cdFx0XHRcdFx0XHQnZXJyb3InLFxuXHRcdFx0XHRcdFx0ZXJyPy5lcnJvcixcblx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0aXNEaXNtaXNzaWJsZTogdHJ1ZSxcblx0XHRcdFx0XHRcdFx0dHlwZTogJ3NuYWNrYmFyJyxcblx0XHRcdFx0XHRcdFx0aWQ6ICd0aGVtZWlzbGUtZm9ybS1zZXJ2ZXItZXJyb3InXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0KTtcblxuXHRcdFx0XHRcdHNldEZldGNoTGlzdElkU3RhdHVzKCAnZXJyb3InICk7XG5cdFx0XHRcdH1cblx0XHRcdCk7XG5cdFx0fVxuXHR9LCBbIGF0dHJpYnV0ZXMucHJvdmlkZXIsIGF0dHJpYnV0ZXMuYXBpS2V5IF0pO1xuXG5cdGNvbnN0IHNhdmVFbWFpbCA9ICgpID0+IHtcblx0XHQoIG5ldyBhcGkubW9kZWxzLlNldHRpbmdzKCkgKS5mZXRjaCgpLmRvbmUoIHJlcyA9PiB7XG5cdFx0XHRjb25zdCBlbWFpbHMgPSByZXMudGhlbWVpc2xlX2Jsb2Nrc19mb3JtX2VtYWlscyA/IHJlcy50aGVtZWlzbGVfYmxvY2tzX2Zvcm1fZW1haWxzIDogW107XG5cdFx0XHRsZXQgaXNNaXNzaW5nID0gdHJ1ZTtcblx0XHRcdGxldCBoYXNVcGRhdGVkID0gZmFsc2U7XG5cblx0XHRcdGVtYWlscz8uZm9yRWFjaCggKHsgZm9ybSB9LCBpbmRleCApID0+IHtcblx0XHRcdFx0aWYgKCBmb3JtID09PSBhdHRyaWJ1dGVzLm9wdGlvbk5hbWUgKSB7XG5cdFx0XHRcdFx0aWYgKCBlbWFpbHNbaW5kZXhdLmVtYWlsICE9PSBlbWFpbCApIHtcblx0XHRcdFx0XHRcdGVtYWlsc1tpbmRleF0uZW1haWwgPSBlbWFpbDsgLy8gdXBkYXRlIHRoZSB2YWx1ZVxuXHRcdFx0XHRcdFx0aGFzVXBkYXRlZCA9IHRydWU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGlzTWlzc2luZyA9IGZhbHNlO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblxuXHRcdFx0aWYgKCBpc01pc3NpbmcgKSB7XG5cdFx0XHRcdGVtYWlscy5wdXNoKHtcblx0XHRcdFx0XHRmb3JtOiBhdHRyaWJ1dGVzLm9wdGlvbk5hbWUsXG5cdFx0XHRcdFx0ZW1haWxcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cblx0XHRcdGlmICggaXNNaXNzaW5nIHx8IGhhc1VwZGF0ZWQgKSB7XG5cdFx0XHRcdGNvbnN0IG1vZGVsID0gbmV3IGFwaS5tb2RlbHMuU2V0dGluZ3Moe1xuXHRcdFx0XHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjYW1lbGNhc2Vcblx0XHRcdFx0XHR0aGVtZWlzbGVfYmxvY2tzX2Zvcm1fZW1haWxzOiBlbWFpbHNcblx0XHRcdFx0fSk7XG5cblx0XHRcdFx0c2V0RW1haWxMb2FkaW5nKCBmYWxzZSApO1xuXG5cdFx0XHRcdG1vZGVsLnNhdmUoKS50aGVuKCByZXNwb25zZSA9PiB7XG5cdFx0XHRcdFx0cmVzcG9uc2UudGhlbWVpc2xlX2Jsb2Nrc19mb3JtX2VtYWlscz8uZmlsdGVyKCAoeyBmb3JtIH0pID0+IGZvcm0gPT09IGF0dHJpYnV0ZXMub3B0aW9uTmFtZSApLmZvckVhY2goIGl0ZW0gPT4ge1xuXHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRzZXRFbWFpbExvYWRpbmcoIHRydWUgKTtcblx0XHRcdFx0XHRcdFx0c2V0U2F2ZWRFbWFpbCggaXRlbT8uZW1haWwgKTtcblxuXHRcdFx0XHRcdFx0XHRjcmVhdGVOb3RpY2UoXG5cdFx0XHRcdFx0XHRcdFx0J2luZm8nLFxuXHRcdFx0XHRcdFx0XHRcdF9fKCAnRW1haWwgaGFzIGJlZW4gc2F2ZWQhJywgJ290dGVyLWJsb2NrcycgKSxcblx0XHRcdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdFx0XHRpc0Rpc21pc3NpYmxlOiB0cnVlLFxuXHRcdFx0XHRcdFx0XHRcdFx0dHlwZTogJ3NuYWNrYmFyJ1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH07XG5cblx0cmV0dXJuIChcblx0XHQ8SW5zcGVjdG9yQ29udHJvbHM+XG5cdFx0XHQ8UGFuZWxCb2R5XG5cdFx0XHRcdHRpdGxlPXsgX18oICdTZXR0aW5ncycsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0PlxuXHRcdFx0XHQ8VGV4dENvbnRyb2xcblx0XHRcdFx0XHRsYWJlbD17IF9fKCAnRW1haWwgU3ViamVjdCcsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHRcdHBsYWNlaG9sZGVyPXsgX18oICdBIG5ldyBzdWJtaXNzaW9uJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdFx0dmFsdWU9eyBhdHRyaWJ1dGVzLnN1YmplY3QgfVxuXHRcdFx0XHRcdG9uQ2hhbmdlPXsgc3ViamVjdCA9PiBzZXRBdHRyaWJ1dGVzKHsgc3ViamVjdCB9KSB9XG5cdFx0XHRcdFx0aGVscD17IF9fKCAnQ3VzdG9taXplIHRoZSBlbWFpbCB0aXRsZSBzZW5kIGJ5IHRoaXMgZm9ybS4nLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdFx0Lz5cblxuXHRcdFx0XHQ8VGV4dENvbnRyb2xcblx0XHRcdFx0XHRsYWJlbD17IF9fKCAnRW1haWwgVG8nLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdFx0XHRwbGFjZWhvbGRlcj17IF9fKCAnRGVmYXVsdCBpcyB0byBhZG1pbiBzaXRlJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdFx0dmFsdWU9eyBlbWFpbCB9XG5cdFx0XHRcdFx0b25DaGFuZ2U9eyBlbWFpbCA9PiBzZXRFbWFpbCggZW1haWwgKSB9XG5cdFx0XHRcdFx0aGVscD17IF9fKCAnU2VuZCBmb3JtIGRhdGEgdG8gYW5vdGhlciBlbWFpbC4gKEFkbWluIGlzIGRlZmF1bHQpLicsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHQvPlxuXG5cdFx0XHRcdDxCdXR0b25cblx0XHRcdFx0XHRpc1ByaW1hcnlcblx0XHRcdFx0XHRvbkNsaWNrPXsgc2F2ZUVtYWlsIH1cblx0XHRcdFx0XHRkaXNhYmxlZD17IGVtYWlsID09PSBzYXZlZEVtYWlsIH1cblx0XHRcdFx0PlxuXHRcdFx0XHRcdDxGcmFnbWVudD5cblx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0ISBpc0VtYWlsTG9hZGVkICYmIChcblx0XHRcdFx0XHRcdFx0XHQ8U3Bpbm5lciAvPlxuXHRcdFx0XHRcdFx0XHQpXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdF9fKCAnU2F2ZScsICdvdHRlci1ibG9ja3MnIClcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHQ8L0ZyYWdtZW50PlxuXHRcdFx0XHQ8L0J1dHRvbj5cblxuXHRcdFx0XHQ8VG9nZ2xlQ29udHJvbFxuXHRcdFx0XHRcdGxhYmVsPXsgX18oICdBZGQgY2FwdGNoYSBjaGVja2JveCcsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHRcdGNoZWNrZWQ9eyBhdHRyaWJ1dGVzLmhhc0NhcHRjaGEgfVxuXHRcdFx0XHRcdG9uQ2hhbmdlPXsgaGFzQ2FwdGNoYSA9PiBzZXRBdHRyaWJ1dGVzKHsgaGFzQ2FwdGNoYSB9KSB9XG5cdFx0XHRcdFx0aGVscD17IF9fKCAnQWRkIEdvb2dsZSByZUNhcHRjaGEgVjIgZm9yIHByb3RlY3Rpb24gYWdhaW50cyBib3RzLicsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHQvPlxuXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRhdHRyaWJ1dGVzLmhhc0NhcHRjaGEgJiYgKFxuXHRcdFx0XHRcdFx0X18oICdZb3UgY2FuIGNoYW5nZSB0aGUgQVBJIEtleXMgaW4gU2V0dGluZ3MgPiBPdHRlcicsICdvdHRlci1ibG9ja3MnIClcblx0XHRcdFx0XHQpXG5cdFx0XHRcdH1cblxuXHRcdFx0PC9QYW5lbEJvZHk+XG5cblx0XHRcdDxQYW5lbEJvZHlcblx0XHRcdFx0dGl0bGU9eyBfXyggJ0ludGVncmF0aW9uJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdGluaXRpYWxPcGVuPXsgZmFsc2UgfVxuXHRcdFx0PlxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0X18oICdBZGQgeW91ciBjbGllbnQgZW1haWwgdG8gYSBEaWdpdGFsIE1hcmtldGluZyBwcm92aWRlci4nLCAnb3R0ZXItYmxvY2tzJyApXG5cdFx0XHRcdH1cblx0XHRcdFx0PGJyIC8+IDxiciAvPlxuXHRcdFx0XHQ8Yj4geyBfXyggJ1lvdSBuZWVkIHRvIGhhdmUgYXQgbGVhc3Qgb25lIGVtYWlsIGZpZWxkIGluIHlvdXIgZm9ybS4gRm9yIG11bHRpcGxlIGVtYWlsIGZpZWxkcywgb25seSB0aGUgZmlyc3Qgd2lsbCBiZSB1c2VkLicsICdvdHRlci1ibG9ja3MnICkgfSA8L2I+XG5cblx0XHRcdFx0PFNlbGVjdENvbnRyb2xcblx0XHRcdFx0XHRsYWJlbD17IF9fKCAnUHJvdmlkZXInLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdFx0XHR2YWx1ZT17IGF0dHJpYnV0ZXMucHJvdmlkZXIgfVxuXHRcdFx0XHRcdG9wdGlvbnM9eyBbXG5cdFx0XHRcdFx0XHR7IGxhYmVsOiBfXyggJ05vbmUnLCAnb3R0ZXItYmxvY2tzJyApLCB2YWx1ZTogJycgfSxcblx0XHRcdFx0XHRcdHsgbGFiZWw6IF9fKCAnTWFpbGNoaW1wJywgJ290dGVyLWJsb2NrcycgKSwgdmFsdWU6ICdtYWlsY2hpbXAnIH0sXG5cdFx0XHRcdFx0XHR7IGxhYmVsOiBfXyggJ1NlbmRpbmJsdWUnLCAnb3R0ZXItYmxvY2tzJyApLCB2YWx1ZTogJ3NlbmRpbmJsdWUnIH1cblx0XHRcdFx0XHRdIH1cblx0XHRcdFx0XHRvbkNoYW5nZT17IHByb3ZpZGVyID0+IHtcblx0XHRcdFx0XHRcdHNldEF0dHJpYnV0ZXMoeyBwcm92aWRlciwgYXBpS2V5OiAnJywgbGlzdElkOiAnJyB9KTtcblx0XHRcdFx0XHR9IH1cblx0XHRcdFx0Lz5cblxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0YXR0cmlidXRlcy5wcm92aWRlciAmJiAoXG5cdFx0XHRcdFx0XHQ8RnJhZ21lbnQ+XG5cdFx0XHRcdFx0XHRcdDxUZXh0Q29udHJvbFxuXHRcdFx0XHRcdFx0XHRcdGxhYmVsPXsgX18oICdBUEkgS2V5JywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdFx0XHRcdFx0aGVscD17IF9fKCAnWW91IGNhbiBmaW5kIHRoZSBrZXkgaW4gdGhlIHByb3ZpZGVyXFwncyB3ZWJzaXRlJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdFx0XHRcdFx0dmFsdWU9eyBhdHRyaWJ1dGVzLmFwaUtleSB9XG5cdFx0XHRcdFx0XHRcdFx0b25DaGFuZ2U9eyBhcGlLZXkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdFx0c2V0RmV0Y2hMaXN0SWRTdGF0dXMoICdsb2FkaW5nJyApO1xuXHRcdFx0XHRcdFx0XHRcdFx0c2V0TGlzdElET3B0aW9ucyhbXSk7XG5cdFx0XHRcdFx0XHRcdFx0XHRzZXRBdHRyaWJ1dGVzKHsgYXBpS2V5LCBsaXN0SWQ6ICcnIH0pO1xuXHRcdFx0XHRcdFx0XHRcdH19XG5cdFx0XHRcdFx0XHRcdC8+XG5cblx0XHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcdGF0dHJpYnV0ZXMuYXBpS2V5ICYmIDIgPiBsaXN0SURPcHRpb25zLmxlbmd0aCAmJiAnbG9hZGluZycgPT09IGZldGNoTGlzdElkU3RhdHVzICYmIChcblx0XHRcdFx0XHRcdFx0XHRcdDxGcmFnbWVudD5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PFNwaW5uZXIgLz5cblx0XHRcdFx0XHRcdFx0XHRcdFx0eyBfXyggJ0ZldGNoaW5nIGRhdGEgZnJvbSBwcm92aWRlci4nLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdFx0XHRcdFx0XHRcdDwvRnJhZ21lbnQ+XG5cdFx0XHRcdFx0XHRcdFx0KVxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XHRhdHRyaWJ1dGVzLmFwaUtleSAmJiAncmVhZHknID09PSBmZXRjaExpc3RJZFN0YXR1cyAmJiAoXG5cdFx0XHRcdFx0XHRcdFx0XHQ8RnJhZ21lbnQ+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxTZWxlY3RDb250cm9sXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0bGFiZWw9eyBfXyggJ0NvbnRhY3QgTGlzdCcsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHZhbHVlPXsgYXR0cmlidXRlcy5saXN0SWQgfVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdG9wdGlvbnM9eyBsaXN0SURPcHRpb25zIH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRvbkNoYW5nZT17IGxpc3RJZCA9PiBzZXRBdHRyaWJ1dGVzKHsgbGlzdElkIH0pIH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0Lz5cblx0XHRcdFx0XHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDIgPD0gbGlzdElET3B0aW9ucz8ubGVuZ3RoICYmIGF0dHJpYnV0ZXMubGlzdElkICYmIChcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxGcmFnbWVudD5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PFNlbGVjdENvbnRyb2xcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRsYWJlbD17IF9fKCAnQWN0aW9uJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0dmFsdWU9eyBhdHRyaWJ1dGVzLmFjdGlvbiB9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0b3B0aW9ucz17IFtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHsgbGFiZWw6IF9fKCAnTm9uZScsICdvdHRlci1ibG9ja3MnICksIHZhbHVlOiAnJyB9LFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0eyBsYWJlbDogX18oICdTdWJzY3JpYmUnLCAnb3R0ZXItYmxvY2tzJyApLCB2YWx1ZTogJ3N1YnNjcmliZScgfSxcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHsgbGFiZWw6IF9fKCAnU3VibWl0ICYgU3Vic2NyaWJlJywgJ290dGVyLWJsb2NrcycgKSwgdmFsdWU6ICdzdWJtaXQtc3Vic2NyaWJlJyB9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XSB9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0b25DaGFuZ2U9eyBhY3Rpb24gPT4gc2V0QXR0cmlidXRlcyh7IGFjdGlvbiB9KSB9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdC8+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQnc3VibWl0LXN1YnNjcmliZScgPT09IGF0dHJpYnV0ZXMuYWN0aW9uICYmIChcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdF9fKCAnVGhpcyBhY3Rpb24gd2lsbCBhZGQgdGhlIGNsaWVudCB0byB0aGUgY29udGFjdCBsaXN0IGFuZCBzZW5kIGEgc2VwYXJhdGEgZW1haWwgd2l0aCB0aGUgZm9ybSBkYXRhIHRvIGFkbWluaXN0cmF0b3Igb3IgdG8gdGhlIGVtYWlsIG1lbnRpb25lZCBpbiBcXCdGb3JtIHRvXFwnIGZpZWxkLiBBIGNoZWNrYm94IGZvciBkYXRhLXNoYXJpbmcgY29uc2VudCB3aXRoIHRoaXJkLXBhcnR5IHdpbGwgYmUgYWRkZWQgb24gZm9ybS4nLCAnb3R0ZXItYmxvY2tzJyApXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0KVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L0ZyYWdtZW50PlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdClcblx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0PC9GcmFnbWVudD5cblx0XHRcdFx0XHRcdFx0XHQpXG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdDwvRnJhZ21lbnQ+XG5cdFx0XHRcdFx0KVxuXHRcdFx0XHR9XG5cdFx0XHQ8L1BhbmVsQm9keT5cblx0XHQ8L0luc3BlY3RvckNvbnRyb2xzPlxuXHQpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgSW5zcGVjdG9yO1xuIiwiLyoqXG4gKiBXb3JkUHJlc3MgZGVwZW5kZW5jaWVzLlxuICovXG5pbXBvcnQgeyBfXyB9IGZyb20gJ0B3b3JkcHJlc3MvaTE4bic7XG5cbmltcG9ydCB7XG5cdEJ1dHRvbixcblx0RXh0ZXJuYWxMaW5rLFxuXHRQbGFjZWhvbGRlcixcblx0U3Bpbm5lcixcblx0VGV4dENvbnRyb2xcbn0gZnJvbSAnQHdvcmRwcmVzcy9jb21wb25lbnRzJztcblxuaW1wb3J0IHsgRnJhZ21lbnQgfSBmcm9tICdAd29yZHByZXNzL2VsZW1lbnQnO1xuXG5jb25zdCBCbG9ja1BsYWNlaG9sZGVyID0gKHtcblx0Y2xhc3NOYW1lLFxuXHRpc0FQSUxvYWRlZCxcblx0aXNBUElTYXZlZCxcblx0aXNTYXZpbmcsXG5cdHNhdmVBUElLZXksXG5cdHNpdGVLZXksXG5cdHNlY3JldEtleSxcblx0c2V0U2l0ZUtleSxcblx0c2V0U2VjcmV0S2V5XG59KSA9PiB7XG5cdGlmICggISBpc0FQSUxvYWRlZCApIHtcblx0XHRyZXR1cm4gKFxuXHRcdFx0PEZyYWdtZW50PlxuXHRcdFx0XHQ8YnIgLz5cblx0XHRcdFx0PFBsYWNlaG9sZGVyPlxuXHRcdFx0XHRcdDxkaXY+XG5cdFx0XHRcdFx0XHQ8U3Bpbm5lciAvPlxuXHRcdFx0XHRcdFx0eyBfXyggJ0NoZWNraW5nIHRoZSBBUEkgS2V5cyBmb3IgcmVDYXB0Y2hhJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdDwvUGxhY2Vob2xkZXI+XG5cdFx0XHQ8L0ZyYWdtZW50PlxuXHRcdCk7XG5cdH1cblxuXHRpZiAoICEgaXNBUElTYXZlZCApIHtcblx0XHRyZXR1cm4gKFxuXHRcdFx0PFBsYWNlaG9sZGVyXG5cdFx0XHRcdGljb249XCJhZG1pbi1zaXRlXCJcblx0XHRcdFx0bGFiZWw9eyBfXyggJ0dvb2dsZSByZUNhcHRjaGEnLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdFx0aW5zdHJ1Y3Rpb25zPXsgX18oICdBIEdvb2dsZSByZUNhcHRjaGEgVjIgQVBJIGtleXMgYXJlIHJlcXVpcmVkLCBwbGVhc2UgZW50ZXIgb25lIGJlbG93LicsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHRjbGFzc05hbWU9eyBjbGFzc05hbWUgfVxuXHRcdFx0PlxuXHRcdFx0XHQ8ZGl2IGNsYXNzTmFtZT1cImNvbXBvbmVudHMtcGxhY2Vob2xkZXJfX2FjdGlvbnNcIj5cblx0XHRcdFx0XHQ8VGV4dENvbnRyb2xcblx0XHRcdFx0XHRcdHR5cGU9XCJ0ZXh0XCJcblx0XHRcdFx0XHRcdGxhYmVsPXsgX18oICdTaXRlIEtleScsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHRcdFx0dmFsdWU9eyBzaXRlS2V5IH1cblx0XHRcdFx0XHRcdGNsYXNzTmFtZT1cImNvbXBvbmVudHMtcGxhY2Vob2xkZXJfX2lucHV0XCJcblx0XHRcdFx0XHRcdG9uQ2hhbmdlPXsgc2V0U2l0ZUtleSB9XG5cdFx0XHRcdFx0Lz5cblxuXHRcdFx0XHRcdDxUZXh0Q29udHJvbFxuXHRcdFx0XHRcdFx0dHlwZT1cInRleHRcIlxuXHRcdFx0XHRcdFx0bGFiZWw9eyBfXyggJ1NlY3JldCBLZXknLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdFx0XHRcdHZhbHVlPXsgc2VjcmV0S2V5IH1cblx0XHRcdFx0XHRcdGNsYXNzTmFtZT1cImNvbXBvbmVudHMtcGxhY2Vob2xkZXJfX2lucHV0XCJcblx0XHRcdFx0XHRcdG9uQ2hhbmdlPXsgc2V0U2VjcmV0S2V5IH1cblx0XHRcdFx0XHQvPlxuXG5cdFx0XHRcdFx0PEJ1dHRvblxuXHRcdFx0XHRcdFx0aXNMYXJnZVxuXHRcdFx0XHRcdFx0aXNQcmltYXJ5XG5cdFx0XHRcdFx0XHR0eXBlPVwic3VibWl0XCJcblx0XHRcdFx0XHRcdG9uQ2xpY2s9eyBzYXZlQVBJS2V5IH1cblx0XHRcdFx0XHRcdGlzQnVzeT17IGlzU2F2aW5nIH1cblx0XHRcdFx0XHRcdGRpc2FibGVkPXsgJycgPT09IHNpdGVLZXkgfHwgJycgPT09IHNlY3JldEtleSB9XG5cdFx0XHRcdFx0PlxuXHRcdFx0XHRcdFx0eyBfXyggJ1NhdmUnLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdFx0XHQ8L0J1dHRvbj5cblx0XHRcdFx0PC9kaXY+XG5cblx0XHRcdFx0PGRpdiBjbGFzc05hbWU9XCJjb21wb25lbnRzLXBsYWNlaG9sZGVyX19sZWFybi1tb3JlXCI+XG5cdFx0XHRcdFx0eyBfXyggJ1lvdSBuZWVkIHRvIGFjdGl2YXRlIHJlQ2FwdGNoYSBBUEkuJywgJ290dGVyLWJsb2NrcycgKSB9IDxFeHRlcm5hbExpbmsgaHJlZj1cImh0dHA6Ly93d3cuZ29vZ2xlLmNvbS9yZWNhcHRjaGEvYWRtaW5cIj57IF9fKCAnTmVlZCBhbiBBUEkga2V5PyBHZXQgb25lIGhlcmUuJywgJ290dGVyLWJsb2NrcycgKSB9PC9FeHRlcm5hbExpbms+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0PC9QbGFjZWhvbGRlcj5cblx0XHQpO1xuXHR9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBCbG9ja1BsYWNlaG9sZGVyO1xuIiwiLyoqXG4gKiBXb3JkUHJlc3MgZGVwZW5kZW5jaWVzXG4gKi9cbmltcG9ydCB7IF9fIH0gZnJvbSAnQHdvcmRwcmVzcy9pMThuJztcblxuaW1wb3J0IHsgZ2V0IH0gZnJvbSAnbG9kYXNoJztcblxuaW1wb3J0IGFwaSBmcm9tICdAd29yZHByZXNzL2FwaSc7XG5cbmltcG9ydCB7XG5cdF9fZXhwZXJpbWVudGFsQmxvY2tWYXJpYXRpb25QaWNrZXIgYXMgVmFyaWF0aW9uUGlja2VyLFxuXHRJbm5lckJsb2Nrc1xufSBmcm9tICdAd29yZHByZXNzL2Jsb2NrLWVkaXRvcic7XG5cbmltcG9ydCB7XG5cdGNyZWF0ZUJsb2NrLFxuXHRjcmVhdGVCbG9ja3NGcm9tSW5uZXJCbG9ja3NUZW1wbGF0ZVxufSBmcm9tICdAd29yZHByZXNzL2Jsb2Nrcyc7XG5cbmltcG9ydCB7XG5cdGRpc3BhdGNoLFxuXHRzZWxlY3QsXG5cdHVzZVNlbGVjdCxcblx0dXNlRGlzcGF0Y2hcbn0gZnJvbSAnQHdvcmRwcmVzcy9kYXRhJztcblxuaW1wb3J0IHtcblx0RnJhZ21lbnQsXG5cdHVzZVN0YXRlLFxuXHR1c2VFZmZlY3QsXG5cdHVzZVJlZlxufSBmcm9tICdAd29yZHByZXNzL2VsZW1lbnQnO1xuXG4vKipcbiAqIEludGVybmFsIGRlcGVuZGVuY2llc1xuICovXG5pbXBvcnQgeyBibG9ja0luaXQgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2Jsb2NrLXV0aWxpdHkuanMnO1xuaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4vYXR0cmlidXRlcy5qcyc7XG5pbXBvcnQgSW5zcGVjdG9yIGZyb20gJy4vaW5zcGVjdG9yLmpzJztcbmltcG9ydCBQbGFjZWhvbGRlciBmcm9tICcuL3BsYWNlaG9sZGVyLmpzJztcblxuY29uc3QgRWRpdCA9ICh7XG5cdGF0dHJpYnV0ZXMsXG5cdHNldEF0dHJpYnV0ZXMsXG5cdGNsYXNzTmFtZSxcblx0Y2xpZW50SWQsXG5cdG5hbWVcbn0pID0+IHtcblx0Y29uc3QgWyBnb29nbGVDYXB0Y2hhQVBJU2l0ZUtleSwgc2V0R29vZ2xlQ2FwdGNoYUFQSVNpdGVLZXkgXSA9IHVzZVN0YXRlKCAnJyApO1xuXHRjb25zdCBbIGdvb2dsZUNhcHRjaGFBUElTZWNyZXRLZXksIHNldEdvb2dsZUNhcHRjaGFBUElTZWNyZXRLZXkgXSA9IHVzZVN0YXRlKCAnJyApO1xuXHRjb25zdCBbIGlzQVBJTG9hZGVkLCBzZXRBUElMb2FkZWQgXSA9IHVzZVN0YXRlKCBmYWxzZSApO1xuXHRjb25zdCBbIGlzQVBJU2F2ZWQsIHNldEFQSVNhdmVkIF0gPSB1c2VTdGF0ZSggZmFsc2UgKTtcblxuXHRjb25zdCBzZXR0aW5nc1JlZiA9IHVzZVJlZiggbnVsbCApO1xuXHRjb25zdCBbIGFyZVNldHRpbmdzQXZhaWxhYmxlLCBzZXRTZXR0aW5nc1N0YXR1cyBdID0gdXNlU3RhdGUoIGZhbHNlICk7XG5cblx0Y29uc3Qge1xuXHRcdGluc2VydEJsb2NrLFxuXHRcdHJlbW92ZUJsb2NrXG5cdH0gPSB1c2VEaXNwYXRjaCggJ2NvcmUvYmxvY2stZWRpdG9yJyApO1xuXG5cdGNvbnN0IHsgcmVwbGFjZUlubmVyQmxvY2tzIH0gPSB1c2VEaXNwYXRjaCggJ2NvcmUvYmxvY2stZWRpdG9yJyApO1xuXHRjb25zdCB7IGNyZWF0ZU5vdGljZSB9ID0gZGlzcGF0Y2goICdjb3JlL25vdGljZXMnICk7XG5cblx0Y29uc3QgaGFzSW5uZXJCbG9ja3MgPSB1c2VTZWxlY3QoXG5cdFx0c2VsZWN0ID0+XG5cdFx0XHQwIDwgc2VsZWN0KCAnY29yZS9ibG9jay1lZGl0b3InICkuZ2V0QmxvY2tzKCBjbGllbnRJZCApLmxlbmd0aCxcblx0XHRbIGNsaWVudElkIF1cblx0KTtcblxuXHRjb25zdCB7IGJsb2NrVHlwZSwgZGVmYXVsdFZhcmlhdGlvbiwgdmFyaWF0aW9ucyB9ID0gdXNlU2VsZWN0KFxuXHRcdHNlbGVjdCA9PiB7XG5cdFx0XHRjb25zdCB7XG5cdFx0XHRcdGdldEJsb2NrVmFyaWF0aW9ucyxcblx0XHRcdFx0Z2V0QmxvY2tUeXBlLFxuXHRcdFx0XHRnZXREZWZhdWx0QmxvY2tWYXJpYXRpb25cblx0XHRcdH0gPSBzZWxlY3QoICdjb3JlL2Jsb2NrcycgKTtcblxuXHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0YmxvY2tUeXBlOiBnZXRCbG9ja1R5cGUoIG5hbWUgKSxcblx0XHRcdFx0ZGVmYXVsdFZhcmlhdGlvbjogZ2V0RGVmYXVsdEJsb2NrVmFyaWF0aW9uKCBuYW1lLCAnYmxvY2snICksXG5cdFx0XHRcdHZhcmlhdGlvbnM6IGdldEJsb2NrVmFyaWF0aW9ucyggbmFtZSwgJ2Jsb2NrJyApXG5cdFx0XHR9O1xuXHRcdH0sXG5cdFx0WyBuYW1lIF1cblx0KTtcblxuXHRjb25zdCBjaGlsZHJlbiA9IHVzZVNlbGVjdCggc2VsZWN0ID0+IHtcblx0XHRjb25zdCB7XG5cdFx0XHRnZXRCbG9ja1xuXHRcdH0gPSBzZWxlY3QoICdjb3JlL2Jsb2NrLWVkaXRvcicgKTtcblx0XHRyZXR1cm4gZ2V0QmxvY2soIGNsaWVudElkICkuaW5uZXJCbG9ja3M7XG5cdH0pO1xuXG5cdHVzZUVmZmVjdCggKCkgPT4ge1xuXHRcdGNvbnN0IHVuc3Vic2NyaWJlID0gYmxvY2tJbml0KCBjbGllbnRJZCwgZGVmYXVsdEF0dHJpYnV0ZXMgKTtcblx0XHRyZXR1cm4gKCkgPT4gdW5zdWJzY3JpYmUoIGF0dHJpYnV0ZXMuaWQgKTtcblx0fSwgWyBhdHRyaWJ1dGVzLmlkIF0pO1xuXG5cdC8qKlxuXHQgKiBDcmVhdGUgdGhlIGZvcm0gaWRlbnRpZmljYXRpb24gdGFnIGZvciBPdHRlciBPcHRpb25zLlxuXHQgKi9cblx0dXNlRWZmZWN0KCAoKSA9PiB7XG5cdFx0aWYgKCBhdHRyaWJ1dGVzLmlkICYmIHNlbGVjdCggJ2NvcmUvZWRpdC13aWRnZXRzJyApICkge1xuXHRcdFx0c2V0QXR0cmlidXRlcyh7IG9wdGlvbk5hbWU6IGB3aWRnZXRfJHsgYXR0cmlidXRlcy5pZC5zbGljZSggLTggKSB9YCB9KTtcblx0XHR9IGVsc2UgaWYgKCBhdHRyaWJ1dGVzLmlkICYmIHNlbGVjdCggJ2NvcmUvZWRpdG9yJyApPy5nZXRDdXJyZW50UG9zdElkKCkgKSB7XG5cdFx0XHRzZXRBdHRyaWJ1dGVzKHsgb3B0aW9uTmFtZTogYCR7IHNlbGVjdCggJ2NvcmUvZWRpdG9yJyApLmdldEN1cnJlbnRQb3N0SWQoKSB9XyR7IGF0dHJpYnV0ZXMuaWQuc2xpY2UoIC04ICkgfWAgfSk7XG5cdFx0fVxuXHR9LCBbIGF0dHJpYnV0ZXMuaWQgXSk7XG5cblx0LyoqXG5cdCAqIE1ha2Ugc3VyZSB0aGF0IGEgZm9ybSBub25jZSBmaWVsZCBpcyBhbHdheXMgcHJlc2VudC5cblx0ICovXG5cdHVzZUVmZmVjdCggKCkgPT4ge1xuXHRcdGlmICggY2hpbGRyZW4gKSB7XG5cdFx0XHRjb25zdCB2ZXJpZmljYXRpb25CbG9ja3MgPSBjaGlsZHJlbi5maWx0ZXIoICh7IG5hbWUgfSkgPT4gJ3RoZW1laXNsZS1ibG9ja3MvZm9ybS1ub25jZScgPT09IG5hbWUgKTtcblxuXHRcdFx0aWYgKCAyIDw9IHZlcmlmaWNhdGlvbkJsb2Nrcz8ubGVuZ3RoICkge1xuXHRcdFx0XHR2ZXJpZmljYXRpb25CbG9ja3Muc2xpY2UoIDEgKS5mb3JFYWNoKCBibG9jayA9PiB7XG5cdFx0XHRcdFx0cmVtb3ZlQmxvY2soIGJsb2NrLmNsaWVudElkLCBmYWxzZSApO1xuXHRcdFx0XHR9KTtcblx0XHRcdH0gZWxzZSBpZiAoIDAgPT09IHZlcmlmaWNhdGlvbkJsb2Nrcz8ubGVuZ3RoICYmIGNsaWVudElkICkge1xuXHRcdFx0XHRjb25zdCBub25jZUJsb2NrID0gY3JlYXRlQmxvY2soICd0aGVtZWlzbGUtYmxvY2tzL2Zvcm0tbm9uY2UnICk7XG5cdFx0XHRcdGlmICggbm9uY2VCbG9jayApIHtcblx0XHRcdFx0XHRpbnNlcnRCbG9jaz8uKCBub25jZUJsb2NrLCAoIGNoaWxkcmVuPy5sZW5ndGggKSB8fCAwLCBjbGllbnRJZCwgZmFsc2UgKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fSwgWyBjaGlsZHJlbiBdKTtcblxuXHQvKipcblx0ICogTG9hZCBzZXR0aW5ncy5cblx0ICovXG5cdHVzZUVmZmVjdCggKCkgPT4ge1xuXHRcdGFwaS5sb2FkUHJvbWlzZS50aGVuKCAoKSA9PiB7XG5cdFx0XHRzZXR0aW5nc1JlZi5jdXJyZW50ID0gbmV3IGFwaS5tb2RlbHMuU2V0dGluZ3MoKTtcblx0XHRcdHNldFNldHRpbmdzU3RhdHVzKCB0cnVlICk7XG5cdFx0fSk7XG5cdH0sIFtdKTtcblxuXHQvKipcblx0ICogU2F2ZSB0aGUgY2FwdGNoYSBvcHRpb24gaW4gc2V0dGluZ3MuXG5cdCAqL1xuXHR1c2VFZmZlY3QoICgpID0+IHtcblx0XHRpZiAoIGF0dHJpYnV0ZXMuaGFzQ2FwdGNoYSAhPT0gdW5kZWZpbmVkICkge1xuXHRcdFx0c2V0dGluZ3NSZWY/LmN1cnJlbnQ/LmZldGNoKCkuZG9uZSggcmVzID0+IHtcblx0XHRcdFx0Y29uc3QgZW1haWxzID0gcmVzLnRoZW1laXNsZV9ibG9ja3NfZm9ybV9lbWFpbHMgPyByZXMudGhlbWVpc2xlX2Jsb2Nrc19mb3JtX2VtYWlscyA6IFtdO1xuXHRcdFx0XHRsZXQgaXNNaXNzaW5nID0gdHJ1ZTtcblx0XHRcdFx0bGV0IGhhc0NoYW5nZWQgPSBmYWxzZTtcblxuXHRcdFx0XHRlbWFpbHM/LmZvckVhY2goICh7IGZvcm0gfSwgaW5kZXggKSA9PiB7XG5cdFx0XHRcdFx0aWYgKCBmb3JtID09PSBhdHRyaWJ1dGVzLm9wdGlvbk5hbWUgKSB7XG5cdFx0XHRcdFx0XHRpZiAoIGVtYWlsc1tpbmRleF0uaGFzQ2FwdGNoYSAhPT0gYXR0cmlidXRlcy5oYXNDYXB0Y2hhICkge1xuXHRcdFx0XHRcdFx0XHRoYXNDaGFuZ2VkID0gdHJ1ZTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdGVtYWlsc1tpbmRleF0uaGFzQ2FwdGNoYSA9IGF0dHJpYnV0ZXMuaGFzQ2FwdGNoYTtcblx0XHRcdFx0XHRcdGlzTWlzc2luZyA9IGZhbHNlO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSk7XG5cblx0XHRcdFx0aWYgKCBpc01pc3NpbmcgKSB7XG5cdFx0XHRcdFx0ZW1haWxzLnB1c2goe1xuXHRcdFx0XHRcdFx0Zm9ybTogYXR0cmlidXRlcy5vcHRpb25OYW1lLFxuXHRcdFx0XHRcdFx0aGFzQ2FwdGNoYTogYXR0cmlidXRlcy5oYXNDYXB0Y2hhXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRpZiAoIGlzTWlzc2luZyB8fCBoYXNDaGFuZ2VkICkge1xuXHRcdFx0XHRcdGNvbnN0IG1vZGVsID0gbmV3IGFwaS5tb2RlbHMuU2V0dGluZ3Moe1xuXHRcdFx0XHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNhbWVsY2FzZVxuXHRcdFx0XHRcdFx0dGhlbWVpc2xlX2Jsb2Nrc19mb3JtX2VtYWlsczogZW1haWxzXG5cdFx0XHRcdFx0fSk7XG5cblx0XHRcdFx0XHRtb2RlbC5zYXZlKCk7XG5cblx0XHRcdFx0XHRjcmVhdGVOb3RpY2UoXG5cdFx0XHRcdFx0XHQnaW5mbycsXG5cdFx0XHRcdFx0XHRfXyggJ0Zvcm0gcHJlZmVyZW5jZSBoYXMgYmVlbiBzYXZlZC4nLCAnb3R0ZXItYmxvY2tzJyApLFxuXHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRpc0Rpc21pc3NpYmxlOiB0cnVlLFxuXHRcdFx0XHRcdFx0XHR0eXBlOiAnc25hY2tiYXInXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0fVxuXHR9LCBbIGF0dHJpYnV0ZXMuaGFzQ2FwdGNoYSwgc2V0dGluZ3NSZWYuY3VycmVudCBdKTtcblxuXHQvKipcblx0ICogQ2hlY2sgaWYgdGhlIEFQSSBLZXlzIGFyZSBzZXQuXG5cdCAqL1xuXHR1c2VFZmZlY3QoICgpID0+IHtcblx0XHRjb25zdCBnZXRBUElEYXRhID0gYXN5bmMoKSA9PiB7XG5cdFx0XHRpZiAoICEgaXNBUElMb2FkZWQgKSB7XG5cdFx0XHRcdHNldHRpbmdzUmVmPy5jdXJyZW50Py5mZXRjaCgpLnRoZW4oIHJlc3BvbnNlID0+IHtcblx0XHRcdFx0XHRzZXRBUElMb2FkZWQoIHRydWUgKTtcblxuXHRcdFx0XHRcdGlmICggJycgIT09IHJlc3BvbnNlLnRoZW1laXNsZV9nb29nbGVfY2FwdGNoYV9hcGlfc2l0ZV9rZXkgJiYgJycgIT09IHJlc3BvbnNlLnRoZW1laXNsZV9nb29nbGVfY2FwdGNoYV9hcGlfc2VjcmV0X2tleSApIHtcblx0XHRcdFx0XHRcdHNldEFQSVNhdmVkKCB0cnVlICk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHR9O1xuXG5cdFx0aWYgKCBhcmVTZXR0aW5nc0F2YWlsYWJsZSAmJiBhdHRyaWJ1dGVzLmhhc0NhcHRjaGEgJiYgISBpc0FQSVNhdmVkICkge1xuXHRcdFx0Z2V0QVBJRGF0YSgpO1xuXHRcdH1cblx0fSwgWyBhcmVTZXR0aW5nc0F2YWlsYWJsZSwgaXNBUElMb2FkZWQsIGlzQVBJU2F2ZWQsIGF0dHJpYnV0ZXMuaGFzQ2FwdGNoYSBdKTtcblxuXHQvKipcblx0ICogU2F2ZSBBUEkgS2V5cyBpbiB0aGUgT3R0ZXIgb3B0aW9ucy5cblx0ICovXG5cdGNvbnN0IHNhdmVBUElLZXkgPSAoKSA9PiB7XG5cdFx0Y29uc3QgbW9kZWwgPSBuZXcgd2luZG93LndwLmFwaS5tb2RlbHMuU2V0dGluZ3Moe1xuXHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNhbWVsY2FzZVxuXHRcdFx0dGhlbWVpc2xlX2dvb2dsZV9jYXB0Y2hhX2FwaV9zaXRlX2tleTogZ29vZ2xlQ2FwdGNoYUFQSVNpdGVLZXksXG5cdFx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY2FtZWxjYXNlXG5cdFx0XHR0aGVtZWlzbGVfZ29vZ2xlX2NhcHRjaGFfYXBpX3NlY3JldF9rZXk6IGdvb2dsZUNhcHRjaGFBUElTZWNyZXRLZXlcblx0XHR9KTtcblxuXHRcdG1vZGVsLnNhdmUoKS50aGVuKCByZXNwb25zZSA9PiB7XG5cdFx0XHRsZXQgc2F2ZWQgPSBmYWxzZTtcblxuXHRcdFx0aWYgKCAnJyAhPT0gcmVzcG9uc2UudGhlbWVpc2xlX2dvb2dsZV9jYXB0Y2hhX2FwaV9zaXRlX2tleSAmJiAnJyAhPT0gcmVzcG9uc2UudGhlbWVpc2xlX2dvb2dsZV9jYXB0Y2hhX2FwaV9zZWNyZXRfa2V5ICkge1xuXHRcdFx0XHRzYXZlZCA9IHRydWU7XG5cdFx0XHR9XG5cblx0XHRcdHNldEFQSVNhdmVkKCBzYXZlZCApO1xuXHRcdFx0c2V0R29vZ2xlQ2FwdGNoYUFQSVNlY3JldEtleSggJycgKTtcblx0XHRcdHNldEdvb2dsZUNhcHRjaGFBUElTaXRlS2V5KCAnJyApO1xuXG5cdFx0XHRjcmVhdGVOb3RpY2UoXG5cdFx0XHRcdCdpbmZvJyxcblx0XHRcdFx0X18oICdBUEkgS2V5cyBoYXZlIGJlZW4gc2F2ZWQuJywgJ290dGVyLWJsb2NrcycgKSxcblx0XHRcdFx0e1xuXHRcdFx0XHRcdGlzRGlzbWlzc2libGU6IHRydWUsXG5cdFx0XHRcdFx0dHlwZTogJ3NuYWNrYmFyJ1xuXHRcdFx0XHR9XG5cdFx0XHQpO1xuXHRcdH0pO1xuXHR9O1xuXG5cdC8qKlxuXHQgKiBTYXZlIGludGVncmF0aW9uIGRhdGEuXG5cdCAqL1xuXHR1c2VFZmZlY3QoICgpID0+IHtcblx0XHRzZXR0aW5nc1JlZj8uY3VycmVudD8uZmV0Y2goKS5kb25lKCByZXMgPT4ge1xuXHRcdFx0Y29uc3QgZW1haWxzID0gcmVzLnRoZW1laXNsZV9ibG9ja3NfZm9ybV9lbWFpbHMgPyByZXMudGhlbWVpc2xlX2Jsb2Nrc19mb3JtX2VtYWlscyA6IFtdO1xuXHRcdFx0bGV0IGlzTWlzc2luZyA9IHRydWU7XG5cdFx0XHRsZXQgaGFzVXBkYXRlZCA9IGZhbHNlO1xuXHRcdFx0bGV0IGhhc1VwZGF0ZWROb3RpY2UgPSBmYWxzZTtcblxuXHRcdFx0ZW1haWxzPy5mb3JFYWNoKCAoeyBmb3JtIH0sIGluZGV4ICkgPT4ge1xuXHRcdFx0XHRpZiAoIGZvcm0gPT09IGF0dHJpYnV0ZXMub3B0aW9uTmFtZSApIHtcblx0XHRcdFx0XHRpZiAoICEgZW1haWxzW2luZGV4XT8uaW50ZWdyYXRpb24gKSB7XG5cdFx0XHRcdFx0XHRlbWFpbHNbaW5kZXhdLmludGVncmF0aW9uID0ge307XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0aGFzVXBkYXRlZCA9IGVtYWlsc1tpbmRleF0uaW50ZWdyYXRpb24ucHJvdmlkZXIgIT09IGF0dHJpYnV0ZXMucHJvdmlkZXIgfHwgZW1haWxzWyBpbmRleCBdLmludGVncmF0aW9uLmFwaUtleSAhPT0gYXR0cmlidXRlcy5hcGlLZXkgfHwgZW1haWxzW2luZGV4XS5pbnRlZ3JhdGlvbi5saXN0SWQgIT09IGF0dHJpYnV0ZXMubGlzdElkIHx8IGVtYWlsc1tpbmRleF0uaW50ZWdyYXRpb24uYWN0aW9uICE9PSBhdHRyaWJ1dGVzLmFjdGlvbjtcblx0XHRcdFx0XHRpc01pc3NpbmcgPSBmYWxzZTtcblx0XHRcdFx0XHRoYXNVcGRhdGVkTm90aWNlID0gYXR0cmlidXRlcy5hcGlLZXkgJiYgKCBlbWFpbHNbaW5kZXhdLmludGVncmF0aW9uLmxpc3RJZCAhPT0gYXR0cmlidXRlcy5saXN0SWQgfHwgZW1haWxzW2luZGV4XS5pbnRlZ3JhdGlvbi5hY3Rpb24gIT09IGF0dHJpYnV0ZXMuYWN0aW9uICk7XG5cblx0XHRcdFx0XHRlbWFpbHNbaW5kZXhdLmludGVncmF0aW9uLnByb3ZpZGVyID0gYXR0cmlidXRlcy5wcm92aWRlcjsgLy8gdXBkYXRlIHRoZSB2YWx1ZVxuXHRcdFx0XHRcdGVtYWlsc1tpbmRleF0uaW50ZWdyYXRpb24uYXBpS2V5ID0gYXR0cmlidXRlcy5hcGlLZXk7XG5cdFx0XHRcdFx0ZW1haWxzW2luZGV4XS5pbnRlZ3JhdGlvbi5saXN0SWQgPSBhdHRyaWJ1dGVzLmxpc3RJZDtcblx0XHRcdFx0XHRlbWFpbHNbaW5kZXhdLmludGVncmF0aW9uLmFjdGlvbiA9IGF0dHJpYnV0ZXMuYWN0aW9uO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblxuXHRcdFx0aWYgKCBpc01pc3NpbmcgKSB7XG5cdFx0XHRcdGVtYWlscy5wdXNoKHtcblx0XHRcdFx0XHRmb3JtOiBhdHRyaWJ1dGVzLm9wdGlvbk5hbWUsXG5cdFx0XHRcdFx0aW50ZWdyYXRpb246IHtcblx0XHRcdFx0XHRcdHByb3ZpZGVyOiBhdHRyaWJ1dGVzLnByb3ZpZGVyLFxuXHRcdFx0XHRcdFx0YXBpS2V5OiBhdHRyaWJ1dGVzLmFwaUtleSxcblx0XHRcdFx0XHRcdGxpc3RJZDogYXR0cmlidXRlcy5saXN0SWQsXG5cdFx0XHRcdFx0XHRhY3Rpb246IGF0dHJpYnV0ZXMuYWN0aW9uXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKCBpc01pc3NpbmcgfHwgaGFzVXBkYXRlZCApIHtcblx0XHRcdFx0Y29uc3QgbW9kZWwgPSBuZXcgYXBpLm1vZGVscy5TZXR0aW5ncyh7XG5cdFx0XHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNhbWVsY2FzZVxuXHRcdFx0XHRcdHRoZW1laXNsZV9ibG9ja3NfZm9ybV9lbWFpbHM6IGVtYWlsc1xuXHRcdFx0XHR9KTtcblxuXHRcdFx0XHRtb2RlbC5zYXZlKCkudGhlbiggKCkgPT4ge1xuXHRcdFx0XHRcdGlmICggaGFzVXBkYXRlZE5vdGljZSApIHtcblx0XHRcdFx0XHRcdGNyZWF0ZU5vdGljZShcblx0XHRcdFx0XHRcdFx0J2luZm8nLFxuXHRcdFx0XHRcdFx0XHRfXyggJ0ludGVncmF0aW9uIGRldGFpbHMgaGF2ZSBiZWVuIHNhdmVkLicsICdvdHRlci1ibG9ja3MnICksXG5cdFx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XHRpc0Rpc21pc3NpYmxlOiB0cnVlLFxuXHRcdFx0XHRcdFx0XHRcdHR5cGU6ICdzbmFja2Jhcidcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9LCBbIGF0dHJpYnV0ZXMub3B0aW9uTmFtZSwgYXR0cmlidXRlcy5wcm92aWRlciwgYXR0cmlidXRlcy5hcGlLZXksIGF0dHJpYnV0ZXMubGlzdElkLCBhdHRyaWJ1dGVzLmFjdGlvbiwgc2V0dGluZ3NSZWYuY3VycmVudCBdKTtcblxuXHRjb25zdCBoYXNJbnRlZ3JhdGlvbkFjdGl2ZSA9IGF0dHJpYnV0ZXMucHJvdmlkZXIgJiYgYXR0cmlidXRlcy5hcGlLZXkgJiYgYXR0cmlidXRlcy5saXN0SWQ7XG5cblx0cmV0dXJuIChcblx0XHQ8RnJhZ21lbnQ+XG5cdFx0XHQ8SW5zcGVjdG9yXG5cdFx0XHRcdGF0dHJpYnV0ZXM9eyBhdHRyaWJ1dGVzIH1cblx0XHRcdFx0c2V0QXR0cmlidXRlcz17IHNldEF0dHJpYnV0ZXMgfVxuXHRcdFx0Lz5cblxuXHRcdFx0PGRpdlxuXHRcdFx0XHRjbGFzc05hbWU9eyBjbGFzc05hbWUgfVxuXHRcdFx0XHRpZD17IGF0dHJpYnV0ZXMuaWQgfVxuXHRcdFx0PlxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0KCBoYXNJbm5lckJsb2NrcyApID8gKFxuXHRcdFx0XHRcdFx0PGRpdiBjbGFzc05hbWU9XCJvdHRlci1mb3JtX19jb250YWluZXJcIj5cblx0XHRcdFx0XHRcdFx0PElubmVyQmxvY2tzXG5cdFx0XHRcdFx0XHRcdC8+XG5cblx0XHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcdGF0dHJpYnV0ZXMuaGFzQ2FwdGNoYSAmJiAoICEgaXNBUElMb2FkZWQgfHwgISBpc0FQSVNhdmVkICkgJiYgKFxuXHRcdFx0XHRcdFx0XHRcdFx0PFBsYWNlaG9sZGVyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGNsYXNzTmFtZT1cIm90dGVyLWZvcm0tY2FwdGNoYVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGlzQVBJTG9hZGVkPXsgaXNBUElMb2FkZWQgfVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRpc0FQSVNhdmVkPXsgaXNBUElTYXZlZCB9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHNhdmVBUElLZXk9eyBzYXZlQVBJS2V5IH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0c2l0ZUtleT17IGdvb2dsZUNhcHRjaGFBUElTaXRlS2V5IH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0c2VjcmV0S2V5PXsgZ29vZ2xlQ2FwdGNoYUFQSVNlY3JldEtleSB9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHNldFNpdGVLZXk9eyBzZXRHb29nbGVDYXB0Y2hhQVBJU2l0ZUtleSB9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHNldFNlY3JldEtleT17IHNldEdvb2dsZUNhcHRjaGFBUElTZWNyZXRLZXkgfVxuXHRcdFx0XHRcdFx0XHRcdFx0Lz5cblx0XHRcdFx0XHRcdFx0XHQpXG5cdFx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzTmFtZT1cIndwLWJsb2NrLWJ1dHRvblwiPlxuXHRcdFx0XHRcdFx0XHRcdDxidXR0b24gY2xhc3NOYW1lPVwid3AtYmxvY2stYnV0dG9uX19saW5rXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHR7IGhhc0ludGVncmF0aW9uQWN0aXZlICYmICdzdWJzY3JpYmUnID09PSBhdHRyaWJ1dGVzLmFjdGlvbiA/IF9fKCAnU3Vic2NyaWJlJywgJ290dGVyLWJsb2NrcycgKSA6IF9fKCAnU3VibWl0JywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdFx0XHRcdFx0PC9idXR0b24+XG5cdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0KSA6IChcblx0XHRcdFx0XHRcdDxWYXJpYXRpb25QaWNrZXJcblx0XHRcdFx0XHRcdFx0aWNvbj17IGdldCggYmxvY2tUeXBlLCBbICdpY29uJywgJ3NyYycgXSkgfVxuXHRcdFx0XHRcdFx0XHRsYWJlbD17IGdldCggYmxvY2tUeXBlLCBbICd0aXRsZScgXSkgfVxuXHRcdFx0XHRcdFx0XHR2YXJpYXRpb25zPXsgdmFyaWF0aW9ucyB9XG5cdFx0XHRcdFx0XHRcdG9uU2VsZWN0PXsgKCBuZXh0VmFyaWF0aW9uID0gZGVmYXVsdFZhcmlhdGlvbiApID0+IHtcblx0XHRcdFx0XHRcdFx0XHRpZiAoIG5leHRWYXJpYXRpb24gKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRyZXBsYWNlSW5uZXJCbG9ja3MoXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGNsaWVudElkLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRjcmVhdGVCbG9ja3NGcm9tSW5uZXJCbG9ja3NUZW1wbGF0ZShcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRuZXh0VmFyaWF0aW9uLmlubmVyQmxvY2tzXG5cdFx0XHRcdFx0XHRcdFx0XHRcdCksXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHRydWVcblx0XHRcdFx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9IH1cblx0XHRcdFx0XHRcdFx0YWxsb3dTa2lwXG5cdFx0XHRcdFx0XHQvPlxuXHRcdFx0XHRcdClcblx0XHRcdFx0fVxuXHRcdFx0PC9kaXY+XG5cdFx0PC9GcmFnbWVudD5cblx0KTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEVkaXQ7XG4iLCIvKipcbiAqIEV4dGVybmFsIGRlcGVuZGVuY2llcy5cbiAqL1xuaW1wb3J0IGNsYXNzbmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5cbi8qKlxuICogV29yZFByZXNzIGRlcGVuZGVuY2llcy5cbiAqL1xuaW1wb3J0IHsgX18gfSBmcm9tICdAd29yZHByZXNzL2kxOG4nO1xuXG5pbXBvcnQgeyBJbm5lckJsb2NrcyB9IGZyb20gJ0B3b3JkcHJlc3MvYmxvY2stZWRpdG9yJztcblxuY29uc3QgU2F2ZSA9ICh7XG5cdGF0dHJpYnV0ZXMsXG5cdGNsYXNzTmFtZVxufSkgPT4ge1xuXHRjb25zdCBoYXNJbnRlZ3JhdGlvbkFjdGl2ZSA9IGF0dHJpYnV0ZXMucHJvdmlkZXIgJiYgYXR0cmlidXRlcy5hcGlLZXkgJiYgYXR0cmlidXRlcy5saXN0SWQ7XG5cblx0cmV0dXJuIChcblx0XHQ8ZGl2XG5cdFx0XHRpZD17IGF0dHJpYnV0ZXMuaWQgfVxuXHRcdFx0Y2xhc3NOYW1lPXtcblx0XHRcdFx0Y2xhc3NuYW1lcyhcblx0XHRcdFx0XHRjbGFzc05hbWUsXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0J2lzLXN1YnNjcmlwdGlvbic6IGhhc0ludGVncmF0aW9uQWN0aXZlICYmICdzdWJzY3JpYmUnID09PSBhdHRyaWJ1dGVzLmFjdGlvbixcblx0XHRcdFx0XHRcdCdjYW4tc3VibWl0LWFuZC1zdWJzY3JpYmUnOiBoYXNJbnRlZ3JhdGlvbkFjdGl2ZSAmJiAnc3VibWl0LXN1YnNjcmliZScgPT09IGF0dHJpYnV0ZXMuYWN0aW9uLFxuXHRcdFx0XHRcdFx0J2hhcy1jYXB0Y2hhJzogYXR0cmlidXRlcy5oYXNDYXB0Y2hhXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHQpXG5cdFx0XHR9XG5cdFx0XHRkYXRhLWVtYWlsLXN1YmplY3Q9eyBhdHRyaWJ1dGVzLnN1YmplY3QgfVxuXHRcdFx0ZGF0YS1vcHRpb24tbmFtZT17IGF0dHJpYnV0ZXMub3B0aW9uTmFtZSB9XG5cdFx0PlxuXHRcdFx0PGRpdiBjbGFzc05hbWU9XCJvdHRlci1mb3JtX19jb250YWluZXJcIj5cblx0XHRcdFx0PElubmVyQmxvY2tzLkNvbnRlbnQgLz5cblxuXHRcdFx0XHQ8ZGl2IGNsYXNzTmFtZT1cIndwLWJsb2NrLWJ1dHRvblwiPlxuXHRcdFx0XHRcdDxidXR0b24gY2xhc3NOYW1lPVwid3AtYmxvY2stYnV0dG9uX19saW5rXCI+XG5cdFx0XHRcdFx0XHR7ICdzdWJzY3JpYmUnID09PSBhdHRyaWJ1dGVzLmFjdGlvbiA/IF9fKCAnU3Vic2NyaWJlJywgJ290dGVyLWJsb2NrcycgKSA6IF9fKCAnU3VibWl0JywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdFx0PC9idXR0b24+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0PC9kaXY+XG5cdFx0PC9kaXY+XG5cdCk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBTYXZlO1xuIiwiLyoqXG4gKiBXb3JkUHJlc3MgZGVwZW5kZW5jaWVzLlxuICovXG5pbXBvcnQgeyBfXyB9IGZyb20gJ0B3b3JkcHJlc3MvaTE4bic7XG5cbmltcG9ydCB7IHJlZ2lzdGVyQmxvY2tUeXBlIH0gZnJvbSAnQHdvcmRwcmVzcy9ibG9ja3MnO1xuXG4vKipcbiAqIEludGVybmFsIGRlcGVuZGVuY2llcy5cbiAqL1xuaW1wb3J0ICcuL3N0eWxlLnNjc3MnO1xuaW1wb3J0ICcuL2VkaXRvci5zY3NzJztcbmltcG9ydCB7IGNvbnRhY3RJY29uIGFzIGljb24gfSBmcm9tICcuLi8uLi9oZWxwZXJzL2ljb25zLmpzJztcbmltcG9ydCBhdHRyaWJ1dGVzIGZyb20gJy4vYXR0cmlidXRlcy5qcyc7XG5pbXBvcnQgZWRpdCBmcm9tICcuL2VkaXQuanMnO1xuaW1wb3J0IHNhdmUgZnJvbSAnLi9zYXZlLmpzJztcblxucmVnaXN0ZXJCbG9ja1R5cGUoICd0aGVtZWlzbGUtYmxvY2tzL2Zvcm0nLCB7XG5cdHRpdGxlOiBfXyggJ0Zvcm0nLCAnb3R0ZXItYmxvY2tzJyApLFxuXHRkZXNjcmlwdGlvbjogX18oICdEaXNwbGF5IGEgZm9ybSBmb3IgeW91ciBjbGllbnRzLicsICdvdHRlci1ibG9ja3MnICksXG5cdGljb24sXG5cdGNhdGVnb3J5OiAndGhlbWVpc2xlLWJsb2NrcycsXG5cdGtleXdvcmRzOiBbXG5cdFx0J2J1c2luZXNzJyxcblx0XHQnZm9ybScsXG5cdFx0J2VtYWlsJ1xuXHRdLFxuXHRhdHRyaWJ1dGVzLFxuXHRzdXBwb3J0czoge1xuXHRcdGFsaWduOiBbICd3aWRlJywgJ2Z1bGwnIF1cblx0fSxcblx0ZWRpdCxcblx0c2F2ZSxcblx0dmFyaWF0aW9uczogW1xuXHRcdHtcblx0XHRcdG5hbWU6ICd0aGVtZWlzbGUtYmxvY2tzL2Zvcm0tY29udGFjdCcsXG5cdFx0XHRkZXNjcmlwdGlvbjogX18oICdDb250YWN0IGZvcm0gZm9yIGNsaWVudHMnLCAnb3R0ZXItYmxvY2tzJyApLFxuXHRcdFx0aWNvbixcblx0XHRcdHRpdGxlOiBfXyggJ0NvbnRhY3QgRm9ybScsICdvdHRlci1ibG9ja3MnICksXG5cdFx0XHRpbm5lckJsb2NrczogW1xuXHRcdFx0XHRbXG5cdFx0XHRcdFx0J3RoZW1laXNsZS1ibG9ja3MvZm9ybS1pbnB1dCcsXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0bGFiZWw6IF9fKCAnTmFtZScsICdvdHRlci1ibG9ja3MnICksXG5cdFx0XHRcdFx0XHR0eXBlOiAndGV4dCcsXG5cdFx0XHRcdFx0XHRpc1JlcXVpcmVkOiB0cnVlXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRdLFxuXHRcdFx0XHRbXG5cdFx0XHRcdFx0J3RoZW1laXNsZS1ibG9ja3MvZm9ybS1pbnB1dCcsXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0bGFiZWw6IF9fKCAnRW1haWwnLCAnb3R0ZXItYmxvY2tzJyApLFxuXHRcdFx0XHRcdFx0dHlwZTogJ2VtYWlsJyxcblx0XHRcdFx0XHRcdGlzUmVxdWlyZWQ6IHRydWVcblx0XHRcdFx0XHR9XG5cdFx0XHRcdF0sXG5cdFx0XHRcdFtcblx0XHRcdFx0XHQndGhlbWVpc2xlLWJsb2Nrcy9mb3JtLXRleHRhcmVhJyxcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRsYWJlbDogX18oICdNZXNzYWdlJywgJ290dGVyLWJsb2NrcycgKVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XSxcblx0XHRcdFx0W1xuXHRcdFx0XHRcdCdjb3JlL3BhcmFncmFwaCcsXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0Y29udGVudDogX18oICdZb3UgYWdyZWUgdG8gcmVjZWl2ZSBlbWFpbCBjb21tdW5pY2F0aW9uIGZyb20gdXMgYnkgc3VibWl0dGluZyB0aGlzIGZvcm0gYW5kIHVuZGVyc3RhbmQgdGhhdCB5b3VyIGNvbnRhY3QgaW5mb3JtYXRpb24gd2lsbCBiZSBzdG9yZWQgd2l0aCB1cy4nLCAnb3R0ZXItYmxvY2tzJyApLFxuXHRcdFx0XHRcdFx0Zm9udFNpemU6ICdleHRyYS1zbWFsbCdcblx0XHRcdFx0XHR9XG5cdFx0XHRcdF1cblx0XHRcdF1cblx0XHR9LFxuXHRcdHtcblx0XHRcdG5hbWU6ICd0aGVtZWlzbGUtYmxvY2tzL2Zvcm0tc3Vic2NyaWJlJyxcblx0XHRcdGRlc2NyaXB0aW9uOiBfXyggJ0FkZCB0aGUgY2xpZW50cyB0byB5b3VyIHN1YnNjcmlwdGlvbiBsaXN0JywgJ290dGVyLWJsb2NrcycgKSxcblx0XHRcdGljb24sXG5cdFx0XHR0aXRsZTogX18oICdTdWJzY3JpYmUgRm9ybScsICdvdHRlci1ibG9ja3MnICksXG5cdFx0XHRpbm5lckJsb2NrczogW1xuXHRcdFx0XHRbXG5cdFx0XHRcdFx0J3RoZW1laXNsZS1ibG9ja3MvZm9ybS1pbnB1dCcsXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0bGFiZWw6IF9fKCAnTmFtZScsICdvdHRlci1ibG9ja3MnICksXG5cdFx0XHRcdFx0XHR0eXBlOiAndGV4dCcsXG5cdFx0XHRcdFx0XHRpc1JlcXVpcmVkOiB0cnVlXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRdLFxuXHRcdFx0XHRbXG5cdFx0XHRcdFx0J3RoZW1laXNsZS1ibG9ja3MvZm9ybS1pbnB1dCcsXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0bGFiZWw6IF9fKCAnRW1haWwnLCAnb3R0ZXItYmxvY2tzJyApLFxuXHRcdFx0XHRcdFx0dHlwZTogJ2VtYWlsJyxcblx0XHRcdFx0XHRcdGlzUmVxdWlyZWQ6IHRydWVcblx0XHRcdFx0XHR9XG5cdFx0XHRcdF0sXG5cdFx0XHRcdFtcblx0XHRcdFx0XHQnY29yZS9wYXJhZ3JhcGgnLFxuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdGNvbnRlbnQ6IF9fKCAnWW91IGFncmVlIHRvIHJlY2VpdmUgZW1haWwgY29tbXVuaWNhdGlvbiBmcm9tIHVzIGJ5IHN1Ym1pdHRpbmcgdGhpcyBmb3JtIGFuZCB1bmRlcnN0YW5kIHRoYXQgeW91ciBjb250YWN0IGluZm9ybWF0aW9uIHdpbGwgYmUgc3RvcmVkIHdpdGggdXMuJywgJ290dGVyLWJsb2NrcycgKSxcblx0XHRcdFx0XHRcdGZvbnRTaXplOiAnZXh0cmEtc21hbGwnXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRdXG5cdFx0XHRdXG5cdFx0fVxuXHRdXG59KTtcbiJdLCJuYW1lcyI6WyJhdHRyaWJ1dGVzIiwiaWQiLCJ0eXBlIiwic3ViamVjdCIsImVtYWlsVG8iLCJvcHRpb25OYW1lIiwiaGFzQ2FwdGNoYSIsInByb3ZpZGVyIiwiZGVmYXVsdCIsImFwaUtleSIsImxpc3RJZCIsImFjdGlvbiIsImdldExpc3RJZE9wdGlvbkZyb20iLCJvblN1Y2Nlc3MiLCJvbkVycm9yIiwid2luZG93Iiwid3AiLCJhcGlGZXRjaCIsInBhdGgiLCJtZXRob2QiLCJkYXRhIiwidGhlbiIsInJlcyIsInN1Y2Nlc3MiLCJyZXN1bHQiLCJsaXN0X2lkIiwibWFwIiwiaXRlbSIsImxhYmVsIiwibmFtZSIsInZhbHVlIiwidG9TdHJpbmciLCJjYXRjaCIsImVyciIsImNvbnNvbGUiLCJsb2ciLCJfXyIsImFwaSIsIkluc3BlY3RvckNvbnRyb2xzIiwiQnV0dG9uIiwiUGFuZWxCb2R5IiwiU2VsZWN0Q29udHJvbCIsIlNwaW5uZXIiLCJUZXh0Q29udHJvbCIsIlRvZ2dsZUNvbnRyb2wiLCJkaXNwYXRjaCIsIkZyYWdtZW50IiwidXNlU3RhdGUiLCJ1c2VFZmZlY3QiLCJJbnNwZWN0b3IiLCJzZXRBdHRyaWJ1dGVzIiwiY3JlYXRlTm90aWNlIiwic2F2ZWRFbWFpbCIsInNldFNhdmVkRW1haWwiLCJlbWFpbCIsInNldEVtYWlsIiwiaXNFbWFpbExvYWRlZCIsInNldEVtYWlsTG9hZGluZyIsImxpc3RJRE9wdGlvbnMiLCJzZXRMaXN0SURPcHRpb25zIiwiZmV0Y2hMaXN0SWRTdGF0dXMiLCJzZXRGZXRjaExpc3RJZFN0YXR1cyIsImxvYWRQcm9taXNlIiwibW9kZWxzIiwiU2V0dGluZ3MiLCJmZXRjaCIsImRvbmUiLCJ0aGVtZWlzbGVfYmxvY2tzX2Zvcm1fZW1haWxzIiwiZmlsdGVyIiwiZm9ybSIsImZvckVhY2giLCJvcHRpb25zIiwic3BsaWNlIiwiaXNDdXJyZW50T3B0aW9uVmFsaWQiLCJsZW5ndGgiLCJpc0Rpc21pc3NpYmxlIiwiZXJyb3IiLCJzYXZlRW1haWwiLCJlbWFpbHMiLCJpc01pc3NpbmciLCJoYXNVcGRhdGVkIiwiaW5kZXgiLCJwdXNoIiwibW9kZWwiLCJzYXZlIiwicmVzcG9uc2UiLCJFeHRlcm5hbExpbmsiLCJQbGFjZWhvbGRlciIsIkJsb2NrUGxhY2Vob2xkZXIiLCJjbGFzc05hbWUiLCJpc0FQSUxvYWRlZCIsImlzQVBJU2F2ZWQiLCJpc1NhdmluZyIsInNhdmVBUElLZXkiLCJzaXRlS2V5Iiwic2VjcmV0S2V5Iiwic2V0U2l0ZUtleSIsInNldFNlY3JldEtleSIsImdldCIsIl9fZXhwZXJpbWVudGFsQmxvY2tWYXJpYXRpb25QaWNrZXIiLCJWYXJpYXRpb25QaWNrZXIiLCJJbm5lckJsb2NrcyIsImNyZWF0ZUJsb2NrIiwiY3JlYXRlQmxvY2tzRnJvbUlubmVyQmxvY2tzVGVtcGxhdGUiLCJzZWxlY3QiLCJ1c2VTZWxlY3QiLCJ1c2VEaXNwYXRjaCIsInVzZVJlZiIsImJsb2NrSW5pdCIsImRlZmF1bHRBdHRyaWJ1dGVzIiwiRWRpdCIsImNsaWVudElkIiwiZ29vZ2xlQ2FwdGNoYUFQSVNpdGVLZXkiLCJzZXRHb29nbGVDYXB0Y2hhQVBJU2l0ZUtleSIsImdvb2dsZUNhcHRjaGFBUElTZWNyZXRLZXkiLCJzZXRHb29nbGVDYXB0Y2hhQVBJU2VjcmV0S2V5Iiwic2V0QVBJTG9hZGVkIiwic2V0QVBJU2F2ZWQiLCJzZXR0aW5nc1JlZiIsImFyZVNldHRpbmdzQXZhaWxhYmxlIiwic2V0U2V0dGluZ3NTdGF0dXMiLCJpbnNlcnRCbG9jayIsInJlbW92ZUJsb2NrIiwicmVwbGFjZUlubmVyQmxvY2tzIiwiaGFzSW5uZXJCbG9ja3MiLCJnZXRCbG9ja3MiLCJibG9ja1R5cGUiLCJkZWZhdWx0VmFyaWF0aW9uIiwidmFyaWF0aW9ucyIsImdldEJsb2NrVmFyaWF0aW9ucyIsImdldEJsb2NrVHlwZSIsImdldERlZmF1bHRCbG9ja1ZhcmlhdGlvbiIsImNoaWxkcmVuIiwiZ2V0QmxvY2siLCJpbm5lckJsb2NrcyIsInVuc3Vic2NyaWJlIiwic2xpY2UiLCJnZXRDdXJyZW50UG9zdElkIiwidmVyaWZpY2F0aW9uQmxvY2tzIiwiYmxvY2siLCJub25jZUJsb2NrIiwiY3VycmVudCIsInVuZGVmaW5lZCIsImhhc0NoYW5nZWQiLCJnZXRBUElEYXRhIiwidGhlbWVpc2xlX2dvb2dsZV9jYXB0Y2hhX2FwaV9zaXRlX2tleSIsInRoZW1laXNsZV9nb29nbGVfY2FwdGNoYV9hcGlfc2VjcmV0X2tleSIsInNhdmVkIiwiaGFzVXBkYXRlZE5vdGljZSIsImludGVncmF0aW9uIiwiaGFzSW50ZWdyYXRpb25BY3RpdmUiLCJuZXh0VmFyaWF0aW9uIiwiY2xhc3NuYW1lcyIsIlNhdmUiLCJyZWdpc3RlckJsb2NrVHlwZSIsImNvbnRhY3RJY29uIiwiaWNvbiIsImVkaXQiLCJ0aXRsZSIsImRlc2NyaXB0aW9uIiwiY2F0ZWdvcnkiLCJrZXl3b3JkcyIsInN1cHBvcnRzIiwiYWxpZ24iLCJpc1JlcXVpcmVkIiwiY29udGVudCIsImZvbnRTaXplIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///2219\n")},2124:function(__unused_webpack_module,__unused_webpack___webpack_exports__,__webpack_require__){eval("\n// EXTERNAL MODULE: external [\"wp\",\"i18n\"]\nvar external_wp_i18n_ = __webpack_require__(5736);\n// EXTERNAL MODULE: external [\"wp\",\"blocks\"]\nvar external_wp_blocks_ = __webpack_require__(4981);\n// EXTERNAL MODULE: ./src/blocks/helpers/icons.js\nvar icons = __webpack_require__(340);\n;// CONCATENATED MODULE: ./src/blocks/blocks/form/input/attributes.js\nconst attributes = {\n id: {\n type: 'string'\n },\n type: {\n type: 'string',\n default: 'text'\n },\n label: {\n type: 'string'\n },\n placeholder: {\n type: 'string'\n },\n isRequired: {\n type: 'boolean'\n },\n mappedName: {\n type: 'string'\n }\n};\n/* harmony default export */ var input_attributes = (attributes);\n// EXTERNAL MODULE: external [\"wp\",\"element\"]\nvar external_wp_element_ = __webpack_require__(9307);\n// EXTERNAL MODULE: external [\"wp\",\"blockEditor\"]\nvar external_wp_blockEditor_ = __webpack_require__(2175);\n// EXTERNAL MODULE: ./src/blocks/helpers/block-utility.js\nvar block_utility = __webpack_require__(5225);\n// EXTERNAL MODULE: external [\"wp\",\"components\"]\nvar external_wp_components_ = __webpack_require__(5609);\n;// CONCATENATED MODULE: ./src/blocks/blocks/form/input/inspector.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\nconst Inspector = ({\n attributes,\n setAttributes\n}) => {\n return (0,external_wp_element_.createElement)(external_wp_blockEditor_.InspectorControls, null, (0,external_wp_element_.createElement)(external_wp_components_.PanelBody, {\n title: (0,external_wp_i18n_.__)('Settings', 'otter-blocks')\n }, (0,external_wp_element_.createElement)(external_wp_components_.SelectControl, {\n label: (0,external_wp_i18n_.__)('Field Type', 'otter-blocks'),\n value: attributes.type,\n options: [{\n label: (0,external_wp_i18n_.__)('Text', 'otter-blocks'),\n value: 'text'\n }, {\n label: (0,external_wp_i18n_.__)('Email', 'otter-blocks'),\n value: 'email'\n }, {\n label: (0,external_wp_i18n_.__)('Date', 'otter-blocks'),\n value: 'date'\n }, {\n label: (0,external_wp_i18n_.__)('Text', 'otter-blocks'),\n value: 'text'\n }, {\n label: (0,external_wp_i18n_.__)('Number', 'otter-blocks'),\n value: 'number'\n }],\n onChange: type => setAttributes({\n type\n })\n }), (0,external_wp_element_.createElement)(external_wp_components_.TextControl, {\n label: (0,external_wp_i18n_.__)('Label', 'otter-blocks'),\n value: attributes.label,\n onChange: label => setAttributes({\n label\n })\n }), (0,external_wp_element_.createElement)(external_wp_components_.TextControl, {\n label: (0,external_wp_i18n_.__)('Placeholder', 'otter-blocks'),\n value: attributes.placeholer,\n onChange: placeholder => setAttributes({\n placeholder\n })\n }), (0,external_wp_element_.createElement)(external_wp_components_.ToggleControl, {\n label: (0,external_wp_i18n_.__)('Is this field required?', 'otter-blocks'),\n help: (0,external_wp_i18n_.__)('If true, the input field must be filled out before submitting the form.', 'otter-blocks'),\n checked: attributes.isRequired,\n onChange: isRequired => setAttributes({\n isRequired\n })\n })));\n};\n\n/* harmony default export */ var inspector = (Inspector);\n;// CONCATENATED MODULE: ./src/blocks/blocks/form/input/edit.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\nconst Edit = ({\n attributes,\n setAttributes,\n className,\n clientId\n}) => {\n (0,external_wp_element_.useEffect)(() => {\n const unsubscribe = (0,block_utility/* blockInit */.WX)(clientId, input_attributes);\n return () => unsubscribe(attributes.id);\n }, [attributes.id]);\n return (0,external_wp_element_.createElement)(external_wp_element_.Fragment, null, (0,external_wp_element_.createElement)(inspector, {\n attributes: attributes,\n setAttributes: setAttributes\n }), (0,external_wp_element_.createElement)(\"div\", {\n className: className\n }, (0,external_wp_element_.createElement)(\"label\", {\n htmlFor: attributes.id,\n className: \"otter-form-input-label\"\n }, (0,external_wp_element_.createElement)(external_wp_blockEditor_.RichText, {\n placeholder: (0,external_wp_i18n_.__)('Type here…', 'otter-blocks'),\n className: \"otter-form-input-label__label\",\n value: attributes.label,\n onChange: label => setAttributes({\n label\n }),\n tagName: \"span\"\n }), attributes.isRequired && (0,external_wp_element_.createElement)(\"span\", {\n className: \"required\"\n }, (0,external_wp_i18n_.__)('(required)', 'otter-blocks'))), (0,external_wp_element_.createElement)(\"input\", {\n type: attributes.type,\n placeholder: attributes.placeholder,\n name: attributes.id,\n id: attributes.id,\n required: attributes.isRequired,\n disabled: true,\n className: \"otter-form-input components-text-control__input\"\n })));\n};\n\n/* harmony default export */ var edit = (Edit);\n;// CONCATENATED MODULE: ./src/blocks/blocks/form/input/save.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\nconst Save = ({\n attributes,\n className\n}) => {\n return (0,external_wp_element_.createElement)(\"div\", {\n className: className\n }, (0,external_wp_element_.createElement)(\"label\", {\n htmlFor: attributes.id,\n className: \"otter-form-input-label\"\n }, (0,external_wp_element_.createElement)(external_wp_blockEditor_.RichText.Content, {\n value: attributes.label,\n className: \"otter-form-input-label__label\",\n tagName: \"span\"\n }), attributes.isRequired && (0,external_wp_element_.createElement)(\"span\", {\n className: \"required\"\n }, (0,external_wp_i18n_.__)('(required)', 'otter-blocks'))), (0,external_wp_element_.createElement)(\"input\", {\n type: attributes.type,\n name: attributes.mappedName,\n id: attributes.id,\n required: attributes.isRequired,\n placeholder: attributes.placeholder,\n className: \"otter-form-input\"\n }));\n};\n\n/* harmony default export */ var save = (Save);\n;// CONCATENATED MODULE: ./src/blocks/blocks/form/input/index.js\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n(0,external_wp_blocks_.registerBlockType)('themeisle-blocks/form-input', {\n title: (0,external_wp_i18n_.__)('Text Field', 'otter-blocks'),\n description: (0,external_wp_i18n_.__)('Display a contact form for your clients.', 'otter-blocks'),\n icon: icons/* inputIcon */.Bd,\n parent: ['themeisle-blocks/form'],\n category: 'themeisle-blocks',\n keywords: ['input', 'text', 'email'],\n attributes: input_attributes,\n supports: {\n align: ['wide', 'full']\n },\n variations: [{\n name: 'themeisle-blocks/form-input-email',\n description: (0,external_wp_i18n_.__)('Insert an email field', 'otter-blocks'),\n icon: 'email',\n title: (0,external_wp_i18n_.__)('Email Field', 'otter-blocks'),\n attributes: {\n type: 'email'\n }\n }, {\n name: 'themeisle-blocks/form-input-number',\n description: (0,external_wp_i18n_.__)('Insert a number field', 'otter-blocks'),\n icon: 'calculator',\n title: (0,external_wp_i18n_.__)('Number Field', 'otter-blocks'),\n attributes: {\n type: 'number'\n }\n }, {\n name: 'themeisle-blocks/form-input-date',\n description: (0,external_wp_i18n_.__)('Insert a date field', 'otter-blocks'),\n icon: 'calendar-alt',\n title: (0,external_wp_i18n_.__)('Date Field', 'otter-blocks'),\n attributes: {\n type: 'date'\n }\n }],\n edit: edit,\n save: save\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFFLGNBQUYsRUFBa0IsY0FBbEIsQ0FKVjtBQUtDUixJQUFBQSxVQUFVLEVBQUU7QUFDWEUsTUFBQUEsSUFBSSxFQUFFO0FBREs7QUFMYixHQVZXLEVBbUJYO0FBQ0N1QyxJQUFBQSxJQUFJLEVBQUUsa0NBRFA7QUFFQ1AsSUFBQUEsV0FBVyxFQUFFMUIsd0JBQUUsQ0FBRSxxQkFBRixFQUF5QixjQUF6QixDQUZoQjtBQUdDc0IsSUFBQUEsSUFBSSxFQUFFLGNBSFA7QUFJQ0csSUFBQUEsS0FBSyxFQUFFekIsd0JBQUUsQ0FBRSxZQUFGLEVBQWdCLGNBQWhCLENBSlY7QUFLQ1IsSUFBQUEsVUFBVSxFQUFFO0FBQ1hFLE1BQUFBLElBQUksRUFBRTtBQURLO0FBTGIsR0FuQlcsQ0FmcUM7QUE0Q2pENkIsRUFBQUEsSUE1Q2lEO0FBNkNqREMsRUFBQUEsSUFBSUEsRUFBQUEsSUFBQUE7QUE3QzZDLENBQWpDLENBQWpCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vb3R0ZXItYmxvY2tzLy4vc3JjL2Jsb2Nrcy9ibG9ja3MvZm9ybS9pbnB1dC9hdHRyaWJ1dGVzLmpzPzEwZDMiLCJ3ZWJwYWNrOi8vb3R0ZXItYmxvY2tzLy4vc3JjL2Jsb2Nrcy9ibG9ja3MvZm9ybS9pbnB1dC9pbnNwZWN0b3IuanM/ZGQ4NyIsIndlYnBhY2s6Ly9vdHRlci1ibG9ja3MvLi9zcmMvYmxvY2tzL2Jsb2Nrcy9mb3JtL2lucHV0L2VkaXQuanM/ZjlhMyIsIndlYnBhY2s6Ly9vdHRlci1ibG9ja3MvLi9zcmMvYmxvY2tzL2Jsb2Nrcy9mb3JtL2lucHV0L3NhdmUuanM/YzJiOSIsIndlYnBhY2s6Ly9vdHRlci1ibG9ja3MvLi9zcmMvYmxvY2tzL2Jsb2Nrcy9mb3JtL2lucHV0L2luZGV4LmpzP2M0ZmUiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgYXR0cmlidXRlcyA9IHtcblx0aWQ6IHtcblx0XHR0eXBlOiAnc3RyaW5nJ1xuXHR9LFxuXHR0eXBlOiB7XG5cdFx0dHlwZTogJ3N0cmluZycsXG5cdFx0ZGVmYXVsdDogJ3RleHQnXG5cdH0sXG5cdGxhYmVsOiB7XG5cdFx0dHlwZTogJ3N0cmluZydcblx0fSxcblx0cGxhY2Vob2xkZXI6IHtcblx0XHR0eXBlOiAnc3RyaW5nJ1xuXHR9LFxuXHRpc1JlcXVpcmVkOiB7XG5cdFx0dHlwZTogJ2Jvb2xlYW4nXG5cdH0sXG5cdG1hcHBlZE5hbWU6IHtcblx0XHR0eXBlOiAnc3RyaW5nJ1xuXHR9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBhdHRyaWJ1dGVzO1xuIiwiLyoqXG4gKiBXb3JkUHJlc3MgZGVwZW5kZW5jaWVzXG4gKi9cbmltcG9ydCB7IF9fIH0gZnJvbSAnQHdvcmRwcmVzcy9pMThuJztcblxuaW1wb3J0IHsgSW5zcGVjdG9yQ29udHJvbHMgfSBmcm9tICdAd29yZHByZXNzL2Jsb2NrLWVkaXRvcic7XG5cbmltcG9ydCB7XG5cdFBhbmVsQm9keSxcblx0VGV4dENvbnRyb2wsXG5cdFNlbGVjdENvbnRyb2wsXG5cdFRvZ2dsZUNvbnRyb2xcbn0gZnJvbSAnQHdvcmRwcmVzcy9jb21wb25lbnRzJztcblxuY29uc3QgSW5zcGVjdG9yID0gKHtcblx0YXR0cmlidXRlcyxcblx0c2V0QXR0cmlidXRlc1xufSkgPT4ge1xuXHRyZXR1cm4gKFxuXHRcdDxJbnNwZWN0b3JDb250cm9scz5cblx0XHRcdDxQYW5lbEJvZHlcblx0XHRcdFx0dGl0bGU9eyBfXyggJ1NldHRpbmdzJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHQ+XG5cdFx0XHRcdDxTZWxlY3RDb250cm9sXG5cdFx0XHRcdFx0bGFiZWw9eyBfXyggJ0ZpZWxkIFR5cGUnLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdFx0XHR2YWx1ZT17IGF0dHJpYnV0ZXMudHlwZSB9XG5cdFx0XHRcdFx0b3B0aW9ucz17IFtcblx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0bGFiZWw6IF9fKCAnVGV4dCcsICdvdHRlci1ibG9ja3MnICksXG5cdFx0XHRcdFx0XHRcdHZhbHVlOiAndGV4dCdcblx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdGxhYmVsOiBfXyggJ0VtYWlsJywgJ290dGVyLWJsb2NrcycgKSxcblx0XHRcdFx0XHRcdFx0dmFsdWU6ICdlbWFpbCdcblx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdGxhYmVsOiBfXyggJ0RhdGUnLCAnb3R0ZXItYmxvY2tzJyApLFxuXHRcdFx0XHRcdFx0XHR2YWx1ZTogJ2RhdGUnXG5cdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRsYWJlbDogX18oICdUZXh0JywgJ290dGVyLWJsb2NrcycgKSxcblx0XHRcdFx0XHRcdFx0dmFsdWU6ICd0ZXh0J1xuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0bGFiZWw6IF9fKCAnTnVtYmVyJywgJ290dGVyLWJsb2NrcycgKSxcblx0XHRcdFx0XHRcdFx0dmFsdWU6ICdudW1iZXInXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XSB9XG5cdFx0XHRcdFx0b25DaGFuZ2U9eyB0eXBlID0+IHNldEF0dHJpYnV0ZXMoeyB0eXBlIH0pIH1cblx0XHRcdFx0Lz5cblxuXHRcdFx0XHQ8VGV4dENvbnRyb2xcblx0XHRcdFx0XHRsYWJlbD17IF9fKCAnTGFiZWwnLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdFx0XHR2YWx1ZT17IGF0dHJpYnV0ZXMubGFiZWwgfVxuXHRcdFx0XHRcdG9uQ2hhbmdlPXsgbGFiZWwgPT4gc2V0QXR0cmlidXRlcyh7IGxhYmVsIH0pIH1cblx0XHRcdFx0Lz5cblxuXHRcdFx0XHQ8VGV4dENvbnRyb2xcblx0XHRcdFx0XHRsYWJlbD17IF9fKCAnUGxhY2Vob2xkZXInLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdFx0XHR2YWx1ZT17IGF0dHJpYnV0ZXMucGxhY2Vob2xlciB9XG5cdFx0XHRcdFx0b25DaGFuZ2U9eyBwbGFjZWhvbGRlciA9PiBzZXRBdHRyaWJ1dGVzKHsgcGxhY2Vob2xkZXIgfSkgfVxuXHRcdFx0XHQvPlxuXG5cdFx0XHRcdDxUb2dnbGVDb250cm9sXG5cdFx0XHRcdFx0bGFiZWw9eyBfXyggJ0lzIHRoaXMgZmllbGQgcmVxdWlyZWQ/JywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdFx0aGVscD17IF9fKCAnSWYgdHJ1ZSwgdGhlIGlucHV0IGZpZWxkIG11c3QgYmUgZmlsbGVkIG91dCBiZWZvcmUgc3VibWl0dGluZyB0aGUgZm9ybS4nLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdFx0XHRjaGVja2VkPXsgYXR0cmlidXRlcy5pc1JlcXVpcmVkIH1cblx0XHRcdFx0XHRvbkNoYW5nZT17IGlzUmVxdWlyZWQgPT4gc2V0QXR0cmlidXRlcyh7IGlzUmVxdWlyZWQgfSkgfVxuXHRcdFx0XHQvPlxuXHRcdFx0PC9QYW5lbEJvZHk+XG5cdFx0PC9JbnNwZWN0b3JDb250cm9scz5cblx0KTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEluc3BlY3RvcjtcbiIsIi8qKlxuICogV29yZFByZXNzIGRlcGVuZGVuY2llc1xuICovXG5pbXBvcnQgeyBfXyB9IGZyb20gJ0B3b3JkcHJlc3MvaTE4bic7XG5cbmltcG9ydCB7IFJpY2hUZXh0IH0gZnJvbSAnQHdvcmRwcmVzcy9ibG9jay1lZGl0b3InO1xuXG5pbXBvcnQge1xuXHRGcmFnbWVudCxcblx0dXNlRWZmZWN0XG59IGZyb20gJ0B3b3JkcHJlc3MvZWxlbWVudCc7XG5cbi8qKlxuICogSW50ZXJuYWwgZGVwZW5kZW5jaWVzXG4gKi9cbmltcG9ydCB7IGJsb2NrSW5pdCB9IGZyb20gJy4uLy4uLy4uL2hlbHBlcnMvYmxvY2stdXRpbGl0eS5qcyc7XG5pbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi9hdHRyaWJ1dGVzLmpzJztcbmltcG9ydCBJbnNwZWN0b3IgZnJvbSAnLi9pbnNwZWN0b3IuanMnO1xuXG5jb25zdCBFZGl0ID0gKHtcblx0YXR0cmlidXRlcyxcblx0c2V0QXR0cmlidXRlcyxcblx0Y2xhc3NOYW1lLFxuXHRjbGllbnRJZFxufSkgPT4ge1xuXHR1c2VFZmZlY3QoICgpID0+IHtcblx0XHRjb25zdCB1bnN1YnNjcmliZSA9IGJsb2NrSW5pdCggY2xpZW50SWQsIGRlZmF1bHRBdHRyaWJ1dGVzICk7XG5cdFx0cmV0dXJuICgpID0+IHVuc3Vic2NyaWJlKCBhdHRyaWJ1dGVzLmlkICk7XG5cdH0sIFsgYXR0cmlidXRlcy5pZCBdKTtcblxuXHRyZXR1cm4gKFxuXHRcdDxGcmFnbWVudD5cblx0XHRcdDxJbnNwZWN0b3Jcblx0XHRcdFx0YXR0cmlidXRlcz17IGF0dHJpYnV0ZXMgfVxuXHRcdFx0XHRzZXRBdHRyaWJ1dGVzPXsgc2V0QXR0cmlidXRlcyB9XG5cdFx0XHQvPlxuXG5cdFx0XHQ8ZGl2IGNsYXNzTmFtZT17IGNsYXNzTmFtZSB9ID5cblx0XHRcdFx0PGxhYmVsXG5cdFx0XHRcdFx0aHRtbEZvcj17IGF0dHJpYnV0ZXMuaWQgfVxuXHRcdFx0XHRcdGNsYXNzTmFtZT1cIm90dGVyLWZvcm0taW5wdXQtbGFiZWxcIlxuXHRcdFx0XHQ+XG5cdFx0XHRcdFx0PFJpY2hUZXh0XG5cdFx0XHRcdFx0XHRwbGFjZWhvbGRlcj17IF9fKCAnVHlwZSBoZXJl4oCmJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdFx0XHRjbGFzc05hbWU9XCJvdHRlci1mb3JtLWlucHV0LWxhYmVsX19sYWJlbFwiXG5cdFx0XHRcdFx0XHR2YWx1ZT17IGF0dHJpYnV0ZXMubGFiZWwgfVxuXHRcdFx0XHRcdFx0b25DaGFuZ2U9eyBsYWJlbCA9PiBzZXRBdHRyaWJ1dGVzKHsgbGFiZWwgfSkgfVxuXHRcdFx0XHRcdFx0dGFnTmFtZT1cInNwYW5cIlxuXHRcdFx0XHRcdC8+XG5cblx0XHRcdFx0XHR7IGF0dHJpYnV0ZXMuaXNSZXF1aXJlZCAmJiAoXG5cdFx0XHRcdFx0XHQ8c3BhbiBjbGFzc05hbWU9XCJyZXF1aXJlZFwiPnsgX18oICcocmVxdWlyZWQpJywgJ290dGVyLWJsb2NrcycgKSB9PC9zcGFuPlxuXHRcdFx0XHRcdCkgfVxuXHRcdFx0XHQ8L2xhYmVsPlxuXG5cdFx0XHRcdDxpbnB1dFxuXHRcdFx0XHRcdHR5cGU9eyBhdHRyaWJ1dGVzLnR5cGUgfVxuXHRcdFx0XHRcdHBsYWNlaG9sZGVyPXsgYXR0cmlidXRlcy5wbGFjZWhvbGRlciB9XG5cdFx0XHRcdFx0bmFtZT17IGF0dHJpYnV0ZXMuaWQgfVxuXHRcdFx0XHRcdGlkPXsgYXR0cmlidXRlcy5pZCB9XG5cdFx0XHRcdFx0cmVxdWlyZWQ9eyBhdHRyaWJ1dGVzLmlzUmVxdWlyZWQgfVxuXHRcdFx0XHRcdGRpc2FibGVkXG5cdFx0XHRcdFx0Y2xhc3NOYW1lPVwib3R0ZXItZm9ybS1pbnB1dCBjb21wb25lbnRzLXRleHQtY29udHJvbF9faW5wdXRcIlxuXHRcdFx0XHQvPlxuXHRcdFx0PC9kaXY+XG5cdFx0PC9GcmFnbWVudD5cblx0KTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEVkaXQ7XG4iLCIvKipcbiAqIFdvcmRQcmVzcyBkZXBlbmRlbmNpZXNcbiAqL1xuaW1wb3J0IHsgX18gfSBmcm9tICdAd29yZHByZXNzL2kxOG4nO1xuXG5pbXBvcnQgeyBSaWNoVGV4dCB9IGZyb20gJ0B3b3JkcHJlc3MvYmxvY2stZWRpdG9yJztcblxuY29uc3QgU2F2ZSA9ICh7XG5cdGF0dHJpYnV0ZXMsXG5cdGNsYXNzTmFtZVxufSkgPT4ge1xuXHRyZXR1cm4gKFxuXHRcdDxkaXYgY2xhc3NOYW1lPXsgY2xhc3NOYW1lIH0gPlxuXHRcdFx0PGxhYmVsXG5cdFx0XHRcdGh0bWxGb3I9eyBhdHRyaWJ1dGVzLmlkIH1cblx0XHRcdFx0Y2xhc3NOYW1lPVwib3R0ZXItZm9ybS1pbnB1dC1sYWJlbFwiXG5cdFx0XHQ+XG5cdFx0XHRcdDxSaWNoVGV4dC5Db250ZW50XG5cdFx0XHRcdFx0dmFsdWU9eyBhdHRyaWJ1dGVzLmxhYmVsIH1cblx0XHRcdFx0XHRjbGFzc05hbWU9XCJvdHRlci1mb3JtLWlucHV0LWxhYmVsX19sYWJlbFwiXG5cdFx0XHRcdFx0dGFnTmFtZT1cInNwYW5cIlxuXHRcdFx0XHQvPlxuXG5cdFx0XHRcdHsgYXR0cmlidXRlcy5pc1JlcXVpcmVkICYmIChcblx0XHRcdFx0XHQ8c3BhbiBjbGFzc05hbWU9XCJyZXF1aXJlZFwiPnsgX18oICcocmVxdWlyZWQpJywgJ290dGVyLWJsb2NrcycgKSB9PC9zcGFuPlxuXHRcdFx0XHQpIH1cblx0XHRcdDwvbGFiZWw+XG5cblx0XHRcdDxpbnB1dFxuXHRcdFx0XHR0eXBlPXsgYXR0cmlidXRlcy50eXBlIH1cblx0XHRcdFx0bmFtZT17IGF0dHJpYnV0ZXMubWFwcGVkTmFtZSB9XG5cdFx0XHRcdGlkPXsgYXR0cmlidXRlcy5pZCB9XG5cdFx0XHRcdHJlcXVpcmVkPXsgYXR0cmlidXRlcy5pc1JlcXVpcmVkIH1cblx0XHRcdFx0cGxhY2Vob2xkZXI9eyBhdHRyaWJ1dGVzLnBsYWNlaG9sZGVyIH1cblx0XHRcdFx0Y2xhc3NOYW1lPVwib3R0ZXItZm9ybS1pbnB1dFwiXG5cdFx0XHQvPlxuXHRcdDwvZGl2PlxuXHQpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgU2F2ZTtcbiIsIi8qKlxuICogV29yZFByZXNzIGRlcGVuZGVuY2llc1xuICovXG5pbXBvcnQgeyBfXyB9IGZyb20gJ0B3b3JkcHJlc3MvaTE4bic7XG5cbmltcG9ydCB7IHJlZ2lzdGVyQmxvY2tUeXBlIH0gZnJvbSAnQHdvcmRwcmVzcy9ibG9ja3MnO1xuXG4vKipcbiAqIEludGVybmFsIGRlcGVuZGVuY2llc1xuICovXG5pbXBvcnQgeyBpbnB1dEljb24gYXMgaWNvbiB9IGZyb20gJy4uLy4uLy4uL2hlbHBlcnMvaWNvbnMuanMnO1xuaW1wb3J0IGF0dHJpYnV0ZXMgZnJvbSAnLi9hdHRyaWJ1dGVzLmpzJztcbmltcG9ydCBlZGl0IGZyb20gJy4vZWRpdC5qcyc7XG5pbXBvcnQgc2F2ZSBmcm9tICcuL3NhdmUuanMnO1xuXG5yZWdpc3RlckJsb2NrVHlwZSggJ3RoZW1laXNsZS1ibG9ja3MvZm9ybS1pbnB1dCcsIHtcblx0dGl0bGU6IF9fKCAnVGV4dCBGaWVsZCcsICdvdHRlci1ibG9ja3MnICksXG5cdGRlc2NyaXB0aW9uOiBfXyggJ0Rpc3BsYXkgYSBjb250YWN0IGZvcm0gZm9yIHlvdXIgY2xpZW50cy4nLCAnb3R0ZXItYmxvY2tzJyApLFxuXHRpY29uLFxuXHRwYXJlbnQ6IFsgJ3RoZW1laXNsZS1ibG9ja3MvZm9ybScgXSxcblx0Y2F0ZWdvcnk6ICd0aGVtZWlzbGUtYmxvY2tzJyxcblx0a2V5d29yZHM6IFtcblx0XHQnaW5wdXQnLFxuXHRcdCd0ZXh0Jyxcblx0XHQnZW1haWwnXG5cdF0sXG5cdGF0dHJpYnV0ZXMsXG5cdHN1cHBvcnRzOiB7XG5cdFx0YWxpZ246IFsgJ3dpZGUnLCAnZnVsbCcgXVxuXHR9LFxuXHR2YXJpYXRpb25zOiBbXG5cdFx0e1xuXHRcdFx0bmFtZTogJ3RoZW1laXNsZS1ibG9ja3MvZm9ybS1pbnB1dC1lbWFpbCcsXG5cdFx0XHRkZXNjcmlwdGlvbjogX18oICdJbnNlcnQgYW4gZW1haWwgZmllbGQnLCAnb3R0ZXItYmxvY2tzJyApLFxuXHRcdFx0aWNvbjogJ2VtYWlsJyxcblx0XHRcdHRpdGxlOiBfXyggJ0VtYWlsIEZpZWxkJywgJ290dGVyLWJsb2NrcycgKSxcblx0XHRcdGF0dHJpYnV0ZXM6IHtcblx0XHRcdFx0dHlwZTogJ2VtYWlsJ1xuXHRcdFx0fVxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0bmFtZTogJ3RoZW1laXNsZS1ibG9ja3MvZm9ybS1pbnB1dC1udW1iZXInLFxuXHRcdFx0ZGVzY3JpcHRpb246IF9fKCAnSW5zZXJ0IGEgbnVtYmVyIGZpZWxkJywgJ290dGVyLWJsb2NrcycgKSxcblx0XHRcdGljb246ICdjYWxjdWxhdG9yJyxcblx0XHRcdHRpdGxlOiBfXyggJ051bWJlciBGaWVsZCcsICdvdHRlci1ibG9ja3MnICksXG5cdFx0XHRhdHRyaWJ1dGVzOiB7XG5cdFx0XHRcdHR5cGU6ICdudW1iZXInXG5cdFx0XHR9XG5cdFx0fSxcblx0XHR7XG5cdFx0XHRuYW1lOiAndGhlbWVpc2xlLWJsb2Nrcy9mb3JtLWlucHV0LWRhdGUnLFxuXHRcdFx0ZGVzY3JpcHRpb246IF9fKCAnSW5zZXJ0IGEgZGF0ZSBmaWVsZCcsICdvdHRlci1ibG9ja3MnICksXG5cdFx0XHRpY29uOiAnY2FsZW5kYXItYWx0Jyxcblx0XHRcdHRpdGxlOiBfXyggJ0RhdGUgRmllbGQnLCAnb3R0ZXItYmxvY2tzJyApLFxuXHRcdFx0YXR0cmlidXRlczoge1xuXHRcdFx0XHR0eXBlOiAnZGF0ZSdcblx0XHRcdH1cblx0XHR9XG5cdF0sXG5cdGVkaXQsXG5cdHNhdmVcbn0pO1xuIl0sIm5hbWVzIjpbImF0dHJpYnV0ZXMiLCJpZCIsInR5cGUiLCJkZWZhdWx0IiwibGFiZWwiLCJwbGFjZWhvbGRlciIsImlzUmVxdWlyZWQiLCJtYXBwZWROYW1lIiwiX18iLCJJbnNwZWN0b3JDb250cm9scyIsIlBhbmVsQm9keSIsIlRleHRDb250cm9sIiwiU2VsZWN0Q29udHJvbCIsIlRvZ2dsZUNvbnRyb2wiLCJJbnNwZWN0b3IiLCJzZXRBdHRyaWJ1dGVzIiwidmFsdWUiLCJwbGFjZWhvbGVyIiwiUmljaFRleHQiLCJGcmFnbWVudCIsInVzZUVmZmVjdCIsImJsb2NrSW5pdCIsImRlZmF1bHRBdHRyaWJ1dGVzIiwiRWRpdCIsImNsYXNzTmFtZSIsImNsaWVudElkIiwidW5zdWJzY3JpYmUiLCJTYXZlIiwicmVnaXN0ZXJCbG9ja1R5cGUiLCJpbnB1dEljb24iLCJpY29uIiwiZWRpdCIsInNhdmUiLCJ0aXRsZSIsImRlc2NyaXB0aW9uIiwicGFyZW50IiwiY2F0ZWdvcnkiLCJrZXl3b3JkcyIsInN1cHBvcnRzIiwiYWxpZ24iLCJ2YXJpYXRpb25zIiwibmFtZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///2124\n")},315:function(__unused_webpack_module,__unused_webpack___webpack_exports__,__webpack_require__){eval("\n// EXTERNAL MODULE: external [\"wp\",\"i18n\"]\nvar external_wp_i18n_ = __webpack_require__(5736);\n// EXTERNAL MODULE: external [\"wp\",\"blocks\"]\nvar external_wp_blocks_ = __webpack_require__(4981);\n// EXTERNAL MODULE: ./src/blocks/helpers/icons.js\nvar icons = __webpack_require__(340);\n// EXTERNAL MODULE: external [\"wp\",\"data\"]\nvar external_wp_data_ = __webpack_require__(9818);\n// EXTERNAL MODULE: external [\"wp\",\"element\"]\nvar external_wp_element_ = __webpack_require__(9307);\n;// CONCATENATED MODULE: ./src/blocks/blocks/form/nonce/edit.js\n/**\n * WordPress dependencies\n */\n\n\n\nconst Edit = ({\n setAttributes,\n clientId\n}) => {\n const {\n parent\n } = (0,external_wp_data_.useSelect)(select => {\n const {\n getBlock,\n getBlockRootClientId\n } = select('core/block-editor');\n const parentClientId = getBlockRootClientId(clientId);\n const parentBlock = getBlock(parentClientId);\n return {\n parent: parentBlock\n };\n });\n (0,external_wp_element_.useEffect)(() => {\n if (parent) {\n setAttributes({\n formId: parent.attributes.id\n });\n }\n }, [parent]);\n return null;\n};\n\n/* harmony default export */ var edit = (Edit);\n;// CONCATENATED MODULE: ./src/blocks/blocks/form/nonce/index.js\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\n(0,external_wp_blocks_.registerBlockType)('themeisle-blocks/form-nonce', {\n title: (0,external_wp_i18n_.__)('Nonce Field', 'otter-blocks'),\n description: (0,external_wp_i18n_.__)('Protect the form from CSRF.', 'otter-blocks'),\n icon: icons/* inputIcon */.Bd,\n parent: ['themeisle-blocks/form'],\n category: 'themeisle-blocks',\n keywords: ['protection', 'csrf', 'field'],\n attributes: {\n formId: {\n type: 'string'\n }\n },\n supports: {\n align: ['wide', 'full'],\n inserter: false\n },\n edit: edit,\n save: () => null\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMzE1LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7O0FBRUEsTUFBTUUsSUFBSSxHQUFHLENBQUM7QUFDYkMsRUFBQUEsYUFEYTtBQUViQyxFQUFBQTtBQUZhLENBQUQsS0FHUDtBQUNMLFFBQU07QUFBRUMsSUFBQUE7QUFBRixNQUFhTCwrQkFBUyxDQUFFTSxNQUFNLElBQUk7QUFDdkMsVUFBTTtBQUNMQyxNQUFBQSxRQURLO0FBRUxDLE1BQUFBO0FBRkssUUFHRkYsTUFBTSxDQUFFLG1CQUFGLENBSFY7QUFLQSxVQUFNRyxjQUFjLEdBQUdELG9CQUFvQixDQUFFSixRQUFGLENBQTNDO0FBQ0EsVUFBTU0sV0FBVyxHQUFHSCxRQUFRLENBQUVFLGNBQUYsQ0FBNUI7QUFFQSxXQUFPO0FBQ05KLE1BQUFBLE1BQU0sRUFBRUs7QUFERixLQUFQO0FBR0EsR0FaMkIsQ0FBNUI7QUFjQVQsRUFBQUEsa0NBQVMsQ0FBRSxNQUFNO0FBQ2hCLFFBQUtJLE1BQUwsRUFBYztBQUNiRixNQUFBQSxhQUFhLENBQUM7QUFBRVEsUUFBQUEsTUFBTSxFQUFFTixNQUFNLENBQUNPLFVBQVAsQ0FBa0JDO0FBQTVCLE9BQUQsQ0FBYjtBQUNBO0FBQ0QsR0FKUSxFQUlOLENBQUVSLE1BQUYsQ0FKTSxDQUFUO0FBTUEsU0FBTyxJQUFQO0FBQ0EsQ0F6QkQ7O0FBMkJBLHlDQUFlSCxJQUFmLEU7O0FDbENBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUNBO0FBQ0E7O0FBQ0E7QUFDQTtBQUVBYSx5Q0FBaUIsQ0FBRSw2QkFBRixFQUFpQztBQUNqREksRUFBQUEsS0FBSyxFQUFFTCx3QkFBRSxDQUFFLGFBQUYsRUFBaUIsY0FBakIsQ0FEd0M7QUFFakRNLEVBQUFBLFdBQVcsRUFBRU4sd0JBQUUsQ0FBRSw2QkFBRixFQUFpQyxjQUFqQyxDQUZrQztBQUdqREcsRUFBQUEsSUFIaUQ7QUFJakRaLEVBQUFBLE1BQU0sRUFBRSxDQUFFLHVCQUFGLENBSnlDO0FBS2pEZ0IsRUFBQUEsUUFBUSxFQUFFLGtCQUx1QztBQU1qREMsRUFBQUEsUUFBUSxFQUFFLENBQ1QsWUFEUyxFQUVULE1BRlMsRUFHVCxPQUhTLENBTnVDO0FBV2pEVixFQUFBQSxVQUFVLEVBQUU7QUFDWEQsSUFBQUEsTUFBTSxFQUFFO0FBQ1BZLE1BQUFBLElBQUksRUFBRTtBQURDO0FBREcsR0FYcUM7QUFnQmpEQyxFQUFBQSxRQUFRLEVBQUU7QUFDVEMsSUFBQUEsS0FBSyxFQUFFLENBQUUsTUFBRixFQUFVLE1BQVYsQ0FERTtBQUVUQyxJQUFBQSxRQUFRLEVBQUU7QUFGRCxHQWhCdUM7QUFvQmpEUixFQUFBQSxJQXBCaUQ7QUFxQmpEUyxFQUFBQSxJQUFJLEVBQUUsTUFBTTtBQXJCcUMsQ0FBakMsQ0FBakIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9vdHRlci1ibG9ja3MvLi9zcmMvYmxvY2tzL2Jsb2Nrcy9mb3JtL25vbmNlL2VkaXQuanM/NjViMiIsIndlYnBhY2s6Ly9vdHRlci1ibG9ja3MvLi9zcmMvYmxvY2tzL2Jsb2Nrcy9mb3JtL25vbmNlL2luZGV4LmpzP2QyZGMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBXb3JkUHJlc3MgZGVwZW5kZW5jaWVzXG4gKi9cbmltcG9ydCB7IHVzZVNlbGVjdCB9IGZyb20gJ0B3b3JkcHJlc3MvZGF0YSc7XG5cbmltcG9ydCB7IHVzZUVmZmVjdCB9IGZyb20gJ0B3b3JkcHJlc3MvZWxlbWVudCc7XG5cbmNvbnN0IEVkaXQgPSAoe1xuXHRzZXRBdHRyaWJ1dGVzLFxuXHRjbGllbnRJZFxufSkgPT4ge1xuXHRjb25zdCB7IHBhcmVudCB9ID0gdXNlU2VsZWN0KCBzZWxlY3QgPT4ge1xuXHRcdGNvbnN0IHtcblx0XHRcdGdldEJsb2NrLFxuXHRcdFx0Z2V0QmxvY2tSb290Q2xpZW50SWRcblx0XHR9ID0gc2VsZWN0KCAnY29yZS9ibG9jay1lZGl0b3InICk7XG5cblx0XHRjb25zdCBwYXJlbnRDbGllbnRJZCA9IGdldEJsb2NrUm9vdENsaWVudElkKCBjbGllbnRJZCApO1xuXHRcdGNvbnN0IHBhcmVudEJsb2NrID0gZ2V0QmxvY2soIHBhcmVudENsaWVudElkICk7XG5cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFyZW50OiBwYXJlbnRCbG9ja1xuXHRcdH07XG5cdH0pO1xuXG5cdHVzZUVmZmVjdCggKCkgPT4ge1xuXHRcdGlmICggcGFyZW50ICkge1xuXHRcdFx0c2V0QXR0cmlidXRlcyh7IGZvcm1JZDogcGFyZW50LmF0dHJpYnV0ZXMuaWQgfSk7XG5cdFx0fVxuXHR9LCBbIHBhcmVudCBdKTtcblxuXHRyZXR1cm4gbnVsbDtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEVkaXQ7XG4iLCIvKipcbiAqIFdvcmRQcmVzcyBkZXBlbmRlbmNpZXNcbiAqL1xuaW1wb3J0IHsgX18gfSBmcm9tICdAd29yZHByZXNzL2kxOG4nO1xuXG5pbXBvcnQgeyByZWdpc3RlckJsb2NrVHlwZSB9IGZyb20gJ0B3b3JkcHJlc3MvYmxvY2tzJztcblxuLyoqXG4gKiBJbnRlcm5hbCBkZXBlbmRlbmNpZXNcbiAqL1xuaW1wb3J0IHsgaW5wdXRJY29uIGFzIGljb24gfSBmcm9tICcuLi8uLi8uLi9oZWxwZXJzL2ljb25zLmpzJztcbmltcG9ydCBlZGl0IGZyb20gJy4vZWRpdC5qcyc7XG5cbnJlZ2lzdGVyQmxvY2tUeXBlKCAndGhlbWVpc2xlLWJsb2Nrcy9mb3JtLW5vbmNlJywge1xuXHR0aXRsZTogX18oICdOb25jZSBGaWVsZCcsICdvdHRlci1ibG9ja3MnICksXG5cdGRlc2NyaXB0aW9uOiBfXyggJ1Byb3RlY3QgdGhlIGZvcm0gZnJvbSBDU1JGLicsICdvdHRlci1ibG9ja3MnICksXG5cdGljb24sXG5cdHBhcmVudDogWyAndGhlbWVpc2xlLWJsb2Nrcy9mb3JtJyBdLFxuXHRjYXRlZ29yeTogJ3RoZW1laXNsZS1ibG9ja3MnLFxuXHRrZXl3b3JkczogW1xuXHRcdCdwcm90ZWN0aW9uJyxcblx0XHQnY3NyZicsXG5cdFx0J2ZpZWxkJ1xuXHRdLFxuXHRhdHRyaWJ1dGVzOiB7XG5cdFx0Zm9ybUlkOiB7XG5cdFx0XHR0eXBlOiAnc3RyaW5nJ1xuXHRcdH1cblx0fSxcblx0c3VwcG9ydHM6IHtcblx0XHRhbGlnbjogWyAnd2lkZScsICdmdWxsJyBdLFxuXHRcdGluc2VydGVyOiBmYWxzZVxuXHR9LFxuXHRlZGl0LFxuXHRzYXZlOiAoKSA9PiBudWxsXG59KTtcbiJdLCJuYW1lcyI6WyJ1c2VTZWxlY3QiLCJ1c2VFZmZlY3QiLCJFZGl0Iiwic2V0QXR0cmlidXRlcyIsImNsaWVudElkIiwicGFyZW50Iiwic2VsZWN0IiwiZ2V0QmxvY2siLCJnZXRCbG9ja1Jvb3RDbGllbnRJZCIsInBhcmVudENsaWVudElkIiwicGFyZW50QmxvY2siLCJmb3JtSWQiLCJhdHRyaWJ1dGVzIiwiaWQiLCJfXyIsInJlZ2lzdGVyQmxvY2tUeXBlIiwiaW5wdXRJY29uIiwiaWNvbiIsImVkaXQiLCJ0aXRsZSIsImRlc2NyaXB0aW9uIiwiY2F0ZWdvcnkiLCJrZXl3b3JkcyIsInR5cGUiLCJzdXBwb3J0cyIsImFsaWduIiwiaW5zZXJ0ZXIiLCJzYXZlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///315\n")},6950:function(__unused_webpack_module,__unused_webpack___webpack_exports__,__webpack_require__){eval("\n// EXTERNAL MODULE: external [\"wp\",\"i18n\"]\nvar external_wp_i18n_ = __webpack_require__(5736);\n// EXTERNAL MODULE: external [\"wp\",\"blocks\"]\nvar external_wp_blocks_ = __webpack_require__(4981);\n// EXTERNAL MODULE: ./src/blocks/helpers/icons.js\nvar icons = __webpack_require__(340);\n;// CONCATENATED MODULE: ./src/blocks/blocks/form/textarea/attributes.js\nconst attributes = {\n id: {\n type: 'string'\n },\n label: {\n type: 'string'\n },\n placeholder: {\n type: 'string'\n },\n isRequired: {\n type: 'boolean'\n },\n mappedName: {\n type: 'string'\n }\n};\n/* harmony default export */ var textarea_attributes = (attributes);\n// EXTERNAL MODULE: external [\"wp\",\"element\"]\nvar external_wp_element_ = __webpack_require__(9307);\n// EXTERNAL MODULE: external [\"wp\",\"blockEditor\"]\nvar external_wp_blockEditor_ = __webpack_require__(2175);\n// EXTERNAL MODULE: ./src/blocks/helpers/block-utility.js\nvar block_utility = __webpack_require__(5225);\n// EXTERNAL MODULE: external [\"wp\",\"components\"]\nvar external_wp_components_ = __webpack_require__(5609);\n;// CONCATENATED MODULE: ./src/blocks/blocks/form/textarea/inspector.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\nconst Inspector = ({\n attributes,\n setAttributes\n}) => {\n return (0,external_wp_element_.createElement)(external_wp_blockEditor_.InspectorControls, null, (0,external_wp_element_.createElement)(external_wp_components_.PanelBody, {\n title: (0,external_wp_i18n_.__)('Settings', 'otter-blocks')\n }, (0,external_wp_element_.createElement)(external_wp_components_.TextControl, {\n label: (0,external_wp_i18n_.__)('Label', 'otter-blocks'),\n value: attributes.label,\n onChange: label => setAttributes({\n label\n })\n }), (0,external_wp_element_.createElement)(external_wp_components_.TextControl, {\n label: (0,external_wp_i18n_.__)('Placeholder', 'otter-blocks'),\n value: attributes.placeholer,\n onChange: placeholder => setAttributes({\n placeholder\n })\n }), (0,external_wp_element_.createElement)(external_wp_components_.ToggleControl, {\n label: (0,external_wp_i18n_.__)('Is this field required?', 'otter-blocks'),\n help: (0,external_wp_i18n_.__)('If true, the input field must be filled out before submitting the form.', 'otter-blocks'),\n checked: attributes.isRequired,\n onChange: isRequired => setAttributes({\n isRequired\n })\n })));\n};\n\n/* harmony default export */ var inspector = (Inspector);\n;// CONCATENATED MODULE: ./src/blocks/blocks/form/textarea/edit.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\nconst Edit = ({\n attributes,\n setAttributes,\n className,\n clientId\n}) => {\n (0,external_wp_element_.useEffect)(() => {\n const unsubscribe = (0,block_utility/* blockInit */.WX)(clientId, textarea_attributes);\n return () => unsubscribe(attributes.id);\n }, [attributes.id]);\n return (0,external_wp_element_.createElement)(external_wp_element_.Fragment, null, (0,external_wp_element_.createElement)(inspector, {\n attributes: attributes,\n setAttributes: setAttributes\n }), (0,external_wp_element_.createElement)(\"div\", {\n className: className\n }, (0,external_wp_element_.createElement)(\"label\", {\n htmlFor: attributes.id,\n className: \"otter-form-textarea-label\"\n }, (0,external_wp_element_.createElement)(external_wp_blockEditor_.RichText, {\n placeholder: (0,external_wp_i18n_.__)('Type here…', 'otter-blocks'),\n className: \"otter-form-textarea-label__label\",\n value: attributes.label,\n onChange: label => setAttributes({\n label\n }),\n tagName: \"span\"\n }), attributes.isRequired && (0,external_wp_element_.createElement)(\"span\", {\n className: \"required\"\n }, (0,external_wp_i18n_.__)('(required)', 'otter-blocks'))), (0,external_wp_element_.createElement)(\"textarea\", {\n placeholder: attributes.placeholder,\n name: attributes.id,\n id: attributes.id,\n required: attributes.isRequired,\n disabled: true,\n rows: 10,\n className: \"otter-form-textarea-input components-textarea-control__input\"\n })));\n};\n\n/* harmony default export */ var edit = (Edit);\n;// CONCATENATED MODULE: ./src/blocks/blocks/form/textarea/save.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\nconst Save = ({\n attributes,\n className\n}) => {\n return (0,external_wp_element_.createElement)(\"div\", {\n className: className\n }, (0,external_wp_element_.createElement)(\"label\", {\n htmlFor: attributes.id,\n className: \"otter-form-textarea-label\"\n }, (0,external_wp_element_.createElement)(external_wp_blockEditor_.RichText.Content, {\n value: attributes.label,\n className: \"otter-form-textarea-label__label\",\n tagName: \"span\"\n }), attributes.isRequired && (0,external_wp_element_.createElement)(\"span\", {\n className: \"required\"\n }, (0,external_wp_i18n_.__)('(required)', 'otter-blocks'))), (0,external_wp_element_.createElement)(\"textarea\", {\n name: attributes.mappedName,\n id: attributes.id,\n required: attributes.isRequired,\n placeholder: attributes.placeholder,\n rows: 10,\n className: \"otter-form-textarea-input\"\n }));\n};\n\n/* harmony default export */ var save = (Save);\n;// CONCATENATED MODULE: ./src/blocks/blocks/form/textarea/index.js\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n(0,external_wp_blocks_.registerBlockType)('themeisle-blocks/form-textarea', {\n title: (0,external_wp_i18n_.__)('Textarea Field', 'otter-blocks'),\n description: (0,external_wp_i18n_.__)('Display a contact form for your clients.', 'otter-blocks'),\n icon: icons/* inputIcon */.Bd,\n parent: ['themeisle-blocks/form'],\n category: 'themeisle-blocks',\n keywords: ['textarea', 'message', 'input'],\n attributes: textarea_attributes,\n supports: {\n align: ['wide', 'full']\n },\n edit: edit,\n save: save\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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LENBQUNDLEVBRmpCO0FBR0MsWUFBUSxFQUFHRCxVQUFVLENBQUNLLFVBSHZCO0FBSUMsZUFBVyxFQUFHTCxVQUFVLENBQUNJLFdBSjFCO0FBS0MsUUFBSSxFQUFHLEVBTFI7QUFNQyxhQUFTLEVBQUM7QUFOWCxJQWhCRCxDQUREO0FBNEJBLENBaENEOztBQWtDQSx5Q0FBZW9CLElBQWYsRTs7QUN6Q0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QUFDQTs7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBQyx5Q0FBaUIsQ0FBRSxnQ0FBRixFQUFvQztBQUNwREssRUFBQUEsS0FBSyxFQUFFdkIsd0JBQUUsQ0FBRSxnQkFBRixFQUFvQixjQUFwQixDQUQyQztBQUVwRHdCLEVBQUFBLFdBQVcsRUFBRXhCLHdCQUFFLENBQUUsMENBQUYsRUFBOEMsY0FBOUMsQ0FGcUM7QUFHcERvQixFQUFBQSxJQUhvRDtBQUlwREssRUFBQUEsTUFBTSxFQUFFLENBQUUsdUJBQUYsQ0FKNEM7QUFLcERDLEVBQUFBLFFBQVEsRUFBRSxrQkFMMEM7QUFNcERDLEVBQUFBLFFBQVEsRUFBRSxDQUNULFVBRFMsRUFFVCxTQUZTLEVBR1QsT0FIUyxDQU4wQztBQVdwRGxDLEVBQUFBLFVBWG9EO0FBWXBEbUMsRUFBQUEsUUFBUSxFQUFFO0FBQ1RDLElBQUFBLEtBQUssRUFBRSxDQUFFLE1BQUYsRUFBVSxNQUFWO0FBREUsR0FaMEM7QUFlcERSLEVBQUFBLElBZm9EO0FBZ0JwREMsRUFBQUEsSUFBSUEsRUFBQUEsSUFBQUE7QUFoQmdELENBQXBDLENBQWpCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vb3R0ZXItYmxvY2tzLy4vc3JjL2Jsb2Nrcy9ibG9ja3MvZm9ybS90ZXh0YXJlYS9hdHRyaWJ1dGVzLmpzPzFjNmYiLCJ3ZWJwYWNrOi8vb3R0ZXItYmxvY2tzLy4vc3JjL2Jsb2Nrcy9ibG9ja3MvZm9ybS90ZXh0YXJlYS9pbnNwZWN0b3IuanM/MTRhMyIsIndlYnBhY2s6Ly9vdHRlci1ibG9ja3MvLi9zcmMvYmxvY2tzL2Jsb2Nrcy9mb3JtL3RleHRhcmVhL2VkaXQuanM/MWIzMiIsIndlYnBhY2s6Ly9vdHRlci1ibG9ja3MvLi9zcmMvYmxvY2tzL2Jsb2Nrcy9mb3JtL3RleHRhcmVhL3NhdmUuanM/ZWU5OSIsIndlYnBhY2s6Ly9vdHRlci1ibG9ja3MvLi9zcmMvYmxvY2tzL2Jsb2Nrcy9mb3JtL3RleHRhcmVhL2luZGV4LmpzP2I4MjIiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgYXR0cmlidXRlcyA9IHtcblx0aWQ6IHtcblx0XHR0eXBlOiAnc3RyaW5nJ1xuXHR9LFxuXHRsYWJlbDoge1xuXHRcdHR5cGU6ICdzdHJpbmcnXG5cdH0sXG5cdHBsYWNlaG9sZGVyOiB7XG5cdFx0dHlwZTogJ3N0cmluZydcblx0fSxcblx0aXNSZXF1aXJlZDoge1xuXHRcdHR5cGU6ICdib29sZWFuJ1xuXHR9LFxuXHRtYXBwZWROYW1lOiB7XG5cdFx0dHlwZTogJ3N0cmluZydcblx0fVxufTtcblxuZXhwb3J0IGRlZmF1bHQgYXR0cmlidXRlcztcbiIsIi8qKlxuICogV29yZFByZXNzIGRlcGVuZGVuY2llc1xuICovXG5pbXBvcnQgeyBfXyB9IGZyb20gJ0B3b3JkcHJlc3MvaTE4bic7XG5cbmltcG9ydCB7IEluc3BlY3RvckNvbnRyb2xzIH0gZnJvbSAnQHdvcmRwcmVzcy9ibG9jay1lZGl0b3InO1xuXG5pbXBvcnQge1xuXHRQYW5lbEJvZHksXG5cdFRleHRDb250cm9sLFxuXHRUb2dnbGVDb250cm9sXG59IGZyb20gJ0B3b3JkcHJlc3MvY29tcG9uZW50cyc7XG5cbmNvbnN0IEluc3BlY3RvciA9ICh7XG5cdGF0dHJpYnV0ZXMsXG5cdHNldEF0dHJpYnV0ZXNcbn0pID0+IHtcblx0cmV0dXJuIChcblx0XHQ8SW5zcGVjdG9yQ29udHJvbHM+XG5cdFx0XHQ8UGFuZWxCb2R5XG5cdFx0XHRcdHRpdGxlPXsgX18oICdTZXR0aW5ncycsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0PlxuXHRcdFx0XHQ8VGV4dENvbnRyb2xcblx0XHRcdFx0XHRsYWJlbD17IF9fKCAnTGFiZWwnLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdFx0XHR2YWx1ZT17IGF0dHJpYnV0ZXMubGFiZWwgfVxuXHRcdFx0XHRcdG9uQ2hhbmdlPXsgbGFiZWwgPT4gc2V0QXR0cmlidXRlcyh7IGxhYmVsIH0pIH1cblx0XHRcdFx0Lz5cblxuXHRcdFx0XHQ8VGV4dENvbnRyb2xcblx0XHRcdFx0XHRsYWJlbD17IF9fKCAnUGxhY2Vob2xkZXInLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdFx0XHR2YWx1ZT17IGF0dHJpYnV0ZXMucGxhY2Vob2xlciB9XG5cdFx0XHRcdFx0b25DaGFuZ2U9eyBwbGFjZWhvbGRlciA9PiBzZXRBdHRyaWJ1dGVzKHsgcGxhY2Vob2xkZXIgfSkgfVxuXHRcdFx0XHQvPlxuXG5cdFx0XHRcdDxUb2dnbGVDb250cm9sXG5cdFx0XHRcdFx0bGFiZWw9eyBfXyggJ0lzIHRoaXMgZmllbGQgcmVxdWlyZWQ/JywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdFx0aGVscD17IF9fKCAnSWYgdHJ1ZSwgdGhlIGlucHV0IGZpZWxkIG11c3QgYmUgZmlsbGVkIG91dCBiZWZvcmUgc3VibWl0dGluZyB0aGUgZm9ybS4nLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdFx0XHRjaGVja2VkPXsgYXR0cmlidXRlcy5pc1JlcXVpcmVkIH1cblx0XHRcdFx0XHRvbkNoYW5nZT17IGlzUmVxdWlyZWQgPT4gc2V0QXR0cmlidXRlcyh7IGlzUmVxdWlyZWQgfSkgfVxuXHRcdFx0XHQvPlxuXHRcdFx0PC9QYW5lbEJvZHk+XG5cdFx0PC9JbnNwZWN0b3JDb250cm9scz5cblx0KTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEluc3BlY3RvcjtcbiIsIi8qKlxuICogV29yZFByZXNzIGRlcGVuZGVuY2llc1xuICovXG5pbXBvcnQgeyBfXyB9IGZyb20gJ0B3b3JkcHJlc3MvaTE4bic7XG5cbmltcG9ydCB7IFJpY2hUZXh0IH0gZnJvbSAnQHdvcmRwcmVzcy9ibG9jay1lZGl0b3InO1xuXG5pbXBvcnQge1xuXHRGcmFnbWVudCxcblx0dXNlRWZmZWN0XG59IGZyb20gJ0B3b3JkcHJlc3MvZWxlbWVudCc7XG5cbi8qKlxuICogSW50ZXJuYWwgZGVwZW5kZW5jaWVzXG4gKi9cbmltcG9ydCB7IGJsb2NrSW5pdCB9IGZyb20gJy4uLy4uLy4uL2hlbHBlcnMvYmxvY2stdXRpbGl0eS5qcyc7XG5pbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi9hdHRyaWJ1dGVzLmpzJztcbmltcG9ydCBJbnNwZWN0b3IgZnJvbSAnLi9pbnNwZWN0b3IuanMnO1xuXG5jb25zdCBFZGl0ID0gKHtcblx0YXR0cmlidXRlcyxcblx0c2V0QXR0cmlidXRlcyxcblx0Y2xhc3NOYW1lLFxuXHRjbGllbnRJZFxufSkgPT4ge1xuXHR1c2VFZmZlY3QoICgpID0+IHtcblx0XHRjb25zdCB1bnN1YnNjcmliZSA9IGJsb2NrSW5pdCggY2xpZW50SWQsIGRlZmF1bHRBdHRyaWJ1dGVzICk7XG5cdFx0cmV0dXJuICgpID0+IHVuc3Vic2NyaWJlKCBhdHRyaWJ1dGVzLmlkICk7XG5cdH0sIFsgYXR0cmlidXRlcy5pZCBdKTtcblxuXHRyZXR1cm4gKFxuXHRcdDxGcmFnbWVudD5cblx0XHRcdDxJbnNwZWN0b3Jcblx0XHRcdFx0YXR0cmlidXRlcz17IGF0dHJpYnV0ZXMgfVxuXHRcdFx0XHRzZXRBdHRyaWJ1dGVzPXsgc2V0QXR0cmlidXRlcyB9XG5cdFx0XHQvPlxuXG5cdFx0XHQ8ZGl2IGNsYXNzTmFtZT17IGNsYXNzTmFtZSB9ID5cblx0XHRcdFx0PGxhYmVsXG5cdFx0XHRcdFx0aHRtbEZvcj17IGF0dHJpYnV0ZXMuaWQgfVxuXHRcdFx0XHRcdGNsYXNzTmFtZT1cIm90dGVyLWZvcm0tdGV4dGFyZWEtbGFiZWxcIlxuXHRcdFx0XHQ+XG5cdFx0XHRcdFx0PFJpY2hUZXh0XG5cdFx0XHRcdFx0XHRwbGFjZWhvbGRlcj17IF9fKCAnVHlwZSBoZXJl4oCmJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdFx0XHRjbGFzc05hbWU9XCJvdHRlci1mb3JtLXRleHRhcmVhLWxhYmVsX19sYWJlbFwiXG5cdFx0XHRcdFx0XHR2YWx1ZT17IGF0dHJpYnV0ZXMubGFiZWwgfVxuXHRcdFx0XHRcdFx0b25DaGFuZ2U9eyBsYWJlbCA9PiBzZXRBdHRyaWJ1dGVzKHsgbGFiZWwgfSkgfVxuXHRcdFx0XHRcdFx0dGFnTmFtZT1cInNwYW5cIlxuXHRcdFx0XHRcdC8+XG5cblx0XHRcdFx0XHR7IGF0dHJpYnV0ZXMuaXNSZXF1aXJlZCAmJiAoXG5cdFx0XHRcdFx0XHQ8c3BhbiBjbGFzc05hbWU9XCJyZXF1aXJlZFwiPnsgX18oICcocmVxdWlyZWQpJywgJ290dGVyLWJsb2NrcycgKSB9PC9zcGFuPlxuXHRcdFx0XHRcdCkgfVxuXHRcdFx0XHQ8L2xhYmVsPlxuXG5cdFx0XHRcdDx0ZXh0YXJlYVxuXHRcdFx0XHRcdHBsYWNlaG9sZGVyPXsgYXR0cmlidXRlcy5wbGFjZWhvbGRlciB9XG5cdFx0XHRcdFx0bmFtZT17IGF0dHJpYnV0ZXMuaWQgfVxuXHRcdFx0XHRcdGlkPXsgYXR0cmlidXRlcy5pZCB9XG5cdFx0XHRcdFx0cmVxdWlyZWQ9eyBhdHRyaWJ1dGVzLmlzUmVxdWlyZWQgfVxuXHRcdFx0XHRcdGRpc2FibGVkXG5cdFx0XHRcdFx0cm93cz17IDEwIH1cblx0XHRcdFx0XHRjbGFzc05hbWU9XCJvdHRlci1mb3JtLXRleHRhcmVhLWlucHV0IGNvbXBvbmVudHMtdGV4dGFyZWEtY29udHJvbF9faW5wdXRcIlxuXHRcdFx0XHQ+XG5cdFx0XHRcdDwvdGV4dGFyZWE+XG5cdFx0XHQ8L2Rpdj5cblx0XHQ8L0ZyYWdtZW50PlxuXHQpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgRWRpdDtcbiIsIi8qKlxuICogV29yZFByZXNzIGRlcGVuZGVuY2llc1xuICovXG5pbXBvcnQgeyBfXyB9IGZyb20gJ0B3b3JkcHJlc3MvaTE4bic7XG5cbmltcG9ydCB7IFJpY2hUZXh0IH0gZnJvbSAnQHdvcmRwcmVzcy9ibG9jay1lZGl0b3InO1xuXG5jb25zdCBTYXZlID0gKHtcblx0YXR0cmlidXRlcyxcblx0Y2xhc3NOYW1lXG59KSA9PiB7XG5cdHJldHVybiAoXG5cdFx0PGRpdiBjbGFzc05hbWU9eyBjbGFzc05hbWUgfSA+XG5cdFx0XHQ8bGFiZWxcblx0XHRcdFx0aHRtbEZvcj17IGF0dHJpYnV0ZXMuaWQgfVxuXHRcdFx0XHRjbGFzc05hbWU9XCJvdHRlci1mb3JtLXRleHRhcmVhLWxhYmVsXCJcblx0XHRcdD5cblx0XHRcdFx0PFJpY2hUZXh0LkNvbnRlbnRcblx0XHRcdFx0XHR2YWx1ZT17IGF0dHJpYnV0ZXMubGFiZWwgfVxuXHRcdFx0XHRcdGNsYXNzTmFtZT1cIm90dGVyLWZvcm0tdGV4dGFyZWEtbGFiZWxfX2xhYmVsXCJcblx0XHRcdFx0XHR0YWdOYW1lPVwic3BhblwiXG5cdFx0XHRcdC8+XG5cblx0XHRcdFx0eyBhdHRyaWJ1dGVzLmlzUmVxdWlyZWQgJiYgKFxuXHRcdFx0XHRcdDxzcGFuIGNsYXNzTmFtZT1cInJlcXVpcmVkXCI+eyBfXyggJyhyZXF1aXJlZCknLCAnb3R0ZXItYmxvY2tzJyApIH08L3NwYW4+XG5cdFx0XHRcdCkgfVxuXHRcdFx0PC9sYWJlbD5cblxuXHRcdFx0PHRleHRhcmVhXG5cdFx0XHRcdG5hbWU9eyBhdHRyaWJ1dGVzLm1hcHBlZE5hbWUgfVxuXHRcdFx0XHRpZD17IGF0dHJpYnV0ZXMuaWQgfVxuXHRcdFx0XHRyZXF1aXJlZD17IGF0dHJpYnV0ZXMuaXNSZXF1aXJlZCB9XG5cdFx0XHRcdHBsYWNlaG9sZGVyPXsgYXR0cmlidXRlcy5wbGFjZWhvbGRlciB9XG5cdFx0XHRcdHJvd3M9eyAxMCB9XG5cdFx0XHRcdGNsYXNzTmFtZT1cIm90dGVyLWZvcm0tdGV4dGFyZWEtaW5wdXRcIlxuXHRcdFx0PlxuXHRcdFx0PC90ZXh0YXJlYT5cblx0XHQ8L2Rpdj5cblx0KTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFNhdmU7XG4iLCIvKipcbiAqIFdvcmRQcmVzcyBkZXBlbmRlbmNpZXNcbiAqL1xuaW1wb3J0IHsgX18gfSBmcm9tICdAd29yZHByZXNzL2kxOG4nO1xuXG5pbXBvcnQgeyByZWdpc3RlckJsb2NrVHlwZSB9IGZyb20gJ0B3b3JkcHJlc3MvYmxvY2tzJztcblxuLyoqXG4gKiBJbnRlcm5hbCBkZXBlbmRlbmNpZXNcbiAqL1xuaW1wb3J0IHsgaW5wdXRJY29uIGFzIGljb24gfSBmcm9tICcuLi8uLi8uLi9oZWxwZXJzL2ljb25zLmpzJztcbmltcG9ydCBhdHRyaWJ1dGVzIGZyb20gJy4vYXR0cmlidXRlcy5qcyc7XG5pbXBvcnQgZWRpdCBmcm9tICcuL2VkaXQuanMnO1xuaW1wb3J0IHNhdmUgZnJvbSAnLi9zYXZlLmpzJztcblxucmVnaXN0ZXJCbG9ja1R5cGUoICd0aGVtZWlzbGUtYmxvY2tzL2Zvcm0tdGV4dGFyZWEnLCB7XG5cdHRpdGxlOiBfXyggJ1RleHRhcmVhIEZpZWxkJywgJ290dGVyLWJsb2NrcycgKSxcblx0ZGVzY3JpcHRpb246IF9fKCAnRGlzcGxheSBhIGNvbnRhY3QgZm9ybSBmb3IgeW91ciBjbGllbnRzLicsICdvdHRlci1ibG9ja3MnICksXG5cdGljb24sXG5cdHBhcmVudDogWyAndGhlbWVpc2xlLWJsb2Nrcy9mb3JtJyBdLFxuXHRjYXRlZ29yeTogJ3RoZW1laXNsZS1ibG9ja3MnLFxuXHRrZXl3b3JkczogW1xuXHRcdCd0ZXh0YXJlYScsXG5cdFx0J21lc3NhZ2UnLFxuXHRcdCdpbnB1dCdcblx0XSxcblx0YXR0cmlidXRlcyxcblx0c3VwcG9ydHM6IHtcblx0XHRhbGlnbjogWyAnd2lkZScsICdmdWxsJyBdXG5cdH0sXG5cdGVkaXQsXG5cdHNhdmVcbn0pO1xuIl0sIm5hbWVzIjpbImF0dHJpYnV0ZXMiLCJpZCIsInR5cGUiLCJsYWJlbCIsInBsYWNlaG9sZGVyIiwiaXNSZXF1aXJlZCIsIm1hcHBlZE5hbWUiLCJfXyIsIkluc3BlY3RvckNvbnRyb2xzIiwiUGFuZWxCb2R5IiwiVGV4dENvbnRyb2wiLCJUb2dnbGVDb250cm9sIiwiSW5zcGVjdG9yIiwic2V0QXR0cmlidXRlcyIsInBsYWNlaG9sZXIiLCJSaWNoVGV4dCIsIkZyYWdtZW50IiwidXNlRWZmZWN0IiwiYmxvY2tJbml0IiwiZGVmYXVsdEF0dHJpYnV0ZXMiLCJFZGl0IiwiY2xhc3NOYW1lIiwiY2xpZW50SWQiLCJ1bnN1YnNjcmliZSIsIlNhdmUiLCJyZWdpc3RlckJsb2NrVHlwZSIsImlucHV0SWNvbiIsImljb24iLCJlZGl0Iiwic2F2ZSIsInRpdGxlIiwiZGVzY3JpcHRpb24iLCJwYXJlbnQiLCJjYXRlZ29yeSIsImtleXdvcmRzIiwic3VwcG9ydHMiLCJhbGlnbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///6950\n")},5530:function(__unused_webpack_module,__unused_webpack___webpack_exports__,__webpack_require__){eval("\n// EXTERNAL MODULE: external [\"wp\",\"i18n\"]\nvar external_wp_i18n_ = __webpack_require__(5736);\n// EXTERNAL MODULE: external [\"wp\",\"blocks\"]\nvar external_wp_blocks_ = __webpack_require__(4981);\n// EXTERNAL MODULE: ./src/blocks/helpers/icons.js\nvar icons = __webpack_require__(340);\n;// CONCATENATED MODULE: ./src/blocks/blocks/google-maps/attributes.js\nconst attributes = {\n id: {\n type: 'string'\n },\n style: {\n type: 'string',\n default: 'standard'\n },\n location: {\n type: 'string',\n default: 'La Sagrada Familia, Barcelona, Spain'\n },\n latitude: {\n type: 'string'\n },\n longitude: {\n type: 'string'\n },\n type: {\n type: 'string',\n default: 'roadmap'\n },\n zoom: {\n type: 'number',\n default: 15\n },\n height: {\n type: 'number',\n default: 400\n },\n draggable: {\n type: 'boolean',\n default: true\n },\n mapTypeControl: {\n type: 'boolean',\n default: true\n },\n zoomControl: {\n type: 'boolean',\n default: true\n },\n fullscreenControl: {\n type: 'boolean',\n default: true\n },\n streetViewControl: {\n type: 'boolean',\n default: true\n },\n markers: {\n type: 'array',\n default: []\n }\n};\n/* harmony default export */ var google_maps_attributes = (attributes);\n// EXTERNAL MODULE: external [\"wp\",\"element\"]\nvar external_wp_element_ = __webpack_require__(9307);\n// EXTERNAL MODULE: ./node_modules/classnames/index.js\nvar classnames = __webpack_require__(4184);\nvar classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);\n// EXTERNAL MODULE: ./node_modules/uuid/dist/esm-browser/v4.js + 4 modules\nvar v4 = __webpack_require__(4586);\n// EXTERNAL MODULE: external [\"wp\",\"components\"]\nvar external_wp_components_ = __webpack_require__(5609);\n;// CONCATENATED MODULE: ./src/blocks/blocks/google-maps/placeholder.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\nconst BlockPlaceholder = ({\n className,\n api,\n isAPILoaded,\n isAPISaved,\n isSaving,\n changeAPI,\n saveAPIKey\n}) => {\n if (!isAPILoaded) {\n return (0,external_wp_element_.createElement)(external_wp_components_.Placeholder, null, (0,external_wp_element_.createElement)(external_wp_components_.Spinner, null), (0,external_wp_i18n_.__)('Loading…', 'otter-blocks'));\n }\n\n if (!isAPISaved) {\n return (0,external_wp_element_.createElement)(external_wp_components_.Placeholder, {\n icon: \"admin-site\",\n label: (0,external_wp_i18n_.__)('Google Maps', 'otter-blocks'),\n instructions: (0,external_wp_i18n_.__)('A Google Maps API key is required, please enter one below.', 'otter-blocks'),\n className: className\n }, (0,external_wp_element_.createElement)(\"div\", {\n className: \"components-placeholder__actions\"\n }, (0,external_wp_element_.createElement)(external_wp_components_.TextControl, {\n type: \"text\",\n placeholder: (0,external_wp_i18n_.__)('Google Maps API Key', 'otter-blocks'),\n value: api,\n className: \"components-placeholder__input\",\n onChange: changeAPI\n }), (0,external_wp_element_.createElement)(external_wp_components_.Button, {\n isLarge: true,\n isPrimary: true,\n type: \"submit\",\n onClick: saveAPIKey,\n isBusy: isSaving,\n disabled: '' === api\n }, (0,external_wp_i18n_.__)('Save', 'otter-blocks'))), (0,external_wp_element_.createElement)(\"div\", {\n className: \"components-placeholder__learn-more\"\n }, (0,external_wp_i18n_.__)('You need to activate Maps and Places API.', 'otter-blocks'), \" \", (0,external_wp_element_.createElement)(external_wp_components_.ExternalLink, {\n href: \"https://developers.google.com/maps/documentation/javascript/get-api-key\"\n }, (0,external_wp_i18n_.__)('Need an API key? Get one here.', 'otter-blocks'))));\n }\n};\n\n/* harmony default export */ var placeholder = (BlockPlaceholder);\n// EXTERNAL MODULE: external [\"wp\",\"blockEditor\"]\nvar external_wp_blockEditor_ = __webpack_require__(2175);\n// EXTERNAL MODULE: ./src/blocks/components/style-switcher-control/index.js\nvar style_switcher_control = __webpack_require__(5241);\n// EXTERNAL MODULE: external [\"wp\",\"compose\"]\nvar external_wp_compose_ = __webpack_require__(4333);\n;// CONCATENATED MODULE: ./src/blocks/blocks/google-maps/components/marker-editor.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\nconst MarkerEditor = ({\n value,\n onChange\n}) => {\n const instanceId = (0,external_wp_compose_.useInstanceId)(MarkerEditor);\n (0,external_wp_element_.useEffect)(() => {\n const settings = {\n classic_block_editor: true,\n // eslint-disable-line camelcase\n plugins: 'lists,media,paste,tabfocus,wordpress,wpautoresize,wpeditimage,wpgallery,wplink,wpdialogs,wptextpattern,wpview',\n toolbar1: 'formatselect,bold,italic,bullist,numlist,alignleft,aligncenter,alignright,link,unlink,spellchecker,wp_add_media'\n };\n window.wp.oldEditor.initialize(editorRef.current.id, {\n tinymce: { ...settings\n }\n });\n const editor = window.tinymce.get(editorRef.current.id);\n editor.on('change', () => onChange(editor.getContent()));\n return () => window.wp.oldEditor.remove(editorRef.current.id);\n }, []);\n const id = `inspector-textarea-control-${instanceId}`;\n const editorRef = (0,external_wp_element_.useRef)(null);\n\n const onChangeValue = e => onChange(e.target.value);\n\n return (0,external_wp_element_.createElement)(external_wp_components_.BaseControl, {\n id: id,\n label: (0,external_wp_i18n_.__)('Description', 'otter-blocks')\n }, (0,external_wp_element_.createElement)(\"textarea\", {\n id: id,\n className: \"components-textarea-control__input\",\n rows: 4,\n value: value,\n onChange: onChangeValue,\n ref: editorRef\n }));\n};\n\n/* harmony default export */ var marker_editor = (MarkerEditor);\n;// CONCATENATED MODULE: ./src/blocks/blocks/google-maps/components/marker.js\n\n\n/**\n * WordPress dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\nconst Marker = ({\n marker,\n isOpen,\n isPlaceAPIAvailable,\n openMarker,\n removeMarker,\n changeMarkerProp\n}) => {\n const searchRef = (0,external_wp_element_.useRef)(null);\n\n const initSearch = () => {\n const elements = document.getElementsByClassName('pac-container');\n Object.keys(elements).forEach(e => elements[e].remove());\n const searchBox = new window.google.maps.places.SearchBox(searchRef.current);\n searchBox.addListener('places_changed', () => {\n const places = searchBox.getPlaces();\n\n if (places && 0 < places.length) {\n places.forEach(place => {\n const location = place.formatted_address || place.name;\n const latitude = place.geometry.location.lat();\n const longitude = place.geometry.location.lng();\n changeMarkerProp(marker.id, 'location', location);\n changeMarkerProp(marker.id, 'latitude', latitude);\n changeMarkerProp(marker.id, 'longitude', longitude);\n });\n }\n });\n };\n\n return (0,external_wp_element_.createElement)(\"div\", {\n className: \"wp-block-themeisle-blocks-google-map-marker\"\n }, (0,external_wp_element_.createElement)(\"div\", {\n className: \"wp-block-themeisle-blocks-google-map-marker-title-area\"\n }, (0,external_wp_element_.createElement)(external_wp_components_.Button, {\n className: \"wp-block-themeisle-blocks-google-map-marker-title\",\n onClick: () => openMarker(marker.id)\n }, marker.title || (0,external_wp_i18n_.__)('Custom Marker', 'otter-blocks')), (0,external_wp_element_.createElement)(external_wp_components_.Button, {\n icon: \"no-alt\",\n label: (0,external_wp_i18n_.__)('Remove Marker', 'otter-blocks'),\n showTooltip: true,\n className: \"wp-block-themeisle-blocks-google-map-marker-remove\",\n onClick: () => removeMarker(marker.id)\n })), (0,external_wp_element_.createElement)(\"div\", {\n className: classnames_default()('wp-block-themeisle-blocks-google-map-marker-control-area', {\n 'opened': marker.id === isOpen\n })\n }, (0,external_wp_element_.createElement)(external_wp_components_.BaseControl, {\n label: (0,external_wp_i18n_.__)('Location', 'otter-blocks'),\n id: `themeisle-location-search-${marker.id}`\n }, (0,external_wp_element_.createElement)(\"input\", {\n type: \"text\",\n id: `themeisle-location-search-${marker.id}`,\n placeholder: (0,external_wp_i18n_.__)('Enter a location…', 'otter-blocks'),\n value: marker.location,\n className: \"wp-block-themeisle-blocks-google-map-search\",\n ref: searchRef,\n onFocus: initSearch,\n onChange: e => changeMarkerProp(marker.id, 'location', e.target.value),\n disabled: !isPlaceAPIAvailable\n }), !isPlaceAPIAvailable && (0,external_wp_element_.createElement)(\"p\", null, (0,external_wp_i18n_.__)('To enable locations earch, please ensure Places API is activated in the Google Developers Console.', 'otter-blocks') + ' ', (0,external_wp_element_.createElement)(external_wp_components_.ExternalLink, {\n href: \"https://developers.google.com/places/web-service/intro\"\n }, (0,external_wp_i18n_.__)('More info.', 'otter-blocks')))), (0,external_wp_element_.createElement)(external_wp_components_.TextControl, {\n label: (0,external_wp_i18n_.__)('Latitude', 'otter-blocks'),\n type: \"text\",\n value: marker.latitude,\n onChange: e => changeMarkerProp(marker.id, 'latitude', e)\n }), (0,external_wp_element_.createElement)(external_wp_components_.TextControl, {\n label: (0,external_wp_i18n_.__)('Longitude', 'otter-blocks'),\n type: \"text\",\n value: marker.longitude,\n onChange: e => changeMarkerProp(marker.id, 'longitude', e)\n }), (0,external_wp_element_.createElement)(external_wp_components_.SelectControl, {\n label: (0,external_wp_i18n_.__)('Map Icon', 'otter-blocks'),\n value: marker.icon || 'https://maps.google.com/mapfiles/ms/icons/red-dot.png',\n options: [{\n label: (0,external_wp_i18n_.__)('Red', 'otter-blocks'),\n value: 'https://maps.google.com/mapfiles/ms/icons/red-dot.png'\n }, {\n label: (0,external_wp_i18n_.__)('Blue', 'otter-blocks'),\n value: 'https://maps.google.com/mapfiles/ms/icons/blue-dot.png'\n }, {\n label: (0,external_wp_i18n_.__)('Yellow', 'otter-blocks'),\n value: 'https://maps.google.com/mapfiles/ms/icons/yellow-dot.png'\n }, {\n label: (0,external_wp_i18n_.__)('Green', 'otter-blocks'),\n value: 'https://maps.google.com/mapfiles/ms/icons/green-dot.png'\n }, {\n label: (0,external_wp_i18n_.__)('Orange', 'otter-blocks'),\n value: 'https://maps.google.com/mapfiles/ms/icons/orange-dot.png'\n }],\n onChange: e => changeMarkerProp(marker.id, 'icon', e)\n }), (0,external_wp_element_.createElement)(external_wp_components_.TextControl, {\n label: (0,external_wp_i18n_.__)('Title', 'otter-blocks'),\n type: \"text\",\n value: marker.title,\n onChange: e => changeMarkerProp(marker.id, 'title', e)\n }), (0,external_wp_element_.createElement)(marker_editor, {\n label: (0,external_wp_i18n_.__)('Description', 'otter-blocks'),\n type: \"text\",\n value: marker.description,\n onChange: e => changeMarkerProp(marker.id, 'description', e)\n })));\n};\n\n/* harmony default export */ var components_marker = (Marker);\n;// CONCATENATED MODULE: ./src/blocks/blocks/google-maps/components/marker-wrapper.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\nconst MarkerWrapper = ({\n initialOpen,\n markers,\n isPlaceAPIAvailable,\n addMarker,\n removeMarker,\n changeMarkerProp\n}) => {\n (0,external_wp_element_.useEffect)(() => {\n if (false !== initialOpen) {\n setOpen(initialOpen);\n }\n }, [initialOpen]);\n const [isOpen, setOpen] = (0,external_wp_element_.useState)(null);\n\n const openMarker = id => {\n if (isOpen === id) {\n id = null;\n }\n\n setOpen(id);\n };\n\n return (0,external_wp_element_.createElement)(external_wp_element_.Fragment, null, (0,external_wp_element_.createElement)(\"div\", {\n className: \"wp-block-themeisle-blocks-google-map-marker-group\"\n }, markers.map(marker => {\n return (0,external_wp_element_.createElement)(components_marker, {\n key: marker.id,\n marker: marker,\n isOpen: isOpen,\n isPlaceAPIAvailable: isPlaceAPIAvailable,\n openMarker: openMarker,\n removeMarker: removeMarker,\n changeMarkerProp: changeMarkerProp\n });\n })), (0,external_wp_element_.createElement)(external_wp_components_.Button, {\n isSecondary: true,\n isLarge: true,\n className: \"wp-block-themeisle-blocks-google-map-marker-add\",\n onClick: addMarker\n }, (0,external_wp_i18n_.__)('Add Marker', 'otter-blocks')));\n};\n\n/* harmony default export */ var marker_wrapper = (MarkerWrapper);\n;// CONCATENATED MODULE: ./src/blocks/blocks/google-maps/inspector.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n\nconst Inspector = ({\n attributes,\n setAttributes,\n map,\n changeStyle,\n isPlaceAPIAvailable,\n isMarkerOpen,\n setMarkerOpen,\n removeMarker,\n changeMarkerProp,\n addMarkerManual,\n api,\n isSaving,\n changeAPI,\n saveAPIKey\n}) => {\n const searchRef = (0,external_wp_element_.useRef)(null);\n\n const initSearch = () => {\n const elements = document.getElementsByClassName('pac-container');\n Object.keys(elements).forEach(e => elements[e].remove());\n const searchBox = new window.google.maps.places.SearchBox(searchRef.current);\n searchBox.addListener('places_changed', () => {\n const places = searchBox.getPlaces();\n\n if (places && 0 < places.length) {\n places.forEach(place => {\n const latitude = place.geometry.location.lat();\n const longitude = place.geometry.location.lng();\n const latLng = new window.google.maps.LatLng(latitude, longitude);\n map.setCenter(latLng);\n setAttributes({\n location: place.formatted_address || place.name,\n latitude: latitude.toString(),\n longitude: longitude.toString()\n });\n });\n }\n });\n };\n\n const changeLocation = value => {\n setAttributes({\n location: value.target.value\n });\n };\n\n const changeLatitude = value => {\n setAttributes({\n latitude: value.toString()\n });\n const latitude = Number(value);\n const longitude = attributes.longitude;\n const latLng = new window.google.maps.LatLng(latitude, longitude);\n map.setCenter(latLng);\n };\n\n const changeLongitude = value => {\n setAttributes({\n longitude: value.toString()\n });\n const latitude = attributes.latitude;\n const longitude = Number(value);\n const latLng = new window.google.maps.LatLng(latitude, longitude);\n map.setCenter(latLng);\n };\n\n const changeMapType = value => {\n setAttributes({\n type: value\n });\n map.setMapTypeId(window.google.maps.MapTypeId[value.toUpperCase()]);\n };\n\n const changeZoom = value => {\n setAttributes({\n zoom: value\n });\n map.setZoom(value);\n };\n\n const changeHeight = value => {\n setAttributes({\n height: value\n });\n };\n\n const toggleDraggable = () => {\n setAttributes({\n draggable: !attributes.draggable\n });\n };\n\n const toggleMapTypeControl = () => {\n setAttributes({\n mapTypeControl: !attributes.mapTypeControl\n });\n };\n\n const toggleZoomControl = () => {\n setAttributes({\n zoomControl: !attributes.zoomControl\n });\n };\n\n const toggleFullScreenControl = () => {\n setAttributes({\n fullscreenControl: !attributes.fullscreenControl\n });\n };\n\n const toggleStreetViewControl = () => {\n setAttributes({\n streetViewControl: !attributes.streetViewControl\n });\n };\n\n return (0,external_wp_element_.createElement)(external_wp_blockEditor_.InspectorControls, null, (0,external_wp_element_.createElement)(external_wp_components_.PanelBody, {\n title: (0,external_wp_i18n_.__)('Styles', 'otter-blocks'),\n initialOpen: false\n }, (0,external_wp_element_.createElement)(style_switcher_control/* StyleSwitcherInspectorControl */.V, {\n value: attributes.style,\n options: [{\n label: (0,external_wp_i18n_.__)('Standard', 'otter-blocks'),\n value: 'standard',\n image: window.themeisleGutenberg.assetsPath + '/icons/map-standard.png'\n }, {\n label: (0,external_wp_i18n_.__)('Silver', 'otter-blocks'),\n value: 'silver',\n image: window.themeisleGutenberg.assetsPath + '/icons/map-silver.png'\n }, {\n label: (0,external_wp_i18n_.__)('Retro', 'otter-blocks'),\n value: 'retro',\n image: window.themeisleGutenberg.assetsPath + '/icons/map-retro.png'\n }, {\n label: (0,external_wp_i18n_.__)('Dark', 'otter-blocks'),\n value: 'dark',\n image: window.themeisleGutenberg.assetsPath + '/icons/map-dark.png'\n }, {\n label: (0,external_wp_i18n_.__)('Night', 'otter-blocks'),\n value: 'night',\n image: window.themeisleGutenberg.assetsPath + '/icons/map-night.png'\n }, {\n label: (0,external_wp_i18n_.__)('Aubergine', 'otter-blocks'),\n value: 'aubergine',\n image: window.themeisleGutenberg.assetsPath + '/icons/map-aubergine.png'\n }],\n onChange: changeStyle\n })), (0,external_wp_element_.createElement)(external_wp_components_.PanelBody, {\n title: (0,external_wp_i18n_.__)('Location', 'otter-blocks')\n }, (0,external_wp_element_.createElement)(external_wp_components_.BaseControl, {\n label: (0,external_wp_i18n_.__)('Location'),\n id: \"wp-block-themeisle-blocks-google-map-search\"\n }, (0,external_wp_element_.createElement)(\"input\", {\n type: \"text\",\n id: \"wp-block-themeisle-blocks-google-map-search\",\n placeholder: (0,external_wp_i18n_.__)('Enter a location…', 'otter-blocks'),\n value: attributes.location,\n className: \"wp-block-themeisle-blocks-google-map-search\",\n ref: searchRef,\n onFocus: initSearch,\n onChange: changeLocation,\n disabled: !isPlaceAPIAvailable\n }), !isPlaceAPIAvailable && (0,external_wp_element_.createElement)(\"p\", null, (0,external_wp_i18n_.__)('To enable locations earch, please ensure Places API is activated in the Google Developers Console.', 'otter-blocks') + ' ', (0,external_wp_element_.createElement)(external_wp_components_.ExternalLink, {\n href: \"https://developers.google.com/places/web-service/intro\"\n }, (0,external_wp_i18n_.__)('More info.', 'otter-blocks')))), (0,external_wp_element_.createElement)(external_wp_components_.TextControl, {\n label: (0,external_wp_i18n_.__)('Latitude', 'otter-blocks'),\n type: \"text\",\n placeholder: (0,external_wp_i18n_.__)('Enter latitude…', 'otter-blocks'),\n value: attributes.latitude,\n onChange: changeLatitude\n }), (0,external_wp_element_.createElement)(external_wp_components_.TextControl, {\n label: (0,external_wp_i18n_.__)('Longitude', 'otter-blocks'),\n type: \"text\",\n placeholder: (0,external_wp_i18n_.__)('Enter longitude', 'otter-blocks'),\n value: attributes.longitude,\n onChange: changeLongitude\n })), (0,external_wp_element_.createElement)(external_wp_components_.PanelBody, {\n title: (0,external_wp_i18n_.__)('Positioning & Zooming', 'otter-blocks'),\n initialOpen: false\n }, (0,external_wp_element_.createElement)(external_wp_components_.SelectControl, {\n label: (0,external_wp_i18n_.__)('Map Type', 'otter-blocks'),\n value: attributes.type,\n options: [{\n label: (0,external_wp_i18n_.__)('Road Map', 'otter-blocks'),\n value: 'roadmap'\n }, {\n label: (0,external_wp_i18n_.__)('Satellite View', 'otter-blocks'),\n value: 'satellite'\n }, {\n label: (0,external_wp_i18n_.__)('Hybrid', 'otter-blocks'),\n value: 'hybrid'\n }, {\n label: (0,external_wp_i18n_.__)('Terrain', 'otter-blocks'),\n value: 'terrain'\n }],\n onChange: changeMapType\n }), (0,external_wp_element_.createElement)(external_wp_components_.RangeControl, {\n label: (0,external_wp_i18n_.__)('Map Zoom Level', 'otter-blocks'),\n value: attributes.zoom,\n onChange: changeZoom,\n min: 0,\n max: 20\n }), (0,external_wp_element_.createElement)(external_wp_components_.RangeControl, {\n label: (0,external_wp_i18n_.__)('Map Height', 'otter-blocks'),\n value: attributes.height,\n onChange: changeHeight,\n min: 100,\n max: 1400\n })), (0,external_wp_element_.createElement)(external_wp_components_.PanelBody, {\n title: (0,external_wp_i18n_.__)('Controls', 'otter-blocks'),\n initialOpen: false\n }, (0,external_wp_element_.createElement)(external_wp_components_.BaseControl, null, (0,external_wp_i18n_.__)('The following changes will not affect block preview during the editing process. You can click outside the block to see the changes take effect.', 'otter-blocks')), (0,external_wp_element_.createElement)(external_wp_components_.ToggleControl, {\n label: (0,external_wp_i18n_.__)('Draggable Map', 'otter-blocks'),\n checked: attributes.draggable,\n onChange: toggleDraggable\n }), (0,external_wp_element_.createElement)(external_wp_components_.ToggleControl, {\n label: (0,external_wp_i18n_.__)('Map Type Control', 'otter-blocks'),\n checked: attributes.mapTypeControl,\n onChange: toggleMapTypeControl\n }), (0,external_wp_element_.createElement)(external_wp_components_.ToggleControl, {\n label: (0,external_wp_i18n_.__)('Zoom Control', 'otter-blocks'),\n checked: attributes.zoomControl,\n onChange: toggleZoomControl\n }), (0,external_wp_element_.createElement)(external_wp_components_.ToggleControl, {\n label: (0,external_wp_i18n_.__)('Full Screen Control', 'otter-blocks'),\n checked: attributes.fullscreenControl,\n onChange: toggleFullScreenControl\n }), (0,external_wp_element_.createElement)(external_wp_components_.ToggleControl, {\n label: (0,external_wp_i18n_.__)('Streen View Control', 'otter-blocks'),\n checked: attributes.streetViewControl,\n onChange: toggleStreetViewControl\n })), (0,external_wp_element_.createElement)(external_wp_components_.PanelBody, {\n title: (0,external_wp_i18n_.__)('Markers', 'otter-blocks'),\n initialOpen: false,\n opened: false !== isMarkerOpen ? true : undefined,\n onToggle: () => {\n if (false !== isMarkerOpen) {\n setMarkerOpen(true);\n }\n }\n }, (0,external_wp_element_.createElement)(marker_wrapper, {\n markers: attributes.markers,\n removeMarker: removeMarker,\n changeMarkerProp: changeMarkerProp,\n addMarker: addMarkerManual,\n isPlaceAPIAvailable: isPlaceAPIAvailable,\n initialOpen: isMarkerOpen\n })), (0,external_wp_element_.createElement)(external_wp_components_.PanelBody, {\n title: (0,external_wp_i18n_.__)('Global Settings', 'otter-blocks'),\n initialOpen: false\n }, (0,external_wp_element_.createElement)(external_wp_components_.TextControl, {\n label: (0,external_wp_i18n_.__)('Google Maps API Key', 'otter-blocks'),\n type: \"text\",\n placeholder: (0,external_wp_i18n_.__)('Google Maps API Key', 'otter-blocks'),\n value: api,\n className: \"components-placeholder__input\",\n onChange: changeAPI,\n help: (0,external_wp_i18n_.__)('Changing the API key effects all Google Map Embed blocks. You will have to refresh the page after changing your API keys.', 'otter-blocks')\n }), (0,external_wp_element_.createElement)(external_wp_components_.Button, {\n isLarge: true,\n isSecondary: true,\n type: \"submit\",\n onClick: saveAPIKey,\n isBusy: isSaving\n }, (0,external_wp_i18n_.__)('Save API Key', 'otter-blocks'))));\n};\n\n/* harmony default export */ var inspector = (Inspector);\n;// CONCATENATED MODULE: ./src/blocks/blocks/google-maps/components/marker-modal.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\nconst MarkerModal = ({\n marker,\n isAdvanced,\n isPlaceAPIAvailable,\n addMarker,\n close\n}) => {\n (0,external_wp_element_.useEffect)(() => {\n setID(marker.id);\n setLocation(marker.location);\n setTitle(marker.title);\n setIcon(marker.icon);\n setDescription(marker.description);\n setLatitude(marker.latitude);\n setLongitude(marker.longitude);\n }, [marker]);\n const searchRef = (0,external_wp_element_.useRef)(null);\n const [id, setID] = (0,external_wp_element_.useState)(marker.id);\n const [location, setLocation] = (0,external_wp_element_.useState)(marker.location);\n const [title, setTitle] = (0,external_wp_element_.useState)(marker.title);\n const [icon, setIcon] = (0,external_wp_element_.useState)(marker.icon);\n const [description, setDescription] = (0,external_wp_element_.useState)(marker.description);\n const [latitude, setLatitude] = (0,external_wp_element_.useState)(marker.latitude);\n const [longitude, setLongitude] = (0,external_wp_element_.useState)(marker.longitude);\n\n const initSearch = () => {\n const elements = document.getElementsByClassName('pac-container');\n Object.keys(elements).forEach(e => elements[e].remove());\n const searchBox = new window.google.maps.places.SearchBox(searchRef.current);\n searchBox.addListener('places_changed', () => {\n const places = searchBox.getPlaces();\n\n if (places && 0 < places.length) {\n places.forEach(place => {\n const location = place.formatted_address || place.name;\n const latitude = place.geometry.location.lat();\n const longitude = place.geometry.location.lng();\n setLocation(location);\n setLatitude(latitude);\n setLongitude(longitude);\n });\n }\n });\n };\n\n return (0,external_wp_element_.createElement)(external_wp_components_.Modal, {\n title: (0,external_wp_i18n_.__)('Add Marker', 'otter-blocks'),\n onRequestClose: close,\n shouldCloseOnClickOutside: false\n }, isAdvanced && (0,external_wp_element_.createElement)(external_wp_element_.Fragment, null, (0,external_wp_element_.createElement)(external_wp_components_.BaseControl, {\n label: (0,external_wp_i18n_.__)('Location', 'otter-blocks'),\n id: `themeisle-location-search-${marker.id}`\n }, (0,external_wp_element_.createElement)(\"input\", {\n type: \"text\",\n id: `themeisle-location-search-${id}`,\n placeholder: (0,external_wp_i18n_.__)('Enter a location…', 'otter-blocks'),\n value: location,\n className: \"wp-block-themeisle-blocks-google-map-search\",\n ref: searchRef,\n onFocus: initSearch,\n onChange: e => setLocation(e.target.value),\n disabled: !isPlaceAPIAvailable\n })), (0,external_wp_element_.createElement)(external_wp_components_.TextControl, {\n label: (0,external_wp_i18n_.__)('Latitude', 'otter-blocks'),\n type: \"text\",\n value: latitude,\n onChange: setLatitude\n }), (0,external_wp_element_.createElement)(external_wp_components_.TextControl, {\n label: (0,external_wp_i18n_.__)('Longitude', 'otter-blocks'),\n type: \"text\",\n value: longitude,\n onChange: setLongitude\n })), (0,external_wp_element_.createElement)(external_wp_components_.TextControl, {\n label: (0,external_wp_i18n_.__)('Title', 'otter-blocks'),\n type: \"text\",\n value: title,\n onChange: setTitle\n }), (0,external_wp_element_.createElement)(marker_editor, {\n label: (0,external_wp_i18n_.__)('Description', 'otter-blocks'),\n type: \"text\",\n value: description,\n onChange: setDescription\n }), (0,external_wp_element_.createElement)(external_wp_components_.SelectControl, {\n label: (0,external_wp_i18n_.__)('Map Icon', 'otter-blocks'),\n value: icon || 'https://maps.google.com/mapfiles/ms/icons/red-dot.png',\n options: [{\n label: (0,external_wp_i18n_.__)('Red', 'otter-blocks'),\n value: 'https://maps.google.com/mapfiles/ms/icons/red-dot.png'\n }, {\n label: (0,external_wp_i18n_.__)('Blue', 'otter-blocks'),\n value: 'https://maps.google.com/mapfiles/ms/icons/blue-dot.png'\n }, {\n label: (0,external_wp_i18n_.__)('Yellow', 'otter-blocks'),\n value: 'https://maps.google.com/mapfiles/ms/icons/yellow-dot.png'\n }, {\n label: (0,external_wp_i18n_.__)('Green', 'otter-blocks'),\n value: 'https://maps.google.com/mapfiles/ms/icons/green-dot.png'\n }, {\n label: (0,external_wp_i18n_.__)('Orange', 'otter-blocks'),\n value: 'https://maps.google.com/mapfiles/ms/icons/orange-dot.png'\n }],\n onChange: setIcon\n }), (0,external_wp_element_.createElement)(external_wp_components_.ButtonGroup, null, (0,external_wp_element_.createElement)(external_wp_components_.Button, {\n isLarge: true,\n isPrimary: true,\n onClick: () => addMarker(location, title, icon, description, latitude, longitude)\n }, (0,external_wp_i18n_.__)('Add', 'otter-blocks')), (0,external_wp_element_.createElement)(external_wp_components_.Button, {\n isLarge: true,\n isSecondary: true,\n onClick: close\n }, (0,external_wp_i18n_.__)('Cancel', 'otter-blocks'))));\n};\n\n/* harmony default export */ var marker_modal = (MarkerModal);\n;// CONCATENATED MODULE: ./src/blocks/blocks/google-maps/components/map.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\nconst Map = ({\n attributes,\n className,\n initMap,\n displayMap,\n isMapLoaded,\n selectMarker,\n isSelectingMarker\n}) => {\n (0,external_wp_element_.useEffect)(() => {\n if (displayMap) {\n initMap();\n }\n }, [displayMap]);\n return (0,external_wp_element_.createElement)(external_wp_element_.Fragment, null, (0,external_wp_element_.createElement)(\"div\", {\n id: attributes.id,\n className: classnames_default()(className, {\n 'is-selecting-marker': isSelectingMarker\n }),\n style: {\n height: attributes.height + 'px'\n }\n }), isMapLoaded && (0,external_wp_element_.createElement)(external_wp_components_.Button, {\n className: \"wp-block-themeisle-blocks-google-map-marker-button\",\n title: (0,external_wp_i18n_.__)('Add Button', 'otter-blocks'),\n onClick: selectMarker\n }, (0,external_wp_element_.createElement)(\"span\", {\n className: \"dashicons dashicons-sticky\"\n })));\n};\n\n/* harmony default export */ var map = (Map);\n;// CONCATENATED MODULE: ./src/blocks/blocks/google-maps/components/styles.js\nconst styles = {\n standard: [],\n silver: [{\n 'elementType': 'geometry',\n 'stylers': [{\n 'color': '#f5f5f5'\n }]\n }, {\n 'elementType': 'labels.icon',\n 'stylers': [{\n 'visibility': 'off'\n }]\n }, {\n 'elementType': 'labels.text.fill',\n 'stylers': [{\n 'color': '#616161'\n }]\n }, {\n 'elementType': 'labels.text.stroke',\n 'stylers': [{\n 'color': '#f5f5f5'\n }]\n }, {\n 'featureType': 'administrative.land_parcel',\n 'elementType': 'labels.text.fill',\n 'stylers': [{\n 'color': '#bdbdbd'\n }]\n }, {\n 'featureType': 'poi',\n 'elementType': 'geometry',\n 'stylers': [{\n 'color': '#eeeeee'\n }]\n }, {\n 'featureType': 'poi',\n 'elementType': 'labels.text.fill',\n 'stylers': [{\n 'color': '#757575'\n }]\n }, {\n 'featureType': 'poi.park',\n 'elementType': 'geometry',\n 'stylers': [{\n 'color': '#e5e5e5'\n }]\n }, {\n 'featureType': 'poi.park',\n 'elementType': 'labels.text.fill',\n 'stylers': [{\n 'color': '#9e9e9e'\n }]\n }, {\n 'featureType': 'road',\n 'elementType': 'geometry',\n 'stylers': [{\n 'color': '#ffffff'\n }]\n }, {\n 'featureType': 'road.arterial',\n 'elementType': 'labels.text.fill',\n 'stylers': [{\n 'color': '#757575'\n }]\n }, {\n 'featureType': 'road.highway',\n 'elementType': 'geometry',\n 'stylers': [{\n 'color': '#dadada'\n }]\n }, {\n 'featureType': 'road.highway',\n 'elementType': 'labels.text.fill',\n 'stylers': [{\n 'color': '#616161'\n }]\n }, {\n 'featureType': 'road.local',\n 'elementType': 'labels.text.fill',\n 'stylers': [{\n 'color': '#9e9e9e'\n }]\n }, {\n 'featureType': 'transit.line',\n 'elementType': 'geometry',\n 'stylers': [{\n 'color': '#e5e5e5'\n }]\n }, {\n 'featureType': 'transit.station',\n 'elementType': 'geometry',\n 'stylers': [{\n 'color': '#eeeeee'\n }]\n }, {\n 'featureType': 'water',\n 'elementType': 'geometry',\n 'stylers': [{\n 'color': '#c9c9c9'\n }]\n }, {\n 'featureType': 'water',\n 'elementType': 'labels.text.fill',\n 'stylers': [{\n 'color': '#9e9e9e'\n }]\n }],\n retro: [{\n 'elementType': 'geometry',\n 'stylers': [{\n 'color': '#ebe3cd'\n }]\n }, {\n 'elementType': 'labels.text.fill',\n 'stylers': [{\n 'color': '#523735'\n }]\n }, {\n 'elementType': 'labels.text.stroke',\n 'stylers': [{\n 'color': '#f5f1e6'\n }]\n }, {\n 'featureType': 'administrative',\n 'elementType': 'geometry.stroke',\n 'stylers': [{\n 'color': '#c9b2a6'\n }]\n }, {\n 'featureType': 'administrative.land_parcel',\n 'elementType': 'geometry.stroke',\n 'stylers': [{\n 'color': '#dcd2be'\n }]\n }, {\n 'featureType': 'administrative.land_parcel',\n 'elementType': 'labels.text.fill',\n 'stylers': [{\n 'color': '#ae9e90'\n }]\n }, {\n 'featureType': 'landscape.natural',\n 'elementType': 'geometry',\n 'stylers': [{\n 'color': '#dfd2ae'\n }]\n }, {\n 'featureType': 'poi',\n 'elementType': 'geometry',\n 'stylers': [{\n 'color': '#dfd2ae'\n }]\n }, {\n 'featureType': 'poi',\n 'elementType': 'labels.text.fill',\n 'stylers': [{\n 'color': '#93817c'\n }]\n }, {\n 'featureType': 'poi.park',\n 'elementType': 'geometry.fill',\n 'stylers': [{\n 'color': '#a5b076'\n }]\n }, {\n 'featureType': 'poi.park',\n 'elementType': 'labels.text.fill',\n 'stylers': [{\n 'color': '#447530'\n }]\n }, {\n 'featureType': 'road',\n 'elementType': 'geometry',\n 'stylers': [{\n 'color': '#f5f1e6'\n }]\n }, {\n 'featureType': 'road.arterial',\n 'elementType': 'geometry',\n 'stylers': [{\n 'color': '#fdfcf8'\n }]\n }, {\n 'featureType': 'road.highway',\n 'elementType': 'geometry',\n 'stylers': [{\n 'color': '#f8c967'\n }]\n }, {\n 'featureType': 'road.highway',\n 'elementType': 'geometry.stroke',\n 'stylers': [{\n 'color': '#e9bc62'\n }]\n }, {\n 'featureType': 'road.highway.controlled_access',\n 'elementType': 'geometry',\n 'stylers': [{\n 'color': '#e98d58'\n }]\n }, {\n 'featureType': 'road.highway.controlled_access',\n 'elementType': 'geometry.stroke',\n 'stylers': [{\n 'color': '#db8555'\n }]\n }, {\n 'featureType': 'road.local',\n 'elementType': 'labels.text.fill',\n 'stylers': [{\n 'color': '#806b63'\n }]\n }, {\n 'featureType': 'transit.line',\n 'elementType': 'geometry',\n 'stylers': [{\n 'color': '#dfd2ae'\n }]\n }, {\n 'featureType': 'transit.line',\n 'elementType': 'labels.text.fill',\n 'stylers': [{\n 'color': '#8f7d77'\n }]\n }, {\n 'featureType': 'transit.line',\n 'elementType': 'labels.text.stroke',\n 'stylers': [{\n 'color': '#ebe3cd'\n }]\n }, {\n 'featureType': 'transit.station',\n 'elementType': 'geometry',\n 'stylers': [{\n 'color': '#dfd2ae'\n }]\n }, {\n 'featureType': 'water',\n 'elementType': 'geometry.fill',\n 'stylers': [{\n 'color': '#b9d3c2'\n }]\n }, {\n 'featureType': 'water',\n 'elementType': 'labels.text.fill',\n 'stylers': [{\n 'color': '#92998d'\n }]\n }],\n dark: [{\n 'elementType': 'geometry',\n 'stylers': [{\n 'color': '#212121'\n }]\n }, {\n 'elementType': 'labels.icon',\n 'stylers': [{\n 'visibility': 'off'\n }]\n }, {\n 'elementType': 'labels.text.fill',\n 'stylers': [{\n 'color': '#757575'\n }]\n }, {\n 'elementType': 'labels.text.stroke',\n 'stylers': [{\n 'color': '#212121'\n }]\n }, {\n 'featureType': 'administrative',\n 'elementType': 'geometry',\n 'stylers': [{\n 'color': '#757575'\n }]\n }, {\n 'featureType': 'administrative.country',\n 'elementType': 'labels.text.fill',\n 'stylers': [{\n 'color': '#9e9e9e'\n }]\n }, {\n 'featureType': 'administrative.land_parcel',\n 'stylers': [{\n 'visibility': 'off'\n }]\n }, {\n 'featureType': 'administrative.locality',\n 'elementType': 'labels.text.fill',\n 'stylers': [{\n 'color': '#bdbdbd'\n }]\n }, {\n 'featureType': 'poi',\n 'elementType': 'labels.text.fill',\n 'stylers': [{\n 'color': '#757575'\n }]\n }, {\n 'featureType': 'poi.park',\n 'elementType': 'geometry',\n 'stylers': [{\n 'color': '#181818'\n }]\n }, {\n 'featureType': 'poi.park',\n 'elementType': 'labels.text.fill',\n 'stylers': [{\n 'color': '#616161'\n }]\n }, {\n 'featureType': 'poi.park',\n 'elementType': 'labels.text.stroke',\n 'stylers': [{\n 'color': '#1b1b1b'\n }]\n }, {\n 'featureType': 'road',\n 'elementType': 'geometry.fill',\n 'stylers': [{\n 'color': '#2c2c2c'\n }]\n }, {\n 'featureType': 'road',\n 'elementType': 'labels.text.fill',\n 'stylers': [{\n 'color': '#8a8a8a'\n }]\n }, {\n 'featureType': 'road.arterial',\n 'elementType': 'geometry',\n 'stylers': [{\n 'color': '#373737'\n }]\n }, {\n 'featureType': 'road.highway',\n 'elementType': 'geometry',\n 'stylers': [{\n 'color': '#3c3c3c'\n }]\n }, {\n 'featureType': 'road.highway.controlled_access',\n 'elementType': 'geometry',\n 'stylers': [{\n 'color': '#4e4e4e'\n }]\n }, {\n 'featureType': 'road.local',\n 'elementType': 'labels.text.fill',\n 'stylers': [{\n 'color': '#616161'\n }]\n }, {\n 'featureType': 'transit',\n 'elementType': 'labels.text.fill',\n 'stylers': [{\n 'color': '#757575'\n }]\n }, {\n 'featureType': 'water',\n 'elementType': 'geometry',\n 'stylers': [{\n 'color': '#000000'\n }]\n }, {\n 'featureType': 'water',\n 'elementType': 'labels.text.fill',\n 'stylers': [{\n 'color': '#3d3d3d'\n }]\n }],\n night: [{\n 'elementType': 'geometry',\n 'stylers': [{\n 'color': '#242f3e'\n }]\n }, {\n 'elementType': 'labels.text.fill',\n 'stylers': [{\n 'color': '#746855'\n }]\n }, {\n 'elementType': 'labels.text.stroke',\n 'stylers': [{\n 'color': '#242f3e'\n }]\n }, {\n 'featureType': 'administrative.locality',\n 'elementType': 'labels.text.fill',\n 'stylers': [{\n 'color': '#d59563'\n }]\n }, {\n 'featureType': 'poi',\n 'elementType': 'labels.text.fill',\n 'stylers': [{\n 'color': '#d59563'\n }]\n }, {\n 'featureType': 'poi.park',\n 'elementType': 'geometry',\n 'stylers': [{\n 'color': '#263c3f'\n }]\n }, {\n 'featureType': 'poi.park',\n 'elementType': 'labels.text.fill',\n 'stylers': [{\n 'color': '#6b9a76'\n }]\n }, {\n 'featureType': 'road',\n 'elementType': 'geometry',\n 'stylers': [{\n 'color': '#38414e'\n }]\n }, {\n 'featureType': 'road',\n 'elementType': 'geometry.stroke',\n 'stylers': [{\n 'color': '#212a37'\n }]\n }, {\n 'featureType': 'road',\n 'elementType': 'labels.text.fill',\n 'stylers': [{\n 'color': '#9ca5b3'\n }]\n }, {\n 'featureType': 'road.highway',\n 'elementType': 'geometry',\n 'stylers': [{\n 'color': '#746855'\n }]\n }, {\n 'featureType': 'road.highway',\n 'elementType': 'geometry.stroke',\n 'stylers': [{\n 'color': '#1f2835'\n }]\n }, {\n 'featureType': 'road.highway',\n 'elementType': 'labels.text.fill',\n 'stylers': [{\n 'color': '#f3d19c'\n }]\n }, {\n 'featureType': 'transit',\n 'elementType': 'geometry',\n 'stylers': [{\n 'color': '#2f3948'\n }]\n }, {\n 'featureType': 'transit.station',\n 'elementType': 'labels.text.fill',\n 'stylers': [{\n 'color': '#d59563'\n }]\n }, {\n 'featureType': 'water',\n 'elementType': 'geometry',\n 'stylers': [{\n 'color': '#17263c'\n }]\n }, {\n 'featureType': 'water',\n 'elementType': 'labels.text.fill',\n 'stylers': [{\n 'color': '#515c6d'\n }]\n }, {\n 'featureType': 'water',\n 'elementType': 'labels.text.stroke',\n 'stylers': [{\n 'color': '#17263c'\n }]\n }],\n aubergine: [{\n 'elementType': 'geometry',\n 'stylers': [{\n 'color': '#1d2c4d'\n }]\n }, {\n 'elementType': 'labels.text.fill',\n 'stylers': [{\n 'color': '#8ec3b9'\n }]\n }, {\n 'elementType': 'labels.text.stroke',\n 'stylers': [{\n 'color': '#1a3646'\n }]\n }, {\n 'featureType': 'administrative.country',\n 'elementType': 'geometry.stroke',\n 'stylers': [{\n 'color': '#4b6878'\n }]\n }, {\n 'featureType': 'administrative.land_parcel',\n 'elementType': 'labels.text.fill',\n 'stylers': [{\n 'color': '#64779e'\n }]\n }, {\n 'featureType': 'administrative.province',\n 'elementType': 'geometry.stroke',\n 'stylers': [{\n 'color': '#4b6878'\n }]\n }, {\n 'featureType': 'landscape.man_made',\n 'elementType': 'geometry.stroke',\n 'stylers': [{\n 'color': '#334e87'\n }]\n }, {\n 'featureType': 'landscape.natural',\n 'elementType': 'geometry',\n 'stylers': [{\n 'color': '#023e58'\n }]\n }, {\n 'featureType': 'poi',\n 'elementType': 'geometry',\n 'stylers': [{\n 'color': '#283d6a'\n }]\n }, {\n 'featureType': 'poi',\n 'elementType': 'labels.text.fill',\n 'stylers': [{\n 'color': '#6f9ba5'\n }]\n }, {\n 'featureType': 'poi',\n 'elementType': 'labels.text.stroke',\n 'stylers': [{\n 'color': '#1d2c4d'\n }]\n }, {\n 'featureType': 'poi.park',\n 'elementType': 'geometry.fill',\n 'stylers': [{\n 'color': '#023e58'\n }]\n }, {\n 'featureType': 'poi.park',\n 'elementType': 'labels.text.fill',\n 'stylers': [{\n 'color': '#3C7680'\n }]\n }, {\n 'featureType': 'road',\n 'elementType': 'geometry',\n 'stylers': [{\n 'color': '#304a7d'\n }]\n }, {\n 'featureType': 'road',\n 'elementType': 'labels.text.fill',\n 'stylers': [{\n 'color': '#98a5be'\n }]\n }, {\n 'featureType': 'road',\n 'elementType': 'labels.text.stroke',\n 'stylers': [{\n 'color': '#1d2c4d'\n }]\n }, {\n 'featureType': 'road.highway',\n 'elementType': 'geometry',\n 'stylers': [{\n 'color': '#2c6675'\n }]\n }, {\n 'featureType': 'road.highway',\n 'elementType': 'geometry.stroke',\n 'stylers': [{\n 'color': '#255763'\n }]\n }, {\n 'featureType': 'road.highway',\n 'elementType': 'labels.text.fill',\n 'stylers': [{\n 'color': '#b0d5ce'\n }]\n }, {\n 'featureType': 'road.highway',\n 'elementType': 'labels.text.stroke',\n 'stylers': [{\n 'color': '#023e58'\n }]\n }, {\n 'featureType': 'transit',\n 'elementType': 'labels.text.fill',\n 'stylers': [{\n 'color': '#98a5be'\n }]\n }, {\n 'featureType': 'transit',\n 'elementType': 'labels.text.stroke',\n 'stylers': [{\n 'color': '#1d2c4d'\n }]\n }, {\n 'featureType': 'transit.line',\n 'elementType': 'geometry.fill',\n 'stylers': [{\n 'color': '#283d6a'\n }]\n }, {\n 'featureType': 'transit.station',\n 'elementType': 'geometry',\n 'stylers': [{\n 'color': '#3a4762'\n }]\n }, {\n 'featureType': 'water',\n 'elementType': 'geometry',\n 'stylers': [{\n 'color': '#0e1626'\n }]\n }, {\n 'featureType': 'water',\n 'elementType': 'labels.text.fill',\n 'stylers': [{\n 'color': '#4e6d70'\n }]\n }]\n};\n/* harmony default export */ var components_styles = (styles);\n// EXTERNAL MODULE: ./src/blocks/helpers/block-utility.js\nvar block_utility = __webpack_require__(5225);\n;// CONCATENATED MODULE: ./src/blocks/blocks/google-maps/edit.js\n\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\n\n\n\n\nconst Edit = ({\n attributes,\n setAttributes,\n className,\n clientId,\n isSelected,\n toggleSelection\n}) => {\n (0,external_wp_element_.useEffect)(() => {\n const unsubscribe = (0,block_utility/* blockInit */.WX)(clientId, google_maps_attributes);\n return () => unsubscribe(attributes.id);\n }, [attributes.id]);\n (0,external_wp_element_.useEffect)(() => {\n const setApi = async () => {\n await window.wp.api.loadPromise.then(() => {\n settingsRef.current = new window.wp.api.models.Settings();\n });\n\n if (false === Boolean(window.themeisleGutenberg.mapsAPI)) {\n if (!isAPILoaded) {\n settingsRef.current.fetch().then(response => {\n setAPI(response.themeisle_google_map_block_api_key);\n setAPILoaded(true);\n\n if ('' !== response.themeisle_google_map_block_api_key) {\n setAPISaved(true);\n enqueueScript(response.themeisle_google_map_block_api_key);\n }\n });\n }\n } else if (!isAPILoaded) {\n setAPI(window.themeisleGutenberg.mapsAPI);\n setAPILoaded(true);\n setAPISaved(true);\n enqueueScript(window.themeisleGutenberg.mapsAPI);\n }\n };\n\n setApi();\n window.isMapLoaded = window.isMapLoaded || false;\n window[`removeMarker_${clientId.substr(0, 8)}`] = removeMarker;\n linkRef.current = document.createElement('script');\n linkRef.current.type = 'text/javascript';\n linkRef.current.async = true;\n linkRef.current.defer = true;\n linkRef.current.id = 'themeisle-google-map-api-loading';\n }, []);\n (0,external_wp_element_.useEffect)(() => {\n if (false !== isAPISaved && undefined !== window.google) {\n mapRef.current.setOptions({\n mapTypeControl: isSelected ? true : attributes.mapTypeControl,\n zoomControl: isSelected ? true : attributes.zoomControl,\n fullscreenControl: isSelected ? true : attributes.fullscreenControl,\n streetViewControl: isSelected ? true : attributes.streetViewControl\n });\n }\n }, [isSelected]);\n (0,external_wp_element_.useEffect)(() => {\n markersAttrRef.current = [...attributes.markers];\n }, [attributes.markers]);\n const markersRef = (0,external_wp_element_.useRef)([]);\n const settingsRef = (0,external_wp_element_.useRef)(null);\n const linkRef = (0,external_wp_element_.useRef)(null);\n const mapRef = (0,external_wp_element_.useRef)(null);\n const lastInfoWindowRef = (0,external_wp_element_.useRef)(null);\n const markersAttrRef = (0,external_wp_element_.useRef)([...attributes.markers]);\n const [api, setAPI] = (0,external_wp_element_.useState)('');\n const [isAPILoaded, setAPILoaded] = (0,external_wp_element_.useState)(false);\n const [isAPISaved, setAPISaved] = (0,external_wp_element_.useState)(false);\n const [isMapLoaded, setMapLoaded] = (0,external_wp_element_.useState)(false);\n const [isSaving, setSaving] = (0,external_wp_element_.useState)(false);\n const [isPlaceAPIAvailable, setPlaceAPIAvailable] = (0,external_wp_element_.useState)(true);\n const [displayMap, setDisplayMap] = (0,external_wp_element_.useState)(false);\n const [isMarkerOpen, setMarkerOpen] = (0,external_wp_element_.useState)(false);\n const [isSelectingMarker, setSelectingMarker] = (0,external_wp_element_.useState)(false);\n const [isModalOpen, setModalOpen] = (0,external_wp_element_.useState)(false);\n const [isAdvanced, setAdvanced] = (0,external_wp_element_.useState)(false);\n const [selectedMarker, setSelectedMarker] = (0,external_wp_element_.useState)({});\n\n const enqueueScript = api => {\n if (!window.isMapLoaded) {\n window.isMapLoaded = true;\n\n linkRef.current.onload = () => {\n const script = document.getElementById('themeisle-google-map-api-loading');\n script.id = 'themeisle-google-map-api';\n setDisplayMap(true);\n };\n\n linkRef.current.src = `https://maps.googleapis.com/maps/api/js?key=${api}&libraries=places&cache=${Math.random()}`;\n document.head.appendChild(linkRef.current);\n }\n\n const loaded = document.getElementById('themeisle-google-map-api');\n\n if (loaded) {\n setDisplayMap(true);\n }\n };\n\n const initMap = () => {\n mapRef.current = new window.google.maps.Map(document.getElementById(attributes.id), {\n center: {\n lat: Number(attributes.latitude) || 41.4036299,\n lng: Number(attributes.longitude) || 2.1743558000000576\n },\n gestureHandling: 'cooperative',\n zoom: attributes.zoom,\n mapTypeId: attributes.type,\n styles: components_styles[attributes.style]\n });\n\n if (attributes.location && undefined === attributes.latitude && undefined === attributes.longitude) {\n const request = {\n query: attributes.location,\n fields: ['name', 'geometry']\n };\n const service = new window.google.maps.places.PlacesService(mapRef.current);\n service.findPlaceFromQuery(request, (results, status) => {\n if (status === window.google.maps.places.PlacesServiceStatus.OK) {\n if (0 < results.length) {\n mapRef.current.setCenter(results[0].geometry.location);\n }\n }\n });\n }\n\n window.google.maps.event.addListenerOnce(mapRef.current, 'idle', () => {\n setMapLoaded(true);\n });\n mapRef.current.addListener('zoom_changed', () => {\n const zoom = mapRef.current.getZoom();\n setAttributes({\n zoom\n });\n });\n mapRef.current.addListener('maptypeid_changed', () => {\n const type = mapRef.current.getMapTypeId();\n setAttributes({\n type\n });\n });\n mapRef.current.addListener('bounds_changed', () => {\n const location = mapRef.current.getCenter();\n const latitude = location.lat();\n const longitude = location.lng();\n setAttributes({\n latitude: latitude.toString(),\n longitude: longitude.toString()\n });\n });\n\n if (0 < attributes.markers.length) {\n cycleMarkers(attributes.markers);\n }\n\n const request = {\n query: attributes.location,\n fields: ['name', 'geometry']\n };\n const service = new window.google.maps.places.PlacesService(mapRef.current);\n service.findPlaceFromQuery(request, (results, status) => {\n if ('REQUEST_DENIED' === status) {\n setPlaceAPIAvailable(false);\n }\n });\n };\n\n const addMarker = (location, title, icon, description, latitude, longitude) => {\n const latLng = new window.google.maps.LatLng(latitude, longitude);\n const id = (0,v4/* default */.Z)();\n const mark = new window.google.maps.Marker({\n position: latLng,\n map: mapRef.current,\n title,\n draggable: true,\n icon\n });\n window.google.maps.event.addListener(mark, 'dragend', event => {\n const lat = event.latLng.lat();\n const lng = event.latLng.lng();\n changeMarkerProp(id, 'latitude', lat);\n changeMarkerProp(id, 'longitude', lng);\n });\n markersRef.current.push(mark);\n const markers = [...attributes.markers];\n const marker = {\n id,\n location,\n title,\n icon,\n description,\n latitude,\n longitude\n };\n markers.push(marker);\n setAttributes({\n markers\n });\n window.google.maps.event.addListener(mark, 'click', () => {\n if (lastInfoWindowRef.current) {\n lastInfoWindowRef.current.close();\n }\n });\n addInfoWindow(mark, marker.id, title, description);\n setModalOpen(false);\n setSelectingMarker(false);\n };\n\n const addInfoWindow = (marker, id, title, description) => {\n const contentString = `<div class=\"wp-block-themeisle-blocks-map-overview\"><h6 class=\"wp-block-themeisle-blocks-map-overview-title\">${title}</h6><div class=\"wp-block-themeisle-blocks-map-overview-content\">${description ? `<p>${description}</p>` : ''}<a class=\"wp-block-themeisle-blocks-map-overview-delete\" onclick=\"removeMarker_${clientId.substr(0, 8)}( '${id}' )\">${(0,external_wp_i18n_.__)('Delete Marker', 'otter-blocks')}</a></div></div>`;\n const infowindow = new window.google.maps.InfoWindow({\n content: contentString\n });\n marker.addListener('click', () => {\n lastInfoWindowRef.current = infowindow;\n infowindow.open(mapRef.current, marker);\n });\n window.google.maps.event.addListener(infowindow, 'domready', () => {\n setMarkerOpen(id);\n });\n window.google.maps.event.addListener(infowindow, 'closeclick', () => {\n setMarkerOpen(false);\n });\n };\n\n const cycleMarkers = markers => {\n markers.forEach(marker => {\n const latitude = marker.latitude;\n const longitude = marker.longitude;\n const position = new window.google.maps.LatLng(latitude, longitude);\n const mark = new window.google.maps.Marker({\n position,\n map: mapRef.current,\n title: marker.title,\n draggable: true,\n icon: marker.icon || 'https://maps.google.com/mapfiles/ms/icons/red-dot.png'\n });\n window.google.maps.event.addListener(mark, 'dragend', event => {\n const lat = event.latLng.lat();\n const lng = event.latLng.lng();\n changeMarkerProp(marker.id, 'latitude', lat);\n changeMarkerProp(marker.id, 'longitude', lng);\n });\n markersRef.current.push(mark);\n window.google.maps.event.addListener(mark, 'click', () => {\n if (lastInfoWindowRef.current) {\n lastInfoWindowRef.current.close();\n }\n });\n addInfoWindow(mark, marker.id, marker.title, marker.description);\n });\n };\n\n const selectMarker = () => {\n setSelectingMarker(!isSelectingMarker);\n\n if (!isSelectingMarker) {\n mapRef.current.addListener('click', e => {\n window.google.maps.event.clearListeners(mapRef.current, 'click');\n const id = (0,v4/* default */.Z)();\n\n const title = (0,external_wp_i18n_.__)('Custom Marker', 'otter-blocks');\n\n const latitude = e.latLng.lat();\n const longitude = e.latLng.lng();\n setModalOpen(true);\n setAdvanced(false);\n setSelectedMarker({\n id,\n location: '',\n title,\n icon: 'https://maps.google.com/mapfiles/ms/icons/red-dot.png',\n description: '',\n latitude,\n longitude\n });\n });\n } else {\n window.google.maps.event.clearListeners(mapRef.current, 'click');\n }\n };\n\n const addMarkerManual = () => {\n const id = (0,v4/* default */.Z)();\n\n const title = (0,external_wp_i18n_.__)('Custom Marker', 'otter-blocks');\n\n const location = mapRef.current.getCenter();\n const latitude = location.lat();\n const longitude = location.lng();\n setModalOpen(true);\n setAdvanced(true);\n setSelectedMarker({\n id,\n location: '',\n title,\n icon: 'https://maps.google.com/mapfiles/ms/icons/red-dot.png',\n description: '',\n latitude,\n longitude\n });\n };\n\n const changeMarkerProp = (id, prop, value) => {\n const markers = [...markersAttrRef.current];\n const marker = markers.find(marker => {\n return marker.id === id;\n });\n marker[prop] = value.toString();\n removeMarkers();\n cycleMarkers(markers);\n setAttributes({\n markers\n });\n };\n\n const removeMarker = id => {\n let markers = [...markersAttrRef.current];\n markers = markers.filter(marker => marker.id !== id);\n setAttributes({\n markers\n });\n removeMarkers();\n setMarkerOpen(false);\n\n if (0 < markers.length) {\n cycleMarkers(markers);\n }\n };\n\n const removeMarkers = () => {\n for (let i = 0; i < markersRef.current.length; i++) {\n markersRef.current[i].setMap(null);\n }\n\n markersRef.current = [];\n };\n\n const saveAPIKey = () => {\n if (false === Boolean(window.themeisleGutenberg.mapsAPI)) {\n setSaving(true);\n const model = new window.wp.api.models.Settings({\n // eslint-disable-next-line camelcase\n themeisle_google_map_block_api_key: api\n });\n model.save().then(response => {\n let saved = false;\n\n if ('' !== response.themeisle_google_map_block_api_key) {\n saved = true;\n }\n\n setSaving(false);\n setAPISaved(saved);\n\n if ('' !== response.themeisle_google_map_block_api_key) {\n window.isMapLoaded = false;\n enqueueScript(response.themeisle_google_map_block_api_key);\n }\n });\n }\n };\n\n const changeStyle = value => {\n setAttributes({\n style: value\n });\n mapRef.current.setOptions({\n styles: components_styles[value]\n });\n };\n\n if (!isAPILoaded || !isAPISaved) {\n return (0,external_wp_element_.createElement)(placeholder, {\n className: className,\n api: api,\n isAPILoaded: isAPILoaded,\n isAPISaved: isAPISaved,\n changeAPI: setAPI,\n saveAPIKey: saveAPIKey\n });\n }\n\n return (0,external_wp_element_.createElement)(external_wp_element_.Fragment, null, (0,external_wp_element_.createElement)(style_switcher_control/* StyleSwitcherBlockControl */.d, {\n label: (0,external_wp_i18n_.__)('Block Styles', 'otter-blocks'),\n value: attributes.style,\n options: [{\n label: (0,external_wp_i18n_.__)('Standard', 'otter-blocks'),\n value: 'standard',\n image: window.themeisleGutenberg.assetsPath + '/icons/map-standard.png'\n }, {\n label: (0,external_wp_i18n_.__)('Silver', 'otter-blocks'),\n value: 'silver',\n image: window.themeisleGutenberg.assetsPath + '/icons/map-silver.png'\n }, {\n label: (0,external_wp_i18n_.__)('Retro', 'otter-blocks'),\n value: 'retro',\n image: window.themeisleGutenberg.assetsPath + '/icons/map-retro.png'\n }, {\n label: (0,external_wp_i18n_.__)('Dark', 'otter-blocks'),\n value: 'dark',\n image: window.themeisleGutenberg.assetsPath + '/icons/map-dark.png'\n }, {\n label: (0,external_wp_i18n_.__)('Night', 'otter-blocks'),\n value: 'night',\n image: window.themeisleGutenberg.assetsPath + '/icons/map-night.png'\n }, {\n label: (0,external_wp_i18n_.__)('Aubergine', 'otter-blocks'),\n value: 'aubergine',\n image: window.themeisleGutenberg.assetsPath + '/icons/map-aubergine.png'\n }],\n onChange: changeStyle\n }), (0,external_wp_element_.createElement)(inspector, {\n attributes: attributes,\n setAttributes: setAttributes,\n map: mapRef.current,\n changeStyle: changeStyle,\n isPlaceAPIAvailable: isPlaceAPIAvailable,\n isMarkerOpen: isMarkerOpen,\n setMarkerOpen: setMarkerOpen,\n removeMarker: removeMarker,\n changeMarkerProp: changeMarkerProp,\n addMarkerManual: addMarkerManual,\n api: api,\n isSaving: isSaving,\n changeAPI: setAPI,\n saveAPIKey: saveAPIKey\n }), isModalOpen && (0,external_wp_element_.createElement)(marker_modal, {\n marker: selectedMarker,\n isAdvanced: isAdvanced,\n isPlaceAPIAvailable: isPlaceAPIAvailable,\n close: () => setModalOpen(false),\n addMarker: addMarker\n }), (0,external_wp_element_.createElement)(external_wp_components_.ResizableBox, {\n size: {\n height: attributes.height\n },\n enable: {\n top: false,\n right: false,\n bottom: true,\n left: false\n },\n minHeight: 100,\n maxHeight: 1400,\n onResizeStart: () => {\n toggleSelection(false);\n },\n onResizeStop: (event, direction, elt, delta) => {\n setAttributes({\n height: parseInt(attributes.height + delta.height, 10)\n });\n toggleSelection(true);\n },\n className: classnames_default()('wp-block-themeisle-blocks-google-map-resizer', {\n 'is-focused': isSelected\n })\n }, (0,external_wp_element_.createElement)(map, {\n attributes: attributes,\n className: className,\n initMap: initMap,\n displayMap: displayMap,\n isMapLoaded: isMapLoaded,\n selectMarker: selectMarker,\n isSelectingMarker: isSelectingMarker\n })));\n};\n\n/* harmony default export */ var edit = (Edit);\n// EXTERNAL MODULE: external \"lodash\"\nvar external_lodash_ = __webpack_require__(2819);\n;// CONCATENATED MODULE: ./src/blocks/blocks/google-maps/transforms.js\n/**\n * WordPress dependencies\n */\n\n\nconst transform = {\n to: [{\n type: 'block',\n blocks: ['themeisle-blocks/leaflet-map'],\n transform: attributes => {\n const commonProps = (0,external_lodash_.omit)(attributes, ['style', 'mapTypeControl', 'fullscreenControl', 'streetViewControl']);\n return (0,external_wp_blocks_.createBlock)('themeisle-blocks/leaflet-map', { ...commonProps\n });\n }\n }]\n};\n/* harmony default export */ var transforms = (transform);\n;// CONCATENATED MODULE: ./src/blocks/blocks/google-maps/index.js\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\n\n(0,external_wp_blocks_.registerBlockType)('themeisle-blocks/google-map', {\n title: (0,external_wp_i18n_.__)('Google Maps', 'otter-blocks'),\n description: (0,external_wp_i18n_.__)('Display Google Maps on your website with Google Map block.', 'otter-blocks'),\n icon: icons/* mapIcon */.aD,\n category: 'themeisle-blocks',\n keywords: ['map', 'google', 'orbitfox'],\n attributes: google_maps_attributes,\n supports: {\n align: ['wide', 'full'],\n html: false\n },\n transforms: transforms,\n edit: edit,\n save: () => null\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTUzMC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLE1BQU1BLFVBQVUsR0FBRztBQUNsQkMsRUFBQUEsRUFBRSxFQUFFO0FBQ0hDLElBQUFBLElBQUksRUFBRTtBQURILEdBRGM7QUFJbEJDLEVBQUFBLEtBQUssRUFBRTtBQUNORCxJQUFBQSxJQUFJLEVBQUUsUUFEQTtBQUVORSxJQUFBQSxPQUFPLEVBQUU7QUFGSCxHQUpXO0FBUWxCQyxFQUFBQSxRQUFRLEVBQUU7QUFDVEgsSUFBQUEsSUFBSSxFQUFFLFFBREc7QUFFVEUsSUFBQUEsT0FBTyxFQUFFO0FBRkEsR0FSUTtBQVlsQkUsRUFBQUEsUUFBUSxFQUFFO0FBQ1RKLElBQUFBLElBQUksRUFBRTtBQURHLEdBWlE7QUFlbEJLLEVBQUFBLFNBQVMsRUFBRTtBQUNWTCxJQUFBQSxJQUFJLEVBQUU7QUFESSxHQWZPO0FBa0JsQkEsRUFBQUEsSUFBSSxFQUFFO0FBQ0xBLElBQUFBLElBQUksRUFBRSxRQUREO0FBRUxFLElBQUFBLE9BQU8sRUFBRTtBQUZKLEdBbEJZO0FBc0JsQkksRUFBQUEsSUFBSSxFQUFFO0FBQ0xOLElBQUFBLElBQUksRUFBRSxRQUREO0FBRUxFLElBQUFBLE9BQU8sRUFBRTtBQUZKLEdBdEJZO0FBMEJsQkssRUFBQUEsTUFBTSxFQUFFO0FBQ1BQLElBQUFBLElBQUksRUFBRSxRQURDO0FBRVBFLElBQUFBLE9BQU8sRUFBRTtBQUZGLEdBMUJVO0FBOEJsQk0sRUFBQUEsU0FBUyxFQUFFO0FBQ1ZSLElBQUFBLElBQUksRUFBRSxTQURJO0FBRVZFLElBQUFBLE9BQU8sRUFBRTtBQUZDLEdBOUJPO0FBa0NsQk8sRUFBQUEsY0FBYyxFQUFFO0FBQ2ZULElBQUFBLElBQUksRUFBRSxTQURTO0FBRWZFLElBQUFBLE9BQU8sRUFBRTtBQUZNLEdBbENFO0FBc0NsQlEsRUFBQUEsV0FBVyxFQUFFO0FBQ1pWLElBQUFBLElBQUksRUFBRSxTQURNO0FBRVpFLElBQUFBLE9BQU8sRUFBRTtBQUZHLEdBdENLO0FBMENsQlMsRUFBQUEsaUJBQWlCLEVBQUU7QUFDbEJYLElBQUFBLElBQUksRUFBRSxTQURZO0FBRWxCRSxJQUFBQSxPQUFPLEVBQUU7QUFGUyxHQTFDRDtBQThDbEJVLEVBQUFBLGlCQUFpQixFQUFFO0FBQ2xCWixJQUFBQSxJQUFJLEVBQUUsU0FEWTtBQUVsQkUsSUFBQUEsT0FBTyxFQUFFO0FBRlMsR0E5Q0Q7QUFrRGxCVyxFQUFBQSxPQUFPLEVBQUU7QUFDUmIsSUFBQUEsSUFBSSxFQUFFLE9BREU7QUFFUkUsSUFBQUEsT0FBTyxFQUFFO0FBRkQ7QUFsRFMsQ0FBbkI7QUF3REEsMkRBQWVKLFVBQWYsRTs7Ozs7Ozs7Ozs7OztBQ3hEQTtBQUNBO0FBQ0E7QUFDQTtBQUVBOztBQVFBLE1BQU1zQixnQkFBZ0IsR0FBRyxDQUFDO0FBQ3pCQyxFQUFBQSxTQUR5QjtBQUV6QkMsRUFBQUEsR0FGeUI7QUFHekJDLEVBQUFBLFdBSHlCO0FBSXpCQyxFQUFBQSxVQUp5QjtBQUt6QkMsRUFBQUEsUUFMeUI7QUFNekJDLEVBQUFBLFNBTnlCO0FBT3pCQyxFQUFBQTtBQVB5QixDQUFELEtBUW5CO0FBQ0wsTUFBSyxDQUFFSixXQUFQLEVBQXFCO0FBQ3BCLFdBQ0MsdUNBQUMsbUNBQUQsUUFDQyx1Q0FBQywrQkFBRCxPQURELEVBRUdULHdCQUFFLENBQUUsVUFBRixFQUFjLGNBQWQsQ0FGTCxDQUREO0FBTUE7O0FBRUQsTUFBSyxDQUFFVSxVQUFQLEVBQW9CO0FBQ25CLFdBQ0MsdUNBQUMsbUNBQUQ7QUFDQyxVQUFJLEVBQUMsWUFETjtBQUVDLFdBQUssRUFBR1Ysd0JBQUUsQ0FBRSxhQUFGLEVBQWlCLGNBQWpCLENBRlg7QUFHQyxrQkFBWSxFQUFHQSx3QkFBRSxDQUFFLDREQUFGLEVBQWdFLGNBQWhFLENBSGxCO0FBSUMsZUFBUyxFQUFHTztBQUpiLE9BTUM7QUFBSyxlQUFTLEVBQUM7QUFBZixPQUNDLHVDQUFDLG1DQUFEO0FBQ0MsVUFBSSxFQUFDLE1BRE47QUFFQyxpQkFBVyxFQUFHUCx3QkFBRSxDQUFFLHFCQUFGLEVBQXlCLGNBQXpCLENBRmpCO0FBR0MsV0FBSyxFQUFHUSxHQUhUO0FBSUMsZUFBUyxFQUFDLCtCQUpYO0FBS0MsY0FBUSxFQUFHSTtBQUxaLE1BREQsRUFTQyx1Q0FBQyw4QkFBRDtBQUNDLGFBQU8sTUFEUjtBQUVDLGVBQVMsTUFGVjtBQUdDLFVBQUksRUFBQyxRQUhOO0FBSUMsYUFBTyxFQUFHQyxVQUpYO0FBS0MsWUFBTSxFQUFHRixRQUxWO0FBTUMsY0FBUSxFQUFHLE9BQU9IO0FBTm5CLE9BUUdSLHdCQUFFLENBQUUsTUFBRixFQUFVLGNBQVYsQ0FSTCxDQVRELENBTkQsRUEyQkM7QUFBSyxlQUFTLEVBQUM7QUFBZixPQUNHQSx3QkFBRSxDQUFFLDJDQUFGLEVBQStDLGNBQS9DLENBREwsT0FDdUUsdUNBQUMsb0NBQUQ7QUFBYyxVQUFJLEVBQUM7QUFBbkIsT0FBK0ZBLHdCQUFFLENBQUUsZ0NBQUYsRUFBb0MsY0FBcEMsQ0FBakcsQ0FEdkUsQ0EzQkQsQ0FERDtBQWlDQTtBQUNELENBckREOztBQXVEQSxnREFBZU0sZ0JBQWYsRTs7Ozs7Ozs7OztBQ3BFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFFQTs7QUFLQSxNQUFNWSxZQUFZLEdBQUcsQ0FBQztBQUNyQkMsRUFBQUEsS0FEcUI7QUFFckJDLEVBQUFBO0FBRnFCLENBQUQsS0FHZjtBQUNMLFFBQU1DLFVBQVUsR0FBR04sc0NBQWEsQ0FBRUcsWUFBRixDQUFoQztBQUVBRixFQUFBQSxrQ0FBUyxDQUFFLE1BQU07QUFDaEIsVUFBTU0sUUFBUSxHQUFHO0FBQ2hCQyxNQUFBQSxvQkFBb0IsRUFBRSxJQUROO0FBQ1k7QUFDNUJDLE1BQUFBLE9BQU8sRUFBRSwrR0FGTztBQUdoQkMsTUFBQUEsUUFBUSxFQUFFO0FBSE0sS0FBakI7QUFNQUMsSUFBQUEsTUFBTSxDQUFDQyxFQUFQLENBQVVDLFNBQVYsQ0FBb0JDLFVBQXBCLENBQWdDQyxTQUFTLENBQUNDLE9BQVYsQ0FBa0I5QyxFQUFsRCxFQUFzRDtBQUNyRCtDLE1BQUFBLE9BQU8sRUFBRSxFQUFFLEdBQUdWO0FBQUw7QUFENEMsS0FBdEQ7QUFJQSxVQUFNVyxNQUFNLEdBQUdQLE1BQU0sQ0FBQ00sT0FBUCxDQUFlRSxHQUFmLENBQW9CSixTQUFTLENBQUNDLE9BQVYsQ0FBa0I5QyxFQUF0QyxDQUFmO0FBRUFnRCxJQUFBQSxNQUFNLENBQUNFLEVBQVAsQ0FBVyxRQUFYLEVBQXFCLE1BQU1mLFFBQVEsQ0FBRWEsTUFBTSxDQUFDRyxVQUFQLEVBQUYsQ0FBbkM7QUFFQSxXQUFPLE1BQU1WLE1BQU0sQ0FBQ0MsRUFBUCxDQUFVQyxTQUFWLENBQW9CUyxNQUFwQixDQUE0QlAsU0FBUyxDQUFDQyxPQUFWLENBQWtCOUMsRUFBOUMsQ0FBYjtBQUNBLEdBaEJRLEVBZ0JOLEVBaEJNLENBQVQ7QUFrQkEsUUFBTUEsRUFBRSxHQUFJLDhCQUE4Qm9DLFVBQVksRUFBdEQ7QUFFQSxRQUFNUyxTQUFTLEdBQUdiLCtCQUFNLENBQUUsSUFBRixDQUF4Qjs7QUFFQSxRQUFNcUIsYUFBYSxHQUFHQyxDQUFDLElBQUluQixRQUFRLENBQUVtQixDQUFDLENBQUNDLE1BQUYsQ0FBU3JCLEtBQVgsQ0FBbkM7O0FBRUEsU0FDQyx1Q0FBQyxtQ0FBRDtBQUNDLE1BQUUsRUFBR2xDLEVBRE47QUFFQyxTQUFLLEVBQUdlLHdCQUFFLENBQUUsYUFBRixFQUFpQixjQUFqQjtBQUZYLEtBSUM7QUFDQyxNQUFFLEVBQUdmLEVBRE47QUFFQyxhQUFTLEVBQUMsb0NBRlg7QUFHQyxRQUFJLEVBQUcsQ0FIUjtBQUlDLFNBQUssRUFBR2tDLEtBSlQ7QUFLQyxZQUFRLEVBQUdtQixhQUxaO0FBTUMsT0FBRyxFQUFHUjtBQU5QLElBSkQsQ0FERDtBQWVBLENBN0NEOztBQStDQSxrREFBZVosWUFBZixFOzs7O0FDN0RBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBOztBQUNBO0FBRUE7QUFRQTtBQUVBO0FBQ0E7QUFDQTs7QUFDQTs7QUFFQSxNQUFNeUIsTUFBTSxHQUFHLENBQUM7QUFDZkMsRUFBQUEsTUFEZTtBQUVmQyxFQUFBQSxNQUZlO0FBR2ZDLEVBQUFBLG1CQUhlO0FBSWZDLEVBQUFBLFVBSmU7QUFLZkMsRUFBQUEsWUFMZTtBQU1mQyxFQUFBQTtBQU5lLENBQUQsS0FPVDtBQUNMLFFBQU1DLFNBQVMsR0FBR2pDLCtCQUFNLENBQUUsSUFBRixDQUF4Qjs7QUFFQSxRQUFNa0MsVUFBVSxHQUFHLE1BQU07QUFDeEIsVUFBTUMsUUFBUSxHQUFHQyxRQUFRLENBQUNDLHNCQUFULENBQWlDLGVBQWpDLENBQWpCO0FBRUFDLElBQUFBLE1BQU0sQ0FBQ0MsSUFBUCxDQUFhSixRQUFiLEVBQXdCSyxPQUF4QixDQUFpQ2xCLENBQUMsSUFBSWEsUUFBUSxDQUFDYixDQUFELENBQVIsQ0FBWUYsTUFBWixFQUF0QztBQUVBLFVBQU1xQixTQUFTLEdBQUcsSUFBSWhDLE1BQU0sQ0FBQ2lDLE1BQVAsQ0FBY0MsSUFBZCxDQUFtQkMsTUFBbkIsQ0FBMEJDLFNBQTlCLENBQXlDWixTQUFTLENBQUNuQixPQUFuRCxDQUFsQjtBQUVBMkIsSUFBQUEsU0FBUyxDQUFDSyxXQUFWLENBQXVCLGdCQUF2QixFQUF5QyxNQUFNO0FBQzlDLFlBQU1GLE1BQU0sR0FBR0gsU0FBUyxDQUFDTSxTQUFWLEVBQWY7O0FBRUEsVUFBS0gsTUFBTSxJQUFNLElBQUlBLE1BQU0sQ0FBQ0ksTUFBNUIsRUFBdUM7QUFDdENKLFFBQUFBLE1BQU0sQ0FBQ0osT0FBUCxDQUFnQlMsS0FBSyxJQUFJO0FBQ3hCLGdCQUFNN0UsUUFBUSxHQUFHNkUsS0FBSyxDQUFDQyxpQkFBTixJQUEyQkQsS0FBSyxDQUFDRSxJQUFsRDtBQUNBLGdCQUFNOUUsUUFBUSxHQUFHNEUsS0FBSyxDQUFDRyxRQUFOLENBQWVoRixRQUFmLENBQXdCaUYsR0FBeEIsRUFBakI7QUFDQSxnQkFBTS9FLFNBQVMsR0FBRzJFLEtBQUssQ0FBQ0csUUFBTixDQUFlaEYsUUFBZixDQUF3QmtGLEdBQXhCLEVBQWxCO0FBQ0F0QixVQUFBQSxnQkFBZ0IsQ0FBRUwsTUFBTSxDQUFDM0QsRUFBVCxFQUFhLFVBQWIsRUFBeUJJLFFBQXpCLENBQWhCO0FBQ0E0RCxVQUFBQSxnQkFBZ0IsQ0FBRUwsTUFBTSxDQUFDM0QsRUFBVCxFQUFhLFVBQWIsRUFBeUJLLFFBQXpCLENBQWhCO0FBQ0EyRCxVQUFBQSxnQkFBZ0IsQ0FBRUwsTUFBTSxDQUFDM0QsRUFBVCxFQUFhLFdBQWIsRUFBMEJNLFNBQTFCLENBQWhCO0FBQ0EsU0FQRDtBQVFBO0FBQ0QsS0FiRDtBQWNBLEdBckJEOztBQXVCQSxTQUNDO0FBQUssYUFBUyxFQUFDO0FBQWYsS0FDQztBQUFLLGFBQVMsRUFBQztBQUFmLEtBQ0MsdUNBQUMsOEJBQUQ7QUFDQyxhQUFTLEVBQUMsbURBRFg7QUFFQyxXQUFPLEVBQUcsTUFBTXdELFVBQVUsQ0FBRUgsTUFBTSxDQUFDM0QsRUFBVDtBQUYzQixLQUlHMkQsTUFBTSxDQUFDNEIsS0FBUCxJQUFnQnhFLHdCQUFFLENBQUUsZUFBRixFQUFtQixjQUFuQixDQUpyQixDQURELEVBUUMsdUNBQUMsOEJBQUQ7QUFDQyxRQUFJLEVBQUMsUUFETjtBQUVDLFNBQUssRUFBR0Esd0JBQUUsQ0FBRSxlQUFGLEVBQW1CLGNBQW5CLENBRlg7QUFHQyxlQUFXLEVBQUcsSUFIZjtBQUlDLGFBQVMsRUFBQyxvREFKWDtBQUtDLFdBQU8sRUFBRyxNQUFNZ0QsWUFBWSxDQUFFSixNQUFNLENBQUMzRCxFQUFUO0FBTDdCLElBUkQsQ0FERCxFQWtCQztBQUNDLGFBQVMsRUFBR3dELG9CQUFVLENBQ3JCLDBEQURxQixFQUVyQjtBQUFFLGdCQUFVRyxNQUFNLENBQUMzRCxFQUFQLEtBQWM0RDtBQUExQixLQUZxQjtBQUR2QixLQU1DLHVDQUFDLG1DQUFEO0FBQ0MsU0FBSyxFQUFHN0Msd0JBQUUsQ0FBRSxVQUFGLEVBQWMsY0FBZCxDQURYO0FBRUMsTUFBRSxFQUFJLDZCQUE2QjRDLE1BQU0sQ0FBQzNELEVBQUk7QUFGL0MsS0FJQztBQUNDLFFBQUksRUFBQyxNQUROO0FBRUMsTUFBRSxFQUFJLDZCQUE2QjJELE1BQU0sQ0FBQzNELEVBQUksRUFGL0M7QUFHQyxlQUFXLEVBQUdlLHdCQUFFLENBQUUsbUJBQUYsRUFBdUIsY0FBdkIsQ0FIakI7QUFJQyxTQUFLLEVBQUc0QyxNQUFNLENBQUN2RCxRQUpoQjtBQUtDLGFBQVMsRUFBQyw2Q0FMWDtBQU1DLE9BQUcsRUFBRzZELFNBTlA7QUFPQyxXQUFPLEVBQUdDLFVBUFg7QUFRQyxZQUFRLEVBQUdaLENBQUMsSUFBSVUsZ0JBQWdCLENBQUVMLE1BQU0sQ0FBQzNELEVBQVQsRUFBYSxVQUFiLEVBQXlCc0QsQ0FBQyxDQUFDQyxNQUFGLENBQVNyQixLQUFsQyxDQVJqQztBQVNDLFlBQVEsRUFBRyxDQUFFMkI7QUFUZCxJQUpELEVBZ0JHLENBQUVBLG1CQUFGLElBQ0Qsa0RBQ0c5Qyx3QkFBRSxDQUFFLG9HQUFGLEVBQXdHLGNBQXhHLENBQUYsR0FBNkgsR0FEaEksRUFFQyx1Q0FBQyxvQ0FBRDtBQUFjLFFBQUksRUFBQztBQUFuQixLQUNHQSx3QkFBRSxDQUFFLFlBQUYsRUFBZ0IsY0FBaEIsQ0FETCxDQUZELENBakJGLENBTkQsRUFnQ0MsdUNBQUMsbUNBQUQ7QUFDQyxTQUFLLEVBQUdBLHdCQUFFLENBQUUsVUFBRixFQUFjLGNBQWQsQ0FEWDtBQUVDLFFBQUksRUFBQyxNQUZOO0FBR0MsU0FBSyxFQUFHNEMsTUFBTSxDQUFDdEQsUUFIaEI7QUFJQyxZQUFRLEVBQUdpRCxDQUFDLElBQUlVLGdCQUFnQixDQUFFTCxNQUFNLENBQUMzRCxFQUFULEVBQWEsVUFBYixFQUF5QnNELENBQXpCO0FBSmpDLElBaENELEVBdUNDLHVDQUFDLG1DQUFEO0FBQ0MsU0FBSyxFQUFHdkMsd0JBQUUsQ0FBRSxXQUFGLEVBQWUsY0FBZixDQURYO0FBRUMsUUFBSSxFQUFDLE1BRk47QUFHQyxTQUFLLEVBQUc0QyxNQUFNLENBQUNyRCxTQUhoQjtBQUlDLFlBQVEsRUFBR2dELENBQUMsSUFBSVUsZ0JBQWdCLENBQUVMLE1BQU0sQ0FBQzNELEVBQVQsRUFBYSxXQUFiLEVBQTBCc0QsQ0FBMUI7QUFKakMsSUF2Q0QsRUE4Q0MsdUNBQUMscUNBQUQ7QUFDQyxTQUFLLEVBQUd2Qyx3QkFBRSxDQUFFLFVBQUYsRUFBYyxjQUFkLENBRFg7QUFFQyxTQUFLLEVBQUc0QyxNQUFNLENBQUM2QixJQUFQLElBQWUsdURBRnhCO0FBR0MsV0FBTyxFQUFHLENBQ1Q7QUFBRUMsTUFBQUEsS0FBSyxFQUFFMUUsd0JBQUUsQ0FBRSxLQUFGLEVBQVMsY0FBVCxDQUFYO0FBQXNDbUIsTUFBQUEsS0FBSyxFQUFFO0FBQTdDLEtBRFMsRUFFVDtBQUFFdUQsTUFBQUEsS0FBSyxFQUFFMUUsd0JBQUUsQ0FBRSxNQUFGLEVBQVUsY0FBVixDQUFYO0FBQXVDbUIsTUFBQUEsS0FBSyxFQUFFO0FBQTlDLEtBRlMsRUFHVDtBQUFFdUQsTUFBQUEsS0FBSyxFQUFFMUUsd0JBQUUsQ0FBRSxRQUFGLEVBQVksY0FBWixDQUFYO0FBQXlDbUIsTUFBQUEsS0FBSyxFQUFFO0FBQWhELEtBSFMsRUFJVDtBQUFFdUQsTUFBQUEsS0FBSyxFQUFFMUUsd0JBQUUsQ0FBRSxPQUFGLEVBQVcsY0FBWCxDQUFYO0FBQXdDbUIsTUFBQUEsS0FBSyxFQUFFO0FBQS9DLEtBSlMsRUFLVDtBQUFFdUQsTUFBQUEsS0FBSyxFQUFFMUUsd0JBQUUsQ0FBRSxRQUFGLEVBQVksY0FBWixDQUFYO0FBQXlDbUIsTUFBQUEsS0FBSyxFQUFFO0FBQWhELEtBTFMsQ0FIWDtBQVVDLFlBQVEsRUFBR29CLENBQUMsSUFBSVUsZ0JBQWdCLENBQUVMLE1BQU0sQ0FBQzNELEVBQVQsRUFBYSxNQUFiLEVBQXFCc0QsQ0FBckI7QUFWakMsSUE5Q0QsRUEyREMsdUNBQUMsbUNBQUQ7QUFDQyxTQUFLLEVBQUd2Qyx3QkFBRSxDQUFFLE9BQUYsRUFBVyxjQUFYLENBRFg7QUFFQyxRQUFJLEVBQUMsTUFGTjtBQUdDLFNBQUssRUFBRzRDLE1BQU0sQ0FBQzRCLEtBSGhCO0FBSUMsWUFBUSxFQUFHakMsQ0FBQyxJQUFJVSxnQkFBZ0IsQ0FBRUwsTUFBTSxDQUFDM0QsRUFBVCxFQUFhLE9BQWIsRUFBc0JzRCxDQUF0QjtBQUpqQyxJQTNERCxFQWtFQyx1Q0FBQyxhQUFEO0FBQ0MsU0FBSyxFQUFHdkMsd0JBQUUsQ0FBRSxhQUFGLEVBQWlCLGNBQWpCLENBRFg7QUFFQyxRQUFJLEVBQUMsTUFGTjtBQUdDLFNBQUssRUFBRzRDLE1BQU0sQ0FBQytCLFdBSGhCO0FBSUMsWUFBUSxFQUFHcEMsQ0FBQyxJQUFJVSxnQkFBZ0IsQ0FBRUwsTUFBTSxDQUFDM0QsRUFBVCxFQUFhLGFBQWIsRUFBNEJzRCxDQUE1QjtBQUpqQyxJQWxFRCxDQWxCRCxDQUREO0FBOEZBLENBL0hEOztBQWlJQSxzREFBZUksTUFBZixFOzs7O0FDMUpBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQU1BO0FBQ0E7QUFDQTs7QUFDQTs7QUFFQSxNQUFNbUMsYUFBYSxHQUFHLENBQUM7QUFDdEJDLEVBQUFBLFdBRHNCO0FBRXRCaEYsRUFBQUEsT0FGc0I7QUFHdEIrQyxFQUFBQSxtQkFIc0I7QUFJdEJrQyxFQUFBQSxTQUpzQjtBQUt0QmhDLEVBQUFBLFlBTHNCO0FBTXRCQyxFQUFBQTtBQU5zQixDQUFELEtBT2hCO0FBQ0xqQyxFQUFBQSxrQ0FBUyxDQUFFLE1BQU07QUFDaEIsUUFBSyxVQUFVK0QsV0FBZixFQUE2QjtBQUM1QkUsTUFBQUEsT0FBTyxDQUFFRixXQUFGLENBQVA7QUFDQTtBQUNELEdBSlEsRUFJTixDQUFFQSxXQUFGLENBSk0sQ0FBVDtBQU1BLFFBQU0sQ0FBRWxDLE1BQUYsRUFBVW9DLE9BQVYsSUFBc0JKLGlDQUFRLENBQUUsSUFBRixDQUFwQzs7QUFFQSxRQUFNOUIsVUFBVSxHQUFLOUQsRUFBRixJQUFVO0FBQzVCLFFBQUs0RCxNQUFNLEtBQUs1RCxFQUFoQixFQUFxQjtBQUNwQkEsTUFBQUEsRUFBRSxHQUFHLElBQUw7QUFDQTs7QUFFRGdHLElBQUFBLE9BQU8sQ0FBRWhHLEVBQUYsQ0FBUDtBQUNBLEdBTkQ7O0FBUUEsU0FDQyx1Q0FBQyw2QkFBRCxRQUNDO0FBQUssYUFBUyxFQUFDO0FBQWYsS0FDR2MsT0FBTyxDQUFDbUYsR0FBUixDQUFhdEMsTUFBTSxJQUFJO0FBQ3hCLFdBQ0MsdUNBQUMsaUJBQUQ7QUFDQyxTQUFHLEVBQUdBLE1BQU0sQ0FBQzNELEVBRGQ7QUFFQyxZQUFNLEVBQUcyRCxNQUZWO0FBR0MsWUFBTSxFQUFHQyxNQUhWO0FBSUMseUJBQW1CLEVBQUdDLG1CQUp2QjtBQUtDLGdCQUFVLEVBQUdDLFVBTGQ7QUFNQyxrQkFBWSxFQUFHQyxZQU5oQjtBQU9DLHNCQUFnQixFQUFHQztBQVBwQixNQUREO0FBV0EsR0FaQyxDQURILENBREQsRUFpQkMsdUNBQUMsOEJBQUQ7QUFDQyxlQUFXLE1BRFo7QUFFQyxXQUFPLE1BRlI7QUFHQyxhQUFTLEVBQUMsaURBSFg7QUFJQyxXQUFPLEVBQUcrQjtBQUpYLEtBTUdoRix3QkFBRSxDQUFFLFlBQUYsRUFBZ0IsY0FBaEIsQ0FOTCxDQWpCRCxDQUREO0FBNEJBLENBcEREOztBQXNEQSxtREFBZThFLGFBQWYsRTs7OztBQ3hFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBV0E7QUFFQTtBQUVBO0FBQ0E7O0FBRUEsTUFBTVUsU0FBUyxHQUFHLENBQUM7QUFDbEJ4RyxFQUFBQSxVQURrQjtBQUVsQnlHLEVBQUFBLGFBRmtCO0FBR2xCUCxFQUFBQSxHQUhrQjtBQUlsQlEsRUFBQUEsV0FKa0I7QUFLbEI1QyxFQUFBQSxtQkFMa0I7QUFNbEI2QyxFQUFBQSxZQU5rQjtBQU9sQkMsRUFBQUEsYUFQa0I7QUFRbEI1QyxFQUFBQSxZQVJrQjtBQVNsQkMsRUFBQUEsZ0JBVGtCO0FBVWxCNEMsRUFBQUEsZUFWa0I7QUFXbEJyRixFQUFBQSxHQVhrQjtBQVlsQkcsRUFBQUEsUUFaa0I7QUFhbEJDLEVBQUFBLFNBYmtCO0FBY2xCQyxFQUFBQTtBQWRrQixDQUFELEtBZVo7QUFDTCxRQUFNcUMsU0FBUyxHQUFHakMsK0JBQU0sQ0FBRSxJQUFGLENBQXhCOztBQUVBLFFBQU1rQyxVQUFVLEdBQUcsTUFBTTtBQUN4QixVQUFNQyxRQUFRLEdBQUdDLFFBQVEsQ0FBQ0Msc0JBQVQsQ0FBaUMsZUFBakMsQ0FBakI7QUFFQUMsSUFBQUEsTUFBTSxDQUFDQyxJQUFQLENBQWFKLFFBQWIsRUFBd0JLLE9BQXhCLENBQWlDbEIsQ0FBQyxJQUFJYSxRQUFRLENBQUNiLENBQUQsQ0FBUixDQUFZRixNQUFaLEVBQXRDO0FBRUEsVUFBTXFCLFNBQVMsR0FBRyxJQUFJaEMsTUFBTSxDQUFDaUMsTUFBUCxDQUFjQyxJQUFkLENBQW1CQyxNQUFuQixDQUEwQkMsU0FBOUIsQ0FBeUNaLFNBQVMsQ0FBQ25CLE9BQW5ELENBQWxCO0FBRUEyQixJQUFBQSxTQUFTLENBQUNLLFdBQVYsQ0FBdUIsZ0JBQXZCLEVBQXlDLE1BQU07QUFDOUMsWUFBTUYsTUFBTSxHQUFHSCxTQUFTLENBQUNNLFNBQVYsRUFBZjs7QUFFQSxVQUFLSCxNQUFNLElBQU0sSUFBSUEsTUFBTSxDQUFDSSxNQUE1QixFQUF1QztBQUN0Q0osUUFBQUEsTUFBTSxDQUFDSixPQUFQLENBQWdCUyxLQUFLLElBQUk7QUFDeEIsZ0JBQU01RSxRQUFRLEdBQUc0RSxLQUFLLENBQUNHLFFBQU4sQ0FBZWhGLFFBQWYsQ0FBd0JpRixHQUF4QixFQUFqQjtBQUNBLGdCQUFNL0UsU0FBUyxHQUFHMkUsS0FBSyxDQUFDRyxRQUFOLENBQWVoRixRQUFmLENBQXdCa0YsR0FBeEIsRUFBbEI7QUFDQSxnQkFBTXVCLE1BQU0sR0FBRyxJQUFJcEUsTUFBTSxDQUFDaUMsTUFBUCxDQUFjQyxJQUFkLENBQW1CbUMsTUFBdkIsQ0FBK0J6RyxRQUEvQixFQUF5Q0MsU0FBekMsQ0FBZjtBQUNBMkYsVUFBQUEsR0FBRyxDQUFDYyxTQUFKLENBQWVGLE1BQWY7QUFDQUwsVUFBQUEsYUFBYSxDQUFDO0FBQ2JwRyxZQUFBQSxRQUFRLEVBQUU2RSxLQUFLLENBQUNDLGlCQUFOLElBQTJCRCxLQUFLLENBQUNFLElBRDlCO0FBRWI5RSxZQUFBQSxRQUFRLEVBQUVBLFFBQVEsQ0FBQzJHLFFBQVQsRUFGRztBQUdiMUcsWUFBQUEsU0FBUyxFQUFFQSxTQUFTLENBQUMwRyxRQUFWO0FBSEUsV0FBRCxDQUFiO0FBS0EsU0FWRDtBQVdBO0FBQ0QsS0FoQkQ7QUFpQkEsR0F4QkQ7O0FBMEJBLFFBQU1DLGNBQWMsR0FBRy9FLEtBQUssSUFBSTtBQUMvQnNFLElBQUFBLGFBQWEsQ0FBQztBQUFFcEcsTUFBQUEsUUFBUSxFQUFFOEIsS0FBSyxDQUFDcUIsTUFBTixDQUFhckI7QUFBekIsS0FBRCxDQUFiO0FBQ0EsR0FGRDs7QUFJQSxRQUFNZ0YsY0FBYyxHQUFHaEYsS0FBSyxJQUFJO0FBQy9Cc0UsSUFBQUEsYUFBYSxDQUFDO0FBQUVuRyxNQUFBQSxRQUFRLEVBQUU2QixLQUFLLENBQUM4RSxRQUFOO0FBQVosS0FBRCxDQUFiO0FBQ0EsVUFBTTNHLFFBQVEsR0FBRzhHLE1BQU0sQ0FBRWpGLEtBQUYsQ0FBdkI7QUFDQSxVQUFNNUIsU0FBUyxHQUFHUCxVQUFVLENBQUNPLFNBQTdCO0FBQ0EsVUFBTXVHLE1BQU0sR0FBRyxJQUFJcEUsTUFBTSxDQUFDaUMsTUFBUCxDQUFjQyxJQUFkLENBQW1CbUMsTUFBdkIsQ0FBK0J6RyxRQUEvQixFQUF5Q0MsU0FBekMsQ0FBZjtBQUNBMkYsSUFBQUEsR0FBRyxDQUFDYyxTQUFKLENBQWVGLE1BQWY7QUFDQSxHQU5EOztBQVFBLFFBQU1PLGVBQWUsR0FBR2xGLEtBQUssSUFBSTtBQUNoQ3NFLElBQUFBLGFBQWEsQ0FBQztBQUFFbEcsTUFBQUEsU0FBUyxFQUFFNEIsS0FBSyxDQUFDOEUsUUFBTjtBQUFiLEtBQUQsQ0FBYjtBQUNBLFVBQU0zRyxRQUFRLEdBQUdOLFVBQVUsQ0FBQ00sUUFBNUI7QUFDQSxVQUFNQyxTQUFTLEdBQUc2RyxNQUFNLENBQUVqRixLQUFGLENBQXhCO0FBQ0EsVUFBTTJFLE1BQU0sR0FBRyxJQUFJcEUsTUFBTSxDQUFDaUMsTUFBUCxDQUFjQyxJQUFkLENBQW1CbUMsTUFBdkIsQ0FBK0J6RyxRQUEvQixFQUF5Q0MsU0FBekMsQ0FBZjtBQUNBMkYsSUFBQUEsR0FBRyxDQUFDYyxTQUFKLENBQWVGLE1BQWY7QUFDQSxHQU5EOztBQVFBLFFBQU1RLGFBQWEsR0FBR25GLEtBQUssSUFBSTtBQUM5QnNFLElBQUFBLGFBQWEsQ0FBQztBQUFFdkcsTUFBQUEsSUFBSSxFQUFFaUM7QUFBUixLQUFELENBQWI7QUFDQStELElBQUFBLEdBQUcsQ0FBQ3FCLFlBQUosQ0FBa0I3RSxNQUFNLENBQUNpQyxNQUFQLENBQWNDLElBQWQsQ0FBbUI0QyxTQUFuQixDQUE4QnJGLEtBQUssQ0FBQ3NGLFdBQU4sRUFBOUIsQ0FBbEI7QUFDQSxHQUhEOztBQUtBLFFBQU1DLFVBQVUsR0FBR3ZGLEtBQUssSUFBSTtBQUMzQnNFLElBQUFBLGFBQWEsQ0FBQztBQUFFakcsTUFBQUEsSUFBSSxFQUFFMkI7QUFBUixLQUFELENBQWI7QUFDQStELElBQUFBLEdBQUcsQ0FBQ3lCLE9BQUosQ0FBYXhGLEtBQWI7QUFDQSxHQUhEOztBQUtBLFFBQU15RixZQUFZLEdBQUd6RixLQUFLLElBQUk7QUFDN0JzRSxJQUFBQSxhQUFhLENBQUM7QUFBRWhHLE1BQUFBLE1BQU0sRUFBRTBCO0FBQVYsS0FBRCxDQUFiO0FBQ0EsR0FGRDs7QUFJQSxRQUFNMEYsZUFBZSxHQUFHLE1BQU07QUFDN0JwQixJQUFBQSxhQUFhLENBQUM7QUFBRS9GLE1BQUFBLFNBQVMsRUFBRSxDQUFFVixVQUFVLENBQUNVO0FBQTFCLEtBQUQsQ0FBYjtBQUNBLEdBRkQ7O0FBSUEsUUFBTW9ILG9CQUFvQixHQUFHLE1BQU07QUFDbENyQixJQUFBQSxhQUFhLENBQUM7QUFBRTlGLE1BQUFBLGNBQWMsRUFBRSxDQUFFWCxVQUFVLENBQUNXO0FBQS9CLEtBQUQsQ0FBYjtBQUNBLEdBRkQ7O0FBSUEsUUFBTW9ILGlCQUFpQixHQUFHLE1BQU07QUFDL0J0QixJQUFBQSxhQUFhLENBQUM7QUFBRTdGLE1BQUFBLFdBQVcsRUFBRSxDQUFFWixVQUFVLENBQUNZO0FBQTVCLEtBQUQsQ0FBYjtBQUNBLEdBRkQ7O0FBSUEsUUFBTW9ILHVCQUF1QixHQUFHLE1BQU07QUFDckN2QixJQUFBQSxhQUFhLENBQUM7QUFBRTVGLE1BQUFBLGlCQUFpQixFQUFFLENBQUViLFVBQVUsQ0FBQ2E7QUFBbEMsS0FBRCxDQUFiO0FBQ0EsR0FGRDs7QUFJQSxRQUFNb0gsdUJBQXVCLEdBQUcsTUFBTTtBQUNyQ3hCLElBQUFBLGFBQWEsQ0FBQztBQUFFM0YsTUFBQUEsaUJBQWlCLEVBQUUsQ0FBRWQsVUFBVSxDQUFDYztBQUFsQyxLQUFELENBQWI7QUFDQSxHQUZEOztBQUlBLFNBQ0MsdUNBQUMsMENBQUQsUUFDQyx1Q0FBQyxpQ0FBRDtBQUNDLFNBQUssRUFBR0Usd0JBQUUsQ0FBRSxRQUFGLEVBQVksY0FBWixDQURYO0FBRUMsZUFBVyxFQUFHO0FBRmYsS0FJQyx1Q0FBQywyREFBRDtBQUNDLFNBQUssRUFBR2hCLFVBQVUsQ0FBQ0csS0FEcEI7QUFFQyxXQUFPLEVBQUcsQ0FDVDtBQUNDdUYsTUFBQUEsS0FBSyxFQUFFMUUsd0JBQUUsQ0FBRSxVQUFGLEVBQWMsY0FBZCxDQURWO0FBRUNtQixNQUFBQSxLQUFLLEVBQUUsVUFGUjtBQUdDK0YsTUFBQUEsS0FBSyxFQUFFeEYsTUFBTSxDQUFDeUYsa0JBQVAsQ0FBMEJDLFVBQTFCLEdBQXVDO0FBSC9DLEtBRFMsRUFNVDtBQUNDMUMsTUFBQUEsS0FBSyxFQUFFMUUsd0JBQUUsQ0FBRSxRQUFGLEVBQVksY0FBWixDQURWO0FBRUNtQixNQUFBQSxLQUFLLEVBQUUsUUFGUjtBQUdDK0YsTUFBQUEsS0FBSyxFQUFFeEYsTUFBTSxDQUFDeUYsa0JBQVAsQ0FBMEJDLFVBQTFCLEdBQXVDO0FBSC9DLEtBTlMsRUFXVDtBQUNDMUMsTUFBQUEsS0FBSyxFQUFFMUUsd0JBQUUsQ0FBRSxPQUFGLEVBQVcsY0FBWCxDQURWO0FBRUNtQixNQUFBQSxLQUFLLEVBQUUsT0FGUjtBQUdDK0YsTUFBQUEsS0FBSyxFQUFFeEYsTUFBTSxDQUFDeUYsa0JBQVAsQ0FBMEJDLFVBQTFCLEdBQXVDO0FBSC9DLEtBWFMsRUFnQlQ7QUFDQzFDLE1BQUFBLEtBQUssRUFBRTFFLHdCQUFFLENBQUUsTUFBRixFQUFVLGNBQVYsQ0FEVjtBQUVDbUIsTUFBQUEsS0FBSyxFQUFFLE1BRlI7QUFHQytGLE1BQUFBLEtBQUssRUFBRXhGLE1BQU0sQ0FBQ3lGLGtCQUFQLENBQTBCQyxVQUExQixHQUF1QztBQUgvQyxLQWhCUyxFQXFCVDtBQUNDMUMsTUFBQUEsS0FBSyxFQUFFMUUsd0JBQUUsQ0FBRSxPQUFGLEVBQVcsY0FBWCxDQURWO0FBRUNtQixNQUFBQSxLQUFLLEVBQUUsT0FGUjtBQUdDK0YsTUFBQUEsS0FBSyxFQUFFeEYsTUFBTSxDQUFDeUYsa0JBQVAsQ0FBMEJDLFVBQTFCLEdBQXVDO0FBSC9DLEtBckJTLEVBMEJUO0FBQ0MxQyxNQUFBQSxLQUFLLEVBQUUxRSx3QkFBRSxDQUFFLFdBQUYsRUFBZSxjQUFmLENBRFY7QUFFQ21CLE1BQUFBLEtBQUssRUFBRSxXQUZSO0FBR0MrRixNQUFBQSxLQUFLLEVBQUV4RixNQUFNLENBQUN5RixrQkFBUCxDQUEwQkMsVUFBMUIsR0FBdUM7QUFIL0MsS0ExQlMsQ0FGWDtBQWtDQyxZQUFRLEVBQUcxQjtBQWxDWixJQUpELENBREQsRUEyQ0MsdUNBQUMsaUNBQUQ7QUFDQyxTQUFLLEVBQUcxRix3QkFBRSxDQUFFLFVBQUYsRUFBYyxjQUFkO0FBRFgsS0FHQyx1Q0FBQyxtQ0FBRDtBQUNDLFNBQUssRUFBR0Esd0JBQUUsQ0FBRSxVQUFGLENBRFg7QUFFQyxNQUFFLEVBQUM7QUFGSixLQUlDO0FBQ0MsUUFBSSxFQUFDLE1BRE47QUFFQyxNQUFFLEVBQUMsNkNBRko7QUFHQyxlQUFXLEVBQUdBLHdCQUFFLENBQUUsbUJBQUYsRUFBdUIsY0FBdkIsQ0FIakI7QUFJQyxTQUFLLEVBQUdoQixVQUFVLENBQUNLLFFBSnBCO0FBS0MsYUFBUyxFQUFDLDZDQUxYO0FBTUMsT0FBRyxFQUFHNkQsU0FOUDtBQU9DLFdBQU8sRUFBR0MsVUFQWDtBQVFDLFlBQVEsRUFBRytDLGNBUlo7QUFTQyxZQUFRLEVBQUcsQ0FBRXBEO0FBVGQsSUFKRCxFQWdCRyxDQUFFQSxtQkFBRixJQUNELGtEQUNHOUMsd0JBQUUsQ0FBRSxvR0FBRixFQUF3RyxjQUF4RyxDQUFGLEdBQTZILEdBRGhJLEVBRUMsdUNBQUMsb0NBQUQ7QUFBYyxRQUFJLEVBQUM7QUFBbkIsS0FDR0Esd0JBQUUsQ0FBRSxZQUFGLEVBQWdCLGNBQWhCLENBREwsQ0FGRCxDQWpCRixDQUhELEVBNkJDLHVDQUFDLG1DQUFEO0FBQ0MsU0FBSyxFQUFHQSx3QkFBRSxDQUFFLFVBQUYsRUFBYyxjQUFkLENBRFg7QUFFQyxRQUFJLEVBQUMsTUFGTjtBQUdDLGVBQVcsRUFBR0Esd0JBQUUsQ0FBRSxpQkFBRixFQUFxQixjQUFyQixDQUhqQjtBQUlDLFNBQUssRUFBR2hCLFVBQVUsQ0FBQ00sUUFKcEI7QUFLQyxZQUFRLEVBQUc2RztBQUxaLElBN0JELEVBcUNDLHVDQUFDLG1DQUFEO0FBQ0MsU0FBSyxFQUFHbkcsd0JBQUUsQ0FBRSxXQUFGLEVBQWUsY0FBZixDQURYO0FBRUMsUUFBSSxFQUFDLE1BRk47QUFHQyxlQUFXLEVBQUdBLHdCQUFFLENBQUUsaUJBQUYsRUFBcUIsY0FBckIsQ0FIakI7QUFJQyxTQUFLLEVBQUdoQixVQUFVLENBQUNPLFNBSnBCO0FBS0MsWUFBUSxFQUFHOEc7QUFMWixJQXJDRCxDQTNDRCxFQXlGQyx1Q0FBQyxpQ0FBRDtBQUNDLFNBQUssRUFBR3JHLHdCQUFFLENBQUUsdUJBQUYsRUFBMkIsY0FBM0IsQ0FEWDtBQUVDLGVBQVcsRUFBRztBQUZmLEtBSUMsdUNBQUMscUNBQUQ7QUFDQyxTQUFLLEVBQUdBLHdCQUFFLENBQUUsVUFBRixFQUFjLGNBQWQsQ0FEWDtBQUVDLFNBQUssRUFBR2hCLFVBQVUsQ0FBQ0UsSUFGcEI7QUFHQyxXQUFPLEVBQUcsQ0FDVDtBQUFFd0YsTUFBQUEsS0FBSyxFQUFFMUUsd0JBQUUsQ0FBRSxVQUFGLEVBQWMsY0FBZCxDQUFYO0FBQTJDbUIsTUFBQUEsS0FBSyxFQUFFO0FBQWxELEtBRFMsRUFFVDtBQUFFdUQsTUFBQUEsS0FBSyxFQUFFMUUsd0JBQUUsQ0FBRSxnQkFBRixFQUFvQixjQUFwQixDQUFYO0FBQWlEbUIsTUFBQUEsS0FBSyxFQUFFO0FBQXhELEtBRlMsRUFHVDtBQUFFdUQsTUFBQUEsS0FBSyxFQUFFMUUsd0JBQUUsQ0FBRSxRQUFGLEVBQVksY0FBWixDQUFYO0FBQXlDbUIsTUFBQUEsS0FBSyxFQUFFO0FBQWhELEtBSFMsRUFJVDtBQUFFdUQsTUFBQUEsS0FBSyxFQUFFMUUsd0JBQUUsQ0FBRSxTQUFGLEVBQWEsY0FBYixDQUFYO0FBQTBDbUIsTUFBQUEsS0FBSyxFQUFFO0FBQWpELEtBSlMsQ0FIWDtBQVNDLFlBQVEsRUFBR21GO0FBVFosSUFKRCxFQWdCQyx1Q0FBQyxvQ0FBRDtBQUNDLFNBQUssRUFBR3RHLHdCQUFFLENBQUUsZ0JBQUYsRUFBb0IsY0FBcEIsQ0FEWDtBQUVDLFNBQUssRUFBR2hCLFVBQVUsQ0FBQ1EsSUFGcEI7QUFHQyxZQUFRLEVBQUdrSCxVQUhaO0FBSUMsT0FBRyxFQUFHLENBSlA7QUFLQyxPQUFHLEVBQUc7QUFMUCxJQWhCRCxFQXdCQyx1Q0FBQyxvQ0FBRDtBQUNDLFNBQUssRUFBRzFHLHdCQUFFLENBQUUsWUFBRixFQUFnQixjQUFoQixDQURYO0FBRUMsU0FBSyxFQUFHaEIsVUFBVSxDQUFDUyxNQUZwQjtBQUdDLFlBQVEsRUFBR21ILFlBSFo7QUFJQyxPQUFHLEVBQUcsR0FKUDtBQUtDLE9BQUcsRUFBRztBQUxQLElBeEJELENBekZELEVBMEhDLHVDQUFDLGlDQUFEO0FBQ0MsU0FBSyxFQUFHNUcsd0JBQUUsQ0FBRSxVQUFGLEVBQWMsY0FBZCxDQURYO0FBRUMsZUFBVyxFQUFHO0FBRmYsS0FJQyx1Q0FBQyxtQ0FBRCxRQUNHQSx3QkFBRSxDQUFFLGlKQUFGLEVBQXFKLGNBQXJKLENBREwsQ0FKRCxFQVFDLHVDQUFDLHFDQUFEO0FBQ0MsU0FBSyxFQUFHQSx3QkFBRSxDQUFFLGVBQUYsRUFBbUIsY0FBbkIsQ0FEWDtBQUVDLFdBQU8sRUFBR2hCLFVBQVUsQ0FBQ1UsU0FGdEI7QUFHQyxZQUFRLEVBQUdtSDtBQUhaLElBUkQsRUFjQyx1Q0FBQyxxQ0FBRDtBQUNDLFNBQUssRUFBRzdHLHdCQUFFLENBQUUsa0JBQUYsRUFBc0IsY0FBdEIsQ0FEWDtBQUVDLFdBQU8sRUFBR2hCLFVBQVUsQ0FBQ1csY0FGdEI7QUFHQyxZQUFRLEVBQUdtSDtBQUhaLElBZEQsRUFvQkMsdUNBQUMscUNBQUQ7QUFDQyxTQUFLLEVBQUc5Ryx3QkFBRSxDQUFFLGNBQUYsRUFBa0IsY0FBbEIsQ0FEWDtBQUVDLFdBQU8sRUFBR2hCLFVBQVUsQ0FBQ1ksV0FGdEI7QUFHQyxZQUFRLEVBQUdtSDtBQUhaLElBcEJELEVBMEJDLHVDQUFDLHFDQUFEO0FBQ0MsU0FBSyxFQUFHL0csd0JBQUUsQ0FBRSxxQkFBRixFQUF5QixjQUF6QixDQURYO0FBRUMsV0FBTyxFQUFHaEIsVUFBVSxDQUFDYSxpQkFGdEI7QUFHQyxZQUFRLEVBQUdtSDtBQUhaLElBMUJELEVBZ0NDLHVDQUFDLHFDQUFEO0FBQ0MsU0FBSyxFQUFHaEgsd0JBQUUsQ0FBRSxxQkFBRixFQUF5QixjQUF6QixDQURYO0FBRUMsV0FBTyxFQUFHaEIsVUFBVSxDQUFDYyxpQkFGdEI7QUFHQyxZQUFRLEVBQUdtSDtBQUhaLElBaENELENBMUhELEVBaUtDLHVDQUFDLGlDQUFEO0FBQ0MsU0FBSyxFQUFHakgsd0JBQUUsQ0FBRSxTQUFGLEVBQWEsY0FBYixDQURYO0FBRUMsZUFBVyxFQUFHLEtBRmY7QUFHQyxVQUFNLEVBQUcsVUFBVTJGLFlBQVYsR0FBeUIsSUFBekIsR0FBZ0MwQixTQUgxQztBQUlDLFlBQVEsRUFBRyxNQUFNO0FBQ2hCLFVBQUssVUFBVTFCLFlBQWYsRUFBOEI7QUFDN0JDLFFBQUFBLGFBQWEsQ0FBRSxJQUFGLENBQWI7QUFDQTtBQUNEO0FBUkYsS0FVQyx1Q0FBQyxjQUFEO0FBQ0MsV0FBTyxFQUFHNUcsVUFBVSxDQUFDZSxPQUR0QjtBQUVDLGdCQUFZLEVBQUdpRCxZQUZoQjtBQUdDLG9CQUFnQixFQUFHQyxnQkFIcEI7QUFJQyxhQUFTLEVBQUc0QyxlQUpiO0FBS0MsdUJBQW1CLEVBQUcvQyxtQkFMdkI7QUFNQyxlQUFXLEVBQUc2QztBQU5mLElBVkQsQ0FqS0QsRUFxTEMsdUNBQUMsaUNBQUQ7QUFDQyxTQUFLLEVBQUczRix3QkFBRSxDQUFFLGlCQUFGLEVBQXFCLGNBQXJCLENBRFg7QUFFQyxlQUFXLEVBQUc7QUFGZixLQUlDLHVDQUFDLG1DQUFEO0FBQ0MsU0FBSyxFQUFHQSx3QkFBRSxDQUFFLHFCQUFGLEVBQXlCLGNBQXpCLENBRFg7QUFFQyxRQUFJLEVBQUMsTUFGTjtBQUdDLGVBQVcsRUFBR0Esd0JBQUUsQ0FBRSxxQkFBRixFQUF5QixjQUF6QixDQUhqQjtBQUlDLFNBQUssRUFBR1EsR0FKVDtBQUtDLGFBQVMsRUFBQywrQkFMWDtBQU1DLFlBQVEsRUFBR0ksU0FOWjtBQU9DLFFBQUksRUFBR1osd0JBQUUsQ0FBRSwySEFBRixFQUErSCxjQUEvSDtBQVBWLElBSkQsRUFjQyx1Q0FBQyw4QkFBRDtBQUNDLFdBQU8sTUFEUjtBQUVDLGVBQVcsTUFGWjtBQUdDLFFBQUksRUFBQyxRQUhOO0FBSUMsV0FBTyxFQUFHYSxVQUpYO0FBS0MsVUFBTSxFQUFHRjtBQUxWLEtBT0dYLHdCQUFFLENBQUUsY0FBRixFQUFrQixjQUFsQixDQVBMLENBZEQsQ0FyTEQsQ0FERDtBQWdOQSxDQWxURDs7QUFvVEEsOENBQWV3RixTQUFmLEU7Ozs7QUMzVUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQVNBO0FBT0E7QUFDQTtBQUNBOztBQUNBOztBQUVBLE1BQU1nQyxXQUFXLEdBQUcsQ0FBQztBQUNwQjVFLEVBQUFBLE1BRG9CO0FBRXBCNkUsRUFBQUEsVUFGb0I7QUFHcEIzRSxFQUFBQSxtQkFIb0I7QUFJcEJrQyxFQUFBQSxTQUpvQjtBQUtwQjBDLEVBQUFBO0FBTG9CLENBQUQsS0FNZDtBQUNMMUcsRUFBQUEsa0NBQVMsQ0FBRSxNQUFNO0FBQ2hCMkcsSUFBQUEsS0FBSyxDQUFFL0UsTUFBTSxDQUFDM0QsRUFBVCxDQUFMO0FBQ0EySSxJQUFBQSxXQUFXLENBQUVoRixNQUFNLENBQUN2RCxRQUFULENBQVg7QUFDQXdJLElBQUFBLFFBQVEsQ0FBRWpGLE1BQU0sQ0FBQzRCLEtBQVQsQ0FBUjtBQUNBc0QsSUFBQUEsT0FBTyxDQUFFbEYsTUFBTSxDQUFDNkIsSUFBVCxDQUFQO0FBQ0FzRCxJQUFBQSxjQUFjLENBQUVuRixNQUFNLENBQUMrQixXQUFULENBQWQ7QUFDQXFELElBQUFBLFdBQVcsQ0FBRXBGLE1BQU0sQ0FBQ3RELFFBQVQsQ0FBWDtBQUNBMkksSUFBQUEsWUFBWSxDQUFFckYsTUFBTSxDQUFDckQsU0FBVCxDQUFaO0FBQ0EsR0FSUSxFQVFOLENBQUVxRCxNQUFGLENBUk0sQ0FBVDtBQVVBLFFBQU1NLFNBQVMsR0FBR2pDLCtCQUFNLENBQUUsSUFBRixDQUF4QjtBQUVBLFFBQU0sQ0FBRWhDLEVBQUYsRUFBTTBJLEtBQU4sSUFBZ0I5QyxpQ0FBUSxDQUFFakMsTUFBTSxDQUFDM0QsRUFBVCxDQUE5QjtBQUNBLFFBQU0sQ0FBRUksUUFBRixFQUFZdUksV0FBWixJQUE0Qi9DLGlDQUFRLENBQUVqQyxNQUFNLENBQUN2RCxRQUFULENBQTFDO0FBQ0EsUUFBTSxDQUFFbUYsS0FBRixFQUFTcUQsUUFBVCxJQUFzQmhELGlDQUFRLENBQUVqQyxNQUFNLENBQUM0QixLQUFULENBQXBDO0FBQ0EsUUFBTSxDQUFFQyxJQUFGLEVBQVFxRCxPQUFSLElBQW9CakQsaUNBQVEsQ0FBRWpDLE1BQU0sQ0FBQzZCLElBQVQsQ0FBbEM7QUFDQSxRQUFNLENBQUVFLFdBQUYsRUFBZW9ELGNBQWYsSUFBa0NsRCxpQ0FBUSxDQUFFakMsTUFBTSxDQUFDK0IsV0FBVCxDQUFoRDtBQUNBLFFBQU0sQ0FBRXJGLFFBQUYsRUFBWTBJLFdBQVosSUFBNEJuRCxpQ0FBUSxDQUFFakMsTUFBTSxDQUFDdEQsUUFBVCxDQUExQztBQUNBLFFBQU0sQ0FBRUMsU0FBRixFQUFhMEksWUFBYixJQUE4QnBELGlDQUFRLENBQUVqQyxNQUFNLENBQUNyRCxTQUFULENBQTVDOztBQUVBLFFBQU00RCxVQUFVLEdBQUcsTUFBTTtBQUN4QixVQUFNQyxRQUFRLEdBQUdDLFFBQVEsQ0FBQ0Msc0JBQVQsQ0FBaUMsZUFBakMsQ0FBakI7QUFFQUMsSUFBQUEsTUFBTSxDQUFDQyxJQUFQLENBQWFKLFFBQWIsRUFBd0JLLE9BQXhCLENBQWlDbEIsQ0FBQyxJQUFJYSxRQUFRLENBQUNiLENBQUQsQ0FBUixDQUFZRixNQUFaLEVBQXRDO0FBRUEsVUFBTXFCLFNBQVMsR0FBRyxJQUFJaEMsTUFBTSxDQUFDaUMsTUFBUCxDQUFjQyxJQUFkLENBQW1CQyxNQUFuQixDQUEwQkMsU0FBOUIsQ0FBeUNaLFNBQVMsQ0FBQ25CLE9BQW5ELENBQWxCO0FBRUEyQixJQUFBQSxTQUFTLENBQUNLLFdBQVYsQ0FBdUIsZ0JBQXZCLEVBQXlDLE1BQU07QUFDOUMsWUFBTUYsTUFBTSxHQUFHSCxTQUFTLENBQUNNLFNBQVYsRUFBZjs7QUFFQSxVQUFLSCxNQUFNLElBQU0sSUFBSUEsTUFBTSxDQUFDSSxNQUE1QixFQUF1QztBQUN0Q0osUUFBQUEsTUFBTSxDQUFDSixPQUFQLENBQWdCUyxLQUFLLElBQUk7QUFDeEIsZ0JBQU03RSxRQUFRLEdBQUc2RSxLQUFLLENBQUNDLGlCQUFOLElBQTJCRCxLQUFLLENBQUNFLElBQWxEO0FBQ0EsZ0JBQU05RSxRQUFRLEdBQUc0RSxLQUFLLENBQUNHLFFBQU4sQ0FBZWhGLFFBQWYsQ0FBd0JpRixHQUF4QixFQUFqQjtBQUNBLGdCQUFNL0UsU0FBUyxHQUFHMkUsS0FBSyxDQUFDRyxRQUFOLENBQWVoRixRQUFmLENBQXdCa0YsR0FBeEIsRUFBbEI7QUFDQXFELFVBQUFBLFdBQVcsQ0FBRXZJLFFBQUYsQ0FBWDtBQUNBMkksVUFBQUEsV0FBVyxDQUFFMUksUUFBRixDQUFYO0FBQ0EySSxVQUFBQSxZQUFZLENBQUUxSSxTQUFGLENBQVo7QUFDQSxTQVBEO0FBUUE7QUFDRCxLQWJEO0FBY0EsR0FyQkQ7O0FBdUJBLFNBQ0MsdUNBQUMsNkJBQUQ7QUFDQyxTQUFLLEVBQUdTLHdCQUFFLENBQUUsWUFBRixFQUFnQixjQUFoQixDQURYO0FBRUMsa0JBQWMsRUFBRzBILEtBRmxCO0FBR0MsNkJBQXlCLEVBQUc7QUFIN0IsS0FLR0QsVUFBVSxJQUNYLHVDQUFDLDZCQUFELFFBQ0MsdUNBQUMsbUNBQUQ7QUFDQyxTQUFLLEVBQUd6SCx3QkFBRSxDQUFFLFVBQUYsRUFBYyxjQUFkLENBRFg7QUFFQyxNQUFFLEVBQUksNkJBQTZCNEMsTUFBTSxDQUFDM0QsRUFBSTtBQUYvQyxLQUlDO0FBQ0MsUUFBSSxFQUFDLE1BRE47QUFFQyxNQUFFLEVBQUksNkJBQTZCQSxFQUFJLEVBRnhDO0FBR0MsZUFBVyxFQUFHZSx3QkFBRSxDQUFFLG1CQUFGLEVBQXVCLGNBQXZCLENBSGpCO0FBSUMsU0FBSyxFQUFHWCxRQUpUO0FBS0MsYUFBUyxFQUFDLDZDQUxYO0FBTUMsT0FBRyxFQUFHNkQsU0FOUDtBQU9DLFdBQU8sRUFBR0MsVUFQWDtBQVFDLFlBQVEsRUFBR1osQ0FBQyxJQUFJcUYsV0FBVyxDQUFFckYsQ0FBQyxDQUFDQyxNQUFGLENBQVNyQixLQUFYLENBUjVCO0FBU0MsWUFBUSxFQUFHLENBQUUyQjtBQVRkLElBSkQsQ0FERCxFQWtCQyx1Q0FBQyxtQ0FBRDtBQUNDLFNBQUssRUFBRzlDLHdCQUFFLENBQUUsVUFBRixFQUFjLGNBQWQsQ0FEWDtBQUVDLFFBQUksRUFBQyxNQUZOO0FBR0MsU0FBSyxFQUFHVixRQUhUO0FBSUMsWUFBUSxFQUFHMEk7QUFKWixJQWxCRCxFQXlCQyx1Q0FBQyxtQ0FBRDtBQUNDLFNBQUssRUFBR2hJLHdCQUFFLENBQUUsV0FBRixFQUFlLGNBQWYsQ0FEWDtBQUVDLFFBQUksRUFBQyxNQUZOO0FBR0MsU0FBSyxFQUFHVCxTQUhUO0FBSUMsWUFBUSxFQUFHMEk7QUFKWixJQXpCRCxDQU5GLEVBd0NDLHVDQUFDLG1DQUFEO0FBQ0MsU0FBSyxFQUFHakksd0JBQUUsQ0FBRSxPQUFGLEVBQVcsY0FBWCxDQURYO0FBRUMsUUFBSSxFQUFDLE1BRk47QUFHQyxTQUFLLEVBQUd3RSxLQUhUO0FBSUMsWUFBUSxFQUFHcUQ7QUFKWixJQXhDRCxFQStDQyx1Q0FBQyxhQUFEO0FBQ0MsU0FBSyxFQUFHN0gsd0JBQUUsQ0FBRSxhQUFGLEVBQWlCLGNBQWpCLENBRFg7QUFFQyxRQUFJLEVBQUMsTUFGTjtBQUdDLFNBQUssRUFBRzJFLFdBSFQ7QUFJQyxZQUFRLEVBQUdvRDtBQUpaLElBL0NELEVBc0RDLHVDQUFDLHFDQUFEO0FBQ0MsU0FBSyxFQUFHL0gsd0JBQUUsQ0FBRSxVQUFGLEVBQWMsY0FBZCxDQURYO0FBRUMsU0FBSyxFQUFHeUUsSUFBSSxJQUFJLHVEQUZqQjtBQUdDLFdBQU8sRUFBRyxDQUNUO0FBQUVDLE1BQUFBLEtBQUssRUFBRTFFLHdCQUFFLENBQUUsS0FBRixFQUFTLGNBQVQsQ0FBWDtBQUFzQ21CLE1BQUFBLEtBQUssRUFBRTtBQUE3QyxLQURTLEVBRVQ7QUFBRXVELE1BQUFBLEtBQUssRUFBRTFFLHdCQUFFLENBQUUsTUFBRixFQUFVLGNBQVYsQ0FBWDtBQUF1Q21CLE1BQUFBLEtBQUssRUFBRTtBQUE5QyxLQUZTLEVBR1Q7QUFBRXVELE1BQUFBLEtBQUssRUFBRTFFLHdCQUFFLENBQUUsUUFBRixFQUFZLGNBQVosQ0FBWDtBQUF5Q21CLE1BQUFBLEtBQUssRUFBRTtBQUFoRCxLQUhTLEVBSVQ7QUFBRXVELE1BQUFBLEtBQUssRUFBRTFFLHdCQUFFLENBQUUsT0FBRixFQUFXLGNBQVgsQ0FBWDtBQUF3Q21CLE1BQUFBLEtBQUssRUFBRTtBQUEvQyxLQUpTLEVBS1Q7QUFBRXVELE1BQUFBLEtBQUssRUFBRTFFLHdCQUFFLENBQUUsUUFBRixFQUFZLGNBQVosQ0FBWDtBQUF5Q21CLE1BQUFBLEtBQUssRUFBRTtBQUFoRCxLQUxTLENBSFg7QUFVQyxZQUFRLEVBQUcyRztBQVZaLElBdERELEVBbUVDLHVDQUFDLG1DQUFELFFBQ0MsdUNBQUMsOEJBQUQ7QUFDQyxXQUFPLE1BRFI7QUFFQyxhQUFTLE1BRlY7QUFHQyxXQUFPLEVBQUcsTUFBTTlDLFNBQVMsQ0FBRTNGLFFBQUYsRUFBWW1GLEtBQVosRUFBbUJDLElBQW5CLEVBQXlCRSxXQUF6QixFQUFzQ3JGLFFBQXRDLEVBQWdEQyxTQUFoRDtBQUgxQixLQUtHUyx3QkFBRSxDQUFFLEtBQUYsRUFBUyxjQUFULENBTEwsQ0FERCxFQVNDLHVDQUFDLDhCQUFEO0FBQ0MsV0FBTyxNQURSO0FBRUMsZUFBVyxNQUZaO0FBR0MsV0FBTyxFQUFHMEg7QUFIWCxLQUtHMUgsd0JBQUUsQ0FBRSxRQUFGLEVBQVksY0FBWixDQUxMLENBVEQsQ0FuRUQsQ0FERDtBQXVGQSxDQXpJRDs7QUEySUEsaURBQWV3SCxXQUFmLEU7Ozs7QUNyS0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7O0FBQ0E7QUFFQTtBQUVBOztBQUtBLE1BQU1VLEdBQUcsR0FBRyxDQUFDO0FBQ1psSixFQUFBQSxVQURZO0FBRVp1QixFQUFBQSxTQUZZO0FBR1o0SCxFQUFBQSxPQUhZO0FBSVpDLEVBQUFBLFVBSlk7QUFLWkMsRUFBQUEsV0FMWTtBQU1aQyxFQUFBQSxZQU5ZO0FBT1pDLEVBQUFBO0FBUFksQ0FBRCxLQVFOO0FBQ0x2SCxFQUFBQSxrQ0FBUyxDQUFFLE1BQU07QUFDaEIsUUFBS29ILFVBQUwsRUFBa0I7QUFDakJELE1BQUFBLE9BQU87QUFDUDtBQUNELEdBSlEsRUFJTixDQUFFQyxVQUFGLENBSk0sQ0FBVDtBQU1BLFNBQ0MsdUNBQUMsNkJBQUQsUUFDQztBQUNDLE1BQUUsRUFBR3BKLFVBQVUsQ0FBQ0MsRUFEakI7QUFFQyxhQUFTLEVBQUd3RCxvQkFBVSxDQUNyQmxDLFNBRHFCLEVBRXJCO0FBQUUsNkJBQXVCZ0k7QUFBekIsS0FGcUIsQ0FGdkI7QUFNQyxTQUFLLEVBQUc7QUFDUDlJLE1BQUFBLE1BQU0sRUFBRVQsVUFBVSxDQUFDUyxNQUFYLEdBQW9CO0FBRHJCO0FBTlQsSUFERCxFQWFHNEksV0FBVyxJQUNaLHVDQUFDLDhCQUFEO0FBQ0MsYUFBUyxFQUFDLG9EQURYO0FBRUMsU0FBSyxFQUFHckksd0JBQUUsQ0FBRSxZQUFGLEVBQWdCLGNBQWhCLENBRlg7QUFHQyxXQUFPLEVBQUdzSTtBQUhYLEtBS0M7QUFBTSxhQUFTLEVBQUM7QUFBaEIsSUFMRCxDQWRGLENBREQ7QUF5QkEsQ0F4Q0Q7O0FBMENBLHdDQUFlSixHQUFmLEU7O0FDM0RBLE1BQU1NLE1BQU0sR0FBRztBQUNkQyxFQUFBQSxRQUFRLEVBQUUsRUFESTtBQUVkQyxFQUFBQSxNQUFNLEVBQUUsQ0FDUDtBQUNDLG1CQUFlLFVBRGhCO0FBRUMsZUFBVyxDQUNWO0FBQ0MsZUFBUztBQURWLEtBRFU7QUFGWixHQURPLEVBU1A7QUFDQyxtQkFBZSxhQURoQjtBQUVDLGVBQVcsQ0FDVjtBQUNDLG9CQUFjO0FBRGYsS0FEVTtBQUZaLEdBVE8sRUFpQlA7QUFDQyxtQkFBZSxrQkFEaEI7QUFFQyxlQUFXLENBQ1Y7QUFDQyxlQUFTO0FBRFYsS0FEVTtBQUZaLEdBakJPLEVBeUJQO0FBQ0MsbUJBQWUsb0JBRGhCO0FBRUMsZUFBVyxDQUNWO0FBQ0MsZUFBUztBQURWLEtBRFU7QUFGWixHQXpCTyxFQWlDUDtBQUNDLG1CQUFlLDRCQURoQjtBQUVDLG1CQUFlLGtCQUZoQjtBQUdDLGVBQVcsQ0FDVjtBQUNDLGVBQVM7QUFEVixLQURVO0FBSFosR0FqQ08sRUEwQ1A7QUFDQyxtQkFBZSxLQURoQjtBQUVDLG1CQUFlLFVBRmhCO0FBR0MsZUFBVyxDQUNWO0FBQ0MsZUFBUztBQURWLEtBRFU7QUFIWixHQTFDTyxFQW1EUDtBQUNDLG1CQUFlLEtBRGhCO0FBRUMsbUJBQWUsa0JBRmhCO0FBR0MsZUFBVyxDQUNWO0FBQ0MsZUFBUztBQURWLEtBRFU7QUFIWixHQW5ETyxFQTREUDtBQUNDLG1CQUFlLFVBRGhCO0FBRUMsbUJBQWUsVUFGaEI7QUFHQyxlQUFXLENBQ1Y7QUFDQyxlQUFTO0FBRFYsS0FEVTtBQUhaLEdBNURPLEVBcUVQO0FBQ0MsbUJBQWUsVUFEaEI7QUFFQyxtQkFBZSxrQkFGaEI7QUFHQyxlQUFXLENBQ1Y7QUFDQyxlQUFTO0FBRFYsS0FEVTtBQUhaLEdBckVPLEVBOEVQO0FBQ0MsbUJBQWUsTUFEaEI7QUFFQyxtQkFBZSxVQUZoQjtBQUdDLGVBQVcsQ0FDVjtBQUNDLGVBQVM7QUFEVixLQURVO0FBSFosR0E5RU8sRUF1RlA7QUFDQyxtQkFBZSxlQURoQjtBQUVDLG1CQUFlLGtCQUZoQjtBQUdDLGVBQVcsQ0FDVjtBQUNDLGVBQVM7QUFEVixLQURVO0FBSFosR0F2Rk8sRUFnR1A7QUFDQyxtQkFBZSxjQURoQjtBQUVDLG1CQUFlLFVBRmhCO0FBR0MsZUFBVyxDQUNWO0FBQ0MsZUFBUztBQURWLEtBRFU7QUFIWixHQWhHTyxFQXlHUDtBQUNDLG1CQUFlLGNBRGhCO0FBRUMsbUJBQWUsa0JBRmhCO0FBR0MsZUFBVyxDQUNWO0FBQ0MsZUFBUztBQURWLEtBRFU7QUFIWixHQXpHTyxFQWtIUDtBQUNDLG1CQUFlLFlBRGhCO0FBRUMsbUJBQWUsa0JBRmhCO0FBR0MsZUFBVyxDQUNWO0FBQ0MsZUFBUztBQURWLEtBRFU7QUFIWixHQWxITyxFQTJIUDtBQUNDLG1CQUFlLGNBRGhCO0FBRUMsbUJBQWUsVUFGaEI7QUFHQyxlQUFXLENBQ1Y7QUFDQyxlQUFTO0FBRFYsS0FEVTtBQUhaLEdBM0hPLEVBb0lQO0FBQ0MsbUJBQWUsaUJBRGhCO0FBRUMsbUJBQWUsVUFGaEI7QUFHQyxlQUFXLENBQ1Y7QUFDQyxlQUFTO0FBRFYsS0FEVTtBQUhaLEdBcElPLEVBNklQO0FBQ0MsbUJBQWUsT0FEaEI7QUFFQyxtQkFBZSxVQUZoQjtBQUdDLGVBQVcsQ0FDVjtBQUNDLGVBQVM7QUFEVixLQURVO0FBSFosR0E3SU8sRUFzSlA7QUFDQyxtQkFBZSxPQURoQjtBQUVDLG1CQUFlLGtCQUZoQjtBQUdDLGVBQVcsQ0FDVjtBQUNDLGVBQVM7QUFEVixLQURVO0FBSFosR0F0Sk8sQ0FGTTtBQWtLZEMsRUFBQUEsS0FBSyxFQUFFLENBQ047QUFDQyxtQkFBZSxVQURoQjtBQUVDLGVBQVcsQ0FDVjtBQUNDLGVBQVM7QUFEVixLQURVO0FBRlosR0FETSxFQVNOO0FBQ0MsbUJBQWUsa0JBRGhCO0FBRUMsZUFBVyxDQUNWO0FBQ0MsZUFBUztBQURWLEtBRFU7QUFGWixHQVRNLEVBaUJOO0FBQ0MsbUJBQWUsb0JBRGhCO0FBRUMsZUFBVyxDQUNWO0FBQ0MsZUFBUztBQURWLEtBRFU7QUFGWixHQWpCTSxFQXlCTjtBQUNDLG1CQUFlLGdCQURoQjtBQUVDLG1CQUFlLGlCQUZoQjtBQUdDLGVBQVcsQ0FDVjtBQUNDLGVBQVM7QUFEVixLQURVO0FBSFosR0F6Qk0sRUFrQ047QUFDQyxtQkFBZSw0QkFEaEI7QUFFQyxtQkFBZSxpQkFGaEI7QUFHQyxlQUFXLENBQ1Y7QUFDQyxlQUFTO0FBRFYsS0FEVTtBQUhaLEdBbENNLEVBMkNOO0FBQ0MsbUJBQWUsNEJBRGhCO0FBRUMsbUJBQWUsa0JBRmhCO0FBR0MsZUFBVyxDQUNWO0FBQ0MsZUFBUztBQURWLEtBRFU7QUFIWixHQTNDTSxFQW9ETjtBQUNDLG1CQUFlLG1CQURoQjtBQUVDLG1CQUFlLFVBRmhCO0FBR0MsZUFBVyxDQUNWO0FBQ0MsZUFBUztBQURWLEtBRFU7QUFIWixHQXBETSxFQTZETjtBQUNDLG1CQUFlLEtBRGhCO0FBRUMsbUJBQWUsVUFGaEI7QUFHQyxlQUFXLENBQ1Y7QUFDQyxlQUFTO0FBRFYsS0FEVTtBQUhaLEdBN0RNLEVBc0VOO0FBQ0MsbUJBQWUsS0FEaEI7QUFFQyxtQkFBZSxrQkFGaEI7QUFHQyxlQUFXLENBQ1Y7QUFDQyxlQUFTO0FBRFYsS0FEVTtBQUhaLEdBdEVNLEVBK0VOO0FBQ0MsbUJBQWUsVUFEaEI7QUFFQyxtQkFBZSxlQUZoQjtBQUdDLGVBQVcsQ0FDVjtBQUNDLGVBQVM7QUFEVixLQURVO0FBSFosR0EvRU0sRUF3Rk47QUFDQyxtQkFBZSxVQURoQjtBQUVDLG1CQUFlLGtCQUZoQjtBQUdDLGVBQVcsQ0FDVjtBQUNDLGVBQVM7QUFEVixLQURVO0FBSFosR0F4Rk0sRUFpR047QUFDQyxtQkFBZSxNQURoQjtBQUVDLG1CQUFlLFVBRmhCO0FBR0MsZUFBVyxDQUNWO0FBQ0MsZUFBUztBQURWLEtBRFU7QUFIWixHQWpHTSxFQTBHTjtBQUNDLG1CQUFlLGVBRGhCO0FBRUMsbUJBQWUsVUFGaEI7QUFHQyxlQUFXLENBQ1Y7QUFDQyxlQUFTO0FBRFYsS0FEVTtBQUhaLEdBMUdNLEVBbUhOO0FBQ0MsbUJBQWUsY0FEaEI7QUFFQyxtQkFBZSxVQUZoQjtBQUdDLGVBQVcsQ0FDVjtBQUNDLGVBQVM7QUFEVixLQURVO0FBSFosR0FuSE0sRUE0SE47QUFDQyxtQkFBZSxjQURoQjtBQUVDLG1CQUFlLGlCQUZoQjtBQUdDLGVBQVcsQ0FDVjtBQUNDLGVBQVM7QUFEVixLQURVO0FBSFosR0E1SE0sRUFxSU47QUFDQyxtQkFBZSxnQ0FEaEI7QUFFQyxtQkFBZSxVQUZoQjtBQUdDLGVBQVcsQ0FDVjtBQUNDLGVBQVM7QUFEVixLQURVO0FBSFosR0FySU0sRUE4SU47QUFDQyxtQkFBZSxnQ0FEaEI7QUFFQyxtQkFBZSxpQkFGaEI7QUFHQyxlQUFXLENBQ1Y7QUFDQyxlQUFTO0FBRFYsS0FEVTtBQUhaLEdBOUlNLEVBdUpOO0FBQ0MsbUJBQWUsWUFEaEI7QUFFQyxtQkFBZSxrQkFGaEI7QUFHQyxlQUFXLENBQ1Y7QUFDQyxlQUFTO0FBRFYsS0FEVTtBQUhaLEdBdkpNLEVBZ0tOO0FBQ0MsbUJBQWUsY0FEaEI7QUFFQyxtQkFBZSxVQUZoQjtBQUdDLGVBQVcsQ0FDVjtBQUNDLGVBQVM7QUFEVixLQURVO0FBSFosR0FoS00sRUF5S047QUFDQyxtQkFBZSxjQURoQjtBQUVDLG1CQUFlLGtCQUZoQjtBQUdDLGVBQVcsQ0FDVjtBQUNDLGVBQVM7QUFEVixLQURVO0FBSFosR0F6S00sRUFrTE47QUFDQyxtQkFBZSxjQURoQjtBQUVDLG1CQUFlLG9CQUZoQjtBQUdDLGVBQVcsQ0FDVjtBQUNDLGVBQVM7QUFEVixLQURVO0FBSFosR0FsTE0sRUEyTE47QUFDQyxtQkFBZSxpQkFEaEI7QUFFQyxtQkFBZSxVQUZoQjtBQUdDLGVBQVcsQ0FDVjtBQUNDLGVBQVM7QUFEVixLQURVO0FBSFosR0EzTE0sRUFvTU47QUFDQyxtQkFBZSxPQURoQjtBQUVDLG1CQUFlLGVBRmhCO0FBR0MsZUFBVyxDQUNWO0FBQ0MsZUFBUztBQURWLEtBRFU7QUFIWixHQXBNTSxFQTZNTjtBQUNDLG1CQUFlLE9BRGhCO0FBRUMsbUJBQWUsa0JBRmhCO0FBR0MsZUFBVyxDQUNWO0FBQ0MsZUFBUztBQURWLEtBRFU7QUFIWixHQTdNTSxDQWxLTztBQXlYZEMsRUFBQUEsSUFBSSxFQUFFLENBQ0w7QUFDQyxtQkFBZSxVQURoQjtBQUVDLGVBQVcsQ0FDVjtBQUNDLGVBQVM7QUFEVixLQURVO0FBRlosR0FESyxFQVNMO0FBQ0MsbUJBQWUsYUFEaEI7QUFFQyxlQUFXLENBQ1Y7QUFDQyxvQkFBYztBQURmLEtBRFU7QUFGWixHQVRLLEVBaUJMO0FBQ0MsbUJBQWUsa0JBRGhCO0FBRUMsZUFBVyxDQUNWO0FBQ0MsZUFBUztBQURWLEtBRFU7QUFGWixHQWpCSyxFQXlCTDtBQUNDLG1CQUFlLG9CQURoQjtBQUVDLGVBQVcsQ0FDVjtBQUNDLGVBQVM7QUFEVixLQURVO0FBRlosR0F6QkssRUFpQ0w7QUFDQyxtQkFBZSxnQkFEaEI7QUFFQyxtQkFBZSxVQUZoQjtBQUdDLGVBQVcsQ0FDVjtBQUNDLGVBQVM7QUFEVixLQURVO0FBSFosR0FqQ0ssRUEwQ0w7QUFDQyxtQkFBZSx3QkFEaEI7QUFFQyxtQkFBZSxrQkFGaEI7QUFHQyxlQUFXLENBQ1Y7QUFDQyxlQUFTO0FBRFYsS0FEVTtBQUhaLEdBMUNLLEVBbURMO0FBQ0MsbUJBQWUsNEJBRGhCO0FBRUMsZUFBVyxDQUNWO0FBQ0Msb0JBQWM7QUFEZixLQURVO0FBRlosR0FuREssRUEyREw7QUFDQyxtQkFBZSx5QkFEaEI7QUFFQyxtQkFBZSxrQkFGaEI7QUFHQyxlQUFXLENBQ1Y7QUFDQyxlQUFTO0FBRFYsS0FEVTtBQUhaLEdBM0RLLEVBb0VMO0FBQ0MsbUJBQWUsS0FEaEI7QUFFQyxtQkFBZSxrQkFGaEI7QUFHQyxlQUFXLENBQ1Y7QUFDQyxlQUFTO0FBRFYsS0FEVTtBQUhaLEdBcEVLLEVBNkVMO0FBQ0MsbUJBQWUsVUFEaEI7QUFFQyxtQkFBZSxVQUZoQjtBQUdDLGVBQVcsQ0FDVjtBQUNDLGVBQVM7QUFEVixLQURVO0FBSFosR0E3RUssRUFzRkw7QUFDQyxtQkFBZSxVQURoQjtBQUVDLG1CQUFlLGtCQUZoQjtBQUdDLGVBQVcsQ0FDVjtBQUNDLGVBQVM7QUFEVixLQURVO0FBSFosR0F0RkssRUErRkw7QUFDQyxtQkFBZSxVQURoQjtBQUVDLG1CQUFlLG9CQUZoQjtBQUdDLGVBQVcsQ0FDVjtBQUNDLGVBQVM7QUFEVixLQURVO0FBSFosR0EvRkssRUF3R0w7QUFDQyxtQkFBZSxNQURoQjtBQUVDLG1CQUFlLGVBRmhCO0FBR0MsZUFBVyxDQUNWO0FBQ0MsZUFBUztBQURWLEtBRFU7QUFIWixHQXhHSyxFQWlITDtBQUNDLG1CQUFlLE1BRGhCO0FBRUMsbUJBQWUsa0JBRmhCO0FBR0MsZUFBVyxDQUNWO0FBQ0MsZUFBUztBQURWLEtBRFU7QUFIWixHQWpISyxFQTBITDtBQUNDLG1CQUFlLGVBRGhCO0FBRUMsbUJBQWUsVUFGaEI7QUFHQyxlQUFXLENBQ1Y7QUFDQyxlQUFTO0FBRFYsS0FEVTtBQUhaLEdBMUhLLEVBbUlMO0FBQ0MsbUJBQWUsY0FEaEI7QUFFQyxtQkFBZSxVQUZoQjtBQUdDLGVBQVcsQ0FDVjtBQUNDLGVBQVM7QUFEVixLQURVO0FBSFosR0FuSUssRUE0SUw7QUFDQyxtQkFBZSxnQ0FEaEI7QUFFQyxtQkFBZSxVQUZoQjtBQUdDLGVBQVcsQ0FDVjtBQUNDLGVBQVM7QUFEVixLQURVO0FBSFosR0E1SUssRUFxSkw7QUFDQyxtQkFBZSxZQURoQjtBQUVDLG1CQUFlLGtCQUZoQjtBQUdDLGVBQVcsQ0FDVjtBQUNDLGVBQVM7QUFEVixLQURVO0FBSFosR0FySkssRUE4Skw7QUFDQyxtQkFBZSxTQURoQjtBQUVDLG1CQUFlLGtCQUZoQjtBQUdDLGVBQVcsQ0FDVjtBQUNDLGVBQVM7QUFEVixLQURVO0FBSFosR0E5SkssRUF1S0w7QUFDQyxtQkFBZSxPQURoQjtBQUVDLG1CQUFlLFVBRmhCO0FBR0MsZUFBVyxDQUNWO0FBQ0MsZUFBUztBQURWLEtBRFU7QUFIWixHQXZLSyxFQWdMTDtBQUNDLG1CQUFlLE9BRGhCO0FBRUMsbUJBQWUsa0JBRmhCO0FBR0MsZUFBVyxDQUNWO0FBQ0MsZUFBUztBQURWLEtBRFU7QUFIWixHQWhMSyxDQXpYUTtBQW1qQmRDLEVBQUFBLEtBQUssRUFBRSxDQUNOO0FBQ0MsbUJBQWUsVUFEaEI7QUFFQyxlQUFXLENBQ1Y7QUFDQyxlQUFTO0FBRFYsS0FEVTtBQUZaLEdBRE0sRUFTTjtBQUNDLG1CQUFlLGtCQURoQjtBQUVDLGVBQVcsQ0FDVjtBQUNDLGVBQVM7QUFEVixLQURVO0FBRlosR0FUTSxFQWlCTjtBQUNDLG1CQUFlLG9CQURoQjtBQUVDLGVBQVcsQ0FDVjtBQUNDLGVBQVM7QUFEVixLQURVO0FBRlosR0FqQk0sRUF5Qk47QUFDQyxtQkFBZSx5QkFEaEI7QUFFQyxtQkFBZSxrQkFGaEI7QUFHQyxlQUFXLENBQ1Y7QUFDQyxlQUFTO0FBRFYsS0FEVTtBQUhaLEdBekJNLEVBa0NOO0FBQ0MsbUJBQWUsS0FEaEI7QUFFQyxtQkFBZSxrQkFGaEI7QUFHQyxlQUFXLENBQ1Y7QUFDQyxlQUFTO0FBRFYsS0FEVTtBQUhaLEdBbENNLEVBMkNOO0FBQ0MsbUJBQWUsVUFEaEI7QUFFQyxtQkFBZSxVQUZoQjtBQUdDLGVBQVcsQ0FDVjtBQUNDLGVBQVM7QUFEVixLQURVO0FBSFosR0EzQ00sRUFvRE47QUFDQyxtQkFBZSxVQURoQjtBQUVDLG1CQUFlLGtCQUZoQjtBQUdDLGVBQVcsQ0FDVjtBQUNDLGVBQVM7QUFEVixLQURVO0FBSFosR0FwRE0sRUE2RE47QUFDQyxtQkFBZSxNQURoQjtBQUVDLG1CQUFlLFVBRmhCO0FBR0MsZUFBVyxDQUNWO0FBQ0MsZUFBUztBQURWLEtBRFU7QUFIWixHQTdETSxFQXNFTjtBQUNDLG1CQUFlLE1BRGhCO0FBRUMsbUJBQWUsaUJBRmhCO0FBR0MsZUFBVyxDQUNWO0FBQ0MsZUFBUztBQURWLEtBRFU7QUFIWixHQXRFTSxFQStFTjtBQUNDLG1CQUFlLE1BRGhCO0FBRUMsbUJBQWUsa0JBRmhCO0FBR0MsZUFBVyxDQUNWO0FBQ0MsZUFBUztBQURWLEtBRFU7QUFIWixHQS9FTSxFQXdGTjtBQUNDLG1CQUFlLGNBRGhCO0FBRUMsbUJBQWUsVUFGaEI7QUFHQyxlQUFXLENBQ1Y7QUFDQyxlQUFTO0FBRFYsS0FEVTtBQUhaLEdBeEZNLEVBaUdOO0FBQ0MsbUJBQWUsY0FEaEI7QUFFQyxtQkFBZSxpQkFGaEI7QUFHQyxlQUFXLENBQ1Y7QUFDQyxlQUFTO0FBRFYsS0FEVTtBQUhaLEdBakdNLEVBMEdOO0FBQ0MsbUJBQWUsY0FEaEI7QUFFQyxtQkFBZSxrQkFGaEI7QUFHQyxlQUFXLENBQ1Y7QUFDQyxlQUFTO0FBRFYsS0FEVTtBQUhaLEdBMUdNLEVBbUhOO0FBQ0MsbUJBQWUsU0FEaEI7QUFFQyxtQkFBZSxVQUZoQjtBQUdDLGVBQVcsQ0FDVjtBQUNDLGVBQVM7QUFEVixLQURVO0FBSFosR0FuSE0sRUE0SE47QUFDQyxtQkFBZSxpQkFEaEI7QUFFQyxtQkFBZSxrQkFGaEI7QUFHQyxlQUFXLENBQ1Y7QUFDQyxlQUFTO0FBRFYsS0FEVTtBQUhaLEdBNUhNLEVBcUlOO0FBQ0MsbUJBQWUsT0FEaEI7QUFFQyxtQkFBZSxVQUZoQjtBQUdDLGVBQVcsQ0FDVjtBQUNDLGVBQVM7QUFEVixLQURVO0FBSFosR0FySU0sRUE4SU47QUFDQyxtQkFBZSxPQURoQjtBQUVDLG1CQUFlLGtCQUZoQjtBQUdDLGVBQVcsQ0FDVjtBQUNDLGVBQVM7QUFEVixLQURVO0FBSFosR0E5SU0sRUF1Sk47QUFDQyxtQkFBZSxPQURoQjtBQUVDLG1CQUFlLG9CQUZoQjtBQUdDLGVBQVcsQ0FDVjtBQUNDLGVBQVM7QUFEVixLQURVO0FBSFosR0F2Sk0sQ0FuakJPO0FBb3RCZEMsRUFBQUEsU0FBUyxFQUFFLENBQ1Y7QUFDQyxtQkFBZSxVQURoQjtBQUVDLGVBQVcsQ0FDVjtBQUNDLGVBQVM7QUFEVixLQURVO0FBRlosR0FEVSxFQVNWO0FBQ0MsbUJBQWUsa0JBRGhCO0FBRUMsZUFBVyxDQUNWO0FBQ0MsZUFBUztBQURWLEtBRFU7QUFGWixHQVRVLEVBaUJWO0FBQ0MsbUJBQWUsb0JBRGhCO0FBRUMsZUFBVyxDQUNWO0FBQ0MsZUFBUztBQURWLEtBRFU7QUFGWixHQWpCVSxFQXlCVjtBQUNDLG1CQUFlLHdCQURoQjtBQUVDLG1CQUFlLGlCQUZoQjtBQUdDLGVBQVcsQ0FDVjtBQUNDLGVBQVM7QUFEVixLQURVO0FBSFosR0F6QlUsRUFrQ1Y7QUFDQyxtQkFBZSw0QkFEaEI7QUFFQyxtQkFBZSxrQkFGaEI7QUFHQyxlQUFXLENBQ1Y7QUFDQyxlQUFTO0FBRFYsS0FEVTtBQUhaLEdBbENVLEVBMkNWO0FBQ0MsbUJBQWUseUJBRGhCO0FBRUMsbUJBQWUsaUJBRmhCO0FBR0MsZUFBVyxDQUNWO0FBQ0MsZUFBUztBQURWLEtBRFU7QUFIWixHQTNDVSxFQW9EVjtBQUNDLG1CQUFlLG9CQURoQjtBQUVDLG1CQUFlLGlCQUZoQjtBQUdDLGVBQVcsQ0FDVjtBQUNDLGVBQVM7QUFEVixLQURVO0FBSFosR0FwRFUsRUE2RFY7QUFDQyxtQkFBZSxtQkFEaEI7QUFFQyxtQkFBZSxVQUZoQjtBQUdDLGVBQVcsQ0FDVjtBQUNDLGVBQVM7QUFEVixLQURVO0FBSFosR0E3RFUsRUFzRVY7QUFDQyxtQkFBZSxLQURoQjtBQUVDLG1CQUFlLFVBRmhCO0FBR0MsZUFBVyxDQUNWO0FBQ0MsZUFBUztBQURWLEtBRFU7QUFIWixHQXRFVSxFQStFVjtBQUNDLG1CQUFlLEtBRGhCO0FBRUMsbUJBQWUsa0JBRmhCO0FBR0MsZUFBVyxDQUNWO0FBQ0MsZUFBUztBQURWLEtBRFU7QUFIWixHQS9FVSxFQXdGVjtBQUNDLG1CQUFlLEtBRGhCO0FBRUMsbUJBQWUsb0JBRmhCO0FBR0MsZUFBVyxDQUNWO0FBQ0MsZUFBUztBQURWLEtBRFU7QUFIWixHQXhGVSxFQWlHVjtBQUNDLG1CQUFlLFVBRGhCO0FBRUMsbUJBQWUsZUFGaEI7QUFHQyxlQUFXLENBQ1Y7QUFDQyxlQUFTO0FBRFYsS0FEVTtBQUhaLEdBakdVLEVBMEdWO0FBQ0MsbUJBQWUsVUFEaEI7QUFFQyxtQkFBZSxrQkFGaEI7QUFHQyxlQUFXLENBQ1Y7QUFDQyxlQUFTO0FBRFYsS0FEVTtBQUhaLEdBMUdVLEVBbUhWO0FBQ0MsbUJBQWUsTUFEaEI7QUFFQyxtQkFBZSxVQUZoQjtBQUdDLGVBQVcsQ0FDVjtBQUNDLGVBQVM7QUFEVixLQURVO0FBSFosR0FuSFUsRUE0SFY7QUFDQyxtQkFBZSxNQURoQjtBQUVDLG1CQUFlLGtCQUZoQjtBQUdDLGVBQVcsQ0FDVjtBQUNDLGVBQVM7QUFEVixLQURVO0FBSFosR0E1SFUsRUFxSVY7QUFDQyxtQkFBZSxNQURoQjtBQUVDLG1CQUFlLG9CQUZoQjtBQUdDLGVBQVcsQ0FDVjtBQUNDLGVBQVM7QUFEVixLQURVO0FBSFosR0FySVUsRUE4SVY7QUFDQyxtQkFBZSxjQURoQjtBQUVDLG1CQUFlLFVBRmhCO0FBR0MsZUFBVyxDQUNWO0FBQ0MsZUFBUztBQURWLEtBRFU7QUFIWixHQTlJVSxFQXVKVjtBQUNDLG1CQUFlLGNBRGhCO0FBRUMsbUJBQWUsaUJBRmhCO0FBR0MsZUFBVyxDQUNWO0FBQ0MsZUFBUztBQURWLEtBRFU7QUFIWixHQXZKVSxFQWdLVjtBQUNDLG1CQUFlLGNBRGhCO0FBRUMsbUJBQWUsa0JBRmhCO0FBR0MsZUFBVyxDQUNWO0FBQ0MsZUFBUztBQURWLEtBRFU7QUFIWixHQWhLVSxFQXlLVjtBQUNDLG1CQUFlLGNBRGhCO0FBRUMsbUJBQWUsb0JBRmhCO0FBR0MsZUFBVyxDQUNWO0FBQ0MsZUFBUztBQURWLEtBRFU7QUFIWixHQXpLVSxFQWtMVjtBQUNDLG1CQUFlLFNBRGhCO0FBRUMsbUJBQWUsa0JBRmhCO0FBR0MsZUFBVyxDQUNWO0FBQ0MsZUFBUztBQURWLEtBRFU7QUFIWixHQWxMVSxFQTJMVjtBQUNDLG1CQUFlLFNBRGhCO0FBRUMsbUJBQWUsb0JBRmhCO0FBR0MsZUFBVyxDQUNWO0FBQ0MsZUFBUztBQURWLEtBRFU7QUFIWixHQTNMVSxFQW9NVjtBQUNDLG1CQUFlLGNBRGhCO0FBRUMsbUJBQWUsZUFGaEI7QUFHQyxlQUFXLENBQ1Y7QUFDQyxlQUFTO0FBRFYsS0FEVTtBQUhaLEdBcE1VLEVBNk1WO0FBQ0MsbUJBQWUsaUJBRGhCO0FBRUMsbUJBQWUsVUFGaEI7QUFHQyxlQUFXLENBQ1Y7QUFDQyxlQUFTO0FBRFYsS0FEVTtBQUhaLEdBN01VLEVBc05WO0FBQ0MsbUJBQWUsT0FEaEI7QUFFQyxtQkFBZSxVQUZoQjtBQUdDLGVBQVcsQ0FDVjtBQUNDLGVBQVM7QUFEVixLQURVO0FBSFosR0F0TlUsRUErTlY7QUFDQyxtQkFBZSxPQURoQjtBQUVDLG1CQUFlLGtCQUZoQjtBQUdDLGVBQVcsQ0FDVjtBQUNDLGVBQVM7QUFEVixLQURVO0FBSFosR0EvTlU7QUFwdEJHLENBQWY7QUErN0JBLHNEQUFlTixNQUFmLEU7Ozs7OztBQy83QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTs7QUFDQTtBQUVBO0FBRUE7QUFPQTtBQUNBO0FBQ0E7O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxNQUFNYSxJQUFJLEdBQUcsQ0FBQztBQUNickssRUFBQUEsVUFEYTtBQUVieUcsRUFBQUEsYUFGYTtBQUdibEYsRUFBQUEsU0FIYTtBQUliK0ksRUFBQUEsUUFKYTtBQUtiQyxFQUFBQSxVQUxhO0FBTWJDLEVBQUFBO0FBTmEsQ0FBRCxLQU9QO0FBQ0x4SSxFQUFBQSxrQ0FBUyxDQUFFLE1BQU07QUFDaEIsVUFBTXlJLFdBQVcsR0FBR0wsbUNBQVMsQ0FBRUUsUUFBRixFQUFZSCxzQkFBWixDQUE3QjtBQUNBLFdBQU8sTUFBTU0sV0FBVyxDQUFFekssVUFBVSxDQUFDQyxFQUFiLENBQXhCO0FBQ0EsR0FIUSxFQUdOLENBQUVELFVBQVUsQ0FBQ0MsRUFBYixDQUhNLENBQVQ7QUFLQStCLEVBQUFBLGtDQUFTLENBQUUsTUFBTTtBQUNoQixVQUFNMEksTUFBTSxHQUFHLFlBQVc7QUFDekIsWUFBTWhJLE1BQU0sQ0FBQ0MsRUFBUCxDQUFVbkIsR0FBVixDQUFjbUosV0FBZCxDQUEwQkMsSUFBMUIsQ0FBZ0MsTUFBTTtBQUMzQ0MsUUFBQUEsV0FBVyxDQUFDOUgsT0FBWixHQUFzQixJQUFJTCxNQUFNLENBQUNDLEVBQVAsQ0FBVW5CLEdBQVYsQ0FBY3NKLE1BQWQsQ0FBcUJDLFFBQXpCLEVBQXRCO0FBQ0EsT0FGSyxDQUFOOztBQUlBLFVBQUssVUFBVUMsT0FBTyxDQUFFdEksTUFBTSxDQUFDeUYsa0JBQVAsQ0FBMEI4QyxPQUE1QixDQUF0QixFQUE4RDtBQUM3RCxZQUFLLENBQUV4SixXQUFQLEVBQXFCO0FBQ3BCb0osVUFBQUEsV0FBVyxDQUFDOUgsT0FBWixDQUFvQm1JLEtBQXBCLEdBQTRCTixJQUE1QixDQUFvQ08sUUFBRixJQUFnQjtBQUNqREMsWUFBQUEsTUFBTSxDQUFFRCxRQUFRLENBQUNFLGtDQUFYLENBQU47QUFDQUMsWUFBQUEsWUFBWSxDQUFFLElBQUYsQ0FBWjs7QUFFQSxnQkFBSyxPQUFPSCxRQUFRLENBQUNFLGtDQUFyQixFQUEwRDtBQUN6REUsY0FBQUEsV0FBVyxDQUFFLElBQUYsQ0FBWDtBQUNBQyxjQUFBQSxhQUFhLENBQUVMLFFBQVEsQ0FBQ0Usa0NBQVgsQ0FBYjtBQUNBO0FBQ0QsV0FSRDtBQVNBO0FBQ0QsT0FaRCxNQVlPLElBQUssQ0FBRTVKLFdBQVAsRUFBcUI7QUFDM0IySixRQUFBQSxNQUFNLENBQUUxSSxNQUFNLENBQUN5RixrQkFBUCxDQUEwQjhDLE9BQTVCLENBQU47QUFDQUssUUFBQUEsWUFBWSxDQUFFLElBQUYsQ0FBWjtBQUNBQyxRQUFBQSxXQUFXLENBQUUsSUFBRixDQUFYO0FBQ0FDLFFBQUFBLGFBQWEsQ0FBRTlJLE1BQU0sQ0FBQ3lGLGtCQUFQLENBQTBCOEMsT0FBNUIsQ0FBYjtBQUNBO0FBQ0QsS0F2QkQ7O0FBeUJBUCxJQUFBQSxNQUFNO0FBRU5oSSxJQUFBQSxNQUFNLENBQUMyRyxXQUFQLEdBQXFCM0csTUFBTSxDQUFDMkcsV0FBUCxJQUFzQixLQUEzQztBQUNBM0csSUFBQUEsTUFBTSxDQUFHLGdCQUFnQjRILFFBQVEsQ0FBQ21CLE1BQVQsQ0FBaUIsQ0FBakIsRUFBb0IsQ0FBcEIsQ0FBeUIsRUFBNUMsQ0FBTixHQUF3RHpILFlBQXhEO0FBRUEwSCxJQUFBQSxPQUFPLENBQUMzSSxPQUFSLEdBQWtCc0IsUUFBUSxDQUFDc0gsYUFBVCxDQUF3QixRQUF4QixDQUFsQjtBQUNBRCxJQUFBQSxPQUFPLENBQUMzSSxPQUFSLENBQWdCN0MsSUFBaEIsR0FBdUIsaUJBQXZCO0FBQ0F3TCxJQUFBQSxPQUFPLENBQUMzSSxPQUFSLENBQWdCNkksS0FBaEIsR0FBd0IsSUFBeEI7QUFDQUYsSUFBQUEsT0FBTyxDQUFDM0ksT0FBUixDQUFnQjhJLEtBQWhCLEdBQXdCLElBQXhCO0FBQ0FILElBQUFBLE9BQU8sQ0FBQzNJLE9BQVIsQ0FBZ0I5QyxFQUFoQixHQUFxQixrQ0FBckI7QUFDQSxHQXBDUSxFQW9DTixFQXBDTSxDQUFUO0FBc0NBK0IsRUFBQUEsa0NBQVMsQ0FBRSxNQUFNO0FBQ2hCLFFBQUssVUFBVU4sVUFBVixJQUF3QjJHLFNBQVMsS0FBSzNGLE1BQU0sQ0FBQ2lDLE1BQWxELEVBQTJEO0FBQzFEbUgsTUFBQUEsTUFBTSxDQUFDL0ksT0FBUCxDQUFlZ0osVUFBZixDQUEwQjtBQUN6QnBMLFFBQUFBLGNBQWMsRUFBRTRKLFVBQVUsR0FBRyxJQUFILEdBQVV2SyxVQUFVLENBQUNXLGNBRHRCO0FBRXpCQyxRQUFBQSxXQUFXLEVBQUUySixVQUFVLEdBQUcsSUFBSCxHQUFVdkssVUFBVSxDQUFDWSxXQUZuQjtBQUd6QkMsUUFBQUEsaUJBQWlCLEVBQUUwSixVQUFVLEdBQUcsSUFBSCxHQUFVdkssVUFBVSxDQUFDYSxpQkFIekI7QUFJekJDLFFBQUFBLGlCQUFpQixFQUFFeUosVUFBVSxHQUFHLElBQUgsR0FBVXZLLFVBQVUsQ0FBQ2M7QUFKekIsT0FBMUI7QUFNQTtBQUNELEdBVFEsRUFTTixDQUFFeUosVUFBRixDQVRNLENBQVQ7QUFXQXZJLEVBQUFBLGtDQUFTLENBQUUsTUFBTTtBQUNoQmdLLElBQUFBLGNBQWMsQ0FBQ2pKLE9BQWYsR0FBeUIsQ0FBRSxHQUFHL0MsVUFBVSxDQUFDZSxPQUFoQixDQUF6QjtBQUNBLEdBRlEsRUFFTixDQUFFZixVQUFVLENBQUNlLE9BQWIsQ0FGTSxDQUFUO0FBSUEsUUFBTWtMLFVBQVUsR0FBR2hLLCtCQUFNLENBQUMsRUFBRCxDQUF6QjtBQUNBLFFBQU00SSxXQUFXLEdBQUc1SSwrQkFBTSxDQUFFLElBQUYsQ0FBMUI7QUFDQSxRQUFNeUosT0FBTyxHQUFHekosK0JBQU0sQ0FBRSxJQUFGLENBQXRCO0FBQ0EsUUFBTTZKLE1BQU0sR0FBRzdKLCtCQUFNLENBQUUsSUFBRixDQUFyQjtBQUNBLFFBQU1pSyxpQkFBaUIsR0FBR2pLLCtCQUFNLENBQUUsSUFBRixDQUFoQztBQUNBLFFBQU0rSixjQUFjLEdBQUcvSiwrQkFBTSxDQUFDLENBQUUsR0FBR2pDLFVBQVUsQ0FBQ2UsT0FBaEIsQ0FBRCxDQUE3QjtBQUVBLFFBQU0sQ0FBRVMsR0FBRixFQUFPNEosTUFBUCxJQUFrQnZGLGlDQUFRLENBQUUsRUFBRixDQUFoQztBQUNBLFFBQU0sQ0FBRXBFLFdBQUYsRUFBZTZKLFlBQWYsSUFBZ0N6RixpQ0FBUSxDQUFFLEtBQUYsQ0FBOUM7QUFDQSxRQUFNLENBQUVuRSxVQUFGLEVBQWM2SixXQUFkLElBQThCMUYsaUNBQVEsQ0FBRSxLQUFGLENBQTVDO0FBQ0EsUUFBTSxDQUFFd0QsV0FBRixFQUFlOEMsWUFBZixJQUFnQ3RHLGlDQUFRLENBQUUsS0FBRixDQUE5QztBQUNBLFFBQU0sQ0FBRWxFLFFBQUYsRUFBWXlLLFNBQVosSUFBMEJ2RyxpQ0FBUSxDQUFFLEtBQUYsQ0FBeEM7QUFDQSxRQUFNLENBQUUvQixtQkFBRixFQUF1QnVJLG9CQUF2QixJQUFnRHhHLGlDQUFRLENBQUUsSUFBRixDQUE5RDtBQUNBLFFBQU0sQ0FBRXVELFVBQUYsRUFBY2tELGFBQWQsSUFBZ0N6RyxpQ0FBUSxDQUFFLEtBQUYsQ0FBOUM7QUFDQSxRQUFNLENBQUVjLFlBQUYsRUFBZ0JDLGFBQWhCLElBQWtDZixpQ0FBUSxDQUFFLEtBQUYsQ0FBaEQ7QUFDQSxRQUFNLENBQUUwRCxpQkFBRixFQUFxQmdELGtCQUFyQixJQUE0QzFHLGlDQUFRLENBQUUsS0FBRixDQUExRDtBQUNBLFFBQU0sQ0FBRTJHLFdBQUYsRUFBZUMsWUFBZixJQUFnQzVHLGlDQUFRLENBQUUsS0FBRixDQUE5QztBQUNBLFFBQU0sQ0FBRTRDLFVBQUYsRUFBY2lFLFdBQWQsSUFBOEI3RyxpQ0FBUSxDQUFFLEtBQUYsQ0FBNUM7QUFDQSxRQUFNLENBQUU4RyxjQUFGLEVBQWtCQyxpQkFBbEIsSUFBd0MvRyxpQ0FBUSxDQUFDLEVBQUQsQ0FBdEQ7O0FBRUEsUUFBTTJGLGFBQWEsR0FBR2hLLEdBQUcsSUFBSTtBQUM1QixRQUFLLENBQUVrQixNQUFNLENBQUMyRyxXQUFkLEVBQTRCO0FBQzNCM0csTUFBQUEsTUFBTSxDQUFDMkcsV0FBUCxHQUFxQixJQUFyQjs7QUFDQXFDLE1BQUFBLE9BQU8sQ0FBQzNJLE9BQVIsQ0FBZ0I4SixNQUFoQixHQUF5QixNQUFNO0FBQzlCLGNBQU1DLE1BQU0sR0FBR3pJLFFBQVEsQ0FBQzBJLGNBQVQsQ0FBeUIsa0NBQXpCLENBQWY7QUFDQUQsUUFBQUEsTUFBTSxDQUFDN00sRUFBUCxHQUFZLDBCQUFaO0FBQ0FxTSxRQUFBQSxhQUFhLENBQUUsSUFBRixDQUFiO0FBQ0EsT0FKRDs7QUFLQVosTUFBQUEsT0FBTyxDQUFDM0ksT0FBUixDQUFnQmlLLEdBQWhCLEdBQXVCLCtDQUErQ3hMLEdBQUssMkJBQTJCeUwsSUFBSSxDQUFDQyxNQUFMLEVBQWUsRUFBckg7QUFDQTdJLE1BQUFBLFFBQVEsQ0FBQzhJLElBQVQsQ0FBY0MsV0FBZCxDQUEyQjFCLE9BQU8sQ0FBQzNJLE9BQW5DO0FBQ0E7O0FBRUQsVUFBTXNLLE1BQU0sR0FBR2hKLFFBQVEsQ0FBQzBJLGNBQVQsQ0FBeUIsMEJBQXpCLENBQWY7O0FBRUEsUUFBS00sTUFBTCxFQUFjO0FBQ2JmLE1BQUFBLGFBQWEsQ0FBRSxJQUFGLENBQWI7QUFDQTtBQUNELEdBakJEOztBQW1CQSxRQUFNbkQsT0FBTyxHQUFHLE1BQU07QUFDckIyQyxJQUFBQSxNQUFNLENBQUMvSSxPQUFQLEdBQWlCLElBQUlMLE1BQU0sQ0FBQ2lDLE1BQVAsQ0FBY0MsSUFBZCxDQUFtQnNFLEdBQXZCLENBQTRCN0UsUUFBUSxDQUFDMEksY0FBVCxDQUF5Qi9NLFVBQVUsQ0FBQ0MsRUFBcEMsQ0FBNUIsRUFBc0U7QUFDdEZxTixNQUFBQSxNQUFNLEVBQUU7QUFDUGhJLFFBQUFBLEdBQUcsRUFBRThCLE1BQU0sQ0FBRXBILFVBQVUsQ0FBQ00sUUFBYixDQUFOLElBQWlDLFVBRC9CO0FBRVBpRixRQUFBQSxHQUFHLEVBQUU2QixNQUFNLENBQUVwSCxVQUFVLENBQUNPLFNBQWIsQ0FBTixJQUFrQztBQUZoQyxPQUQ4RTtBQUt0RmdOLE1BQUFBLGVBQWUsRUFBRSxhQUxxRTtBQU10Ri9NLE1BQUFBLElBQUksRUFBRVIsVUFBVSxDQUFDUSxJQU5xRTtBQU90RmdOLE1BQUFBLFNBQVMsRUFBRXhOLFVBQVUsQ0FBQ0UsSUFQZ0U7QUFRdEZzSixNQUFBQSxNQUFNLEVBQUVBLGlCQUFNLENBQUV4SixVQUFVLENBQUNHLEtBQWI7QUFSd0UsS0FBdEUsQ0FBakI7O0FBV0EsUUFBS0gsVUFBVSxDQUFDSyxRQUFYLElBQXlCZ0ksU0FBUyxLQUFLckksVUFBVSxDQUFDTSxRQUF6QixJQUFxQytILFNBQVMsS0FBS3JJLFVBQVUsQ0FBQ08sU0FBNUYsRUFBMEc7QUFDekcsWUFBTWtOLE9BQU8sR0FBRztBQUNmQyxRQUFBQSxLQUFLLEVBQUUxTixVQUFVLENBQUNLLFFBREg7QUFFZnNOLFFBQUFBLE1BQU0sRUFBRSxDQUFFLE1BQUYsRUFBVSxVQUFWO0FBRk8sT0FBaEI7QUFLQSxZQUFNQyxPQUFPLEdBQUcsSUFBSWxMLE1BQU0sQ0FBQ2lDLE1BQVAsQ0FBY0MsSUFBZCxDQUFtQkMsTUFBbkIsQ0FBMEJnSixhQUE5QixDQUE2Qy9CLE1BQU0sQ0FBQy9JLE9BQXBELENBQWhCO0FBRUE2SyxNQUFBQSxPQUFPLENBQUNFLGtCQUFSLENBQTRCTCxPQUE1QixFQUFxQyxDQUFFTSxPQUFGLEVBQVdDLE1BQVgsS0FBdUI7QUFDM0QsWUFBS0EsTUFBTSxLQUFLdEwsTUFBTSxDQUFDaUMsTUFBUCxDQUFjQyxJQUFkLENBQW1CQyxNQUFuQixDQUEwQm9KLG1CQUExQixDQUE4Q0MsRUFBOUQsRUFBbUU7QUFDbEUsY0FBSyxJQUFJSCxPQUFPLENBQUM5SSxNQUFqQixFQUEwQjtBQUN6QjZHLFlBQUFBLE1BQU0sQ0FBQy9JLE9BQVAsQ0FBZWlFLFNBQWYsQ0FBMEIrRyxPQUFPLENBQUMsQ0FBRCxDQUFQLENBQVcxSSxRQUFYLENBQW9CaEYsUUFBOUM7QUFDQTtBQUNEO0FBQ0QsT0FORDtBQU9BOztBQUVEcUMsSUFBQUEsTUFBTSxDQUFDaUMsTUFBUCxDQUFjQyxJQUFkLENBQW1CdUosS0FBbkIsQ0FBeUJDLGVBQXpCLENBQTBDdEMsTUFBTSxDQUFDL0ksT0FBakQsRUFBMEQsTUFBMUQsRUFBa0UsTUFBTTtBQUN2RW9KLE1BQUFBLFlBQVksQ0FBRSxJQUFGLENBQVo7QUFDQSxLQUZEO0FBSUFMLElBQUFBLE1BQU0sQ0FBQy9JLE9BQVAsQ0FBZWdDLFdBQWYsQ0FBNEIsY0FBNUIsRUFBNEMsTUFBTTtBQUNqRCxZQUFNdkUsSUFBSSxHQUFHc0wsTUFBTSxDQUFDL0ksT0FBUCxDQUFlc0wsT0FBZixFQUFiO0FBQ0E1SCxNQUFBQSxhQUFhLENBQUM7QUFBRWpHLFFBQUFBO0FBQUYsT0FBRCxDQUFiO0FBQ0EsS0FIRDtBQUtBc0wsSUFBQUEsTUFBTSxDQUFDL0ksT0FBUCxDQUFlZ0MsV0FBZixDQUE0QixtQkFBNUIsRUFBaUQsTUFBTTtBQUN0RCxZQUFNN0UsSUFBSSxHQUFHNEwsTUFBTSxDQUFDL0ksT0FBUCxDQUFldUwsWUFBZixFQUFiO0FBQ0E3SCxNQUFBQSxhQUFhLENBQUM7QUFBRXZHLFFBQUFBO0FBQUYsT0FBRCxDQUFiO0FBQ0EsS0FIRDtBQUtBNEwsSUFBQUEsTUFBTSxDQUFDL0ksT0FBUCxDQUFlZ0MsV0FBZixDQUE0QixnQkFBNUIsRUFBOEMsTUFBTTtBQUNuRCxZQUFNMUUsUUFBUSxHQUFHeUwsTUFBTSxDQUFDL0ksT0FBUCxDQUFld0wsU0FBZixFQUFqQjtBQUNBLFlBQU1qTyxRQUFRLEdBQUdELFFBQVEsQ0FBQ2lGLEdBQVQsRUFBakI7QUFDQSxZQUFNL0UsU0FBUyxHQUFHRixRQUFRLENBQUNrRixHQUFULEVBQWxCO0FBQ0FrQixNQUFBQSxhQUFhLENBQUM7QUFDYm5HLFFBQUFBLFFBQVEsRUFBRUEsUUFBUSxDQUFDMkcsUUFBVCxFQURHO0FBRWIxRyxRQUFBQSxTQUFTLEVBQUVBLFNBQVMsQ0FBQzBHLFFBQVY7QUFGRSxPQUFELENBQWI7QUFJQSxLQVJEOztBQVVBLFFBQUssSUFBSWpILFVBQVUsQ0FBQ2UsT0FBWCxDQUFtQmtFLE1BQTVCLEVBQXFDO0FBQ3BDdUosTUFBQUEsWUFBWSxDQUFFeE8sVUFBVSxDQUFDZSxPQUFiLENBQVo7QUFDQTs7QUFFRCxVQUFNME0sT0FBTyxHQUFHO0FBQ2ZDLE1BQUFBLEtBQUssRUFBRTFOLFVBQVUsQ0FBQ0ssUUFESDtBQUVmc04sTUFBQUEsTUFBTSxFQUFFLENBQUUsTUFBRixFQUFVLFVBQVY7QUFGTyxLQUFoQjtBQUtBLFVBQU1DLE9BQU8sR0FBRyxJQUFJbEwsTUFBTSxDQUFDaUMsTUFBUCxDQUFjQyxJQUFkLENBQW1CQyxNQUFuQixDQUEwQmdKLGFBQTlCLENBQTZDL0IsTUFBTSxDQUFDL0ksT0FBcEQsQ0FBaEI7QUFFQTZLLElBQUFBLE9BQU8sQ0FBQ0Usa0JBQVIsQ0FBNEJMLE9BQTVCLEVBQXFDLENBQUVNLE9BQUYsRUFBV0MsTUFBWCxLQUF1QjtBQUMzRCxVQUFLLHFCQUFxQkEsTUFBMUIsRUFBbUM7QUFDbEMzQixRQUFBQSxvQkFBb0IsQ0FBRSxLQUFGLENBQXBCO0FBQ0E7QUFDRCxLQUpEO0FBS0EsR0FyRUQ7O0FBdUVBLFFBQU1yRyxTQUFTLEdBQUcsQ0FBRTNGLFFBQUYsRUFBWW1GLEtBQVosRUFBbUJDLElBQW5CLEVBQXlCRSxXQUF6QixFQUFzQ3JGLFFBQXRDLEVBQWdEQyxTQUFoRCxLQUErRDtBQUNoRixVQUFNdUcsTUFBTSxHQUFHLElBQUlwRSxNQUFNLENBQUNpQyxNQUFQLENBQWNDLElBQWQsQ0FBbUJtQyxNQUF2QixDQUErQnpHLFFBQS9CLEVBQXlDQyxTQUF6QyxDQUFmO0FBRUEsVUFBTU4sRUFBRSxHQUFHK0oscUJBQU0sRUFBakI7QUFFQSxVQUFNeUUsSUFBSSxHQUFHLElBQUkvTCxNQUFNLENBQUNpQyxNQUFQLENBQWNDLElBQWQsQ0FBbUJqQixNQUF2QixDQUE4QjtBQUMxQytLLE1BQUFBLFFBQVEsRUFBRTVILE1BRGdDO0FBRTFDWixNQUFBQSxHQUFHLEVBQUU0RixNQUFNLENBQUMvSSxPQUY4QjtBQUcxQ3lDLE1BQUFBLEtBSDBDO0FBSTFDOUUsTUFBQUEsU0FBUyxFQUFFLElBSitCO0FBSzFDK0UsTUFBQUE7QUFMMEMsS0FBOUIsQ0FBYjtBQVFBL0MsSUFBQUEsTUFBTSxDQUFDaUMsTUFBUCxDQUFjQyxJQUFkLENBQW1CdUosS0FBbkIsQ0FBeUJwSixXQUF6QixDQUFzQzBKLElBQXRDLEVBQTRDLFNBQTVDLEVBQXVETixLQUFLLElBQUk7QUFDL0QsWUFBTTdJLEdBQUcsR0FBRzZJLEtBQUssQ0FBQ3JILE1BQU4sQ0FBYXhCLEdBQWIsRUFBWjtBQUNBLFlBQU1DLEdBQUcsR0FBRzRJLEtBQUssQ0FBQ3JILE1BQU4sQ0FBYXZCLEdBQWIsRUFBWjtBQUVBdEIsTUFBQUEsZ0JBQWdCLENBQUVoRSxFQUFGLEVBQU0sVUFBTixFQUFrQnFGLEdBQWxCLENBQWhCO0FBQ0FyQixNQUFBQSxnQkFBZ0IsQ0FBRWhFLEVBQUYsRUFBTSxXQUFOLEVBQW1Cc0YsR0FBbkIsQ0FBaEI7QUFDQSxLQU5EO0FBUUEwRyxJQUFBQSxVQUFVLENBQUNsSixPQUFYLENBQW1CNEwsSUFBbkIsQ0FBeUJGLElBQXpCO0FBRUEsVUFBTTFOLE9BQU8sR0FBRyxDQUFFLEdBQUdmLFVBQVUsQ0FBQ2UsT0FBaEIsQ0FBaEI7QUFFQSxVQUFNNkMsTUFBTSxHQUFHO0FBQ2QzRCxNQUFBQSxFQURjO0FBRWRJLE1BQUFBLFFBRmM7QUFHZG1GLE1BQUFBLEtBSGM7QUFJZEMsTUFBQUEsSUFKYztBQUtkRSxNQUFBQSxXQUxjO0FBTWRyRixNQUFBQSxRQU5jO0FBT2RDLE1BQUFBO0FBUGMsS0FBZjtBQVVBUSxJQUFBQSxPQUFPLENBQUM0TixJQUFSLENBQWMvSyxNQUFkO0FBRUE2QyxJQUFBQSxhQUFhLENBQUM7QUFBRTFGLE1BQUFBO0FBQUYsS0FBRCxDQUFiO0FBRUEyQixJQUFBQSxNQUFNLENBQUNpQyxNQUFQLENBQWNDLElBQWQsQ0FBbUJ1SixLQUFuQixDQUF5QnBKLFdBQXpCLENBQXNDMEosSUFBdEMsRUFBNEMsT0FBNUMsRUFBcUQsTUFBTTtBQUMxRCxVQUFLdkMsaUJBQWlCLENBQUNuSixPQUF2QixFQUFpQztBQUNoQ21KLFFBQUFBLGlCQUFpQixDQUFDbkosT0FBbEIsQ0FBMEIyRixLQUExQjtBQUNBO0FBQ0QsS0FKRDtBQU1Ba0csSUFBQUEsYUFBYSxDQUFFSCxJQUFGLEVBQVE3SyxNQUFNLENBQUMzRCxFQUFmLEVBQW1CdUYsS0FBbkIsRUFBMEJHLFdBQTFCLENBQWI7QUFDQThHLElBQUFBLFlBQVksQ0FBRSxLQUFGLENBQVo7QUFDQUYsSUFBQUEsa0JBQWtCLENBQUUsS0FBRixDQUFsQjtBQUNBLEdBaEREOztBQWtEQSxRQUFNcUMsYUFBYSxHQUFHLENBQUVoTCxNQUFGLEVBQVUzRCxFQUFWLEVBQWN1RixLQUFkLEVBQXFCRyxXQUFyQixLQUFzQztBQUMzRCxVQUFNa0osYUFBYSxHQUFJLGdIQUFnSHJKLEtBQU8sb0VBQW9FRyxXQUFXLEdBQUksTUFBTUEsV0FBYSxNQUF2QixHQUErQixFQUFJLGtGQUFrRjJFLFFBQVEsQ0FBQ21CLE1BQVQsQ0FBaUIsQ0FBakIsRUFBb0IsQ0FBcEIsQ0FBeUIsTUFBTXhMLEVBQUksUUFBUWUsd0JBQUUsQ0FBRSxlQUFGLEVBQW1CLGNBQW5CLENBQXFDLGtCQUFwYTtBQUVBLFVBQU04TixVQUFVLEdBQUcsSUFBSXBNLE1BQU0sQ0FBQ2lDLE1BQVAsQ0FBY0MsSUFBZCxDQUFtQm1LLFVBQXZCLENBQWtDO0FBQ3BEQyxNQUFBQSxPQUFPLEVBQUVIO0FBRDJDLEtBQWxDLENBQW5CO0FBSUFqTCxJQUFBQSxNQUFNLENBQUNtQixXQUFQLENBQW9CLE9BQXBCLEVBQTZCLE1BQU07QUFDbENtSCxNQUFBQSxpQkFBaUIsQ0FBQ25KLE9BQWxCLEdBQTRCK0wsVUFBNUI7QUFDQUEsTUFBQUEsVUFBVSxDQUFDRyxJQUFYLENBQWlCbkQsTUFBTSxDQUFDL0ksT0FBeEIsRUFBaUNhLE1BQWpDO0FBQ0EsS0FIRDtBQUtBbEIsSUFBQUEsTUFBTSxDQUFDaUMsTUFBUCxDQUFjQyxJQUFkLENBQW1CdUosS0FBbkIsQ0FBeUJwSixXQUF6QixDQUFzQytKLFVBQXRDLEVBQWtELFVBQWxELEVBQThELE1BQU07QUFDbkVsSSxNQUFBQSxhQUFhLENBQUUzRyxFQUFGLENBQWI7QUFDQSxLQUZEO0FBSUF5QyxJQUFBQSxNQUFNLENBQUNpQyxNQUFQLENBQWNDLElBQWQsQ0FBbUJ1SixLQUFuQixDQUF5QnBKLFdBQXpCLENBQXNDK0osVUFBdEMsRUFBa0QsWUFBbEQsRUFBZ0UsTUFBTTtBQUNyRWxJLE1BQUFBLGFBQWEsQ0FBRSxLQUFGLENBQWI7QUFDQSxLQUZEO0FBR0EsR0FuQkQ7O0FBcUJBLFFBQU00SCxZQUFZLEdBQUd6TixPQUFPLElBQUk7QUFDL0JBLElBQUFBLE9BQU8sQ0FBQzBELE9BQVIsQ0FBaUJiLE1BQU0sSUFBSTtBQUMxQixZQUFNdEQsUUFBUSxHQUFHc0QsTUFBTSxDQUFDdEQsUUFBeEI7QUFDQSxZQUFNQyxTQUFTLEdBQUdxRCxNQUFNLENBQUNyRCxTQUF6QjtBQUNBLFlBQU1tTyxRQUFRLEdBQUcsSUFBSWhNLE1BQU0sQ0FBQ2lDLE1BQVAsQ0FBY0MsSUFBZCxDQUFtQm1DLE1BQXZCLENBQStCekcsUUFBL0IsRUFBeUNDLFNBQXpDLENBQWpCO0FBRUEsWUFBTWtPLElBQUksR0FBRyxJQUFJL0wsTUFBTSxDQUFDaUMsTUFBUCxDQUFjQyxJQUFkLENBQW1CakIsTUFBdkIsQ0FBOEI7QUFDMUMrSyxRQUFBQSxRQUQwQztBQUUxQ3hJLFFBQUFBLEdBQUcsRUFBRTRGLE1BQU0sQ0FBQy9JLE9BRjhCO0FBRzFDeUMsUUFBQUEsS0FBSyxFQUFFNUIsTUFBTSxDQUFDNEIsS0FINEI7QUFJMUM5RSxRQUFBQSxTQUFTLEVBQUUsSUFKK0I7QUFLMUMrRSxRQUFBQSxJQUFJLEVBQUU3QixNQUFNLENBQUM2QixJQUFQLElBQWU7QUFMcUIsT0FBOUIsQ0FBYjtBQVFBL0MsTUFBQUEsTUFBTSxDQUFDaUMsTUFBUCxDQUFjQyxJQUFkLENBQW1CdUosS0FBbkIsQ0FBeUJwSixXQUF6QixDQUFzQzBKLElBQXRDLEVBQTRDLFNBQTVDLEVBQXlETixLQUFGLElBQWE7QUFDbkUsY0FBTTdJLEdBQUcsR0FBRzZJLEtBQUssQ0FBQ3JILE1BQU4sQ0FBYXhCLEdBQWIsRUFBWjtBQUNBLGNBQU1DLEdBQUcsR0FBRzRJLEtBQUssQ0FBQ3JILE1BQU4sQ0FBYXZCLEdBQWIsRUFBWjtBQUVBdEIsUUFBQUEsZ0JBQWdCLENBQUVMLE1BQU0sQ0FBQzNELEVBQVQsRUFBYSxVQUFiLEVBQXlCcUYsR0FBekIsQ0FBaEI7QUFDQXJCLFFBQUFBLGdCQUFnQixDQUFFTCxNQUFNLENBQUMzRCxFQUFULEVBQWEsV0FBYixFQUEwQnNGLEdBQTFCLENBQWhCO0FBQ0EsT0FORDtBQVFBMEcsTUFBQUEsVUFBVSxDQUFDbEosT0FBWCxDQUFtQjRMLElBQW5CLENBQXlCRixJQUF6QjtBQUVBL0wsTUFBQUEsTUFBTSxDQUFDaUMsTUFBUCxDQUFjQyxJQUFkLENBQW1CdUosS0FBbkIsQ0FBeUJwSixXQUF6QixDQUFzQzBKLElBQXRDLEVBQTRDLE9BQTVDLEVBQXFELE1BQU07QUFDMUQsWUFBS3ZDLGlCQUFpQixDQUFDbkosT0FBdkIsRUFBaUM7QUFDaENtSixVQUFBQSxpQkFBaUIsQ0FBQ25KLE9BQWxCLENBQTBCMkYsS0FBMUI7QUFDQTtBQUNELE9BSkQ7QUFNQWtHLE1BQUFBLGFBQWEsQ0FBRUgsSUFBRixFQUFRN0ssTUFBTSxDQUFDM0QsRUFBZixFQUFtQjJELE1BQU0sQ0FBQzRCLEtBQTFCLEVBQWlDNUIsTUFBTSxDQUFDK0IsV0FBeEMsQ0FBYjtBQUNBLEtBOUJEO0FBK0JBLEdBaENEOztBQWtDQSxRQUFNMkQsWUFBWSxHQUFHLE1BQU07QUFDMUJpRCxJQUFBQSxrQkFBa0IsQ0FBRSxDQUFFaEQsaUJBQUosQ0FBbEI7O0FBRUEsUUFBSyxDQUFFQSxpQkFBUCxFQUEyQjtBQUMxQnVDLE1BQUFBLE1BQU0sQ0FBQy9JLE9BQVAsQ0FBZWdDLFdBQWYsQ0FBNEIsT0FBNUIsRUFBcUN4QixDQUFDLElBQUk7QUFDekNiLFFBQUFBLE1BQU0sQ0FBQ2lDLE1BQVAsQ0FBY0MsSUFBZCxDQUFtQnVKLEtBQW5CLENBQXlCZSxjQUF6QixDQUF5Q3BELE1BQU0sQ0FBQy9JLE9BQWhELEVBQXlELE9BQXpEO0FBRUEsY0FBTTlDLEVBQUUsR0FBRytKLHFCQUFNLEVBQWpCOztBQUNBLGNBQU14RSxLQUFLLEdBQUd4RSx3QkFBRSxDQUFFLGVBQUYsRUFBbUIsY0FBbkIsQ0FBaEI7O0FBQ0EsY0FBTVYsUUFBUSxHQUFHaUQsQ0FBQyxDQUFDdUQsTUFBRixDQUFTeEIsR0FBVCxFQUFqQjtBQUNBLGNBQU0vRSxTQUFTLEdBQUdnRCxDQUFDLENBQUN1RCxNQUFGLENBQVN2QixHQUFULEVBQWxCO0FBRUFrSCxRQUFBQSxZQUFZLENBQUUsSUFBRixDQUFaO0FBQ0FDLFFBQUFBLFdBQVcsQ0FBRSxLQUFGLENBQVg7QUFDQUUsUUFBQUEsaUJBQWlCLENBQUM7QUFDakIzTSxVQUFBQSxFQURpQjtBQUVqQkksVUFBQUEsUUFBUSxFQUFFLEVBRk87QUFHakJtRixVQUFBQSxLQUhpQjtBQUlqQkMsVUFBQUEsSUFBSSxFQUFFLHVEQUpXO0FBS2pCRSxVQUFBQSxXQUFXLEVBQUUsRUFMSTtBQU1qQnJGLFVBQUFBLFFBTmlCO0FBT2pCQyxVQUFBQTtBQVBpQixTQUFELENBQWpCO0FBU0EsT0FuQkQ7QUFvQkEsS0FyQkQsTUFxQk87QUFDTm1DLE1BQUFBLE1BQU0sQ0FBQ2lDLE1BQVAsQ0FBY0MsSUFBZCxDQUFtQnVKLEtBQW5CLENBQXlCZSxjQUF6QixDQUF5Q3BELE1BQU0sQ0FBQy9JLE9BQWhELEVBQXlELE9BQXpEO0FBQ0E7QUFDRCxHQTNCRDs7QUE2QkEsUUFBTThELGVBQWUsR0FBRyxNQUFNO0FBQzdCLFVBQU01RyxFQUFFLEdBQUcrSixxQkFBTSxFQUFqQjs7QUFDQSxVQUFNeEUsS0FBSyxHQUFHeEUsd0JBQUUsQ0FBRSxlQUFGLEVBQW1CLGNBQW5CLENBQWhCOztBQUNBLFVBQU1YLFFBQVEsR0FBR3lMLE1BQU0sQ0FBQy9JLE9BQVAsQ0FBZXdMLFNBQWYsRUFBakI7QUFDQSxVQUFNak8sUUFBUSxHQUFHRCxRQUFRLENBQUNpRixHQUFULEVBQWpCO0FBQ0EsVUFBTS9FLFNBQVMsR0FBR0YsUUFBUSxDQUFDa0YsR0FBVCxFQUFsQjtBQUVBa0gsSUFBQUEsWUFBWSxDQUFFLElBQUYsQ0FBWjtBQUNBQyxJQUFBQSxXQUFXLENBQUUsSUFBRixDQUFYO0FBQ0FFLElBQUFBLGlCQUFpQixDQUFDO0FBQ2pCM00sTUFBQUEsRUFEaUI7QUFFakJJLE1BQUFBLFFBQVEsRUFBRSxFQUZPO0FBR2pCbUYsTUFBQUEsS0FIaUI7QUFJakJDLE1BQUFBLElBQUksRUFBRSx1REFKVztBQUtqQkUsTUFBQUEsV0FBVyxFQUFFLEVBTEk7QUFNakJyRixNQUFBQSxRQU5pQjtBQU9qQkMsTUFBQUE7QUFQaUIsS0FBRCxDQUFqQjtBQVNBLEdBbEJEOztBQW9CQSxRQUFNMEQsZ0JBQWdCLEdBQUcsQ0FBRWhFLEVBQUYsRUFBTWtQLElBQU4sRUFBWWhOLEtBQVosS0FBdUI7QUFDL0MsVUFBTXBCLE9BQU8sR0FBRyxDQUFFLEdBQUdpTCxjQUFjLENBQUNqSixPQUFwQixDQUFoQjtBQUNBLFVBQU1hLE1BQU0sR0FBRzdDLE9BQU8sQ0FBQ3FPLElBQVIsQ0FBY3hMLE1BQU0sSUFBSTtBQUN0QyxhQUFPQSxNQUFNLENBQUMzRCxFQUFQLEtBQWNBLEVBQXJCO0FBQ0EsS0FGYyxDQUFmO0FBSUEyRCxJQUFBQSxNQUFNLENBQUV1TCxJQUFGLENBQU4sR0FBaUJoTixLQUFLLENBQUM4RSxRQUFOLEVBQWpCO0FBRUFvSSxJQUFBQSxhQUFhO0FBQ2JiLElBQUFBLFlBQVksQ0FBRXpOLE9BQUYsQ0FBWjtBQUNBMEYsSUFBQUEsYUFBYSxDQUFDO0FBQUUxRixNQUFBQTtBQUFGLEtBQUQsQ0FBYjtBQUNBLEdBWEQ7O0FBYUEsUUFBTWlELFlBQVksR0FBRy9ELEVBQUUsSUFBSTtBQUMxQixRQUFJYyxPQUFPLEdBQUcsQ0FBRSxHQUFHaUwsY0FBYyxDQUFDakosT0FBcEIsQ0FBZDtBQUNBaEMsSUFBQUEsT0FBTyxHQUFHQSxPQUFPLENBQUN1TyxNQUFSLENBQWdCMUwsTUFBTSxJQUFJQSxNQUFNLENBQUMzRCxFQUFQLEtBQWNBLEVBQXhDLENBQVY7QUFDQXdHLElBQUFBLGFBQWEsQ0FBQztBQUFFMUYsTUFBQUE7QUFBRixLQUFELENBQWI7QUFDQXNPLElBQUFBLGFBQWE7QUFDYnpJLElBQUFBLGFBQWEsQ0FBRSxLQUFGLENBQWI7O0FBRUEsUUFBSyxJQUFJN0YsT0FBTyxDQUFDa0UsTUFBakIsRUFBMEI7QUFDekJ1SixNQUFBQSxZQUFZLENBQUV6TixPQUFGLENBQVo7QUFDQTtBQUNELEdBVkQ7O0FBWUEsUUFBTXNPLGFBQWEsR0FBRyxNQUFNO0FBQzNCLFNBQU0sSUFBSUUsQ0FBQyxHQUFHLENBQWQsRUFBaUJBLENBQUMsR0FBR3RELFVBQVUsQ0FBQ2xKLE9BQVgsQ0FBbUJrQyxNQUF4QyxFQUFnRHNLLENBQUMsRUFBakQsRUFBc0Q7QUFDckR0RCxNQUFBQSxVQUFVLENBQUNsSixPQUFYLENBQW1Cd00sQ0FBbkIsRUFBc0JDLE1BQXRCLENBQThCLElBQTlCO0FBQ0E7O0FBRUR2RCxJQUFBQSxVQUFVLENBQUNsSixPQUFYLEdBQXFCLEVBQXJCO0FBQ0EsR0FORDs7QUFRQSxRQUFNbEIsVUFBVSxHQUFHLE1BQU07QUFDeEIsUUFBSyxVQUFVbUosT0FBTyxDQUFFdEksTUFBTSxDQUFDeUYsa0JBQVAsQ0FBMEI4QyxPQUE1QixDQUF0QixFQUE4RDtBQUM3RG1CLE1BQUFBLFNBQVMsQ0FBRSxJQUFGLENBQVQ7QUFFQSxZQUFNcUQsS0FBSyxHQUFHLElBQUkvTSxNQUFNLENBQUNDLEVBQVAsQ0FBVW5CLEdBQVYsQ0FBY3NKLE1BQWQsQ0FBcUJDLFFBQXpCLENBQWtDO0FBQy9DO0FBQ0FNLFFBQUFBLGtDQUFrQyxFQUFFN0o7QUFGVyxPQUFsQyxDQUFkO0FBS0FpTyxNQUFBQSxLQUFLLENBQUNDLElBQU4sR0FBYTlFLElBQWIsQ0FBbUJPLFFBQVEsSUFBSTtBQUM5QixZQUFJd0UsS0FBSyxHQUFHLEtBQVo7O0FBRUEsWUFBSyxPQUFPeEUsUUFBUSxDQUFDRSxrQ0FBckIsRUFBMEQ7QUFDekRzRSxVQUFBQSxLQUFLLEdBQUcsSUFBUjtBQUNBOztBQUVEdkQsUUFBQUEsU0FBUyxDQUFFLEtBQUYsQ0FBVDtBQUNBYixRQUFBQSxXQUFXLENBQUVvRSxLQUFGLENBQVg7O0FBRUEsWUFBSyxPQUFPeEUsUUFBUSxDQUFDRSxrQ0FBckIsRUFBMEQ7QUFDekQzSSxVQUFBQSxNQUFNLENBQUMyRyxXQUFQLEdBQXFCLEtBQXJCO0FBQ0FtQyxVQUFBQSxhQUFhLENBQUVMLFFBQVEsQ0FBQ0Usa0NBQVgsQ0FBYjtBQUNBO0FBQ0QsT0FkRDtBQWVBO0FBQ0QsR0F6QkQ7O0FBMkJBLFFBQU0zRSxXQUFXLEdBQUd2RSxLQUFLLElBQUk7QUFDNUJzRSxJQUFBQSxhQUFhLENBQUM7QUFBRXRHLE1BQUFBLEtBQUssRUFBRWdDO0FBQVQsS0FBRCxDQUFiO0FBQ0EySixJQUFBQSxNQUFNLENBQUMvSSxPQUFQLENBQWVnSixVQUFmLENBQTBCO0FBQUV2QyxNQUFBQSxNQUFNLEVBQUVBLGlCQUFNLENBQUVySCxLQUFGO0FBQWhCLEtBQTFCO0FBQ0EsR0FIRDs7QUFLQSxNQUFLLENBQUVWLFdBQUYsSUFBaUIsQ0FBRUMsVUFBeEIsRUFBcUM7QUFDcEMsV0FDQyx1Q0FBQyxXQUFEO0FBQ0MsZUFBUyxFQUFHSCxTQURiO0FBRUMsU0FBRyxFQUFHQyxHQUZQO0FBR0MsaUJBQVcsRUFBR0MsV0FIZjtBQUlDLGdCQUFVLEVBQUdDLFVBSmQ7QUFLQyxlQUFTLEVBQUcwSixNQUxiO0FBTUMsZ0JBQVUsRUFBR3ZKO0FBTmQsTUFERDtBQVVBOztBQUVELFNBQ0MsdUNBQUMsNkJBQUQsUUFDQyx1Q0FBQyx1REFBRDtBQUNDLFNBQUssRUFBR2Isd0JBQUUsQ0FBRSxjQUFGLEVBQWtCLGNBQWxCLENBRFg7QUFFQyxTQUFLLEVBQUdoQixVQUFVLENBQUNHLEtBRnBCO0FBR0MsV0FBTyxFQUFHLENBQ1Q7QUFDQ3VGLE1BQUFBLEtBQUssRUFBRTFFLHdCQUFFLENBQUUsVUFBRixFQUFjLGNBQWQsQ0FEVjtBQUVDbUIsTUFBQUEsS0FBSyxFQUFFLFVBRlI7QUFHQytGLE1BQUFBLEtBQUssRUFBRXhGLE1BQU0sQ0FBQ3lGLGtCQUFQLENBQTBCQyxVQUExQixHQUF1QztBQUgvQyxLQURTLEVBTVQ7QUFDQzFDLE1BQUFBLEtBQUssRUFBRTFFLHdCQUFFLENBQUUsUUFBRixFQUFZLGNBQVosQ0FEVjtBQUVDbUIsTUFBQUEsS0FBSyxFQUFFLFFBRlI7QUFHQytGLE1BQUFBLEtBQUssRUFBRXhGLE1BQU0sQ0FBQ3lGLGtCQUFQLENBQTBCQyxVQUExQixHQUF1QztBQUgvQyxLQU5TLEVBV1Q7QUFDQzFDLE1BQUFBLEtBQUssRUFBRTFFLHdCQUFFLENBQUUsT0FBRixFQUFXLGNBQVgsQ0FEVjtBQUVDbUIsTUFBQUEsS0FBSyxFQUFFLE9BRlI7QUFHQytGLE1BQUFBLEtBQUssRUFBRXhGLE1BQU0sQ0FBQ3lGLGtCQUFQLENBQTBCQyxVQUExQixHQUF1QztBQUgvQyxLQVhTLEVBZ0JUO0FBQ0MxQyxNQUFBQSxLQUFLLEVBQUUxRSx3QkFBRSxDQUFFLE1BQUYsRUFBVSxjQUFWLENBRFY7QUFFQ21CLE1BQUFBLEtBQUssRUFBRSxNQUZSO0FBR0MrRixNQUFBQSxLQUFLLEVBQUV4RixNQUFNLENBQUN5RixrQkFBUCxDQUEwQkMsVUFBMUIsR0FBdUM7QUFIL0MsS0FoQlMsRUFxQlQ7QUFDQzFDLE1BQUFBLEtBQUssRUFBRTFFLHdCQUFFLENBQUUsT0FBRixFQUFXLGNBQVgsQ0FEVjtBQUVDbUIsTUFBQUEsS0FBSyxFQUFFLE9BRlI7QUFHQytGLE1BQUFBLEtBQUssRUFBRXhGLE1BQU0sQ0FBQ3lGLGtCQUFQLENBQTBCQyxVQUExQixHQUF1QztBQUgvQyxLQXJCUyxFQTBCVDtBQUNDMUMsTUFBQUEsS0FBSyxFQUFFMUUsd0JBQUUsQ0FBRSxXQUFGLEVBQWUsY0FBZixDQURWO0FBRUNtQixNQUFBQSxLQUFLLEVBQUUsV0FGUjtBQUdDK0YsTUFBQUEsS0FBSyxFQUFFeEYsTUFBTSxDQUFDeUYsa0JBQVAsQ0FBMEJDLFVBQTFCLEdBQXVDO0FBSC9DLEtBMUJTLENBSFg7QUFtQ0MsWUFBUSxFQUFHMUI7QUFuQ1osSUFERCxFQXVDQyx1Q0FBQyxTQUFEO0FBQ0MsY0FBVSxFQUFHMUcsVUFEZDtBQUVDLGlCQUFhLEVBQUd5RyxhQUZqQjtBQUdDLE9BQUcsRUFBR3FGLE1BQU0sQ0FBQy9JLE9BSGQ7QUFJQyxlQUFXLEVBQUcyRCxXQUpmO0FBS0MsdUJBQW1CLEVBQUc1QyxtQkFMdkI7QUFNQyxnQkFBWSxFQUFHNkMsWUFOaEI7QUFPQyxpQkFBYSxFQUFHQyxhQVBqQjtBQVFDLGdCQUFZLEVBQUc1QyxZQVJoQjtBQVNDLG9CQUFnQixFQUFHQyxnQkFUcEI7QUFVQyxtQkFBZSxFQUFHNEMsZUFWbkI7QUFXQyxPQUFHLEVBQUdyRixHQVhQO0FBWUMsWUFBUSxFQUFHRyxRQVpaO0FBYUMsYUFBUyxFQUFHeUosTUFiYjtBQWNDLGNBQVUsRUFBR3ZKO0FBZGQsSUF2Q0QsRUF3REcySyxXQUFXLElBQ1osdUNBQUMsWUFBRDtBQUNDLFVBQU0sRUFBR0csY0FEVjtBQUVDLGNBQVUsRUFBR2xFLFVBRmQ7QUFHQyx1QkFBbUIsRUFBRzNFLG1CQUh2QjtBQUlDLFNBQUssRUFBRyxNQUFNMkksWUFBWSxDQUFFLEtBQUYsQ0FKM0I7QUFLQyxhQUFTLEVBQUd6RztBQUxiLElBekRGLEVBa0VDLHVDQUFDLG9DQUFEO0FBQ0MsUUFBSSxFQUFHO0FBQ052RixNQUFBQSxNQUFNLEVBQUVULFVBQVUsQ0FBQ1M7QUFEYixLQURSO0FBSUMsVUFBTSxFQUFHO0FBQ1JtUCxNQUFBQSxHQUFHLEVBQUUsS0FERztBQUVSQyxNQUFBQSxLQUFLLEVBQUUsS0FGQztBQUdSQyxNQUFBQSxNQUFNLEVBQUUsSUFIQTtBQUlSQyxNQUFBQSxJQUFJLEVBQUU7QUFKRSxLQUpWO0FBVUMsYUFBUyxFQUFHLEdBVmI7QUFXQyxhQUFTLEVBQUcsSUFYYjtBQVlDLGlCQUFhLEVBQUcsTUFBTTtBQUNyQnZGLE1BQUFBLGVBQWUsQ0FBRSxLQUFGLENBQWY7QUFDQSxLQWRGO0FBZUMsZ0JBQVksRUFBRyxDQUFFMkQsS0FBRixFQUFTNkIsU0FBVCxFQUFvQkMsR0FBcEIsRUFBeUJDLEtBQXpCLEtBQW9DO0FBQ2xEekosTUFBQUEsYUFBYSxDQUFDO0FBQ2JoRyxRQUFBQSxNQUFNLEVBQUUwUCxRQUFRLENBQUVuUSxVQUFVLENBQUNTLE1BQVgsR0FBb0J5UCxLQUFLLENBQUN6UCxNQUE1QixFQUFvQyxFQUFwQztBQURILE9BQUQsQ0FBYjtBQUdBK0osTUFBQUEsZUFBZSxDQUFFLElBQUYsQ0FBZjtBQUNBLEtBcEJGO0FBcUJDLGFBQVMsRUFBRy9HLG9CQUFVLENBQ3JCLDhDQURxQixFQUVyQjtBQUFFLG9CQUFjOEc7QUFBaEIsS0FGcUI7QUFyQnZCLEtBMEJDLHVDQUFDLEdBQUQ7QUFDQyxjQUFVLEVBQUd2SyxVQURkO0FBRUMsYUFBUyxFQUFHdUIsU0FGYjtBQUdDLFdBQU8sRUFBRzRILE9BSFg7QUFJQyxjQUFVLEVBQUdDLFVBSmQ7QUFLQyxlQUFXLEVBQUdDLFdBTGY7QUFNQyxnQkFBWSxFQUFHQyxZQU5oQjtBQU9DLHFCQUFpQixFQUFHQztBQVByQixJQTFCRCxDQWxFRCxDQUREO0FBeUdBLENBamdCRDs7QUFtZ0JBLHlDQUFlYyxJQUFmLEU7Ozs7QUNuaUJBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFFQSxNQUFNaUcsU0FBUyxHQUFHO0FBQ2pCQyxFQUFBQSxFQUFFLEVBQUUsQ0FDSDtBQUNDclEsSUFBQUEsSUFBSSxFQUFFLE9BRFA7QUFFQ3NRLElBQUFBLE1BQU0sRUFBRSxDQUFFLDhCQUFGLENBRlQ7QUFHQ0YsSUFBQUEsU0FBUyxFQUFJdFEsVUFBRixJQUFrQjtBQUM1QixZQUFNeVEsV0FBVyxHQUFHTCx5QkFBSSxDQUFFcFEsVUFBRixFQUFjLENBQUUsT0FBRixFQUFXLGdCQUFYLEVBQTZCLG1CQUE3QixFQUFrRCxtQkFBbEQsQ0FBZCxDQUF4QjtBQUVBLGFBQU9xUSxtQ0FBVyxDQUFFLDhCQUFGLEVBQWtDLEVBQ25ELEdBQUdJO0FBRGdELE9BQWxDLENBQWxCO0FBR0E7QUFURixHQURHO0FBRGEsQ0FBbEI7QUFnQkEsK0NBQWVILFNBQWYsRTs7QUN2QkE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QUFDQTs7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQUkseUNBQWlCLENBQUUsNkJBQUYsRUFBaUM7QUFDakRsTCxFQUFBQSxLQUFLLEVBQUV4RSx3QkFBRSxDQUFFLGFBQUYsRUFBaUIsY0FBakIsQ0FEd0M7QUFFakQyRSxFQUFBQSxXQUFXLEVBQUUzRSx3QkFBRSxDQUFFLDREQUFGLEVBQWdFLGNBQWhFLENBRmtDO0FBR2pEeUUsRUFBQUEsSUFIaUQ7QUFJakRxTCxFQUFBQSxRQUFRLEVBQUUsa0JBSnVDO0FBS2pEQyxFQUFBQSxRQUFRLEVBQUUsQ0FDVCxLQURTLEVBRVQsUUFGUyxFQUdULFVBSFMsQ0FMdUM7QUFVakQvUSxFQUFBQSxVQVZpRDtBQVdqRGdSLEVBQUFBLFFBQVEsRUFBRTtBQUNUQyxJQUFBQSxLQUFLLEVBQUUsQ0FBRSxNQUFGLEVBQVUsTUFBVixDQURFO0FBRVRDLElBQUFBLElBQUksRUFBRTtBQUZHLEdBWHVDO0FBZWpETCxFQUFBQSxVQWZpRDtBQWdCakRELEVBQUFBLElBaEJpRDtBQWlCakRsQixFQUFBQSxJQUFJLEVBQUUsTUFBTTtBQWpCcUMsQ0FBakMsQ0FBakIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9vdHRlci1ibG9ja3MvLi9zcmMvYmxvY2tzL2Jsb2Nrcy9nb29nbGUtbWFwcy9hdHRyaWJ1dGVzLmpzPzUyZmMiLCJ3ZWJwYWNrOi8vb3R0ZXItYmxvY2tzLy4vc3JjL2Jsb2Nrcy9ibG9ja3MvZ29vZ2xlLW1hcHMvcGxhY2Vob2xkZXIuanM/NDAwNiIsIndlYnBhY2s6Ly9vdHRlci1ibG9ja3MvLi9zcmMvYmxvY2tzL2Jsb2Nrcy9nb29nbGUtbWFwcy9jb21wb25lbnRzL21hcmtlci1lZGl0b3IuanM/ZjNjOCIsIndlYnBhY2s6Ly9vdHRlci1ibG9ja3MvLi9zcmMvYmxvY2tzL2Jsb2Nrcy9nb29nbGUtbWFwcy9jb21wb25lbnRzL21hcmtlci5qcz8yMzExIiwid2VicGFjazovL290dGVyLWJsb2Nrcy8uL3NyYy9ibG9ja3MvYmxvY2tzL2dvb2dsZS1tYXBzL2NvbXBvbmVudHMvbWFya2VyLXdyYXBwZXIuanM/MDg0MyIsIndlYnBhY2s6Ly9vdHRlci1ibG9ja3MvLi9zcmMvYmxvY2tzL2Jsb2Nrcy9nb29nbGUtbWFwcy9pbnNwZWN0b3IuanM/OTFiMyIsIndlYnBhY2s6Ly9vdHRlci1ibG9ja3MvLi9zcmMvYmxvY2tzL2Jsb2Nrcy9nb29nbGUtbWFwcy9jb21wb25lbnRzL21hcmtlci1tb2RhbC5qcz9iNmQ5Iiwid2VicGFjazovL290dGVyLWJsb2Nrcy8uL3NyYy9ibG9ja3MvYmxvY2tzL2dvb2dsZS1tYXBzL2NvbXBvbmVudHMvbWFwLmpzPzk5NGQiLCJ3ZWJwYWNrOi8vb3R0ZXItYmxvY2tzLy4vc3JjL2Jsb2Nrcy9ibG9ja3MvZ29vZ2xlLW1hcHMvY29tcG9uZW50cy9zdHlsZXMuanM/M2QxNiIsIndlYnBhY2s6Ly9vdHRlci1ibG9ja3MvLi9zcmMvYmxvY2tzL2Jsb2Nrcy9nb29nbGUtbWFwcy9lZGl0LmpzP2Y2ZjkiLCJ3ZWJwYWNrOi8vb3R0ZXItYmxvY2tzLy4vc3JjL2Jsb2Nrcy9ibG9ja3MvZ29vZ2xlLW1hcHMvdHJhbnNmb3Jtcy5qcz8wZjJlIiwid2VicGFjazovL290dGVyLWJsb2Nrcy8uL3NyYy9ibG9ja3MvYmxvY2tzL2dvb2dsZS1tYXBzL2luZGV4LmpzPzZjZjYiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgYXR0cmlidXRlcyA9IHtcblx0aWQ6IHtcblx0XHR0eXBlOiAnc3RyaW5nJ1xuXHR9LFxuXHRzdHlsZToge1xuXHRcdHR5cGU6ICdzdHJpbmcnLFxuXHRcdGRlZmF1bHQ6ICdzdGFuZGFyZCdcblx0fSxcblx0bG9jYXRpb246IHtcblx0XHR0eXBlOiAnc3RyaW5nJyxcblx0XHRkZWZhdWx0OiAnTGEgU2FncmFkYSBGYW1pbGlhLCBCYXJjZWxvbmEsIFNwYWluJ1xuXHR9LFxuXHRsYXRpdHVkZToge1xuXHRcdHR5cGU6ICdzdHJpbmcnXG5cdH0sXG5cdGxvbmdpdHVkZToge1xuXHRcdHR5cGU6ICdzdHJpbmcnXG5cdH0sXG5cdHR5cGU6IHtcblx0XHR0eXBlOiAnc3RyaW5nJyxcblx0XHRkZWZhdWx0OiAncm9hZG1hcCdcblx0fSxcblx0em9vbToge1xuXHRcdHR5cGU6ICdudW1iZXInLFxuXHRcdGRlZmF1bHQ6IDE1XG5cdH0sXG5cdGhlaWdodDoge1xuXHRcdHR5cGU6ICdudW1iZXInLFxuXHRcdGRlZmF1bHQ6IDQwMFxuXHR9LFxuXHRkcmFnZ2FibGU6IHtcblx0XHR0eXBlOiAnYm9vbGVhbicsXG5cdFx0ZGVmYXVsdDogdHJ1ZVxuXHR9LFxuXHRtYXBUeXBlQ29udHJvbDoge1xuXHRcdHR5cGU6ICdib29sZWFuJyxcblx0XHRkZWZhdWx0OiB0cnVlXG5cdH0sXG5cdHpvb21Db250cm9sOiB7XG5cdFx0dHlwZTogJ2Jvb2xlYW4nLFxuXHRcdGRlZmF1bHQ6IHRydWVcblx0fSxcblx0ZnVsbHNjcmVlbkNvbnRyb2w6IHtcblx0XHR0eXBlOiAnYm9vbGVhbicsXG5cdFx0ZGVmYXVsdDogdHJ1ZVxuXHR9LFxuXHRzdHJlZXRWaWV3Q29udHJvbDoge1xuXHRcdHR5cGU6ICdib29sZWFuJyxcblx0XHRkZWZhdWx0OiB0cnVlXG5cdH0sXG5cdG1hcmtlcnM6IHtcblx0XHR0eXBlOiAnYXJyYXknLFxuXHRcdGRlZmF1bHQ6IFtdXG5cdH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IGF0dHJpYnV0ZXM7XG4iLCIvKipcbiAqIFdvcmRQcmVzcyBkZXBlbmRlbmNpZXNcbiAqL1xuaW1wb3J0IHsgX18gfSBmcm9tICdAd29yZHByZXNzL2kxOG4nO1xuXG5pbXBvcnQge1xuXHRCdXR0b24sXG5cdEV4dGVybmFsTGluayxcblx0UGxhY2Vob2xkZXIsXG5cdFNwaW5uZXIsXG5cdFRleHRDb250cm9sXG59IGZyb20gJ0B3b3JkcHJlc3MvY29tcG9uZW50cyc7XG5cbmNvbnN0IEJsb2NrUGxhY2Vob2xkZXIgPSAoe1xuXHRjbGFzc05hbWUsXG5cdGFwaSxcblx0aXNBUElMb2FkZWQsXG5cdGlzQVBJU2F2ZWQsXG5cdGlzU2F2aW5nLFxuXHRjaGFuZ2VBUEksXG5cdHNhdmVBUElLZXlcbn0pID0+IHtcblx0aWYgKCAhIGlzQVBJTG9hZGVkICkge1xuXHRcdHJldHVybiAoXG5cdFx0XHQ8UGxhY2Vob2xkZXI+XG5cdFx0XHRcdDxTcGlubmVyIC8+XG5cdFx0XHRcdHsgX18oICdMb2FkaW5n4oCmJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHQ8L1BsYWNlaG9sZGVyPlxuXHRcdCk7XG5cdH1cblxuXHRpZiAoICEgaXNBUElTYXZlZCApIHtcblx0XHRyZXR1cm4gKFxuXHRcdFx0PFBsYWNlaG9sZGVyXG5cdFx0XHRcdGljb249XCJhZG1pbi1zaXRlXCJcblx0XHRcdFx0bGFiZWw9eyBfXyggJ0dvb2dsZSBNYXBzJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdGluc3RydWN0aW9ucz17IF9fKCAnQSBHb29nbGUgTWFwcyBBUEkga2V5IGlzIHJlcXVpcmVkLCBwbGVhc2UgZW50ZXIgb25lIGJlbG93LicsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHRjbGFzc05hbWU9eyBjbGFzc05hbWUgfVxuXHRcdFx0PlxuXHRcdFx0XHQ8ZGl2IGNsYXNzTmFtZT1cImNvbXBvbmVudHMtcGxhY2Vob2xkZXJfX2FjdGlvbnNcIj5cblx0XHRcdFx0XHQ8VGV4dENvbnRyb2xcblx0XHRcdFx0XHRcdHR5cGU9XCJ0ZXh0XCJcblx0XHRcdFx0XHRcdHBsYWNlaG9sZGVyPXsgX18oICdHb29nbGUgTWFwcyBBUEkgS2V5JywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdFx0XHR2YWx1ZT17IGFwaSB9XG5cdFx0XHRcdFx0XHRjbGFzc05hbWU9XCJjb21wb25lbnRzLXBsYWNlaG9sZGVyX19pbnB1dFwiXG5cdFx0XHRcdFx0XHRvbkNoYW5nZT17IGNoYW5nZUFQSSB9XG5cdFx0XHRcdFx0Lz5cblxuXHRcdFx0XHRcdDxCdXR0b25cblx0XHRcdFx0XHRcdGlzTGFyZ2Vcblx0XHRcdFx0XHRcdGlzUHJpbWFyeVxuXHRcdFx0XHRcdFx0dHlwZT1cInN1Ym1pdFwiXG5cdFx0XHRcdFx0XHRvbkNsaWNrPXsgc2F2ZUFQSUtleSB9XG5cdFx0XHRcdFx0XHRpc0J1c3k9eyBpc1NhdmluZyB9XG5cdFx0XHRcdFx0XHRkaXNhYmxlZD17ICcnID09PSBhcGkgfVxuXHRcdFx0XHRcdD5cblx0XHRcdFx0XHRcdHsgX18oICdTYXZlJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdFx0PC9CdXR0b24+XG5cdFx0XHRcdDwvZGl2PlxuXG5cdFx0XHRcdDxkaXYgY2xhc3NOYW1lPVwiY29tcG9uZW50cy1wbGFjZWhvbGRlcl9fbGVhcm4tbW9yZVwiPlxuXHRcdFx0XHRcdHsgX18oICdZb3UgbmVlZCB0byBhY3RpdmF0ZSBNYXBzIGFuZCBQbGFjZXMgQVBJLicsICdvdHRlci1ibG9ja3MnICkgfSA8RXh0ZXJuYWxMaW5rIGhyZWY9XCJodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9tYXBzL2RvY3VtZW50YXRpb24vamF2YXNjcmlwdC9nZXQtYXBpLWtleVwiPnsgX18oICdOZWVkIGFuIEFQSSBrZXk/IEdldCBvbmUgaGVyZS4nLCAnb3R0ZXItYmxvY2tzJyApIH08L0V4dGVybmFsTGluaz5cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHQ8L1BsYWNlaG9sZGVyPlxuXHRcdCk7XG5cdH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IEJsb2NrUGxhY2Vob2xkZXI7XG4iLCIvKipcbiAqIFdvcmRQcmVzcyBkZXBlbmRlbmNpZXNcbiAqL1xuaW1wb3J0IHsgX18gfSBmcm9tICdAd29yZHByZXNzL2kxOG4nO1xuXG5pbXBvcnQgeyBCYXNlQ29udHJvbCB9IGZyb20gJ0B3b3JkcHJlc3MvY29tcG9uZW50cyc7XG5cbmltcG9ydCB7IHVzZUluc3RhbmNlSWQgfSBmcm9tICdAd29yZHByZXNzL2NvbXBvc2UnO1xuXG5pbXBvcnQge1xuXHR1c2VFZmZlY3QsXG5cdHVzZVJlZlxufSBmcm9tICdAd29yZHByZXNzL2VsZW1lbnQnO1xuXG5jb25zdCBNYXJrZXJFZGl0b3IgPSAoe1xuXHR2YWx1ZSxcblx0b25DaGFuZ2Vcbn0pID0+IHtcblx0Y29uc3QgaW5zdGFuY2VJZCA9IHVzZUluc3RhbmNlSWQoIE1hcmtlckVkaXRvciApO1xuXG5cdHVzZUVmZmVjdCggKCkgPT4ge1xuXHRcdGNvbnN0IHNldHRpbmdzID0ge1xuXHRcdFx0Y2xhc3NpY19ibG9ja19lZGl0b3I6IHRydWUsIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgY2FtZWxjYXNlXG5cdFx0XHRwbHVnaW5zOiAnbGlzdHMsbWVkaWEscGFzdGUsdGFiZm9jdXMsd29yZHByZXNzLHdwYXV0b3Jlc2l6ZSx3cGVkaXRpbWFnZSx3cGdhbGxlcnksd3BsaW5rLHdwZGlhbG9ncyx3cHRleHRwYXR0ZXJuLHdwdmlldycsXG5cdFx0XHR0b29sYmFyMTogJ2Zvcm1hdHNlbGVjdCxib2xkLGl0YWxpYyxidWxsaXN0LG51bWxpc3QsYWxpZ25sZWZ0LGFsaWduY2VudGVyLGFsaWducmlnaHQsbGluayx1bmxpbmssc3BlbGxjaGVja2VyLHdwX2FkZF9tZWRpYSdcblx0XHR9O1xuXG5cdFx0d2luZG93LndwLm9sZEVkaXRvci5pbml0aWFsaXplKCBlZGl0b3JSZWYuY3VycmVudC5pZCwge1xuXHRcdFx0dGlueW1jZTogeyAuLi5zZXR0aW5ncyB9XG5cdFx0fSk7XG5cblx0XHRjb25zdCBlZGl0b3IgPSB3aW5kb3cudGlueW1jZS5nZXQoIGVkaXRvclJlZi5jdXJyZW50LmlkICk7XG5cblx0XHRlZGl0b3Iub24oICdjaGFuZ2UnLCAoKSA9PiBvbkNoYW5nZSggZWRpdG9yLmdldENvbnRlbnQoKSApICk7XG5cblx0XHRyZXR1cm4gKCkgPT4gd2luZG93LndwLm9sZEVkaXRvci5yZW1vdmUoIGVkaXRvclJlZi5jdXJyZW50LmlkICk7XG5cdH0sIFtdKTtcblxuXHRjb25zdCBpZCA9IGBpbnNwZWN0b3ItdGV4dGFyZWEtY29udHJvbC0keyBpbnN0YW5jZUlkIH1gO1xuXG5cdGNvbnN0IGVkaXRvclJlZiA9IHVzZVJlZiggbnVsbCApO1xuXG5cdGNvbnN0IG9uQ2hhbmdlVmFsdWUgPSBlID0+IG9uQ2hhbmdlKCBlLnRhcmdldC52YWx1ZSApO1xuXG5cdHJldHVybiAoXG5cdFx0PEJhc2VDb250cm9sXG5cdFx0XHRpZD17IGlkIH1cblx0XHRcdGxhYmVsPXsgX18oICdEZXNjcmlwdGlvbicsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdD5cblx0XHRcdDx0ZXh0YXJlYVxuXHRcdFx0XHRpZD17IGlkIH1cblx0XHRcdFx0Y2xhc3NOYW1lPVwiY29tcG9uZW50cy10ZXh0YXJlYS1jb250cm9sX19pbnB1dFwiXG5cdFx0XHRcdHJvd3M9eyA0IH1cblx0XHRcdFx0dmFsdWU9eyB2YWx1ZSB9XG5cdFx0XHRcdG9uQ2hhbmdlPXsgb25DaGFuZ2VWYWx1ZSB9XG5cdFx0XHRcdHJlZj17IGVkaXRvclJlZiB9XG5cdFx0XHQvPlxuXHRcdDwvQmFzZUNvbnRyb2w+XG5cdCk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBNYXJrZXJFZGl0b3I7XG4iLCIvKipcbiAqIFdvcmRQcmVzcyBkZXBlbmRlbmNpZXNcbiAqL1xuaW1wb3J0IGNsYXNzbmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5cbi8qKlxuICogV29yZFByZXNzIGRlcGVuZGVuY2llc1xuICovXG5pbXBvcnQgeyBfXyB9IGZyb20gJ0B3b3JkcHJlc3MvaTE4bic7XG5cbmltcG9ydCB7XG5cdEJhc2VDb250cm9sLFxuXHRCdXR0b24sXG5cdEV4dGVybmFsTGluayxcblx0U2VsZWN0Q29udHJvbCxcblx0VGV4dENvbnRyb2xcbn0gZnJvbSAnQHdvcmRwcmVzcy9jb21wb25lbnRzJztcblxuaW1wb3J0IHsgdXNlUmVmIH0gZnJvbSAnQHdvcmRwcmVzcy9lbGVtZW50JztcblxuLyoqXG4gKiBJbnRlcm5hbCBkZXBlbmRlbmNpZXNcbiAqL1xuaW1wb3J0IE1hcmtlckVkaXRvciBmcm9tICcuL21hcmtlci1lZGl0b3IuanMnO1xuXG5jb25zdCBNYXJrZXIgPSAoe1xuXHRtYXJrZXIsXG5cdGlzT3Blbixcblx0aXNQbGFjZUFQSUF2YWlsYWJsZSxcblx0b3Blbk1hcmtlcixcblx0cmVtb3ZlTWFya2VyLFxuXHRjaGFuZ2VNYXJrZXJQcm9wXG59KSA9PiB7XG5cdGNvbnN0IHNlYXJjaFJlZiA9IHVzZVJlZiggbnVsbCApO1xuXG5cdGNvbnN0IGluaXRTZWFyY2ggPSAoKSA9PiB7XG5cdFx0Y29uc3QgZWxlbWVudHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCAncGFjLWNvbnRhaW5lcicgKTtcblxuXHRcdE9iamVjdC5rZXlzKCBlbGVtZW50cyApLmZvckVhY2goIGUgPT4gZWxlbWVudHNbZV0ucmVtb3ZlKCkgKTtcblxuXHRcdGNvbnN0IHNlYXJjaEJveCA9IG5ldyB3aW5kb3cuZ29vZ2xlLm1hcHMucGxhY2VzLlNlYXJjaEJveCggc2VhcmNoUmVmLmN1cnJlbnQgKTtcblxuXHRcdHNlYXJjaEJveC5hZGRMaXN0ZW5lciggJ3BsYWNlc19jaGFuZ2VkJywgKCkgPT4ge1xuXHRcdFx0Y29uc3QgcGxhY2VzID0gc2VhcmNoQm94LmdldFBsYWNlcygpO1xuXG5cdFx0XHRpZiAoIHBsYWNlcyAmJiAoIDAgPCBwbGFjZXMubGVuZ3RoICkgKSB7XG5cdFx0XHRcdHBsYWNlcy5mb3JFYWNoKCBwbGFjZSA9PiB7XG5cdFx0XHRcdFx0Y29uc3QgbG9jYXRpb24gPSBwbGFjZS5mb3JtYXR0ZWRfYWRkcmVzcyB8fCBwbGFjZS5uYW1lO1xuXHRcdFx0XHRcdGNvbnN0IGxhdGl0dWRlID0gcGxhY2UuZ2VvbWV0cnkubG9jYXRpb24ubGF0KCk7XG5cdFx0XHRcdFx0Y29uc3QgbG9uZ2l0dWRlID0gcGxhY2UuZ2VvbWV0cnkubG9jYXRpb24ubG5nKCk7XG5cdFx0XHRcdFx0Y2hhbmdlTWFya2VyUHJvcCggbWFya2VyLmlkLCAnbG9jYXRpb24nLCBsb2NhdGlvbiApO1xuXHRcdFx0XHRcdGNoYW5nZU1hcmtlclByb3AoIG1hcmtlci5pZCwgJ2xhdGl0dWRlJywgbGF0aXR1ZGUgKTtcblx0XHRcdFx0XHRjaGFuZ2VNYXJrZXJQcm9wKCBtYXJrZXIuaWQsICdsb25naXR1ZGUnLCBsb25naXR1ZGUgKTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH07XG5cblx0cmV0dXJuIChcblx0XHQ8ZGl2IGNsYXNzTmFtZT1cIndwLWJsb2NrLXRoZW1laXNsZS1ibG9ja3MtZ29vZ2xlLW1hcC1tYXJrZXJcIj5cblx0XHRcdDxkaXYgY2xhc3NOYW1lPVwid3AtYmxvY2stdGhlbWVpc2xlLWJsb2Nrcy1nb29nbGUtbWFwLW1hcmtlci10aXRsZS1hcmVhXCI+XG5cdFx0XHRcdDxCdXR0b25cblx0XHRcdFx0XHRjbGFzc05hbWU9XCJ3cC1ibG9jay10aGVtZWlzbGUtYmxvY2tzLWdvb2dsZS1tYXAtbWFya2VyLXRpdGxlXCJcblx0XHRcdFx0XHRvbkNsaWNrPXsgKCkgPT4gb3Blbk1hcmtlciggbWFya2VyLmlkICkgfVxuXHRcdFx0XHQ+XG5cdFx0XHRcdFx0eyBtYXJrZXIudGl0bGUgfHwgX18oICdDdXN0b20gTWFya2VyJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdDwvQnV0dG9uPlxuXG5cdFx0XHRcdDxCdXR0b25cblx0XHRcdFx0XHRpY29uPVwibm8tYWx0XCJcblx0XHRcdFx0XHRsYWJlbD17IF9fKCAnUmVtb3ZlIE1hcmtlcicsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHRcdHNob3dUb29sdGlwPXsgdHJ1ZSB9XG5cdFx0XHRcdFx0Y2xhc3NOYW1lPVwid3AtYmxvY2stdGhlbWVpc2xlLWJsb2Nrcy1nb29nbGUtbWFwLW1hcmtlci1yZW1vdmVcIlxuXHRcdFx0XHRcdG9uQ2xpY2s9eyAoKSA9PiByZW1vdmVNYXJrZXIoIG1hcmtlci5pZCApIH1cblx0XHRcdFx0Lz5cblx0XHRcdDwvZGl2PlxuXG5cdFx0XHQ8ZGl2XG5cdFx0XHRcdGNsYXNzTmFtZT17IGNsYXNzbmFtZXMoXG5cdFx0XHRcdFx0J3dwLWJsb2NrLXRoZW1laXNsZS1ibG9ja3MtZ29vZ2xlLW1hcC1tYXJrZXItY29udHJvbC1hcmVhJyxcblx0XHRcdFx0XHR7ICdvcGVuZWQnOiBtYXJrZXIuaWQgPT09IGlzT3BlbiB9XG5cdFx0XHRcdCkgfVxuXHRcdFx0PlxuXHRcdFx0XHQ8QmFzZUNvbnRyb2xcblx0XHRcdFx0XHRsYWJlbD17IF9fKCAnTG9jYXRpb24nLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdFx0XHRpZD17IGB0aGVtZWlzbGUtbG9jYXRpb24tc2VhcmNoLSR7IG1hcmtlci5pZCB9YCB9XG5cdFx0XHRcdD5cblx0XHRcdFx0XHQ8aW5wdXRcblx0XHRcdFx0XHRcdHR5cGU9XCJ0ZXh0XCJcblx0XHRcdFx0XHRcdGlkPXsgYHRoZW1laXNsZS1sb2NhdGlvbi1zZWFyY2gtJHsgbWFya2VyLmlkIH1gIH1cblx0XHRcdFx0XHRcdHBsYWNlaG9sZGVyPXsgX18oICdFbnRlciBhIGxvY2F0aW9u4oCmJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdFx0XHR2YWx1ZT17IG1hcmtlci5sb2NhdGlvbiB9XG5cdFx0XHRcdFx0XHRjbGFzc05hbWU9XCJ3cC1ibG9jay10aGVtZWlzbGUtYmxvY2tzLWdvb2dsZS1tYXAtc2VhcmNoXCJcblx0XHRcdFx0XHRcdHJlZj17IHNlYXJjaFJlZiB9XG5cdFx0XHRcdFx0XHRvbkZvY3VzPXsgaW5pdFNlYXJjaCB9XG5cdFx0XHRcdFx0XHRvbkNoYW5nZT17IGUgPT4gY2hhbmdlTWFya2VyUHJvcCggbWFya2VyLmlkLCAnbG9jYXRpb24nLCBlLnRhcmdldC52YWx1ZSApIH1cblx0XHRcdFx0XHRcdGRpc2FibGVkPXsgISBpc1BsYWNlQVBJQXZhaWxhYmxlIH1cblx0XHRcdFx0XHQvPlxuXG5cdFx0XHRcdFx0eyAhIGlzUGxhY2VBUElBdmFpbGFibGUgJiYgKFxuXHRcdFx0XHRcdFx0PHA+XG5cdFx0XHRcdFx0XHRcdHsgX18oICdUbyBlbmFibGUgbG9jYXRpb25zIGVhcmNoLCBwbGVhc2UgZW5zdXJlIFBsYWNlcyBBUEkgaXMgYWN0aXZhdGVkIGluIHRoZSBHb29nbGUgRGV2ZWxvcGVycyBDb25zb2xlLicsICdvdHRlci1ibG9ja3MnICkgKyAnICcgfVxuXHRcdFx0XHRcdFx0XHQ8RXh0ZXJuYWxMaW5rIGhyZWY9XCJodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wbGFjZXMvd2ViLXNlcnZpY2UvaW50cm9cIj5cblx0XHRcdFx0XHRcdFx0XHR7IF9fKCAnTW9yZSBpbmZvLicsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHRcdFx0XHQ8L0V4dGVybmFsTGluaz5cblx0XHRcdFx0XHRcdDwvcD5cblx0XHRcdFx0XHQpIH1cblx0XHRcdFx0PC9CYXNlQ29udHJvbD5cblxuXHRcdFx0XHQ8VGV4dENvbnRyb2xcblx0XHRcdFx0XHRsYWJlbD17IF9fKCAnTGF0aXR1ZGUnLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdFx0XHR0eXBlPVwidGV4dFwiXG5cdFx0XHRcdFx0dmFsdWU9eyBtYXJrZXIubGF0aXR1ZGUgfVxuXHRcdFx0XHRcdG9uQ2hhbmdlPXsgZSA9PiBjaGFuZ2VNYXJrZXJQcm9wKCBtYXJrZXIuaWQsICdsYXRpdHVkZScsIGUgKSB9XG5cdFx0XHRcdC8+XG5cblx0XHRcdFx0PFRleHRDb250cm9sXG5cdFx0XHRcdFx0bGFiZWw9eyBfXyggJ0xvbmdpdHVkZScsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHRcdHR5cGU9XCJ0ZXh0XCJcblx0XHRcdFx0XHR2YWx1ZT17IG1hcmtlci5sb25naXR1ZGUgfVxuXHRcdFx0XHRcdG9uQ2hhbmdlPXsgZSA9PiBjaGFuZ2VNYXJrZXJQcm9wKCBtYXJrZXIuaWQsICdsb25naXR1ZGUnLCBlICkgfVxuXHRcdFx0XHQvPlxuXG5cdFx0XHRcdDxTZWxlY3RDb250cm9sXG5cdFx0XHRcdFx0bGFiZWw9eyBfXyggJ01hcCBJY29uJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdFx0dmFsdWU9eyBtYXJrZXIuaWNvbiB8fCAnaHR0cHM6Ly9tYXBzLmdvb2dsZS5jb20vbWFwZmlsZXMvbXMvaWNvbnMvcmVkLWRvdC5wbmcnIH1cblx0XHRcdFx0XHRvcHRpb25zPXsgW1xuXHRcdFx0XHRcdFx0eyBsYWJlbDogX18oICdSZWQnLCAnb3R0ZXItYmxvY2tzJyApLCB2YWx1ZTogJ2h0dHBzOi8vbWFwcy5nb29nbGUuY29tL21hcGZpbGVzL21zL2ljb25zL3JlZC1kb3QucG5nJyB9LFxuXHRcdFx0XHRcdFx0eyBsYWJlbDogX18oICdCbHVlJywgJ290dGVyLWJsb2NrcycgKSwgdmFsdWU6ICdodHRwczovL21hcHMuZ29vZ2xlLmNvbS9tYXBmaWxlcy9tcy9pY29ucy9ibHVlLWRvdC5wbmcnIH0sXG5cdFx0XHRcdFx0XHR7IGxhYmVsOiBfXyggJ1llbGxvdycsICdvdHRlci1ibG9ja3MnICksIHZhbHVlOiAnaHR0cHM6Ly9tYXBzLmdvb2dsZS5jb20vbWFwZmlsZXMvbXMvaWNvbnMveWVsbG93LWRvdC5wbmcnIH0sXG5cdFx0XHRcdFx0XHR7IGxhYmVsOiBfXyggJ0dyZWVuJywgJ290dGVyLWJsb2NrcycgKSwgdmFsdWU6ICdodHRwczovL21hcHMuZ29vZ2xlLmNvbS9tYXBmaWxlcy9tcy9pY29ucy9ncmVlbi1kb3QucG5nJyB9LFxuXHRcdFx0XHRcdFx0eyBsYWJlbDogX18oICdPcmFuZ2UnLCAnb3R0ZXItYmxvY2tzJyApLCB2YWx1ZTogJ2h0dHBzOi8vbWFwcy5nb29nbGUuY29tL21hcGZpbGVzL21zL2ljb25zL29yYW5nZS1kb3QucG5nJyB9XG5cdFx0XHRcdFx0XSB9XG5cdFx0XHRcdFx0b25DaGFuZ2U9eyBlID0+IGNoYW5nZU1hcmtlclByb3AoIG1hcmtlci5pZCwgJ2ljb24nLCBlICkgfVxuXHRcdFx0XHQvPlxuXG5cdFx0XHRcdDxUZXh0Q29udHJvbFxuXHRcdFx0XHRcdGxhYmVsPXsgX18oICdUaXRsZScsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHRcdHR5cGU9XCJ0ZXh0XCJcblx0XHRcdFx0XHR2YWx1ZT17IG1hcmtlci50aXRsZSB9XG5cdFx0XHRcdFx0b25DaGFuZ2U9eyBlID0+IGNoYW5nZU1hcmtlclByb3AoIG1hcmtlci5pZCwgJ3RpdGxlJywgZSApIH1cblx0XHRcdFx0Lz5cblxuXHRcdFx0XHQ8TWFya2VyRWRpdG9yXG5cdFx0XHRcdFx0bGFiZWw9eyBfXyggJ0Rlc2NyaXB0aW9uJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdFx0dHlwZT1cInRleHRcIlxuXHRcdFx0XHRcdHZhbHVlPXsgbWFya2VyLmRlc2NyaXB0aW9uIH1cblx0XHRcdFx0XHRvbkNoYW5nZT17IGUgPT4gY2hhbmdlTWFya2VyUHJvcCggbWFya2VyLmlkLCAnZGVzY3JpcHRpb24nLCBlICkgfVxuXHRcdFx0XHQvPlxuXHRcdFx0PC9kaXY+XG5cdFx0PC9kaXY+XG5cdCk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBNYXJrZXI7XG4iLCIvKipcbiAqIFdvcmRQcmVzcyBkZXBlbmRlbmNpZXNcbiAqL1xuaW1wb3J0IHsgX18gfSBmcm9tICdAd29yZHByZXNzL2kxOG4nO1xuXG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tICdAd29yZHByZXNzL2NvbXBvbmVudHMnO1xuXG5pbXBvcnQge1xuXHRGcmFnbWVudCxcblx0dXNlRWZmZWN0LFxuXHR1c2VTdGF0ZVxufSBmcm9tICdAd29yZHByZXNzL2VsZW1lbnQnO1xuXG4vKipcbiAqIEludGVybmFsIGRlcGVuZGVuY2llc1xuICovXG5pbXBvcnQgTWFya2VyIGZyb20gJy4vbWFya2VyLmpzJztcblxuY29uc3QgTWFya2VyV3JhcHBlciA9ICh7XG5cdGluaXRpYWxPcGVuLFxuXHRtYXJrZXJzLFxuXHRpc1BsYWNlQVBJQXZhaWxhYmxlLFxuXHRhZGRNYXJrZXIsXG5cdHJlbW92ZU1hcmtlcixcblx0Y2hhbmdlTWFya2VyUHJvcFxufSkgPT4ge1xuXHR1c2VFZmZlY3QoICgpID0+IHtcblx0XHRpZiAoIGZhbHNlICE9PSBpbml0aWFsT3BlbiApIHtcblx0XHRcdHNldE9wZW4oIGluaXRpYWxPcGVuICk7XG5cdFx0fVxuXHR9LCBbIGluaXRpYWxPcGVuIF0pO1xuXG5cdGNvbnN0IFsgaXNPcGVuLCBzZXRPcGVuIF0gPSB1c2VTdGF0ZSggbnVsbCApO1xuXG5cdGNvbnN0IG9wZW5NYXJrZXIgPSAoIGlkICkgPT4ge1xuXHRcdGlmICggaXNPcGVuID09PSBpZCApIHtcblx0XHRcdGlkID0gbnVsbDtcblx0XHR9XG5cblx0XHRzZXRPcGVuKCBpZCApO1xuXHR9O1xuXG5cdHJldHVybiAoXG5cdFx0PEZyYWdtZW50PlxuXHRcdFx0PGRpdiBjbGFzc05hbWU9XCJ3cC1ibG9jay10aGVtZWlzbGUtYmxvY2tzLWdvb2dsZS1tYXAtbWFya2VyLWdyb3VwXCI+XG5cdFx0XHRcdHsgbWFya2Vycy5tYXAoIG1hcmtlciA9PiB7XG5cdFx0XHRcdFx0cmV0dXJuIChcblx0XHRcdFx0XHRcdDxNYXJrZXJcblx0XHRcdFx0XHRcdFx0a2V5PXsgbWFya2VyLmlkIH1cblx0XHRcdFx0XHRcdFx0bWFya2VyPXsgbWFya2VyIH1cblx0XHRcdFx0XHRcdFx0aXNPcGVuPXsgaXNPcGVuIH1cblx0XHRcdFx0XHRcdFx0aXNQbGFjZUFQSUF2YWlsYWJsZT17IGlzUGxhY2VBUElBdmFpbGFibGUgfVxuXHRcdFx0XHRcdFx0XHRvcGVuTWFya2VyPXsgb3Blbk1hcmtlciB9XG5cdFx0XHRcdFx0XHRcdHJlbW92ZU1hcmtlcj17IHJlbW92ZU1hcmtlciB9XG5cdFx0XHRcdFx0XHRcdGNoYW5nZU1hcmtlclByb3A9eyBjaGFuZ2VNYXJrZXJQcm9wIH1cblx0XHRcdFx0XHRcdC8+XG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0fSkgfVxuXHRcdFx0PC9kaXY+XG5cblx0XHRcdDxCdXR0b25cblx0XHRcdFx0aXNTZWNvbmRhcnlcblx0XHRcdFx0aXNMYXJnZVxuXHRcdFx0XHRjbGFzc05hbWU9XCJ3cC1ibG9jay10aGVtZWlzbGUtYmxvY2tzLWdvb2dsZS1tYXAtbWFya2VyLWFkZFwiXG5cdFx0XHRcdG9uQ2xpY2s9eyBhZGRNYXJrZXIgfVxuXHRcdFx0PlxuXHRcdFx0XHR7IF9fKCAnQWRkIE1hcmtlcicsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0PC9CdXR0b24+XG5cdFx0PC9GcmFnbWVudD5cblx0KTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IE1hcmtlcldyYXBwZXI7XG4iLCIvKipcbiAqIFdvcmRQcmVzcyBkZXBlbmRlbmNpZXNcbiAqL1xuaW1wb3J0IHsgX18gfSBmcm9tICdAd29yZHByZXNzL2kxOG4nO1xuXG5pbXBvcnQge1xuXHRCYXNlQ29udHJvbCxcblx0QnV0dG9uLFxuXHRFeHRlcm5hbExpbmssXG5cdFBhbmVsQm9keSxcblx0UmFuZ2VDb250cm9sLFxuXHRTZWxlY3RDb250cm9sLFxuXHRUZXh0Q29udHJvbCxcblx0VG9nZ2xlQ29udHJvbFxufSBmcm9tICdAd29yZHByZXNzL2NvbXBvbmVudHMnO1xuXG5pbXBvcnQgeyBJbnNwZWN0b3JDb250cm9scyB9IGZyb20gJ0B3b3JkcHJlc3MvYmxvY2stZWRpdG9yJztcblxuaW1wb3J0IHsgdXNlUmVmIH0gZnJvbSAnQHdvcmRwcmVzcy9lbGVtZW50JztcblxuaW1wb3J0IHsgU3R5bGVTd2l0Y2hlckluc3BlY3RvckNvbnRyb2wgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL3N0eWxlLXN3aXRjaGVyLWNvbnRyb2wvaW5kZXguanMnO1xuaW1wb3J0IE1hcmtlcldyYXBwZXIgZnJvbSAnLi9jb21wb25lbnRzL21hcmtlci13cmFwcGVyLmpzJztcblxuY29uc3QgSW5zcGVjdG9yID0gKHtcblx0YXR0cmlidXRlcyxcblx0c2V0QXR0cmlidXRlcyxcblx0bWFwLFxuXHRjaGFuZ2VTdHlsZSxcblx0aXNQbGFjZUFQSUF2YWlsYWJsZSxcblx0aXNNYXJrZXJPcGVuLFxuXHRzZXRNYXJrZXJPcGVuLFxuXHRyZW1vdmVNYXJrZXIsXG5cdGNoYW5nZU1hcmtlclByb3AsXG5cdGFkZE1hcmtlck1hbnVhbCxcblx0YXBpLFxuXHRpc1NhdmluZyxcblx0Y2hhbmdlQVBJLFxuXHRzYXZlQVBJS2V5XG59KSA9PiB7XG5cdGNvbnN0IHNlYXJjaFJlZiA9IHVzZVJlZiggbnVsbCApO1xuXG5cdGNvbnN0IGluaXRTZWFyY2ggPSAoKSA9PiB7XG5cdFx0Y29uc3QgZWxlbWVudHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCAncGFjLWNvbnRhaW5lcicgKTtcblxuXHRcdE9iamVjdC5rZXlzKCBlbGVtZW50cyApLmZvckVhY2goIGUgPT4gZWxlbWVudHNbZV0ucmVtb3ZlKCkgKTtcblxuXHRcdGNvbnN0IHNlYXJjaEJveCA9IG5ldyB3aW5kb3cuZ29vZ2xlLm1hcHMucGxhY2VzLlNlYXJjaEJveCggc2VhcmNoUmVmLmN1cnJlbnQgKTtcblxuXHRcdHNlYXJjaEJveC5hZGRMaXN0ZW5lciggJ3BsYWNlc19jaGFuZ2VkJywgKCkgPT4ge1xuXHRcdFx0Y29uc3QgcGxhY2VzID0gc2VhcmNoQm94LmdldFBsYWNlcygpO1xuXG5cdFx0XHRpZiAoIHBsYWNlcyAmJiAoIDAgPCBwbGFjZXMubGVuZ3RoICkgKSB7XG5cdFx0XHRcdHBsYWNlcy5mb3JFYWNoKCBwbGFjZSA9PiB7XG5cdFx0XHRcdFx0Y29uc3QgbGF0aXR1ZGUgPSBwbGFjZS5nZW9tZXRyeS5sb2NhdGlvbi5sYXQoKTtcblx0XHRcdFx0XHRjb25zdCBsb25naXR1ZGUgPSBwbGFjZS5nZW9tZXRyeS5sb2NhdGlvbi5sbmcoKTtcblx0XHRcdFx0XHRjb25zdCBsYXRMbmcgPSBuZXcgd2luZG93Lmdvb2dsZS5tYXBzLkxhdExuZyggbGF0aXR1ZGUsIGxvbmdpdHVkZSApO1xuXHRcdFx0XHRcdG1hcC5zZXRDZW50ZXIoIGxhdExuZyApO1xuXHRcdFx0XHRcdHNldEF0dHJpYnV0ZXMoe1xuXHRcdFx0XHRcdFx0bG9jYXRpb246IHBsYWNlLmZvcm1hdHRlZF9hZGRyZXNzIHx8IHBsYWNlLm5hbWUsXG5cdFx0XHRcdFx0XHRsYXRpdHVkZTogbGF0aXR1ZGUudG9TdHJpbmcoKSxcblx0XHRcdFx0XHRcdGxvbmdpdHVkZTogbG9uZ2l0dWRlLnRvU3RyaW5nKClcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH07XG5cblx0Y29uc3QgY2hhbmdlTG9jYXRpb24gPSB2YWx1ZSA9PiB7XG5cdFx0c2V0QXR0cmlidXRlcyh7IGxvY2F0aW9uOiB2YWx1ZS50YXJnZXQudmFsdWUgfSk7XG5cdH07XG5cblx0Y29uc3QgY2hhbmdlTGF0aXR1ZGUgPSB2YWx1ZSA9PiB7XG5cdFx0c2V0QXR0cmlidXRlcyh7IGxhdGl0dWRlOiB2YWx1ZS50b1N0cmluZygpIH0pO1xuXHRcdGNvbnN0IGxhdGl0dWRlID0gTnVtYmVyKCB2YWx1ZSApO1xuXHRcdGNvbnN0IGxvbmdpdHVkZSA9IGF0dHJpYnV0ZXMubG9uZ2l0dWRlO1xuXHRcdGNvbnN0IGxhdExuZyA9IG5ldyB3aW5kb3cuZ29vZ2xlLm1hcHMuTGF0TG5nKCBsYXRpdHVkZSwgbG9uZ2l0dWRlICk7XG5cdFx0bWFwLnNldENlbnRlciggbGF0TG5nICk7XG5cdH07XG5cblx0Y29uc3QgY2hhbmdlTG9uZ2l0dWRlID0gdmFsdWUgPT4ge1xuXHRcdHNldEF0dHJpYnV0ZXMoeyBsb25naXR1ZGU6IHZhbHVlLnRvU3RyaW5nKCkgfSk7XG5cdFx0Y29uc3QgbGF0aXR1ZGUgPSBhdHRyaWJ1dGVzLmxhdGl0dWRlO1xuXHRcdGNvbnN0IGxvbmdpdHVkZSA9IE51bWJlciggdmFsdWUgKTtcblx0XHRjb25zdCBsYXRMbmcgPSBuZXcgd2luZG93Lmdvb2dsZS5tYXBzLkxhdExuZyggbGF0aXR1ZGUsIGxvbmdpdHVkZSApO1xuXHRcdG1hcC5zZXRDZW50ZXIoIGxhdExuZyApO1xuXHR9O1xuXG5cdGNvbnN0IGNoYW5nZU1hcFR5cGUgPSB2YWx1ZSA9PiB7XG5cdFx0c2V0QXR0cmlidXRlcyh7IHR5cGU6IHZhbHVlIH0pO1xuXHRcdG1hcC5zZXRNYXBUeXBlSWQoIHdpbmRvdy5nb29nbGUubWFwcy5NYXBUeXBlSWRbIHZhbHVlLnRvVXBwZXJDYXNlKCkgXSk7XG5cdH07XG5cblx0Y29uc3QgY2hhbmdlWm9vbSA9IHZhbHVlID0+IHtcblx0XHRzZXRBdHRyaWJ1dGVzKHsgem9vbTogdmFsdWUgfSk7XG5cdFx0bWFwLnNldFpvb20oIHZhbHVlICk7XG5cdH07XG5cblx0Y29uc3QgY2hhbmdlSGVpZ2h0ID0gdmFsdWUgPT4ge1xuXHRcdHNldEF0dHJpYnV0ZXMoeyBoZWlnaHQ6IHZhbHVlIH0pO1xuXHR9O1xuXG5cdGNvbnN0IHRvZ2dsZURyYWdnYWJsZSA9ICgpID0+IHtcblx0XHRzZXRBdHRyaWJ1dGVzKHsgZHJhZ2dhYmxlOiAhIGF0dHJpYnV0ZXMuZHJhZ2dhYmxlIH0pO1xuXHR9O1xuXG5cdGNvbnN0IHRvZ2dsZU1hcFR5cGVDb250cm9sID0gKCkgPT4ge1xuXHRcdHNldEF0dHJpYnV0ZXMoeyBtYXBUeXBlQ29udHJvbDogISBhdHRyaWJ1dGVzLm1hcFR5cGVDb250cm9sIH0pO1xuXHR9O1xuXG5cdGNvbnN0IHRvZ2dsZVpvb21Db250cm9sID0gKCkgPT4ge1xuXHRcdHNldEF0dHJpYnV0ZXMoeyB6b29tQ29udHJvbDogISBhdHRyaWJ1dGVzLnpvb21Db250cm9sIH0pO1xuXHR9O1xuXG5cdGNvbnN0IHRvZ2dsZUZ1bGxTY3JlZW5Db250cm9sID0gKCkgPT4ge1xuXHRcdHNldEF0dHJpYnV0ZXMoeyBmdWxsc2NyZWVuQ29udHJvbDogISBhdHRyaWJ1dGVzLmZ1bGxzY3JlZW5Db250cm9sIH0pO1xuXHR9O1xuXG5cdGNvbnN0IHRvZ2dsZVN0cmVldFZpZXdDb250cm9sID0gKCkgPT4ge1xuXHRcdHNldEF0dHJpYnV0ZXMoeyBzdHJlZXRWaWV3Q29udHJvbDogISBhdHRyaWJ1dGVzLnN0cmVldFZpZXdDb250cm9sIH0pO1xuXHR9O1xuXG5cdHJldHVybiAoXG5cdFx0PEluc3BlY3RvckNvbnRyb2xzPlxuXHRcdFx0PFBhbmVsQm9keVxuXHRcdFx0XHR0aXRsZT17IF9fKCAnU3R5bGVzJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdGluaXRpYWxPcGVuPXsgZmFsc2UgfVxuXHRcdFx0PlxuXHRcdFx0XHQ8U3R5bGVTd2l0Y2hlckluc3BlY3RvckNvbnRyb2xcblx0XHRcdFx0XHR2YWx1ZT17IGF0dHJpYnV0ZXMuc3R5bGUgfVxuXHRcdFx0XHRcdG9wdGlvbnM9eyBbXG5cdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdGxhYmVsOiBfXyggJ1N0YW5kYXJkJywgJ290dGVyLWJsb2NrcycgKSxcblx0XHRcdFx0XHRcdFx0dmFsdWU6ICdzdGFuZGFyZCcsXG5cdFx0XHRcdFx0XHRcdGltYWdlOiB3aW5kb3cudGhlbWVpc2xlR3V0ZW5iZXJnLmFzc2V0c1BhdGggKyAnL2ljb25zL21hcC1zdGFuZGFyZC5wbmcnXG5cdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRsYWJlbDogX18oICdTaWx2ZXInLCAnb3R0ZXItYmxvY2tzJyApLFxuXHRcdFx0XHRcdFx0XHR2YWx1ZTogJ3NpbHZlcicsXG5cdFx0XHRcdFx0XHRcdGltYWdlOiB3aW5kb3cudGhlbWVpc2xlR3V0ZW5iZXJnLmFzc2V0c1BhdGggKyAnL2ljb25zL21hcC1zaWx2ZXIucG5nJ1xuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0bGFiZWw6IF9fKCAnUmV0cm8nLCAnb3R0ZXItYmxvY2tzJyApLFxuXHRcdFx0XHRcdFx0XHR2YWx1ZTogJ3JldHJvJyxcblx0XHRcdFx0XHRcdFx0aW1hZ2U6IHdpbmRvdy50aGVtZWlzbGVHdXRlbmJlcmcuYXNzZXRzUGF0aCArICcvaWNvbnMvbWFwLXJldHJvLnBuZydcblx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdGxhYmVsOiBfXyggJ0RhcmsnLCAnb3R0ZXItYmxvY2tzJyApLFxuXHRcdFx0XHRcdFx0XHR2YWx1ZTogJ2RhcmsnLFxuXHRcdFx0XHRcdFx0XHRpbWFnZTogd2luZG93LnRoZW1laXNsZUd1dGVuYmVyZy5hc3NldHNQYXRoICsgJy9pY29ucy9tYXAtZGFyay5wbmcnXG5cdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRsYWJlbDogX18oICdOaWdodCcsICdvdHRlci1ibG9ja3MnICksXG5cdFx0XHRcdFx0XHRcdHZhbHVlOiAnbmlnaHQnLFxuXHRcdFx0XHRcdFx0XHRpbWFnZTogd2luZG93LnRoZW1laXNsZUd1dGVuYmVyZy5hc3NldHNQYXRoICsgJy9pY29ucy9tYXAtbmlnaHQucG5nJ1xuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0bGFiZWw6IF9fKCAnQXViZXJnaW5lJywgJ290dGVyLWJsb2NrcycgKSxcblx0XHRcdFx0XHRcdFx0dmFsdWU6ICdhdWJlcmdpbmUnLFxuXHRcdFx0XHRcdFx0XHRpbWFnZTogd2luZG93LnRoZW1laXNsZUd1dGVuYmVyZy5hc3NldHNQYXRoICsgJy9pY29ucy9tYXAtYXViZXJnaW5lLnBuZydcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRdIH1cblx0XHRcdFx0XHRvbkNoYW5nZT17IGNoYW5nZVN0eWxlIH1cblx0XHRcdFx0Lz5cblx0XHRcdDwvUGFuZWxCb2R5PlxuXG5cdFx0XHQ8UGFuZWxCb2R5XG5cdFx0XHRcdHRpdGxlPXsgX18oICdMb2NhdGlvbicsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0PlxuXHRcdFx0XHQ8QmFzZUNvbnRyb2xcblx0XHRcdFx0XHRsYWJlbD17IF9fKCAnTG9jYXRpb24nICkgfVxuXHRcdFx0XHRcdGlkPVwid3AtYmxvY2stdGhlbWVpc2xlLWJsb2Nrcy1nb29nbGUtbWFwLXNlYXJjaFwiXG5cdFx0XHRcdD5cblx0XHRcdFx0XHQ8aW5wdXRcblx0XHRcdFx0XHRcdHR5cGU9XCJ0ZXh0XCJcblx0XHRcdFx0XHRcdGlkPVwid3AtYmxvY2stdGhlbWVpc2xlLWJsb2Nrcy1nb29nbGUtbWFwLXNlYXJjaFwiXG5cdFx0XHRcdFx0XHRwbGFjZWhvbGRlcj17IF9fKCAnRW50ZXIgYSBsb2NhdGlvbuKApicsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHRcdFx0dmFsdWU9eyBhdHRyaWJ1dGVzLmxvY2F0aW9uIH1cblx0XHRcdFx0XHRcdGNsYXNzTmFtZT1cIndwLWJsb2NrLXRoZW1laXNsZS1ibG9ja3MtZ29vZ2xlLW1hcC1zZWFyY2hcIlxuXHRcdFx0XHRcdFx0cmVmPXsgc2VhcmNoUmVmIH1cblx0XHRcdFx0XHRcdG9uRm9jdXM9eyBpbml0U2VhcmNoIH1cblx0XHRcdFx0XHRcdG9uQ2hhbmdlPXsgY2hhbmdlTG9jYXRpb24gfVxuXHRcdFx0XHRcdFx0ZGlzYWJsZWQ9eyAhIGlzUGxhY2VBUElBdmFpbGFibGUgfVxuXHRcdFx0XHRcdC8+XG5cblx0XHRcdFx0XHR7ICEgaXNQbGFjZUFQSUF2YWlsYWJsZSAmJiAoXG5cdFx0XHRcdFx0XHQ8cD5cblx0XHRcdFx0XHRcdFx0eyBfXyggJ1RvIGVuYWJsZSBsb2NhdGlvbnMgZWFyY2gsIHBsZWFzZSBlbnN1cmUgUGxhY2VzIEFQSSBpcyBhY3RpdmF0ZWQgaW4gdGhlIEdvb2dsZSBEZXZlbG9wZXJzIENvbnNvbGUuJywgJ290dGVyLWJsb2NrcycgKSArICcgJyB9XG5cdFx0XHRcdFx0XHRcdDxFeHRlcm5hbExpbmsgaHJlZj1cImh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3BsYWNlcy93ZWItc2VydmljZS9pbnRyb1wiPlxuXHRcdFx0XHRcdFx0XHRcdHsgX18oICdNb3JlIGluZm8uJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdFx0XHRcdDwvRXh0ZXJuYWxMaW5rPlxuXHRcdFx0XHRcdFx0PC9wPlxuXHRcdFx0XHRcdCkgfVxuXHRcdFx0XHQ8L0Jhc2VDb250cm9sPlxuXG5cdFx0XHRcdDxUZXh0Q29udHJvbFxuXHRcdFx0XHRcdGxhYmVsPXsgX18oICdMYXRpdHVkZScsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHRcdHR5cGU9XCJ0ZXh0XCJcblx0XHRcdFx0XHRwbGFjZWhvbGRlcj17IF9fKCAnRW50ZXIgbGF0aXR1ZGXigKYnLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdFx0XHR2YWx1ZT17IGF0dHJpYnV0ZXMubGF0aXR1ZGUgfVxuXHRcdFx0XHRcdG9uQ2hhbmdlPXsgY2hhbmdlTGF0aXR1ZGUgfVxuXHRcdFx0XHQvPlxuXG5cdFx0XHRcdDxUZXh0Q29udHJvbFxuXHRcdFx0XHRcdGxhYmVsPXsgX18oICdMb25naXR1ZGUnLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdFx0XHR0eXBlPVwidGV4dFwiXG5cdFx0XHRcdFx0cGxhY2Vob2xkZXI9eyBfXyggJ0VudGVyIGxvbmdpdHVkZScsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHRcdHZhbHVlPXsgYXR0cmlidXRlcy5sb25naXR1ZGUgfVxuXHRcdFx0XHRcdG9uQ2hhbmdlPXsgY2hhbmdlTG9uZ2l0dWRlIH1cblx0XHRcdFx0Lz5cblx0XHRcdDwvUGFuZWxCb2R5PlxuXG5cdFx0XHQ8UGFuZWxCb2R5XG5cdFx0XHRcdHRpdGxlPXsgX18oICdQb3NpdGlvbmluZyAmIFpvb21pbmcnLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdFx0aW5pdGlhbE9wZW49eyBmYWxzZSB9XG5cdFx0XHQ+XG5cdFx0XHRcdDxTZWxlY3RDb250cm9sXG5cdFx0XHRcdFx0bGFiZWw9eyBfXyggJ01hcCBUeXBlJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdFx0dmFsdWU9eyBhdHRyaWJ1dGVzLnR5cGUgfVxuXHRcdFx0XHRcdG9wdGlvbnM9eyBbXG5cdFx0XHRcdFx0XHR7IGxhYmVsOiBfXyggJ1JvYWQgTWFwJywgJ290dGVyLWJsb2NrcycgKSwgdmFsdWU6ICdyb2FkbWFwJyB9LFxuXHRcdFx0XHRcdFx0eyBsYWJlbDogX18oICdTYXRlbGxpdGUgVmlldycsICdvdHRlci1ibG9ja3MnICksIHZhbHVlOiAnc2F0ZWxsaXRlJyB9LFxuXHRcdFx0XHRcdFx0eyBsYWJlbDogX18oICdIeWJyaWQnLCAnb3R0ZXItYmxvY2tzJyApLCB2YWx1ZTogJ2h5YnJpZCcgfSxcblx0XHRcdFx0XHRcdHsgbGFiZWw6IF9fKCAnVGVycmFpbicsICdvdHRlci1ibG9ja3MnICksIHZhbHVlOiAndGVycmFpbicgfVxuXHRcdFx0XHRcdF0gfVxuXHRcdFx0XHRcdG9uQ2hhbmdlPXsgY2hhbmdlTWFwVHlwZSB9XG5cdFx0XHRcdC8+XG5cblx0XHRcdFx0PFJhbmdlQ29udHJvbFxuXHRcdFx0XHRcdGxhYmVsPXsgX18oICdNYXAgWm9vbSBMZXZlbCcsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHRcdHZhbHVlPXsgYXR0cmlidXRlcy56b29tIH1cblx0XHRcdFx0XHRvbkNoYW5nZT17IGNoYW5nZVpvb20gfVxuXHRcdFx0XHRcdG1pbj17IDAgfVxuXHRcdFx0XHRcdG1heD17IDIwIH1cblx0XHRcdFx0Lz5cblxuXHRcdFx0XHQ8UmFuZ2VDb250cm9sXG5cdFx0XHRcdFx0bGFiZWw9eyBfXyggJ01hcCBIZWlnaHQnLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdFx0XHR2YWx1ZT17IGF0dHJpYnV0ZXMuaGVpZ2h0IH1cblx0XHRcdFx0XHRvbkNoYW5nZT17IGNoYW5nZUhlaWdodCB9XG5cdFx0XHRcdFx0bWluPXsgMTAwIH1cblx0XHRcdFx0XHRtYXg9eyAxNDAwIH1cblx0XHRcdFx0Lz5cblx0XHRcdDwvUGFuZWxCb2R5PlxuXG5cdFx0XHQ8UGFuZWxCb2R5XG5cdFx0XHRcdHRpdGxlPXsgX18oICdDb250cm9scycsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHRpbml0aWFsT3Blbj17IGZhbHNlIH1cblx0XHRcdD5cblx0XHRcdFx0PEJhc2VDb250cm9sPlxuXHRcdFx0XHRcdHsgX18oICdUaGUgZm9sbG93aW5nIGNoYW5nZXMgd2lsbCBub3QgYWZmZWN0IGJsb2NrIHByZXZpZXcgZHVyaW5nIHRoZSBlZGl0aW5nIHByb2Nlc3MuIFlvdSBjYW4gY2xpY2sgb3V0c2lkZSB0aGUgYmxvY2sgdG8gc2VlIHRoZSBjaGFuZ2VzIHRha2UgZWZmZWN0LicsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHQ8L0Jhc2VDb250cm9sPlxuXG5cdFx0XHRcdDxUb2dnbGVDb250cm9sXG5cdFx0XHRcdFx0bGFiZWw9eyBfXyggJ0RyYWdnYWJsZSBNYXAnLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdFx0XHRjaGVja2VkPXsgYXR0cmlidXRlcy5kcmFnZ2FibGUgfVxuXHRcdFx0XHRcdG9uQ2hhbmdlPXsgdG9nZ2xlRHJhZ2dhYmxlIH1cblx0XHRcdFx0Lz5cblxuXHRcdFx0XHQ8VG9nZ2xlQ29udHJvbFxuXHRcdFx0XHRcdGxhYmVsPXsgX18oICdNYXAgVHlwZSBDb250cm9sJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdFx0Y2hlY2tlZD17IGF0dHJpYnV0ZXMubWFwVHlwZUNvbnRyb2wgfVxuXHRcdFx0XHRcdG9uQ2hhbmdlPXsgdG9nZ2xlTWFwVHlwZUNvbnRyb2wgfVxuXHRcdFx0XHQvPlxuXG5cdFx0XHRcdDxUb2dnbGVDb250cm9sXG5cdFx0XHRcdFx0bGFiZWw9eyBfXyggJ1pvb20gQ29udHJvbCcsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHRcdGNoZWNrZWQ9eyBhdHRyaWJ1dGVzLnpvb21Db250cm9sIH1cblx0XHRcdFx0XHRvbkNoYW5nZT17IHRvZ2dsZVpvb21Db250cm9sIH1cblx0XHRcdFx0Lz5cblxuXHRcdFx0XHQ8VG9nZ2xlQ29udHJvbFxuXHRcdFx0XHRcdGxhYmVsPXsgX18oICdGdWxsIFNjcmVlbiBDb250cm9sJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdFx0Y2hlY2tlZD17IGF0dHJpYnV0ZXMuZnVsbHNjcmVlbkNvbnRyb2wgfVxuXHRcdFx0XHRcdG9uQ2hhbmdlPXsgdG9nZ2xlRnVsbFNjcmVlbkNvbnRyb2wgfVxuXHRcdFx0XHQvPlxuXG5cdFx0XHRcdDxUb2dnbGVDb250cm9sXG5cdFx0XHRcdFx0bGFiZWw9eyBfXyggJ1N0cmVlbiBWaWV3IENvbnRyb2wnLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdFx0XHRjaGVja2VkPXsgYXR0cmlidXRlcy5zdHJlZXRWaWV3Q29udHJvbCB9XG5cdFx0XHRcdFx0b25DaGFuZ2U9eyB0b2dnbGVTdHJlZXRWaWV3Q29udHJvbCB9XG5cdFx0XHRcdC8+XG5cdFx0XHQ8L1BhbmVsQm9keT5cblxuXHRcdFx0PFBhbmVsQm9keVxuXHRcdFx0XHR0aXRsZT17IF9fKCAnTWFya2VycycsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHRpbml0aWFsT3Blbj17IGZhbHNlIH1cblx0XHRcdFx0b3BlbmVkPXsgZmFsc2UgIT09IGlzTWFya2VyT3BlbiA/IHRydWUgOiB1bmRlZmluZWQgfVxuXHRcdFx0XHRvblRvZ2dsZT17ICgpID0+IHtcblx0XHRcdFx0XHRpZiAoIGZhbHNlICE9PSBpc01hcmtlck9wZW4gKSB7XG5cdFx0XHRcdFx0XHRzZXRNYXJrZXJPcGVuKCB0cnVlICk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9IH1cblx0XHRcdD5cblx0XHRcdFx0PE1hcmtlcldyYXBwZXJcblx0XHRcdFx0XHRtYXJrZXJzPXsgYXR0cmlidXRlcy5tYXJrZXJzIH1cblx0XHRcdFx0XHRyZW1vdmVNYXJrZXI9eyByZW1vdmVNYXJrZXIgfVxuXHRcdFx0XHRcdGNoYW5nZU1hcmtlclByb3A9eyBjaGFuZ2VNYXJrZXJQcm9wIH1cblx0XHRcdFx0XHRhZGRNYXJrZXI9eyBhZGRNYXJrZXJNYW51YWwgfVxuXHRcdFx0XHRcdGlzUGxhY2VBUElBdmFpbGFibGU9eyBpc1BsYWNlQVBJQXZhaWxhYmxlIH1cblx0XHRcdFx0XHRpbml0aWFsT3Blbj17IGlzTWFya2VyT3BlbiB9XG5cdFx0XHRcdC8+XG5cdFx0XHQ8L1BhbmVsQm9keT5cblxuXHRcdFx0PFBhbmVsQm9keVxuXHRcdFx0XHR0aXRsZT17IF9fKCAnR2xvYmFsIFNldHRpbmdzJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdGluaXRpYWxPcGVuPXsgZmFsc2UgfVxuXHRcdFx0PlxuXHRcdFx0XHQ8VGV4dENvbnRyb2xcblx0XHRcdFx0XHRsYWJlbD17IF9fKCAnR29vZ2xlIE1hcHMgQVBJIEtleScsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHRcdHR5cGU9XCJ0ZXh0XCJcblx0XHRcdFx0XHRwbGFjZWhvbGRlcj17IF9fKCAnR29vZ2xlIE1hcHMgQVBJIEtleScsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHRcdHZhbHVlPXsgYXBpIH1cblx0XHRcdFx0XHRjbGFzc05hbWU9XCJjb21wb25lbnRzLXBsYWNlaG9sZGVyX19pbnB1dFwiXG5cdFx0XHRcdFx0b25DaGFuZ2U9eyBjaGFuZ2VBUEkgfVxuXHRcdFx0XHRcdGhlbHA9eyBfXyggJ0NoYW5naW5nIHRoZSBBUEkga2V5IGVmZmVjdHMgYWxsIEdvb2dsZSBNYXAgRW1iZWQgYmxvY2tzLiBZb3Ugd2lsbCBoYXZlIHRvIHJlZnJlc2ggdGhlIHBhZ2UgYWZ0ZXIgY2hhbmdpbmcgeW91ciBBUEkga2V5cy4nLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdFx0Lz5cblxuXHRcdFx0XHQ8QnV0dG9uXG5cdFx0XHRcdFx0aXNMYXJnZVxuXHRcdFx0XHRcdGlzU2Vjb25kYXJ5XG5cdFx0XHRcdFx0dHlwZT1cInN1Ym1pdFwiXG5cdFx0XHRcdFx0b25DbGljaz17IHNhdmVBUElLZXkgfVxuXHRcdFx0XHRcdGlzQnVzeT17IGlzU2F2aW5nIH1cblx0XHRcdFx0PlxuXHRcdFx0XHRcdHsgX18oICdTYXZlIEFQSSBLZXknLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdFx0PC9CdXR0b24+XG5cdFx0XHQ8L1BhbmVsQm9keT5cblx0XHQ8L0luc3BlY3RvckNvbnRyb2xzPlxuXHQpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgSW5zcGVjdG9yO1xuIiwiLyoqXG4gKiBXb3JkUHJlc3MgZGVwZW5kZW5jaWVzXG4gKi9cbmltcG9ydCB7IF9fIH0gZnJvbSAnQHdvcmRwcmVzcy9pMThuJztcblxuaW1wb3J0IHtcblx0QmFzZUNvbnRyb2wsXG5cdEJ1dHRvbixcblx0QnV0dG9uR3JvdXAsXG5cdE1vZGFsLFxuXHRTZWxlY3RDb250cm9sLFxuXHRUZXh0Q29udHJvbFxufSBmcm9tICdAd29yZHByZXNzL2NvbXBvbmVudHMnO1xuXG5pbXBvcnQge1xuXHR1c2VFZmZlY3QsXG5cdHVzZVJlZixcblx0dXNlU3RhdGUsXG5cdEZyYWdtZW50XG59IGZyb20gJ0B3b3JkcHJlc3MvZWxlbWVudCc7XG5cbi8qKlxuICogSW50ZXJuYWwgZGVwZW5kZW5jaWVzXG4gKi9cbmltcG9ydCBNYXJrZXJFZGl0b3IgZnJvbSAnLi9tYXJrZXItZWRpdG9yLmpzJztcblxuY29uc3QgTWFya2VyTW9kYWwgPSAoe1xuXHRtYXJrZXIsXG5cdGlzQWR2YW5jZWQsXG5cdGlzUGxhY2VBUElBdmFpbGFibGUsXG5cdGFkZE1hcmtlcixcblx0Y2xvc2Vcbn0pID0+IHtcblx0dXNlRWZmZWN0KCAoKSA9PiB7XG5cdFx0c2V0SUQoIG1hcmtlci5pZCApO1xuXHRcdHNldExvY2F0aW9uKCBtYXJrZXIubG9jYXRpb24gKTtcblx0XHRzZXRUaXRsZSggbWFya2VyLnRpdGxlICk7XG5cdFx0c2V0SWNvbiggbWFya2VyLmljb24gKTtcblx0XHRzZXREZXNjcmlwdGlvbiggbWFya2VyLmRlc2NyaXB0aW9uICk7XG5cdFx0c2V0TGF0aXR1ZGUoIG1hcmtlci5sYXRpdHVkZSApO1xuXHRcdHNldExvbmdpdHVkZSggbWFya2VyLmxvbmdpdHVkZSApO1xuXHR9LCBbIG1hcmtlciBdKTtcblxuXHRjb25zdCBzZWFyY2hSZWYgPSB1c2VSZWYoIG51bGwgKTtcblxuXHRjb25zdCBbIGlkLCBzZXRJRCBdID0gdXNlU3RhdGUoIG1hcmtlci5pZCApO1xuXHRjb25zdCBbIGxvY2F0aW9uLCBzZXRMb2NhdGlvbiBdID0gdXNlU3RhdGUoIG1hcmtlci5sb2NhdGlvbiApO1xuXHRjb25zdCBbIHRpdGxlLCBzZXRUaXRsZSBdID0gdXNlU3RhdGUoIG1hcmtlci50aXRsZSApO1xuXHRjb25zdCBbIGljb24sIHNldEljb24gXSA9IHVzZVN0YXRlKCBtYXJrZXIuaWNvbiApO1xuXHRjb25zdCBbIGRlc2NyaXB0aW9uLCBzZXREZXNjcmlwdGlvbiBdID0gdXNlU3RhdGUoIG1hcmtlci5kZXNjcmlwdGlvbiApO1xuXHRjb25zdCBbIGxhdGl0dWRlLCBzZXRMYXRpdHVkZSBdID0gdXNlU3RhdGUoIG1hcmtlci5sYXRpdHVkZSApO1xuXHRjb25zdCBbIGxvbmdpdHVkZSwgc2V0TG9uZ2l0dWRlIF0gPSB1c2VTdGF0ZSggbWFya2VyLmxvbmdpdHVkZSApO1xuXG5cdGNvbnN0IGluaXRTZWFyY2ggPSAoKSA9PiB7XG5cdFx0Y29uc3QgZWxlbWVudHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCAncGFjLWNvbnRhaW5lcicgKTtcblxuXHRcdE9iamVjdC5rZXlzKCBlbGVtZW50cyApLmZvckVhY2goIGUgPT4gZWxlbWVudHNbZV0ucmVtb3ZlKCkgKTtcblxuXHRcdGNvbnN0IHNlYXJjaEJveCA9IG5ldyB3aW5kb3cuZ29vZ2xlLm1hcHMucGxhY2VzLlNlYXJjaEJveCggc2VhcmNoUmVmLmN1cnJlbnQgKTtcblxuXHRcdHNlYXJjaEJveC5hZGRMaXN0ZW5lciggJ3BsYWNlc19jaGFuZ2VkJywgKCkgPT4ge1xuXHRcdFx0Y29uc3QgcGxhY2VzID0gc2VhcmNoQm94LmdldFBsYWNlcygpO1xuXG5cdFx0XHRpZiAoIHBsYWNlcyAmJiAoIDAgPCBwbGFjZXMubGVuZ3RoICkgKSB7XG5cdFx0XHRcdHBsYWNlcy5mb3JFYWNoKCBwbGFjZSA9PiB7XG5cdFx0XHRcdFx0Y29uc3QgbG9jYXRpb24gPSBwbGFjZS5mb3JtYXR0ZWRfYWRkcmVzcyB8fCBwbGFjZS5uYW1lO1xuXHRcdFx0XHRcdGNvbnN0IGxhdGl0dWRlID0gcGxhY2UuZ2VvbWV0cnkubG9jYXRpb24ubGF0KCk7XG5cdFx0XHRcdFx0Y29uc3QgbG9uZ2l0dWRlID0gcGxhY2UuZ2VvbWV0cnkubG9jYXRpb24ubG5nKCk7XG5cdFx0XHRcdFx0c2V0TG9jYXRpb24oIGxvY2F0aW9uICk7XG5cdFx0XHRcdFx0c2V0TGF0aXR1ZGUoIGxhdGl0dWRlICk7XG5cdFx0XHRcdFx0c2V0TG9uZ2l0dWRlKCBsb25naXR1ZGUgKTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH07XG5cblx0cmV0dXJuIChcblx0XHQ8TW9kYWxcblx0XHRcdHRpdGxlPXsgX18oICdBZGQgTWFya2VyJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRvblJlcXVlc3RDbG9zZT17IGNsb3NlIH1cblx0XHRcdHNob3VsZENsb3NlT25DbGlja091dHNpZGU9eyBmYWxzZSB9XG5cdFx0PlxuXHRcdFx0eyBpc0FkdmFuY2VkICYmIChcblx0XHRcdFx0PEZyYWdtZW50PlxuXHRcdFx0XHRcdDxCYXNlQ29udHJvbFxuXHRcdFx0XHRcdFx0bGFiZWw9eyBfXyggJ0xvY2F0aW9uJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdFx0XHRpZD17IGB0aGVtZWlzbGUtbG9jYXRpb24tc2VhcmNoLSR7IG1hcmtlci5pZCB9YCB9XG5cdFx0XHRcdFx0PlxuXHRcdFx0XHRcdFx0PGlucHV0XG5cdFx0XHRcdFx0XHRcdHR5cGU9XCJ0ZXh0XCJcblx0XHRcdFx0XHRcdFx0aWQ9eyBgdGhlbWVpc2xlLWxvY2F0aW9uLXNlYXJjaC0keyBpZCB9YCB9XG5cdFx0XHRcdFx0XHRcdHBsYWNlaG9sZGVyPXsgX18oICdFbnRlciBhIGxvY2F0aW9u4oCmJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdFx0XHRcdHZhbHVlPXsgbG9jYXRpb24gfVxuXHRcdFx0XHRcdFx0XHRjbGFzc05hbWU9XCJ3cC1ibG9jay10aGVtZWlzbGUtYmxvY2tzLWdvb2dsZS1tYXAtc2VhcmNoXCJcblx0XHRcdFx0XHRcdFx0cmVmPXsgc2VhcmNoUmVmIH1cblx0XHRcdFx0XHRcdFx0b25Gb2N1cz17IGluaXRTZWFyY2ggfVxuXHRcdFx0XHRcdFx0XHRvbkNoYW5nZT17IGUgPT4gc2V0TG9jYXRpb24oIGUudGFyZ2V0LnZhbHVlICkgfVxuXHRcdFx0XHRcdFx0XHRkaXNhYmxlZD17ICEgaXNQbGFjZUFQSUF2YWlsYWJsZSB9XG5cdFx0XHRcdFx0XHQvPlxuXHRcdFx0XHRcdDwvQmFzZUNvbnRyb2w+XG5cblx0XHRcdFx0XHQ8VGV4dENvbnRyb2xcblx0XHRcdFx0XHRcdGxhYmVsPXsgX18oICdMYXRpdHVkZScsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHRcdFx0dHlwZT1cInRleHRcIlxuXHRcdFx0XHRcdFx0dmFsdWU9eyBsYXRpdHVkZSB9XG5cdFx0XHRcdFx0XHRvbkNoYW5nZT17IHNldExhdGl0dWRlIH1cblx0XHRcdFx0XHQvPlxuXG5cdFx0XHRcdFx0PFRleHRDb250cm9sXG5cdFx0XHRcdFx0XHRsYWJlbD17IF9fKCAnTG9uZ2l0dWRlJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdFx0XHR0eXBlPVwidGV4dFwiXG5cdFx0XHRcdFx0XHR2YWx1ZT17IGxvbmdpdHVkZSB9XG5cdFx0XHRcdFx0XHRvbkNoYW5nZT17IHNldExvbmdpdHVkZSB9XG5cdFx0XHRcdFx0Lz5cblx0XHRcdFx0PC9GcmFnbWVudD5cblx0XHRcdCkgfVxuXG5cdFx0XHQ8VGV4dENvbnRyb2xcblx0XHRcdFx0bGFiZWw9eyBfXyggJ1RpdGxlJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdHR5cGU9XCJ0ZXh0XCJcblx0XHRcdFx0dmFsdWU9eyB0aXRsZSB9XG5cdFx0XHRcdG9uQ2hhbmdlPXsgc2V0VGl0bGUgfVxuXHRcdFx0Lz5cblxuXHRcdFx0PE1hcmtlckVkaXRvclxuXHRcdFx0XHRsYWJlbD17IF9fKCAnRGVzY3JpcHRpb24nLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdFx0dHlwZT1cInRleHRcIlxuXHRcdFx0XHR2YWx1ZT17IGRlc2NyaXB0aW9uIH1cblx0XHRcdFx0b25DaGFuZ2U9eyBzZXREZXNjcmlwdGlvbiB9XG5cdFx0XHQvPlxuXG5cdFx0XHQ8U2VsZWN0Q29udHJvbFxuXHRcdFx0XHRsYWJlbD17IF9fKCAnTWFwIEljb24nLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdFx0dmFsdWU9eyBpY29uIHx8ICdodHRwczovL21hcHMuZ29vZ2xlLmNvbS9tYXBmaWxlcy9tcy9pY29ucy9yZWQtZG90LnBuZycgfVxuXHRcdFx0XHRvcHRpb25zPXsgW1xuXHRcdFx0XHRcdHsgbGFiZWw6IF9fKCAnUmVkJywgJ290dGVyLWJsb2NrcycgKSwgdmFsdWU6ICdodHRwczovL21hcHMuZ29vZ2xlLmNvbS9tYXBmaWxlcy9tcy9pY29ucy9yZWQtZG90LnBuZycgfSxcblx0XHRcdFx0XHR7IGxhYmVsOiBfXyggJ0JsdWUnLCAnb3R0ZXItYmxvY2tzJyApLCB2YWx1ZTogJ2h0dHBzOi8vbWFwcy5nb29nbGUuY29tL21hcGZpbGVzL21zL2ljb25zL2JsdWUtZG90LnBuZycgfSxcblx0XHRcdFx0XHR7IGxhYmVsOiBfXyggJ1llbGxvdycsICdvdHRlci1ibG9ja3MnICksIHZhbHVlOiAnaHR0cHM6Ly9tYXBzLmdvb2dsZS5jb20vbWFwZmlsZXMvbXMvaWNvbnMveWVsbG93LWRvdC5wbmcnIH0sXG5cdFx0XHRcdFx0eyBsYWJlbDogX18oICdHcmVlbicsICdvdHRlci1ibG9ja3MnICksIHZhbHVlOiAnaHR0cHM6Ly9tYXBzLmdvb2dsZS5jb20vbWFwZmlsZXMvbXMvaWNvbnMvZ3JlZW4tZG90LnBuZycgfSxcblx0XHRcdFx0XHR7IGxhYmVsOiBfXyggJ09yYW5nZScsICdvdHRlci1ibG9ja3MnICksIHZhbHVlOiAnaHR0cHM6Ly9tYXBzLmdvb2dsZS5jb20vbWFwZmlsZXMvbXMvaWNvbnMvb3JhbmdlLWRvdC5wbmcnIH1cblx0XHRcdFx0XSB9XG5cdFx0XHRcdG9uQ2hhbmdlPXsgc2V0SWNvbiB9XG5cdFx0XHQvPlxuXG5cdFx0XHQ8QnV0dG9uR3JvdXA+XG5cdFx0XHRcdDxCdXR0b25cblx0XHRcdFx0XHRpc0xhcmdlXG5cdFx0XHRcdFx0aXNQcmltYXJ5XG5cdFx0XHRcdFx0b25DbGljaz17ICgpID0+IGFkZE1hcmtlciggbG9jYXRpb24sIHRpdGxlLCBpY29uLCBkZXNjcmlwdGlvbiwgbGF0aXR1ZGUsIGxvbmdpdHVkZSApIH1cblx0XHRcdFx0PlxuXHRcdFx0XHRcdHsgX18oICdBZGQnLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdFx0PC9CdXR0b24+XG5cblx0XHRcdFx0PEJ1dHRvblxuXHRcdFx0XHRcdGlzTGFyZ2Vcblx0XHRcdFx0XHRpc1NlY29uZGFyeVxuXHRcdFx0XHRcdG9uQ2xpY2s9eyBjbG9zZSB9XG5cdFx0XHRcdD5cblx0XHRcdFx0XHR7IF9fKCAnQ2FuY2VsJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdDwvQnV0dG9uPlxuXHRcdFx0PC9CdXR0b25Hcm91cD5cblx0XHQ8L01vZGFsPlxuXHQpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgTWFya2VyTW9kYWw7XG4iLCIvKipcbiAqIEV4dGVybmFsIGRlcGVuZGVuY2llc1xuICovXG5pbXBvcnQgY2xhc3NuYW1lcyBmcm9tICdjbGFzc25hbWVzJztcblxuLyoqXG4gKiBXb3JkUHJlc3MgZGVwZW5kZW5jaWVzXG4gKi9cbmltcG9ydCB7IF9fIH0gZnJvbSAnQHdvcmRwcmVzcy9pMThuJztcblxuaW1wb3J0IHsgQnV0dG9uIH0gZnJvbSAnQHdvcmRwcmVzcy9jb21wb25lbnRzJztcblxuaW1wb3J0IHtcblx0RnJhZ21lbnQsXG5cdHVzZUVmZmVjdFxufSBmcm9tICdAd29yZHByZXNzL2VsZW1lbnQnO1xuXG5jb25zdCBNYXAgPSAoe1xuXHRhdHRyaWJ1dGVzLFxuXHRjbGFzc05hbWUsXG5cdGluaXRNYXAsXG5cdGRpc3BsYXlNYXAsXG5cdGlzTWFwTG9hZGVkLFxuXHRzZWxlY3RNYXJrZXIsXG5cdGlzU2VsZWN0aW5nTWFya2VyXG59KSA9PiB7XG5cdHVzZUVmZmVjdCggKCkgPT4ge1xuXHRcdGlmICggZGlzcGxheU1hcCApIHtcblx0XHRcdGluaXRNYXAoKTtcblx0XHR9XG5cdH0sIFsgZGlzcGxheU1hcCBdKTtcblxuXHRyZXR1cm4gKFxuXHRcdDxGcmFnbWVudD5cblx0XHRcdDxkaXZcblx0XHRcdFx0aWQ9eyBhdHRyaWJ1dGVzLmlkIH1cblx0XHRcdFx0Y2xhc3NOYW1lPXsgY2xhc3NuYW1lcyhcblx0XHRcdFx0XHRjbGFzc05hbWUsXG5cdFx0XHRcdFx0eyAnaXMtc2VsZWN0aW5nLW1hcmtlcic6IGlzU2VsZWN0aW5nTWFya2VyIH1cblx0XHRcdFx0KSB9XG5cdFx0XHRcdHN0eWxlPXsge1xuXHRcdFx0XHRcdGhlaWdodDogYXR0cmlidXRlcy5oZWlnaHQgKyAncHgnXG5cdFx0XHRcdH0gfVxuXHRcdFx0PlxuXHRcdFx0PC9kaXY+XG5cblx0XHRcdHsgaXNNYXBMb2FkZWQgJiYgKFxuXHRcdFx0XHQ8QnV0dG9uXG5cdFx0XHRcdFx0Y2xhc3NOYW1lPVwid3AtYmxvY2stdGhlbWVpc2xlLWJsb2Nrcy1nb29nbGUtbWFwLW1hcmtlci1idXR0b25cIlxuXHRcdFx0XHRcdHRpdGxlPXsgX18oICdBZGQgQnV0dG9uJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdFx0b25DbGljaz17IHNlbGVjdE1hcmtlciB9XG5cdFx0XHRcdD5cblx0XHRcdFx0XHQ8c3BhbiBjbGFzc05hbWU9XCJkYXNoaWNvbnMgZGFzaGljb25zLXN0aWNreVwiPjwvc3Bhbj5cblx0XHRcdFx0PC9CdXR0b24+XG5cdFx0XHQpIH1cblx0XHQ8L0ZyYWdtZW50PlxuXHQpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgTWFwO1xuIiwiY29uc3Qgc3R5bGVzID0ge1xuXHRzdGFuZGFyZDogW10sXG5cdHNpbHZlcjogW1xuXHRcdHtcblx0XHRcdCdlbGVtZW50VHlwZSc6ICdnZW9tZXRyeScsXG5cdFx0XHQnc3R5bGVycyc6IFtcblx0XHRcdFx0e1xuXHRcdFx0XHRcdCdjb2xvcic6ICcjZjVmNWY1J1xuXHRcdFx0XHR9XG5cdFx0XHRdXG5cdFx0fSxcblx0XHR7XG5cdFx0XHQnZWxlbWVudFR5cGUnOiAnbGFiZWxzLmljb24nLFxuXHRcdFx0J3N0eWxlcnMnOiBbXG5cdFx0XHRcdHtcblx0XHRcdFx0XHQndmlzaWJpbGl0eSc6ICdvZmYnXG5cdFx0XHRcdH1cblx0XHRcdF1cblx0XHR9LFxuXHRcdHtcblx0XHRcdCdlbGVtZW50VHlwZSc6ICdsYWJlbHMudGV4dC5maWxsJyxcblx0XHRcdCdzdHlsZXJzJzogW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0J2NvbG9yJzogJyM2MTYxNjEnXG5cdFx0XHRcdH1cblx0XHRcdF1cblx0XHR9LFxuXHRcdHtcblx0XHRcdCdlbGVtZW50VHlwZSc6ICdsYWJlbHMudGV4dC5zdHJva2UnLFxuXHRcdFx0J3N0eWxlcnMnOiBbXG5cdFx0XHRcdHtcblx0XHRcdFx0XHQnY29sb3InOiAnI2Y1ZjVmNSdcblx0XHRcdFx0fVxuXHRcdFx0XVxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0J2ZlYXR1cmVUeXBlJzogJ2FkbWluaXN0cmF0aXZlLmxhbmRfcGFyY2VsJyxcblx0XHRcdCdlbGVtZW50VHlwZSc6ICdsYWJlbHMudGV4dC5maWxsJyxcblx0XHRcdCdzdHlsZXJzJzogW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0J2NvbG9yJzogJyNiZGJkYmQnXG5cdFx0XHRcdH1cblx0XHRcdF1cblx0XHR9LFxuXHRcdHtcblx0XHRcdCdmZWF0dXJlVHlwZSc6ICdwb2knLFxuXHRcdFx0J2VsZW1lbnRUeXBlJzogJ2dlb21ldHJ5Jyxcblx0XHRcdCdzdHlsZXJzJzogW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0J2NvbG9yJzogJyNlZWVlZWUnXG5cdFx0XHRcdH1cblx0XHRcdF1cblx0XHR9LFxuXHRcdHtcblx0XHRcdCdmZWF0dXJlVHlwZSc6ICdwb2knLFxuXHRcdFx0J2VsZW1lbnRUeXBlJzogJ2xhYmVscy50ZXh0LmZpbGwnLFxuXHRcdFx0J3N0eWxlcnMnOiBbXG5cdFx0XHRcdHtcblx0XHRcdFx0XHQnY29sb3InOiAnIzc1NzU3NSdcblx0XHRcdFx0fVxuXHRcdFx0XVxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0J2ZlYXR1cmVUeXBlJzogJ3BvaS5wYXJrJyxcblx0XHRcdCdlbGVtZW50VHlwZSc6ICdnZW9tZXRyeScsXG5cdFx0XHQnc3R5bGVycyc6IFtcblx0XHRcdFx0e1xuXHRcdFx0XHRcdCdjb2xvcic6ICcjZTVlNWU1J1xuXHRcdFx0XHR9XG5cdFx0XHRdXG5cdFx0fSxcblx0XHR7XG5cdFx0XHQnZmVhdHVyZVR5cGUnOiAncG9pLnBhcmsnLFxuXHRcdFx0J2VsZW1lbnRUeXBlJzogJ2xhYmVscy50ZXh0LmZpbGwnLFxuXHRcdFx0J3N0eWxlcnMnOiBbXG5cdFx0XHRcdHtcblx0XHRcdFx0XHQnY29sb3InOiAnIzllOWU5ZSdcblx0XHRcdFx0fVxuXHRcdFx0XVxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0J2ZlYXR1cmVUeXBlJzogJ3JvYWQnLFxuXHRcdFx0J2VsZW1lbnRUeXBlJzogJ2dlb21ldHJ5Jyxcblx0XHRcdCdzdHlsZXJzJzogW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0J2NvbG9yJzogJyNmZmZmZmYnXG5cdFx0XHRcdH1cblx0XHRcdF1cblx0XHR9LFxuXHRcdHtcblx0XHRcdCdmZWF0dXJlVHlwZSc6ICdyb2FkLmFydGVyaWFsJyxcblx0XHRcdCdlbGVtZW50VHlwZSc6ICdsYWJlbHMudGV4dC5maWxsJyxcblx0XHRcdCdzdHlsZXJzJzogW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0J2NvbG9yJzogJyM3NTc1NzUnXG5cdFx0XHRcdH1cblx0XHRcdF1cblx0XHR9LFxuXHRcdHtcblx0XHRcdCdmZWF0dXJlVHlwZSc6ICdyb2FkLmhpZ2h3YXknLFxuXHRcdFx0J2VsZW1lbnRUeXBlJzogJ2dlb21ldHJ5Jyxcblx0XHRcdCdzdHlsZXJzJzogW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0J2NvbG9yJzogJyNkYWRhZGEnXG5cdFx0XHRcdH1cblx0XHRcdF1cblx0XHR9LFxuXHRcdHtcblx0XHRcdCdmZWF0dXJlVHlwZSc6ICdyb2FkLmhpZ2h3YXknLFxuXHRcdFx0J2VsZW1lbnRUeXBlJzogJ2xhYmVscy50ZXh0LmZpbGwnLFxuXHRcdFx0J3N0eWxlcnMnOiBbXG5cdFx0XHRcdHtcblx0XHRcdFx0XHQnY29sb3InOiAnIzYxNjE2MSdcblx0XHRcdFx0fVxuXHRcdFx0XVxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0J2ZlYXR1cmVUeXBlJzogJ3JvYWQubG9jYWwnLFxuXHRcdFx0J2VsZW1lbnRUeXBlJzogJ2xhYmVscy50ZXh0LmZpbGwnLFxuXHRcdFx0J3N0eWxlcnMnOiBbXG5cdFx0XHRcdHtcblx0XHRcdFx0XHQnY29sb3InOiAnIzllOWU5ZSdcblx0XHRcdFx0fVxuXHRcdFx0XVxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0J2ZlYXR1cmVUeXBlJzogJ3RyYW5zaXQubGluZScsXG5cdFx0XHQnZWxlbWVudFR5cGUnOiAnZ2VvbWV0cnknLFxuXHRcdFx0J3N0eWxlcnMnOiBbXG5cdFx0XHRcdHtcblx0XHRcdFx0XHQnY29sb3InOiAnI2U1ZTVlNSdcblx0XHRcdFx0fVxuXHRcdFx0XVxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0J2ZlYXR1cmVUeXBlJzogJ3RyYW5zaXQuc3RhdGlvbicsXG5cdFx0XHQnZWxlbWVudFR5cGUnOiAnZ2VvbWV0cnknLFxuXHRcdFx0J3N0eWxlcnMnOiBbXG5cdFx0XHRcdHtcblx0XHRcdFx0XHQnY29sb3InOiAnI2VlZWVlZSdcblx0XHRcdFx0fVxuXHRcdFx0XVxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0J2ZlYXR1cmVUeXBlJzogJ3dhdGVyJyxcblx0XHRcdCdlbGVtZW50VHlwZSc6ICdnZW9tZXRyeScsXG5cdFx0XHQnc3R5bGVycyc6IFtcblx0XHRcdFx0e1xuXHRcdFx0XHRcdCdjb2xvcic6ICcjYzljOWM5J1xuXHRcdFx0XHR9XG5cdFx0XHRdXG5cdFx0fSxcblx0XHR7XG5cdFx0XHQnZmVhdHVyZVR5cGUnOiAnd2F0ZXInLFxuXHRcdFx0J2VsZW1lbnRUeXBlJzogJ2xhYmVscy50ZXh0LmZpbGwnLFxuXHRcdFx0J3N0eWxlcnMnOiBbXG5cdFx0XHRcdHtcblx0XHRcdFx0XHQnY29sb3InOiAnIzllOWU5ZSdcblx0XHRcdFx0fVxuXHRcdFx0XVxuXHRcdH1cblx0XSxcblx0cmV0cm86IFtcblx0XHR7XG5cdFx0XHQnZWxlbWVudFR5cGUnOiAnZ2VvbWV0cnknLFxuXHRcdFx0J3N0eWxlcnMnOiBbXG5cdFx0XHRcdHtcblx0XHRcdFx0XHQnY29sb3InOiAnI2ViZTNjZCdcblx0XHRcdFx0fVxuXHRcdFx0XVxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0J2VsZW1lbnRUeXBlJzogJ2xhYmVscy50ZXh0LmZpbGwnLFxuXHRcdFx0J3N0eWxlcnMnOiBbXG5cdFx0XHRcdHtcblx0XHRcdFx0XHQnY29sb3InOiAnIzUyMzczNSdcblx0XHRcdFx0fVxuXHRcdFx0XVxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0J2VsZW1lbnRUeXBlJzogJ2xhYmVscy50ZXh0LnN0cm9rZScsXG5cdFx0XHQnc3R5bGVycyc6IFtcblx0XHRcdFx0e1xuXHRcdFx0XHRcdCdjb2xvcic6ICcjZjVmMWU2J1xuXHRcdFx0XHR9XG5cdFx0XHRdXG5cdFx0fSxcblx0XHR7XG5cdFx0XHQnZmVhdHVyZVR5cGUnOiAnYWRtaW5pc3RyYXRpdmUnLFxuXHRcdFx0J2VsZW1lbnRUeXBlJzogJ2dlb21ldHJ5LnN0cm9rZScsXG5cdFx0XHQnc3R5bGVycyc6IFtcblx0XHRcdFx0e1xuXHRcdFx0XHRcdCdjb2xvcic6ICcjYzliMmE2J1xuXHRcdFx0XHR9XG5cdFx0XHRdXG5cdFx0fSxcblx0XHR7XG5cdFx0XHQnZmVhdHVyZVR5cGUnOiAnYWRtaW5pc3RyYXRpdmUubGFuZF9wYXJjZWwnLFxuXHRcdFx0J2VsZW1lbnRUeXBlJzogJ2dlb21ldHJ5LnN0cm9rZScsXG5cdFx0XHQnc3R5bGVycyc6IFtcblx0XHRcdFx0e1xuXHRcdFx0XHRcdCdjb2xvcic6ICcjZGNkMmJlJ1xuXHRcdFx0XHR9XG5cdFx0XHRdXG5cdFx0fSxcblx0XHR7XG5cdFx0XHQnZmVhdHVyZVR5cGUnOiAnYWRtaW5pc3RyYXRpdmUubGFuZF9wYXJjZWwnLFxuXHRcdFx0J2VsZW1lbnRUeXBlJzogJ2xhYmVscy50ZXh0LmZpbGwnLFxuXHRcdFx0J3N0eWxlcnMnOiBbXG5cdFx0XHRcdHtcblx0XHRcdFx0XHQnY29sb3InOiAnI2FlOWU5MCdcblx0XHRcdFx0fVxuXHRcdFx0XVxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0J2ZlYXR1cmVUeXBlJzogJ2xhbmRzY2FwZS5uYXR1cmFsJyxcblx0XHRcdCdlbGVtZW50VHlwZSc6ICdnZW9tZXRyeScsXG5cdFx0XHQnc3R5bGVycyc6IFtcblx0XHRcdFx0e1xuXHRcdFx0XHRcdCdjb2xvcic6ICcjZGZkMmFlJ1xuXHRcdFx0XHR9XG5cdFx0XHRdXG5cdFx0fSxcblx0XHR7XG5cdFx0XHQnZmVhdHVyZVR5cGUnOiAncG9pJyxcblx0XHRcdCdlbGVtZW50VHlwZSc6ICdnZW9tZXRyeScsXG5cdFx0XHQnc3R5bGVycyc6IFtcblx0XHRcdFx0e1xuXHRcdFx0XHRcdCdjb2xvcic6ICcjZGZkMmFlJ1xuXHRcdFx0XHR9XG5cdFx0XHRdXG5cdFx0fSxcblx0XHR7XG5cdFx0XHQnZmVhdHVyZVR5cGUnOiAncG9pJyxcblx0XHRcdCdlbGVtZW50VHlwZSc6ICdsYWJlbHMudGV4dC5maWxsJyxcblx0XHRcdCdzdHlsZXJzJzogW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0J2NvbG9yJzogJyM5MzgxN2MnXG5cdFx0XHRcdH1cblx0XHRcdF1cblx0XHR9LFxuXHRcdHtcblx0XHRcdCdmZWF0dXJlVHlwZSc6ICdwb2kucGFyaycsXG5cdFx0XHQnZWxlbWVudFR5cGUnOiAnZ2VvbWV0cnkuZmlsbCcsXG5cdFx0XHQnc3R5bGVycyc6IFtcblx0XHRcdFx0e1xuXHRcdFx0XHRcdCdjb2xvcic6ICcjYTViMDc2J1xuXHRcdFx0XHR9XG5cdFx0XHRdXG5cdFx0fSxcblx0XHR7XG5cdFx0XHQnZmVhdHVyZVR5cGUnOiAncG9pLnBhcmsnLFxuXHRcdFx0J2VsZW1lbnRUeXBlJzogJ2xhYmVscy50ZXh0LmZpbGwnLFxuXHRcdFx0J3N0eWxlcnMnOiBbXG5cdFx0XHRcdHtcblx0XHRcdFx0XHQnY29sb3InOiAnIzQ0NzUzMCdcblx0XHRcdFx0fVxuXHRcdFx0XVxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0J2ZlYXR1cmVUeXBlJzogJ3JvYWQnLFxuXHRcdFx0J2VsZW1lbnRUeXBlJzogJ2dlb21ldHJ5Jyxcblx0XHRcdCdzdHlsZXJzJzogW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0J2NvbG9yJzogJyNmNWYxZTYnXG5cdFx0XHRcdH1cblx0XHRcdF1cblx0XHR9LFxuXHRcdHtcblx0XHRcdCdmZWF0dXJlVHlwZSc6ICdyb2FkLmFydGVyaWFsJyxcblx0XHRcdCdlbGVtZW50VHlwZSc6ICdnZW9tZXRyeScsXG5cdFx0XHQnc3R5bGVycyc6IFtcblx0XHRcdFx0e1xuXHRcdFx0XHRcdCdjb2xvcic6ICcjZmRmY2Y4J1xuXHRcdFx0XHR9XG5cdFx0XHRdXG5cdFx0fSxcblx0XHR7XG5cdFx0XHQnZmVhdHVyZVR5cGUnOiAncm9hZC5oaWdod2F5Jyxcblx0XHRcdCdlbGVtZW50VHlwZSc6ICdnZW9tZXRyeScsXG5cdFx0XHQnc3R5bGVycyc6IFtcblx0XHRcdFx0e1xuXHRcdFx0XHRcdCdjb2xvcic6ICcjZjhjOTY3J1xuXHRcdFx0XHR9XG5cdFx0XHRdXG5cdFx0fSxcblx0XHR7XG5cdFx0XHQnZmVhdHVyZVR5cGUnOiAncm9hZC5oaWdod2F5Jyxcblx0XHRcdCdlbGVtZW50VHlwZSc6ICdnZW9tZXRyeS5zdHJva2UnLFxuXHRcdFx0J3N0eWxlcnMnOiBbXG5cdFx0XHRcdHtcblx0XHRcdFx0XHQnY29sb3InOiAnI2U5YmM2Midcblx0XHRcdFx0fVxuXHRcdFx0XVxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0J2ZlYXR1cmVUeXBlJzogJ3JvYWQuaGlnaHdheS5jb250cm9sbGVkX2FjY2VzcycsXG5cdFx0XHQnZWxlbWVudFR5cGUnOiAnZ2VvbWV0cnknLFxuXHRcdFx0J3N0eWxlcnMnOiBbXG5cdFx0XHRcdHtcblx0XHRcdFx0XHQnY29sb3InOiAnI2U5OGQ1OCdcblx0XHRcdFx0fVxuXHRcdFx0XVxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0J2ZlYXR1cmVUeXBlJzogJ3JvYWQuaGlnaHdheS5jb250cm9sbGVkX2FjY2VzcycsXG5cdFx0XHQnZWxlbWVudFR5cGUnOiAnZ2VvbWV0cnkuc3Ryb2tlJyxcblx0XHRcdCdzdHlsZXJzJzogW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0J2NvbG9yJzogJyNkYjg1NTUnXG5cdFx0XHRcdH1cblx0XHRcdF1cblx0XHR9LFxuXHRcdHtcblx0XHRcdCdmZWF0dXJlVHlwZSc6ICdyb2FkLmxvY2FsJyxcblx0XHRcdCdlbGVtZW50VHlwZSc6ICdsYWJlbHMudGV4dC5maWxsJyxcblx0XHRcdCdzdHlsZXJzJzogW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0J2NvbG9yJzogJyM4MDZiNjMnXG5cdFx0XHRcdH1cblx0XHRcdF1cblx0XHR9LFxuXHRcdHtcblx0XHRcdCdmZWF0dXJlVHlwZSc6ICd0cmFuc2l0LmxpbmUnLFxuXHRcdFx0J2VsZW1lbnRUeXBlJzogJ2dlb21ldHJ5Jyxcblx0XHRcdCdzdHlsZXJzJzogW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0J2NvbG9yJzogJyNkZmQyYWUnXG5cdFx0XHRcdH1cblx0XHRcdF1cblx0XHR9LFxuXHRcdHtcblx0XHRcdCdmZWF0dXJlVHlwZSc6ICd0cmFuc2l0LmxpbmUnLFxuXHRcdFx0J2VsZW1lbnRUeXBlJzogJ2xhYmVscy50ZXh0LmZpbGwnLFxuXHRcdFx0J3N0eWxlcnMnOiBbXG5cdFx0XHRcdHtcblx0XHRcdFx0XHQnY29sb3InOiAnIzhmN2Q3Nydcblx0XHRcdFx0fVxuXHRcdFx0XVxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0J2ZlYXR1cmVUeXBlJzogJ3RyYW5zaXQubGluZScsXG5cdFx0XHQnZWxlbWVudFR5cGUnOiAnbGFiZWxzLnRleHQuc3Ryb2tlJyxcblx0XHRcdCdzdHlsZXJzJzogW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0J2NvbG9yJzogJyNlYmUzY2QnXG5cdFx0XHRcdH1cblx0XHRcdF1cblx0XHR9LFxuXHRcdHtcblx0XHRcdCdmZWF0dXJlVHlwZSc6ICd0cmFuc2l0LnN0YXRpb24nLFxuXHRcdFx0J2VsZW1lbnRUeXBlJzogJ2dlb21ldHJ5Jyxcblx0XHRcdCdzdHlsZXJzJzogW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0J2NvbG9yJzogJyNkZmQyYWUnXG5cdFx0XHRcdH1cblx0XHRcdF1cblx0XHR9LFxuXHRcdHtcblx0XHRcdCdmZWF0dXJlVHlwZSc6ICd3YXRlcicsXG5cdFx0XHQnZWxlbWVudFR5cGUnOiAnZ2VvbWV0cnkuZmlsbCcsXG5cdFx0XHQnc3R5bGVycyc6IFtcblx0XHRcdFx0e1xuXHRcdFx0XHRcdCdjb2xvcic6ICcjYjlkM2MyJ1xuXHRcdFx0XHR9XG5cdFx0XHRdXG5cdFx0fSxcblx0XHR7XG5cdFx0XHQnZmVhdHVyZVR5cGUnOiAnd2F0ZXInLFxuXHRcdFx0J2VsZW1lbnRUeXBlJzogJ2xhYmVscy50ZXh0LmZpbGwnLFxuXHRcdFx0J3N0eWxlcnMnOiBbXG5cdFx0XHRcdHtcblx0XHRcdFx0XHQnY29sb3InOiAnIzkyOTk4ZCdcblx0XHRcdFx0fVxuXHRcdFx0XVxuXHRcdH1cblx0XSxcblx0ZGFyazogW1xuXHRcdHtcblx0XHRcdCdlbGVtZW50VHlwZSc6ICdnZW9tZXRyeScsXG5cdFx0XHQnc3R5bGVycyc6IFtcblx0XHRcdFx0e1xuXHRcdFx0XHRcdCdjb2xvcic6ICcjMjEyMTIxJ1xuXHRcdFx0XHR9XG5cdFx0XHRdXG5cdFx0fSxcblx0XHR7XG5cdFx0XHQnZWxlbWVudFR5cGUnOiAnbGFiZWxzLmljb24nLFxuXHRcdFx0J3N0eWxlcnMnOiBbXG5cdFx0XHRcdHtcblx0XHRcdFx0XHQndmlzaWJpbGl0eSc6ICdvZmYnXG5cdFx0XHRcdH1cblx0XHRcdF1cblx0XHR9LFxuXHRcdHtcblx0XHRcdCdlbGVtZW50VHlwZSc6ICdsYWJlbHMudGV4dC5maWxsJyxcblx0XHRcdCdzdHlsZXJzJzogW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0J2NvbG9yJzogJyM3NTc1NzUnXG5cdFx0XHRcdH1cblx0XHRcdF1cblx0XHR9LFxuXHRcdHtcblx0XHRcdCdlbGVtZW50VHlwZSc6ICdsYWJlbHMudGV4dC5zdHJva2UnLFxuXHRcdFx0J3N0eWxlcnMnOiBbXG5cdFx0XHRcdHtcblx0XHRcdFx0XHQnY29sb3InOiAnIzIxMjEyMSdcblx0XHRcdFx0fVxuXHRcdFx0XVxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0J2ZlYXR1cmVUeXBlJzogJ2FkbWluaXN0cmF0aXZlJyxcblx0XHRcdCdlbGVtZW50VHlwZSc6ICdnZW9tZXRyeScsXG5cdFx0XHQnc3R5bGVycyc6IFtcblx0XHRcdFx0e1xuXHRcdFx0XHRcdCdjb2xvcic6ICcjNzU3NTc1J1xuXHRcdFx0XHR9XG5cdFx0XHRdXG5cdFx0fSxcblx0XHR7XG5cdFx0XHQnZmVhdHVyZVR5cGUnOiAnYWRtaW5pc3RyYXRpdmUuY291bnRyeScsXG5cdFx0XHQnZWxlbWVudFR5cGUnOiAnbGFiZWxzLnRleHQuZmlsbCcsXG5cdFx0XHQnc3R5bGVycyc6IFtcblx0XHRcdFx0e1xuXHRcdFx0XHRcdCdjb2xvcic6ICcjOWU5ZTllJ1xuXHRcdFx0XHR9XG5cdFx0XHRdXG5cdFx0fSxcblx0XHR7XG5cdFx0XHQnZmVhdHVyZVR5cGUnOiAnYWRtaW5pc3RyYXRpdmUubGFuZF9wYXJjZWwnLFxuXHRcdFx0J3N0eWxlcnMnOiBbXG5cdFx0XHRcdHtcblx0XHRcdFx0XHQndmlzaWJpbGl0eSc6ICdvZmYnXG5cdFx0XHRcdH1cblx0XHRcdF1cblx0XHR9LFxuXHRcdHtcblx0XHRcdCdmZWF0dXJlVHlwZSc6ICdhZG1pbmlzdHJhdGl2ZS5sb2NhbGl0eScsXG5cdFx0XHQnZWxlbWVudFR5cGUnOiAnbGFiZWxzLnRleHQuZmlsbCcsXG5cdFx0XHQnc3R5bGVycyc6IFtcblx0XHRcdFx0e1xuXHRcdFx0XHRcdCdjb2xvcic6ICcjYmRiZGJkJ1xuXHRcdFx0XHR9XG5cdFx0XHRdXG5cdFx0fSxcblx0XHR7XG5cdFx0XHQnZmVhdHVyZVR5cGUnOiAncG9pJyxcblx0XHRcdCdlbGVtZW50VHlwZSc6ICdsYWJlbHMudGV4dC5maWxsJyxcblx0XHRcdCdzdHlsZXJzJzogW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0J2NvbG9yJzogJyM3NTc1NzUnXG5cdFx0XHRcdH1cblx0XHRcdF1cblx0XHR9LFxuXHRcdHtcblx0XHRcdCdmZWF0dXJlVHlwZSc6ICdwb2kucGFyaycsXG5cdFx0XHQnZWxlbWVudFR5cGUnOiAnZ2VvbWV0cnknLFxuXHRcdFx0J3N0eWxlcnMnOiBbXG5cdFx0XHRcdHtcblx0XHRcdFx0XHQnY29sb3InOiAnIzE4MTgxOCdcblx0XHRcdFx0fVxuXHRcdFx0XVxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0J2ZlYXR1cmVUeXBlJzogJ3BvaS5wYXJrJyxcblx0XHRcdCdlbGVtZW50VHlwZSc6ICdsYWJlbHMudGV4dC5maWxsJyxcblx0XHRcdCdzdHlsZXJzJzogW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0J2NvbG9yJzogJyM2MTYxNjEnXG5cdFx0XHRcdH1cblx0XHRcdF1cblx0XHR9LFxuXHRcdHtcblx0XHRcdCdmZWF0dXJlVHlwZSc6ICdwb2kucGFyaycsXG5cdFx0XHQnZWxlbWVudFR5cGUnOiAnbGFiZWxzLnRleHQuc3Ryb2tlJyxcblx0XHRcdCdzdHlsZXJzJzogW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0J2NvbG9yJzogJyMxYjFiMWInXG5cdFx0XHRcdH1cblx0XHRcdF1cblx0XHR9LFxuXHRcdHtcblx0XHRcdCdmZWF0dXJlVHlwZSc6ICdyb2FkJyxcblx0XHRcdCdlbGVtZW50VHlwZSc6ICdnZW9tZXRyeS5maWxsJyxcblx0XHRcdCdzdHlsZXJzJzogW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0J2NvbG9yJzogJyMyYzJjMmMnXG5cdFx0XHRcdH1cblx0XHRcdF1cblx0XHR9LFxuXHRcdHtcblx0XHRcdCdmZWF0dXJlVHlwZSc6ICdyb2FkJyxcblx0XHRcdCdlbGVtZW50VHlwZSc6ICdsYWJlbHMudGV4dC5maWxsJyxcblx0XHRcdCdzdHlsZXJzJzogW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0J2NvbG9yJzogJyM4YThhOGEnXG5cdFx0XHRcdH1cblx0XHRcdF1cblx0XHR9LFxuXHRcdHtcblx0XHRcdCdmZWF0dXJlVHlwZSc6ICdyb2FkLmFydGVyaWFsJyxcblx0XHRcdCdlbGVtZW50VHlwZSc6ICdnZW9tZXRyeScsXG5cdFx0XHQnc3R5bGVycyc6IFtcblx0XHRcdFx0e1xuXHRcdFx0XHRcdCdjb2xvcic6ICcjMzczNzM3J1xuXHRcdFx0XHR9XG5cdFx0XHRdXG5cdFx0fSxcblx0XHR7XG5cdFx0XHQnZmVhdHVyZVR5cGUnOiAncm9hZC5oaWdod2F5Jyxcblx0XHRcdCdlbGVtZW50VHlwZSc6ICdnZW9tZXRyeScsXG5cdFx0XHQnc3R5bGVycyc6IFtcblx0XHRcdFx0e1xuXHRcdFx0XHRcdCdjb2xvcic6ICcjM2MzYzNjJ1xuXHRcdFx0XHR9XG5cdFx0XHRdXG5cdFx0fSxcblx0XHR7XG5cdFx0XHQnZmVhdHVyZVR5cGUnOiAncm9hZC5oaWdod2F5LmNvbnRyb2xsZWRfYWNjZXNzJyxcblx0XHRcdCdlbGVtZW50VHlwZSc6ICdnZW9tZXRyeScsXG5cdFx0XHQnc3R5bGVycyc6IFtcblx0XHRcdFx0e1xuXHRcdFx0XHRcdCdjb2xvcic6ICcjNGU0ZTRlJ1xuXHRcdFx0XHR9XG5cdFx0XHRdXG5cdFx0fSxcblx0XHR7XG5cdFx0XHQnZmVhdHVyZVR5cGUnOiAncm9hZC5sb2NhbCcsXG5cdFx0XHQnZWxlbWVudFR5cGUnOiAnbGFiZWxzLnRleHQuZmlsbCcsXG5cdFx0XHQnc3R5bGVycyc6IFtcblx0XHRcdFx0e1xuXHRcdFx0XHRcdCdjb2xvcic6ICcjNjE2MTYxJ1xuXHRcdFx0XHR9XG5cdFx0XHRdXG5cdFx0fSxcblx0XHR7XG5cdFx0XHQnZmVhdHVyZVR5cGUnOiAndHJhbnNpdCcsXG5cdFx0XHQnZWxlbWVudFR5cGUnOiAnbGFiZWxzLnRleHQuZmlsbCcsXG5cdFx0XHQnc3R5bGVycyc6IFtcblx0XHRcdFx0e1xuXHRcdFx0XHRcdCdjb2xvcic6ICcjNzU3NTc1J1xuXHRcdFx0XHR9XG5cdFx0XHRdXG5cdFx0fSxcblx0XHR7XG5cdFx0XHQnZmVhdHVyZVR5cGUnOiAnd2F0ZXInLFxuXHRcdFx0J2VsZW1lbnRUeXBlJzogJ2dlb21ldHJ5Jyxcblx0XHRcdCdzdHlsZXJzJzogW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0J2NvbG9yJzogJyMwMDAwMDAnXG5cdFx0XHRcdH1cblx0XHRcdF1cblx0XHR9LFxuXHRcdHtcblx0XHRcdCdmZWF0dXJlVHlwZSc6ICd3YXRlcicsXG5cdFx0XHQnZWxlbWVudFR5cGUnOiAnbGFiZWxzLnRleHQuZmlsbCcsXG5cdFx0XHQnc3R5bGVycyc6IFtcblx0XHRcdFx0e1xuXHRcdFx0XHRcdCdjb2xvcic6ICcjM2QzZDNkJ1xuXHRcdFx0XHR9XG5cdFx0XHRdXG5cdFx0fVxuXHRdLFxuXHRuaWdodDogW1xuXHRcdHtcblx0XHRcdCdlbGVtZW50VHlwZSc6ICdnZW9tZXRyeScsXG5cdFx0XHQnc3R5bGVycyc6IFtcblx0XHRcdFx0e1xuXHRcdFx0XHRcdCdjb2xvcic6ICcjMjQyZjNlJ1xuXHRcdFx0XHR9XG5cdFx0XHRdXG5cdFx0fSxcblx0XHR7XG5cdFx0XHQnZWxlbWVudFR5cGUnOiAnbGFiZWxzLnRleHQuZmlsbCcsXG5cdFx0XHQnc3R5bGVycyc6IFtcblx0XHRcdFx0e1xuXHRcdFx0XHRcdCdjb2xvcic6ICcjNzQ2ODU1J1xuXHRcdFx0XHR9XG5cdFx0XHRdXG5cdFx0fSxcblx0XHR7XG5cdFx0XHQnZWxlbWVudFR5cGUnOiAnbGFiZWxzLnRleHQuc3Ryb2tlJyxcblx0XHRcdCdzdHlsZXJzJzogW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0J2NvbG9yJzogJyMyNDJmM2UnXG5cdFx0XHRcdH1cblx0XHRcdF1cblx0XHR9LFxuXHRcdHtcblx0XHRcdCdmZWF0dXJlVHlwZSc6ICdhZG1pbmlzdHJhdGl2ZS5sb2NhbGl0eScsXG5cdFx0XHQnZWxlbWVudFR5cGUnOiAnbGFiZWxzLnRleHQuZmlsbCcsXG5cdFx0XHQnc3R5bGVycyc6IFtcblx0XHRcdFx0e1xuXHRcdFx0XHRcdCdjb2xvcic6ICcjZDU5NTYzJ1xuXHRcdFx0XHR9XG5cdFx0XHRdXG5cdFx0fSxcblx0XHR7XG5cdFx0XHQnZmVhdHVyZVR5cGUnOiAncG9pJyxcblx0XHRcdCdlbGVtZW50VHlwZSc6ICdsYWJlbHMudGV4dC5maWxsJyxcblx0XHRcdCdzdHlsZXJzJzogW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0J2NvbG9yJzogJyNkNTk1NjMnXG5cdFx0XHRcdH1cblx0XHRcdF1cblx0XHR9LFxuXHRcdHtcblx0XHRcdCdmZWF0dXJlVHlwZSc6ICdwb2kucGFyaycsXG5cdFx0XHQnZWxlbWVudFR5cGUnOiAnZ2VvbWV0cnknLFxuXHRcdFx0J3N0eWxlcnMnOiBbXG5cdFx0XHRcdHtcblx0XHRcdFx0XHQnY29sb3InOiAnIzI2M2MzZidcblx0XHRcdFx0fVxuXHRcdFx0XVxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0J2ZlYXR1cmVUeXBlJzogJ3BvaS5wYXJrJyxcblx0XHRcdCdlbGVtZW50VHlwZSc6ICdsYWJlbHMudGV4dC5maWxsJyxcblx0XHRcdCdzdHlsZXJzJzogW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0J2NvbG9yJzogJyM2YjlhNzYnXG5cdFx0XHRcdH1cblx0XHRcdF1cblx0XHR9LFxuXHRcdHtcblx0XHRcdCdmZWF0dXJlVHlwZSc6ICdyb2FkJyxcblx0XHRcdCdlbGVtZW50VHlwZSc6ICdnZW9tZXRyeScsXG5cdFx0XHQnc3R5bGVycyc6IFtcblx0XHRcdFx0e1xuXHRcdFx0XHRcdCdjb2xvcic6ICcjMzg0MTRlJ1xuXHRcdFx0XHR9XG5cdFx0XHRdXG5cdFx0fSxcblx0XHR7XG5cdFx0XHQnZmVhdHVyZVR5cGUnOiAncm9hZCcsXG5cdFx0XHQnZWxlbWVudFR5cGUnOiAnZ2VvbWV0cnkuc3Ryb2tlJyxcblx0XHRcdCdzdHlsZXJzJzogW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0J2NvbG9yJzogJyMyMTJhMzcnXG5cdFx0XHRcdH1cblx0XHRcdF1cblx0XHR9LFxuXHRcdHtcblx0XHRcdCdmZWF0dXJlVHlwZSc6ICdyb2FkJyxcblx0XHRcdCdlbGVtZW50VHlwZSc6ICdsYWJlbHMudGV4dC5maWxsJyxcblx0XHRcdCdzdHlsZXJzJzogW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0J2NvbG9yJzogJyM5Y2E1YjMnXG5cdFx0XHRcdH1cblx0XHRcdF1cblx0XHR9LFxuXHRcdHtcblx0XHRcdCdmZWF0dXJlVHlwZSc6ICdyb2FkLmhpZ2h3YXknLFxuXHRcdFx0J2VsZW1lbnRUeXBlJzogJ2dlb21ldHJ5Jyxcblx0XHRcdCdzdHlsZXJzJzogW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0J2NvbG9yJzogJyM3NDY4NTUnXG5cdFx0XHRcdH1cblx0XHRcdF1cblx0XHR9LFxuXHRcdHtcblx0XHRcdCdmZWF0dXJlVHlwZSc6ICdyb2FkLmhpZ2h3YXknLFxuXHRcdFx0J2VsZW1lbnRUeXBlJzogJ2dlb21ldHJ5LnN0cm9rZScsXG5cdFx0XHQnc3R5bGVycyc6IFtcblx0XHRcdFx0e1xuXHRcdFx0XHRcdCdjb2xvcic6ICcjMWYyODM1J1xuXHRcdFx0XHR9XG5cdFx0XHRdXG5cdFx0fSxcblx0XHR7XG5cdFx0XHQnZmVhdHVyZVR5cGUnOiAncm9hZC5oaWdod2F5Jyxcblx0XHRcdCdlbGVtZW50VHlwZSc6ICdsYWJlbHMudGV4dC5maWxsJyxcblx0XHRcdCdzdHlsZXJzJzogW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0J2NvbG9yJzogJyNmM2QxOWMnXG5cdFx0XHRcdH1cblx0XHRcdF1cblx0XHR9LFxuXHRcdHtcblx0XHRcdCdmZWF0dXJlVHlwZSc6ICd0cmFuc2l0Jyxcblx0XHRcdCdlbGVtZW50VHlwZSc6ICdnZW9tZXRyeScsXG5cdFx0XHQnc3R5bGVycyc6IFtcblx0XHRcdFx0e1xuXHRcdFx0XHRcdCdjb2xvcic6ICcjMmYzOTQ4J1xuXHRcdFx0XHR9XG5cdFx0XHRdXG5cdFx0fSxcblx0XHR7XG5cdFx0XHQnZmVhdHVyZVR5cGUnOiAndHJhbnNpdC5zdGF0aW9uJyxcblx0XHRcdCdlbGVtZW50VHlwZSc6ICdsYWJlbHMudGV4dC5maWxsJyxcblx0XHRcdCdzdHlsZXJzJzogW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0J2NvbG9yJzogJyNkNTk1NjMnXG5cdFx0XHRcdH1cblx0XHRcdF1cblx0XHR9LFxuXHRcdHtcblx0XHRcdCdmZWF0dXJlVHlwZSc6ICd3YXRlcicsXG5cdFx0XHQnZWxlbWVudFR5cGUnOiAnZ2VvbWV0cnknLFxuXHRcdFx0J3N0eWxlcnMnOiBbXG5cdFx0XHRcdHtcblx0XHRcdFx0XHQnY29sb3InOiAnIzE3MjYzYydcblx0XHRcdFx0fVxuXHRcdFx0XVxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0J2ZlYXR1cmVUeXBlJzogJ3dhdGVyJyxcblx0XHRcdCdlbGVtZW50VHlwZSc6ICdsYWJlbHMudGV4dC5maWxsJyxcblx0XHRcdCdzdHlsZXJzJzogW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0J2NvbG9yJzogJyM1MTVjNmQnXG5cdFx0XHRcdH1cblx0XHRcdF1cblx0XHR9LFxuXHRcdHtcblx0XHRcdCdmZWF0dXJlVHlwZSc6ICd3YXRlcicsXG5cdFx0XHQnZWxlbWVudFR5cGUnOiAnbGFiZWxzLnRleHQuc3Ryb2tlJyxcblx0XHRcdCdzdHlsZXJzJzogW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0J2NvbG9yJzogJyMxNzI2M2MnXG5cdFx0XHRcdH1cblx0XHRcdF1cblx0XHR9XG5cdF0sXG5cdGF1YmVyZ2luZTogW1xuXHRcdHtcblx0XHRcdCdlbGVtZW50VHlwZSc6ICdnZW9tZXRyeScsXG5cdFx0XHQnc3R5bGVycyc6IFtcblx0XHRcdFx0e1xuXHRcdFx0XHRcdCdjb2xvcic6ICcjMWQyYzRkJ1xuXHRcdFx0XHR9XG5cdFx0XHRdXG5cdFx0fSxcblx0XHR7XG5cdFx0XHQnZWxlbWVudFR5cGUnOiAnbGFiZWxzLnRleHQuZmlsbCcsXG5cdFx0XHQnc3R5bGVycyc6IFtcblx0XHRcdFx0e1xuXHRcdFx0XHRcdCdjb2xvcic6ICcjOGVjM2I5J1xuXHRcdFx0XHR9XG5cdFx0XHRdXG5cdFx0fSxcblx0XHR7XG5cdFx0XHQnZWxlbWVudFR5cGUnOiAnbGFiZWxzLnRleHQuc3Ryb2tlJyxcblx0XHRcdCdzdHlsZXJzJzogW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0J2NvbG9yJzogJyMxYTM2NDYnXG5cdFx0XHRcdH1cblx0XHRcdF1cblx0XHR9LFxuXHRcdHtcblx0XHRcdCdmZWF0dXJlVHlwZSc6ICdhZG1pbmlzdHJhdGl2ZS5jb3VudHJ5Jyxcblx0XHRcdCdlbGVtZW50VHlwZSc6ICdnZW9tZXRyeS5zdHJva2UnLFxuXHRcdFx0J3N0eWxlcnMnOiBbXG5cdFx0XHRcdHtcblx0XHRcdFx0XHQnY29sb3InOiAnIzRiNjg3OCdcblx0XHRcdFx0fVxuXHRcdFx0XVxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0J2ZlYXR1cmVUeXBlJzogJ2FkbWluaXN0cmF0aXZlLmxhbmRfcGFyY2VsJyxcblx0XHRcdCdlbGVtZW50VHlwZSc6ICdsYWJlbHMudGV4dC5maWxsJyxcblx0XHRcdCdzdHlsZXJzJzogW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0J2NvbG9yJzogJyM2NDc3OWUnXG5cdFx0XHRcdH1cblx0XHRcdF1cblx0XHR9LFxuXHRcdHtcblx0XHRcdCdmZWF0dXJlVHlwZSc6ICdhZG1pbmlzdHJhdGl2ZS5wcm92aW5jZScsXG5cdFx0XHQnZWxlbWVudFR5cGUnOiAnZ2VvbWV0cnkuc3Ryb2tlJyxcblx0XHRcdCdzdHlsZXJzJzogW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0J2NvbG9yJzogJyM0YjY4NzgnXG5cdFx0XHRcdH1cblx0XHRcdF1cblx0XHR9LFxuXHRcdHtcblx0XHRcdCdmZWF0dXJlVHlwZSc6ICdsYW5kc2NhcGUubWFuX21hZGUnLFxuXHRcdFx0J2VsZW1lbnRUeXBlJzogJ2dlb21ldHJ5LnN0cm9rZScsXG5cdFx0XHQnc3R5bGVycyc6IFtcblx0XHRcdFx0e1xuXHRcdFx0XHRcdCdjb2xvcic6ICcjMzM0ZTg3J1xuXHRcdFx0XHR9XG5cdFx0XHRdXG5cdFx0fSxcblx0XHR7XG5cdFx0XHQnZmVhdHVyZVR5cGUnOiAnbGFuZHNjYXBlLm5hdHVyYWwnLFxuXHRcdFx0J2VsZW1lbnRUeXBlJzogJ2dlb21ldHJ5Jyxcblx0XHRcdCdzdHlsZXJzJzogW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0J2NvbG9yJzogJyMwMjNlNTgnXG5cdFx0XHRcdH1cblx0XHRcdF1cblx0XHR9LFxuXHRcdHtcblx0XHRcdCdmZWF0dXJlVHlwZSc6ICdwb2knLFxuXHRcdFx0J2VsZW1lbnRUeXBlJzogJ2dlb21ldHJ5Jyxcblx0XHRcdCdzdHlsZXJzJzogW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0J2NvbG9yJzogJyMyODNkNmEnXG5cdFx0XHRcdH1cblx0XHRcdF1cblx0XHR9LFxuXHRcdHtcblx0XHRcdCdmZWF0dXJlVHlwZSc6ICdwb2knLFxuXHRcdFx0J2VsZW1lbnRUeXBlJzogJ2xhYmVscy50ZXh0LmZpbGwnLFxuXHRcdFx0J3N0eWxlcnMnOiBbXG5cdFx0XHRcdHtcblx0XHRcdFx0XHQnY29sb3InOiAnIzZmOWJhNSdcblx0XHRcdFx0fVxuXHRcdFx0XVxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0J2ZlYXR1cmVUeXBlJzogJ3BvaScsXG5cdFx0XHQnZWxlbWVudFR5cGUnOiAnbGFiZWxzLnRleHQuc3Ryb2tlJyxcblx0XHRcdCdzdHlsZXJzJzogW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0J2NvbG9yJzogJyMxZDJjNGQnXG5cdFx0XHRcdH1cblx0XHRcdF1cblx0XHR9LFxuXHRcdHtcblx0XHRcdCdmZWF0dXJlVHlwZSc6ICdwb2kucGFyaycsXG5cdFx0XHQnZWxlbWVudFR5cGUnOiAnZ2VvbWV0cnkuZmlsbCcsXG5cdFx0XHQnc3R5bGVycyc6IFtcblx0XHRcdFx0e1xuXHRcdFx0XHRcdCdjb2xvcic6ICcjMDIzZTU4J1xuXHRcdFx0XHR9XG5cdFx0XHRdXG5cdFx0fSxcblx0XHR7XG5cdFx0XHQnZmVhdHVyZVR5cGUnOiAncG9pLnBhcmsnLFxuXHRcdFx0J2VsZW1lbnRUeXBlJzogJ2xhYmVscy50ZXh0LmZpbGwnLFxuXHRcdFx0J3N0eWxlcnMnOiBbXG5cdFx0XHRcdHtcblx0XHRcdFx0XHQnY29sb3InOiAnIzNDNzY4MCdcblx0XHRcdFx0fVxuXHRcdFx0XVxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0J2ZlYXR1cmVUeXBlJzogJ3JvYWQnLFxuXHRcdFx0J2VsZW1lbnRUeXBlJzogJ2dlb21ldHJ5Jyxcblx0XHRcdCdzdHlsZXJzJzogW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0J2NvbG9yJzogJyMzMDRhN2QnXG5cdFx0XHRcdH1cblx0XHRcdF1cblx0XHR9LFxuXHRcdHtcblx0XHRcdCdmZWF0dXJlVHlwZSc6ICdyb2FkJyxcblx0XHRcdCdlbGVtZW50VHlwZSc6ICdsYWJlbHMudGV4dC5maWxsJyxcblx0XHRcdCdzdHlsZXJzJzogW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0J2NvbG9yJzogJyM5OGE1YmUnXG5cdFx0XHRcdH1cblx0XHRcdF1cblx0XHR9LFxuXHRcdHtcblx0XHRcdCdmZWF0dXJlVHlwZSc6ICdyb2FkJyxcblx0XHRcdCdlbGVtZW50VHlwZSc6ICdsYWJlbHMudGV4dC5zdHJva2UnLFxuXHRcdFx0J3N0eWxlcnMnOiBbXG5cdFx0XHRcdHtcblx0XHRcdFx0XHQnY29sb3InOiAnIzFkMmM0ZCdcblx0XHRcdFx0fVxuXHRcdFx0XVxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0J2ZlYXR1cmVUeXBlJzogJ3JvYWQuaGlnaHdheScsXG5cdFx0XHQnZWxlbWVudFR5cGUnOiAnZ2VvbWV0cnknLFxuXHRcdFx0J3N0eWxlcnMnOiBbXG5cdFx0XHRcdHtcblx0XHRcdFx0XHQnY29sb3InOiAnIzJjNjY3NSdcblx0XHRcdFx0fVxuXHRcdFx0XVxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0J2ZlYXR1cmVUeXBlJzogJ3JvYWQuaGlnaHdheScsXG5cdFx0XHQnZWxlbWVudFR5cGUnOiAnZ2VvbWV0cnkuc3Ryb2tlJyxcblx0XHRcdCdzdHlsZXJzJzogW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0J2NvbG9yJzogJyMyNTU3NjMnXG5cdFx0XHRcdH1cblx0XHRcdF1cblx0XHR9LFxuXHRcdHtcblx0XHRcdCdmZWF0dXJlVHlwZSc6ICdyb2FkLmhpZ2h3YXknLFxuXHRcdFx0J2VsZW1lbnRUeXBlJzogJ2xhYmVscy50ZXh0LmZpbGwnLFxuXHRcdFx0J3N0eWxlcnMnOiBbXG5cdFx0XHRcdHtcblx0XHRcdFx0XHQnY29sb3InOiAnI2IwZDVjZSdcblx0XHRcdFx0fVxuXHRcdFx0XVxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0J2ZlYXR1cmVUeXBlJzogJ3JvYWQuaGlnaHdheScsXG5cdFx0XHQnZWxlbWVudFR5cGUnOiAnbGFiZWxzLnRleHQuc3Ryb2tlJyxcblx0XHRcdCdzdHlsZXJzJzogW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0J2NvbG9yJzogJyMwMjNlNTgnXG5cdFx0XHRcdH1cblx0XHRcdF1cblx0XHR9LFxuXHRcdHtcblx0XHRcdCdmZWF0dXJlVHlwZSc6ICd0cmFuc2l0Jyxcblx0XHRcdCdlbGVtZW50VHlwZSc6ICdsYWJlbHMudGV4dC5maWxsJyxcblx0XHRcdCdzdHlsZXJzJzogW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0J2NvbG9yJzogJyM5OGE1YmUnXG5cdFx0XHRcdH1cblx0XHRcdF1cblx0XHR9LFxuXHRcdHtcblx0XHRcdCdmZWF0dXJlVHlwZSc6ICd0cmFuc2l0Jyxcblx0XHRcdCdlbGVtZW50VHlwZSc6ICdsYWJlbHMudGV4dC5zdHJva2UnLFxuXHRcdFx0J3N0eWxlcnMnOiBbXG5cdFx0XHRcdHtcblx0XHRcdFx0XHQnY29sb3InOiAnIzFkMmM0ZCdcblx0XHRcdFx0fVxuXHRcdFx0XVxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0J2ZlYXR1cmVUeXBlJzogJ3RyYW5zaXQubGluZScsXG5cdFx0XHQnZWxlbWVudFR5cGUnOiAnZ2VvbWV0cnkuZmlsbCcsXG5cdFx0XHQnc3R5bGVycyc6IFtcblx0XHRcdFx0e1xuXHRcdFx0XHRcdCdjb2xvcic6ICcjMjgzZDZhJ1xuXHRcdFx0XHR9XG5cdFx0XHRdXG5cdFx0fSxcblx0XHR7XG5cdFx0XHQnZmVhdHVyZVR5cGUnOiAndHJhbnNpdC5zdGF0aW9uJyxcblx0XHRcdCdlbGVtZW50VHlwZSc6ICdnZW9tZXRyeScsXG5cdFx0XHQnc3R5bGVycyc6IFtcblx0XHRcdFx0e1xuXHRcdFx0XHRcdCdjb2xvcic6ICcjM2E0NzYyJ1xuXHRcdFx0XHR9XG5cdFx0XHRdXG5cdFx0fSxcblx0XHR7XG5cdFx0XHQnZmVhdHVyZVR5cGUnOiAnd2F0ZXInLFxuXHRcdFx0J2VsZW1lbnRUeXBlJzogJ2dlb21ldHJ5Jyxcblx0XHRcdCdzdHlsZXJzJzogW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0J2NvbG9yJzogJyMwZTE2MjYnXG5cdFx0XHRcdH1cblx0XHRcdF1cblx0XHR9LFxuXHRcdHtcblx0XHRcdCdmZWF0dXJlVHlwZSc6ICd3YXRlcicsXG5cdFx0XHQnZWxlbWVudFR5cGUnOiAnbGFiZWxzLnRleHQuZmlsbCcsXG5cdFx0XHQnc3R5bGVycyc6IFtcblx0XHRcdFx0e1xuXHRcdFx0XHRcdCdjb2xvcic6ICcjNGU2ZDcwJ1xuXHRcdFx0XHR9XG5cdFx0XHRdXG5cdFx0fVxuXHRdXG59O1xuXG5leHBvcnQgZGVmYXVsdCBzdHlsZXM7XG4iLCIvKipcbiAqIEV4dGVybmFsIGRlcGVuZGVuY2llc1xuICovXG5pbXBvcnQgY2xhc3NuYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCB7IHY0IGFzIHV1aWR2NCB9IGZyb20gJ3V1aWQnO1xuXG4vKipcbiAqIFdvcmRQcmVzcyBkZXBlbmRlbmNpZXNcbiAqL1xuaW1wb3J0IHsgX18gfSBmcm9tICdAd29yZHByZXNzL2kxOG4nO1xuXG5pbXBvcnQgeyBSZXNpemFibGVCb3ggfSBmcm9tICdAd29yZHByZXNzL2NvbXBvbmVudHMnO1xuXG5pbXBvcnQge1xuXHRGcmFnbWVudCxcblx0dXNlRWZmZWN0LFxuXHR1c2VSZWYsXG5cdHVzZVN0YXRlXG59IGZyb20gJ0B3b3JkcHJlc3MvZWxlbWVudCc7XG5cbi8qKlxuICogSW50ZXJuYWwgZGVwZW5kZW5jaWVzXG4gKi9cbmltcG9ydCBQbGFjZWhvbGRlciBmcm9tICcuL3BsYWNlaG9sZGVyLmpzJztcbmltcG9ydCBJbnNwZWN0b3IgZnJvbSAnLi9pbnNwZWN0b3IuanMnO1xuaW1wb3J0IHsgU3R5bGVTd2l0Y2hlckJsb2NrQ29udHJvbCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvc3R5bGUtc3dpdGNoZXItY29udHJvbC9pbmRleC5qcyc7XG5pbXBvcnQgTWFya2VyTW9kYWwgZnJvbSAnLi9jb21wb25lbnRzL21hcmtlci1tb2RhbC5qcyc7XG5pbXBvcnQgTWFwIGZyb20gJy4vY29tcG9uZW50cy9tYXAuanMnO1xuaW1wb3J0IHN0eWxlcyBmcm9tICcuL2NvbXBvbmVudHMvc3R5bGVzLmpzJztcbmltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuL2F0dHJpYnV0ZXMuanMnO1xuaW1wb3J0IHsgYmxvY2tJbml0IH0gZnJvbSAnLi4vLi4vaGVscGVycy9ibG9jay11dGlsaXR5LmpzJztcblxuY29uc3QgRWRpdCA9ICh7XG5cdGF0dHJpYnV0ZXMsXG5cdHNldEF0dHJpYnV0ZXMsXG5cdGNsYXNzTmFtZSxcblx0Y2xpZW50SWQsXG5cdGlzU2VsZWN0ZWQsXG5cdHRvZ2dsZVNlbGVjdGlvblxufSkgPT4ge1xuXHR1c2VFZmZlY3QoICgpID0+IHtcblx0XHRjb25zdCB1bnN1YnNjcmliZSA9IGJsb2NrSW5pdCggY2xpZW50SWQsIGRlZmF1bHRBdHRyaWJ1dGVzICk7XG5cdFx0cmV0dXJuICgpID0+IHVuc3Vic2NyaWJlKCBhdHRyaWJ1dGVzLmlkICk7XG5cdH0sIFsgYXR0cmlidXRlcy5pZCBdKTtcblxuXHR1c2VFZmZlY3QoICgpID0+IHtcblx0XHRjb25zdCBzZXRBcGkgPSBhc3luYygpID0+IHtcblx0XHRcdGF3YWl0IHdpbmRvdy53cC5hcGkubG9hZFByb21pc2UudGhlbiggKCkgPT4ge1xuXHRcdFx0XHRzZXR0aW5nc1JlZi5jdXJyZW50ID0gbmV3IHdpbmRvdy53cC5hcGkubW9kZWxzLlNldHRpbmdzKCk7XG5cdFx0XHR9KTtcblxuXHRcdFx0aWYgKCBmYWxzZSA9PT0gQm9vbGVhbiggd2luZG93LnRoZW1laXNsZUd1dGVuYmVyZy5tYXBzQVBJICkgKSB7XG5cdFx0XHRcdGlmICggISBpc0FQSUxvYWRlZCApIHtcblx0XHRcdFx0XHRzZXR0aW5nc1JlZi5jdXJyZW50LmZldGNoKCkudGhlbiggKCByZXNwb25zZSApID0+IHtcblx0XHRcdFx0XHRcdHNldEFQSSggcmVzcG9uc2UudGhlbWVpc2xlX2dvb2dsZV9tYXBfYmxvY2tfYXBpX2tleSApO1xuXHRcdFx0XHRcdFx0c2V0QVBJTG9hZGVkKCB0cnVlICk7XG5cblx0XHRcdFx0XHRcdGlmICggJycgIT09IHJlc3BvbnNlLnRoZW1laXNsZV9nb29nbGVfbWFwX2Jsb2NrX2FwaV9rZXkgKSB7XG5cdFx0XHRcdFx0XHRcdHNldEFQSVNhdmVkKCB0cnVlICk7XG5cdFx0XHRcdFx0XHRcdGVucXVldWVTY3JpcHQoIHJlc3BvbnNlLnRoZW1laXNsZV9nb29nbGVfbWFwX2Jsb2NrX2FwaV9rZXkgKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIGlmICggISBpc0FQSUxvYWRlZCApIHtcblx0XHRcdFx0c2V0QVBJKCB3aW5kb3cudGhlbWVpc2xlR3V0ZW5iZXJnLm1hcHNBUEkgKTtcblx0XHRcdFx0c2V0QVBJTG9hZGVkKCB0cnVlICk7XG5cdFx0XHRcdHNldEFQSVNhdmVkKCB0cnVlICk7XG5cdFx0XHRcdGVucXVldWVTY3JpcHQoIHdpbmRvdy50aGVtZWlzbGVHdXRlbmJlcmcubWFwc0FQSSApO1xuXHRcdFx0fVxuXHRcdH07XG5cblx0XHRzZXRBcGkoKTtcblxuXHRcdHdpbmRvdy5pc01hcExvYWRlZCA9IHdpbmRvdy5pc01hcExvYWRlZCB8fCBmYWxzZTtcblx0XHR3aW5kb3dbIGByZW1vdmVNYXJrZXJfJHsgY2xpZW50SWQuc3Vic3RyKCAwLCA4ICkgfWAgXSA9IHJlbW92ZU1hcmtlcjtcblxuXHRcdGxpbmtSZWYuY3VycmVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoICdzY3JpcHQnICk7XG5cdFx0bGlua1JlZi5jdXJyZW50LnR5cGUgPSAndGV4dC9qYXZhc2NyaXB0Jztcblx0XHRsaW5rUmVmLmN1cnJlbnQuYXN5bmMgPSB0cnVlO1xuXHRcdGxpbmtSZWYuY3VycmVudC5kZWZlciA9IHRydWU7XG5cdFx0bGlua1JlZi5jdXJyZW50LmlkID0gJ3RoZW1laXNsZS1nb29nbGUtbWFwLWFwaS1sb2FkaW5nJztcblx0fSwgW10pO1xuXG5cdHVzZUVmZmVjdCggKCkgPT4ge1xuXHRcdGlmICggZmFsc2UgIT09IGlzQVBJU2F2ZWQgJiYgdW5kZWZpbmVkICE9PSB3aW5kb3cuZ29vZ2xlICkge1xuXHRcdFx0bWFwUmVmLmN1cnJlbnQuc2V0T3B0aW9ucyh7XG5cdFx0XHRcdG1hcFR5cGVDb250cm9sOiBpc1NlbGVjdGVkID8gdHJ1ZSA6IGF0dHJpYnV0ZXMubWFwVHlwZUNvbnRyb2wsXG5cdFx0XHRcdHpvb21Db250cm9sOiBpc1NlbGVjdGVkID8gdHJ1ZSA6IGF0dHJpYnV0ZXMuem9vbUNvbnRyb2wsXG5cdFx0XHRcdGZ1bGxzY3JlZW5Db250cm9sOiBpc1NlbGVjdGVkID8gdHJ1ZSA6IGF0dHJpYnV0ZXMuZnVsbHNjcmVlbkNvbnRyb2wsXG5cdFx0XHRcdHN0cmVldFZpZXdDb250cm9sOiBpc1NlbGVjdGVkID8gdHJ1ZSA6IGF0dHJpYnV0ZXMuc3RyZWV0Vmlld0NvbnRyb2xcblx0XHRcdH0pO1xuXHRcdH1cblx0fSwgWyBpc1NlbGVjdGVkIF0pO1xuXG5cdHVzZUVmZmVjdCggKCkgPT4ge1xuXHRcdG1hcmtlcnNBdHRyUmVmLmN1cnJlbnQgPSBbIC4uLmF0dHJpYnV0ZXMubWFya2VycyBdO1xuXHR9LCBbIGF0dHJpYnV0ZXMubWFya2VycyBdKTtcblxuXHRjb25zdCBtYXJrZXJzUmVmID0gdXNlUmVmKFtdKTtcblx0Y29uc3Qgc2V0dGluZ3NSZWYgPSB1c2VSZWYoIG51bGwgKTtcblx0Y29uc3QgbGlua1JlZiA9IHVzZVJlZiggbnVsbCApO1xuXHRjb25zdCBtYXBSZWYgPSB1c2VSZWYoIG51bGwgKTtcblx0Y29uc3QgbGFzdEluZm9XaW5kb3dSZWYgPSB1c2VSZWYoIG51bGwgKTtcblx0Y29uc3QgbWFya2Vyc0F0dHJSZWYgPSB1c2VSZWYoWyAuLi5hdHRyaWJ1dGVzLm1hcmtlcnMgXSk7XG5cblx0Y29uc3QgWyBhcGksIHNldEFQSSBdID0gdXNlU3RhdGUoICcnICk7XG5cdGNvbnN0IFsgaXNBUElMb2FkZWQsIHNldEFQSUxvYWRlZCBdID0gdXNlU3RhdGUoIGZhbHNlICk7XG5cdGNvbnN0IFsgaXNBUElTYXZlZCwgc2V0QVBJU2F2ZWQgXSA9IHVzZVN0YXRlKCBmYWxzZSApO1xuXHRjb25zdCBbIGlzTWFwTG9hZGVkLCBzZXRNYXBMb2FkZWQgXSA9IHVzZVN0YXRlKCBmYWxzZSApO1xuXHRjb25zdCBbIGlzU2F2aW5nLCBzZXRTYXZpbmcgXSA9IHVzZVN0YXRlKCBmYWxzZSApO1xuXHRjb25zdCBbIGlzUGxhY2VBUElBdmFpbGFibGUsIHNldFBsYWNlQVBJQXZhaWxhYmxlIF0gPSB1c2VTdGF0ZSggdHJ1ZSApO1xuXHRjb25zdCBbIGRpc3BsYXlNYXAsIHNldERpc3BsYXlNYXAgXSA9IHVzZVN0YXRlKCBmYWxzZSApO1xuXHRjb25zdCBbIGlzTWFya2VyT3Blbiwgc2V0TWFya2VyT3BlbiBdID0gdXNlU3RhdGUoIGZhbHNlICk7XG5cdGNvbnN0IFsgaXNTZWxlY3RpbmdNYXJrZXIsIHNldFNlbGVjdGluZ01hcmtlciBdID0gdXNlU3RhdGUoIGZhbHNlICk7XG5cdGNvbnN0IFsgaXNNb2RhbE9wZW4sIHNldE1vZGFsT3BlbiBdID0gdXNlU3RhdGUoIGZhbHNlICk7XG5cdGNvbnN0IFsgaXNBZHZhbmNlZCwgc2V0QWR2YW5jZWQgXSA9IHVzZVN0YXRlKCBmYWxzZSApO1xuXHRjb25zdCBbIHNlbGVjdGVkTWFya2VyLCBzZXRTZWxlY3RlZE1hcmtlciBdID0gdXNlU3RhdGUoe30pO1xuXG5cdGNvbnN0IGVucXVldWVTY3JpcHQgPSBhcGkgPT4ge1xuXHRcdGlmICggISB3aW5kb3cuaXNNYXBMb2FkZWQgKSB7XG5cdFx0XHR3aW5kb3cuaXNNYXBMb2FkZWQgPSB0cnVlO1xuXHRcdFx0bGlua1JlZi5jdXJyZW50Lm9ubG9hZCA9ICgpID0+IHtcblx0XHRcdFx0Y29uc3Qgc2NyaXB0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoICd0aGVtZWlzbGUtZ29vZ2xlLW1hcC1hcGktbG9hZGluZycgKTtcblx0XHRcdFx0c2NyaXB0LmlkID0gJ3RoZW1laXNsZS1nb29nbGUtbWFwLWFwaSc7XG5cdFx0XHRcdHNldERpc3BsYXlNYXAoIHRydWUgKTtcblx0XHRcdH07XG5cdFx0XHRsaW5rUmVmLmN1cnJlbnQuc3JjID0gYGh0dHBzOi8vbWFwcy5nb29nbGVhcGlzLmNvbS9tYXBzL2FwaS9qcz9rZXk9JHsgYXBpIH0mbGlicmFyaWVzPXBsYWNlcyZjYWNoZT0keyBNYXRoLnJhbmRvbSgpIH1gO1xuXHRcdFx0ZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZCggbGlua1JlZi5jdXJyZW50ICk7XG5cdFx0fVxuXG5cdFx0Y29uc3QgbG9hZGVkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoICd0aGVtZWlzbGUtZ29vZ2xlLW1hcC1hcGknICk7XG5cblx0XHRpZiAoIGxvYWRlZCApIHtcblx0XHRcdHNldERpc3BsYXlNYXAoIHRydWUgKTtcblx0XHR9XG5cdH07XG5cblx0Y29uc3QgaW5pdE1hcCA9ICgpID0+IHtcblx0XHRtYXBSZWYuY3VycmVudCA9IG5ldyB3aW5kb3cuZ29vZ2xlLm1hcHMuTWFwKCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCggYXR0cmlidXRlcy5pZCApLCB7XG5cdFx0XHRjZW50ZXI6IHtcblx0XHRcdFx0bGF0OiBOdW1iZXIoIGF0dHJpYnV0ZXMubGF0aXR1ZGUgKSB8fCA0MS40MDM2Mjk5LFxuXHRcdFx0XHRsbmc6IE51bWJlciggYXR0cmlidXRlcy5sb25naXR1ZGUgKSB8fCAyLjE3NDM1NTgwMDAwMDA1NzZcblx0XHRcdH0sXG5cdFx0XHRnZXN0dXJlSGFuZGxpbmc6ICdjb29wZXJhdGl2ZScsXG5cdFx0XHR6b29tOiBhdHRyaWJ1dGVzLnpvb20sXG5cdFx0XHRtYXBUeXBlSWQ6IGF0dHJpYnV0ZXMudHlwZSxcblx0XHRcdHN0eWxlczogc3R5bGVzWyBhdHRyaWJ1dGVzLnN0eWxlIF1cblx0XHR9KTtcblxuXHRcdGlmICggYXR0cmlidXRlcy5sb2NhdGlvbiAmJiAoIHVuZGVmaW5lZCA9PT0gYXR0cmlidXRlcy5sYXRpdHVkZSAmJiB1bmRlZmluZWQgPT09IGF0dHJpYnV0ZXMubG9uZ2l0dWRlICkgKSB7XG5cdFx0XHRjb25zdCByZXF1ZXN0ID0ge1xuXHRcdFx0XHRxdWVyeTogYXR0cmlidXRlcy5sb2NhdGlvbixcblx0XHRcdFx0ZmllbGRzOiBbICduYW1lJywgJ2dlb21ldHJ5JyBdXG5cdFx0XHR9O1xuXG5cdFx0XHRjb25zdCBzZXJ2aWNlID0gbmV3IHdpbmRvdy5nb29nbGUubWFwcy5wbGFjZXMuUGxhY2VzU2VydmljZSggbWFwUmVmLmN1cnJlbnQgKTtcblxuXHRcdFx0c2VydmljZS5maW5kUGxhY2VGcm9tUXVlcnkoIHJlcXVlc3QsICggcmVzdWx0cywgc3RhdHVzICkgPT4ge1xuXHRcdFx0XHRpZiAoIHN0YXR1cyA9PT0gd2luZG93Lmdvb2dsZS5tYXBzLnBsYWNlcy5QbGFjZXNTZXJ2aWNlU3RhdHVzLk9LICkge1xuXHRcdFx0XHRcdGlmICggMCA8IHJlc3VsdHMubGVuZ3RoICkge1xuXHRcdFx0XHRcdFx0bWFwUmVmLmN1cnJlbnQuc2V0Q2VudGVyKCByZXN1bHRzWzBdLmdlb21ldHJ5LmxvY2F0aW9uICk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9XG5cblx0XHR3aW5kb3cuZ29vZ2xlLm1hcHMuZXZlbnQuYWRkTGlzdGVuZXJPbmNlKCBtYXBSZWYuY3VycmVudCwgJ2lkbGUnLCAoKSA9PiB7XG5cdFx0XHRzZXRNYXBMb2FkZWQoIHRydWUgKTtcblx0XHR9KTtcblxuXHRcdG1hcFJlZi5jdXJyZW50LmFkZExpc3RlbmVyKCAnem9vbV9jaGFuZ2VkJywgKCkgPT4ge1xuXHRcdFx0Y29uc3Qgem9vbSA9IG1hcFJlZi5jdXJyZW50LmdldFpvb20oKTtcblx0XHRcdHNldEF0dHJpYnV0ZXMoeyB6b29tIH0pO1xuXHRcdH0pO1xuXG5cdFx0bWFwUmVmLmN1cnJlbnQuYWRkTGlzdGVuZXIoICdtYXB0eXBlaWRfY2hhbmdlZCcsICgpID0+IHtcblx0XHRcdGNvbnN0IHR5cGUgPSBtYXBSZWYuY3VycmVudC5nZXRNYXBUeXBlSWQoKTtcblx0XHRcdHNldEF0dHJpYnV0ZXMoeyB0eXBlIH0pO1xuXHRcdH0pO1xuXG5cdFx0bWFwUmVmLmN1cnJlbnQuYWRkTGlzdGVuZXIoICdib3VuZHNfY2hhbmdlZCcsICgpID0+IHtcblx0XHRcdGNvbnN0IGxvY2F0aW9uID0gbWFwUmVmLmN1cnJlbnQuZ2V0Q2VudGVyKCk7XG5cdFx0XHRjb25zdCBsYXRpdHVkZSA9IGxvY2F0aW9uLmxhdCgpO1xuXHRcdFx0Y29uc3QgbG9uZ2l0dWRlID0gbG9jYXRpb24ubG5nKCk7XG5cdFx0XHRzZXRBdHRyaWJ1dGVzKHtcblx0XHRcdFx0bGF0aXR1ZGU6IGxhdGl0dWRlLnRvU3RyaW5nKCksXG5cdFx0XHRcdGxvbmdpdHVkZTogbG9uZ2l0dWRlLnRvU3RyaW5nKClcblx0XHRcdH0pO1xuXHRcdH0pO1xuXG5cdFx0aWYgKCAwIDwgYXR0cmlidXRlcy5tYXJrZXJzLmxlbmd0aCApIHtcblx0XHRcdGN5Y2xlTWFya2VycyggYXR0cmlidXRlcy5tYXJrZXJzICk7XG5cdFx0fVxuXG5cdFx0Y29uc3QgcmVxdWVzdCA9IHtcblx0XHRcdHF1ZXJ5OiBhdHRyaWJ1dGVzLmxvY2F0aW9uLFxuXHRcdFx0ZmllbGRzOiBbICduYW1lJywgJ2dlb21ldHJ5JyBdXG5cdFx0fTtcblxuXHRcdGNvbnN0IHNlcnZpY2UgPSBuZXcgd2luZG93Lmdvb2dsZS5tYXBzLnBsYWNlcy5QbGFjZXNTZXJ2aWNlKCBtYXBSZWYuY3VycmVudCApO1xuXG5cdFx0c2VydmljZS5maW5kUGxhY2VGcm9tUXVlcnkoIHJlcXVlc3QsICggcmVzdWx0cywgc3RhdHVzICkgPT4ge1xuXHRcdFx0aWYgKCAnUkVRVUVTVF9ERU5JRUQnID09PSBzdGF0dXMgKSB7XG5cdFx0XHRcdHNldFBsYWNlQVBJQXZhaWxhYmxlKCBmYWxzZSApO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9O1xuXG5cdGNvbnN0IGFkZE1hcmtlciA9ICggbG9jYXRpb24sIHRpdGxlLCBpY29uLCBkZXNjcmlwdGlvbiwgbGF0aXR1ZGUsIGxvbmdpdHVkZSApID0+IHtcblx0XHRjb25zdCBsYXRMbmcgPSBuZXcgd2luZG93Lmdvb2dsZS5tYXBzLkxhdExuZyggbGF0aXR1ZGUsIGxvbmdpdHVkZSApO1xuXG5cdFx0Y29uc3QgaWQgPSB1dWlkdjQoKTtcblxuXHRcdGNvbnN0IG1hcmsgPSBuZXcgd2luZG93Lmdvb2dsZS5tYXBzLk1hcmtlcih7XG5cdFx0XHRwb3NpdGlvbjogbGF0TG5nLFxuXHRcdFx0bWFwOiBtYXBSZWYuY3VycmVudCxcblx0XHRcdHRpdGxlLFxuXHRcdFx0ZHJhZ2dhYmxlOiB0cnVlLFxuXHRcdFx0aWNvblxuXHRcdH0pO1xuXG5cdFx0d2luZG93Lmdvb2dsZS5tYXBzLmV2ZW50LmFkZExpc3RlbmVyKCBtYXJrLCAnZHJhZ2VuZCcsIGV2ZW50ID0+IHtcblx0XHRcdGNvbnN0IGxhdCA9IGV2ZW50LmxhdExuZy5sYXQoKTtcblx0XHRcdGNvbnN0IGxuZyA9IGV2ZW50LmxhdExuZy5sbmcoKTtcblxuXHRcdFx0Y2hhbmdlTWFya2VyUHJvcCggaWQsICdsYXRpdHVkZScsIGxhdCApO1xuXHRcdFx0Y2hhbmdlTWFya2VyUHJvcCggaWQsICdsb25naXR1ZGUnLCBsbmcgKTtcblx0XHR9KTtcblxuXHRcdG1hcmtlcnNSZWYuY3VycmVudC5wdXNoKCBtYXJrICk7XG5cblx0XHRjb25zdCBtYXJrZXJzID0gWyAuLi5hdHRyaWJ1dGVzLm1hcmtlcnMgXTtcblxuXHRcdGNvbnN0IG1hcmtlciA9IHtcblx0XHRcdGlkLFxuXHRcdFx0bG9jYXRpb24sXG5cdFx0XHR0aXRsZSxcblx0XHRcdGljb24sXG5cdFx0XHRkZXNjcmlwdGlvbixcblx0XHRcdGxhdGl0dWRlLFxuXHRcdFx0bG9uZ2l0dWRlXG5cdFx0fTtcblxuXHRcdG1hcmtlcnMucHVzaCggbWFya2VyICk7XG5cblx0XHRzZXRBdHRyaWJ1dGVzKHsgbWFya2VycyB9KTtcblxuXHRcdHdpbmRvdy5nb29nbGUubWFwcy5ldmVudC5hZGRMaXN0ZW5lciggbWFyaywgJ2NsaWNrJywgKCkgPT4ge1xuXHRcdFx0aWYgKCBsYXN0SW5mb1dpbmRvd1JlZi5jdXJyZW50ICkge1xuXHRcdFx0XHRsYXN0SW5mb1dpbmRvd1JlZi5jdXJyZW50LmNsb3NlKCk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cblx0XHRhZGRJbmZvV2luZG93KCBtYXJrLCBtYXJrZXIuaWQsIHRpdGxlLCBkZXNjcmlwdGlvbiApO1xuXHRcdHNldE1vZGFsT3BlbiggZmFsc2UgKTtcblx0XHRzZXRTZWxlY3RpbmdNYXJrZXIoIGZhbHNlICk7XG5cdH07XG5cblx0Y29uc3QgYWRkSW5mb1dpbmRvdyA9ICggbWFya2VyLCBpZCwgdGl0bGUsIGRlc2NyaXB0aW9uICkgPT4ge1xuXHRcdGNvbnN0IGNvbnRlbnRTdHJpbmcgPSBgPGRpdiBjbGFzcz1cIndwLWJsb2NrLXRoZW1laXNsZS1ibG9ja3MtbWFwLW92ZXJ2aWV3XCI+PGg2IGNsYXNzPVwid3AtYmxvY2stdGhlbWVpc2xlLWJsb2Nrcy1tYXAtb3ZlcnZpZXctdGl0bGVcIj4keyB0aXRsZSB9PC9oNj48ZGl2IGNsYXNzPVwid3AtYmxvY2stdGhlbWVpc2xlLWJsb2Nrcy1tYXAtb3ZlcnZpZXctY29udGVudFwiPiR7IGRlc2NyaXB0aW9uID8gYDxwPiR7IGRlc2NyaXB0aW9uIH08L3A+YCA6ICcnIH08YSBjbGFzcz1cIndwLWJsb2NrLXRoZW1laXNsZS1ibG9ja3MtbWFwLW92ZXJ2aWV3LWRlbGV0ZVwiIG9uY2xpY2s9XCJyZW1vdmVNYXJrZXJfJHsgY2xpZW50SWQuc3Vic3RyKCAwLCA4ICkgfSggJyR7IGlkIH0nIClcIj4keyBfXyggJ0RlbGV0ZSBNYXJrZXInLCAnb3R0ZXItYmxvY2tzJyApIH08L2E+PC9kaXY+PC9kaXY+YDtcblxuXHRcdGNvbnN0IGluZm93aW5kb3cgPSBuZXcgd2luZG93Lmdvb2dsZS5tYXBzLkluZm9XaW5kb3coe1xuXHRcdFx0Y29udGVudDogY29udGVudFN0cmluZ1xuXHRcdH0pO1xuXG5cdFx0bWFya2VyLmFkZExpc3RlbmVyKCAnY2xpY2snLCAoKSA9PiB7XG5cdFx0XHRsYXN0SW5mb1dpbmRvd1JlZi5jdXJyZW50ID0gaW5mb3dpbmRvdztcblx0XHRcdGluZm93aW5kb3cub3BlbiggbWFwUmVmLmN1cnJlbnQsIG1hcmtlciApO1xuXHRcdH0pO1xuXG5cdFx0d2luZG93Lmdvb2dsZS5tYXBzLmV2ZW50LmFkZExpc3RlbmVyKCBpbmZvd2luZG93LCAnZG9tcmVhZHknLCAoKSA9PiB7XG5cdFx0XHRzZXRNYXJrZXJPcGVuKCBpZCApO1xuXHRcdH0pO1xuXG5cdFx0d2luZG93Lmdvb2dsZS5tYXBzLmV2ZW50LmFkZExpc3RlbmVyKCBpbmZvd2luZG93LCAnY2xvc2VjbGljaycsICgpID0+IHtcblx0XHRcdHNldE1hcmtlck9wZW4oIGZhbHNlICk7XG5cdFx0fSk7XG5cdH07XG5cblx0Y29uc3QgY3ljbGVNYXJrZXJzID0gbWFya2VycyA9PiB7XG5cdFx0bWFya2Vycy5mb3JFYWNoKCBtYXJrZXIgPT4ge1xuXHRcdFx0Y29uc3QgbGF0aXR1ZGUgPSBtYXJrZXIubGF0aXR1ZGU7XG5cdFx0XHRjb25zdCBsb25naXR1ZGUgPSBtYXJrZXIubG9uZ2l0dWRlO1xuXHRcdFx0Y29uc3QgcG9zaXRpb24gPSBuZXcgd2luZG93Lmdvb2dsZS5tYXBzLkxhdExuZyggbGF0aXR1ZGUsIGxvbmdpdHVkZSApO1xuXG5cdFx0XHRjb25zdCBtYXJrID0gbmV3IHdpbmRvdy5nb29nbGUubWFwcy5NYXJrZXIoe1xuXHRcdFx0XHRwb3NpdGlvbixcblx0XHRcdFx0bWFwOiBtYXBSZWYuY3VycmVudCxcblx0XHRcdFx0dGl0bGU6IG1hcmtlci50aXRsZSxcblx0XHRcdFx0ZHJhZ2dhYmxlOiB0cnVlLFxuXHRcdFx0XHRpY29uOiBtYXJrZXIuaWNvbiB8fCAnaHR0cHM6Ly9tYXBzLmdvb2dsZS5jb20vbWFwZmlsZXMvbXMvaWNvbnMvcmVkLWRvdC5wbmcnXG5cdFx0XHR9KTtcblxuXHRcdFx0d2luZG93Lmdvb2dsZS5tYXBzLmV2ZW50LmFkZExpc3RlbmVyKCBtYXJrLCAnZHJhZ2VuZCcsICggZXZlbnQgKSA9PiB7XG5cdFx0XHRcdGNvbnN0IGxhdCA9IGV2ZW50LmxhdExuZy5sYXQoKTtcblx0XHRcdFx0Y29uc3QgbG5nID0gZXZlbnQubGF0TG5nLmxuZygpO1xuXG5cdFx0XHRcdGNoYW5nZU1hcmtlclByb3AoIG1hcmtlci5pZCwgJ2xhdGl0dWRlJywgbGF0ICk7XG5cdFx0XHRcdGNoYW5nZU1hcmtlclByb3AoIG1hcmtlci5pZCwgJ2xvbmdpdHVkZScsIGxuZyApO1xuXHRcdFx0fSk7XG5cblx0XHRcdG1hcmtlcnNSZWYuY3VycmVudC5wdXNoKCBtYXJrICk7XG5cblx0XHRcdHdpbmRvdy5nb29nbGUubWFwcy5ldmVudC5hZGRMaXN0ZW5lciggbWFyaywgJ2NsaWNrJywgKCkgPT4ge1xuXHRcdFx0XHRpZiAoIGxhc3RJbmZvV2luZG93UmVmLmN1cnJlbnQgKSB7XG5cdFx0XHRcdFx0bGFzdEluZm9XaW5kb3dSZWYuY3VycmVudC5jbG9zZSgpO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblxuXHRcdFx0YWRkSW5mb1dpbmRvdyggbWFyaywgbWFya2VyLmlkLCBtYXJrZXIudGl0bGUsIG1hcmtlci5kZXNjcmlwdGlvbiApO1xuXHRcdH0pO1xuXHR9O1xuXG5cdGNvbnN0IHNlbGVjdE1hcmtlciA9ICgpID0+IHtcblx0XHRzZXRTZWxlY3RpbmdNYXJrZXIoICEgaXNTZWxlY3RpbmdNYXJrZXIgKTtcblxuXHRcdGlmICggISBpc1NlbGVjdGluZ01hcmtlciApIHtcblx0XHRcdG1hcFJlZi5jdXJyZW50LmFkZExpc3RlbmVyKCAnY2xpY2snLCBlID0+IHtcblx0XHRcdFx0d2luZG93Lmdvb2dsZS5tYXBzLmV2ZW50LmNsZWFyTGlzdGVuZXJzKCBtYXBSZWYuY3VycmVudCwgJ2NsaWNrJyApO1xuXG5cdFx0XHRcdGNvbnN0IGlkID0gdXVpZHY0KCk7XG5cdFx0XHRcdGNvbnN0IHRpdGxlID0gX18oICdDdXN0b20gTWFya2VyJywgJ290dGVyLWJsb2NrcycgKTtcblx0XHRcdFx0Y29uc3QgbGF0aXR1ZGUgPSBlLmxhdExuZy5sYXQoKTtcblx0XHRcdFx0Y29uc3QgbG9uZ2l0dWRlID0gZS5sYXRMbmcubG5nKCk7XG5cblx0XHRcdFx0c2V0TW9kYWxPcGVuKCB0cnVlICk7XG5cdFx0XHRcdHNldEFkdmFuY2VkKCBmYWxzZSApO1xuXHRcdFx0XHRzZXRTZWxlY3RlZE1hcmtlcih7XG5cdFx0XHRcdFx0aWQsXG5cdFx0XHRcdFx0bG9jYXRpb246ICcnLFxuXHRcdFx0XHRcdHRpdGxlLFxuXHRcdFx0XHRcdGljb246ICdodHRwczovL21hcHMuZ29vZ2xlLmNvbS9tYXBmaWxlcy9tcy9pY29ucy9yZWQtZG90LnBuZycsXG5cdFx0XHRcdFx0ZGVzY3JpcHRpb246ICcnLFxuXHRcdFx0XHRcdGxhdGl0dWRlLFxuXHRcdFx0XHRcdGxvbmdpdHVkZVxuXHRcdFx0XHR9KTtcblx0XHRcdH0pO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR3aW5kb3cuZ29vZ2xlLm1hcHMuZXZlbnQuY2xlYXJMaXN0ZW5lcnMoIG1hcFJlZi5jdXJyZW50LCAnY2xpY2snICk7XG5cdFx0fVxuXHR9O1xuXG5cdGNvbnN0IGFkZE1hcmtlck1hbnVhbCA9ICgpID0+IHtcblx0XHRjb25zdCBpZCA9IHV1aWR2NCgpO1xuXHRcdGNvbnN0IHRpdGxlID0gX18oICdDdXN0b20gTWFya2VyJywgJ290dGVyLWJsb2NrcycgKTtcblx0XHRjb25zdCBsb2NhdGlvbiA9IG1hcFJlZi5jdXJyZW50LmdldENlbnRlcigpO1xuXHRcdGNvbnN0IGxhdGl0dWRlID0gbG9jYXRpb24ubGF0KCk7XG5cdFx0Y29uc3QgbG9uZ2l0dWRlID0gbG9jYXRpb24ubG5nKCk7XG5cblx0XHRzZXRNb2RhbE9wZW4oIHRydWUgKTtcblx0XHRzZXRBZHZhbmNlZCggdHJ1ZSApO1xuXHRcdHNldFNlbGVjdGVkTWFya2VyKHtcblx0XHRcdGlkLFxuXHRcdFx0bG9jYXRpb246ICcnLFxuXHRcdFx0dGl0bGUsXG5cdFx0XHRpY29uOiAnaHR0cHM6Ly9tYXBzLmdvb2dsZS5jb20vbWFwZmlsZXMvbXMvaWNvbnMvcmVkLWRvdC5wbmcnLFxuXHRcdFx0ZGVzY3JpcHRpb246ICcnLFxuXHRcdFx0bGF0aXR1ZGUsXG5cdFx0XHRsb25naXR1ZGVcblx0XHR9KTtcblx0fTtcblxuXHRjb25zdCBjaGFuZ2VNYXJrZXJQcm9wID0gKCBpZCwgcHJvcCwgdmFsdWUgKSA9PiB7XG5cdFx0Y29uc3QgbWFya2VycyA9IFsgLi4ubWFya2Vyc0F0dHJSZWYuY3VycmVudCBdO1xuXHRcdGNvbnN0IG1hcmtlciA9IG1hcmtlcnMuZmluZCggbWFya2VyID0+IHtcblx0XHRcdHJldHVybiBtYXJrZXIuaWQgPT09IGlkO1xuXHRcdH0pO1xuXG5cdFx0bWFya2VyWyBwcm9wIF0gPSB2YWx1ZS50b1N0cmluZygpO1xuXG5cdFx0cmVtb3ZlTWFya2VycygpO1xuXHRcdGN5Y2xlTWFya2VycyggbWFya2VycyApO1xuXHRcdHNldEF0dHJpYnV0ZXMoeyBtYXJrZXJzIH0pO1xuXHR9O1xuXG5cdGNvbnN0IHJlbW92ZU1hcmtlciA9IGlkID0+IHtcblx0XHRsZXQgbWFya2VycyA9IFsgLi4ubWFya2Vyc0F0dHJSZWYuY3VycmVudCBdO1xuXHRcdG1hcmtlcnMgPSBtYXJrZXJzLmZpbHRlciggbWFya2VyID0+IG1hcmtlci5pZCAhPT0gaWQgKTtcblx0XHRzZXRBdHRyaWJ1dGVzKHsgbWFya2VycyB9KTtcblx0XHRyZW1vdmVNYXJrZXJzKCk7XG5cdFx0c2V0TWFya2VyT3BlbiggZmFsc2UgKTtcblxuXHRcdGlmICggMCA8IG1hcmtlcnMubGVuZ3RoICkge1xuXHRcdFx0Y3ljbGVNYXJrZXJzKCBtYXJrZXJzICk7XG5cdFx0fVxuXHR9O1xuXG5cdGNvbnN0IHJlbW92ZU1hcmtlcnMgPSAoKSA9PiB7XG5cdFx0Zm9yICggbGV0IGkgPSAwOyBpIDwgbWFya2Vyc1JlZi5jdXJyZW50Lmxlbmd0aDsgaSsrICkge1xuXHRcdFx0bWFya2Vyc1JlZi5jdXJyZW50W2ldLnNldE1hcCggbnVsbCApO1xuXHRcdH1cblxuXHRcdG1hcmtlcnNSZWYuY3VycmVudCA9IFtdO1xuXHR9O1xuXG5cdGNvbnN0IHNhdmVBUElLZXkgPSAoKSA9PiB7XG5cdFx0aWYgKCBmYWxzZSA9PT0gQm9vbGVhbiggd2luZG93LnRoZW1laXNsZUd1dGVuYmVyZy5tYXBzQVBJICkgKSB7XG5cdFx0XHRzZXRTYXZpbmcoIHRydWUgKTtcblxuXHRcdFx0Y29uc3QgbW9kZWwgPSBuZXcgd2luZG93LndwLmFwaS5tb2RlbHMuU2V0dGluZ3Moe1xuXHRcdFx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY2FtZWxjYXNlXG5cdFx0XHRcdHRoZW1laXNsZV9nb29nbGVfbWFwX2Jsb2NrX2FwaV9rZXk6IGFwaVxuXHRcdFx0fSk7XG5cblx0XHRcdG1vZGVsLnNhdmUoKS50aGVuKCByZXNwb25zZSA9PiB7XG5cdFx0XHRcdGxldCBzYXZlZCA9IGZhbHNlO1xuXG5cdFx0XHRcdGlmICggJycgIT09IHJlc3BvbnNlLnRoZW1laXNsZV9nb29nbGVfbWFwX2Jsb2NrX2FwaV9rZXkgKSB7XG5cdFx0XHRcdFx0c2F2ZWQgPSB0cnVlO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0c2V0U2F2aW5nKCBmYWxzZSApO1xuXHRcdFx0XHRzZXRBUElTYXZlZCggc2F2ZWQgKTtcblxuXHRcdFx0XHRpZiAoICcnICE9PSByZXNwb25zZS50aGVtZWlzbGVfZ29vZ2xlX21hcF9ibG9ja19hcGlfa2V5ICkge1xuXHRcdFx0XHRcdHdpbmRvdy5pc01hcExvYWRlZCA9IGZhbHNlO1xuXHRcdFx0XHRcdGVucXVldWVTY3JpcHQoIHJlc3BvbnNlLnRoZW1laXNsZV9nb29nbGVfbWFwX2Jsb2NrX2FwaV9rZXkgKTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0fVxuXHR9O1xuXG5cdGNvbnN0IGNoYW5nZVN0eWxlID0gdmFsdWUgPT4ge1xuXHRcdHNldEF0dHJpYnV0ZXMoeyBzdHlsZTogdmFsdWUgfSk7XG5cdFx0bWFwUmVmLmN1cnJlbnQuc2V0T3B0aW9ucyh7IHN0eWxlczogc3R5bGVzWyB2YWx1ZSBdIH0pO1xuXHR9O1xuXG5cdGlmICggISBpc0FQSUxvYWRlZCB8fCAhIGlzQVBJU2F2ZWQgKSB7XG5cdFx0cmV0dXJuIChcblx0XHRcdDxQbGFjZWhvbGRlclxuXHRcdFx0XHRjbGFzc05hbWU9eyBjbGFzc05hbWUgfVxuXHRcdFx0XHRhcGk9eyBhcGkgfVxuXHRcdFx0XHRpc0FQSUxvYWRlZD17IGlzQVBJTG9hZGVkIH1cblx0XHRcdFx0aXNBUElTYXZlZD17IGlzQVBJU2F2ZWQgfVxuXHRcdFx0XHRjaGFuZ2VBUEk9eyBzZXRBUEkgfVxuXHRcdFx0XHRzYXZlQVBJS2V5PXsgc2F2ZUFQSUtleSB9XG5cdFx0XHQvPlxuXHRcdCk7XG5cdH1cblxuXHRyZXR1cm4gKFxuXHRcdDxGcmFnbWVudD5cblx0XHRcdDxTdHlsZVN3aXRjaGVyQmxvY2tDb250cm9sXG5cdFx0XHRcdGxhYmVsPXsgX18oICdCbG9jayBTdHlsZXMnLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdFx0dmFsdWU9eyBhdHRyaWJ1dGVzLnN0eWxlIH1cblx0XHRcdFx0b3B0aW9ucz17IFtcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRsYWJlbDogX18oICdTdGFuZGFyZCcsICdvdHRlci1ibG9ja3MnICksXG5cdFx0XHRcdFx0XHR2YWx1ZTogJ3N0YW5kYXJkJyxcblx0XHRcdFx0XHRcdGltYWdlOiB3aW5kb3cudGhlbWVpc2xlR3V0ZW5iZXJnLmFzc2V0c1BhdGggKyAnL2ljb25zL21hcC1zdGFuZGFyZC5wbmcnXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRsYWJlbDogX18oICdTaWx2ZXInLCAnb3R0ZXItYmxvY2tzJyApLFxuXHRcdFx0XHRcdFx0dmFsdWU6ICdzaWx2ZXInLFxuXHRcdFx0XHRcdFx0aW1hZ2U6IHdpbmRvdy50aGVtZWlzbGVHdXRlbmJlcmcuYXNzZXRzUGF0aCArICcvaWNvbnMvbWFwLXNpbHZlci5wbmcnXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRsYWJlbDogX18oICdSZXRybycsICdvdHRlci1ibG9ja3MnICksXG5cdFx0XHRcdFx0XHR2YWx1ZTogJ3JldHJvJyxcblx0XHRcdFx0XHRcdGltYWdlOiB3aW5kb3cudGhlbWVpc2xlR3V0ZW5iZXJnLmFzc2V0c1BhdGggKyAnL2ljb25zL21hcC1yZXRyby5wbmcnXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRsYWJlbDogX18oICdEYXJrJywgJ290dGVyLWJsb2NrcycgKSxcblx0XHRcdFx0XHRcdHZhbHVlOiAnZGFyaycsXG5cdFx0XHRcdFx0XHRpbWFnZTogd2luZG93LnRoZW1laXNsZUd1dGVuYmVyZy5hc3NldHNQYXRoICsgJy9pY29ucy9tYXAtZGFyay5wbmcnXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRsYWJlbDogX18oICdOaWdodCcsICdvdHRlci1ibG9ja3MnICksXG5cdFx0XHRcdFx0XHR2YWx1ZTogJ25pZ2h0Jyxcblx0XHRcdFx0XHRcdGltYWdlOiB3aW5kb3cudGhlbWVpc2xlR3V0ZW5iZXJnLmFzc2V0c1BhdGggKyAnL2ljb25zL21hcC1uaWdodC5wbmcnXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRsYWJlbDogX18oICdBdWJlcmdpbmUnLCAnb3R0ZXItYmxvY2tzJyApLFxuXHRcdFx0XHRcdFx0dmFsdWU6ICdhdWJlcmdpbmUnLFxuXHRcdFx0XHRcdFx0aW1hZ2U6IHdpbmRvdy50aGVtZWlzbGVHdXRlbmJlcmcuYXNzZXRzUGF0aCArICcvaWNvbnMvbWFwLWF1YmVyZ2luZS5wbmcnXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRdIH1cblx0XHRcdFx0b25DaGFuZ2U9eyBjaGFuZ2VTdHlsZSB9XG5cdFx0XHQvPlxuXG5cdFx0XHQ8SW5zcGVjdG9yXG5cdFx0XHRcdGF0dHJpYnV0ZXM9eyBhdHRyaWJ1dGVzIH1cblx0XHRcdFx0c2V0QXR0cmlidXRlcz17IHNldEF0dHJpYnV0ZXMgfVxuXHRcdFx0XHRtYXA9eyBtYXBSZWYuY3VycmVudCB9XG5cdFx0XHRcdGNoYW5nZVN0eWxlPXsgY2hhbmdlU3R5bGUgfVxuXHRcdFx0XHRpc1BsYWNlQVBJQXZhaWxhYmxlPXsgaXNQbGFjZUFQSUF2YWlsYWJsZSB9XG5cdFx0XHRcdGlzTWFya2VyT3Blbj17IGlzTWFya2VyT3BlbiB9XG5cdFx0XHRcdHNldE1hcmtlck9wZW49eyBzZXRNYXJrZXJPcGVuIH1cblx0XHRcdFx0cmVtb3ZlTWFya2VyPXsgcmVtb3ZlTWFya2VyIH1cblx0XHRcdFx0Y2hhbmdlTWFya2VyUHJvcD17IGNoYW5nZU1hcmtlclByb3AgfVxuXHRcdFx0XHRhZGRNYXJrZXJNYW51YWw9eyBhZGRNYXJrZXJNYW51YWwgfVxuXHRcdFx0XHRhcGk9eyBhcGkgfVxuXHRcdFx0XHRpc1NhdmluZz17IGlzU2F2aW5nIH1cblx0XHRcdFx0Y2hhbmdlQVBJPXsgc2V0QVBJIH1cblx0XHRcdFx0c2F2ZUFQSUtleT17IHNhdmVBUElLZXkgfVxuXHRcdFx0Lz5cblxuXHRcdFx0eyBpc01vZGFsT3BlbiAmJiAoXG5cdFx0XHRcdDxNYXJrZXJNb2RhbFxuXHRcdFx0XHRcdG1hcmtlcj17IHNlbGVjdGVkTWFya2VyIH1cblx0XHRcdFx0XHRpc0FkdmFuY2VkPXsgaXNBZHZhbmNlZCB9XG5cdFx0XHRcdFx0aXNQbGFjZUFQSUF2YWlsYWJsZT17IGlzUGxhY2VBUElBdmFpbGFibGUgfVxuXHRcdFx0XHRcdGNsb3NlPXsgKCkgPT4gc2V0TW9kYWxPcGVuKCBmYWxzZSApIH1cblx0XHRcdFx0XHRhZGRNYXJrZXI9eyBhZGRNYXJrZXIgfVxuXHRcdFx0XHQvPlxuXHRcdFx0KSB9XG5cblx0XHRcdDxSZXNpemFibGVCb3hcblx0XHRcdFx0c2l6ZT17IHtcblx0XHRcdFx0XHRoZWlnaHQ6IGF0dHJpYnV0ZXMuaGVpZ2h0XG5cdFx0XHRcdH0gfVxuXHRcdFx0XHRlbmFibGU9eyB7XG5cdFx0XHRcdFx0dG9wOiBmYWxzZSxcblx0XHRcdFx0XHRyaWdodDogZmFsc2UsXG5cdFx0XHRcdFx0Ym90dG9tOiB0cnVlLFxuXHRcdFx0XHRcdGxlZnQ6IGZhbHNlXG5cdFx0XHRcdH0gfVxuXHRcdFx0XHRtaW5IZWlnaHQ9eyAxMDAgfVxuXHRcdFx0XHRtYXhIZWlnaHQ9eyAxNDAwIH1cblx0XHRcdFx0b25SZXNpemVTdGFydD17ICgpID0+IHtcblx0XHRcdFx0XHR0b2dnbGVTZWxlY3Rpb24oIGZhbHNlICk7XG5cdFx0XHRcdH0gfVxuXHRcdFx0XHRvblJlc2l6ZVN0b3A9eyAoIGV2ZW50LCBkaXJlY3Rpb24sIGVsdCwgZGVsdGEgKSA9PiB7XG5cdFx0XHRcdFx0c2V0QXR0cmlidXRlcyh7XG5cdFx0XHRcdFx0XHRoZWlnaHQ6IHBhcnNlSW50KCBhdHRyaWJ1dGVzLmhlaWdodCArIGRlbHRhLmhlaWdodCwgMTAgKVxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdHRvZ2dsZVNlbGVjdGlvbiggdHJ1ZSApO1xuXHRcdFx0XHR9IH1cblx0XHRcdFx0Y2xhc3NOYW1lPXsgY2xhc3NuYW1lcyhcblx0XHRcdFx0XHQnd3AtYmxvY2stdGhlbWVpc2xlLWJsb2Nrcy1nb29nbGUtbWFwLXJlc2l6ZXInLFxuXHRcdFx0XHRcdHsgJ2lzLWZvY3VzZWQnOiBpc1NlbGVjdGVkIH1cblx0XHRcdFx0KSB9XG5cdFx0XHQ+XG5cdFx0XHRcdDxNYXBcblx0XHRcdFx0XHRhdHRyaWJ1dGVzPXsgYXR0cmlidXRlcyB9XG5cdFx0XHRcdFx0Y2xhc3NOYW1lPXsgY2xhc3NOYW1lIH1cblx0XHRcdFx0XHRpbml0TWFwPXsgaW5pdE1hcCB9XG5cdFx0XHRcdFx0ZGlzcGxheU1hcD17IGRpc3BsYXlNYXAgfVxuXHRcdFx0XHRcdGlzTWFwTG9hZGVkPXsgaXNNYXBMb2FkZWQgfVxuXHRcdFx0XHRcdHNlbGVjdE1hcmtlcj17IHNlbGVjdE1hcmtlciB9XG5cdFx0XHRcdFx0aXNTZWxlY3RpbmdNYXJrZXI9eyBpc1NlbGVjdGluZ01hcmtlciB9XG5cdFx0XHRcdC8+XG5cdFx0XHQ8L1Jlc2l6YWJsZUJveD5cblx0XHQ8L0ZyYWdtZW50PlxuXHQpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgRWRpdDtcbiIsIi8qKlxuICogV29yZFByZXNzIGRlcGVuZGVuY2llc1xuICovXG5pbXBvcnQgeyBvbWl0IH0gZnJvbSAnbG9kYXNoJztcblxuaW1wb3J0IHsgY3JlYXRlQmxvY2sgfSBmcm9tICdAd29yZHByZXNzL2Jsb2Nrcyc7XG5cbmNvbnN0IHRyYW5zZm9ybSA9IHtcblx0dG86IFtcblx0XHR7XG5cdFx0XHR0eXBlOiAnYmxvY2snLFxuXHRcdFx0YmxvY2tzOiBbICd0aGVtZWlzbGUtYmxvY2tzL2xlYWZsZXQtbWFwJyBdLFxuXHRcdFx0dHJhbnNmb3JtOiAoIGF0dHJpYnV0ZXMgKSA9PiB7XG5cdFx0XHRcdGNvbnN0IGNvbW1vblByb3BzID0gb21pdCggYXR0cmlidXRlcywgWyAnc3R5bGUnLCAnbWFwVHlwZUNvbnRyb2wnLCAnZnVsbHNjcmVlbkNvbnRyb2wnLCAnc3RyZWV0Vmlld0NvbnRyb2wnIF0pO1xuXG5cdFx0XHRcdHJldHVybiBjcmVhdGVCbG9jayggJ3RoZW1laXNsZS1ibG9ja3MvbGVhZmxldC1tYXAnLCB7XG5cdFx0XHRcdFx0Li4uY29tbW9uUHJvcHNcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0fVxuXHRdXG59O1xuXG5leHBvcnQgZGVmYXVsdCB0cmFuc2Zvcm07XG4iLCIvKipcbiAqIFdvcmRQcmVzcyBkZXBlbmRlbmNpZXNcbiAqL1xuaW1wb3J0IHsgX18gfSBmcm9tICdAd29yZHByZXNzL2kxOG4nO1xuXG5pbXBvcnQgeyByZWdpc3RlckJsb2NrVHlwZSB9IGZyb20gJ0B3b3JkcHJlc3MvYmxvY2tzJztcblxuLyoqXG4gKiBJbnRlcm5hbCBkZXBlbmRlbmNpZXNcbiAqL1xuaW1wb3J0ICcuL3N0eWxlLnNjc3MnO1xuaW1wb3J0ICcuL2VkaXRvci5zY3NzJztcbmltcG9ydCB7IG1hcEljb24gYXMgaWNvbiB9IGZyb20gJy4uLy4uL2hlbHBlcnMvaWNvbnMuanMnO1xuaW1wb3J0IGF0dHJpYnV0ZXMgZnJvbSAnLi9hdHRyaWJ1dGVzLmpzJztcbmltcG9ydCBlZGl0IGZyb20gJy4vZWRpdC5qcyc7XG5pbXBvcnQgdHJhbnNmb3JtcyBmcm9tICcuL3RyYW5zZm9ybXMuanMnO1xuXG5yZWdpc3RlckJsb2NrVHlwZSggJ3RoZW1laXNsZS1ibG9ja3MvZ29vZ2xlLW1hcCcsIHtcblx0dGl0bGU6IF9fKCAnR29vZ2xlIE1hcHMnLCAnb3R0ZXItYmxvY2tzJyApLFxuXHRkZXNjcmlwdGlvbjogX18oICdEaXNwbGF5IEdvb2dsZSBNYXBzIG9uIHlvdXIgd2Vic2l0ZSB3aXRoIEdvb2dsZSBNYXAgYmxvY2suJywgJ290dGVyLWJsb2NrcycgKSxcblx0aWNvbixcblx0Y2F0ZWdvcnk6ICd0aGVtZWlzbGUtYmxvY2tzJyxcblx0a2V5d29yZHM6IFtcblx0XHQnbWFwJyxcblx0XHQnZ29vZ2xlJyxcblx0XHQnb3JiaXRmb3gnXG5cdF0sXG5cdGF0dHJpYnV0ZXMsXG5cdHN1cHBvcnRzOiB7XG5cdFx0YWxpZ246IFsgJ3dpZGUnLCAnZnVsbCcgXSxcblx0XHRodG1sOiBmYWxzZVxuXHR9LFxuXHR0cmFuc2Zvcm1zLFxuXHRlZGl0LFxuXHRzYXZlOiAoKSA9PiBudWxsXG59KTtcbiJdLCJuYW1lcyI6WyJhdHRyaWJ1dGVzIiwiaWQiLCJ0eXBlIiwic3R5bGUiLCJkZWZhdWx0IiwibG9jYXRpb24iLCJsYXRpdHVkZSIsImxvbmdpdHVkZSIsInpvb20iLCJoZWlnaHQiLCJkcmFnZ2FibGUiLCJtYXBUeXBlQ29udHJvbCIsInpvb21Db250cm9sIiwiZnVsbHNjcmVlbkNvbnRyb2wiLCJzdHJlZXRWaWV3Q29udHJvbCIsIm1hcmtlcnMiLCJfXyIsIkJ1dHRvbiIsIkV4dGVybmFsTGluayIsIlBsYWNlaG9sZGVyIiwiU3Bpbm5lciIsIlRleHRDb250cm9sIiwiQmxvY2tQbGFjZWhvbGRlciIsImNsYXNzTmFtZSIsImFwaSIsImlzQVBJTG9hZGVkIiwiaXNBUElTYXZlZCIsImlzU2F2aW5nIiwiY2hhbmdlQVBJIiwic2F2ZUFQSUtleSIsIkJhc2VDb250cm9sIiwidXNlSW5zdGFuY2VJZCIsInVzZUVmZmVjdCIsInVzZVJlZiIsIk1hcmtlckVkaXRvciIsInZhbHVlIiwib25DaGFuZ2UiLCJpbnN0YW5jZUlkIiwic2V0dGluZ3MiLCJjbGFzc2ljX2Jsb2NrX2VkaXRvciIsInBsdWdpbnMiLCJ0b29sYmFyMSIsIndpbmRvdyIsIndwIiwib2xkRWRpdG9yIiwiaW5pdGlhbGl6ZSIsImVkaXRvclJlZiIsImN1cnJlbnQiLCJ0aW55bWNlIiwiZWRpdG9yIiwiZ2V0Iiwib24iLCJnZXRDb250ZW50IiwicmVtb3ZlIiwib25DaGFuZ2VWYWx1ZSIsImUiLCJ0YXJnZXQiLCJjbGFzc25hbWVzIiwiU2VsZWN0Q29udHJvbCIsIk1hcmtlciIsIm1hcmtlciIsImlzT3BlbiIsImlzUGxhY2VBUElBdmFpbGFibGUiLCJvcGVuTWFya2VyIiwicmVtb3ZlTWFya2VyIiwiY2hhbmdlTWFya2VyUHJvcCIsInNlYXJjaFJlZiIsImluaXRTZWFyY2giLCJlbGVtZW50cyIsImRvY3VtZW50IiwiZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSIsIk9iamVjdCIsImtleXMiLCJmb3JFYWNoIiwic2VhcmNoQm94IiwiZ29vZ2xlIiwibWFwcyIsInBsYWNlcyIsIlNlYXJjaEJveCIsImFkZExpc3RlbmVyIiwiZ2V0UGxhY2VzIiwibGVuZ3RoIiwicGxhY2UiLCJmb3JtYXR0ZWRfYWRkcmVzcyIsIm5hbWUiLCJnZW9tZXRyeSIsImxhdCIsImxuZyIsInRpdGxlIiwiaWNvbiIsImxhYmVsIiwiZGVzY3JpcHRpb24iLCJGcmFnbWVudCIsInVzZVN0YXRlIiwiTWFya2VyV3JhcHBlciIsImluaXRpYWxPcGVuIiwiYWRkTWFya2VyIiwic2V0T3BlbiIsIm1hcCIsIlBhbmVsQm9keSIsIlJhbmdlQ29udHJvbCIsIlRvZ2dsZUNvbnRyb2wiLCJJbnNwZWN0b3JDb250cm9scyIsIlN0eWxlU3dpdGNoZXJJbnNwZWN0b3JDb250cm9sIiwiSW5zcGVjdG9yIiwic2V0QXR0cmlidXRlcyIsImNoYW5nZVN0eWxlIiwiaXNNYXJrZXJPcGVuIiwic2V0TWFya2VyT3BlbiIsImFkZE1hcmtlck1hbnVhbCIsImxhdExuZyIsIkxhdExuZyIsInNldENlbnRlciIsInRvU3RyaW5nIiwiY2hhbmdlTG9jYXRpb24iLCJjaGFuZ2VMYXRpdHVkZSIsIk51bWJlciIsImNoYW5nZUxvbmdpdHVkZSIsImNoYW5nZU1hcFR5cGUiLCJzZXRNYXBUeXBlSWQiLCJNYXBUeXBlSWQiLCJ0b1VwcGVyQ2FzZSIsImNoYW5nZVpvb20iLCJzZXRab29tIiwiY2hhbmdlSGVpZ2h0IiwidG9nZ2xlRHJhZ2dhYmxlIiwidG9nZ2xlTWFwVHlwZUNvbnRyb2wiLCJ0b2dnbGVab29tQ29udHJvbCIsInRvZ2dsZUZ1bGxTY3JlZW5Db250cm9sIiwidG9nZ2xlU3RyZWV0Vmlld0NvbnRyb2wiLCJpbWFnZSIsInRoZW1laXNsZUd1dGVuYmVyZyIsImFzc2V0c1BhdGgiLCJ1bmRlZmluZWQiLCJCdXR0b25Hcm91cCIsIk1vZGFsIiwiTWFya2VyTW9kYWwiLCJpc0FkdmFuY2VkIiwiY2xvc2UiLCJzZXRJRCIsInNldExvY2F0aW9uIiwic2V0VGl0bGUiLCJzZXRJY29uIiwic2V0RGVzY3JpcHRpb24iLCJzZXRMYXRpdHVkZSIsInNldExvbmdpdHVkZSIsIk1hcCIsImluaXRNYXAiLCJkaXNwbGF5TWFwIiwiaXNNYXBMb2FkZWQiLCJzZWxlY3RNYXJrZXIiLCJpc1NlbGVjdGluZ01hcmtlciIsInN0eWxlcyIsInN0YW5kYXJkIiwic2lsdmVyIiwicmV0cm8iLCJkYXJrIiwibmlnaHQiLCJhdWJlcmdpbmUiLCJ2NCIsInV1aWR2NCIsIlJlc2l6YWJsZUJveCIsIlN0eWxlU3dpdGNoZXJCbG9ja0NvbnRyb2wiLCJkZWZhdWx0QXR0cmlidXRlcyIsImJsb2NrSW5pdCIsIkVkaXQiLCJjbGllbnRJZCIsImlzU2VsZWN0ZWQiLCJ0b2dnbGVTZWxlY3Rpb24iLCJ1bnN1YnNjcmliZSIsInNldEFwaSIsImxvYWRQcm9taXNlIiwidGhlbiIsInNldHRpbmdzUmVmIiwibW9kZWxzIiwiU2V0dGluZ3MiLCJCb29sZWFuIiwibWFwc0FQSSIsImZldGNoIiwicmVzcG9uc2UiLCJzZXRBUEkiLCJ0aGVtZWlzbGVfZ29vZ2xlX21hcF9ibG9ja19hcGlfa2V5Iiwic2V0QVBJTG9hZGVkIiwic2V0QVBJU2F2ZWQiLCJlbnF1ZXVlU2NyaXB0Iiwic3Vic3RyIiwibGlua1JlZiIsImNyZWF0ZUVsZW1lbnQiLCJhc3luYyIsImRlZmVyIiwibWFwUmVmIiwic2V0T3B0aW9ucyIsIm1hcmtlcnNBdHRyUmVmIiwibWFya2Vyc1JlZiIsImxhc3RJbmZvV2luZG93UmVmIiwic2V0TWFwTG9hZGVkIiwic2V0U2F2aW5nIiwic2V0UGxhY2VBUElBdmFpbGFibGUiLCJzZXREaXNwbGF5TWFwIiwic2V0U2VsZWN0aW5nTWFya2VyIiwiaXNNb2RhbE9wZW4iLCJzZXRNb2RhbE9wZW4iLCJzZXRBZHZhbmNlZCIsInNlbGVjdGVkTWFya2VyIiwic2V0U2VsZWN0ZWRNYXJrZXIiLCJvbmxvYWQiLCJzY3JpcHQiLCJnZXRFbGVtZW50QnlJZCIsInNyYyIsIk1hdGgiLCJyYW5kb20iLCJoZWFkIiwiYXBwZW5kQ2hpbGQiLCJsb2FkZWQiLCJjZW50ZXIiLCJnZXN0dXJlSGFuZGxpbmciLCJtYXBUeXBlSWQiLCJyZXF1ZXN0IiwicXVlcnkiLCJmaWVsZHMiLCJzZXJ2aWNlIiwiUGxhY2VzU2VydmljZSIsImZpbmRQbGFjZUZyb21RdWVyeSIsInJlc3VsdHMiLCJzdGF0dXMiLCJQbGFjZXNTZXJ2aWNlU3RhdHVzIiwiT0siLCJldmVudCIsImFkZExpc3RlbmVyT25jZSIsImdldFpvb20iLCJnZXRNYXBUeXBlSWQiLCJnZXRDZW50ZXIiLCJjeWNsZU1hcmtlcnMiLCJtYXJrIiwicG9zaXRpb24iLCJwdXNoIiwiYWRkSW5mb1dpbmRvdyIsImNvbnRlbnRTdHJpbmciLCJpbmZvd2luZG93IiwiSW5mb1dpbmRvdyIsImNvbnRlbnQiLCJvcGVuIiwiY2xlYXJMaXN0ZW5lcnMiLCJwcm9wIiwiZmluZCIsInJlbW92ZU1hcmtlcnMiLCJmaWx0ZXIiLCJpIiwic2V0TWFwIiwibW9kZWwiLCJzYXZlIiwic2F2ZWQiLCJ0b3AiLCJyaWdodCIsImJvdHRvbSIsImxlZnQiLCJkaXJlY3Rpb24iLCJlbHQiLCJkZWx0YSIsInBhcnNlSW50Iiwib21pdCIsImNyZWF0ZUJsb2NrIiwidHJhbnNmb3JtIiwidG8iLCJibG9ja3MiLCJjb21tb25Qcm9wcyIsInJlZ2lzdGVyQmxvY2tUeXBlIiwibWFwSWNvbiIsImVkaXQiLCJ0cmFuc2Zvcm1zIiwiY2F0ZWdvcnkiLCJrZXl3b3JkcyIsInN1cHBvcnRzIiwiYWxpZ24iLCJodG1sIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///5530\n")},7844:function(__unused_webpack_module,__unused_webpack___webpack_exports__,__webpack_require__){eval("\n// EXTERNAL MODULE: external [\"wp\",\"i18n\"]\nvar external_wp_i18n_ = __webpack_require__(5736);\n// EXTERNAL MODULE: external [\"wp\",\"blocks\"]\nvar external_wp_blocks_ = __webpack_require__(4981);\n// EXTERNAL MODULE: ./src/blocks/helpers/icons.js\nvar icons = __webpack_require__(340);\n;// CONCATENATED MODULE: ./src/blocks/blocks/icon-list/attributes.js\nconst attributes = {\n id: {\n type: 'string'\n },\n defaultLibrary: {\n type: 'string',\n default: 'fontawesome'\n },\n defaultIconPrefix: {\n type: 'string',\n default: 'fas'\n },\n defaultIcon: {\n type: 'string',\n default: 'angle-right'\n },\n defaultContentColor: {\n type: 'string'\n },\n defaultIconColor: {\n type: 'string'\n },\n defaultSize: {\n type: 'number',\n default: 20\n },\n gap: {\n type: 'number',\n default: 5\n }\n};\n/* harmony default export */ var icon_list_attributes = (attributes);\n// EXTERNAL MODULE: external [\"wp\",\"element\"]\nvar external_wp_element_ = __webpack_require__(9307);\n// EXTERNAL MODULE: external [\"wp\",\"blockEditor\"]\nvar external_wp_blockEditor_ = __webpack_require__(2175);\n// EXTERNAL MODULE: ./src/blocks/helpers/block-utility.js\nvar block_utility = __webpack_require__(5225);\n// EXTERNAL MODULE: external [\"wp\",\"components\"]\nvar external_wp_components_ = __webpack_require__(5609);\n;// CONCATENATED MODULE: ./src/blocks/blocks/icon-list/inspector.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\nconst IconPickerControl = (0,external_wp_element_.lazy)(() => Promise.all(/* import() */[__webpack_require__.e(189), __webpack_require__.e(110)]).then(__webpack_require__.bind(__webpack_require__, 2110)));\n\nconst Inspector = ({\n attributes,\n setAttributes\n}) => {\n const changeLibrary = value => {\n setAttributes({\n defaultLibrary: value,\n defaultIcon: undefined,\n defaultPrefix: 'fas'\n });\n };\n\n const changeIcon = value => {\n if ('object' === typeof value) {\n setAttributes({\n defaultIcon: value.name,\n defaultPrefix: value.prefix\n });\n } else {\n setAttributes({\n defaultIcon: value\n });\n }\n };\n\n const onDefaultContentColorChange = value => {\n setAttributes({\n defaultContentColor: value\n });\n };\n\n const onDefaultIconColorChange = value => {\n setAttributes({\n defaultIconColor: value\n });\n };\n\n const onDefaultSizeChange = value => {\n setAttributes({\n defaultSize: value\n });\n };\n\n const onGapChange = value => {\n setAttributes({\n gap: value\n });\n };\n\n return (0,external_wp_element_.createElement)(external_wp_blockEditor_.InspectorControls, null, (0,external_wp_element_.createElement)(external_wp_components_.PanelBody, {\n title: (0,external_wp_i18n_.__)('Settings', 'otter-blocks')\n }, (0,external_wp_element_.createElement)(external_wp_element_.Suspense, {\n fallback: (0,external_wp_element_.createElement)(external_wp_components_.Placeholder, null, (0,external_wp_element_.createElement)(external_wp_components_.Spinner, null))\n }, (0,external_wp_element_.createElement)(IconPickerControl, {\n label: (0,external_wp_i18n_.__)('Icon Picker', 'otter-blocks'),\n library: attributes.defaultLibrary,\n prefix: attributes.defaultPrefix,\n icon: attributes.defaultIcon,\n changeLibrary: changeLibrary,\n onChange: changeIcon\n })), (0,external_wp_element_.createElement)(external_wp_components_.RangeControl, {\n label: (0,external_wp_i18n_.__)('Font Size', 'otter-blocks'),\n help: (0,external_wp_i18n_.__)('The size of the font size of the content and icon.', 'otter-blocks'),\n value: attributes.defaultSize,\n onChange: onDefaultSizeChange,\n min: 0,\n max: 60\n }), (0,external_wp_element_.createElement)(external_wp_components_.RangeControl, {\n label: (0,external_wp_i18n_.__)('Gap', 'otter-blocks'),\n help: (0,external_wp_i18n_.__)('The distance between the items.', 'otter-blocks'),\n value: attributes.gap,\n onChange: onGapChange,\n min: 0,\n max: 60\n }), (0,external_wp_element_.createElement)(external_wp_blockEditor_.__experimentalColorGradientControl, {\n label: (0,external_wp_i18n_.__)('Content Color', 'otter-blocks'),\n colorValue: attributes.defaultContentColor,\n onColorChange: onDefaultContentColorChange\n }), (0,external_wp_element_.createElement)(external_wp_blockEditor_.__experimentalColorGradientControl, {\n label: (0,external_wp_i18n_.__)('Icon Color', 'otter-blocks'),\n colorValue: attributes.defaultIconColor,\n onColorChange: onDefaultIconColorChange\n })));\n};\n\n/* harmony default export */ var inspector = (Inspector);\n;// CONCATENATED MODULE: ./src/blocks/blocks/icon-list/edit.js\n\n\n/**\n * WordPress dependencies.\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\nconst Edit = ({\n attributes,\n setAttributes,\n clientId,\n className\n}) => {\n (0,external_wp_element_.useEffect)(() => {\n const unsubscribe = (0,block_utility/* blockInit */.WX)(clientId, icon_list_attributes);\n return () => unsubscribe(attributes.id);\n }, [attributes.id]);\n return (0,external_wp_element_.createElement)(external_wp_element_.Fragment, null, (0,external_wp_element_.createElement)(inspector, {\n attributes: attributes,\n setAttributes: setAttributes\n }), (0,external_wp_element_.createElement)(\"div\", {\n id: attributes.id,\n className: className\n }, (0,external_wp_element_.createElement)(external_wp_blockEditor_.InnerBlocks, {\n allowedBlocks: ['themeisle-blocks/icon-list-item'],\n __experimentalMoverDirection: \"vertical\",\n orientation: \"vertical\",\n template: [['themeisle-blocks/icon-list-item']],\n renderAppender: external_wp_blockEditor_.InnerBlocks.DefaultAppender\n })));\n};\n\n/* harmony default export */ var edit = (Edit);\n;// CONCATENATED MODULE: ./src/blocks/blocks/icon-list/save.js\n\n\n/**\n * WordPress dependencies.\n */\n\n\nconst save_Edit = ({\n attributes,\n className\n}) => {\n return (0,external_wp_element_.createElement)(\"div\", {\n className: className,\n id: attributes.id\n }, (0,external_wp_element_.createElement)(external_wp_blockEditor_.InnerBlocks.Content, null));\n};\n\n/* harmony default export */ var save = (save_Edit);\n;// CONCATENATED MODULE: ./src/blocks/blocks/icon-list/index.js\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\n\n(0,external_wp_blocks_.registerBlockType)('themeisle-blocks/icon-list', {\n title: (0,external_wp_i18n_.__)('Icon List', 'otter-blocks'),\n description: (0,external_wp_i18n_.__)('Display an icon list in a beautiful layout.', 'otter-blocks'),\n icon: icons/* faIcon */.rL,\n category: 'themeisle-blocks',\n keywords: ['icon', 'list', 'items'],\n attributes: icon_list_attributes,\n styles: [{\n name: 'vertical',\n label: (0,external_wp_i18n_.__)('Vertical', 'otter-blocks'),\n isDefault: true\n }, {\n name: 'horizontal',\n label: (0,external_wp_i18n_.__)('Horizontal', 'otter-blocks')\n }],\n edit: edit,\n save: save\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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dGVyLWJsb2Nrcy8uL3NyYy9ibG9ja3MvYmxvY2tzL2ljb24tbGlzdC9hdHRyaWJ1dGVzLmpzPzFmMTYiLCJ3ZWJwYWNrOi8vb3R0ZXItYmxvY2tzLy4vc3JjL2Jsb2Nrcy9ibG9ja3MvaWNvbi1saXN0L2luc3BlY3Rvci5qcz9iYTc5Iiwid2VicGFjazovL290dGVyLWJsb2Nrcy8uL3NyYy9ibG9ja3MvYmxvY2tzL2ljb24tbGlzdC9lZGl0LmpzPzQ3YjkiLCJ3ZWJwYWNrOi8vb3R0ZXItYmxvY2tzLy4vc3JjL2Jsb2Nrcy9ibG9ja3MvaWNvbi1saXN0L3NhdmUuanM/MGFlMSIsIndlYnBhY2s6Ly9vdHRlci1ibG9ja3MvLi9zcmMvYmxvY2tzL2Jsb2Nrcy9pY29uLWxpc3QvaW5kZXguanM/MGNjNCJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBhdHRyaWJ1dGVzID0ge1xuXHRpZDoge1xuXHRcdHR5cGU6ICdzdHJpbmcnXG5cdH0sXG5cdGRlZmF1bHRMaWJyYXJ5OiB7XG5cdFx0dHlwZTogJ3N0cmluZycsXG5cdFx0ZGVmYXVsdDogJ2ZvbnRhd2Vzb21lJ1xuXHR9LFxuXHRkZWZhdWx0SWNvblByZWZpeDoge1xuXHRcdHR5cGU6ICdzdHJpbmcnLFxuXHRcdGRlZmF1bHQ6ICdmYXMnXG5cdH0sXG5cdGRlZmF1bHRJY29uOiB7XG5cdFx0dHlwZTogJ3N0cmluZycsXG5cdFx0ZGVmYXVsdDogJ2FuZ2xlLXJpZ2h0J1xuXHR9LFxuXHRkZWZhdWx0Q29udGVudENvbG9yOiB7XG5cdFx0dHlwZTogJ3N0cmluZydcblx0fSxcblx0ZGVmYXVsdEljb25Db2xvcjoge1xuXHRcdHR5cGU6ICdzdHJpbmcnXG5cdH0sXG5cdGRlZmF1bHRTaXplOiB7XG5cdFx0dHlwZTogJ251bWJlcicsXG5cdFx0ZGVmYXVsdDogMjBcblx0fSxcblx0Z2FwOiB7XG5cdFx0dHlwZTogJ251bWJlcicsXG5cdFx0ZGVmYXVsdDogNVxuXHR9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBhdHRyaWJ1dGVzO1xuIiwiLyoqXG4gKiBXb3JkUHJlc3MgZGVwZW5kZW5jaWVzXG4gKi9cbmltcG9ydCB7IF9fIH0gZnJvbSAnQHdvcmRwcmVzcy9pMThuJztcblxuaW1wb3J0IHtcblx0X19leHBlcmltZW50YWxDb2xvckdyYWRpZW50Q29udHJvbCBhcyBDb2xvckdyYWRpZW50Q29udHJvbCxcblx0SW5zcGVjdG9yQ29udHJvbHNcbn0gZnJvbSAnQHdvcmRwcmVzcy9ibG9jay1lZGl0b3InO1xuXG5pbXBvcnQge1xuXHRQYW5lbEJvZHksXG5cdFJhbmdlQ29udHJvbCxcblx0UGxhY2Vob2xkZXIsXG5cdFNwaW5uZXJcbn0gZnJvbSAnQHdvcmRwcmVzcy9jb21wb25lbnRzJztcblxuaW1wb3J0IHtcblx0bGF6eSxcblx0U3VzcGVuc2Vcbn0gZnJvbSAnQHdvcmRwcmVzcy9lbGVtZW50JztcblxuLyoqXG4gKiBJbnRlcm5hbCBkZXBlbmRlbmNpZXNcbiAqL1xuY29uc3QgSWNvblBpY2tlckNvbnRyb2wgPSBsYXp5KCAoKSA9PiBpbXBvcnQoICcuLi8uLi9jb21wb25lbnRzL2ljb24tcGlja2VyLWNvbnRyb2wvaW5kZXguanMnICkgKTtcblxuY29uc3QgSW5zcGVjdG9yID0gKHtcblx0YXR0cmlidXRlcyxcblx0c2V0QXR0cmlidXRlc1xufSkgPT4ge1xuXHRjb25zdCBjaGFuZ2VMaWJyYXJ5ID0gdmFsdWUgPT4ge1xuXHRcdHNldEF0dHJpYnV0ZXMoe1xuXHRcdFx0ZGVmYXVsdExpYnJhcnk6IHZhbHVlLFxuXHRcdFx0ZGVmYXVsdEljb246IHVuZGVmaW5lZCxcblx0XHRcdGRlZmF1bHRQcmVmaXg6ICdmYXMnXG5cdFx0fSk7XG5cdH07XG5cblx0Y29uc3QgY2hhbmdlSWNvbiA9IHZhbHVlID0+IHtcblx0XHRpZiAoICdvYmplY3QnID09PSB0eXBlb2YgdmFsdWUgKSB7XG5cdFx0XHRzZXRBdHRyaWJ1dGVzKHtcblx0XHRcdFx0ZGVmYXVsdEljb246IHZhbHVlLm5hbWUsXG5cdFx0XHRcdGRlZmF1bHRQcmVmaXg6IHZhbHVlLnByZWZpeFxuXHRcdFx0fSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHNldEF0dHJpYnV0ZXMoeyBkZWZhdWx0SWNvbjogdmFsdWUgfSk7XG5cdFx0fVxuXHR9O1xuXG5cdGNvbnN0IG9uRGVmYXVsdENvbnRlbnRDb2xvckNoYW5nZSA9IHZhbHVlID0+IHtcblx0XHRzZXRBdHRyaWJ1dGVzKHsgZGVmYXVsdENvbnRlbnRDb2xvcjogdmFsdWUgfSk7XG5cdH07XG5cblx0Y29uc3Qgb25EZWZhdWx0SWNvbkNvbG9yQ2hhbmdlID0gdmFsdWUgPT4ge1xuXHRcdHNldEF0dHJpYnV0ZXMoeyBkZWZhdWx0SWNvbkNvbG9yOiB2YWx1ZSB9KTtcblx0fTtcblxuXHRjb25zdCBvbkRlZmF1bHRTaXplQ2hhbmdlID0gdmFsdWUgPT4ge1xuXHRcdHNldEF0dHJpYnV0ZXMoeyBkZWZhdWx0U2l6ZTogdmFsdWUgfSk7XG5cdH07XG5cblx0Y29uc3Qgb25HYXBDaGFuZ2UgPSB2YWx1ZSA9PiB7XG5cdFx0c2V0QXR0cmlidXRlcyh7IGdhcDogdmFsdWUgfSk7XG5cdH07XG5cblx0cmV0dXJuIChcblx0XHQ8SW5zcGVjdG9yQ29udHJvbHM+XG5cdFx0XHQ8UGFuZWxCb2R5XG5cdFx0XHRcdHRpdGxlPXsgX18oICdTZXR0aW5ncycsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0PlxuXHRcdFx0XHQ8U3VzcGVuc2UgZmFsbGJhY2s9eyA8UGxhY2Vob2xkZXI+PFNwaW5uZXIgLz48L1BsYWNlaG9sZGVyPiB9PlxuXHRcdFx0XHRcdDxJY29uUGlja2VyQ29udHJvbFxuXHRcdFx0XHRcdFx0bGFiZWw9eyBfXyggJ0ljb24gUGlja2VyJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdFx0XHRsaWJyYXJ5PXsgYXR0cmlidXRlcy5kZWZhdWx0TGlicmFyeSB9XG5cdFx0XHRcdFx0XHRwcmVmaXg9eyBhdHRyaWJ1dGVzLmRlZmF1bHRQcmVmaXggfVxuXHRcdFx0XHRcdFx0aWNvbj17IGF0dHJpYnV0ZXMuZGVmYXVsdEljb24gfVxuXHRcdFx0XHRcdFx0Y2hhbmdlTGlicmFyeT17IGNoYW5nZUxpYnJhcnkgfVxuXHRcdFx0XHRcdFx0b25DaGFuZ2U9eyBjaGFuZ2VJY29uIH1cblx0XHRcdFx0XHQvPlxuXHRcdFx0XHQ8L1N1c3BlbnNlPlxuXG5cdFx0XHRcdDxSYW5nZUNvbnRyb2xcblx0XHRcdFx0XHRsYWJlbD17IF9fKCAnRm9udCBTaXplJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdFx0aGVscD17IF9fKCAnVGhlIHNpemUgb2YgdGhlIGZvbnQgc2l6ZSBvZiB0aGUgY29udGVudCBhbmQgaWNvbi4nLCAnb3R0ZXItYmxvY2tzJyApIH1cblx0XHRcdFx0XHR2YWx1ZT17IGF0dHJpYnV0ZXMuZGVmYXVsdFNpemUgfVxuXHRcdFx0XHRcdG9uQ2hhbmdlPXsgb25EZWZhdWx0U2l6ZUNoYW5nZSB9XG5cdFx0XHRcdFx0bWluPXsgMCB9XG5cdFx0XHRcdFx0bWF4PXsgNjAgfVxuXHRcdFx0XHQvPlxuXG5cdFx0XHRcdDxSYW5nZUNvbnRyb2xcblx0XHRcdFx0XHRsYWJlbD17IF9fKCAnR2FwJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdFx0aGVscD17IF9fKCAnVGhlIGRpc3RhbmNlIGJldHdlZW4gdGhlIGl0ZW1zLicsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHRcdHZhbHVlPXsgYXR0cmlidXRlcy5nYXAgfVxuXHRcdFx0XHRcdG9uQ2hhbmdlPXsgb25HYXBDaGFuZ2UgfVxuXHRcdFx0XHRcdG1pbj17IDAgfVxuXHRcdFx0XHRcdG1heD17IDYwIH1cblx0XHRcdFx0Lz5cblxuXHRcdFx0XHQ8Q29sb3JHcmFkaWVudENvbnRyb2xcblx0XHRcdFx0XHRsYWJlbD17IF9fKCAnQ29udGVudCBDb2xvcicsICdvdHRlci1ibG9ja3MnICkgfVxuXHRcdFx0XHRcdGNvbG9yVmFsdWU9eyBhdHRyaWJ1dGVzLmRlZmF1bHRDb250ZW50Q29sb3IgfVxuXHRcdFx0XHRcdG9uQ29sb3JDaGFuZ2U9eyBvbkRlZmF1bHRDb250ZW50Q29sb3JDaGFuZ2UgfVxuXHRcdFx0XHQvPlxuXG5cdFx0XHRcdDxDb2xvckdyYWRpZW50Q29udHJvbFxuXHRcdFx0XHRcdGxhYmVsPXsgX18oICdJY29uIENvbG9yJywgJ290dGVyLWJsb2NrcycgKSB9XG5cdFx0XHRcdFx0Y29sb3JWYWx1ZT17IGF0dHJpYnV0ZXMuZGVmYXVsdEljb25Db2xvciB9XG5cdFx0XHRcdFx0b25Db2xvckNoYW5nZT17IG9uRGVmYXVsdEljb25Db2xvckNoYW5nZSB9XG5cdFx0XHRcdC8+XG5cdFx0XHQ8L1BhbmVsQm9keT5cblx0XHQ8L0luc3BlY3RvckNvbnRyb2xzPlxuXHQpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgSW5zcGVjdG9yO1xuIiwiLyoqXG4gKiBXb3JkUHJlc3MgZGVwZW5kZW5jaWVzLlxuICovXG5pbXBvcnQgeyBJbm5lckJsb2NrcyB9IGZyb20gJ0B3b3JkcHJlc3MvYmxvY2stZWRpdG9yJztcblxuaW1wb3J0IHtcblx0RnJhZ21lbnQsXG5cdHVzZUVmZmVjdFxufSBmcm9tICdAd29yZHByZXNzL2VsZW1lbnQnO1xuXG4vKipcbiAqIEludGVybmFsIGRlcGVuZGVuY2llc1xuICovXG5pbXBvcnQgeyBibG9ja0luaXQgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2Jsb2NrLXV0aWxpdHkuanMnO1xuaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4vYXR0cmlidXRlcy5qcyc7XG5pbXBvcnQgSW5zcGVjdG9yIGZyb20gJy4vaW5zcGVjdG9yLmpzJztcblxuY29uc3QgRWRpdCA9ICh7XG5cdGF0dHJpYnV0ZXMsXG5cdHNldEF0dHJpYnV0ZXMsXG5cdGNsaWVudElkLFxuXHRjbGFzc05hbWVcbn0pID0+IHtcblx0dXNlRWZmZWN0KCAoKSA9PiB7XG5cdFx0Y29uc3QgdW5zdWJzY3JpYmUgPSBibG9ja0luaXQoIGNsaWVudElkLCBkZWZhdWx0QXR0cmlidXRlcyApO1xuXHRcdHJldHVybiAoKSA9PiB1bnN1YnNjcmliZSggYXR0cmlidXRlcy5pZCApO1xuXHR9LCBbIGF0dHJpYnV0ZXMuaWQgXSk7XG5cblx0cmV0dXJuIChcblx0XHQ8RnJhZ21lbnQ+XG5cdFx0XHQ8SW5zcGVjdG9yXG5cdFx0XHRcdGF0dHJpYnV0ZXM9eyBhdHRyaWJ1dGVzIH1cblx0XHRcdFx0c2V0QXR0cmlidXRlcz17IHNldEF0dHJpYnV0ZXMgfVxuXHRcdFx0Lz5cblxuXHRcdFx0PGRpdlxuXHRcdFx0XHRpZD17IGF0dHJpYnV0ZXMuaWQgfVxuXHRcdFx0XHRjbGFzc05hbWU9eyBjbGFzc05hbWUgfVxuXHRcdFx0PlxuXHRcdFx0XHQ8SW5uZXJCbG9ja3Ncblx0XHRcdFx0XHRhbGxvd2VkQmxvY2tzPXsgWyAndGhlbWVpc2xlLWJsb2Nrcy9pY29uLWxpc3QtaXRlbScgXSB9XG5cdFx0XHRcdFx0X19leHBlcmltZW50YWxNb3ZlckRpcmVjdGlvbj1cInZlcnRpY2FsXCJcblx0XHRcdFx0XHRvcmllbnRhdGlvbj1cInZlcnRpY2FsXCJcblx0XHRcdFx0XHR0ZW1wbGF0ZT17IFsgWyAndGhlbWVpc2xlLWJsb2Nrcy9pY29uLWxpc3QtaXRlbScgXSBdIH1cblx0XHRcdFx0XHRyZW5kZXJBcHBlbmRlcj17IElubmVyQmxvY2tzLkRlZmF1bHRBcHBlbmRlciB9XG5cdFx0XHRcdC8+XG5cdFx0XHQ8L2Rpdj5cblx0XHQ8L0ZyYWdtZW50PlxuXHQpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgRWRpdDtcbiIsIi8qKlxuICogV29yZFByZXNzIGRlcGVuZGVuY2llcy5cbiAqL1xuaW1wb3J0IHsgSW5uZXJCbG9ja3MgfSBmcm9tICdAd29yZHByZXNzL2Jsb2NrLWVkaXRvcic7XG5cbmNvbnN0IEVkaXQgPSAoe1xuXHRhdHRyaWJ1dGVzLFxuXHRjbGFzc05hbWVcbn0pID0+IHtcblx0cmV0dXJuIChcblx0XHQ8ZGl2XG5cdFx0XHRjbGFzc05hbWU9eyBjbGFzc05hbWUgfVxuXHRcdFx0aWQ9eyBhdHRyaWJ1dGVzLmlkIH1cblx0XHQ+XG5cdFx0XHQ8SW5uZXJCbG9ja3MuQ29udGVudCAvPlxuXHRcdDwvZGl2PlxuXHQpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgRWRpdDtcbiIsIi8qKlxuICogV29yZFByZXNzIGRlcGVuZGVuY2llc1xuICovXG5pbXBvcnQgeyBfXyB9IGZyb20gJ0B3b3JkcHJlc3MvaTE4bic7XG5cbmltcG9ydCB7IHJlZ2lzdGVyQmxvY2tUeXBlIH0gZnJvbSAnQHdvcmRwcmVzcy9ibG9ja3MnO1xuXG4vKipcbiAqIEludGVybmFsIGRlcGVuZGVuY2llc1xuICovXG5pbXBvcnQgJy4vc3R5bGUuc2Nzcyc7XG5pbXBvcnQgJy4vZWRpdG9yLnNjc3MnO1xuaW1wb3J0IHsgZmFJY29uIGFzIGljb24gfSBmcm9tICcuLi8uLi9oZWxwZXJzL2ljb25zLmpzJztcbmltcG9ydCBhdHRyaWJ1dGVzIGZyb20gJy4vYXR0cmlidXRlcy5qcyc7XG5pbXBvcnQgZWRpdCBmcm9tICcuL2VkaXQuanMnO1xuaW1wb3J0IHNhdmUgZnJvbSAnLi9zYXZlLmpzJztcblxucmVnaXN0ZXJCbG9ja1R5cGUoICd0aGVtZWlzbGUtYmxvY2tzL2ljb24tbGlzdCcsIHtcblx0dGl0bGU6IF9fKCAnSWNvbiBMaXN0JywgJ290dGVyLWJsb2NrcycgKSxcblx0ZGVzY3JpcHRpb246IF9fKCAnRGlzcGxheSBhbiBpY29uIGxpc3QgaW4gYSBiZWF1dGlmdWwgbGF5b3V0LicsICdvdHRlci1ibG9ja3MnICksXG5cdGljb24sXG5cdGNhdGVnb3J5OiAndGhlbWVpc2xlLWJsb2NrcycsXG5cdGtleXdvcmRzOiBbXG5cdFx0J2ljb24nLFxuXHRcdCdsaXN0Jyxcblx0XHQnaXRlbXMnXG5cdF0sXG5cdGF0dHJpYnV0ZXMsXG5cdHN0eWxlczogW1xuXHRcdHtcblx0XHRcdG5hbWU6ICd2ZXJ0aWNhbCcsXG5cdFx0XHRsYWJlbDogX18oICdWZXJ0aWNhbCcsICdvdHRlci1ibG9ja3MnICksXG5cdFx0XHRpc0RlZmF1bHQ6IHRydWVcblx0XHR9LFxuXHRcdHtcblx0XHRcdG5hbWU6ICdob3Jpem9udGFsJyxcblx0XHRcdGxhYmVsOiBfXyggJ0hvcml6b250YWwnLCAnb3R0ZXItYmxvY2tzJyApXG5cdFx0fVxuXHRdLFxuXHRlZGl0LFxuXHRzYXZlXG59KTtcbiJdLCJuYW1lcyI6WyJhdHRyaWJ1dGVzIiwiaWQiLCJ0eXBlIiwiZGVmYXVsdExpYnJhcnkiLCJkZWZhdWx0IiwiZGVmYXVsdEljb25QcmVmaXgiLCJkZWZhdWx0SWNvbiIsImRlZmF1bHRDb250ZW50Q29sb3IiLCJkZWZhdWx0SWNvbkNvbG9yIiwiZGVmYXVsdFNpemUiLCJnYXAiLCJfXyIsIl9fZXhwZXJpbWVudGFsQ29sb3JHcmFkaWVudENvbnRyb2wiLCJDb2xvckdyYWRpZW50Q29udHJvbCIsIkluc3BlY3RvckNvbnRyb2xzIiwiUGFuZWxCb2R5IiwiUmFuZ2VDb250cm9sIiwiUGxhY2Vob2xkZXIiLCJTcGlubmVyIiwibGF6eSIsIlN1c3BlbnNlIiwiSWNvblBpY2tlckNvbnRyb2wiLCJJbnNwZWN0b3IiLCJzZXRBdHRyaWJ1dGVzIiwiY2hhbmdlTGlicmFyeSIsInZhbHVlIiwidW5kZWZpbmVkIiwiZGVmYXVsdFByZWZpeCIsImNoYW5nZUljb24iLCJuYW1lIiwicHJlZml4Iiwib25EZWZhdWx0Q29udGVudENvbG9yQ2hhbmdlIiwib25EZWZhdWx0SWNvbkNvbG9yQ2hhbmdlIiwib25EZWZhdWx0U2l6ZUNoYW5nZSIsIm9uR2FwQ2hhbmdlIiwiSW5uZXJCbG9ja3MiLCJGcmFnbWVudCIsInVzZUVmZmVjdCIsImJsb2NrSW5pdCIsImRlZmF1bHRBdHRyaWJ1dGVzIiwiRWRpdCIsImNsaWVudElkIiwiY2xhc3NOYW1lIiwidW5zdWJzY3JpYmUiLCJEZWZhdWx0QXBwZW5kZXIiLCJyZWdpc3RlckJsb2NrVHlwZSIsImZhSWNvbiIsImljb24iLCJlZGl0Iiwic2F2ZSIsInRpdGxlIiwiZGVzY3JpcHRpb24iLCJjYXRlZ29yeSIsImtleXdvcmRzIiwic3R5bGVzIiwibGFiZWwiLCJpc0RlZmF1bHQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///7844\n")},7970:function(__unused_webpack_module,__unused_webpack___webpack_exports__,__webpack_require__){eval("\n// EXTERNAL MODULE: external [\"wp\",\"i18n\"]\nvar external_wp_i18n_ = __webpack_require__(5736);\n// EXTERNAL MODULE: external [\"wp\",\"blocks\"]\nvar external_wp_blocks_ = __webpack_require__(4981);\n// EXTERNAL MODULE: ./src/blocks/helpers/icons.js\nvar icons = __webpack_require__(340);\n;// CONCATENATED MODULE: ./src/blocks/blocks/icon-list/item/attributes.js\nconst attributes = {\n id: {\n type: 'string'\n },\n content: {\n type: 'string'\n },\n contentColor: {\n type: 'string'\n },\n iconColor: {\n type: 'string'\n },\n library: {\n type: 'string'\n },\n iconPrefix: {\n type: 'string'\n },\n icon: {\n type: 'string'\n }\n};\n/* harmony default export */ var item_attributes = (attributes);\n// EXTERNAL MODULE: external [\"wp\",\"element\"]\nvar external_wp_element_ = __webpack_require__(9307);\n// EXTERNAL MODULE: ./node_modules/classnames/index.js\nvar classnames = __webpack_require__(4184);\nvar classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);\n// EXTERNAL MODULE: external [\"wp\",\"blockEditor\"]\nvar external_wp_blockEditor_ = __webpack_require__(2175);\n// EXTERNAL MODULE: external [\"wp\",\"data\"]\nvar external_wp_data_ = __webpack_require__(9818);\n// EXTERNAL MODULE: external [\"wp\",\"components\"]\nvar external_wp_components_ = __webpack_require__(5609);\n;// CONCATENATED MODULE: ./src/blocks/blocks/icon-list/item/inspector.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\nconst IconPickerControl = (0,external_wp_element_.lazy)(() => Promise.all(/* import() */[__webpack_require__.e(189), __webpack_require__.e(110)]).then(__webpack_require__.bind(__webpack_require__, 2110)));\n\nconst Inspector = ({\n attributes,\n setAttributes\n}) => {\n const changeIcon = value => {\n if ('object' === typeof value) {\n setAttributes({\n icon: value.name,\n iconPrefix: value.prefix\n });\n } else {\n setAttributes({\n icon: value\n });\n }\n };\n\n const changeLibrary = value => {\n setAttributes({\n library: value,\n icon: undefined,\n iconPrefix: 'fab'\n });\n };\n\n const onDefaultContentColorChange = value => {\n setAttributes({\n contentColor: value\n });\n };\n\n const onDefaultIconColorChange = value => {\n setAttributes({\n iconColor: value\n });\n };\n\n return (0,external_wp_element_.createElement)(external_wp_blockEditor_.InspectorControls, null, (0,external_wp_element_.createElement)(external_wp_components_.PanelBody, {\n title: (0,external_wp_i18n_.__)('Settings', 'otter-blocks')\n }, (0,external_wp_element_.createElement)(external_wp_element_.Suspense, {\n fallback: (0,external_wp_element_.createElement)(external_wp_components_.Placeholder, null, (0,external_wp_element_.createElement)(external_wp_components_.Spinner, null))\n }, (0,external_wp_element_.createElement)(IconPickerControl, {\n label: (0,external_wp_i18n_.__)('Icon Picker', 'otter-blocks'),\n library: attributes.library,\n prefix: attributes.iconPrefix,\n icon: attributes.icon,\n changeLibrary: changeLibrary,\n onChange: changeIcon\n })), (0,external_wp_element_.createElement)(external_wp_blockEditor_.__experimentalColorGradientControl, {\n label: (0,external_wp_i18n_.__)('Content Color', 'otter-blocks'),\n colorValue: attributes.contentColor,\n onColorChange: onDefaultContentColorChange\n }), (0,external_wp_element_.createElement)(external_wp_blockEditor_.__experimentalColorGradientControl, {\n label: (0,external_wp_i18n_.__)('Icon Color', 'otter-blocks'),\n colorValue: attributes.iconColor,\n onColorChange: onDefaultIconColorChange\n })));\n};\n\n/* harmony default export */ var inspector = (Inspector);\n// EXTERNAL MODULE: ./src/blocks/helpers/themeisle-icons.js\nvar themeisle_icons = __webpack_require__(48);\n// EXTERNAL MODULE: ./src/blocks/helpers/block-utility.js\nvar block_utility = __webpack_require__(5225);\n;// CONCATENATED MODULE: ./src/blocks/blocks/icon-list/item/edit.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\nconst Edit = ({\n attributes,\n setAttributes,\n className,\n name,\n clientId,\n onReplace,\n onRemove,\n mergeBlocks\n}) => {\n const {\n hasParent,\n parentClass,\n parentAttributes\n } = (0,external_wp_data_.useSelect)(select => {\n const {\n getBlock,\n getBlockRootClientId\n } = select('core/block-editor');\n const parentClientId = getBlockRootClientId(clientId);\n const parentBlock = getBlock(parentClientId);\n return {\n hasParent: parentBlock ? true : false,\n parentClass: parentBlock.attributes.className || '',\n parentAttributes: parentBlock ? parentBlock.attributes : {}\n };\n }, []);\n (0,external_wp_element_.useEffect)(() => {\n const unsubscribe = (0,block_utility/* blockInit */.WX)(clientId, item_attributes);\n return () => unsubscribe(attributes.id);\n }, [attributes.id]);\n const Icon = themeisle_icons/* default.icons */.ZP.icons[attributes.icon];\n const iconClassName = `${attributes.iconPrefix || parentAttributes.defaultIconPrefix} fa-${attributes.icon || parentAttributes.defaultIcon}`;\n const contentStyle = {\n color: attributes.contentColor || parentAttributes.defaultContentColor,\n fontSize: parentAttributes.defaultSize + 'px'\n };\n const iconStyle = {\n color: attributes.iconColor || parentAttributes.defaultIconColor,\n fill: attributes.iconColor || parentAttributes.defaultIconColor,\n fontSize: parentAttributes.defaultSize + 'px'\n };\n const itemStyle = {\n marginRight: parentClass.includes('is-style-horizontal') ? parentAttributes.gap + 'px' : parentAttributes.gap + 'px'\n };\n /**\n * Add the missing components from parent's attributes\n */\n\n if (hasParent && (!attributes.iconPrefix || !attributes.library)) {\n setAttributes({\n library: attributes.library || parentAttributes.defaultLibrary,\n icon: attributes.icon || parentAttributes.defaultIcon,\n iconPrefix: attributes.iconPrefix || parentAttributes.defaultIconPrefix\n });\n }\n\n const changeContent = value => {\n setAttributes({\n content: value\n });\n };\n\n return (0,external_wp_element_.createElement)(external_wp_element_.Fragment, null, (0,external_wp_element_.createElement)(inspector, {\n attributes: attributes,\n setAttributes: setAttributes\n }), (0,external_wp_element_.createElement)(\"div\", {\n className: className,\n style: itemStyle\n }, 'themeisle-icons' === attributes.library && attributes.icon && Icon !== undefined ? (0,external_wp_element_.createElement)(Icon, {\n className: classnames_default()({\n 'wp-block-themeisle-blocks-icon-list-item-icon': !attributes.iconColor\n }, {\n 'wp-block-themeisle-blocks-icon-list-item-icon-custom': attributes.iconColor\n }),\n style: { ...iconStyle,\n width: parentAttributes.defaultSize + 'px'\n }\n }) : (0,external_wp_element_.createElement)(\"i\", {\n className: classnames_default()(iconClassName, {\n 'wp-block-themeisle-blocks-icon-list-item-icon': !attributes.iconColor\n }, {\n 'wp-block-themeisle-blocks-icon-list-item-icon-custom': attributes.iconColor\n }),\n style: iconStyle\n }), (0,external_wp_element_.createElement)(external_wp_blockEditor_.RichText, {\n identifier: \"content\",\n tagName: \"p\",\n placeholder: (0,external_wp_i18n_.__)('Write your content…', 'otter-blocks'),\n className: classnames_default()({\n 'wp-block-themeisle-blocks-icon-list-item-content': !attributes.contentColor\n }, {\n 'wp-block-themeisle-blocks-icon-list-item-content-custom': attributes.contentColor\n }),\n style: contentStyle,\n value: attributes.content,\n onChange: changeContent,\n onSplit: value => {\n if (!value) {\n return (0,external_wp_blocks_.createBlock)(name);\n }\n\n return (0,external_wp_blocks_.createBlock)(name, { ...attributes,\n content: value\n });\n },\n onMerge: mergeBlocks,\n onReplace: onReplace,\n onRemove: onRemove,\n keepPlaceholderOnFocus: true\n })));\n};\n\n/* harmony default export */ var edit = (Edit);\n;// CONCATENATED MODULE: ./src/blocks/blocks/icon-list/item/save.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\nconst save_Edit = ({\n attributes,\n className\n}) => {\n const iconClassName = `${attributes.iconPrefix} fa-${attributes.icon}`;\n const Icon = themeisle_icons/* default.icons */.ZP.icons[attributes.icon];\n return (0,external_wp_element_.createElement)(\"div\", {\n className: className,\n id: attributes.id\n }, 'themeisle-icons' === attributes.library && attributes.icon ? (0,external_wp_element_.createElement)(Icon, {\n className: classnames_default()({\n 'wp-block-themeisle-blocks-icon-list-item-icon': !attributes.iconColor\n }, {\n 'wp-block-themeisle-blocks-icon-list-item-icon-custom': attributes.iconColor\n })\n }) : (0,external_wp_element_.createElement)(\"i\", {\n className: classnames_default()(iconClassName, {\n 'wp-block-themeisle-blocks-icon-list-item-icon': !attributes.iconColor\n }, {\n 'wp-block-themeisle-blocks-icon-list-item-icon-custom': attributes.iconColor\n })\n }), (0,external_wp_element_.createElement)(external_wp_blockEditor_.RichText.Content, {\n tagName: \"p\",\n className: classnames_default()({\n 'wp-block-themeisle-blocks-icon-list-item-content': !attributes.contentColor\n }, {\n 'wp-block-themeisle-blocks-icon-list-item-content-custom': attributes.contentColor\n }),\n value: attributes.content\n }));\n};\n\n/* harmony default export */ var save = (save_Edit);\n;// CONCATENATED MODULE: ./src/blocks/blocks/icon-list/item/index.js\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n(0,external_wp_blocks_.registerBlockType)('themeisle-blocks/icon-list-item', {\n title: (0,external_wp_i18n_.__)('Icon List Item', 'otter-blocks'),\n description: (0,external_wp_i18n_.__)('Display an item for the icon list.', 'otter-blocks'),\n icon: icons/* faIcon */.rL,\n attributes: item_attributes,\n category: 'themeisle-blocks',\n parent: ['themeisle-blocks/icon-list'],\n keywords: ['item', 'icon', 'list'],\n\n merge(attributes, attributesToMerge) {\n return {\n content: (attributes.content || '') + (attributesToMerge.content || '')\n };\n },\n\n edit: edit,\n save: save\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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OztBQ3hEQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUNBOztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUFtQyx5Q0FBaUIsQ0FBRSxpQ0FBRixFQUFxQztBQUNyREksRUFBQUEsS0FBSyxFQUFFcEUsd0JBQUUsQ0FBRSxnQkFBRixFQUFvQixjQUFwQixDQUQ0QztBQUVyRHFFLEVBQUFBLFdBQVcsRUFBRXJFLHdCQUFFLENBQUUsb0NBQUYsRUFBd0MsY0FBeEMsQ0FGc0M7QUFHckRELEVBQUFBLElBSHFEO0FBSXJEUixFQUFBQSxVQUpxRDtBQUtyRCtFLEVBQUFBLFFBQVEsRUFBRSxrQkFMMkM7QUFNckRDLEVBQUFBLE1BQU0sRUFBRSxDQUFFLDRCQUFGLENBTjZDO0FBT3JEQyxFQUFBQSxRQUFRLEVBQUUsQ0FDVCxNQURTLEVBRVQsTUFGUyxFQUdULE1BSFMsQ0FQMkM7O0FBWXJEQyxFQUFBQSxLQUFLLENBQUVsRixVQUFGLEVBQWNtRixpQkFBZCxFQUFrQztBQUN0QyxXQUFPO0FBQ05oRixNQUFBQSxPQUFPLEVBQUUsQ0FBRUgsVUFBVSxDQUFDRyxPQUFYLElBQXNCLEVBQXhCLEtBQWlDZ0YsaUJBQWlCLENBQUNoRixPQUFsQixJQUE2QixFQUE5RDtBQURILEtBQVA7QUFHQSxHQWhCb0Q7O0FBaUJyRHdFLEVBQUFBLElBakJxRDtBQWtCckRDLEVBQUFBLElBQUlBLEVBQUFBLElBQUFBO0FBbEJpRCxDQUFyQyxDQUFqQiIsInNvdXJjZXMiOlsid2VicGFjazovL290dGVyLWJsb2Nrcy8uL3NyYy9ibG9ja3MvYmxvY2tzL2ljb24tbGlzdC9pdGVtL2F0dHJpYnV0ZXMuanM/Y2MyNyIsIndlYnBhY2s6Ly9vdHRlci1ibG9ja3MvLi9zcmMvYmxvY2tzL2Jsb2Nrcy9pY29uLWxpc3QvaXRlbS9pbnNwZWN0b3IuanM/Y2MxZSIsIndlYnBhY2s6Ly9vdHRlci1ibG9ja3MvLi9zcmMvYmxvY2tzL2Jsb2Nrcy9pY29uLWxpc3QvaXRlbS9lZGl0LmpzPzZiMTQiLCJ3ZWJwYWNrOi8vb3R0ZXItYmxvY2tzLy4vc3JjL2Jsb2Nrcy9ibG9ja3MvaWNvbi1saXN0L2l0ZW0vc2F2ZS5qcz9hYzg3Iiwid2VicGFjazovL290dGVyLWJsb2Nrcy8uL3NyYy9ibG9ja3MvYmxvY2tzL2ljb24tbGlzdC9pdGVtL2luZGV4LmpzP2QzOGUiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgYXR0cmlidXRlcyA9IHtcblx0aWQ6IHtcblx0XHR0eXBlOiAnc3RyaW5nJ1xuXHR9LFxuXHRjb250ZW50OiB7XG5cdFx0dHlwZTogJ3N0cmluZydcblx0fSxcblx0Y29udGVudENvbG9yOiB7XG5cdFx0dHlwZTogJ3N0cmluZydcblx0fSxcblx0aWNvbkNvbG9yOiB7XG5cdFx0dHlwZTogJ3N0cmluZydcblx0fSxcblx0bGlicmFyeToge1xuXHRcdHR5cGU6ICdzdHJpbmcnXG5cdH0sXG5cdGljb25QcmVmaXg6IHtcblx0XHR0eXBlOiAnc3RyaW5nJ1xuXHR9LFxuXHRpY29uOiB7XG5cdFx0dHlwZTogJ3N0cmluZydcblx0fVxufTtcblxuZXhwb3J0IGRlZmF1bHQgYXR0cmlidXRlcztcbiIsIi8qKlxuICogV29yZFByZXNzIGRlcGVuZGVuY2llc1xuICovXG5pbXBvcnQgeyBfXyB9IGZyb20gJ0B3b3JkcHJlc3MvaTE4bic7XG5cbmltcG9ydCB7XG5cdF9fZXhwZXJpbWVudGFsQ29sb3JHcmFkaWVudENvbnRyb2wgYXMgQ29sb3JHcmFkaWVudENvbnRyb2wsXG5cdEluc3BlY3RvckNvbnRyb2xzXG59IGZyb20gJ0B3b3JkcHJlc3MvYmxvY2stZWRpdG9yJztcblxuaW1wb3J0IHtcblx0UGFuZWxCb2R5LFxuXHRQbGFjZWhvbGRlcixcblx0U3Bpbm5lclxufSBmcm9tICdAd29yZHByZXNzL2NvbXBvbmVudHMnO1xuXG5pbXBvcnQge1xuXHRsYXp5LFxuXHRTdXNwZW5zZVxufSBmcm9tICdAd29yZHByZXNzL2VsZW1lbnQnO1xuXG4vKipcbiAqIEludGVybmFsIGRlcGVuZGVuY2llc1xu