ARVE Advanced Responsive Video Embedder (YouTube, Vimeo, HTML5 Video …) - Version 9.7.11

Version Description

Download this release

Release Info

Developer nico23
Plugin Icon 128x128 ARVE Advanced Responsive Video Embedder (YouTube, Vimeo, HTML5 Video …)
Version 9.7.11
Comparing to
See all releases

Code changes from version 9.7.10 to 9.7.11

advanced-responsive-video-embedder.php CHANGED
@@ -3,7 +3,7 @@
3
  * Plugin Name: ARVE Advanced Responsive Video Embedder
4
  * Plugin URI: https://nextgenthemes.com/plugins/arve-pro/
5
  * Description: Easy responsive video embeds via URL (like WordPress) or Shortcodes. Supports almost anything you can imagine.
6
- * Version: 9.7.10
7
  * Author: Nicolas Jonas
8
  * Author URI: https://nextgenthemes.com
9
  * License: GPL-3.0
@@ -19,7 +19,7 @@
19
 
20
  namespace Nextgenthemes\ARVE;
21
 
22
- const VERSION = '9.7.10';
23
  const PRO_VERSION_REQUIRED = '5.2.0';
24
  const NUM_TRACKS = 3;
25
  const PLUGIN_FILE = __FILE__;
3
  * Plugin Name: ARVE Advanced Responsive Video Embedder
4
  * Plugin URI: https://nextgenthemes.com/plugins/arve-pro/
5
  * Description: Easy responsive video embeds via URL (like WordPress) or Shortcodes. Supports almost anything you can imagine.
6
+ * Version: 9.7.11
7
  * Author: Nicolas Jonas
8
  * Author URI: https://nextgenthemes.com
9
  * License: GPL-3.0
19
 
20
  namespace Nextgenthemes\ARVE;
21
 
22
+ const VERSION = '9.7.11';
23
  const PRO_VERSION_REQUIRED = '5.2.0';
24
  const NUM_TRACKS = 3;
25
  const PLUGIN_FILE = __FILE__;
build/block.asset.php CHANGED
@@ -1 +1 @@
1
- <?php return array('dependencies' => array('wp-block-editor', 'wp-blocks', 'wp-components', 'wp-element', 'wp-i18n', 'wp-server-side-render'), 'version' => '5dfc9b8fb559fe422f78');
1
+ <?php return array('dependencies' => array('wp-block-editor', 'wp-blocks', 'wp-components', 'wp-element', 'wp-i18n', 'wp-server-side-render'), 'version' => '0fe6b002f0ec3202e6e4');
build/block.js CHANGED
@@ -1 +1 @@
1
- (()=>{"use strict";var e={};function t(){return t=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},t.apply(this,arguments)}e.n=t=>{var r=t&&t.__esModule?()=>t.default:()=>t;return e.d(r,{a:r}),r},e.d=(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},e.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);const r=window.wp.element,n=JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"nextgenthemes/arve-block","title":"Video Embed (ARVE)","category":"embed","icon":"video-alt3","description":"Advanced Responsive Video Embedder","keywords":["embed","youtube","rumble","vimeo","odysee"],"version":"9.7.10-alpha","textdomain":"advanced-responsive-video-embedder","supports":{"align":["wide","full"]},"styles":[],"example":{"attributes":{"url":"https://www.youtube.com/watch?v=oe452WcY7fA","title":"Example Title"}},"editorScript":"arve-block","editorStyle":"arve","attributes":{"url":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"upload_date":{"type":"string"},"mode":{"type":"string"},"thumbnail":{"type":"string"},"hide_title":{"type":"boolean"},"grow":{"type":"string"},"fullscreen":{"type":"string"},"play_icon_style":{"type":"string"},"hover_effect":{"type":"string"},"disable_links":{"type":"string"},"align":{"type":"string"},"arve_link":{"type":"string"},"duration":{"type":"string"},"autoplay":{"type":"string"},"lightbox_maxwidth":{"type":"integer"},"sticky":{"type":"string"},"sticky_on_mobile":{"type":"string"},"sticky_position":{"type":"string"},"aspect_ratio":{"type":"string"},"parameters":{"type":"string"},"controlslist":{"type":"string"},"controls":{"type":"string"},"loop":{"type":"boolean"},"muted":{"type":"boolean"},"volume":{"type":"integer"},"random_video_url":{"type":"string"},"random_video_urls":{"type":"string"},"sandbox":{"type":"string"},"thumbnail_url":{"type":"string"}}}'),i=window.wp.i18n,a=window.wp.serverSideRender;var l=e.n(a);const o=window.wp.blockEditor,s=window.wp.components,c=window.wp.blocks,{name:p}=n,d=window.ARVEsettings,u=new DOMParser;function m(e){const t=[];return Object.entries(e).forEach((e=>{let[r,n]=e;const i={label:n,value:r};t.push(i)})),t}function b(e){if("string"!=typeof e.description)return"";if("string"==typeof e.descriptionlinktext){const t=e.description.split(e.descriptionlinktext);return(0,r.createElement)("span",null,(0,r.createElement)("span",null,t[0]),(0,r.createElement)("a",{href:e.descriptionlink},e.descriptionlinktext),",",(0,r.createElement)("span",null,t[1]))}return e.description}function g(e,t){const r=y(e,t);return e/r+":"+t/r}function y(e,t){return t?y(t,e%t):e}(0,c.registerBlockType)(p,{edit:function(e){const{attributes:{align:n},setAttributes:a}=e,c=(0,o.useBlockProps)(),p=function(e){const t=[],n={},a=(0,r.createElement)("p",null,(0,i.__)("To edit the featured image, you need permission to upload media."));let l=!1;Object.values(d).forEach((e=>{n[e.tag]=[]})),Object.entries(d).forEach((t=>{let[c,p]=t,d=e.attributes[c],y="";switch(p.type){case"boolean":"sandbox"===c&&void 0===d&&(d=!0),n[p.tag].push((0,r.createElement)(s.ToggleControl,{key:c,label:p.label,help:b(p),checked:!!d,onChange:t=>e.setAttributes({[c]:t})}));break;case"select":n[p.tag].push((0,r.createElement)(s.SelectControl,{key:c,value:d,label:p.label,help:b(p),options:m(p.options),onChange:t=>e.setAttributes({[c]:t})}));break;case"string":n[p.tag].push((0,r.createElement)(s.TextControl,{key:c,label:p.label,placeholder:p.placeholder,help:b(p),value:d,onChange:t=>(function(e,t,r){if("url"===e){const e=u.parseFromString(t,"text/html").querySelector("iframe");if(e&&e.getAttribute("src")){t=e.src;const n=e.width,i=e.height;n&&i&&r.setAttributes({aspect_ratio:g(n,i)})}}}(c,t,e),e.setAttributes({[c]:t}))}));break;case"attachment":y=e.attributes[c+"_url"],n[p.tag].push((0,r.createElement)(s.BaseControl,{className:"editor-post-featured-image",help:b(p),key:c},(0,r.createElement)(o.MediaUploadCheck,{fallback:a},(0,r.createElement)(o.MediaUpload,{title:(0,i.__)("Thumbnail"),onSelect:t=>(l=t,e.setAttributes({[c]:t.id.toString(),[c+"_url"]:t.url})),unstableFeaturedImageFlow:!0,allowedTypes:["image"],modalClass:"editor-post-featured-image__media-modal",render:e=>{let{open:t}=e;return(0,r.createElement)("div",{className:"editor-post-featured-image__container"},(0,r.createElement)(s.Button,{className:d?"editor-post-featured-image__preview":"editor-post-featured-image__toggle",onClick:t,"aria-label":d?(0,i.__)("Edit or update the image"):null,"aria-describedby":d?`editor-post-featured-image-${d}-describedby`:""},!!d&&!!y&&(0,r.createElement)("div",{style:{overflow:"hidden"}},(0,r.createElement)(s.ResponsiveWrapper,{naturalWidth:640,naturalHeight:360,isInline:!0},(0,r.createElement)("img",{src:y,alt:"ARVE Thumbnail",style:{objectFit:"cover"}}))),!d&&(0,i.__)("Set Thumbnail")),(0,r.createElement)(s.DropZone,null))},value:d})),!!d&&!!y&&(0,r.createElement)(o.MediaUploadCheck,null,(0,r.createElement)(o.MediaUpload,{title:(0,i.__)("Thumbnail"),onSelect:t=>(l=t,e.setAttributes({[c]:t.id.toString(),[c+"_url"]:t.url})),unstableFeaturedImageFlow:!0,allowedTypes:["image"],modalClass:"editor-post-featured-image__media-modal",render:e=>{let{open:t}=e;return(0,r.createElement)(s.Button,{onClick:t,isSecondary:!0},(0,i.__)("Replace Thumbnail"))}})),!!d&&(0,r.createElement)(o.MediaUploadCheck,null,(0,r.createElement)(s.Button,{onClick:()=>e.setAttributes({[c]:"",[c+"_url"]:""}),isLink:!0,isDestructive:!0},(0,i.__)("Remove Thumbnail")))))}}));let c=!0;return n.main.push((0,r.createElement)(s.BaseControl,{key:"info",help:(0,i.__)("You can disable the extensive help texts on the ARVE settings page to clean up this UI","advanced-responsive-video-embedder")},(0,r.createElement)(s.BaseControl.VisualLabel,null,(0,i.__)("Info","advanced-responsive-video-embedder")))),Object.keys(n).forEach((e=>{var i;t.push((0,r.createElement)(s.PanelBody,{key:e,title:(i=e,i.charAt(0).toUpperCase()+i.slice(1)),initialOpen:c},n[e])),c=!1})),t}(e);return[(0,r.createElement)("div",t({},c,{key:"block"}),(0,r.createElement)("div",{className:"arve-select-helper",style:{textAlign:"center",padding:".1em"}},(0,i.__)("Select ARVE block","advanced-responsive-video-embedder")),(0,r.createElement)(l(),{block:"nextgenthemes/arve-block",attributes:e.attributes})),(0,r.createElement)(o.InspectorControls,{key:"insp"},p)]}})})();
1
+ (()=>{"use strict";var e={};function t(){return t=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},t.apply(this,arguments)}e.n=t=>{var r=t&&t.__esModule?()=>t.default:()=>t;return e.d(r,{a:r}),r},e.d=(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},e.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);const r=window.wp.element,n=JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"nextgenthemes/arve-block","title":"Video Embed (ARVE)","category":"embed","icon":"video-alt3","description":"Advanced Responsive Video Embedder","keywords":["embed","youtube","rumble","vimeo","odysee"],"version":"9.7.10","textdomain":"advanced-responsive-video-embedder","supports":{"align":["wide","full"]},"styles":[],"example":{"attributes":{"url":"https://www.youtube.com/watch?v=oe452WcY7fA","title":"Example Title"}},"editorScript":"arve-block","editorStyle":"arve","attributes":{"url":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"upload_date":{"type":"string"},"mode":{"type":"string"},"thumbnail":{"type":"string"},"hide_title":{"type":"boolean"},"grow":{"type":"string"},"fullscreen":{"type":"string"},"play_icon_style":{"type":"string"},"hover_effect":{"type":"string"},"disable_links":{"type":"string"},"align":{"type":"string"},"arve_link":{"type":"string"},"duration":{"type":"string"},"autoplay":{"type":"string"},"lightbox_maxwidth":{"type":"integer"},"sticky":{"type":"string"},"sticky_on_mobile":{"type":"string"},"sticky_position":{"type":"string"},"aspect_ratio":{"type":"string"},"parameters":{"type":"string"},"controlslist":{"type":"string"},"controls":{"type":"string"},"loop":{"type":"boolean"},"muted":{"type":"boolean"},"volume":{"type":"integer"},"random_video_url":{"type":"string"},"random_video_urls":{"type":"string"},"sandbox":{"type":"string"},"thumbnail_url":{"type":"string"}}}'),i=window.wp.i18n,a=window.wp.serverSideRender;var l=e.n(a);const o=window.wp.blockEditor,s=window.wp.components,c=window.wp.blocks,{name:d}=n,p=window.ARVEsettings,u=new DOMParser;function m(e){const t=[];return Object.entries(e).forEach((e=>{let[r,n]=e;const i={label:n,value:r};t.push(i)})),t}function b(e){if("string"!=typeof e.description)return"";if("string"==typeof e.descriptionlinktext){const t=e.description.split(e.descriptionlinktext);return(0,r.createElement)("span",null,(0,r.createElement)("span",null,t[0]),(0,r.createElement)("a",{href:e.descriptionlink},e.descriptionlinktext),",",(0,r.createElement)("span",null,t[1]))}return e.description}function g(e,t){const r=y(e,t);return e/r+":"+t/r}function y(e,t){return t?y(t,e%t):e}(0,c.registerBlockType)(d,{edit:function(e){const{attributes:{align:n},setAttributes:a}=e,c=(0,o.useBlockProps)(),d=function(e){const t=[],n={},a=(0,r.createElement)("p",null,(0,i.__)("To edit the featured image, you need permission to upload media."));let l=!1;Object.values(p).forEach((e=>{n[e.tag]=[]})),Object.entries(p).forEach((t=>{let[c,d]=t,p=e.attributes[c],y="";switch(d.type){case"boolean":"sandbox"===c&&void 0===p&&(p=!0),n[d.tag].push((0,r.createElement)(s.ToggleControl,{key:c,label:d.label,help:b(d),checked:!!p,onChange:t=>e.setAttributes({[c]:t})}));break;case"select":n[d.tag].push((0,r.createElement)(s.SelectControl,{key:c,value:p,label:d.label,help:b(d),options:m(d.options),onChange:t=>e.setAttributes({[c]:t})}));break;case"string":n[d.tag].push((0,r.createElement)(s.TextControl,{key:c,label:d.label,placeholder:d.placeholder,help:b(d),value:p,onChange:t=>(function(e,t,r){if("url"===e){const e=u.parseFromString(t,"text/html").querySelector("iframe");if(e&&e.getAttribute("src")){t=e.src;const n=e.width,i=e.height;n&&i&&r.setAttributes({aspect_ratio:g(n,i)})}}}(c,t,e),e.setAttributes({[c]:t}))}));break;case"attachment":y=e.attributes[c+"_url"],n[d.tag].push((0,r.createElement)(s.BaseControl,{className:"editor-post-featured-image",help:b(d),key:c},(0,r.createElement)(o.MediaUploadCheck,{fallback:a},(0,r.createElement)(o.MediaUpload,{title:(0,i.__)("Thumbnail"),onSelect:t=>(l=t,e.setAttributes({[c]:t.id.toString(),[c+"_url"]:t.url})),unstableFeaturedImageFlow:!0,allowedTypes:["image"],modalClass:"editor-post-featured-image__media-modal",render:e=>{let{open:t}=e;return(0,r.createElement)("div",{className:"editor-post-featured-image__container"},(0,r.createElement)(s.Button,{className:p?"editor-post-featured-image__preview":"editor-post-featured-image__toggle",onClick:t,"aria-label":p?(0,i.__)("Edit or update the image"):null,"aria-describedby":p?`editor-post-featured-image-${p}-describedby`:""},!!p&&!!y&&(0,r.createElement)("div",{style:{overflow:"hidden"}},(0,r.createElement)(s.ResponsiveWrapper,{naturalWidth:640,naturalHeight:360,isInline:!0},(0,r.createElement)("img",{src:y,alt:"ARVE Thumbnail",style:{objectFit:"cover"}}))),!p&&(0,i.__)("Set Thumbnail")),(0,r.createElement)(s.DropZone,null))},value:p})),!!p&&!!y&&(0,r.createElement)(o.MediaUploadCheck,null,(0,r.createElement)(o.MediaUpload,{title:(0,i.__)("Thumbnail"),onSelect:t=>(l=t,e.setAttributes({[c]:t.id.toString(),[c+"_url"]:t.url})),unstableFeaturedImageFlow:!0,allowedTypes:["image"],modalClass:"editor-post-featured-image__media-modal",render:e=>{let{open:t}=e;return(0,r.createElement)(s.Button,{onClick:t,isSecondary:!0},(0,i.__)("Replace Thumbnail"))}})),!!p&&(0,r.createElement)(o.MediaUploadCheck,null,(0,r.createElement)(s.Button,{onClick:()=>e.setAttributes({[c]:"",[c+"_url"]:""}),isLink:!0,isDestructive:!0},(0,i.__)("Remove Thumbnail")))))}}));let c=!0;return n.main.push((0,r.createElement)(s.BaseControl,{key:"info",help:(0,i.__)("You can disable the extensive help texts on the ARVE settings page to clean up this UI","advanced-responsive-video-embedder")},(0,r.createElement)(s.BaseControl.VisualLabel,null,(0,i.__)("Info","advanced-responsive-video-embedder")))),Object.keys(n).forEach((e=>{var i;t.push((0,r.createElement)(s.PanelBody,{key:e,title:(i=e,i.charAt(0).toUpperCase()+i.slice(1)),initialOpen:c},n[e])),c=!1})),t}(e);return[(0,r.createElement)("div",t({},c,{key:"block"}),(0,r.createElement)("div",{className:"arve-select-helper",style:{textAlign:"center",padding:".1em"}},(0,i.__)("Select ARVE block","advanced-responsive-video-embedder")),(0,r.createElement)(l(),{block:"nextgenthemes/arve-block",attributes:e.attributes})),(0,r.createElement)(o.InspectorControls,{key:"insp"},d)]}})})();
changelog.md CHANGED
@@ -4,7 +4,11 @@
4
  * [ARVE Pro changelog](https://nextgenthemes.com/plugins/arve-pro/#changelog)
5
  * [ARVE Random Videos changelog](https://nextgenthemes.com/plugins/arve-random-video/#changelog)
6
 
7
- ### 2022-09-09 9.7.9 ###
 
 
 
 
8
 
9
  ##### Improvents Gutenberg Block #####
10
  * Introduces clickable area above the Block in the Editor.
4
  * [ARVE Pro changelog](https://nextgenthemes.com/plugins/arve-pro/#changelog)
5
  * [ARVE Random Videos changelog](https://nextgenthemes.com/plugins/arve-random-video/#changelog)
6
 
7
+ ### 2022-09-11 9.7.11 ###
8
+
9
+ * Fix: Block not registering.
10
+
11
+ ### 2022-09-09 9.7.10 ###
12
 
13
  ##### Improvents Gutenberg Block #####
14
  * Introduces clickable area above the Block in the Editor.
readme.txt CHANGED
@@ -5,7 +5,7 @@ Tags: YouTube, Vimeo, lazyload, thumbnail, video, responsive, embeds, video-embe
5
  Requires at least: 4.9.16
6
  Tested up to: 5.9.0
7
  Requires PHP: 5.6
8
- Stable tag: 9.7.10
9
  License: GPL-3.0
10
  License URI: https://www.gnu.org/licenses/gpl-3.0.html
11
 
@@ -150,13 +150,9 @@ When you use the AMP or 'AMP for WP' plugin you need this.
150
 
151
  Please report it on [nextgenthemes.com/support/](https://nextgenthemes.com/support/) **and please do not on the wordpess.org forums, thanks.**
152
 
153
- ### Google structured data tool complains about data missing ###
154
 
155
- You have 3 options:
156
-
157
- 1. Best option is to get [ARVE Pro](https://nextgenthemes.com/plugins/arve-pro/). It will fill all the SEO data needed without you having to do anything.
158
- 1. Manually fill the data needed via shortcode or Block. Note that filling the title will fill `name` in the SEO data.
159
- 1. You can completely disable the generation of SEO data on the ARVE settings page. This will make the error on SEO tools disappear but will not give you any SEO benefits.
160
 
161
  ### How to get the pro version working? ###
162
 
@@ -200,7 +196,11 @@ Please read the [official documentation](https://wordpress.org/support/article/m
200
  * [ARVE Pro changelog](https://nextgenthemes.com/plugins/arve-pro/#changelog)
201
  * [ARVE Random Videos changelog](https://nextgenthemes.com/plugins/arve-random-video/#changelog)
202
 
203
- ### 2022-09-09 9.7.9 ###
 
 
 
 
204
 
205
  ##### Improvents Gutenberg Block #####
206
  * Introduces clickable area above the Block in the Editor.
5
  Requires at least: 4.9.16
6
  Tested up to: 5.9.0
7
  Requires PHP: 5.6
8
+ Stable tag: 9.7.11
9
  License: GPL-3.0
10
  License URI: https://www.gnu.org/licenses/gpl-3.0.html
11
 
150
 
151
  Please report it on [nextgenthemes.com/support/](https://nextgenthemes.com/support/) **and please do not on the wordpess.org forums, thanks.**
152
 
153
+ ### I’m experiencing these errors on Google Search Console ###
154
 
155
+ Best option to resolve these errors is to get [ARVE Pro](https://nextgenthemes.com/plugins/arve-pro/) as it fills these in for you hassle free, only activate the addon - done. For more options please see the [detailed answer](https://nextgenthemes.com/plugins/arve/faq/).
 
 
 
 
156
 
157
  ### How to get the pro version working? ###
158
 
196
  * [ARVE Pro changelog](https://nextgenthemes.com/plugins/arve-pro/#changelog)
197
  * [ARVE Random Videos changelog](https://nextgenthemes.com/plugins/arve-random-video/#changelog)
198
 
199
+ ### 2022-09-11 9.7.11 ###
200
+
201
+ * Fix: Block not registering.
202
+
203
+ ### 2022-09-09 9.7.10 ###
204
 
205
  ##### Improvents Gutenberg Block #####
206
  * Introduces clickable area above the Block in the Editor.
src/admin-shortcode-creator.ts ADDED
@@ -0,0 +1,147 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import Vue from 'vue';
2
+
3
+ declare global {
4
+ interface Window {
5
+ wp;
6
+ arveSCSettings;
7
+ jQuery;
8
+ sui;
9
+ ajaxurl;
10
+ }
11
+ }
12
+
13
+ const $ = window.jQuery;
14
+ const data = window.arveSCSettings;
15
+ const settings = data.settings as Record< string, OptionProps >;
16
+ const sections = data.sections as Record< string, string >;
17
+
18
+ interface OptionProps {
19
+ label: string;
20
+ tag: string;
21
+ type: string;
22
+ default: number | string | boolean;
23
+ description?: string;
24
+ descriptionlink?: string;
25
+ descriptionlinktext?: string;
26
+ placeholder?: string;
27
+ options?;
28
+ }
29
+
30
+ export function initSC(): void {
31
+ $( '#arve-sc-dialog' ).dialog( {
32
+ title: 'ARVE Shortcode',
33
+ dialogClass: 'wp-dialog',
34
+ autoOpen: false,
35
+ draggable: true,
36
+ width: 900,
37
+ modal: true,
38
+ resizable: true,
39
+ closeOnEscape: true,
40
+ position: {
41
+ my: 'center',
42
+ at: 'center',
43
+ of: window,
44
+ },
45
+ open: () => {
46
+ // close dialog by clicking the overlay behind it
47
+ $( '.ui-widget-overlay' ).bind( 'click', function () {
48
+ $( '#arve-sc-dialog' ).dialog( 'close' );
49
+ } );
50
+ },
51
+ create: () => {
52
+ // style fix for WordPress admin
53
+ $( '.ui-dialog-titlebar-close' ).addClass( 'ui-button' );
54
+ $( '.ui-dialog-buttonset button:first' ).addClass(
55
+ 'button-primary'
56
+ );
57
+ },
58
+ buttons: {
59
+ 'Insert Shortcode'() {
60
+ $( this ).dialog( 'close' );
61
+ const text = $.trim( $( '#arve-shortcode' ).text() );
62
+ window.wp.media.editor.insert( text );
63
+ },
64
+ Cancel() {
65
+ $( this ).dialog( 'close' );
66
+ },
67
+ },
68
+ } );
69
+
70
+ $( document ).on( 'click', '#arve-btn', () => {
71
+ $( '#arve-sc-dialog' ).dialog( 'open' );
72
+ } );
73
+
74
+ const vueDiv = document.getElementById( 'arve-sc-vue' );
75
+
76
+ if ( vueDiv ) {
77
+ new Vue( {
78
+ // DOM selector for our app's main wrapper element
79
+ el: '#arve-sc-vue',
80
+
81
+ // Data that will be proxied by Vue.js to provide reactivity to our template
82
+ data: {
83
+ errors: [],
84
+ isSaving: false,
85
+ refreshAfterSave: false,
86
+ sectionsDisplayed: buildSectionsDisplayed(),
87
+ onlySectionDisplayed: false,
88
+ message: '',
89
+ vm: data.options,
90
+ },
91
+
92
+ // Methods that can be invoked from within our template
93
+ methods: {
94
+ showSection( section ) {
95
+ setAllObjValues( this.sectionsDisplayed, false );
96
+ this.sectionsDisplayed[ section ] = true;
97
+ this.onlySectionDisplayed = section;
98
+ },
99
+ showAllSectionsButDebug() {
100
+ setAllObjValues( this.sectionsDisplayed, true );
101
+ this.sectionsDisplayed.debug = false;
102
+ this.onlySectionDisplayed = false;
103
+ },
104
+ uploadImage( dataKey ) {
105
+ const vueThis = this;
106
+ const image = window.wp
107
+ .media( {
108
+ title: 'Upload Image',
109
+ multiple: false,
110
+ } )
111
+ .open()
112
+ .on( 'select', function () {
113
+ // This will return the selected image from the Media Uploader, the result is an object
114
+ const uploadedImage = image
115
+ .state()
116
+ .get( 'selection' )
117
+ .first();
118
+ // We convert uploadedImage to a JSON object to make accessing it easier
119
+ const attachmentID = uploadedImage.toJSON().id;
120
+ vueThis.vm[ dataKey ] = attachmentID;
121
+ } );
122
+ },
123
+ action( action, product ) {
124
+ this.vm.action = JSON.stringify( { action, product } );
125
+ this.refreshAfterSave = true;
126
+ this.saveOptions();
127
+ },
128
+ }, // end: methods
129
+ } ); // end: Vue()
130
+ }
131
+ }
132
+
133
+ function buildSectionsDisplayed() {
134
+ const sectionsDisplayed = {};
135
+
136
+ Object.keys( sections ).forEach( ( key ) => {
137
+ sectionsDisplayed[ key ] = 'debug' === key ? false : true;
138
+ } );
139
+
140
+ return sectionsDisplayed;
141
+ }
142
+
143
+ function setAllObjValues( obj, val ) {
144
+ Object.keys( obj ).forEach( ( index ) => {
145
+ obj[ index ] = val;
146
+ } );
147
+ }
src/admin.scss ADDED
@@ -0,0 +1,78 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* stylelint-disable declaration-no-important */
2
+ .arve-license-input {
3
+ width: 280px;
4
+ }
5
+
6
+ .arve-btn {
7
+ padding-left: 3px;
8
+ }
9
+
10
+ .arve-icon::before {
11
+ content: "\f236" !important; /* dashicon-video-alt */
12
+ }
13
+
14
+ .edit-shortcode-form-fields.shortcode-ui-edit-arve .field-block {
15
+ padding-top: .4em;
16
+ padding-bottom: .4em;
17
+ }
18
+
19
+ .edit-shortcode-form-fields.shortcode-ui-edit-arve .field-block label {
20
+ display: inline-block;
21
+ margin: 0;
22
+ }
23
+
24
+ .edit-shortcode-form-fields.shortcode-ui-edit-arve .field-block label:first-child {
25
+ width: 110px;
26
+ }
27
+
28
+ .edit-shortcode-form-fields.shortcode-ui-edit-arve {
29
+
30
+ .shortcode-ui-attribute-upload_date input,
31
+ .shortcode-ui-attribute-aspect_ratio input,
32
+ .shortcode-ui-attribute-url input,
33
+ .shortcode-ui-attribute-title input,
34
+ .shortcode-ui-attribute-description input {
35
+ width: 700px;
36
+ }
37
+ }
38
+
39
+ .arve-list-small {
40
+ padding-left: 20px;
41
+ font-size: .85em;
42
+ list-style: square;
43
+ }
44
+
45
+ .arve-list-small li {
46
+ margin-bottom: 2px;
47
+ }
48
+
49
+ .arve-settings-page-ad {
50
+ padding-right: .7rem !important;
51
+ margin: 0;
52
+ }
53
+
54
+ .arve-corner-spacer {
55
+ float: right;
56
+ width: 20px;
57
+ height: 38px;
58
+ }
59
+
60
+ @media all and (min-width: 1400px) {
61
+
62
+ .arve-settings-page-ad {
63
+ position: absolute !important;
64
+ right: 0;
65
+ width: 320px;
66
+ }
67
+
68
+ .arve-options-wrap {
69
+ position: relative;
70
+ padding-right: 350px;
71
+ }
72
+ }
73
+
74
+ #arve-shortcode {
75
+ margin-top: 1em;
76
+ font-size: 1.2em;
77
+ line-height: 1.2;
78
+ }
src/admin.ts ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import './admin.scss';
2
+ import { initSC } from './admin-shortcode-creator';
3
+
4
+ export {};
5
+ declare global {
6
+ interface Window {
7
+ wp;
8
+ jQuery;
9
+ sui;
10
+ ajaxurl;
11
+ }
12
+ }
13
+
14
+ window.jQuery( document ).ready( function ( $ ) {
15
+ $( '.notice.is-dismissible' ).on(
16
+ 'click',
17
+ '.notice-dismiss',
18
+ function ( event ) {
19
+ event.preventDefault();
20
+ const $this = $( this );
21
+ if ( 'undefined' == $this.parent().attr( 'id' ) ) {
22
+ return;
23
+ }
24
+ $.post( window.ajaxurl, {
25
+ action: 'dnh_dismiss_notice',
26
+ url: window.ajaxurl,
27
+ id: $this.parent().attr( 'id' ),
28
+ } );
29
+ }
30
+ );
31
+ } );
32
+
33
+ initSC();
src/block.json ADDED
@@ -0,0 +1,128 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "$schema": "https://schemas.wp.org/trunk/block.json",
3
+ "apiVersion": 2,
4
+ "name": "nextgenthemes/arve-block",
5
+ "title": "Video Embed (ARVE)",
6
+ "category": "embed",
7
+ "icon": "video-alt3",
8
+ "description": "Advanced Responsive Video Embedder",
9
+ "keywords": [
10
+ "embed",
11
+ "youtube",
12
+ "rumble",
13
+ "vimeo",
14
+ "odysee"
15
+ ],
16
+ "version": "9.7.11",
17
+ "textdomain": "advanced-responsive-video-embedder",
18
+ "supports": {
19
+ "align": [
20
+ "wide",
21
+ "full"
22
+ ]
23
+ },
24
+ "styles": [],
25
+ "example": {
26
+ "attributes": {
27
+ "url": "https://www.youtube.com/watch?v=oe452WcY7fA",
28
+ "title": "Example Title"
29
+ }
30
+ },
31
+ "editorScript": "arve-block",
32
+ "editorStyle": "arve",
33
+ "attributes": {
34
+ "url": {
35
+ "type": "string"
36
+ },
37
+ "title": {
38
+ "type": "string"
39
+ },
40
+ "description": {
41
+ "type": "string"
42
+ },
43
+ "upload_date": {
44
+ "type": "string"
45
+ },
46
+ "mode": {
47
+ "type": "string"
48
+ },
49
+ "thumbnail": {
50
+ "type": "string"
51
+ },
52
+ "hide_title": {
53
+ "type": "boolean"
54
+ },
55
+ "grow": {
56
+ "type": "string"
57
+ },
58
+ "fullscreen": {
59
+ "type": "string"
60
+ },
61
+ "play_icon_style": {
62
+ "type": "string"
63
+ },
64
+ "hover_effect": {
65
+ "type": "string"
66
+ },
67
+ "disable_links": {
68
+ "type": "string"
69
+ },
70
+ "align": {
71
+ "type": "string"
72
+ },
73
+ "arve_link": {
74
+ "type": "string"
75
+ },
76
+ "duration": {
77
+ "type": "string"
78
+ },
79
+ "autoplay": {
80
+ "type": "string"
81
+ },
82
+ "lightbox_maxwidth": {
83
+ "type": "integer"
84
+ },
85
+ "sticky": {
86
+ "type": "string"
87
+ },
88
+ "sticky_on_mobile": {
89
+ "type": "string"
90
+ },
91
+ "sticky_position": {
92
+ "type": "string"
93
+ },
94
+ "aspect_ratio": {
95
+ "type": "string"
96
+ },
97
+ "parameters": {
98
+ "type": "string"
99
+ },
100
+ "controlslist": {
101
+ "type": "string"
102
+ },
103
+ "controls": {
104
+ "type": "string"
105
+ },
106
+ "loop": {
107
+ "type": "boolean"
108
+ },
109
+ "muted": {
110
+ "type": "boolean"
111
+ },
112
+ "volume": {
113
+ "type": "integer"
114
+ },
115
+ "random_video_url": {
116
+ "type": "string"
117
+ },
118
+ "random_video_urls": {
119
+ "type": "string"
120
+ },
121
+ "sandbox": {
122
+ "type": "string"
123
+ },
124
+ "thumbnail_url": {
125
+ "type": "string"
126
+ }
127
+ }
128
+ }
src/block.tsx ADDED
@@ -0,0 +1,410 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * Copyright 2019-2022 Nicolas Jonas
3
+ * License: GPL 3.0
4
+ *
5
+ * Based on: https://gist.github.com/pento/cf38fd73ce0f13fcf0f0ae7d6c4b685d
6
+ * Copyright 2019 Gary Pendergast
7
+ * License: GPL 2.0+
8
+ */
9
+ import json from './block.json';
10
+ import { __ } from '@wordpress/i18n';
11
+ import ServerSideRender from '@wordpress/server-side-render';
12
+ import { createElement, Fragment } from '@wordpress/element';
13
+ import {
14
+ MediaUpload,
15
+ MediaUploadCheck,
16
+ InspectorControls,
17
+ useBlockProps,
18
+ } from '@wordpress/block-editor';
19
+ import {
20
+ BaseControl,
21
+ TextControl,
22
+ Button,
23
+ ToggleControl,
24
+ SelectControl,
25
+ PanelBody,
26
+ ResponsiveWrapper,
27
+ DropZone,
28
+ } from '@wordpress/components';
29
+ import { registerBlockType } from '@wordpress/blocks';
30
+
31
+ export {};
32
+ declare global {
33
+ interface Window {
34
+ ARVEsettings: Record< string, OptionProps >;
35
+ }
36
+ }
37
+
38
+ const { name } = json;
39
+ const settings = window.ARVEsettings;
40
+ const domParser = new DOMParser();
41
+
42
+ /*
43
+ * Keypair to gutenberg component
44
+ */
45
+ function PrepareSelectOptions( options: OptionProps ) {
46
+ const gboptions = [] as Array< SelectOption >;
47
+
48
+ Object.entries( options ).forEach( ( [ key, value ] ) => {
49
+ const o: SelectOption = {
50
+ label: value,
51
+ value: key,
52
+ };
53
+
54
+ gboptions.push( o );
55
+ } );
56
+
57
+ return gboptions;
58
+ }
59
+
60
+ interface SelectOption {
61
+ label: string;
62
+ value: string;
63
+ disabled?: boolean;
64
+ }
65
+
66
+ interface OptionProps {
67
+ label: string;
68
+ tag: string;
69
+ type: string;
70
+ description?: string;
71
+ descriptionlink?: string;
72
+ descriptionlinktext?: string;
73
+ placeholder?: string;
74
+ options?;
75
+ }
76
+
77
+ function maybeSetAspectRatio( key: string, value: string, props ) {
78
+ if ( 'url' === key ) {
79
+ const iframe = domParser
80
+ .parseFromString( value, 'text/html' )
81
+ .querySelector( 'iframe' );
82
+ if ( iframe && iframe.getAttribute( 'src' ) ) {
83
+ value = iframe.src;
84
+ const w = iframe.width;
85
+ const h = iframe.height;
86
+ if ( w && h ) {
87
+ props.setAttributes( {
88
+ aspect_ratio: aspectRatio( w, h ),
89
+ } );
90
+ }
91
+ }
92
+ }
93
+ }
94
+
95
+ function BuildControls( props ) {
96
+ const controls = [] as Array< JSX.Element >;
97
+ const sectionControls = {};
98
+ const mediaUploadInstructions = (
99
+ <p>
100
+ { __(
101
+ 'To edit the featured image, you need permission to upload media.'
102
+ ) }
103
+ </p>
104
+ );
105
+ let selectedMedia = false as any;
106
+
107
+ Object.values( settings ).forEach( ( option: OptionProps ) => {
108
+ sectionControls[ option.tag ] = [];
109
+ } );
110
+
111
+ Object.entries( settings ).forEach(
112
+ ( [ key, option ]: [ string, OptionProps ] ) => {
113
+ let val = props.attributes[ key ];
114
+ let url = '';
115
+
116
+ switch ( option.type ) {
117
+ case 'boolean':
118
+ if ( 'sandbox' === key && typeof val === 'undefined' ) {
119
+ val = true;
120
+ }
121
+ sectionControls[ option.tag ].push(
122
+ <ToggleControl
123
+ key={ key }
124
+ label={ option.label }
125
+ help={ createHelp( option ) }
126
+ checked={ !! val }
127
+ onChange={ ( value ) => {
128
+ return props.setAttributes( {
129
+ [ key ]: value,
130
+ } );
131
+ } }
132
+ />
133
+ );
134
+
135
+ break;
136
+ case 'select':
137
+ sectionControls[ option.tag ].push(
138
+ <SelectControl
139
+ key={ key }
140
+ value={ val }
141
+ label={ option.label }
142
+ help={ createHelp( option ) }
143
+ options={ PrepareSelectOptions( option.options ) }
144
+ onChange={ ( value ) => {
145
+ return props.setAttributes( {
146
+ [ key ]: value,
147
+ } );
148
+ } }
149
+ />
150
+ );
151
+ break;
152
+ case 'string':
153
+ sectionControls[ option.tag ].push(
154
+ <TextControl
155
+ key={ key }
156
+ label={ option.label }
157
+ placeholder={ option.placeholder }
158
+ help={ createHelp( option ) }
159
+ value={ val }
160
+ onChange={ ( value ) => {
161
+ maybeSetAspectRatio( key, value, props );
162
+ return props.setAttributes( {
163
+ [ key ]: value,
164
+ } );
165
+ } }
166
+ />
167
+ );
168
+ break;
169
+ case 'attachment':
170
+ url = props.attributes[ key + '_url' ];
171
+
172
+ sectionControls[ option.tag ].push(
173
+ <BaseControl
174
+ className="editor-post-featured-image"
175
+ help={ createHelp( option ) }
176
+ key={ key }
177
+ >
178
+ <MediaUploadCheck
179
+ fallback={ mediaUploadInstructions }
180
+ >
181
+ <MediaUpload
182
+ title={ __( 'Thumbnail' ) }
183
+ onSelect={ ( media ) => {
184
+ selectedMedia = media;
185
+ return props.setAttributes( {
186
+ [ key ]: media.id.toString(),
187
+ [ key + '_url' ]: media.url,
188
+ } );
189
+ } }
190
+ unstableFeaturedImageFlow
191
+ allowedTypes={ [ 'image' ] }
192
+ modalClass="editor-post-featured-image__media-modal"
193
+ render={ ( { open } ) => (
194
+ <div className="editor-post-featured-image__container">
195
+ <Button
196
+ className={
197
+ ! val
198
+ ? 'editor-post-featured-image__toggle'
199
+ : 'editor-post-featured-image__preview'
200
+ }
201
+ onClick={ open }
202
+ aria-label={
203
+ ! val
204
+ ? null
205
+ : __(
206
+ 'Edit or update the image'
207
+ )
208
+ }
209
+ aria-describedby={
210
+ ! val
211
+ ? ''
212
+ : `editor-post-featured-image-${ val }-describedby`
213
+ }
214
+ >
215
+ { !! val && !! url && (
216
+ <div
217
+ style={ {
218
+ overflow: 'hidden',
219
+ } }
220
+ >
221
+ <ResponsiveWrapper
222
+ naturalWidth={ 640 }
223
+ naturalHeight={
224
+ 360
225
+ }
226
+ isInline
227
+ >
228
+ <img
229
+ src={ url }
230
+ alt="ARVE Thumbnail"
231
+ style={ {
232
+ objectFit:
233
+ 'cover',
234
+ } }
235
+ />
236
+ </ResponsiveWrapper>
237
+ </div>
238
+ ) }
239
+ { ! val &&
240
+ __( 'Set Thumbnail' ) }
241
+ </Button>
242
+ <DropZone />
243
+ </div>
244
+ ) }
245
+ value={ val }
246
+ />
247
+ </MediaUploadCheck>
248
+ { !! val && !! url && (
249
+ <MediaUploadCheck>
250
+ <MediaUpload
251
+ title={ __( 'Thumbnail' ) }
252
+ onSelect={ ( media ) => {
253
+ selectedMedia = media;
254
+ return props.setAttributes( {
255
+ [ key ]: media.id.toString(),
256
+ [ key + '_url' ]: media.url,
257
+ } );
258
+ } }
259
+ unstableFeaturedImageFlow
260
+ allowedTypes={ [ 'image' ] }
261
+ modalClass="editor-post-featured-image__media-modal"
262
+ render={ ( { open } ) => (
263
+ <Button
264
+ onClick={ open }
265
+ isSecondary
266
+ >
267
+ { __( 'Replace Thumbnail' ) }
268
+ </Button>
269
+ ) }
270
+ />
271
+ </MediaUploadCheck>
272
+ ) }
273
+ { !! val && (
274
+ <MediaUploadCheck>
275
+ <Button
276
+ onClick={ () => {
277
+ return props.setAttributes( {
278
+ [ key ]: '',
279
+ [ key + '_url' ]: '',
280
+ } );
281
+ } }
282
+ isLink
283
+ isDestructive
284
+ >
285
+ { __( 'Remove Thumbnail' ) }
286
+ </Button>
287
+ </MediaUploadCheck>
288
+ ) }
289
+ </BaseControl>
290
+ );
291
+ break;
292
+ }
293
+ }
294
+ );
295
+
296
+ let open = true;
297
+
298
+ sectionControls.main.push(
299
+ <BaseControl
300
+ key={ 'info' }
301
+ help={ __(
302
+ 'You can disable the extensive help texts on the ARVE settings page to clean up this UI',
303
+ 'advanced-responsive-video-embedder'
304
+ ) }
305
+ >
306
+ <BaseControl.VisualLabel>
307
+ { __( 'Info', 'advanced-responsive-video-embedder' ) }
308
+ </BaseControl.VisualLabel>
309
+ </BaseControl>
310
+ );
311
+
312
+ Object.keys( sectionControls ).forEach( ( key ) => {
313
+ controls.push(
314
+ <PanelBody
315
+ key={ key }
316
+ title={ capitalizeFirstLetter( key ) }
317
+ initialOpen={ open }
318
+ >
319
+ { sectionControls[ key ] }
320
+ </PanelBody>
321
+ );
322
+ open = false;
323
+ } );
324
+
325
+ return controls;
326
+ }
327
+
328
+ function createHelp( option: OptionProps ) {
329
+ if ( typeof option.description !== 'string' ) {
330
+ return '';
331
+ }
332
+
333
+ if ( typeof option.descriptionlinktext === 'string' ) {
334
+ const textSplit = option.description.split(
335
+ option.descriptionlinktext
336
+ );
337
+
338
+ return (
339
+ <span>
340
+ <span>{ textSplit[ 0 ] }</span>
341
+ <a href={ option.descriptionlink }>
342
+ { option.descriptionlinktext }
343
+ </a>
344
+ ,<span>{ textSplit[ 1 ] }</span>
345
+ </span>
346
+ );
347
+ }
348
+ return option.description;
349
+ }
350
+
351
+ function capitalizeFirstLetter( string ) {
352
+ return string.charAt( 0 ).toUpperCase() + string.slice( 1 );
353
+ }
354
+
355
+ function Edit( props ) {
356
+ const {
357
+ attributes: { align },
358
+ setAttributes,
359
+ } = props;
360
+
361
+ const blockProps = useBlockProps();
362
+ const controls = BuildControls( props );
363
+
364
+ return [
365
+ <div { ...blockProps } key="block">
366
+ <div
367
+ className="arve-select-helper"
368
+ style={ { textAlign: 'center', padding: '.1em' } }
369
+ >
370
+ { __(
371
+ 'Select ARVE block',
372
+ 'advanced-responsive-video-embedder'
373
+ ) }
374
+ </div>
375
+ <ServerSideRender
376
+ block="nextgenthemes/arve-block"
377
+ attributes={ props.attributes }
378
+ />
379
+ </div>,
380
+ <InspectorControls key="insp">{ controls }</InspectorControls>,
381
+ ];
382
+ };
383
+
384
+ registerBlockType( name, {
385
+ edit: Edit,
386
+ } );
387
+
388
+ function aspectRatio( w, h ) {
389
+ const arGCD = gcd( w, h );
390
+
391
+ return w / arGCD + ':' + h / arGCD;
392
+ }
393
+
394
+ function gcd( a, b ) {
395
+ if ( ! b ) {
396
+ return a;
397
+ }
398
+
399
+ return gcd( b, a % b );
400
+ }
401
+
402
+ /*
403
+ wp.data.dispatch( 'core/edit-post' ).hideBlockTypes( [
404
+ 'core-embed/youtube',
405
+ 'core-embed/vimeo',
406
+ 'core-embed/dailymotion',
407
+ 'core-embed/collegehumor',
408
+ 'core-embed/ted',
409
+ ] );
410
+ */
src/img/arve.svg ADDED
@@ -0,0 +1,1534 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <!-- Generator: Adobe Illustrator 17.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
3
+ <svg
4
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
5
+ xmlns:cc="http://creativecommons.org/ns#"
6
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
7
+ xmlns:svg="http://www.w3.org/2000/svg"
8
+ xmlns="http://www.w3.org/2000/svg"
9
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
10
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
11
+ version="1.1"
12
+ id="Layer_1"
13
+ x="0px"
14
+ y="0px"
15
+ width="485.41898"
16
+ height="94.260002"
17
+ viewBox="0 0 485.41898 94.260002"
18
+ enable-background="new 0 0 1600 1200"
19
+ xml:space="preserve"
20
+ sodipodi:docname="arve.svg"
21
+ inkscape:version="0.92.1 unknown">
22
+ <metadata
23
+ id="metadata136">
24
+ <rdf:RDF>
25
+ <cc:Work
26
+ rdf:about="">
27
+ <dc:format>image/svg+xml</dc:format>
28
+ <dc:type
29
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
30
+ <dc:title></dc:title>
31
+ </cc:Work>
32
+ </rdf:RDF>
33
+ </metadata>
34
+ <defs
35
+ id="defs134">
36
+ <filter
37
+ style="color-interpolation-filters: sRGB;"
38
+ inkscape:label="Colorize"
39
+ id="filter32776">
40
+ <feComposite
41
+ in2="SourceGraphic"
42
+ operator="arithmetic"
43
+ k1="0"
44
+ k2="1.92513"
45
+ result="composite1"
46
+ id="feComposite32762" />
47
+ <feColorMatrix
48
+ in="composite1"
49
+ values="1"
50
+ type="saturate"
51
+ result="colormatrix1"
52
+ id="feColorMatrix32764" />
53
+ <feFlood
54
+ flood-opacity="1"
55
+ flood-color="rgb(255,255,255)"
56
+ result="flood1"
57
+ id="feFlood32766" />
58
+ <feBlend
59
+ in="flood1"
60
+ in2="colormatrix1"
61
+ mode="normal"
62
+ result="blend1"
63
+ id="feBlend32768" />
64
+ <feBlend
65
+ in2="blend1"
66
+ mode="screen"
67
+ result="blend2"
68
+ id="feBlend32770" />
69
+ <feColorMatrix
70
+ in="blend2"
71
+ values="1"
72
+ type="saturate"
73
+ result="colormatrix2"
74
+ id="feColorMatrix32772" />
75
+ <feComposite
76
+ in="colormatrix2"
77
+ in2="SourceGraphic"
78
+ operator="in"
79
+ k2="1"
80
+ result="composite2"
81
+ id="feComposite32774" />
82
+ </filter>
83
+ <filter
84
+ style="color-interpolation-filters: sRGB;"
85
+ inkscape:label="Colorize"
86
+ id="filter32792">
87
+ <feComposite
88
+ in2="SourceGraphic"
89
+ operator="arithmetic"
90
+ k1="0"
91
+ k2="1.92513"
92
+ result="composite1"
93
+ id="feComposite32778" />
94
+ <feColorMatrix
95
+ in="composite1"
96
+ values="1"
97
+ type="saturate"
98
+ result="colormatrix1"
99
+ id="feColorMatrix32780" />
100
+ <feFlood
101
+ flood-opacity="1"
102
+ flood-color="rgb(255,255,255)"
103
+ result="flood1"
104
+ id="feFlood32782" />
105
+ <feBlend
106
+ in="flood1"
107
+ in2="colormatrix1"
108
+ mode="normal"
109
+ result="blend1"
110
+ id="feBlend32784" />
111
+ <feBlend
112
+ in2="blend1"
113
+ mode="screen"
114
+ result="blend2"
115
+ id="feBlend32786" />
116
+ <feColorMatrix
117
+ in="blend2"
118
+ values="1"
119
+ type="saturate"
120
+ result="colormatrix2"
121
+ id="feColorMatrix32788" />
122
+ <feComposite
123
+ in="colormatrix2"
124
+ in2="SourceGraphic"
125
+ operator="in"
126
+ k2="1"
127
+ result="composite2"
128
+ id="feComposite32790" />
129
+ </filter>
130
+ <filter
131
+ style="color-interpolation-filters: sRGB;"
132
+ inkscape:label="Colorize"
133
+ id="filter32808">
134
+ <feComposite
135
+ in2="SourceGraphic"
136
+ operator="arithmetic"
137
+ k1="0"
138
+ k2="1.92513"
139
+ result="composite1"
140
+ id="feComposite32794" />
141
+ <feColorMatrix
142
+ in="composite1"
143
+ values="1"
144
+ type="saturate"
145
+ result="colormatrix1"
146
+ id="feColorMatrix32796" />
147
+ <feFlood
148
+ flood-opacity="1"
149
+ flood-color="rgb(255,255,255)"
150
+ result="flood1"
151
+ id="feFlood32798" />
152
+ <feBlend
153
+ in="flood1"
154
+ in2="colormatrix1"
155
+ mode="normal"
156
+ result="blend1"
157
+ id="feBlend32800" />
158
+ <feBlend
159
+ in2="blend1"
160
+ mode="screen"
161
+ result="blend2"
162
+ id="feBlend32802" />
163
+ <feColorMatrix
164
+ in="blend2"
165
+ values="1"
166
+ type="saturate"
167
+ result="colormatrix2"
168
+ id="feColorMatrix32804" />
169
+ <feComposite
170
+ in="colormatrix2"
171
+ in2="SourceGraphic"
172
+ operator="in"
173
+ k2="1"
174
+ result="composite2"
175
+ id="feComposite32806" />
176
+ </filter>
177
+ <filter
178
+ style="color-interpolation-filters: sRGB;"
179
+ inkscape:label="Colorize"
180
+ id="filter32824">
181
+ <feComposite
182
+ in2="SourceGraphic"
183
+ operator="arithmetic"
184
+ k1="0"
185
+ k2="1.92513"
186
+ result="composite1"
187
+ id="feComposite32810" />
188
+ <feColorMatrix
189
+ in="composite1"
190
+ values="1"
191
+ type="saturate"
192
+ result="colormatrix1"
193
+ id="feColorMatrix32812" />
194
+ <feFlood
195
+ flood-opacity="1"
196
+ flood-color="rgb(255,255,255)"
197
+ result="flood1"
198
+ id="feFlood32814" />
199
+ <feBlend
200
+ in="flood1"
201
+ in2="colormatrix1"
202
+ mode="normal"
203
+ result="blend1"
204
+ id="feBlend32816" />
205
+ <feBlend
206
+ in2="blend1"
207
+ mode="screen"
208
+ result="blend2"
209
+ id="feBlend32818" />
210
+ <feColorMatrix
211
+ in="blend2"
212
+ values="1"
213
+ type="saturate"
214
+ result="colormatrix2"
215
+ id="feColorMatrix32820" />
216
+ <feComposite
217
+ in="colormatrix2"
218
+ in2="SourceGraphic"
219
+ operator="in"
220
+ k2="1"
221
+ result="composite2"
222
+ id="feComposite32822" />
223
+ </filter>
224
+ <filter
225
+ style="color-interpolation-filters: sRGB;"
226
+ inkscape:label="Colorize"
227
+ id="filter32840">
228
+ <feComposite
229
+ in2="SourceGraphic"
230
+ operator="arithmetic"
231
+ k1="0"
232
+ k2="1.92513"
233
+ result="composite1"
234
+ id="feComposite32826" />
235
+ <feColorMatrix
236
+ in="composite1"
237
+ values="1"
238
+ type="saturate"
239
+ result="colormatrix1"
240
+ id="feColorMatrix32828" />
241
+ <feFlood
242
+ flood-opacity="1"
243
+ flood-color="rgb(255,255,255)"
244
+ result="flood1"
245
+ id="feFlood32830" />
246
+ <feBlend
247
+ in="flood1"
248
+ in2="colormatrix1"
249
+ mode="normal"
250
+ result="blend1"
251
+ id="feBlend32832" />
252
+ <feBlend
253
+ in2="blend1"
254
+ mode="screen"
255
+ result="blend2"
256
+ id="feBlend32834" />
257
+ <feColorMatrix
258
+ in="blend2"
259
+ values="1"
260
+ type="saturate"
261
+ result="colormatrix2"
262
+ id="feColorMatrix32836" />
263
+ <feComposite
264
+ in="colormatrix2"
265
+ in2="SourceGraphic"
266
+ operator="in"
267
+ k2="1"
268
+ result="composite2"
269
+ id="feComposite32838" />
270
+ </filter>
271
+ <filter
272
+ style="color-interpolation-filters: sRGB;"
273
+ inkscape:label="Colorize"
274
+ id="filter32856">
275
+ <feComposite
276
+ in2="SourceGraphic"
277
+ operator="arithmetic"
278
+ k1="0"
279
+ k2="1.92513"
280
+ result="composite1"
281
+ id="feComposite32842" />
282
+ <feColorMatrix
283
+ in="composite1"
284
+ values="1"
285
+ type="saturate"
286
+ result="colormatrix1"
287
+ id="feColorMatrix32844" />
288
+ <feFlood
289
+ flood-opacity="1"
290
+ flood-color="rgb(255,255,255)"
291
+ result="flood1"
292
+ id="feFlood32846" />
293
+ <feBlend
294
+ in="flood1"
295
+ in2="colormatrix1"
296
+ mode="normal"
297
+ result="blend1"
298
+ id="feBlend32848" />
299
+ <feBlend
300
+ in2="blend1"
301
+ mode="screen"
302
+ result="blend2"
303
+ id="feBlend32850" />
304
+ <feColorMatrix
305
+ in="blend2"
306
+ values="1"
307
+ type="saturate"
308
+ result="colormatrix2"
309
+ id="feColorMatrix32852" />
310
+ <feComposite
311
+ in="colormatrix2"
312
+ in2="SourceGraphic"
313
+ operator="in"
314
+ k2="1"
315
+ result="composite2"
316
+ id="feComposite32854" />
317
+ </filter>
318
+ <filter
319
+ style="color-interpolation-filters: sRGB;"
320
+ inkscape:label="Colorize"
321
+ id="filter32872">
322
+ <feComposite
323
+ in2="SourceGraphic"
324
+ operator="arithmetic"
325
+ k1="0"
326
+ k2="1.92513"
327
+ result="composite1"
328
+ id="feComposite32858" />
329
+ <feColorMatrix
330
+ in="composite1"
331
+ values="1"
332
+ type="saturate"
333
+ result="colormatrix1"
334
+ id="feColorMatrix32860" />
335
+ <feFlood
336
+ flood-opacity="1"
337
+ flood-color="rgb(255,255,255)"
338
+ result="flood1"
339
+ id="feFlood32862" />
340
+ <feBlend
341
+ in="flood1"
342
+ in2="colormatrix1"
343
+ mode="normal"
344
+ result="blend1"
345
+ id="feBlend32864" />
346
+ <feBlend
347
+ in2="blend1"
348
+ mode="screen"
349
+ result="blend2"
350
+ id="feBlend32866" />
351
+ <feColorMatrix
352
+ in="blend2"
353
+ values="1"
354
+ type="saturate"
355
+ result="colormatrix2"
356
+ id="feColorMatrix32868" />
357
+ <feComposite
358
+ in="colormatrix2"
359
+ in2="SourceGraphic"
360
+ operator="in"
361
+ k2="1"
362
+ result="composite2"
363
+ id="feComposite32870" />
364
+ </filter>
365
+ <filter
366
+ style="color-interpolation-filters: sRGB;"
367
+ inkscape:label="Colorize"
368
+ id="filter32888">
369
+ <feComposite
370
+ in2="SourceGraphic"
371
+ operator="arithmetic"
372
+ k1="0"
373
+ k2="1.92513"
374
+ result="composite1"
375
+ id="feComposite32874" />
376
+ <feColorMatrix
377
+ in="composite1"
378
+ values="1"
379
+ type="saturate"
380
+ result="colormatrix1"
381
+ id="feColorMatrix32876" />
382
+ <feFlood
383
+ flood-opacity="1"
384
+ flood-color="rgb(255,255,255)"
385
+ result="flood1"
386
+ id="feFlood32878" />
387
+ <feBlend
388
+ in="flood1"
389
+ in2="colormatrix1"
390
+ mode="normal"
391
+ result="blend1"
392
+ id="feBlend32880" />
393
+ <feBlend
394
+ in2="blend1"
395
+ mode="screen"
396
+ result="blend2"
397
+ id="feBlend32882" />
398
+ <feColorMatrix
399
+ in="blend2"
400
+ values="1"
401
+ type="saturate"
402
+ result="colormatrix2"
403
+ id="feColorMatrix32884" />
404
+ <feComposite
405
+ in="colormatrix2"
406
+ in2="SourceGraphic"
407
+ operator="in"
408
+ k2="1"
409
+ result="composite2"
410
+ id="feComposite32886" />
411
+ </filter>
412
+ <filter
413
+ style="color-interpolation-filters: sRGB;"
414
+ inkscape:label="Colorize"
415
+ id="filter32904">
416
+ <feComposite
417
+ in2="SourceGraphic"
418
+ operator="arithmetic"
419
+ k1="0"
420
+ k2="1.92513"
421
+ result="composite1"
422
+ id="feComposite32890" />
423
+ <feColorMatrix
424
+ in="composite1"
425
+ values="1"
426
+ type="saturate"
427
+ result="colormatrix1"
428
+ id="feColorMatrix32892" />
429
+ <feFlood
430
+ flood-opacity="1"
431
+ flood-color="rgb(255,255,255)"
432
+ result="flood1"
433
+ id="feFlood32894" />
434
+ <feBlend
435
+ in="flood1"
436
+ in2="colormatrix1"
437
+ mode="normal"
438
+ result="blend1"
439
+ id="feBlend32896" />
440
+ <feBlend
441
+ in2="blend1"
442
+ mode="screen"
443
+ result="blend2"
444
+ id="feBlend32898" />
445
+ <feColorMatrix
446
+ in="blend2"
447
+ values="1"
448
+ type="saturate"
449
+ result="colormatrix2"
450
+ id="feColorMatrix32900" />
451
+ <feComposite
452
+ in="colormatrix2"
453
+ in2="SourceGraphic"
454
+ operator="in"
455
+ k2="1"
456
+ result="composite2"
457
+ id="feComposite32902" />
458
+ </filter>
459
+ <filter
460
+ style="color-interpolation-filters: sRGB;"
461
+ inkscape:label="Colorize"
462
+ id="filter32920">
463
+ <feComposite
464
+ in2="SourceGraphic"
465
+ operator="arithmetic"
466
+ k1="0"
467
+ k2="1.92513"
468
+ result="composite1"
469
+ id="feComposite32906" />
470
+ <feColorMatrix
471
+ in="composite1"
472
+ values="1"
473
+ type="saturate"
474
+ result="colormatrix1"
475
+ id="feColorMatrix32908" />
476
+ <feFlood
477
+ flood-opacity="1"
478
+ flood-color="rgb(255,255,255)"
479
+ result="flood1"
480
+ id="feFlood32910" />
481
+ <feBlend
482
+ in="flood1"
483
+ in2="colormatrix1"
484
+ mode="normal"
485
+ result="blend1"
486
+ id="feBlend32912" />
487
+ <feBlend
488
+ in2="blend1"
489
+ mode="screen"
490
+ result="blend2"
491
+ id="feBlend32914" />
492
+ <feColorMatrix
493
+ in="blend2"
494
+ values="1"
495
+ type="saturate"
496
+ result="colormatrix2"
497
+ id="feColorMatrix32916" />
498
+ <feComposite
499
+ in="colormatrix2"
500
+ in2="SourceGraphic"
501
+ operator="in"
502
+ k2="1"
503
+ result="composite2"
504
+ id="feComposite32918" />
505
+ </filter>
506
+ <filter
507
+ style="color-interpolation-filters: sRGB;"
508
+ inkscape:label="Colorize"
509
+ id="filter32936">
510
+ <feComposite
511
+ in2="SourceGraphic"
512
+ operator="arithmetic"
513
+ k1="0"
514
+ k2="1.92513"
515
+ result="composite1"
516
+ id="feComposite32922" />
517
+ <feColorMatrix
518
+ in="composite1"
519
+ values="1"
520
+ type="saturate"
521
+ result="colormatrix1"
522
+ id="feColorMatrix32924" />
523
+ <feFlood
524
+ flood-opacity="1"
525
+ flood-color="rgb(255,255,255)"
526
+ result="flood1"
527
+ id="feFlood32926" />
528
+ <feBlend
529
+ in="flood1"
530
+ in2="colormatrix1"
531
+ mode="normal"
532
+ result="blend1"
533
+ id="feBlend32928" />
534
+ <feBlend
535
+ in2="blend1"
536
+ mode="screen"
537
+ result="blend2"
538
+ id="feBlend32930" />
539
+ <feColorMatrix
540
+ in="blend2"
541
+ values="1"
542
+ type="saturate"
543
+ result="colormatrix2"
544
+ id="feColorMatrix32932" />
545
+ <feComposite
546
+ in="colormatrix2"
547
+ in2="SourceGraphic"
548
+ operator="in"
549
+ k2="1"
550
+ result="composite2"
551
+ id="feComposite32934" />
552
+ </filter>
553
+ <filter
554
+ style="color-interpolation-filters: sRGB;"
555
+ inkscape:label="Colorize"
556
+ id="filter32952">
557
+ <feComposite
558
+ in2="SourceGraphic"
559
+ operator="arithmetic"
560
+ k1="0"
561
+ k2="1.92513"
562
+ result="composite1"
563
+ id="feComposite32938" />
564
+ <feColorMatrix
565
+ in="composite1"
566
+ values="1"
567
+ type="saturate"
568
+ result="colormatrix1"
569
+ id="feColorMatrix32940" />
570
+ <feFlood
571
+ flood-opacity="1"
572
+ flood-color="rgb(255,255,255)"
573
+ result="flood1"
574
+ id="feFlood32942" />
575
+ <feBlend
576
+ in="flood1"
577
+ in2="colormatrix1"
578
+ mode="normal"
579
+ result="blend1"
580
+ id="feBlend32944" />
581
+ <feBlend
582
+ in2="blend1"
583
+ mode="screen"
584
+ result="blend2"
585
+ id="feBlend32946" />
586
+ <feColorMatrix
587
+ in="blend2"
588
+ values="1"
589
+ type="saturate"
590
+ result="colormatrix2"
591
+ id="feColorMatrix32948" />
592
+ <feComposite
593
+ in="colormatrix2"
594
+ in2="SourceGraphic"
595
+ operator="in"
596
+ k2="1"
597
+ result="composite2"
598
+ id="feComposite32950" />
599
+ </filter>
600
+ <filter
601
+ style="color-interpolation-filters: sRGB;"
602
+ inkscape:label="Colorize"
603
+ id="filter32968">
604
+ <feComposite
605
+ in2="SourceGraphic"
606
+ operator="arithmetic"
607
+ k1="0"
608
+ k2="1.92513"
609
+ result="composite1"
610
+ id="feComposite32954" />
611
+ <feColorMatrix
612
+ in="composite1"
613
+ values="1"
614
+ type="saturate"
615
+ result="colormatrix1"
616
+ id="feColorMatrix32956" />
617
+ <feFlood
618
+ flood-opacity="1"
619
+ flood-color="rgb(255,255,255)"
620
+ result="flood1"
621
+ id="feFlood32958" />
622
+ <feBlend
623
+ in="flood1"
624
+ in2="colormatrix1"
625
+ mode="normal"
626
+ result="blend1"
627
+ id="feBlend32960" />
628
+ <feBlend
629
+ in2="blend1"
630
+ mode="screen"
631
+ result="blend2"
632
+ id="feBlend32962" />
633
+ <feColorMatrix
634
+ in="blend2"
635
+ values="1"
636
+ type="saturate"
637
+ result="colormatrix2"
638
+ id="feColorMatrix32964" />
639
+ <feComposite
640
+ in="colormatrix2"
641
+ in2="SourceGraphic"
642
+ operator="in"
643
+ k2="1"
644
+ result="composite2"
645
+ id="feComposite32966" />
646
+ </filter>
647
+ <filter
648
+ style="color-interpolation-filters: sRGB;"
649
+ inkscape:label="Colorize"
650
+ id="filter32984">
651
+ <feComposite
652
+ in2="SourceGraphic"
653
+ operator="arithmetic"
654
+ k1="0"
655
+ k2="1.92513"
656
+ result="composite1"
657
+ id="feComposite32970" />
658
+ <feColorMatrix
659
+ in="composite1"
660
+ values="1"
661
+ type="saturate"
662
+ result="colormatrix1"
663
+ id="feColorMatrix32972" />
664
+ <feFlood
665
+ flood-opacity="1"
666
+ flood-color="rgb(255,255,255)"
667
+ result="flood1"
668
+ id="feFlood32974" />
669
+ <feBlend
670
+ in="flood1"
671
+ in2="colormatrix1"
672
+ mode="normal"
673
+ result="blend1"
674
+ id="feBlend32976" />
675
+ <feBlend
676
+ in2="blend1"
677
+ mode="screen"
678
+ result="blend2"
679
+ id="feBlend32978" />
680
+ <feColorMatrix
681
+ in="blend2"
682
+ values="1"
683
+ type="saturate"
684
+ result="colormatrix2"
685
+ id="feColorMatrix32980" />
686
+ <feComposite
687
+ in="colormatrix2"
688
+ in2="SourceGraphic"
689
+ operator="in"
690
+ k2="1"
691
+ result="composite2"
692
+ id="feComposite32982" />
693
+ </filter>
694
+ <filter
695
+ style="color-interpolation-filters: sRGB;"
696
+ inkscape:label="Colorize"
697
+ id="filter33000">
698
+ <feComposite
699
+ in2="SourceGraphic"
700
+ operator="arithmetic"
701
+ k1="0"
702
+ k2="1.92513"
703
+ result="composite1"
704
+ id="feComposite32986" />
705
+ <feColorMatrix
706
+ in="composite1"
707
+ values="1"
708
+ type="saturate"
709
+ result="colormatrix1"
710
+ id="feColorMatrix32988" />
711
+ <feFlood
712
+ flood-opacity="1"
713
+ flood-color="rgb(255,255,255)"
714
+ result="flood1"
715
+ id="feFlood32990" />
716
+ <feBlend
717
+ in="flood1"
718
+ in2="colormatrix1"
719
+ mode="normal"
720
+ result="blend1"
721
+ id="feBlend32992" />
722
+ <feBlend
723
+ in2="blend1"
724
+ mode="screen"
725
+ result="blend2"
726
+ id="feBlend32994" />
727
+ <feColorMatrix
728
+ in="blend2"
729
+ values="1"
730
+ type="saturate"
731
+ result="colormatrix2"
732
+ id="feColorMatrix32996" />
733
+ <feComposite
734
+ in="colormatrix2"
735
+ in2="SourceGraphic"
736
+ operator="in"
737
+ k2="1"
738
+ result="composite2"
739
+ id="feComposite32998" />
740
+ </filter>
741
+ <filter
742
+ style="color-interpolation-filters: sRGB;"
743
+ inkscape:label="Colorize"
744
+ id="filter33016">
745
+ <feComposite
746
+ in2="SourceGraphic"
747
+ operator="arithmetic"
748
+ k1="0"
749
+ k2="1.92513"
750
+ result="composite1"
751
+ id="feComposite33002" />
752
+ <feColorMatrix
753
+ in="composite1"
754
+ values="1"
755
+ type="saturate"
756
+ result="colormatrix1"
757
+ id="feColorMatrix33004" />
758
+ <feFlood
759
+ flood-opacity="1"
760
+ flood-color="rgb(255,255,255)"
761
+ result="flood1"
762
+ id="feFlood33006" />
763
+ <feBlend
764
+ in="flood1"
765
+ in2="colormatrix1"
766
+ mode="normal"
767
+ result="blend1"
768
+ id="feBlend33008" />
769
+ <feBlend
770
+ in2="blend1"
771
+ mode="screen"
772
+ result="blend2"
773
+ id="feBlend33010" />
774
+ <feColorMatrix
775
+ in="blend2"
776
+ values="1"
777
+ type="saturate"
778
+ result="colormatrix2"
779
+ id="feColorMatrix33012" />
780
+ <feComposite
781
+ in="colormatrix2"
782
+ in2="SourceGraphic"
783
+ operator="in"
784
+ k2="1"
785
+ result="composite2"
786
+ id="feComposite33014" />
787
+ </filter>
788
+ <filter
789
+ style="color-interpolation-filters: sRGB;"
790
+ inkscape:label="Colorize"
791
+ id="filter33032">
792
+ <feComposite
793
+ in2="SourceGraphic"
794
+ operator="arithmetic"
795
+ k1="0"
796
+ k2="1.92513"
797
+ result="composite1"
798
+ id="feComposite33018" />
799
+ <feColorMatrix
800
+ in="composite1"
801
+ values="1"
802
+ type="saturate"
803
+ result="colormatrix1"
804
+ id="feColorMatrix33020" />
805
+ <feFlood
806
+ flood-opacity="1"
807
+ flood-color="rgb(255,255,255)"
808
+ result="flood1"
809
+ id="feFlood33022" />
810
+ <feBlend
811
+ in="flood1"
812
+ in2="colormatrix1"
813
+ mode="normal"
814
+ result="blend1"
815
+ id="feBlend33024" />
816
+ <feBlend
817
+ in2="blend1"
818
+ mode="screen"
819
+ result="blend2"
820
+ id="feBlend33026" />
821
+ <feColorMatrix
822
+ in="blend2"
823
+ values="1"
824
+ type="saturate"
825
+ result="colormatrix2"
826
+ id="feColorMatrix33028" />
827
+ <feComposite
828
+ in="colormatrix2"
829
+ in2="SourceGraphic"
830
+ operator="in"
831
+ k2="1"
832
+ result="composite2"
833
+ id="feComposite33030" />
834
+ </filter>
835
+ <filter
836
+ style="color-interpolation-filters: sRGB;"
837
+ inkscape:label="Colorize"
838
+ id="filter33048">
839
+ <feComposite
840
+ in2="SourceGraphic"
841
+ operator="arithmetic"
842
+ k1="0"
843
+ k2="1.92513"
844
+ result="composite1"
845
+ id="feComposite33034" />
846
+ <feColorMatrix
847
+ in="composite1"
848
+ values="1"
849
+ type="saturate"
850
+ result="colormatrix1"
851
+ id="feColorMatrix33036" />
852
+ <feFlood
853
+ flood-opacity="1"
854
+ flood-color="rgb(255,255,255)"
855
+ result="flood1"
856
+ id="feFlood33038" />
857
+ <feBlend
858
+ in="flood1"
859
+ in2="colormatrix1"
860
+ mode="normal"
861
+ result="blend1"
862
+ id="feBlend33040" />
863
+ <feBlend
864
+ in2="blend1"
865
+ mode="screen"
866
+ result="blend2"
867
+ id="feBlend33042" />
868
+ <feColorMatrix
869
+ in="blend2"
870
+ values="1"
871
+ type="saturate"
872
+ result="colormatrix2"
873
+ id="feColorMatrix33044" />
874
+ <feComposite
875
+ in="colormatrix2"
876
+ in2="SourceGraphic"
877
+ operator="in"
878
+ k2="1"
879
+ result="composite2"
880
+ id="feComposite33046" />
881
+ </filter>
882
+ <filter
883
+ style="color-interpolation-filters: sRGB;"
884
+ inkscape:label="Colorize"
885
+ id="filter33064">
886
+ <feComposite
887
+ in2="SourceGraphic"
888
+ operator="arithmetic"
889
+ k1="0"
890
+ k2="1.92513"
891
+ result="composite1"
892
+ id="feComposite33050" />
893
+ <feColorMatrix
894
+ in="composite1"
895
+ values="1"
896
+ type="saturate"
897
+ result="colormatrix1"
898
+ id="feColorMatrix33052" />
899
+ <feFlood
900
+ flood-opacity="1"
901
+ flood-color="rgb(255,255,255)"
902
+ result="flood1"
903
+ id="feFlood33054" />
904
+ <feBlend
905
+ in="flood1"
906
+ in2="colormatrix1"
907
+ mode="normal"
908
+ result="blend1"
909
+ id="feBlend33056" />
910
+ <feBlend
911
+ in2="blend1"
912
+ mode="screen"
913
+ result="blend2"
914
+ id="feBlend33058" />
915
+ <feColorMatrix
916
+ in="blend2"
917
+ values="1"
918
+ type="saturate"
919
+ result="colormatrix2"
920
+ id="feColorMatrix33060" />
921
+ <feComposite
922
+ in="colormatrix2"
923
+ in2="SourceGraphic"
924
+ operator="in"
925
+ k2="1"
926
+ result="composite2"
927
+ id="feComposite33062" />
928
+ </filter>
929
+ <filter
930
+ style="color-interpolation-filters: sRGB;"
931
+ inkscape:label="Colorize"
932
+ id="filter33080">
933
+ <feComposite
934
+ in2="SourceGraphic"
935
+ operator="arithmetic"
936
+ k1="0"
937
+ k2="1.92513"
938
+ result="composite1"
939
+ id="feComposite33066" />
940
+ <feColorMatrix
941
+ in="composite1"
942
+ values="1"
943
+ type="saturate"
944
+ result="colormatrix1"
945
+ id="feColorMatrix33068" />
946
+ <feFlood
947
+ flood-opacity="1"
948
+ flood-color="rgb(255,255,255)"
949
+ result="flood1"
950
+ id="feFlood33070" />
951
+ <feBlend
952
+ in="flood1"
953
+ in2="colormatrix1"
954
+ mode="normal"
955
+ result="blend1"
956
+ id="feBlend33072" />
957
+ <feBlend
958
+ in2="blend1"
959
+ mode="screen"
960
+ result="blend2"
961
+ id="feBlend33074" />
962
+ <feColorMatrix
963
+ in="blend2"
964
+ values="1"
965
+ type="saturate"
966
+ result="colormatrix2"
967
+ id="feColorMatrix33076" />
968
+ <feComposite
969
+ in="colormatrix2"
970
+ in2="SourceGraphic"
971
+ operator="in"
972
+ k2="1"
973
+ result="composite2"
974
+ id="feComposite33078" />
975
+ </filter>
976
+ <filter
977
+ style="color-interpolation-filters: sRGB;"
978
+ inkscape:label="Colorize"
979
+ id="filter33096">
980
+ <feComposite
981
+ in2="SourceGraphic"
982
+ operator="arithmetic"
983
+ k1="0"
984
+ k2="1.92513"
985
+ result="composite1"
986
+ id="feComposite33082" />
987
+ <feColorMatrix
988
+ in="composite1"
989
+ values="1"
990
+ type="saturate"
991
+ result="colormatrix1"
992
+ id="feColorMatrix33084" />
993
+ <feFlood
994
+ flood-opacity="1"
995
+ flood-color="rgb(255,255,255)"
996
+ result="flood1"
997
+ id="feFlood33086" />
998
+ <feBlend
999
+ in="flood1"
1000
+ in2="colormatrix1"
1001
+ mode="normal"
1002
+ result="blend1"
1003
+ id="feBlend33088" />
1004
+ <feBlend
1005
+ in2="blend1"
1006
+ mode="screen"
1007
+ result="blend2"
1008
+ id="feBlend33090" />
1009
+ <feColorMatrix
1010
+ in="blend2"
1011
+ values="1"
1012
+ type="saturate"
1013
+ result="colormatrix2"
1014
+ id="feColorMatrix33092" />
1015
+ <feComposite
1016
+ in="colormatrix2"
1017
+ in2="SourceGraphic"
1018
+ operator="in"
1019
+ k2="1"
1020
+ result="composite2"
1021
+ id="feComposite33094" />
1022
+ </filter>
1023
+ <filter
1024
+ style="color-interpolation-filters: sRGB;"
1025
+ inkscape:label="Colorize"
1026
+ id="filter33112">
1027
+ <feComposite
1028
+ in2="SourceGraphic"
1029
+ operator="arithmetic"
1030
+ k1="0"
1031
+ k2="1.92513"
1032
+ result="composite1"
1033
+ id="feComposite33098" />
1034
+ <feColorMatrix
1035
+ in="composite1"
1036
+ values="1"
1037
+ type="saturate"
1038
+ result="colormatrix1"
1039
+ id="feColorMatrix33100" />
1040
+ <feFlood
1041
+ flood-opacity="1"
1042
+ flood-color="rgb(255,255,255)"
1043
+ result="flood1"
1044
+ id="feFlood33102" />
1045
+ <feBlend
1046
+ in="flood1"
1047
+ in2="colormatrix1"
1048
+ mode="normal"
1049
+ result="blend1"
1050
+ id="feBlend33104" />
1051
+ <feBlend
1052
+ in2="blend1"
1053
+ mode="screen"
1054
+ result="blend2"
1055
+ id="feBlend33106" />
1056
+ <feColorMatrix
1057
+ in="blend2"
1058
+ values="1"
1059
+ type="saturate"
1060
+ result="colormatrix2"
1061
+ id="feColorMatrix33108" />
1062
+ <feComposite
1063
+ in="colormatrix2"
1064
+ in2="SourceGraphic"
1065
+ operator="in"
1066
+ k2="1"
1067
+ result="composite2"
1068
+ id="feComposite33110" />
1069
+ </filter>
1070
+ <filter
1071
+ style="color-interpolation-filters: sRGB;"
1072
+ inkscape:label="Colorize"
1073
+ id="filter33128">
1074
+ <feComposite
1075
+ in2="SourceGraphic"
1076
+ operator="arithmetic"
1077
+ k1="0"
1078
+ k2="1.92513"
1079
+ result="composite1"
1080
+ id="feComposite33114" />
1081
+ <feColorMatrix
1082
+ in="composite1"
1083
+ values="1"
1084
+ type="saturate"
1085
+ result="colormatrix1"
1086
+ id="feColorMatrix33116" />
1087
+ <feFlood
1088
+ flood-opacity="1"
1089
+ flood-color="rgb(255,255,255)"
1090
+ result="flood1"
1091
+ id="feFlood33118" />
1092
+ <feBlend
1093
+ in="flood1"
1094
+ in2="colormatrix1"
1095
+ mode="normal"
1096
+ result="blend1"
1097
+ id="feBlend33120" />
1098
+ <feBlend
1099
+ in2="blend1"
1100
+ mode="screen"
1101
+ result="blend2"
1102
+ id="feBlend33122" />
1103
+ <feColorMatrix
1104
+ in="blend2"
1105
+ values="1"
1106
+ type="saturate"
1107
+ result="colormatrix2"
1108
+ id="feColorMatrix33124" />
1109
+ <feComposite
1110
+ in="colormatrix2"
1111
+ in2="SourceGraphic"
1112
+ operator="in"
1113
+ k2="1"
1114
+ result="composite2"
1115
+ id="feComposite33126" />
1116
+ </filter>
1117
+ <filter
1118
+ style="color-interpolation-filters: sRGB;"
1119
+ inkscape:label="Colorize"
1120
+ id="filter33144">
1121
+ <feComposite
1122
+ in2="SourceGraphic"
1123
+ operator="arithmetic"
1124
+ k1="0"
1125
+ k2="1.92513"
1126
+ result="composite1"
1127
+ id="feComposite33130" />
1128
+ <feColorMatrix
1129
+ in="composite1"
1130
+ values="1"
1131
+ type="saturate"
1132
+ result="colormatrix1"
1133
+ id="feColorMatrix33132" />
1134
+ <feFlood
1135
+ flood-opacity="1"
1136
+ flood-color="rgb(255,255,255)"
1137
+ result="flood1"
1138
+ id="feFlood33134" />
1139
+ <feBlend
1140
+ in="flood1"
1141
+ in2="colormatrix1"
1142
+ mode="normal"
1143
+ result="blend1"
1144
+ id="feBlend33136" />
1145
+ <feBlend
1146
+ in2="blend1"
1147
+ mode="screen"
1148
+ result="blend2"
1149
+ id="feBlend33138" />
1150
+ <feColorMatrix
1151
+ in="blend2"
1152
+ values="1"
1153
+ type="saturate"
1154
+ result="colormatrix2"
1155
+ id="feColorMatrix33140" />
1156
+ <feComposite
1157
+ in="colormatrix2"
1158
+ in2="SourceGraphic"
1159
+ operator="in"
1160
+ k2="1"
1161
+ result="composite2"
1162
+ id="feComposite33142" />
1163
+ </filter>
1164
+ <filter
1165
+ style="color-interpolation-filters: sRGB;"
1166
+ inkscape:label="Colorize"
1167
+ id="filter33160">
1168
+ <feComposite
1169
+ in2="SourceGraphic"
1170
+ operator="arithmetic"
1171
+ k1="0"
1172
+ k2="1.92513"
1173
+ result="composite1"
1174
+ id="feComposite33146" />
1175
+ <feColorMatrix
1176
+ in="composite1"
1177
+ values="1"
1178
+ type="saturate"
1179
+ result="colormatrix1"
1180
+ id="feColorMatrix33148" />
1181
+ <feFlood
1182
+ flood-opacity="1"
1183
+ flood-color="rgb(255,255,255)"
1184
+ result="flood1"
1185
+ id="feFlood33150" />
1186
+ <feBlend
1187
+ in="flood1"
1188
+ in2="colormatrix1"
1189
+ mode="normal"
1190
+ result="blend1"
1191
+ id="feBlend33152" />
1192
+ <feBlend
1193
+ in2="blend1"
1194
+ mode="screen"
1195
+ result="blend2"
1196
+ id="feBlend33154" />
1197
+ <feColorMatrix
1198
+ in="blend2"
1199
+ values="1"
1200
+ type="saturate"
1201
+ result="colormatrix2"
1202
+ id="feColorMatrix33156" />
1203
+ <feComposite
1204
+ in="colormatrix2"
1205
+ in2="SourceGraphic"
1206
+ operator="in"
1207
+ k2="1"
1208
+ result="composite2"
1209
+ id="feComposite33158" />
1210
+ </filter>
1211
+ </defs>
1212
+ <sodipodi:namedview
1213
+ pagecolor="#ffffff"
1214
+ bordercolor="#666666"
1215
+ borderopacity="1"
1216
+ objecttolerance="10"
1217
+ gridtolerance="10"
1218
+ guidetolerance="10"
1219
+ inkscape:pageopacity="0"
1220
+ inkscape:pageshadow="2"
1221
+ inkscape:window-width="1855"
1222
+ inkscape:window-height="1176"
1223
+ id="namedview132"
1224
+ showgrid="false"
1225
+ inkscape:showpageshadow="false"
1226
+ inkscape:zoom="2.2250293"
1227
+ inkscape:cx="250.07699"
1228
+ inkscape:cy="120.20161"
1229
+ inkscape:window-x="65"
1230
+ inkscape:window-y="24"
1231
+ inkscape:window-maximized="1"
1232
+ inkscape:current-layer="Layer_1"
1233
+ fit-margin-top="0"
1234
+ fit-margin-left="0"
1235
+ fit-margin-right="0"
1236
+ fit-margin-bottom="0" />
1237
+ <polygon
1238
+ id="polygon2"
1239
+ points="712.459,582.144 690.578,582.144 670.544,619.146 693.247,619.146 "
1240
+ transform="translate(-557.291,-552.87)"
1241
+ style="filter: url(#filter33160);" />
1242
+ <polygon
1243
+ id="polygon4"
1244
+ points="746.707,619.146 769.318,619.146 748.977,582.144 726.967,582.144 732.792,593.149 "
1245
+ transform="translate(-557.291,-552.87)"
1246
+ style="filter: url(#filter33144);" />
1247
+ <polygon
1248
+ style="fill: #e52d27;"
1249
+ id="polygon6"
1250
+ points="697.89,568.249 719.398,568.249 741.126,568.249 732.672,552.87 706.216,552.87 "
1251
+ transform="translate(-557.291,-552.87)" />
1252
+ <path
1253
+ inkscape:connector-curvature="0"
1254
+ id="path8"
1255
+ d="m 280.02,30.941 c -1.16,1.099 -3.083,1.648 -5.767,1.648 h -33.596 v -3.315 h -20.322 v 37.002 h 20.322 v -17.21 h 31.948 c 3.173,0 5.355,0.672 6.545,2.014 1.19,1.343 1.785,3.753 1.785,7.232 v 7.964 h 20.322 v -11.26 c 0,-2.623 -0.274,-4.836 -0.824,-6.637 -0.549,-1.799 -1.327,-3.218 -2.334,-4.257 -1.007,-1.037 -2.151,-1.845 -3.433,-2.426 -1.282,-0.579 -2.778,-1.021 -4.485,-1.327 v -0.183 c 4.454,-1.037 7.461,-2.822 9.017,-5.355 0.905,-1.472 1.538,-3.333 1.917,-5.558 h -19.978 c -0.28,0.665 -0.649,1.224 -1.117,1.668 z"
1256
+ style="filter: url(#filter33128);" />
1257
+ <path
1258
+ style="fill: #e52d27;"
1259
+ inkscape:connector-curvature="0"
1260
+ id="path10"
1261
+ d="M 300.359,11.443 C 299.718,9.063 298.65,7.019 297.155,5.31 295.659,3.602 293.631,2.289 291.068,1.374 288.505,0.458 285.301,10e-4 281.456,10e-4 H 220.123 V 15.38 h 80.965 c -0.161,-1.407 -0.402,-2.721 -0.729,-3.937 z" />
1262
+ <polygon
1263
+ id="polygon12"
1264
+ points="902.499,582.144 880.584,582.144 900.466,619.146 925.548,619.146 945.429,582.144 923.514,582.144 913.006,602.12 "
1265
+ transform="translate(-557.291,-552.87)"
1266
+ style="filter: url(#filter33112);" />
1267
+ <polygon
1268
+ style="fill: #e52d27;"
1269
+ id="polygon14"
1270
+ points="961.157,552.87 938.913,552.87 930.823,568.249 952.894,568.249 "
1271
+ transform="translate(-557.291,-552.87)" />
1272
+ <polygon
1273
+ style="fill: #e52d27;"
1274
+ id="polygon16"
1275
+ points="887.1,552.87 864.856,552.87 873.119,568.249 895.19,568.249 "
1276
+ transform="translate(-557.291,-552.87)" />
1277
+ <polygon
1278
+ style="fill: #e52d27;"
1279
+ id="polygon18"
1280
+ points="968.48,568.249 988.803,568.249 1040.982,568.249 1040.982,552.87 968.48,552.87 "
1281
+ transform="translate(-557.291,-552.87)" />
1282
+ <polygon
1283
+ id="polygon20"
1284
+ points="988.803,603.218 988.803,592.599 1038.235,592.599 1038.235,582.144 968.48,582.144 968.48,619.146 1042.171,619.146 1042.171,603.218 "
1285
+ transform="translate(-557.291,-552.87)"
1286
+ style="filter: url(#filter33096);" />
1287
+ <g
1288
+ id="g28"
1289
+ transform="translate(-557.291,-552.87)"
1290
+ style="filter: url(#filter33064);">
1291
+ <g
1292
+ id="g26">
1293
+ <rect
1294
+ id="rect24"
1295
+ height="1.5"
1296
+ width="372.21399"
1297
+ y="625.79901"
1298
+ x="670.49597" />
1299
+ </g>
1300
+ </g>
1301
+ <path
1302
+ d="m 119.878,77.729 h 4.095 l 5.639,10.259 h -3.5 l -0.978,-1.814 h -6.376 l -0.921,1.814 h -3.514 z m 0.057,6.235 h 4.024 l -2.04,-3.854 z"
1303
+ id="path30"
1304
+ inkscape:connector-curvature="0"
1305
+ style="fill: #e52d27;" />
1306
+ <path
1307
+ d="m 130.42,83.723 c 0,-0.519 0.045,-0.959 0.135,-1.318 0.09,-0.359 0.267,-0.671 0.531,-0.935 0.264,-0.264 0.654,-0.468 1.169,-0.609 0.515,-0.142 1.193,-0.213 2.033,-0.213 h 0.808 c 0.302,0 0.586,0.024 0.85,0.071 0.264,0.047 0.51,0.125 0.737,0.234 0.227,0.109 0.416,0.258 0.567,0.446 0.151,0.189 0.245,0.421 0.283,0.695 h 0.028 V 77.73 h 2.72 v 10.259 h -2.55 v -1.332 h -0.028 c -0.161,0.473 -0.442,0.831 -0.843,1.077 -0.402,0.246 -0.994,0.369 -1.778,0.369 h -0.793 c -0.841,0 -1.518,-0.071 -2.033,-0.213 -0.515,-0.142 -0.905,-0.345 -1.169,-0.609 -0.265,-0.264 -0.442,-0.576 -0.531,-0.935 -0.09,-0.359 -0.135,-0.798 -0.135,-1.318 v -1.305 z m 2.636,1.077 c 0,0.454 0.088,0.777 0.262,0.971 0.175,0.194 0.565,0.291 1.169,0.291 h 1.601 c 0.576,0 0.994,-0.092 1.254,-0.276 0.26,-0.184 0.39,-0.536 0.39,-1.056 v -0.708 c 0,-0.52 -0.13,-0.871 -0.39,-1.056 -0.26,-0.184 -0.678,-0.276 -1.254,-0.276 h -1.601 c -0.604,0 -0.994,0.097 -1.169,0.29 -0.175,0.194 -0.262,0.517 -0.262,0.971 z"
1308
+ id="path32"
1309
+ inkscape:connector-curvature="0"
1310
+ style="fill: #e52d27;" />
1311
+ <path
1312
+ d="m 141.302,80.762 h 2.962 l 2.21,5.101 2.21,-5.101 h 2.961 l -3.471,7.226 h -3.401 z"
1313
+ id="path34"
1314
+ inkscape:connector-curvature="0"
1315
+ style="fill: #e52d27;" />
1316
+ <path
1317
+ d="m 152.213,85.452 c 0,-0.482 0.082,-0.864 0.248,-1.148 0.165,-0.283 0.411,-0.491 0.737,-0.624 0.326,-0.132 0.718,-0.217 1.176,-0.255 0.458,-0.038 1.069,-0.057 1.835,-0.057 0.841,0 1.462,0.033 1.863,0.099 0.402,0.066 0.725,0.227 0.971,0.481 v -0.637 c 0,-0.368 -0.083,-0.621 -0.248,-0.758 -0.166,-0.137 -0.508,-0.205 -1.027,-0.205 h -1.601 c -0.416,0 -0.692,0.036 -0.829,0.107 -0.137,0.071 -0.21,0.229 -0.22,0.474 h -2.635 c 0,-0.482 0.062,-0.874 0.184,-1.176 0.123,-0.302 0.314,-0.533 0.574,-0.694 0.26,-0.161 0.588,-0.269 0.984,-0.326 0.397,-0.056 0.902,-0.085 1.516,-0.085 h 3.16 c 0.935,0 1.646,0.22 2.133,0.659 0.486,0.439 0.73,1.084 0.73,1.934 v 4.747 h -2.579 v -0.822 c -0.198,0.208 -0.371,0.371 -0.517,0.489 -0.147,0.118 -0.3,0.21 -0.461,0.276 -0.161,0.066 -0.35,0.111 -0.567,0.135 -0.218,0.023 -0.501,0.036 -0.85,0.036 h -1.856 c -0.916,0 -1.599,-0.146 -2.047,-0.439 -0.449,-0.293 -0.673,-0.831 -0.673,-1.615 v -0.596 z m 4.845,0.949 c 0.463,0 0.829,-0.016 1.098,-0.05 0.269,-0.033 0.472,-0.082 0.609,-0.149 0.137,-0.066 0.227,-0.142 0.269,-0.227 0.042,-0.085 0.064,-0.198 0.064,-0.34 0,-0.293 -0.099,-0.489 -0.298,-0.588 -0.198,-0.099 -0.652,-0.149 -1.36,-0.149 h -1.204 c -0.548,0 -0.916,0.064 -1.105,0.191 -0.189,0.127 -0.283,0.347 -0.283,0.659 0,0.237 0.106,0.404 0.319,0.503 0.212,0.099 0.583,0.149 1.112,0.149 h 0.779 z"
1318
+ id="path36"
1319
+ inkscape:connector-curvature="0"
1320
+ style="fill: #e52d27;" />
1321
+ <path
1322
+ d="m 163.506,80.762 h 2.721 v 1.162 h 0.028 c 0.227,-0.482 0.572,-0.815 1.034,-0.999 0.463,-0.184 1.082,-0.276 1.856,-0.276 0.567,0 1.063,0.026 1.488,0.078 0.425,0.052 0.834,0.177 1.226,0.376 0.392,0.198 0.711,0.52 0.956,0.963 0.246,0.444 0.368,1.034 0.368,1.771 v 4.152 h -2.72 v -4.152 c 0,-0.708 -0.586,-1.063 -1.757,-1.063 h -0.624 c -0.586,0 -1.041,0.135 -1.367,0.404 -0.326,0.269 -0.489,0.659 -0.489,1.169 v 3.642 h -2.721 v -7.227 z"
1323
+ id="path38"
1324
+ inkscape:connector-curvature="0"
1325
+ style="fill: #e52d27;" />
1326
+ <path
1327
+ d="m 174.713,83.978 c 0,-0.661 0.078,-1.212 0.234,-1.651 0.156,-0.439 0.38,-0.779 0.673,-1.02 0.293,-0.241 0.64,-0.411 1.042,-0.51 0.401,-0.099 0.866,-0.149 1.396,-0.149 h 3.061 c 1.039,0 1.839,0.196 2.402,0.588 0.562,0.392 0.843,0.994 0.843,1.807 v 0.652 h -2.635 c 0,-0.368 -0.116,-0.628 -0.347,-0.78 -0.232,-0.151 -0.64,-0.227 -1.226,-0.227 h -1.049 c -0.576,0 -0.999,0.088 -1.268,0.262 -0.269,0.175 -0.404,0.456 -0.404,0.843 v 0.963 c 0,0.444 0.125,0.758 0.375,0.942 0.25,0.184 0.607,0.276 1.07,0.276 h 1.389 c 0.434,0 0.786,-0.064 1.056,-0.191 0.269,-0.127 0.404,-0.342 0.404,-0.645 v -0.17 h 2.635 v 0.637 c 0,0.463 -0.088,0.857 -0.262,1.183 -0.175,0.326 -0.413,0.583 -0.715,0.772 -0.302,0.189 -0.64,0.326 -1.013,0.411 -0.373,0.085 -0.768,0.128 -1.183,0.128 h -2.777 c -0.52,0 -0.99,-0.038 -1.41,-0.114 -0.421,-0.075 -0.805,-0.231 -1.155,-0.468 -0.349,-0.236 -0.626,-0.586 -0.829,-1.049 -0.203,-0.463 -0.305,-1.063 -0.305,-1.8 v -0.69 z"
1328
+ id="path40"
1329
+ inkscape:connector-curvature="0"
1330
+ style="fill: #e52d27;" />
1331
+ <path
1332
+ d="m 185.553,83.978 c 0,-0.661 0.078,-1.212 0.234,-1.651 0.156,-0.439 0.38,-0.779 0.673,-1.02 0.293,-0.241 0.64,-0.411 1.042,-0.51 0.401,-0.099 0.866,-0.149 1.396,-0.149 h 1.899 c 0.755,0 1.386,0.048 1.891,0.142 0.505,0.094 0.919,0.255 1.24,0.482 0.321,0.227 0.56,0.541 0.716,0.942 0.156,0.402 0.234,0.919 0.234,1.551 v 1.219 h -6.603 v 0.439 c 0,0.368 0.13,0.624 0.39,0.765 0.26,0.142 0.687,0.213 1.282,0.213 h 0.836 c 0.359,0 0.642,-0.021 0.85,-0.064 0.208,-0.042 0.361,-0.101 0.461,-0.177 0.099,-0.076 0.163,-0.158 0.191,-0.248 0.028,-0.089 0.042,-0.2 0.042,-0.333 h 2.55 v 0.312 c 0,0.435 -0.09,0.799 -0.269,1.091 -0.18,0.293 -0.432,0.52 -0.758,0.68 -0.326,0.161 -0.701,0.274 -1.126,0.34 -0.425,0.066 -0.902,0.099 -1.431,0.099 h -2.04 c -0.52,0 -0.99,-0.038 -1.41,-0.114 -0.421,-0.075 -0.805,-0.231 -1.155,-0.468 -0.349,-0.236 -0.626,-0.586 -0.829,-1.049 -0.203,-0.463 -0.305,-1.063 -0.305,-1.8 v -0.692 z m 6.688,-0.609 c 0,-0.425 -0.127,-0.702 -0.383,-0.829 -0.255,-0.128 -0.789,-0.192 -1.601,-0.192 -0.473,0 -0.834,0.014 -1.084,0.042 -0.25,0.029 -0.442,0.076 -0.574,0.142 -0.133,0.066 -0.22,0.163 -0.262,0.291 -0.042,0.127 -0.064,0.309 -0.064,0.546 z"
1333
+ id="path42"
1334
+ inkscape:connector-curvature="0"
1335
+ style="fill: #e52d27;" />
1336
+ <path
1337
+ d="m 196.223,83.723 c 0,-0.519 0.045,-0.959 0.135,-1.318 0.09,-0.359 0.267,-0.671 0.531,-0.935 0.264,-0.264 0.654,-0.468 1.169,-0.609 0.515,-0.142 1.193,-0.213 2.033,-0.213 h 0.808 c 0.302,0 0.586,0.024 0.85,0.071 0.264,0.047 0.51,0.125 0.737,0.234 0.227,0.109 0.416,0.258 0.567,0.446 0.151,0.189 0.245,0.421 0.283,0.695 h 0.028 V 77.73 h 2.72 v 10.259 h -2.55 v -1.332 h -0.028 c -0.161,0.473 -0.442,0.831 -0.843,1.077 -0.402,0.246 -0.994,0.369 -1.778,0.369 h -0.793 c -0.841,0 -1.518,-0.071 -2.033,-0.213 -0.515,-0.142 -0.905,-0.345 -1.169,-0.609 -0.265,-0.264 -0.442,-0.576 -0.531,-0.935 -0.09,-0.359 -0.135,-0.798 -0.135,-1.318 v -1.305 z m 2.635,1.077 c 0,0.454 0.087,0.777 0.262,0.971 0.175,0.194 0.565,0.291 1.169,0.291 h 1.601 c 0.576,0 0.994,-0.092 1.254,-0.276 0.26,-0.184 0.39,-0.536 0.39,-1.056 v -0.708 c 0,-0.52 -0.13,-0.871 -0.39,-1.056 -0.26,-0.184 -0.678,-0.276 -1.254,-0.276 h -1.601 c -0.604,0 -0.994,0.097 -1.169,0.29 -0.175,0.194 -0.262,0.517 -0.262,0.971 z"
1338
+ id="path44"
1339
+ inkscape:connector-curvature="0"
1340
+ style="fill: #e52d27;" />
1341
+ <path
1342
+ d="m 215.082,77.729 h 9.493 c 0.595,0 1.091,0.071 1.488,0.213 0.397,0.142 0.711,0.345 0.942,0.609 0.231,0.264 0.397,0.581 0.496,0.949 0.099,0.368 0.149,0.793 0.149,1.275 v 0.652 c 0,0.737 -0.12,1.301 -0.361,1.693 -0.241,0.392 -0.706,0.669 -1.396,0.829 v 0.029 c 0.264,0.047 0.496,0.116 0.694,0.205 0.198,0.09 0.376,0.215 0.531,0.376 0.156,0.161 0.276,0.38 0.361,0.659 0.085,0.279 0.128,0.621 0.128,1.027 v 1.743 h -3.146 v -1.233 c 0,-0.539 -0.092,-0.911 -0.276,-1.119 -0.184,-0.208 -0.522,-0.312 -1.013,-0.312 h -4.945 v 2.664 h -3.145 z m 3.145,5.045 h 5.2 c 0.416,0 0.713,-0.085 0.893,-0.255 0.179,-0.17 0.269,-0.444 0.269,-0.822 v -0.34 c 0,-0.434 -0.109,-0.722 -0.326,-0.864 -0.217,-0.142 -0.59,-0.213 -1.119,-0.213 h -4.917 z"
1343
+ id="path46"
1344
+ inkscape:connector-curvature="0"
1345
+ style="filter: url(#filter33080);" />
1346
+ <path
1347
+ d="m 229.308,83.978 c 0,-0.661 0.078,-1.212 0.234,-1.651 0.156,-0.439 0.38,-0.779 0.673,-1.02 0.293,-0.241 0.64,-0.411 1.042,-0.51 0.401,-0.099 0.866,-0.149 1.396,-0.149 h 1.899 c 0.755,0 1.386,0.048 1.891,0.142 0.505,0.094 0.919,0.255 1.24,0.482 0.321,0.227 0.56,0.541 0.716,0.942 0.156,0.402 0.234,0.919 0.234,1.551 v 1.219 h -6.603 v 0.439 c 0,0.368 0.13,0.624 0.39,0.765 0.26,0.142 0.687,0.213 1.282,0.213 h 0.836 c 0.359,0 0.642,-0.021 0.85,-0.064 0.208,-0.042 0.361,-0.101 0.461,-0.177 0.099,-0.076 0.163,-0.158 0.191,-0.248 0.028,-0.089 0.042,-0.2 0.042,-0.333 h 2.551 v 0.312 c 0,0.435 -0.09,0.799 -0.269,1.091 -0.18,0.293 -0.432,0.52 -0.758,0.68 -0.326,0.161 -0.701,0.274 -1.126,0.34 -0.425,0.066 -0.902,0.099 -1.431,0.099 h -2.04 c -0.52,0 -0.99,-0.038 -1.41,-0.114 -0.421,-0.075 -0.806,-0.231 -1.155,-0.468 -0.349,-0.236 -0.626,-0.586 -0.829,-1.049 -0.203,-0.463 -0.305,-1.063 -0.305,-1.8 v -0.692 z m 6.688,-0.609 c 0,-0.425 -0.127,-0.702 -0.383,-0.829 -0.255,-0.128 -0.789,-0.192 -1.601,-0.192 -0.473,0 -0.834,0.014 -1.084,0.042 -0.25,0.029 -0.442,0.076 -0.574,0.142 -0.133,0.066 -0.22,0.163 -0.262,0.291 -0.042,0.127 -0.064,0.309 -0.064,0.546 z"
1348
+ id="path48"
1349
+ inkscape:connector-curvature="0"
1350
+ style="filter: url(#filter33032);" />
1351
+ <path
1352
+ d="m 242.698,85.735 c 0,0.113 0.016,0.208 0.049,0.283 0.033,0.075 0.106,0.142 0.22,0.198 0.113,0.057 0.286,0.102 0.517,0.135 0.231,0.033 0.532,0.05 0.9,0.05 h 0.964 c 0.652,0 1.084,-0.036 1.296,-0.107 0.212,-0.071 0.319,-0.215 0.319,-0.432 0,-0.217 -0.08,-0.37 -0.241,-0.461 -0.161,-0.09 -0.472,-0.134 -0.935,-0.134 h -2.55 c -0.652,-0.01 -1.186,-0.055 -1.601,-0.135 -0.416,-0.08 -0.746,-0.215 -0.992,-0.404 -0.246,-0.189 -0.423,-0.444 -0.531,-0.765 -0.109,-0.321 -0.163,-0.737 -0.163,-1.247 0,-0.435 0.082,-0.791 0.248,-1.07 0.165,-0.279 0.394,-0.489 0.687,-0.631 0.293,-0.142 0.633,-0.238 1.02,-0.29 0.387,-0.052 0.841,-0.078 1.361,-0.078 h 1.898 c 0.907,0 1.632,0.036 2.175,0.107 0.543,0.071 0.961,0.189 1.254,0.354 0.293,0.165 0.494,0.383 0.602,0.652 0.108,0.269 0.167,0.63 0.177,1.084 h -2.72 c -0.038,-0.114 -0.09,-0.201 -0.156,-0.262 -0.066,-0.062 -0.168,-0.111 -0.305,-0.149 -0.137,-0.038 -0.324,-0.062 -0.559,-0.071 -0.237,-0.009 -0.572,-0.014 -1.006,-0.014 -0.803,0 -1.315,0.029 -1.537,0.085 -0.222,0.056 -0.333,0.208 -0.333,0.453 0,0.161 0.101,0.272 0.305,0.333 0.203,0.062 0.645,0.092 1.325,0.092 h 1.885 c 0.784,0 1.414,0.062 1.892,0.184 0.477,0.123 0.829,0.29 1.056,0.503 0.227,0.212 0.375,0.451 0.446,0.715 0.071,0.265 0.106,0.591 0.106,0.978 0,0.491 -0.059,0.89 -0.177,1.197 -0.118,0.307 -0.316,0.548 -0.595,0.722 -0.279,0.175 -0.664,0.3 -1.155,0.376 -0.491,0.075 -1.139,0.114 -1.941,0.114 h -2.579 c -1.266,0 -2.154,-0.172 -2.664,-0.517 -0.51,-0.345 -0.765,-0.961 -0.765,-1.849 h 2.803 z"
1353
+ id="path50"
1354
+ inkscape:connector-curvature="0"
1355
+ style="filter: url(#filter33048);" />
1356
+ <path
1357
+ d="m 251.37,80.762 h 2.635 v 1.077 h 0.029 c 0.198,-0.368 0.491,-0.659 0.878,-0.871 0.387,-0.212 0.945,-0.319 1.672,-0.319 h 0.779 c 0.841,0 1.518,0.071 2.034,0.213 0.515,0.142 0.904,0.345 1.169,0.609 0.264,0.264 0.441,0.576 0.531,0.935 0.09,0.359 0.135,0.799 0.135,1.318 v 1.304 c 0,0.52 -0.045,0.959 -0.135,1.318 -0.09,0.359 -0.267,0.671 -0.531,0.935 -0.265,0.265 -0.654,0.468 -1.169,0.609 -0.515,0.142 -1.193,0.213 -2.034,0.213 h -0.552 c -0.406,0 -0.742,-0.019 -1.006,-0.057 -0.264,-0.038 -0.496,-0.104 -0.694,-0.198 -0.198,-0.094 -0.375,-0.229 -0.531,-0.404 -0.156,-0.175 -0.31,-0.409 -0.461,-0.702 h -0.028 v 3.769 h -2.721 z m 2.72,3.967 c 0,0.52 0.13,0.871 0.39,1.056 0.26,0.184 0.678,0.276 1.254,0.276 h 1.431 c 0.604,0 0.994,-0.097 1.169,-0.291 0.175,-0.193 0.262,-0.517 0.262,-0.971 v -0.85 c 0,-0.453 -0.088,-0.777 -0.262,-0.971 -0.175,-0.193 -0.565,-0.29 -1.169,-0.29 h -1.431 c -0.576,0 -0.994,0.092 -1.254,0.276 -0.26,0.184 -0.39,0.536 -0.39,1.056 z"
1358
+ id="path52"
1359
+ inkscape:connector-curvature="0"
1360
+ style="filter: url(#filter33016);" />
1361
+ <path
1362
+ d="m 262.733,83.511 c 0,-0.567 0.085,-1.039 0.255,-1.417 0.17,-0.378 0.399,-0.673 0.687,-0.886 0.288,-0.213 0.604,-0.359 0.949,-0.439 0.345,-0.08 0.711,-0.12 1.098,-0.12 h 4.067 c 0.387,0 0.753,0.04 1.098,0.12 0.345,0.081 0.661,0.227 0.949,0.439 0.288,0.212 0.517,0.508 0.687,0.886 0.17,0.378 0.255,0.85 0.255,1.417 v 1.729 c 0,0.567 -0.085,1.039 -0.255,1.417 -0.17,0.378 -0.399,0.673 -0.687,0.886 -0.288,0.212 -0.604,0.359 -0.949,0.439 -0.345,0.08 -0.711,0.12 -1.098,0.12 h -4.067 c -0.387,0 -0.754,-0.04 -1.098,-0.12 -0.345,-0.08 -0.662,-0.227 -0.949,-0.439 -0.289,-0.213 -0.517,-0.508 -0.687,-0.886 -0.17,-0.378 -0.255,-0.85 -0.255,-1.417 z m 2.721,1.204 c 0,0.501 0.146,0.85 0.439,1.049 0.293,0.198 0.765,0.298 1.417,0.298 h 0.652 c 0.453,0 0.815,-0.019 1.084,-0.057 0.269,-0.038 0.477,-0.099 0.624,-0.184 0.146,-0.085 0.248,-0.201 0.305,-0.347 0.057,-0.146 0.085,-0.347 0.085,-0.602 V 83.88 c 0,-0.255 -0.028,-0.458 -0.085,-0.609 -0.057,-0.151 -0.158,-0.269 -0.305,-0.354 -0.146,-0.085 -0.354,-0.144 -0.624,-0.177 -0.269,-0.033 -0.63,-0.05 -1.084,-0.05 h -0.652 c -0.652,0 -1.124,0.099 -1.417,0.298 -0.293,0.199 -0.439,0.548 -0.439,1.049 z"
1363
+ id="path54"
1364
+ inkscape:connector-curvature="0"
1365
+ style="filter: url(#filter32984);" />
1366
+ <path
1367
+ d="m 274.465,80.762 h 2.721 v 1.162 h 0.028 c 0.227,-0.482 0.572,-0.815 1.034,-0.999 0.463,-0.184 1.082,-0.276 1.856,-0.276 0.567,0 1.063,0.026 1.488,0.078 0.425,0.052 0.834,0.177 1.226,0.376 0.392,0.198 0.711,0.52 0.956,0.963 0.246,0.444 0.368,1.034 0.368,1.771 v 4.152 h -2.72 v -4.152 c 0,-0.708 -0.586,-1.063 -1.757,-1.063 h -0.624 c -0.586,0 -1.041,0.135 -1.367,0.404 -0.326,0.269 -0.489,0.659 -0.489,1.169 v 3.642 h -2.721 v -7.227 z"
1368
+ id="path56"
1369
+ inkscape:connector-curvature="0"
1370
+ style="filter: url(#filter33000);" />
1371
+ <path
1372
+ d="m 288.55,85.735 c 0,0.113 0.016,0.208 0.049,0.283 0.033,0.075 0.106,0.142 0.22,0.198 0.113,0.057 0.286,0.102 0.517,0.135 0.231,0.033 0.532,0.05 0.9,0.05 h 0.964 c 0.652,0 1.084,-0.036 1.297,-0.107 0.212,-0.071 0.319,-0.215 0.319,-0.432 0,-0.217 -0.08,-0.37 -0.241,-0.461 -0.161,-0.09 -0.472,-0.134 -0.935,-0.134 h -2.551 c -0.652,-0.01 -1.186,-0.055 -1.601,-0.135 -0.416,-0.08 -0.746,-0.215 -0.992,-0.404 -0.246,-0.189 -0.423,-0.444 -0.531,-0.765 -0.109,-0.321 -0.163,-0.737 -0.163,-1.247 0,-0.435 0.082,-0.791 0.248,-1.07 0.165,-0.279 0.394,-0.489 0.687,-0.631 0.293,-0.142 0.633,-0.238 1.02,-0.29 0.387,-0.052 0.841,-0.078 1.361,-0.078 h 1.898 c 0.907,0 1.632,0.036 2.175,0.107 0.543,0.071 0.961,0.189 1.254,0.354 0.293,0.165 0.494,0.383 0.602,0.652 0.108,0.269 0.167,0.63 0.177,1.084 h -2.72 c -0.038,-0.114 -0.09,-0.201 -0.156,-0.262 -0.066,-0.062 -0.168,-0.111 -0.305,-0.149 -0.137,-0.038 -0.324,-0.062 -0.559,-0.071 -0.237,-0.009 -0.572,-0.014 -1.006,-0.014 -0.803,0 -1.316,0.029 -1.537,0.085 -0.222,0.056 -0.333,0.208 -0.333,0.453 0,0.161 0.101,0.272 0.305,0.333 0.203,0.062 0.645,0.092 1.325,0.092 h 1.885 c 0.784,0 1.414,0.062 1.892,0.184 0.477,0.123 0.829,0.29 1.056,0.503 0.227,0.212 0.375,0.451 0.446,0.715 0.071,0.265 0.106,0.591 0.106,0.978 0,0.491 -0.059,0.89 -0.177,1.197 -0.118,0.307 -0.316,0.548 -0.595,0.722 -0.279,0.175 -0.664,0.3 -1.155,0.376 -0.491,0.075 -1.139,0.114 -1.941,0.114 h -2.579 c -1.266,0 -2.154,-0.172 -2.664,-0.517 -0.51,-0.345 -0.765,-0.961 -0.765,-1.849 h 2.803 z"
1373
+ id="path58"
1374
+ inkscape:connector-curvature="0"
1375
+ style="filter: url(#filter32968);" />
1376
+ <path
1377
+ d="m 300.097,79.855 h -2.72 V 77.73 h 2.72 z m 0,8.133 h -2.72 v -7.226 h 2.72 z"
1378
+ id="path60"
1379
+ inkscape:connector-curvature="0"
1380
+ style="filter: url(#filter32920);" />
1381
+ <path
1382
+ d="m 301.274,80.762 h 2.962 l 2.21,5.101 2.21,-5.101 h 2.961 l -3.471,7.226 h -3.401 z"
1383
+ id="path62"
1384
+ inkscape:connector-curvature="0"
1385
+ style="filter: url(#filter32952);" />
1386
+ <path
1387
+ d="m 312.298,83.978 c 0,-0.661 0.078,-1.212 0.234,-1.651 0.156,-0.439 0.38,-0.779 0.673,-1.02 0.293,-0.241 0.64,-0.411 1.042,-0.51 0.401,-0.099 0.866,-0.149 1.396,-0.149 h 1.899 c 0.755,0 1.386,0.048 1.891,0.142 0.505,0.094 0.919,0.255 1.24,0.482 0.321,0.227 0.56,0.541 0.716,0.942 0.156,0.402 0.234,0.919 0.234,1.551 v 1.219 h -6.603 v 0.439 c 0,0.368 0.13,0.624 0.39,0.765 0.26,0.142 0.687,0.213 1.282,0.213 h 0.836 c 0.359,0 0.642,-0.021 0.85,-0.064 0.208,-0.042 0.361,-0.101 0.461,-0.177 0.099,-0.076 0.163,-0.158 0.191,-0.248 0.028,-0.089 0.042,-0.2 0.042,-0.333 h 2.55 v 0.312 c 0,0.435 -0.09,0.799 -0.269,1.091 -0.18,0.293 -0.432,0.52 -0.758,0.68 -0.326,0.161 -0.701,0.274 -1.126,0.34 -0.425,0.066 -0.902,0.099 -1.431,0.099 h -2.04 c -0.52,0 -0.99,-0.038 -1.41,-0.114 -0.421,-0.075 -0.805,-0.231 -1.155,-0.468 -0.349,-0.236 -0.626,-0.586 -0.829,-1.049 -0.203,-0.463 -0.305,-1.063 -0.305,-1.8 v -0.692 z m 6.688,-0.609 c 0,-0.425 -0.127,-0.702 -0.383,-0.829 -0.255,-0.128 -0.789,-0.192 -1.601,-0.192 -0.473,0 -0.834,0.014 -1.084,0.042 -0.25,0.029 -0.442,0.076 -0.574,0.142 -0.133,0.066 -0.22,0.163 -0.262,0.291 -0.042,0.127 -0.064,0.309 -0.064,0.546 z"
1388
+ id="path64"
1389
+ inkscape:connector-curvature="0"
1390
+ style="filter: url(#filter32936);" />
1391
+ <path
1392
+ d="m 329.287,77.729 h 3.443 l 4.01,7.623 4.01,-7.623 h 3.443 l -5.512,10.259 h -3.883 z"
1393
+ id="path66"
1394
+ inkscape:connector-curvature="0"
1395
+ style="fill: #e52d27;" />
1396
+ <path
1397
+ d="m 347.551,79.855 h -2.72 V 77.73 h 2.72 z m 0,8.133 h -2.72 v -7.226 h 2.72 z"
1398
+ id="path68"
1399
+ inkscape:connector-curvature="0"
1400
+ style="fill: #e52d27;" />
1401
+ <path
1402
+ d="m 349.393,83.723 c 0,-0.519 0.045,-0.959 0.135,-1.318 0.09,-0.359 0.267,-0.671 0.531,-0.935 0.264,-0.264 0.654,-0.468 1.169,-0.609 0.515,-0.142 1.193,-0.213 2.033,-0.213 h 0.808 c 0.302,0 0.586,0.024 0.85,0.071 0.264,0.047 0.51,0.125 0.737,0.234 0.227,0.109 0.416,0.258 0.567,0.446 0.151,0.189 0.245,0.421 0.283,0.695 h 0.028 V 77.73 h 2.72 v 10.259 h -2.55 v -1.332 h -0.028 c -0.161,0.473 -0.442,0.831 -0.843,1.077 -0.402,0.246 -0.994,0.369 -1.778,0.369 h -0.793 c -0.841,0 -1.518,-0.071 -2.033,-0.213 -0.515,-0.142 -0.905,-0.345 -1.169,-0.609 -0.265,-0.264 -0.442,-0.576 -0.531,-0.935 -0.09,-0.359 -0.135,-0.798 -0.135,-1.318 v -1.305 z m 2.635,1.077 c 0,0.454 0.087,0.777 0.262,0.971 0.175,0.194 0.565,0.291 1.169,0.291 h 1.601 c 0.576,0 0.994,-0.092 1.254,-0.276 0.26,-0.184 0.39,-0.536 0.39,-1.056 v -0.708 c 0,-0.52 -0.13,-0.871 -0.39,-1.056 -0.26,-0.184 -0.678,-0.276 -1.254,-0.276 h -1.601 c -0.604,0 -0.994,0.097 -1.169,0.29 -0.175,0.194 -0.262,0.517 -0.262,0.971 z"
1403
+ id="path70"
1404
+ inkscape:connector-curvature="0"
1405
+ style="fill: #e52d27;" />
1406
+ <path
1407
+ d="m 360.785,83.978 c 0,-0.661 0.078,-1.212 0.234,-1.651 0.156,-0.439 0.38,-0.779 0.673,-1.02 0.293,-0.241 0.64,-0.411 1.042,-0.51 0.401,-0.099 0.866,-0.149 1.396,-0.149 h 1.899 c 0.755,0 1.386,0.048 1.891,0.142 0.505,0.094 0.919,0.255 1.24,0.482 0.321,0.227 0.56,0.541 0.716,0.942 0.156,0.402 0.234,0.919 0.234,1.551 v 1.219 h -6.603 v 0.439 c 0,0.368 0.13,0.624 0.39,0.765 0.26,0.142 0.687,0.213 1.282,0.213 h 0.836 c 0.359,0 0.642,-0.021 0.85,-0.064 0.208,-0.042 0.361,-0.101 0.461,-0.177 0.099,-0.076 0.163,-0.158 0.191,-0.248 0.028,-0.089 0.042,-0.2 0.042,-0.333 h 2.55 v 0.312 c 0,0.435 -0.09,0.799 -0.269,1.091 -0.18,0.293 -0.432,0.52 -0.758,0.68 -0.326,0.161 -0.701,0.274 -1.126,0.34 -0.425,0.066 -0.902,0.099 -1.431,0.099 h -2.041 c -0.52,0 -0.99,-0.038 -1.41,-0.114 -0.421,-0.075 -0.805,-0.231 -1.155,-0.468 -0.349,-0.236 -0.626,-0.586 -0.829,-1.049 -0.203,-0.463 -0.305,-1.063 -0.305,-1.8 z m 6.688,-0.609 c 0,-0.425 -0.127,-0.702 -0.383,-0.829 -0.255,-0.128 -0.789,-0.192 -1.601,-0.192 -0.473,0 -0.834,0.014 -1.084,0.042 -0.25,0.029 -0.442,0.076 -0.574,0.142 -0.133,0.066 -0.22,0.163 -0.262,0.291 -0.042,0.127 -0.064,0.309 -0.064,0.546 z"
1408
+ id="path72"
1409
+ inkscape:connector-curvature="0"
1410
+ style="fill: #e52d27;" />
1411
+ <path
1412
+ d="m 371.455,83.511 c 0,-0.567 0.085,-1.039 0.255,-1.417 0.17,-0.378 0.399,-0.673 0.687,-0.886 0.288,-0.213 0.604,-0.359 0.949,-0.439 0.345,-0.08 0.711,-0.12 1.098,-0.12 h 4.067 c 0.387,0 0.753,0.04 1.098,0.12 0.345,0.081 0.661,0.227 0.949,0.439 0.288,0.212 0.517,0.508 0.687,0.886 0.17,0.378 0.255,0.85 0.255,1.417 v 1.729 c 0,0.567 -0.085,1.039 -0.255,1.417 -0.17,0.378 -0.399,0.673 -0.687,0.886 -0.288,0.212 -0.604,0.359 -0.949,0.439 -0.345,0.08 -0.711,0.12 -1.098,0.12 h -4.067 c -0.387,0 -0.754,-0.04 -1.098,-0.12 -0.345,-0.08 -0.662,-0.227 -0.949,-0.439 -0.289,-0.213 -0.517,-0.508 -0.687,-0.886 -0.17,-0.378 -0.255,-0.85 -0.255,-1.417 z m 2.72,1.204 c 0,0.501 0.146,0.85 0.439,1.049 0.293,0.198 0.765,0.298 1.417,0.298 h 0.652 c 0.453,0 0.815,-0.019 1.084,-0.057 0.269,-0.038 0.477,-0.099 0.624,-0.184 0.146,-0.085 0.248,-0.201 0.305,-0.347 0.057,-0.146 0.085,-0.347 0.085,-0.602 V 83.88 c 0,-0.255 -0.028,-0.458 -0.085,-0.609 -0.057,-0.151 -0.158,-0.269 -0.305,-0.354 -0.146,-0.085 -0.354,-0.144 -0.624,-0.177 -0.269,-0.033 -0.63,-0.05 -1.084,-0.05 h -0.652 c -0.652,0 -1.124,0.099 -1.417,0.298 -0.293,0.199 -0.439,0.548 -0.439,1.049 z"
1413
+ id="path74"
1414
+ inkscape:connector-curvature="0"
1415
+ style="fill: #e52d27;" />
1416
+ <path
1417
+ d="m 390.314,77.729 h 11.222 v 2.381 h -8.077 v 1.644 h 7.651 v 2.125 h -7.651 v 1.644 h 8.261 v 2.466 h -11.406 z"
1418
+ id="path76"
1419
+ inkscape:connector-curvature="0"
1420
+ style="filter: url(#filter32904);" />
1421
+ <path
1422
+ d="m 403.364,80.762 h 2.593 v 1.417 h 0.028 c 0.066,-0.5 0.312,-0.881 0.737,-1.141 0.425,-0.26 0.982,-0.39 1.672,-0.39 h 1.034 c 1.275,0 2.168,0.562 2.678,1.686 0.227,-0.652 0.52,-1.096 0.878,-1.332 0.359,-0.236 0.926,-0.354 1.7,-0.354 h 0.836 c 1.199,0 2.062,0.276 2.586,0.829 0.524,0.553 0.786,1.368 0.786,2.444 v 4.067 h -2.72 v -3.883 c 0,-0.264 -0.024,-0.479 -0.071,-0.645 -0.047,-0.165 -0.132,-0.295 -0.255,-0.39 -0.246,-0.198 -0.751,-0.298 -1.516,-0.298 -0.671,0 -1.146,0.09 -1.424,0.269 -0.279,0.179 -0.418,0.5 -0.418,0.963 v 3.982 h -2.721 v -4.095 c 0,-0.236 -0.026,-0.425 -0.078,-0.567 -0.052,-0.142 -0.149,-0.253 -0.291,-0.333 -0.142,-0.08 -0.338,-0.137 -0.588,-0.17 -0.25,-0.033 -0.588,-0.05 -1.013,-0.05 -0.604,0 -1.041,0.099 -1.311,0.298 -0.269,0.198 -0.404,0.567 -0.404,1.105 v 3.811 h -2.72 v -7.223 z"
1423
+ id="path78"
1424
+ inkscape:connector-curvature="0"
1425
+ style="filter: url(#filter32888);" />
1426
+ <path
1427
+ d="m 420.636,77.729 h 2.721 v 4.364 h 0.028 c 0.038,-0.274 0.132,-0.505 0.283,-0.695 0.151,-0.189 0.338,-0.338 0.56,-0.446 0.222,-0.108 0.468,-0.186 0.737,-0.234 0.269,-0.048 0.555,-0.071 0.857,-0.071 h 0.807 c 0.841,0 1.518,0.071 2.034,0.213 0.515,0.142 0.904,0.345 1.169,0.609 0.264,0.264 0.441,0.576 0.531,0.935 0.09,0.359 0.135,0.799 0.135,1.318 v 1.304 c 0,0.52 -0.045,0.959 -0.135,1.318 -0.09,0.359 -0.267,0.671 -0.531,0.935 -0.265,0.265 -0.654,0.468 -1.169,0.609 -0.515,0.142 -1.193,0.213 -2.034,0.213 h -0.793 c -0.784,0 -1.377,-0.123 -1.778,-0.369 -0.402,-0.245 -0.682,-0.604 -0.843,-1.077 h -0.029 v 1.332 h -2.55 z m 2.551,7 c 0,0.52 0.13,0.871 0.39,1.056 0.26,0.184 0.677,0.276 1.254,0.276 h 1.601 c 0.604,0 0.994,-0.097 1.169,-0.291 0.175,-0.193 0.262,-0.517 0.262,-0.971 v -0.85 c 0,-0.453 -0.087,-0.777 -0.262,-0.971 -0.175,-0.193 -0.565,-0.29 -1.169,-0.29 h -1.601 c -0.576,0 -0.994,0.092 -1.254,0.276 -0.26,0.184 -0.39,0.536 -0.39,1.056 z"
1428
+ id="path80"
1429
+ inkscape:connector-curvature="0"
1430
+ style="filter: url(#filter32872);" />
1431
+ <path
1432
+ d="m 431.844,83.978 c 0,-0.661 0.078,-1.212 0.234,-1.651 0.156,-0.439 0.38,-0.779 0.673,-1.02 0.293,-0.241 0.64,-0.411 1.042,-0.51 0.401,-0.099 0.866,-0.149 1.396,-0.149 h 1.899 c 0.755,0 1.386,0.048 1.891,0.142 0.505,0.094 0.919,0.255 1.24,0.482 0.321,0.227 0.56,0.541 0.716,0.942 0.156,0.402 0.234,0.919 0.234,1.551 v 1.219 h -6.603 v 0.439 c 0,0.368 0.13,0.624 0.39,0.765 0.26,0.142 0.687,0.213 1.282,0.213 h 0.836 c 0.359,0 0.642,-0.021 0.85,-0.064 0.208,-0.042 0.361,-0.101 0.461,-0.177 0.099,-0.076 0.163,-0.158 0.191,-0.248 0.028,-0.089 0.042,-0.2 0.042,-0.333 h 2.55 v 0.312 c 0,0.435 -0.09,0.799 -0.269,1.091 -0.18,0.293 -0.432,0.52 -0.758,0.68 -0.326,0.161 -0.701,0.274 -1.126,0.34 -0.425,0.066 -0.902,0.099 -1.431,0.099 h -2.04 c -0.52,0 -0.99,-0.038 -1.41,-0.114 -0.421,-0.075 -0.805,-0.231 -1.155,-0.468 -0.349,-0.236 -0.626,-0.586 -0.829,-1.049 -0.203,-0.463 -0.305,-1.063 -0.305,-1.8 v -0.692 z m 6.688,-0.609 c 0,-0.425 -0.127,-0.702 -0.383,-0.829 -0.255,-0.128 -0.789,-0.192 -1.601,-0.192 -0.473,0 -0.834,0.014 -1.084,0.042 -0.25,0.029 -0.442,0.076 -0.574,0.142 -0.133,0.066 -0.22,0.163 -0.262,0.291 -0.042,0.127 -0.064,0.309 -0.064,0.546 z"
1433
+ id="path82"
1434
+ inkscape:connector-curvature="0"
1435
+ style="filter: url(#filter32856);" />
1436
+ <path
1437
+ d="m 442.514,83.723 c 0,-0.519 0.045,-0.959 0.135,-1.318 0.09,-0.359 0.267,-0.671 0.531,-0.935 0.264,-0.264 0.654,-0.468 1.169,-0.609 0.515,-0.142 1.193,-0.213 2.033,-0.213 h 0.808 c 0.302,0 0.586,0.024 0.85,0.071 0.264,0.047 0.51,0.125 0.737,0.234 0.227,0.109 0.416,0.258 0.567,0.446 0.151,0.189 0.245,0.421 0.283,0.695 h 0.028 V 77.73 h 2.72 v 10.259 h -2.55 v -1.332 h -0.028 c -0.161,0.473 -0.442,0.831 -0.843,1.077 -0.402,0.246 -0.994,0.369 -1.778,0.369 h -0.793 c -0.841,0 -1.518,-0.071 -2.033,-0.213 -0.515,-0.142 -0.905,-0.345 -1.169,-0.609 -0.265,-0.264 -0.442,-0.576 -0.531,-0.935 -0.09,-0.359 -0.135,-0.798 -0.135,-1.318 v -1.305 z m 2.635,1.077 c 0,0.454 0.087,0.777 0.262,0.971 0.175,0.194 0.565,0.291 1.169,0.291 h 1.601 c 0.576,0 0.994,-0.092 1.254,-0.276 0.26,-0.184 0.39,-0.536 0.39,-1.056 v -0.708 c 0,-0.52 -0.13,-0.871 -0.39,-1.056 -0.26,-0.184 -0.678,-0.276 -1.254,-0.276 h -1.601 c -0.604,0 -0.994,0.097 -1.169,0.29 -0.175,0.194 -0.262,0.517 -0.262,0.971 z"
1438
+ id="path84"
1439
+ inkscape:connector-curvature="0"
1440
+ style="filter: url(#filter32840);" />
1441
+ <path
1442
+ d="m 454.062,83.723 c 0,-0.519 0.045,-0.959 0.135,-1.318 0.09,-0.359 0.267,-0.671 0.531,-0.935 0.264,-0.264 0.654,-0.468 1.169,-0.609 0.515,-0.142 1.193,-0.213 2.033,-0.213 h 0.808 c 0.302,0 0.586,0.024 0.85,0.071 0.264,0.047 0.51,0.125 0.737,0.234 0.227,0.109 0.416,0.258 0.567,0.446 0.151,0.189 0.245,0.421 0.283,0.695 h 0.028 V 77.73 h 2.72 v 10.259 h -2.55 v -1.332 h -0.028 c -0.161,0.473 -0.442,0.831 -0.843,1.077 -0.402,0.246 -0.994,0.369 -1.778,0.369 h -0.793 c -0.841,0 -1.518,-0.071 -2.033,-0.213 -0.515,-0.142 -0.905,-0.345 -1.169,-0.609 -0.265,-0.264 -0.442,-0.576 -0.531,-0.935 -0.09,-0.359 -0.135,-0.798 -0.135,-1.318 v -1.305 z m 2.635,1.077 c 0,0.454 0.088,0.777 0.262,0.971 0.175,0.194 0.565,0.291 1.169,0.291 h 1.601 c 0.576,0 0.994,-0.092 1.254,-0.276 0.26,-0.184 0.39,-0.536 0.39,-1.056 v -0.708 c 0,-0.52 -0.13,-0.871 -0.39,-1.056 -0.26,-0.184 -0.678,-0.276 -1.254,-0.276 h -1.601 c -0.604,0 -0.994,0.097 -1.169,0.29 -0.175,0.194 -0.262,0.517 -0.262,0.971 z"
1443
+ id="path86"
1444
+ inkscape:connector-curvature="0"
1445
+ style="filter: url(#filter32824);" />
1446
+ <path
1447
+ d="m 465.454,83.978 c 0,-0.661 0.078,-1.212 0.234,-1.651 0.156,-0.439 0.38,-0.779 0.673,-1.02 0.293,-0.241 0.64,-0.411 1.042,-0.51 0.401,-0.099 0.866,-0.149 1.396,-0.149 h 1.899 c 0.755,0 1.386,0.048 1.891,0.142 0.505,0.094 0.919,0.255 1.24,0.482 0.321,0.227 0.56,0.541 0.716,0.942 0.156,0.402 0.234,0.919 0.234,1.551 v 1.219 h -6.603 v 0.439 c 0,0.368 0.13,0.624 0.39,0.765 0.26,0.142 0.687,0.213 1.282,0.213 h 0.836 c 0.359,0 0.642,-0.021 0.85,-0.064 0.208,-0.042 0.361,-0.101 0.461,-0.177 0.099,-0.076 0.163,-0.158 0.191,-0.248 0.028,-0.089 0.042,-0.2 0.042,-0.333 h 2.551 v 0.312 c 0,0.435 -0.09,0.799 -0.269,1.091 -0.18,0.293 -0.432,0.52 -0.758,0.68 -0.326,0.161 -0.701,0.274 -1.126,0.34 -0.425,0.066 -0.902,0.099 -1.431,0.099 h -2.04 c -0.52,0 -0.99,-0.038 -1.41,-0.114 -0.421,-0.075 -0.806,-0.231 -1.155,-0.468 -0.349,-0.236 -0.626,-0.586 -0.829,-1.049 -0.203,-0.463 -0.305,-1.063 -0.305,-1.8 v -0.692 z m 6.688,-0.609 c 0,-0.425 -0.127,-0.702 -0.383,-0.829 -0.255,-0.128 -0.789,-0.192 -1.601,-0.192 -0.473,0 -0.834,0.014 -1.084,0.042 -0.25,0.029 -0.442,0.076 -0.574,0.142 -0.133,0.066 -0.22,0.163 -0.262,0.291 -0.042,0.127 -0.064,0.309 -0.064,0.546 z"
1448
+ id="path88"
1449
+ inkscape:connector-curvature="0"
1450
+ style="filter: url(#filter32808);" />
1451
+ <path
1452
+ d="m 476.307,80.762 h 2.551 v 1.374 h 0.029 c 0.142,-0.539 0.448,-0.921 0.921,-1.148 0.472,-0.227 1.049,-0.34 1.729,-0.34 0.982,0 1.688,0.224 2.118,0.673 0.43,0.448 0.645,1.174 0.645,2.175 0,0.104 0,0.269 -0.014,0.496 -0.01,0.056 -0.014,0.104 -0.014,0.142 h -2.352 c 0,-0.491 -0.088,-0.841 -0.262,-1.049 -0.175,-0.208 -0.522,-0.312 -1.042,-0.312 -0.491,0 -0.878,0.099 -1.162,0.298 -0.283,0.198 -0.425,0.506 -0.425,0.921 v 3.996 h -2.721 v -7.226 z"
1453
+ id="path90"
1454
+ inkscape:connector-curvature="0"
1455
+ style="filter: url(#filter32792);" />
1456
+ <g
1457
+ id="g98"
1458
+ transform="translate(-557.291,-552.87)"
1459
+ style="filter: url(#filter32776);">
1460
+ <g
1461
+ id="g96">
1462
+ <rect
1463
+ id="rect94"
1464
+ height="1.5"
1465
+ width="372.21399"
1466
+ y="645.63"
1467
+ x="670.49597" />
1468
+ </g>
1469
+ </g>
1470
+ <path
1471
+ style="fill: #e52d27;"
1472
+ inkscape:connector-curvature="0"
1473
+ id="path104"
1474
+ d="M 0,0 V 94.219 H 94.219 V 0 Z m 69.557,53.611 -38,21.635 c -4.582,2.609 -8.331,0.429 -8.331,-4.844 v -43.07 c 0,-5.273 3.749,-7.452 8.331,-4.844 l 38,21.635 c 4.582,2.61 4.582,6.879 0,9.488 z" />
1475
+ <g
1476
+ id="g116"
1477
+ transform="translate(-557.291,-552.87)">
1478
+ <path
1479
+ style="fill: #e52d27;"
1480
+ inkscape:connector-curvature="0"
1481
+ id="path106"
1482
+ d="m 589.951,590.727 c -4.731,0 -1.304,0 -6.035,0 -2.84,0 -2.84,4.404 0,4.404 4.731,0 1.304,0 6.035,0 2.84,0 2.84,-4.404 0,-4.404 z" />
1483
+ <path
1484
+ style="fill: #e52d27;"
1485
+ inkscape:connector-curvature="0"
1486
+ id="path108"
1487
+ d="m 589.951,599.535 c -4.731,0 -1.304,0 -6.035,0 -2.84,0 -2.84,4.404 0,4.404 4.731,0 1.304,0 6.035,0 2.84,0.001 2.84,-4.404 0,-4.404 z" />
1488
+ <path
1489
+ style="fill: #e52d27;"
1490
+ inkscape:connector-curvature="0"
1491
+ id="path110"
1492
+ d="m 589.951,617.153 c -4.731,0 -1.304,0 -6.035,0 -2.84,0 -2.84,4.404 0,4.404 4.731,0 1.304,0 6.035,0 2.84,0 2.84,-4.404 0,-4.404 z" />
1493
+ <path
1494
+ style="fill: #e52d27;"
1495
+ inkscape:connector-curvature="0"
1496
+ id="path112"
1497
+ d="m 589.951,608.344 c -4.731,0 -1.304,0 -6.035,0 -2.84,0 -2.84,4.404 0,4.404 4.731,0 1.304,0 6.035,0 2.84,0 2.84,-4.404 0,-4.404 z" />
1498
+ <path
1499
+ style="fill: #e52d27;"
1500
+ inkscape:connector-curvature="0"
1501
+ id="path114"
1502
+ d="m 589.951,581.918 c -4.731,0 -1.304,0 -6.035,0 -2.84,0 -2.84,4.404 0,4.404 4.731,0 1.304,0 6.035,0 2.84,0 2.84,-4.404 0,-4.404 z" />
1503
+ </g>
1504
+ <path
1505
+ style="fill: none;"
1506
+ inkscape:connector-curvature="0"
1507
+ id="path118"
1508
+ d="M 59.488,23.077 C 55.255,15.941 47.465,11.072 38.705,11.072 c -13.16,0 -24.142,10.982 -24.142,24.142 0,3.537 0.798,6.913 2.214,9.964 -4.157,4.353 -6.741,10.214 -6.741,16.592 0,13.16 10.982,24.142 24.142,24.142 0.474,0 0.943,-0.019 1.411,-0.047 l -4.873,-4.844 -5.805,-5.805 0.011,-0.006 c 1.524,1.448 3.931,1.587 6.636,0.047 l 38,-21.635 c 2.797,-1.593 3.877,-3.803 3.259,-5.878 l 0.005,-0.003 4.581,4.604 1.834,1.787 C 79.958,51.866 80.35,49.464 80.35,46.983 80.349,34.934 71.142,24.718 59.488,23.077 Z" />
1509
+ <g
1510
+ id="g127"
1511
+ transform="translate(-557.291,-552.87)">
1512
+ <linearGradient
1513
+ y2="637.09222"
1514
+ x2="624.36292"
1515
+ y1="748.50519"
1516
+ x1="692.52698"
1517
+ gradientUnits="userSpaceOnUse"
1518
+ id="SVGID_1_">
1519
+ <stop
1520
+ id="stop120"
1521
+ style="stop-color: #231f20; stop-opacity: 0;"
1522
+ offset="0" />
1523
+ <stop
1524
+ id="stop122"
1525
+ style="stop-color: #231f20;"
1526
+ offset="1" />
1527
+ </linearGradient>
1528
+ <path
1529
+ style="opacity: .4; fill: url(#SVGID_1_);"
1530
+ inkscape:connector-curvature="0"
1531
+ id="path125"
1532
+ d="m 636.527,607.001 -1.834,-1.787 -4.581,-4.604 -0.005,0.003 c 0.618,2.075 -0.462,4.285 -3.259,5.878 l -38,21.635 c -2.704,1.54 -5.111,1.401 -6.636,-0.047 l -0.011,0.006 5.805,5.805 4.873,4.844 8.511,8.395 50.118,-0.041 v -25.532 z" />
1533
+ </g>
1534
+ </svg>
src/img/icon-128x128.png ADDED
Binary file
src/main.scss ADDED
@@ -0,0 +1,103 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* stylelint-disable selector-max-id */
2
+
3
+ #html {
4
+
5
+ .arve {
6
+ display: block;
7
+ width: 100%;
8
+ margin-bottom: 1.5em;
9
+
10
+ &::after {
11
+ display: table;
12
+ clear: both;
13
+ content: "";
14
+ }
15
+
16
+ &.alignleft {
17
+ margin-top: .4em;
18
+ margin-right: 1.5em;
19
+ }
20
+
21
+ &.alignright {
22
+ margin-top: .4em;
23
+ margin-left: 1.5em;
24
+ }
25
+
26
+ [hidden],
27
+ &[hidden] {
28
+ display: none;
29
+ }
30
+ }
31
+
32
+ .arve-inner {
33
+ display: block;
34
+ width: auto;
35
+ padding: 0;
36
+ margin: 0;
37
+ }
38
+
39
+ .arve-embed {
40
+ position: relative;
41
+ display: block;
42
+ width: 100%;
43
+ max-height: 100vh;
44
+ padding: 0;
45
+ margin: 0;
46
+ overflow: hidden;
47
+ }
48
+
49
+ .arve-embed--has-aspect-ratio {
50
+ aspect-ratio: 16 / 9;
51
+
52
+ &::after {
53
+ display: block;
54
+ clear: both;
55
+ content: "";
56
+ }
57
+ }
58
+
59
+ .arve-ar {
60
+ display: block;
61
+ }
62
+
63
+ .arve-thumbnail,
64
+ .arve-play-btn,
65
+ .arve-iframe {
66
+ position: absolute;
67
+ top: 0;
68
+ bottom: 0;
69
+ left: 0;
70
+ width: 100%;
71
+ height: 100%;
72
+ padding: 0;
73
+ margin: 0;
74
+ border: 0;
75
+ }
76
+
77
+ .arve-video {
78
+ width: 100%;
79
+ height: auto;
80
+ padding: 0;
81
+ margin: 0;
82
+ }
83
+
84
+ .arve-promote-link {
85
+ float: right;
86
+ font-family: "Open Sans", "Sagoe UI", Arvo, Lato, arial, sans-serif;
87
+ font-size: .8em;
88
+ }
89
+ }
90
+
91
+ // Gutenberg sidebar
92
+ .components-button--arve-thumbnail {
93
+ display: block;
94
+ height: auto;
95
+ }
96
+
97
+ @supports (aspect-ratio: 16 / 9) {
98
+
99
+ #html .arve-ar,
100
+ #html .arve-embed--has-aspect-ratio::after {
101
+ display: none;
102
+ }
103
+ }
src/main.ts ADDED
@@ -0,0 +1,95 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import './main.scss';
2
+
3
+ declare global {
4
+ interface Window {
5
+ jQuery;
6
+ }
7
+ }
8
+
9
+ const qsa = document.querySelectorAll.bind(
10
+ document
11
+ ) as typeof document.querySelectorAll;
12
+ const jq = window.jQuery;
13
+
14
+ globalID();
15
+ removeUnwantedStuff();
16
+
17
+ document.addEventListener( 'DOMContentLoaded', (): void => {
18
+ removeUnwantedStuff();
19
+ } );
20
+
21
+ // Mitigation for outdated versions of fitvids
22
+ if ( jq && typeof jq.fn.fitVids !== 'undefined' ) {
23
+ jq( document ).ready( () => {
24
+ setTimeout( () => {
25
+ removeUnwantedStuff();
26
+ }, 1 );
27
+ } );
28
+ }
29
+
30
+ function removeUnwantedStuff(): void {
31
+ qsa(
32
+ '.arve p, .arve .video-wrap, .arve .fluid-width-video-wrapper, .arve .fluid-vids'
33
+ ).forEach( ( el ) => {
34
+ unwrap( el );
35
+ } );
36
+
37
+ // Astor theme fix
38
+ qsa( '.ast-oembed-container' ).forEach( ( el ) => {
39
+ if ( el.querySelector( '.arve' ) ) {
40
+ unwrap( el );
41
+ }
42
+ } );
43
+
44
+ qsa( '.arve br' ).forEach( ( el ) => {
45
+ el.remove();
46
+ } );
47
+
48
+ qsa( '.arve-iframe, .arve-video' ).forEach( ( el ) => {
49
+ el.removeAttribute( 'width' );
50
+ el.removeAttribute( 'height' );
51
+ el.removeAttribute( 'style' );
52
+ } );
53
+
54
+ qsa( '.wp-block-embed' ).forEach( ( el ) => {
55
+ if ( el.querySelector( '.arve' ) ) {
56
+ el.classList.remove(
57
+ 'wp-embed-aspect-16-9',
58
+ 'wp-has-aspect-ratio'
59
+ );
60
+
61
+ const wrapper = el.querySelector( '.wp-block-embed__wrapper' );
62
+
63
+ if ( wrapper ) {
64
+ unwrap( wrapper );
65
+ }
66
+ }
67
+ } );
68
+ }
69
+
70
+ function globalID(): void {
71
+ // Usually the id should be already there added with php using the language_attributes filter
72
+ if ( 'html' === document.documentElement.id ) {
73
+ return;
74
+ }
75
+
76
+ if ( ! document.documentElement.id ) {
77
+ document.documentElement.id = 'html';
78
+ } else if ( ! document.body.id ) {
79
+ document.body.id = 'html';
80
+ }
81
+ }
82
+
83
+ function unwrap( el: Element ): void {
84
+ const parent = el.parentNode;
85
+ // make eslint STFU
86
+ if ( ! parent ) {
87
+ return;
88
+ }
89
+ // move all children out of the element
90
+ while ( parent && el.firstChild ) {
91
+ parent.insertBefore( el.firstChild, el );
92
+ }
93
+ // remove the empty element
94
+ parent.removeChild( el );
95
+ }
src/settings.scss ADDED
@@ -0,0 +1,104 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .wrap--nextgenthemes {
2
+ max-width: 1100px;
3
+ margin-right: auto;
4
+ margin-left: auto;
5
+
6
+ .nav-tab {
7
+ cursor: pointer;
8
+ }
9
+
10
+ .nav-tab:not(.nav-tab--ngt-highlight) {
11
+ font-weight: 400;
12
+ }
13
+
14
+ a {
15
+ text-decoration: none;
16
+ }
17
+ }
18
+
19
+ .wp-core-ui .button-primary--ngt-small {
20
+ height: 18px;
21
+ padding-right: 5px;
22
+ padding-left: 5px;
23
+ line-height: 12px;
24
+ }
25
+
26
+ .nextgenthemes-label-text {
27
+ display: block;
28
+ margin-bottom: 3px;
29
+ font-weight: 600;
30
+
31
+ span {
32
+ opacity: .5;
33
+ }
34
+
35
+ [type="checkbox"] + & {
36
+ display: inline;
37
+ }
38
+ }
39
+
40
+ .wrap--nextgenthemes__loading-indicator {
41
+ width: 16px;
42
+ height: 16px;
43
+ }
44
+
45
+ .ngt-settings-grid {
46
+ display: grid;
47
+ grid-template-areas:
48
+ "content"
49
+ "sidebar";
50
+
51
+ @media (min-width: 750px) {
52
+ grid-column-gap: 2rem;
53
+ grid-template-areas: "content sidebar";
54
+ grid-template-columns: 1fr 300px;
55
+ }
56
+
57
+ @media (min-width: 1200px) {
58
+ grid-column-gap: 3rem;
59
+ grid-template-columns: 1fr 420px;
60
+ }
61
+ }
62
+
63
+ .ngt-settings-grid__content {
64
+ grid-area: content;
65
+ }
66
+
67
+ .ngt-settings-grid__sidebar {
68
+ grid-area: sidebar;
69
+ }
70
+
71
+ .ngt-sidebar-box {
72
+ padding: 1rem;
73
+ margin-top: 1rem;
74
+ margin-bottom: 1rem;
75
+ background: #fff;
76
+ border-left: 4px solid hsl(125.5, 44%, 49%);
77
+ box-shadow: 0 1px 1px 0 rgba(0, 0, 0, .1);
78
+
79
+ h3:first-child {
80
+ margin-top: 0;
81
+ }
82
+
83
+ ul {
84
+ padding-left: 1em;
85
+ list-style: square;
86
+ }
87
+
88
+ li {
89
+ padding-left: .7em;
90
+ margin-bottom: 1em;
91
+ }
92
+
93
+ @media (min-width: 1200px) {
94
+ padding: 3rem;
95
+ }
96
+ }
97
+
98
+ .ngt-debug-textarea {
99
+ width: 100%;
100
+ height: 1000px;
101
+ max-height: calc(100vh - 150px);
102
+ margin-top: 2em;
103
+ font-family: monospace;
104
+ }
src/settings.ts ADDED
@@ -0,0 +1,227 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import Vue from 'vue';
2
+ import './settings.scss';
3
+
4
+ export {};
5
+ declare global {
6
+ interface Window {
7
+ wp;
8
+ jQuery;
9
+ }
10
+ }
11
+
12
+ const url = new URL( window.location.href );
13
+ const pageQueryVal = url.searchParams.get( 'page' );
14
+
15
+ if ( ! pageQueryVal ) {
16
+ throw 'Need page url arg';
17
+ }
18
+
19
+ const data = window[ pageQueryVal ];
20
+ const settings = data.settings as Record< string, OptionProps >;
21
+ const sections = data.sections as Record< string, string >;
22
+
23
+ interface OptionProps {
24
+ label: string;
25
+ tag: string;
26
+ type: string;
27
+ default: number | string | boolean;
28
+ description?: string;
29
+ descriptionlink?: string;
30
+ descriptionlinktext?: string;
31
+ placeholder?: string;
32
+ options?;
33
+ }
34
+
35
+ function buildSectionsDisplayed() {
36
+ const sectionsDisplayed = {};
37
+
38
+ Object.keys( sections ).forEach( ( key ) => {
39
+ sectionsDisplayed[ key ] = 'debug' === key ? false : true;
40
+ } );
41
+
42
+ return sectionsDisplayed;
43
+ }
44
+
45
+ function setAllObjValues( obj, val ) {
46
+ Object.keys( obj ).forEach( ( index ) => {
47
+ obj[ index ] = val;
48
+ } );
49
+ }
50
+
51
+ new Vue( {
52
+ // DOM selector for our app's main wrapper element
53
+ el: '#nextgenthemes-vue',
54
+
55
+ // Data that will be proxied by Vue.js to provide reactivity to our template
56
+ data: {
57
+ errors: [],
58
+ isSaving: false,
59
+ refreshAfterSave: false,
60
+ sectionsDisplayed: buildSectionsDisplayed(),
61
+ onlySectionDisplayed: false,
62
+ message: '',
63
+ vm: data.options,
64
+ },
65
+
66
+ // Methods that can be invoked from within our template
67
+ methods: {
68
+ // Save the options to the database
69
+ saveOptions() {
70
+ // set the state so that another save cannot happen while processing
71
+ this.isSaving = true;
72
+
73
+ // Make a POST request to the REST API route that we registered in our PHP file
74
+ window.jQuery.ajax( {
75
+ url: data.rest_url + '/save',
76
+ method: 'POST',
77
+ data: this.vm,
78
+
79
+ // set the nonce in the request header
80
+ beforeSend( request ) {
81
+ request.setRequestHeader( 'X-WP-Nonce', data.nonce );
82
+ },
83
+
84
+ // callback to run upon successful completion of our request
85
+ success: () => {
86
+ this.message = 'Options saved';
87
+ setTimeout( () => ( this.message = '' ), 1000 );
88
+ },
89
+
90
+ // callback to run if our request caused an error
91
+ error: ( errorData ) => {
92
+ this.message = errorData.responseText;
93
+ this.refreshAfterSave = false;
94
+ },
95
+
96
+ // when our request is complete (successful or not), reset the state to indicate we are no longer saving
97
+ complete: () => {
98
+ this.isSaving = false;
99
+ if ( this.refreshAfterSave ) {
100
+ this.refreshAfterSave = false;
101
+ window.location.reload();
102
+ }
103
+ },
104
+ } );
105
+ }, // end: saveOptions
106
+ resetOptions( tag = 'all' ) {
107
+ if ( 'all' === tag ) {
108
+ Object.entries( settings ).forEach( ( [ key, value ] ) => {
109
+ this.vm[ key ] = value.default;
110
+ } );
111
+ } else {
112
+ Object.entries( settings ).forEach( ( [ key, value ] ) => {
113
+ if ( tag === value.tag ) {
114
+ this.vm[ key ] = value.default;
115
+ }
116
+ } );
117
+ }
118
+ this.saveOptions();
119
+ },
120
+ licenseAPI( action, itemID, optKey ) {
121
+ // set the state so that another save cannot happen while processing
122
+ this.isSaving = true;
123
+
124
+ // Make a POST request to the REST API route that we registered in our PHP file
125
+ window.jQuery.ajax( {
126
+ url: 'https://nextgenthemes.com',
127
+ method: 'POST',
128
+ crossDomain: true,
129
+ data: {
130
+ edd_action: action + '_license', // Valid actions are activate_license, deactivate_license, get_version, check_license
131
+ license: this.vm[ optKey ],
132
+ item_id: itemID,
133
+ url: data.home_url,
134
+ },
135
+
136
+ // callback to run upon successful completion of our request
137
+ success: ( response ) => {
138
+ this.message = 'License API call saved';
139
+ setTimeout( () => ( this.message = '' ), 1000 );
140
+ },
141
+
142
+ // callback to run if our request caused an error
143
+ error: ( errorData ) =>
144
+ ( this.message = errorData.responseText ),
145
+
146
+ // when our request is complete (successful or not), reset the state to indicate we are no longer saving
147
+ complete: () => ( this.isSaving = false ),
148
+ } );
149
+ }, // end: saveOptions
150
+ licenseAPI_native( action, itemID, optKey ) {
151
+ // Handling a SoftwAre licensing request without jQuery in pure JavaScript
152
+ const xhttp = new XMLHttpRequest();
153
+
154
+ // The url to the site running Easy Digital Downloads w/ Software Licensing
155
+ const postUrl = 'https://nextgenthemes.com';
156
+
157
+ xhttp.onreadystatechange = function () {
158
+ console.log('xhttp.readyState', xhttp.readyState); // eslint-disable-line
159
+ console.log('xhttp.status', xhttp.status); // eslint-disable-line
160
+
161
+ if ( xhttp.readyState === 4 && xhttp.status === 200 ) {
162
+ const slData = JSON.parse( xhttp.responseText );
163
+ console.log('slData', slData); // eslint-disable-line
164
+ }
165
+ };
166
+
167
+ const args = {
168
+ edd_action: action + '_license', // Valid actions are activate_license, deactivate_license, get_version, check_license
169
+ license: this.vm[ optKey ],
170
+ item_id: itemID,
171
+ url: data.home_url,
172
+ };
173
+
174
+ xhttp.open( 'POST', postUrl, true );
175
+ //xhttp.setRequestHeader( 'Content-type', 'application/x-www-form-urlencoded' );
176
+ xhttp.setRequestHeader(
177
+ 'Content-type',
178
+ 'application/json; charset=utf-8'
179
+ );
180
+ xhttp.setRequestHeader(
181
+ 'Access-Control-Allow-Origin',
182
+ data.home_url
183
+ );
184
+
185
+ let values = '';
186
+ for ( const key in args ) {
187
+ values += key + '=' + data[ key ] + '&';
188
+ }
189
+ values = values.substring( 0, values.length - 1 );
190
+ xhttp.send( values );
191
+ },
192
+ showSection( section ) {
193
+ setAllObjValues( this.sectionsDisplayed, false );
194
+ this.sectionsDisplayed[ section ] = true;
195
+ this.onlySectionDisplayed = section;
196
+ },
197
+ showAllSectionsButDebug() {
198
+ setAllObjValues( this.sectionsDisplayed, true );
199
+ this.sectionsDisplayed.debug = false;
200
+ this.onlySectionDisplayed = false;
201
+ },
202
+ uploadImage( dataKey ) {
203
+ const vueThis = this;
204
+ const image = window.wp
205
+ .media( {
206
+ title: 'Upload Image',
207
+ multiple: false,
208
+ } )
209
+ .open()
210
+ .on( 'select', function () {
211
+ // This will return the selected image from the Media Uploader, the result is an object
212
+ const uploadedImage = image
213
+ .state()
214
+ .get( 'selection' )
215
+ .first();
216
+ // We convert uploadedImage to a JSON object to make accessing it easier
217
+ const attachmentID = uploadedImage.toJSON().id;
218
+ vueThis.vm[ dataKey ] = attachmentID;
219
+ } );
220
+ },
221
+ action( action, product ) {
222
+ this.vm.action = JSON.stringify( { action, product } );
223
+ this.refreshAfterSave = true;
224
+ this.saveOptions();
225
+ },
226
+ }, // end: methods
227
+ } ); // end: Vue()
src/shortcode-ui.ts ADDED
@@ -0,0 +1,50 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ export {};
2
+ declare global {
3
+ interface Window {
4
+ wp;
5
+ _;
6
+ }
7
+ }
8
+
9
+ const _ = window._;
10
+ const domParser = new DOMParser();
11
+
12
+ function arveExtractURL( changed, collection, shortcode ) {
13
+ function attrByName( name ) {
14
+ return _.find( collection, function ( viewModel ) {
15
+ return name === viewModel.model.get( 'attr' );
16
+ } );
17
+ }
18
+
19
+ const val = changed.value;
20
+ // let urlInput = null;
21
+ // let arInput = null;
22
+ // urlInput = attrByName('url').$el.find('input');
23
+ // arInput = attrByName('aspect_ratio').$el.find('input');
24
+
25
+ if ( typeof val === 'undefined' ) {
26
+ return;
27
+ }
28
+
29
+ const urlInput = attrByName( 'url' ).$el.find( 'input' );
30
+ const arInput = attrByName( 'aspect_ratio' ).$el.find( 'input' );
31
+
32
+ // <iframe src="https://example.com" width="640" height="360"></iframe>
33
+
34
+ const $iframe = domParser
35
+ .parseFromString( val, 'text/html' )
36
+ .querySelector( 'iframe' );
37
+
38
+ if ( $iframe && $iframe.hasAttribute( 'src' ) ) {
39
+ urlInput.val( $iframe.src ).trigger( 'input' );
40
+
41
+ const w = $iframe.width;
42
+ const h = $iframe.height;
43
+
44
+ if ( w && h ) {
45
+ arInput.val( w + ':' + h ).trigger( 'input' );
46
+ }
47
+ }
48
+ }
49
+
50
+ window.wp.shortcake.hooks.addAction( 'arve.url', arveExtractURL );