-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ( defined( 'SCRIPT_DEBUG' ) && true === SCRIPT_DEBUG ),
- 'noFileSelected' => esc_html__( 'No File Selected', 'kirki' ),
- 'remove' => esc_html__( 'Remove', 'kirki' ),
- 'default' => esc_html__( 'Default', 'kirki' ),
- 'selectFile' => esc_html__( 'Select File', 'kirki' ),
- 'standardFonts' => esc_html__( 'Standard Fonts', 'kirki' ),
- 'googleFonts' => esc_html__( 'Google Fonts', 'kirki' ),
- 'defaultCSSValues' => esc_html__( 'CSS Defaults', 'kirki' ),
- 'defaultBrowserFamily' => esc_html__( 'Default Browser Font-Family', 'kirki' ),
- )
- );
-
- $suffix = str_replace( '.min', '', $suffix );
-
- // Enqueue the style.
- wp_enqueue_style(
- 'kirki-styles',
- "{$kirki_url}controls/css/styles{$suffix}.css",
- array(),
- KIRKI_VERSION
- );
- }
-
- /**
- * Refresh the parameters passed to the JavaScript via JSON.
- *
- * @see WP_Customize_Control::to_json()
- */
- public function to_json() {
-
- // Get the basics from the parent class.
- parent::to_json();
-
- // Default value.
- $this->json['default'] = $this->setting->default;
- if ( isset( $this->default ) ) {
- $this->json['default'] = $this->default;
- }
-
- // Required.
- $this->json['required'] = $this->required;
-
- // Output.
- $this->json['output'] = $this->output;
-
- // Value.
- $this->json['value'] = $this->value();
-
- // Choices.
- $this->json['choices'] = $this->choices;
-
- // The link.
- $this->json['link'] = $this->get_link();
-
- // The ID.
- $this->json['id'] = $this->id;
-
- // Translation strings.
- $this->json['l10n'] = $this->l10n();
-
- // The ajaxurl in case we need it.
- $this->json['ajaxurl'] = admin_url( 'admin-ajax.php' );
-
- // Input attributes.
- $this->json['inputAttrs'] = '';
- foreach ( $this->input_attrs as $attr => $value ) {
- $this->json['inputAttrs'] .= $attr . '="' . esc_attr( $value ) . '" ';
- }
-
- // The kirki-config.
- $this->json['kirkiConfig'] = $this->kirki_config;
-
- // The option-type.
- $this->json['kirkiOptionType'] = $this->option_type;
-
- // The option-name.
- $this->json['kirkiOptionName'] = $this->option_name;
-
- // The preset.
- $this->json['preset'] = $this->preset;
-
- // The CSS-Variables.
- $this->json['css-var'] = $this->css_vars;
- }
-
- /**
- * Render the control's content.
- *
- * Allows the content to be overridden without having to rewrite the wrapper in `$this::render()`.
- *
- * Control content can alternately be rendered in JS. See WP_Customize_Control::print_template().
- *
- * @since 3.4.0
- */
- protected function render_content() {}
-
- /**
- * An Underscore (JS) template for this control's content (but not its container).
- *
- * Class variables for this control class are available in the `data` JS object;
- * export custom variables by overriding {@see WP_Customize_Control::to_json()}.
- *
- * @see WP_Customize_Control::print_template()
- *
- * @access protected
- */
- protected function content_template() {}
-
- /**
- * Returns an array of translation strings.
- *
- * @access protected
- * @since 3.0.0
- * @return array
- */
- protected function l10n() {
- return array();
- }
-}
diff --git a/functions/kirki/controls/php/class-kirki-control-checkbox.php b/functions/kirki/controls/php/class-kirki-control-checkbox.php
deleted file mode 100644
index 30fc73e..0000000
--- a/functions/kirki/controls/php/class-kirki-control-checkbox.php
+++ /dev/null
@@ -1,56 +0,0 @@
-render_content.
- *
- * @since 3.0.26
- */
- protected function render_content() {
- $input_id = '_customize-input-' . $this->id;
- $description_id = '_customize-description-' . $this->id;
- ?>
-
- description ) ) ? ' aria-describedby="' . esc_attr( $description_id ) . '" ' : ''; ?>
- type="checkbox"
- value="value() ); ?>"
- link(); ?>
- value() ); ?>
- />
-
- description ) ) : ?>
- description ); ?>
-
-
- json['required'] = $this->required;
- }
-}
diff --git a/functions/kirki/controls/php/class-kirki-control-color-palette.php b/functions/kirki/controls/php/class-kirki-control-color-palette.php
deleted file mode 100644
index 507e59e..0000000
--- a/functions/kirki/controls/php/class-kirki-control-color-palette.php
+++ /dev/null
@@ -1,79 +0,0 @@
-json['choices']['colors'] ) || empty( $this->json['choices']['colors'] ) ) {
- $this->json['choices']['colors'] = Kirki_Helper::get_material_design_colors( 'primary' );
- }
- if ( ! isset( $this->json['choices']['size'] ) || empty( $this->json['choices']['size'] ) ) {
- $this->json['choices']['size'] = 20;
- }
- }
-
- /**
- * An Underscore (JS) template for this control's content (but not its container).
- *
- * Class variables for this control class are available in the `data` JS object;
- * export custom variables by overriding {@see WP_Customize_Control::to_json()}.
- *
- * @see WP_Customize_Control::print_template()
- *
- * @access protected
- */
- protected function content_template() {
- ?>
- <# if ( ! data.choices ) { return; } #>
-
- {{{ data.label }}}
-
- <# if ( data.description ) { #>
-
{{{ data.description }}}
- <# } #>
-
- <# for ( key in data.choices['colors'] ) { #>
- checked<# } #>>
-
-
- <# } #>
-
- json['palette'] = $this->palette;
- $this->json['choices']['alpha'] = ( isset( $this->choices['alpha'] ) && $this->choices['alpha'] ) ? 'true' : 'false';
- $this->json['mode'] = $this->mode;
- }
-}
diff --git a/functions/kirki/controls/php/class-kirki-control-cropped-image.php b/functions/kirki/controls/php/class-kirki-control-cropped-image.php
deleted file mode 100644
index 9cae4d8..0000000
--- a/functions/kirki/controls/php/class-kirki-control-cropped-image.php
+++ /dev/null
@@ -1,37 +0,0 @@
-json['required'] = $this->required;
- }
-}
diff --git a/functions/kirki/controls/php/class-kirki-control-dashicons.php b/functions/kirki/controls/php/class-kirki-control-dashicons.php
deleted file mode 100644
index 6002d65..0000000
--- a/functions/kirki/controls/php/class-kirki-control-dashicons.php
+++ /dev/null
@@ -1,156 +0,0 @@
-json['icons'] = Kirki_Helper::get_dashicons();
- }
-
- /**
- * An Underscore (JS) template for this control's content (but not its container).
- *
- * Class variables for this control class are available in the `data` JS object;
- * export custom variables by overriding {@see WP_Customize_Control::to_json()}.
- *
- * @see WP_Customize_Control::print_template()
- *
- * @access protected
- */
- protected function content_template() {
- ?>
- <# if ( data.label ) { #>
{{{ data.label }}}<# } #>
- <# if ( data.description ) { #>
{{{ data.description }}}<# } #>
-
- <# if ( ! _.isUndefined( data.choices ) && 1 < _.size( data.choices ) ) { #>
- <# for ( key in data.choices ) { #>
- checked="checked"<# } #>>
-
-
- <# } #>
- <# } else { #>
-
Admin Menu
- <# for ( key in data.icons['admin-menu'] ) { #>
- checked="checked"<# } #>>
-
-
- <# } #>
- Welcome Screen
- <# for ( key in data.icons['welcome-screen'] ) { #>
- checked="checked"<# } #>>
-
-
- <# } #>
- Post Formats
- <# for ( key in data.icons['post-formats'] ) { #>
- checked="checked"<# } #>>
-
-
- <# } #>
- Media
- <# for ( key in data.icons['media'] ) { #>
- checked="checked"<# } #>>
-
-
- <# } #>
- Image Editing
- <# for ( key in data.icons['image-editing'] ) { #>
- checked="checked"<# } #>>
-
-
- <# } #>
- TinyMCE
- <# for ( key in data.icons['tinymce'] ) { #>
- checked="checked"<# } #>>
-
-
- <# } #>
- Posts
- <# for ( key in data.icons['posts'] ) { #>
- checked="checked"<# } #>>
-
-
- <# } #>
- Sorting
- <# for ( key in data.icons['sorting'] ) { #>
- checked="checked"<# } #>>
-
-
- <# } #>
- Social
- <# for ( key in data.icons['social'] ) { #>
- checked="checked"<# } #>>
-
-
- <# } #>
- WordPress
- <# for ( key in data.icons['wordpress_org'] ) { #>
- checked="checked"<# } #>>
-
-
- <# } #>
- Products
- <# for ( key in data.icons['products'] ) { #>
- checked="checked"<# } #>>
-
-
- <# } #>
- Taxonomies
- <# for ( key in data.icons['taxonomies'] ) { #>
- checked="checked"<# } #>>
-
-
- <# } #>
- Widgets
- <# for ( key in data.icons['widgets'] ) { #>
- checked="checked"<# } #>>
-
-
- <# } #>
- Notifications
- <# for ( key in data.icons['notifications'] ) { #>
- checked="checked"<# } #>>
-
-
- <# } #>
- Misc
- <# for ( key in data.icons['misc'] ) { #>
- checked="checked"<# } #>>
-
-
- <# } #>
- <# } #>
-
-
-
- esc_html__( 'Invalid Value', 'kirki' ),
- )
- );
- }
-
- /**
- * An Underscore (JS) template for this control's content (but not its container).
- *
- * Class variables for this control class are available in the `data` JS object;
- * export custom variables by overriding {@see WP_Customize_Control::to_json()}.
- *
- * @see WP_Customize_Control::print_template()
- *
- * @access protected
- */
- protected function content_template() {
- ?>
-
- choices ) ) {
- foreach ( $this->choices as $choice => $value ) {
- if ( 'labels' !== $choice && true === $value ) {
- $this->json['choices'][ $choice ] = true;
- }
- }
- }
- if ( is_array( $this->json['default'] ) ) {
- foreach ( $this->json['default'] as $key => $value ) {
- if ( isset( $this->json['choices'][ $key ] ) && ! isset( $this->json['value'][ $key ] ) ) {
- $this->json['value'][ $key ] = $value;
- }
- }
- }
- }
-
- /**
- * Enqueue control related scripts/styles.
- *
- * @access public
- */
- public function enqueue() {
- wp_enqueue_style( 'kirki-styles', trailingslashit( Kirki::$url ) . 'controls/css/styles.css', array(), KIRKI_VERSION );
- wp_localize_script( 'kirki-script', 'dimensionskirkiL10n', $this->l10n() );
- }
-
- /**
- * An Underscore (JS) template for this control's content (but not its container).
- *
- * Class variables for this control class are available in the `data` JS object;
- * export custom variables by overriding {@see WP_Customize_Control::to_json()}.
- *
- * @see WP_Customize_Control::print_template()
- *
- * @access protected
- */
- protected function content_template() {
- ?>
-
- esc_html__( 'Left Top', 'kirki' ),
- 'left-center' => esc_html__( 'Left Center', 'kirki' ),
- 'left-bottom' => esc_html__( 'Left Bottom', 'kirki' ),
- 'right-top' => esc_html__( 'Right Top', 'kirki' ),
- 'right-center' => esc_html__( 'Right Center', 'kirki' ),
- 'right-bottom' => esc_html__( 'Right Bottom', 'kirki' ),
- 'center-top' => esc_html__( 'Center Top', 'kirki' ),
- 'center-center' => esc_html__( 'Center Center', 'kirki' ),
- 'center-bottom' => esc_html__( 'Center Bottom', 'kirki' ),
- 'font-size' => esc_html__( 'Font Size', 'kirki' ),
- 'font-weight' => esc_html__( 'Font Weight', 'kirki' ),
- 'line-height' => esc_html__( 'Line Height', 'kirki' ),
- 'font-style' => esc_html__( 'Font Style', 'kirki' ),
- 'letter-spacing' => esc_html__( 'Letter Spacing', 'kirki' ),
- 'word-spacing' => esc_html__( 'Word Spacing', 'kirki' ),
- 'top' => esc_html__( 'Top', 'kirki' ),
- 'bottom' => esc_html__( 'Bottom', 'kirki' ),
- 'left' => esc_html__( 'Left', 'kirki' ),
- 'right' => esc_html__( 'Right', 'kirki' ),
- 'center' => esc_html__( 'Center', 'kirki' ),
- 'size' => esc_html__( 'Size', 'kirki' ),
- 'spacing' => esc_html__( 'Spacing', 'kirki' ),
- 'width' => esc_html__( 'Width', 'kirki' ),
- 'height' => esc_html__( 'Height', 'kirki' ),
- 'invalid-value' => esc_html__( 'Invalid Value', 'kirki' ),
- );
- }
-}
diff --git a/functions/kirki/controls/php/class-kirki-control-editor.php b/functions/kirki/controls/php/class-kirki-control-editor.php
deleted file mode 100644
index 5022d83..0000000
--- a/functions/kirki/controls/php/class-kirki-control-editor.php
+++ /dev/null
@@ -1,55 +0,0 @@
-
-
-
- json['alpha'] = (bool) $this->alpha;
- }
-
- /**
- * An Underscore (JS) template for this control's content (but not its container).
- *
- * Class variables for this control class are available in the `data` JS object;
- * export custom variables by overriding {@see WP_Customize_Control::to_json()}.
- *
- * @see WP_Customize_Control::print_template()
- *
- * @access protected
- */
- protected function content_template() {
- ?>
-
- {{{ data.label }}}
-
- <# if ( data.description ) { #>
-
{{{ data.description }}}
- <# } #>
-
- <# for ( key in data.choices ) { #>
- <# if ( 'irisArgs' !== key ) { #>
-
-
-
- <# } #>
- <# } #>
-
-
- json['multiple'] = $this->multiple;
- $this->json['placeholder'] = $this->placeholder;
- }
-}
diff --git a/functions/kirki/controls/php/class-kirki-control-slider.php b/functions/kirki/controls/php/class-kirki-control-slider.php
deleted file mode 100644
index b8b280e..0000000
--- a/functions/kirki/controls/php/class-kirki-control-slider.php
+++ /dev/null
@@ -1,76 +0,0 @@
-json['choices'] = wp_parse_args(
- $this->json['choices'],
- array(
- 'min' => '0',
- 'max' => '100',
- 'step' => '1',
- 'suffix' => '',
- )
- );
- }
-
- /**
- * An Underscore (JS) template for this control's content (but not its container).
- *
- * Class variables for this control class are available in the `data` JS object;
- * export custom variables by overriding {@see WP_Customize_Control::to_json()}.
- *
- * @see WP_Customize_Control::print_template()
- *
- * @access protected
- */
- protected function content_template() {
- ?>
-
-
-
-
- {{{ data.label }}}
-
- <# if ( data.description ) { #>
- {{{ data.description }}}
- <# } #>
- checked<# } #> />
-
-
-
-
- json['value'] ) ) {
- foreach ( array_keys( $this->json['value'] ) as $key ) {
- if ( ! in_array( $key, array( 'variant', 'font-weight', 'font-style' ), true ) && ! isset( $this->json['default'][ $key ] ) ) {
- unset( $this->json['value'][ $key ] );
- }
-
- // Fix for https://wordpress.org/support/topic/white-font-after-updateing-to-3-0-16.
- if ( ! isset( $this->json['default'][ $key ] ) ) {
- unset( $this->json['value'][ $key ] );
- }
-
- // Fix for https://github.com/aristath/kirki/issues/1405.
- if ( isset( $this->json['default'][ $key ] ) && false === $this->json['default'][ $key ] ) {
- unset( $this->json['value'][ $key ] );
- }
- }
- }
-
- $this->json['show_variants'] = ( true === Kirki_Fonts_Google::$force_load_all_variants ) ? false : true;
- }
-
- /**
- * An Underscore (JS) template for this control's content (but not its container).
- *
- * Class variables for this control class are available in the `data` JS object;
- * export custom variables by overriding {@see WP_Customize_Control::to_json()}.
- *
- * @see WP_Customize_Control::print_template()
- *
- * @access protected
- */
- protected function content_template() {
- ?>
-
-
-
-
- <# if ( ! _.isUndefined( data.default['font-family'] ) ) { #>
- <# data.value['font-family'] = data.value['font-family'] || data['default']['font-family']; #>
- <# if ( data.choices['fonts'] ) { data.fonts = data.choices['fonts']; } #>
-
-
-
-
- <# if ( ! _.isUndefined( data.choices['font-backup'] ) && true === data.choices['font-backup'] ) { #>
-
-
-
-
- <# } #>
- <# if ( true === data.show_variants || false !== data.default.variant ) { #>
-
-
-
-
- <# } #>
- <# } #>
-
- <# if ( ! _.isUndefined( data.default['font-size'] ) ) { #>
- <# data.value['font-size'] = data.value['font-size'] || data['default']['font-size']; #>
-
-
-
-
- <# } #>
-
- <# if ( ! _.isUndefined( data.default['line-height'] ) ) { #>
- <# data.value['line-height'] = data.value['line-height'] || data['default']['line-height']; #>
-
-
-
-
- <# } #>
-
- <# if ( ! _.isUndefined( data.default['letter-spacing'] ) ) { #>
- <# data.value['letter-spacing'] = data.value['letter-spacing'] || data['default']['letter-spacing']; #>
-
-
-
-
- <# } #>
-
- <# if ( ! _.isUndefined( data.default['word-spacing'] ) ) { #>
- <# data.value['word-spacing'] = data.value['word-spacing'] || data['default']['word-spacing']; #>
-
-
-
-
- <# } #>
-
- <# if ( ! _.isUndefined( data.default['text-align'] ) ) { #>
- <# data.value['text-align'] = data.value['text-align'] || data['default']['text-align']; #>
-
- <# } #>
-
- <# if ( ! _.isUndefined( data.default['text-transform'] ) ) { #>
- <# data.value['text-transform'] = data.value['text-transform'] || data['default']['text-transform']; #>
-
-
-
-
- <# } #>
-
- <# if ( ! _.isUndefined( data.default['text-decoration'] ) ) { #>
- <# data.value['text-decoration'] = data.value['text-decoration'] || data['default']['text-decoration']; #>
-
-
-
-
- <# } #>
-
- <# if ( ! _.isUndefined( data.default['margin-top'] ) ) { #>
- <# data.value['margin-top'] = data.value['margin-top'] || data['default']['margin-top']; #>
-
-
-
-
- <# } #>
-
- <# if ( ! _.isUndefined( data.default['margin-bottom'] ) ) { #>
- <# data.value['margin-bottom'] = data.value['margin-bottom'] || data['default']['margin-bottom']; #>
-
-
-
-
- <# } #>
-
- <# if ( ! _.isUndefined( data.default['color'] ) && false !== data.default['color'] ) { #>
- <# data.value['color'] = data.value['color'] || data['default']['color']; #>
-
-
-
-
- <# } #>
-
-
-
- $variant,
- 'label' => isset( $all_variants[ $variant ] ) ? $all_variants[ $variant ] : $variant,
- );
- } elseif ( is_array( $variant ) && isset( $variant['id'] ) && isset( $variant['label'] ) ) {
- $final_variants[] = $variant;
- }
- }
- return $final_variants;
- }
-}
diff --git a/functions/kirki/controls/php/class-kirki-control-upload.php b/functions/kirki/controls/php/class-kirki-control-upload.php
deleted file mode 100644
index 33a9b61..0000000
--- a/functions/kirki/controls/php/class-kirki-control-upload.php
+++ /dev/null
@@ -1,37 +0,0 @@
-json['required'] = $this->required;
- }
-}
diff --git a/functions/kirki/controls/views/code.php b/functions/kirki/controls/views/code.php
deleted file mode 100644
index afed639..0000000
--- a/functions/kirki/controls/views/code.php
+++ /dev/null
@@ -1,36 +0,0 @@
-
-<#
-data = _.defaults( data, {
- id: '',
- label: '',
- description: '',
- input_attrs: {}
-});
-<# var elementIdPrefix = 'el' + String( Math.random() ); #>
-
diff --git a/functions/kirki/controls/views/color.php b/functions/kirki/controls/views/color.php
deleted file mode 100644
index 93d288c..0000000
--- a/functions/kirki/controls/views/color.php
+++ /dev/null
@@ -1,47 +0,0 @@
-
-<#
-data = _.defaults( data, {
- label: '',
- description: '',
- mode: 'full',
- inputAttrs: '',
- 'data-palette': data['data-palette'] ? data['data-palette'] : true,
- 'data-default-color': data['data-default-color'] ? data['data-default-color'] : '',
- 'data-alpha': data['data-alpha'] ? data['data-alpha'] : false,
- value: '',
- 'data-id': ''
-} );
-#>
-
-
-
-
-
diff --git a/functions/kirki/controls/views/generic.php b/functions/kirki/controls/views/generic.php
deleted file mode 100644
index 11cf33e..0000000
--- a/functions/kirki/controls/views/generic.php
+++ /dev/null
@@ -1,43 +0,0 @@
-
-<#
-element = ( data.choices.element ) ? data.choices.element : 'input';
-data = _.defaults( data, {
- label: '',
- description: '',
- inputAttrs: '',
- value: '',
- 'data-id': '',
- choices: {}
-} );
-#>
-
diff --git a/functions/kirki/controls/views/image.php b/functions/kirki/controls/views/image.php
deleted file mode 100644
index e3a381a..0000000
--- a/functions/kirki/controls/views/image.php
+++ /dev/null
@@ -1,67 +0,0 @@
-
-<#
-data = _.defaults( data, {
- id: '',
- label: '',
- description: '',
- input_attrs: {},
- choices: {}
-});
-
-var saveAs = 'url';
-if ( ! _.isUndefined( data.choices.save_as ) ) {
- saveAs = data.choices.save_as;
-}
-
-url = data.value;
-if ( _.isObject( data.value ) && ! _.isUndefined( data.value.url ) ) {
- url = data.value.url;
-}
-
-data.choices.labels = _.isObject( data.choices.labels ) ? data.choices.labels : {};
-data.choices.labels = _.defaults( data.choices.labels, {
- select: '',
- change: '',
- 'default': '',
- remove: '',
- placeholder: '',
- frame_title: '',
- frame_button: '',
-} );
-#>
-
-
-
diff --git a/functions/kirki/controls/views/number.php b/functions/kirki/controls/views/number.php
deleted file mode 100644
index d86b10a..0000000
--- a/functions/kirki/controls/views/number.php
+++ /dev/null
@@ -1,37 +0,0 @@
-
-<#
-data = _.defaults( data, {
- label: '',
- description: '',
- inputAttrs: '',
- value: '',
- 'data-id': ''
-} );
-#>
-
-
diff --git a/functions/kirki/controls/views/radio.php b/functions/kirki/controls/views/radio.php
deleted file mode 100644
index b12bad9..0000000
--- a/functions/kirki/controls/views/radio.php
+++ /dev/null
@@ -1,48 +0,0 @@
-
-<# data = _.defaults( data, {
- choices: {},
- label: '',
- description: '',
- inputAttrs: '',
- value: '',
- 'data-id': '',
- 'default': ''
-} );
-#>
-
-
- <# if ( data.label ) { #>
- {{{ data.label }}}
- <# } #>
- <# if ( data.description ) { #>
- {{{ data.description }}}
- <# } #>
- <# _.each( data.choices, function( val, key ) { #>
-
- <# } ); #>
-
diff --git a/functions/kirki/controls/views/select.php b/functions/kirki/controls/views/select.php
deleted file mode 100644
index 2c56485..0000000
--- a/functions/kirki/controls/views/select.php
+++ /dev/null
@@ -1,72 +0,0 @@
-
-<#
-data = _.defaults( data, {
- label: '',
- description: '',
- inputAttrs: '',
- 'data-id': '',
- choices: {},
- multiple: 1,
- value: ( 1 < data.multiple ) ? [] : '',
- placeholder: false
-} );
-
-if ( 1 < data.multiple && data.value && _.isString( data.value ) ) {
- data.value = [ data.value ];
-}
-#>
-
-
-
diff --git a/functions/kirki/controls/views/textarea.php b/functions/kirki/controls/views/textarea.php
deleted file mode 100644
index 4e84a38..0000000
--- a/functions/kirki/controls/views/textarea.php
+++ /dev/null
@@ -1,41 +0,0 @@
-
-<#
-data = _.defaults( data, {
- label: '',
- description: '',
- inputAttrs: '',
- value: '',
- 'data-id': '',
- choices: {}
-} );
-#>
-
diff --git a/functions/kirki/core/class-kirki-helper.php b/functions/kirki/core/class-kirki-helper.php
deleted file mode 100644
index 8617452..0000000
--- a/functions/kirki/core/class-kirki-helper.php
+++ /dev/null
@@ -1,456 +0,0 @@
- $value ) {
-
- // Create new key in $array, if it is empty or not an array.
- if ( ! isset( $array[ $key ] ) || ( isset( $array[ $key ] ) && ! is_array( $array[ $key ] ) ) ) {
- $array[ $key ] = array();
- }
-
- // Overwrite the value in the base array.
- if ( is_array( $value ) ) {
- $value = self::recurse( $array[ $key ], $value );
- }
- $array[ $key ] = $value;
- }
- return $array;
- }
-
- /**
- * Initialize the WP_Filesystem
- *
- * @static
- * @access public
- * @return object WP_Filesystem
- */
- public static function init_filesystem() {
- $credentials = array();
-
- if ( ! defined( 'FS_METHOD' ) ) {
- define( 'FS_METHOD', 'direct' );
- }
-
- $method = defined( 'FS_METHOD' ) ? FS_METHOD : false;
-
- if ( 'ftpext' === $method ) {
- // If defined, set it to that, Else, set to NULL.
- $credentials['hostname'] = defined( 'FTP_HOST' ) ? preg_replace( '|\w+://|', '', FTP_HOST ) : null;
- $credentials['username'] = defined( 'FTP_USER' ) ? FTP_USER : null;
- $credentials['password'] = defined( 'FTP_PASS' ) ? FTP_PASS : null;
-
- // Set FTP port.
- if ( strpos( $credentials['hostname'], ':' ) && null !== $credentials['hostname'] ) {
- list( $credentials['hostname'], $credentials['port'] ) = explode( ':', $credentials['hostname'], 2 );
- if ( ! is_numeric( $credentials['port'] ) ) {
- unset( $credentials['port'] );
- }
- } else {
- unset( $credentials['port'] );
- }
-
- // Set connection type.
- if ( ( defined( 'FTP_SSL' ) && FTP_SSL ) && 'ftpext' === $method ) {
- $credentials['connection_type'] = 'ftps';
- } elseif ( ! array_filter( $credentials ) ) {
- $credentials['connection_type'] = null;
- } else {
- $credentials['connection_type'] = 'ftp';
- }
- }
-
- // The WordPress filesystem.
- global $wp_filesystem;
-
- if ( empty( $wp_filesystem ) ) {
- require_once wp_normalize_path( ABSPATH . '/wp-admin/includes/file.php' ); // phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude
- WP_Filesystem( $credentials );
- }
-
- return $wp_filesystem;
- }
-
- /**
- * Returns the attachment object
- *
- * @static
- * @access public
- * @see https://pippinsplugins.com/retrieve-attachment-id-from-image-url/
- * @param string $url URL to the image.
- * @return int|string Numeric ID of the attachement.
- */
- public static function get_image_id( $url ) {
- global $wpdb;
- if ( empty( $url ) ) {
- return 0;
- }
-
- $attachment = wp_cache_get( 'kirki_image_id_' . md5( $url ), null );
- if ( false === $attachment ) {
- $attachment = $wpdb->get_col( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE guid = %s;", $url ) ); // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery
- wp_cache_add( 'kirki_image_id_' . md5( $url ), $attachment, null );
- }
-
- if ( ! empty( $attachment ) ) {
- return $attachment[0];
- }
- return 0;
- }
-
- /**
- * Returns an array of the attachment's properties.
- *
- * @param string $url URL to the image.
- * @return array
- */
- public static function get_image_from_url( $url ) {
- $image_id = self::get_image_id( $url );
- $image = wp_get_attachment_image_src( $image_id, 'full' );
-
- return array(
- 'url' => $image[0],
- 'width' => $image[1],
- 'height' => $image[2],
- 'thumbnail' => $image[3],
- );
- }
-
- /**
- * Get an array of posts.
- *
- * @static
- * @access public
- * @param array $args Define arguments for the get_posts function.
- * @return array
- */
- public static function get_posts( $args ) {
- if ( is_string( $args ) ) {
- $args = add_query_arg(
- array(
- 'suppress_filters' => false,
- )
- );
- } elseif ( is_array( $args ) && ! isset( $args['suppress_filters'] ) ) {
- $args['suppress_filters'] = false;
- }
-
- // Get the posts.
- // TODO: WordPress.VIP.RestrictedFunctions.get_posts_get_posts.
- $posts = get_posts( $args );
-
- // Properly format the array.
- $items = array();
- foreach ( $posts as $post ) {
- $items[ $post->ID ] = $post->post_title;
- }
- wp_reset_postdata();
-
- return $items;
- }
-
- /**
- * Get an array of publicly-querable taxonomies.
- *
- * @static
- * @access public
- * @return array
- */
- public static function get_taxonomies() {
- $items = array();
-
- // Get the taxonomies.
- $taxonomies = get_taxonomies(
- array(
- 'public' => true,
- )
- );
-
- // Build the array.
- foreach ( $taxonomies as $taxonomy ) {
- $id = $taxonomy;
- $taxonomy = get_taxonomy( $taxonomy );
- $items[ $id ] = $taxonomy->labels->name;
- }
-
- return $items;
- }
-
- /**
- * Get an array of publicly-querable post-types.
- *
- * @static
- * @access public
- * @return array
- */
- public static function get_post_types() {
- $items = array();
-
- // Get the post types.
- $post_types = get_post_types(
- array(
- 'public' => true,
- ),
- 'objects'
- );
-
- // Build the array.
- foreach ( $post_types as $post_type ) {
- $items[ $post_type->name ] = $post_type->labels->name;
- }
-
- return $items;
- }
-
- /**
- * Get an array of terms from a taxonomy
- *
- * @static
- * @access public
- * @param string|array $taxonomies See https://developer.wordpress.org/reference/functions/get_terms/ for details.
- * @return array
- */
- public static function get_terms( $taxonomies ) {
- $items = array();
-
- // Get the post types.
- $terms = get_terms( $taxonomies );
-
- // Build the array.
- foreach ( $terms as $term ) {
- $items[ $term->term_id ] = $term->name;
- }
-
- return $items;
- }
-
- /**
- * Gets an array of material-design colors.
- *
- * @static
- * @access public
- * @param string $context Allows us to get subsets of the palette.
- * @return array
- */
- public static function get_material_design_colors( $context = 'primary' ) {
- $colors = array(
- 'primary' => array( '#FFFFFF', '#000000', '#F44336', '#E91E63', '#9C27B0', '#673AB7', '#3F51B5', '#2196F3', '#03A9F4', '#00BCD4', '#009688', '#4CAF50', '#8BC34A', '#CDDC39', '#FFEB3B', '#FFC107', '#FF9800', '#FF5722', '#795548', '#9E9E9E', '#607D8B' ),
- 'red' => array( '#FFEBEE', '#FFCDD2', '#EF9A9A', '#E57373', '#EF5350', '#F44336', '#E53935', '#D32F2F', '#C62828', '#B71C1C', '#FF8A80', '#FF5252', '#FF1744', '#D50000' ),
- 'pink' => array( '#FCE4EC', '#F8BBD0', '#F48FB1', '#F06292', '#EC407A', '#E91E63', '#D81B60', '#C2185B', '#AD1457', '#880E4F', '#FF80AB', '#FF4081', '#F50057', '#C51162' ),
- 'purple' => array( '#F3E5F5', '#E1BEE7', '#CE93D8', '#BA68C8', '#AB47BC', '#9C27B0', '#8E24AA', '#7B1FA2', '#6A1B9A', '#4A148C', '#EA80FC', '#E040FB', '#D500F9', '#AA00FF' ),
- 'deep-purple' => array( '#EDE7F6', '#D1C4E9', '#B39DDB', '#9575CD', '#7E57C2', '#673AB7', '#5E35B1', '#512DA8', '#4527A0', '#311B92', '#B388FF', '#7C4DFF', '#651FFF', '#6200EA' ),
- 'indigo' => array( '#E8EAF6', '#C5CAE9', '#9FA8DA', '#7986CB', '#5C6BC0', '#3F51B5', '#3949AB', '#303F9F', '#283593', '#1A237E', '#8C9EFF', '#536DFE', '#3D5AFE', '#304FFE' ),
- 'blue' => array( '#E3F2FD', '#BBDEFB', '#90CAF9', '#64B5F6', '#42A5F5', '#2196F3', '#1E88E5', '#1976D2', '#1565C0', '#0D47A1', '#82B1FF', '#448AFF', '#2979FF', '#2962FF' ),
- 'light-blue' => array( '#E1F5FE', '#B3E5FC', '#81D4fA', '#4fC3F7', '#29B6FC', '#03A9F4', '#039BE5', '#0288D1', '#0277BD', '#01579B', '#80D8FF', '#40C4FF', '#00B0FF', '#0091EA' ),
- 'cyan' => array( '#E0F7FA', '#B2EBF2', '#80DEEA', '#4DD0E1', '#26C6DA', '#00BCD4', '#00ACC1', '#0097A7', '#00838F', '#006064', '#84FFFF', '#18FFFF', '#00E5FF', '#00B8D4' ),
- 'teal' => array( '#E0F2F1', '#B2DFDB', '#80CBC4', '#4DB6AC', '#26A69A', '#009688', '#00897B', '#00796B', '#00695C', '#004D40', '#A7FFEB', '#64FFDA', '#1DE9B6', '#00BFA5' ),
- 'green' => array( '#E8F5E9', '#C8E6C9', '#A5D6A7', '#81C784', '#66BB6A', '#4CAF50', '#43A047', '#388E3C', '#2E7D32', '#1B5E20', '#B9F6CA', '#69F0AE', '#00E676', '#00C853' ),
- 'light-green' => array( '#F1F8E9', '#DCEDC8', '#C5E1A5', '#AED581', '#9CCC65', '#8BC34A', '#7CB342', '#689F38', '#558B2F', '#33691E', '#CCFF90', '#B2FF59', '#76FF03', '#64DD17' ),
- 'lime' => array( '#F9FBE7', '#F0F4C3', '#E6EE9C', '#DCE775', '#D4E157', '#CDDC39', '#C0CA33', '#A4B42B', '#9E9D24', '#827717', '#F4FF81', '#EEFF41', '#C6FF00', '#AEEA00' ),
- 'yellow' => array( '#FFFDE7', '#FFF9C4', '#FFF590', '#FFF176', '#FFEE58', '#FFEB3B', '#FDD835', '#FBC02D', '#F9A825', '#F57F17', '#FFFF82', '#FFFF00', '#FFEA00', '#FFD600' ),
- 'amber' => array( '#FFF8E1', '#FFECB3', '#FFE082', '#FFD54F', '#FFCA28', '#FFC107', '#FFB300', '#FFA000', '#FF8F00', '#FF6F00', '#FFE57F', '#FFD740', '#FFC400', '#FFAB00' ),
- 'orange' => array( '#FFF3E0', '#FFE0B2', '#FFCC80', '#FFB74D', '#FFA726', '#FF9800', '#FB8C00', '#F57C00', '#EF6C00', '#E65100', '#FFD180', '#FFAB40', '#FF9100', '#FF6D00' ),
- 'deep-orange' => array( '#FBE9A7', '#FFCCBC', '#FFAB91', '#FF8A65', '#FF7043', '#FF5722', '#F4511E', '#E64A19', '#D84315', '#BF360C', '#FF9E80', '#FF6E40', '#FF3D00', '#DD2600' ),
- 'brown' => array( '#EFEBE9', '#D7CCC8', '#BCAAA4', '#A1887F', '#8D6E63', '#795548', '#6D4C41', '#5D4037', '#4E342E', '#3E2723' ),
- 'grey' => array( '#FAFAFA', '#F5F5F5', '#EEEEEE', '#E0E0E0', '#BDBDBD', '#9E9E9E', '#757575', '#616161', '#424242', '#212121', '#000000', '#ffffff' ),
- 'blue-grey' => array( '#ECEFF1', '#CFD8DC', '#B0BBC5', '#90A4AE', '#78909C', '#607D8B', '#546E7A', '#455A64', '#37474F', '#263238' ),
- );
-
- switch ( $context ) {
- case '50':
- case '100':
- case '200':
- case '300':
- case '400':
- case '500':
- case '600':
- case '700':
- case '800':
- case '900':
- case 'A100':
- case 'A200':
- case 'A400':
- case 'A700':
- $key = absint( $context ) / 100;
- if ( 'A100' === $context ) {
- $key = 10;
- unset( $colors['grey'] );
- } elseif ( 'A200' === $context ) {
- $key = 11;
- unset( $colors['grey'] );
- } elseif ( 'A400' === $context ) {
- $key = 12;
- unset( $colors['grey'] );
- } elseif ( 'A700' === $context ) {
- $key = 13;
- unset( $colors['grey'] );
- }
- unset( $colors['primary'] );
- $position_colors = array();
- foreach ( $colors as $color_family ) {
- if ( isset( $color_family[ $key ] ) ) {
- $position_colors[] = $color_family[ $key ];
- }
- }
- return $position_colors;
- case 'all':
- unset( $colors['primary'] );
- $all_colors = array();
- foreach ( $colors as $color_family ) {
- foreach ( $color_family as $color ) {
- $all_colors[] = $color;
- }
- }
- return $all_colors;
- case 'primary':
- return $colors['primary'];
- default:
- if ( isset( $colors[ $context ] ) ) {
- return $colors[ $context ];
- }
- return $colors['primary'];
- }
- }
-
- /**
- * Get an array of all available dashicons.
- *
- * @static
- * @access public
- * @return array
- */
- public static function get_dashicons() {
- return array(
- 'admin-menu' => array( 'menu', 'admin-site', 'dashboard', 'admin-post', 'admin-media', 'admin-links', 'admin-page', 'admin-comments', 'admin-appearance', 'admin-plugins', 'admin-users', 'admin-tools', 'admin-settings', 'admin-network', 'admin-home', 'admin-generic', 'admin-collapse', 'filter', 'admin-customizer', 'admin-multisite' ),
- 'welcome-screen' => array( 'welcome-write-blog', 'welcome-add-page', 'welcome-view-site', 'welcome-widgets-menus', 'welcome-comments', 'welcome-learn-more' ),
- 'post-formats' => array( 'format-aside', 'format-image', 'format-gallery', 'format-video', 'format-status', 'format-quote', 'format-chat', 'format-audio', 'camera', 'images-alt', 'images-alt2', 'video-alt', 'video-alt2', 'video-alt3' ),
- 'media' => array( 'media-archive', 'media-audio', 'media-code', 'media-default', 'media-document', 'media-interactive', 'media-spreadsheet', 'media-text', 'media-video', 'playlist-audio', 'playlist-video', 'controls-play', 'controls-pause', 'controls-forward', 'controls-skipforward', 'controls-back', 'controls-skipback', 'controls-repeat', 'controls-volumeon', 'controls-volumeoff' ),
- 'image-editing' => array( 'image-crop', 'image-rotate', 'image-rotate-left', 'image-rotate-right', 'image-flip-vertical', 'image-flip-horizontal', 'image-filter', 'undo', 'redo' ),
- 'tinymce' => array( 'editor-bold', 'editor-italic', 'editor-ul', 'editor-ol', 'editor-quote', 'editor-alignleft', 'editor-aligncenter', 'editor-alignright', 'editor-insertmore', 'editor-spellcheck', 'editor-expand', 'editor-contract', 'editor-kitchensink', 'editor-underline', 'editor-justify', 'editor-textcolor', 'editor-paste-word', 'editor-paste-text', 'editor-removeformatting', 'editor-video', 'editor-customchar', 'editor-outdent', 'editor-indent', 'editor-help', 'editor-strikethrough', 'editor-unlink', 'editor-rtl', 'editor-break', 'editor-code', 'editor-paragraph', 'editor-table' ),
- 'posts' => array( 'align-left', 'align-right', 'align-center', 'align-none', 'lock', 'unlock', 'calendar', 'calendar-alt', 'visibility', 'hidden', 'post-status', 'edit', 'trash', 'sticky' ),
- 'sorting' => array( 'external', 'arrow-up', 'arrow-down', 'arrow-right', 'arrow-left', 'arrow-up-alt', 'arrow-down-alt', 'arrow-right-alt', 'arrow-left-alt', 'arrow-up-alt2', 'arrow-down-alt2', 'arrow-right-alt2', 'arrow-left-alt2', 'sort', 'leftright', 'randomize', 'list-view', 'exerpt-view', 'grid-view' ),
- 'social' => array( 'share', 'share-alt', 'share-alt2', 'twitter', 'rss', 'email', 'email-alt', 'facebook', 'facebook-alt', 'googleplus', 'networking' ),
- 'wordpress_org' => array( 'hammer', 'art', 'migrate', 'performance', 'universal-access', 'universal-access-alt', 'tickets', 'nametag', 'clipboard', 'heart', 'megaphone', 'schedule' ),
- 'products' => array( 'wordpress', 'wordpress-alt', 'pressthis', 'update', 'screenoptions', 'info', 'cart', 'feedback', 'cloud', 'translation' ),
- 'taxonomies' => array( 'tag', 'category' ),
- 'widgets' => array( 'archive', 'tagcloud', 'text' ),
- 'notifications' => array( 'yes', 'no', 'no-alt', 'plus', 'plus-alt', 'minus', 'dismiss', 'marker', 'star-filled', 'star-half', 'star-empty', 'flag', 'warning' ),
- 'misc' => array( 'location', 'location-alt', 'vault', 'shield', 'shield-alt', 'sos', 'search', 'slides', 'analytics', 'chart-pie', 'chart-bar', 'chart-line', 'chart-area', 'groups', 'businessman', 'id', 'id-alt', 'products', 'awards', 'forms', 'testimonial', 'portfolio', 'book', 'book-alt', 'download', 'upload', 'backup', 'clock', 'lightbulb', 'microphone', 'desktop', 'tablet', 'smartphone', 'phone', 'index-card', 'carrot', 'building', 'store', 'album', 'palmtree', 'tickets-alt', 'money', 'smiley', 'thumbs-up', 'thumbs-down', 'layout' ),
- );
- }
-
- /**
- * Compares the 2 values given the condition
- *
- * @param mixed $value1 The 1st value in the comparison.
- * @param mixed $value2 The 2nd value in the comparison.
- * @param string $operator The operator we'll use for the comparison.
- * @return boolean whether The comparison has succeded (true) or failed (false).
- */
- public static function compare_values( $value1, $value2, $operator ) {
- if ( '===' === $operator ) {
- return $value1 === $value2;
- }
- if ( '!==' === $operator ) {
- return $value1 !== $value2;
- }
- if ( ( '!=' === $operator || 'not equal' === $operator ) ) {
- return $value1 != $value2; // phpcs:ignore WordPress.PHP.StrictComparisons
- }
- if ( ( '>=' === $operator || 'greater or equal' === $operator || 'equal or greater' === $operator ) ) {
- return $value2 >= $value1;
- }
- if ( ( '<=' === $operator || 'smaller or equal' === $operator || 'equal or smaller' === $operator ) ) {
- return $value2 <= $value1;
- }
- if ( ( '>' === $operator || 'greater' === $operator ) ) {
- return $value2 > $value1;
- }
- if ( ( '<' === $operator || 'smaller' === $operator ) ) {
- return $value2 < $value1;
- }
- if ( 'contains' === $operator || 'in' === $operator ) {
- if ( is_array( $value1 ) && is_array( $value2 ) ) {
- foreach ( $value2 as $val ) {
- if ( in_array( $val, $value1 ) ) { // phpcs:ignore WordPress.PHP.StrictInArray
- return true;
- }
- }
- return false;
- }
- if ( is_array( $value1 ) && ! is_array( $value2 ) ) {
- return in_array( $value2, $value1 ); // phpcs:ignore WordPress.PHP.StrictInArray
- }
- if ( is_array( $value2 ) && ! is_array( $value1 ) ) {
- return in_array( $value1, $value2 ); // phpcs:ignore WordPress.PHP.StrictInArray
- }
- return ( false !== strrpos( $value1, $value2 ) || false !== strpos( $value2, $value1 ) );
- }
- return $value1 == $value2; // phpcs:ignore WordPress.PHP.StrictComparisons
- }
-}
diff --git a/functions/kirki/core/class-kirki-init.php b/functions/kirki/core/class-kirki-init.php
deleted file mode 100644
index d1b813f..0000000
--- a/functions/kirki/core/class-kirki-init.php
+++ /dev/null
@@ -1,418 +0,0 @@
-control_types = array(
- 'checkbox' => 'Kirki_Control_Checkbox',
- 'kirki-background' => 'Kirki_Control_Background',
- 'code_editor' => 'Kirki_Control_Code',
- 'kirki-color' => 'Kirki_Control_Color',
- 'kirki-color-palette' => 'Kirki_Control_Color_Palette',
- 'kirki-custom' => 'Kirki_Control_Custom',
- 'kirki-date' => 'Kirki_Control_Date',
- 'kirki-dashicons' => 'Kirki_Control_Dashicons',
- 'kirki-dimension' => 'Kirki_Control_Dimension',
- 'kirki-dimensions' => 'Kirki_Control_Dimensions',
- 'kirki-editor' => 'Kirki_Control_Editor',
- 'kirki-image' => 'Kirki_Control_Image',
- 'kirki-multicolor' => 'Kirki_Control_Multicolor',
- 'kirki-multicheck' => 'Kirki_Control_MultiCheck',
- 'kirki-number' => 'Kirki_Control_Number',
- 'kirki-palette' => 'Kirki_Control_Palette',
- 'kirki-radio' => 'Kirki_Control_Radio',
- 'kirki-radio-buttonset' => 'Kirki_Control_Radio_ButtonSet',
- 'kirki-radio-image' => 'Kirki_Control_Radio_Image',
- 'repeater' => 'Kirki_Control_Repeater',
- 'kirki-select' => 'Kirki_Control_Select',
- 'kirki-slider' => 'Kirki_Control_Slider',
- 'kirki-sortable' => 'Kirki_Control_Sortable',
- 'kirki-spacing' => 'Kirki_Control_Dimensions',
- 'kirki-switch' => 'Kirki_Control_Switch',
- 'kirki-generic' => 'Kirki_Control_Generic',
- 'kirki-toggle' => 'Kirki_Control_Toggle',
- 'kirki-typography' => 'Kirki_Control_Typography',
- 'image' => 'Kirki_Control_Image',
- 'cropped_image' => 'Kirki_Control_Cropped_Image',
- 'upload' => 'Kirki_Control_Upload',
- );
- return array_merge( $this->control_types, $control_types );
- }
-
- /**
- * Helper function that adds the fields, sections and panels to the customizer.
- */
- public function add_to_customizer() {
- $this->fields_from_filters();
- add_action( 'customize_register', array( $this, 'register_control_types' ) );
- add_action( 'customize_register', array( $this, 'add_panels' ), 97 );
- add_action( 'customize_register', array( $this, 'add_sections' ), 98 );
- add_action( 'customize_register', array( $this, 'add_fields' ), 99 );
- }
-
- /**
- * Register control types
- */
- public function register_control_types() {
- global $wp_customize;
-
- $section_types = apply_filters( 'kirki_section_types', array() );
- foreach ( $section_types as $section_type ) {
- $wp_customize->register_section_type( $section_type );
- }
-
- $this->control_types = $this->default_control_types();
- if ( ! class_exists( 'WP_Customize_Code_Editor_Control' ) ) {
- unset( $this->control_types['code_editor'] );
- }
- foreach ( $this->control_types as $key => $classname ) {
- if ( ! class_exists( $classname ) ) {
- unset( $this->control_types[ $key ] );
- }
- }
-
- $skip_control_types = apply_filters(
- 'kirki_control_types_exclude',
- array(
- 'Kirki_Control_Repeater',
- 'WP_Customize_Control',
- )
- );
-
- foreach ( $this->control_types as $control_type ) {
- if ( ! in_array( $control_type, $skip_control_types, true ) && class_exists( $control_type ) ) {
- $wp_customize->register_control_type( $control_type );
- }
- }
- }
-
- /**
- * Register our panels to the WordPress Customizer.
- *
- * @access public
- */
- public function add_panels() {
- if ( ! empty( Kirki::$panels ) ) {
- foreach ( Kirki::$panels as $panel_args ) {
- // Extra checks for nested panels.
- if ( isset( $panel_args['panel'] ) ) {
- if ( isset( Kirki::$panels[ $panel_args['panel'] ] ) ) {
- // Set the type to nested.
- $panel_args['type'] = 'kirki-nested';
- }
- }
-
- new Kirki_Panel( $panel_args );
- }
- }
- }
-
- /**
- * Register our sections to the WordPress Customizer.
- *
- * @var object The WordPress Customizer object
- */
- public function add_sections() {
- if ( ! empty( Kirki::$sections ) ) {
- foreach ( Kirki::$sections as $section_args ) {
- // Extra checks for nested sections.
- if ( isset( $section_args['section'] ) ) {
- if ( isset( Kirki::$sections[ $section_args['section'] ] ) ) {
- // Set the type to nested.
- $section_args['type'] = 'kirki-nested';
- // We need to check if the parent section is nested inside a panel.
- $parent_section = Kirki::$sections[ $section_args['section'] ];
- if ( isset( $parent_section['panel'] ) ) {
- $section_args['panel'] = $parent_section['panel'];
- }
- }
- }
- new Kirki_Section( $section_args );
- }
- }
- }
-
- /**
- * Create the settings and controls from the $fields array and register them.
- *
- * @var object The WordPress Customizer object.
- */
- public function add_fields() {
- global $wp_customize;
- foreach ( Kirki::$fields as $args ) {
-
- // Create the settings.
- new Kirki_Settings( $args );
-
- // Check if we're on the customizer.
- // If we are, then we will create the controls, add the scripts needed for the customizer
- // and any other tweaks that this field may require.
- if ( $wp_customize ) {
-
- // Create the control.
- new Kirki_Control( $args );
-
- }
- }
- }
-
- /**
- * Process fields added using the 'kirki_fields' and 'kirki_controls' filter.
- * These filters are no longer used, this is simply for backwards-compatibility.
- *
- * @access private
- * @since 2.0.0
- */
- private function fields_from_filters() {
- $fields = apply_filters( 'kirki_controls', array() );
- $fields = apply_filters( 'kirki_fields', $fields );
-
- if ( ! empty( $fields ) ) {
- foreach ( $fields as $field ) {
- Kirki::add_field( 'global', $field );
- }
- }
- }
-
- /**
- * Alias for the is_plugin static method in the Kirki_Util class.
- * This is here for backwards-compatibility purposes.
- *
- * @static
- * @access public
- * @since 3.0.0
- * @return bool
- */
- public static function is_plugin() {
- return Kirki_Util::is_plugin();
- }
-
- /**
- * Alias for the get_variables static method in the Kirki_Util class.
- * This is here for backwards-compatibility purposes.
- *
- * @static
- * @access public
- * @since 2.0.0
- * @return array Formatted as array( 'variable-name' => value ).
- */
- public static function get_variables() {
-
- // Log error for developers.
- _doing_it_wrong( __METHOD__, esc_html__( 'We detected you\'re using Kirki_Init::get_variables(). Please use Kirki_Util::get_variables() instead.', 'kirki' ), '3.0.10' );
- return Kirki_Util::get_variables();
- }
-
- /**
- * Remove panels.
- *
- * @since 3.0.17
- * @param object $wp_customize The customizer object.
- * @return void
- */
- public function remove_panels( $wp_customize ) {
- foreach ( Kirki::$panels_to_remove as $panel ) {
- $wp_customize->remove_panel( $panel );
- }
- }
-
- /**
- * Remove sections.
- *
- * @since 3.0.17
- * @param object $wp_customize The customizer object.
- * @return void
- */
- public function remove_sections( $wp_customize ) {
- foreach ( Kirki::$sections_to_remove as $section ) {
- $wp_customize->remove_section( $section );
- }
- }
-
- /**
- * Remove controls.
- *
- * @since 3.0.17
- * @param object $wp_customize The customizer object.
- * @return void
- */
- public function remove_controls( $wp_customize ) {
- foreach ( Kirki::$controls_to_remove as $control ) {
- $wp_customize->remove_control( $control );
- }
- }
-
- /**
- * Shows an admin notice.
- *
- * @access public
- * @since 3.0.42
- * @return void
- */
- public function admin_notices() {
-
- // No need for a nag if we don't need to recommend installing the FA plugin.
- if ( ! self::$show_fa_nag ) {
- return;
- }
-
- // No need for a nag if FA plugin is already installed.
- if ( defined( 'FONTAWESOME_DIR_PATH' ) ) {
- return;
- }
-
- // No need for a nag if current user can't install plugins.
- if ( ! current_user_can( 'install_plugins' ) ) {
- return;
- }
-
- // No need for a nag if user has dismissed it.
- $dismissed = get_user_meta( get_current_user_id(), 'kirki_fa_nag_dismissed', true );
- if ( true === $dismissed || 1 === $dismissed || '1' === $dismissed ) {
- return;
- }
-
- ?>
-
- 'WP_Customize_Panel',
- );
-
- /**
- * The class constructor.
- *
- * @access public
- * @param array $args The panel arguments.
- */
- public function __construct( $args ) {
- $this->panel_types = apply_filters( 'kirki_panel_types', $this->panel_types );
- $this->add_panel( $args );
- }
-
- /**
- * Add the panel using the Customizer API.
- *
- * @param array $args The panel arguments.
- */
- public function add_panel( $args ) {
- global $wp_customize;
-
- if ( ! isset( $args['type'] ) || ! array_key_exists( $args['type'], $this->panel_types ) ) {
- $args['type'] = 'default';
- }
- $panel_classname = $this->panel_types[ $args['type'] ];
-
- $wp_customize->add_panel( new $panel_classname( $wp_customize, $args['id'], $args ) );
- }
-}
diff --git a/functions/kirki/core/class-kirki-section.php b/functions/kirki/core/class-kirki-section.php
deleted file mode 100644
index 3793497..0000000
--- a/functions/kirki/core/class-kirki-section.php
+++ /dev/null
@@ -1,60 +0,0 @@
-section_types = apply_filters( 'kirki_section_types', $this->section_types );
- $this->add_section( $args );
- }
-
- /**
- * Adds the section using the WordPress Customizer API.
- *
- * @access public
- * @param array $args The section parameters.
- */
- public function add_section( $args ) {
- global $wp_customize;
-
- // The default class to be used when creating a section.
- $section_classname = 'WP_Customize_Section';
-
- if ( isset( $args['type'] ) && array_key_exists( $args['type'], $this->section_types ) ) {
- $section_classname = $this->section_types[ $args['type'] ];
- }
- if ( isset( $args['type'] ) && 'kirki-outer' === $args['type'] ) {
- $args['type'] = 'outer';
- $section_classname = 'WP_Customize_Section';
- }
-
- // Add the section.
- $wp_customize->add_section( new $section_classname( $wp_customize, $args['id'], $args ) );
- }
-}
diff --git a/functions/kirki/core/class-kirki-sections.php b/functions/kirki/core/class-kirki-sections.php
deleted file mode 100644
index 359525f..0000000
--- a/functions/kirki/core/class-kirki-sections.php
+++ /dev/null
@@ -1,47 +0,0 @@
-';
- $css = '';
- if ( ! empty( Kirki::$sections ) ) {
- foreach ( Kirki::$sections as $section_args ) {
- if ( isset( $section_args['id'] ) && isset( $section_args['type'] ) && 'outer' === $section_args['type'] || 'kirki-outer' === $section_args['type'] ) {
- echo '#customize-theme-controls li#accordion-section-' . esc_html( $section_args['id'] ) . '{display:list-item!important;}';
- }
- }
- }
- echo '';
- }
-}
diff --git a/functions/kirki/deprecated/deprecated.php b/functions/kirki/deprecated/deprecated.php
deleted file mode 100644
index 9558dd4..0000000
--- a/functions/kirki/deprecated/deprecated.php
+++ /dev/null
@@ -1,23 +0,0 @@
-= 0 ) {
- require_once wp_normalize_path( dirname( __FILE__ ) . '/filters.php' );
-}
diff --git a/functions/kirki/example.php b/functions/kirki/example.php
new file mode 100644
index 0000000..9b638c7
--- /dev/null
+++ b/functions/kirki/example.php
@@ -0,0 +1,1330 @@
+ 'theme_mod',
+ 'capability' => 'manage_options',
+ ]
+);
+
+/**
+ * Add a panel.
+ *
+ * @link https://kirki.org/docs/getting-started/panels.html
+ */
+new \Kirki\Panel(
+ 'kirki_demo_panel',
+ [
+ 'priority' => 10,
+ 'title' => esc_html__( 'Kirki Demo Panel', 'kirki' ),
+ 'description' => esc_html__( 'Contains sections for all kirki controls.', 'kirki' ),
+ ]
+);
+
+/**
+ * Add Sections.
+ *
+ * We'll be doing things a bit differently here, just to demonstrate an example.
+ * We're going to define 1 section per control-type just to keep things clean and separate.
+ *
+ * @link https://kirki.org/docs/getting-started/sections.html
+ */
+$sections = [
+ 'background' => [ esc_html__( 'Background', 'kirki' ), '' ],
+ 'code' => [ esc_html__( 'Code', 'kirki' ), '' ],
+ 'checkbox' => [ esc_html__( 'Checkbox', 'kirki' ), '' ],
+ 'color' => [ esc_html__( 'Color', 'kirki' ), '' ],
+ 'color_advanced' => [ esc_html__( 'Color — Advanced', 'kirki' ), '' ],
+ 'color_palette' => [ esc_html__( 'Color Palette', 'kirki' ), '' ],
+ 'custom' => [ esc_html__( 'Custom', 'kirki' ), '' ],
+ 'dashicons' => [ esc_html__( 'Dashicons', 'kirki' ), '' ],
+ 'date' => [ esc_html__( 'Date', 'kirki' ), '' ],
+ 'dimension' => [ esc_html__( 'Dimension', 'kirki' ), '' ],
+ 'dimensions' => [ esc_html__( 'Dimensions', 'kirki' ), '' ],
+ 'dropdown-pages' => [ esc_html__( 'Dropdown Pages', 'kirki' ), '' ],
+ 'editor' => [ esc_html__( 'Editor', 'kirki' ), '' ],
+ 'fontawesome' => [ esc_html__( 'Font-Awesome', 'kirki' ), '' ],
+ 'generic' => [ esc_html__( 'Generic', 'kirki' ), '' ],
+ 'image' => [ esc_html__( 'Image', 'kirki' ), '' ],
+ 'multicheck' => [ esc_html__( 'Multicheck', 'kirki' ), '' ],
+ 'multicolor' => [ esc_html__( 'Multicolor', 'kirki' ), '' ],
+ 'number' => [ esc_html__( 'Number', 'kirki' ), '' ],
+ 'palette' => [ esc_html__( 'Palette', 'kirki' ), '' ],
+ 'preset' => [ esc_html__( 'Preset', 'kirki' ), '' ],
+ 'radio' => [ esc_html__( 'Radio', 'kirki' ), esc_html__( 'A plain Radio control.', 'kirki' ) ],
+ 'radio-buttonset' => [ esc_html__( 'Radio Buttonset', 'kirki' ), esc_html__( 'Radio-Buttonset controls are essentially radio controls with some fancy styling to make them look cooler.', 'kirki' ) ],
+ 'radio-image' => [ esc_html__( 'Radio Image', 'kirki' ), esc_html__( 'Radio-Image controls are essentially radio controls with some fancy styles to use images', 'kirki' ) ],
+ 'repeater' => [ esc_html__( 'Repeater', 'kirki' ), '' ],
+ 'select' => [ esc_html__( 'Select', 'kirki' ), '' ],
+ 'slider' => [ esc_html__( 'Slider', 'kirki' ), '' ],
+ 'sortable' => [ esc_html__( 'Sortable', 'kirki' ), '' ],
+ 'switch' => [ esc_html__( 'Switch', 'kirki' ), '', 'outer' ],
+ 'toggle' => [ esc_html__( 'Toggle', 'kirki' ), '', 'outer' ],
+ 'typography' => [ esc_html__( 'Typography', 'kirki' ), '' ],
+ 'upload' => [ esc_html__( 'Upload', 'kirki' ), '' ],
+];
+
+foreach ( $sections as $section_id => $section ) {
+ $section_args = [
+ 'title' => $section[0],
+ 'description' => $section[1],
+ 'panel' => 'kirki_demo_panel',
+ ];
+ if ( isset( $section[2] ) ) {
+ $section_args['type'] = $section[2];
+ }
+ new \Kirki\Section( str_replace( '-', '_', $section_id ) . '_section', $section_args );
+}
+
+new \Kirki\Section(
+ 'pro_test',
+ [
+ 'title' => esc_html__( 'Test Link Section', 'kirki' ),
+ 'type' => 'link',
+ 'button_text' => esc_html__( 'Pro', 'kirki' ),
+ 'button_url' => 'https://kirki.org',
+ ]
+);
+
+/**
+ * Background Control.
+ *
+ * @todo Triggers change on load.
+ */
+new \Kirki\Field\Background(
+ [
+ 'settings' => 'kirki_demo_background',
+ 'label' => esc_html__( 'Background Control', 'kirki' ),
+ 'description' => esc_html__( 'Background conrols are pretty complex! (but useful if properly used)', 'kirki' ),
+ 'section' => 'background_section',
+ 'default' => [
+ 'background-color' => 'rgba(20,20,20,.8)',
+ 'background-image' => '',
+ 'background-repeat' => 'repeat',
+ 'background-position' => 'center center',
+ 'background-size' => 'cover',
+ 'background-attachment' => 'scroll',
+ ],
+ ]
+);
+
+/**
+ * Code control.
+ *
+ * @link https://kirki.org/docs/controls/code.html
+ */
+new \Kirki\Field\Code(
+ [
+ 'settings' => 'kirki_demo_code_css',
+ 'label' => esc_html__( 'Code Control — CSS', 'kirki' ),
+ 'description' => esc_html__( 'Sample of code control in CSS format', 'kirki' ),
+ 'section' => 'code_section',
+ 'default' => '',
+ 'choices' => [
+ 'language' => 'css',
+ ],
+ ]
+);
+
+/**
+ * Checkbox control.
+ *
+ * @link https://kirki.org/docs/controls/checkbox.html
+ */
+new \Kirki\Field\Checkbox(
+ [
+ 'settings' => 'kirki_demo_checkbox',
+ 'label' => esc_html__( 'Checkbox Control', 'kirki' ),
+ 'description' => esc_html__( 'Sample of checkbox control', 'kirki' ),
+ 'section' => 'checkbox_section',
+ 'default' => true,
+ ]
+);
+
+/**
+ * Color Controls.
+ *
+ * @link https://kirki.org/docs/controls/color.html
+ */
+Kirki::add_field(
+ 'kirki_demo_config',
+ [
+ 'type' => 'color',
+ 'settings' => 'kirki_demo_color_alpha_old',
+ 'label' => 'Using
Kirki::add_field
— With alpha',
+ 'description' => esc_html__( 'This is a color control registered using `Kirki::add_field` with "alpha" => true (the old Kirki API).', 'kirki' ),
+ 'section' => 'color_section',
+ 'transport' => 'postMessage',
+ 'default' => '#ff0055',
+ 'choices' => [
+ 'alpha' => true,
+ ],
+ ]
+);
+
+new \Kirki\Field\Color(
+ [
+ 'settings' => 'kirki_demo_color_hex',
+ 'label' => __( 'Hex only', 'kirki' ),
+ 'description' => esc_html__( 'This is a color control without alpha channel.', 'kirki' ),
+ 'section' => 'color_section',
+ 'transport' => 'postMessage',
+ 'default' => '#0008DC',
+ ]
+);
+
+new \Kirki\Field\Color(
+ [
+ 'settings' => 'kirki_demo_color_alpha',
+ 'label' => __( 'With alpha channel', 'kirki' ),
+ 'description' => esc_html__( 'This is a color control with alpha channel.', 'kirki' ),
+ 'section' => 'color_section',
+ 'transport' => 'postMessage',
+ 'choices' => [
+ 'alpha' => true,
+ ],
+ ]
+);
+
+new \Kirki\Field\Color(
+ [
+ 'settings' => 'kirki_demo_color_hue',
+ 'label' => __( 'Hue only.', 'kirki' ),
+ 'description' => esc_html__( 'This is a color control with "mode" => "hue" (hue mode).', 'kirki' ),
+ 'section' => 'color_section',
+ 'transport' => 'postMessage',
+ 'default' => 160,
+ 'mode' => 'hue',
+ ]
+);
+
+/**
+ * Color Control (Advanced)
+ */
+
+/**
+ * Color control with form_component value is HexColorPicker.
+ *
+ * The saved value will always be a string, for instance:
+ * "#ff0000"
+ */
+new \Kirki\Field\Color(
+ [
+ 'settings' => 'kirki_demo_color_form_component_hex',
+ 'label' => __( 'v4 — form_component — HexColorPicker', 'kirki' ),
+ 'description' => esc_html__( 'This is a color control with form_component value is HexColorPicker.', 'kirki' ),
+ 'section' => 'color_advanced_section',
+ 'default' => '#ffff00',
+ 'choices' => [
+ 'form_component' => 'HexColorPicker',
+ ],
+ 'transport' => 'postMessage',
+ ]
+);
+
+/**
+ * Color control with form_component value is RgbColorPicker.
+ *
+ * The saved value will be an rgba array.
+ * The format is following the `react-colorful` and `colord` formatting, for instance:
+ * [
+ * 'r' => 255,
+ * 'g' => 255,
+ * 'b' => 45,
+ * 'a' => 0.5
+ * ]
+ */
+new \Kirki\Field\Color(
+ [
+ 'settings' => 'kirki_demo_color_form_component_rgb',
+ 'label' => __( 'v4 — form_component — RgbColorPicker', 'kirki' ),
+ 'description' => esc_html__( 'This is a color control with form_component value is RgbColorPicker. The saved value will be an array.', 'kirki' ),
+ 'section' => 'color_advanced_section',
+ 'default' => '#ffff00',
+ 'choices' => [
+ 'form_component' => 'RgbColorPicker',
+ ],
+ 'transport' => 'postMessage',
+ ]
+);
+
+/**
+ * Color control with form_component value is RgbStringColorPicker.
+ *
+ * The saved value will be an rgb string.
+ * The format is following the `react-colorful` and `colord` formatting, for instance:
+ * "rgba(255, 255, 45)"
+ */
+new \Kirki\Field\Color(
+ [
+ 'settings' => 'kirki_demo_color_form_component_rgb_string',
+ 'label' => __( 'v4 — form_component — RgbStringColorPicker', 'kirki' ),
+ 'description' => esc_html__( 'This is a color control with form_component value is RgbStringColorPicker. The saved value will be a string.', 'kirki' ),
+ 'section' => 'color_advanced_section',
+ 'default' => '#ffff00',
+ 'choices' => [
+ 'form_component' => 'RgbStringColorPicker',
+ ],
+ 'transport' => 'postMessage',
+ ]
+);
+
+/**
+ * Color control with form_component value is RgbaColorPicker.
+ *
+ * The saved value will be an rgba array.
+ * The format is following the `react-colorful` and `colord` formatting, for instance:
+ * [
+ * 'r' => 255,
+ * 'g' => 255,
+ * 'b' => 45,
+ * 'a' => 0.5
+ * ]
+ */
+new \Kirki\Field\Color(
+ [
+ 'settings' => 'kirki_demo_color_form_component_rgba',
+ 'label' => __( 'v4 — form_component — RgbaColorPicker', 'kirki' ),
+ 'description' => esc_html__( 'This is a color control with form_component value is RgbaColorPicker. The saved value will be an array.', 'kirki' ),
+ 'section' => 'color_advanced_section',
+ 'default' => '#ffff00',
+ 'choices' => [
+ 'form_component' => 'RgbaColorPicker',
+ ],
+ 'transport' => 'postMessage',
+ ]
+);
+
+/**
+ * Color control with form_component value is RgbaStringColorPicker.
+ *
+ * The saved value will be an rgba string.
+ * The format is following the `react-colorful` and `colord` formatting, for instance:
+ * "rgba(255, 255, 45, 0.5)"
+ */
+new \Kirki\Field\Color(
+ [
+ 'settings' => 'kirki_demo_color_form_component_rgba_string',
+ 'label' => __( 'v4 — form_component — RgbaStringColorPicker', 'kirki' ),
+ 'description' => esc_html__( 'This is a color control with form_component value is RgbaStringColorPicker. The saved value will be a string.', 'kirki' ),
+ 'section' => 'color_advanced_section',
+ 'default' => '#ffff00',
+ 'choices' => [
+ 'form_component' => 'RgbaStringColorPicker',
+ ],
+ 'transport' => 'postMessage',
+ ]
+);
+
+/**
+ * Color control with form_component value is HslColorPicker.
+ *
+ * The saved value will be an hsl array.
+ * The format is following the `react-colorful` and `colord` formatting (int, without the percent sign), for instance:
+ * [
+ * 'h' => 180,
+ * 's' => 40, // Is int, without the percent sign.
+ * 'l' => 50, // Is int, without the percent sign.
+ * ]
+ */
+new \Kirki\Field\Color(
+ [
+ 'settings' => 'kirki_demo_color_form_component_hsl',
+ 'label' => __( 'v4 — form_component — HslColorPicker', 'kirki' ),
+ 'description' => esc_html__( 'This is a color control with form_component value is HslColorPicker. The saved value will be an array', 'kirki' ),
+ 'section' => 'color_advanced_section',
+ 'default' => 'hsl(206, 23%, 25%)',
+ 'choices' => [
+ 'form_component' => 'HslColorPicker',
+ ],
+ 'transport' => 'postMessage',
+ ]
+);
+
+/**
+ * Color control with form_component value is HslStringColorPicker.
+ *
+ * The saved value will be an hsl string.
+ * The format is following the `react-colorful` and `colord` formatting, for instance:
+ * "hsl(180, 40%, 50%)"
+ */
+new \Kirki\Field\Color(
+ [
+ 'settings' => 'kirki_demo_color_form_component_hsl_string',
+ 'label' => __( 'v4 — form_component — HslStringColorPicker', 'kirki' ),
+ 'description' => esc_html__( 'This is a color control with form_component value is HslStringColorPicker. The saved value will be a string', 'kirki' ),
+ 'section' => 'color_advanced_section',
+ 'default' => 'hsl(206, 23%, 25%)',
+ 'choices' => [
+ 'form_component' => 'HslStringColorPicker',
+ ],
+ 'transport' => 'postMessage',
+ ]
+);
+
+/**
+ * Color control with form_component value is HslaColorPicker.
+ *
+ * The saved value will be an hsla array.
+ * The format is following the `react-colorful` and `colord` formatting (int, without the percent sign), for instance:
+ * [
+ * 'h' => 180,
+ * 's' => 40, // Is int, without the percent sign.
+ * 'l' => 50, // Is int, without the percent sign.
+ * 'a' => 0.5
+ * ]
+ */
+new \Kirki\Field\Color(
+ [
+ 'settings' => 'kirki_demo_color_form_component_hsla',
+ 'label' => __( 'v4 — form_component — HslaColorPicker', 'kirki' ),
+ 'description' => esc_html__( 'This is a color control with form_component value is HslaColorPicker. The saved value will be an array', 'kirki' ),
+ 'section' => 'color_advanced_section',
+ 'default' => 'hsla(206, 23%, 25%, 0.7)',
+ 'choices' => [
+ 'form_component' => 'HslaColorPicker',
+ ],
+ 'transport' => 'postMessage',
+ ]
+);
+
+/**
+ * Color control with form_component value is HslaStringColorPicker.
+ *
+ * The saved value will be an hsla string.
+ * The format is following the `react-colorful` and `colord` formatting, for instance:
+ * "hsla(180, 40%, 50%, 0.5)"
+ */
+new \Kirki\Field\Color(
+ [
+ 'settings' => 'kirki_demo_color_form_component_hsla_string',
+ 'label' => __( 'v4 — form_component — HslaStringColorPicker', 'kirki' ),
+ 'description' => esc_html__( 'This is a color control with form_component value is HslaStringColorPicker. The saved value will be a string', 'kirki' ),
+ 'section' => 'color_advanced_section',
+ 'default' => 'hsla(206, 23%, 25%, 0.7)',
+ 'choices' => [
+ 'form_component' => 'HslaStringColorPicker',
+ ],
+ 'transport' => 'postMessage',
+ ]
+);
+
+/**
+ * DateTime Control.
+ */
+new \Kirki\Field\Date(
+ [
+ 'settings' => 'kirki_demo_date',
+ 'label' => esc_html__( 'Date Control', 'kirki' ),
+ 'description' => esc_html__( 'This is a date control.', 'kirki' ),
+ 'section' => 'date_section',
+ 'default' => '',
+ ]
+);
+
+new \Kirki\Field\Date(
+ [
+ 'settings' => 'kirki_demo_date_2',
+ 'label' => esc_html__( 'Date Control 2', 'kirki' ),
+ 'description' => esc_html__( 'This is a date control.', 'kirki' ),
+ 'section' => 'date_section',
+ 'default' => '',
+ ]
+);
+
+/**
+ * Editor Controls
+ */
+new \Kirki\Field\Editor(
+ [
+ 'settings' => 'kirki_demo_editor_1',
+ 'label' => esc_html__( 'First Editor Control', 'kirki' ),
+ 'description' => esc_html__( 'This is an editor control.', 'kirki' ),
+ 'section' => 'editor_section',
+ 'default' => '',
+ ]
+);
+
+new \Kirki\Field\Editor(
+ [
+ 'settings' => 'kirki_demo_editor_2',
+ 'label' => esc_html__( 'Second Editor Control', 'kirki' ),
+ 'description' => esc_html__( 'This is a 2nd editor control just to check that we do not have issues with multiple instances.', 'kirki' ),
+ 'section' => 'editor_section',
+ 'default' => esc_html__( 'Default Text', 'kirki' ),
+ ]
+);
+
+/**
+ * Color-Palette Controls.
+ *
+ * @link https://kirki.org/docs/controls/color-palette.html
+ */
+new \Kirki\Field\Color_Palette(
+ [
+ 'settings' => 'kirki_demo_color_palette_simple',
+ 'label' => esc_html__( 'Simple Colors Set', 'kirki' ),
+ 'description' => esc_html__( 'With default size (28). The `size` here is inner size (without border)', 'kirki' ),
+ 'section' => 'color_palette_section',
+ 'default' => '#888888',
+ 'transport' => 'postMessage',
+ 'choices' => [
+ 'colors' => [ '#000000', '#222222', '#444444', '#666666', '#888888', '#aaaaaa', '#cccccc', '#eeeeee', '#ffffff' ],
+ 'style' => 'round',
+ ],
+ ]
+);
+
+new \Kirki\Field\Color_Palette(
+ [
+ 'settings' => 'kirki_demo_color_palette_material_all',
+ 'label' => esc_html__( 'Material Design Colors — All', 'kirki' ),
+ 'description' => esc_html__( 'Showing all material design colors using `round` shape and size is 17', 'kirki' ),
+ 'section' => 'color_palette_section',
+ 'default' => '#D1C4E9',
+ 'transport' => 'postMessage',
+ 'choices' => [
+ 'colors' => Helper::get_material_design_colors( 'all' ),
+ 'shape' => 'round',
+ 'size' => 17,
+ ],
+ ]
+);
+
+new \Kirki\Field\Color_Palette(
+ [
+ 'settings' => 'kirki_demo_color_palette_material_primary',
+ 'label' => esc_html__( 'Material Design Colors — Primary', 'kirki' ),
+ 'description' => esc_html__( 'Showing primary material design colors', 'kirki' ),
+ 'section' => 'color_palette_section',
+ 'choices' => [
+ 'colors' => Helper::get_material_design_colors( 'primary' ),
+ 'size' => 25,
+ ],
+ ]
+);
+
+new \Kirki\Field\Color_Palette(
+ [
+ 'settings' => 'kirki_demo_color_palette_material_red',
+ 'label' => esc_html__( 'Material Design Colors — Red', 'kirki' ),
+ 'description' => esc_html__( 'Showing red material design colors', 'kirki' ),
+ 'section' => 'color_palette_section',
+ 'choices' => [
+ 'colors' => Helper::get_material_design_colors( 'red' ),
+ 'size' => 16,
+ ],
+ ]
+);
+
+new \Kirki\Field\Color_Palette(
+ [
+ 'settings' => 'kirki_demo_color_palette_a100',
+ 'label' => esc_html__( 'Material Design Colors — A100', 'kirki' ),
+ 'description' => esc_html__( 'Showing "A100" variant of material design colors', 'kirki' ),
+ 'section' => 'color_palette_section',
+ 'default' => '#FF80AB',
+ 'choices' => [
+ 'colors' => Helper::get_material_design_colors( 'A100' ),
+ 'size' => 60,
+ 'style' => 'round',
+ ],
+ ]
+);
+
+Kirki::add_field(
+ 'kirki_demo_config',
+ [
+ 'type' => 'color-palette',
+ 'settings' => 'kirki_demo_color_palette_old',
+ 'label' => 'The Old Way',
+ 'description' => 'Using `Kirki::add_field` in round shape',
+ 'section' => 'color_palette_section',
+ 'transport' => 'postMessage',
+ 'choices' => [
+ 'colors' => [ '#000000', '#222222', '#444444', '#666666', '#888888', '#aaaaaa', '#cccccc', '#eeeeee', '#ffffff' ],
+ 'style' => 'round',
+ ],
+ ]
+);
+
+add_action(
+ 'customize_register',
+ function( $wp_customize ) {
+ /**
+ * The custom control class
+ */
+ class Kirki_Demo_Custom_Control extends Kirki\Control\Base {
+ public $type = 'kirki-demo-custom-control';
+
+ public function render_content() {
+
+ $saved_value = $this->value();
+ ?>
+
+
label ); ?>
+
description ); ?>
+
+
+
+ 'kirki-demo-custom-control',
+ 'settings' => 'kirki_demo_custom_control_old_way',
+ 'label' => esc_html__( 'Custom Control', 'kirki' ),
+ 'description' => 'A custom control demo, registered by extending `Kirki\\Control\\Base` class.',
+ 'section' => 'custom_section',
+ 'transport' => 'postMessage',
+ ]
+);
+
+/**
+ * Dashicons control.
+ *
+ * @link https://kirki.org/docs/controls/dashicons.html
+ */
+new \Kirki\Field\Dashicons(
+ [
+ 'settings' => 'kirki_demo_dashicons_setting_0',
+ 'label' => esc_html__( 'Dashicons Control', 'kirki' ),
+ 'description' => esc_html__( 'Using a custom array of dashicons', 'kirki' ),
+ 'section' => 'dashicons_section',
+ 'default' => 'menu',
+ 'choices' => [
+ 'menu',
+ 'admin-site',
+ 'dashboard',
+ 'admin-post',
+ 'admin-media',
+ 'admin-links',
+ 'admin-page',
+ ],
+ ]
+);
+
+new \Kirki\Field\Dashicons(
+ [
+ 'settings' => 'kirki_demo_dashicons_setting_1',
+ 'label' => esc_html__( 'All Dashicons', 'kirki' ),
+ 'description' => esc_html__( 'Showing all dashicons', 'kirki' ),
+ 'section' => 'dashicons_section',
+ 'default' => 'menu',
+ ]
+);
+
+/**
+ * Dimension Control.
+ */
+new \Kirki\Field\Dimension(
+ [
+ 'settings' => 'kirki_demo_dimension_0',
+ 'label' => esc_html__( 'Dimension Control', 'kirki' ),
+ 'description' => esc_html__( 'A simple dimension control.', 'kirki' ),
+ 'section' => 'dimension_section',
+ 'default' => '10px',
+ 'choices' => [
+ 'accept_unitless' => true,
+ ],
+ ]
+);
+
+/**
+ * Dimensions Control.
+ */
+new \Kirki\Field\Dimensions(
+ [
+ 'settings' => 'kirki_demo_dimensions_0',
+ 'label' => esc_html__( 'Dimensions Control', 'kirki' ),
+ 'description' => esc_html__( 'Sample of dimensions control with 2 fields.', 'kirki' ),
+ 'section' => 'dimensions_section',
+ 'default' => [
+ 'width' => '100px',
+ 'height' => '100px',
+ ],
+ ]
+);
+
+new \Kirki\Field\Dimensions(
+ [
+ 'settings' => 'kirki_demo_dimensions_1',
+ 'label' => esc_html__( 'Dimension Control', 'kirki' ),
+ 'description' => esc_html__( 'Sample of dimensions control with 4 fields.', 'kirki' ),
+ 'section' => 'dimensions_section',
+ 'default' => [
+ 'padding-top' => '1em',
+ 'padding-bottom' => '10rem',
+ 'padding-left' => '1vh',
+ 'padding-right' => '10px',
+ ],
+ ]
+);
+
+new \Kirki\Field\Dimensions(
+ [
+ 'settings' => 'kirki_demo_padding',
+ 'label' => esc_html__( 'Padding Control', 'kirki' ),
+ 'description' => esc_html__( 'Sample of padding controls with 3 fields.', 'kirki' ),
+ 'section' => 'dimensions_section',
+ 'default' => [
+ 'top' => '1em',
+ 'bottom' => '10rem',
+ 'horizontal' => '1vh',
+ ],
+ ]
+);
+
+new \Kirki\Field\Dimensions(
+ [
+ 'settings' => 'kirki_demo_spacing',
+ 'label' => esc_html__( 'Spacing Control', 'kirki' ),
+ 'description' => esc_html__( 'Sample of spacing controls with 4 fields.', 'kirki' ),
+ 'section' => 'dimensions_section',
+ 'default' => [
+ 'top' => '1em',
+ 'bottom' => '10rem',
+ 'left' => '1vh',
+ 'right' => '10px',
+ ],
+ ]
+);
+
+/**
+ * Dropdown-pages Control.
+ */
+new \Kirki\Field\Dropdown_Pages(
+ [
+ 'settings' => 'kirki_demo_dropdown_pages',
+ 'label' => esc_html__( 'Dropdown Pages Control', 'kirki' ),
+ 'description' => esc_html__( 'Sample of dropdown pages control.', 'kirki' ),
+ 'section' => 'dropdown_pages_section',
+ 'default' => [
+ 'width' => '100px',
+ 'height' => '100px',
+ ],
+ ]
+);
+
+/**
+ * Generic Controls.
+ */
+new \Kirki\Field\Text(
+ [
+ 'settings' => 'kirki_demo_generic_text',
+ 'label' => esc_html__( 'Generic Control — Text Field', 'kirki' ),
+ 'description' => esc_html__( 'The demo of this control has partial refresh with transport is postMessage', 'kirki' ),
+ 'section' => 'generic_section',
+ 'transport' => 'postMessage',
+ 'default' => '',
+ 'partial_refresh' => [
+ 'generic_text_refresh' => [
+ 'selector' => '.kirki-partial-refresh-demo',
+ 'render_callback' => function() {
+ $value = get_theme_mod( 'kirki_demo_generic_text' );
+ return $value ? 'value of Generic URL Field control is: ' . $value : '';
+ },
+ ],
+ ],
+ ]
+);
+
+new \Kirki\Field\URL(
+ [
+ 'settings' => 'kirki_demo_generic_url',
+ 'label' => esc_html__( 'Generic Control — URL Field', 'kirki' ),
+ 'description' => esc_html__( 'The demo of this control has partial refresh without transport is defined', 'kirki' ),
+ 'section' => 'generic_section',
+ 'default' => '',
+ 'partial_refresh' => [
+ 'generic_text_refresh2' => [
+ 'selector' => '.kirki-partial-refresh-demo2',
+ 'render_callback' => function() {
+ $value = get_theme_mod( 'kirki_demo_generic_url' );
+ return $value ? 'value of Generic URL Field control is: ' . $value : '';
+ },
+ ],
+ ],
+ ]
+);
+
+new \Kirki\Field\Textarea(
+ [
+ 'settings' => 'kirki_demo_generic_textarea',
+ 'label' => esc_html__( 'Generic Control — Textarea Field', 'kirki' ),
+ 'description' => esc_html__( 'Description', 'kirki' ),
+ 'section' => 'generic_section',
+ 'default' => '',
+ ]
+);
+
+new \Kirki\Field\Generic(
+ [
+ 'settings' => 'kirki_demo_generic_custom',
+ 'label' => esc_html__( 'Generic Control — Custom Input.', 'kirki' ),
+ 'description' => esc_html__( 'The "generic" control allows you to add any input type you want. In this case we use type="password" and define custom styles.', 'kirki' ),
+ 'section' => 'generic_section',
+ 'default' => '',
+ 'choices' => [
+ 'element' => 'input',
+ 'type' => 'password',
+ 'style' => 'background-color:black;color:red;',
+ 'data-foo' => 'bar',
+ ],
+ ]
+);
+
+/**
+ * Image Control.
+ */
+new \Kirki\Field\Image(
+ [
+ 'settings' => 'kirki_demo_image_url',
+ 'label' => esc_html__( 'Image Control (URL)', 'kirki' ),
+ 'description' => esc_html__( 'The saved value will be the URL.', 'kirki' ),
+ 'section' => 'image_section',
+ 'default' => '',
+ ]
+);
+
+new \Kirki\Field\Image(
+ [
+ 'settings' => 'kirki_demo_image_id',
+ 'label' => esc_html__( 'Image Control (ID)', 'kirki' ),
+ 'description' => esc_html__( 'The saved value will an ID.', 'kirki' ),
+ 'section' => 'image_section',
+ 'default' => '',
+ 'choices' => [
+ 'save_as' => 'id',
+ ],
+ ]
+);
+
+new \Kirki\Field\Image(
+ [
+ 'settings' => 'kirki_demo_image_array',
+ 'label' => esc_html__( 'Image Control (array)', 'kirki' ),
+ 'description' => esc_html__( 'The saved value will an array.', 'kirki' ),
+ 'section' => 'image_section',
+ 'default' => '',
+ 'choices' => [
+ 'save_as' => 'array',
+ ],
+ ]
+);
+
+/**
+ * Upload control.
+ */
+new \Kirki\Field\Upload(
+ [
+ 'settings' => 'kirki_demo_upload_url',
+ 'label' => esc_html__( 'Upload Control (URL)', 'kirki' ),
+ 'description' => esc_html__( 'The saved value will the URL.', 'kirki' ),
+ 'section' => 'upload_section',
+ 'default' => '',
+ 'transport' => 'postMessage',
+ ]
+);
+
+/**
+ * Multicheck Control.
+ */
+new \Kirki\Field\Multicheck(
+ [
+ 'settings' => 'kirki_demo_multicheck',
+ 'label' => esc_html__( 'Multickeck Control', 'kirki' ),
+ 'section' => 'multicheck_section',
+ 'default' => [ 'option-1', 'option-3', 'option-4' ],
+ 'priority' => 10,
+ 'choices' => [
+ 'option-1' => esc_html__( 'Option 1', 'kirki' ),
+ 'option-2' => esc_html__( 'Option 2', 'kirki' ),
+ 'option-3' => esc_html__( 'Option 3', 'kirki' ),
+ 'option-4' => esc_html__( 'Option 4', 'kirki' ),
+ 'option-5' => esc_html__( 'Option 5', 'kirki' ),
+ ],
+ ]
+);
+
+/**
+ * Multicolor Control.
+ */
+new \Kirki\Field\Multicolor(
+ [
+ 'settings' => 'kirki_demo_multicolor',
+ 'label' => esc_html__( 'Multicolor Control', 'kirki' ),
+ 'section' => 'multicolor_section',
+ 'priority' => 10,
+ 'transport' => 'postMessage',
+ 'choices' => [
+ 'link' => esc_html__( 'Color', 'kirki' ),
+ 'hover' => esc_html__( 'And this hover color just so that you have long label', 'kirki' ),
+ 'active' => esc_html__( 'Active', 'kirki' ),
+ 'active' => esc_html__( 'Active', 'kirki' ),
+ 'active1' => esc_html__( 'Active', 'kirki' ),
+ 'active2' => esc_html__( 'Active', 'kirki' ),
+ 'active3' => esc_html__( 'Active', 'kirki' ),
+ 'active4' => esc_html__( 'Active', 'kirki' ),
+ 'active5' => esc_html__( 'Active', 'kirki' ),
+ 'active6' => esc_html__( 'Active', 'kirki' ),
+ 'active7' => esc_html__( 'Active', 'kirki' ),
+ 'active8' => esc_html__( 'Active', 'kirki' ),
+ 'active9' => esc_html__( 'Active', 'kirki' ),
+ 'active10' => esc_html__( 'Active', 'kirki' ),
+ 'active11' => esc_html__( 'Active', 'kirki' ),
+ 'active12' => esc_html__( 'Active', 'kirki' ),
+ 'active13' => esc_html__( 'Active', 'kirki' ),
+ 'active14' => esc_html__( 'Active', 'kirki' ),
+ 'active15' => esc_html__( 'Active', 'kirki' ),
+ ],
+ 'alpha' => true,
+ 'default' => [
+ 'link' => '#0088cc',
+ 'hover' => '#00aaff',
+ 'active' => '#00ffff',
+ ],
+ ]
+);
+
+/**
+ * Number Control.
+ */
+new \Kirki\Field\Number(
+ [
+ 'settings' => 'kirki_demo_number',
+ 'label' => esc_html__( 'Number Control', 'kirki' ),
+ 'section' => 'number_section',
+ 'priority' => 10,
+ 'choices' => [
+ 'min' => -5,
+ 'max' => 5,
+ 'step' => 1,
+ ],
+ ]
+);
+
+/**
+ * Palette Control.
+ */
+new \Kirki\Field\Palette(
+ array(
+ 'settings' => 'kirki_demo_palette',
+ 'label' => esc_html__( 'Control Palette', 'kirki' ),
+ 'section' => 'palette_section',
+ 'default' => 'blue',
+ 'choices' => array(
+ 'a200' => Kirki_Helper::get_material_design_colors( 'A200' ),
+ 'blue' => Kirki_Helper::get_material_design_colors( 'blue' ),
+ 'green' => array( '#E8F5E9', '#C8E6C9', '#A5D6A7', '#81C784', '#66BB6A', '#4CAF50', '#43A047', '#388E3C', '#2E7D32', '#1B5E20', '#B9F6CA', '#69F0AE', '#00E676', '#00C853' ),
+ 'bnw' => array( '#000000', '#ffffff' ),
+ ),
+ )
+);
+
+/**
+ * Radio Control.
+ */
+new \Kirki\Field\Radio(
+ [
+ 'settings' => 'kirki_demo_radio',
+ 'label' => esc_html__( 'Radio Control', 'kirki' ),
+ 'description' => esc_html__( 'The description here.', 'kirki' ),
+ 'section' => 'radio_section',
+ 'default' => 'option-3',
+ 'choices' => [
+ 'option-1' => esc_html__( 'Option 1', 'kirki' ),
+ 'option-2' => esc_html__( 'Option 2', 'kirki' ),
+ 'option-3' => esc_html__( 'Option 3', 'kirki' ),
+ 'option-4' => esc_html__( 'Option 4', 'kirki' ),
+ 'option-5' => esc_html__( 'Option 5', 'kirki' ),
+ ],
+ ]
+);
+
+/**
+ * Radio-Buttonset Control.
+ */
+new \Kirki\Field\Radio_Buttonset(
+ [
+ 'settings' => 'kirki_demo_radio_buttonset',
+ 'label' => esc_html__( 'Radio-Buttonset Control', 'kirki' ),
+ 'description' => esc_html__( 'Sample of radio-buttonset control.', 'kirki' ),
+ 'section' => 'radio_buttonset_section',
+ 'default' => 'option-2',
+ 'choices' => [
+ 'option-1' => esc_html__( 'Option 1', 'kirki' ),
+ 'option-2' => esc_html__( 'Option 2', 'kirki' ),
+ 'option-3' => esc_html__( 'Option 3', 'kirki' ),
+ ],
+ ]
+);
+
+/**
+ * Radio-Image Control.
+ */
+new \Kirki\Field\Radio_Image(
+ [
+ 'settings' => 'kirki_demo_radio_image',
+ 'label' => esc_html__( 'Radio-Image Control', 'kirki' ),
+ 'description' => esc_html__( 'Sample of radio image control.', 'kirki' ),
+ 'section' => 'radio_image_section',
+ 'default' => 'travel',
+ 'choices' => [
+ 'moto' => 'https://jawordpressorg.github.io/wapuu/wapuu-archive/wapuu-moto.png',
+ 'cossack' => 'https://raw.githubusercontent.com/templatemonster/cossack-wapuula/master/cossack-wapuula.png',
+ 'travel' => 'https://jawordpressorg.github.io/wapuu/wapuu-archive/wapuu-travel.png',
+ ],
+ ]
+);
+
+/**
+ * Repeater Control.
+ */
+new \Kirki\Field\Repeater(
+ [
+ 'settings' => 'kirki_demo_repeater',
+ 'label' => esc_html__( 'Repeater Control', 'kirki' ),
+ 'description' => esc_html__( 'Sample of repeater control.', 'kirki' ),
+ 'section' => 'repeater_section',
+ 'default' => [
+ [
+ 'link_text' => esc_html__( 'Kirki Site', 'kirki' ),
+ 'link_url' => 'https://kirki.org/',
+ 'link_target' => '_self',
+ 'checkbox' => false,
+ ],
+ [
+ 'link_text' => esc_html__( 'Kirki Repository', 'kirki' ),
+ 'link_url' => 'https://github.com/aristath/kirki',
+ 'link_target' => '_self',
+ 'checkbox' => false,
+ ],
+ ],
+ 'fields' => [
+ 'link_text' => [
+ 'type' => 'text',
+ 'label' => esc_html__( 'Link Text', 'kirki' ),
+ 'description' => esc_html__( 'This will be the label for your link', 'kirki' ),
+ 'default' => '',
+ ],
+ 'link_url' => [
+ 'type' => 'text',
+ 'label' => esc_html__( 'Link URL', 'kirki' ),
+ 'description' => esc_html__( 'This will be the link URL', 'kirki' ),
+ 'default' => '',
+ ],
+ 'link_target' => [
+ 'type' => 'select',
+ 'label' => esc_html__( 'Link Target', 'kirki' ),
+ 'description' => esc_html__( 'This will be the link target', 'kirki' ),
+ 'default' => '_self',
+ 'choices' => [
+ '_blank' => esc_html__( 'New Window', 'kirki' ),
+ '_self' => esc_html__( 'Same Frame', 'kirki' ),
+ ],
+ ],
+ 'checkbox' => [
+ 'type' => 'checkbox',
+ 'label' => esc_html__( 'Checkbox', 'kirki' ),
+ 'default' => false,
+ ],
+ ],
+ ]
+);
+
+/**
+ * Select Control.
+ */
+new \Kirki\Field\Select(
+ [
+ 'settings' => 'kirki_demo_select',
+ 'label' => esc_html__( 'Select Control', 'kirki' ),
+ 'description' => esc_html__( 'Sample of single mode select control.', 'kirki' ),
+ 'section' => 'select_section',
+ 'default' => 'option-3',
+ 'placeholder' => esc_html__( 'Select an option', 'kirki' ),
+ 'choices' => [
+ 'option-1' => esc_html__( 'Option 1', 'kirki' ),
+ 'option-2' => esc_html__( 'Option 2', 'kirki' ),
+ 'option-3' => esc_html__( 'Option 3', 'kirki' ),
+ 'option-4' => esc_html__( 'Option 4', 'kirki' ),
+ 'option-5' => esc_html__( 'Option 5', 'kirki' ),
+ ],
+ ]
+);
+
+new \Kirki\Field\Select(
+ [
+ 'settings' => 'kirki_demo_select_multiple',
+ 'label' => esc_html__( 'Select Control', 'kirki' ),
+ 'description' => esc_html__( 'Sample of multiple mode select control.', 'kirki' ),
+ 'section' => 'select_section',
+ 'default' => 'option-3',
+ 'multiple' => 3,
+ 'choices' => [
+ 'option-1' => esc_html__( 'Option 1', 'kirki' ),
+ 'option-2' => esc_html__( 'Option 2', 'kirki' ),
+ 'option-3' => esc_html__( 'Option 3', 'kirki' ),
+ 'option-4' => esc_html__( 'Option 4', 'kirki' ),
+ 'option-5' => esc_html__( 'Option 5', 'kirki' ),
+ ],
+ ]
+);
+
+/**
+ * Slider Control.
+ */
+new \Kirki\Field\Slider(
+ [
+ 'settings' => 'kirki_demo_slider',
+ 'label' => esc_html__( 'Slider Control', 'kirki' ),
+ 'description' => esc_html__( 'Sample of slider control.', 'kirki' ),
+ 'section' => 'slider_section',
+ 'default' => '10',
+ 'transport' => 'postMessage',
+ 'tooltip' => esc_html__( 'This is the tooltip', 'kirki' ),
+ 'choices' => [
+ 'min' => 0,
+ 'max' => 100,
+ 'step' => 1,
+ ],
+ ]
+);
+
+Kirki::add_field(
+ 'kirki_demo_config',
+ [
+ 'type' => 'slider',
+ 'settings' => 'kirki_demo_slider_old',
+ 'label' => esc_html__( 'Slider Control — Using Old Way', 'kirki' ),
+ 'description' => 'Added using `Kirki::add_field` (the old Kirki API)',
+ 'section' => 'slider_section',
+ 'transport' => 'postMessage',
+ 'choices' => [
+ 'min' => 0,
+ 'max' => 100,
+ 'step' => 0.5,
+ ],
+ ]
+);
+
+/**
+ * Sortable control.
+ */
+new \Kirki\Field\Sortable(
+ [
+ 'settings' => 'kirki_demo_sortable',
+ 'label' => __( 'This is a sortable control.', 'kirki' ),
+ 'section' => 'sortable_section',
+ 'default' => [ 'option3', 'option1', 'option4' ],
+ 'choices' => [
+ 'option1' => esc_html__( 'Option 1', 'kirki' ),
+ 'option2' => esc_html__( 'Option 2', 'kirki' ),
+ 'option3' => esc_html__( 'Option 3', 'kirki' ),
+ 'option4' => esc_html__( 'Option 4', 'kirki' ),
+ 'option5' => esc_html__( 'Option 5', 'kirki' ),
+ 'option6' => esc_html__( 'Option 6', 'kirki' ),
+ ],
+ ]
+);
+
+/**
+ * Switch control.
+ */
+new \Kirki\Field\Checkbox_Switch(
+ [
+ 'settings' => 'kirki_demo_switch',
+ 'label' => esc_html__( 'Switch Field', 'kirki' ),
+ 'description' => esc_html__( 'Simple switch control', 'kirki' ),
+ 'section' => 'switch_section',
+ 'transport' => 'postMessage',
+ 'default' => true,
+ ]
+);
+
+new \Kirki\Field\Checkbox_Switch(
+ [
+ 'settings' => 'kirki_demo_switch_custom_label',
+ 'label' => esc_html__( 'Switch Field — With custom labels', 'kirki' ),
+ 'description' => esc_html__( 'Switch control using custom labels', 'kirki' ),
+ 'section' => 'switch_section',
+ 'default' => true,
+ 'choices' => [
+ 'on' => esc_html__( 'Enabled', 'kirki' ),
+ 'off' => esc_html__( 'Disabled', 'kirki' ),
+ ],
+ 'active_callback' => [
+ [
+ 'setting' => 'kirki_demo_switch',
+ 'operator' => '==',
+ 'value' => true,
+ ],
+ ],
+ ]
+);
+
+/**
+ * Toggle control.
+ */
+Kirki::add_field(
+ 'kirki_demo_config',
+ [
+ 'type' => 'toggle',
+ 'settings' => 'kirki_demo_toggle_setting',
+ 'label' => esc_html__( 'Toggle Field', 'kirki' ),
+ 'description' => esc_html__( 'Toggle is just utilizing switch control but aligned horizontally & without the text', 'kirki' ),
+ 'section' => 'toggle_section',
+ 'default' => '1',
+ 'priority' => 10,
+ 'transport' => 'postMessage',
+ ]
+);
+
+/**
+ * Typography Control.
+ */
+new \Kirki\Field\Typography(
+ [
+ 'settings' => 'kirki_demo_kirki_typography_setting',
+ 'label' => esc_html__( 'Typography Control', 'kirki' ),
+ 'description' => esc_html__( 'The full set of options.', 'kirki' ),
+ 'section' => 'typography_section',
+ 'priority' => 10,
+ 'transport' => 'postMessage',
+ 'default' => [
+ 'font-family' => 'Roboto',
+ 'variant' => 'regular',
+ 'font-style' => 'normal',
+ 'color' => '#333333',
+ 'font-size' => '14px',
+ 'line-height' => '1.5',
+ 'letter-spacing' => '0',
+ 'text-transform' => 'none',
+ 'text-decoration' => 'none',
+ 'text-align' => 'left',
+ 'margin-top' => '0',
+ 'margin-bottom' => '0',
+ ],
+ 'output' => [
+ [
+ 'element' => 'body, p',
+ ],
+ ],
+ 'choices' => [
+ 'fonts' => [
+ 'google' => [ 'popularity', 60 ],
+ 'families' => [
+ 'custom' => [
+ 'text' => 'My Custom Fonts (demo only)',
+ 'children' => [
+ [
+ 'id' => 'helvetica-neue',
+ 'text' => 'Helvetica Neue',
+ ],
+ [
+ 'id' => 'linotype-authentic',
+ 'text' => 'Linotype Authentic',
+ ],
+ ],
+ ],
+ ],
+ 'variants' => [
+ 'helvetica-neue' => [ 'regular', '900' ],
+ 'linotype-authentic' => [ 'regular', '100', '300' ],
+ ],
+ ],
+ ],
+ ]
+);
+
+new \Kirki\Field\Typography(
+ [
+ 'settings' => 'kirki_demo_typography_setting_1',
+ 'label' => esc_html__( 'Typography Control', 'kirki' ),
+ 'description' => esc_html__( 'Just the font-family and font-weight.', 'kirki' ),
+ 'section' => 'typography_section',
+ 'priority' => 10,
+ 'transport' => 'auto',
+ 'default' => [
+ 'font-family' => 'Roboto',
+ ],
+ 'output' => [
+ [
+ 'element' => [ 'h1', 'h2', 'h3', 'h4', 'h5', 'h6' ],
+ ],
+ ],
+ ]
+);
+
+/**
+ * Example function that creates a control containing the available sidebars as choices.
+ *
+ * @return void
+ */
+function kirki_sidebars_select_example() {
+ $sidebars = [];
+ if ( isset( $GLOBALS['wp_registered_sidebars'] ) ) {
+ $sidebars = $GLOBALS['wp_registered_sidebars'];
+ }
+ $sidebars_choices = [];
+ foreach ( $sidebars as $sidebar ) {
+ $sidebars_choices[ $sidebar['id'] ] = $sidebar['name'];
+ }
+ if ( ! class_exists( 'Kirki' ) ) {
+ return;
+ }
+ new \Kirki\Field\Select(
+ [
+ 'settings' => 'kirki_demo_sidebars_select',
+ 'label' => esc_html__( 'Sidebars Select', 'kirki' ),
+ 'description' => esc_html__( 'An example of how to implement sidebars selection.', 'kirki' ),
+ 'section' => 'select_section',
+ 'default' => 'primary',
+ 'choices' => $sidebars_choices,
+ 'priority' => 30,
+ ]
+ );
+}
+add_action( 'init', 'kirki_sidebars_select_example', 999 );
diff --git a/functions/kirki/field/class-kirki-field-background.php b/functions/kirki/field/class-kirki-field-background.php
deleted file mode 100644
index ce5457a..0000000
--- a/functions/kirki/field/class-kirki-field-background.php
+++ /dev/null
@@ -1,117 +0,0 @@
-type = 'kirki-background';
- }
-
- /**
- * Sets the $sanitize_callback
- *
- * @access protected
- */
- protected function set_sanitize_callback() {
-
- // If a custom sanitize_callback has been defined,
- // then we don't need to proceed any further.
- if ( ! empty( $this->sanitize_callback ) ) {
- return;
- }
- $this->sanitize_callback = array( $this, 'sanitize' );
- }
-
- /**
- * Sanitizes typography controls
- *
- * @since 2.2.0
- * @param array $value The value.
- * @return array
- */
- public function sanitize( $value ) {
- if ( ! is_array( $value ) ) {
- return array();
- }
- return array(
- 'background-color' => ( isset( $value['background-color'] ) ) ? sanitize_text_field( $value['background-color'] ) : '',
- 'background-image' => ( isset( $value['background-image'] ) ) ? esc_url_raw( $value['background-image'] ) : '',
- 'background-repeat' => ( isset( $value['background-repeat'] ) ) ? sanitize_text_field( $value['background-repeat'] ) : '',
- 'background-position' => ( isset( $value['background-position'] ) ) ? sanitize_text_field( $value['background-position'] ) : '',
- 'background-size' => ( isset( $value['background-size'] ) ) ? sanitize_text_field( $value['background-size'] ) : '',
- 'background-attachment' => ( isset( $value['background-attachment'] ) ) ? sanitize_text_field( $value['background-attachment'] ) : '',
- );
- }
-
- /**
- * Sets the $js_vars
- *
- * @access protected
- */
- protected function set_js_vars() {
-
- // Typecast to array.
- $this->js_vars = (array) $this->js_vars;
-
- // Check if transport is set to auto.
- // If not, then skip the auto-calculations and exit early.
- if ( 'auto' !== $this->transport ) {
- return;
- }
-
- // Set transport to refresh initially.
- // Serves as a fallback in case we failt to auto-calculate js_vars.
- $this->transport = 'refresh';
-
- $js_vars = array();
-
- // Try to auto-generate js_vars.
- // First we need to check if js_vars are empty, and that output is not empty.
- if ( empty( $this->js_vars ) && ! empty( $this->output ) ) {
-
- // Start going through each item in the $output array.
- foreach ( $this->output as $output ) {
-
- // If 'element' is not defined, skip this.
- if ( ! isset( $output['element'] ) ) {
- continue;
- }
- if ( is_array( $output['element'] ) ) {
- $output['element'] = implode( ',', $output['element'] );
- }
-
- // If there's a sanitize_callback defined, skip this.
- if ( isset( $output['sanitize_callback'] ) && ! empty( $output['sanitize_callback'] ) ) {
- continue;
- }
-
- // If we got this far, it's safe to add this.
- $js_vars[] = $output;
- }
-
- // Did we manage to get all the items from 'output'?
- // If not, then we're missing something so don't add this.
- if ( count( $js_vars ) !== count( $this->output ) ) {
- return;
- }
- $this->js_vars = $js_vars;
- $this->transport = 'postMessage';
- }
- }
-}
diff --git a/functions/kirki/field/class-kirki-field-checkbox.php b/functions/kirki/field/class-kirki-field-checkbox.php
deleted file mode 100644
index 0983d2f..0000000
--- a/functions/kirki/field/class-kirki-field-checkbox.php
+++ /dev/null
@@ -1,56 +0,0 @@
-type = 'checkbox';
- }
-
- /**
- * Sets the $sanitize_callback.
- *
- * @access protected
- */
- protected function set_sanitize_callback() {
- if ( ! $this->sanitize_callback ) {
- $this->sanitize_callback = array( $this, 'sanitize' );
- }
- }
-
- /**
- * Sanitizes checkbox values.
- *
- * @access public
- * @param boolean|integer|string|null $value The checkbox value.
- * @return bool
- */
- public function sanitize( $value = null ) {
- return ( '0' === $value || 'false' === $value ) ? false : (bool) $value;
- }
-
- /**
- * Sets the default value.
- *
- * @access protected
- */
- protected function set_default() {
- $this->default = (bool) ( 1 === $this->default || '1' === $this->default || true === $this->default || 'true' === $this->default || 'on' === $this->default );
- }
-}
diff --git a/functions/kirki/field/class-kirki-field-code.php b/functions/kirki/field/class-kirki-field-code.php
deleted file mode 100644
index 8562b56..0000000
--- a/functions/kirki/field/class-kirki-field-code.php
+++ /dev/null
@@ -1,129 +0,0 @@
- 'kirki-code editor-keyboard-trap-help-1 editor-keyboard-trap-help-2 editor-keyboard-trap-help-3 editor-keyboard-trap-help-4',
- );
-
- /**
- * Sets the control type.
- *
- * @access protected
- */
- protected function set_type() {
- $this->type = 'code_editor';
- }
-
- /**
- * Sets the $choices
- *
- * @access protected
- */
- protected function set_choices() {
- if ( ! isset( $this->choices['language'] ) ) {
- return;
- }
- $language = $this->choices['language'];
- switch ( $language ) {
- case 'json':
- case 'xml':
- $language = 'application/' . $language;
- break;
- case 'http':
- $language = 'message/' . $language;
- break;
- case 'js':
- case 'javascript':
- $language = 'text/javascript';
- break;
- case 'txt':
- $language = 'text/plain';
- break;
- case 'css':
- case 'jsx':
- case 'html':
- $language = 'text/' . $language;
- break;
- default:
- $language = ( 'js' === $language ) ? 'javascript' : $language;
- $language = ( 'htm' === $language ) ? 'html' : $language;
- $language = ( 'yml' === $language ) ? 'yaml' : $language;
- $language = 'text/x-' . $language;
- break;
- }
- if ( ! isset( $this->editor_settings['codemirror'] ) ) {
- $this->editor_settings['codemirror'] = array();
- }
- if ( ! isset( $this->editor_settings['codemirror']['mode'] ) ) {
- $this->editor_settings['codemirror']['mode'] = $language;
- }
-
- if ( 'text/x-scss' === $this->editor_settings['codemirror']['mode'] ) {
- $this->editor_settings['codemirror'] = array_merge(
- $this->editor_settings['codemirror'],
- array(
- 'lint' => false,
- 'autoCloseBrackets' => true,
- 'matchBrackets' => true,
- )
- );
- }
- }
-
- /**
- * Sets the $sanitize_callback
- *
- * @access protected
- */
- protected function set_sanitize_callback() {
-
- // If a custom sanitize_callback has been defined,
- // then we don't need to proceed any further.
- if ( ! empty( $this->sanitize_callback ) ) {
- return;
- }
- // Code fields must NOT be filtered. Their values usually contain CSS/JS.
- // It is the responsibility of the theme/plugin that registers this field
- // to properly apply any necessary filtering.
- $this->sanitize_callback = array( 'Kirki_Sanitize_Values', 'unfiltered' );
- }
-}
diff --git a/functions/kirki/field/class-kirki-field-color-alpha.php b/functions/kirki/field/class-kirki-field-color-alpha.php
deleted file mode 100644
index de4daec..0000000
--- a/functions/kirki/field/class-kirki-field-color-alpha.php
+++ /dev/null
@@ -1,28 +0,0 @@
-choices ) ) {
- $this->choices = array();
- }
- $this->choices['alpha'] = true;
- }
-}
diff --git a/functions/kirki/field/class-kirki-field-color-palette.php b/functions/kirki/field/class-kirki-field-color-palette.php
deleted file mode 100644
index ead2f9a..0000000
--- a/functions/kirki/field/class-kirki-field-color-palette.php
+++ /dev/null
@@ -1,25 +0,0 @@
-type = 'kirki-color-palette';
- }
-}
diff --git a/functions/kirki/field/class-kirki-field-color.php b/functions/kirki/field/class-kirki-field-color.php
deleted file mode 100644
index 7ad7d91..0000000
--- a/functions/kirki/field/class-kirki-field-color.php
+++ /dev/null
@@ -1,85 +0,0 @@
-type = 'kirki-color';
- }
-
- /**
- * Sets the $choices
- *
- * @access protected
- */
- protected function set_choices() {
- if ( ! is_array( $this->choices ) ) {
- $this->choices = array();
- }
- if ( true === $this->alpha ) {
- _doing_it_wrong( 'Kirki::add_field', esc_html__( 'Do not use "alpha" as an argument in color controls. Use "choices[alpha]" instead.', 'kirki' ), '3.0.10' );
- $this->choices['alpha'] = true;
- }
- if ( ! isset( $this->choices['alpha'] ) || true !== $this->choices['alpha'] ) {
- $this->choices['alpha'] = true;
- if ( property_exists( $this, 'default' ) && ! empty( $this->default ) && false === strpos( 'rgba', $this->default ) ) {
- $this->choices['alpha'] = false;
- }
- }
-
- if ( ( ! isset( $this->choices['mode'] ) ) || ( 'hex' !== $this->choices['mode'] || 'hue' !== $this->choices['mode'] ) ) {
- $this->choices['mode'] = 'hex';
- }
- }
-
- /**
- * Sets the $sanitize_callback
- *
- * @access protected
- */
- protected function set_sanitize_callback() {
-
- // If a custom sanitize_callback has been defined,
- // then we don't need to proceed any further.
- if ( ! empty( $this->sanitize_callback ) ) {
- return;
- }
- if ( 'hue' === $this->mode ) {
- $this->sanitize_callback = 'absint';
- return;
- }
- $this->sanitize_callback = array( 'Kirki_Sanitize_Values', 'color' );
- }
-}
diff --git a/functions/kirki/field/class-kirki-field-custom.php b/functions/kirki/field/class-kirki-field-custom.php
deleted file mode 100644
index 0929e5b..0000000
--- a/functions/kirki/field/class-kirki-field-custom.php
+++ /dev/null
@@ -1,43 +0,0 @@
-type = 'kirki-custom';
- }
-
- /**
- * Sets the $sanitize_callback
- *
- * @access protected
- */
- protected function set_sanitize_callback() {
-
- // If a custom sanitize_callback has been defined,
- // then we don't need to proceed any further.
- if ( ! empty( $this->sanitize_callback ) ) {
- return;
- }
-
- // Custom fields don't actually save any value.
- // just use __return_true.
- $this->sanitize_callback = '__return_true';
- }
-}
diff --git a/functions/kirki/field/class-kirki-field-dashicons.php b/functions/kirki/field/class-kirki-field-dashicons.php
deleted file mode 100644
index 51360b6..0000000
--- a/functions/kirki/field/class-kirki-field-dashicons.php
+++ /dev/null
@@ -1,40 +0,0 @@
-type = 'kirki-dashicons';
- }
-
- /**
- * Sets the $sanitize_callback
- *
- * @access protected
- */
- protected function set_sanitize_callback() {
-
- // If a custom sanitize_callback has been defined,
- // then we don't need to proceed any further.
- if ( ! empty( $this->sanitize_callback ) ) {
- return;
- }
- $this->sanitize_callback = 'sanitize_text_field';
- }
-}
diff --git a/functions/kirki/field/class-kirki-field-date.php b/functions/kirki/field/class-kirki-field-date.php
deleted file mode 100644
index 9d95af3..0000000
--- a/functions/kirki/field/class-kirki-field-date.php
+++ /dev/null
@@ -1,40 +0,0 @@
-type = 'kirki-date';
- }
-
- /**
- * Sets the $sanitize_callback
- *
- * @access protected
- */
- protected function set_sanitize_callback() {
-
- // If a custom sanitize_callback has been defined,
- // then we don't need to proceed any further.
- if ( ! empty( $this->sanitize_callback ) ) {
- return;
- }
- $this->sanitize_callback = 'sanitize_text_field';
- }
-}
diff --git a/functions/kirki/field/class-kirki-field-dimension.php b/functions/kirki/field/class-kirki-field-dimension.php
deleted file mode 100644
index 3cc72ed..0000000
--- a/functions/kirki/field/class-kirki-field-dimension.php
+++ /dev/null
@@ -1,36 +0,0 @@
-type = 'kirki-dimension';
- }
-
- /**
- * Sanitizes the value.
- *
- * @access public
- * @param string $value The value.
- * @return string
- */
- public function sanitize( $value ) {
- return sanitize_text_field( $value );
- }
-}
diff --git a/functions/kirki/field/class-kirki-field-dimensions.php b/functions/kirki/field/class-kirki-field-dimensions.php
deleted file mode 100644
index e41382f..0000000
--- a/functions/kirki/field/class-kirki-field-dimensions.php
+++ /dev/null
@@ -1,71 +0,0 @@
-type = 'kirki-dimensions';
- }
-
- /**
- * Sets the $sanitize_callback.
- *
- * @access protected
- */
- protected function set_sanitize_callback() {
-
- // If a custom sanitize_callback has been defined,
- // then we don't need to proceed any further.
- if ( ! empty( $this->sanitize_callback ) ) {
- return;
- }
- $this->sanitize_callback = array( $this, 'sanitize' );
- }
-
- /**
- * Sanitizes the value.
- *
- * @access public
- * @param array $value The value.
- * @return array
- */
- public function sanitize( $value ) {
-
- // Sanitize each sub-value separately.
- foreach ( $value as $key => $sub_value ) {
- $value[ $key ] = sanitize_text_field( $sub_value );
- }
- return $value;
- }
-
- /**
- * Set the choices.
- * Adds a pseudo-element "controls" that helps with the JS API.
- *
- * @access protected
- */
- protected function set_choices() {
- $this->choices['controls'] = array();
- if ( is_array( $this->default ) ) {
- foreach ( $this->default as $key => $value ) {
- $this->choices['controls'][ $key ] = true;
- }
- }
- }
-}
diff --git a/functions/kirki/field/class-kirki-field-dropdown-pages.php b/functions/kirki/field/class-kirki-field-dropdown-pages.php
deleted file mode 100644
index 347a471..0000000
--- a/functions/kirki/field/class-kirki-field-dropdown-pages.php
+++ /dev/null
@@ -1,29 +0,0 @@
-choices[ $page->ID ] = $page->post_title;
- }
- }
-}
diff --git a/functions/kirki/field/class-kirki-field-editor.php b/functions/kirki/field/class-kirki-field-editor.php
deleted file mode 100644
index 5b55201..0000000
--- a/functions/kirki/field/class-kirki-field-editor.php
+++ /dev/null
@@ -1,53 +0,0 @@
-= 0 ) {
- $this->type = 'kirki-editor';
- return;
- }
-
- // Fallback for older WordPress versions.
- $this->type = 'kirki-generic';
- if ( ! is_array( $this->choices ) ) {
- $this->choices = array();
- }
- $this->choices['element'] = 'textarea';
- $this->choices['rows'] = '5';
- }
-
- /**
- * Sets the $sanitize_callback
- *
- * @access protected
- */
- protected function set_sanitize_callback() {
-
- // If a custom sanitize_callback has been defined,
- // then we don't need to proceed any further.
- if ( ! empty( $this->sanitize_callback ) ) {
- return;
- }
- $this->sanitize_callback = 'wp_kses_post';
- }
-}
diff --git a/functions/kirki/field/class-kirki-field-fontawesome.php b/functions/kirki/field/class-kirki-field-fontawesome.php
deleted file mode 100644
index 9f4e671..0000000
--- a/functions/kirki/field/class-kirki-field-fontawesome.php
+++ /dev/null
@@ -1,55 +0,0 @@
-choices = array();
- foreach ( $fa_array['icons'] as $icon ) {
- if ( ! isset( $icon['id'] ) || ! isset( $icon['name'] ) ) {
- continue;
- }
- $this->choices[ $icon['id'] ] = $icon['name'];
- }
- }
-
- /**
- * Sets the $sanitize_callback
- *
- * @access protected
- */
- protected function set_sanitize_callback() {
-
- // If a custom sanitize_callback has been defined,
- // then we don't need to proceed any further.
- if ( ! empty( $this->sanitize_callback ) ) {
- return;
- }
- $this->sanitize_callback = 'sanitize_text_field';
- }
-}
diff --git a/functions/kirki/field/class-kirki-field-generic.php b/functions/kirki/field/class-kirki-field-generic.php
deleted file mode 100644
index c0479d6..0000000
--- a/functions/kirki/field/class-kirki-field-generic.php
+++ /dev/null
@@ -1,15 +0,0 @@
-type = 'kirki-image';
- }
-
- /**
- * Sets the button labels.
- *
- * @access protected
- * @since 3.0.23
- * @return void
- */
- protected function set_button_labels() {
- $this->button_labels = wp_parse_args(
- $this->button_labels,
- array(
- 'select' => esc_html__( 'Select image', 'kirki' ),
- 'change' => esc_html__( 'Change image', 'kirki' ),
- 'default' => esc_html__( 'Default', 'kirki' ),
- 'remove' => esc_html__( 'Remove', 'kirki' ),
- 'placeholder' => esc_html__( 'No image selected', 'kirki' ),
- 'frame_title' => esc_html__( 'Select image', 'kirki' ),
- 'frame_button' => esc_html__( 'Choose image', 'kirki' ),
- )
- );
- }
-
- /**
- * Set the choices.
- * Adds a pseudo-element "controls" that helps with the JS API.
- *
- * @access protected
- */
- protected function set_choices() {
- if ( ! is_array( $this->choices ) ) {
- $this->choices = (array) $this->choices;
- }
- if ( ! isset( $this->choices['save_as'] ) ) {
- $this->choices['save_as'] = 'url';
- }
- if ( ! isset( $this->choices['labels'] ) ) {
- $this->choices['labels'] = array();
- }
- $this->set_button_labels();
- $this->choices['labels'] = wp_parse_args( $this->choices['labels'], $this->button_labels );
- }
-
- /**
- * Sets the $sanitize_callback
- *
- * @access protected
- */
- protected function set_sanitize_callback() {
-
- // If a custom sanitize_callback has been defined,
- // then we don't need to proceed any further.
- if ( ! empty( $this->sanitize_callback ) ) {
- return;
- }
- $this->sanitize_callback = array( $this, 'sanitize' );
- }
-
- /**
- * The sanitize method that will be used as a falback
- *
- * @param string|array $value The control's value.
- */
- public function sanitize( $value ) {
- if ( isset( $this->choices['save_as'] ) && 'array' === $this->choices['save_as'] ) {
- return array(
- 'id' => ( isset( $value['id'] ) && '' !== $value['id'] ) ? (int) $value['id'] : '',
- 'url' => ( isset( $value['url'] ) && '' !== $value['url'] ) ? esc_url_raw( $value['url'] ) : '',
- 'width' => ( isset( $value['width'] ) && '' !== $value['width'] ) ? (int) $value['width'] : '',
- 'height' => ( isset( $value['height'] ) && '' !== $value['height'] ) ? (int) $value['height'] : '',
- );
- }
- if ( isset( $this->choices['save_as'] ) && 'id' === $this->choices['save_as'] ) {
- return absint( $value );
- }
- if ( is_string( $value ) ) {
- return esc_url_raw( $value );
- }
- return $value;
- }
-}
diff --git a/functions/kirki/field/class-kirki-field-kirki-generic.php b/functions/kirki/field/class-kirki-field-kirki-generic.php
deleted file mode 100644
index 0c88311..0000000
--- a/functions/kirki/field/class-kirki-field-kirki-generic.php
+++ /dev/null
@@ -1,55 +0,0 @@
-type = 'kirki-generic';
- }
-
-
- /**
- * Sets the $choices
- *
- * @access protected
- */
- protected function set_choices() {
- if ( ! is_array( $this->choices ) ) {
- $this->choices = array();
- }
- if ( ! isset( $this->choices['element'] ) ) {
- $this->choices['element'] = 'input';
- }
- }
-
- /**
- * Sets the $sanitize_callback
- *
- * @access protected
- */
- protected function set_sanitize_callback() {
-
- // If a custom sanitize_callback has been defined,
- // then we don't need to proceed any further.
- if ( ! empty( $this->sanitize_callback ) ) {
- return;
- }
- $this->sanitize_callback = 'wp_kses_post';
- }
-}
diff --git a/functions/kirki/field/class-kirki-field-link.php b/functions/kirki/field/class-kirki-field-link.php
deleted file mode 100644
index f8e42e8..0000000
--- a/functions/kirki/field/class-kirki-field-link.php
+++ /dev/null
@@ -1,15 +0,0 @@
-type = 'kirki-multicheck';
- }
-
- /**
- * Sets the $sanitize_callback
- *
- * @access protected
- */
- protected function set_sanitize_callback() {
-
- // If a custom sanitize_callback has been defined,
- // then we don't need to proceed any further.
- if ( ! empty( $this->sanitize_callback ) ) {
- return;
- }
- $this->sanitize_callback = array( $this, 'sanitize' );
- }
-
- /**
- * The sanitize method that will be used as a falback
- *
- * @param string|array $value The control's value.
- */
- public function sanitize( $value ) {
- $value = ( ! is_array( $value ) ) ? explode( ',', $value ) : $value;
- return ( ! empty( $value ) ) ? array_map( 'sanitize_text_field', $value ) : array();
- }
-}
diff --git a/functions/kirki/field/class-kirki-field-multicolor.php b/functions/kirki/field/class-kirki-field-multicolor.php
deleted file mode 100644
index e2a3ab6..0000000
--- a/functions/kirki/field/class-kirki-field-multicolor.php
+++ /dev/null
@@ -1,67 +0,0 @@
-type = 'kirki-multicolor';
-
- }
-
- /**
- * Sets the $choices
- *
- * @access protected
- */
- protected function set_choices() {
-
- // Make sure choices are defined as an array.
- if ( ! is_array( $this->choices ) ) {
- $this->choices = array();
- }
-
- }
-
- /**
- * Sets the $sanitize_callback
- *
- * @access protected
- */
- protected function set_sanitize_callback() {
-
- // If a custom sanitize_callback has been defined,
- // then we don't need to proceed any further.
- if ( ! empty( $this->sanitize_callback ) ) {
- return;
- }
- $this->sanitize_callback = array( $this, 'sanitize' );
-
- }
-
- /**
- * The method that will be used as a `sanitize_callback`.
- *
- * @param array $value The value to be sanitized.
- * @return array The value.
- */
- public function sanitize( $value ) {
- return $value;
- }
-}
diff --git a/functions/kirki/field/class-kirki-field-number.php b/functions/kirki/field/class-kirki-field-number.php
deleted file mode 100644
index 9a29c76..0000000
--- a/functions/kirki/field/class-kirki-field-number.php
+++ /dev/null
@@ -1,81 +0,0 @@
-type = 'kirki-number';
-
- }
-
- /**
- * Sets the $sanitize_callback
- *
- * @access protected
- */
- protected function set_sanitize_callback() {
- $this->sanitize_callback = array( $this, 'sanitize' );
- }
-
- /**
- * Sets the $choices
- *
- * @access protected
- */
- protected function set_choices() {
- $this->choices = wp_parse_args(
- $this->choices,
- array(
- 'min' => -999999999,
- 'max' => 999999999,
- 'step' => 1,
- )
- );
- // Make sure min, max & step are all numeric.
- $this->choices['min'] = filter_var( $this->choices['min'], FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION );
- $this->choices['max'] = filter_var( $this->choices['max'], FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION );
- $this->choices['step'] = filter_var( $this->choices['step'], FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION );
- }
-
- /**
- * Sanitizes numeric values.
- *
- * @access public
- * @param integer|string $value The checkbox value.
- * @return bool
- */
- public function sanitize( $value = 0 ) {
- $this->set_choices();
-
- $value = filter_var( $value, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION );
-
- // Minimum & maximum value limits.
- if ( $value < $this->choices['min'] || $value > $this->choices['max'] ) {
- return max( min( $value, $this->choices['max'] ), $this->choices['min'] );
- }
-
- // Only multiple of steps.
- $steps = ( $value - $this->choices['min'] ) / $this->choices['step'];
- if ( ! is_int( $steps ) ) {
- $value = $this->choices['min'] + ( round( $steps ) * $this->choices['step'] );
- }
- return $value;
- }
-}
diff --git a/functions/kirki/field/class-kirki-field-palette.php b/functions/kirki/field/class-kirki-field-palette.php
deleted file mode 100644
index 83c84d0..0000000
--- a/functions/kirki/field/class-kirki-field-palette.php
+++ /dev/null
@@ -1,25 +0,0 @@
-type = 'kirki-palette';
- }
-}
diff --git a/functions/kirki/field/class-kirki-field-preset.php b/functions/kirki/field/class-kirki-field-preset.php
deleted file mode 100644
index 1bef914..0000000
--- a/functions/kirki/field/class-kirki-field-preset.php
+++ /dev/null
@@ -1,42 +0,0 @@
-type = 'kirki-select';
- }
-
- /**
- * Set the preset.
- *
- * @access protected
- * @since 3.0.28
- */
- protected function set_preset() {
-
- // Set preset from the choices.
- $this->preset = $this->choices;
-
- // We're using a flat select.
- foreach ( $this->choices as $key => $args ) {
- $this->choices[ $key ] = $args['label'];
- }
- }
-}
diff --git a/functions/kirki/field/class-kirki-field-radio-buttonset.php b/functions/kirki/field/class-kirki-field-radio-buttonset.php
deleted file mode 100644
index afd0b41..0000000
--- a/functions/kirki/field/class-kirki-field-radio-buttonset.php
+++ /dev/null
@@ -1,25 +0,0 @@
-type = 'kirki-radio-buttonset';
- }
-}
diff --git a/functions/kirki/field/class-kirki-field-radio-image.php b/functions/kirki/field/class-kirki-field-radio-image.php
deleted file mode 100644
index be44475..0000000
--- a/functions/kirki/field/class-kirki-field-radio-image.php
+++ /dev/null
@@ -1,25 +0,0 @@
-type = 'kirki-radio-image';
- }
-}
diff --git a/functions/kirki/field/class-kirki-field-radio.php b/functions/kirki/field/class-kirki-field-radio.php
deleted file mode 100644
index bdc4175..0000000
--- a/functions/kirki/field/class-kirki-field-radio.php
+++ /dev/null
@@ -1,56 +0,0 @@
-type = 'kirki-radio';
-
- // Tweaks for backwards-compatibility:
- // Prior to version 0.8 radio-buttonset & radio-image were part of the radio control.
- if ( in_array( $this->mode, array( 'buttonset', 'image' ), true ) ) {
- /* translators: %1$s represents the field ID where the error occurs. %2%s is buttonset/image. */
- _doing_it_wrong( __METHOD__, sprintf( esc_html__( 'Error in field %1$s. The "mode" argument has been deprecated since Kirki v0.8. Use the "radio-%2$s" type instead.', 'kirki' ), esc_html( $this->settings ), esc_html( $this->mode ) ), '3.0.10' );
- $this->type = 'radio-' . $this->mode;
- }
- }
-
- /**
- * Sets the $sanitize_callback
- *
- * @access protected
- */
- protected function set_sanitize_callback() {
-
- // If a custom sanitize_callback has been defined,
- // then we don't need to proceed any further.
- if ( ! empty( $this->sanitize_callback ) ) {
- return;
- }
- $this->sanitize_callback = 'sanitize_text_field';
- }
-}
diff --git a/functions/kirki/field/class-kirki-field-select.php b/functions/kirki/field/class-kirki-field-select.php
deleted file mode 100644
index f2ef6b2..0000000
--- a/functions/kirki/field/class-kirki-field-select.php
+++ /dev/null
@@ -1,102 +0,0 @@
- 1, then the maximum number of selectable options
- * is the number defined here.
- *
- * @access protected
- * @var integer
- */
- protected $multiple = 1;
-
- /**
- * Placeholder text.
- *
- * @access protected
- * @since 3.0.21
- * @var string|false
- */
- protected $placeholder = false;
-
- /**
- * Sets the control type.
- *
- * @access protected
- */
- protected function set_type() {
- $this->type = 'kirki-select';
- }
-
- /**
- * Sets the $multiple
- *
- * @access protected
- */
- protected function set_multiple() {
- $this->multiple = absint( $this->multiple );
- }
-
- /**
- * Sets the $sanitize_callback
- *
- * @access protected
- */
- protected function set_sanitize_callback() {
-
- // If a custom sanitize_callback has been defined,
- // then we don't need to proceed any further.
- if ( ! empty( $this->sanitize_callback ) ) {
- return;
- }
- $this->sanitize_callback = array( $this, 'sanitize' );
- }
-
- /**
- * Sanitizes select control values.
- *
- * @since 2.2.8
- * @access public
- * @param array $value The value.
- * @return string|array
- */
- public function sanitize( $value ) {
- if ( is_array( $value ) ) {
- foreach ( $value as $key => $subvalue ) {
- if ( '' !== $subvalue || isset( $this->choices[''] ) ) {
- $key = sanitize_key( $key );
- $value[ $key ] = sanitize_text_field( $subvalue );
- }
- }
- return $value;
- }
- return sanitize_text_field( $value );
- }
-
- /**
- * Sets the default value.
- *
- * @access protected
- * @since 3.0.0
- */
- protected function set_default() {
- if ( 1 < $this->multiple && ! is_array( $this->default ) ) {
- $this->default = array( $this->default );
- }
- }
-}
diff --git a/functions/kirki/field/class-kirki-field-select2-multiple.php b/functions/kirki/field/class-kirki-field-select2-multiple.php
deleted file mode 100644
index c99083c..0000000
--- a/functions/kirki/field/class-kirki-field-select2-multiple.php
+++ /dev/null
@@ -1,27 +0,0 @@
-multiple = 999;
- }
-}
diff --git a/functions/kirki/field/class-kirki-field-select2.php b/functions/kirki/field/class-kirki-field-select2.php
deleted file mode 100644
index aa2503b..0000000
--- a/functions/kirki/field/class-kirki-field-select2.php
+++ /dev/null
@@ -1,17 +0,0 @@
-type = 'kirki-slider';
- }
-}
diff --git a/functions/kirki/field/class-kirki-field-sortable.php b/functions/kirki/field/class-kirki-field-sortable.php
deleted file mode 100644
index 4b72624..0000000
--- a/functions/kirki/field/class-kirki-field-sortable.php
+++ /dev/null
@@ -1,56 +0,0 @@
-type = 'kirki-sortable';
- }
-
- /**
- * Sets the $sanitize_callback.
- *
- * @access protected
- */
- protected function set_sanitize_callback() {
- $this->sanitize_callback = array( $this, 'sanitize' );
- }
-
- /**
- * Sanitizes sortable values.
- *
- * @access public
- * @param array $value The checkbox value.
- * @return array
- */
- public function sanitize( $value = array() ) {
- if ( is_string( $value ) || is_numeric( $value ) ) {
- return array(
- sanitize_text_field( $value ),
- );
- }
- $sanitized_value = array();
- foreach ( $value as $sub_value ) {
- if ( isset( $this->choices[ $sub_value ] ) ) {
- $sanitized_value[] = sanitize_text_field( $sub_value );
- }
- }
- return $sanitized_value;
- }
-}
diff --git a/functions/kirki/field/class-kirki-field-spacing.php b/functions/kirki/field/class-kirki-field-spacing.php
deleted file mode 100644
index 760285a..0000000
--- a/functions/kirki/field/class-kirki-field-spacing.php
+++ /dev/null
@@ -1,41 +0,0 @@
- array(
- 'top' => ( isset( $this->default['top'] ) ),
- 'bottom' => ( isset( $this->default['top'] ) ),
- 'left' => ( isset( $this->default['top'] ) ),
- 'right' => ( isset( $this->default['top'] ) ),
- ),
- 'labels' => array(
- 'top' => esc_html__( 'Top', 'kirki' ),
- 'bottom' => esc_html__( 'Bottom', 'kirki' ),
- 'left' => esc_html__( 'Left', 'kirki' ),
- 'right' => esc_html__( 'Right', 'kirki' ),
- ),
- );
-
- $this->choices = wp_parse_args( $this->choices, $default_args );
- }
-}
diff --git a/functions/kirki/field/class-kirki-field-switch.php b/functions/kirki/field/class-kirki-field-switch.php
deleted file mode 100644
index b9439ed..0000000
--- a/functions/kirki/field/class-kirki-field-switch.php
+++ /dev/null
@@ -1,45 +0,0 @@
-type = 'kirki-switch';
- }
-
- /**
- * Sets the control choices.
- *
- * @access protected
- */
- protected function set_choices() {
- if ( ! is_array( $this->choices ) ) {
- $this->choices = array();
- }
-
- $this->choices = wp_parse_args(
- $this->choices,
- array(
- 'on' => esc_html__( 'On', 'kirki' ),
- 'off' => esc_html__( 'Off', 'kirki' ),
- 'round' => false,
- )
- );
- }
-}
diff --git a/functions/kirki/field/class-kirki-field-text.php b/functions/kirki/field/class-kirki-field-text.php
deleted file mode 100644
index a8f71b2..0000000
--- a/functions/kirki/field/class-kirki-field-text.php
+++ /dev/null
@@ -1,44 +0,0 @@
-choices ) ) {
- $this->choices = array();
- }
- $this->choices['element'] = 'input';
- $this->choices['type'] = 'text';
- }
-
- /**
- * Sets the $sanitize_callback
- *
- * @access protected
- */
- protected function set_sanitize_callback() {
-
- // If a custom sanitize_callback has been defined,
- // then we don't need to proceed any further.
- if ( ! empty( $this->sanitize_callback ) ) {
- return;
- }
- $this->sanitize_callback = 'sanitize_textarea_field';
- }
-}
diff --git a/functions/kirki/field/class-kirki-field-textarea.php b/functions/kirki/field/class-kirki-field-textarea.php
deleted file mode 100644
index 1f2f055..0000000
--- a/functions/kirki/field/class-kirki-field-textarea.php
+++ /dev/null
@@ -1,28 +0,0 @@
-choices = array(
- 'element' => 'textarea',
- 'rows' => 5,
- );
- }
-}
diff --git a/functions/kirki/field/class-kirki-field-toggle.php b/functions/kirki/field/class-kirki-field-toggle.php
deleted file mode 100644
index f264ec3..0000000
--- a/functions/kirki/field/class-kirki-field-toggle.php
+++ /dev/null
@@ -1,25 +0,0 @@
-type = 'kirki-toggle';
- }
-}
diff --git a/functions/kirki/field/class-kirki-field-typography.php b/functions/kirki/field/class-kirki-field-typography.php
deleted file mode 100644
index 72aaa4b..0000000
--- a/functions/kirki/field/class-kirki-field-typography.php
+++ /dev/null
@@ -1,217 +0,0 @@
-type = 'kirki-typography';
- }
-
- /**
- * The class constructor.
- * Parses and sanitizes all field arguments.
- * Then it adds the field to Kirki::$fields.
- *
- * @access public
- * @param string $config_id The ID of the config we want to use.
- * Defaults to "global".
- * Configs are handled by the Kirki_Config class.
- * @param array $args The arguments of the field.
- */
- public function __construct( $config_id = 'global', $args = array() ) {
- parent::__construct( $config_id, $args );
- $this->set_default();
- }
-
- /**
- * Sets the default value.
- *
- * @access protected
- */
- protected function set_default() {
-
- // Accomodate the use of font-weight and convert to variant.
- if ( isset( $this->default['font-weight'] ) ) {
- $this->default['variant'] = ( 'regular' === $this->default['font-weight'] ) ? 400 : (string) intval( $this->default['font-weight'] );
- }
-
- // Make sure letter-spacing has units.
- if ( isset( $this->default['letter-spacing'] ) && is_numeric( $this->default['letter-spacing'] ) && $this->default['letter-spacing'] ) {
- $this->default['letter-spacing'] .= 'px';
- }
- }
-
- /**
- * Sets the $sanitize_callback
- *
- * @access protected
- */
- protected function set_sanitize_callback() {
-
- // If a custom sanitize_callback has been defined,
- // then we don't need to proceed any further.
- if ( ! empty( $this->sanitize_callback ) ) {
- return;
- }
- $this->sanitize_callback = array( __CLASS__, 'sanitize' );
- }
-
- /**
- * Sets the $js_vars
- *
- * @access protected
- */
- protected function set_js_vars() {
- if ( ! is_array( $this->js_vars ) ) {
- $this->js_vars = array();
- }
-
- // Check if transport is set to auto.
- // If not, then skip the auto-calculations and exit early.
- if ( 'auto' !== $this->transport ) {
- return;
- }
-
- // Set transport to refresh initially.
- // Serves as a fallback in case we failt to auto-calculate js_vars.
- $this->transport = 'refresh';
-
- $js_vars = array();
-
- // Try to auto-generate js_vars.
- // First we need to check if js_vars are empty, and that output is not empty.
- if ( ! empty( $this->output ) ) {
-
- // Start going through each item in the $output array.
- foreach ( $this->output as $output ) {
-
- // If 'element' or 'property' are not defined, skip this.
- if ( ! isset( $output['element'] ) ) {
- continue;
- }
- if ( is_array( $output['element'] ) ) {
- $output['element'] = implode( ',', $output['element'] );
- }
-
- // If we got this far, it's safe to add this.
- $js_vars[] = $output;
- }
-
- // Did we manage to get all the items from 'output'?
- // If not, then we're missing something so don't add this.
- if ( count( $js_vars ) !== count( $this->output ) ) {
- return;
- }
- $this->js_vars = $js_vars;
- $this->transport = 'postMessage';
- }
- }
-
- /**
- * Sanitizes typography controls
- *
- * @static
- * @since 2.2.0
- * @param array $value The value.
- * @return array
- */
- public static function sanitize( $value ) {
- if ( ! is_array( $value ) ) {
- return array();
- }
-
- foreach ( $value as $key => $val ) {
- switch ( $key ) {
- case 'font-family':
- $value['font-family'] = sanitize_text_field( $val );
- break;
- case 'font-weight':
- if ( isset( $value['variant'] ) ) {
- break;
- }
- $value['variant'] = $val;
- if ( isset( $value['font-style'] ) && 'italic' === $value['font-style'] ) {
- $value['variant'] = ( '400' !== $val || 400 !== $val ) ? $value['variant'] . 'italic' : 'italic';
- }
- break;
- case 'variant':
- // Use 'regular' instead of 400 for font-variant.
- $value['variant'] = ( 400 === $val || '400' === $val ) ? 'regular' : $val;
-
- // Get font-weight from variant.
- $value['font-weight'] = filter_var( $value['variant'], FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION );
- $value['font-weight'] = ( 'regular' === $value['variant'] || 'italic' === $value['variant'] ) ? 400 : absint( $value['font-weight'] );
-
- // Get font-style from variant.
- if ( ! isset( $value['font-style'] ) ) {
- $value['font-style'] = ( false === strpos( $value['variant'], 'italic' ) ) ? 'normal' : 'italic';
- }
- break;
- case 'font-size':
- case 'letter-spacing':
- case 'word-spacing':
- case 'line-height':
- $value[ $key ] = '' === trim( $value[ $key ] ) ? '' : sanitize_text_field( $val );
- break;
- case 'text-align':
- if ( ! in_array( $val, array( '', 'inherit', 'left', 'center', 'right', 'justify' ), true ) ) {
- $value['text-align'] = '';
- }
- break;
- case 'text-transform':
- if ( ! in_array( $val, array( '', 'none', 'capitalize', 'uppercase', 'lowercase', 'initial', 'inherit' ), true ) ) {
- $value['text-transform'] = '';
- }
- break;
- case 'text-decoration':
- if ( ! in_array( $val, array( '', 'none', 'underline', 'overline', 'line-through', 'initial', 'inherit' ), true ) ) {
- $value['text-transform'] = '';
- }
- break;
- case 'color':
- $value['color'] = '' === $value['color'] ? '' : ariColor::newColor( $val )->toCSS( 'hex' );
- break;
- }
- }
-
- return $value;
- }
-
- /**
- * Sets the $choices
- *
- * @access protected
- * @since 3.0.0
- */
- protected function set_choices() {
- if ( ! is_array( $this->choices ) ) {
- $this->choices = array();
- }
- $this->choices = wp_parse_args(
- $this->choices,
- array(
- 'variant' => array(),
- 'fonts' => array(
- 'standard' => array(),
- 'google' => array(),
- ),
- )
- );
- }
-}
diff --git a/functions/kirki/field/class-kirki-field-upload.php b/functions/kirki/field/class-kirki-field-upload.php
deleted file mode 100644
index d48f251..0000000
--- a/functions/kirki/field/class-kirki-field-upload.php
+++ /dev/null
@@ -1,40 +0,0 @@
-type = 'upload';
- }
-
- /**
- * Sets the $sanitize_callback
- *
- * @access protected
- */
- protected function set_sanitize_callback() {
-
- // If a custom sanitize_callback has been defined,
- // then we don't need to proceed any further.
- if ( ! empty( $this->sanitize_callback ) ) {
- return;
- }
- $this->sanitize_callback = 'esc_url_raw';
- }
-}
diff --git a/functions/kirki/field/class-kirki-field-url.php b/functions/kirki/field/class-kirki-field-url.php
deleted file mode 100644
index bcfca36..0000000
--- a/functions/kirki/field/class-kirki-field-url.php
+++ /dev/null
@@ -1,44 +0,0 @@
-choices ) ) {
- $this->choices = array();
- }
- $this->choices['element'] = 'input';
- $this->choices['type'] = 'text';
- }
-
- /**
- * Sets the $sanitize_callback
- *
- * @access protected
- */
- protected function set_sanitize_callback() {
-
- // If a custom sanitize_callback has been defined,
- // then we don't need to proceed any further.
- if ( ! empty( $this->sanitize_callback ) ) {
- return;
- }
- $this->sanitize_callback = 'esc_url_raw';
- }
-}
diff --git a/functions/kirki/inc/bootstrap.php b/functions/kirki/inc/bootstrap.php
new file mode 100644
index 0000000..352bf4e
--- /dev/null
+++ b/functions/kirki/inc/bootstrap.php
@@ -0,0 +1,17 @@
+modules = new Kirki_Modules();
-
-Kirki::$url = plugins_url( '', __FILE__ );
+$kirki->modules = new Modules();
// Instantiate classes.
new Kirki();
-new Kirki_L10n();
-
-// Include deprecated functions & methods.
-require_once wp_normalize_path( dirname( __FILE__ ) . '/deprecated/deprecated.php' ); // phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude
+new L10n( 'kirki', __DIR__ . '/languages' );
+// ? Bagus: Do we really need to-reinclude this file? It was included above.
// Include the ariColor library.
require_once wp_normalize_path( dirname( __FILE__ ) . '/lib/class-aricolor.php' ); // phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude
// Add an empty config for global fields.
-Kirki::add_config( '' );
+Kirki::add_config( '' ); // ? Bagus: what is this for? Adding empty config.
+// ? Bagus: Do we really need this line? custom-config.php here is supposed to inside this plugin. Or is this just in case we need it in the future?
$custom_config_path = dirname( __FILE__ ) . '/custom-config.php';
$custom_config_path = wp_normalize_path( $custom_config_path );
if ( file_exists( $custom_config_path ) ) {
diff --git a/functions/kirki/lib/class-kirki-color.php b/functions/kirki/lib/class-kirki-color.php
index 55e2bc0..9571915 100644
--- a/functions/kirki/lib/class-kirki-color.php
+++ b/functions/kirki/lib/class-kirki-color.php
@@ -3,12 +3,12 @@
* Color Calculations class for Kirki
* Initially built for the Shoestrap-3 theme and then tweaked for Kirki.
*
- * @package Kirki
- * @category Core
- * @author Ari Stathopoulos (@aristath)
- * @copyright Copyright (c) 2020, David Vongries
- * @license https://opensource.org/licenses/MIT
- * @since 1.0
+ * @package Kirki
+ * @category Core
+ * @author Ari Stathopoulos (@aristath)
+ * @copyright Copyright (c) 2019, Ari Stathopoulos (@aristath)
+ * @license https://opensource.org/licenses/MIT
+ * @since 1.0
*/
// phpcs:ignoreFile
diff --git a/functions/kirki/modules/css-vars/class-kirki-modules-css-vars.php b/functions/kirki/modules/css-vars/class-kirki-modules-css-vars.php
deleted file mode 100644
index d6fc7d4..0000000
--- a/functions/kirki/modules/css-vars/class-kirki-modules-css-vars.php
+++ /dev/null
@@ -1,160 +0,0 @@
-val].
- *
- * @access private
- * @since 3.0.35
- * @var array
- */
- private $vars = array();
-
- /**
- * Constructor
- *
- * @access protected
- * @since 3.0.28
- */
- protected function __construct() {
- add_action( 'init', array( $this, 'populate_vars' ) );
- add_action( 'wp_head', array( $this, 'the_style' ), 999 );
- add_action( 'admin_head', array( $this, 'the_style' ), 999 );
- add_action( 'customize_preview_init', array( $this, 'postmessage' ) );
- }
-
- /**
- * Gets an instance of this object.
- * Prevents duplicate instances which avoid artefacts and improves performance.
- *
- * @static
- * @access public
- * @since 3.0.28
- * @return object
- */
- public static function get_instance() {
- if ( ! self::$instance ) {
- self::$instance = new self();
- }
- return self::$instance;
- }
-
- /**
- * Populates the $vars property of this object.
- *
- * @access public
- * @since 3.0.35
- * @return void
- */
- public function populate_vars() {
-
- // Get an array of all fields.
- $fields = Kirki::$fields;
- foreach ( $fields as $id => $args ) {
- if ( ! isset( $args['css_vars'] ) || empty( $args['css_vars'] ) ) {
- continue;
- }
- $val = Kirki_Values::get_value( $args['kirki_config'], $id );
- if ( isset( $args['type'] ) && in_array( $args['type'], array( 'typography', 'kirki-typography' ), true ) ) {
- if ( isset( $val['font-weight'] ) && 'regular' === $val['font-weight'] ) {
- $val['font-weight'] = '400';
- }
- }
- foreach ( $args['css_vars'] as $css_var ) {
- if ( isset( $css_var[2] ) && is_array( $val ) && isset( $val[ $css_var[2] ] ) ) {
- $this->vars[ $css_var[0] ] = str_replace( '$', $val[ $css_var[2] ], $css_var[1] );
- } else {
- $this->vars[ $css_var[0] ] = str_replace( '$', $val, $css_var[1] );
- }
- }
- }
- }
-
- /**
- * Add styles in .
- *
- * @access public
- * @since 3.0.28
- * @return void
- */
- public function the_style() {
- if ( empty( $this->vars ) ) {
- return;
- }
-
- echo '';
- }
-
- /**
- * Get an array of all the variables.
- *
- * @access public
- * @since 3.0.35
- * @return array
- */
- public function get_vars() {
- return $this->vars;
- }
-
- /**
- * Enqueues the script that handles postMessage
- * and adds variables to it using the wp_localize_script function.
- * The rest is handled via JS.
- *
- * @access public
- * @since 3.0.28
- * @return void
- */
- public function postmessage() {
- wp_enqueue_script( 'kirki_auto_css_vars', trailingslashit( Kirki::$url ) . 'modules/css-vars/script.js', array( 'jquery', 'customize-preview' ), KIRKI_VERSION, true );
- $fields = Kirki::$fields;
- $data = array();
- foreach ( $fields as $field ) {
- if ( isset( $field['transport'] ) && 'postMessage' === $field['transport'] && isset( $field['css_vars'] ) && ! empty( $field['css_vars'] ) ) {
- $data[] = $field;
- }
- }
- wp_localize_script( 'kirki_auto_css_vars', 'kirkiCssVarFields', $data );
- }
-}
diff --git a/functions/kirki/modules/css-vars/script.js b/functions/kirki/modules/css-vars/script.js
deleted file mode 100644
index 8354b12..0000000
--- a/functions/kirki/modules/css-vars/script.js
+++ /dev/null
@@ -1,82 +0,0 @@
-/* global kirkiCssVarFields */
-var kirkiCssVars = {
-
- /**
- * Get styles.
- *
- * @since 3.0.28
- * @returns {Object}
- */
- getStyles: function() {
- var style = jQuery( '#kirki-css-vars' ),
- styles = style.html().replace( ':root{', '' ).replace( '}', '' ).split( ';' ),
- stylesObj = {};
-
- // Format styles as a object we can then tweak.
- _.each( styles, function( style ) {
- style = style.split( ':' );
- if ( style[0] && style[1] ) {
- stylesObj[ style[0] ] = style[1];
- }
- } );
- return stylesObj;
- },
-
- /**
- * Builds the styles from an object.
- *
- * @since 3.0.28
- * @param {Object} vars - The vars.
- * @returns {string}
- */
- buildStyle: function( vars ) {
- var style = '';
-
- _.each( vars, function( val, name ) {
- style += name + ':' + val + ';';
- } );
- return ':root{' + style + '}';
- }
-};
-
-jQuery( document ).ready( function() {
- _.each( kirkiCssVarFields, function( field ) {
- wp.customize( field.settings, function( value ) {
- value.bind( function( newVal ) {
- var styles = kirkiCssVars.getStyles();
-
- _.each( field.css_vars, function( cssVar ) {
- if ( 'object' === typeof newVal ) {
- if ( cssVar[2] && newVal[ cssVar[2] ] ) {
- styles[ cssVar[0] ] = cssVar[1].replace( '$', newVal[ cssVar[2] ] );
- }
- } else {
- styles[ cssVar[0] ] = cssVar[1].replace( '$', newVal );
- }
- } );
- jQuery( '#kirki-css-vars' ).html( kirkiCssVars.buildStyle( styles ) );
- } );
- } );
- } );
-} );
-
-wp.customize.bind( 'preview-ready', function() {
- wp.customize.preview.bind( 'active', function() {
- _.each( kirkiCssVarFields, function( field ) {
- wp.customize( field.settings, function( value ) {
- var styles = kirkiCssVars.getStyles(),
- newVal = window.parent.wp.customize( value.id ).get();
- _.each( field.css_vars, function( cssVar ) {
- if ( 'object' === typeof newVal ) {
- if ( cssVar[2] && newVal[ cssVar[2] ] ) {
- styles[ cssVar[0] ] = cssVar[1].replace( '$', newVal[ cssVar[2] ] );
- }
- } else {
- styles[ cssVar[0] ] = cssVar[1].replace( '$', newVal );
- }
- } );
- jQuery( '#kirki-css-vars' ).html( kirkiCssVars.buildStyle( styles ) );
- } );
- } );
- } );
-} );
diff --git a/functions/kirki/modules/css/class-kirki-modules-css.php b/functions/kirki/modules/css/class-kirki-modules-css.php
deleted file mode 100644
index f6a3336..0000000
--- a/functions/kirki/modules/css/class-kirki-modules-css.php
+++ /dev/null
@@ -1,298 +0,0 @@
- '/class-kirki-modules-css-generator.php',
- 'Kirki_Output' => '/class-kirki-output.php',
- 'Kirki_Output_Field_Background' => '/field/class-kirki-output-field-background.php',
- 'Kirki_Output_Field_Image' => '/field/class-kirki-output-field-image.php',
- 'Kirki_Output_Field_Multicolor' => '/field/class-kirki-output-field-multicolor.php',
- 'Kirki_Output_Field_Dimensions' => '/field/class-kirki-output-field-dimensions.php',
- 'Kirki_Output_Field_Typography' => '/field/class-kirki-output-field-typography.php',
- 'Kirki_Output_Property' => '/property/class-kirki-output-property.php',
- 'Kirki_Output_Property_Background_Image' => '/property/class-kirki-output-property-background-image.php',
- 'Kirki_Output_Property_Background_Position' => '/property/class-kirki-output-property-background-position.php',
- 'Kirki_Output_Property_Font_Family' => '/property/class-kirki-output-property-font-family.php',
- );
-
- foreach ( $class_files as $class_name => $file ) {
- if ( ! class_exists( $class_name ) ) {
- include_once wp_normalize_path( dirname( __FILE__ ) . $file ); // phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude
- }
- }
- add_action( 'init', array( $this, 'init' ) );
- }
-
- /**
- * Gets an instance of this object.
- * Prevents duplicate instances which avoid artefacts and improves performance.
- *
- * @static
- * @access public
- * @since 3.0.0
- * @return object
- */
- public static function get_instance() {
- if ( ! self::$instance ) {
- self::$instance = new self();
- }
- return self::$instance;
- }
-
- /**
- * Init.
- *
- * @access public
- */
- public function init() {
-
- Kirki_Modules_Webfonts::get_instance();
-
- // Allow completely disabling Kirki CSS output.
- if ( ( defined( 'KIRKI_NO_OUTPUT' ) && true === KIRKI_NO_OUTPUT ) || ( isset( $config['disable_output'] ) && true === $config['disable_output'] ) ) {
- return;
- }
-
- if ( ! is_customize_preview() ) {
- // Admin styles, adds compatibility with the new WordPress editor (Gutenberg).
- add_action( 'enqueue_block_editor_assets', array( $this, 'enqueue_styles' ), 100 );
- }
-
- add_action( 'wp', array( $this, 'print_styles_action' ) );
-
- if ( ! apply_filters( 'kirki_output_inline_styles', true ) ) {
- $config = apply_filters( 'kirki_config', array() );
- $priority = 999;
- if ( isset( $config['styles_priority'] ) ) {
- $priority = absint( $config['styles_priority'] );
- }
- add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_styles' ), $priority );
- } else {
- add_action( 'wp_head', array( $this, 'print_styles_inline' ), 999 );
- }
- }
-
- /**
- * Print styles inline.
- *
- * @access public
- * @since 3.0.36
- * @return void
- */
- public function print_styles_inline() {
- echo '';
- }
-
- /**
- * Enqueue the styles.
- *
- * @access public
- * @since 3.0.36
- * @return void
- */
- public function enqueue_styles() {
-
- $args = array(
- 'action' => apply_filters( 'kirki_styles_action_handle', 'kirki-styles' ),
- );
- if ( is_admin() && ! is_customize_preview() ) {
- $args['editor'] = '1';
- }
-
- // Enqueue the dynamic stylesheet.
- wp_enqueue_style(
- 'kirki-styles',
- add_query_arg( $args, site_url() ),
- array(),
- KIRKI_VERSION
- );
- }
-
- /**
- * Prints the styles as an enqueued file.
- *
- * @access public
- * @since 3.0.36
- * @return void
- */
- public function print_styles_action() {
- /**
- * Note to code reviewers:
- * There is no need for a nonce check here, we're only checking if this is a valid request or not.
- */
- if ( empty( $_GET['action'] ) || apply_filters( 'kirki_styles_action_handle', 'kirki-styles' ) !== $_GET['action'] ) { // phpcs:ignore WordPress.Security.NonceVerification
- return;
- }
-
- // This is a stylesheet.
- header( 'Content-type: text/css' );
- $this->print_styles();
- exit;
- }
-
- /**
- * Prints the styles.
- *
- * @access public
- */
- public function print_styles() {
-
- // Go through all configs.
- $configs = Kirki::$config;
- foreach ( $configs as $config_id => $args ) {
- if ( isset( $args['disable_output'] ) && true === $args['disable_output'] ) {
- continue;
- }
- $styles = self::loop_controls( $config_id );
- $styles = apply_filters( "kirki_{$config_id}_dynamic_css", $styles );
- if ( ! empty( $styles ) ) {
- /**
- * Note to code reviewers:
- *
- * Though all output should be run through an escaping function, this is pure CSS.
- *
- * When used in the print_styles_action() method the PHP header() call makes the browser interpret it as such.
- * No code, script or anything else can be executed from inside a stylesheet.
- *
- * When using in the print_styles_inline() method the wp_strip_all_tags call we use below
- * strips anything that has the possibility to be malicious, and since this is inslide a
- meta = get_post_custom( $queried_post->id );
- }
- $wp_scripts->add_data( 'kirki_post_meta_previewed_preview', 'data', sprintf( 'var _customizePostPreviewedQueriedObject = %s;', wp_json_encode( $queried_post ) ) );
- }
-}
diff --git a/functions/kirki/modules/post-meta/customize-controls.js b/functions/kirki/modules/post-meta/customize-controls.js
deleted file mode 100644
index 09d8797..0000000
--- a/functions/kirki/modules/post-meta/customize-controls.js
+++ /dev/null
@@ -1,23 +0,0 @@
-jQuery( document ).ready( function() {
-
- var self;
-
- self = {
- queriedPost: new wp.customize.Value()
- };
-
- // Listen for queried-post messages from the preview.
- wp.customize.bind( 'ready', function() {
- wp.customize.previewer.bind( 'queried-post', function( queriedPost ) {
- self.queriedPost.set( queriedPost || false );
- } );
- } );
-
- // Listen for post
- self.queriedPost.bind( function( newPost, oldPost ) {
- window.kirkiPost = false;
- if ( newPost || oldPost ) {
- window.kirkiPost = ( newPost ) ? newPost : oldPost;
- }
- } );
-} );
diff --git a/functions/kirki/modules/post-meta/customize-preview.js b/functions/kirki/modules/post-meta/customize-preview.js
deleted file mode 100644
index 8648d63..0000000
--- a/functions/kirki/modules/post-meta/customize-preview.js
+++ /dev/null
@@ -1,14 +0,0 @@
-/* global wp, _customizePostPreviewedQueriedObject */
-jQuery( document ).ready( function() {
-
- var self = {
- queriedPost: ( ! _.isUndefined( _customizePostPreviewedQueriedObject ) ) ? _customizePostPreviewedQueriedObject : null
- };
-
- // Send the queried post object to the Customizer pane when ready.
- wp.customize.bind( 'preview-ready', function() {
- wp.customize.preview.bind( 'active', function() {
- wp.customize.preview.send( 'queried-post', self.queriedPost );
- } );
- } );
-} );
diff --git a/functions/kirki/modules/postmessage/class-kirki-modules-postmessage.php b/functions/kirki/modules/postmessage/class-kirki-modules-postmessage.php
deleted file mode 100644
index 6d18ed3..0000000
--- a/functions/kirki/modules/postmessage/class-kirki-modules-postmessage.php
+++ /dev/null
@@ -1,79 +0,0 @@
-selective_refresh ) ) {
- return;
- }
-
- // Get an array of all fields.
- $fields = Kirki::$fields;
-
- // Start parsing the fields.
- foreach ( $fields as $field ) {
- if ( isset( $field['partial_refresh'] ) && ! empty( $field['partial_refresh'] ) ) {
- // Start going through each item in the array of partial refreshes.
- foreach ( $field['partial_refresh'] as $partial_refresh => $partial_refresh_args ) {
- // If we have all we need, create the selective refresh call.
- if ( isset( $partial_refresh_args['render_callback'] ) && isset( $partial_refresh_args['selector'] ) ) {
- $partial_refresh_args = wp_parse_args(
- $partial_refresh_args,
- array(
- 'settings' => $field['settings'],
- )
- );
- $wp_customize->selective_refresh->add_partial( $partial_refresh, $partial_refresh_args );
- }
- }
- }
- }
- }
-}
diff --git a/functions/kirki/modules/tooltips/class-kirki-modules-tooltips.php b/functions/kirki/modules/tooltips/class-kirki-modules-tooltips.php
deleted file mode 100644
index a0779fc..0000000
--- a/functions/kirki/modules/tooltips/class-kirki-modules-tooltips.php
+++ /dev/null
@@ -1,118 +0,0 @@
-tooltips_content[ $id ] = array(
- 'id' => $id,
- 'content' => $field['tooltip'],
- );
- }
- }
- }
-
- /**
- * Allows us to add a tooltip to any control.
- *
- * @access public
- * @since 4.2.0
- * @param string $field_id The field-ID.
- * @param string $tooltip The tooltip content.
- */
- public function add_tooltip( $field_id, $tooltip ) {
- $this->tooltips_content[ $field_id ] = array(
- 'id' => sanitize_key( $field_id ),
- 'content' => wp_kses_post( $tooltip ),
- );
- }
-
- /**
- * Enqueue scripts.
- *
- * @access public
- * @since 3.0.0
- */
- public function customize_controls_print_footer_scripts() {
- $this->parse_fields();
-
- wp_enqueue_script( 'kirki-tooltip', trailingslashit( Kirki::$url ) . 'modules/tooltips/tooltip.js', array( 'jquery' ), KIRKI_VERSION, false );
- wp_localize_script( 'kirki-tooltip', 'kirkiTooltips', $this->tooltips_content );
- wp_enqueue_style( 'kirki-tooltip', trailingslashit( Kirki::$url ) . 'modules/tooltips/tooltip.css', array(), KIRKI_VERSION );
- }
-}
diff --git a/functions/kirki/modules/tooltips/tooltip.css b/functions/kirki/modules/tooltips/tooltip.css
deleted file mode 100644
index 3a30e69..0000000
--- a/functions/kirki/modules/tooltips/tooltip.css
+++ /dev/null
@@ -1,36 +0,0 @@
-@charset "UTF-8";
-.tooltip-wrapper {
- float: right;
- position: relative;
-}
-.tooltip-wrapper .tooltip-trigger {
- text-decoration: none;
- cursor: pointer;
-}
-.tooltip-wrapper .tooltip-content {
- position: absolute;
- width: 200px;
- height: auto;
- top: -10px;
- left: -225px;
- background: rgba(0, 0, 0, 0.8);
- color: #fff;
- padding: 10px;
- z-index: 99999;
- border-radius: 3px;
- line-height: 1.4em;
-}
-.tooltip-wrapper .tooltip-content a {
- color: #fff;
-}
-.tooltip-wrapper .tooltip-content:after {
- content: "";
- font-family: dashicons;
- position: absolute;
- right: -11px;
- top: 11px;
- color: rgba(0, 0, 0, 0.8);
- font-size: 20px;
-}
-
-/*# sourceMappingURL=tooltip.css.map */
diff --git a/functions/kirki/modules/tooltips/tooltip.js b/functions/kirki/modules/tooltips/tooltip.js
deleted file mode 100644
index a47604a..0000000
--- a/functions/kirki/modules/tooltips/tooltip.js
+++ /dev/null
@@ -1,55 +0,0 @@
-/* global kirkiTooltips */
-jQuery( document ).ready( function() {
-
- function kirkiTooltipAdd( control ) {
- _.each( kirkiTooltips, function( tooltip ) {
- let trigger,
- controlID,
- content;
-
- if ( tooltip.id !== control.id ) {
- return;
- }
-
- if ( control.container.find( '.tooltip-content' ).length ) {
- return;
- }
-
- trigger = '
';
- controlID = '#customize-control-' + tooltip.id;
- content = '
' + tooltip.content + '
';
-
- // Add the trigger & content.
- jQuery( '
' + trigger + content + '
' ).prependTo( controlID );
-
- // Handle onclick events.
- jQuery( '.tooltip-trigger[data-setting="' + tooltip.id + '"]' ).on( 'click', function() {
- jQuery( '.tooltip-content[data-setting="' + tooltip.id + '"]' ).toggleClass( 'hidden' );
- } );
- } );
-
- // Close tooltips if we click anywhere else.
- jQuery( document ).mouseup( function( e ) {
-
- if ( ! jQuery( '.tooltip-content' ).is( e.target ) ) {
- if ( ! jQuery( '.tooltip-content' ).hasClass( 'hidden' ) ) {
- jQuery( '.tooltip-content' ).addClass( 'hidden' );
- }
- }
- } );
- }
-
- wp.customize.control.each( function( control ) {
- wp.customize.section( control.section(), function( section ) {
- if ( section.expanded() || wp.customize.settings.autofocus.control === control.id ) {
- kirkiTooltipAdd( control );
- } else {
- section.expanded.bind( function( expanded ) {
- if ( expanded ) {
- kirkiTooltipAdd( control );
- }
- } );
- }
- } );
- } );
-} );
diff --git a/functions/kirki/modules/webfont-loader/class-kirki-modules-webfont-loader.php b/functions/kirki/modules/webfont-loader/class-kirki-modules-webfont-loader.php
deleted file mode 100644
index 87bd4b3..0000000
--- a/functions/kirki/modules/webfont-loader/class-kirki-modules-webfont-loader.php
+++ /dev/null
@@ -1,96 +0,0 @@
-fonts_google = Kirki_Fonts_Google::get_instance();
- $this->init();
- }
-
- /**
- * Gets an instance of this object.
- * Prevents duplicate instances which avoid artefacts and improves performance.
- *
- * @static
- * @access public
- * @since 3.0.0
- * @return object
- */
- public static function get_instance() {
- if ( ! self::$instance ) {
- self::$instance = new self();
- }
- return self::$instance;
- }
-
- /**
- * Init other objects depending on the method we'll be using.
- *
- * @access protected
- * @since 3.0.0
- */
- protected function init() {
- foreach ( array_keys( Kirki::$config ) as $config_id ) {
- if ( 'async' === $this->get_method() ) {
- new Kirki_Modules_Webfonts_Async( $config_id, $this, $this->fonts_google );
- }
- new Kirki_Modules_Webfonts_Embed( $config_id, $this, $this->fonts_google );
- }
- }
-
- /**
- * Get the method we're going to use.
- *
- * @access public
- * @since 3.0.0
- * @deprecated in 3.0.36.
- * @return string
- */
- public function get_method() {
- return ( is_customize_preview() || is_admin() ) ? 'async' : 'embed';
- }
-
- /**
- * Goes through all our fields and then populates the $this->fonts property.
- *
- * @access public
- * @param string $config_id The config-ID.
- */
- public function loop_fields( $config_id ) {
- foreach ( Kirki::$fields as $field ) {
- if ( isset( $field['kirki_config'] ) && $config_id !== $field['kirki_config'] ) {
- continue;
- }
- if ( true === apply_filters( "kirki_{$config_id}_webfonts_skip_hidden", true ) ) {
- // Only continue if field dependencies are met.
- if ( ! empty( $field['required'] ) ) {
- $valid = true;
-
- foreach ( $field['required'] as $requirement ) {
- if ( isset( $requirement['setting'] ) && isset( $requirement['value'] ) && isset( $requirement['operator'] ) ) {
- $controller_value = Kirki_Values::get_value( $config_id, $requirement['setting'] );
- if ( ! Kirki_Helper::compare_values( $controller_value, $requirement['value'], $requirement['operator'] ) ) {
- $valid = false;
- }
- }
- }
-
- if ( ! $valid ) {
- continue;
- }
- }
- }
- $this->fonts_google->generate_google_font( $field );
- }
- }
-}
diff --git a/functions/kirki/modules/webfonts/webfont-files.json b/functions/kirki/modules/webfonts/webfont-files.json
deleted file mode 100644
index 1e1d620..0000000
--- a/functions/kirki/modules/webfonts/webfont-files.json
+++ /dev/null
@@ -1 +0,0 @@
-{"Roboto":{"100":"http://fonts.gstatic.com/s/roboto/v27/KFOkCnqEu92Fr1MmgWxPKTM1K9nz.ttf","300":"http://fonts.gstatic.com/s/roboto/v27/KFOlCnqEu92Fr1MmSU5vAx05IsDqlA.ttf","500":"http://fonts.gstatic.com/s/roboto/v27/KFOlCnqEu92Fr1MmEU9vAx05IsDqlA.ttf","700":"http://fonts.gstatic.com/s/roboto/v27/KFOlCnqEu92Fr1MmWUlvAx05IsDqlA.ttf","900":"http://fonts.gstatic.com/s/roboto/v27/KFOlCnqEu92Fr1MmYUtvAx05IsDqlA.ttf","100italic":"http://fonts.gstatic.com/s/roboto/v27/KFOiCnqEu92Fr1Mu51QrIzcXLsnzjYk.ttf","300italic":"http://fonts.gstatic.com/s/roboto/v27/KFOjCnqEu92Fr1Mu51TjARc9AMX6lJBP.ttf","regular":"http://fonts.gstatic.com/s/roboto/v27/KFOmCnqEu92Fr1Me5WZLCzYlKw.ttf","italic":"http://fonts.gstatic.com/s/roboto/v27/KFOkCnqEu92Fr1Mu52xPKTM1K9nz.ttf","500italic":"http://fonts.gstatic.com/s/roboto/v27/KFOjCnqEu92Fr1Mu51S7ABc9AMX6lJBP.ttf","700italic":"http://fonts.gstatic.com/s/roboto/v27/KFOjCnqEu92Fr1Mu51TzBhc9AMX6lJBP.ttf","900italic":"http://fonts.gstatic.com/s/roboto/v27/KFOjCnqEu92Fr1Mu51TLBBc9AMX6lJBP.ttf"},"Open Sans":{"300":"http://fonts.gstatic.com/s/opensans/v20/mem5YaGs126MiZpBA-UN_r8-VeJoCqeDjg.ttf","600":"http://fonts.gstatic.com/s/opensans/v20/mem5YaGs126MiZpBA-UNirk-VeJoCqeDjg.ttf","700":"http://fonts.gstatic.com/s/opensans/v20/mem5YaGs126MiZpBA-UN7rg-VeJoCqeDjg.ttf","800":"http://fonts.gstatic.com/s/opensans/v20/mem5YaGs126MiZpBA-UN8rs-VeJoCqeDjg.ttf","300italic":"http://fonts.gstatic.com/s/opensans/v20/memnYaGs126MiZpBA-UFUKWyV-hsKKKTjrPW.ttf","regular":"http://fonts.gstatic.com/s/opensans/v20/mem8YaGs126MiZpBA-U1UpcaXcl0Aw.ttf","italic":"http://fonts.gstatic.com/s/opensans/v20/mem6YaGs126MiZpBA-UFUJ0ef8xkA76a.ttf","600italic":"http://fonts.gstatic.com/s/opensans/v20/memnYaGs126MiZpBA-UFUKXGUehsKKKTjrPW.ttf","700italic":"http://fonts.gstatic.com/s/opensans/v20/memnYaGs126MiZpBA-UFUKWiUOhsKKKTjrPW.ttf","800italic":"http://fonts.gstatic.com/s/opensans/v20/memnYaGs126MiZpBA-UFUKW-U-hsKKKTjrPW.ttf"},"Noto Sans JP":{"100":"http://fonts.gstatic.com/s/notosansjp/v28/-F6ofjtqLzI2JPCgQBnw7HFQoggM-FNthvIU.otf","300":"http://fonts.gstatic.com/s/notosansjp/v28/-F6pfjtqLzI2JPCgQBnw7HFQaioq1H1hj-sNFQ.otf","500":"http://fonts.gstatic.com/s/notosansjp/v28/-F6pfjtqLzI2JPCgQBnw7HFQMisq1H1hj-sNFQ.otf","700":"http://fonts.gstatic.com/s/notosansjp/v28/-F6pfjtqLzI2JPCgQBnw7HFQei0q1H1hj-sNFQ.otf","900":"http://fonts.gstatic.com/s/notosansjp/v28/-F6pfjtqLzI2JPCgQBnw7HFQQi8q1H1hj-sNFQ.otf","regular":"http://fonts.gstatic.com/s/notosansjp/v28/-F62fjtqLzI2JPCgQBnw7HFowAIO2lZ9hg.otf"},"Lato":{"100":"http://fonts.gstatic.com/s/lato/v17/S6u8w4BMUTPHh30wWyWrFCbw7A.ttf","300":"http://fonts.gstatic.com/s/lato/v17/S6u9w4BMUTPHh7USew-FGC_p9dw.ttf","700":"http://fonts.gstatic.com/s/lato/v17/S6u9w4BMUTPHh6UVew-FGC_p9dw.ttf","900":"http://fonts.gstatic.com/s/lato/v17/S6u9w4BMUTPHh50Xew-FGC_p9dw.ttf","100italic":"http://fonts.gstatic.com/s/lato/v17/S6u-w4BMUTPHjxsIPy-vNiPg7MU0.ttf","300italic":"http://fonts.gstatic.com/s/lato/v17/S6u_w4BMUTPHjxsI9w2PHA3s5dwt7w.ttf","regular":"http://fonts.gstatic.com/s/lato/v17/S6uyw4BMUTPHvxk6XweuBCY.ttf","italic":"http://fonts.gstatic.com/s/lato/v17/S6u8w4BMUTPHjxswWyWrFCbw7A.ttf","700italic":"http://fonts.gstatic.com/s/lato/v17/S6u_w4BMUTPHjxsI5wqPHA3s5dwt7w.ttf","900italic":"http://fonts.gstatic.com/s/lato/v17/S6u_w4BMUTPHjxsI3wiPHA3s5dwt7w.ttf"},"Montserrat":{"100":"http://fonts.gstatic.com/s/montserrat/v15/JTUQjIg1_i6t8kCHKm45_QphziTn89dtpQ.ttf","200":"http://fonts.gstatic.com/s/montserrat/v15/JTURjIg1_i6t8kCHKm45_aZA7g7J_950vCo.ttf","300":"http://fonts.gstatic.com/s/montserrat/v15/JTURjIg1_i6t8kCHKm45_cJD7g7J_950vCo.ttf","500":"http://fonts.gstatic.com/s/montserrat/v15/JTURjIg1_i6t8kCHKm45_ZpC7g7J_950vCo.ttf","600":"http://fonts.gstatic.com/s/montserrat/v15/JTURjIg1_i6t8kCHKm45_bZF7g7J_950vCo.ttf","700":"http://fonts.gstatic.com/s/montserrat/v15/JTURjIg1_i6t8kCHKm45_dJE7g7J_950vCo.ttf","800":"http://fonts.gstatic.com/s/montserrat/v15/JTURjIg1_i6t8kCHKm45_c5H7g7J_950vCo.ttf","900":"http://fonts.gstatic.com/s/montserrat/v15/JTURjIg1_i6t8kCHKm45_epG7g7J_950vCo.ttf","100italic":"http://fonts.gstatic.com/s/montserrat/v15/JTUOjIg1_i6t8kCHKm459WxZqi7j0dJ9pTOi.ttf","200italic":"http://fonts.gstatic.com/s/montserrat/v15/JTUPjIg1_i6t8kCHKm459WxZBg_D-_xxrCq7qg.ttf","300italic":"http://fonts.gstatic.com/s/montserrat/v15/JTUPjIg1_i6t8kCHKm459WxZYgzD-_xxrCq7qg.ttf","regular":"http://fonts.gstatic.com/s/montserrat/v15/JTUSjIg1_i6t8kCHKm45xW5rygbi49c.ttf","italic":"http://fonts.gstatic.com/s/montserrat/v15/JTUQjIg1_i6t8kCHKm459WxhziTn89dtpQ.ttf","500italic":"http://fonts.gstatic.com/s/montserrat/v15/JTUPjIg1_i6t8kCHKm459WxZOg3D-_xxrCq7qg.ttf","600italic":"http://fonts.gstatic.com/s/montserrat/v15/JTUPjIg1_i6t8kCHKm459WxZFgrD-_xxrCq7qg.ttf","700italic":"http://fonts.gstatic.com/s/montserrat/v15/JTUPjIg1_i6t8kCHKm459WxZcgvD-_xxrCq7qg.ttf","800italic":"http://fonts.gstatic.com/s/montserrat/v15/JTUPjIg1_i6t8kCHKm459WxZbgjD-_xxrCq7qg.ttf","900italic":"http://fonts.gstatic.com/s/montserrat/v15/JTUPjIg1_i6t8kCHKm459WxZSgnD-_xxrCq7qg.ttf"},"Source Sans Pro":{"200":"http://fonts.gstatic.com/s/sourcesanspro/v14/6xKydSBYKcSV-LCoeQqfX1RYOo3i94_AkB1v_8CGxg.ttf","300":"http://fonts.gstatic.com/s/sourcesanspro/v14/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zAkB1v_8CGxg.ttf","600":"http://fonts.gstatic.com/s/sourcesanspro/v14/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rAkB1v_8CGxg.ttf","700":"http://fonts.gstatic.com/s/sourcesanspro/v14/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vAkB1v_8CGxg.ttf","900":"http://fonts.gstatic.com/s/sourcesanspro/v14/6xKydSBYKcSV-LCoeQqfX1RYOo3iu4nAkB1v_8CGxg.ttf","200italic":"http://fonts.gstatic.com/s/sourcesanspro/v14/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZYokRdr3cWWxg40.ttf","300italic":"http://fonts.gstatic.com/s/sourcesanspro/v14/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZMkhdr3cWWxg40.ttf","regular":"http://fonts.gstatic.com/s/sourcesanspro/v14/6xK3dSBYKcSV-LCoeQqfX1RYOo3aP6TkmDZz9g.ttf","italic":"http://fonts.gstatic.com/s/sourcesanspro/v14/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPa7gujNj9tmf.ttf","600italic":"http://fonts.gstatic.com/s/sourcesanspro/v14/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZY4lBdr3cWWxg40.ttf","700italic":"http://fonts.gstatic.com/s/sourcesanspro/v14/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZclRdr3cWWxg40.ttf","900italic":"http://fonts.gstatic.com/s/sourcesanspro/v14/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZklxdr3cWWxg40.ttf"},"Roboto Condensed":{"300":"http://fonts.gstatic.com/s/robotocondensed/v19/ieVi2ZhZI2eCN5jzbjEETS9weq8-33mZKCMSbvtdYyQ.ttf","700":"http://fonts.gstatic.com/s/robotocondensed/v19/ieVi2ZhZI2eCN5jzbjEETS9weq8-32meKCMSbvtdYyQ.ttf","300italic":"http://fonts.gstatic.com/s/robotocondensed/v19/ieVg2ZhZI2eCN5jzbjEETS9weq8-19eDpCEYatlYcyRi4A.ttf","regular":"http://fonts.gstatic.com/s/robotocondensed/v19/ieVl2ZhZI2eCN5jzbjEETS9weq8-59WxDCs5cvI.ttf","italic":"http://fonts.gstatic.com/s/robotocondensed/v19/ieVj2ZhZI2eCN5jzbjEETS9weq8-19e7CAk8YvJEeg.ttf","700italic":"http://fonts.gstatic.com/s/robotocondensed/v19/ieVg2ZhZI2eCN5jzbjEETS9weq8-19eDtCYYatlYcyRi4A.ttf"},"Poppins":{"100":"http://fonts.gstatic.com/s/poppins/v15/pxiGyp8kv8JHgFVrLPTed3FBGPaTSQ.ttf","200":"http://fonts.gstatic.com/s/poppins/v15/pxiByp8kv8JHgFVrLFj_V1tvFP-KUEg.ttf","300":"http://fonts.gstatic.com/s/poppins/v15/pxiByp8kv8JHgFVrLDz8V1tvFP-KUEg.ttf","500":"http://fonts.gstatic.com/s/poppins/v15/pxiByp8kv8JHgFVrLGT9V1tvFP-KUEg.ttf","600":"http://fonts.gstatic.com/s/poppins/v15/pxiByp8kv8JHgFVrLEj6V1tvFP-KUEg.ttf","700":"http://fonts.gstatic.com/s/poppins/v15/pxiByp8kv8JHgFVrLCz7V1tvFP-KUEg.ttf","800":"http://fonts.gstatic.com/s/poppins/v15/pxiByp8kv8JHgFVrLDD4V1tvFP-KUEg.ttf","900":"http://fonts.gstatic.com/s/poppins/v15/pxiByp8kv8JHgFVrLBT5V1tvFP-KUEg.ttf","100italic":"http://fonts.gstatic.com/s/poppins/v15/pxiAyp8kv8JHgFVrJJLmE3tFOvODSVFF.ttf","200italic":"http://fonts.gstatic.com/s/poppins/v15/pxiDyp8kv8JHgFVrJJLmv1plEN2PQEhcqw.ttf","300italic":"http://fonts.gstatic.com/s/poppins/v15/pxiDyp8kv8JHgFVrJJLm21llEN2PQEhcqw.ttf","regular":"http://fonts.gstatic.com/s/poppins/v15/pxiEyp8kv8JHgFVrFJDUc1NECPY.ttf","italic":"http://fonts.gstatic.com/s/poppins/v15/pxiGyp8kv8JHgFVrJJLed3FBGPaTSQ.ttf","500italic":"http://fonts.gstatic.com/s/poppins/v15/pxiDyp8kv8JHgFVrJJLmg1hlEN2PQEhcqw.ttf","600italic":"http://fonts.gstatic.com/s/poppins/v15/pxiDyp8kv8JHgFVrJJLmr19lEN2PQEhcqw.ttf","700italic":"http://fonts.gstatic.com/s/poppins/v15/pxiDyp8kv8JHgFVrJJLmy15lEN2PQEhcqw.ttf","800italic":"http://fonts.gstatic.com/s/poppins/v15/pxiDyp8kv8JHgFVrJJLm111lEN2PQEhcqw.ttf","900italic":"http://fonts.gstatic.com/s/poppins/v15/pxiDyp8kv8JHgFVrJJLm81xlEN2PQEhcqw.ttf"},"Oswald":{"200":"http://fonts.gstatic.com/s/oswald/v36/TK3_WkUHHAIjg75cFRf3bXL8LICs13FvgUFoZAaRliE.ttf","300":"http://fonts.gstatic.com/s/oswald/v36/TK3_WkUHHAIjg75cFRf3bXL8LICs169vgUFoZAaRliE.ttf","500":"http://fonts.gstatic.com/s/oswald/v36/TK3_WkUHHAIjg75cFRf3bXL8LICs18NvgUFoZAaRliE.ttf","600":"http://fonts.gstatic.com/s/oswald/v36/TK3_WkUHHAIjg75cFRf3bXL8LICs1y9ogUFoZAaRliE.ttf","700":"http://fonts.gstatic.com/s/oswald/v36/TK3_WkUHHAIjg75cFRf3bXL8LICs1xZogUFoZAaRliE.ttf","regular":"http://fonts.gstatic.com/s/oswald/v36/TK3_WkUHHAIjg75cFRf3bXL8LICs1_FvgUFoZAaRliE.ttf"},"Noto Sans":{"700":"http://fonts.gstatic.com/s/notosans/v12/o-0NIpQlx3QUlC5A4PNjXhFlY9aA5Wl6PQ.ttf","regular":"http://fonts.gstatic.com/s/notosans/v12/o-0IIpQlx3QUlC5A4PNb4j5Ba_2c7A.ttf","italic":"http://fonts.gstatic.com/s/notosans/v12/o-0OIpQlx3QUlC5A4PNr4DRFSfiM7HBj.ttf","700italic":"http://fonts.gstatic.com/s/notosans/v12/o-0TIpQlx3QUlC5A4PNr4Az5ZtyEx2xqPaif.ttf"},"Roboto Mono":{"100":"http://fonts.gstatic.com/s/robotomono/v13/L0xuDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vuPQ--5Ip2sSQ.ttf","200":"http://fonts.gstatic.com/s/robotomono/v13/L0xuDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_XvqPQ--5Ip2sSQ.ttf","300":"http://fonts.gstatic.com/s/robotomono/v13/L0xuDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_gPqPQ--5Ip2sSQ.ttf","500":"http://fonts.gstatic.com/s/robotomono/v13/L0xuDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_7PqPQ--5Ip2sSQ.ttf","600":"http://fonts.gstatic.com/s/robotomono/v13/L0xuDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_AP2PQ--5Ip2sSQ.ttf","700":"http://fonts.gstatic.com/s/robotomono/v13/L0xuDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_Of2PQ--5Ip2sSQ.ttf","regular":"http://fonts.gstatic.com/s/robotomono/v13/L0xuDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vqPQ--5Ip2sSQ.ttf","100italic":"http://fonts.gstatic.com/s/robotomono/v13/L0xoDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAeW9AJi8SZwt.ttf","200italic":"http://fonts.gstatic.com/s/robotomono/v13/L0xoDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrnnAOW9AJi8SZwt.ttf","300italic":"http://fonts.gstatic.com/s/robotomono/v13/L0xoDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrk5AOW9AJi8SZwt.ttf","italic":"http://fonts.gstatic.com/s/robotomono/v13/L0xoDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAOW9AJi8SZwt.ttf","500italic":"http://fonts.gstatic.com/s/robotomono/v13/L0xoDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlVAOW9AJi8SZwt.ttf","600italic":"http://fonts.gstatic.com/s/robotomono/v13/L0xoDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrm5B-W9AJi8SZwt.ttf","700italic":"http://fonts.gstatic.com/s/robotomono/v13/L0xoDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrmAB-W9AJi8SZwt.ttf"},"Raleway":{"100":"http://fonts.gstatic.com/s/raleway/v22/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVvao4CPNLA3JC9c.ttf","200":"http://fonts.gstatic.com/s/raleway/v22/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVtaooCPNLA3JC9c.ttf","300":"http://fonts.gstatic.com/s/raleway/v22/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVuEooCPNLA3JC9c.ttf","500":"http://fonts.gstatic.com/s/raleway/v22/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVvoooCPNLA3JC9c.ttf","600":"http://fonts.gstatic.com/s/raleway/v22/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVsEpYCPNLA3JC9c.ttf","700":"http://fonts.gstatic.com/s/raleway/v22/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVs9pYCPNLA3JC9c.ttf","800":"http://fonts.gstatic.com/s/raleway/v22/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVtapYCPNLA3JC9c.ttf","900":"http://fonts.gstatic.com/s/raleway/v22/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVtzpYCPNLA3JC9c.ttf","regular":"http://fonts.gstatic.com/s/raleway/v22/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVvaooCPNLA3JC9c.ttf","100italic":"http://fonts.gstatic.com/s/raleway/v22/1Pt_g8zYS_SKggPNyCgSQamb1W0lwk4S4WjNPrQVIT9c2c8.ttf","200italic":"http://fonts.gstatic.com/s/raleway/v22/1Pt_g8zYS_SKggPNyCgSQamb1W0lwk4S4ejMPrQVIT9c2c8.ttf","300italic":"http://fonts.gstatic.com/s/raleway/v22/1Pt_g8zYS_SKggPNyCgSQamb1W0lwk4S4TbMPrQVIT9c2c8.ttf","italic":"http://fonts.gstatic.com/s/raleway/v22/1Pt_g8zYS_SKggPNyCgSQamb1W0lwk4S4WjMPrQVIT9c2c8.ttf","500italic":"http://fonts.gstatic.com/s/raleway/v22/1Pt_g8zYS_SKggPNyCgSQamb1W0lwk4S4VrMPrQVIT9c2c8.ttf","600italic":"http://fonts.gstatic.com/s/raleway/v22/1Pt_g8zYS_SKggPNyCgSQamb1W0lwk4S4bbLPrQVIT9c2c8.ttf","700italic":"http://fonts.gstatic.com/s/raleway/v22/1Pt_g8zYS_SKggPNyCgSQamb1W0lwk4S4Y_LPrQVIT9c2c8.ttf","800italic":"http://fonts.gstatic.com/s/raleway/v22/1Pt_g8zYS_SKggPNyCgSQamb1W0lwk4S4ejLPrQVIT9c2c8.ttf","900italic":"http://fonts.gstatic.com/s/raleway/v22/1Pt_g8zYS_SKggPNyCgSQamb1W0lwk4S4cHLPrQVIT9c2c8.ttf"},"PT Sans":{"700":"http://fonts.gstatic.com/s/ptsans/v12/jizfRExUiTo99u79B_mh4OmnLD0Z4zM.ttf","regular":"http://fonts.gstatic.com/s/ptsans/v12/jizaRExUiTo99u79P0WOxOGMMDQ.ttf","italic":"http://fonts.gstatic.com/s/ptsans/v12/jizYRExUiTo99u79D0eEwMOJIDQA-g.ttf","700italic":"http://fonts.gstatic.com/s/ptsans/v12/jizdRExUiTo99u79D0e8fOytKB8c8zMrig.ttf"},"Ubuntu":{"300":"http://fonts.gstatic.com/s/ubuntu/v15/4iCv6KVjbNBYlgoC1CzTt2aMH4V_gg.ttf","500":"http://fonts.gstatic.com/s/ubuntu/v15/4iCv6KVjbNBYlgoCjC3Tt2aMH4V_gg.ttf","700":"http://fonts.gstatic.com/s/ubuntu/v15/4iCv6KVjbNBYlgoCxCvTt2aMH4V_gg.ttf","300italic":"http://fonts.gstatic.com/s/ubuntu/v15/4iCp6KVjbNBYlgoKejZftWyIPYBvgpUI.ttf","regular":"http://fonts.gstatic.com/s/ubuntu/v15/4iCs6KVjbNBYlgo6eAT3v02QFg.ttf","italic":"http://fonts.gstatic.com/s/ubuntu/v15/4iCu6KVjbNBYlgoKeg7znUiAFpxm.ttf","500italic":"http://fonts.gstatic.com/s/ubuntu/v15/4iCp6KVjbNBYlgoKejYHtGyIPYBvgpUI.ttf","700italic":"http://fonts.gstatic.com/s/ubuntu/v15/4iCp6KVjbNBYlgoKejZPsmyIPYBvgpUI.ttf"},"Roboto Slab":{"100":"http://fonts.gstatic.com/s/robotoslab/v13/BngbUXZYTXPIvIBgJJSb6s3BzlRRfKOFbvjojIWWaG5iddG-1A.ttf","200":"http://fonts.gstatic.com/s/robotoslab/v13/BngbUXZYTXPIvIBgJJSb6s3BzlRRfKOFbvjoDISWaG5iddG-1A.ttf","300":"http://fonts.gstatic.com/s/robotoslab/v13/BngbUXZYTXPIvIBgJJSb6s3BzlRRfKOFbvjo0oSWaG5iddG-1A.ttf","500":"http://fonts.gstatic.com/s/robotoslab/v13/BngbUXZYTXPIvIBgJJSb6s3BzlRRfKOFbvjovoSWaG5iddG-1A.ttf","600":"http://fonts.gstatic.com/s/robotoslab/v13/BngbUXZYTXPIvIBgJJSb6s3BzlRRfKOFbvjoUoOWaG5iddG-1A.ttf","700":"http://fonts.gstatic.com/s/robotoslab/v13/BngbUXZYTXPIvIBgJJSb6s3BzlRRfKOFbvjoa4OWaG5iddG-1A.ttf","800":"http://fonts.gstatic.com/s/robotoslab/v13/BngbUXZYTXPIvIBgJJSb6s3BzlRRfKOFbvjoDIOWaG5iddG-1A.ttf","900":"http://fonts.gstatic.com/s/robotoslab/v13/BngbUXZYTXPIvIBgJJSb6s3BzlRRfKOFbvjoJYOWaG5iddG-1A.ttf","regular":"http://fonts.gstatic.com/s/robotoslab/v13/BngbUXZYTXPIvIBgJJSb6s3BzlRRfKOFbvjojISWaG5iddG-1A.ttf"},"Merriweather":{"300":"http://fonts.gstatic.com/s/merriweather/v22/u-4n0qyriQwlOrhSvowK_l521wRpX837pvjxPA.ttf","700":"http://fonts.gstatic.com/s/merriweather/v22/u-4n0qyriQwlOrhSvowK_l52xwNpX837pvjxPA.ttf","900":"http://fonts.gstatic.com/s/merriweather/v22/u-4n0qyriQwlOrhSvowK_l52_wFpX837pvjxPA.ttf","300italic":"http://fonts.gstatic.com/s/merriweather/v22/u-4l0qyriQwlOrhSvowK_l5-eR7lXcf_hP3hPGWH.ttf","regular":"http://fonts.gstatic.com/s/merriweather/v22/u-440qyriQwlOrhSvowK_l5OeyxNV-bnrw.ttf","italic":"http://fonts.gstatic.com/s/merriweather/v22/u-4m0qyriQwlOrhSvowK_l5-eSZJdeP3r-Ho.ttf","700italic":"http://fonts.gstatic.com/s/merriweather/v22/u-4l0qyriQwlOrhSvowK_l5-eR71Wsf_hP3hPGWH.ttf","900italic":"http://fonts.gstatic.com/s/merriweather/v22/u-4l0qyriQwlOrhSvowK_l5-eR7NWMf_hP3hPGWH.ttf"},"Nunito":{"200":"http://fonts.gstatic.com/s/nunito/v16/XRXW3I6Li01BKofA-sekZuHJeTsfDQ.ttf","300":"http://fonts.gstatic.com/s/nunito/v16/XRXW3I6Li01BKofAnsSkZuHJeTsfDQ.ttf","600":"http://fonts.gstatic.com/s/nunito/v16/XRXW3I6Li01BKofA6sKkZuHJeTsfDQ.ttf","700":"http://fonts.gstatic.com/s/nunito/v16/XRXW3I6Li01BKofAjsOkZuHJeTsfDQ.ttf","800":"http://fonts.gstatic.com/s/nunito/v16/XRXW3I6Li01BKofAksCkZuHJeTsfDQ.ttf","900":"http://fonts.gstatic.com/s/nunito/v16/XRXW3I6Li01BKofAtsGkZuHJeTsfDQ.ttf","200italic":"http://fonts.gstatic.com/s/nunito/v16/XRXQ3I6Li01BKofIMN5MZ-vNWz4PDWtj.ttf","300italic":"http://fonts.gstatic.com/s/nunito/v16/XRXQ3I6Li01BKofIMN4oZOvNWz4PDWtj.ttf","regular":"http://fonts.gstatic.com/s/nunito/v16/XRXV3I6Li01BKof4MuyAbsrVcA.ttf","italic":"http://fonts.gstatic.com/s/nunito/v16/XRXX3I6Li01BKofIMOaETM_FcCIG.ttf","600italic":"http://fonts.gstatic.com/s/nunito/v16/XRXQ3I6Li01BKofIMN5cYuvNWz4PDWtj.ttf","700italic":"http://fonts.gstatic.com/s/nunito/v16/XRXQ3I6Li01BKofIMN44Y-vNWz4PDWtj.ttf","800italic":"http://fonts.gstatic.com/s/nunito/v16/XRXQ3I6Li01BKofIMN4kYOvNWz4PDWtj.ttf","900italic":"http://fonts.gstatic.com/s/nunito/v16/XRXQ3I6Li01BKofIMN4AYevNWz4PDWtj.ttf"},"Playfair Display":{"500":"http://fonts.gstatic.com/s/playfairdisplay/v22/nuFvD-vYSZviVYUb_rj3ij__anPXJzDwcbmjWBN2PKd3vUDQZNLo_U2r.ttf","600":"http://fonts.gstatic.com/s/playfairdisplay/v22/nuFvD-vYSZviVYUb_rj3ij__anPXJzDwcbmjWBN2PKebukDQZNLo_U2r.ttf","700":"http://fonts.gstatic.com/s/playfairdisplay/v22/nuFvD-vYSZviVYUb_rj3ij__anPXJzDwcbmjWBN2PKeiukDQZNLo_U2r.ttf","800":"http://fonts.gstatic.com/s/playfairdisplay/v22/nuFvD-vYSZviVYUb_rj3ij__anPXJzDwcbmjWBN2PKfFukDQZNLo_U2r.ttf","900":"http://fonts.gstatic.com/s/playfairdisplay/v22/nuFvD-vYSZviVYUb_rj3ij__anPXJzDwcbmjWBN2PKfsukDQZNLo_U2r.ttf","regular":"http://fonts.gstatic.com/s/playfairdisplay/v22/nuFvD-vYSZviVYUb_rj3ij__anPXJzDwcbmjWBN2PKdFvUDQZNLo_U2r.ttf","italic":"http://fonts.gstatic.com/s/playfairdisplay/v22/nuFRD-vYSZviVYUb_rj3ij__anPXDTnCjmHKM4nYO7KN_qiTbtbK-F2rA0s.ttf","500italic":"http://fonts.gstatic.com/s/playfairdisplay/v22/nuFRD-vYSZviVYUb_rj3ij__anPXDTnCjmHKM4nYO7KN_pqTbtbK-F2rA0s.ttf","600italic":"http://fonts.gstatic.com/s/playfairdisplay/v22/nuFRD-vYSZviVYUb_rj3ij__anPXDTnCjmHKM4nYO7KN_naUbtbK-F2rA0s.ttf","700italic":"http://fonts.gstatic.com/s/playfairdisplay/v22/nuFRD-vYSZviVYUb_rj3ij__anPXDTnCjmHKM4nYO7KN_k-UbtbK-F2rA0s.ttf","800italic":"http://fonts.gstatic.com/s/playfairdisplay/v22/nuFRD-vYSZviVYUb_rj3ij__anPXDTnCjmHKM4nYO7KN_iiUbtbK-F2rA0s.ttf","900italic":"http://fonts.gstatic.com/s/playfairdisplay/v22/nuFRD-vYSZviVYUb_rj3ij__anPXDTnCjmHKM4nYO7KN_gGUbtbK-F2rA0s.ttf"},"Noto Sans KR":{"100":"http://fonts.gstatic.com/s/notosanskr/v13/Pby6FmXiEBPT4ITbgNA5CgmOsn7uwpYcuH8y.otf","300":"http://fonts.gstatic.com/s/notosanskr/v13/Pby7FmXiEBPT4ITbgNA5CgmOelzI7rgQsWYrzw.otf","500":"http://fonts.gstatic.com/s/notosanskr/v13/Pby7FmXiEBPT4ITbgNA5CgmOIl3I7rgQsWYrzw.otf","700":"http://fonts.gstatic.com/s/notosanskr/v13/Pby7FmXiEBPT4ITbgNA5CgmOalvI7rgQsWYrzw.otf","900":"http://fonts.gstatic.com/s/notosanskr/v13/Pby7FmXiEBPT4ITbgNA5CgmOUlnI7rgQsWYrzw.otf","regular":"http://fonts.gstatic.com/s/notosanskr/v13/PbykFmXiEBPT4ITbgNA5Cgm20HTs4JMMuA.otf"},"Open Sans Condensed":{"300":"http://fonts.gstatic.com/s/opensanscondensed/v15/z7NFdQDnbTkabZAIOl9il_O6KJj73e7Ff1GhPuLGRpWRyAs.ttf","700":"http://fonts.gstatic.com/s/opensanscondensed/v15/z7NFdQDnbTkabZAIOl9il_O6KJj73e7Ff0GmPuLGRpWRyAs.ttf","300italic":"http://fonts.gstatic.com/s/opensanscondensed/v15/z7NHdQDnbTkabZAIOl9il_O6KJj73e7Fd_-7suDMQreU2AsJSg.ttf"},"Rubik":{"300":"http://fonts.gstatic.com/s/rubik/v14/iJWZBXyIfDnIV5PNhY1KTN7Z-Yh-WYi1UE80V4bVkA.ttf","500":"http://fonts.gstatic.com/s/rubik/v14/iJWZBXyIfDnIV5PNhY1KTN7Z-Yh-NYi1UE80V4bVkA.ttf","600":"http://fonts.gstatic.com/s/rubik/v14/iJWZBXyIfDnIV5PNhY1KTN7Z-Yh-2Y-1UE80V4bVkA.ttf","700":"http://fonts.gstatic.com/s/rubik/v14/iJWZBXyIfDnIV5PNhY1KTN7Z-Yh-4I-1UE80V4bVkA.ttf","800":"http://fonts.gstatic.com/s/rubik/v14/iJWZBXyIfDnIV5PNhY1KTN7Z-Yh-h4-1UE80V4bVkA.ttf","900":"http://fonts.gstatic.com/s/rubik/v14/iJWZBXyIfDnIV5PNhY1KTN7Z-Yh-ro-1UE80V4bVkA.ttf","regular":"http://fonts.gstatic.com/s/rubik/v14/iJWZBXyIfDnIV5PNhY1KTN7Z-Yh-B4i1UE80V4bVkA.ttf","300italic":"http://fonts.gstatic.com/s/rubik/v14/iJWbBXyIfDnIV7nEt3KSJbVDV49rz8sDE0UwdYPFkJ1O.ttf","italic":"http://fonts.gstatic.com/s/rubik/v14/iJWbBXyIfDnIV7nEt3KSJbVDV49rz8tdE0UwdYPFkJ1O.ttf","500italic":"http://fonts.gstatic.com/s/rubik/v14/iJWbBXyIfDnIV7nEt3KSJbVDV49rz8tvE0UwdYPFkJ1O.ttf","600italic":"http://fonts.gstatic.com/s/rubik/v14/iJWbBXyIfDnIV7nEt3KSJbVDV49rz8uDFEUwdYPFkJ1O.ttf","700italic":"http://fonts.gstatic.com/s/rubik/v14/iJWbBXyIfDnIV7nEt3KSJbVDV49rz8u6FEUwdYPFkJ1O.ttf","800italic":"http://fonts.gstatic.com/s/rubik/v14/iJWbBXyIfDnIV7nEt3KSJbVDV49rz8vdFEUwdYPFkJ1O.ttf","900italic":"http://fonts.gstatic.com/s/rubik/v14/iJWbBXyIfDnIV7nEt3KSJbVDV49rz8v0FEUwdYPFkJ1O.ttf"},"Lora":{"500":"http://fonts.gstatic.com/s/lora/v17/0QI6MX1D_JOuGQbT0gvTJPa787wsuyJGmKxemMeZ.ttf","600":"http://fonts.gstatic.com/s/lora/v17/0QI6MX1D_JOuGQbT0gvTJPa787zAvCJGmKxemMeZ.ttf","700":"http://fonts.gstatic.com/s/lora/v17/0QI6MX1D_JOuGQbT0gvTJPa787z5vCJGmKxemMeZ.ttf","regular":"http://fonts.gstatic.com/s/lora/v17/0QI6MX1D_JOuGQbT0gvTJPa787weuyJGmKxemMeZ.ttf","italic":"http://fonts.gstatic.com/s/lora/v17/0QI8MX1D_JOuMw_hLdO6T2wV9KnW-MoFkqh8ndeZzZ0.ttf","500italic":"http://fonts.gstatic.com/s/lora/v17/0QI8MX1D_JOuMw_hLdO6T2wV9KnW-PgFkqh8ndeZzZ0.ttf","600italic":"http://fonts.gstatic.com/s/lora/v17/0QI8MX1D_JOuMw_hLdO6T2wV9KnW-BQCkqh8ndeZzZ0.ttf","700italic":"http://fonts.gstatic.com/s/lora/v17/0QI8MX1D_JOuMw_hLdO6T2wV9KnW-C0Ckqh8ndeZzZ0.ttf"},"Mukta":{"200":"http://fonts.gstatic.com/s/mukta/v8/iJWHBXyXfDDVXbEOjFma-2HW7ZB_.ttf","300":"http://fonts.gstatic.com/s/mukta/v8/iJWHBXyXfDDVXbFqj1ma-2HW7ZB_.ttf","500":"http://fonts.gstatic.com/s/mukta/v8/iJWHBXyXfDDVXbEyjlma-2HW7ZB_.ttf","600":"http://fonts.gstatic.com/s/mukta/v8/iJWHBXyXfDDVXbEeiVma-2HW7ZB_.ttf","700":"http://fonts.gstatic.com/s/mukta/v8/iJWHBXyXfDDVXbF6iFma-2HW7ZB_.ttf","800":"http://fonts.gstatic.com/s/mukta/v8/iJWHBXyXfDDVXbFmi1ma-2HW7ZB_.ttf","regular":"http://fonts.gstatic.com/s/mukta/v8/iJWKBXyXfDDVXYnGp32S0H3f.ttf"},"Work Sans":{"100":"http://fonts.gstatic.com/s/worksans/v9/QGY_z_wNahGAdqQ43RhVcIgYT2Xz5u32K0nWNigDp6_cOyA.ttf","200":"http://fonts.gstatic.com/s/worksans/v9/QGY_z_wNahGAdqQ43RhVcIgYT2Xz5u32K8nXNigDp6_cOyA.ttf","300":"http://fonts.gstatic.com/s/worksans/v9/QGY_z_wNahGAdqQ43RhVcIgYT2Xz5u32KxfXNigDp6_cOyA.ttf","500":"http://fonts.gstatic.com/s/worksans/v9/QGY_z_wNahGAdqQ43RhVcIgYT2Xz5u32K3vXNigDp6_cOyA.ttf","600":"http://fonts.gstatic.com/s/worksans/v9/QGY_z_wNahGAdqQ43RhVcIgYT2Xz5u32K5fQNigDp6_cOyA.ttf","700":"http://fonts.gstatic.com/s/worksans/v9/QGY_z_wNahGAdqQ43RhVcIgYT2Xz5u32K67QNigDp6_cOyA.ttf","800":"http://fonts.gstatic.com/s/worksans/v9/QGY_z_wNahGAdqQ43RhVcIgYT2Xz5u32K8nQNigDp6_cOyA.ttf","900":"http://fonts.gstatic.com/s/worksans/v9/QGY_z_wNahGAdqQ43RhVcIgYT2Xz5u32K-DQNigDp6_cOyA.ttf","regular":"http://fonts.gstatic.com/s/worksans/v9/QGY_z_wNahGAdqQ43RhVcIgYT2Xz5u32K0nXNigDp6_cOyA.ttf","100italic":"http://fonts.gstatic.com/s/worksans/v9/QGY9z_wNahGAdqQ43Rh_ebrnlwyYfEPxPoGU3moJo43ZKyDSQQ.ttf","200italic":"http://fonts.gstatic.com/s/worksans/v9/QGY9z_wNahGAdqQ43Rh_ebrnlwyYfEPxPoGUXmsJo43ZKyDSQQ.ttf","300italic":"http://fonts.gstatic.com/s/worksans/v9/QGY9z_wNahGAdqQ43Rh_ebrnlwyYfEPxPoGUgGsJo43ZKyDSQQ.ttf","italic":"http://fonts.gstatic.com/s/worksans/v9/QGY9z_wNahGAdqQ43Rh_ebrnlwyYfEPxPoGU3msJo43ZKyDSQQ.ttf","500italic":"http://fonts.gstatic.com/s/worksans/v9/QGY9z_wNahGAdqQ43Rh_ebrnlwyYfEPxPoGU7GsJo43ZKyDSQQ.ttf","600italic":"http://fonts.gstatic.com/s/worksans/v9/QGY9z_wNahGAdqQ43Rh_ebrnlwyYfEPxPoGUAGwJo43ZKyDSQQ.ttf","700italic":"http://fonts.gstatic.com/s/worksans/v9/QGY9z_wNahGAdqQ43Rh_ebrnlwyYfEPxPoGUOWwJo43ZKyDSQQ.ttf","800italic":"http://fonts.gstatic.com/s/worksans/v9/QGY9z_wNahGAdqQ43Rh_ebrnlwyYfEPxPoGUXmwJo43ZKyDSQQ.ttf","900italic":"http://fonts.gstatic.com/s/worksans/v9/QGY9z_wNahGAdqQ43Rh_ebrnlwyYfEPxPoGUd2wJo43ZKyDSQQ.ttf"},"Fira Sans":{"100":"http://fonts.gstatic.com/s/firasans/v11/va9C4kDNxMZdWfMOD5Vn9IjOazP3dUTP.ttf","200":"http://fonts.gstatic.com/s/firasans/v11/va9B4kDNxMZdWfMOD5VnWKnuQR37fF3Wlg.ttf","300":"http://fonts.gstatic.com/s/firasans/v11/va9B4kDNxMZdWfMOD5VnPKruQR37fF3Wlg.ttf","500":"http://fonts.gstatic.com/s/firasans/v11/va9B4kDNxMZdWfMOD5VnZKvuQR37fF3Wlg.ttf","600":"http://fonts.gstatic.com/s/firasans/v11/va9B4kDNxMZdWfMOD5VnSKzuQR37fF3Wlg.ttf","700":"http://fonts.gstatic.com/s/firasans/v11/va9B4kDNxMZdWfMOD5VnLK3uQR37fF3Wlg.ttf","800":"http://fonts.gstatic.com/s/firasans/v11/va9B4kDNxMZdWfMOD5VnMK7uQR37fF3Wlg.ttf","900":"http://fonts.gstatic.com/s/firasans/v11/va9B4kDNxMZdWfMOD5VnFK_uQR37fF3Wlg.ttf","100italic":"http://fonts.gstatic.com/s/firasans/v11/va9A4kDNxMZdWfMOD5VvkrCqYTfVcFTPj0s.ttf","200italic":"http://fonts.gstatic.com/s/firasans/v11/va9f4kDNxMZdWfMOD5VvkrAGQBf_XljGllLX.ttf","300italic":"http://fonts.gstatic.com/s/firasans/v11/va9f4kDNxMZdWfMOD5VvkrBiQxf_XljGllLX.ttf","regular":"http://fonts.gstatic.com/s/firasans/v11/va9E4kDNxMZdWfMOD5VfkILKSTbndQ.ttf","italic":"http://fonts.gstatic.com/s/firasans/v11/va9C4kDNxMZdWfMOD5VvkojOazP3dUTP.ttf","500italic":"http://fonts.gstatic.com/s/firasans/v11/va9f4kDNxMZdWfMOD5VvkrA6Qhf_XljGllLX.ttf","600italic":"http://fonts.gstatic.com/s/firasans/v11/va9f4kDNxMZdWfMOD5VvkrAWRRf_XljGllLX.ttf","700italic":"http://fonts.gstatic.com/s/firasans/v11/va9f4kDNxMZdWfMOD5VvkrByRBf_XljGllLX.ttf","800italic":"http://fonts.gstatic.com/s/firasans/v11/va9f4kDNxMZdWfMOD5VvkrBuRxf_XljGllLX.ttf","900italic":"http://fonts.gstatic.com/s/firasans/v11/va9f4kDNxMZdWfMOD5VvkrBKRhf_XljGllLX.ttf"},"Nunito Sans":{"200":"http://fonts.gstatic.com/s/nunitosans/v6/pe03MImSLYBIv1o4X1M8cc9yAv5qWVAgVol-.ttf","300":"http://fonts.gstatic.com/s/nunitosans/v6/pe03MImSLYBIv1o4X1M8cc8WAf5qWVAgVol-.ttf","600":"http://fonts.gstatic.com/s/nunitosans/v6/pe03MImSLYBIv1o4X1M8cc9iB_5qWVAgVol-.ttf","700":"http://fonts.gstatic.com/s/nunitosans/v6/pe03MImSLYBIv1o4X1M8cc8GBv5qWVAgVol-.ttf","800":"http://fonts.gstatic.com/s/nunitosans/v6/pe03MImSLYBIv1o4X1M8cc8aBf5qWVAgVol-.ttf","900":"http://fonts.gstatic.com/s/nunitosans/v6/pe03MImSLYBIv1o4X1M8cc8-BP5qWVAgVol-.ttf","200italic":"http://fonts.gstatic.com/s/nunitosans/v6/pe01MImSLYBIv1o4X1M8cce4GxZrU1QCU5l-06Y.ttf","300italic":"http://fonts.gstatic.com/s/nunitosans/v6/pe01MImSLYBIv1o4X1M8cce4G3JoU1QCU5l-06Y.ttf","regular":"http://fonts.gstatic.com/s/nunitosans/v6/pe0qMImSLYBIv1o4X1M8cfe6Kdpickwp.ttf","italic":"http://fonts.gstatic.com/s/nunitosans/v6/pe0oMImSLYBIv1o4X1M8cce4I95Ad1wpT5A.ttf","600italic":"http://fonts.gstatic.com/s/nunitosans/v6/pe01MImSLYBIv1o4X1M8cce4GwZuU1QCU5l-06Y.ttf","700italic":"http://fonts.gstatic.com/s/nunitosans/v6/pe01MImSLYBIv1o4X1M8cce4G2JvU1QCU5l-06Y.ttf","800italic":"http://fonts.gstatic.com/s/nunitosans/v6/pe01MImSLYBIv1o4X1M8cce4G35sU1QCU5l-06Y.ttf","900italic":"http://fonts.gstatic.com/s/nunitosans/v6/pe01MImSLYBIv1o4X1M8cce4G1ptU1QCU5l-06Y.ttf"},"Hind Siliguri":{"300":"http://fonts.gstatic.com/s/hindsiliguri/v7/ijwOs5juQtsyLLR5jN4cxBEoRDf44uEfKiGvxts.ttf","500":"http://fonts.gstatic.com/s/hindsiliguri/v7/ijwOs5juQtsyLLR5jN4cxBEoRG_54uEfKiGvxts.ttf","600":"http://fonts.gstatic.com/s/hindsiliguri/v7/ijwOs5juQtsyLLR5jN4cxBEoREP-4uEfKiGvxts.ttf","700":"http://fonts.gstatic.com/s/hindsiliguri/v7/ijwOs5juQtsyLLR5jN4cxBEoRCf_4uEfKiGvxts.ttf","regular":"http://fonts.gstatic.com/s/hindsiliguri/v7/ijwTs5juQtsyLLR5jN4cxBEofJvQxuk0Nig.ttf"},"Noto Sans TC":{"100":"http://fonts.gstatic.com/s/notosanstc/v11/-nFlOG829Oofr2wohFbTp9i9WyEJIfNZ1sjy.otf","300":"http://fonts.gstatic.com/s/notosanstc/v11/-nFkOG829Oofr2wohFbTp9i9kwMvDd1V39Hr7g.otf","500":"http://fonts.gstatic.com/s/notosanstc/v11/-nFkOG829Oofr2wohFbTp9i9ywIvDd1V39Hr7g.otf","700":"http://fonts.gstatic.com/s/notosanstc/v11/-nFkOG829Oofr2wohFbTp9i9gwQvDd1V39Hr7g.otf","900":"http://fonts.gstatic.com/s/notosanstc/v11/-nFkOG829Oofr2wohFbTp9i9uwYvDd1V39Hr7g.otf","regular":"http://fonts.gstatic.com/s/notosanstc/v11/-nF7OG829Oofr2wohFbTp9iFOSsLA_ZJ1g.otf"},"Nanum Gothic":{"700":"http://fonts.gstatic.com/s/nanumgothic/v17/PN_oRfi-oW3hYwmKDpxS7F_LQv37zlEn14YEUQ.ttf","800":"http://fonts.gstatic.com/s/nanumgothic/v17/PN_oRfi-oW3hYwmKDpxS7F_LXv77zlEn14YEUQ.ttf","regular":"http://fonts.gstatic.com/s/nanumgothic/v17/PN_3Rfi-oW3hYwmKDpxS7F_z_tLfxno73g.ttf"},"PT Serif":{"700":"http://fonts.gstatic.com/s/ptserif/v12/EJRSQgYoZZY2vCFuvAnt65qVXSr3pNNB.ttf","regular":"http://fonts.gstatic.com/s/ptserif/v12/EJRVQgYoZZY2vCFuvDFRxL6ddjb-.ttf","italic":"http://fonts.gstatic.com/s/ptserif/v12/EJRTQgYoZZY2vCFuvAFTzrq_cyb-vco.ttf","700italic":"http://fonts.gstatic.com/s/ptserif/v12/EJRQQgYoZZY2vCFuvAFT9gaQVy7VocNB6Iw.ttf"},"Noto Serif":{"700":"http://fonts.gstatic.com/s/notoserif/v11/ga6Law1J5X9T9RW6j9bNdOwzTRCUcM1IKoY.ttf","regular":"http://fonts.gstatic.com/s/notoserif/v11/ga6Iaw1J5X9T9RW6j9bNTFAcaRi_bMQ.ttf","italic":"http://fonts.gstatic.com/s/notoserif/v11/ga6Kaw1J5X9T9RW6j9bNfFIWbTq6fMRRMw.ttf","700italic":"http://fonts.gstatic.com/s/notoserif/v11/ga6Vaw1J5X9T9RW6j9bNfFIu0RWedO9NOoYIDg.ttf"},"Inter":{"100":"http://fonts.gstatic.com/s/inter/v3/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuLyeMZhrib2Bg-4.ttf","200":"http://fonts.gstatic.com/s/inter/v3/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuDyfMZhrib2Bg-4.ttf","300":"http://fonts.gstatic.com/s/inter/v3/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuOKfMZhrib2Bg-4.ttf","500":"http://fonts.gstatic.com/s/inter/v3/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuI6fMZhrib2Bg-4.ttf","600":"http://fonts.gstatic.com/s/inter/v3/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuGKYMZhrib2Bg-4.ttf","700":"http://fonts.gstatic.com/s/inter/v3/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuFuYMZhrib2Bg-4.ttf","800":"http://fonts.gstatic.com/s/inter/v3/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuDyYMZhrib2Bg-4.ttf","900":"http://fonts.gstatic.com/s/inter/v3/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuBWYMZhrib2Bg-4.ttf","regular":"http://fonts.gstatic.com/s/inter/v3/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuLyfMZhrib2Bg-4.ttf"},"Quicksand":{"300":"http://fonts.gstatic.com/s/quicksand/v22/6xK-dSZaM9iE8KbpRA_LJ3z8mH9BOJvgkKEo18G0wx40QDw.ttf","500":"http://fonts.gstatic.com/s/quicksand/v22/6xK-dSZaM9iE8KbpRA_LJ3z8mH9BOJvgkM0o18G0wx40QDw.ttf","600":"http://fonts.gstatic.com/s/quicksand/v22/6xK-dSZaM9iE8KbpRA_LJ3z8mH9BOJvgkCEv18G0wx40QDw.ttf","700":"http://fonts.gstatic.com/s/quicksand/v22/6xK-dSZaM9iE8KbpRA_LJ3z8mH9BOJvgkBgv18G0wx40QDw.ttf","regular":"http://fonts.gstatic.com/s/quicksand/v22/6xK-dSZaM9iE8KbpRA_LJ3z8mH9BOJvgkP8o18G0wx40QDw.ttf"},"Titillium Web":{"200":"http://fonts.gstatic.com/s/titilliumweb/v10/NaPDcZTIAOhVxoMyOr9n_E7ffAzHKIx5YrSYqWM.ttf","300":"http://fonts.gstatic.com/s/titilliumweb/v10/NaPDcZTIAOhVxoMyOr9n_E7ffGjEKIx5YrSYqWM.ttf","600":"http://fonts.gstatic.com/s/titilliumweb/v10/NaPDcZTIAOhVxoMyOr9n_E7ffBzCKIx5YrSYqWM.ttf","700":"http://fonts.gstatic.com/s/titilliumweb/v10/NaPDcZTIAOhVxoMyOr9n_E7ffHjDKIx5YrSYqWM.ttf","900":"http://fonts.gstatic.com/s/titilliumweb/v10/NaPDcZTIAOhVxoMyOr9n_E7ffEDBKIx5YrSYqWM.ttf","200italic":"http://fonts.gstatic.com/s/titilliumweb/v10/NaPFcZTIAOhVxoMyOr9n_E7fdMbewI1zZpaduWMmxA.ttf","300italic":"http://fonts.gstatic.com/s/titilliumweb/v10/NaPFcZTIAOhVxoMyOr9n_E7fdMbepI5zZpaduWMmxA.ttf","regular":"http://fonts.gstatic.com/s/titilliumweb/v10/NaPecZTIAOhVxoMyOr9n_E7fRMTsDIRSfr0.ttf","italic":"http://fonts.gstatic.com/s/titilliumweb/v10/NaPAcZTIAOhVxoMyOr9n_E7fdMbmCKZXbr2BsA.ttf","600italic":"http://fonts.gstatic.com/s/titilliumweb/v10/NaPFcZTIAOhVxoMyOr9n_E7fdMbe0IhzZpaduWMmxA.ttf","700italic":"http://fonts.gstatic.com/s/titilliumweb/v10/NaPFcZTIAOhVxoMyOr9n_E7fdMbetIlzZpaduWMmxA.ttf"},"Karla":{"200":"http://fonts.gstatic.com/s/karla/v15/qkBIXvYC6trAT55ZBi1ueQVIjQTDeJqqFENLR7fHGw.ttf","300":"http://fonts.gstatic.com/s/karla/v15/qkBIXvYC6trAT55ZBi1ueQVIjQTDppqqFENLR7fHGw.ttf","500":"http://fonts.gstatic.com/s/karla/v15/qkBIXvYC6trAT55ZBi1ueQVIjQTDypqqFENLR7fHGw.ttf","600":"http://fonts.gstatic.com/s/karla/v15/qkBIXvYC6trAT55ZBi1ueQVIjQTDJp2qFENLR7fHGw.ttf","700":"http://fonts.gstatic.com/s/karla/v15/qkBIXvYC6trAT55ZBi1ueQVIjQTDH52qFENLR7fHGw.ttf","800":"http://fonts.gstatic.com/s/karla/v15/qkBIXvYC6trAT55ZBi1ueQVIjQTDeJ2qFENLR7fHGw.ttf","regular":"http://fonts.gstatic.com/s/karla/v15/qkBIXvYC6trAT55ZBi1ueQVIjQTD-JqqFENLR7fHGw.ttf","200italic":"http://fonts.gstatic.com/s/karla/v15/qkBKXvYC6trAT7RQNNK2EG7SIwPWMNnCV0lPZbLXGxGR.ttf","300italic":"http://fonts.gstatic.com/s/karla/v15/qkBKXvYC6trAT7RQNNK2EG7SIwPWMNkcV0lPZbLXGxGR.ttf","italic":"http://fonts.gstatic.com/s/karla/v15/qkBKXvYC6trAT7RQNNK2EG7SIwPWMNlCV0lPZbLXGxGR.ttf","500italic":"http://fonts.gstatic.com/s/karla/v15/qkBKXvYC6trAT7RQNNK2EG7SIwPWMNlwV0lPZbLXGxGR.ttf","600italic":"http://fonts.gstatic.com/s/karla/v15/qkBKXvYC6trAT7RQNNK2EG7SIwPWMNmcUElPZbLXGxGR.ttf","700italic":"http://fonts.gstatic.com/s/karla/v15/qkBKXvYC6trAT7RQNNK2EG7SIwPWMNmlUElPZbLXGxGR.ttf","800italic":"http://fonts.gstatic.com/s/karla/v15/qkBKXvYC6trAT7RQNNK2EG7SIwPWMNnCUElPZbLXGxGR.ttf"},"Heebo":{"100":"http://fonts.gstatic.com/s/heebo/v10/NGSpv5_NC0k9P_v6ZUCbLRAHxK1EiS2cckOnz02SXQ.ttf","200":"http://fonts.gstatic.com/s/heebo/v10/NGSpv5_NC0k9P_v6ZUCbLRAHxK1ECSycckOnz02SXQ.ttf","300":"http://fonts.gstatic.com/s/heebo/v10/NGSpv5_NC0k9P_v6ZUCbLRAHxK1E1yycckOnz02SXQ.ttf","500":"http://fonts.gstatic.com/s/heebo/v10/NGSpv5_NC0k9P_v6ZUCbLRAHxK1EuyycckOnz02SXQ.ttf","600":"http://fonts.gstatic.com/s/heebo/v10/NGSpv5_NC0k9P_v6ZUCbLRAHxK1EVyucckOnz02SXQ.ttf","700":"http://fonts.gstatic.com/s/heebo/v10/NGSpv5_NC0k9P_v6ZUCbLRAHxK1EbiucckOnz02SXQ.ttf","800":"http://fonts.gstatic.com/s/heebo/v10/NGSpv5_NC0k9P_v6ZUCbLRAHxK1ECSucckOnz02SXQ.ttf","900":"http://fonts.gstatic.com/s/heebo/v10/NGSpv5_NC0k9P_v6ZUCbLRAHxK1EICucckOnz02SXQ.ttf","regular":"http://fonts.gstatic.com/s/heebo/v10/NGSpv5_NC0k9P_v6ZUCbLRAHxK1EiSycckOnz02SXQ.ttf"},"Barlow":{"100":"http://fonts.gstatic.com/s/barlow/v5/7cHrv4kjgoGqM7E3b8s8yn4hnCci.ttf","200":"http://fonts.gstatic.com/s/barlow/v5/7cHqv4kjgoGqM7E3w-oc4FAtlT47dw.ttf","300":"http://fonts.gstatic.com/s/barlow/v5/7cHqv4kjgoGqM7E3p-kc4FAtlT47dw.ttf","500":"http://fonts.gstatic.com/s/barlow/v5/7cHqv4kjgoGqM7E3_-gc4FAtlT47dw.ttf","600":"http://fonts.gstatic.com/s/barlow/v5/7cHqv4kjgoGqM7E30-8c4FAtlT47dw.ttf","700":"http://fonts.gstatic.com/s/barlow/v5/7cHqv4kjgoGqM7E3t-4c4FAtlT47dw.ttf","800":"http://fonts.gstatic.com/s/barlow/v5/7cHqv4kjgoGqM7E3q-0c4FAtlT47dw.ttf","900":"http://fonts.gstatic.com/s/barlow/v5/7cHqv4kjgoGqM7E3j-wc4FAtlT47dw.ttf","100italic":"http://fonts.gstatic.com/s/barlow/v5/7cHtv4kjgoGqM7E_CfNYwHoDmTcibrA.ttf","200italic":"http://fonts.gstatic.com/s/barlow/v5/7cHsv4kjgoGqM7E_CfP04Voptzsrd6m9.ttf","300italic":"http://fonts.gstatic.com/s/barlow/v5/7cHsv4kjgoGqM7E_CfOQ4loptzsrd6m9.ttf","regular":"http://fonts.gstatic.com/s/barlow/v5/7cHpv4kjgoGqM7EPC8E46HsxnA.ttf","italic":"http://fonts.gstatic.com/s/barlow/v5/7cHrv4kjgoGqM7E_Ccs8yn4hnCci.ttf","500italic":"http://fonts.gstatic.com/s/barlow/v5/7cHsv4kjgoGqM7E_CfPI41optzsrd6m9.ttf","600italic":"http://fonts.gstatic.com/s/barlow/v5/7cHsv4kjgoGqM7E_CfPk5Foptzsrd6m9.ttf","700italic":"http://fonts.gstatic.com/s/barlow/v5/7cHsv4kjgoGqM7E_CfOA5Voptzsrd6m9.ttf","800italic":"http://fonts.gstatic.com/s/barlow/v5/7cHsv4kjgoGqM7E_CfOc5loptzsrd6m9.ttf","900italic":"http://fonts.gstatic.com/s/barlow/v5/7cHsv4kjgoGqM7E_CfO451optzsrd6m9.ttf"},"Anton":{"regular":"http://fonts.gstatic.com/s/anton/v15/1Ptgg87LROyAm0K08i4gS7lu.ttf"},"Inconsolata":{"200":"http://fonts.gstatic.com/s/inconsolata/v21/QldgNThLqRwH-OJ1UHjlKENVzkWGVkL3GZQmAwLYxYWI2qfdm7LppwU8aRr8lleY2co.ttf","300":"http://fonts.gstatic.com/s/inconsolata/v21/QldgNThLqRwH-OJ1UHjlKENVzkWGVkL3GZQmAwLYxYWI2qfdm7Lpp9s8aRr8lleY2co.ttf","500":"http://fonts.gstatic.com/s/inconsolata/v21/QldgNThLqRwH-OJ1UHjlKENVzkWGVkL3GZQmAwLYxYWI2qfdm7Lpp7c8aRr8lleY2co.ttf","600":"http://fonts.gstatic.com/s/inconsolata/v21/QldgNThLqRwH-OJ1UHjlKENVzkWGVkL3GZQmAwLYxYWI2qfdm7Lpp1s7aRr8lleY2co.ttf","700":"http://fonts.gstatic.com/s/inconsolata/v21/QldgNThLqRwH-OJ1UHjlKENVzkWGVkL3GZQmAwLYxYWI2qfdm7Lpp2I7aRr8lleY2co.ttf","800":"http://fonts.gstatic.com/s/inconsolata/v21/QldgNThLqRwH-OJ1UHjlKENVzkWGVkL3GZQmAwLYxYWI2qfdm7LppwU7aRr8lleY2co.ttf","900":"http://fonts.gstatic.com/s/inconsolata/v21/QldgNThLqRwH-OJ1UHjlKENVzkWGVkL3GZQmAwLYxYWI2qfdm7Lppyw7aRr8lleY2co.ttf","regular":"http://fonts.gstatic.com/s/inconsolata/v21/QldgNThLqRwH-OJ1UHjlKENVzkWGVkL3GZQmAwLYxYWI2qfdm7Lpp4U8aRr8lleY2co.ttf"},"Oxygen":{"300":"http://fonts.gstatic.com/s/oxygen/v10/2sDcZG1Wl4LcnbuCJW8Db2-4C7wFZQ.ttf","700":"http://fonts.gstatic.com/s/oxygen/v10/2sDcZG1Wl4LcnbuCNWgDb2-4C7wFZQ.ttf","regular":"http://fonts.gstatic.com/s/oxygen/v10/2sDfZG1Wl4Lcnbu6iUcnZ0SkAg.ttf"},"Dosis":{"200":"http://fonts.gstatic.com/s/dosis/v19/HhyJU5sn9vOmLxNkIwRSjTVNWLEJt7MV3BkFTq4EPw.ttf","300":"http://fonts.gstatic.com/s/dosis/v19/HhyJU5sn9vOmLxNkIwRSjTVNWLEJabMV3BkFTq4EPw.ttf","500":"http://fonts.gstatic.com/s/dosis/v19/HhyJU5sn9vOmLxNkIwRSjTVNWLEJBbMV3BkFTq4EPw.ttf","600":"http://fonts.gstatic.com/s/dosis/v19/HhyJU5sn9vOmLxNkIwRSjTVNWLEJ6bQV3BkFTq4EPw.ttf","700":"http://fonts.gstatic.com/s/dosis/v19/HhyJU5sn9vOmLxNkIwRSjTVNWLEJ0LQV3BkFTq4EPw.ttf","800":"http://fonts.gstatic.com/s/dosis/v19/HhyJU5sn9vOmLxNkIwRSjTVNWLEJt7QV3BkFTq4EPw.ttf","regular":"http://fonts.gstatic.com/s/dosis/v19/HhyJU5sn9vOmLxNkIwRSjTVNWLEJN7MV3BkFTq4EPw.ttf"},"PT Sans Narrow":{"700":"http://fonts.gstatic.com/s/ptsansnarrow/v12/BngSUXNadjH0qYEzV7ab-oWlsbg95DiCUfzgRd-3.ttf","regular":"http://fonts.gstatic.com/s/ptsansnarrow/v12/BngRUXNadjH0qYEzV7ab-oWlsYCByxyKeuDp.ttf"},"Arimo":{"500":"http://fonts.gstatic.com/s/arimo/v17/P5sfzZCDf9_T_3cV7NCUECyoxNk338xsBxDAVQI4aA.ttf","600":"http://fonts.gstatic.com/s/arimo/v17/P5sfzZCDf9_T_3cV7NCUECyoxNk3M8tsBxDAVQI4aA.ttf","700":"http://fonts.gstatic.com/s/arimo/v17/P5sfzZCDf9_T_3cV7NCUECyoxNk3CstsBxDAVQI4aA.ttf","regular":"http://fonts.gstatic.com/s/arimo/v17/P5sfzZCDf9_T_3cV7NCUECyoxNk37cxsBxDAVQI4aA.ttf","italic":"http://fonts.gstatic.com/s/arimo/v17/P5sdzZCDf9_T_10c3i9MeUcyat4iJY-ERBrEdwcoaKww.ttf","500italic":"http://fonts.gstatic.com/s/arimo/v17/P5sdzZCDf9_T_10c3i9MeUcyat4iJY-2RBrEdwcoaKww.ttf","600italic":"http://fonts.gstatic.com/s/arimo/v17/P5sdzZCDf9_T_10c3i9MeUcyat4iJY9aQxrEdwcoaKww.ttf","700italic":"http://fonts.gstatic.com/s/arimo/v17/P5sdzZCDf9_T_10c3i9MeUcyat4iJY9jQxrEdwcoaKww.ttf"},"Bebas Neue":{"regular":"http://fonts.gstatic.com/s/bebasneue/v2/JTUSjIg69CK48gW7PXooxW5rygbi49c.ttf"},"Libre Baskerville":{"700":"http://fonts.gstatic.com/s/librebaskerville/v9/kmKiZrc3Hgbbcjq75U4uslyuy4kn0qviTjYwI8Gcw6Oi.ttf","regular":"http://fonts.gstatic.com/s/librebaskerville/v9/kmKnZrc3Hgbbcjq75U4uslyuy4kn0pNeYRI4CN2V.ttf","italic":"http://fonts.gstatic.com/s/librebaskerville/v9/kmKhZrc3Hgbbcjq75U4uslyuy4kn0qNcaxYaDc2V2ro.ttf"},"Josefin Sans":{"100":"http://fonts.gstatic.com/s/josefinsans/v17/Qw3PZQNVED7rKGKxtqIqX5E-AVSJrOCfjY46_DjRXMFrLgTsQV0.ttf","200":"http://fonts.gstatic.com/s/josefinsans/v17/Qw3PZQNVED7rKGKxtqIqX5E-AVSJrOCfjY46_LjQXMFrLgTsQV0.ttf","300":"http://fonts.gstatic.com/s/josefinsans/v17/Qw3PZQNVED7rKGKxtqIqX5E-AVSJrOCfjY46_GbQXMFrLgTsQV0.ttf","500":"http://fonts.gstatic.com/s/josefinsans/v17/Qw3PZQNVED7rKGKxtqIqX5E-AVSJrOCfjY46_ArQXMFrLgTsQV0.ttf","600":"http://fonts.gstatic.com/s/josefinsans/v17/Qw3PZQNVED7rKGKxtqIqX5E-AVSJrOCfjY46_ObXXMFrLgTsQV0.ttf","700":"http://fonts.gstatic.com/s/josefinsans/v17/Qw3PZQNVED7rKGKxtqIqX5E-AVSJrOCfjY46_N_XXMFrLgTsQV0.ttf","regular":"http://fonts.gstatic.com/s/josefinsans/v17/Qw3PZQNVED7rKGKxtqIqX5E-AVSJrOCfjY46_DjQXMFrLgTsQV0.ttf","100italic":"http://fonts.gstatic.com/s/josefinsans/v17/Qw3JZQNVED7rKGKxtqIqX5EUCGZ2dIn0FyA96fCTtINhKibpUV3MEQ.ttf","200italic":"http://fonts.gstatic.com/s/josefinsans/v17/Qw3JZQNVED7rKGKxtqIqX5EUCGZ2dIn0FyA96fCTNIJhKibpUV3MEQ.ttf","300italic":"http://fonts.gstatic.com/s/josefinsans/v17/Qw3JZQNVED7rKGKxtqIqX5EUCGZ2dIn0FyA96fCT6oJhKibpUV3MEQ.ttf","italic":"http://fonts.gstatic.com/s/josefinsans/v17/Qw3JZQNVED7rKGKxtqIqX5EUCGZ2dIn0FyA96fCTtIJhKibpUV3MEQ.ttf","500italic":"http://fonts.gstatic.com/s/josefinsans/v17/Qw3JZQNVED7rKGKxtqIqX5EUCGZ2dIn0FyA96fCThoJhKibpUV3MEQ.ttf","600italic":"http://fonts.gstatic.com/s/josefinsans/v17/Qw3JZQNVED7rKGKxtqIqX5EUCGZ2dIn0FyA96fCTaoVhKibpUV3MEQ.ttf","700italic":"http://fonts.gstatic.com/s/josefinsans/v17/Qw3JZQNVED7rKGKxtqIqX5EUCGZ2dIn0FyA96fCTU4VhKibpUV3MEQ.ttf"},"Libre Franklin":{"100":"http://fonts.gstatic.com/s/librefranklin/v7/jizOREVItHgc8qDIbSTKq4XkRg8T88bjFuXOnduhLsSUB9rIb-JH1g.ttf","200":"http://fonts.gstatic.com/s/librefranklin/v7/jizOREVItHgc8qDIbSTKq4XkRg8T88bjFuXOnduhrsWUB9rIb-JH1g.ttf","300":"http://fonts.gstatic.com/s/librefranklin/v7/jizOREVItHgc8qDIbSTKq4XkRg8T88bjFuXOnduhcMWUB9rIb-JH1g.ttf","500":"http://fonts.gstatic.com/s/librefranklin/v7/jizOREVItHgc8qDIbSTKq4XkRg8T88bjFuXOnduhHMWUB9rIb-JH1g.ttf","600":"http://fonts.gstatic.com/s/librefranklin/v7/jizOREVItHgc8qDIbSTKq4XkRg8T88bjFuXOnduh8MKUB9rIb-JH1g.ttf","700":"http://fonts.gstatic.com/s/librefranklin/v7/jizOREVItHgc8qDIbSTKq4XkRg8T88bjFuXOnduhycKUB9rIb-JH1g.ttf","800":"http://fonts.gstatic.com/s/librefranklin/v7/jizOREVItHgc8qDIbSTKq4XkRg8T88bjFuXOnduhrsKUB9rIb-JH1g.ttf","900":"http://fonts.gstatic.com/s/librefranklin/v7/jizOREVItHgc8qDIbSTKq4XkRg8T88bjFuXOnduhh8KUB9rIb-JH1g.ttf","regular":"http://fonts.gstatic.com/s/librefranklin/v7/jizOREVItHgc8qDIbSTKq4XkRg8T88bjFuXOnduhLsWUB9rIb-JH1g.ttf","100italic":"http://fonts.gstatic.com/s/librefranklin/v7/jizMREVItHgc8qDIbSTKq4XkRiUawTk7f45UM9y05oZ8RdDMTedX1sGE.ttf","200italic":"http://fonts.gstatic.com/s/librefranklin/v7/jizMREVItHgc8qDIbSTKq4XkRiUawTk7f45UM9y05ob8RNDMTedX1sGE.ttf","300italic":"http://fonts.gstatic.com/s/librefranklin/v7/jizMREVItHgc8qDIbSTKq4XkRiUawTk7f45UM9y05oYiRNDMTedX1sGE.ttf","italic":"http://fonts.gstatic.com/s/librefranklin/v7/jizMREVItHgc8qDIbSTKq4XkRiUawTk7f45UM9y05oZ8RNDMTedX1sGE.ttf","500italic":"http://fonts.gstatic.com/s/librefranklin/v7/jizMREVItHgc8qDIbSTKq4XkRiUawTk7f45UM9y05oZORNDMTedX1sGE.ttf","600italic":"http://fonts.gstatic.com/s/librefranklin/v7/jizMREVItHgc8qDIbSTKq4XkRiUawTk7f45UM9y05oaiQ9DMTedX1sGE.ttf","700italic":"http://fonts.gstatic.com/s/librefranklin/v7/jizMREVItHgc8qDIbSTKq4XkRiUawTk7f45UM9y05oabQ9DMTedX1sGE.ttf","800italic":"http://fonts.gstatic.com/s/librefranklin/v7/jizMREVItHgc8qDIbSTKq4XkRiUawTk7f45UM9y05ob8Q9DMTedX1sGE.ttf","900italic":"http://fonts.gstatic.com/s/librefranklin/v7/jizMREVItHgc8qDIbSTKq4XkRiUawTk7f45UM9y05obVQ9DMTedX1sGE.ttf"},"Noto Sans SC":{"100":"http://fonts.gstatic.com/s/notosanssc/v12/k3kJo84MPvpLmixcA63oeALZTYKL2wv287Sb.otf","300":"http://fonts.gstatic.com/s/notosanssc/v12/k3kIo84MPvpLmixcA63oeALZhaCt9yX6-q2CGg.otf","500":"http://fonts.gstatic.com/s/notosanssc/v12/k3kIo84MPvpLmixcA63oeALZ3aGt9yX6-q2CGg.otf","700":"http://fonts.gstatic.com/s/notosanssc/v12/k3kIo84MPvpLmixcA63oeALZlaet9yX6-q2CGg.otf","900":"http://fonts.gstatic.com/s/notosanssc/v12/k3kIo84MPvpLmixcA63oeALZraWt9yX6-q2CGg.otf","regular":"http://fonts.gstatic.com/s/notosanssc/v12/k3kXo84MPvpLmixcA63oeALhL4iJ-Q7m8w.otf"},"Yanone Kaffeesatz":{"200":"http://fonts.gstatic.com/s/yanonekaffeesatz/v16/3y9I6aknfjLm_3lMKjiMgmUUYBs04aUXNxt9gW2LIftodtWpcGuLCnXkVA.ttf","300":"http://fonts.gstatic.com/s/yanonekaffeesatz/v16/3y9I6aknfjLm_3lMKjiMgmUUYBs04aUXNxt9gW2LIftoqNWpcGuLCnXkVA.ttf","500":"http://fonts.gstatic.com/s/yanonekaffeesatz/v16/3y9I6aknfjLm_3lMKjiMgmUUYBs04aUXNxt9gW2LIftoxNWpcGuLCnXkVA.ttf","600":"http://fonts.gstatic.com/s/yanonekaffeesatz/v16/3y9I6aknfjLm_3lMKjiMgmUUYBs04aUXNxt9gW2LIftoKNKpcGuLCnXkVA.ttf","700":"http://fonts.gstatic.com/s/yanonekaffeesatz/v16/3y9I6aknfjLm_3lMKjiMgmUUYBs04aUXNxt9gW2LIftoEdKpcGuLCnXkVA.ttf","regular":"http://fonts.gstatic.com/s/yanonekaffeesatz/v16/3y9I6aknfjLm_3lMKjiMgmUUYBs04aUXNxt9gW2LIfto9tWpcGuLCnXkVA.ttf"},"Source Code Pro":{"200":"http://fonts.gstatic.com/s/sourcecodepro/v14/HI_XiYsKILxRpg3hIP6sJ7fM7Pqt8srztO0rzmmkDQ.ttf","300":"http://fonts.gstatic.com/s/sourcecodepro/v14/HI_XiYsKILxRpg3hIP6sJ7fM7PqtlsnztO0rzmmkDQ.ttf","500":"http://fonts.gstatic.com/s/sourcecodepro/v14/HI_XiYsKILxRpg3hIP6sJ7fM7PqtzsjztO0rzmmkDQ.ttf","600":"http://fonts.gstatic.com/s/sourcecodepro/v14/HI_XiYsKILxRpg3hIP6sJ7fM7Pqt4s_ztO0rzmmkDQ.ttf","700":"http://fonts.gstatic.com/s/sourcecodepro/v14/HI_XiYsKILxRpg3hIP6sJ7fM7Pqths7ztO0rzmmkDQ.ttf","900":"http://fonts.gstatic.com/s/sourcecodepro/v14/HI_XiYsKILxRpg3hIP6sJ7fM7PqtvszztO0rzmmkDQ.ttf","200italic":"http://fonts.gstatic.com/s/sourcecodepro/v14/HI_ViYsKILxRpg3hIP6sJ7fM7PqlONMbtecv7Gy0DRzS.ttf","300italic":"http://fonts.gstatic.com/s/sourcecodepro/v14/HI_ViYsKILxRpg3hIP6sJ7fM7PqlONN_tucv7Gy0DRzS.ttf","regular":"http://fonts.gstatic.com/s/sourcecodepro/v14/HI_SiYsKILxRpg3hIP6sJ7fM7PqVOuHXvMY3xw.ttf","italic":"http://fonts.gstatic.com/s/sourcecodepro/v14/HI_QiYsKILxRpg3hIP6sJ7fM7PqlOOvTnsMnx3C9.ttf","500italic":"http://fonts.gstatic.com/s/sourcecodepro/v14/HI_ViYsKILxRpg3hIP6sJ7fM7PqlONMnt-cv7Gy0DRzS.ttf","600italic":"http://fonts.gstatic.com/s/sourcecodepro/v14/HI_ViYsKILxRpg3hIP6sJ7fM7PqlONMLsOcv7Gy0DRzS.ttf","700italic":"http://fonts.gstatic.com/s/sourcecodepro/v14/HI_ViYsKILxRpg3hIP6sJ7fM7PqlONNvsecv7Gy0DRzS.ttf","900italic":"http://fonts.gstatic.com/s/sourcecodepro/v14/HI_ViYsKILxRpg3hIP6sJ7fM7PqlONNXs-cv7Gy0DRzS.ttf"},"IBM Plex Sans":{"100":"http://fonts.gstatic.com/s/ibmplexsans/v8/zYX-KVElMYYaJe8bpLHnCwDKjbLeEKxIedbzDw.ttf","200":"http://fonts.gstatic.com/s/ibmplexsans/v8/zYX9KVElMYYaJe8bpLHnCwDKjR7_MIZmdd_qFmo.ttf","300":"http://fonts.gstatic.com/s/ibmplexsans/v8/zYX9KVElMYYaJe8bpLHnCwDKjXr8MIZmdd_qFmo.ttf","500":"http://fonts.gstatic.com/s/ibmplexsans/v8/zYX9KVElMYYaJe8bpLHnCwDKjSL9MIZmdd_qFmo.ttf","600":"http://fonts.gstatic.com/s/ibmplexsans/v8/zYX9KVElMYYaJe8bpLHnCwDKjQ76MIZmdd_qFmo.ttf","700":"http://fonts.gstatic.com/s/ibmplexsans/v8/zYX9KVElMYYaJe8bpLHnCwDKjWr7MIZmdd_qFmo.ttf","100italic":"http://fonts.gstatic.com/s/ibmplexsans/v8/zYX8KVElMYYaJe8bpLHnCwDKhdTmdKZMW9PjD3N8.ttf","200italic":"http://fonts.gstatic.com/s/ibmplexsans/v8/zYX7KVElMYYaJe8bpLHnCwDKhdTm2Idscf3vBmpl8A.ttf","300italic":"http://fonts.gstatic.com/s/ibmplexsans/v8/zYX7KVElMYYaJe8bpLHnCwDKhdTmvIRscf3vBmpl8A.ttf","regular":"http://fonts.gstatic.com/s/ibmplexsans/v8/zYXgKVElMYYaJe8bpLHnCwDKtdbUFI5NadY.ttf","italic":"http://fonts.gstatic.com/s/ibmplexsans/v8/zYX-KVElMYYaJe8bpLHnCwDKhdTeEKxIedbzDw.ttf","500italic":"http://fonts.gstatic.com/s/ibmplexsans/v8/zYX7KVElMYYaJe8bpLHnCwDKhdTm5IVscf3vBmpl8A.ttf","600italic":"http://fonts.gstatic.com/s/ibmplexsans/v8/zYX7KVElMYYaJe8bpLHnCwDKhdTmyIJscf3vBmpl8A.ttf","700italic":"http://fonts.gstatic.com/s/ibmplexsans/v8/zYX7KVElMYYaJe8bpLHnCwDKhdTmrINscf3vBmpl8A.ttf"},"Mulish":{"200":"http://fonts.gstatic.com/s/mulish/v3/1Ptyg83HX_SGhgqO0yLcmjzUAuWexRNRwaClGrw-PTY.ttf","300":"http://fonts.gstatic.com/s/mulish/v3/1Ptyg83HX_SGhgqO0yLcmjzUAuWexc1RwaClGrw-PTY.ttf","500":"http://fonts.gstatic.com/s/mulish/v3/1Ptyg83HX_SGhgqO0yLcmjzUAuWexaFRwaClGrw-PTY.ttf","600":"http://fonts.gstatic.com/s/mulish/v3/1Ptyg83HX_SGhgqO0yLcmjzUAuWexU1WwaClGrw-PTY.ttf","700":"http://fonts.gstatic.com/s/mulish/v3/1Ptyg83HX_SGhgqO0yLcmjzUAuWexXRWwaClGrw-PTY.ttf","800":"http://fonts.gstatic.com/s/mulish/v3/1Ptyg83HX_SGhgqO0yLcmjzUAuWexRNWwaClGrw-PTY.ttf","900":"http://fonts.gstatic.com/s/mulish/v3/1Ptyg83HX_SGhgqO0yLcmjzUAuWexTpWwaClGrw-PTY.ttf","regular":"http://fonts.gstatic.com/s/mulish/v3/1Ptyg83HX_SGhgqO0yLcmjzUAuWexZNRwaClGrw-PTY.ttf","200italic":"http://fonts.gstatic.com/s/mulish/v3/1Ptwg83HX_SGhgqk2hAjQlW_mEuZ0FsSqeOvHp47LTZFwA.ttf","300italic":"http://fonts.gstatic.com/s/mulish/v3/1Ptwg83HX_SGhgqk2hAjQlW_mEuZ0FsSd-OvHp47LTZFwA.ttf","italic":"http://fonts.gstatic.com/s/mulish/v3/1Ptwg83HX_SGhgqk2hAjQlW_mEuZ0FsSKeOvHp47LTZFwA.ttf","500italic":"http://fonts.gstatic.com/s/mulish/v3/1Ptwg83HX_SGhgqk2hAjQlW_mEuZ0FsSG-OvHp47LTZFwA.ttf","600italic":"http://fonts.gstatic.com/s/mulish/v3/1Ptwg83HX_SGhgqk2hAjQlW_mEuZ0FsS9-SvHp47LTZFwA.ttf","700italic":"http://fonts.gstatic.com/s/mulish/v3/1Ptwg83HX_SGhgqk2hAjQlW_mEuZ0FsSzuSvHp47LTZFwA.ttf","800italic":"http://fonts.gstatic.com/s/mulish/v3/1Ptwg83HX_SGhgqk2hAjQlW_mEuZ0FsSqeSvHp47LTZFwA.ttf","900italic":"http://fonts.gstatic.com/s/mulish/v3/1Ptwg83HX_SGhgqk2hAjQlW_mEuZ0FsSgOSvHp47LTZFwA.ttf"},"Cabin":{"500":"http://fonts.gstatic.com/s/cabin/v18/u-4X0qWljRw-PfU81xCKCpdpbgZJl6XFpfEd7eA9BIxxkW-EL7Gvxm7rE_s.ttf","600":"http://fonts.gstatic.com/s/cabin/v18/u-4X0qWljRw-PfU81xCKCpdpbgZJl6XFpfEd7eA9BIxxkYODL7Gvxm7rE_s.ttf","700":"http://fonts.gstatic.com/s/cabin/v18/u-4X0qWljRw-PfU81xCKCpdpbgZJl6XFpfEd7eA9BIxxkbqDL7Gvxm7rE_s.ttf","regular":"http://fonts.gstatic.com/s/cabin/v18/u-4X0qWljRw-PfU81xCKCpdpbgZJl6XFpfEd7eA9BIxxkV2EL7Gvxm7rE_s.ttf","italic":"http://fonts.gstatic.com/s/cabin/v18/u-4V0qWljRw-Pd815fNqc8T_wAFcX-c37MPiNYlWniJ2hJXHx_KlwkzuA_u1Bg.ttf","500italic":"http://fonts.gstatic.com/s/cabin/v18/u-4V0qWljRw-Pd815fNqc8T_wAFcX-c37MPiNYlWniJ2hJXH9fKlwkzuA_u1Bg.ttf","600italic":"http://fonts.gstatic.com/s/cabin/v18/u-4V0qWljRw-Pd815fNqc8T_wAFcX-c37MPiNYlWniJ2hJXHGfWlwkzuA_u1Bg.ttf","700italic":"http://fonts.gstatic.com/s/cabin/v18/u-4V0qWljRw-Pd815fNqc8T_wAFcX-c37MPiNYlWniJ2hJXHIPWlwkzuA_u1Bg.ttf"},"Bitter":{"100":"http://fonts.gstatic.com/s/bitter/v19/raxhHiqOu8IVPmnRc6SY1KXhnF_Y8fbeCL_EXFh2reU.ttf","200":"http://fonts.gstatic.com/s/bitter/v19/raxhHiqOu8IVPmnRc6SY1KXhnF_Y8XbfCL_EXFh2reU.ttf","300":"http://fonts.gstatic.com/s/bitter/v19/raxhHiqOu8IVPmnRc6SY1KXhnF_Y8ajfCL_EXFh2reU.ttf","500":"http://fonts.gstatic.com/s/bitter/v19/raxhHiqOu8IVPmnRc6SY1KXhnF_Y8cTfCL_EXFh2reU.ttf","600":"http://fonts.gstatic.com/s/bitter/v19/raxhHiqOu8IVPmnRc6SY1KXhnF_Y8SjYCL_EXFh2reU.ttf","700":"http://fonts.gstatic.com/s/bitter/v19/raxhHiqOu8IVPmnRc6SY1KXhnF_Y8RHYCL_EXFh2reU.ttf","800":"http://fonts.gstatic.com/s/bitter/v19/raxhHiqOu8IVPmnRc6SY1KXhnF_Y8XbYCL_EXFh2reU.ttf","900":"http://fonts.gstatic.com/s/bitter/v19/raxhHiqOu8IVPmnRc6SY1KXhnF_Y8V_YCL_EXFh2reU.ttf","regular":"http://fonts.gstatic.com/s/bitter/v19/raxhHiqOu8IVPmnRc6SY1KXhnF_Y8fbfCL_EXFh2reU.ttf","100italic":"http://fonts.gstatic.com/s/bitter/v19/raxjHiqOu8IVPmn7epZnDMyKBvHf5D6c4P3OWHpzveWxBw.ttf","200italic":"http://fonts.gstatic.com/s/bitter/v19/raxjHiqOu8IVPmn7epZnDMyKBvHf5D6cYPzOWHpzveWxBw.ttf","300italic":"http://fonts.gstatic.com/s/bitter/v19/raxjHiqOu8IVPmn7epZnDMyKBvHf5D6cvvzOWHpzveWxBw.ttf","italic":"http://fonts.gstatic.com/s/bitter/v19/raxjHiqOu8IVPmn7epZnDMyKBvHf5D6c4PzOWHpzveWxBw.ttf","500italic":"http://fonts.gstatic.com/s/bitter/v19/raxjHiqOu8IVPmn7epZnDMyKBvHf5D6c0vzOWHpzveWxBw.ttf","600italic":"http://fonts.gstatic.com/s/bitter/v19/raxjHiqOu8IVPmn7epZnDMyKBvHf5D6cPvvOWHpzveWxBw.ttf","700italic":"http://fonts.gstatic.com/s/bitter/v19/raxjHiqOu8IVPmn7epZnDMyKBvHf5D6cB_vOWHpzveWxBw.ttf","800italic":"http://fonts.gstatic.com/s/bitter/v19/raxjHiqOu8IVPmn7epZnDMyKBvHf5D6cYPvOWHpzveWxBw.ttf","900italic":"http://fonts.gstatic.com/s/bitter/v19/raxjHiqOu8IVPmn7epZnDMyKBvHf5D6cSfvOWHpzveWxBw.ttf"},"Hind":{"300":"http://fonts.gstatic.com/s/hind/v11/5aU19_a8oxmIfMJaIRuYjDpf5Vw.ttf","500":"http://fonts.gstatic.com/s/hind/v11/5aU19_a8oxmIfJpbIRuYjDpf5Vw.ttf","600":"http://fonts.gstatic.com/s/hind/v11/5aU19_a8oxmIfLZcIRuYjDpf5Vw.ttf","700":"http://fonts.gstatic.com/s/hind/v11/5aU19_a8oxmIfNJdIRuYjDpf5Vw.ttf","regular":"http://fonts.gstatic.com/s/hind/v11/5aU69_a8oxmIRG5yBROzkDM.ttf"},"Dancing Script":{"500":"http://fonts.gstatic.com/s/dancingscript/v16/If2cXTr6YS-zF4S-kcSWSVi_sxjsohD9F50Ruu7BAyoHTeB9ptDqpw.ttf","600":"http://fonts.gstatic.com/s/dancingscript/v16/If2cXTr6YS-zF4S-kcSWSVi_sxjsohD9F50Ruu7B7y0HTeB9ptDqpw.ttf","700":"http://fonts.gstatic.com/s/dancingscript/v16/If2cXTr6YS-zF4S-kcSWSVi_sxjsohD9F50Ruu7B1i0HTeB9ptDqpw.ttf","regular":"http://fonts.gstatic.com/s/dancingscript/v16/If2cXTr6YS-zF4S-kcSWSVi_sxjsohD9F50Ruu7BMSoHTeB9ptDqpw.ttf"},"Crimson Text":{"600":"http://fonts.gstatic.com/s/crimsontext/v11/wlppgwHKFkZgtmSR3NB0oRJXsCx2C9lR1LFffg.ttf","700":"http://fonts.gstatic.com/s/crimsontext/v11/wlppgwHKFkZgtmSR3NB0oRJX1C12C9lR1LFffg.ttf","regular":"http://fonts.gstatic.com/s/crimsontext/v11/wlp2gwHKFkZgtmSR3NB0oRJvaAJSA_JN3Q.ttf","italic":"http://fonts.gstatic.com/s/crimsontext/v11/wlpogwHKFkZgtmSR3NB0oRJfaghWIfdd3ahG.ttf","600italic":"http://fonts.gstatic.com/s/crimsontext/v11/wlprgwHKFkZgtmSR3NB0oRJfajCOD9NV9rRPfrKu.ttf","700italic":"http://fonts.gstatic.com/s/crimsontext/v11/wlprgwHKFkZgtmSR3NB0oRJfajDqDtNV9rRPfrKu.ttf"},"Prompt":{"100":"http://fonts.gstatic.com/s/prompt/v5/-W_9XJnvUD7dzB2CA9oYREcjeo0k.ttf","200":"http://fonts.gstatic.com/s/prompt/v5/-W_8XJnvUD7dzB2Cr_s4bmkvc5Q9dw.ttf","300":"http://fonts.gstatic.com/s/prompt/v5/-W_8XJnvUD7dzB2Cy_g4bmkvc5Q9dw.ttf","500":"http://fonts.gstatic.com/s/prompt/v5/-W_8XJnvUD7dzB2Ck_k4bmkvc5Q9dw.ttf","600":"http://fonts.gstatic.com/s/prompt/v5/-W_8XJnvUD7dzB2Cv_44bmkvc5Q9dw.ttf","700":"http://fonts.gstatic.com/s/prompt/v5/-W_8XJnvUD7dzB2C2_84bmkvc5Q9dw.ttf","800":"http://fonts.gstatic.com/s/prompt/v5/-W_8XJnvUD7dzB2Cx_w4bmkvc5Q9dw.ttf","900":"http://fonts.gstatic.com/s/prompt/v5/-W_8XJnvUD7dzB2C4_04bmkvc5Q9dw.ttf","100italic":"http://fonts.gstatic.com/s/prompt/v5/-W_7XJnvUD7dzB2KZeJ8TkMBf50kbiM.ttf","200italic":"http://fonts.gstatic.com/s/prompt/v5/-W_6XJnvUD7dzB2KZeLQb2MrUZEtdzow.ttf","300italic":"http://fonts.gstatic.com/s/prompt/v5/-W_6XJnvUD7dzB2KZeK0bGMrUZEtdzow.ttf","regular":"http://fonts.gstatic.com/s/prompt/v5/-W__XJnvUD7dzB26Z9AcZkIzeg.ttf","italic":"http://fonts.gstatic.com/s/prompt/v5/-W_9XJnvUD7dzB2KZdoYREcjeo0k.ttf","500italic":"http://fonts.gstatic.com/s/prompt/v5/-W_6XJnvUD7dzB2KZeLsbWMrUZEtdzow.ttf","600italic":"http://fonts.gstatic.com/s/prompt/v5/-W_6XJnvUD7dzB2KZeLAamMrUZEtdzow.ttf","700italic":"http://fonts.gstatic.com/s/prompt/v5/-W_6XJnvUD7dzB2KZeKka2MrUZEtdzow.ttf","800italic":"http://fonts.gstatic.com/s/prompt/v5/-W_6XJnvUD7dzB2KZeK4aGMrUZEtdzow.ttf","900italic":"http://fonts.gstatic.com/s/prompt/v5/-W_6XJnvUD7dzB2KZeKcaWMrUZEtdzow.ttf"},"Varela Round":{"regular":"http://fonts.gstatic.com/s/varelaround/v13/w8gdH283Tvk__Lua32TysjIvoMGOD9gxZw.ttf"},"Lobster":{"regular":"http://fonts.gstatic.com/s/lobster/v23/neILzCirqoswsqX9_oWsMqEzSJQ.ttf"},"Abel":{"regular":"http://fonts.gstatic.com/s/abel/v12/MwQ5bhbm2POE6VhLPJp6qGI.ttf"},"Noto Sans HK":{"100":"http://fonts.gstatic.com/s/notosanshk/v6/nKKO-GM_FYFRJvXzVXaAPe9ZUHp1MOv2ObB7.otf","300":"http://fonts.gstatic.com/s/notosanshk/v6/nKKP-GM_FYFRJvXzVXaAPe9ZmFhTHMX6MKliqQ.otf","500":"http://fonts.gstatic.com/s/notosanshk/v6/nKKP-GM_FYFRJvXzVXaAPe9ZwFlTHMX6MKliqQ.otf","700":"http://fonts.gstatic.com/s/notosanshk/v6/nKKP-GM_FYFRJvXzVXaAPe9ZiF9THMX6MKliqQ.otf","900":"http://fonts.gstatic.com/s/notosanshk/v6/nKKP-GM_FYFRJvXzVXaAPe9ZsF1THMX6MKliqQ.otf","regular":"http://fonts.gstatic.com/s/notosanshk/v6/nKKQ-GM_FYFRJvXzVXaAPe9hMnB3Eu7mOQ.otf"},"Fjalla One":{"regular":"http://fonts.gstatic.com/s/fjallaone/v8/Yq6R-LCAWCX3-6Ky7FAFnOZwkxgtUb8.ttf"},"Teko":{"300":"http://fonts.gstatic.com/s/teko/v10/LYjCdG7kmE0gdQhfgCNqqVIuTN4.ttf","500":"http://fonts.gstatic.com/s/teko/v10/LYjCdG7kmE0gdVBegCNqqVIuTN4.ttf","600":"http://fonts.gstatic.com/s/teko/v10/LYjCdG7kmE0gdXxZgCNqqVIuTN4.ttf","700":"http://fonts.gstatic.com/s/teko/v10/LYjCdG7kmE0gdRhYgCNqqVIuTN4.ttf","regular":"http://fonts.gstatic.com/s/teko/v10/LYjNdG7kmE0gTaR3pCtBtVs.ttf"},"Source Serif Pro":{"200":"http://fonts.gstatic.com/s/sourceserifpro/v11/neIXzD-0qpwxpaWvjeD0X88SAOeasbsfhSugxYUvZrI.ttf","300":"http://fonts.gstatic.com/s/sourceserifpro/v11/neIXzD-0qpwxpaWvjeD0X88SAOeasd8chSugxYUvZrI.ttf","600":"http://fonts.gstatic.com/s/sourceserifpro/v11/neIXzD-0qpwxpaWvjeD0X88SAOeasasahSugxYUvZrI.ttf","700":"http://fonts.gstatic.com/s/sourceserifpro/v11/neIXzD-0qpwxpaWvjeD0X88SAOeasc8bhSugxYUvZrI.ttf","900":"http://fonts.gstatic.com/s/sourceserifpro/v11/neIXzD-0qpwxpaWvjeD0X88SAOeasfcZhSugxYUvZrI.ttf","200italic":"http://fonts.gstatic.com/s/sourceserifpro/v11/neIVzD-0qpwxpaWvjeD0X88SAOeauXEGbSqqwacqdrKvbQ.ttf","300italic":"http://fonts.gstatic.com/s/sourceserifpro/v11/neIVzD-0qpwxpaWvjeD0X88SAOeauXEGCSmqwacqdrKvbQ.ttf","regular":"http://fonts.gstatic.com/s/sourceserifpro/v11/neIQzD-0qpwxpaWvjeD0X88SAOeaiXM0oSOL2Yw.ttf","italic":"http://fonts.gstatic.com/s/sourceserifpro/v11/neIWzD-0qpwxpaWvjeD0X88SAOeauXE-pQGOyYw2fw.ttf","600italic":"http://fonts.gstatic.com/s/sourceserifpro/v11/neIVzD-0qpwxpaWvjeD0X88SAOeauXEGfS-qwacqdrKvbQ.ttf","700italic":"http://fonts.gstatic.com/s/sourceserifpro/v11/neIVzD-0qpwxpaWvjeD0X88SAOeauXEGGS6qwacqdrKvbQ.ttf","900italic":"http://fonts.gstatic.com/s/sourceserifpro/v11/neIVzD-0qpwxpaWvjeD0X88SAOeauXEGISyqwacqdrKvbQ.ttf"},"Cairo":{"200":"http://fonts.gstatic.com/s/cairo/v10/SLXLc1nY6Hkvalrub76M7dd8aGZk.ttf","300":"http://fonts.gstatic.com/s/cairo/v10/SLXLc1nY6HkvalqKbL6M7dd8aGZk.ttf","600":"http://fonts.gstatic.com/s/cairo/v10/SLXLc1nY6Hkvalr-ar6M7dd8aGZk.ttf","700":"http://fonts.gstatic.com/s/cairo/v10/SLXLc1nY6Hkvalqaa76M7dd8aGZk.ttf","900":"http://fonts.gstatic.com/s/cairo/v10/SLXLc1nY6Hkvalqiab6M7dd8aGZk.ttf","regular":"http://fonts.gstatic.com/s/cairo/v10/SLXGc1nY6HkvamImRJqExst1.ttf"},"Arvo":{"700":"http://fonts.gstatic.com/s/arvo/v14/tDbM2oWUg0MKoZw1yLTA8vL7lAE.ttf","regular":"http://fonts.gstatic.com/s/arvo/v14/tDbD2oWUg0MKmSAa7Lzr7vs.ttf","italic":"http://fonts.gstatic.com/s/arvo/v14/tDbN2oWUg0MKqSIQ6J7u_vvijQ.ttf","700italic":"http://fonts.gstatic.com/s/arvo/v14/tDbO2oWUg0MKqSIoVLHK9tD-hAHkGg.ttf"},"EB Garamond":{"500":"http://fonts.gstatic.com/s/ebgaramond/v15/SlGDmQSNjdsmc35JDF1K5E55YMjF_7DPuGi-2fRUA4V-e6yHgQ.ttf","600":"http://fonts.gstatic.com/s/ebgaramond/v15/SlGDmQSNjdsmc35JDF1K5E55YMjF_7DPuGi-NfNUA4V-e6yHgQ.ttf","700":"http://fonts.gstatic.com/s/ebgaramond/v15/SlGDmQSNjdsmc35JDF1K5E55YMjF_7DPuGi-DPNUA4V-e6yHgQ.ttf","800":"http://fonts.gstatic.com/s/ebgaramond/v15/SlGDmQSNjdsmc35JDF1K5E55YMjF_7DPuGi-a_NUA4V-e6yHgQ.ttf","regular":"http://fonts.gstatic.com/s/ebgaramond/v15/SlGDmQSNjdsmc35JDF1K5E55YMjF_7DPuGi-6_RUA4V-e6yHgQ.ttf","italic":"http://fonts.gstatic.com/s/ebgaramond/v15/SlGFmQSNjdsmc35JDF1K5GRwUjcdlttVFm-rI7e8QI96WamXgXFI.ttf","500italic":"http://fonts.gstatic.com/s/ebgaramond/v15/SlGFmQSNjdsmc35JDF1K5GRwUjcdlttVFm-rI7eOQI96WamXgXFI.ttf","600italic":"http://fonts.gstatic.com/s/ebgaramond/v15/SlGFmQSNjdsmc35JDF1K5GRwUjcdlttVFm-rI7diR496WamXgXFI.ttf","700italic":"http://fonts.gstatic.com/s/ebgaramond/v15/SlGFmQSNjdsmc35JDF1K5GRwUjcdlttVFm-rI7dbR496WamXgXFI.ttf","800italic":"http://fonts.gstatic.com/s/ebgaramond/v15/SlGFmQSNjdsmc35JDF1K5GRwUjcdlttVFm-rI7c8R496WamXgXFI.ttf"},"Kanit":{"100":"http://fonts.gstatic.com/s/kanit/v7/nKKX-Go6G5tXcr72GwWKcaxALFs.ttf","200":"http://fonts.gstatic.com/s/kanit/v7/nKKU-Go6G5tXcr5aOiWgX6BJNUJy.ttf","300":"http://fonts.gstatic.com/s/kanit/v7/nKKU-Go6G5tXcr4-OSWgX6BJNUJy.ttf","500":"http://fonts.gstatic.com/s/kanit/v7/nKKU-Go6G5tXcr5mOCWgX6BJNUJy.ttf","600":"http://fonts.gstatic.com/s/kanit/v7/nKKU-Go6G5tXcr5KPyWgX6BJNUJy.ttf","700":"http://fonts.gstatic.com/s/kanit/v7/nKKU-Go6G5tXcr4uPiWgX6BJNUJy.ttf","800":"http://fonts.gstatic.com/s/kanit/v7/nKKU-Go6G5tXcr4yPSWgX6BJNUJy.ttf","900":"http://fonts.gstatic.com/s/kanit/v7/nKKU-Go6G5tXcr4WPCWgX6BJNUJy.ttf","100italic":"http://fonts.gstatic.com/s/kanit/v7/nKKV-Go6G5tXcraQI2GAdY5FPFtrGw.ttf","200italic":"http://fonts.gstatic.com/s/kanit/v7/nKKS-Go6G5tXcraQI82hVaRrMFJyAu4.ttf","300italic":"http://fonts.gstatic.com/s/kanit/v7/nKKS-Go6G5tXcraQI6miVaRrMFJyAu4.ttf","regular":"http://fonts.gstatic.com/s/kanit/v7/nKKZ-Go6G5tXcoaSEQGodLxA.ttf","italic":"http://fonts.gstatic.com/s/kanit/v7/nKKX-Go6G5tXcraQGwWKcaxALFs.ttf","500italic":"http://fonts.gstatic.com/s/kanit/v7/nKKS-Go6G5tXcraQI_GjVaRrMFJyAu4.ttf","600italic":"http://fonts.gstatic.com/s/kanit/v7/nKKS-Go6G5tXcraQI92kVaRrMFJyAu4.ttf","700italic":"http://fonts.gstatic.com/s/kanit/v7/nKKS-Go6G5tXcraQI7mlVaRrMFJyAu4.ttf","800italic":"http://fonts.gstatic.com/s/kanit/v7/nKKS-Go6G5tXcraQI6WmVaRrMFJyAu4.ttf","900italic":"http://fonts.gstatic.com/s/kanit/v7/nKKS-Go6G5tXcraQI4GnVaRrMFJyAu4.ttf"},"DM Sans":{"500":"http://fonts.gstatic.com/s/dmsans/v6/rP2Cp2ywxg089UriAWCrOB-sClQX6Cg.ttf","700":"http://fonts.gstatic.com/s/dmsans/v6/rP2Cp2ywxg089UriASitOB-sClQX6Cg.ttf","regular":"http://fonts.gstatic.com/s/dmsans/v6/rP2Hp2ywxg089UriOZSCHBeHFl0.ttf","italic":"http://fonts.gstatic.com/s/dmsans/v6/rP2Fp2ywxg089UriCZaIGDWCBl0O8Q.ttf","500italic":"http://fonts.gstatic.com/s/dmsans/v6/rP2Ap2ywxg089UriCZaw7BymDnYS-Cjk6Q.ttf","700italic":"http://fonts.gstatic.com/s/dmsans/v6/rP2Ap2ywxg089UriCZawpBqmDnYS-Cjk6Q.ttf"},"Zilla Slab":{"300":"http://fonts.gstatic.com/s/zillaslab/v6/dFa5ZfeM_74wlPZtksIFYpEY2HSjWlhzbaw.ttf","500":"http://fonts.gstatic.com/s/zillaslab/v6/dFa5ZfeM_74wlPZtksIFYskZ2HSjWlhzbaw.ttf","600":"http://fonts.gstatic.com/s/zillaslab/v6/dFa5ZfeM_74wlPZtksIFYuUe2HSjWlhzbaw.ttf","700":"http://fonts.gstatic.com/s/zillaslab/v6/dFa5ZfeM_74wlPZtksIFYoEf2HSjWlhzbaw.ttf","300italic":"http://fonts.gstatic.com/s/zillaslab/v6/dFanZfeM_74wlPZtksIFaj8CVHapXnp2fazkfg.ttf","regular":"http://fonts.gstatic.com/s/zillaslab/v6/dFa6ZfeM_74wlPZtksIFWj0w_HyIRlE.ttf","italic":"http://fonts.gstatic.com/s/zillaslab/v6/dFa4ZfeM_74wlPZtksIFaj86-F6NVlFqdA.ttf","500italic":"http://fonts.gstatic.com/s/zillaslab/v6/dFanZfeM_74wlPZtksIFaj8CDHepXnp2fazkfg.ttf","600italic":"http://fonts.gstatic.com/s/zillaslab/v6/dFanZfeM_74wlPZtksIFaj8CIHCpXnp2fazkfg.ttf","700italic":"http://fonts.gstatic.com/s/zillaslab/v6/dFanZfeM_74wlPZtksIFaj8CRHGpXnp2fazkfg.ttf"},"Exo 2":{"100":"http://fonts.gstatic.com/s/exo2/v10/7cH1v4okm5zmbvwkAx_sfcEuiD8jvvOcPtq-rpvLpQ.ttf","200":"http://fonts.gstatic.com/s/exo2/v10/7cH1v4okm5zmbvwkAx_sfcEuiD8jPvKcPtq-rpvLpQ.ttf","300":"http://fonts.gstatic.com/s/exo2/v10/7cH1v4okm5zmbvwkAx_sfcEuiD8j4PKcPtq-rpvLpQ.ttf","500":"http://fonts.gstatic.com/s/exo2/v10/7cH1v4okm5zmbvwkAx_sfcEuiD8jjPKcPtq-rpvLpQ.ttf","600":"http://fonts.gstatic.com/s/exo2/v10/7cH1v4okm5zmbvwkAx_sfcEuiD8jYPWcPtq-rpvLpQ.ttf","700":"http://fonts.gstatic.com/s/exo2/v10/7cH1v4okm5zmbvwkAx_sfcEuiD8jWfWcPtq-rpvLpQ.ttf","800":"http://fonts.gstatic.com/s/exo2/v10/7cH1v4okm5zmbvwkAx_sfcEuiD8jPvWcPtq-rpvLpQ.ttf","900":"http://fonts.gstatic.com/s/exo2/v10/7cH1v4okm5zmbvwkAx_sfcEuiD8jF_WcPtq-rpvLpQ.ttf","regular":"http://fonts.gstatic.com/s/exo2/v10/7cH1v4okm5zmbvwkAx_sfcEuiD8jvvKcPtq-rpvLpQ.ttf","100italic":"http://fonts.gstatic.com/s/exo2/v10/7cH3v4okm5zmbtYtMeA0FKq0Jjg2drF0fNC6jJ7bpQBL.ttf","200italic":"http://fonts.gstatic.com/s/exo2/v10/7cH3v4okm5zmbtYtMeA0FKq0Jjg2drH0fdC6jJ7bpQBL.ttf","300italic":"http://fonts.gstatic.com/s/exo2/v10/7cH3v4okm5zmbtYtMeA0FKq0Jjg2drEqfdC6jJ7bpQBL.ttf","italic":"http://fonts.gstatic.com/s/exo2/v10/7cH3v4okm5zmbtYtMeA0FKq0Jjg2drF0fdC6jJ7bpQBL.ttf","500italic":"http://fonts.gstatic.com/s/exo2/v10/7cH3v4okm5zmbtYtMeA0FKq0Jjg2drFGfdC6jJ7bpQBL.ttf","600italic":"http://fonts.gstatic.com/s/exo2/v10/7cH3v4okm5zmbtYtMeA0FKq0Jjg2drGqetC6jJ7bpQBL.ttf","700italic":"http://fonts.gstatic.com/s/exo2/v10/7cH3v4okm5zmbtYtMeA0FKq0Jjg2drGTetC6jJ7bpQBL.ttf","800italic":"http://fonts.gstatic.com/s/exo2/v10/7cH3v4okm5zmbtYtMeA0FKq0Jjg2drH0etC6jJ7bpQBL.ttf","900italic":"http://fonts.gstatic.com/s/exo2/v10/7cH3v4okm5zmbtYtMeA0FKq0Jjg2drHdetC6jJ7bpQBL.ttf"},"Barlow Condensed":{"100":"http://fonts.gstatic.com/s/barlowcondensed/v5/HTxxL3I-JCGChYJ8VI-L6OO_au7B43LT31vytKgbaw.ttf","200":"http://fonts.gstatic.com/s/barlowcondensed/v5/HTxwL3I-JCGChYJ8VI-L6OO_au7B497y_3HcuKECcrs.ttf","300":"http://fonts.gstatic.com/s/barlowcondensed/v5/HTxwL3I-JCGChYJ8VI-L6OO_au7B47rx_3HcuKECcrs.ttf","500":"http://fonts.gstatic.com/s/barlowcondensed/v5/HTxwL3I-JCGChYJ8VI-L6OO_au7B4-Lw_3HcuKECcrs.ttf","600":"http://fonts.gstatic.com/s/barlowcondensed/v5/HTxwL3I-JCGChYJ8VI-L6OO_au7B4873_3HcuKECcrs.ttf","700":"http://fonts.gstatic.com/s/barlowcondensed/v5/HTxwL3I-JCGChYJ8VI-L6OO_au7B46r2_3HcuKECcrs.ttf","800":"http://fonts.gstatic.com/s/barlowcondensed/v5/HTxwL3I-JCGChYJ8VI-L6OO_au7B47b1_3HcuKECcrs.ttf","900":"http://fonts.gstatic.com/s/barlowcondensed/v5/HTxwL3I-JCGChYJ8VI-L6OO_au7B45L0_3HcuKECcrs.ttf","100italic":"http://fonts.gstatic.com/s/barlowcondensed/v5/HTxzL3I-JCGChYJ8VI-L6OO_au7B6xTru1H2lq0La6JN.ttf","200italic":"http://fonts.gstatic.com/s/barlowcondensed/v5/HTxyL3I-JCGChYJ8VI-L6OO_au7B6xTrF3DWvIMHYrtUxg.ttf","300italic":"http://fonts.gstatic.com/s/barlowcondensed/v5/HTxyL3I-JCGChYJ8VI-L6OO_au7B6xTrc3PWvIMHYrtUxg.ttf","regular":"http://fonts.gstatic.com/s/barlowcondensed/v5/HTx3L3I-JCGChYJ8VI-L6OO_au7B2xbZ23n3pKg.ttf","italic":"http://fonts.gstatic.com/s/barlowcondensed/v5/HTxxL3I-JCGChYJ8VI-L6OO_au7B6xTT31vytKgbaw.ttf","500italic":"http://fonts.gstatic.com/s/barlowcondensed/v5/HTxyL3I-JCGChYJ8VI-L6OO_au7B6xTrK3LWvIMHYrtUxg.ttf","600italic":"http://fonts.gstatic.com/s/barlowcondensed/v5/HTxyL3I-JCGChYJ8VI-L6OO_au7B6xTrB3XWvIMHYrtUxg.ttf","700italic":"http://fonts.gstatic.com/s/barlowcondensed/v5/HTxyL3I-JCGChYJ8VI-L6OO_au7B6xTrY3TWvIMHYrtUxg.ttf","800italic":"http://fonts.gstatic.com/s/barlowcondensed/v5/HTxyL3I-JCGChYJ8VI-L6OO_au7B6xTrf3fWvIMHYrtUxg.ttf","900italic":"http://fonts.gstatic.com/s/barlowcondensed/v5/HTxyL3I-JCGChYJ8VI-L6OO_au7B6xTrW3bWvIMHYrtUxg.ttf"},"Comfortaa":{"300":"http://fonts.gstatic.com/s/comfortaa/v30/1Pt_g8LJRfWJmhDAuUsSQamb1W0lwk4S4TbMPrQVIT9c2c8.ttf","500":"http://fonts.gstatic.com/s/comfortaa/v30/1Pt_g8LJRfWJmhDAuUsSQamb1W0lwk4S4VrMPrQVIT9c2c8.ttf","600":"http://fonts.gstatic.com/s/comfortaa/v30/1Pt_g8LJRfWJmhDAuUsSQamb1W0lwk4S4bbLPrQVIT9c2c8.ttf","700":"http://fonts.gstatic.com/s/comfortaa/v30/1Pt_g8LJRfWJmhDAuUsSQamb1W0lwk4S4Y_LPrQVIT9c2c8.ttf","regular":"http://fonts.gstatic.com/s/comfortaa/v30/1Pt_g8LJRfWJmhDAuUsSQamb1W0lwk4S4WjMPrQVIT9c2c8.ttf"},"Indie Flower":{"regular":"http://fonts.gstatic.com/s/indieflower/v12/m8JVjfNVeKWVnh3QMuKkFcZlbkGG1dKEDw.ttf"},"Pacifico":{"regular":"http://fonts.gstatic.com/s/pacifico/v17/FwZY7-Qmy14u9lezJ96A4sijpFu_.ttf"},"Shadows Into Light":{"regular":"http://fonts.gstatic.com/s/shadowsintolight/v10/UqyNK9UOIntux_czAvDQx_ZcHqZXBNQDcsr4xzSMYA.ttf"},"Merriweather Sans":{"300":"http://fonts.gstatic.com/s/merriweathersans/v14/2-cO9IRs1JiJN1FRAMjTN5zd9vgsFF_5asQTb6hZ2JKZ_O4ljuEG7xFHnQ.ttf","500":"http://fonts.gstatic.com/s/merriweathersans/v14/2-cO9IRs1JiJN1FRAMjTN5zd9vgsFF_5asQTb6hZ2JKZkO4ljuEG7xFHnQ.ttf","600":"http://fonts.gstatic.com/s/merriweathersans/v14/2-cO9IRs1JiJN1FRAMjTN5zd9vgsFF_5asQTb6hZ2JKZfOkljuEG7xFHnQ.ttf","700":"http://fonts.gstatic.com/s/merriweathersans/v14/2-cO9IRs1JiJN1FRAMjTN5zd9vgsFF_5asQTb6hZ2JKZRekljuEG7xFHnQ.ttf","800":"http://fonts.gstatic.com/s/merriweathersans/v14/2-cO9IRs1JiJN1FRAMjTN5zd9vgsFF_5asQTb6hZ2JKZIukljuEG7xFHnQ.ttf","regular":"http://fonts.gstatic.com/s/merriweathersans/v14/2-cO9IRs1JiJN1FRAMjTN5zd9vgsFF_5asQTb6hZ2JKZou4ljuEG7xFHnQ.ttf","300italic":"http://fonts.gstatic.com/s/merriweathersans/v14/2-cM9IRs1JiJN1FRAMjTN5zd9vgsFHXwWDvLBsPDdpWMaq2TzesCzRRXnaur.ttf","italic":"http://fonts.gstatic.com/s/merriweathersans/v14/2-cM9IRs1JiJN1FRAMjTN5zd9vgsFHXwWDvLBsPDdpWMaq3NzesCzRRXnaur.ttf","500italic":"http://fonts.gstatic.com/s/merriweathersans/v14/2-cM9IRs1JiJN1FRAMjTN5zd9vgsFHXwWDvLBsPDdpWMaq3_zesCzRRXnaur.ttf","600italic":"http://fonts.gstatic.com/s/merriweathersans/v14/2-cM9IRs1JiJN1FRAMjTN5zd9vgsFHXwWDvLBsPDdpWMaq0TyusCzRRXnaur.ttf","700italic":"http://fonts.gstatic.com/s/merriweathersans/v14/2-cM9IRs1JiJN1FRAMjTN5zd9vgsFHXwWDvLBsPDdpWMaq0qyusCzRRXnaur.ttf","800italic":"http://fonts.gstatic.com/s/merriweathersans/v14/2-cM9IRs1JiJN1FRAMjTN5zd9vgsFHXwWDvLBsPDdpWMaq1NyusCzRRXnaur.ttf"},"Asap":{"500":"http://fonts.gstatic.com/s/asap/v15/KFO9CniXp96a4Tc2EZzSuDAoKsEI1qhOUX-8AEEe.ttf","600":"http://fonts.gstatic.com/s/asap/v15/KFO9CniXp96a4Tc2EZzSuDAoKsHk0ahOUX-8AEEe.ttf","700":"http://fonts.gstatic.com/s/asap/v15/KFO9CniXp96a4Tc2EZzSuDAoKsHd0ahOUX-8AEEe.ttf","regular":"http://fonts.gstatic.com/s/asap/v15/KFO9CniXp96a4Tc2EZzSuDAoKsE61qhOUX-8AEEe.ttf","italic":"http://fonts.gstatic.com/s/asap/v15/KFO7CniXp96ayz4E7kS706qGLdTylUANW3ueBVEeezU.ttf","500italic":"http://fonts.gstatic.com/s/asap/v15/KFO7CniXp96ayz4E7kS706qGLdTylXINW3ueBVEeezU.ttf","600italic":"http://fonts.gstatic.com/s/asap/v15/KFO7CniXp96ayz4E7kS706qGLdTylZ4KW3ueBVEeezU.ttf","700italic":"http://fonts.gstatic.com/s/asap/v15/KFO7CniXp96ayz4E7kS706qGLdTylacKW3ueBVEeezU.ttf"},"Overpass":{"100":"http://fonts.gstatic.com/s/overpass/v5/qFdB35WCmI96Ajtm81nGU97gxhcJk1s.ttf","200":"http://fonts.gstatic.com/s/overpass/v5/qFdA35WCmI96Ajtm81lqcv7K6BsAikI7.ttf","300":"http://fonts.gstatic.com/s/overpass/v5/qFdA35WCmI96Ajtm81kOcf7K6BsAikI7.ttf","600":"http://fonts.gstatic.com/s/overpass/v5/qFdA35WCmI96Ajtm81l6d_7K6BsAikI7.ttf","700":"http://fonts.gstatic.com/s/overpass/v5/qFdA35WCmI96Ajtm81kedv7K6BsAikI7.ttf","800":"http://fonts.gstatic.com/s/overpass/v5/qFdA35WCmI96Ajtm81kCdf7K6BsAikI7.ttf","900":"http://fonts.gstatic.com/s/overpass/v5/qFdA35WCmI96Ajtm81kmdP7K6BsAikI7.ttf","100italic":"http://fonts.gstatic.com/s/overpass/v5/qFdD35WCmI96Ajtm81Gga7rqwjUMg1siNQ.ttf","200italic":"http://fonts.gstatic.com/s/overpass/v5/qFdC35WCmI96Ajtm81GgaxbL4h8ij1I7LLE.ttf","300italic":"http://fonts.gstatic.com/s/overpass/v5/qFdC35WCmI96Ajtm81Gga3LI4h8ij1I7LLE.ttf","regular":"http://fonts.gstatic.com/s/overpass/v5/qFdH35WCmI96Ajtm82GiWdrCwwcJ.ttf","italic":"http://fonts.gstatic.com/s/overpass/v5/qFdB35WCmI96Ajtm81GgU97gxhcJk1s.ttf","600italic":"http://fonts.gstatic.com/s/overpass/v5/qFdC35WCmI96Ajtm81GgawbO4h8ij1I7LLE.ttf","700italic":"http://fonts.gstatic.com/s/overpass/v5/qFdC35WCmI96Ajtm81Gga2LP4h8ij1I7LLE.ttf","800italic":"http://fonts.gstatic.com/s/overpass/v5/qFdC35WCmI96Ajtm81Gga37M4h8ij1I7LLE.ttf","900italic":"http://fonts.gstatic.com/s/overpass/v5/qFdC35WCmI96Ajtm81Gga1rN4h8ij1I7LLE.ttf"},"Noto Serif JP":{"200":"http://fonts.gstatic.com/s/notoserifjp/v8/xn77YHs72GKoTvER4Gn3b5eMZBaPRkgfU8fEwb0.otf","300":"http://fonts.gstatic.com/s/notoserifjp/v8/xn77YHs72GKoTvER4Gn3b5eMZHKMRkgfU8fEwb0.otf","500":"http://fonts.gstatic.com/s/notoserifjp/v8/xn77YHs72GKoTvER4Gn3b5eMZCqNRkgfU8fEwb0.otf","600":"http://fonts.gstatic.com/s/notoserifjp/v8/xn77YHs72GKoTvER4Gn3b5eMZAaKRkgfU8fEwb0.otf","700":"http://fonts.gstatic.com/s/notoserifjp/v8/xn77YHs72GKoTvER4Gn3b5eMZGKLRkgfU8fEwb0.otf","900":"http://fonts.gstatic.com/s/notoserifjp/v8/xn77YHs72GKoTvER4Gn3b5eMZFqJRkgfU8fEwb0.otf","regular":"http://fonts.gstatic.com/s/notoserifjp/v8/xn7mYHs72GKoTvER4Gn3b5eMXNikYkY0T84.otf"},"Questrial":{"regular":"http://fonts.gstatic.com/s/questrial/v13/QdVUSTchPBm7nuUeVf7EuStkm20oJA.ttf"},"Abril Fatface":{"regular":"http://fonts.gstatic.com/s/abrilfatface/v12/zOL64pLDlL1D99S8g8PtiKchm-BsjOLhZBY.ttf"},"Yellowtail":{"regular":"http://fonts.gstatic.com/s/yellowtail/v11/OZpGg_pnoDtINPfRIlLotlzNwED-b4g.ttf"},"Assistant":{"200":"http://fonts.gstatic.com/s/assistant/v7/2sDPZGJYnIjSi6H75xkZZE1I0yCmYzzQtmZnEGGf3qGuvM4.ttf","300":"http://fonts.gstatic.com/s/assistant/v7/2sDPZGJYnIjSi6H75xkZZE1I0yCmYzzQtrhnEGGf3qGuvM4.ttf","500":"http://fonts.gstatic.com/s/assistant/v7/2sDPZGJYnIjSi6H75xkZZE1I0yCmYzzQttRnEGGf3qGuvM4.ttf","600":"http://fonts.gstatic.com/s/assistant/v7/2sDPZGJYnIjSi6H75xkZZE1I0yCmYzzQtjhgEGGf3qGuvM4.ttf","700":"http://fonts.gstatic.com/s/assistant/v7/2sDPZGJYnIjSi6H75xkZZE1I0yCmYzzQtgFgEGGf3qGuvM4.ttf","800":"http://fonts.gstatic.com/s/assistant/v7/2sDPZGJYnIjSi6H75xkZZE1I0yCmYzzQtmZgEGGf3qGuvM4.ttf","regular":"http://fonts.gstatic.com/s/assistant/v7/2sDPZGJYnIjSi6H75xkZZE1I0yCmYzzQtuZnEGGf3qGuvM4.ttf"},"Rajdhani":{"300":"http://fonts.gstatic.com/s/rajdhani/v10/LDI2apCSOBg7S-QT7pasEcOsc-bGkqIw.ttf","500":"http://fonts.gstatic.com/s/rajdhani/v10/LDI2apCSOBg7S-QT7pb0EMOsc-bGkqIw.ttf","600":"http://fonts.gstatic.com/s/rajdhani/v10/LDI2apCSOBg7S-QT7pbYF8Osc-bGkqIw.ttf","700":"http://fonts.gstatic.com/s/rajdhani/v10/LDI2apCSOBg7S-QT7pa8FsOsc-bGkqIw.ttf","regular":"http://fonts.gstatic.com/s/rajdhani/v10/LDIxapCSOBg7S-QT7q4AOeekWPrP.ttf"},"Cormorant Garamond":{"300":"http://fonts.gstatic.com/s/cormorantgaramond/v10/co3YmX5slCNuHLi8bLeY9MK7whWMhyjQAllvuQWJ5heb_w.ttf","500":"http://fonts.gstatic.com/s/cormorantgaramond/v10/co3YmX5slCNuHLi8bLeY9MK7whWMhyjQWlhvuQWJ5heb_w.ttf","600":"http://fonts.gstatic.com/s/cormorantgaramond/v10/co3YmX5slCNuHLi8bLeY9MK7whWMhyjQdl9vuQWJ5heb_w.ttf","700":"http://fonts.gstatic.com/s/cormorantgaramond/v10/co3YmX5slCNuHLi8bLeY9MK7whWMhyjQEl5vuQWJ5heb_w.ttf","300italic":"http://fonts.gstatic.com/s/cormorantgaramond/v10/co3WmX5slCNuHLi8bLeY9MK7whWMhyjYrEPjuw-NxBKL_y94.ttf","regular":"http://fonts.gstatic.com/s/cormorantgaramond/v10/co3bmX5slCNuHLi8bLeY9MK7whWMhyjornFLsS6V7w.ttf","italic":"http://fonts.gstatic.com/s/cormorantgaramond/v10/co3ZmX5slCNuHLi8bLeY9MK7whWMhyjYrHtPkyuF7w6C.ttf","500italic":"http://fonts.gstatic.com/s/cormorantgaramond/v10/co3WmX5slCNuHLi8bLeY9MK7whWMhyjYrEO7ug-NxBKL_y94.ttf","600italic":"http://fonts.gstatic.com/s/cormorantgaramond/v10/co3WmX5slCNuHLi8bLeY9MK7whWMhyjYrEOXvQ-NxBKL_y94.ttf","700italic":"http://fonts.gstatic.com/s/cormorantgaramond/v10/co3WmX5slCNuHLi8bLeY9MK7whWMhyjYrEPzvA-NxBKL_y94.ttf"},"Maven Pro":{"500":"http://fonts.gstatic.com/s/mavenpro/v22/7Auup_AqnyWWAxW2Wk3swUz56MS91Eww8Rf25nCpozp5GvU.ttf","600":"http://fonts.gstatic.com/s/mavenpro/v22/7Auup_AqnyWWAxW2Wk3swUz56MS91Eww8fvx5nCpozp5GvU.ttf","700":"http://fonts.gstatic.com/s/mavenpro/v22/7Auup_AqnyWWAxW2Wk3swUz56MS91Eww8cLx5nCpozp5GvU.ttf","800":"http://fonts.gstatic.com/s/mavenpro/v22/7Auup_AqnyWWAxW2Wk3swUz56MS91Eww8aXx5nCpozp5GvU.ttf","900":"http://fonts.gstatic.com/s/mavenpro/v22/7Auup_AqnyWWAxW2Wk3swUz56MS91Eww8Yzx5nCpozp5GvU.ttf","regular":"http://fonts.gstatic.com/s/mavenpro/v22/7Auup_AqnyWWAxW2Wk3swUz56MS91Eww8SX25nCpozp5GvU.ttf"},"Slabo 27px":{"regular":"http://fonts.gstatic.com/s/slabo27px/v7/mFT0WbgBwKPR_Z4hGN2qsxgJ1EJ7i90.ttf"},"Hind Madurai":{"300":"http://fonts.gstatic.com/s/hindmadurai/v6/f0Xu0e2p98ZvDXdZQIOcpqjfXaUnecsoMJ0b_g.ttf","500":"http://fonts.gstatic.com/s/hindmadurai/v6/f0Xu0e2p98ZvDXdZQIOcpqjfBaQnecsoMJ0b_g.ttf","600":"http://fonts.gstatic.com/s/hindmadurai/v6/f0Xu0e2p98ZvDXdZQIOcpqjfKaMnecsoMJ0b_g.ttf","700":"http://fonts.gstatic.com/s/hindmadurai/v6/f0Xu0e2p98ZvDXdZQIOcpqjfTaInecsoMJ0b_g.ttf","regular":"http://fonts.gstatic.com/s/hindmadurai/v6/f0Xx0e2p98ZvDXdZQIOcpqjn8Y0DceA0OQ.ttf"},"Krona One":{"regular":"http://fonts.gstatic.com/s/kronaone/v9/jAnEgHdjHcjgfIb1ZcUCMY-h3cWkWg.ttf"},"Archivo Narrow":{"500":"http://fonts.gstatic.com/s/archivonarrow/v12/tss3ApVBdCYD5Q7hcxTE1ArZ0b4Dqlla8dMgPgBu.ttf","600":"http://fonts.gstatic.com/s/archivonarrow/v12/tss3ApVBdCYD5Q7hcxTE1ArZ0b4vrVla8dMgPgBu.ttf","700":"http://fonts.gstatic.com/s/archivonarrow/v12/tss3ApVBdCYD5Q7hcxTE1ArZ0b5LrFla8dMgPgBu.ttf","regular":"http://fonts.gstatic.com/s/archivonarrow/v12/tss0ApVBdCYD5Q7hcxTE1ArZ0Yb3g31S2s8p.ttf","italic":"http://fonts.gstatic.com/s/archivonarrow/v12/tss2ApVBdCYD5Q7hcxTE1ArZ0bb1iXlw398pJxk.ttf","500italic":"http://fonts.gstatic.com/s/archivonarrow/v12/tssxApVBdCYD5Q7hcxTE1ArZ0bb1sY1Z-9cCOxBu_BM.ttf","600italic":"http://fonts.gstatic.com/s/archivonarrow/v12/tssxApVBdCYD5Q7hcxTE1ArZ0bb1saFe-9cCOxBu_BM.ttf","700italic":"http://fonts.gstatic.com/s/archivonarrow/v12/tssxApVBdCYD5Q7hcxTE1ArZ0bb1scVf-9cCOxBu_BM.ttf"},"Martel":{"200":"http://fonts.gstatic.com/s/martel/v5/PN_yRfK9oXHga0XVqekahRbX9vnDzw.ttf","300":"http://fonts.gstatic.com/s/martel/v5/PN_yRfK9oXHga0XVzeoahRbX9vnDzw.ttf","600":"http://fonts.gstatic.com/s/martel/v5/PN_yRfK9oXHga0XVuewahRbX9vnDzw.ttf","700":"http://fonts.gstatic.com/s/martel/v5/PN_yRfK9oXHga0XV3e0ahRbX9vnDzw.ttf","800":"http://fonts.gstatic.com/s/martel/v5/PN_yRfK9oXHga0XVwe4ahRbX9vnDzw.ttf","900":"http://fonts.gstatic.com/s/martel/v5/PN_yRfK9oXHga0XV5e8ahRbX9vnDzw.ttf","regular":"http://fonts.gstatic.com/s/martel/v5/PN_xRfK9oXHga0XtYcI-jT3L_w.ttf"},"Fira Sans Condensed":{"100":"http://fonts.gstatic.com/s/firasanscondensed/v5/wEOjEADFm8hSaQTFG18FErVhsC9x-tarWZXtqOlQfx9CjA.ttf","200":"http://fonts.gstatic.com/s/firasanscondensed/v5/wEOsEADFm8hSaQTFG18FErVhsC9x-tarWTnMiMN-cxZblY4.ttf","300":"http://fonts.gstatic.com/s/firasanscondensed/v5/wEOsEADFm8hSaQTFG18FErVhsC9x-tarWV3PiMN-cxZblY4.ttf","500":"http://fonts.gstatic.com/s/firasanscondensed/v5/wEOsEADFm8hSaQTFG18FErVhsC9x-tarWQXOiMN-cxZblY4.ttf","600":"http://fonts.gstatic.com/s/firasanscondensed/v5/wEOsEADFm8hSaQTFG18FErVhsC9x-tarWSnJiMN-cxZblY4.ttf","700":"http://fonts.gstatic.com/s/firasanscondensed/v5/wEOsEADFm8hSaQTFG18FErVhsC9x-tarWU3IiMN-cxZblY4.ttf","800":"http://fonts.gstatic.com/s/firasanscondensed/v5/wEOsEADFm8hSaQTFG18FErVhsC9x-tarWVHLiMN-cxZblY4.ttf","900":"http://fonts.gstatic.com/s/firasanscondensed/v5/wEOsEADFm8hSaQTFG18FErVhsC9x-tarWXXKiMN-cxZblY4.ttf","100italic":"http://fonts.gstatic.com/s/firasanscondensed/v5/wEOtEADFm8hSaQTFG18FErVhsC9x-tarUfPVzONUXRpSjJcu.ttf","200italic":"http://fonts.gstatic.com/s/firasanscondensed/v5/wEOuEADFm8hSaQTFG18FErVhsC9x-tarUfPVYMJ0dzRehY43EA.ttf","300italic":"http://fonts.gstatic.com/s/firasanscondensed/v5/wEOuEADFm8hSaQTFG18FErVhsC9x-tarUfPVBMF0dzRehY43EA.ttf","regular":"http://fonts.gstatic.com/s/firasanscondensed/v5/wEOhEADFm8hSaQTFG18FErVhsC9x-tarYfHnrMtVbx8.ttf","italic":"http://fonts.gstatic.com/s/firasanscondensed/v5/wEOjEADFm8hSaQTFG18FErVhsC9x-tarUfPtqOlQfx9CjA.ttf","500italic":"http://fonts.gstatic.com/s/firasanscondensed/v5/wEOuEADFm8hSaQTFG18FErVhsC9x-tarUfPVXMB0dzRehY43EA.ttf","600italic":"http://fonts.gstatic.com/s/firasanscondensed/v5/wEOuEADFm8hSaQTFG18FErVhsC9x-tarUfPVcMd0dzRehY43EA.ttf","700italic":"http://fonts.gstatic.com/s/firasanscondensed/v5/wEOuEADFm8hSaQTFG18FErVhsC9x-tarUfPVFMZ0dzRehY43EA.ttf","800italic":"http://fonts.gstatic.com/s/firasanscondensed/v5/wEOuEADFm8hSaQTFG18FErVhsC9x-tarUfPVCMV0dzRehY43EA.ttf","900italic":"http://fonts.gstatic.com/s/firasanscondensed/v5/wEOuEADFm8hSaQTFG18FErVhsC9x-tarUfPVLMR0dzRehY43EA.ttf"},"Caveat":{"500":"http://fonts.gstatic.com/s/caveat/v10/WnznHAc5bAfYB2QRah7pcpNvOx-pjcB9SIKjYBxPigs.ttf","600":"http://fonts.gstatic.com/s/caveat/v10/WnznHAc5bAfYB2QRah7pcpNvOx-pjSx6SIKjYBxPigs.ttf","700":"http://fonts.gstatic.com/s/caveat/v10/WnznHAc5bAfYB2QRah7pcpNvOx-pjRV6SIKjYBxPigs.ttf","regular":"http://fonts.gstatic.com/s/caveat/v10/WnznHAc5bAfYB2QRah7pcpNvOx-pjfJ9SIKjYBxPigs.ttf"},"Exo":{"100":"http://fonts.gstatic.com/s/exo/v12/4UaZrEtFpBI4f1ZSIK9d4LjJ4lM2CwNsOl4p5Is.ttf","200":"http://fonts.gstatic.com/s/exo/v12/4UaZrEtFpBI4f1ZSIK9d4LjJ4tM3CwNsOl4p5Is.ttf","300":"http://fonts.gstatic.com/s/exo/v12/4UaZrEtFpBI4f1ZSIK9d4LjJ4g03CwNsOl4p5Is.ttf","500":"http://fonts.gstatic.com/s/exo/v12/4UaZrEtFpBI4f1ZSIK9d4LjJ4mE3CwNsOl4p5Is.ttf","600":"http://fonts.gstatic.com/s/exo/v12/4UaZrEtFpBI4f1ZSIK9d4LjJ4o0wCwNsOl4p5Is.ttf","700":"http://fonts.gstatic.com/s/exo/v12/4UaZrEtFpBI4f1ZSIK9d4LjJ4rQwCwNsOl4p5Is.ttf","800":"http://fonts.gstatic.com/s/exo/v12/4UaZrEtFpBI4f1ZSIK9d4LjJ4tMwCwNsOl4p5Is.ttf","900":"http://fonts.gstatic.com/s/exo/v12/4UaZrEtFpBI4f1ZSIK9d4LjJ4vowCwNsOl4p5Is.ttf","regular":"http://fonts.gstatic.com/s/exo/v12/4UaZrEtFpBI4f1ZSIK9d4LjJ4lM3CwNsOl4p5Is.ttf","100italic":"http://fonts.gstatic.com/s/exo/v12/4UafrEtFpBISdmSt-MY2ehbO95t040FmPnws9Iu-uA.ttf","200italic":"http://fonts.gstatic.com/s/exo/v12/4UafrEtFpBISdmSt-MY2ehbO95t0Y0BmPnws9Iu-uA.ttf","300italic":"http://fonts.gstatic.com/s/exo/v12/4UafrEtFpBISdmSt-MY2ehbO95t0vUBmPnws9Iu-uA.ttf","italic":"http://fonts.gstatic.com/s/exo/v12/4UafrEtFpBISdmSt-MY2ehbO95t040BmPnws9Iu-uA.ttf","500italic":"http://fonts.gstatic.com/s/exo/v12/4UafrEtFpBISdmSt-MY2ehbO95t00UBmPnws9Iu-uA.ttf","600italic":"http://fonts.gstatic.com/s/exo/v12/4UafrEtFpBISdmSt-MY2ehbO95t0PUdmPnws9Iu-uA.ttf","700italic":"http://fonts.gstatic.com/s/exo/v12/4UafrEtFpBISdmSt-MY2ehbO95t0BEdmPnws9Iu-uA.ttf","800italic":"http://fonts.gstatic.com/s/exo/v12/4UafrEtFpBISdmSt-MY2ehbO95t0Y0dmPnws9Iu-uA.ttf","900italic":"http://fonts.gstatic.com/s/exo/v12/4UafrEtFpBISdmSt-MY2ehbO95t0SkdmPnws9Iu-uA.ttf"},"Domine":{"500":"http://fonts.gstatic.com/s/domine/v11/L0xhDFMnlVwD4h3Lt9JWnbX3jG-2X0DAI10VErGuW8Q.ttf","600":"http://fonts.gstatic.com/s/domine/v11/L0xhDFMnlVwD4h3Lt9JWnbX3jG-2X6zHI10VErGuW8Q.ttf","700":"http://fonts.gstatic.com/s/domine/v11/L0xhDFMnlVwD4h3Lt9JWnbX3jG-2X5XHI10VErGuW8Q.ttf","regular":"http://fonts.gstatic.com/s/domine/v11/L0xhDFMnlVwD4h3Lt9JWnbX3jG-2X3LAI10VErGuW8Q.ttf"},"IBM Plex Serif":{"100":"http://fonts.gstatic.com/s/ibmplexserif/v9/jizBREVNn1dOx-zrZ2X3pZvkTi182zIZj1bIkNo.ttf","200":"http://fonts.gstatic.com/s/ibmplexserif/v9/jizAREVNn1dOx-zrZ2X3pZvkTi3Q-hIzoVrBicOg.ttf","300":"http://fonts.gstatic.com/s/ibmplexserif/v9/jizAREVNn1dOx-zrZ2X3pZvkTi20-RIzoVrBicOg.ttf","500":"http://fonts.gstatic.com/s/ibmplexserif/v9/jizAREVNn1dOx-zrZ2X3pZvkTi3s-BIzoVrBicOg.ttf","600":"http://fonts.gstatic.com/s/ibmplexserif/v9/jizAREVNn1dOx-zrZ2X3pZvkTi3A_xIzoVrBicOg.ttf","700":"http://fonts.gstatic.com/s/ibmplexserif/v9/jizAREVNn1dOx-zrZ2X3pZvkTi2k_hIzoVrBicOg.ttf","100italic":"http://fonts.gstatic.com/s/ibmplexserif/v9/jizHREVNn1dOx-zrZ2X3pZvkTiUa41YTi3TNgNq55w.ttf","200italic":"http://fonts.gstatic.com/s/ibmplexserif/v9/jizGREVNn1dOx-zrZ2X3pZvkTiUa4_oyq17jjNOg_oc.ttf","300italic":"http://fonts.gstatic.com/s/ibmplexserif/v9/jizGREVNn1dOx-zrZ2X3pZvkTiUa454xq17jjNOg_oc.ttf","regular":"http://fonts.gstatic.com/s/ibmplexserif/v9/jizDREVNn1dOx-zrZ2X3pZvkThUY0TY7ikbI.ttf","italic":"http://fonts.gstatic.com/s/ibmplexserif/v9/jizBREVNn1dOx-zrZ2X3pZvkTiUa2zIZj1bIkNo.ttf","500italic":"http://fonts.gstatic.com/s/ibmplexserif/v9/jizGREVNn1dOx-zrZ2X3pZvkTiUa48Ywq17jjNOg_oc.ttf","600italic":"http://fonts.gstatic.com/s/ibmplexserif/v9/jizGREVNn1dOx-zrZ2X3pZvkTiUa4-o3q17jjNOg_oc.ttf","700italic":"http://fonts.gstatic.com/s/ibmplexserif/v9/jizGREVNn1dOx-zrZ2X3pZvkTiUa4442q17jjNOg_oc.ttf"},"Amatic SC":{"700":"http://fonts.gstatic.com/s/amaticsc/v16/TUZ3zwprpvBS1izr_vOMscG6eb8D3WTy-A.ttf","regular":"http://fonts.gstatic.com/s/amaticsc/v16/TUZyzwprpvBS1izr_vO0De6ecZQf1A.ttf"},"Antic Slab":{"regular":"http://fonts.gstatic.com/s/anticslab/v9/bWt97fPFfRzkCa9Jlp6IWcJWXW5p5Qo.ttf"},"Catamaran":{"100":"http://fonts.gstatic.com/s/catamaran/v8/o-0bIpQoyXQa2RxT7-5B6Ryxs2E_6n1iPHjc1anXuluiLyw.ttf","200":"http://fonts.gstatic.com/s/catamaran/v8/o-0bIpQoyXQa2RxT7-5B6Ryxs2E_6n1iPPjd1anXuluiLyw.ttf","300":"http://fonts.gstatic.com/s/catamaran/v8/o-0bIpQoyXQa2RxT7-5B6Ryxs2E_6n1iPCbd1anXuluiLyw.ttf","500":"http://fonts.gstatic.com/s/catamaran/v8/o-0bIpQoyXQa2RxT7-5B6Ryxs2E_6n1iPErd1anXuluiLyw.ttf","600":"http://fonts.gstatic.com/s/catamaran/v8/o-0bIpQoyXQa2RxT7-5B6Ryxs2E_6n1iPKba1anXuluiLyw.ttf","700":"http://fonts.gstatic.com/s/catamaran/v8/o-0bIpQoyXQa2RxT7-5B6Ryxs2E_6n1iPJ_a1anXuluiLyw.ttf","800":"http://fonts.gstatic.com/s/catamaran/v8/o-0bIpQoyXQa2RxT7-5B6Ryxs2E_6n1iPPja1anXuluiLyw.ttf","900":"http://fonts.gstatic.com/s/catamaran/v8/o-0bIpQoyXQa2RxT7-5B6Ryxs2E_6n1iPNHa1anXuluiLyw.ttf","regular":"http://fonts.gstatic.com/s/catamaran/v8/o-0bIpQoyXQa2RxT7-5B6Ryxs2E_6n1iPHjd1anXuluiLyw.ttf"},"Play":{"700":"http://fonts.gstatic.com/s/play/v12/6ae84K2oVqwItm4TOpc423nTJTM.ttf","regular":"http://fonts.gstatic.com/s/play/v12/6aez4K2oVqwIjtI8Hp8Tx3A.ttf"},"Bree Serif":{"regular":"http://fonts.gstatic.com/s/breeserif/v10/4UaHrEJCrhhnVA3DgluAx63j5pN1MwI.ttf"},"Tajawal":{"200":"http://fonts.gstatic.com/s/tajawal/v4/Iurf6YBj_oCad4k1l_6gLrZjiLlJ-G0.ttf","300":"http://fonts.gstatic.com/s/tajawal/v4/Iurf6YBj_oCad4k1l5qjLrZjiLlJ-G0.ttf","500":"http://fonts.gstatic.com/s/tajawal/v4/Iurf6YBj_oCad4k1l8KiLrZjiLlJ-G0.ttf","700":"http://fonts.gstatic.com/s/tajawal/v4/Iurf6YBj_oCad4k1l4qkLrZjiLlJ-G0.ttf","800":"http://fonts.gstatic.com/s/tajawal/v4/Iurf6YBj_oCad4k1l5anLrZjiLlJ-G0.ttf","900":"http://fonts.gstatic.com/s/tajawal/v4/Iurf6YBj_oCad4k1l7KmLrZjiLlJ-G0.ttf","regular":"http://fonts.gstatic.com/s/tajawal/v4/Iura6YBj_oCad4k1rzaLCr5IlLA.ttf"},"Padauk":{"700":"http://fonts.gstatic.com/s/padauk/v8/RrQSboJg-id7Onb512DE1JJEZ4YwGg.ttf","regular":"http://fonts.gstatic.com/s/padauk/v8/RrQRboJg-id7OnbBa0_g3LlYbg.ttf"},"Acme":{"regular":"http://fonts.gstatic.com/s/acme/v11/RrQfboBx-C5_bx3Lb23lzLk.ttf"},"Nanum Myeongjo":{"700":"http://fonts.gstatic.com/s/nanummyeongjo/v15/9Bty3DZF0dXLMZlywRbVRNhxy2pXV1A0pfCs5Kos.ttf","800":"http://fonts.gstatic.com/s/nanummyeongjo/v15/9Bty3DZF0dXLMZlywRbVRNhxy2pLVFA0pfCs5Kos.ttf","regular":"http://fonts.gstatic.com/s/nanummyeongjo/v15/9Btx3DZF0dXLMZlywRbVRNhxy1LreHQ8juyl.ttf"},"M PLUS Rounded 1c":{"100":"http://fonts.gstatic.com/s/mplusrounded1c/v10/VdGCAYIAV6gnpUpoWwNkYvrugw9RuM3ixLsg6-av1x0.ttf","300":"http://fonts.gstatic.com/s/mplusrounded1c/v10/VdGBAYIAV6gnpUpoWwNkYvrugw9RuM0q5psKxeqmzgRK.ttf","500":"http://fonts.gstatic.com/s/mplusrounded1c/v10/VdGBAYIAV6gnpUpoWwNkYvrugw9RuM1y55sKxeqmzgRK.ttf","700":"http://fonts.gstatic.com/s/mplusrounded1c/v10/VdGBAYIAV6gnpUpoWwNkYvrugw9RuM064ZsKxeqmzgRK.ttf","800":"http://fonts.gstatic.com/s/mplusrounded1c/v10/VdGBAYIAV6gnpUpoWwNkYvrugw9RuM0m4psKxeqmzgRK.ttf","900":"http://fonts.gstatic.com/s/mplusrounded1c/v10/VdGBAYIAV6gnpUpoWwNkYvrugw9RuM0C45sKxeqmzgRK.ttf","regular":"http://fonts.gstatic.com/s/mplusrounded1c/v10/VdGEAYIAV6gnpUpoWwNkYvrugw9RuPWGzr8C7vav.ttf"},"Alfa Slab One":{"regular":"http://fonts.gstatic.com/s/alfaslabone/v10/6NUQ8FmMKwSEKjnm5-4v-4Jh6dVretWvYmE.ttf"},"Righteous":{"regular":"http://fonts.gstatic.com/s/righteous/v9/1cXxaUPXBpj2rGoU7C9mj3uEicG01A.ttf"},"Manrope":{"200":"http://fonts.gstatic.com/s/manrope/v4/xn7_YHE41ni1AdIRqAuZuw1Bx9mbZk59FO_F87jxeN7B.ttf","300":"http://fonts.gstatic.com/s/manrope/v4/xn7_YHE41ni1AdIRqAuZuw1Bx9mbZk6jFO_F87jxeN7B.ttf","500":"http://fonts.gstatic.com/s/manrope/v4/xn7_YHE41ni1AdIRqAuZuw1Bx9mbZk7PFO_F87jxeN7B.ttf","600":"http://fonts.gstatic.com/s/manrope/v4/xn7_YHE41ni1AdIRqAuZuw1Bx9mbZk4jE-_F87jxeN7B.ttf","700":"http://fonts.gstatic.com/s/manrope/v4/xn7_YHE41ni1AdIRqAuZuw1Bx9mbZk4aE-_F87jxeN7B.ttf","800":"http://fonts.gstatic.com/s/manrope/v4/xn7_YHE41ni1AdIRqAuZuw1Bx9mbZk59E-_F87jxeN7B.ttf","regular":"http://fonts.gstatic.com/s/manrope/v4/xn7_YHE41ni1AdIRqAuZuw1Bx9mbZk79FO_F87jxeN7B.ttf"},"Signika":{"300":"http://fonts.gstatic.com/s/signika/v12/vEFO2_JTCgwQ5ejvMV0O96D01E8J0tIJHJbGhs_cfKe1.ttf","500":"http://fonts.gstatic.com/s/signika/v12/vEFO2_JTCgwQ5ejvMV0O96D01E8J0tJlHJbGhs_cfKe1.ttf","600":"http://fonts.gstatic.com/s/signika/v12/vEFO2_JTCgwQ5ejvMV0O96D01E8J0tKJG5bGhs_cfKe1.ttf","700":"http://fonts.gstatic.com/s/signika/v12/vEFO2_JTCgwQ5ejvMV0O96D01E8J0tKwG5bGhs_cfKe1.ttf","regular":"http://fonts.gstatic.com/s/signika/v12/vEFO2_JTCgwQ5ejvMV0O96D01E8J0tJXHJbGhs_cfKe1.ttf"},"Sarabun":{"100":"http://fonts.gstatic.com/s/sarabun/v8/DtVhJx26TKEr37c9YHZJmnYI5gnOpg.ttf","200":"http://fonts.gstatic.com/s/sarabun/v8/DtVmJx26TKEr37c9YNpoulwm6gDXvwE.ttf","300":"http://fonts.gstatic.com/s/sarabun/v8/DtVmJx26TKEr37c9YL5rulwm6gDXvwE.ttf","500":"http://fonts.gstatic.com/s/sarabun/v8/DtVmJx26TKEr37c9YOZqulwm6gDXvwE.ttf","600":"http://fonts.gstatic.com/s/sarabun/v8/DtVmJx26TKEr37c9YMptulwm6gDXvwE.ttf","700":"http://fonts.gstatic.com/s/sarabun/v8/DtVmJx26TKEr37c9YK5sulwm6gDXvwE.ttf","800":"http://fonts.gstatic.com/s/sarabun/v8/DtVmJx26TKEr37c9YLJvulwm6gDXvwE.ttf","100italic":"http://fonts.gstatic.com/s/sarabun/v8/DtVnJx26TKEr37c9aBBx_nwMxAzephhN.ttf","200italic":"http://fonts.gstatic.com/s/sarabun/v8/DtVkJx26TKEr37c9aBBxUl0s7iLSrwFUlw.ttf","300italic":"http://fonts.gstatic.com/s/sarabun/v8/DtVkJx26TKEr37c9aBBxNl4s7iLSrwFUlw.ttf","regular":"http://fonts.gstatic.com/s/sarabun/v8/DtVjJx26TKEr37c9WBJDnlQN9gk.ttf","italic":"http://fonts.gstatic.com/s/sarabun/v8/DtVhJx26TKEr37c9aBBJmnYI5gnOpg.ttf","500italic":"http://fonts.gstatic.com/s/sarabun/v8/DtVkJx26TKEr37c9aBBxbl8s7iLSrwFUlw.ttf","600italic":"http://fonts.gstatic.com/s/sarabun/v8/DtVkJx26TKEr37c9aBBxQlgs7iLSrwFUlw.ttf","700italic":"http://fonts.gstatic.com/s/sarabun/v8/DtVkJx26TKEr37c9aBBxJlks7iLSrwFUlw.ttf","800italic":"http://fonts.gstatic.com/s/sarabun/v8/DtVkJx26TKEr37c9aBBxOlos7iLSrwFUlw.ttf"},"Almarai":{"300":"http://fonts.gstatic.com/s/almarai/v5/tssoApxBaigK_hnnS_anhnicoq72sXg.ttf","700":"http://fonts.gstatic.com/s/almarai/v5/tssoApxBaigK_hnnS-aghnicoq72sXg.ttf","800":"http://fonts.gstatic.com/s/almarai/v5/tssoApxBaigK_hnnS_qjhnicoq72sXg.ttf","regular":"http://fonts.gstatic.com/s/almarai/v5/tsstApxBaigK_hnnc1qPonC3vqc.ttf"},"Crete Round":{"regular":"http://fonts.gstatic.com/s/creteround/v9/55xoey1sJNPjPiv1ZZZrxJ1827zAKnxN.ttf","italic":"http://fonts.gstatic.com/s/creteround/v9/55xqey1sJNPjPiv1ZZZrxK1-0bjiL2xNhKc.ttf"},"Vollkorn":{"500":"http://fonts.gstatic.com/s/vollkorn/v13/0ybgGDoxxrvAnPhYGzMlQLzuMasz6Df2AnGuGWOdEbD63w.ttf","600":"http://fonts.gstatic.com/s/vollkorn/v13/0ybgGDoxxrvAnPhYGzMlQLzuMasz6Df27nauGWOdEbD63w.ttf","700":"http://fonts.gstatic.com/s/vollkorn/v13/0ybgGDoxxrvAnPhYGzMlQLzuMasz6Df213auGWOdEbD63w.ttf","800":"http://fonts.gstatic.com/s/vollkorn/v13/0ybgGDoxxrvAnPhYGzMlQLzuMasz6Df2sHauGWOdEbD63w.ttf","900":"http://fonts.gstatic.com/s/vollkorn/v13/0ybgGDoxxrvAnPhYGzMlQLzuMasz6Df2mXauGWOdEbD63w.ttf","regular":"http://fonts.gstatic.com/s/vollkorn/v13/0ybgGDoxxrvAnPhYGzMlQLzuMasz6Df2MHGuGWOdEbD63w.ttf","italic":"http://fonts.gstatic.com/s/vollkorn/v13/0ybuGDoxxrvAnPhYGxksckM2WMCpRjDj-DJGWmmZM7Xq34g9.ttf","500italic":"http://fonts.gstatic.com/s/vollkorn/v13/0ybuGDoxxrvAnPhYGxksckM2WMCpRjDj-DJ0WmmZM7Xq34g9.ttf","600italic":"http://fonts.gstatic.com/s/vollkorn/v13/0ybuGDoxxrvAnPhYGxksckM2WMCpRjDj-DKYXWmZM7Xq34g9.ttf","700italic":"http://fonts.gstatic.com/s/vollkorn/v13/0ybuGDoxxrvAnPhYGxksckM2WMCpRjDj-DKhXWmZM7Xq34g9.ttf","800italic":"http://fonts.gstatic.com/s/vollkorn/v13/0ybuGDoxxrvAnPhYGxksckM2WMCpRjDj-DLGXWmZM7Xq34g9.ttf","900italic":"http://fonts.gstatic.com/s/vollkorn/v13/0ybuGDoxxrvAnPhYGxksckM2WMCpRjDj-DLvXWmZM7Xq34g9.ttf"},"Cinzel":{"500":"http://fonts.gstatic.com/s/cinzel/v11/8vIU7ww63mVu7gtR-kwKxNvkNOjw-uTnTYrvDE5ZdqU.ttf","600":"http://fonts.gstatic.com/s/cinzel/v11/8vIU7ww63mVu7gtR-kwKxNvkNOjw-gjgTYrvDE5ZdqU.ttf","700":"http://fonts.gstatic.com/s/cinzel/v11/8vIU7ww63mVu7gtR-kwKxNvkNOjw-jHgTYrvDE5ZdqU.ttf","800":"http://fonts.gstatic.com/s/cinzel/v11/8vIU7ww63mVu7gtR-kwKxNvkNOjw-lbgTYrvDE5ZdqU.ttf","900":"http://fonts.gstatic.com/s/cinzel/v11/8vIU7ww63mVu7gtR-kwKxNvkNOjw-n_gTYrvDE5ZdqU.ttf","regular":"http://fonts.gstatic.com/s/cinzel/v11/8vIU7ww63mVu7gtR-kwKxNvkNOjw-tbnTYrvDE5ZdqU.ttf"},"Spartan":{"100":"http://fonts.gstatic.com/s/spartan/v3/l7gAbjR61M69yt8Z8w6FZf9WoBxdBrGFuG6OChXtf4qS.ttf","200":"http://fonts.gstatic.com/s/spartan/v3/l7gAbjR61M69yt8Z8w6FZf9WoBxdBrEFuW6OChXtf4qS.ttf","300":"http://fonts.gstatic.com/s/spartan/v3/l7gAbjR61M69yt8Z8w6FZf9WoBxdBrHbuW6OChXtf4qS.ttf","500":"http://fonts.gstatic.com/s/spartan/v3/l7gAbjR61M69yt8Z8w6FZf9WoBxdBrG3uW6OChXtf4qS.ttf","600":"http://fonts.gstatic.com/s/spartan/v3/l7gAbjR61M69yt8Z8w6FZf9WoBxdBrFbvm6OChXtf4qS.ttf","700":"http://fonts.gstatic.com/s/spartan/v3/l7gAbjR61M69yt8Z8w6FZf9WoBxdBrFivm6OChXtf4qS.ttf","800":"http://fonts.gstatic.com/s/spartan/v3/l7gAbjR61M69yt8Z8w6FZf9WoBxdBrEFvm6OChXtf4qS.ttf","900":"http://fonts.gstatic.com/s/spartan/v3/l7gAbjR61M69yt8Z8w6FZf9WoBxdBrEsvm6OChXtf4qS.ttf","regular":"http://fonts.gstatic.com/s/spartan/v3/l7gAbjR61M69yt8Z8w6FZf9WoBxdBrGFuW6OChXtf4qS.ttf"},"Archivo":{"100":"http://fonts.gstatic.com/s/archivo/v8/k3k6o8UDI-1M0wlSV9XAw6lQkqWY8Q82sJaRE-NWIDdgffTTNDJp8B1oJ0vyVQ.ttf","200":"http://fonts.gstatic.com/s/archivo/v8/k3k6o8UDI-1M0wlSV9XAw6lQkqWY8Q82sJaRE-NWIDdgffTTtDNp8B1oJ0vyVQ.ttf","300":"http://fonts.gstatic.com/s/archivo/v8/k3k6o8UDI-1M0wlSV9XAw6lQkqWY8Q82sJaRE-NWIDdgffTTajNp8B1oJ0vyVQ.ttf","500":"http://fonts.gstatic.com/s/archivo/v8/k3k6o8UDI-1M0wlSV9XAw6lQkqWY8Q82sJaRE-NWIDdgffTTBjNp8B1oJ0vyVQ.ttf","600":"http://fonts.gstatic.com/s/archivo/v8/k3k6o8UDI-1M0wlSV9XAw6lQkqWY8Q82sJaRE-NWIDdgffTT6jRp8B1oJ0vyVQ.ttf","700":"http://fonts.gstatic.com/s/archivo/v8/k3k6o8UDI-1M0wlSV9XAw6lQkqWY8Q82sJaRE-NWIDdgffTT0zRp8B1oJ0vyVQ.ttf","800":"http://fonts.gstatic.com/s/archivo/v8/k3k6o8UDI-1M0wlSV9XAw6lQkqWY8Q82sJaRE-NWIDdgffTTtDRp8B1oJ0vyVQ.ttf","900":"http://fonts.gstatic.com/s/archivo/v8/k3k6o8UDI-1M0wlSV9XAw6lQkqWY8Q82sJaRE-NWIDdgffTTnTRp8B1oJ0vyVQ.ttf","regular":"http://fonts.gstatic.com/s/archivo/v8/k3k6o8UDI-1M0wlSV9XAw6lQkqWY8Q82sJaRE-NWIDdgffTTNDNp8B1oJ0vyVQ.ttf","100italic":"http://fonts.gstatic.com/s/archivo/v8/k3k8o8UDI-1M0wlSfdzyIEkpwTM29hr-8mTYIRyOSVz60_PG_HCBshdsBU7iVdxQ.ttf","200italic":"http://fonts.gstatic.com/s/archivo/v8/k3k8o8UDI-1M0wlSfdzyIEkpwTM29hr-8mTYIRyOSVz60_PG_HABsxdsBU7iVdxQ.ttf","300italic":"http://fonts.gstatic.com/s/archivo/v8/k3k8o8UDI-1M0wlSfdzyIEkpwTM29hr-8mTYIRyOSVz60_PG_HDfsxdsBU7iVdxQ.ttf","italic":"http://fonts.gstatic.com/s/archivo/v8/k3k8o8UDI-1M0wlSfdzyIEkpwTM29hr-8mTYIRyOSVz60_PG_HCBsxdsBU7iVdxQ.ttf","500italic":"http://fonts.gstatic.com/s/archivo/v8/k3k8o8UDI-1M0wlSfdzyIEkpwTM29hr-8mTYIRyOSVz60_PG_HCzsxdsBU7iVdxQ.ttf","600italic":"http://fonts.gstatic.com/s/archivo/v8/k3k8o8UDI-1M0wlSfdzyIEkpwTM29hr-8mTYIRyOSVz60_PG_HBftBdsBU7iVdxQ.ttf","700italic":"http://fonts.gstatic.com/s/archivo/v8/k3k8o8UDI-1M0wlSfdzyIEkpwTM29hr-8mTYIRyOSVz60_PG_HBmtBdsBU7iVdxQ.ttf","800italic":"http://fonts.gstatic.com/s/archivo/v8/k3k8o8UDI-1M0wlSfdzyIEkpwTM29hr-8mTYIRyOSVz60_PG_HABtBdsBU7iVdxQ.ttf","900italic":"http://fonts.gstatic.com/s/archivo/v8/k3k8o8UDI-1M0wlSfdzyIEkpwTM29hr-8mTYIRyOSVz60_PG_HAotBdsBU7iVdxQ.ttf"},"Satisfy":{"regular":"http://fonts.gstatic.com/s/satisfy/v11/rP2Hp2yn6lkG50LoOZSCHBeHFl0.ttf"},"Architects Daughter":{"regular":"http://fonts.gstatic.com/s/architectsdaughter/v11/KtkxAKiDZI_td1Lkx62xHZHDtgO_Y-bvfY5q4szgE-Q.ttf"},"Patua One":{"regular":"http://fonts.gstatic.com/s/patuaone/v11/ZXuke1cDvLCKLDcimxBI5PNvNA9LuA.ttf"},"Alegreya Sans":{"100":"http://fonts.gstatic.com/s/alegreyasans/v14/5aUt9_-1phKLFgshYDvh6Vwt5TltuGdShm5bsg.ttf","300":"http://fonts.gstatic.com/s/alegreyasans/v14/5aUu9_-1phKLFgshYDvh6Vwt5fFPmE18imdCqxI.ttf","500":"http://fonts.gstatic.com/s/alegreyasans/v14/5aUu9_-1phKLFgshYDvh6Vwt5alOmE18imdCqxI.ttf","700":"http://fonts.gstatic.com/s/alegreyasans/v14/5aUu9_-1phKLFgshYDvh6Vwt5eFImE18imdCqxI.ttf","800":"http://fonts.gstatic.com/s/alegreyasans/v14/5aUu9_-1phKLFgshYDvh6Vwt5f1LmE18imdCqxI.ttf","900":"http://fonts.gstatic.com/s/alegreyasans/v14/5aUu9_-1phKLFgshYDvh6Vwt5dlKmE18imdCqxI.ttf","100italic":"http://fonts.gstatic.com/s/alegreyasans/v14/5aUv9_-1phKLFgshYDvh6Vwt7V9V3G1WpGtLsgu7.ttf","300italic":"http://fonts.gstatic.com/s/alegreyasans/v14/5aUo9_-1phKLFgshYDvh6Vwt7V9VFE92jkVHuxKiBA.ttf","regular":"http://fonts.gstatic.com/s/alegreyasans/v14/5aUz9_-1phKLFgshYDvh6Vwt3V1nvEVXlm4.ttf","italic":"http://fonts.gstatic.com/s/alegreyasans/v14/5aUt9_-1phKLFgshYDvh6Vwt7V9tuGdShm5bsg.ttf","500italic":"http://fonts.gstatic.com/s/alegreyasans/v14/5aUo9_-1phKLFgshYDvh6Vwt7V9VTE52jkVHuxKiBA.ttf","700italic":"http://fonts.gstatic.com/s/alegreyasans/v14/5aUo9_-1phKLFgshYDvh6Vwt7V9VBEh2jkVHuxKiBA.ttf","800italic":"http://fonts.gstatic.com/s/alegreyasans/v14/5aUo9_-1phKLFgshYDvh6Vwt7V9VGEt2jkVHuxKiBA.ttf","900italic":"http://fonts.gstatic.com/s/alegreyasans/v14/5aUo9_-1phKLFgshYDvh6Vwt7V9VPEp2jkVHuxKiBA.ttf"},"Barlow Semi Condensed":{"100":"http://fonts.gstatic.com/s/barlowsemicondensed/v6/wlphgxjLBV1hqnzfr-F8sEYMB0Yybp0mudRfG4qvKk8ogoSP.ttf","200":"http://fonts.gstatic.com/s/barlowsemicondensed/v6/wlpigxjLBV1hqnzfr-F8sEYMB0Yybp0mudRft6uPAGEki52WfA.ttf","300":"http://fonts.gstatic.com/s/barlowsemicondensed/v6/wlpigxjLBV1hqnzfr-F8sEYMB0Yybp0mudRf06iPAGEki52WfA.ttf","500":"http://fonts.gstatic.com/s/barlowsemicondensed/v6/wlpigxjLBV1hqnzfr-F8sEYMB0Yybp0mudRfi6mPAGEki52WfA.ttf","600":"http://fonts.gstatic.com/s/barlowsemicondensed/v6/wlpigxjLBV1hqnzfr-F8sEYMB0Yybp0mudRfp66PAGEki52WfA.ttf","700":"http://fonts.gstatic.com/s/barlowsemicondensed/v6/wlpigxjLBV1hqnzfr-F8sEYMB0Yybp0mudRfw6-PAGEki52WfA.ttf","800":"http://fonts.gstatic.com/s/barlowsemicondensed/v6/wlpigxjLBV1hqnzfr-F8sEYMB0Yybp0mudRf36yPAGEki52WfA.ttf","900":"http://fonts.gstatic.com/s/barlowsemicondensed/v6/wlpigxjLBV1hqnzfr-F8sEYMB0Yybp0mudRf-62PAGEki52WfA.ttf","100italic":"http://fonts.gstatic.com/s/barlowsemicondensed/v6/wlpjgxjLBV1hqnzfr-F8sEYMB0Yybp0mudRXfbLLIEsKh5SPZWs.ttf","200italic":"http://fonts.gstatic.com/s/barlowsemicondensed/v6/wlpkgxjLBV1hqnzfr-F8sEYMB0Yybp0mudRXfbJnAWsgqZiGfHK5.ttf","300italic":"http://fonts.gstatic.com/s/barlowsemicondensed/v6/wlpkgxjLBV1hqnzfr-F8sEYMB0Yybp0mudRXfbIDAmsgqZiGfHK5.ttf","regular":"http://fonts.gstatic.com/s/barlowsemicondensed/v6/wlpvgxjLBV1hqnzfr-F8sEYMB0Yybp0mudRnf4CrCEo4gg.ttf","italic":"http://fonts.gstatic.com/s/barlowsemicondensed/v6/wlphgxjLBV1hqnzfr-F8sEYMB0Yybp0mudRXfYqvKk8ogoSP.ttf","500italic":"http://fonts.gstatic.com/s/barlowsemicondensed/v6/wlpkgxjLBV1hqnzfr-F8sEYMB0Yybp0mudRXfbJbA2sgqZiGfHK5.ttf","600italic":"http://fonts.gstatic.com/s/barlowsemicondensed/v6/wlpkgxjLBV1hqnzfr-F8sEYMB0Yybp0mudRXfbJ3BGsgqZiGfHK5.ttf","700italic":"http://fonts.gstatic.com/s/barlowsemicondensed/v6/wlpkgxjLBV1hqnzfr-F8sEYMB0Yybp0mudRXfbITBWsgqZiGfHK5.ttf","800italic":"http://fonts.gstatic.com/s/barlowsemicondensed/v6/wlpkgxjLBV1hqnzfr-F8sEYMB0Yybp0mudRXfbIPBmsgqZiGfHK5.ttf","900italic":"http://fonts.gstatic.com/s/barlowsemicondensed/v6/wlpkgxjLBV1hqnzfr-F8sEYMB0Yybp0mudRXfbIrB2sgqZiGfHK5.ttf"},"Amiri":{"700":"http://fonts.gstatic.com/s/amiri/v17/J7acnpd8CGxBHp2VkZY4xJ9CGyAa.ttf","regular":"http://fonts.gstatic.com/s/amiri/v17/J7aRnpd8CGxBHqUpvrIw74NL.ttf","italic":"http://fonts.gstatic.com/s/amiri/v17/J7afnpd8CGxBHpUrtLYS6pNLAjk.ttf","700italic":"http://fonts.gstatic.com/s/amiri/v17/J7aanpd8CGxBHpUrjAo9zptgHjAavCA.ttf"},"Permanent Marker":{"regular":"http://fonts.gstatic.com/s/permanentmarker/v10/Fh4uPib9Iyv2ucM6pGQMWimMp004HaqIfrT5nlk.ttf"},"Tinos":{"700":"http://fonts.gstatic.com/s/tinos/v16/buE1poGnedXvwj1AW0Fp2i43-cxL.ttf","regular":"http://fonts.gstatic.com/s/tinos/v16/buE4poGnedXvwgX8dGVh8TI-.ttf","italic":"http://fonts.gstatic.com/s/tinos/v16/buE2poGnedXvwjX-fmFD9CI-4NU.ttf","700italic":"http://fonts.gstatic.com/s/tinos/v16/buEzpoGnedXvwjX-Rt1s0CoV_NxLeiw.ttf"},"ABeeZee":{"regular":"http://fonts.gstatic.com/s/abeezee/v14/esDR31xSG-6AGleN6tKukbcHCpE.ttf","italic":"http://fonts.gstatic.com/s/abeezee/v14/esDT31xSG-6AGleN2tCklZUCGpG-GQ.ttf"},"Fredoka One":{"regular":"http://fonts.gstatic.com/s/fredokaone/v8/k3kUo8kEI-tA1RRcTZGmTmHBA6aF8Bf_.ttf"},"Secular One":{"regular":"http://fonts.gstatic.com/s/secularone/v5/8QINdiTajsj_87rMuMdKypDlMul7LJpK.ttf"},"Patrick Hand":{"regular":"http://fonts.gstatic.com/s/patrickhand/v14/LDI1apSQOAYtSuYWp8ZhfYeMWcjKm7sp8g.ttf"},"Courgette":{"regular":"http://fonts.gstatic.com/s/courgette/v8/wEO_EBrAnc9BLjLQAUkFUfAL3EsHiA.ttf"},"Ubuntu Condensed":{"regular":"http://fonts.gstatic.com/s/ubuntucondensed/v11/u-4k0rCzjgs5J7oXnJcM_0kACGMtf-fVqvHoJXw.ttf"},"Staatliches":{"regular":"http://fonts.gstatic.com/s/staatliches/v6/HI_OiY8KO6hCsQSoAPmtMbectJG9O9PS.ttf"},"M PLUS 1p":{"100":"http://fonts.gstatic.com/s/mplus1p/v19/e3tleuShHdiFyPFzBRrQnDQAUW3aq-5N.ttf","300":"http://fonts.gstatic.com/s/mplus1p/v19/e3tmeuShHdiFyPFzBRrQVBYge0PWovdU4w.ttf","500":"http://fonts.gstatic.com/s/mplus1p/v19/e3tmeuShHdiFyPFzBRrQDBcge0PWovdU4w.ttf","700":"http://fonts.gstatic.com/s/mplus1p/v19/e3tmeuShHdiFyPFzBRrQRBEge0PWovdU4w.ttf","800":"http://fonts.gstatic.com/s/mplus1p/v19/e3tmeuShHdiFyPFzBRrQWBIge0PWovdU4w.ttf","900":"http://fonts.gstatic.com/s/mplus1p/v19/e3tmeuShHdiFyPFzBRrQfBMge0PWovdU4w.ttf","regular":"http://fonts.gstatic.com/s/mplus1p/v19/e3tjeuShHdiFyPFzBRro-D4Ec2jKqw.ttf"},"Hammersmith One":{"regular":"http://fonts.gstatic.com/s/hammersmithone/v12/qWcyB624q4L_C4jGQ9IK0O_dFlnbshsks4MRXw.ttf"},"Alegreya":{"500":"http://fonts.gstatic.com/s/alegreya/v19/4UacrEBBsBhlBjvfkQjt71kZfyBzPgNGxBUI_KCisSGVrw.ttf","600":"http://fonts.gstatic.com/s/alegreya/v19/4UacrEBBsBhlBjvfkQjt71kZfyBzPgNGKBII_KCisSGVrw.ttf","700":"http://fonts.gstatic.com/s/alegreya/v19/4UacrEBBsBhlBjvfkQjt71kZfyBzPgNGERII_KCisSGVrw.ttf","800":"http://fonts.gstatic.com/s/alegreya/v19/4UacrEBBsBhlBjvfkQjt71kZfyBzPgNGdhII_KCisSGVrw.ttf","900":"http://fonts.gstatic.com/s/alegreya/v19/4UacrEBBsBhlBjvfkQjt71kZfyBzPgNGXxII_KCisSGVrw.ttf","regular":"http://fonts.gstatic.com/s/alegreya/v19/4UacrEBBsBhlBjvfkQjt71kZfyBzPgNG9hUI_KCisSGVrw.ttf","italic":"http://fonts.gstatic.com/s/alegreya/v19/4UaSrEBBsBhlBjvfkSLk3abBFkvpkARTPlbgv6qmkySFr9V9.ttf","500italic":"http://fonts.gstatic.com/s/alegreya/v19/4UaSrEBBsBhlBjvfkSLk3abBFkvpkARTPlbSv6qmkySFr9V9.ttf","600italic":"http://fonts.gstatic.com/s/alegreya/v19/4UaSrEBBsBhlBjvfkSLk3abBFkvpkARTPlY-uKqmkySFr9V9.ttf","700italic":"http://fonts.gstatic.com/s/alegreya/v19/4UaSrEBBsBhlBjvfkSLk3abBFkvpkARTPlYHuKqmkySFr9V9.ttf","800italic":"http://fonts.gstatic.com/s/alegreya/v19/4UaSrEBBsBhlBjvfkSLk3abBFkvpkARTPlZguKqmkySFr9V9.ttf","900italic":"http://fonts.gstatic.com/s/alegreya/v19/4UaSrEBBsBhlBjvfkSLk3abBFkvpkARTPlZJuKqmkySFr9V9.ttf"},"Kaushan Script":{"regular":"http://fonts.gstatic.com/s/kaushanscript/v9/vm8vdRfvXFLG3OLnsO15WYS5DF7_ytN3M48a.ttf"},"Chivo":{"300":"http://fonts.gstatic.com/s/chivo/v12/va9F4kzIxd1KFrjDY8Z_uqzGQC_-.ttf","700":"http://fonts.gstatic.com/s/chivo/v12/va9F4kzIxd1KFrjTZMZ_uqzGQC_-.ttf","900":"http://fonts.gstatic.com/s/chivo/v12/va9F4kzIxd1KFrjrZsZ_uqzGQC_-.ttf","300italic":"http://fonts.gstatic.com/s/chivo/v12/va9D4kzIxd1KFrBteUp9sKjkRT_-bF0.ttf","regular":"http://fonts.gstatic.com/s/chivo/v12/va9I4kzIxd1KFoBvS-J3kbDP.ttf","italic":"http://fonts.gstatic.com/s/chivo/v12/va9G4kzIxd1KFrBtQeZVlKDPWTY.ttf","700italic":"http://fonts.gstatic.com/s/chivo/v12/va9D4kzIxd1KFrBteVp6sKjkRT_-bF0.ttf","900italic":"http://fonts.gstatic.com/s/chivo/v12/va9D4kzIxd1KFrBteWJ4sKjkRT_-bF0.ttf"},"Archivo Black":{"regular":"http://fonts.gstatic.com/s/archivoblack/v10/HTxqL289NzCGg4MzN6KJ7eW6OYuP_x7yx3A.ttf"},"Jost":{"100":"http://fonts.gstatic.com/s/jost/v6/92zPtBhPNqw79Ij1E865zBUv7myjJAVGPokMmuHL.ttf","200":"http://fonts.gstatic.com/s/jost/v6/92zPtBhPNqw79Ij1E865zBUv7mwjJQVGPokMmuHL.ttf","300":"http://fonts.gstatic.com/s/jost/v6/92zPtBhPNqw79Ij1E865zBUv7mz9JQVGPokMmuHL.ttf","500":"http://fonts.gstatic.com/s/jost/v6/92zPtBhPNqw79Ij1E865zBUv7myRJQVGPokMmuHL.ttf","600":"http://fonts.gstatic.com/s/jost/v6/92zPtBhPNqw79Ij1E865zBUv7mx9IgVGPokMmuHL.ttf","700":"http://fonts.gstatic.com/s/jost/v6/92zPtBhPNqw79Ij1E865zBUv7mxEIgVGPokMmuHL.ttf","800":"http://fonts.gstatic.com/s/jost/v6/92zPtBhPNqw79Ij1E865zBUv7mwjIgVGPokMmuHL.ttf","900":"http://fonts.gstatic.com/s/jost/v6/92zPtBhPNqw79Ij1E865zBUv7mwKIgVGPokMmuHL.ttf","regular":"http://fonts.gstatic.com/s/jost/v6/92zPtBhPNqw79Ij1E865zBUv7myjJQVGPokMmuHL.ttf","100italic":"http://fonts.gstatic.com/s/jost/v6/92zJtBhPNqw73oHH7BbQp4-B6XlrZu0ENI0un_HLMEo.ttf","200italic":"http://fonts.gstatic.com/s/jost/v6/92zJtBhPNqw73oHH7BbQp4-B6XlrZm0FNI0un_HLMEo.ttf","300italic":"http://fonts.gstatic.com/s/jost/v6/92zJtBhPNqw73oHH7BbQp4-B6XlrZrMFNI0un_HLMEo.ttf","italic":"http://fonts.gstatic.com/s/jost/v6/92zJtBhPNqw73oHH7BbQp4-B6XlrZu0FNI0un_HLMEo.ttf","500italic":"http://fonts.gstatic.com/s/jost/v6/92zJtBhPNqw73oHH7BbQp4-B6XlrZt8FNI0un_HLMEo.ttf","600italic":"http://fonts.gstatic.com/s/jost/v6/92zJtBhPNqw73oHH7BbQp4-B6XlrZjMCNI0un_HLMEo.ttf","700italic":"http://fonts.gstatic.com/s/jost/v6/92zJtBhPNqw73oHH7BbQp4-B6XlrZgoCNI0un_HLMEo.ttf","800italic":"http://fonts.gstatic.com/s/jost/v6/92zJtBhPNqw73oHH7BbQp4-B6XlrZm0CNI0un_HLMEo.ttf","900italic":"http://fonts.gstatic.com/s/jost/v6/92zJtBhPNqw73oHH7BbQp4-B6XlrZkQCNI0un_HLMEo.ttf"},"Great Vibes":{"regular":"http://fonts.gstatic.com/s/greatvibes/v8/RWmMoKWR9v4ksMfaWd_JN-XCg6UKDXlq.ttf"},"Chakra Petch":{"300":"http://fonts.gstatic.com/s/chakrapetch/v4/cIflMapbsEk7TDLdtEz1BwkeNIhFQJXE3AY00g.ttf","500":"http://fonts.gstatic.com/s/chakrapetch/v4/cIflMapbsEk7TDLdtEz1BwkebIlFQJXE3AY00g.ttf","600":"http://fonts.gstatic.com/s/chakrapetch/v4/cIflMapbsEk7TDLdtEz1BwkeQI5FQJXE3AY00g.ttf","700":"http://fonts.gstatic.com/s/chakrapetch/v4/cIflMapbsEk7TDLdtEz1BwkeJI9FQJXE3AY00g.ttf","300italic":"http://fonts.gstatic.com/s/chakrapetch/v4/cIfnMapbsEk7TDLdtEz1BwkWmpLJQp_A_gMk0izH.ttf","regular":"http://fonts.gstatic.com/s/chakrapetch/v4/cIf6MapbsEk7TDLdtEz1BwkmmKBhSL7Y1Q.ttf","italic":"http://fonts.gstatic.com/s/chakrapetch/v4/cIfkMapbsEk7TDLdtEz1BwkWmqplarvI1R8t.ttf","500italic":"http://fonts.gstatic.com/s/chakrapetch/v4/cIfnMapbsEk7TDLdtEz1BwkWmpKRQ5_A_gMk0izH.ttf","600italic":"http://fonts.gstatic.com/s/chakrapetch/v4/cIfnMapbsEk7TDLdtEz1BwkWmpK9RJ_A_gMk0izH.ttf","700italic":"http://fonts.gstatic.com/s/chakrapetch/v4/cIfnMapbsEk7TDLdtEz1BwkWmpLZRZ_A_gMk0izH.ttf"},"Public Sans":{"100":"http://fonts.gstatic.com/s/publicsans/v5/ijwGs572Xtc6ZYQws9YVwllKVG8qX1oyOymuFpi5ww0pX189fg.ttf","200":"http://fonts.gstatic.com/s/publicsans/v5/ijwGs572Xtc6ZYQws9YVwllKVG8qX1oyOymulpm5ww0pX189fg.ttf","300":"http://fonts.gstatic.com/s/publicsans/v5/ijwGs572Xtc6ZYQws9YVwllKVG8qX1oyOymuSJm5ww0pX189fg.ttf","500":"http://fonts.gstatic.com/s/publicsans/v5/ijwGs572Xtc6ZYQws9YVwllKVG8qX1oyOymuJJm5ww0pX189fg.ttf","600":"http://fonts.gstatic.com/s/publicsans/v5/ijwGs572Xtc6ZYQws9YVwllKVG8qX1oyOymuyJ65ww0pX189fg.ttf","700":"http://fonts.gstatic.com/s/publicsans/v5/ijwGs572Xtc6ZYQws9YVwllKVG8qX1oyOymu8Z65ww0pX189fg.ttf","800":"http://fonts.gstatic.com/s/publicsans/v5/ijwGs572Xtc6ZYQws9YVwllKVG8qX1oyOymulp65ww0pX189fg.ttf","900":"http://fonts.gstatic.com/s/publicsans/v5/ijwGs572Xtc6ZYQws9YVwllKVG8qX1oyOymuv565ww0pX189fg.ttf","regular":"http://fonts.gstatic.com/s/publicsans/v5/ijwGs572Xtc6ZYQws9YVwllKVG8qX1oyOymuFpm5ww0pX189fg.ttf","100italic":"http://fonts.gstatic.com/s/publicsans/v5/ijwAs572Xtc6ZYQws9YVwnNDZpDyNjGolS673tpRgQctfVotfj7j.ttf","200italic":"http://fonts.gstatic.com/s/publicsans/v5/ijwAs572Xtc6ZYQws9YVwnNDZpDyNjGolS673trRgActfVotfj7j.ttf","300italic":"http://fonts.gstatic.com/s/publicsans/v5/ijwAs572Xtc6ZYQws9YVwnNDZpDyNjGolS673toPgActfVotfj7j.ttf","italic":"http://fonts.gstatic.com/s/publicsans/v5/ijwAs572Xtc6ZYQws9YVwnNDZpDyNjGolS673tpRgActfVotfj7j.ttf","500italic":"http://fonts.gstatic.com/s/publicsans/v5/ijwAs572Xtc6ZYQws9YVwnNDZpDyNjGolS673tpjgActfVotfj7j.ttf","600italic":"http://fonts.gstatic.com/s/publicsans/v5/ijwAs572Xtc6ZYQws9YVwnNDZpDyNjGolS673tqPhwctfVotfj7j.ttf","700italic":"http://fonts.gstatic.com/s/publicsans/v5/ijwAs572Xtc6ZYQws9YVwnNDZpDyNjGolS673tq2hwctfVotfj7j.ttf","800italic":"http://fonts.gstatic.com/s/publicsans/v5/ijwAs572Xtc6ZYQws9YVwnNDZpDyNjGolS673trRhwctfVotfj7j.ttf","900italic":"http://fonts.gstatic.com/s/publicsans/v5/ijwAs572Xtc6ZYQws9YVwnNDZpDyNjGolS673tr4hwctfVotfj7j.ttf"},"Frank Ruhl Libre":{"300":"http://fonts.gstatic.com/s/frankruhllibre/v6/j8_36_fAw7jrcalD7oKYNX0QfAnPUxvHxJDMhYeIHw8.ttf","500":"http://fonts.gstatic.com/s/frankruhllibre/v6/j8_36_fAw7jrcalD7oKYNX0QfAnPU0PGxJDMhYeIHw8.ttf","700":"http://fonts.gstatic.com/s/frankruhllibre/v6/j8_36_fAw7jrcalD7oKYNX0QfAnPUwvAxJDMhYeIHw8.ttf","900":"http://fonts.gstatic.com/s/frankruhllibre/v6/j8_36_fAw7jrcalD7oKYNX0QfAnPUzPCxJDMhYeIHw8.ttf","regular":"http://fonts.gstatic.com/s/frankruhllibre/v6/j8_w6_fAw7jrcalD7oKYNX0QfAnPa7fv4JjnmY4.ttf"},"Lobster Two":{"700":"http://fonts.gstatic.com/s/lobstertwo/v13/BngRUXZGTXPUvIoyV6yN5-92w4CByxyKeuDp.ttf","regular":"http://fonts.gstatic.com/s/lobstertwo/v13/BngMUXZGTXPUvIoyV6yN59fK7KSJ4ACD.ttf","italic":"http://fonts.gstatic.com/s/lobstertwo/v13/BngOUXZGTXPUvIoyV6yN5-fI5qCr5RCDY_k.ttf","700italic":"http://fonts.gstatic.com/s/lobstertwo/v13/BngTUXZGTXPUvIoyV6yN5-fI3hyEwRiof_DpXMY.ttf"},"PT Sans Caption":{"700":"http://fonts.gstatic.com/s/ptsanscaption/v13/0FlJVP6Hrxmt7-fsUFhlFXNIlpcSwSrUSwWuz38Tgg.ttf","regular":"http://fonts.gstatic.com/s/ptsanscaption/v13/0FlMVP6Hrxmt7-fsUFhlFXNIlpcqfQXwQy6yxg.ttf"},"Yantramanav":{"100":"http://fonts.gstatic.com/s/yantramanav/v6/flU-Rqu5zY00QEpyWJYWN5-QXeNzDB41rZg.ttf","300":"http://fonts.gstatic.com/s/yantramanav/v6/flUhRqu5zY00QEpyWJYWN59Yf8NZIhI8tIHh.ttf","500":"http://fonts.gstatic.com/s/yantramanav/v6/flUhRqu5zY00QEpyWJYWN58AfsNZIhI8tIHh.ttf","700":"http://fonts.gstatic.com/s/yantramanav/v6/flUhRqu5zY00QEpyWJYWN59IeMNZIhI8tIHh.ttf","900":"http://fonts.gstatic.com/s/yantramanav/v6/flUhRqu5zY00QEpyWJYWN59wesNZIhI8tIHh.ttf","regular":"http://fonts.gstatic.com/s/yantramanav/v6/flU8Rqu5zY00QEpyWJYWN6f0V-dRCQ41.ttf"},"Gothic A1":{"100":"http://fonts.gstatic.com/s/gothica1/v8/CSR74z5ZnPydRjlCCwlCCMcqYtd2vfwk.ttf","200":"http://fonts.gstatic.com/s/gothica1/v8/CSR44z5ZnPydRjlCCwlCpOYKSPl6tOU9Eg.ttf","300":"http://fonts.gstatic.com/s/gothica1/v8/CSR44z5ZnPydRjlCCwlCwOUKSPl6tOU9Eg.ttf","500":"http://fonts.gstatic.com/s/gothica1/v8/CSR44z5ZnPydRjlCCwlCmOQKSPl6tOU9Eg.ttf","600":"http://fonts.gstatic.com/s/gothica1/v8/CSR44z5ZnPydRjlCCwlCtOMKSPl6tOU9Eg.ttf","700":"http://fonts.gstatic.com/s/gothica1/v8/CSR44z5ZnPydRjlCCwlC0OIKSPl6tOU9Eg.ttf","800":"http://fonts.gstatic.com/s/gothica1/v8/CSR44z5ZnPydRjlCCwlCzOEKSPl6tOU9Eg.ttf","900":"http://fonts.gstatic.com/s/gothica1/v8/CSR44z5ZnPydRjlCCwlC6OAKSPl6tOU9Eg.ttf","regular":"http://fonts.gstatic.com/s/gothica1/v8/CSR94z5ZnPydRjlCCwl6bM0uQNJmvQ.ttf"},"Cardo":{"700":"http://fonts.gstatic.com/s/cardo/v14/wlpygwjKBV1pqhND-aQR82JHaTBX.ttf","regular":"http://fonts.gstatic.com/s/cardo/v14/wlp_gwjKBV1pqiv_1oAZ2H5O.ttf","italic":"http://fonts.gstatic.com/s/cardo/v14/wlpxgwjKBV1pqhv93IQ73W5OcCk.ttf"},"Quattrocento Sans":{"700":"http://fonts.gstatic.com/s/quattrocentosans/v13/va9Z4lja2NVIDdIAAoMR5MfuElaRB0RykmrWN33AiasJ.ttf","regular":"http://fonts.gstatic.com/s/quattrocentosans/v13/va9c4lja2NVIDdIAAoMR5MfuElaRB3zOvU7eHGHJ.ttf","italic":"http://fonts.gstatic.com/s/quattrocentosans/v13/va9a4lja2NVIDdIAAoMR5MfuElaRB0zMt0r8GXHJkLI.ttf","700italic":"http://fonts.gstatic.com/s/quattrocentosans/v13/va9X4lja2NVIDdIAAoMR5MfuElaRB0zMj_bTPXnijLsJV7E.ttf"},"Sacramento":{"regular":"http://fonts.gstatic.com/s/sacramento/v8/buEzpo6gcdjy0EiZMBUG0CoV_NxLeiw.ttf"},"Spectral":{"200":"http://fonts.gstatic.com/s/spectral/v7/rnCs-xNNww_2s0amA9v2s13GY_etWWIJ.ttf","300":"http://fonts.gstatic.com/s/spectral/v7/rnCs-xNNww_2s0amA9uSsF3GY_etWWIJ.ttf","500":"http://fonts.gstatic.com/s/spectral/v7/rnCs-xNNww_2s0amA9vKsV3GY_etWWIJ.ttf","600":"http://fonts.gstatic.com/s/spectral/v7/rnCs-xNNww_2s0amA9vmtl3GY_etWWIJ.ttf","700":"http://fonts.gstatic.com/s/spectral/v7/rnCs-xNNww_2s0amA9uCt13GY_etWWIJ.ttf","800":"http://fonts.gstatic.com/s/spectral/v7/rnCs-xNNww_2s0amA9uetF3GY_etWWIJ.ttf","200italic":"http://fonts.gstatic.com/s/spectral/v7/rnCu-xNNww_2s0amA9M8qrXHafOPXHIJErY.ttf","300italic":"http://fonts.gstatic.com/s/spectral/v7/rnCu-xNNww_2s0amA9M8qtHEafOPXHIJErY.ttf","regular":"http://fonts.gstatic.com/s/spectral/v7/rnCr-xNNww_2s0amA-M-mHnOSOuk.ttf","italic":"http://fonts.gstatic.com/s/spectral/v7/rnCt-xNNww_2s0amA9M8kn3sTfukQHs.ttf","500italic":"http://fonts.gstatic.com/s/spectral/v7/rnCu-xNNww_2s0amA9M8qonFafOPXHIJErY.ttf","600italic":"http://fonts.gstatic.com/s/spectral/v7/rnCu-xNNww_2s0amA9M8qqXCafOPXHIJErY.ttf","700italic":"http://fonts.gstatic.com/s/spectral/v7/rnCu-xNNww_2s0amA9M8qsHDafOPXHIJErY.ttf","800italic":"http://fonts.gstatic.com/s/spectral/v7/rnCu-xNNww_2s0amA9M8qt3AafOPXHIJErY.ttf"},"Kalam":{"300":"http://fonts.gstatic.com/s/kalam/v11/YA9Qr0Wd4kDdMtD6GgLLmCUItqGt.ttf","700":"http://fonts.gstatic.com/s/kalam/v11/YA9Qr0Wd4kDdMtDqHQLLmCUItqGt.ttf","regular":"http://fonts.gstatic.com/s/kalam/v11/YA9dr0Wd4kDdMuhWMibDszkB.ttf"},"Signika Negative":{"300":"http://fonts.gstatic.com/s/signikanegative/v11/E217_cfngu7HiRpPX3ZpNE4kY5zKal6DipHD6z_iXAs.ttf","600":"http://fonts.gstatic.com/s/signikanegative/v11/E217_cfngu7HiRpPX3ZpNE4kY5zKaiqFipHD6z_iXAs.ttf","700":"http://fonts.gstatic.com/s/signikanegative/v11/E217_cfngu7HiRpPX3ZpNE4kY5zKak6EipHD6z_iXAs.ttf","regular":"http://fonts.gstatic.com/s/signikanegative/v11/E218_cfngu7HiRpPX3ZpNE4kY5zKUvKrrpno9zY.ttf"},"Prata":{"regular":"http://fonts.gstatic.com/s/prata/v13/6xKhdSpbNNCT-vWIAG_5LWwJ.ttf"},"Didact Gothic":{"regular":"http://fonts.gstatic.com/s/didactgothic/v14/ahcfv8qz1zt6hCC5G4F_P4ASpUySp0LlcyQ.ttf"},"Noto Serif TC":{"200":"http://fonts.gstatic.com/s/notoseriftc/v8/XLY9IZb5bJNDGYxLBibeHZ0Bvr8vbX9GTsoOAX4.otf","300":"http://fonts.gstatic.com/s/notoseriftc/v8/XLY9IZb5bJNDGYxLBibeHZ0BvtssbX9GTsoOAX4.otf","500":"http://fonts.gstatic.com/s/notoseriftc/v8/XLY9IZb5bJNDGYxLBibeHZ0BvoMtbX9GTsoOAX4.otf","600":"http://fonts.gstatic.com/s/notoseriftc/v8/XLY9IZb5bJNDGYxLBibeHZ0Bvq8qbX9GTsoOAX4.otf","700":"http://fonts.gstatic.com/s/notoseriftc/v8/XLY9IZb5bJNDGYxLBibeHZ0BvssrbX9GTsoOAX4.otf","900":"http://fonts.gstatic.com/s/notoseriftc/v8/XLY9IZb5bJNDGYxLBibeHZ0BvvMpbX9GTsoOAX4.otf","regular":"http://fonts.gstatic.com/s/notoseriftc/v8/XLYgIZb5bJNDGYxLBibeHZ0BhnEESXFtUsM.otf"},"Baloo 2":{"500":"http://fonts.gstatic.com/s/baloo2/v2/wXKuE3kTposypRyd76v_JeQAmX8yrdk.ttf","600":"http://fonts.gstatic.com/s/baloo2/v2/wXKuE3kTposypRyd74f4JeQAmX8yrdk.ttf","700":"http://fonts.gstatic.com/s/baloo2/v2/wXKuE3kTposypRyd7-P5JeQAmX8yrdk.ttf","800":"http://fonts.gstatic.com/s/baloo2/v2/wXKuE3kTposypRyd7__6JeQAmX8yrdk.ttf","regular":"http://fonts.gstatic.com/s/baloo2/v2/wXKrE3kTposypRyd11_WAewrhXY.ttf"},"Balsamiq Sans":{"700":"http://fonts.gstatic.com/s/balsamiqsans/v3/P5sZzZiAbNrN8SB3lQQX7PncyWUyBY9mAzLFRQI.ttf","regular":"http://fonts.gstatic.com/s/balsamiqsans/v3/P5sEzZiAbNrN8SB3lQQX7Pnc8dkdIYdNHzs.ttf","italic":"http://fonts.gstatic.com/s/balsamiqsans/v3/P5sazZiAbNrN8SB3lQQX7PncwdsXJaVIDzvcXA.ttf","700italic":"http://fonts.gstatic.com/s/balsamiqsans/v3/P5sfzZiAbNrN8SB3lQQX7PncwdsvmYpsBxDAVQI4aA.ttf"},"Francois One":{"regular":"http://fonts.gstatic.com/s/francoisone/v15/_Xmr-H4zszafZw3A-KPSZutNxgKQu_avAg.ttf"},"Red Hat Display":{"500":"http://fonts.gstatic.com/s/redhatdisplay/v4/8vIV7wUr0m80wwYf0QCXZzYzUoToDh2EbaDBAEdAbw.ttf","700":"http://fonts.gstatic.com/s/redhatdisplay/v4/8vIV7wUr0m80wwYf0QCXZzYzUoToRhuEbaDBAEdAbw.ttf","900":"http://fonts.gstatic.com/s/redhatdisplay/v4/8vIV7wUr0m80wwYf0QCXZzYzUoTofhmEbaDBAEdAbw.ttf","regular":"http://fonts.gstatic.com/s/redhatdisplay/v4/8vIQ7wUr0m80wwYf0QCXZzYzUoTQ-jSgZYvdCQ.ttf","italic":"http://fonts.gstatic.com/s/redhatdisplay/v4/8vIS7wUr0m80wwYf0QCXZzYzUoTg-D6kR47NCV5Z.ttf","500italic":"http://fonts.gstatic.com/s/redhatdisplay/v4/8vIX7wUr0m80wwYf0QCXZzYzUoTg-AZQbqrFIkJQb7zU.ttf","700italic":"http://fonts.gstatic.com/s/redhatdisplay/v4/8vIX7wUr0m80wwYf0QCXZzYzUoTg-AYYaKrFIkJQb7zU.ttf","900italic":"http://fonts.gstatic.com/s/redhatdisplay/v4/8vIX7wUr0m80wwYf0QCXZzYzUoTg-AYgaqrFIkJQb7zU.ttf"},"IBM Plex Mono":{"100":"http://fonts.gstatic.com/s/ibmplexmono/v6/-F6pfjptAgt5VM-kVkqdyU8n3kwq0n1hj-sNFQ.ttf","200":"http://fonts.gstatic.com/s/ibmplexmono/v6/-F6qfjptAgt5VM-kVkqdyU8n3uAL8ldPg-IUDNg.ttf","300":"http://fonts.gstatic.com/s/ibmplexmono/v6/-F6qfjptAgt5VM-kVkqdyU8n3oQI8ldPg-IUDNg.ttf","500":"http://fonts.gstatic.com/s/ibmplexmono/v6/-F6qfjptAgt5VM-kVkqdyU8n3twJ8ldPg-IUDNg.ttf","600":"http://fonts.gstatic.com/s/ibmplexmono/v6/-F6qfjptAgt5VM-kVkqdyU8n3vAO8ldPg-IUDNg.ttf","700":"http://fonts.gstatic.com/s/ibmplexmono/v6/-F6qfjptAgt5VM-kVkqdyU8n3pQP8ldPg-IUDNg.ttf","100italic":"http://fonts.gstatic.com/s/ibmplexmono/v6/-F6rfjptAgt5VM-kVkqdyU8n1ioStndlre4dFcFh.ttf","200italic":"http://fonts.gstatic.com/s/ibmplexmono/v6/-F6sfjptAgt5VM-kVkqdyU8n1ioSGlZFh8ARHNh4zg.ttf","300italic":"http://fonts.gstatic.com/s/ibmplexmono/v6/-F6sfjptAgt5VM-kVkqdyU8n1ioSflVFh8ARHNh4zg.ttf","regular":"http://fonts.gstatic.com/s/ibmplexmono/v6/-F63fjptAgt5VM-kVkqdyU8n5igg1l9kn-s.ttf","italic":"http://fonts.gstatic.com/s/ibmplexmono/v6/-F6pfjptAgt5VM-kVkqdyU8n1ioq0n1hj-sNFQ.ttf","500italic":"http://fonts.gstatic.com/s/ibmplexmono/v6/-F6sfjptAgt5VM-kVkqdyU8n1ioSJlRFh8ARHNh4zg.ttf","600italic":"http://fonts.gstatic.com/s/ibmplexmono/v6/-F6sfjptAgt5VM-kVkqdyU8n1ioSClNFh8ARHNh4zg.ttf","700italic":"http://fonts.gstatic.com/s/ibmplexmono/v6/-F6sfjptAgt5VM-kVkqdyU8n1ioSblJFh8ARHNh4zg.ttf"},"Noticia Text":{"700":"http://fonts.gstatic.com/s/noticiatext/v10/VuJpdNDF2Yv9qppOePKYRP1-3R59v2HRrDH0eA.ttf","regular":"http://fonts.gstatic.com/s/noticiatext/v10/VuJ2dNDF2Yv9qppOePKYRP1GYTFZt0rNpQ.ttf","italic":"http://fonts.gstatic.com/s/noticiatext/v10/VuJodNDF2Yv9qppOePKYRP12YztdlU_dpSjt.ttf","700italic":"http://fonts.gstatic.com/s/noticiatext/v10/VuJrdNDF2Yv9qppOePKYRP12YwPhumvVjjTkeMnz.ttf"},"Russo One":{"regular":"http://fonts.gstatic.com/s/russoone/v9/Z9XUDmZRWg6M1LvRYsH-yMOInrib9Q.ttf"},"Cuprum":{"500":"http://fonts.gstatic.com/s/cuprum/v14/dg45_pLmvrkcOkBnKsOzXyGWTBcmg9f6ZjzSJjQjgnU.ttf","600":"http://fonts.gstatic.com/s/cuprum/v14/dg45_pLmvrkcOkBnKsOzXyGWTBcmgzv9ZjzSJjQjgnU.ttf","700":"http://fonts.gstatic.com/s/cuprum/v14/dg45_pLmvrkcOkBnKsOzXyGWTBcmgwL9ZjzSJjQjgnU.ttf","regular":"http://fonts.gstatic.com/s/cuprum/v14/dg45_pLmvrkcOkBnKsOzXyGWTBcmg-X6ZjzSJjQjgnU.ttf","italic":"http://fonts.gstatic.com/s/cuprum/v14/dg47_pLmvrkcOkBNI_FMh0j91rkhli25jn_YIhYmknUPEA.ttf","500italic":"http://fonts.gstatic.com/s/cuprum/v14/dg47_pLmvrkcOkBNI_FMh0j91rkhli25vH_YIhYmknUPEA.ttf","600italic":"http://fonts.gstatic.com/s/cuprum/v14/dg47_pLmvrkcOkBNI_FMh0j91rkhli25UHjYIhYmknUPEA.ttf","700italic":"http://fonts.gstatic.com/s/cuprum/v14/dg47_pLmvrkcOkBNI_FMh0j91rkhli25aXjYIhYmknUPEA.ttf"},"Orbitron":{"500":"http://fonts.gstatic.com/s/orbitron/v17/yMJMMIlzdpvBhQQL_SC3X9yhF25-T1nyKS6xpmIyXjU1pg.ttf","600":"http://fonts.gstatic.com/s/orbitron/v17/yMJMMIlzdpvBhQQL_SC3X9yhF25-T1nyxSmxpmIyXjU1pg.ttf","700":"http://fonts.gstatic.com/s/orbitron/v17/yMJMMIlzdpvBhQQL_SC3X9yhF25-T1ny_CmxpmIyXjU1pg.ttf","800":"http://fonts.gstatic.com/s/orbitron/v17/yMJMMIlzdpvBhQQL_SC3X9yhF25-T1nymymxpmIyXjU1pg.ttf","900":"http://fonts.gstatic.com/s/orbitron/v17/yMJMMIlzdpvBhQQL_SC3X9yhF25-T1nysimxpmIyXjU1pg.ttf","regular":"http://fonts.gstatic.com/s/orbitron/v17/yMJMMIlzdpvBhQQL_SC3X9yhF25-T1nyGy6xpmIyXjU1pg.ttf"},"Cantarell":{"700":"http://fonts.gstatic.com/s/cantarell/v10/B50IF7ZDq37KMUvlO01xN4dOFISeJY8GgQ.ttf","regular":"http://fonts.gstatic.com/s/cantarell/v10/B50NF7ZDq37KMUvlO01Ji6hqHK-CLA.ttf","italic":"http://fonts.gstatic.com/s/cantarell/v10/B50LF7ZDq37KMUvlO015iaJuPqqSLJYf.ttf","700italic":"http://fonts.gstatic.com/s/cantarell/v10/B50WF7ZDq37KMUvlO015iZrSEY6aB4oWgWHB.ttf"},"Pathway Gothic One":{"regular":"http://fonts.gstatic.com/s/pathwaygothicone/v9/MwQrbgD32-KAvjkYGNUUxAtW7pEBwx-dTFxeb80flQ.ttf"},"Gloria Hallelujah":{"regular":"http://fonts.gstatic.com/s/gloriahallelujah/v12/LYjYdHv3kUk9BMV96EIswT9DIbW-MLSy3TKEvkCF.ttf"},"Encode Sans":{"100":"http://fonts.gstatic.com/s/encodesans/v8/LDIcapOFNxEwR-Bd1O9uYNmnUQomAgE25imKSbHhROjLsZBWTSrQGGHiZtWP7FJCt2c.ttf","200":"http://fonts.gstatic.com/s/encodesans/v8/LDIcapOFNxEwR-Bd1O9uYNmnUQomAgE25imKSbHhROjLsZBWTSrQGOHjZtWP7FJCt2c.ttf","300":"http://fonts.gstatic.com/s/encodesans/v8/LDIcapOFNxEwR-Bd1O9uYNmnUQomAgE25imKSbHhROjLsZBWTSrQGD_jZtWP7FJCt2c.ttf","500":"http://fonts.gstatic.com/s/encodesans/v8/LDIcapOFNxEwR-Bd1O9uYNmnUQomAgE25imKSbHhROjLsZBWTSrQGFPjZtWP7FJCt2c.ttf","600":"http://fonts.gstatic.com/s/encodesans/v8/LDIcapOFNxEwR-Bd1O9uYNmnUQomAgE25imKSbHhROjLsZBWTSrQGL_kZtWP7FJCt2c.ttf","700":"http://fonts.gstatic.com/s/encodesans/v8/LDIcapOFNxEwR-Bd1O9uYNmnUQomAgE25imKSbHhROjLsZBWTSrQGIbkZtWP7FJCt2c.ttf","800":"http://fonts.gstatic.com/s/encodesans/v8/LDIcapOFNxEwR-Bd1O9uYNmnUQomAgE25imKSbHhROjLsZBWTSrQGOHkZtWP7FJCt2c.ttf","900":"http://fonts.gstatic.com/s/encodesans/v8/LDIcapOFNxEwR-Bd1O9uYNmnUQomAgE25imKSbHhROjLsZBWTSrQGMjkZtWP7FJCt2c.ttf","regular":"http://fonts.gstatic.com/s/encodesans/v8/LDIcapOFNxEwR-Bd1O9uYNmnUQomAgE25imKSbHhROjLsZBWTSrQGGHjZtWP7FJCt2c.ttf"},"Monda":{"700":"http://fonts.gstatic.com/s/monda/v11/TK3gWkYFABsmjsLaGz8Dl-tPKo2t.ttf","regular":"http://fonts.gstatic.com/s/monda/v11/TK3tWkYFABsmjvpmNBsLvPdG.ttf"},"DM Serif Display":{"regular":"http://fonts.gstatic.com/s/dmserifdisplay/v5/-nFnOHM81r4j6k0gjAW3mujVU2B2K_d709jy92k.ttf","italic":"http://fonts.gstatic.com/s/dmserifdisplay/v5/-nFhOHM81r4j6k0gjAW3mujVU2B2G_Vx1_r352np3Q.ttf"},"Parisienne":{"regular":"http://fonts.gstatic.com/s/parisienne/v8/E21i_d3kivvAkxhLEVZpcy96DuKuavM.ttf"},"Old Standard TT":{"700":"http://fonts.gstatic.com/s/oldstandardtt/v13/MwQrbh3o1vLImiwAVvYawgcf2eVWEX-dTFxeb80flQ.ttf","regular":"http://fonts.gstatic.com/s/oldstandardtt/v13/MwQubh3o1vLImiwAVvYawgcf2eVurVC5RHdCZg.ttf","italic":"http://fonts.gstatic.com/s/oldstandardtt/v13/MwQsbh3o1vLImiwAVvYawgcf2eVer1q9ZnJSZtQG.ttf"},"Special Elite":{"regular":"http://fonts.gstatic.com/s/specialelite/v11/XLYgIZbkc4JPUL5CVArUVL0nhncESXFtUsM.ttf"},"Ropa Sans":{"regular":"http://fonts.gstatic.com/s/ropasans/v10/EYqxmaNOzLlWtsZSScyKWjloU5KP2g.ttf","italic":"http://fonts.gstatic.com/s/ropasans/v10/EYq3maNOzLlWtsZSScy6WDNscZef2mNE.ttf"},"Volkhov":{"700":"http://fonts.gstatic.com/s/volkhov/v12/SlGVmQieoJcKemNeeY4hoHRYbDQUego.ttf","regular":"http://fonts.gstatic.com/s/volkhov/v12/SlGQmQieoJcKemNeQTIOhHxzcD0.ttf","italic":"http://fonts.gstatic.com/s/volkhov/v12/SlGSmQieoJcKemNecTAEgF52YD0NYw.ttf","700italic":"http://fonts.gstatic.com/s/volkhov/v12/SlGXmQieoJcKemNecTA8PHFSaBYRagrQrA.ttf"},"Jomhuria":{"regular":"http://fonts.gstatic.com/s/jomhuria/v12/Dxxp8j-TMXf-llKur2b1MOGbC3Dh.ttf"},"Concert One":{"regular":"http://fonts.gstatic.com/s/concertone/v12/VEM1Ro9xs5PjtzCu-srDqRTlhv-CuVAQ.ttf"},"Rokkitt":{"100":"http://fonts.gstatic.com/s/rokkitt/v20/qFdb35qfgYFjGy5hukqqhw5XeRgdi1rydpDLE76HvN6n.ttf","200":"http://fonts.gstatic.com/s/rokkitt/v20/qFdb35qfgYFjGy5hukqqhw5XeRgdi1pyd5DLE76HvN6n.ttf","300":"http://fonts.gstatic.com/s/rokkitt/v20/qFdb35qfgYFjGy5hukqqhw5XeRgdi1qsd5DLE76HvN6n.ttf","500":"http://fonts.gstatic.com/s/rokkitt/v20/qFdb35qfgYFjGy5hukqqhw5XeRgdi1rAd5DLE76HvN6n.ttf","600":"http://fonts.gstatic.com/s/rokkitt/v20/qFdb35qfgYFjGy5hukqqhw5XeRgdi1oscJDLE76HvN6n.ttf","700":"http://fonts.gstatic.com/s/rokkitt/v20/qFdb35qfgYFjGy5hukqqhw5XeRgdi1oVcJDLE76HvN6n.ttf","800":"http://fonts.gstatic.com/s/rokkitt/v20/qFdb35qfgYFjGy5hukqqhw5XeRgdi1pycJDLE76HvN6n.ttf","900":"http://fonts.gstatic.com/s/rokkitt/v20/qFdb35qfgYFjGy5hukqqhw5XeRgdi1pbcJDLE76HvN6n.ttf","regular":"http://fonts.gstatic.com/s/rokkitt/v20/qFdb35qfgYFjGy5hukqqhw5XeRgdi1ryd5DLE76HvN6n.ttf"},"Hind Guntur":{"300":"http://fonts.gstatic.com/s/hindguntur/v7/wXKyE3UZrok56nvamSuJd_yGn1czn9zaj5Ju.ttf","500":"http://fonts.gstatic.com/s/hindguntur/v7/wXKyE3UZrok56nvamSuJd_zenlczn9zaj5Ju.ttf","600":"http://fonts.gstatic.com/s/hindguntur/v7/wXKyE3UZrok56nvamSuJd_zymVczn9zaj5Ju.ttf","700":"http://fonts.gstatic.com/s/hindguntur/v7/wXKyE3UZrok56nvamSuJd_yWmFczn9zaj5Ju.ttf","regular":"http://fonts.gstatic.com/s/hindguntur/v7/wXKvE3UZrok56nvamSuJd8Qqt3M7tMDT.ttf"},"News Cycle":{"700":"http://fonts.gstatic.com/s/newscycle/v17/CSR54z1Qlv-GDxkbKVQ_dFsvaNNUuOwkC2s.ttf","regular":"http://fonts.gstatic.com/s/newscycle/v17/CSR64z1Qlv-GDxkbKVQ_TOcATNt_pOU.ttf"},"Noto Serif KR":{"200":"http://fonts.gstatic.com/s/notoserifkr/v7/3JnmSDn90Gmq2mr3blnHaTZXTihC8O1ZNH1ahck.otf","300":"http://fonts.gstatic.com/s/notoserifkr/v7/3JnmSDn90Gmq2mr3blnHaTZXTkxB8O1ZNH1ahck.otf","500":"http://fonts.gstatic.com/s/notoserifkr/v7/3JnmSDn90Gmq2mr3blnHaTZXThRA8O1ZNH1ahck.otf","600":"http://fonts.gstatic.com/s/notoserifkr/v7/3JnmSDn90Gmq2mr3blnHaTZXTjhH8O1ZNH1ahck.otf","700":"http://fonts.gstatic.com/s/notoserifkr/v7/3JnmSDn90Gmq2mr3blnHaTZXTlxG8O1ZNH1ahck.otf","900":"http://fonts.gstatic.com/s/notoserifkr/v7/3JnmSDn90Gmq2mr3blnHaTZXTmRE8O1ZNH1ahck.otf","regular":"http://fonts.gstatic.com/s/notoserifkr/v7/3Jn7SDn90Gmq2mr3blnHaTZXduZp1ONyKHQ.otf"},"Sawarabi Mincho":{"regular":"http://fonts.gstatic.com/s/sawarabimincho/v10/8QIRdiDaitzr7brc8ahpxt6GcIJTLahP46UDUw.ttf"},"Asap Condensed":{"500":"http://fonts.gstatic.com/s/asapcondensed/v8/pxieypY1o9NHyXh3WvSbGSggdO9_S2lEgGqgp-pO.ttf","600":"http://fonts.gstatic.com/s/asapcondensed/v8/pxieypY1o9NHyXh3WvSbGSggdO9TTGlEgGqgp-pO.ttf","700":"http://fonts.gstatic.com/s/asapcondensed/v8/pxieypY1o9NHyXh3WvSbGSggdO83TWlEgGqgp-pO.ttf","regular":"http://fonts.gstatic.com/s/asapcondensed/v8/pxidypY1o9NHyXh3WvSbGSggdNeLYk1Mq3ap.ttf","italic":"http://fonts.gstatic.com/s/asapcondensed/v8/pxifypY1o9NHyXh3WvSbGSggdOeJaElurmapvvM.ttf","500italic":"http://fonts.gstatic.com/s/asapcondensed/v8/pxiYypY1o9NHyXh3WvSbGSggdOeJUL1Him6CovpOkXA.ttf","600italic":"http://fonts.gstatic.com/s/asapcondensed/v8/pxiYypY1o9NHyXh3WvSbGSggdOeJUJFAim6CovpOkXA.ttf","700italic":"http://fonts.gstatic.com/s/asapcondensed/v8/pxiYypY1o9NHyXh3WvSbGSggdOeJUPVBim6CovpOkXA.ttf"},"Cookie":{"regular":"http://fonts.gstatic.com/s/cookie/v12/syky-y18lb0tSbfNlQCT9tPdpw.ttf"},"Noto Serif SC":{"200":"http://fonts.gstatic.com/s/notoserifsc/v8/H4c8BXePl9DZ0Xe7gG9cyOj7mm63SzZBEtERe7U.otf","300":"http://fonts.gstatic.com/s/notoserifsc/v8/H4c8BXePl9DZ0Xe7gG9cyOj7mgq0SzZBEtERe7U.otf","500":"http://fonts.gstatic.com/s/notoserifsc/v8/H4c8BXePl9DZ0Xe7gG9cyOj7mlK1SzZBEtERe7U.otf","600":"http://fonts.gstatic.com/s/notoserifsc/v8/H4c8BXePl9DZ0Xe7gG9cyOj7mn6ySzZBEtERe7U.otf","700":"http://fonts.gstatic.com/s/notoserifsc/v8/H4c8BXePl9DZ0Xe7gG9cyOj7mhqzSzZBEtERe7U.otf","900":"http://fonts.gstatic.com/s/notoserifsc/v8/H4c8BXePl9DZ0Xe7gG9cyOj7miKxSzZBEtERe7U.otf","regular":"http://fonts.gstatic.com/s/notoserifsc/v8/H4chBXePl9DZ0Xe7gG9cyOj7oqCcbzhqDtg.otf"},"Changa":{"200":"http://fonts.gstatic.com/s/changa/v11/2-c79JNi2YuVOUcOarRPgnNGooxCZy2xQjDp9htf1ZM.ttf","300":"http://fonts.gstatic.com/s/changa/v11/2-c79JNi2YuVOUcOarRPgnNGooxCZ_OxQjDp9htf1ZM.ttf","500":"http://fonts.gstatic.com/s/changa/v11/2-c79JNi2YuVOUcOarRPgnNGooxCZ5-xQjDp9htf1ZM.ttf","600":"http://fonts.gstatic.com/s/changa/v11/2-c79JNi2YuVOUcOarRPgnNGooxCZ3O2QjDp9htf1ZM.ttf","700":"http://fonts.gstatic.com/s/changa/v11/2-c79JNi2YuVOUcOarRPgnNGooxCZ0q2QjDp9htf1ZM.ttf","800":"http://fonts.gstatic.com/s/changa/v11/2-c79JNi2YuVOUcOarRPgnNGooxCZy22QjDp9htf1ZM.ttf","regular":"http://fonts.gstatic.com/s/changa/v11/2-c79JNi2YuVOUcOarRPgnNGooxCZ62xQjDp9htf1ZM.ttf"},"Josefin Slab":{"100":"http://fonts.gstatic.com/s/josefinslab/v13/lW-swjwOK3Ps5GSJlNNkMalNpiZe_ldbOR4W71mtd3k3K6CcEyI.ttf","200":"http://fonts.gstatic.com/s/josefinslab/v13/lW-swjwOK3Ps5GSJlNNkMalNpiZe_ldbOR4W79msd3k3K6CcEyI.ttf","300":"http://fonts.gstatic.com/s/josefinslab/v13/lW-swjwOK3Ps5GSJlNNkMalNpiZe_ldbOR4W7wesd3k3K6CcEyI.ttf","500":"http://fonts.gstatic.com/s/josefinslab/v13/lW-swjwOK3Ps5GSJlNNkMalNpiZe_ldbOR4W72usd3k3K6CcEyI.ttf","600":"http://fonts.gstatic.com/s/josefinslab/v13/lW-swjwOK3Ps5GSJlNNkMalNpiZe_ldbOR4W74erd3k3K6CcEyI.ttf","700":"http://fonts.gstatic.com/s/josefinslab/v13/lW-swjwOK3Ps5GSJlNNkMalNpiZe_ldbOR4W776rd3k3K6CcEyI.ttf","regular":"http://fonts.gstatic.com/s/josefinslab/v13/lW-swjwOK3Ps5GSJlNNkMalNpiZe_ldbOR4W71msd3k3K6CcEyI.ttf","100italic":"http://fonts.gstatic.com/s/josefinslab/v13/lW-qwjwOK3Ps5GSJlNNkMalnrxShJj4wo7AR-pHvnzs9L4KZAyK43w.ttf","200italic":"http://fonts.gstatic.com/s/josefinslab/v13/lW-qwjwOK3Ps5GSJlNNkMalnrxShJj4wo7AR-pHvHzo9L4KZAyK43w.ttf","300italic":"http://fonts.gstatic.com/s/josefinslab/v13/lW-qwjwOK3Ps5GSJlNNkMalnrxShJj4wo7AR-pHvwTo9L4KZAyK43w.ttf","italic":"http://fonts.gstatic.com/s/josefinslab/v13/lW-qwjwOK3Ps5GSJlNNkMalnrxShJj4wo7AR-pHvnzo9L4KZAyK43w.ttf","500italic":"http://fonts.gstatic.com/s/josefinslab/v13/lW-qwjwOK3Ps5GSJlNNkMalnrxShJj4wo7AR-pHvrTo9L4KZAyK43w.ttf","600italic":"http://fonts.gstatic.com/s/josefinslab/v13/lW-qwjwOK3Ps5GSJlNNkMalnrxShJj4wo7AR-pHvQT09L4KZAyK43w.ttf","700italic":"http://fonts.gstatic.com/s/josefinslab/v13/lW-qwjwOK3Ps5GSJlNNkMalnrxShJj4wo7AR-pHveD09L4KZAyK43w.ttf"},"Quattrocento":{"700":"http://fonts.gstatic.com/s/quattrocento/v12/OZpbg_xvsDZQL_LKIF7q4jP_eE3fd6PZsXcM9w.ttf","regular":"http://fonts.gstatic.com/s/quattrocento/v12/OZpEg_xvsDZQL_LKIF7q4jPHxGL7f4jFuA.ttf"},"Playfair Display SC":{"700":"http://fonts.gstatic.com/s/playfairdisplaysc/v10/ke80OhoaMkR6-hSn7kbHVoFf7ZfgMPr_nQIpNcsdL4IUMyE.ttf","900":"http://fonts.gstatic.com/s/playfairdisplaysc/v10/ke80OhoaMkR6-hSn7kbHVoFf7ZfgMPr_nTorNcsdL4IUMyE.ttf","regular":"http://fonts.gstatic.com/s/playfairdisplaysc/v10/ke85OhoaMkR6-hSn7kbHVoFf7ZfgMPr_pb4GEcM2M4s.ttf","italic":"http://fonts.gstatic.com/s/playfairdisplaysc/v10/ke87OhoaMkR6-hSn7kbHVoFf7ZfgMPr_lbwMFeEzI4sNKg.ttf","700italic":"http://fonts.gstatic.com/s/playfairdisplaysc/v10/ke82OhoaMkR6-hSn7kbHVoFf7ZfgMPr_lbw0qc4XK6ARIyH5IA.ttf","900italic":"http://fonts.gstatic.com/s/playfairdisplaysc/v10/ke82OhoaMkR6-hSn7kbHVoFf7ZfgMPr_lbw0kcwXK6ARIyH5IA.ttf"},"Poiret One":{"regular":"http://fonts.gstatic.com/s/poiretone/v9/UqyVK80NJXN4zfRgbdfbk5lWVscxdKE.ttf"},"Passion One":{"700":"http://fonts.gstatic.com/s/passionone/v11/Pby6FmL8HhTPqbjUzux3JEMq037owpYcuH8y.ttf","900":"http://fonts.gstatic.com/s/passionone/v11/Pby6FmL8HhTPqbjUzux3JEMS0X7owpYcuH8y.ttf","regular":"http://fonts.gstatic.com/s/passionone/v11/PbynFmL8HhTPqbjUzux3JHuW_Frg6YoV.ttf"},"Unna":{"700":"http://fonts.gstatic.com/s/unna/v16/AYCLpXzofN0NMiQusGnpRFpr3vc.ttf","regular":"http://fonts.gstatic.com/s/unna/v16/AYCEpXzofN0NCpgBlGHCWFM.ttf","italic":"http://fonts.gstatic.com/s/unna/v16/AYCKpXzofN0NOpoLkEPHSFNyxw.ttf","700italic":"http://fonts.gstatic.com/s/unna/v16/AYCJpXzofN0NOpozLGzjQHhuzvef5Q.ttf"},"Sigmar One":{"regular":"http://fonts.gstatic.com/s/sigmarone/v11/co3DmWZ8kjZuErj9Ta3dk6Pjp3Di8U0.ttf"},"Ultra":{"regular":"http://fonts.gstatic.com/s/ultra/v13/zOLy4prXmrtY-tT6yLOD6NxF.ttf"},"Montserrat Alternates":{"100":"http://fonts.gstatic.com/s/montserratalternates/v12/mFThWacfw6zH4dthXcyms1lPpC8I_b0juU0xiKfVKphL03l4.ttf","200":"http://fonts.gstatic.com/s/montserratalternates/v12/mFTiWacfw6zH4dthXcyms1lPpC8I_b0juU0xJIb1ALZH2mBhkw.ttf","300":"http://fonts.gstatic.com/s/montserratalternates/v12/mFTiWacfw6zH4dthXcyms1lPpC8I_b0juU0xQIX1ALZH2mBhkw.ttf","500":"http://fonts.gstatic.com/s/montserratalternates/v12/mFTiWacfw6zH4dthXcyms1lPpC8I_b0juU0xGIT1ALZH2mBhkw.ttf","600":"http://fonts.gstatic.com/s/montserratalternates/v12/mFTiWacfw6zH4dthXcyms1lPpC8I_b0juU0xNIP1ALZH2mBhkw.ttf","700":"http://fonts.gstatic.com/s/montserratalternates/v12/mFTiWacfw6zH4dthXcyms1lPpC8I_b0juU0xUIL1ALZH2mBhkw.ttf","800":"http://fonts.gstatic.com/s/montserratalternates/v12/mFTiWacfw6zH4dthXcyms1lPpC8I_b0juU0xTIH1ALZH2mBhkw.ttf","900":"http://fonts.gstatic.com/s/montserratalternates/v12/mFTiWacfw6zH4dthXcyms1lPpC8I_b0juU0xaID1ALZH2mBhkw.ttf","100italic":"http://fonts.gstatic.com/s/montserratalternates/v12/mFTjWacfw6zH4dthXcyms1lPpC8I_b0juU057p-xIJxp1ml4imo.ttf","200italic":"http://fonts.gstatic.com/s/montserratalternates/v12/mFTkWacfw6zH4dthXcyms1lPpC8I_b0juU057p8dAbxD-GVxk3Nd.ttf","300italic":"http://fonts.gstatic.com/s/montserratalternates/v12/mFTkWacfw6zH4dthXcyms1lPpC8I_b0juU057p95ArxD-GVxk3Nd.ttf","regular":"http://fonts.gstatic.com/s/montserratalternates/v12/mFTvWacfw6zH4dthXcyms1lPpC8I_b0juU0J7K3RCJ1b0w.ttf","italic":"http://fonts.gstatic.com/s/montserratalternates/v12/mFThWacfw6zH4dthXcyms1lPpC8I_b0juU057qfVKphL03l4.ttf","500italic":"http://fonts.gstatic.com/s/montserratalternates/v12/mFTkWacfw6zH4dthXcyms1lPpC8I_b0juU057p8hA7xD-GVxk3Nd.ttf","600italic":"http://fonts.gstatic.com/s/montserratalternates/v12/mFTkWacfw6zH4dthXcyms1lPpC8I_b0juU057p8NBLxD-GVxk3Nd.ttf","700italic":"http://fonts.gstatic.com/s/montserratalternates/v12/mFTkWacfw6zH4dthXcyms1lPpC8I_b0juU057p9pBbxD-GVxk3Nd.ttf","800italic":"http://fonts.gstatic.com/s/montserratalternates/v12/mFTkWacfw6zH4dthXcyms1lPpC8I_b0juU057p91BrxD-GVxk3Nd.ttf","900italic":"http://fonts.gstatic.com/s/montserratalternates/v12/mFTkWacfw6zH4dthXcyms1lPpC8I_b0juU057p9RB7xD-GVxk3Nd.ttf"},"Cormorant":{"300":"http://fonts.gstatic.com/s/cormorant/v11/H4cgBXOCl9bbnla_nHIiRLmYgoyyYzFzFw.ttf","500":"http://fonts.gstatic.com/s/cormorant/v11/H4cgBXOCl9bbnla_nHIiHLiYgoyyYzFzFw.ttf","600":"http://fonts.gstatic.com/s/cormorant/v11/H4cgBXOCl9bbnla_nHIiML-YgoyyYzFzFw.ttf","700":"http://fonts.gstatic.com/s/cormorant/v11/H4cgBXOCl9bbnla_nHIiVL6YgoyyYzFzFw.ttf","300italic":"http://fonts.gstatic.com/s/cormorant/v11/H4c-BXOCl9bbnla_nHIq6qMUgIa2QTRjF8ER.ttf","regular":"http://fonts.gstatic.com/s/cormorant/v11/H4clBXOCl9bbnla_nHIa6JG8iqeuag.ttf","italic":"http://fonts.gstatic.com/s/cormorant/v11/H4cjBXOCl9bbnla_nHIq6pu4qKK-aihq.ttf","500italic":"http://fonts.gstatic.com/s/cormorant/v11/H4c-BXOCl9bbnla_nHIq6qNMgYa2QTRjF8ER.ttf","600italic":"http://fonts.gstatic.com/s/cormorant/v11/H4c-BXOCl9bbnla_nHIq6qNghoa2QTRjF8ER.ttf","700italic":"http://fonts.gstatic.com/s/cormorant/v11/H4c-BXOCl9bbnla_nHIq6qMEh4a2QTRjF8ER.ttf"},"Faustina":{"500":"http://fonts.gstatic.com/s/faustina/v8/XLY4IZPxYpJfTbZAFXWzNT2SO8wpWHlssIEvGVWWe8tbEg.ttf","600":"http://fonts.gstatic.com/s/faustina/v8/XLY4IZPxYpJfTbZAFXWzNT2SO8wpWHlsXIYvGVWWe8tbEg.ttf","700":"http://fonts.gstatic.com/s/faustina/v8/XLY4IZPxYpJfTbZAFXWzNT2SO8wpWHlsZYYvGVWWe8tbEg.ttf","regular":"http://fonts.gstatic.com/s/faustina/v8/XLY4IZPxYpJfTbZAFXWzNT2SO8wpWHlsgoEvGVWWe8tbEg.ttf","italic":"http://fonts.gstatic.com/s/faustina/v8/XLY2IZPxYpJfTbZAFV-6B8JKUqez9n55SsLHWl-SWc5LEnoF.ttf","500italic":"http://fonts.gstatic.com/s/faustina/v8/XLY2IZPxYpJfTbZAFV-6B8JKUqez9n55SsL1Wl-SWc5LEnoF.ttf","600italic":"http://fonts.gstatic.com/s/faustina/v8/XLY2IZPxYpJfTbZAFV-6B8JKUqez9n55SsIZXV-SWc5LEnoF.ttf","700italic":"http://fonts.gstatic.com/s/faustina/v8/XLY2IZPxYpJfTbZAFV-6B8JKUqez9n55SsIgXV-SWc5LEnoF.ttf"},"Press Start 2P":{"regular":"http://fonts.gstatic.com/s/pressstart2p/v9/e3t4euO8T-267oIAQAu6jDQyK0nSgPJE4580.ttf"},"Vidaloka":{"regular":"http://fonts.gstatic.com/s/vidaloka/v13/7cHrv4c3ipenMKlEass8yn4hnCci.ttf"},"Istok Web":{"700":"http://fonts.gstatic.com/s/istokweb/v15/3qTqojGmgSyUukBzKslhvU5a_mkUYBfcMw.ttf","regular":"http://fonts.gstatic.com/s/istokweb/v15/3qTvojGmgSyUukBzKslZAWF-9kIIaQ.ttf","italic":"http://fonts.gstatic.com/s/istokweb/v15/3qTpojGmgSyUukBzKslpA2t61EcYaQ7F.ttf","700italic":"http://fonts.gstatic.com/s/istokweb/v15/3qT0ojGmgSyUukBzKslpA1PG-2MQQhLMMygN.ttf"},"Bangers":{"regular":"http://fonts.gstatic.com/s/bangers/v13/FeVQS0BTqb0h60ACL5la2bxii28.ttf"},"Saira Condensed":{"100":"http://fonts.gstatic.com/s/sairacondensed/v6/EJRMQgErUN8XuHNEtX81i9TmEkrnwetA2omSrzS8.ttf","200":"http://fonts.gstatic.com/s/sairacondensed/v6/EJRLQgErUN8XuHNEtX81i9TmEkrnbcpg8Keepi2lHw.ttf","300":"http://fonts.gstatic.com/s/sairacondensed/v6/EJRLQgErUN8XuHNEtX81i9TmEkrnCclg8Keepi2lHw.ttf","500":"http://fonts.gstatic.com/s/sairacondensed/v6/EJRLQgErUN8XuHNEtX81i9TmEkrnUchg8Keepi2lHw.ttf","600":"http://fonts.gstatic.com/s/sairacondensed/v6/EJRLQgErUN8XuHNEtX81i9TmEkrnfc9g8Keepi2lHw.ttf","700":"http://fonts.gstatic.com/s/sairacondensed/v6/EJRLQgErUN8XuHNEtX81i9TmEkrnGc5g8Keepi2lHw.ttf","800":"http://fonts.gstatic.com/s/sairacondensed/v6/EJRLQgErUN8XuHNEtX81i9TmEkrnBc1g8Keepi2lHw.ttf","900":"http://fonts.gstatic.com/s/sairacondensed/v6/EJRLQgErUN8XuHNEtX81i9TmEkrnIcxg8Keepi2lHw.ttf","regular":"http://fonts.gstatic.com/s/sairacondensed/v6/EJROQgErUN8XuHNEtX81i9TmEkrfpeFE-IyCrw.ttf"},"Neuton":{"200":"http://fonts.gstatic.com/s/neuton/v13/UMBQrPtMoH62xUZKAKkfegD5Drog6Q.ttf","300":"http://fonts.gstatic.com/s/neuton/v13/UMBQrPtMoH62xUZKZKofegD5Drog6Q.ttf","700":"http://fonts.gstatic.com/s/neuton/v13/UMBQrPtMoH62xUZKdK0fegD5Drog6Q.ttf","800":"http://fonts.gstatic.com/s/neuton/v13/UMBQrPtMoH62xUZKaK4fegD5Drog6Q.ttf","regular":"http://fonts.gstatic.com/s/neuton/v13/UMBTrPtMoH62xUZyyII7civlBw.ttf","italic":"http://fonts.gstatic.com/s/neuton/v13/UMBRrPtMoH62xUZCyog_UC71B6M5.ttf"},"Sanchez":{"regular":"http://fonts.gstatic.com/s/sanchez/v8/Ycm2sZJORluHnXbITm5b_BwE1l0.ttf","italic":"http://fonts.gstatic.com/s/sanchez/v8/Ycm0sZJORluHnXbIfmxR-D4Bxl3gkw.ttf"},"Mitr":{"200":"http://fonts.gstatic.com/s/mitr/v6/pxiEypw5ucZF8fMZFJDUc1NECPY.ttf","300":"http://fonts.gstatic.com/s/mitr/v6/pxiEypw5ucZF8ZcaFJDUc1NECPY.ttf","500":"http://fonts.gstatic.com/s/mitr/v6/pxiEypw5ucZF8c8bFJDUc1NECPY.ttf","600":"http://fonts.gstatic.com/s/mitr/v6/pxiEypw5ucZF8eMcFJDUc1NECPY.ttf","700":"http://fonts.gstatic.com/s/mitr/v6/pxiEypw5ucZF8YcdFJDUc1NECPY.ttf","regular":"http://fonts.gstatic.com/s/mitr/v6/pxiLypw5ucZFyTsyMJj_b1o.ttf"},"Taviraj":{"100":"http://fonts.gstatic.com/s/taviraj/v6/ahcbv8Cj3ylylTXzRIorV8N1jU2gog.ttf","200":"http://fonts.gstatic.com/s/taviraj/v6/ahccv8Cj3ylylTXzRCYKd-lbgUS5u0s.ttf","300":"http://fonts.gstatic.com/s/taviraj/v6/ahccv8Cj3ylylTXzREIJd-lbgUS5u0s.ttf","500":"http://fonts.gstatic.com/s/taviraj/v6/ahccv8Cj3ylylTXzRBoId-lbgUS5u0s.ttf","600":"http://fonts.gstatic.com/s/taviraj/v6/ahccv8Cj3ylylTXzRDYPd-lbgUS5u0s.ttf","700":"http://fonts.gstatic.com/s/taviraj/v6/ahccv8Cj3ylylTXzRFIOd-lbgUS5u0s.ttf","800":"http://fonts.gstatic.com/s/taviraj/v6/ahccv8Cj3ylylTXzRE4Nd-lbgUS5u0s.ttf","900":"http://fonts.gstatic.com/s/taviraj/v6/ahccv8Cj3ylylTXzRGoMd-lbgUS5u0s.ttf","100italic":"http://fonts.gstatic.com/s/taviraj/v6/ahcdv8Cj3ylylTXzTOwTM8lxr0iwolLl.ttf","200italic":"http://fonts.gstatic.com/s/taviraj/v6/ahcev8Cj3ylylTXzTOwTn-hRhWa8q0v8ag.ttf","300italic":"http://fonts.gstatic.com/s/taviraj/v6/ahcev8Cj3ylylTXzTOwT--tRhWa8q0v8ag.ttf","regular":"http://fonts.gstatic.com/s/taviraj/v6/ahcZv8Cj3ylylTXzfO4hU-FwnU0.ttf","italic":"http://fonts.gstatic.com/s/taviraj/v6/ahcbv8Cj3ylylTXzTOwrV8N1jU2gog.ttf","500italic":"http://fonts.gstatic.com/s/taviraj/v6/ahcev8Cj3ylylTXzTOwTo-pRhWa8q0v8ag.ttf","600italic":"http://fonts.gstatic.com/s/taviraj/v6/ahcev8Cj3ylylTXzTOwTj-1RhWa8q0v8ag.ttf","700italic":"http://fonts.gstatic.com/s/taviraj/v6/ahcev8Cj3ylylTXzTOwT6-xRhWa8q0v8ag.ttf","800italic":"http://fonts.gstatic.com/s/taviraj/v6/ahcev8Cj3ylylTXzTOwT9-9RhWa8q0v8ag.ttf","900italic":"http://fonts.gstatic.com/s/taviraj/v6/ahcev8Cj3ylylTXzTOwT0-5RhWa8q0v8ag.ttf"},"Advent Pro":{"100":"http://fonts.gstatic.com/s/adventpro/v11/V8mCoQfxVT4Dvddr_yOwjVmtLZxcBtItFw.ttf","200":"http://fonts.gstatic.com/s/adventpro/v11/V8mDoQfxVT4Dvddr_yOwjfWMDbZyCts0DqQ.ttf","300":"http://fonts.gstatic.com/s/adventpro/v11/V8mDoQfxVT4Dvddr_yOwjZGPDbZyCts0DqQ.ttf","500":"http://fonts.gstatic.com/s/adventpro/v11/V8mDoQfxVT4Dvddr_yOwjcmODbZyCts0DqQ.ttf","600":"http://fonts.gstatic.com/s/adventpro/v11/V8mDoQfxVT4Dvddr_yOwjeWJDbZyCts0DqQ.ttf","700":"http://fonts.gstatic.com/s/adventpro/v11/V8mDoQfxVT4Dvddr_yOwjYGIDbZyCts0DqQ.ttf","regular":"http://fonts.gstatic.com/s/adventpro/v11/V8mAoQfxVT4Dvddr_yOwtT2nKb5ZFtI.ttf"},"Philosopher":{"700":"http://fonts.gstatic.com/s/philosopher/v14/vEFI2_5QCwIS4_Dhez5jcWjVamgc-NaXXq7H.ttf","regular":"http://fonts.gstatic.com/s/philosopher/v14/vEFV2_5QCwIS4_Dhez5jcVBpRUwU08qe.ttf","italic":"http://fonts.gstatic.com/s/philosopher/v14/vEFX2_5QCwIS4_Dhez5jcWBrT0g21tqeR7c.ttf","700italic":"http://fonts.gstatic.com/s/philosopher/v14/vEFK2_5QCwIS4_Dhez5jcWBrd_QZ8tK1W77HtMo.ttf"},"Arapey":{"regular":"http://fonts.gstatic.com/s/arapey/v9/-W__XJn-UDDA2RC6Z9AcZkIzeg.ttf","italic":"http://fonts.gstatic.com/s/arapey/v9/-W_9XJn-UDDA2RCKZdoYREcjeo0k.ttf"},"Space Mono":{"700":"http://fonts.gstatic.com/s/spacemono/v6/i7dMIFZifjKcF5UAWdDRaPpZYFKQHwyVd3U.ttf","regular":"http://fonts.gstatic.com/s/spacemono/v6/i7dPIFZifjKcF5UAWdDRUEZ2RFq7AwU.ttf","italic":"http://fonts.gstatic.com/s/spacemono/v6/i7dNIFZifjKcF5UAWdDRYER8QHi-EwWMbg.ttf","700italic":"http://fonts.gstatic.com/s/spacemono/v6/i7dSIFZifjKcF5UAWdDRYERE_FeaGy6QZ3WfYg.ttf"},"Mate SC":{"regular":"http://fonts.gstatic.com/s/matesc/v11/-nF8OGQ1-uoVr2wKyiXZ95OkJwA.ttf"},"BenchNine":{"300":"http://fonts.gstatic.com/s/benchnine/v9/ahcev8612zF4jxrwMosT--tRhWa8q0v8ag.ttf","700":"http://fonts.gstatic.com/s/benchnine/v9/ahcev8612zF4jxrwMosT6-xRhWa8q0v8ag.ttf","regular":"http://fonts.gstatic.com/s/benchnine/v9/ahcbv8612zF4jxrwMosrV8N1jU2gog.ttf"},"Monoton":{"regular":"http://fonts.gstatic.com/s/monoton/v10/5h1aiZUrOngCibe4fkbBQ2S7FU8.ttf"},"Crimson Pro":{"200":"http://fonts.gstatic.com/s/crimsonpro/v14/q5uUsoa5M_tv7IihmnkabC5XiXCAlXGks1WZTm18OJE_VNWoyQ.ttf","300":"http://fonts.gstatic.com/s/crimsonpro/v14/q5uUsoa5M_tv7IihmnkabC5XiXCAlXGks1WZkG18OJE_VNWoyQ.ttf","500":"http://fonts.gstatic.com/s/crimsonpro/v14/q5uUsoa5M_tv7IihmnkabC5XiXCAlXGks1WZ_G18OJE_VNWoyQ.ttf","600":"http://fonts.gstatic.com/s/crimsonpro/v14/q5uUsoa5M_tv7IihmnkabC5XiXCAlXGks1WZEGp8OJE_VNWoyQ.ttf","700":"http://fonts.gstatic.com/s/crimsonpro/v14/q5uUsoa5M_tv7IihmnkabC5XiXCAlXGks1WZKWp8OJE_VNWoyQ.ttf","800":"http://fonts.gstatic.com/s/crimsonpro/v14/q5uUsoa5M_tv7IihmnkabC5XiXCAlXGks1WZTmp8OJE_VNWoyQ.ttf","900":"http://fonts.gstatic.com/s/crimsonpro/v14/q5uUsoa5M_tv7IihmnkabC5XiXCAlXGks1WZZ2p8OJE_VNWoyQ.ttf","regular":"http://fonts.gstatic.com/s/crimsonpro/v14/q5uUsoa5M_tv7IihmnkabC5XiXCAlXGks1WZzm18OJE_VNWoyQ.ttf","200italic":"http://fonts.gstatic.com/s/crimsonpro/v14/q5uSsoa5M_tv7IihmnkabAReu49Y_Bo-HVKMBi4Ue5s7dtC4yZNE.ttf","300italic":"http://fonts.gstatic.com/s/crimsonpro/v14/q5uSsoa5M_tv7IihmnkabAReu49Y_Bo-HVKMBi7Ke5s7dtC4yZNE.ttf","italic":"http://fonts.gstatic.com/s/crimsonpro/v14/q5uSsoa5M_tv7IihmnkabAReu49Y_Bo-HVKMBi6Ue5s7dtC4yZNE.ttf","500italic":"http://fonts.gstatic.com/s/crimsonpro/v14/q5uSsoa5M_tv7IihmnkabAReu49Y_Bo-HVKMBi6me5s7dtC4yZNE.ttf","600italic":"http://fonts.gstatic.com/s/crimsonpro/v14/q5uSsoa5M_tv7IihmnkabAReu49Y_Bo-HVKMBi5KfJs7dtC4yZNE.ttf","700italic":"http://fonts.gstatic.com/s/crimsonpro/v14/q5uSsoa5M_tv7IihmnkabAReu49Y_Bo-HVKMBi5zfJs7dtC4yZNE.ttf","800italic":"http://fonts.gstatic.com/s/crimsonpro/v14/q5uSsoa5M_tv7IihmnkabAReu49Y_Bo-HVKMBi4UfJs7dtC4yZNE.ttf","900italic":"http://fonts.gstatic.com/s/crimsonpro/v14/q5uSsoa5M_tv7IihmnkabAReu49Y_Bo-HVKMBi49fJs7dtC4yZNE.ttf"},"Luckiest Guy":{"regular":"http://fonts.gstatic.com/s/luckiestguy/v11/_gP_1RrxsjcxVyin9l9n_j2RStR3qDpraA.ttf"},"Fira Sans Extra Condensed":{"100":"http://fonts.gstatic.com/s/firasansextracondensed/v5/NaPMcYDaAO5dirw6IaFn7lPJFqXmS-M9Atn3wgda3Zyuv1WarE9ncg.ttf","200":"http://fonts.gstatic.com/s/firasansextracondensed/v5/NaPPcYDaAO5dirw6IaFn7lPJFqXmS-M9Atn3wgda3TCPn3-0oEZ-a2Q.ttf","300":"http://fonts.gstatic.com/s/firasansextracondensed/v5/NaPPcYDaAO5dirw6IaFn7lPJFqXmS-M9Atn3wgda3VSMn3-0oEZ-a2Q.ttf","500":"http://fonts.gstatic.com/s/firasansextracondensed/v5/NaPPcYDaAO5dirw6IaFn7lPJFqXmS-M9Atn3wgda3QyNn3-0oEZ-a2Q.ttf","600":"http://fonts.gstatic.com/s/firasansextracondensed/v5/NaPPcYDaAO5dirw6IaFn7lPJFqXmS-M9Atn3wgda3SCKn3-0oEZ-a2Q.ttf","700":"http://fonts.gstatic.com/s/firasansextracondensed/v5/NaPPcYDaAO5dirw6IaFn7lPJFqXmS-M9Atn3wgda3USLn3-0oEZ-a2Q.ttf","800":"http://fonts.gstatic.com/s/firasansextracondensed/v5/NaPPcYDaAO5dirw6IaFn7lPJFqXmS-M9Atn3wgda3ViIn3-0oEZ-a2Q.ttf","900":"http://fonts.gstatic.com/s/firasansextracondensed/v5/NaPPcYDaAO5dirw6IaFn7lPJFqXmS-M9Atn3wgda3XyJn3-0oEZ-a2Q.ttf","100italic":"http://fonts.gstatic.com/s/firasansextracondensed/v5/NaPOcYDaAO5dirw6IaFn7lPJFqXmS-M9Atn3wgda1fqW21-ejkp3cn22.ttf","200italic":"http://fonts.gstatic.com/s/firasansextracondensed/v5/NaPxcYDaAO5dirw6IaFn7lPJFqXmS-M9Atn3wgda1fqWd36-pGR7e2SvJQ.ttf","300italic":"http://fonts.gstatic.com/s/firasansextracondensed/v5/NaPxcYDaAO5dirw6IaFn7lPJFqXmS-M9Atn3wgda1fqWE32-pGR7e2SvJQ.ttf","regular":"http://fonts.gstatic.com/s/firasansextracondensed/v5/NaPKcYDaAO5dirw6IaFn7lPJFqXmS-M9Atn3wgda5fiku3efvE8.ttf","italic":"http://fonts.gstatic.com/s/firasansextracondensed/v5/NaPMcYDaAO5dirw6IaFn7lPJFqXmS-M9Atn3wgda1fquv1WarE9ncg.ttf","500italic":"http://fonts.gstatic.com/s/firasansextracondensed/v5/NaPxcYDaAO5dirw6IaFn7lPJFqXmS-M9Atn3wgda1fqWS3y-pGR7e2SvJQ.ttf","600italic":"http://fonts.gstatic.com/s/firasansextracondensed/v5/NaPxcYDaAO5dirw6IaFn7lPJFqXmS-M9Atn3wgda1fqWZ3u-pGR7e2SvJQ.ttf","700italic":"http://fonts.gstatic.com/s/firasansextracondensed/v5/NaPxcYDaAO5dirw6IaFn7lPJFqXmS-M9Atn3wgda1fqWA3q-pGR7e2SvJQ.ttf","800italic":"http://fonts.gstatic.com/s/firasansextracondensed/v5/NaPxcYDaAO5dirw6IaFn7lPJFqXmS-M9Atn3wgda1fqWH3m-pGR7e2SvJQ.ttf","900italic":"http://fonts.gstatic.com/s/firasansextracondensed/v5/NaPxcYDaAO5dirw6IaFn7lPJFqXmS-M9Atn3wgda1fqWO3i-pGR7e2SvJQ.ttf"},"Bai Jamjuree":{"200":"http://fonts.gstatic.com/s/baijamjuree/v4/LDIqapSCOBt_aeQQ7ftydoa0kePuk5A1-yiSgA.ttf","300":"http://fonts.gstatic.com/s/baijamjuree/v4/LDIqapSCOBt_aeQQ7ftydoa09eDuk5A1-yiSgA.ttf","500":"http://fonts.gstatic.com/s/baijamjuree/v4/LDIqapSCOBt_aeQQ7ftydoa0reHuk5A1-yiSgA.ttf","600":"http://fonts.gstatic.com/s/baijamjuree/v4/LDIqapSCOBt_aeQQ7ftydoa0gebuk5A1-yiSgA.ttf","700":"http://fonts.gstatic.com/s/baijamjuree/v4/LDIqapSCOBt_aeQQ7ftydoa05efuk5A1-yiSgA.ttf","200italic":"http://fonts.gstatic.com/s/baijamjuree/v4/LDIoapSCOBt_aeQQ7ftydoa8W_oGkpox2S2CgOva.ttf","300italic":"http://fonts.gstatic.com/s/baijamjuree/v4/LDIoapSCOBt_aeQQ7ftydoa8W_pikZox2S2CgOva.ttf","regular":"http://fonts.gstatic.com/s/baijamjuree/v4/LDI1apSCOBt_aeQQ7ftydoaMWcjKm7sp8g.ttf","italic":"http://fonts.gstatic.com/s/baijamjuree/v4/LDIrapSCOBt_aeQQ7ftydoa8W8LOub458jGL.ttf","500italic":"http://fonts.gstatic.com/s/baijamjuree/v4/LDIoapSCOBt_aeQQ7ftydoa8W_o6kJox2S2CgOva.ttf","600italic":"http://fonts.gstatic.com/s/baijamjuree/v4/LDIoapSCOBt_aeQQ7ftydoa8W_oWl5ox2S2CgOva.ttf","700italic":"http://fonts.gstatic.com/s/baijamjuree/v4/LDIoapSCOBt_aeQQ7ftydoa8W_pylpox2S2CgOva.ttf"},"Khand":{"300":"http://fonts.gstatic.com/s/khand/v9/TwMN-IINQlQQ0bL5cFE3ZwaH__-C.ttf","500":"http://fonts.gstatic.com/s/khand/v9/TwMN-IINQlQQ0bKhcVE3ZwaH__-C.ttf","600":"http://fonts.gstatic.com/s/khand/v9/TwMN-IINQlQQ0bKNdlE3ZwaH__-C.ttf","700":"http://fonts.gstatic.com/s/khand/v9/TwMN-IINQlQQ0bLpd1E3ZwaH__-C.ttf","regular":"http://fonts.gstatic.com/s/khand/v9/TwMA-IINQlQQ0YpVWHU_TBqO.ttf"},"Economica":{"700":"http://fonts.gstatic.com/s/economica/v8/Qw3aZQZaHCLgIWa29ZBTjeckCnZ5dHw8iw.ttf","regular":"http://fonts.gstatic.com/s/economica/v8/Qw3fZQZaHCLgIWa29ZBrMcgAAl1lfQ.ttf","italic":"http://fonts.gstatic.com/s/economica/v8/Qw3ZZQZaHCLgIWa29ZBbM8IEIFh1fWUl.ttf","700italic":"http://fonts.gstatic.com/s/economica/v8/Qw3EZQZaHCLgIWa29ZBbM_q4D3x9Vnksi4M7.ttf"},"Merienda":{"700":"http://fonts.gstatic.com/s/merienda/v9/gNMAW3x8Qoy5_mf8uWu-Fa-y1sfpPES4.ttf","regular":"http://fonts.gstatic.com/s/merienda/v9/gNMHW3x8Qoy5_mf8uVMCOou6_dvg.ttf"},"Itim":{"regular":"http://fonts.gstatic.com/s/itim/v5/0nknC9ziJOYewARKkc7ZdwU.ttf"},"Handlee":{"regular":"http://fonts.gstatic.com/s/handlee/v9/-F6xfjBsISg9aMakDmr6oilJ3ik.ttf"},"Lusitana":{"700":"http://fonts.gstatic.com/s/lusitana/v8/CSR74z9ShvucWzsMKyDmaccqYtd2vfwk.ttf","regular":"http://fonts.gstatic.com/s/lusitana/v8/CSR84z9ShvucWzsMKxhaRuMiSct_.ttf"},"Karma":{"300":"http://fonts.gstatic.com/s/karma/v11/va9F4kzAzMZRGLjDY8Z_uqzGQC_-.ttf","500":"http://fonts.gstatic.com/s/karma/v11/va9F4kzAzMZRGLibYsZ_uqzGQC_-.ttf","600":"http://fonts.gstatic.com/s/karma/v11/va9F4kzAzMZRGLi3ZcZ_uqzGQC_-.ttf","700":"http://fonts.gstatic.com/s/karma/v11/va9F4kzAzMZRGLjTZMZ_uqzGQC_-.ttf","regular":"http://fonts.gstatic.com/s/karma/v11/va9I4kzAzMZRGIBvS-J3kbDP.ttf"},"Big Shoulders Display":{"100":"http://fonts.gstatic.com/s/bigshouldersdisplay/v4/fC1xPZJEZG-e9gHhdI4-NBbfd2ys3SjJCx1Ur9DrDJYM2lAZ.ttf","300":"http://fonts.gstatic.com/s/bigshouldersdisplay/v4/fC1yPZJEZG-e9gHhdI4-NBbfd2ys3SjJCx1UZ_LLJrgA00kAdA.ttf","500":"http://fonts.gstatic.com/s/bigshouldersdisplay/v4/fC1yPZJEZG-e9gHhdI4-NBbfd2ys3SjJCx1UP_PLJrgA00kAdA.ttf","600":"http://fonts.gstatic.com/s/bigshouldersdisplay/v4/fC1yPZJEZG-e9gHhdI4-NBbfd2ys3SjJCx1UE_TLJrgA00kAdA.ttf","700":"http://fonts.gstatic.com/s/bigshouldersdisplay/v4/fC1yPZJEZG-e9gHhdI4-NBbfd2ys3SjJCx1Ud_XLJrgA00kAdA.ttf","800":"http://fonts.gstatic.com/s/bigshouldersdisplay/v4/fC1yPZJEZG-e9gHhdI4-NBbfd2ys3SjJCx1Ua_bLJrgA00kAdA.ttf","900":"http://fonts.gstatic.com/s/bigshouldersdisplay/v4/fC1yPZJEZG-e9gHhdI4-NBbfd2ys3SjJCx1UT_fLJrgA00kAdA.ttf","regular":"http://fonts.gstatic.com/s/bigshouldersdisplay/v4/fC1_PZJEZG-e9gHhdI4-NBbfd2ys3SjJCx1sy9rvLpMc2g.ttf"},"Marcellus":{"regular":"http://fonts.gstatic.com/s/marcellus/v8/wEO_EBrOk8hQLDvIAF8FUfAL3EsHiA.ttf"},"Tangerine":{"700":"http://fonts.gstatic.com/s/tangerine/v12/Iurd6Y5j_oScZZow4VO5srNpjJtM6G0t9w.ttf","regular":"http://fonts.gstatic.com/s/tangerine/v12/IurY6Y5j_oScZZow4VOBDpxNhLBQ4Q.ttf"},"Saira":{"100":"http://fonts.gstatic.com/s/saira/v7/memWYa2wxmKQyPMrZX79wwYZQMhsyuShhKMjjbU9uXuA71rDosg7lwYmUVY.ttf","200":"http://fonts.gstatic.com/s/saira/v7/memWYa2wxmKQyPMrZX79wwYZQMhsyuShhKMjjbU9uXuA79rCosg7lwYmUVY.ttf","300":"http://fonts.gstatic.com/s/saira/v7/memWYa2wxmKQyPMrZX79wwYZQMhsyuShhKMjjbU9uXuA7wTCosg7lwYmUVY.ttf","500":"http://fonts.gstatic.com/s/saira/v7/memWYa2wxmKQyPMrZX79wwYZQMhsyuShhKMjjbU9uXuA72jCosg7lwYmUVY.ttf","600":"http://fonts.gstatic.com/s/saira/v7/memWYa2wxmKQyPMrZX79wwYZQMhsyuShhKMjjbU9uXuA74TFosg7lwYmUVY.ttf","700":"http://fonts.gstatic.com/s/saira/v7/memWYa2wxmKQyPMrZX79wwYZQMhsyuShhKMjjbU9uXuA773Fosg7lwYmUVY.ttf","800":"http://fonts.gstatic.com/s/saira/v7/memWYa2wxmKQyPMrZX79wwYZQMhsyuShhKMjjbU9uXuA79rFosg7lwYmUVY.ttf","900":"http://fonts.gstatic.com/s/saira/v7/memWYa2wxmKQyPMrZX79wwYZQMhsyuShhKMjjbU9uXuA7_PFosg7lwYmUVY.ttf","regular":"http://fonts.gstatic.com/s/saira/v7/memWYa2wxmKQyPMrZX79wwYZQMhsyuShhKMjjbU9uXuA71rCosg7lwYmUVY.ttf","100italic":"http://fonts.gstatic.com/s/saira/v7/memUYa2wxmKQyNkiV50dulWP7s95AqZTzZHcVdxWI9WH-pKBSooxkyQjQVYmxA.ttf","200italic":"http://fonts.gstatic.com/s/saira/v7/memUYa2wxmKQyNkiV50dulWP7s95AqZTzZHcVdxWI9WH-pKByosxkyQjQVYmxA.ttf","300italic":"http://fonts.gstatic.com/s/saira/v7/memUYa2wxmKQyNkiV50dulWP7s95AqZTzZHcVdxWI9WH-pKBFIsxkyQjQVYmxA.ttf","italic":"http://fonts.gstatic.com/s/saira/v7/memUYa2wxmKQyNkiV50dulWP7s95AqZTzZHcVdxWI9WH-pKBSosxkyQjQVYmxA.ttf","500italic":"http://fonts.gstatic.com/s/saira/v7/memUYa2wxmKQyNkiV50dulWP7s95AqZTzZHcVdxWI9WH-pKBeIsxkyQjQVYmxA.ttf","600italic":"http://fonts.gstatic.com/s/saira/v7/memUYa2wxmKQyNkiV50dulWP7s95AqZTzZHcVdxWI9WH-pKBlIwxkyQjQVYmxA.ttf","700italic":"http://fonts.gstatic.com/s/saira/v7/memUYa2wxmKQyNkiV50dulWP7s95AqZTzZHcVdxWI9WH-pKBrYwxkyQjQVYmxA.ttf","800italic":"http://fonts.gstatic.com/s/saira/v7/memUYa2wxmKQyNkiV50dulWP7s95AqZTzZHcVdxWI9WH-pKByowxkyQjQVYmxA.ttf","900italic":"http://fonts.gstatic.com/s/saira/v7/memUYa2wxmKQyNkiV50dulWP7s95AqZTzZHcVdxWI9WH-pKB44wxkyQjQVYmxA.ttf"},"Gudea":{"700":"http://fonts.gstatic.com/s/gudea/v10/neIIzCqgsI0mp9gz26WGHK06UY30.ttf","regular":"http://fonts.gstatic.com/s/gudea/v10/neIFzCqgsI0mp-CP9IGON7Ez.ttf","italic":"http://fonts.gstatic.com/s/gudea/v10/neILzCqgsI0mp9CN_oWsMqEzSJQ.ttf"},"PT Mono":{"regular":"http://fonts.gstatic.com/s/ptmono/v8/9oRONYoBnWILk-9ArCg5MtPyAcg.ttf"},"Alata":{"regular":"http://fonts.gstatic.com/s/alata/v2/PbytFmztEwbIofe6xKcRQEOX.ttf"},"Ubuntu Mono":{"700":"http://fonts.gstatic.com/s/ubuntumono/v10/KFO-CneDtsqEr0keqCMhbC-BL-Hyv4xGemO1.ttf","regular":"http://fonts.gstatic.com/s/ubuntumono/v10/KFOjCneDtsqEr0keqCMhbBc9AMX6lJBP.ttf","italic":"http://fonts.gstatic.com/s/ubuntumono/v10/KFOhCneDtsqEr0keqCMhbCc_CsHYkYBPY3o.ttf","700italic":"http://fonts.gstatic.com/s/ubuntumono/v10/KFO8CneDtsqEr0keqCMhbCc_Mn33tYhkf3O1GVg.ttf"},"Rock Salt":{"regular":"http://fonts.gstatic.com/s/rocksalt/v11/MwQ0bhv11fWD6QsAVOZbsEk7hbBWrA.ttf"},"El Messiri":{"500":"http://fonts.gstatic.com/s/elmessiri/v9/K2F3fZBRmr9vQ1pHEey6On6jJyrYYWOMluQ.ttf","600":"http://fonts.gstatic.com/s/elmessiri/v9/K2F3fZBRmr9vQ1pHEey6OlKkJyrYYWOMluQ.ttf","700":"http://fonts.gstatic.com/s/elmessiri/v9/K2F3fZBRmr9vQ1pHEey6OjalJyrYYWOMluQ.ttf","regular":"http://fonts.gstatic.com/s/elmessiri/v9/K2F0fZBRmr9vQ1pHEey6AoqKAyLzfWo.ttf"},"Playball":{"regular":"http://fonts.gstatic.com/s/playball/v10/TK3gWksYAxQ7jbsKcj8Dl-tPKo2t.ttf"},"Saira Semi Condensed":{"100":"http://fonts.gstatic.com/s/sairasemicondensed/v6/U9MN6c-2-nnJkHxyCjRcnMHcWVWV1cWRRXdvaOM8rXT-8V8.ttf","200":"http://fonts.gstatic.com/s/sairasemicondensed/v6/U9MM6c-2-nnJkHxyCjRcnMHcWVWV1cWRRXfDScMWg3j36Ebz.ttf","300":"http://fonts.gstatic.com/s/sairasemicondensed/v6/U9MM6c-2-nnJkHxyCjRcnMHcWVWV1cWRRXenSsMWg3j36Ebz.ttf","500":"http://fonts.gstatic.com/s/sairasemicondensed/v6/U9MM6c-2-nnJkHxyCjRcnMHcWVWV1cWRRXf_S8MWg3j36Ebz.ttf","600":"http://fonts.gstatic.com/s/sairasemicondensed/v6/U9MM6c-2-nnJkHxyCjRcnMHcWVWV1cWRRXfTTMMWg3j36Ebz.ttf","700":"http://fonts.gstatic.com/s/sairasemicondensed/v6/U9MM6c-2-nnJkHxyCjRcnMHcWVWV1cWRRXe3TcMWg3j36Ebz.ttf","800":"http://fonts.gstatic.com/s/sairasemicondensed/v6/U9MM6c-2-nnJkHxyCjRcnMHcWVWV1cWRRXerTsMWg3j36Ebz.ttf","900":"http://fonts.gstatic.com/s/sairasemicondensed/v6/U9MM6c-2-nnJkHxyCjRcnMHcWVWV1cWRRXePT8MWg3j36Ebz.ttf","regular":"http://fonts.gstatic.com/s/sairasemicondensed/v6/U9MD6c-2-nnJkHxyCjRcnMHcWVWV1cWRRU8LYuceqGT-.ttf"},"Gentium Basic":{"700":"http://fonts.gstatic.com/s/gentiumbasic/v12/WnzgHAw9aB_JD2VGQVR80We3JLasrToUbIqIfBU.ttf","regular":"http://fonts.gstatic.com/s/gentiumbasic/v12/Wnz9HAw9aB_JD2VGQVR80We3HAqDiTI_cIM.ttf","italic":"http://fonts.gstatic.com/s/gentiumbasic/v12/WnzjHAw9aB_JD2VGQVR80We3LAiJjRA6YIORZQ.ttf","700italic":"http://fonts.gstatic.com/s/gentiumbasic/v12/WnzmHAw9aB_JD2VGQVR80We3LAixMT8eaKiNbBVWkw.ttf"},"Sawarabi Gothic":{"regular":"http://fonts.gstatic.com/s/sawarabigothic/v8/x3d4ckfVaqqa-BEj-I9mE65u3k3NBSk3E2YljQ.ttf"},"Fugaz One":{"regular":"http://fonts.gstatic.com/s/fugazone/v10/rax_HiWKp9EAITukFslMBBJek0vA8A.ttf"},"Ruda":{"500":"http://fonts.gstatic.com/s/ruda/v14/k3kKo8YQJOpFgHQ1mQ5VkEbUKaJ3si_-2KiSGg-H.ttf","600":"http://fonts.gstatic.com/s/ruda/v14/k3kKo8YQJOpFgHQ1mQ5VkEbUKaKbtS_-2KiSGg-H.ttf","700":"http://fonts.gstatic.com/s/ruda/v14/k3kKo8YQJOpFgHQ1mQ5VkEbUKaKitS_-2KiSGg-H.ttf","800":"http://fonts.gstatic.com/s/ruda/v14/k3kKo8YQJOpFgHQ1mQ5VkEbUKaLFtS_-2KiSGg-H.ttf","900":"http://fonts.gstatic.com/s/ruda/v14/k3kKo8YQJOpFgHQ1mQ5VkEbUKaLstS_-2KiSGg-H.ttf","regular":"http://fonts.gstatic.com/s/ruda/v14/k3kKo8YQJOpFgHQ1mQ5VkEbUKaJFsi_-2KiSGg-H.ttf"},"Cabin Condensed":{"500":"http://fonts.gstatic.com/s/cabincondensed/v14/nwpJtK6mNhBK2err_hqkYhHRqmwilMH97F15-K1oqQ.ttf","600":"http://fonts.gstatic.com/s/cabincondensed/v14/nwpJtK6mNhBK2err_hqkYhHRqmwiuMb97F15-K1oqQ.ttf","700":"http://fonts.gstatic.com/s/cabincondensed/v14/nwpJtK6mNhBK2err_hqkYhHRqmwi3Mf97F15-K1oqQ.ttf","regular":"http://fonts.gstatic.com/s/cabincondensed/v14/nwpMtK6mNhBK2err_hqkYhHRqmwaYOjZ5HZl8Q.ttf"},"Electrolize":{"regular":"http://fonts.gstatic.com/s/electrolize/v9/cIf5Ma1dtE0zSiGSiED7AUEGso5tQafB.ttf"},"Actor":{"regular":"http://fonts.gstatic.com/s/actor/v10/wEOzEBbCkc5cO3ekXygtUMIO.ttf"},"Alef":{"700":"http://fonts.gstatic.com/s/alef/v12/FeVQS0NQpLYglo50L5la2bxii28.ttf","regular":"http://fonts.gstatic.com/s/alef/v12/FeVfS0NQpLYgrjJbC5FxxbU.ttf"},"Nanum Pen Script":{"regular":"http://fonts.gstatic.com/s/nanumpenscript/v15/daaDSSYiLGqEal3MvdA_FOL_3FkN2z7-aMFCcTU.ttf"},"Cutive Mono":{"regular":"http://fonts.gstatic.com/s/cutivemono/v9/m8JWjfRfY7WVjVi2E-K9H5RFRG-K3Mud.ttf"},"Neucha":{"regular":"http://fonts.gstatic.com/s/neucha/v12/q5uGsou0JOdh94bvugNsCxVEgA.ttf"},"Antic":{"regular":"http://fonts.gstatic.com/s/antic/v12/TuGfUVB8XY5DRaZLodgzydtk.ttf"},"Unica One":{"regular":"http://fonts.gstatic.com/s/unicaone/v8/DPEuYwWHyAYGVTSmalshdtffuEY7FA.ttf"},"DM Serif Text":{"regular":"http://fonts.gstatic.com/s/dmseriftext/v5/rnCu-xZa_krGokauCeNq1wWyafOPXHIJErY.ttf","italic":"http://fonts.gstatic.com/s/dmseriftext/v5/rnCw-xZa_krGokauCeNq1wWyWfGFWFAMArZKqQ.ttf"},"Pragati Narrow":{"700":"http://fonts.gstatic.com/s/pragatinarrow/v8/vm8sdRf0T0bS1ffgsPB7WZ-mD2ZD5fd_GJMTlo_4.ttf","regular":"http://fonts.gstatic.com/s/pragatinarrow/v8/vm8vdRf0T0bS1ffgsPB7WZ-mD17_ytN3M48a.ttf"},"Alice":{"regular":"http://fonts.gstatic.com/s/alice/v12/OpNCnoEEmtHa6FcJpA_chzJ0.ttf"},"Hind Vadodara":{"300":"http://fonts.gstatic.com/s/hindvadodara/v7/neIQzCKvrIcn5pbuuuriV9tTSDn3iXM0oSOL2Yw.ttf","500":"http://fonts.gstatic.com/s/hindvadodara/v7/neIQzCKvrIcn5pbuuuriV9tTSGH2iXM0oSOL2Yw.ttf","600":"http://fonts.gstatic.com/s/hindvadodara/v7/neIQzCKvrIcn5pbuuuriV9tTSE3xiXM0oSOL2Yw.ttf","700":"http://fonts.gstatic.com/s/hindvadodara/v7/neIQzCKvrIcn5pbuuuriV9tTSCnwiXM0oSOL2Yw.ttf","regular":"http://fonts.gstatic.com/s/hindvadodara/v7/neINzCKvrIcn5pbuuuriV9tTcJXfrXsfvSo.ttf"},"Paytone One":{"regular":"http://fonts.gstatic.com/s/paytoneone/v13/0nksC9P7MfYHj2oFtYm2CiTqivr9iBq_.ttf"},"Allura":{"regular":"http://fonts.gstatic.com/s/allura/v9/9oRPNYsQpS4zjuAPjAIXPtrrGA.ttf"},"Marck Script":{"regular":"http://fonts.gstatic.com/s/marckscript/v11/nwpTtK2oNgBA3Or78gapdwuCzyI-aMPF7Q.ttf"},"Amaranth":{"700":"http://fonts.gstatic.com/s/amaranth/v11/KtkpALODe433f0j1zMF-OPWi6WDfFpuc.ttf","regular":"http://fonts.gstatic.com/s/amaranth/v11/KtkuALODe433f0j1zPnCF9GqwnzW.ttf","italic":"http://fonts.gstatic.com/s/amaranth/v11/KtkoALODe433f0j1zMnAHdWIx2zWD4I.ttf","700italic":"http://fonts.gstatic.com/s/amaranth/v11/KtkrALODe433f0j1zMnAJWmn42T9E4ucRY8.ttf"},"Homemade Apple":{"regular":"http://fonts.gstatic.com/s/homemadeapple/v11/Qw3EZQFXECDrI2q789EKQZJob3x9Vnksi4M7.ttf"},"Khula":{"300":"http://fonts.gstatic.com/s/khula/v7/OpNPnoEOns3V7G-ljCvUrC59XwXD.ttf","600":"http://fonts.gstatic.com/s/khula/v7/OpNPnoEOns3V7G_RiivUrC59XwXD.ttf","700":"http://fonts.gstatic.com/s/khula/v7/OpNPnoEOns3V7G-1iyvUrC59XwXD.ttf","800":"http://fonts.gstatic.com/s/khula/v7/OpNPnoEOns3V7G-piCvUrC59XwXD.ttf","regular":"http://fonts.gstatic.com/s/khula/v7/OpNCnoEOns3V7FcJpA_chzJ0.ttf"},"Yeseva One":{"regular":"http://fonts.gstatic.com/s/yesevaone/v15/OpNJno4ck8vc-xYpwWWxpipfWhXD00c.ttf"},"Gentium Book Basic":{"700":"http://fonts.gstatic.com/s/gentiumbookbasic/v11/pe0wMJCbPYBVokB1LHA9bbyaQb8ZGjcw65Rfy43Y0V4kvg.ttf","regular":"http://fonts.gstatic.com/s/gentiumbookbasic/v11/pe0zMJCbPYBVokB1LHA9bbyaQb8ZGjcIV7t7w6bE2A.ttf","italic":"http://fonts.gstatic.com/s/gentiumbookbasic/v11/pe0xMJCbPYBVokB1LHA9bbyaQb8ZGjc4VbF_4aPU2Ec9.ttf","700italic":"http://fonts.gstatic.com/s/gentiumbookbasic/v11/pe0-MJCbPYBVokB1LHA9bbyaQb8ZGjc4VYnDzofc81s0voO3.ttf"},"Jura":{"300":"http://fonts.gstatic.com/s/jura/v16/z7NOdRfiaC4Vd8hhoPzfb5vBTP0D7auhTfmrH_rt.ttf","500":"http://fonts.gstatic.com/s/jura/v16/z7NOdRfiaC4Vd8hhoPzfb5vBTP1v7auhTfmrH_rt.ttf","600":"http://fonts.gstatic.com/s/jura/v16/z7NOdRfiaC4Vd8hhoPzfb5vBTP2D6quhTfmrH_rt.ttf","700":"http://fonts.gstatic.com/s/jura/v16/z7NOdRfiaC4Vd8hhoPzfb5vBTP266quhTfmrH_rt.ttf","regular":"http://fonts.gstatic.com/s/jura/v16/z7NOdRfiaC4Vd8hhoPzfb5vBTP1d7auhTfmrH_rt.ttf"},"Stint Ultra Condensed":{"regular":"http://fonts.gstatic.com/s/stintultracondensed/v11/-W_gXIrsVjjeyEnPC45qD2NoFPtBE0xCh2A-qhUO2cNvdg.ttf"},"Viga":{"regular":"http://fonts.gstatic.com/s/viga/v9/xMQbuFFdSaiX_QIjD4e2OX8.ttf"},"Bad Script":{"regular":"http://fonts.gstatic.com/s/badscript/v9/6NUT8F6PJgbFWQn47_x7lOwuzd1AZtw.ttf"},"Julius Sans One":{"regular":"http://fonts.gstatic.com/s/juliussansone/v9/1Pt2g8TAX_SGgBGUi0tGOYEga5W-xXEW6aGXHw.ttf"},"Pontano Sans":{"regular":"http://fonts.gstatic.com/s/pontanosans/v8/qFdD35GdgYR8EzR6oBLDHa3qwjUMg1siNQ.ttf"},"Aclonica":{"regular":"http://fonts.gstatic.com/s/aclonica/v11/K2FyfZJVlfNNSEBXGb7TCI6oBjLz.ttf"},"Tenor Sans":{"regular":"http://fonts.gstatic.com/s/tenorsans/v12/bx6ANxqUneKx06UkIXISr3JyC22IyqI.ttf"},"Recursive":{"300":"http://fonts.gstatic.com/s/recursive/v26/8vJN7wMr0mhh-RQChyHEH06TlXhq_gukbYrFMk1QuAIcyEwG_X-dpEfaE5YaERmK-CImKsvxvU-MXGX2fSqasNfUvz2xbXfn1uEQadDck018vwxjDJCL.ttf","500":"http://fonts.gstatic.com/s/recursive/v26/8vJN7wMr0mhh-RQChyHEH06TlXhq_gukbYrFMk1QuAIcyEwG_X-dpEfaE5YaERmK-CImKsvxvU-MXGX2fSqasNfUvz2xbXfn1uEQadCwk018vwxjDJCL.ttf","600":"http://fonts.gstatic.com/s/recursive/v26/8vJN7wMr0mhh-RQChyHEH06TlXhq_gukbYrFMk1QuAIcyEwG_X-dpEfaE5YaERmK-CImKsvxvU-MXGX2fSqasNfUvz2xbXfn1uEQadBclE18vwxjDJCL.ttf","700":"http://fonts.gstatic.com/s/recursive/v26/8vJN7wMr0mhh-RQChyHEH06TlXhq_gukbYrFMk1QuAIcyEwG_X-dpEfaE5YaERmK-CImKsvxvU-MXGX2fSqasNfUvz2xbXfn1uEQadBllE18vwxjDJCL.ttf","800":"http://fonts.gstatic.com/s/recursive/v26/8vJN7wMr0mhh-RQChyHEH06TlXhq_gukbYrFMk1QuAIcyEwG_X-dpEfaE5YaERmK-CImKsvxvU-MXGX2fSqasNfUvz2xbXfn1uEQadAClE18vwxjDJCL.ttf","900":"http://fonts.gstatic.com/s/recursive/v26/8vJN7wMr0mhh-RQChyHEH06TlXhq_gukbYrFMk1QuAIcyEwG_X-dpEfaE5YaERmK-CImKsvxvU-MXGX2fSqasNfUvz2xbXfn1uEQadArlE18vwxjDJCL.ttf","regular":"http://fonts.gstatic.com/s/recursive/v26/8vJN7wMr0mhh-RQChyHEH06TlXhq_gukbYrFMk1QuAIcyEwG_X-dpEfaE5YaERmK-CImKsvxvU-MXGX2fSqasNfUvz2xbXfn1uEQadCCk018vwxjDJCL.ttf"},"Armata":{"regular":"http://fonts.gstatic.com/s/armata/v12/gokvH63_HV5jQ-E9lD53Q2u_mQ.ttf"},"Abhaya Libre":{"500":"http://fonts.gstatic.com/s/abhayalibre/v6/e3t5euGtX-Co5MNzeAOqinEYj2ryqtxI6oYtBA.ttf","600":"http://fonts.gstatic.com/s/abhayalibre/v6/e3t5euGtX-Co5MNzeAOqinEYo23yqtxI6oYtBA.ttf","700":"http://fonts.gstatic.com/s/abhayalibre/v6/e3t5euGtX-Co5MNzeAOqinEYx2zyqtxI6oYtBA.ttf","800":"http://fonts.gstatic.com/s/abhayalibre/v6/e3t5euGtX-Co5MNzeAOqinEY22_yqtxI6oYtBA.ttf","regular":"http://fonts.gstatic.com/s/abhayalibre/v6/e3tmeuGtX-Co5MNzeAOqinEge0PWovdU4w.ttf"},"Nanum Gothic Coding":{"700":"http://fonts.gstatic.com/s/nanumgothiccoding/v14/8QIYdjzHisX_8vv59_xMxtPFW4IXROws8xgecsV88t5V9r4.ttf","regular":"http://fonts.gstatic.com/s/nanumgothiccoding/v14/8QIVdjzHisX_8vv59_xMxtPFW4IXROwsy6QxVs1X7tc.ttf"},"Markazi Text":{"500":"http://fonts.gstatic.com/s/markazitext/v13/sykh-ydym6AtQaiEtX7yhqb_rV1k_81ZVYYZtcaQT4MlBekmJLo.ttf","600":"http://fonts.gstatic.com/s/markazitext/v13/sykh-ydym6AtQaiEtX7yhqb_rV1k_81ZVYYZtSqXT4MlBekmJLo.ttf","700":"http://fonts.gstatic.com/s/markazitext/v13/sykh-ydym6AtQaiEtX7yhqb_rV1k_81ZVYYZtROXT4MlBekmJLo.ttf","regular":"http://fonts.gstatic.com/s/markazitext/v13/sykh-ydym6AtQaiEtX7yhqb_rV1k_81ZVYYZtfSQT4MlBekmJLo.ttf"},"Carter One":{"regular":"http://fonts.gstatic.com/s/carterone/v12/q5uCsoe5IOB2-pXv9UcNIxR2hYxREMs.ttf"},"Adamina":{"regular":"http://fonts.gstatic.com/s/adamina/v14/j8_r6-DH1bjoc-dwu-reETl4Bno.ttf"},"Aleo":{"300":"http://fonts.gstatic.com/s/aleo/v4/c4mg1nF8G8_syKbr9DVDno985KM.ttf","700":"http://fonts.gstatic.com/s/aleo/v4/c4mg1nF8G8_syLbs9DVDno985KM.ttf","300italic":"http://fonts.gstatic.com/s/aleo/v4/c4mi1nF8G8_swAjxeDdJmq159KOnWA.ttf","regular":"http://fonts.gstatic.com/s/aleo/v4/c4mv1nF8G8_s8ArD0D1ogoY.ttf","italic":"http://fonts.gstatic.com/s/aleo/v4/c4mh1nF8G8_swAjJ1B9tkoZl_Q.ttf","700italic":"http://fonts.gstatic.com/s/aleo/v4/c4mi1nF8G8_swAjxaDBJmq159KOnWA.ttf"},"Rufina":{"700":"http://fonts.gstatic.com/s/rufina/v8/Yq6W-LyURyLy-aKKHztAvMxenxE0SA.ttf","regular":"http://fonts.gstatic.com/s/rufina/v8/Yq6V-LyURyLy-aKyoxRktOdClg.ttf"},"Sarala":{"700":"http://fonts.gstatic.com/s/sarala/v5/uK_x4riEZv4o1w9ptjI3OtWYVkMpXA.ttf","regular":"http://fonts.gstatic.com/s/sarala/v5/uK_y4riEZv4o1w9RCh0TMv6EXw.ttf"},"Alex Brush":{"regular":"http://fonts.gstatic.com/s/alexbrush/v13/SZc83FzrJKuqFbwMKk6EtUL57DtOmCc.ttf"},"Mali":{"200":"http://fonts.gstatic.com/s/mali/v4/N0bV2SRONuN4QOLlKlRaJdbWgdY.ttf","300":"http://fonts.gstatic.com/s/mali/v4/N0bV2SRONuN4QIbmKlRaJdbWgdY.ttf","500":"http://fonts.gstatic.com/s/mali/v4/N0bV2SRONuN4QN7nKlRaJdbWgdY.ttf","600":"http://fonts.gstatic.com/s/mali/v4/N0bV2SRONuN4QPLgKlRaJdbWgdY.ttf","700":"http://fonts.gstatic.com/s/mali/v4/N0bV2SRONuN4QJbhKlRaJdbWgdY.ttf","200italic":"http://fonts.gstatic.com/s/mali/v4/N0bX2SRONuN4SCj8wlVQIfTTkdbJYA.ttf","300italic":"http://fonts.gstatic.com/s/mali/v4/N0bX2SRONuN4SCj8plZQIfTTkdbJYA.ttf","regular":"http://fonts.gstatic.com/s/mali/v4/N0ba2SRONuN4eCrODlxxOd8.ttf","italic":"http://fonts.gstatic.com/s/mali/v4/N0bU2SRONuN4SCjECn50Kd_PmA.ttf","500italic":"http://fonts.gstatic.com/s/mali/v4/N0bX2SRONuN4SCj8_ldQIfTTkdbJYA.ttf","600italic":"http://fonts.gstatic.com/s/mali/v4/N0bX2SRONuN4SCj80lBQIfTTkdbJYA.ttf","700italic":"http://fonts.gstatic.com/s/mali/v4/N0bX2SRONuN4SCj8tlFQIfTTkdbJYA.ttf"},"Palanquin":{"100":"http://fonts.gstatic.com/s/palanquin/v6/9XUhlJ90n1fBFg7ceXwUEltI7rWmZzTH.ttf","200":"http://fonts.gstatic.com/s/palanquin/v6/9XUilJ90n1fBFg7ceXwUvnpoxJuqbi3ezg.ttf","300":"http://fonts.gstatic.com/s/palanquin/v6/9XUilJ90n1fBFg7ceXwU2nloxJuqbi3ezg.ttf","500":"http://fonts.gstatic.com/s/palanquin/v6/9XUilJ90n1fBFg7ceXwUgnhoxJuqbi3ezg.ttf","600":"http://fonts.gstatic.com/s/palanquin/v6/9XUilJ90n1fBFg7ceXwUrn9oxJuqbi3ezg.ttf","700":"http://fonts.gstatic.com/s/palanquin/v6/9XUilJ90n1fBFg7ceXwUyn5oxJuqbi3ezg.ttf","regular":"http://fonts.gstatic.com/s/palanquin/v6/9XUnlJ90n1fBFg7ceXwsdlFMzLC2Zw.ttf"},"Kosugi Maru":{"regular":"http://fonts.gstatic.com/s/kosugimaru/v6/0nksC9PgP_wGh21A2KeqGiTqivr9iBq_.ttf"},"Saira Extra Condensed":{"100":"http://fonts.gstatic.com/s/sairaextracondensed/v6/-nFsOHYr-vcC7h8MklGBkrvmUG9rbpkisrTri0jx9i5ss3a3.ttf","200":"http://fonts.gstatic.com/s/sairaextracondensed/v6/-nFvOHYr-vcC7h8MklGBkrvmUG9rbpkisrTrJ2nR3ABgum-uoQ.ttf","300":"http://fonts.gstatic.com/s/sairaextracondensed/v6/-nFvOHYr-vcC7h8MklGBkrvmUG9rbpkisrTrQ2rR3ABgum-uoQ.ttf","500":"http://fonts.gstatic.com/s/sairaextracondensed/v6/-nFvOHYr-vcC7h8MklGBkrvmUG9rbpkisrTrG2vR3ABgum-uoQ.ttf","600":"http://fonts.gstatic.com/s/sairaextracondensed/v6/-nFvOHYr-vcC7h8MklGBkrvmUG9rbpkisrTrN2zR3ABgum-uoQ.ttf","700":"http://fonts.gstatic.com/s/sairaextracondensed/v6/-nFvOHYr-vcC7h8MklGBkrvmUG9rbpkisrTrU23R3ABgum-uoQ.ttf","800":"http://fonts.gstatic.com/s/sairaextracondensed/v6/-nFvOHYr-vcC7h8MklGBkrvmUG9rbpkisrTrT27R3ABgum-uoQ.ttf","900":"http://fonts.gstatic.com/s/sairaextracondensed/v6/-nFvOHYr-vcC7h8MklGBkrvmUG9rbpkisrTra2_R3ABgum-uoQ.ttf","regular":"http://fonts.gstatic.com/s/sairaextracondensed/v6/-nFiOHYr-vcC7h8MklGBkrvmUG9rbpkisrTT70L11Ct8sw.ttf"},"Knewave":{"regular":"http://fonts.gstatic.com/s/knewave/v9/sykz-yx0lLcxQaSItSq9-trEvlQ.ttf"},"Nothing You Could Do":{"regular":"http://fonts.gstatic.com/s/nothingyoucoulddo/v10/oY1B8fbBpaP5OX3DtrRYf_Q2BPB1SnfZb0OJl1ol2Ymo.ttf"},"Sorts Mill Goudy":{"regular":"http://fonts.gstatic.com/s/sortsmillgoudy/v10/Qw3GZR9MED_6PSuS_50nEaVrfzgEXH0OjpM75PE.ttf","italic":"http://fonts.gstatic.com/s/sortsmillgoudy/v10/Qw3AZR9MED_6PSuS_50nEaVrfzgEbH8EirE-9PGLfQ.ttf"},"Bungee":{"regular":"http://fonts.gstatic.com/s/bungee/v6/N0bU2SZBIuF2PU_ECn50Kd_PmA.ttf"},"Eczar":{"500":"http://fonts.gstatic.com/s/eczar/v9/BXRovF3Pi-DLmzXWL8t622v9WNjW.ttf","600":"http://fonts.gstatic.com/s/eczar/v9/BXRovF3Pi-DLmzX6KMt622v9WNjW.ttf","700":"http://fonts.gstatic.com/s/eczar/v9/BXRovF3Pi-DLmzWeKct622v9WNjW.ttf","800":"http://fonts.gstatic.com/s/eczar/v9/BXRovF3Pi-DLmzWCKst622v9WNjW.ttf","regular":"http://fonts.gstatic.com/s/eczar/v9/BXRlvF3Pi-DLmw0iBu9y8Hf0.ttf"},"Arima Madurai":{"100":"http://fonts.gstatic.com/s/arimamadurai/v7/t5t4IRoeKYORG0WNMgnC3seB1V3PqrGCch4Drg.ttf","200":"http://fonts.gstatic.com/s/arimamadurai/v7/t5t7IRoeKYORG0WNMgnC3seB1fHuipusfhcat2c.ttf","300":"http://fonts.gstatic.com/s/arimamadurai/v7/t5t7IRoeKYORG0WNMgnC3seB1ZXtipusfhcat2c.ttf","500":"http://fonts.gstatic.com/s/arimamadurai/v7/t5t7IRoeKYORG0WNMgnC3seB1c3sipusfhcat2c.ttf","700":"http://fonts.gstatic.com/s/arimamadurai/v7/t5t7IRoeKYORG0WNMgnC3seB1YXqipusfhcat2c.ttf","800":"http://fonts.gstatic.com/s/arimamadurai/v7/t5t7IRoeKYORG0WNMgnC3seB1Znpipusfhcat2c.ttf","900":"http://fonts.gstatic.com/s/arimamadurai/v7/t5t7IRoeKYORG0WNMgnC3seB1b3oipusfhcat2c.ttf","regular":"http://fonts.gstatic.com/s/arimamadurai/v7/t5tmIRoeKYORG0WNMgnC3seB7TnFrpOHYh4.ttf"},"Varela":{"regular":"http://fonts.gstatic.com/s/varela/v11/DPEtYwqExx0AWHXJBBQFfvzDsQ.ttf"},"Gelasio":{"500":"http://fonts.gstatic.com/s/gelasio/v4/cIf4MaFfvUQxTTqS_N2CRGEsnIJkWL4.ttf","600":"http://fonts.gstatic.com/s/gelasio/v4/cIf4MaFfvUQxTTqS_PGFRGEsnIJkWL4.ttf","700":"http://fonts.gstatic.com/s/gelasio/v4/cIf4MaFfvUQxTTqS_JWERGEsnIJkWL4.ttf","regular":"http://fonts.gstatic.com/s/gelasio/v4/cIf9MaFfvUQxTTqSxCmrYGkHgIs.ttf","italic":"http://fonts.gstatic.com/s/gelasio/v4/cIf_MaFfvUQxTTqS9CuhZEsCkIt9QQ.ttf","500italic":"http://fonts.gstatic.com/s/gelasio/v4/cIf6MaFfvUQxTTqS9CuZkGImmKBhSL7Y1Q.ttf","600italic":"http://fonts.gstatic.com/s/gelasio/v4/cIf6MaFfvUQxTTqS9CuZvGUmmKBhSL7Y1Q.ttf","700italic":"http://fonts.gstatic.com/s/gelasio/v4/cIf6MaFfvUQxTTqS9CuZ2GQmmKBhSL7Y1Q.ttf"},"Syncopate":{"700":"http://fonts.gstatic.com/s/syncopate/v12/pe0pMIuPIYBCpEV5eFdKvtKaA_Rue1UwVg.ttf","regular":"http://fonts.gstatic.com/s/syncopate/v12/pe0sMIuPIYBCpEV5eFdyAv2-C99ycg.ttf"},"Damion":{"regular":"http://fonts.gstatic.com/s/damion/v10/hv-XlzJ3KEUe_YZUbWY3MTFgVg.ttf"},"Audiowide":{"regular":"http://fonts.gstatic.com/s/audiowide/v9/l7gdbjpo0cum0ckerWCtkQXPExpQBw.ttf"},"Cantata One":{"regular":"http://fonts.gstatic.com/s/cantataone/v10/PlI5Fl60Nb5obNzNe2jslVxEt8CwfGaD.ttf"},"Quantico":{"700":"http://fonts.gstatic.com/s/quantico/v10/rax5HiSdp9cPL3KIF7TQARhasU7Q8Cad.ttf","regular":"http://fonts.gstatic.com/s/quantico/v10/rax-HiSdp9cPL3KIF4xsLjxSmlLZ.ttf","italic":"http://fonts.gstatic.com/s/quantico/v10/rax4HiSdp9cPL3KIF7xuJDhwn0LZ6T8.ttf","700italic":"http://fonts.gstatic.com/s/quantico/v10/rax7HiSdp9cPL3KIF7xuHIRfu0ry9TadML4.ttf"},"Mr Dafoe":{"regular":"http://fonts.gstatic.com/s/mrdafoe/v9/lJwE-pIzkS5NXuMMrGiqg7MCxz_C.ttf"},"Shadows Into Light Two":{"regular":"http://fonts.gstatic.com/s/shadowsintolighttwo/v8/4iC86LVlZsRSjQhpWGedwyOoW-0A6_kpsyNmlAvNGLNnIF0.ttf"},"Gochi Hand":{"regular":"http://fonts.gstatic.com/s/gochihand/v11/hES06XlsOjtJsgCkx1PkTo71-n0nXWA.ttf"},"Cousine":{"700":"http://fonts.gstatic.com/s/cousine/v17/d6lNkaiiRdih4SpP9Z8K6T7G09BlnmQ.ttf","regular":"http://fonts.gstatic.com/s/cousine/v17/d6lIkaiiRdih4SpPzSMlzTbtz9k.ttf","italic":"http://fonts.gstatic.com/s/cousine/v17/d6lKkaiiRdih4SpP_SEvyRTo39l8hw.ttf","700italic":"http://fonts.gstatic.com/s/cousine/v17/d6lPkaiiRdih4SpP_SEXdTvM1_JgjmRpOA.ttf"},"Pridi":{"200":"http://fonts.gstatic.com/s/pridi/v6/2sDdZG5JnZLfkc1SiE0jRUG0AqUc.ttf","300":"http://fonts.gstatic.com/s/pridi/v6/2sDdZG5JnZLfkc02i00jRUG0AqUc.ttf","500":"http://fonts.gstatic.com/s/pridi/v6/2sDdZG5JnZLfkc1uik0jRUG0AqUc.ttf","600":"http://fonts.gstatic.com/s/pridi/v6/2sDdZG5JnZLfkc1CjU0jRUG0AqUc.ttf","700":"http://fonts.gstatic.com/s/pridi/v6/2sDdZG5JnZLfkc0mjE0jRUG0AqUc.ttf","regular":"http://fonts.gstatic.com/s/pridi/v6/2sDQZG5JnZLfkfWao2krbl29.ttf"},"Jaldi":{"700":"http://fonts.gstatic.com/s/jaldi/v7/or3hQ67z0_CI33voSbT3LLQ1niPn.ttf","regular":"http://fonts.gstatic.com/s/jaldi/v7/or3sQ67z0_CI30NUZpD_B6g8.ttf"},"Shrikhand":{"regular":"http://fonts.gstatic.com/s/shrikhand/v6/a8IbNovtLWfR7T7bMJwbBIiQ0zhMtA.ttf"},"Rancho":{"regular":"http://fonts.gstatic.com/s/rancho/v11/46kulbzmXjLaqZRlbWXgd0RY1g.ttf"},"Sriracha":{"regular":"http://fonts.gstatic.com/s/sriracha/v5/0nkrC9D4IuYBgWcI9ObYRQDioeb0.ttf"},"Coda":{"800":"http://fonts.gstatic.com/s/coda/v16/SLXIc1jY5nQ8HeIgTp6mw9t1cX8.ttf","regular":"http://fonts.gstatic.com/s/coda/v16/SLXHc1jY5nQ8JUIMapaN39I.ttf"},"Berkshire Swash":{"regular":"http://fonts.gstatic.com/s/berkshireswash/v9/ptRRTi-cavZOGqCvnNJDl5m5XmNPrcQybX4pQA.ttf"},"Share Tech Mono":{"regular":"http://fonts.gstatic.com/s/sharetechmono/v10/J7aHnp1uDWRBEqV98dVQztYldFc7pAsEIc3Xew.ttf"},"Fira Mono":{"500":"http://fonts.gstatic.com/s/firamono/v9/N0bS2SlFPv1weGeLZDto1d33mf3VaZBRBQ.ttf","700":"http://fonts.gstatic.com/s/firamono/v9/N0bS2SlFPv1weGeLZDtondv3mf3VaZBRBQ.ttf","regular":"http://fonts.gstatic.com/s/firamono/v9/N0bX2SlFPv1weGeLZDtQIfTTkdbJYA.ttf"},"Baloo Tammudu 2":{"500":"http://fonts.gstatic.com/s/balootammudu2/v4/1Ptzg8TIS_SAmkLguUdFP8UaJcKGMVgy4YqLFrUnJA.ttf","600":"http://fonts.gstatic.com/s/balootammudu2/v4/1Ptzg8TIS_SAmkLguUdFP8UaJcKGHV8y4YqLFrUnJA.ttf","700":"http://fonts.gstatic.com/s/balootammudu2/v4/1Ptzg8TIS_SAmkLguUdFP8UaJcKGeV4y4YqLFrUnJA.ttf","800":"http://fonts.gstatic.com/s/balootammudu2/v4/1Ptzg8TIS_SAmkLguUdFP8UaJcKGZV0y4YqLFrUnJA.ttf","regular":"http://fonts.gstatic.com/s/balootammudu2/v4/1Pt2g8TIS_SAmkLguUdFP8UaJcK-xXEW6aGXHw.ttf"},"Mandali":{"regular":"http://fonts.gstatic.com/s/mandali/v9/LhWlMVbYOfASNfNUVFk1ZPdcKtA.ttf"},"Oleo Script":{"700":"http://fonts.gstatic.com/s/oleoscript/v9/raxkHieDvtMOe0iICsUccCDmnmrY2zqUKafv.ttf","regular":"http://fonts.gstatic.com/s/oleoscript/v9/rax5HieDvtMOe0iICsUccBhasU7Q8Cad.ttf"},"Black Ops One":{"regular":"http://fonts.gstatic.com/s/blackopsone/v12/qWcsB6-ypo7xBdr6Xshe96H3WDzRtjkho4M.ttf"},"Gruppo":{"regular":"http://fonts.gstatic.com/s/gruppo/v11/WwkfxPmzE06v_ZWFWXDAOIEQUQ.ttf"},"Basic":{"regular":"http://fonts.gstatic.com/s/basic/v10/xfu_0WLxV2_XKQN34lDVyR7D.ttf"},"Lexend Deca":{"regular":"http://fonts.gstatic.com/s/lexenddeca/v9/K2F1fZFYk-dHSE0UPPuwQ6qgLS76ZHOM.ttf"},"Suez One":{"regular":"http://fonts.gstatic.com/s/suezone/v5/taiJGmd_EZ6rqscQgNFJkIqg-I0w.ttf"},"Squada One":{"regular":"http://fonts.gstatic.com/s/squadaone/v9/BCasqZ8XsOrx4mcOk6MtWaA8WDBkHgs.ttf"},"Martel Sans":{"200":"http://fonts.gstatic.com/s/martelsans/v7/h0GxssGi7VdzDgKjM-4d8hAX5suHFUknqMxQ.ttf","300":"http://fonts.gstatic.com/s/martelsans/v7/h0GxssGi7VdzDgKjM-4d8hBz5cuHFUknqMxQ.ttf","600":"http://fonts.gstatic.com/s/martelsans/v7/h0GxssGi7VdzDgKjM-4d8hAH48uHFUknqMxQ.ttf","700":"http://fonts.gstatic.com/s/martelsans/v7/h0GxssGi7VdzDgKjM-4d8hBj4suHFUknqMxQ.ttf","800":"http://fonts.gstatic.com/s/martelsans/v7/h0GxssGi7VdzDgKjM-4d8hB_4cuHFUknqMxQ.ttf","900":"http://fonts.gstatic.com/s/martelsans/v7/h0GxssGi7VdzDgKjM-4d8hBb4MuHFUknqMxQ.ttf","regular":"http://fonts.gstatic.com/s/martelsans/v7/h0GsssGi7VdzDgKjM-4d8ijfze-PPlUu.ttf"},"Average":{"regular":"http://fonts.gstatic.com/s/average/v9/fC1hPYBHe23MxA7rIeJwVWytTyk.ttf"},"Yrsa":{"300":"http://fonts.gstatic.com/s/yrsa/v6/wlpxgwnQFlxs3af93IQ73W5OcCk.ttf","500":"http://fonts.gstatic.com/s/yrsa/v6/wlpxgwnQFlxs3f_83IQ73W5OcCk.ttf","600":"http://fonts.gstatic.com/s/yrsa/v6/wlpxgwnQFlxs3dP73IQ73W5OcCk.ttf","700":"http://fonts.gstatic.com/s/yrsa/v6/wlpxgwnQFlxs3bf63IQ73W5OcCk.ttf","regular":"http://fonts.gstatic.com/s/yrsa/v6/wlp-gwnQFlxs5QvV-IwQwWc.ttf"},"Six Caps":{"regular":"http://fonts.gstatic.com/s/sixcaps/v11/6ae_4KGrU7VR7bNmabcS9XXaPCop.ttf"},"Enriqueta":{"500":"http://fonts.gstatic.com/s/enriqueta/v10/gokpH6L7AUFrRvV44HVrv2mHmNZEq6TTFw.ttf","600":"http://fonts.gstatic.com/s/enriqueta/v10/gokpH6L7AUFrRvV44HVrk26HmNZEq6TTFw.ttf","700":"http://fonts.gstatic.com/s/enriqueta/v10/gokpH6L7AUFrRvV44HVr92-HmNZEq6TTFw.ttf","regular":"http://fonts.gstatic.com/s/enriqueta/v10/goksH6L7AUFrRvV44HVTS0CjkP1Yog.ttf"},"Mada":{"200":"http://fonts.gstatic.com/s/mada/v11/7Au_p_0qnzeSdf3nCCL8zkwMIFg.ttf","300":"http://fonts.gstatic.com/s/mada/v11/7Au_p_0qnzeSdZnkCCL8zkwMIFg.ttf","500":"http://fonts.gstatic.com/s/mada/v11/7Au_p_0qnzeSdcHlCCL8zkwMIFg.ttf","600":"http://fonts.gstatic.com/s/mada/v11/7Au_p_0qnzeSde3iCCL8zkwMIFg.ttf","700":"http://fonts.gstatic.com/s/mada/v11/7Au_p_0qnzeSdYnjCCL8zkwMIFg.ttf","900":"http://fonts.gstatic.com/s/mada/v11/7Au_p_0qnzeSdbHhCCL8zkwMIFg.ttf","regular":"http://fonts.gstatic.com/s/mada/v11/7Auwp_0qnzeSTTXMLCrX0kU.ttf"},"Red Hat Text":{"500":"http://fonts.gstatic.com/s/redhattext/v3/RrQIbohi_ic6B3yVSzGBrMxYm4QIG-eFNVmULg.ttf","700":"http://fonts.gstatic.com/s/redhattext/v3/RrQIbohi_ic6B3yVSzGBrMxY04IIG-eFNVmULg.ttf","regular":"http://fonts.gstatic.com/s/redhattext/v3/RrQXbohi_ic6B3yVSzGBrMxgb60sE8yZPA.ttf","italic":"http://fonts.gstatic.com/s/redhattext/v3/RrQJbohi_ic6B3yVSzGBrMxQbacoMcmJPECN.ttf","500italic":"http://fonts.gstatic.com/s/redhattext/v3/RrQKbohi_ic6B3yVSzGBrMxQbZ_cGO2BF1yELmgy.ttf","700italic":"http://fonts.gstatic.com/s/redhattext/v3/RrQKbohi_ic6B3yVSzGBrMxQbZ-UHu2BF1yELmgy.ttf"},"Courier Prime":{"700":"http://fonts.gstatic.com/s/courierprime/v2/u-4k0q2lgwslOqpF_6gQ8kELY7pMf-fVqvHoJXw.ttf","regular":"http://fonts.gstatic.com/s/courierprime/v2/u-450q2lgwslOqpF_6gQ8kELWwZjW-_-tvg.ttf","italic":"http://fonts.gstatic.com/s/courierprime/v2/u-4n0q2lgwslOqpF_6gQ8kELawRpX837pvjxPA.ttf","700italic":"http://fonts.gstatic.com/s/courierprime/v2/u-4i0q2lgwslOqpF_6gQ8kELawRR4-LfrtPtNXyeAg.ttf"},"Spinnaker":{"regular":"http://fonts.gstatic.com/s/spinnaker/v12/w8gYH2oyX-I0_rvR6Hmn3HwLqOqSBg.ttf"},"Sintony":{"700":"http://fonts.gstatic.com/s/sintony/v8/XoHj2YDqR7-98cVUGYgIn9cDkjLp6C8.ttf","regular":"http://fonts.gstatic.com/s/sintony/v8/XoHm2YDqR7-98cVUITQnu98ojjs.ttf"},"Pinyon Script":{"regular":"http://fonts.gstatic.com/s/pinyonscript/v11/6xKpdSJbL9-e9LuoeQiDRQR8aOLQO4bhiDY.ttf"},"Encode Sans Condensed":{"100":"http://fonts.gstatic.com/s/encodesanscondensed/v5/j8_76_LD37rqfuwxyIuaZhE6cRXOLtm2gfT-5a-JLQoFI2KR.ttf","200":"http://fonts.gstatic.com/s/encodesanscondensed/v5/j8_46_LD37rqfuwxyIuaZhE6cRXOLtm2gfT-SY6pByQJKnuIFA.ttf","300":"http://fonts.gstatic.com/s/encodesanscondensed/v5/j8_46_LD37rqfuwxyIuaZhE6cRXOLtm2gfT-LY2pByQJKnuIFA.ttf","500":"http://fonts.gstatic.com/s/encodesanscondensed/v5/j8_46_LD37rqfuwxyIuaZhE6cRXOLtm2gfT-dYypByQJKnuIFA.ttf","600":"http://fonts.gstatic.com/s/encodesanscondensed/v5/j8_46_LD37rqfuwxyIuaZhE6cRXOLtm2gfT-WYupByQJKnuIFA.ttf","700":"http://fonts.gstatic.com/s/encodesanscondensed/v5/j8_46_LD37rqfuwxyIuaZhE6cRXOLtm2gfT-PYqpByQJKnuIFA.ttf","800":"http://fonts.gstatic.com/s/encodesanscondensed/v5/j8_46_LD37rqfuwxyIuaZhE6cRXOLtm2gfT-IYmpByQJKnuIFA.ttf","900":"http://fonts.gstatic.com/s/encodesanscondensed/v5/j8_46_LD37rqfuwxyIuaZhE6cRXOLtm2gfT-BYipByQJKnuIFA.ttf","regular":"http://fonts.gstatic.com/s/encodesanscondensed/v5/j8_16_LD37rqfuwxyIuaZhE6cRXOLtm2gfTGgaWNDw8VIw.ttf"},"Lilita One":{"regular":"http://fonts.gstatic.com/s/lilitaone/v8/i7dPIFZ9Zz-WBtRtedDbUEZ2RFq7AwU.ttf"},"Mukta Malar":{"200":"http://fonts.gstatic.com/s/muktamalar/v7/MCoKzAXyz8LOE2FpJMxZqIMwBtAB62ruoAZW.ttf","300":"http://fonts.gstatic.com/s/muktamalar/v7/MCoKzAXyz8LOE2FpJMxZqINUBdAB62ruoAZW.ttf","500":"http://fonts.gstatic.com/s/muktamalar/v7/MCoKzAXyz8LOE2FpJMxZqIMMBNAB62ruoAZW.ttf","600":"http://fonts.gstatic.com/s/muktamalar/v7/MCoKzAXyz8LOE2FpJMxZqIMgA9AB62ruoAZW.ttf","700":"http://fonts.gstatic.com/s/muktamalar/v7/MCoKzAXyz8LOE2FpJMxZqINEAtAB62ruoAZW.ttf","800":"http://fonts.gstatic.com/s/muktamalar/v7/MCoKzAXyz8LOE2FpJMxZqINYAdAB62ruoAZW.ttf","regular":"http://fonts.gstatic.com/s/muktamalar/v7/MCoXzAXyz8LOE2FpJMxZqLv4LfQJwHbn.ttf"},"Alegreya Sans SC":{"100":"http://fonts.gstatic.com/s/alegreyasanssc/v13/mtGn4-RGJqfMvt7P8FUr0Q1j-Hf1Dipl8g5FPYtmMg.ttf","300":"http://fonts.gstatic.com/s/alegreyasanssc/v13/mtGm4-RGJqfMvt7P8FUr0Q1j-Hf1DuJH0iRrMYJ_K-4.ttf","500":"http://fonts.gstatic.com/s/alegreyasanssc/v13/mtGm4-RGJqfMvt7P8FUr0Q1j-Hf1DrpG0iRrMYJ_K-4.ttf","700":"http://fonts.gstatic.com/s/alegreyasanssc/v13/mtGm4-RGJqfMvt7P8FUr0Q1j-Hf1DvJA0iRrMYJ_K-4.ttf","800":"http://fonts.gstatic.com/s/alegreyasanssc/v13/mtGm4-RGJqfMvt7P8FUr0Q1j-Hf1Du5D0iRrMYJ_K-4.ttf","900":"http://fonts.gstatic.com/s/alegreyasanssc/v13/mtGm4-RGJqfMvt7P8FUr0Q1j-Hf1DspC0iRrMYJ_K-4.ttf","100italic":"http://fonts.gstatic.com/s/alegreyasanssc/v13/mtGl4-RGJqfMvt7P8FUr0Q1j-Hf1BkxdlgRBH452Mvds.ttf","300italic":"http://fonts.gstatic.com/s/alegreyasanssc/v13/mtGk4-RGJqfMvt7P8FUr0Q1j-Hf1BkxdXiZhNaB6O-51OA.ttf","regular":"http://fonts.gstatic.com/s/alegreyasanssc/v13/mtGh4-RGJqfMvt7P8FUr0Q1j-Hf1Nk5v9ixALYs.ttf","italic":"http://fonts.gstatic.com/s/alegreyasanssc/v13/mtGn4-RGJqfMvt7P8FUr0Q1j-Hf1Bkxl8g5FPYtmMg.ttf","500italic":"http://fonts.gstatic.com/s/alegreyasanssc/v13/mtGk4-RGJqfMvt7P8FUr0Q1j-Hf1BkxdBidhNaB6O-51OA.ttf","700italic":"http://fonts.gstatic.com/s/alegreyasanssc/v13/mtGk4-RGJqfMvt7P8FUr0Q1j-Hf1BkxdTiFhNaB6O-51OA.ttf","800italic":"http://fonts.gstatic.com/s/alegreyasanssc/v13/mtGk4-RGJqfMvt7P8FUr0Q1j-Hf1BkxdUiJhNaB6O-51OA.ttf","900italic":"http://fonts.gstatic.com/s/alegreyasanssc/v13/mtGk4-RGJqfMvt7P8FUr0Q1j-Hf1BkxddiNhNaB6O-51OA.ttf"},"Krub":{"200":"http://fonts.gstatic.com/s/krub/v4/sZlEdRyC6CRYZo47KLF4R6gWaf8.ttf","300":"http://fonts.gstatic.com/s/krub/v4/sZlEdRyC6CRYZuo4KLF4R6gWaf8.ttf","500":"http://fonts.gstatic.com/s/krub/v4/sZlEdRyC6CRYZrI5KLF4R6gWaf8.ttf","600":"http://fonts.gstatic.com/s/krub/v4/sZlEdRyC6CRYZp4-KLF4R6gWaf8.ttf","700":"http://fonts.gstatic.com/s/krub/v4/sZlEdRyC6CRYZvo_KLF4R6gWaf8.ttf","200italic":"http://fonts.gstatic.com/s/krub/v4/sZlGdRyC6CRYbkQiwLByQ4oTef_6gQ.ttf","300italic":"http://fonts.gstatic.com/s/krub/v4/sZlGdRyC6CRYbkQipLNyQ4oTef_6gQ.ttf","regular":"http://fonts.gstatic.com/s/krub/v4/sZlLdRyC6CRYXkYQDLlTW6E.ttf","italic":"http://fonts.gstatic.com/s/krub/v4/sZlFdRyC6CRYbkQaCJtWS6EPcA.ttf","500italic":"http://fonts.gstatic.com/s/krub/v4/sZlGdRyC6CRYbkQi_LJyQ4oTef_6gQ.ttf","600italic":"http://fonts.gstatic.com/s/krub/v4/sZlGdRyC6CRYbkQi0LVyQ4oTef_6gQ.ttf","700italic":"http://fonts.gstatic.com/s/krub/v4/sZlGdRyC6CRYbkQitLRyQ4oTef_6gQ.ttf"},"Sen":{"700":"http://fonts.gstatic.com/s/sen/v2/6xKudSxYI9__J9CoKkH1JHUQSQ.ttf","800":"http://fonts.gstatic.com/s/sen/v2/6xKudSxYI9__O9OoKkH1JHUQSQ.ttf","regular":"http://fonts.gstatic.com/s/sen/v2/6xKjdSxYI9_Hm_-MImrpLQ.ttf"},"Michroma":{"regular":"http://fonts.gstatic.com/s/michroma/v11/PN_zRfy9qWD8fEagAMg6rzjb_-Da.ttf"},"Pangolin":{"regular":"http://fonts.gstatic.com/s/pangolin/v6/cY9GfjGcW0FPpi-tWPfK5d3aiLBG.ttf"},"Chewy":{"regular":"http://fonts.gstatic.com/s/chewy/v12/uK_94ruUb-k-wk5xIDMfO-ed.ttf"},"Niconne":{"regular":"http://fonts.gstatic.com/s/niconne/v10/w8gaH2QvRug1_rTfrQut2F4OuOo.ttf"},"Glegoo":{"700":"http://fonts.gstatic.com/s/glegoo/v10/_Xmu-HQyrTKWaw2xN4a9CKRpzimMsg.ttf","regular":"http://fonts.gstatic.com/s/glegoo/v10/_Xmt-HQyrTKWaw2Ji6mZAI91xw.ttf"},"Allerta":{"regular":"http://fonts.gstatic.com/s/allerta/v11/TwMO-IAHRlkbx940UnEdSQqO5uY.ttf"},"Days One":{"regular":"http://fonts.gstatic.com/s/daysone/v10/mem9YaCnxnKRiYZOCLYVeLkWVNBt.ttf"},"Voltaire":{"regular":"http://fonts.gstatic.com/s/voltaire/v10/1Pttg8PcRfSblAvGvQooYKVnBOif.ttf"},"Kreon":{"300":"http://fonts.gstatic.com/s/kreon/v24/t5t9IRIUKY-TFF_LW5lnMR3v2DnvPNimejUfp2dWNg.ttf","500":"http://fonts.gstatic.com/s/kreon/v24/t5t9IRIUKY-TFF_LW5lnMR3v2DnvUNimejUfp2dWNg.ttf","600":"http://fonts.gstatic.com/s/kreon/v24/t5t9IRIUKY-TFF_LW5lnMR3v2DnvvN-mejUfp2dWNg.ttf","700":"http://fonts.gstatic.com/s/kreon/v24/t5t9IRIUKY-TFF_LW5lnMR3v2Dnvhd-mejUfp2dWNg.ttf","regular":"http://fonts.gstatic.com/s/kreon/v24/t5t9IRIUKY-TFF_LW5lnMR3v2DnvYtimejUfp2dWNg.ttf"},"Reem Kufi":{"500":"http://fonts.gstatic.com/s/reemkufi/v11/2sDPZGJLip7W2J7v7wQZZE1I0yCmYzzQttRnEGGf3qGuvM4.ttf","600":"http://fonts.gstatic.com/s/reemkufi/v11/2sDPZGJLip7W2J7v7wQZZE1I0yCmYzzQtjhgEGGf3qGuvM4.ttf","700":"http://fonts.gstatic.com/s/reemkufi/v11/2sDPZGJLip7W2J7v7wQZZE1I0yCmYzzQtgFgEGGf3qGuvM4.ttf","regular":"http://fonts.gstatic.com/s/reemkufi/v11/2sDPZGJLip7W2J7v7wQZZE1I0yCmYzzQtuZnEGGf3qGuvM4.ttf"},"Overlock":{"700":"http://fonts.gstatic.com/s/overlock/v10/Z9XSDmdMWRiN1_T9Z7xizcmMvL2L9TLT.ttf","900":"http://fonts.gstatic.com/s/overlock/v10/Z9XSDmdMWRiN1_T9Z7xaz8mMvL2L9TLT.ttf","regular":"http://fonts.gstatic.com/s/overlock/v10/Z9XVDmdMWRiN1_T9Z4Te4u2El6GC.ttf","italic":"http://fonts.gstatic.com/s/overlock/v10/Z9XTDmdMWRiN1_T9Z7Tc6OmmkrGC7Cs.ttf","700italic":"http://fonts.gstatic.com/s/overlock/v10/Z9XQDmdMWRiN1_T9Z7Tc0FWJtrmp8CLTlNs.ttf","900italic":"http://fonts.gstatic.com/s/overlock/v10/Z9XQDmdMWRiN1_T9Z7Tc0G2Ltrmp8CLTlNs.ttf"},"Black Han Sans":{"regular":"http://fonts.gstatic.com/s/blackhansans/v8/ea8Aad44WunzF9a-dL6toA8r8nqVIXSkH-Hc.ttf"},"Candal":{"regular":"http://fonts.gstatic.com/s/candal/v10/XoHn2YH6T7-t_8cNAR4Jt9Yxlw.ttf"},"Kameron":{"700":"http://fonts.gstatic.com/s/kameron/v11/vm8zdR7vXErQxuzniAIfC-3jfHb--NY.ttf","regular":"http://fonts.gstatic.com/s/kameron/v11/vm82dR7vXErQxuznsL4wL-XIYH8.ttf"},"Allan":{"700":"http://fonts.gstatic.com/s/allan/v13/ea8aadU7WuTxEu5KEPCN2WpNgEKU.ttf","regular":"http://fonts.gstatic.com/s/allan/v13/ea8XadU7WuTxEtb2P9SF8nZE.ttf"},"Coda Caption":{"800":"http://fonts.gstatic.com/s/codacaption/v14/ieVm2YRII2GMY7SyXSoDRiQGqcx6x_-fACIgaw.ttf"},"Mate":{"regular":"http://fonts.gstatic.com/s/mate/v9/m8JdjftRd7WZ2z28WoXSaLU.ttf","italic":"http://fonts.gstatic.com/s/mate/v9/m8JTjftRd7WZ6z-2XqfXeLVdbw.ttf"},"Caveat Brush":{"regular":"http://fonts.gstatic.com/s/caveatbrush/v6/EYq0maZfwr9S9-ETZc3fKXtMW7mT03pdQw.ttf"},"Forum":{"regular":"http://fonts.gstatic.com/s/forum/v11/6aey4Ky-Vb8Ew_IWMJMa3mnT.ttf"},"Covered By Your Grace":{"regular":"http://fonts.gstatic.com/s/coveredbyyourgrace/v10/QGYwz-AZahWOJJI9kykWW9mD6opopoqXSOS0FgItq6bFIg.ttf"},"Reenie Beanie":{"regular":"http://fonts.gstatic.com/s/reeniebeanie/v11/z7NSdR76eDkaJKZJFkkjuvWxbP2_qoOgf_w.ttf"},"Fredericka the Great":{"regular":"http://fonts.gstatic.com/s/frederickathegreat/v10/9Bt33CxNwt7aOctW2xjbCstzwVKsIBVV-9Skz7Ylch2L.ttf"},"Literata":{"200":"http://fonts.gstatic.com/s/literata/v23/or3PQ6P12-iJxAIgLa78DkrbXsDgk0oVDaDPYLanFLHpPf2TbJG_F_bcTWCWp8g.ttf","300":"http://fonts.gstatic.com/s/literata/v23/or3PQ6P12-iJxAIgLa78DkrbXsDgk0oVDaDPYLanFLHpPf2TbE-_F_bcTWCWp8g.ttf","500":"http://fonts.gstatic.com/s/literata/v23/or3PQ6P12-iJxAIgLa78DkrbXsDgk0oVDaDPYLanFLHpPf2TbCO_F_bcTWCWp8g.ttf","600":"http://fonts.gstatic.com/s/literata/v23/or3PQ6P12-iJxAIgLa78DkrbXsDgk0oVDaDPYLanFLHpPf2TbM-4F_bcTWCWp8g.ttf","700":"http://fonts.gstatic.com/s/literata/v23/or3PQ6P12-iJxAIgLa78DkrbXsDgk0oVDaDPYLanFLHpPf2TbPa4F_bcTWCWp8g.ttf","800":"http://fonts.gstatic.com/s/literata/v23/or3PQ6P12-iJxAIgLa78DkrbXsDgk0oVDaDPYLanFLHpPf2TbJG4F_bcTWCWp8g.ttf","900":"http://fonts.gstatic.com/s/literata/v23/or3PQ6P12-iJxAIgLa78DkrbXsDgk0oVDaDPYLanFLHpPf2TbLi4F_bcTWCWp8g.ttf","regular":"http://fonts.gstatic.com/s/literata/v23/or3PQ6P12-iJxAIgLa78DkrbXsDgk0oVDaDPYLanFLHpPf2TbBG_F_bcTWCWp8g.ttf","200italic":"http://fonts.gstatic.com/s/literata/v23/or3NQ6P12-iJxAIgLYT1PLs1Zd0nfUwAbeGVKoRYzNiCp1OUedn8f7XWSUKTt8iVow.ttf","300italic":"http://fonts.gstatic.com/s/literata/v23/or3NQ6P12-iJxAIgLYT1PLs1Zd0nfUwAbeGVKoRYzNiCp1OUedn8obXWSUKTt8iVow.ttf","italic":"http://fonts.gstatic.com/s/literata/v23/or3NQ6P12-iJxAIgLYT1PLs1Zd0nfUwAbeGVKoRYzNiCp1OUedn8_7XWSUKTt8iVow.ttf","500italic":"http://fonts.gstatic.com/s/literata/v23/or3NQ6P12-iJxAIgLYT1PLs1Zd0nfUwAbeGVKoRYzNiCp1OUedn8zbXWSUKTt8iVow.ttf","600italic":"http://fonts.gstatic.com/s/literata/v23/or3NQ6P12-iJxAIgLYT1PLs1Zd0nfUwAbeGVKoRYzNiCp1OUedn8IbLWSUKTt8iVow.ttf","700italic":"http://fonts.gstatic.com/s/literata/v23/or3NQ6P12-iJxAIgLYT1PLs1Zd0nfUwAbeGVKoRYzNiCp1OUedn8GLLWSUKTt8iVow.ttf","800italic":"http://fonts.gstatic.com/s/literata/v23/or3NQ6P12-iJxAIgLYT1PLs1Zd0nfUwAbeGVKoRYzNiCp1OUedn8f7LWSUKTt8iVow.ttf","900italic":"http://fonts.gstatic.com/s/literata/v23/or3NQ6P12-iJxAIgLYT1PLs1Zd0nfUwAbeGVKoRYzNiCp1OUedn8VrLWSUKTt8iVow.ttf"},"Italianno":{"regular":"http://fonts.gstatic.com/s/italianno/v11/dg4n_p3sv6gCJkwzT6Rnj5YpQwM-gg.ttf"},"Goudy Bookletter 1911":{"regular":"http://fonts.gstatic.com/s/goudybookletter1911/v10/sykt-z54laciWfKv-kX8krex0jDiD2HbY6I5tRbXZ4IXAA.ttf"},"Mukta Vaani":{"200":"http://fonts.gstatic.com/s/muktavaani/v8/3JnkSD_-ynaxmxnEfVHPIGXNV8BD-u97MW1a.ttf","300":"http://fonts.gstatic.com/s/muktavaani/v8/3JnkSD_-ynaxmxnEfVHPIGWpVMBD-u97MW1a.ttf","500":"http://fonts.gstatic.com/s/muktavaani/v8/3JnkSD_-ynaxmxnEfVHPIGXxVcBD-u97MW1a.ttf","600":"http://fonts.gstatic.com/s/muktavaani/v8/3JnkSD_-ynaxmxnEfVHPIGXdUsBD-u97MW1a.ttf","700":"http://fonts.gstatic.com/s/muktavaani/v8/3JnkSD_-ynaxmxnEfVHPIGW5U8BD-u97MW1a.ttf","800":"http://fonts.gstatic.com/s/muktavaani/v8/3JnkSD_-ynaxmxnEfVHPIGWlUMBD-u97MW1a.ttf","regular":"http://fonts.gstatic.com/s/muktavaani/v8/3Jn5SD_-ynaxmxnEfVHPIF0FfORL0fNy.ttf"},"Rubik Mono One":{"regular":"http://fonts.gstatic.com/s/rubikmonoone/v9/UqyJK8kPP3hjw6ANTdfRk9YSN-8wRqQrc_j9.ttf"},"Bevan":{"regular":"http://fonts.gstatic.com/s/bevan/v12/4iCj6KZ0a9NXjF8aUir7tlSJ.ttf"},"Arsenal":{"700":"http://fonts.gstatic.com/s/arsenal/v5/wXKuE3kQtZQ4pF3D7-P5JeQAmX8yrdk.ttf","regular":"http://fonts.gstatic.com/s/arsenal/v5/wXKrE3kQtZQ4pF3D11_WAewrhXY.ttf","italic":"http://fonts.gstatic.com/s/arsenal/v5/wXKpE3kQtZQ4pF3D513cBc4ulXYrtA.ttf","700italic":"http://fonts.gstatic.com/s/arsenal/v5/wXKsE3kQtZQ4pF3D513kueEKnV03vdnKjw.ttf"},"Lalezar":{"regular":"http://fonts.gstatic.com/s/lalezar/v9/zrfl0HLVx-HwTP82UaDyIiL0RCg.ttf"},"Lemonada":{"300":"http://fonts.gstatic.com/s/lemonada/v12/0QI-MXFD9oygTWy_R-FFlwV-bgfR7QJGJOt2mfWc3Z2pTg.ttf","500":"http://fonts.gstatic.com/s/lemonada/v12/0QI-MXFD9oygTWy_R-FFlwV-bgfR7QJGSOt2mfWc3Z2pTg.ttf","600":"http://fonts.gstatic.com/s/lemonada/v12/0QI-MXFD9oygTWy_R-FFlwV-bgfR7QJGpOx2mfWc3Z2pTg.ttf","700":"http://fonts.gstatic.com/s/lemonada/v12/0QI-MXFD9oygTWy_R-FFlwV-bgfR7QJGnex2mfWc3Z2pTg.ttf","regular":"http://fonts.gstatic.com/s/lemonada/v12/0QI-MXFD9oygTWy_R-FFlwV-bgfR7QJGeut2mfWc3Z2pTg.ttf"},"Cabin Sketch":{"700":"http://fonts.gstatic.com/s/cabinsketch/v14/QGY2z_kZZAGCONcK2A4bGOj0I_1o4dLyI4CMFw.ttf","regular":"http://fonts.gstatic.com/s/cabinsketch/v14/QGYpz_kZZAGCONcK2A4bGOjMn9JM6fnuKg.ttf"},"Ramabhadra":{"regular":"http://fonts.gstatic.com/s/ramabhadra/v10/EYq2maBOwqRW9P1SQ83LehNGX5uWw3o.ttf"},"Anonymous Pro":{"700":"http://fonts.gstatic.com/s/anonymouspro/v14/rP2cp2a15UIB7Un-bOeISG3pFuAT0CnW7KOywKo.ttf","regular":"http://fonts.gstatic.com/s/anonymouspro/v14/rP2Bp2a15UIB7Un-bOeISG3pLlw89CH98Ko.ttf","italic":"http://fonts.gstatic.com/s/anonymouspro/v14/rP2fp2a15UIB7Un-bOeISG3pHl428AP44Kqr2Q.ttf","700italic":"http://fonts.gstatic.com/s/anonymouspro/v14/rP2ap2a15UIB7Un-bOeISG3pHl4OTCzc6IG30KqB9Q.ttf"},"Capriola":{"regular":"http://fonts.gstatic.com/s/capriola/v8/wXKoE3YSppcvo1PDln_8L-AinG8y.ttf"},"Laila":{"300":"http://fonts.gstatic.com/s/laila/v8/LYjBdG_8nE8jDLzxogNAh14nVcfe.ttf","500":"http://fonts.gstatic.com/s/laila/v8/LYjBdG_8nE8jDLypowNAh14nVcfe.ttf","600":"http://fonts.gstatic.com/s/laila/v8/LYjBdG_8nE8jDLyFpANAh14nVcfe.ttf","700":"http://fonts.gstatic.com/s/laila/v8/LYjBdG_8nE8jDLzhpQNAh14nVcfe.ttf","regular":"http://fonts.gstatic.com/s/laila/v8/LYjMdG_8nE8jDIRdiidIrEIu.ttf"},"PT Serif Caption":{"regular":"http://fonts.gstatic.com/s/ptserifcaption/v12/ieVl2ZhbGCW-JoW6S34pSDpqYKU059WxDCs5cvI.ttf","italic":"http://fonts.gstatic.com/s/ptserifcaption/v12/ieVj2ZhbGCW-JoW6S34pSDpqYKU019e7CAk8YvJEeg.ttf"},"Bubblegum Sans":{"regular":"http://fonts.gstatic.com/s/bubblegumsans/v9/AYCSpXb_Z9EORv1M5QTjEzMEtdaHzoPPb7R4.ttf"},"Rye":{"regular":"http://fonts.gstatic.com/s/rye/v8/r05XGLJT86YDFpTsXOqx4w.ttf"},"Mallanna":{"regular":"http://fonts.gstatic.com/s/mallanna/v8/hv-Vlzx-KEQb84YaDGwzEzRwVvJ-.ttf"},"Norican":{"regular":"http://fonts.gstatic.com/s/norican/v9/MwQ2bhXp1eSBqjkPGJJRtGs-lbA.ttf"},"Annie Use Your Telescope":{"regular":"http://fonts.gstatic.com/s/annieuseyourtelescope/v11/daaLSS4tI2qYYl3Jq9s_Hu74xwktnlKxH6osGVGjlDfB3UUVZA.ttf"},"Changa One":{"regular":"http://fonts.gstatic.com/s/changaone/v13/xfu00W3wXn3QLUJXhzq46AbouLfbK64.ttf","italic":"http://fonts.gstatic.com/s/changaone/v13/xfu20W3wXn3QLUJXhzq42ATivJXeO67ISw.ttf"},"VT323":{"regular":"http://fonts.gstatic.com/s/vt323/v12/pxiKyp0ihIEF2hsYHpT2dkNE.ttf"},"Sansita":{"700":"http://fonts.gstatic.com/s/sansita/v5/QldLNTRRphEb_-V7JKWUaXl0wqVv3_g.ttf","800":"http://fonts.gstatic.com/s/sansita/v5/QldLNTRRphEb_-V7JLmXaXl0wqVv3_g.ttf","900":"http://fonts.gstatic.com/s/sansita/v5/QldLNTRRphEb_-V7JJ2WaXl0wqVv3_g.ttf","regular":"http://fonts.gstatic.com/s/sansita/v5/QldONTRRphEb_-V7HBm7TXFf3qw.ttf","italic":"http://fonts.gstatic.com/s/sansita/v5/QldMNTRRphEb_-V7LBuxSVNazqx2xg.ttf","700italic":"http://fonts.gstatic.com/s/sansita/v5/QldJNTRRphEb_-V7LBuJ9Xx-xodqz_joDQ.ttf","800italic":"http://fonts.gstatic.com/s/sansita/v5/QldJNTRRphEb_-V7LBuJ6X9-xodqz_joDQ.ttf","900italic":"http://fonts.gstatic.com/s/sansita/v5/QldJNTRRphEb_-V7LBuJzX5-xodqz_joDQ.ttf"},"Corben":{"700":"http://fonts.gstatic.com/s/corben/v14/LYjAdGzzklQtCMpFHCZgrXArXN7HWQ.ttf","regular":"http://fonts.gstatic.com/s/corben/v14/LYjDdGzzklQtCMp9oAlEpVs3VQ.ttf"},"Aldrich":{"regular":"http://fonts.gstatic.com/s/aldrich/v11/MCoTzAn-1s3IGyJMZaAS3pP5H_E.ttf"},"Boogaloo":{"regular":"http://fonts.gstatic.com/s/boogaloo/v12/kmK-Zq45GAvOdnaW6x1F_SrQo_1K.ttf"},"Arbutus Slab":{"regular":"http://fonts.gstatic.com/s/arbutusslab/v9/oY1Z8e7OuLXkJGbXtr5ba7ZVa68dJlaFAQ.ttf"},"Rambla":{"700":"http://fonts.gstatic.com/s/rambla/v8/snfos0ip98hx6mrMn50qPvN4yJuDYQ.ttf","regular":"http://fonts.gstatic.com/s/rambla/v8/snfrs0ip98hx6mr0I7IONthkwQ.ttf","italic":"http://fonts.gstatic.com/s/rambla/v8/snfps0ip98hx6mrEIbgKFN10wYKa.ttf","700italic":"http://fonts.gstatic.com/s/rambla/v8/snfus0ip98hx6mrEIYC2O_l86p6TYS-Y.ttf"},"Pattaya":{"regular":"http://fonts.gstatic.com/s/pattaya/v7/ea8ZadcqV_zkHY-XNdCn92ZEmVs.ttf"},"Yesteryear":{"regular":"http://fonts.gstatic.com/s/yesteryear/v9/dg4g_p78rroaKl8kRKo1r7wHTwonmyw.ttf"},"Telex":{"regular":"http://fonts.gstatic.com/s/telex/v9/ieVw2Y1fKWmIO9fTB1piKFIf.ttf"},"Lateef":{"regular":"http://fonts.gstatic.com/s/lateef/v18/hESw6XVnNCxEvkbMpheEZo_H_w.ttf"},"Herr Von Muellerhoff":{"regular":"http://fonts.gstatic.com/s/herrvonmuellerhoff/v10/WBL6rFjRZkREW8WqmCWYLgCkQKXb4CAft3c6_qJY3QPQ.ttf"},"Scheherazade":{"700":"http://fonts.gstatic.com/s/scheherazade/v20/YA9Lr0yF4ETZN60keViq1kQYC7yMjt3V_dB0Yw.ttf","regular":"http://fonts.gstatic.com/s/scheherazade/v20/YA9Ur0yF4ETZN60keViq1kQgt5OohvbJ9A.ttf"},"Maitree":{"200":"http://fonts.gstatic.com/s/maitree/v5/MjQDmil5tffhpBrklhGNWJGovLdh6OE.ttf","300":"http://fonts.gstatic.com/s/maitree/v5/MjQDmil5tffhpBrklnWOWJGovLdh6OE.ttf","500":"http://fonts.gstatic.com/s/maitree/v5/MjQDmil5tffhpBrkli2PWJGovLdh6OE.ttf","600":"http://fonts.gstatic.com/s/maitree/v5/MjQDmil5tffhpBrklgGIWJGovLdh6OE.ttf","700":"http://fonts.gstatic.com/s/maitree/v5/MjQDmil5tffhpBrklmWJWJGovLdh6OE.ttf","regular":"http://fonts.gstatic.com/s/maitree/v5/MjQGmil5tffhpBrkrtmmfJmDoL4.ttf"},"Nobile":{"500":"http://fonts.gstatic.com/s/nobile/v12/m8JQjflSeaOVl1iOqo7zcJ5BZmqa3A.ttf","700":"http://fonts.gstatic.com/s/nobile/v12/m8JQjflSeaOVl1iO4ojzcJ5BZmqa3A.ttf","regular":"http://fonts.gstatic.com/s/nobile/v12/m8JTjflSeaOVl1i2XqfXeLVdbw.ttf","italic":"http://fonts.gstatic.com/s/nobile/v12/m8JRjflSeaOVl1iGXK3TWrBNb3OD.ttf","500italic":"http://fonts.gstatic.com/s/nobile/v12/m8JWjflSeaOVl1iGXJUnc5RFRG-K3Mud.ttf","700italic":"http://fonts.gstatic.com/s/nobile/v12/m8JWjflSeaOVl1iGXJVvdZRFRG-K3Mud.ttf"},"Londrina Solid":{"100":"http://fonts.gstatic.com/s/londrinasolid/v10/flUjRq6sw40kQEJxWNgkLuudGfs9KBYesZHhV64.ttf","300":"http://fonts.gstatic.com/s/londrinasolid/v10/flUiRq6sw40kQEJxWNgkLuudGfv1CjY0n53oTrcL.ttf","900":"http://fonts.gstatic.com/s/londrinasolid/v10/flUiRq6sw40kQEJxWNgkLuudGfvdDzY0n53oTrcL.ttf","regular":"http://fonts.gstatic.com/s/londrinasolid/v10/flUhRq6sw40kQEJxWNgkLuudGcNZIhI8tIHh.ttf"},"Trocchi":{"regular":"http://fonts.gstatic.com/s/trocchi/v9/qWcqB6WkuIDxDZLcDrtUvMeTYD0.ttf"},"Cinzel Decorative":{"700":"http://fonts.gstatic.com/s/cinzeldecorative/v9/daaHSScvJGqLYhG8nNt8KPPswUAPniZoaelDQzCLlQXE.ttf","900":"http://fonts.gstatic.com/s/cinzeldecorative/v9/daaHSScvJGqLYhG8nNt8KPPswUAPniZQa-lDQzCLlQXE.ttf","regular":"http://fonts.gstatic.com/s/cinzeldecorative/v9/daaCSScvJGqLYhG8nNt8KPPswUAPnh7URs1LaCyC.ttf"},"Holtwood One SC":{"regular":"http://fonts.gstatic.com/s/holtwoodonesc/v11/yYLx0hLR0P-3vMFSk1TCq3Txg5B3cbb6LZttyg.ttf"},"Just Another Hand":{"regular":"http://fonts.gstatic.com/s/justanotherhand/v12/845CNN4-AJyIGvIou-6yJKyptyOpOcr_BmmlS5aw.ttf"},"Caudex":{"700":"http://fonts.gstatic.com/s/caudex/v10/esDT311QOP6BJUrwdteklZUCGpG-GQ.ttf","regular":"http://fonts.gstatic.com/s/caudex/v10/esDQ311QOP6BJUrIyviAnb4eEw.ttf","italic":"http://fonts.gstatic.com/s/caudex/v10/esDS311QOP6BJUr4yPKEv7sOE4in.ttf","700italic":"http://fonts.gstatic.com/s/caudex/v10/esDV311QOP6BJUr4yMo4kJ8GOJSuGdLB.ttf"},"Arizonia":{"regular":"http://fonts.gstatic.com/s/arizonia/v11/neIIzCemt4A5qa7mv6WGHK06UY30.ttf"},"Trirong":{"100":"http://fonts.gstatic.com/s/trirong/v6/7r3EqXNgp8wxdOdOl-go3YRl6ujngw.ttf","200":"http://fonts.gstatic.com/s/trirong/v6/7r3DqXNgp8wxdOdOl0QJ_a5L5uH-mts.ttf","300":"http://fonts.gstatic.com/s/trirong/v6/7r3DqXNgp8wxdOdOlyAK_a5L5uH-mts.ttf","500":"http://fonts.gstatic.com/s/trirong/v6/7r3DqXNgp8wxdOdOl3gL_a5L5uH-mts.ttf","600":"http://fonts.gstatic.com/s/trirong/v6/7r3DqXNgp8wxdOdOl1QM_a5L5uH-mts.ttf","700":"http://fonts.gstatic.com/s/trirong/v6/7r3DqXNgp8wxdOdOlzAN_a5L5uH-mts.ttf","800":"http://fonts.gstatic.com/s/trirong/v6/7r3DqXNgp8wxdOdOlywO_a5L5uH-mts.ttf","900":"http://fonts.gstatic.com/s/trirong/v6/7r3DqXNgp8wxdOdOlwgP_a5L5uH-mts.ttf","100italic":"http://fonts.gstatic.com/s/trirong/v6/7r3CqXNgp8wxdOdOn44QuY5hyO33g8IY.ttf","200italic":"http://fonts.gstatic.com/s/trirong/v6/7r3BqXNgp8wxdOdOn44QFa9B4sP7itsB5g.ttf","300italic":"http://fonts.gstatic.com/s/trirong/v6/7r3BqXNgp8wxdOdOn44QcaxB4sP7itsB5g.ttf","regular":"http://fonts.gstatic.com/s/trirong/v6/7r3GqXNgp8wxdOdOr4wi2aZg-ug.ttf","italic":"http://fonts.gstatic.com/s/trirong/v6/7r3EqXNgp8wxdOdOn44o3YRl6ujngw.ttf","500italic":"http://fonts.gstatic.com/s/trirong/v6/7r3BqXNgp8wxdOdOn44QKa1B4sP7itsB5g.ttf","600italic":"http://fonts.gstatic.com/s/trirong/v6/7r3BqXNgp8wxdOdOn44QBapB4sP7itsB5g.ttf","700italic":"http://fonts.gstatic.com/s/trirong/v6/7r3BqXNgp8wxdOdOn44QYatB4sP7itsB5g.ttf","800italic":"http://fonts.gstatic.com/s/trirong/v6/7r3BqXNgp8wxdOdOn44QfahB4sP7itsB5g.ttf","900italic":"http://fonts.gstatic.com/s/trirong/v6/7r3BqXNgp8wxdOdOn44QWalB4sP7itsB5g.ttf"},"Niramit":{"200":"http://fonts.gstatic.com/s/niramit/v5/I_urMpWdvgLdNxVLVXx7tiiEr5_BdZ8.ttf","300":"http://fonts.gstatic.com/s/niramit/v5/I_urMpWdvgLdNxVLVRh4tiiEr5_BdZ8.ttf","500":"http://fonts.gstatic.com/s/niramit/v5/I_urMpWdvgLdNxVLVUB5tiiEr5_BdZ8.ttf","600":"http://fonts.gstatic.com/s/niramit/v5/I_urMpWdvgLdNxVLVWx-tiiEr5_BdZ8.ttf","700":"http://fonts.gstatic.com/s/niramit/v5/I_urMpWdvgLdNxVLVQh_tiiEr5_BdZ8.ttf","200italic":"http://fonts.gstatic.com/s/niramit/v5/I_upMpWdvgLdNxVLXbZiXimOq73EZZ_f6w.ttf","300italic":"http://fonts.gstatic.com/s/niramit/v5/I_upMpWdvgLdNxVLXbZiOiqOq73EZZ_f6w.ttf","regular":"http://fonts.gstatic.com/s/niramit/v5/I_uuMpWdvgLdNxVLbbRQkiCvs5Y.ttf","italic":"http://fonts.gstatic.com/s/niramit/v5/I_usMpWdvgLdNxVLXbZalgKqo5bYbA.ttf","500italic":"http://fonts.gstatic.com/s/niramit/v5/I_upMpWdvgLdNxVLXbZiYiuOq73EZZ_f6w.ttf","600italic":"http://fonts.gstatic.com/s/niramit/v5/I_upMpWdvgLdNxVLXbZiTiyOq73EZZ_f6w.ttf","700italic":"http://fonts.gstatic.com/s/niramit/v5/I_upMpWdvgLdNxVLXbZiKi2Oq73EZZ_f6w.ttf"},"Castoro":{"regular":"http://fonts.gstatic.com/s/castoro/v8/1q2GY5yMCld3-O4cHYhEzOYenEU.ttf","italic":"http://fonts.gstatic.com/s/castoro/v8/1q2EY5yMCld3-O4cLYpOyMQbjEX5fw.ttf"},"Racing Sans One":{"regular":"http://fonts.gstatic.com/s/racingsansone/v8/sykr-yRtm7EvTrXNxkv5jfKKyDCwL3rmWpIBtA.ttf"},"Mountains of Christmas":{"700":"http://fonts.gstatic.com/s/mountainsofchristmas/v13/3y9z6a4zcCnn5X0FDyrKi2ZRUBIy8uxoUo7eBGqJFPtCOp6IaEA.ttf","regular":"http://fonts.gstatic.com/s/mountainsofchristmas/v13/3y9w6a4zcCnn5X0FDyrKi2ZRUBIy8uxoUo7ePNamMPNpJpc.ttf"},"Mrs Saint Delafield":{"regular":"http://fonts.gstatic.com/s/mrssaintdelafield/v8/v6-IGZDIOVXH9xtmTZfRagunqBw5WC62cK4tLsubB2w.ttf"},"Seaweed Script":{"regular":"http://fonts.gstatic.com/s/seaweedscript/v8/bx6cNx6Tne2pxOATYE8C_Rsoe0WJ-KcGVbLW.ttf"},"Coustard":{"900":"http://fonts.gstatic.com/s/coustard/v11/3XFuErgg3YsZ5fqUU-2LkEHmb_jU3eRL.ttf","regular":"http://fonts.gstatic.com/s/coustard/v11/3XFpErgg3YsZ5fqUU9UPvWXuROTd.ttf"},"Nixie One":{"regular":"http://fonts.gstatic.com/s/nixieone/v11/lW-8wjkKLXjg5y2o2uUoUOFzpS-yLw.ttf"},"Molengo":{"regular":"http://fonts.gstatic.com/s/molengo/v11/I_uuMpWeuBzZNBtQbbRQkiCvs5Y.ttf"},"Ovo":{"regular":"http://fonts.gstatic.com/s/ovo/v12/yYLl0h7Wyfzjy4Q5_3WVxA.ttf"},"Bungee Inline":{"regular":"http://fonts.gstatic.com/s/bungeeinline/v6/Gg8zN58UcgnlCweMrih332VuDGJ1-FEglsc.ttf"},"Rochester":{"regular":"http://fonts.gstatic.com/s/rochester/v11/6ae-4KCqVa4Zy6Fif-Uy31vWNTMwoQ.ttf"},"Leckerli One":{"regular":"http://fonts.gstatic.com/s/leckerlione/v11/V8mCoQH8VCsNttEnxnGQ-1itLZxcBtItFw.ttf"},"Biryani":{"200":"http://fonts.gstatic.com/s/biryani/v6/hv-TlzNxIFoO84YddYQyGTBSU-J-RxQ.ttf","300":"http://fonts.gstatic.com/s/biryani/v6/hv-TlzNxIFoO84YddeAxGTBSU-J-RxQ.ttf","600":"http://fonts.gstatic.com/s/biryani/v6/hv-TlzNxIFoO84YddZQ3GTBSU-J-RxQ.ttf","700":"http://fonts.gstatic.com/s/biryani/v6/hv-TlzNxIFoO84YddfA2GTBSU-J-RxQ.ttf","800":"http://fonts.gstatic.com/s/biryani/v6/hv-TlzNxIFoO84Yddew1GTBSU-J-RxQ.ttf","900":"http://fonts.gstatic.com/s/biryani/v6/hv-TlzNxIFoO84Yddcg0GTBSU-J-RxQ.ttf","regular":"http://fonts.gstatic.com/s/biryani/v6/hv-WlzNxIFoO84YdTUwZPTh5T-s.ttf"},"Bowlby One SC":{"regular":"http://fonts.gstatic.com/s/bowlbyonesc/v12/DtVlJxerQqQm37tzN3wMug9Pzgj8owhNjuE.ttf"},"Kristi":{"regular":"http://fonts.gstatic.com/s/kristi/v12/uK_y4ricdeU6zwdRCh0TMv6EXw.ttf"},"Jua":{"regular":"http://fonts.gstatic.com/s/jua/v8/co3KmW9ljjAjc-DZCsKgsg.ttf"},"Average Sans":{"regular":"http://fonts.gstatic.com/s/averagesans/v9/1Ptpg8fLXP2dlAXR-HlJJNJPBdqazVoK4A.ttf"},"Charm":{"700":"http://fonts.gstatic.com/s/charm/v5/7cHrv4oii5K0Md6TDss8yn4hnCci.ttf","regular":"http://fonts.gstatic.com/s/charm/v5/7cHmv4oii5K0MeYvIe804WIo.ttf"},"Amita":{"700":"http://fonts.gstatic.com/s/amita/v9/HhyXU5si9Om7PTHTLtCCOopCTKkI.ttf","regular":"http://fonts.gstatic.com/s/amita/v9/HhyaU5si9Om7PQlvAfSKEZZL.ttf"},"Miriam Libre":{"700":"http://fonts.gstatic.com/s/miriamlibre/v7/DdT-798HsHwubBAqfkcBTL_X3LbbRcC7_-Z7Hg.ttf","regular":"http://fonts.gstatic.com/s/miriamlibre/v7/DdTh798HsHwubBAqfkcBTL_vYJn_Teun9g.ttf"},"Delius":{"regular":"http://fonts.gstatic.com/s/delius/v10/PN_xRfK0pW_9e1rtYcI-jT3L_w.ttf"},"Judson":{"700":"http://fonts.gstatic.com/s/judson/v13/FeVSS0Fbvbc14Vxps5xQ3Z5nm29Gww.ttf","regular":"http://fonts.gstatic.com/s/judson/v13/FeVRS0Fbvbc14VxRD7N01bV7kg.ttf","italic":"http://fonts.gstatic.com/s/judson/v13/FeVTS0Fbvbc14VxhDblw97BrknZf.ttf"},"Do Hyeon":{"regular":"http://fonts.gstatic.com/s/dohyeon/v11/TwMN-I8CRRU2zM86HFE3ZwaH__-C.ttf"},"Alegreya SC":{"500":"http://fonts.gstatic.com/s/alegreyasc/v15/taiTGmRtCJ62-O0HhNEa-ZZc-rUxQqu2FXKD.ttf","700":"http://fonts.gstatic.com/s/alegreyasc/v15/taiTGmRtCJ62-O0HhNEa-ZYU_LUxQqu2FXKD.ttf","800":"http://fonts.gstatic.com/s/alegreyasc/v15/taiTGmRtCJ62-O0HhNEa-ZYI_7UxQqu2FXKD.ttf","900":"http://fonts.gstatic.com/s/alegreyasc/v15/taiTGmRtCJ62-O0HhNEa-ZYs_rUxQqu2FXKD.ttf","regular":"http://fonts.gstatic.com/s/alegreyasc/v15/taiOGmRtCJ62-O0HhNEa-a6o05E5abe_.ttf","italic":"http://fonts.gstatic.com/s/alegreyasc/v15/taiMGmRtCJ62-O0HhNEa-Z6q2ZUbbKe_DGs.ttf","500italic":"http://fonts.gstatic.com/s/alegreyasc/v15/taiRGmRtCJ62-O0HhNEa-Z6q4WEySK-UEGKDBz4.ttf","700italic":"http://fonts.gstatic.com/s/alegreyasc/v15/taiRGmRtCJ62-O0HhNEa-Z6q4Sk0SK-UEGKDBz4.ttf","800italic":"http://fonts.gstatic.com/s/alegreyasc/v15/taiRGmRtCJ62-O0HhNEa-Z6q4TU3SK-UEGKDBz4.ttf","900italic":"http://fonts.gstatic.com/s/alegreyasc/v15/taiRGmRtCJ62-O0HhNEa-Z6q4RE2SK-UEGKDBz4.ttf"},"Oranienbaum":{"regular":"http://fonts.gstatic.com/s/oranienbaum/v10/OZpHg_txtzZKMuXLIVrx-3zn7kz3dpHc.ttf"},"Share":{"700":"http://fonts.gstatic.com/s/share/v11/i7dJIFliZjKNF63xM56-WkJUQUq7.ttf","regular":"http://fonts.gstatic.com/s/share/v11/i7dEIFliZjKNF5VNHLq2cV5d.ttf","italic":"http://fonts.gstatic.com/s/share/v11/i7dKIFliZjKNF6VPFr6UdE5dWFM.ttf","700italic":"http://fonts.gstatic.com/s/share/v11/i7dPIFliZjKNF6VPLgK7UEZ2RFq7AwU.ttf"},"Darker Grotesque":{"300":"http://fonts.gstatic.com/s/darkergrotesque/v2/U9MA6cuh-mLQlC4BKCtayOfARkSVoxr2AW8hTOsXsX0.ttf","500":"http://fonts.gstatic.com/s/darkergrotesque/v2/U9MA6cuh-mLQlC4BKCtayOfARkSVo0L3AW8hTOsXsX0.ttf","600":"http://fonts.gstatic.com/s/darkergrotesque/v2/U9MA6cuh-mLQlC4BKCtayOfARkSVo27wAW8hTOsXsX0.ttf","700":"http://fonts.gstatic.com/s/darkergrotesque/v2/U9MA6cuh-mLQlC4BKCtayOfARkSVowrxAW8hTOsXsX0.ttf","800":"http://fonts.gstatic.com/s/darkergrotesque/v2/U9MA6cuh-mLQlC4BKCtayOfARkSVoxbyAW8hTOsXsX0.ttf","900":"http://fonts.gstatic.com/s/darkergrotesque/v2/U9MA6cuh-mLQlC4BKCtayOfARkSVozLzAW8hTOsXsX0.ttf","regular":"http://fonts.gstatic.com/s/darkergrotesque/v2/U9MH6cuh-mLQlC4BKCtayOfARkSVm7beJWcKUOI.ttf"},"Athiti":{"200":"http://fonts.gstatic.com/s/athiti/v5/pe0sMISdLIZIv1wAxDNyAv2-C99ycg.ttf","300":"http://fonts.gstatic.com/s/athiti/v5/pe0sMISdLIZIv1wAoDByAv2-C99ycg.ttf","500":"http://fonts.gstatic.com/s/athiti/v5/pe0sMISdLIZIv1wA-DFyAv2-C99ycg.ttf","600":"http://fonts.gstatic.com/s/athiti/v5/pe0sMISdLIZIv1wA1DZyAv2-C99ycg.ttf","700":"http://fonts.gstatic.com/s/athiti/v5/pe0sMISdLIZIv1wAsDdyAv2-C99ycg.ttf","regular":"http://fonts.gstatic.com/s/athiti/v5/pe0vMISdLIZIv1w4DBhWCtaiAg.ttf"},"Belgrano":{"regular":"http://fonts.gstatic.com/s/belgrano/v11/55xvey5tM9rwKWrJZcMFirl08KDJ.ttf"},"Chonburi":{"regular":"http://fonts.gstatic.com/s/chonburi/v5/8AtqGs-wOpGRTBq66IWaFr3biAfZ.ttf"},"Overpass Mono":{"300":"http://fonts.gstatic.com/s/overpassmono/v6/_Xm3-H86tzKDdAPa-KPQZ-AC3oSWk_edB3Zf8EQ.ttf","600":"http://fonts.gstatic.com/s/overpassmono/v6/_Xm3-H86tzKDdAPa-KPQZ-AC3vCQk_edB3Zf8EQ.ttf","700":"http://fonts.gstatic.com/s/overpassmono/v6/_Xm3-H86tzKDdAPa-KPQZ-AC3pSRk_edB3Zf8EQ.ttf","regular":"http://fonts.gstatic.com/s/overpassmono/v6/_Xmq-H86tzKDdAPa-KPQZ-AC5ii-t_-2G38.ttf"},"KoHo":{"200":"http://fonts.gstatic.com/s/koho/v6/K2FxfZ5fmddNPuE1WJ75JoKhHys.ttf","300":"http://fonts.gstatic.com/s/koho/v6/K2FxfZ5fmddNPoU2WJ75JoKhHys.ttf","500":"http://fonts.gstatic.com/s/koho/v6/K2FxfZ5fmddNPt03WJ75JoKhHys.ttf","600":"http://fonts.gstatic.com/s/koho/v6/K2FxfZ5fmddNPvEwWJ75JoKhHys.ttf","700":"http://fonts.gstatic.com/s/koho/v6/K2FxfZ5fmddNPpUxWJ75JoKhHys.ttf","200italic":"http://fonts.gstatic.com/s/koho/v6/K2FzfZ5fmddNNisssJ_zIqCkDyvqZA.ttf","300italic":"http://fonts.gstatic.com/s/koho/v6/K2FzfZ5fmddNNiss1JzzIqCkDyvqZA.ttf","regular":"http://fonts.gstatic.com/s/koho/v6/K2F-fZ5fmddNBikefJbSOos.ttf","italic":"http://fonts.gstatic.com/s/koho/v6/K2FwfZ5fmddNNisUeLTXKou4Bg.ttf","500italic":"http://fonts.gstatic.com/s/koho/v6/K2FzfZ5fmddNNissjJ3zIqCkDyvqZA.ttf","600italic":"http://fonts.gstatic.com/s/koho/v6/K2FzfZ5fmddNNissoJrzIqCkDyvqZA.ttf","700italic":"http://fonts.gstatic.com/s/koho/v6/K2FzfZ5fmddNNissxJvzIqCkDyvqZA.ttf"},"Epilogue":{"100":"http://fonts.gstatic.com/s/epilogue/v4/O4ZMFGj5hxF0EhjimngomvnCCtqb30OXMDLiDJXVigHPVA.ttf","200":"http://fonts.gstatic.com/s/epilogue/v4/O4ZMFGj5hxF0EhjimngomvnCCtqb30OXsDPiDJXVigHPVA.ttf","300":"http://fonts.gstatic.com/s/epilogue/v4/O4ZMFGj5hxF0EhjimngomvnCCtqb30OXbjPiDJXVigHPVA.ttf","500":"http://fonts.gstatic.com/s/epilogue/v4/O4ZMFGj5hxF0EhjimngomvnCCtqb30OXAjPiDJXVigHPVA.ttf","600":"http://fonts.gstatic.com/s/epilogue/v4/O4ZMFGj5hxF0EhjimngomvnCCtqb30OX7jTiDJXVigHPVA.ttf","700":"http://fonts.gstatic.com/s/epilogue/v4/O4ZMFGj5hxF0EhjimngomvnCCtqb30OX1zTiDJXVigHPVA.ttf","800":"http://fonts.gstatic.com/s/epilogue/v4/O4ZMFGj5hxF0EhjimngomvnCCtqb30OXsDTiDJXVigHPVA.ttf","900":"http://fonts.gstatic.com/s/epilogue/v4/O4ZMFGj5hxF0EhjimngomvnCCtqb30OXmTTiDJXVigHPVA.ttf","regular":"http://fonts.gstatic.com/s/epilogue/v4/O4ZMFGj5hxF0EhjimngomvnCCtqb30OXMDPiDJXVigHPVA.ttf","100italic":"http://fonts.gstatic.com/s/epilogue/v4/O4ZCFGj5hxF0EhjimlIhqAYaY7EBcUSC-HAKTp_RqATfVHNU.ttf","200italic":"http://fonts.gstatic.com/s/epilogue/v4/O4ZCFGj5hxF0EhjimlIhqAYaY7EBcUSC-HCKT5_RqATfVHNU.ttf","300italic":"http://fonts.gstatic.com/s/epilogue/v4/O4ZCFGj5hxF0EhjimlIhqAYaY7EBcUSC-HBUT5_RqATfVHNU.ttf","italic":"http://fonts.gstatic.com/s/epilogue/v4/O4ZCFGj5hxF0EhjimlIhqAYaY7EBcUSC-HAKT5_RqATfVHNU.ttf","500italic":"http://fonts.gstatic.com/s/epilogue/v4/O4ZCFGj5hxF0EhjimlIhqAYaY7EBcUSC-HA4T5_RqATfVHNU.ttf","600italic":"http://fonts.gstatic.com/s/epilogue/v4/O4ZCFGj5hxF0EhjimlIhqAYaY7EBcUSC-HDUSJ_RqATfVHNU.ttf","700italic":"http://fonts.gstatic.com/s/epilogue/v4/O4ZCFGj5hxF0EhjimlIhqAYaY7EBcUSC-HDtSJ_RqATfVHNU.ttf","800italic":"http://fonts.gstatic.com/s/epilogue/v4/O4ZCFGj5hxF0EhjimlIhqAYaY7EBcUSC-HCKSJ_RqATfVHNU.ttf","900italic":"http://fonts.gstatic.com/s/epilogue/v4/O4ZCFGj5hxF0EhjimlIhqAYaY7EBcUSC-HCjSJ_RqATfVHNU.ttf"},"Gilda Display":{"regular":"http://fonts.gstatic.com/s/gildadisplay/v8/t5tmIRoYMoaYG0WEOh7HwMeR7TnFrpOHYh4.ttf"},"Baloo Tamma 2":{"500":"http://fonts.gstatic.com/s/balootamma2/v2/vEFK2_hCAgcR46PaajtrYlBbd7wf8tK1W77HtMo.ttf","600":"http://fonts.gstatic.com/s/balootamma2/v2/vEFK2_hCAgcR46PaajtrYlBbd5AY8tK1W77HtMo.ttf","700":"http://fonts.gstatic.com/s/balootamma2/v2/vEFK2_hCAgcR46PaajtrYlBbd_QZ8tK1W77HtMo.ttf","800":"http://fonts.gstatic.com/s/balootamma2/v2/vEFK2_hCAgcR46PaajtrYlBbd-ga8tK1W77HtMo.ttf","regular":"http://fonts.gstatic.com/s/balootamma2/v2/vEFX2_hCAgcR46PaajtrYlBbT0g21tqeR7c.ttf"},"Allerta Stencil":{"regular":"http://fonts.gstatic.com/s/allertastencil/v11/HTx0L209KT-LmIE9N7OR6eiycOeF-zz313DuvQ.ttf"},"Coming Soon":{"regular":"http://fonts.gstatic.com/s/comingsoon/v12/qWcuB6mzpYL7AJ2VfdQR1u-SUjjzsykh.ttf"},"Commissioner":{"100":"http://fonts.gstatic.com/s/commissioner/v5/tDbe2o2WnlgI0FNDgduEk4jAhwgIy5k8SlfU5Ni-IO9pOXuRoaY.ttf","200":"http://fonts.gstatic.com/s/commissioner/v5/tDbe2o2WnlgI0FNDgduEk4jAhwgIy5k8SlfU5Fi_IO9pOXuRoaY.ttf","300":"http://fonts.gstatic.com/s/commissioner/v5/tDbe2o2WnlgI0FNDgduEk4jAhwgIy5k8SlfU5Ia_IO9pOXuRoaY.ttf","500":"http://fonts.gstatic.com/s/commissioner/v5/tDbe2o2WnlgI0FNDgduEk4jAhwgIy5k8SlfU5Oq_IO9pOXuRoaY.ttf","600":"http://fonts.gstatic.com/s/commissioner/v5/tDbe2o2WnlgI0FNDgduEk4jAhwgIy5k8SlfU5Aa4IO9pOXuRoaY.ttf","700":"http://fonts.gstatic.com/s/commissioner/v5/tDbe2o2WnlgI0FNDgduEk4jAhwgIy5k8SlfU5D-4IO9pOXuRoaY.ttf","800":"http://fonts.gstatic.com/s/commissioner/v5/tDbe2o2WnlgI0FNDgduEk4jAhwgIy5k8SlfU5Fi4IO9pOXuRoaY.ttf","900":"http://fonts.gstatic.com/s/commissioner/v5/tDbe2o2WnlgI0FNDgduEk4jAhwgIy5k8SlfU5HG4IO9pOXuRoaY.ttf","regular":"http://fonts.gstatic.com/s/commissioner/v5/tDbe2o2WnlgI0FNDgduEk4jAhwgIy5k8SlfU5Ni_IO9pOXuRoaY.ttf"},"Duru Sans":{"regular":"http://fonts.gstatic.com/s/durusans/v14/xn7iYH8xwmSyTvEV_HOxT_fYdN-WZw.ttf"},"Lustria":{"regular":"http://fonts.gstatic.com/s/lustria/v8/9oRONYodvDEyjuhOrCg5MtPyAcg.ttf"},"Nanum Brush Script":{"regular":"http://fonts.gstatic.com/s/nanumbrushscript/v17/wXK2E2wfpokopxzthSqPbcR5_gVaxazyjqBr1lO97Q.ttf"},"Scada":{"700":"http://fonts.gstatic.com/s/scada/v9/RLp8K5Pv5qumeVrU6BEgRVfmZOE5.ttf","regular":"http://fonts.gstatic.com/s/scada/v9/RLpxK5Pv5qumeWJoxzUobkvv.ttf","italic":"http://fonts.gstatic.com/s/scada/v9/RLp_K5Pv5qumeVJqzTEKa1vvffg.ttf","700italic":"http://fonts.gstatic.com/s/scada/v9/RLp6K5Pv5qumeVJq9Y0lT1PEYfE5p6g.ttf"},"Rozha One":{"regular":"http://fonts.gstatic.com/s/rozhaone/v8/AlZy_zVFtYP12Zncg2khdXf4XB0Tow.ttf"},"Graduate":{"regular":"http://fonts.gstatic.com/s/graduate/v8/C8cg4cs3o2n15t_2YxgR6X2NZAn2.ttf"},"Marcellus SC":{"regular":"http://fonts.gstatic.com/s/marcellussc/v8/ke8iOgUHP1dg-Rmi6RWjbLEPgdydGKikhA.ttf"},"IBM Plex Sans Condensed":{"100":"http://fonts.gstatic.com/s/ibmplexsanscondensed/v7/Gg8nN4UfRSqiPg7Jn2ZI12V4DCEwkj1E4LVeHY7KyKvBgYsMDhM.ttf","200":"http://fonts.gstatic.com/s/ibmplexsanscondensed/v7/Gg8gN4UfRSqiPg7Jn2ZI12V4DCEwkj1E4LVeHY5m6Yvrr4cFFwq5.ttf","300":"http://fonts.gstatic.com/s/ibmplexsanscondensed/v7/Gg8gN4UfRSqiPg7Jn2ZI12V4DCEwkj1E4LVeHY4C6ovrr4cFFwq5.ttf","500":"http://fonts.gstatic.com/s/ibmplexsanscondensed/v7/Gg8gN4UfRSqiPg7Jn2ZI12V4DCEwkj1E4LVeHY5a64vrr4cFFwq5.ttf","600":"http://fonts.gstatic.com/s/ibmplexsanscondensed/v7/Gg8gN4UfRSqiPg7Jn2ZI12V4DCEwkj1E4LVeHY527Ivrr4cFFwq5.ttf","700":"http://fonts.gstatic.com/s/ibmplexsanscondensed/v7/Gg8gN4UfRSqiPg7Jn2ZI12V4DCEwkj1E4LVeHY4S7Yvrr4cFFwq5.ttf","100italic":"http://fonts.gstatic.com/s/ibmplexsanscondensed/v7/Gg8hN4UfRSqiPg7Jn2ZI12V4DCEwkj1E4LVeHYas8M_LhakJHhOgBg.ttf","200italic":"http://fonts.gstatic.com/s/ibmplexsanscondensed/v7/Gg8iN4UfRSqiPg7Jn2ZI12V4DCEwkj1E4LVeHYas8GPqpYMnEhq5H1w.ttf","300italic":"http://fonts.gstatic.com/s/ibmplexsanscondensed/v7/Gg8iN4UfRSqiPg7Jn2ZI12V4DCEwkj1E4LVeHYas8AfppYMnEhq5H1w.ttf","regular":"http://fonts.gstatic.com/s/ibmplexsanscondensed/v7/Gg8lN4UfRSqiPg7Jn2ZI12V4DCEwkj1E4LVeHbauwq_jhJsM.ttf","italic":"http://fonts.gstatic.com/s/ibmplexsanscondensed/v7/Gg8nN4UfRSqiPg7Jn2ZI12V4DCEwkj1E4LVeHYasyKvBgYsMDhM.ttf","500italic":"http://fonts.gstatic.com/s/ibmplexsanscondensed/v7/Gg8iN4UfRSqiPg7Jn2ZI12V4DCEwkj1E4LVeHYas8F_opYMnEhq5H1w.ttf","600italic":"http://fonts.gstatic.com/s/ibmplexsanscondensed/v7/Gg8iN4UfRSqiPg7Jn2ZI12V4DCEwkj1E4LVeHYas8HPvpYMnEhq5H1w.ttf","700italic":"http://fonts.gstatic.com/s/ibmplexsanscondensed/v7/Gg8iN4UfRSqiPg7Jn2ZI12V4DCEwkj1E4LVeHYas8BfupYMnEhq5H1w.ttf"},"Carrois Gothic":{"regular":"http://fonts.gstatic.com/s/carroisgothic/v11/Z9XPDmFATg-N1PLtLOOxvIHl9ZmD3i7ajcJ-.ttf"},"Suranna":{"regular":"http://fonts.gstatic.com/s/suranna/v8/gokuH6ztGkFjWe58tBRZT2KmgP0.ttf"},"Contrail One":{"regular":"http://fonts.gstatic.com/s/contrailone/v10/eLGbP-j_JA-kG0_Zo51noafdZUvt_c092w.ttf"},"Jockey One":{"regular":"http://fonts.gstatic.com/s/jockeyone/v10/HTxpL2g2KjCFj4x8WI6ArIb7HYOk4xc.ttf"},"Titan One":{"regular":"http://fonts.gstatic.com/s/titanone/v8/mFTzWbsGxbbS_J5cQcjykzIn2Etikg.ttf"},"Magra":{"700":"http://fonts.gstatic.com/s/magra/v9/uK_w4ruaZus72nbNDxcXEPuUX1ow.ttf","regular":"http://fonts.gstatic.com/s/magra/v9/uK_94ruaZus72k5xIDMfO-ed.ttf"},"Fauna One":{"regular":"http://fonts.gstatic.com/s/faunaone/v8/wlpzgwTPBVpjpCuwkuEx2UxLYClOCg.ttf"},"Palanquin Dark":{"500":"http://fonts.gstatic.com/s/palanquindark/v7/xn76YHgl1nqmANMB-26xC7yuF8Z6ZW41fcvN2KT4.ttf","600":"http://fonts.gstatic.com/s/palanquindark/v7/xn76YHgl1nqmANMB-26xC7yuF8ZWYm41fcvN2KT4.ttf","700":"http://fonts.gstatic.com/s/palanquindark/v7/xn76YHgl1nqmANMB-26xC7yuF8YyY241fcvN2KT4.ttf","regular":"http://fonts.gstatic.com/s/palanquindark/v7/xn75YHgl1nqmANMB-26xC7yuF_6OTEo9VtfE.ttf"},"Carme":{"regular":"http://fonts.gstatic.com/s/carme/v11/ptRHTiWdbvZIDOjGxLNrxfbZ.ttf"},"GFS Didot":{"regular":"http://fonts.gstatic.com/s/gfsdidot/v10/Jqzh5TybZ9vZMWFssvwiF-fGFSCGAA.ttf"},"Copse":{"regular":"http://fonts.gstatic.com/s/copse/v10/11hPGpDKz1rGb0djHkihUb-A.ttf"},"Libre Caslon Text":{"700":"http://fonts.gstatic.com/s/librecaslontext/v2/DdT578IGsGw1aF1JU10PUbTvNNaDMfID8sdjNR-8ssPt.ttf","regular":"http://fonts.gstatic.com/s/librecaslontext/v2/DdT878IGsGw1aF1JU10PUbTvNNaDMcq_3eNrHgO1.ttf","italic":"http://fonts.gstatic.com/s/librecaslontext/v2/DdT678IGsGw1aF1JU10PUbTvNNaDMfq91-dJGxO1q9o.ttf"},"Cedarville Cursive":{"regular":"http://fonts.gstatic.com/s/cedarvillecursive/v12/yYL00g_a2veiudhUmxjo5VKkoqA-B_neJbBxw8BeTg.ttf"},"Mr De Haviland":{"regular":"http://fonts.gstatic.com/s/mrdehaviland/v9/OpNVnooIhJj96FdB73296ksbOj3C4ULVNTlB.ttf"},"Sunflower":{"300":"http://fonts.gstatic.com/s/sunflower/v9/RWmPoKeF8fUjqIj7Vc-06MfiqYsGBGBzCw.ttf","500":"http://fonts.gstatic.com/s/sunflower/v9/RWmPoKeF8fUjqIj7Vc-0sMbiqYsGBGBzCw.ttf","700":"http://fonts.gstatic.com/s/sunflower/v9/RWmPoKeF8fUjqIj7Vc-0-MDiqYsGBGBzCw.ttf"},"K2D":{"100":"http://fonts.gstatic.com/s/k2d/v4/J7aRnpF2V0ErE6UpvrIw74NL.ttf","200":"http://fonts.gstatic.com/s/k2d/v4/J7aenpF2V0Erv4QJlJw85ppSGw.ttf","300":"http://fonts.gstatic.com/s/k2d/v4/J7aenpF2V0Er24cJlJw85ppSGw.ttf","500":"http://fonts.gstatic.com/s/k2d/v4/J7aenpF2V0Erg4YJlJw85ppSGw.ttf","600":"http://fonts.gstatic.com/s/k2d/v4/J7aenpF2V0Err4EJlJw85ppSGw.ttf","700":"http://fonts.gstatic.com/s/k2d/v4/J7aenpF2V0Ery4AJlJw85ppSGw.ttf","800":"http://fonts.gstatic.com/s/k2d/v4/J7aenpF2V0Er14MJlJw85ppSGw.ttf","100italic":"http://fonts.gstatic.com/s/k2d/v4/J7afnpF2V0EjdZ1NtLYS6pNLAjk.ttf","200italic":"http://fonts.gstatic.com/s/k2d/v4/J7acnpF2V0EjdZ3hlZY4xJ9CGyAa.ttf","300italic":"http://fonts.gstatic.com/s/k2d/v4/J7acnpF2V0EjdZ2FlpY4xJ9CGyAa.ttf","regular":"http://fonts.gstatic.com/s/k2d/v4/J7aTnpF2V0ETd68tnLcg7w.ttf","italic":"http://fonts.gstatic.com/s/k2d/v4/J7aRnpF2V0EjdaUpvrIw74NL.ttf","500italic":"http://fonts.gstatic.com/s/k2d/v4/J7acnpF2V0EjdZ3dl5Y4xJ9CGyAa.ttf","600italic":"http://fonts.gstatic.com/s/k2d/v4/J7acnpF2V0EjdZ3xkJY4xJ9CGyAa.ttf","700italic":"http://fonts.gstatic.com/s/k2d/v4/J7acnpF2V0EjdZ2VkZY4xJ9CGyAa.ttf","800italic":"http://fonts.gstatic.com/s/k2d/v4/J7acnpF2V0EjdZ2JkpY4xJ9CGyAa.ttf"},"Belleza":{"regular":"http://fonts.gstatic.com/s/belleza/v9/0nkoC9_pNeMfhX4BtcbyawzruP8.ttf"},"Comic Neue":{"300":"http://fonts.gstatic.com/s/comicneue/v2/4UaErEJDsxBrF37olUeD_wHLwpteLwtHJlc.ttf","700":"http://fonts.gstatic.com/s/comicneue/v2/4UaErEJDsxBrF37olUeD_xHMwpteLwtHJlc.ttf","300italic":"http://fonts.gstatic.com/s/comicneue/v2/4UaarEJDsxBrF37olUeD96_RTplUKylCNlcw_Q.ttf","regular":"http://fonts.gstatic.com/s/comicneue/v2/4UaHrEJDsxBrF37olUeDx63j5pN1MwI.ttf","italic":"http://fonts.gstatic.com/s/comicneue/v2/4UaFrEJDsxBrF37olUeD96_p4rFwIwJePw.ttf","700italic":"http://fonts.gstatic.com/s/comicneue/v2/4UaarEJDsxBrF37olUeD96_RXp5UKylCNlcw_Q.ttf"},"La Belle Aurore":{"regular":"http://fonts.gstatic.com/s/labelleaurore/v11/RrQIbot8-mNYKnGNDkWlocovHeIIG-eFNVmULg.ttf"},"Grand Hotel":{"regular":"http://fonts.gstatic.com/s/grandhotel/v8/7Au7p_IgjDKdCRWuR1azpmQNEl0O0kEx.ttf"},"Averia Serif Libre":{"300":"http://fonts.gstatic.com/s/averiaseriflibre/v10/neIVzD2ms4wxr6GvjeD0X88SHPyX2xYGCSmqwacqdrKvbQ.ttf","700":"http://fonts.gstatic.com/s/averiaseriflibre/v10/neIVzD2ms4wxr6GvjeD0X88SHPyX2xYGGS6qwacqdrKvbQ.ttf","300italic":"http://fonts.gstatic.com/s/averiaseriflibre/v10/neIbzD2ms4wxr6GvjeD0X88SHPyX2xYOpzMmw60uVLe_bXHq.ttf","regular":"http://fonts.gstatic.com/s/averiaseriflibre/v10/neIWzD2ms4wxr6GvjeD0X88SHPyX2xY-pQGOyYw2fw.ttf","italic":"http://fonts.gstatic.com/s/averiaseriflibre/v10/neIUzD2ms4wxr6GvjeD0X88SHPyX2xYOpwuK64kmf6u2.ttf","700italic":"http://fonts.gstatic.com/s/averiaseriflibre/v10/neIbzD2ms4wxr6GvjeD0X88SHPyX2xYOpzM2xK0uVLe_bXHq.ttf"},"Kosugi":{"regular":"http://fonts.gstatic.com/s/kosugi/v6/pxiFyp4_v8FCjlI4NLr6f1pdEQ.ttf"},"Rosario":{"300":"http://fonts.gstatic.com/s/rosario/v19/xfuu0WDhWW_fOEoY8l_VPNZfB7jPM69GCWczd-YnOzUD.ttf","500":"http://fonts.gstatic.com/s/rosario/v19/xfuu0WDhWW_fOEoY8l_VPNZfB7jPM68qCWczd-YnOzUD.ttf","600":"http://fonts.gstatic.com/s/rosario/v19/xfuu0WDhWW_fOEoY8l_VPNZfB7jPM6_GDmczd-YnOzUD.ttf","700":"http://fonts.gstatic.com/s/rosario/v19/xfuu0WDhWW_fOEoY8l_VPNZfB7jPM6__Dmczd-YnOzUD.ttf","regular":"http://fonts.gstatic.com/s/rosario/v19/xfuu0WDhWW_fOEoY8l_VPNZfB7jPM68YCWczd-YnOzUD.ttf","300italic":"http://fonts.gstatic.com/s/rosario/v19/xfug0WDhWW_fOEoY2Fbnww42bCJhNLrQStFwfeIFPiUDn08.ttf","italic":"http://fonts.gstatic.com/s/rosario/v19/xfug0WDhWW_fOEoY2Fbnww42bCJhNLrQSo9wfeIFPiUDn08.ttf","500italic":"http://fonts.gstatic.com/s/rosario/v19/xfug0WDhWW_fOEoY2Fbnww42bCJhNLrQSr1wfeIFPiUDn08.ttf","600italic":"http://fonts.gstatic.com/s/rosario/v19/xfug0WDhWW_fOEoY2Fbnww42bCJhNLrQSlF3feIFPiUDn08.ttf","700italic":"http://fonts.gstatic.com/s/rosario/v19/xfug0WDhWW_fOEoY2Fbnww42bCJhNLrQSmh3feIFPiUDn08.ttf"},"Petit Formal Script":{"regular":"http://fonts.gstatic.com/s/petitformalscript/v8/B50TF6xQr2TXJBnGOFME6u5OR83oRP5qoHnqP4gZSiE.ttf"},"Halant":{"300":"http://fonts.gstatic.com/s/halant/v8/u-490qaujRI2Pbsvc_pCmwZqcwdRXg.ttf","500":"http://fonts.gstatic.com/s/halant/v8/u-490qaujRI2PbsvK_tCmwZqcwdRXg.ttf","600":"http://fonts.gstatic.com/s/halant/v8/u-490qaujRI2PbsvB_xCmwZqcwdRXg.ttf","700":"http://fonts.gstatic.com/s/halant/v8/u-490qaujRI2PbsvY_1CmwZqcwdRXg.ttf","regular":"http://fonts.gstatic.com/s/halant/v8/u-4-0qaujRI2PbsX39Jmky12eg.ttf"},"Amiko":{"600":"http://fonts.gstatic.com/s/amiko/v5/WwkdxPq1DFK04uJ9XXrEGoQAUco5.ttf","700":"http://fonts.gstatic.com/s/amiko/v5/WwkdxPq1DFK04uIZXHrEGoQAUco5.ttf","regular":"http://fonts.gstatic.com/s/amiko/v5/WwkQxPq1DFK04tqlc17MMZgJ.ttf"},"Slabo 13px":{"regular":"http://fonts.gstatic.com/s/slabo13px/v8/11hEGp_azEvXZUdSBzzRcKer2wkYnvI.ttf"},"Poly":{"regular":"http://fonts.gstatic.com/s/poly/v11/MQpb-W6wKNitRLCAq2Lpris.ttf","italic":"http://fonts.gstatic.com/s/poly/v11/MQpV-W6wKNitdLKKr0DsviuGWA.ttf"},"Marmelad":{"regular":"http://fonts.gstatic.com/s/marmelad/v10/Qw3eZQdSHj_jK2e-8tFLG-YMC0R8.ttf"},"Wallpoet":{"regular":"http://fonts.gstatic.com/s/wallpoet/v12/f0X10em2_8RnXVVdUNbu7cXP8L8G.ttf"},"Baskervville":{"regular":"http://fonts.gstatic.com/s/baskervville/v5/YA9Ur0yU4l_XOrogbkun3kQgt5OohvbJ9A.ttf","italic":"http://fonts.gstatic.com/s/baskervville/v5/YA9Kr0yU4l_XOrogbkun3kQQtZmspPPZ9Mlt.ttf"},"Calligraffitti":{"regular":"http://fonts.gstatic.com/s/calligraffitti/v12/46k2lbT3XjDVqJw3DCmCFjE0vnFZM5ZBpYN-.ttf"},"Sora":{"100":"http://fonts.gstatic.com/s/sora/v3/xMQOuFFYT72X5wkB_18qmnndmSdSn3-KIwNhBti0.ttf","200":"http://fonts.gstatic.com/s/sora/v3/xMQOuFFYT72X5wkB_18qmnndmSfSnn-KIwNhBti0.ttf","300":"http://fonts.gstatic.com/s/sora/v3/xMQOuFFYT72X5wkB_18qmnndmScMnn-KIwNhBti0.ttf","500":"http://fonts.gstatic.com/s/sora/v3/xMQOuFFYT72X5wkB_18qmnndmSdgnn-KIwNhBti0.ttf","600":"http://fonts.gstatic.com/s/sora/v3/xMQOuFFYT72X5wkB_18qmnndmSeMmX-KIwNhBti0.ttf","700":"http://fonts.gstatic.com/s/sora/v3/xMQOuFFYT72X5wkB_18qmnndmSe1mX-KIwNhBti0.ttf","800":"http://fonts.gstatic.com/s/sora/v3/xMQOuFFYT72X5wkB_18qmnndmSfSmX-KIwNhBti0.ttf","regular":"http://fonts.gstatic.com/s/sora/v3/xMQOuFFYT72X5wkB_18qmnndmSdSnn-KIwNhBti0.ttf"},"Be Vietnam":{"100":"http://fonts.gstatic.com/s/bevietnam/v2/FBVxdDflz-iPfoPuIC2iKsUn7W1hK2czPg.ttf","300":"http://fonts.gstatic.com/s/bevietnam/v2/FBVwdDflz-iPfoPuIC2iKg0FzUdPJ24qJzc.ttf","500":"http://fonts.gstatic.com/s/bevietnam/v2/FBVwdDflz-iPfoPuIC2iKlUEzUdPJ24qJzc.ttf","600":"http://fonts.gstatic.com/s/bevietnam/v2/FBVwdDflz-iPfoPuIC2iKnkDzUdPJ24qJzc.ttf","700":"http://fonts.gstatic.com/s/bevietnam/v2/FBVwdDflz-iPfoPuIC2iKh0CzUdPJ24qJzc.ttf","800":"http://fonts.gstatic.com/s/bevietnam/v2/FBVwdDflz-iPfoPuIC2iKgEBzUdPJ24qJzc.ttf","100italic":"http://fonts.gstatic.com/s/bevietnam/v2/FBVvdDflz-iPfoPuIC2iIqMfiWdlCWIjPi5p.ttf","300italic":"http://fonts.gstatic.com/s/bevietnam/v2/FBVudDflz-iPfoPuIC2iIqMfQUVFI0wvNzdwXQ.ttf","regular":"http://fonts.gstatic.com/s/bevietnam/v2/FBVzdDflz-iPfoPuIC2iEqEt6U9kO2c.ttf","italic":"http://fonts.gstatic.com/s/bevietnam/v2/FBVxdDflz-iPfoPuIC2iIqMn7W1hK2czPg.ttf","500italic":"http://fonts.gstatic.com/s/bevietnam/v2/FBVudDflz-iPfoPuIC2iIqMfGURFI0wvNzdwXQ.ttf","600italic":"http://fonts.gstatic.com/s/bevietnam/v2/FBVudDflz-iPfoPuIC2iIqMfNUNFI0wvNzdwXQ.ttf","700italic":"http://fonts.gstatic.com/s/bevietnam/v2/FBVudDflz-iPfoPuIC2iIqMfUUJFI0wvNzdwXQ.ttf","800italic":"http://fonts.gstatic.com/s/bevietnam/v2/FBVudDflz-iPfoPuIC2iIqMfTUFFI0wvNzdwXQ.ttf"},"Schoolbell":{"regular":"http://fonts.gstatic.com/s/schoolbell/v11/92zQtBZWOrcgoe-fgnJIVxIQ6mRqfiQ.ttf"},"Love Ya Like A Sister":{"regular":"http://fonts.gstatic.com/s/loveyalikeasister/v11/R70EjzUBlOqPeouhFDfR80-0FhOqJubN-Be78nZcsGGycA.ttf"},"Blinker":{"100":"http://fonts.gstatic.com/s/blinker/v4/cIf_MaFatEE-VTaP_E2hZEsCkIt9QQ.ttf","200":"http://fonts.gstatic.com/s/blinker/v4/cIf4MaFatEE-VTaP_OGARGEsnIJkWL4.ttf","300":"http://fonts.gstatic.com/s/blinker/v4/cIf4MaFatEE-VTaP_IWDRGEsnIJkWL4.ttf","600":"http://fonts.gstatic.com/s/blinker/v4/cIf4MaFatEE-VTaP_PGFRGEsnIJkWL4.ttf","700":"http://fonts.gstatic.com/s/blinker/v4/cIf4MaFatEE-VTaP_JWERGEsnIJkWL4.ttf","800":"http://fonts.gstatic.com/s/blinker/v4/cIf4MaFatEE-VTaP_ImHRGEsnIJkWL4.ttf","900":"http://fonts.gstatic.com/s/blinker/v4/cIf4MaFatEE-VTaP_K2GRGEsnIJkWL4.ttf","regular":"http://fonts.gstatic.com/s/blinker/v4/cIf9MaFatEE-VTaPxCmrYGkHgIs.ttf"},"Gugi":{"regular":"http://fonts.gstatic.com/s/gugi/v8/A2BVn5dXywshVA6A9DEfgqM.ttf"},"Radley":{"regular":"http://fonts.gstatic.com/s/radley/v15/LYjDdGzinEIjCN19oAlEpVs3VQ.ttf","italic":"http://fonts.gstatic.com/s/radley/v15/LYjBdGzinEIjCN1NogNAh14nVcfe.ttf"},"Metrophobic":{"regular":"http://fonts.gstatic.com/s/metrophobic/v14/sJoA3LZUhMSAPV_u0qwiAT-J737FPEEL.ttf"},"Merienda One":{"regular":"http://fonts.gstatic.com/s/meriendaone/v11/H4cgBXaMndbflEq6kyZ1ht6YgoyyYzFzFw.ttf"},"Podkova":{"500":"http://fonts.gstatic.com/s/podkova/v18/K2FufZ1EmftJSV9VQpXb1lo9vC3nZWt3zcU4EoporSHH.ttf","600":"http://fonts.gstatic.com/s/podkova/v18/K2FufZ1EmftJSV9VQpXb1lo9vC3nZWubysU4EoporSHH.ttf","700":"http://fonts.gstatic.com/s/podkova/v18/K2FufZ1EmftJSV9VQpXb1lo9vC3nZWuiysU4EoporSHH.ttf","800":"http://fonts.gstatic.com/s/podkova/v18/K2FufZ1EmftJSV9VQpXb1lo9vC3nZWvFysU4EoporSHH.ttf","regular":"http://fonts.gstatic.com/s/podkova/v18/K2FufZ1EmftJSV9VQpXb1lo9vC3nZWtFzcU4EoporSHH.ttf"},"Alatsi":{"regular":"http://fonts.gstatic.com/s/alatsi/v2/TK3iWkUJAxQ2nLNGHjUHte5fKg.ttf"},"Thasadith":{"700":"http://fonts.gstatic.com/s/thasadith/v4/mtG94_1TIqPYrd_f5R1gDGYw2A6yHk9d8w.ttf","regular":"http://fonts.gstatic.com/s/thasadith/v4/mtG44_1TIqPYrd_f5R1YsEkU0CWuFw.ttf","italic":"http://fonts.gstatic.com/s/thasadith/v4/mtG-4_1TIqPYrd_f5R1oskMQ8iC-F1ZE.ttf","700italic":"http://fonts.gstatic.com/s/thasadith/v4/mtGj4_1TIqPYrd_f5R1osnus3QS2PEpN8zxA.ttf"},"Averia Libre":{"300":"http://fonts.gstatic.com/s/averialibre/v9/2V0FKIcMGZEnV6xygz7eNjEarovtb07t-pQgTw.ttf","700":"http://fonts.gstatic.com/s/averialibre/v9/2V0FKIcMGZEnV6xygz7eNjEavoztb07t-pQgTw.ttf","300italic":"http://fonts.gstatic.com/s/averialibre/v9/2V0HKIcMGZEnV6xygz7eNjESAJFhbUTp2JEwT4Sk.ttf","regular":"http://fonts.gstatic.com/s/averialibre/v9/2V0aKIcMGZEnV6xygz7eNjEiAqPJZ2Xx8w.ttf","italic":"http://fonts.gstatic.com/s/averialibre/v9/2V0EKIcMGZEnV6xygz7eNjESAKnNRWDh8405.ttf","700italic":"http://fonts.gstatic.com/s/averialibre/v9/2V0HKIcMGZEnV6xygz7eNjESAJFxakTp2JEwT4Sk.ttf"},"Manjari":{"100":"http://fonts.gstatic.com/s/manjari/v4/k3kSo8UPMOBO2w1UdbroK2vFIaOV8A.ttf","700":"http://fonts.gstatic.com/s/manjari/v4/k3kVo8UPMOBO2w1UdWLNC0HrLaqM6Q4.ttf","regular":"http://fonts.gstatic.com/s/manjari/v4/k3kQo8UPMOBO2w1UTd7iL0nAMaM.ttf"},"Oxygen Mono":{"regular":"http://fonts.gstatic.com/s/oxygenmono/v8/h0GsssGg9FxgDgCjLeAd7ijfze-PPlUu.ttf"},"Cambay":{"700":"http://fonts.gstatic.com/s/cambay/v7/SLXKc1rY6H0_ZDs-0pusx_lwYX99kA.ttf","regular":"http://fonts.gstatic.com/s/cambay/v7/SLXJc1rY6H0_ZDsGbrSIz9JsaA.ttf","italic":"http://fonts.gstatic.com/s/cambay/v7/SLXLc1rY6H0_ZDs2bL6M7dd8aGZk.ttf","700italic":"http://fonts.gstatic.com/s/cambay/v7/SLXMc1rY6H0_ZDs2bIYwwvN0Q3ptkDMN.ttf"},"Rammetto One":{"regular":"http://fonts.gstatic.com/s/rammettoone/v9/LhWiMV3HOfMbMetJG3lQDpp9Mvuciu-_SQ.ttf"},"Limelight":{"regular":"http://fonts.gstatic.com/s/limelight/v11/XLYkIZL7aopJVbZJHDuYPeNGrnY2TA.ttf"},"Esteban":{"regular":"http://fonts.gstatic.com/s/esteban/v9/r05bGLZE-bdGdN-GdOuD5jokU8E.ttf"},"Aladin":{"regular":"http://fonts.gstatic.com/s/aladin/v9/ZgNSjPJFPrvJV5f16Sf4pGT2Ng.ttf"},"Cormorant Infant":{"300":"http://fonts.gstatic.com/s/cormorantinfant/v11/HhyIU44g9vKiM1sORYSiWeAsLN9951w3_DMrQqcdJrk.ttf","500":"http://fonts.gstatic.com/s/cormorantinfant/v11/HhyIU44g9vKiM1sORYSiWeAsLN995wQ2_DMrQqcdJrk.ttf","600":"http://fonts.gstatic.com/s/cormorantinfant/v11/HhyIU44g9vKiM1sORYSiWeAsLN995ygx_DMrQqcdJrk.ttf","700":"http://fonts.gstatic.com/s/cormorantinfant/v11/HhyIU44g9vKiM1sORYSiWeAsLN9950ww_DMrQqcdJrk.ttf","300italic":"http://fonts.gstatic.com/s/cormorantinfant/v11/HhyKU44g9vKiM1sORYSiWeAsLN997_ItcDEhRoUYNrn_Ig.ttf","regular":"http://fonts.gstatic.com/s/cormorantinfant/v11/HhyPU44g9vKiM1sORYSiWeAsLN993_Af2DsAXq4.ttf","italic":"http://fonts.gstatic.com/s/cormorantinfant/v11/HhyJU44g9vKiM1sORYSiWeAsLN997_IV3BkFTq4EPw.ttf","500italic":"http://fonts.gstatic.com/s/cormorantinfant/v11/HhyKU44g9vKiM1sORYSiWeAsLN997_ItKDAhRoUYNrn_Ig.ttf","600italic":"http://fonts.gstatic.com/s/cormorantinfant/v11/HhyKU44g9vKiM1sORYSiWeAsLN997_ItBDchRoUYNrn_Ig.ttf","700italic":"http://fonts.gstatic.com/s/cormorantinfant/v11/HhyKU44g9vKiM1sORYSiWeAsLN997_ItYDYhRoUYNrn_Ig.ttf"},"IM Fell Double Pica":{"regular":"http://fonts.gstatic.com/s/imfelldoublepica/v10/3XF2EqMq_94s9PeKF7Fg4gOKINyMtZ8rT0S1UL5Ayp0.ttf","italic":"http://fonts.gstatic.com/s/imfelldoublepica/v10/3XF0EqMq_94s9PeKF7Fg4gOKINyMtZ8rf0a_VJxF2p2G8g.ttf"},"NTR":{"regular":"http://fonts.gstatic.com/s/ntr/v10/RLpzK5Xy0ZjiGGhs5TA4bg.ttf"},"Buenard":{"700":"http://fonts.gstatic.com/s/buenard/v12/OD5GuM6Cyma8FnnsB4vSjGCWALepwss.ttf","regular":"http://fonts.gstatic.com/s/buenard/v12/OD5DuM6Cyma8FnnsPzf9qGi9HL4.ttf"},"Spectral SC":{"200":"http://fonts.gstatic.com/s/spectralsc/v6/Ktk0ALCRZonmalTgyPmRfs1qwkTXPYeVXJZB.ttf","300":"http://fonts.gstatic.com/s/spectralsc/v6/Ktk0ALCRZonmalTgyPmRfs0OwUTXPYeVXJZB.ttf","500":"http://fonts.gstatic.com/s/spectralsc/v6/Ktk0ALCRZonmalTgyPmRfs1WwETXPYeVXJZB.ttf","600":"http://fonts.gstatic.com/s/spectralsc/v6/Ktk0ALCRZonmalTgyPmRfs16x0TXPYeVXJZB.ttf","700":"http://fonts.gstatic.com/s/spectralsc/v6/Ktk0ALCRZonmalTgyPmRfs0exkTXPYeVXJZB.ttf","800":"http://fonts.gstatic.com/s/spectralsc/v6/Ktk0ALCRZonmalTgyPmRfs0CxUTXPYeVXJZB.ttf","200italic":"http://fonts.gstatic.com/s/spectralsc/v6/Ktk2ALCRZonmalTgyPmRfsWg26zWN4O3WYZB_sU.ttf","300italic":"http://fonts.gstatic.com/s/spectralsc/v6/Ktk2ALCRZonmalTgyPmRfsWg28jVN4O3WYZB_sU.ttf","regular":"http://fonts.gstatic.com/s/spectralsc/v6/KtkpALCRZonmalTgyPmRfvWi6WDfFpuc.ttf","italic":"http://fonts.gstatic.com/s/spectralsc/v6/KtkrALCRZonmalTgyPmRfsWg42T9E4ucRY8.ttf","500italic":"http://fonts.gstatic.com/s/spectralsc/v6/Ktk2ALCRZonmalTgyPmRfsWg25DUN4O3WYZB_sU.ttf","600italic":"http://fonts.gstatic.com/s/spectralsc/v6/Ktk2ALCRZonmalTgyPmRfsWg27zTN4O3WYZB_sU.ttf","700italic":"http://fonts.gstatic.com/s/spectralsc/v6/Ktk2ALCRZonmalTgyPmRfsWg29jSN4O3WYZB_sU.ttf","800italic":"http://fonts.gstatic.com/s/spectralsc/v6/Ktk2ALCRZonmalTgyPmRfsWg28TRN4O3WYZB_sU.ttf"},"Bellefair":{"regular":"http://fonts.gstatic.com/s/bellefair/v6/kJExBuYY6AAuhiXUxG19__A2pOdvDA.ttf"},"Kelly Slab":{"regular":"http://fonts.gstatic.com/s/kellyslab/v11/-W_7XJX0Rz3cxUnJC5t6TkMBf50kbiM.ttf"},"Hanuman":{"700":"http://fonts.gstatic.com/s/hanuman/v14/VuJ0dNvD15HhpJJBQBr4HIlMZRNcp0o.ttf","regular":"http://fonts.gstatic.com/s/hanuman/v14/VuJxdNvD15HhpJJBeKbXOIFneRo.ttf"},"Gravitas One":{"regular":"http://fonts.gstatic.com/s/gravitasone/v10/5h1diZ4hJ3cblKy3LWakKQmaDWRNr3DzbQ.ttf"},"Amethysta":{"regular":"http://fonts.gstatic.com/s/amethysta/v9/rP2Fp2K15kgb_F3ibfWIGDWCBl0O8Q.ttf"},"Inder":{"regular":"http://fonts.gstatic.com/s/inder/v9/w8gUH2YoQe8_4vq6pw-P3U4O.ttf"},"Andada":{"regular":"http://fonts.gstatic.com/s/andada/v12/uK_y4riWaego3w9RCh0TMv6EXw.ttf"},"Fira Code":{"300":"http://fonts.gstatic.com/s/firacode/v10/uU9eCBsR6Z2vfE9aq3bL0fxyUs4tcw4W_GNsFVfxN87gsj0.ttf","500":"http://fonts.gstatic.com/s/firacode/v10/uU9eCBsR6Z2vfE9aq3bL0fxyUs4tcw4W_A9sFVfxN87gsj0.ttf","600":"http://fonts.gstatic.com/s/firacode/v10/uU9eCBsR6Z2vfE9aq3bL0fxyUs4tcw4W_ONrFVfxN87gsj0.ttf","700":"http://fonts.gstatic.com/s/firacode/v10/uU9eCBsR6Z2vfE9aq3bL0fxyUs4tcw4W_NprFVfxN87gsj0.ttf","regular":"http://fonts.gstatic.com/s/firacode/v10/uU9eCBsR6Z2vfE9aq3bL0fxyUs4tcw4W_D1sFVfxN87gsj0.ttf"},"Marvel":{"700":"http://fonts.gstatic.com/s/marvel/v10/nwpWtKeoNgBV0qawLXHgB1WmxwkiYQ.ttf","regular":"http://fonts.gstatic.com/s/marvel/v10/nwpVtKeoNgBV0qaIkV7ED366zg.ttf","italic":"http://fonts.gstatic.com/s/marvel/v10/nwpXtKeoNgBV0qa4k1TALXuqzhA7.ttf","700italic":"http://fonts.gstatic.com/s/marvel/v10/nwpQtKeoNgBV0qa4k2x8Al-i5QwyYdrc.ttf"},"Balthazar":{"regular":"http://fonts.gstatic.com/s/balthazar/v10/d6lKkaajS8Gm4CVQjFEvyRTo39l8hw.ttf"},"Grandstander":{"100":"http://fonts.gstatic.com/s/grandstander/v4/ga6fawtA-GpSsTWrnNHPCSIMZhhKpFjyNZIQD1-_D3jWttFGmQk.ttf","200":"http://fonts.gstatic.com/s/grandstander/v4/ga6fawtA-GpSsTWrnNHPCSIMZhhKpFjyNZIQD9--D3jWttFGmQk.ttf","300":"http://fonts.gstatic.com/s/grandstander/v4/ga6fawtA-GpSsTWrnNHPCSIMZhhKpFjyNZIQDwG-D3jWttFGmQk.ttf","500":"http://fonts.gstatic.com/s/grandstander/v4/ga6fawtA-GpSsTWrnNHPCSIMZhhKpFjyNZIQD22-D3jWttFGmQk.ttf","600":"http://fonts.gstatic.com/s/grandstander/v4/ga6fawtA-GpSsTWrnNHPCSIMZhhKpFjyNZIQD4G5D3jWttFGmQk.ttf","700":"http://fonts.gstatic.com/s/grandstander/v4/ga6fawtA-GpSsTWrnNHPCSIMZhhKpFjyNZIQD7i5D3jWttFGmQk.ttf","800":"http://fonts.gstatic.com/s/grandstander/v4/ga6fawtA-GpSsTWrnNHPCSIMZhhKpFjyNZIQD9-5D3jWttFGmQk.ttf","900":"http://fonts.gstatic.com/s/grandstander/v4/ga6fawtA-GpSsTWrnNHPCSIMZhhKpFjyNZIQD_a5D3jWttFGmQk.ttf","regular":"http://fonts.gstatic.com/s/grandstander/v4/ga6fawtA-GpSsTWrnNHPCSIMZhhKpFjyNZIQD1--D3jWttFGmQk.ttf","100italic":"http://fonts.gstatic.com/s/grandstander/v4/ga6ZawtA-GpSsTWrnNHPCSImbyq1fDGZrzwXGpf95zrcsvNDiQlBYQ.ttf","200italic":"http://fonts.gstatic.com/s/grandstander/v4/ga6ZawtA-GpSsTWrnNHPCSImbyq1fDGZrzwXGpf9ZzvcsvNDiQlBYQ.ttf","300italic":"http://fonts.gstatic.com/s/grandstander/v4/ga6ZawtA-GpSsTWrnNHPCSImbyq1fDGZrzwXGpf9uTvcsvNDiQlBYQ.ttf","italic":"http://fonts.gstatic.com/s/grandstander/v4/ga6ZawtA-GpSsTWrnNHPCSImbyq1fDGZrzwXGpf95zvcsvNDiQlBYQ.ttf","500italic":"http://fonts.gstatic.com/s/grandstander/v4/ga6ZawtA-GpSsTWrnNHPCSImbyq1fDGZrzwXGpf91TvcsvNDiQlBYQ.ttf","600italic":"http://fonts.gstatic.com/s/grandstander/v4/ga6ZawtA-GpSsTWrnNHPCSImbyq1fDGZrzwXGpf9OTzcsvNDiQlBYQ.ttf","700italic":"http://fonts.gstatic.com/s/grandstander/v4/ga6ZawtA-GpSsTWrnNHPCSImbyq1fDGZrzwXGpf9ADzcsvNDiQlBYQ.ttf","800italic":"http://fonts.gstatic.com/s/grandstander/v4/ga6ZawtA-GpSsTWrnNHPCSImbyq1fDGZrzwXGpf9ZzzcsvNDiQlBYQ.ttf","900italic":"http://fonts.gstatic.com/s/grandstander/v4/ga6ZawtA-GpSsTWrnNHPCSImbyq1fDGZrzwXGpf9TjzcsvNDiQlBYQ.ttf"},"Waiting for the Sunrise":{"regular":"http://fonts.gstatic.com/s/waitingforthesunrise/v11/WBL1rFvOYl9CEv2i1mO6KUW8RKWJ2zoXoz5JsYZQ9h_ZYk5J.ttf"},"Lekton":{"700":"http://fonts.gstatic.com/s/lekton/v12/SZc73FDmLaWmWpBm4zjMlWjX4DJXgQ.ttf","regular":"http://fonts.gstatic.com/s/lekton/v12/SZc43FDmLaWmWpBeXxfonUPL6Q.ttf","italic":"http://fonts.gstatic.com/s/lekton/v12/SZc63FDmLaWmWpBuXR3sv0bb6StO.ttf"},"Sue Ellen Francisco":{"regular":"http://fonts.gstatic.com/s/sueellenfrancisco/v11/wXK3E20CsoJ9j1DDkjHcQ5ZL8xRaxru9ropF2lqk9H4.ttf"},"Megrim":{"regular":"http://fonts.gstatic.com/s/megrim/v11/46kulbz5WjvLqJZlbWXgd0RY1g.ttf"},"Bentham":{"regular":"http://fonts.gstatic.com/s/bentham/v11/VdGeAZQPEpYfmHglKWw7CJaK_y4.ttf"},"Space Grotesk":{"300":"http://fonts.gstatic.com/s/spacegrotesk/v6/V8mQoQDjQSkFtoMM3T6r8E7mF71Q-gOoraIAEj62UUsjNsFjTDJK.ttf","500":"http://fonts.gstatic.com/s/spacegrotesk/v6/V8mQoQDjQSkFtoMM3T6r8E7mF71Q-gOoraIAEj7aUUsjNsFjTDJK.ttf","600":"http://fonts.gstatic.com/s/spacegrotesk/v6/V8mQoQDjQSkFtoMM3T6r8E7mF71Q-gOoraIAEj42VksjNsFjTDJK.ttf","700":"http://fonts.gstatic.com/s/spacegrotesk/v6/V8mQoQDjQSkFtoMM3T6r8E7mF71Q-gOoraIAEj4PVksjNsFjTDJK.ttf","regular":"http://fonts.gstatic.com/s/spacegrotesk/v6/V8mQoQDjQSkFtoMM3T6r8E7mF71Q-gOoraIAEj7oUUsjNsFjTDJK.ttf"},"Harmattan":{"700":"http://fonts.gstatic.com/s/harmattan/v11/gokpH6L2DkFvVvRp9Xpr92-HmNZEq6TTFw.ttf","regular":"http://fonts.gstatic.com/s/harmattan/v11/goksH6L2DkFvVvRp9XpTS0CjkP1Yog.ttf"},"Gabriela":{"regular":"http://fonts.gstatic.com/s/gabriela/v9/qkBWXvsO6sreR8E-b_m-zrpHmRzC.ttf"},"Encode Sans Semi Condensed":{"100":"http://fonts.gstatic.com/s/encodesanssemicondensed/v5/3qT6oiKqnDuUtQUEHMoXcmspmy55SFWrXFRp9FTOG1T19MFtQ9jpVUA.ttf","200":"http://fonts.gstatic.com/s/encodesanssemicondensed/v5/3qT7oiKqnDuUtQUEHMoXcmspmy55SFWrXFRp9FTOG1RZ1eFHbdTgTFmr.ttf","300":"http://fonts.gstatic.com/s/encodesanssemicondensed/v5/3qT7oiKqnDuUtQUEHMoXcmspmy55SFWrXFRp9FTOG1Q91uFHbdTgTFmr.ttf","500":"http://fonts.gstatic.com/s/encodesanssemicondensed/v5/3qT7oiKqnDuUtQUEHMoXcmspmy55SFWrXFRp9FTOG1Rl1-FHbdTgTFmr.ttf","600":"http://fonts.gstatic.com/s/encodesanssemicondensed/v5/3qT7oiKqnDuUtQUEHMoXcmspmy55SFWrXFRp9FTOG1RJ0OFHbdTgTFmr.ttf","700":"http://fonts.gstatic.com/s/encodesanssemicondensed/v5/3qT7oiKqnDuUtQUEHMoXcmspmy55SFWrXFRp9FTOG1Qt0eFHbdTgTFmr.ttf","800":"http://fonts.gstatic.com/s/encodesanssemicondensed/v5/3qT7oiKqnDuUtQUEHMoXcmspmy55SFWrXFRp9FTOG1Qx0uFHbdTgTFmr.ttf","900":"http://fonts.gstatic.com/s/encodesanssemicondensed/v5/3qT7oiKqnDuUtQUEHMoXcmspmy55SFWrXFRp9FTOG1QV0-FHbdTgTFmr.ttf","regular":"http://fonts.gstatic.com/s/encodesanssemicondensed/v5/3qT4oiKqnDuUtQUEHMoXcmspmy55SFWrXFRp9FTOG2yR_sVPRsjp.ttf"},"Turret Road":{"200":"http://fonts.gstatic.com/s/turretroad/v2/pxidypMgpcBFjE84Zv-fE0ONEdeLYk1Mq3ap.ttf","300":"http://fonts.gstatic.com/s/turretroad/v2/pxidypMgpcBFjE84Zv-fE0PpEteLYk1Mq3ap.ttf","500":"http://fonts.gstatic.com/s/turretroad/v2/pxidypMgpcBFjE84Zv-fE0OxE9eLYk1Mq3ap.ttf","700":"http://fonts.gstatic.com/s/turretroad/v2/pxidypMgpcBFjE84Zv-fE0P5FdeLYk1Mq3ap.ttf","800":"http://fonts.gstatic.com/s/turretroad/v2/pxidypMgpcBFjE84Zv-fE0PlFteLYk1Mq3ap.ttf","regular":"http://fonts.gstatic.com/s/turretroad/v2/pxiAypMgpcBFjE84Zv-fE3tFOvODSVFF.ttf"},"Kumbh Sans":{"300":"http://fonts.gstatic.com/s/kumbhsans/v5/c4mm1n92AsfhuCq6tVsagit_3KKVXUv8Los.ttf","700":"http://fonts.gstatic.com/s/kumbhsans/v5/c4mm1n92AsfhuCq6tVsagjt43KKVXUv8Los.ttf","regular":"http://fonts.gstatic.com/s/kumbhsans/v5/c4ml1n92AsfhuCq6tVsauodX-Kq-QUI.ttf"},"Alike":{"regular":"http://fonts.gstatic.com/s/alike/v13/HI_EiYEYI6BIoEjBSZXAQ4-d.ttf"},"Chelsea Market":{"regular":"http://fonts.gstatic.com/s/chelseamarket/v8/BCawqZsHqfr89WNP_IApC8tzKBhlLA4uKkWk.ttf"},"Monsieur La Doulaise":{"regular":"http://fonts.gstatic.com/s/monsieurladoulaise/v9/_Xmz-GY4rjmCbQfc-aPRaa4pqV340p7EZl5ewkEU4HTy.ttf"},"Sniglet":{"800":"http://fonts.gstatic.com/s/sniglet/v12/cIf4MaFLtkE3UjaJ_ImHRGEsnIJkWL4.ttf","regular":"http://fonts.gstatic.com/s/sniglet/v12/cIf9MaFLtkE3UjaJxCmrYGkHgIs.ttf"},"Farro":{"300":"http://fonts.gstatic.com/s/farro/v4/i7dJIFl3byGNHa3hNJ6-WkJUQUq7.ttf","500":"http://fonts.gstatic.com/s/farro/v4/i7dJIFl3byGNHa25NZ6-WkJUQUq7.ttf","700":"http://fonts.gstatic.com/s/farro/v4/i7dJIFl3byGNHa3xM56-WkJUQUq7.ttf","regular":"http://fonts.gstatic.com/s/farro/v4/i7dEIFl3byGNHZVNHLq2cV5d.ttf"},"Creepster":{"regular":"http://fonts.gstatic.com/s/creepster/v9/AlZy_zVUqJz4yMrniH4hdXf4XB0Tow.ttf"},"Convergence":{"regular":"http://fonts.gstatic.com/s/convergence/v10/rax5HiePvdgXPmmMHcIPYRhasU7Q8Cad.ttf"},"Cormorant SC":{"300":"http://fonts.gstatic.com/s/cormorantsc/v11/0ybmGD4kxqXBmOVLG30OGwsmABIU_R3y8DOWGA.ttf","500":"http://fonts.gstatic.com/s/cormorantsc/v11/0ybmGD4kxqXBmOVLG30OGwsmWBMU_R3y8DOWGA.ttf","600":"http://fonts.gstatic.com/s/cormorantsc/v11/0ybmGD4kxqXBmOVLG30OGwsmdBQU_R3y8DOWGA.ttf","700":"http://fonts.gstatic.com/s/cormorantsc/v11/0ybmGD4kxqXBmOVLG30OGwsmEBUU_R3y8DOWGA.ttf","regular":"http://fonts.gstatic.com/s/cormorantsc/v11/0yb5GD4kxqXBmOVLG30OGwserDow9Tbu-Q.ttf"},"Rouge Script":{"regular":"http://fonts.gstatic.com/s/rougescript/v9/LYjFdGbiklMoCIQOw1Ep3S4PVPXbUJWq9g.ttf"},"Cutive":{"regular":"http://fonts.gstatic.com/s/cutive/v12/NaPZcZ_fHOhV3Ip7T_hDoyqlZQ.ttf"},"Proza Libre":{"500":"http://fonts.gstatic.com/s/prozalibre/v5/LYjbdGHgj0k1DIQRyUEyyELbV__fcpC69i6N.ttf","600":"http://fonts.gstatic.com/s/prozalibre/v5/LYjbdGHgj0k1DIQRyUEyyEL3UP_fcpC69i6N.ttf","700":"http://fonts.gstatic.com/s/prozalibre/v5/LYjbdGHgj0k1DIQRyUEyyEKTUf_fcpC69i6N.ttf","800":"http://fonts.gstatic.com/s/prozalibre/v5/LYjbdGHgj0k1DIQRyUEyyEKPUv_fcpC69i6N.ttf","regular":"http://fonts.gstatic.com/s/prozalibre/v5/LYjGdGHgj0k1DIQRyUEyyHovftvXWYyz.ttf","italic":"http://fonts.gstatic.com/s/prozalibre/v5/LYjEdGHgj0k1DIQRyUEyyEotdN_1XJyz7zc.ttf","500italic":"http://fonts.gstatic.com/s/prozalibre/v5/LYjZdGHgj0k1DIQRyUEyyEotTCvceJSY8z6Np1k.ttf","600italic":"http://fonts.gstatic.com/s/prozalibre/v5/LYjZdGHgj0k1DIQRyUEyyEotTAfbeJSY8z6Np1k.ttf","700italic":"http://fonts.gstatic.com/s/prozalibre/v5/LYjZdGHgj0k1DIQRyUEyyEotTGPaeJSY8z6Np1k.ttf","800italic":"http://fonts.gstatic.com/s/prozalibre/v5/LYjZdGHgj0k1DIQRyUEyyEotTH_ZeJSY8z6Np1k.ttf"},"Hepta Slab":{"100":"http://fonts.gstatic.com/s/heptaslab/v9/ea8JadoyU_jkHdalebHvyWVNdYoIsHe5HvkV5jfbY5B0NBkz.ttf","200":"http://fonts.gstatic.com/s/heptaslab/v9/ea8JadoyU_jkHdalebHvyWVNdYoIsHe5HvmV5zfbY5B0NBkz.ttf","300":"http://fonts.gstatic.com/s/heptaslab/v9/ea8JadoyU_jkHdalebHvyWVNdYoIsHe5HvlL5zfbY5B0NBkz.ttf","500":"http://fonts.gstatic.com/s/heptaslab/v9/ea8JadoyU_jkHdalebHvyWVNdYoIsHe5Hvkn5zfbY5B0NBkz.ttf","600":"http://fonts.gstatic.com/s/heptaslab/v9/ea8JadoyU_jkHdalebHvyWVNdYoIsHe5HvnL4DfbY5B0NBkz.ttf","700":"http://fonts.gstatic.com/s/heptaslab/v9/ea8JadoyU_jkHdalebHvyWVNdYoIsHe5Hvny4DfbY5B0NBkz.ttf","800":"http://fonts.gstatic.com/s/heptaslab/v9/ea8JadoyU_jkHdalebHvyWVNdYoIsHe5HvmV4DfbY5B0NBkz.ttf","900":"http://fonts.gstatic.com/s/heptaslab/v9/ea8JadoyU_jkHdalebHvyWVNdYoIsHe5Hvm84DfbY5B0NBkz.ttf","regular":"http://fonts.gstatic.com/s/heptaslab/v9/ea8JadoyU_jkHdalebHvyWVNdYoIsHe5HvkV5zfbY5B0NBkz.ttf"},"Bungee Shade":{"regular":"http://fonts.gstatic.com/s/bungeeshade/v6/DtVkJxarWL0t2KdzK3oI_jks7iLSrwFUlw.ttf"},"Baloo Da 2":{"500":"http://fonts.gstatic.com/s/balooda2/v2/2-ch9J9j0IaUMQZwAJyJShr-hZloY23zejE.ttf","600":"http://fonts.gstatic.com/s/balooda2/v2/2-ch9J9j0IaUMQZwAJyJSjb5hZloY23zejE.ttf","700":"http://fonts.gstatic.com/s/balooda2/v2/2-ch9J9j0IaUMQZwAJyJSlL4hZloY23zejE.ttf","800":"http://fonts.gstatic.com/s/balooda2/v2/2-ch9J9j0IaUMQZwAJyJSk77hZloY23zejE.ttf","regular":"http://fonts.gstatic.com/s/balooda2/v2/2-ci9J9j0IaUMQZwAJyJcu7XoZFDf2Q.ttf"},"Mirza":{"500":"http://fonts.gstatic.com/s/mirza/v10/co3FmWlikiN5EtIpAeO4mafBomDi.ttf","600":"http://fonts.gstatic.com/s/mirza/v10/co3FmWlikiN5EtIFBuO4mafBomDi.ttf","700":"http://fonts.gstatic.com/s/mirza/v10/co3FmWlikiN5EtJhB-O4mafBomDi.ttf","regular":"http://fonts.gstatic.com/s/mirza/v10/co3ImWlikiN5EurdKMewsrvI.ttf"},"Montaga":{"regular":"http://fonts.gstatic.com/s/montaga/v8/H4cnBX2Ml8rCkEO_0gYQ7LO5mqc.ttf"},"Dawning of a New Day":{"regular":"http://fonts.gstatic.com/s/dawningofanewday/v11/t5t_IQMbOp2SEwuncwLRjMfIg1yYit_nAz8bhWJGNoBE.ttf"},"IM Fell English":{"regular":"http://fonts.gstatic.com/s/imfellenglish/v10/Ktk1ALSLW8zDe0rthJysWrnLsAz3F6mZVY9Y5w.ttf","italic":"http://fonts.gstatic.com/s/imfellenglish/v10/Ktk3ALSLW8zDe0rthJysWrnLsAzHFaOdd4pI59zg.ttf"},"Bowlby One":{"regular":"http://fonts.gstatic.com/s/bowlbyone/v12/taiPGmVuC4y96PFeqp8smo6C_Z0wcK4.ttf"},"ZCOOL XiaoWei":{"regular":"http://fonts.gstatic.com/s/zcoolxiaowei/v5/i7dMIFFrTRywPpUVX9_RJyM1YFKQHwyVd3U.ttf"},"Qwigley":{"regular":"http://fonts.gstatic.com/s/qwigley/v11/1cXzaU3UGJb5tGoCuVxsi1mBmcE.ttf"},"Sofia":{"regular":"http://fonts.gstatic.com/s/sofia/v9/8QIHdirahM3j_vu-sowsrqjk.ttf"},"Hi Melody":{"regular":"http://fonts.gstatic.com/s/himelody/v8/46ktlbP8Vnz0pJcqCTbEf29E31BBGA.ttf"},"IM Fell DW Pica":{"regular":"http://fonts.gstatic.com/s/imfelldwpica/v12/2sDGZGRQotv9nbn2qSl0TxXVYNw9ZAPUvi88MQ.ttf","italic":"http://fonts.gstatic.com/s/imfelldwpica/v12/2sDEZGRQotv9nbn2qSl0TxXVYNwNZgnQnCosMXm0.ttf"},"Sedgwick Ave":{"regular":"http://fonts.gstatic.com/s/sedgwickave/v7/uK_04rKEYuguzAcSYRdWTJq8Xmg1Vcf5JA.ttf"},"Stardos Stencil":{"700":"http://fonts.gstatic.com/s/stardosstencil/v11/X7n44bcuGPC8hrvEOHXOgaKCc2TpU3tTvg-t29HSHw.ttf","regular":"http://fonts.gstatic.com/s/stardosstencil/v11/X7n94bcuGPC8hrvEOHXOgaKCc2TR71R3tiSx0g.ttf"},"Original Surfer":{"regular":"http://fonts.gstatic.com/s/originalsurfer/v11/RWmQoKGZ9vIirYntXJ3_MbekzNMiDEtvAlaMKw.ttf"},"Emilys Candy":{"regular":"http://fonts.gstatic.com/s/emilyscandy/v8/2EbgL-1mD1Rnb0OGKudbk0y5r9xrX84JjA.ttf"},"Aguafina Script":{"regular":"http://fonts.gstatic.com/s/aguafinascript/v9/If2QXTv_ZzSxGIO30LemWEOmt1bHqs4pgicOrg.ttf"},"UnifrakturMaguntia":{"regular":"http://fonts.gstatic.com/s/unifrakturmaguntia/v11/WWXPlieVYwiGNomYU-ciRLRvEmK7oaVun2xNNgNa1A.ttf"},"Fanwood Text":{"regular":"http://fonts.gstatic.com/s/fanwoodtext/v10/3XFtErwl05Ad_vSCF6Fq7xXGRdbY1P1Sbg.ttf","italic":"http://fonts.gstatic.com/s/fanwoodtext/v10/3XFzErwl05Ad_vSCF6Fq7xX2R9zc9vhCblye.ttf"},"B612 Mono":{"700":"http://fonts.gstatic.com/s/b612mono/v5/kmK6Zq85QVWbN1eW6lJdayv4os9Pv7JGSg.ttf","regular":"http://fonts.gstatic.com/s/b612mono/v5/kmK_Zq85QVWbN1eW6lJl1wTcquRTtg.ttf","italic":"http://fonts.gstatic.com/s/b612mono/v5/kmK5Zq85QVWbN1eW6lJV1Q7YiOFDtqtf.ttf","700italic":"http://fonts.gstatic.com/s/b612mono/v5/kmKkZq85QVWbN1eW6lJV1TZkp8VLnbdWSg4x.ttf"},"Alike Angular":{"regular":"http://fonts.gstatic.com/s/alikeangular/v13/3qTrojWunjGQtEBlIcwMbSoI3kM6bB7FKjE.ttf"},"Zeyada":{"regular":"http://fonts.gstatic.com/s/zeyada/v10/11hAGpPTxVPUbgZDNGatWKaZ3g.ttf"},"Libre Barcode 39":{"regular":"http://fonts.gstatic.com/s/librebarcode39/v14/-nFnOHM08vwC6h8Li1eQnP_AHzI2K_d709jy92k.ttf"},"Lemon":{"regular":"http://fonts.gstatic.com/s/lemon/v9/HI_EiYEVKqRMq0jBSZXAQ4-d.ttf"},"Grenze Gotisch":{"100":"http://fonts.gstatic.com/s/grenzegotisch/v3/Fh4hPjjqNDz1osh_jX9YfjudpBJBNV5y5wf_k1i5Lz5UcICdYPSd_w.ttf","200":"http://fonts.gstatic.com/s/grenzegotisch/v3/Fh4hPjjqNDz1osh_jX9YfjudpBJBNV5y5wf_k1i5rz9UcICdYPSd_w.ttf","300":"http://fonts.gstatic.com/s/grenzegotisch/v3/Fh4hPjjqNDz1osh_jX9YfjudpBJBNV5y5wf_k1i5cT9UcICdYPSd_w.ttf","500":"http://fonts.gstatic.com/s/grenzegotisch/v3/Fh4hPjjqNDz1osh_jX9YfjudpBJBNV5y5wf_k1i5HT9UcICdYPSd_w.ttf","600":"http://fonts.gstatic.com/s/grenzegotisch/v3/Fh4hPjjqNDz1osh_jX9YfjudpBJBNV5y5wf_k1i58ThUcICdYPSd_w.ttf","700":"http://fonts.gstatic.com/s/grenzegotisch/v3/Fh4hPjjqNDz1osh_jX9YfjudpBJBNV5y5wf_k1i5yDhUcICdYPSd_w.ttf","800":"http://fonts.gstatic.com/s/grenzegotisch/v3/Fh4hPjjqNDz1osh_jX9YfjudpBJBNV5y5wf_k1i5rzhUcICdYPSd_w.ttf","900":"http://fonts.gstatic.com/s/grenzegotisch/v3/Fh4hPjjqNDz1osh_jX9YfjudpBJBNV5y5wf_k1i5hjhUcICdYPSd_w.ttf","regular":"http://fonts.gstatic.com/s/grenzegotisch/v3/Fh4hPjjqNDz1osh_jX9YfjudpBJBNV5y5wf_k1i5Lz9UcICdYPSd_w.ttf"},"Sarpanch":{"500":"http://fonts.gstatic.com/s/sarpanch/v6/hES16Xt4NCpRuk6PziV0ba7f1HEuRHkM.ttf","600":"http://fonts.gstatic.com/s/sarpanch/v6/hES16Xt4NCpRuk6PziVYaq7f1HEuRHkM.ttf","700":"http://fonts.gstatic.com/s/sarpanch/v6/hES16Xt4NCpRuk6PziU8a67f1HEuRHkM.ttf","800":"http://fonts.gstatic.com/s/sarpanch/v6/hES16Xt4NCpRuk6PziUgaK7f1HEuRHkM.ttf","900":"http://fonts.gstatic.com/s/sarpanch/v6/hES16Xt4NCpRuk6PziUEaa7f1HEuRHkM.ttf","regular":"http://fonts.gstatic.com/s/sarpanch/v6/hESy6Xt4NCpRuk6Pzh2ARIrX_20n.ttf"},"Yatra One":{"regular":"http://fonts.gstatic.com/s/yatraone/v9/C8ch4copsHzj8p7NaF0xw1OBbRDvXw.ttf"},"Give You Glory":{"regular":"http://fonts.gstatic.com/s/giveyouglory/v10/8QIQdiHOgt3vv4LR7ahjw9-XYc1zB4ZD6rwa.ttf"},"Bodoni Moda":{"500":"http://fonts.gstatic.com/s/bodonimoda/v7/aFT67PxzY382XsXX63LUYL6GYFcan6NJrKp-VPjfJMShrpsGFUt8oXzawIBytVjMYwE.ttf","600":"http://fonts.gstatic.com/s/bodonimoda/v7/aFT67PxzY382XsXX63LUYL6GYFcan6NJrKp-VPjfJMShrpsGFUt8oZDdwIBytVjMYwE.ttf","700":"http://fonts.gstatic.com/s/bodonimoda/v7/aFT67PxzY382XsXX63LUYL6GYFcan6NJrKp-VPjfJMShrpsGFUt8oandwIBytVjMYwE.ttf","800":"http://fonts.gstatic.com/s/bodonimoda/v7/aFT67PxzY382XsXX63LUYL6GYFcan6NJrKp-VPjfJMShrpsGFUt8oc7dwIBytVjMYwE.ttf","900":"http://fonts.gstatic.com/s/bodonimoda/v7/aFT67PxzY382XsXX63LUYL6GYFcan6NJrKp-VPjfJMShrpsGFUt8oefdwIBytVjMYwE.ttf","regular":"http://fonts.gstatic.com/s/bodonimoda/v7/aFT67PxzY382XsXX63LUYL6GYFcan6NJrKp-VPjfJMShrpsGFUt8oU7awIBytVjMYwE.ttf","italic":"http://fonts.gstatic.com/s/bodonimoda/v7/aFT07PxzY382XsXX63LUYJSPUqb0pL6OQqxrZLnVbvZedvJtj-V7tIaZKMN4sXrJcwHqoQ.ttf","500italic":"http://fonts.gstatic.com/s/bodonimoda/v7/aFT07PxzY382XsXX63LUYJSPUqb0pL6OQqxrZLnVbvZedvJtj-V7tIaZGsN4sXrJcwHqoQ.ttf","600italic":"http://fonts.gstatic.com/s/bodonimoda/v7/aFT07PxzY382XsXX63LUYJSPUqb0pL6OQqxrZLnVbvZedvJtj-V7tIaZ9sR4sXrJcwHqoQ.ttf","700italic":"http://fonts.gstatic.com/s/bodonimoda/v7/aFT07PxzY382XsXX63LUYJSPUqb0pL6OQqxrZLnVbvZedvJtj-V7tIaZz8R4sXrJcwHqoQ.ttf","800italic":"http://fonts.gstatic.com/s/bodonimoda/v7/aFT07PxzY382XsXX63LUYJSPUqb0pL6OQqxrZLnVbvZedvJtj-V7tIaZqMR4sXrJcwHqoQ.ttf","900italic":"http://fonts.gstatic.com/s/bodonimoda/v7/aFT07PxzY382XsXX63LUYJSPUqb0pL6OQqxrZLnVbvZedvJtj-V7tIaZgcR4sXrJcwHqoQ.ttf"},"Oregano":{"regular":"http://fonts.gstatic.com/s/oregano/v8/If2IXTPxciS3H4S2kZffPznO3yM.ttf","italic":"http://fonts.gstatic.com/s/oregano/v8/If2KXTPxciS3H4S2oZXVOxvLzyP_qw.ttf"},"Averia Sans Libre":{"300":"http://fonts.gstatic.com/s/averiasanslibre/v11/ga6SaxZG_G5OvCf_rt7FH3B6BHLMEd3lMKcQJZP1LmD9.ttf","700":"http://fonts.gstatic.com/s/averiasanslibre/v11/ga6SaxZG_G5OvCf_rt7FH3B6BHLMEd31N6cQJZP1LmD9.ttf","300italic":"http://fonts.gstatic.com/s/averiasanslibre/v11/ga6caxZG_G5OvCf_rt7FH3B6BHLMEdVLKisSL5fXK3D9qtg.ttf","regular":"http://fonts.gstatic.com/s/averiasanslibre/v11/ga6XaxZG_G5OvCf_rt7FH3B6BHLMEeVJGIMYDo_8.ttf","italic":"http://fonts.gstatic.com/s/averiasanslibre/v11/ga6RaxZG_G5OvCf_rt7FH3B6BHLMEdVLEoc6C5_8N3k.ttf","700italic":"http://fonts.gstatic.com/s/averiasanslibre/v11/ga6caxZG_G5OvCf_rt7FH3B6BHLMEdVLKjsVL5fXK3D9qtg.ttf"},"Raleway Dots":{"regular":"http://fonts.gstatic.com/s/ralewaydots/v9/6NUR8FifJg6AfQvzpshgwJ8kyf9Fdty2ew.ttf"},"Finger Paint":{"regular":"http://fonts.gstatic.com/s/fingerpaint/v10/0QInMXVJ-o-oRn_7dron8YWO85bS8ANesw.ttf"},"Battambang":{"700":"http://fonts.gstatic.com/s/battambang/v14/uk-lEGe7raEw-HjkzZabNsmMxyRa8oZK9I0.ttf","regular":"http://fonts.gstatic.com/s/battambang/v14/uk-mEGe7raEw-HjkzZabDnWj4yxx7o8.ttf"},"Expletus Sans":{"500":"http://fonts.gstatic.com/s/expletussans/v14/RLpkK5v5_bqufTYdnhFzDj2dfQ07n6kFUHPIFaU.ttf","600":"http://fonts.gstatic.com/s/expletussans/v14/RLpkK5v5_bqufTYdnhFzDj2dfSE8n6kFUHPIFaU.ttf","700":"http://fonts.gstatic.com/s/expletussans/v14/RLpkK5v5_bqufTYdnhFzDj2dfUU9n6kFUHPIFaU.ttf","regular":"http://fonts.gstatic.com/s/expletussans/v14/RLp5K5v5_bqufTYdnhFzDj2dRfkSu6EuTHo.ttf","italic":"http://fonts.gstatic.com/s/expletussans/v14/RLpnK5v5_bqufTYdnhFzDj2ddfsYv4MrXHrRDA.ttf","500italic":"http://fonts.gstatic.com/s/expletussans/v14/RLpiK5v5_bqufTYdnhFzDj2ddfsgS6oPVFHNBaVImA.ttf","600italic":"http://fonts.gstatic.com/s/expletussans/v14/RLpiK5v5_bqufTYdnhFzDj2ddfsgZ60PVFHNBaVImA.ttf","700italic":"http://fonts.gstatic.com/s/expletussans/v14/RLpiK5v5_bqufTYdnhFzDj2ddfsgA6wPVFHNBaVImA.ttf"},"Baumans":{"regular":"http://fonts.gstatic.com/s/baumans/v10/-W_-XJj9QyTd3QfpR_oyaksqY5Q.ttf"},"Brawler":{"regular":"http://fonts.gstatic.com/s/brawler/v11/xn7gYHE3xXewAscGsgC7S9XdZN8.ttf"},"Quando":{"regular":"http://fonts.gstatic.com/s/quando/v9/xMQVuFNaVa6YuW0pC6WzKX_QmA.ttf"},"David Libre":{"500":"http://fonts.gstatic.com/s/davidlibre/v5/snfzs0W_99N64iuYSvp4W8GIw7qbSjORSo9W.ttf","700":"http://fonts.gstatic.com/s/davidlibre/v5/snfzs0W_99N64iuYSvp4W8HAxbqbSjORSo9W.ttf","regular":"http://fonts.gstatic.com/s/davidlibre/v5/snfus0W_99N64iuYSvp4W_l86p6TYS-Y.ttf"},"Kadwa":{"700":"http://fonts.gstatic.com/s/kadwa/v5/rnCr-x5V0g7ipix7auM-mHnOSOuk.ttf","regular":"http://fonts.gstatic.com/s/kadwa/v5/rnCm-x5V0g7iphTHRcc2s2XH.ttf"},"Vast Shadow":{"regular":"http://fonts.gstatic.com/s/vastshadow/v10/pe0qMImKOZ1V62ZwbVY9dfe6Kdpickwp.ttf"},"Ceviche One":{"regular":"http://fonts.gstatic.com/s/cevicheone/v11/gyB4hws1IcA6JzR-GB_JX6zdZ4vZVbgZ.ttf"},"Montez":{"regular":"http://fonts.gstatic.com/s/montez/v11/845ZNMk5GoGIX8lm1LDeSd-R_g.ttf"},"Oleo Script Swash Caps":{"700":"http://fonts.gstatic.com/s/oleoscriptswashcaps/v8/Noag6Vb-w5SFbTTAsZP_7JkCS08K-jCzDn_HCcaBbYUsn9T5dt0.ttf","regular":"http://fonts.gstatic.com/s/oleoscriptswashcaps/v8/Noaj6Vb-w5SFbTTAsZP_7JkCS08K-jCzDn_HMXquSY0Hg90.ttf"},"Faster One":{"regular":"http://fonts.gstatic.com/s/fasterone/v12/H4ciBXCHmdfClFb-vWhfyLuShq63czE.ttf"},"DM Mono":{"300":"http://fonts.gstatic.com/s/dmmono/v5/aFTR7PB1QTsUX8KYvrGyIYSnbKX9Rlk.ttf","500":"http://fonts.gstatic.com/s/dmmono/v5/aFTR7PB1QTsUX8KYvumzIYSnbKX9Rlk.ttf","300italic":"http://fonts.gstatic.com/s/dmmono/v5/aFTT7PB1QTsUX8KYth-orYataIf4VllXuA.ttf","regular":"http://fonts.gstatic.com/s/dmmono/v5/aFTU7PB1QTsUX8KYhh2aBYyMcKw.ttf","italic":"http://fonts.gstatic.com/s/dmmono/v5/aFTW7PB1QTsUX8KYth-QAa6JYKzkXw.ttf","500italic":"http://fonts.gstatic.com/s/dmmono/v5/aFTT7PB1QTsUX8KYth-o9YetaIf4VllXuA.ttf"},"Frijole":{"regular":"http://fonts.gstatic.com/s/frijole/v9/uU9PCBUR8oakM2BQ7xPb3vyHmlI.ttf"},"Newsreader":{"200":"http://fonts.gstatic.com/s/newsreader/v7/cY9qfjOCX1hbuyalUrK49dLac06G1ZGsZBtoBCzBDXXD9JVF438w-I_ADOxEPjCggA.ttf","300":"http://fonts.gstatic.com/s/newsreader/v7/cY9qfjOCX1hbuyalUrK49dLac06G1ZGsZBtoBCzBDXXD9JVF438wJo_ADOxEPjCggA.ttf","500":"http://fonts.gstatic.com/s/newsreader/v7/cY9qfjOCX1hbuyalUrK49dLac06G1ZGsZBtoBCzBDXXD9JVF438wSo_ADOxEPjCggA.ttf","600":"http://fonts.gstatic.com/s/newsreader/v7/cY9qfjOCX1hbuyalUrK49dLac06G1ZGsZBtoBCzBDXXD9JVF438wpojADOxEPjCggA.ttf","700":"http://fonts.gstatic.com/s/newsreader/v7/cY9qfjOCX1hbuyalUrK49dLac06G1ZGsZBtoBCzBDXXD9JVF438wn4jADOxEPjCggA.ttf","800":"http://fonts.gstatic.com/s/newsreader/v7/cY9qfjOCX1hbuyalUrK49dLac06G1ZGsZBtoBCzBDXXD9JVF438w-IjADOxEPjCggA.ttf","regular":"http://fonts.gstatic.com/s/newsreader/v7/cY9qfjOCX1hbuyalUrK49dLac06G1ZGsZBtoBCzBDXXD9JVF438weI_ADOxEPjCggA.ttf","200italic":"http://fonts.gstatic.com/s/newsreader/v7/cY9kfjOCX1hbuyalUrK439vogqC9yFZCYg7oRZaLP4obnf7fTXglsMyoT-ZAHDWwgECi.ttf","300italic":"http://fonts.gstatic.com/s/newsreader/v7/cY9kfjOCX1hbuyalUrK439vogqC9yFZCYg7oRZaLP4obnf7fTXglsMx2T-ZAHDWwgECi.ttf","italic":"http://fonts.gstatic.com/s/newsreader/v7/cY9kfjOCX1hbuyalUrK439vogqC9yFZCYg7oRZaLP4obnf7fTXglsMwoT-ZAHDWwgECi.ttf","500italic":"http://fonts.gstatic.com/s/newsreader/v7/cY9kfjOCX1hbuyalUrK439vogqC9yFZCYg7oRZaLP4obnf7fTXglsMwaT-ZAHDWwgECi.ttf","600italic":"http://fonts.gstatic.com/s/newsreader/v7/cY9kfjOCX1hbuyalUrK439vogqC9yFZCYg7oRZaLP4obnf7fTXglsMz2SOZAHDWwgECi.ttf","700italic":"http://fonts.gstatic.com/s/newsreader/v7/cY9kfjOCX1hbuyalUrK439vogqC9yFZCYg7oRZaLP4obnf7fTXglsMzPSOZAHDWwgECi.ttf","800italic":"http://fonts.gstatic.com/s/newsreader/v7/cY9kfjOCX1hbuyalUrK439vogqC9yFZCYg7oRZaLP4obnf7fTXglsMyoSOZAHDWwgECi.ttf"},"Patrick Hand SC":{"regular":"http://fonts.gstatic.com/s/patrickhandsc/v8/0nkwC9f7MfsBiWcLtY65AWDK873ViSi6JQc7Vg.ttf"},"Anaheim":{"regular":"http://fonts.gstatic.com/s/anaheim/v8/8vII7w042Wp87g4G0UTUEE5eK_w.ttf"},"Pompiere":{"regular":"http://fonts.gstatic.com/s/pompiere/v10/VEMyRoxis5Dwuyeov6Wt5jDtreOL.ttf"},"Rasa":{"300":"http://fonts.gstatic.com/s/rasa/v6/xn7gYHIn1mWmdg52sgC7S9XdZN8.ttf","500":"http://fonts.gstatic.com/s/rasa/v6/xn7gYHIn1mWmdlZ3sgC7S9XdZN8.ttf","600":"http://fonts.gstatic.com/s/rasa/v6/xn7gYHIn1mWmdnpwsgC7S9XdZN8.ttf","700":"http://fonts.gstatic.com/s/rasa/v6/xn7gYHIn1mWmdh5xsgC7S9XdZN8.ttf","regular":"http://fonts.gstatic.com/s/rasa/v6/xn7vYHIn1mWmTqJelgiQV9w.ttf"},"Doppio One":{"regular":"http://fonts.gstatic.com/s/doppioone/v8/Gg8wN5gSaBfyBw2MqCh-lgshKGpe5Fg.ttf"},"Dokdo":{"regular":"http://fonts.gstatic.com/s/dokdo/v10/esDf315XNuCBLxLo4NaMlKcH.ttf"},"Andika":{"regular":"http://fonts.gstatic.com/s/andika/v12/mem_Ya6iyW-LwqgAbbwRWrwGVA.ttf"},"BioRhyme":{"200":"http://fonts.gstatic.com/s/biorhyme/v5/1cX3aULHBpDMsHYW_ESOjnGAq8Sk1PoH.ttf","300":"http://fonts.gstatic.com/s/biorhyme/v5/1cX3aULHBpDMsHYW_ETqjXGAq8Sk1PoH.ttf","700":"http://fonts.gstatic.com/s/biorhyme/v5/1cX3aULHBpDMsHYW_ET6inGAq8Sk1PoH.ttf","800":"http://fonts.gstatic.com/s/biorhyme/v5/1cX3aULHBpDMsHYW_ETmiXGAq8Sk1PoH.ttf","regular":"http://fonts.gstatic.com/s/biorhyme/v5/1cXwaULHBpDMsHYW_HxGpVWIgNit.ttf"},"Freckle Face":{"regular":"http://fonts.gstatic.com/s/freckleface/v9/AMOWz4SXrmKHCvXTohxY-YI0U1K2w9lb4g.ttf"},"Antic Didone":{"regular":"http://fonts.gstatic.com/s/anticdidone/v9/RWmPoKKX6u8sp8fIWdnDKqDiqYsGBGBzCw.ttf"},"Happy Monkey":{"regular":"http://fonts.gstatic.com/s/happymonkey/v9/K2F2fZZcl-9SXwl5F_C4R_OABwD2bWqVjw.ttf"},"Kurale":{"regular":"http://fonts.gstatic.com/s/kurale/v6/4iCs6KV9e9dXjho6eAT3v02QFg.ttf"},"Oxanium":{"200":"http://fonts.gstatic.com/s/oxanium/v6/RrQPboN_4yJ0JmiMUW7sIGjd1IA9G83JfniMBXQ7d67x.ttf","300":"http://fonts.gstatic.com/s/oxanium/v6/RrQPboN_4yJ0JmiMUW7sIGjd1IA9G80XfniMBXQ7d67x.ttf","500":"http://fonts.gstatic.com/s/oxanium/v6/RrQPboN_4yJ0JmiMUW7sIGjd1IA9G817fniMBXQ7d67x.ttf","600":"http://fonts.gstatic.com/s/oxanium/v6/RrQPboN_4yJ0JmiMUW7sIGjd1IA9G82XeXiMBXQ7d67x.ttf","700":"http://fonts.gstatic.com/s/oxanium/v6/RrQPboN_4yJ0JmiMUW7sIGjd1IA9G82ueXiMBXQ7d67x.ttf","800":"http://fonts.gstatic.com/s/oxanium/v6/RrQPboN_4yJ0JmiMUW7sIGjd1IA9G83JeXiMBXQ7d67x.ttf","regular":"http://fonts.gstatic.com/s/oxanium/v6/RrQPboN_4yJ0JmiMUW7sIGjd1IA9G81JfniMBXQ7d67x.ttf"},"Homenaje":{"regular":"http://fonts.gstatic.com/s/homenaje/v11/FwZY7-Q-xVAi_l-6Ld6A4sijpFu_.ttf"},"Clicker Script":{"regular":"http://fonts.gstatic.com/s/clickerscript/v8/raxkHiKPvt8CMH6ZWP8PdlEq72rY2zqUKafv.ttf"},"Almendra":{"700":"http://fonts.gstatic.com/s/almendra/v15/H4cjBXKAlMnTn0Cskx6G7Zu4qKK-aihq.ttf","regular":"http://fonts.gstatic.com/s/almendra/v15/H4ckBXKAlMnTn0CskyY6wr-wg763.ttf","italic":"http://fonts.gstatic.com/s/almendra/v15/H4ciBXKAlMnTn0CskxY4yLuShq63czE.ttf","700italic":"http://fonts.gstatic.com/s/almendra/v15/H4chBXKAlMnTn0CskxY48Ae9oqacbzhqDtg.ttf"},"Wendy One":{"regular":"http://fonts.gstatic.com/s/wendyone/v9/2sDcZGJOipXfgfXV5wgDb2-4C7wFZQ.ttf"},"Meddon":{"regular":"http://fonts.gstatic.com/s/meddon/v15/kmK8ZqA2EgDNeHTZhBdB3y_Aow.ttf"},"Caladea":{"700":"http://fonts.gstatic.com/s/caladea/v2/kJE2BugZ7AAjhybUtaNY39oYqO52FZ0.ttf","regular":"http://fonts.gstatic.com/s/caladea/v2/kJEzBugZ7AAjhybUjR93-9IztOc.ttf","italic":"http://fonts.gstatic.com/s/caladea/v2/kJExBugZ7AAjhybUvR19__A2pOdvDA.ttf","700italic":"http://fonts.gstatic.com/s/caladea/v2/kJE0BugZ7AAjhybUvR1FQ98SrMxzBZ2lDA.ttf"},"Numans":{"regular":"http://fonts.gstatic.com/s/numans/v10/SlGRmQmGupYAfH8IYRggiHVqaQ.ttf"},"Encode Sans Expanded":{"100":"http://fonts.gstatic.com/s/encodesansexpanded/v5/c4mx1mF4GcnstG_Jh1QH6ac4hNLeNyeYUpJGKQNicoAbJlw.ttf","200":"http://fonts.gstatic.com/s/encodesansexpanded/v5/c4mw1mF4GcnstG_Jh1QH6ac4hNLeNyeYUpLqCCNIXIwSP0XD.ttf","300":"http://fonts.gstatic.com/s/encodesansexpanded/v5/c4mw1mF4GcnstG_Jh1QH6ac4hNLeNyeYUpKOCyNIXIwSP0XD.ttf","500":"http://fonts.gstatic.com/s/encodesansexpanded/v5/c4mw1mF4GcnstG_Jh1QH6ac4hNLeNyeYUpLWCiNIXIwSP0XD.ttf","600":"http://fonts.gstatic.com/s/encodesansexpanded/v5/c4mw1mF4GcnstG_Jh1QH6ac4hNLeNyeYUpL6DSNIXIwSP0XD.ttf","700":"http://fonts.gstatic.com/s/encodesansexpanded/v5/c4mw1mF4GcnstG_Jh1QH6ac4hNLeNyeYUpKeDCNIXIwSP0XD.ttf","800":"http://fonts.gstatic.com/s/encodesansexpanded/v5/c4mw1mF4GcnstG_Jh1QH6ac4hNLeNyeYUpKCDyNIXIwSP0XD.ttf","900":"http://fonts.gstatic.com/s/encodesansexpanded/v5/c4mw1mF4GcnstG_Jh1QH6ac4hNLeNyeYUpKmDiNIXIwSP0XD.ttf","regular":"http://fonts.gstatic.com/s/encodesansexpanded/v5/c4m_1mF4GcnstG_Jh1QH6ac4hNLeNyeYUqoiIwdAd5Ab.ttf"},"Gurajada":{"regular":"http://fonts.gstatic.com/s/gurajada/v10/FwZY7-Qx308m-l-0Kd6A4sijpFu_.ttf"},"Over the Rainbow":{"regular":"http://fonts.gstatic.com/s/overtherainbow/v11/11haGoXG1k_HKhMLUWz7Mc7vvW5upvOm9NA2XG0.ttf"},"Fondamento":{"regular":"http://fonts.gstatic.com/s/fondamento/v11/4UaHrEJGsxNmFTPDnkaJx63j5pN1MwI.ttf","italic":"http://fonts.gstatic.com/s/fondamento/v11/4UaFrEJGsxNmFTPDnkaJ96_p4rFwIwJePw.ttf"},"Atma":{"300":"http://fonts.gstatic.com/s/atma/v8/uK_z4rqWc-Eoo8JzKjc9PvedRkM.ttf","500":"http://fonts.gstatic.com/s/atma/v8/uK_z4rqWc-Eoo5pyKjc9PvedRkM.ttf","600":"http://fonts.gstatic.com/s/atma/v8/uK_z4rqWc-Eoo7Z1Kjc9PvedRkM.ttf","700":"http://fonts.gstatic.com/s/atma/v8/uK_z4rqWc-Eoo9J0Kjc9PvedRkM.ttf","regular":"http://fonts.gstatic.com/s/atma/v8/uK_84rqWc-Eom25bDj8WIv4.ttf"},"RocknRoll One":{"regular":"http://fonts.gstatic.com/s/rocknrollone/v4/kmK7ZqspGAfCeUiW6FFlmEC9guVhs7tfUxc.ttf"},"JetBrains Mono":{"100":"http://fonts.gstatic.com/s/jetbrainsmono/v6/tDbY2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yK1jPVmUsaaDhw.ttf","200":"http://fonts.gstatic.com/s/jetbrainsmono/v6/tDbY2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8SKxjPVmUsaaDhw.ttf","300":"http://fonts.gstatic.com/s/jetbrainsmono/v6/tDbY2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8lqxjPVmUsaaDhw.ttf","500":"http://fonts.gstatic.com/s/jetbrainsmono/v6/tDbY2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8-qxjPVmUsaaDhw.ttf","600":"http://fonts.gstatic.com/s/jetbrainsmono/v6/tDbY2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8FqtjPVmUsaaDhw.ttf","700":"http://fonts.gstatic.com/s/jetbrainsmono/v6/tDbY2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8L6tjPVmUsaaDhw.ttf","800":"http://fonts.gstatic.com/s/jetbrainsmono/v6/tDbY2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8SKtjPVmUsaaDhw.ttf","regular":"http://fonts.gstatic.com/s/jetbrainsmono/v6/tDbY2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKxjPVmUsaaDhw.ttf","100italic":"http://fonts.gstatic.com/s/jetbrainsmono/v6/tDba2o-flEEny0FZhsfKu5WU4xD-IQ-PuZJJXxfpAO-Lf1OQk6OThxPA.ttf","200italic":"http://fonts.gstatic.com/s/jetbrainsmono/v6/tDba2o-flEEny0FZhsfKu5WU4xD-IQ-PuZJJXxfpAO8LflOQk6OThxPA.ttf","300italic":"http://fonts.gstatic.com/s/jetbrainsmono/v6/tDba2o-flEEny0FZhsfKu5WU4xD-IQ-PuZJJXxfpAO_VflOQk6OThxPA.ttf","italic":"http://fonts.gstatic.com/s/jetbrainsmono/v6/tDba2o-flEEny0FZhsfKu5WU4xD-IQ-PuZJJXxfpAO-LflOQk6OThxPA.ttf","500italic":"http://fonts.gstatic.com/s/jetbrainsmono/v6/tDba2o-flEEny0FZhsfKu5WU4xD-IQ-PuZJJXxfpAO-5flOQk6OThxPA.ttf","600italic":"http://fonts.gstatic.com/s/jetbrainsmono/v6/tDba2o-flEEny0FZhsfKu5WU4xD-IQ-PuZJJXxfpAO9VeVOQk6OThxPA.ttf","700italic":"http://fonts.gstatic.com/s/jetbrainsmono/v6/tDba2o-flEEny0FZhsfKu5WU4xD-IQ-PuZJJXxfpAO9seVOQk6OThxPA.ttf","800italic":"http://fonts.gstatic.com/s/jetbrainsmono/v6/tDba2o-flEEny0FZhsfKu5WU4xD-IQ-PuZJJXxfpAO8LeVOQk6OThxPA.ttf"},"Federo":{"regular":"http://fonts.gstatic.com/s/federo/v14/iJWFBX-cbD_ETsbmjVOe2WTG7Q.ttf"},"Rakkas":{"regular":"http://fonts.gstatic.com/s/rakkas/v12/Qw3cZQlNHiblL3j_lttPOeMcCw.ttf"},"Sail":{"regular":"http://fonts.gstatic.com/s/sail/v11/DPEjYwiBxwYJFBTDADYAbvw.ttf"},"Share Tech":{"regular":"http://fonts.gstatic.com/s/sharetech/v12/7cHtv4Uyi5K0OeZ7bohUwHoDmTcibrA.ttf"},"Denk One":{"regular":"http://fonts.gstatic.com/s/denkone/v10/dg4m_pzhrqcFb2IzROtHpbglShon.ttf"},"Galada":{"regular":"http://fonts.gstatic.com/s/galada/v9/H4cmBXyGmcjXlUX-8iw-4Lqggw.ttf"},"Wire One":{"regular":"http://fonts.gstatic.com/s/wireone/v13/qFdH35Wah5htUhV75WGiWdrCwwcJ.ttf"},"Chau Philomene One":{"regular":"http://fonts.gstatic.com/s/chauphilomeneone/v10/55xxezRsPtfie1vPY49qzdgSlJiHRQFsnIx7QMISdQ.ttf","italic":"http://fonts.gstatic.com/s/chauphilomeneone/v10/55xzezRsPtfie1vPY49qzdgSlJiHRQFcnoZ_YscCdXQB.ttf"},"Skranji":{"700":"http://fonts.gstatic.com/s/skranji/v8/OZpGg_dtriVFNerMW4eBtlzNwED-b4g.ttf","regular":"http://fonts.gstatic.com/s/skranji/v8/OZpDg_dtriVFNerMYzuuklTm3Ek.ttf"},"ZCOOL QingKe HuangYou":{"regular":"http://fonts.gstatic.com/s/zcoolqingkehuangyou/v5/2Eb5L_R5IXJEWhD3AOhSvFC554MOOahI4mRIi_28c8bHWA.ttf"},"Livvic":{"100":"http://fonts.gstatic.com/s/livvic/v8/rnCr-x1S2hzjrlffC-M-mHnOSOuk.ttf","200":"http://fonts.gstatic.com/s/livvic/v8/rnCq-x1S2hzjrlffp8IeslfCQfK9WQ.ttf","300":"http://fonts.gstatic.com/s/livvic/v8/rnCq-x1S2hzjrlffw8EeslfCQfK9WQ.ttf","500":"http://fonts.gstatic.com/s/livvic/v8/rnCq-x1S2hzjrlffm8AeslfCQfK9WQ.ttf","600":"http://fonts.gstatic.com/s/livvic/v8/rnCq-x1S2hzjrlfft8ceslfCQfK9WQ.ttf","700":"http://fonts.gstatic.com/s/livvic/v8/rnCq-x1S2hzjrlff08YeslfCQfK9WQ.ttf","900":"http://fonts.gstatic.com/s/livvic/v8/rnCq-x1S2hzjrlff68QeslfCQfK9WQ.ttf","100italic":"http://fonts.gstatic.com/s/livvic/v8/rnCt-x1S2hzjrlfXbdtakn3sTfukQHs.ttf","200italic":"http://fonts.gstatic.com/s/livvic/v8/rnCs-x1S2hzjrlfXbdv2s13GY_etWWIJ.ttf","300italic":"http://fonts.gstatic.com/s/livvic/v8/rnCs-x1S2hzjrlfXbduSsF3GY_etWWIJ.ttf","regular":"http://fonts.gstatic.com/s/livvic/v8/rnCp-x1S2hzjrlfnb-k6unzeSA.ttf","italic":"http://fonts.gstatic.com/s/livvic/v8/rnCr-x1S2hzjrlfXbeM-mHnOSOuk.ttf","500italic":"http://fonts.gstatic.com/s/livvic/v8/rnCs-x1S2hzjrlfXbdvKsV3GY_etWWIJ.ttf","600italic":"http://fonts.gstatic.com/s/livvic/v8/rnCs-x1S2hzjrlfXbdvmtl3GY_etWWIJ.ttf","700italic":"http://fonts.gstatic.com/s/livvic/v8/rnCs-x1S2hzjrlfXbduCt13GY_etWWIJ.ttf","900italic":"http://fonts.gstatic.com/s/livvic/v8/rnCs-x1S2hzjrlfXbdu6tV3GY_etWWIJ.ttf"},"Orienta":{"regular":"http://fonts.gstatic.com/s/orienta/v8/PlI9FlK4Jrl5Y9zNeyeo9HRFhcU.ttf"},"Mansalva":{"regular":"http://fonts.gstatic.com/s/mansalva/v4/aWB4m0aacbtDfvq5NJllI47vdyBg.ttf"},"Aref Ruqaa":{"700":"http://fonts.gstatic.com/s/arefruqaa/v16/WwkYxPW1E165rajQKDulKDwNcNIS2N_7Bdk.ttf","regular":"http://fonts.gstatic.com/s/arefruqaa/v16/WwkbxPW1E165rajQKDulEIAiVNo5xNY.ttf"},"Yusei Magic":{"regular":"http://fonts.gstatic.com/s/yuseimagic/v5/yYLt0hbAyuCmoo5wlhPkpjHR-tdfcIT_.ttf"},"Baloo Thambi 2":{"500":"http://fonts.gstatic.com/s/baloothambi2/v2/cY9ffjeOW0NHpmOQXranrbDyu7CzLbe5Th_gRA7L.ttf","600":"http://fonts.gstatic.com/s/baloothambi2/v2/cY9ffjeOW0NHpmOQXranrbDyu7CfKre5Th_gRA7L.ttf","700":"http://fonts.gstatic.com/s/baloothambi2/v2/cY9ffjeOW0NHpmOQXranrbDyu7D7K7e5Th_gRA7L.ttf","800":"http://fonts.gstatic.com/s/baloothambi2/v2/cY9ffjeOW0NHpmOQXranrbDyu7DnKLe5Th_gRA7L.ttf","regular":"http://fonts.gstatic.com/s/baloothambi2/v2/cY9cfjeOW0NHpmOQXranrbDyu4hHBJOxZQPp.ttf"},"Ranchers":{"regular":"http://fonts.gstatic.com/s/ranchers/v8/zrfm0H3Lx-P2Xvs2AoDYDC79XTHv.ttf"},"Major Mono Display":{"regular":"http://fonts.gstatic.com/s/majormonodisplay/v7/RWmVoLyb5fEqtsfBX9PDZIGr2tFubRhLCn2QIndPww.ttf"},"Katibeh":{"regular":"http://fonts.gstatic.com/s/katibeh/v12/ZGjXol5MQJog4bxDaC1RVDNdGDs.ttf"},"Euphoria Script":{"regular":"http://fonts.gstatic.com/s/euphoriascript/v11/mFTpWb0X2bLb_cx6To2B8GpKoD5ak_ZT1D8x7Q.ttf"},"Walter Turncoat":{"regular":"http://fonts.gstatic.com/s/walterturncoat/v13/snfys0Gs98ln43n0d-14ULoToe67YB2dQ5ZPqQ.ttf"},"Mouse Memoirs":{"regular":"http://fonts.gstatic.com/s/mousememoirs/v8/t5tmIRoSNJ-PH0WNNgDYxdSb7TnFrpOHYh4.ttf"},"Shojumaru":{"regular":"http://fonts.gstatic.com/s/shojumaru/v10/rax_HiWfutkLLnaKCtlMBBJek0vA8A.ttf"},"Calistoga":{"regular":"http://fonts.gstatic.com/s/calistoga/v5/6NUU8F2OJg6MeR7l4e0vtMYAwdRZfw.ttf"},"Timmana":{"regular":"http://fonts.gstatic.com/s/timmana/v7/6xKvdShfL9yK-rvpCmvbKHwJUOM.ttf"},"Nova Mono":{"regular":"http://fonts.gstatic.com/s/novamono/v13/Cn-0JtiGWQ5Ajb--MRKfYGxYrdM9Sg.ttf"},"Ledger":{"regular":"http://fonts.gstatic.com/s/ledger/v11/j8_q6-HK1L3if_sxm8DwHTBhHw.ttf"},"Vollkorn SC":{"600":"http://fonts.gstatic.com/s/vollkornsc/v6/j8_y6-zQ3rXpceZj9cqnVimhGluqYbPN5Yjn.ttf","700":"http://fonts.gstatic.com/s/vollkornsc/v6/j8_y6-zQ3rXpceZj9cqnVinFG1uqYbPN5Yjn.ttf","900":"http://fonts.gstatic.com/s/vollkornsc/v6/j8_y6-zQ3rXpceZj9cqnVin9GVuqYbPN5Yjn.ttf","regular":"http://fonts.gstatic.com/s/vollkornsc/v6/j8_v6-zQ3rXpceZj9cqnVhF5NH-iSq_E.ttf"},"Vesper Libre":{"500":"http://fonts.gstatic.com/s/vesperlibre/v14/bx6dNxyWnf-uxPdXDHUD_RdA-2ap0okKXKvPlw.ttf","700":"http://fonts.gstatic.com/s/vesperlibre/v14/bx6dNxyWnf-uxPdXDHUD_RdAs2Cp0okKXKvPlw.ttf","900":"http://fonts.gstatic.com/s/vesperlibre/v14/bx6dNxyWnf-uxPdXDHUD_RdAi2Kp0okKXKvPlw.ttf","regular":"http://fonts.gstatic.com/s/vesperlibre/v14/bx6CNxyWnf-uxPdXDHUD_Rd4D0-N2qIWVQ.ttf"},"Codystar":{"300":"http://fonts.gstatic.com/s/codystar/v10/FwZf7-Q1xVk-40qxOuYsyuyrj0e29bfC.ttf","regular":"http://fonts.gstatic.com/s/codystar/v10/FwZY7-Q1xVk-40qxOt6A4sijpFu_.ttf"},"McLaren":{"regular":"http://fonts.gstatic.com/s/mclaren/v8/2EbnL-ZuAXFqZFXISYYf8z2Yt_c.ttf"},"Nova Round":{"regular":"http://fonts.gstatic.com/s/novaround/v14/flU9Rqquw5UhEnlwTJYTYYfeeetYEBc.ttf"},"B612":{"700":"http://fonts.gstatic.com/s/b612/v5/3Jn9SDDxiSz34oWXPDCLTXUETuE.ttf","regular":"http://fonts.gstatic.com/s/b612/v5/3JnySDDxiSz32jm4GDigUXw.ttf","italic":"http://fonts.gstatic.com/s/b612/v5/3Jn8SDDxiSz36juyHBqlQXwdVw.ttf","700italic":"http://fonts.gstatic.com/s/b612/v5/3Jn_SDDxiSz36juKoDWBSVcBXuFb0Q.ttf"},"Strait":{"regular":"http://fonts.gstatic.com/s/strait/v8/DtViJxy6WaEr1LZzeDhtkl0U7w.ttf"},"Arya":{"700":"http://fonts.gstatic.com/s/arya/v9/ga6NawNG-HJdzfra3b-BaFg3dRE.ttf","regular":"http://fonts.gstatic.com/s/arya/v9/ga6CawNG-HJd9Ub1-beqdFE.ttf"},"Iceland":{"regular":"http://fonts.gstatic.com/s/iceland/v11/rax9HiuFsdMNOnWPWKxGADBbg0s.ttf"},"Short Stack":{"regular":"http://fonts.gstatic.com/s/shortstack/v10/bMrzmS2X6p0jZC6EcmPFX-SScX8D0nq6.ttf"},"Tienne":{"700":"http://fonts.gstatic.com/s/tienne/v15/AYCJpX7pe9YCRP0zLGzjQHhuzvef5Q.ttf","900":"http://fonts.gstatic.com/s/tienne/v15/AYCJpX7pe9YCRP0zFG7jQHhuzvef5Q.ttf","regular":"http://fonts.gstatic.com/s/tienne/v15/AYCKpX7pe9YCRP0LkEPHSFNyxw.ttf"},"Inknut Antiqua":{"300":"http://fonts.gstatic.com/s/inknutantiqua/v9/Y4GRYax7VC4ot_qNB4nYpBdaKU2vwrj5bBoIYJNf.ttf","500":"http://fonts.gstatic.com/s/inknutantiqua/v9/Y4GRYax7VC4ot_qNB4nYpBdaKU33w7j5bBoIYJNf.ttf","600":"http://fonts.gstatic.com/s/inknutantiqua/v9/Y4GRYax7VC4ot_qNB4nYpBdaKU3bxLj5bBoIYJNf.ttf","700":"http://fonts.gstatic.com/s/inknutantiqua/v9/Y4GRYax7VC4ot_qNB4nYpBdaKU2_xbj5bBoIYJNf.ttf","800":"http://fonts.gstatic.com/s/inknutantiqua/v9/Y4GRYax7VC4ot_qNB4nYpBdaKU2jxrj5bBoIYJNf.ttf","900":"http://fonts.gstatic.com/s/inknutantiqua/v9/Y4GRYax7VC4ot_qNB4nYpBdaKU2Hx7j5bBoIYJNf.ttf","regular":"http://fonts.gstatic.com/s/inknutantiqua/v9/Y4GSYax7VC4ot_qNB4nYpBdaKXUD6pzxRwYB.ttf"},"Cormorant Upright":{"300":"http://fonts.gstatic.com/s/cormorantupright/v11/VuJudM3I2Y35poFONtLdafkUCHw1y1N5phDsU9X6RPzQ.ttf","500":"http://fonts.gstatic.com/s/cormorantupright/v11/VuJudM3I2Y35poFONtLdafkUCHw1y1MhpxDsU9X6RPzQ.ttf","600":"http://fonts.gstatic.com/s/cormorantupright/v11/VuJudM3I2Y35poFONtLdafkUCHw1y1MNoBDsU9X6RPzQ.ttf","700":"http://fonts.gstatic.com/s/cormorantupright/v11/VuJudM3I2Y35poFONtLdafkUCHw1y1NpoRDsU9X6RPzQ.ttf","regular":"http://fonts.gstatic.com/s/cormorantupright/v11/VuJrdM3I2Y35poFONtLdafkUCHw1y2vVjjTkeMnz.ttf"},"Mukta Mahee":{"200":"http://fonts.gstatic.com/s/muktamahee/v10/XRXN3IOIi0hcP8iVU67hA9MFcBoHJndqZCsW.ttf","300":"http://fonts.gstatic.com/s/muktamahee/v10/XRXN3IOIi0hcP8iVU67hA9NhcxoHJndqZCsW.ttf","500":"http://fonts.gstatic.com/s/muktamahee/v10/XRXN3IOIi0hcP8iVU67hA9M5choHJndqZCsW.ttf","600":"http://fonts.gstatic.com/s/muktamahee/v10/XRXN3IOIi0hcP8iVU67hA9MVdRoHJndqZCsW.ttf","700":"http://fonts.gstatic.com/s/muktamahee/v10/XRXN3IOIi0hcP8iVU67hA9NxdBoHJndqZCsW.ttf","800":"http://fonts.gstatic.com/s/muktamahee/v10/XRXN3IOIi0hcP8iVU67hA9NtdxoHJndqZCsW.ttf","regular":"http://fonts.gstatic.com/s/muktamahee/v10/XRXQ3IOIi0hcP8iVU67hA-vNWz4PDWtj.ttf"},"Ranga":{"700":"http://fonts.gstatic.com/s/ranga/v8/C8cg4cYisGb28qY-AxgR6X2NZAn2.ttf","regular":"http://fonts.gstatic.com/s/ranga/v8/C8ct4cYisGb28p6CLDwZwmGE.ttf"},"Crafty Girls":{"regular":"http://fonts.gstatic.com/s/craftygirls/v10/va9B4kXI39VaDdlPJo8N_NvuQR37fF3Wlg.ttf"},"Mako":{"regular":"http://fonts.gstatic.com/s/mako/v14/H4coBX6Mmc_Z0ST09g478Lo.ttf"},"Delius Swash Caps":{"regular":"http://fonts.gstatic.com/s/deliusswashcaps/v14/oY1E8fPLr7v4JWCExZpWebxVKORpXXedKmeBvEYs.ttf"},"Montserrat Subrayada":{"700":"http://fonts.gstatic.com/s/montserratsubrayada/v12/U9MM6c-o9H7PgjlTHThBnNHGVUORwteQQHe3TcMWg3j36Ebz.ttf","regular":"http://fonts.gstatic.com/s/montserratsubrayada/v12/U9MD6c-o9H7PgjlTHThBnNHGVUORwteQQE8LYuceqGT-.ttf"},"Italiana":{"regular":"http://fonts.gstatic.com/s/italiana/v11/QldNNTtLsx4E__B0XTmRY31Wx7Vv.ttf"},"Tenali Ramakrishna":{"regular":"http://fonts.gstatic.com/s/tenaliramakrishna/v7/raxgHj6Yt9gAN3LLKs0BZVMo8jmwn1-8KJXqUFFvtA.ttf"},"Life Savers":{"700":"http://fonts.gstatic.com/s/lifesavers/v13/ZXu_e1UftKKabUQMgxAal8HXOS5Tk8fIpPRW.ttf","800":"http://fonts.gstatic.com/s/lifesavers/v13/ZXu_e1UftKKabUQMgxAal8HLOi5Tk8fIpPRW.ttf","regular":"http://fonts.gstatic.com/s/lifesavers/v13/ZXuie1UftKKabUQMgxAal_lrFgpbuNvB.ttf"},"Ma Shan Zheng":{"regular":"http://fonts.gstatic.com/s/mashanzheng/v5/NaPecZTRCLxvwo41b4gvzkXaRMTsDIRSfr0.ttf"},"Salsa":{"regular":"http://fonts.gstatic.com/s/salsa/v12/gNMKW3FiRpKj-imY8ncKEZez.ttf"},"Vampiro One":{"regular":"http://fonts.gstatic.com/s/vampiroone/v13/gokqH6DoDl5yXvJytFsdLkqnsvhIor3K.ttf"},"Cherry Cream Soda":{"regular":"http://fonts.gstatic.com/s/cherrycreamsoda/v13/UMBIrOxBrW6w2FFyi9paG0fdVdRciTd6Cd47DJ7G.ttf"},"Antonio":{"100":"http://fonts.gstatic.com/s/antonio/v1/gNMbW3NwSYq_9WD34ngK5F8vR8T0PVxx8BtIY2DwSXlM.ttf","200":"http://fonts.gstatic.com/s/antonio/v1/gNMbW3NwSYq_9WD34ngK5F8vR8T0PVzx8RtIY2DwSXlM.ttf","300":"http://fonts.gstatic.com/s/antonio/v1/gNMbW3NwSYq_9WD34ngK5F8vR8T0PVwv8RtIY2DwSXlM.ttf","500":"http://fonts.gstatic.com/s/antonio/v1/gNMbW3NwSYq_9WD34ngK5F8vR8T0PVxD8RtIY2DwSXlM.ttf","600":"http://fonts.gstatic.com/s/antonio/v1/gNMbW3NwSYq_9WD34ngK5F8vR8T0PVyv9htIY2DwSXlM.ttf","700":"http://fonts.gstatic.com/s/antonio/v1/gNMbW3NwSYq_9WD34ngK5F8vR8T0PVyW9htIY2DwSXlM.ttf","regular":"http://fonts.gstatic.com/s/antonio/v1/gNMbW3NwSYq_9WD34ngK5F8vR8T0PVxx8RtIY2DwSXlM.ttf"},"Baloo Chettan 2":{"500":"http://fonts.gstatic.com/s/baloochettan2/v2/vm8rdRbmXEva26PK-NtuX4ynWEznFNRfMr0fn5bhCA.ttf","600":"http://fonts.gstatic.com/s/baloochettan2/v2/vm8rdRbmXEva26PK-NtuX4ynWEznONNfMr0fn5bhCA.ttf","700":"http://fonts.gstatic.com/s/baloochettan2/v2/vm8rdRbmXEva26PK-NtuX4ynWEznXNJfMr0fn5bhCA.ttf","800":"http://fonts.gstatic.com/s/baloochettan2/v2/vm8rdRbmXEva26PK-NtuX4ynWEznQNFfMr0fn5bhCA.ttf","regular":"http://fonts.gstatic.com/s/baloochettan2/v2/vm8udRbmXEva26PK-NtuX4ynWEzf4P17OpYDlg.ttf"},"Mina":{"700":"http://fonts.gstatic.com/s/mina/v6/-nF8OGc18vARl4NMyiXZ95OkJwA.ttf","regular":"http://fonts.gstatic.com/s/mina/v6/-nFzOGc18vARrz9j7i3y65o.ttf"},"Unkempt":{"700":"http://fonts.gstatic.com/s/unkempt/v12/2EbiL-Z2DFZue0DScTow1zWzq_5uT84.ttf","regular":"http://fonts.gstatic.com/s/unkempt/v12/2EbnL-Z2DFZue0DSSYYf8z2Yt_c.ttf"},"Cambo":{"regular":"http://fonts.gstatic.com/s/cambo/v9/IFSqHeNEk8FJk416ok7xkPm8.ttf"},"Flamenco":{"300":"http://fonts.gstatic.com/s/flamenco/v13/neIPzCehqYguo67ssZ0qNIkyepH9qGsf.ttf","regular":"http://fonts.gstatic.com/s/flamenco/v13/neIIzCehqYguo67ssaWGHK06UY30.ttf"},"Eater":{"regular":"http://fonts.gstatic.com/s/eater/v11/mtG04_FCK7bOvpu2u3FwsXsR.ttf"},"Scope One":{"regular":"http://fonts.gstatic.com/s/scopeone/v9/WBLnrEXKYFlGHrOKmGD1W0_MJMGxiQ.ttf"},"Odibee Sans":{"regular":"http://fonts.gstatic.com/s/odibeesans/v4/neIPzCSooYAho6WvjeToRYkyepH9qGsf.ttf"},"Peralta":{"regular":"http://fonts.gstatic.com/s/peralta/v10/hYkJPu0-RP_9d3kRGxAhrv956B8.ttf"},"Geo":{"regular":"http://fonts.gstatic.com/s/geo/v14/CSRz4zRZlufVL3BmQjlCbQ.ttf","italic":"http://fonts.gstatic.com/s/geo/v14/CSRx4zRZluflLXpiYDxSbf8r.ttf"},"Trade Winds":{"regular":"http://fonts.gstatic.com/s/tradewinds/v12/AYCPpXPpYNIIT7h8-QenM3Jq7PKP5Z_G.ttf"},"Tillana":{"500":"http://fonts.gstatic.com/s/tillana/v6/VuJ0dNvf35P4qJ1OQFL-HIlMZRNcp0o.ttf","600":"http://fonts.gstatic.com/s/tillana/v6/VuJ0dNvf35P4qJ1OQH75HIlMZRNcp0o.ttf","700":"http://fonts.gstatic.com/s/tillana/v6/VuJ0dNvf35P4qJ1OQBr4HIlMZRNcp0o.ttf","800":"http://fonts.gstatic.com/s/tillana/v6/VuJ0dNvf35P4qJ1OQAb7HIlMZRNcp0o.ttf","regular":"http://fonts.gstatic.com/s/tillana/v6/VuJxdNvf35P4qJ1OeKbXOIFneRo.ttf"},"Elsie":{"900":"http://fonts.gstatic.com/s/elsie/v11/BCaqqZABrez54x6q2-1IU6QeXSBk.ttf","regular":"http://fonts.gstatic.com/s/elsie/v11/BCanqZABrez54yYu9slAeLgX.ttf"},"Red Rose":{"300":"http://fonts.gstatic.com/s/redrose/v8/QdVISTYiLBjouPgEUajvsfWwDtc3MH8y8_sDcjSsYUVUjg.ttf","500":"http://fonts.gstatic.com/s/redrose/v8/QdVISTYiLBjouPgEUajvsfWwDtc3MH8yn_sDcjSsYUVUjg.ttf","600":"http://fonts.gstatic.com/s/redrose/v8/QdVISTYiLBjouPgEUajvsfWwDtc3MH8yc_wDcjSsYUVUjg.ttf","700":"http://fonts.gstatic.com/s/redrose/v8/QdVISTYiLBjouPgEUajvsfWwDtc3MH8ySvwDcjSsYUVUjg.ttf","regular":"http://fonts.gstatic.com/s/redrose/v8/QdVISTYiLBjouPgEUajvsfWwDtc3MH8yrfsDcjSsYUVUjg.ttf"},"Bellota Text":{"300":"http://fonts.gstatic.com/s/bellotatext/v4/0FlMVP2VnlWS4f3-UE9hHXM5VfsqfQXwQy6yxg.ttf","700":"http://fonts.gstatic.com/s/bellotatext/v4/0FlMVP2VnlWS4f3-UE9hHXM5RfwqfQXwQy6yxg.ttf","300italic":"http://fonts.gstatic.com/s/bellotatext/v4/0FlOVP2VnlWS4f3-UE9hHXMx--Gmfw_0YSuixmYK.ttf","regular":"http://fonts.gstatic.com/s/bellotatext/v4/0FlTVP2VnlWS4f3-UE9hHXMB-dMOdS7sSg.ttf","italic":"http://fonts.gstatic.com/s/bellotatext/v4/0FlNVP2VnlWS4f3-UE9hHXMx-9kKVyv8Sjer.ttf","700italic":"http://fonts.gstatic.com/s/bellotatext/v4/0FlOVP2VnlWS4f3-UE9hHXMx--G2eA_0YSuixmYK.ttf"},"Bilbo Swash Caps":{"regular":"http://fonts.gstatic.com/s/bilboswashcaps/v15/zrf-0GXbz-H3Wb4XBsGrTgq2PVmdqAPopiRfKp8.ttf"},"Carrois Gothic SC":{"regular":"http://fonts.gstatic.com/s/carroisgothicsc/v10/ZgNJjOVHM6jfUZCmyUqT2A2HVKjc-28nNHabY4dN.ttf"},"Dynalight":{"regular":"http://fonts.gstatic.com/s/dynalight/v11/1Ptsg8LOU_aOmQvTsF4ISotrDfGGxA.ttf"},"The Girl Next Door":{"regular":"http://fonts.gstatic.com/s/thegirlnextdoor/v13/pe0zMJCIMIsBjFxqYBIcZ6_OI5oFHCYIV7t7w6bE2A.ttf"},"Gaegu":{"300":"http://fonts.gstatic.com/s/gaegu/v10/TuGSUVB6Up9NU57nifw74sdtBk0x.ttf","700":"http://fonts.gstatic.com/s/gaegu/v10/TuGSUVB6Up9NU573jvw74sdtBk0x.ttf","regular":"http://fonts.gstatic.com/s/gaegu/v10/TuGfUVB6Up9NU6ZLodgzydtk.ttf"},"Asul":{"700":"http://fonts.gstatic.com/s/asul/v12/VuJxdNjKxYr40U8qeKbXOIFneRo.ttf","regular":"http://fonts.gstatic.com/s/asul/v12/VuJ-dNjKxYr46fMFXK78JIg.ttf"},"Loved by the King":{"regular":"http://fonts.gstatic.com/s/lovedbytheking/v12/Gw6gwdP76VDVJNXerebZxUMeRXUF2PiNlXFu2R64.ttf"},"Coiny":{"regular":"http://fonts.gstatic.com/s/coiny/v8/gyByhwU1K989PXwbElSvO5Tc.ttf"},"Gafata":{"regular":"http://fonts.gstatic.com/s/gafata/v11/XRXV3I6Cn0VJKon4MuyAbsrVcA.ttf"},"Prosto One":{"regular":"http://fonts.gstatic.com/s/prostoone/v12/OpNJno4VhNfK-RgpwWWxpipfWhXD00c.ttf"},"IM Fell English SC":{"regular":"http://fonts.gstatic.com/s/imfellenglishsc/v12/a8IENpD3CDX-4zrWfr1VY879qFF05pZLO4gOg0shzA.ttf"},"Puritan":{"700":"http://fonts.gstatic.com/s/puritan/v14/845dNMgkAJ2VTtIozCbfYd6j-0rGRes.ttf","regular":"http://fonts.gstatic.com/s/puritan/v14/845YNMgkAJ2VTtIo9JrwRdaI50M.ttf","italic":"http://fonts.gstatic.com/s/puritan/v14/845aNMgkAJ2VTtIoxJj6QfSN90PfXA.ttf","700italic":"http://fonts.gstatic.com/s/puritan/v14/845fNMgkAJ2VTtIoxJjC_dup_2jDVevnLQ.ttf"},"Encode Sans Semi Expanded":{"100":"http://fonts.gstatic.com/s/encodesanssemiexpanded/v8/ke8xOhAPMEZs-BDuzwftTNJ85JvwMOzE9d9Cca5TM-41KwrlKXeOEA.ttf","200":"http://fonts.gstatic.com/s/encodesanssemiexpanded/v8/ke8yOhAPMEZs-BDuzwftTNJ85JvwMOzE9d9Cca5TM0IUCyDLJX6XCWU.ttf","300":"http://fonts.gstatic.com/s/encodesanssemiexpanded/v8/ke8yOhAPMEZs-BDuzwftTNJ85JvwMOzE9d9Cca5TMyYXCyDLJX6XCWU.ttf","500":"http://fonts.gstatic.com/s/encodesanssemiexpanded/v8/ke8yOhAPMEZs-BDuzwftTNJ85JvwMOzE9d9Cca5TM34WCyDLJX6XCWU.ttf","600":"http://fonts.gstatic.com/s/encodesanssemiexpanded/v8/ke8yOhAPMEZs-BDuzwftTNJ85JvwMOzE9d9Cca5TM1IRCyDLJX6XCWU.ttf","700":"http://fonts.gstatic.com/s/encodesanssemiexpanded/v8/ke8yOhAPMEZs-BDuzwftTNJ85JvwMOzE9d9Cca5TMzYQCyDLJX6XCWU.ttf","800":"http://fonts.gstatic.com/s/encodesanssemiexpanded/v8/ke8yOhAPMEZs-BDuzwftTNJ85JvwMOzE9d9Cca5TMyoTCyDLJX6XCWU.ttf","900":"http://fonts.gstatic.com/s/encodesanssemiexpanded/v8/ke8yOhAPMEZs-BDuzwftTNJ85JvwMOzE9d9Cca5TMw4SCyDLJX6XCWU.ttf","regular":"http://fonts.gstatic.com/s/encodesanssemiexpanded/v8/ke83OhAPMEZs-BDuzwftTNJ85JvwMOzE9d9Cca5TC4o_LyjgOXc.ttf"},"UnifrakturCook":{"700":"http://fonts.gstatic.com/s/unifrakturcook/v14/IurA6Yli8YOdcoky-0PTTdkm56n05Uw13ILXs-h6.ttf"},"Artifika":{"regular":"http://fonts.gstatic.com/s/artifika/v13/VEMyRoxzronptCuxu6Wt5jDtreOL.ttf"},"Cherry Swash":{"700":"http://fonts.gstatic.com/s/cherryswash/v11/i7dSIFByZjaNAMxtZcnfAy5E_FeaGy6QZ3WfYg.ttf","regular":"http://fonts.gstatic.com/s/cherryswash/v11/i7dNIFByZjaNAMxtZcnfAy58QHi-EwWMbg.ttf"},"Imprima":{"regular":"http://fonts.gstatic.com/s/imprima/v11/VEMxRoN7sY3yuy-7-oWHyDzktPo.ttf"},"Gorditas":{"700":"http://fonts.gstatic.com/s/gorditas/v10/ll84K2aTVD26DsPEtThUIooIvAoShA1i.ttf","regular":"http://fonts.gstatic.com/s/gorditas/v10/ll8_K2aTVD26DsPEtQDoDa4AlxYb.ttf"},"Nokora":{"700":"http://fonts.gstatic.com/s/nokora/v16/hYkLPuwgTubzaWxohxUrqt18-B9Uuw.ttf","regular":"http://fonts.gstatic.com/s/nokora/v16/hYkIPuwgTubzaWxQOzoPovZg8Q.ttf"},"Metamorphous":{"regular":"http://fonts.gstatic.com/s/metamorphous/v13/Wnz8HA03aAXcC39ZEX5y1330PCCthTsmaQ.ttf"},"Big Shoulders Text":{"100":"http://fonts.gstatic.com/s/bigshoulderstext/v6/55xzezRtP9G3CGPIf49hxc8P0eytUxBU-IZ_YscCdXQB.ttf","300":"http://fonts.gstatic.com/s/bigshoulderstext/v6/55xyezRtP9G3CGPIf49hxc8P0eytUxBUMKRfSOkOfG0Y3A.ttf","500":"http://fonts.gstatic.com/s/bigshoulderstext/v6/55xyezRtP9G3CGPIf49hxc8P0eytUxBUaKVfSOkOfG0Y3A.ttf","600":"http://fonts.gstatic.com/s/bigshoulderstext/v6/55xyezRtP9G3CGPIf49hxc8P0eytUxBURKJfSOkOfG0Y3A.ttf","700":"http://fonts.gstatic.com/s/bigshoulderstext/v6/55xyezRtP9G3CGPIf49hxc8P0eytUxBUIKNfSOkOfG0Y3A.ttf","800":"http://fonts.gstatic.com/s/bigshoulderstext/v6/55xyezRtP9G3CGPIf49hxc8P0eytUxBUPKBfSOkOfG0Y3A.ttf","900":"http://fonts.gstatic.com/s/bigshoulderstext/v6/55xyezRtP9G3CGPIf49hxc8P0eytUxBUGKFfSOkOfG0Y3A.ttf","regular":"http://fonts.gstatic.com/s/bigshoulderstext/v6/55xxezRtP9G3CGPIf49hxc8P0eytUxBsnIx7QMISdQ.ttf"},"Della Respira":{"regular":"http://fonts.gstatic.com/s/dellarespira/v10/RLp5K5v44KaueWI6iEJQBiGPRfkSu6EuTHo.ttf"},"Vibur":{"regular":"http://fonts.gstatic.com/s/vibur/v13/DPEiYwmEzw0QRjTpLjoJd-Xa.ttf"},"Engagement":{"regular":"http://fonts.gstatic.com/s/engagement/v12/x3dlckLDZbqa7RUs9MFVXNossybsHQI.ttf"},"Lily Script One":{"regular":"http://fonts.gstatic.com/s/lilyscriptone/v10/LhW9MV7ZMfIPdMxeBjBvFN8SXLS4gsSjQNsRMg.ttf"},"Englebert":{"regular":"http://fonts.gstatic.com/s/englebert/v10/xn7iYH8w2XGrC8AR4HSxT_fYdN-WZw.ttf"},"Shippori Mincho":{"500":"http://fonts.gstatic.com/s/shipporimincho/v7/VdGDAZweH5EbgHY6YExcZfDoj0B4L9am5JEO5--2zg.ttf","600":"http://fonts.gstatic.com/s/shipporimincho/v7/VdGDAZweH5EbgHY6YExcZfDoj0B4A9Gm5JEO5--2zg.ttf","700":"http://fonts.gstatic.com/s/shipporimincho/v7/VdGDAZweH5EbgHY6YExcZfDoj0B4Z9Cm5JEO5--2zg.ttf","800":"http://fonts.gstatic.com/s/shipporimincho/v7/VdGDAZweH5EbgHY6YExcZfDoj0B4e9Om5JEO5--2zg.ttf","regular":"http://fonts.gstatic.com/s/shipporimincho/v7/VdGGAZweH5EbgHY6YExcZfDoj0BA2_-C7LoS7g.ttf"},"Nova Square":{"regular":"http://fonts.gstatic.com/s/novasquare/v15/RrQUbo9-9DV7b06QHgSWsZhARYMgGtWA.ttf"},"Voces":{"regular":"http://fonts.gstatic.com/s/voces/v15/-F6_fjJyLyU8d4PBBG7YpzlJ.ttf"},"Bilbo":{"regular":"http://fonts.gstatic.com/s/bilbo/v13/o-0EIpgpwWwZ210hpIRz4wxE.ttf"},"Notable":{"regular":"http://fonts.gstatic.com/s/notable/v9/gNMEW3N_SIqx-WX9-HMoFIez5MI.ttf"},"Headland One":{"regular":"http://fonts.gstatic.com/s/headlandone/v10/yYLu0hHR2vKnp89Tk1TCq3Tx0PlTeZ3mJA.ttf"},"Cantora One":{"regular":"http://fonts.gstatic.com/s/cantoraone/v12/gyB4hws1JdgnKy56GB_JX6zdZ4vZVbgZ.ttf"},"Tauri":{"regular":"http://fonts.gstatic.com/s/tauri/v11/TwMA-IISS0AM3IpVWHU_TBqO.ttf"},"Meera Inimai":{"regular":"http://fonts.gstatic.com/s/meerainimai/v7/845fNMM5EIqOW5MPuvO3ILep_2jDVevnLQ.ttf"},"Benne":{"regular":"http://fonts.gstatic.com/s/benne/v10/L0xzDFAhn18E6Vjxlt6qTDBN.ttf"},"Medula One":{"regular":"http://fonts.gstatic.com/s/medulaone/v12/YA9Wr0qb5kjJM6l2V0yukiEqs7GtlvY.ttf"},"Stalemate":{"regular":"http://fonts.gstatic.com/s/stalemate/v10/taiIGmZ_EJq97-UfkZRpuqSs8ZQpaQ.ttf"},"Amarante":{"regular":"http://fonts.gstatic.com/s/amarante/v10/xMQXuF1KTa6EvGx9bq-3C3rAmD-b.ttf"},"Yeon Sung":{"regular":"http://fonts.gstatic.com/s/yeonsung/v10/QldMNTpbohAGtsJvUn6xSVNazqx2xg.ttf"},"Khmer":{"regular":"http://fonts.gstatic.com/s/khmer/v15/MjQImit_vPPwpF-BpN2EeYmD.ttf"},"Port Lligat Slab":{"regular":"http://fonts.gstatic.com/s/portlligatslab/v11/LDIpaoiQNgArA8kR7ulhZ8P_NYOss7ob9yGLmfI.ttf"},"Lexend Zetta":{"regular":"http://fonts.gstatic.com/s/lexendzetta/v14/ll87K2KYXje7CdOFnEWcU8soliQejRR7AQ.ttf"},"Reggae One":{"regular":"http://fonts.gstatic.com/s/reggaeone/v3/7r3DqX5msMIkeuwJwOJt_a5L5uH-mts.ttf"},"Fjord One":{"regular":"http://fonts.gstatic.com/s/fjordone/v11/zOL-4pbEnKBY_9S1jNKr6e5As-FeiQ.ttf"},"Charmonman":{"700":"http://fonts.gstatic.com/s/charmonman/v8/MjQAmiR3vP_nuxDv47jiYC2HmL9K9OhmGnY.ttf","regular":"http://fonts.gstatic.com/s/charmonman/v8/MjQDmiR3vP_nuxDv47jiWJGovLdh6OE.ttf"},"Slackey":{"regular":"http://fonts.gstatic.com/s/slackey/v13/N0bV2SdQO-5yM0-dKlRaJdbWgdY.ttf"},"Fraunces":{"100":"http://fonts.gstatic.com/s/fraunces/v10/6NUh8FyLNQOQZAnv9bYEvDiIdE9Ea92uemAk_WBq8U_9v0c2Wa0K7iN7hzFUPJH58nib1603gg7S2nfgRYIctxqjDvTShUtWNg.ttf","200":"http://fonts.gstatic.com/s/fraunces/v10/6NUh8FyLNQOQZAnv9bYEvDiIdE9Ea92uemAk_WBq8U_9v0c2Wa0K7iN7hzFUPJH58nib1603gg7S2nfgRYIcNxujDvTShUtWNg.ttf","300":"http://fonts.gstatic.com/s/fraunces/v10/6NUh8FyLNQOQZAnv9bYEvDiIdE9Ea92uemAk_WBq8U_9v0c2Wa0K7iN7hzFUPJH58nib1603gg7S2nfgRYIc6RujDvTShUtWNg.ttf","500":"http://fonts.gstatic.com/s/fraunces/v10/6NUh8FyLNQOQZAnv9bYEvDiIdE9Ea92uemAk_WBq8U_9v0c2Wa0K7iN7hzFUPJH58nib1603gg7S2nfgRYIchRujDvTShUtWNg.ttf","600":"http://fonts.gstatic.com/s/fraunces/v10/6NUh8FyLNQOQZAnv9bYEvDiIdE9Ea92uemAk_WBq8U_9v0c2Wa0K7iN7hzFUPJH58nib1603gg7S2nfgRYIcaRyjDvTShUtWNg.ttf","700":"http://fonts.gstatic.com/s/fraunces/v10/6NUh8FyLNQOQZAnv9bYEvDiIdE9Ea92uemAk_WBq8U_9v0c2Wa0K7iN7hzFUPJH58nib1603gg7S2nfgRYIcUByjDvTShUtWNg.ttf","800":"http://fonts.gstatic.com/s/fraunces/v10/6NUh8FyLNQOQZAnv9bYEvDiIdE9Ea92uemAk_WBq8U_9v0c2Wa0K7iN7hzFUPJH58nib1603gg7S2nfgRYIcNxyjDvTShUtWNg.ttf","900":"http://fonts.gstatic.com/s/fraunces/v10/6NUh8FyLNQOQZAnv9bYEvDiIdE9Ea92uemAk_WBq8U_9v0c2Wa0K7iN7hzFUPJH58nib1603gg7S2nfgRYIcHhyjDvTShUtWNg.ttf","regular":"http://fonts.gstatic.com/s/fraunces/v10/6NUh8FyLNQOQZAnv9bYEvDiIdE9Ea92uemAk_WBq8U_9v0c2Wa0K7iN7hzFUPJH58nib1603gg7S2nfgRYIctxujDvTShUtWNg.ttf","100italic":"http://fonts.gstatic.com/s/fraunces/v10/6NVf8FyLNQOQZAnv9ZwNjucMHVn85Ni7emAe9lKqZTnbB-gzTK0K1ChJdt9vIVYX9G37lvd9sPEKsxx664UJf1hLTP7Wp05GNi3k.ttf","200italic":"http://fonts.gstatic.com/s/fraunces/v10/6NVf8FyLNQOQZAnv9ZwNjucMHVn85Ni7emAe9lKqZTnbB-gzTK0K1ChJdt9vIVYX9G37lvd9sPEKsxx664UJf1jLTf7Wp05GNi3k.ttf","300italic":"http://fonts.gstatic.com/s/fraunces/v10/6NVf8FyLNQOQZAnv9ZwNjucMHVn85Ni7emAe9lKqZTnbB-gzTK0K1ChJdt9vIVYX9G37lvd9sPEKsxx664UJf1gVTf7Wp05GNi3k.ttf","italic":"http://fonts.gstatic.com/s/fraunces/v10/6NVf8FyLNQOQZAnv9ZwNjucMHVn85Ni7emAe9lKqZTnbB-gzTK0K1ChJdt9vIVYX9G37lvd9sPEKsxx664UJf1hLTf7Wp05GNi3k.ttf","500italic":"http://fonts.gstatic.com/s/fraunces/v10/6NVf8FyLNQOQZAnv9ZwNjucMHVn85Ni7emAe9lKqZTnbB-gzTK0K1ChJdt9vIVYX9G37lvd9sPEKsxx664UJf1h5Tf7Wp05GNi3k.ttf","600italic":"http://fonts.gstatic.com/s/fraunces/v10/6NVf8FyLNQOQZAnv9ZwNjucMHVn85Ni7emAe9lKqZTnbB-gzTK0K1ChJdt9vIVYX9G37lvd9sPEKsxx664UJf1iVSv7Wp05GNi3k.ttf","700italic":"http://fonts.gstatic.com/s/fraunces/v10/6NVf8FyLNQOQZAnv9ZwNjucMHVn85Ni7emAe9lKqZTnbB-gzTK0K1ChJdt9vIVYX9G37lvd9sPEKsxx664UJf1isSv7Wp05GNi3k.ttf","800italic":"http://fonts.gstatic.com/s/fraunces/v10/6NVf8FyLNQOQZAnv9ZwNjucMHVn85Ni7emAe9lKqZTnbB-gzTK0K1ChJdt9vIVYX9G37lvd9sPEKsxx664UJf1jLSv7Wp05GNi3k.ttf","900italic":"http://fonts.gstatic.com/s/fraunces/v10/6NVf8FyLNQOQZAnv9ZwNjucMHVn85Ni7emAe9lKqZTnbB-gzTK0K1ChJdt9vIVYX9G37lvd9sPEKsxx664UJf1jiSv7Wp05GNi3k.ttf"},"Milonga":{"regular":"http://fonts.gstatic.com/s/milonga/v10/SZc53FHnIaK9W5kffz3GkUrS8DI.ttf"},"Lexend":{"100":"http://fonts.gstatic.com/s/lexend/v5/wlpygwvFAVdoq2_nmKQR82JHaTBX.ttf","300":"http://fonts.gstatic.com/s/lexend/v5/wlpzgwvFAVdoq2_nUIYx2UxLYClOCg.ttf","500":"http://fonts.gstatic.com/s/lexend/v5/wlpzgwvFAVdoq2_nCIcx2UxLYClOCg.ttf","600":"http://fonts.gstatic.com/s/lexend/v5/wlpzgwvFAVdoq2_nJIAx2UxLYClOCg.ttf","700":"http://fonts.gstatic.com/s/lexend/v5/wlpzgwvFAVdoq2_nQIEx2UxLYClOCg.ttf","800":"http://fonts.gstatic.com/s/lexend/v5/wlpzgwvFAVdoq2_nXIIx2UxLYClOCg.ttf","regular":"http://fonts.gstatic.com/s/lexend/v5/wlpwgwvFAVdoq2_f_K4V0WdXaQ.ttf"},"Dela Gothic One":{"regular":"http://fonts.gstatic.com/s/delagothicone/v4/hESp6XxvMDRA-2eD0lXpDa6QkBAGRUsJQAlbUA.ttf"},"Mogra":{"regular":"http://fonts.gstatic.com/s/mogra/v9/f0X40eSs8c95TBo4DvLmxtnG.ttf"},"Sura":{"700":"http://fonts.gstatic.com/s/sura/v7/SZc53FL5PbyzLUJ7fz3GkUrS8DI.ttf","regular":"http://fonts.gstatic.com/s/sura/v7/SZc23FL5PbyzFf5UWzXtjUM.ttf"},"Sarina":{"regular":"http://fonts.gstatic.com/s/sarina/v11/-F6wfjF3ITQwasLhLkDUriBQxw.ttf"},"New Rocker":{"regular":"http://fonts.gstatic.com/s/newrocker/v11/MwQzbhjp3-HImzcCU_cJkGMViblPtXs.ttf"},"Goblin One":{"regular":"http://fonts.gstatic.com/s/goblinone/v12/CSR64z1ZnOqZRjRCBVY_TOcATNt_pOU.ttf"},"Manuale":{"500":"http://fonts.gstatic.com/s/manuale/v10/f0Xp0eas_8Z-TFZdHv3mMxFaSqASeeHWe7wD1TB_JHHY.ttf","600":"http://fonts.gstatic.com/s/manuale/v10/f0Xp0eas_8Z-TFZdHv3mMxFaSqASeeE6fLwD1TB_JHHY.ttf","700":"http://fonts.gstatic.com/s/manuale/v10/f0Xp0eas_8Z-TFZdHv3mMxFaSqASeeEDfLwD1TB_JHHY.ttf","regular":"http://fonts.gstatic.com/s/manuale/v10/f0Xp0eas_8Z-TFZdHv3mMxFaSqASeeHke7wD1TB_JHHY.ttf","italic":"http://fonts.gstatic.com/s/manuale/v10/f0Xn0eas_8Z-TFZdNPTUzMkzITq8fvQsOFRA3zRdIWHYr8M.ttf","500italic":"http://fonts.gstatic.com/s/manuale/v10/f0Xn0eas_8Z-TFZdNPTUzMkzITq8fvQsOGZA3zRdIWHYr8M.ttf","600italic":"http://fonts.gstatic.com/s/manuale/v10/f0Xn0eas_8Z-TFZdNPTUzMkzITq8fvQsOIpH3zRdIWHYr8M.ttf","700italic":"http://fonts.gstatic.com/s/manuale/v10/f0Xn0eas_8Z-TFZdNPTUzMkzITq8fvQsOLNH3zRdIWHYr8M.ttf"},"Just Me Again Down Here":{"regular":"http://fonts.gstatic.com/s/justmeagaindownhere/v14/MwQmbgXtz-Wc6RUEGNMc0QpRrfUh2hSdBBMoAuwHvqDwc_fg.ttf"},"Kulim Park":{"200":"http://fonts.gstatic.com/s/kulimpark/v4/fdN49secq3hflz1Uu3IwjJYNwa5aZbUvGjU.ttf","300":"http://fonts.gstatic.com/s/kulimpark/v4/fdN49secq3hflz1Uu3IwjPIOwa5aZbUvGjU.ttf","600":"http://fonts.gstatic.com/s/kulimpark/v4/fdN49secq3hflz1Uu3IwjIYIwa5aZbUvGjU.ttf","700":"http://fonts.gstatic.com/s/kulimpark/v4/fdN49secq3hflz1Uu3IwjOIJwa5aZbUvGjU.ttf","200italic":"http://fonts.gstatic.com/s/kulimpark/v4/fdNm9secq3hflz1Uu3IwhFwUKa9QYZcqCjVVUA.ttf","300italic":"http://fonts.gstatic.com/s/kulimpark/v4/fdNm9secq3hflz1Uu3IwhFwUTaxQYZcqCjVVUA.ttf","regular":"http://fonts.gstatic.com/s/kulimpark/v4/fdN79secq3hflz1Uu3IwtF4m5aZxebw.ttf","italic":"http://fonts.gstatic.com/s/kulimpark/v4/fdN59secq3hflz1Uu3IwhFws4YR0abw2Aw.ttf","600italic":"http://fonts.gstatic.com/s/kulimpark/v4/fdNm9secq3hflz1Uu3IwhFwUOapQYZcqCjVVUA.ttf","700italic":"http://fonts.gstatic.com/s/kulimpark/v4/fdNm9secq3hflz1Uu3IwhFwUXatQYZcqCjVVUA.ttf"},"Ruslan Display":{"regular":"http://fonts.gstatic.com/s/ruslandisplay/v13/Gw6jwczl81XcIZuckK_e3UpfdzxrldyFvm1n.ttf"},"League Script":{"regular":"http://fonts.gstatic.com/s/leaguescript/v14/CSR54zpSlumSWj9CGVsoBZdeaNNUuOwkC2s.ttf"},"Shanti":{"regular":"http://fonts.gstatic.com/s/shanti/v14/t5thIREMM4uSDgzgU0ezpKfwzA.ttf"},"Text Me One":{"regular":"http://fonts.gstatic.com/s/textmeone/v10/i7dOIFdlayuLUvgoFvHQFWZcalayGhyV.ttf"},"Delius Unicase":{"700":"http://fonts.gstatic.com/s/deliusunicase/v16/845CNMEwEIOVT8BmgfSzIr_6mlp7WMr_BmmlS5aw.ttf","regular":"http://fonts.gstatic.com/s/deliusunicase/v16/845BNMEwEIOVT8BmgfSzIr_6mmLHd-73LXWs.ttf"},"Fontdiner Swanky":{"regular":"http://fonts.gstatic.com/s/fontdinerswanky/v11/ijwOs4XgRNsiaI5-hcVb4hQgMvCD4uEfKiGvxts.ttf"},"Pavanam":{"regular":"http://fonts.gstatic.com/s/pavanam/v6/BXRrvF_aiezLh0xPDOtQ9Wf0QcE.ttf"},"Poller One":{"regular":"http://fonts.gstatic.com/s/pollerone/v12/ahccv82n0TN3gia5E4Bud-lbgUS5u0s.ttf"},"Saira Stencil One":{"regular":"http://fonts.gstatic.com/s/sairastencilone/v4/SLXSc03I6HkvZGJ1GvvipLoYSTEL9AsMawif2YQ2.ttf"},"Crushed":{"regular":"http://fonts.gstatic.com/s/crushed/v13/U9Mc6dym6WXImTlFT1kfuIqyLzA.ttf"},"Kodchasan":{"200":"http://fonts.gstatic.com/s/kodchasan/v6/1cX0aUPOAJv9sG4I-DJeR1Cggeqo3eMeoA.ttf","300":"http://fonts.gstatic.com/s/kodchasan/v6/1cX0aUPOAJv9sG4I-DJeI1Oggeqo3eMeoA.ttf","500":"http://fonts.gstatic.com/s/kodchasan/v6/1cX0aUPOAJv9sG4I-DJee1Kggeqo3eMeoA.ttf","600":"http://fonts.gstatic.com/s/kodchasan/v6/1cX0aUPOAJv9sG4I-DJeV1Wggeqo3eMeoA.ttf","700":"http://fonts.gstatic.com/s/kodchasan/v6/1cX0aUPOAJv9sG4I-DJeM1Sggeqo3eMeoA.ttf","200italic":"http://fonts.gstatic.com/s/kodchasan/v6/1cXqaUPOAJv9sG4I-DJWjUlIgOCs_-YOoIgN.ttf","300italic":"http://fonts.gstatic.com/s/kodchasan/v6/1cXqaUPOAJv9sG4I-DJWjUksg-Cs_-YOoIgN.ttf","regular":"http://fonts.gstatic.com/s/kodchasan/v6/1cXxaUPOAJv9sG4I-DJmj3uEicG01A.ttf","italic":"http://fonts.gstatic.com/s/kodchasan/v6/1cX3aUPOAJv9sG4I-DJWjXGAq8Sk1PoH.ttf","500italic":"http://fonts.gstatic.com/s/kodchasan/v6/1cXqaUPOAJv9sG4I-DJWjUl0guCs_-YOoIgN.ttf","600italic":"http://fonts.gstatic.com/s/kodchasan/v6/1cXqaUPOAJv9sG4I-DJWjUlYheCs_-YOoIgN.ttf","700italic":"http://fonts.gstatic.com/s/kodchasan/v6/1cXqaUPOAJv9sG4I-DJWjUk8hOCs_-YOoIgN.ttf"},"Kranky":{"regular":"http://fonts.gstatic.com/s/kranky/v13/hESw6XVgJzlPsFnMpheEZo_H_w.ttf"},"Habibi":{"regular":"http://fonts.gstatic.com/s/habibi/v11/CSR-4zFWkuqcTTNCShJeZOYySQ.ttf"},"Paprika":{"regular":"http://fonts.gstatic.com/s/paprika/v10/8QIJdijZitv49rDfuIgOq7jkAOw.ttf"},"Prociono":{"regular":"http://fonts.gstatic.com/s/prociono/v12/r05YGLlR-KxAf9GGO8upyDYtStiJ.ttf"},"Lovers Quarrel":{"regular":"http://fonts.gstatic.com/s/loversquarrel/v10/Yq6N-LSKXTL-5bCy8ksBzpQ_-zAsY7pO6siz.ttf"},"Gamja Flower":{"regular":"http://fonts.gstatic.com/s/gamjaflower/v10/6NUR8FiKJg-Pa0rM6uN40Z4kyf9Fdty2ew.ttf"},"Syne":{"500":"http://fonts.gstatic.com/s/syne/v3/8vIS7w4qzmVxsWxjBZRjr0FKM_0KuT6kR47NCV5Z.ttf","600":"http://fonts.gstatic.com/s/syne/v3/8vIS7w4qzmVxsWxjBZRjr0FKM_3mvj6kR47NCV5Z.ttf","700":"http://fonts.gstatic.com/s/syne/v3/8vIS7w4qzmVxsWxjBZRjr0FKM_3fvj6kR47NCV5Z.ttf","800":"http://fonts.gstatic.com/s/syne/v3/8vIS7w4qzmVxsWxjBZRjr0FKM_24vj6kR47NCV5Z.ttf","regular":"http://fonts.gstatic.com/s/syne/v3/8vIS7w4qzmVxsWxjBZRjr0FKM_04uT6kR47NCV5Z.ttf"},"Ramaraja":{"regular":"http://fonts.gstatic.com/s/ramaraja/v7/SlGTmQearpYAYG1CABIkqnB6aSQU.ttf"},"Fresca":{"regular":"http://fonts.gstatic.com/s/fresca/v11/6ae94K--SKgCzbM2Gr0W13DKPA.ttf"},"Moul":{"regular":"http://fonts.gstatic.com/s/moul/v14/nuF2D__FSo_3E-RYiJCy-00.ttf"},"Goldman":{"700":"http://fonts.gstatic.com/s/goldman/v5/pe0rMIWbN4JFplR2FI5XIteQB9Zra1U.ttf","regular":"http://fonts.gstatic.com/s/goldman/v5/pe0uMIWbN4JFplR2LDJ4Bt-7G98.ttf"},"Henny Penny":{"regular":"http://fonts.gstatic.com/s/hennypenny/v10/wXKvE3UZookzsxz_kjGSfMQqt3M7tMDT.ttf"},"Big Shoulders Stencil Display":{"100":"http://fonts.gstatic.com/s/bigshouldersstencildisplay/v5/6aeU4LS6U6pR_bp5b_t2ugOhHWFcxSGP9ttD96KCb8xPyvD00ncryljitbg.ttf","300":"http://fonts.gstatic.com/s/bigshouldersstencildisplay/v5/6aeX4LS6U6pR_bp5b_t2ugOhHWFcxSGP9ttD96KCb8xPyvA88FcB5FTrrKG-.ttf","500":"http://fonts.gstatic.com/s/bigshouldersstencildisplay/v5/6aeX4LS6U6pR_bp5b_t2ugOhHWFcxSGP9ttD96KCb8xPyvBk8VcB5FTrrKG-.ttf","600":"http://fonts.gstatic.com/s/bigshouldersstencildisplay/v5/6aeX4LS6U6pR_bp5b_t2ugOhHWFcxSGP9ttD96KCb8xPyvBI9lcB5FTrrKG-.ttf","700":"http://fonts.gstatic.com/s/bigshouldersstencildisplay/v5/6aeX4LS6U6pR_bp5b_t2ugOhHWFcxSGP9ttD96KCb8xPyvAs91cB5FTrrKG-.ttf","800":"http://fonts.gstatic.com/s/bigshouldersstencildisplay/v5/6aeX4LS6U6pR_bp5b_t2ugOhHWFcxSGP9ttD96KCb8xPyvAw9FcB5FTrrKG-.ttf","900":"http://fonts.gstatic.com/s/bigshouldersstencildisplay/v5/6aeX4LS6U6pR_bp5b_t2ugOhHWFcxSGP9ttD96KCb8xPyvAU9VcB5FTrrKG-.ttf","regular":"http://fonts.gstatic.com/s/bigshouldersstencildisplay/v5/6aeq4LS6U6pR_bp5b_t2ugOhHWFcxSGP9ttD96KCb8xPysiQ2HMJz0ji.ttf"},"Song Myung":{"regular":"http://fonts.gstatic.com/s/songmyung/v10/1cX2aUDWAJH5-EIC7DIhr1GqhcitzeM.ttf"},"Chela One":{"regular":"http://fonts.gstatic.com/s/chelaone/v11/6ae-4KC7Uqgdz_JZdPIy31vWNTMwoQ.ttf"},"Overlock SC":{"regular":"http://fonts.gstatic.com/s/overlocksc/v11/1cX3aUHKGZrstGAY8nwVzHGAq8Sk1PoH.ttf"},"Germania One":{"regular":"http://fonts.gstatic.com/s/germaniaone/v10/Fh4yPjrqIyv2ucM2qzBjeS3ezAJONau6ew.ttf"},"Pirata One":{"regular":"http://fonts.gstatic.com/s/pirataone/v15/I_urMpiDvgLdLh0fAtoftiiEr5_BdZ8.ttf"},"Libre Barcode 39 Text":{"regular":"http://fonts.gstatic.com/s/librebarcode39text/v16/sJoa3KhViNKANw_E3LwoDXvs5Un0HQ1vT-031RRL-9rYaw.ttf"},"Kite One":{"regular":"http://fonts.gstatic.com/s/kiteone/v10/70lQu7shLnA_E02vyq1b6HnGO4uA.ttf"},"Girassol":{"regular":"http://fonts.gstatic.com/s/girassol/v6/JTUUjIo_-DK48laaNC9Nz2pJzxbi.ttf"},"Baloo Paaji 2":{"500":"http://fonts.gstatic.com/s/baloopaaji2/v4/i7dRIFFzbz-QHZUdV9_UGWZuWKa5OwS-a3yGe9E.ttf","600":"http://fonts.gstatic.com/s/baloopaaji2/v4/i7dRIFFzbz-QHZUdV9_UGWZuWIq-OwS-a3yGe9E.ttf","700":"http://fonts.gstatic.com/s/baloopaaji2/v4/i7dRIFFzbz-QHZUdV9_UGWZuWO6_OwS-a3yGe9E.ttf","800":"http://fonts.gstatic.com/s/baloopaaji2/v4/i7dRIFFzbz-QHZUdV9_UGWZuWPK8OwS-a3yGe9E.ttf","regular":"http://fonts.gstatic.com/s/baloopaaji2/v4/i7dMIFFzbz-QHZUdV9_UGWZuYFKQHwyVd3U.ttf"},"Stoke":{"300":"http://fonts.gstatic.com/s/stoke/v12/z7NXdRb7aTMfKNvFVgxC_pjcTeWU.ttf","regular":"http://fonts.gstatic.com/s/stoke/v12/z7NadRb7aTMfKONpfihK1YTV.ttf"},"Dekko":{"regular":"http://fonts.gstatic.com/s/dekko/v9/46khlb_wWjfSrttFR0vsfl1B.ttf"},"Ribeye":{"regular":"http://fonts.gstatic.com/s/ribeye/v11/L0x8DFMxk1MP9R3RvPCmRSlUig.ttf"},"Julee":{"regular":"http://fonts.gstatic.com/s/julee/v12/TuGfUVB3RpZPQ6ZLodgzydtk.ttf"},"Koulen":{"regular":"http://fonts.gstatic.com/s/koulen/v16/AMOQz46as3KIBPeWgnA9kuYMUg.ttf"},"Spicy Rice":{"regular":"http://fonts.gstatic.com/s/spicyrice/v11/uK_24rSEd-Uqwk4jY1RyGv-2WkowRcc.ttf"},"Bellota":{"300":"http://fonts.gstatic.com/s/bellota/v4/MwQzbhXl3_qEpiwAID55kGMViblPtXs.ttf","700":"http://fonts.gstatic.com/s/bellota/v4/MwQzbhXl3_qEpiwAIC5-kGMViblPtXs.ttf","300italic":"http://fonts.gstatic.com/s/bellota/v4/MwQxbhXl3_qEpiwAKJBjHGEfjZtKpXulTQ.ttf","regular":"http://fonts.gstatic.com/s/bellota/v4/MwQ2bhXl3_qEpiwAGJJRtGs-lbA.ttf","italic":"http://fonts.gstatic.com/s/bellota/v4/MwQ0bhXl3_qEpiwAKJBbsEk7hbBWrA.ttf","700italic":"http://fonts.gstatic.com/s/bellota/v4/MwQxbhXl3_qEpiwAKJBjDGYfjZtKpXulTQ.ttf"},"Sonsie One":{"regular":"http://fonts.gstatic.com/s/sonsieone/v11/PbymFmP_EAnPqbKaoc18YVu80lbp8JM.ttf"},"Akaya Kanadaka":{"regular":"http://fonts.gstatic.com/s/akayakanadaka/v4/N0bM2S5CPO5oOQqvazoRRb-8-PfRS5VBBSSF.ttf"},"Macondo Swash Caps":{"regular":"http://fonts.gstatic.com/s/macondoswashcaps/v10/6NUL8EaAJgGKZA7lpt941Z9s6ZYgDq6Oekoa_mm5bA.ttf"},"Gotu":{"regular":"http://fonts.gstatic.com/s/gotu/v4/o-0FIpksx3QOlH0Lioh6-hU.ttf"},"IM Fell French Canon":{"regular":"http://fonts.gstatic.com/s/imfellfrenchcanon/v12/-F6ufiNtDWYfYc-tDiyiw08rrghJszkK6coVPt1ozoPz.ttf","italic":"http://fonts.gstatic.com/s/imfellfrenchcanon/v12/-F6gfiNtDWYfYc-tDiyiw08rrghJszkK6foXNNlKy5PzzrU.ttf"},"Sancreek":{"regular":"http://fonts.gstatic.com/s/sancreek/v13/pxiHypAnsdxUm159X7D-XV9NEe-K.ttf"},"Cute Font":{"regular":"http://fonts.gstatic.com/s/cutefont/v10/Noaw6Uny2oWPbSHMrY6vmJNVNC9hkw.ttf"},"Tulpen One":{"regular":"http://fonts.gstatic.com/s/tulpenone/v12/dFa6ZfeC474skLgesc0CWj0w_HyIRlE.ttf"},"Nova Flat":{"regular":"http://fonts.gstatic.com/s/novaflat/v14/QdVUSTc-JgqpytEbVebEuStkm20oJA.ttf"},"Baloo Bhai 2":{"500":"http://fonts.gstatic.com/s/baloobhai2/v4/sZlcdRSL-z1VEWZ4YNA7Y5IPhf3CgFZ8HNV3Nw.ttf","600":"http://fonts.gstatic.com/s/baloobhai2/v4/sZlcdRSL-z1VEWZ4YNA7Y5IPqfrCgFZ8HNV3Nw.ttf","700":"http://fonts.gstatic.com/s/baloobhai2/v4/sZlcdRSL-z1VEWZ4YNA7Y5IPzfvCgFZ8HNV3Nw.ttf","800":"http://fonts.gstatic.com/s/baloobhai2/v4/sZlcdRSL-z1VEWZ4YNA7Y5IP0fjCgFZ8HNV3Nw.ttf","regular":"http://fonts.gstatic.com/s/baloobhai2/v4/sZlDdRSL-z1VEWZ4YNA7Y5I3cdTmiH1gFQ.ttf"},"Simonetta":{"900":"http://fonts.gstatic.com/s/simonetta/v13/x3dnckHVYrCU5BU15c45-N0mtwTpDQIrGg.ttf","regular":"http://fonts.gstatic.com/s/simonetta/v13/x3dickHVYrCU5BU15c4BfPACvy_1BA.ttf","italic":"http://fonts.gstatic.com/s/simonetta/v13/x3dkckHVYrCU5BU15c4xfvoGnSrlBBsy.ttf","900italic":"http://fonts.gstatic.com/s/simonetta/v13/x3d5ckHVYrCU5BU15c4xfsKCsA7tLwc7Gn88.ttf"},"Port Lligat Sans":{"regular":"http://fonts.gstatic.com/s/portlligatsans/v11/kmKmZrYrGBbdN1aV7Vokow6Lw4s4l7N0Tx4xEcQ.ttf"},"Rationale":{"regular":"http://fonts.gstatic.com/s/rationale/v14/9XUnlJ92n0_JFxHIfHcsdlFMzLC2Zw.ttf"},"Kufam":{"500":"http://fonts.gstatic.com/s/kufam/v11/C8c-4cY7pG7w_oSJDszBXsKCcBH3pKk7qQCJHvIwYg.ttf","600":"http://fonts.gstatic.com/s/kufam/v11/C8c-4cY7pG7w_oSJDszBXsKCcBH3SK47qQCJHvIwYg.ttf","700":"http://fonts.gstatic.com/s/kufam/v11/C8c-4cY7pG7w_oSJDszBXsKCcBH3ca47qQCJHvIwYg.ttf","800":"http://fonts.gstatic.com/s/kufam/v11/C8c-4cY7pG7w_oSJDszBXsKCcBH3Fq47qQCJHvIwYg.ttf","900":"http://fonts.gstatic.com/s/kufam/v11/C8c-4cY7pG7w_oSJDszBXsKCcBH3P647qQCJHvIwYg.ttf","regular":"http://fonts.gstatic.com/s/kufam/v11/C8c-4cY7pG7w_oSJDszBXsKCcBH3lqk7qQCJHvIwYg.ttf","italic":"http://fonts.gstatic.com/s/kufam/v11/C8c84cY7pG7w_q6APDMZN6kY3hbiXurT6gqNPPcgYp0i.ttf","500italic":"http://fonts.gstatic.com/s/kufam/v11/C8c84cY7pG7w_q6APDMZN6kY3hbiXurh6gqNPPcgYp0i.ttf","600italic":"http://fonts.gstatic.com/s/kufam/v11/C8c84cY7pG7w_q6APDMZN6kY3hbiXuoN7QqNPPcgYp0i.ttf","700italic":"http://fonts.gstatic.com/s/kufam/v11/C8c84cY7pG7w_q6APDMZN6kY3hbiXuo07QqNPPcgYp0i.ttf","800italic":"http://fonts.gstatic.com/s/kufam/v11/C8c84cY7pG7w_q6APDMZN6kY3hbiXupT7QqNPPcgYp0i.ttf","900italic":"http://fonts.gstatic.com/s/kufam/v11/C8c84cY7pG7w_q6APDMZN6kY3hbiXup67QqNPPcgYp0i.ttf"},"Kumar One":{"regular":"http://fonts.gstatic.com/s/kumarone/v7/bMr1mS-P958wYi6YaGeGNO6WU3oT0g.ttf"},"Baloo Bhaina 2":{"500":"http://fonts.gstatic.com/s/baloobhaina2/v4/qWcwB6yyq4P9Adr3RtoX1q6ySiQPsREgkYYBX_3F.ttf","600":"http://fonts.gstatic.com/s/baloobhaina2/v4/qWcwB6yyq4P9Adr3RtoX1q6ySiQjthEgkYYBX_3F.ttf","700":"http://fonts.gstatic.com/s/baloobhaina2/v4/qWcwB6yyq4P9Adr3RtoX1q6ySiRHtxEgkYYBX_3F.ttf","800":"http://fonts.gstatic.com/s/baloobhaina2/v4/qWcwB6yyq4P9Adr3RtoX1q6ySiRbtBEgkYYBX_3F.ttf","regular":"http://fonts.gstatic.com/s/baloobhaina2/v4/qWczB6yyq4P9Adr3RtoX1q6yShz7mDUoupoI.ttf"},"Modak":{"regular":"http://fonts.gstatic.com/s/modak/v8/EJRYQgs1XtIEsnMH8BVZ76KU.ttf"},"Rosarivo":{"regular":"http://fonts.gstatic.com/s/rosarivo/v10/PlI-Fl2lO6N9f8HaNAeC2nhMnNy5.ttf","italic":"http://fonts.gstatic.com/s/rosarivo/v10/PlI4Fl2lO6N9f8HaNDeA0Hxumcy5ZX8.ttf"},"Mystery Quest":{"regular":"http://fonts.gstatic.com/s/mysteryquest/v10/-nF6OG414u0E6k0wynSGlujRHwElD_9Qz9E.ttf"},"Donegal One":{"regular":"http://fonts.gstatic.com/s/donegalone/v10/m8JWjfRYea-ZnFz6fsK9FZRFRG-K3Mud.ttf"},"Chango":{"regular":"http://fonts.gstatic.com/s/chango/v11/2V0cKI0OB5U7WaJyz324TFUaAw.ttf"},"Kotta One":{"regular":"http://fonts.gstatic.com/s/kottaone/v10/S6u_w41LXzPc_jlfNWqPHA3s5dwt7w.ttf"},"Quintessential":{"regular":"http://fonts.gstatic.com/s/quintessential/v10/fdNn9sOGq31Yjnh3qWU14DdtjY5wS7kmAyxM.ttf"},"Croissant One":{"regular":"http://fonts.gstatic.com/s/croissantone/v10/3y9n6bU9bTPg4m8NDy3Kq24UM3pqn5cdJ-4.ttf"},"IM Fell French Canon SC":{"regular":"http://fonts.gstatic.com/s/imfellfrenchcanonsc/v12/FBVmdCru5-ifcor2bgq9V89khWcmQghEURY7H3c0UBCVIVqH.ttf"},"Inria Serif":{"300":"http://fonts.gstatic.com/s/inriaserif/v4/fC14PYxPY3rXxEndZJAzN3wAVQjFhFyta3xN.ttf","700":"http://fonts.gstatic.com/s/inriaserif/v4/fC14PYxPY3rXxEndZJAzN3wQUgjFhFyta3xN.ttf","300italic":"http://fonts.gstatic.com/s/inriaserif/v4/fC16PYxPY3rXxEndZJAzN3SuT4THjliPbmxN0_E.ttf","regular":"http://fonts.gstatic.com/s/inriaserif/v4/fC1lPYxPY3rXxEndZJAzN0SsfSzNr0Ck.ttf","italic":"http://fonts.gstatic.com/s/inriaserif/v4/fC1nPYxPY3rXxEndZJAzN3SudyjvqlCkcmU.ttf","700italic":"http://fonts.gstatic.com/s/inriaserif/v4/fC16PYxPY3rXxEndZJAzN3SuT5TAjliPbmxN0_E.ttf"},"Kiwi Maru":{"300":"http://fonts.gstatic.com/s/kiwimaru/v4/R70djykGkuuDep-hRg6gNCi0Vxn9R5ShnA.ttf","500":"http://fonts.gstatic.com/s/kiwimaru/v4/R70djykGkuuDep-hRg6gbCm0Vxn9R5ShnA.ttf","regular":"http://fonts.gstatic.com/s/kiwimaru/v4/R70YjykGkuuDep-hRg6YmACQXzLhTg.ttf"},"Petrona":{"100":"http://fonts.gstatic.com/s/petrona/v16/mtGl4_NXL7bZo9XXq35wRLONYyOjFk6NsARBH452Mvds.ttf","200":"http://fonts.gstatic.com/s/petrona/v16/mtGl4_NXL7bZo9XXq35wRLONYyOjFk4NsQRBH452Mvds.ttf","300":"http://fonts.gstatic.com/s/petrona/v16/mtGl4_NXL7bZo9XXq35wRLONYyOjFk7TsQRBH452Mvds.ttf","500":"http://fonts.gstatic.com/s/petrona/v16/mtGl4_NXL7bZo9XXq35wRLONYyOjFk6_sQRBH452Mvds.ttf","600":"http://fonts.gstatic.com/s/petrona/v16/mtGl4_NXL7bZo9XXq35wRLONYyOjFk5TtgRBH452Mvds.ttf","700":"http://fonts.gstatic.com/s/petrona/v16/mtGl4_NXL7bZo9XXq35wRLONYyOjFk5qtgRBH452Mvds.ttf","800":"http://fonts.gstatic.com/s/petrona/v16/mtGl4_NXL7bZo9XXq35wRLONYyOjFk4NtgRBH452Mvds.ttf","900":"http://fonts.gstatic.com/s/petrona/v16/mtGl4_NXL7bZo9XXq35wRLONYyOjFk4ktgRBH452Mvds.ttf","regular":"http://fonts.gstatic.com/s/petrona/v16/mtGl4_NXL7bZo9XXq35wRLONYyOjFk6NsQRBH452Mvds.ttf","100italic":"http://fonts.gstatic.com/s/petrona/v16/mtGr4_NXL7bZo9XXgXdCu2vkCLkNEVtF8uwDFYpUN-dsIWs.ttf","200italic":"http://fonts.gstatic.com/s/petrona/v16/mtGr4_NXL7bZo9XXgXdCu2vkCLkNEVtF8mwCFYpUN-dsIWs.ttf","300italic":"http://fonts.gstatic.com/s/petrona/v16/mtGr4_NXL7bZo9XXgXdCu2vkCLkNEVtF8rICFYpUN-dsIWs.ttf","italic":"http://fonts.gstatic.com/s/petrona/v16/mtGr4_NXL7bZo9XXgXdCu2vkCLkNEVtF8uwCFYpUN-dsIWs.ttf","500italic":"http://fonts.gstatic.com/s/petrona/v16/mtGr4_NXL7bZo9XXgXdCu2vkCLkNEVtF8t4CFYpUN-dsIWs.ttf","600italic":"http://fonts.gstatic.com/s/petrona/v16/mtGr4_NXL7bZo9XXgXdCu2vkCLkNEVtF8jIFFYpUN-dsIWs.ttf","700italic":"http://fonts.gstatic.com/s/petrona/v16/mtGr4_NXL7bZo9XXgXdCu2vkCLkNEVtF8gsFFYpUN-dsIWs.ttf","800italic":"http://fonts.gstatic.com/s/petrona/v16/mtGr4_NXL7bZo9XXgXdCu2vkCLkNEVtF8mwFFYpUN-dsIWs.ttf","900italic":"http://fonts.gstatic.com/s/petrona/v16/mtGr4_NXL7bZo9XXgXdCu2vkCLkNEVtF8kUFFYpUN-dsIWs.ttf"},"Fahkwang":{"200":"http://fonts.gstatic.com/s/fahkwang/v6/Noa26Uj3zpmBOgbNpOJHmZlRFipxkwjx.ttf","300":"http://fonts.gstatic.com/s/fahkwang/v6/Noa26Uj3zpmBOgbNpOIjmplRFipxkwjx.ttf","500":"http://fonts.gstatic.com/s/fahkwang/v6/Noa26Uj3zpmBOgbNpOJ7m5lRFipxkwjx.ttf","600":"http://fonts.gstatic.com/s/fahkwang/v6/Noa26Uj3zpmBOgbNpOJXnJlRFipxkwjx.ttf","700":"http://fonts.gstatic.com/s/fahkwang/v6/Noa26Uj3zpmBOgbNpOIznZlRFipxkwjx.ttf","200italic":"http://fonts.gstatic.com/s/fahkwang/v6/Noa06Uj3zpmBOgbNpOqNgHFQHC5Tlhjxdw4.ttf","300italic":"http://fonts.gstatic.com/s/fahkwang/v6/Noa06Uj3zpmBOgbNpOqNgBVTHC5Tlhjxdw4.ttf","regular":"http://fonts.gstatic.com/s/fahkwang/v6/Noax6Uj3zpmBOgbNpNqPsr1ZPTZ4.ttf","italic":"http://fonts.gstatic.com/s/fahkwang/v6/Noa36Uj3zpmBOgbNpOqNuLl7OCZ4ihE.ttf","500italic":"http://fonts.gstatic.com/s/fahkwang/v6/Noa06Uj3zpmBOgbNpOqNgE1SHC5Tlhjxdw4.ttf","600italic":"http://fonts.gstatic.com/s/fahkwang/v6/Noa06Uj3zpmBOgbNpOqNgGFVHC5Tlhjxdw4.ttf","700italic":"http://fonts.gstatic.com/s/fahkwang/v6/Noa06Uj3zpmBOgbNpOqNgAVUHC5Tlhjxdw4.ttf"},"Libre Caslon Display":{"regular":"http://fonts.gstatic.com/s/librecaslondisplay/v4/TuGOUUFxWphYQ6YI6q9Xp61FQzxDRKmzr2lRdRhtCC4d.ttf"},"Chicle":{"regular":"http://fonts.gstatic.com/s/chicle/v11/lJwG-pw9i2dqU-BDyWKuobYSxw.ttf"},"Ruluko":{"regular":"http://fonts.gstatic.com/s/ruluko/v14/xMQVuFNZVaODtm0pC6WzKX_QmA.ttf"},"Uncial Antiqua":{"regular":"http://fonts.gstatic.com/s/uncialantiqua/v10/N0bM2S5WOex4OUbESzoESK-i-PfRS5VBBSSF.ttf"},"Stylish":{"regular":"http://fonts.gstatic.com/s/stylish/v10/m8JSjfhPYriQkk7-fo35dLxEdmo.ttf"},"Londrina Outline":{"regular":"http://fonts.gstatic.com/s/londrinaoutline/v13/C8c44dM8vmb14dfsZxhetg3pDH-SfuoxrSKMDvI.ttf"},"Margarine":{"regular":"http://fonts.gstatic.com/s/margarine/v11/qkBXXvoE6trLT9Y7YLye5JRLkAXbMQ.ttf"},"East Sea Dokdo":{"regular":"http://fonts.gstatic.com/s/eastseadokdo/v10/xfuo0Wn2V2_KanASqXSZp22m05_aGavYS18y.ttf"},"IM Fell Great Primer":{"regular":"http://fonts.gstatic.com/s/imfellgreatprimer/v12/bx6aNwSJtayYxOkbYFsT6hMsLzX7u85rJorXvDo3SQY1.ttf","italic":"http://fonts.gstatic.com/s/imfellgreatprimer/v12/bx6UNwSJtayYxOkbYFsT6hMsLzX7u85rJrrVtj4VTBY1N6U.ttf"},"Cormorant Unicase":{"300":"http://fonts.gstatic.com/s/cormorantunicase/v13/HI_ViZUaILtOqhqgDeXoF_n1_fTGX9N_tucv7Gy0DRzS.ttf","500":"http://fonts.gstatic.com/s/cormorantunicase/v13/HI_ViZUaILtOqhqgDeXoF_n1_fTGX9Mnt-cv7Gy0DRzS.ttf","600":"http://fonts.gstatic.com/s/cormorantunicase/v13/HI_ViZUaILtOqhqgDeXoF_n1_fTGX9MLsOcv7Gy0DRzS.ttf","700":"http://fonts.gstatic.com/s/cormorantunicase/v13/HI_ViZUaILtOqhqgDeXoF_n1_fTGX9Nvsecv7Gy0DRzS.ttf","regular":"http://fonts.gstatic.com/s/cormorantunicase/v13/HI_QiZUaILtOqhqgDeXoF_n1_fTGX-vTnsMnx3C9.ttf"},"Zilla Slab Highlight":{"700":"http://fonts.gstatic.com/s/zillaslabhighlight/v10/gNMUW2BrTpK8-inLtBJgMMfbm6uNVDvRxiP0TET4YmVF0Mb6.ttf","regular":"http://fonts.gstatic.com/s/zillaslabhighlight/v10/gNMbW2BrTpK8-inLtBJgMMfbm6uNVDvRxhtIY2DwSXlM.ttf"},"Ibarra Real Nova":{"500":"http://fonts.gstatic.com/s/ibarrarealnova/v8/sZlSdQiA-DBIDCcaWtQzL4BZHoiDundw4ATyjed3EXdS5MDtVT9TWIvS.ttf","600":"http://fonts.gstatic.com/s/ibarrarealnova/v8/sZlSdQiA-DBIDCcaWtQzL4BZHoiDundw4ATyjed3EXe-48DtVT9TWIvS.ttf","700":"http://fonts.gstatic.com/s/ibarrarealnova/v8/sZlSdQiA-DBIDCcaWtQzL4BZHoiDundw4ATyjed3EXeH48DtVT9TWIvS.ttf","regular":"http://fonts.gstatic.com/s/ibarrarealnova/v8/sZlSdQiA-DBIDCcaWtQzL4BZHoiDundw4ATyjed3EXdg5MDtVT9TWIvS.ttf","italic":"http://fonts.gstatic.com/s/ibarrarealnova/v8/sZlsdQiA-DBIDCcaWtQzL4BZHoiDkH5CH9yb5n3ZFmKopyiuXztxXZvSkTo.ttf","500italic":"http://fonts.gstatic.com/s/ibarrarealnova/v8/sZlsdQiA-DBIDCcaWtQzL4BZHoiDkH5CH9yb5n3ZFmKopxquXztxXZvSkTo.ttf","600italic":"http://fonts.gstatic.com/s/ibarrarealnova/v8/sZlsdQiA-DBIDCcaWtQzL4BZHoiDkH5CH9yb5n3ZFmKop_apXztxXZvSkTo.ttf","700italic":"http://fonts.gstatic.com/s/ibarrarealnova/v8/sZlsdQiA-DBIDCcaWtQzL4BZHoiDkH5CH9yb5n3ZFmKop8-pXztxXZvSkTo.ttf"},"Fenix":{"regular":"http://fonts.gstatic.com/s/fenix/v10/XoHo2YL_S7-g5ostKzAFvs8o.ttf"},"Bubbler One":{"regular":"http://fonts.gstatic.com/s/bubblerone/v11/f0Xy0eqj68ppQV9KBLmAouHH26MPePkt.ttf"},"Angkor":{"regular":"http://fonts.gstatic.com/s/angkor/v15/H4cmBXyAlsPdnlb-8iw-4Lqggw.ttf"},"IM Fell DW Pica SC":{"regular":"http://fonts.gstatic.com/s/imfelldwpicasc/v12/0ybjGCAu5PfqkvtGVU15aBhXz3EUrnTW-BiKEUiBGA.ttf"},"Libre Barcode 39 Extended Text":{"regular":"http://fonts.gstatic.com/s/librebarcode39extendedtext/v15/eLG1P_rwIgOiDA7yrs9LoKaYRVLQ1YldrrOnnL7xPO4jNP68fLIiPopNNA.ttf"},"Lakki Reddy":{"regular":"http://fonts.gstatic.com/s/lakkireddy/v9/S6u5w49MUSzD9jlCPmvLZQfox9k97-xZ.ttf"},"Dorsa":{"regular":"http://fonts.gstatic.com/s/dorsa/v13/yYLn0hjd0OGwqo493XCFxAnQ.ttf"},"Sumana":{"700":"http://fonts.gstatic.com/s/sumana/v5/4UaArE5TqRBjGj--TDfG54fN6ppsKg.ttf","regular":"http://fonts.gstatic.com/s/sumana/v5/4UaDrE5TqRBjGj-G8Bji76zR4w.ttf"},"Lexend Exa":{"regular":"http://fonts.gstatic.com/s/lexendexa/v14/UMBXrPdOoHOnxExyjdBeWirXArM58BY.ttf"},"Cagliostro":{"regular":"http://fonts.gstatic.com/s/cagliostro/v11/ZgNWjP5HM73BV5amnX-TjGXEM4COoE4.ttf"},"Junge":{"regular":"http://fonts.gstatic.com/s/junge/v10/gokgH670Gl1lUqAdvhB7SnKm.ttf"},"Asar":{"regular":"http://fonts.gstatic.com/s/asar/v10/sZlLdRyI6TBIXkYQDLlTW6E.ttf"},"Tomorrow":{"100":"http://fonts.gstatic.com/s/tomorrow/v5/WBLgrETNbFtZCeGqgR2xe2XiKMiokE4.ttf","200":"http://fonts.gstatic.com/s/tomorrow/v5/WBLhrETNbFtZCeGqgR0dWkXIBsShiVd4.ttf","300":"http://fonts.gstatic.com/s/tomorrow/v5/WBLhrETNbFtZCeGqgR15WUXIBsShiVd4.ttf","500":"http://fonts.gstatic.com/s/tomorrow/v5/WBLhrETNbFtZCeGqgR0hWEXIBsShiVd4.ttf","600":"http://fonts.gstatic.com/s/tomorrow/v5/WBLhrETNbFtZCeGqgR0NX0XIBsShiVd4.ttf","700":"http://fonts.gstatic.com/s/tomorrow/v5/WBLhrETNbFtZCeGqgR1pXkXIBsShiVd4.ttf","800":"http://fonts.gstatic.com/s/tomorrow/v5/WBLhrETNbFtZCeGqgR11XUXIBsShiVd4.ttf","900":"http://fonts.gstatic.com/s/tomorrow/v5/WBLhrETNbFtZCeGqgR1RXEXIBsShiVd4.ttf","100italic":"http://fonts.gstatic.com/s/tomorrow/v5/WBLirETNbFtZCeGqgRXXQwHoLOqtgE5h0A.ttf","200italic":"http://fonts.gstatic.com/s/tomorrow/v5/WBLjrETNbFtZCeGqgRXXQ63JDMCDjEd4yVY.ttf","300italic":"http://fonts.gstatic.com/s/tomorrow/v5/WBLjrETNbFtZCeGqgRXXQ8nKDMCDjEd4yVY.ttf","regular":"http://fonts.gstatic.com/s/tomorrow/v5/WBLmrETNbFtZCeGqgSXVcWHALdio.ttf","italic":"http://fonts.gstatic.com/s/tomorrow/v5/WBLgrETNbFtZCeGqgRXXe2XiKMiokE4.ttf","500italic":"http://fonts.gstatic.com/s/tomorrow/v5/WBLjrETNbFtZCeGqgRXXQ5HLDMCDjEd4yVY.ttf","600italic":"http://fonts.gstatic.com/s/tomorrow/v5/WBLjrETNbFtZCeGqgRXXQ73MDMCDjEd4yVY.ttf","700italic":"http://fonts.gstatic.com/s/tomorrow/v5/WBLjrETNbFtZCeGqgRXXQ9nNDMCDjEd4yVY.ttf","800italic":"http://fonts.gstatic.com/s/tomorrow/v5/WBLjrETNbFtZCeGqgRXXQ8XODMCDjEd4yVY.ttf","900italic":"http://fonts.gstatic.com/s/tomorrow/v5/WBLjrETNbFtZCeGqgRXXQ-HPDMCDjEd4yVY.ttf"},"Chilanka":{"regular":"http://fonts.gstatic.com/s/chilanka/v8/WWXRlj2DZQiMJYaYRrJQI9EAZhTO.ttf"},"Piazzolla":{"100":"http://fonts.gstatic.com/s/piazzolla/v11/N0b52SlTPu5rIkWIZjVKKtYtfxYqZ4RJBFzFfYUjkSDdlqZgy7LYx3Ly1AHfAAy5.ttf","200":"http://fonts.gstatic.com/s/piazzolla/v11/N0b52SlTPu5rIkWIZjVKKtYtfxYqZ4RJBFzFfYUjkSDdlqZgy7JYxnLy1AHfAAy5.ttf","300":"http://fonts.gstatic.com/s/piazzolla/v11/N0b52SlTPu5rIkWIZjVKKtYtfxYqZ4RJBFzFfYUjkSDdlqZgy7KGxnLy1AHfAAy5.ttf","500":"http://fonts.gstatic.com/s/piazzolla/v11/N0b52SlTPu5rIkWIZjVKKtYtfxYqZ4RJBFzFfYUjkSDdlqZgy7LqxnLy1AHfAAy5.ttf","600":"http://fonts.gstatic.com/s/piazzolla/v11/N0b52SlTPu5rIkWIZjVKKtYtfxYqZ4RJBFzFfYUjkSDdlqZgy7IGwXLy1AHfAAy5.ttf","700":"http://fonts.gstatic.com/s/piazzolla/v11/N0b52SlTPu5rIkWIZjVKKtYtfxYqZ4RJBFzFfYUjkSDdlqZgy7I_wXLy1AHfAAy5.ttf","800":"http://fonts.gstatic.com/s/piazzolla/v11/N0b52SlTPu5rIkWIZjVKKtYtfxYqZ4RJBFzFfYUjkSDdlqZgy7JYwXLy1AHfAAy5.ttf","900":"http://fonts.gstatic.com/s/piazzolla/v11/N0b52SlTPu5rIkWIZjVKKtYtfxYqZ4RJBFzFfYUjkSDdlqZgy7JxwXLy1AHfAAy5.ttf","regular":"http://fonts.gstatic.com/s/piazzolla/v11/N0b52SlTPu5rIkWIZjVKKtYtfxYqZ4RJBFzFfYUjkSDdlqZgy7LYxnLy1AHfAAy5.ttf","100italic":"http://fonts.gstatic.com/s/piazzolla/v11/N0b72SlTPu5rIkWIZjVgI-TckS03oGpPETyEJ88Rbvi0_TzOzKcQhZqw3gX9BRy5m5M.ttf","200italic":"http://fonts.gstatic.com/s/piazzolla/v11/N0b72SlTPu5rIkWIZjVgI-TckS03oGpPETyEJ88Rbvi0_TzOzKcQhRqx3gX9BRy5m5M.ttf","300italic":"http://fonts.gstatic.com/s/piazzolla/v11/N0b72SlTPu5rIkWIZjVgI-TckS03oGpPETyEJ88Rbvi0_TzOzKcQhcSx3gX9BRy5m5M.ttf","italic":"http://fonts.gstatic.com/s/piazzolla/v11/N0b72SlTPu5rIkWIZjVgI-TckS03oGpPETyEJ88Rbvi0_TzOzKcQhZqx3gX9BRy5m5M.ttf","500italic":"http://fonts.gstatic.com/s/piazzolla/v11/N0b72SlTPu5rIkWIZjVgI-TckS03oGpPETyEJ88Rbvi0_TzOzKcQhaix3gX9BRy5m5M.ttf","600italic":"http://fonts.gstatic.com/s/piazzolla/v11/N0b72SlTPu5rIkWIZjVgI-TckS03oGpPETyEJ88Rbvi0_TzOzKcQhUS23gX9BRy5m5M.ttf","700italic":"http://fonts.gstatic.com/s/piazzolla/v11/N0b72SlTPu5rIkWIZjVgI-TckS03oGpPETyEJ88Rbvi0_TzOzKcQhX223gX9BRy5m5M.ttf","800italic":"http://fonts.gstatic.com/s/piazzolla/v11/N0b72SlTPu5rIkWIZjVgI-TckS03oGpPETyEJ88Rbvi0_TzOzKcQhRq23gX9BRy5m5M.ttf","900italic":"http://fonts.gstatic.com/s/piazzolla/v11/N0b72SlTPu5rIkWIZjVgI-TckS03oGpPETyEJ88Rbvi0_TzOzKcQhTO23gX9BRy5m5M.ttf"},"Condiment":{"regular":"http://fonts.gstatic.com/s/condiment/v10/pONk1hggFNmwvXALyH6Sq4n4o1vyCQ.ttf"},"Rowdies":{"300":"http://fonts.gstatic.com/s/rowdies/v5/ptRMTieMYPNBAK219hth5O7yKQNute8.ttf","700":"http://fonts.gstatic.com/s/rowdies/v5/ptRMTieMYPNBAK219gtm5O7yKQNute8.ttf","regular":"http://fonts.gstatic.com/s/rowdies/v5/ptRJTieMYPNBAK21zrdJwObZNQo.ttf"},"Offside":{"regular":"http://fonts.gstatic.com/s/offside/v10/HI_KiYMWKa9QrAykQ5HiRp-dhpQ.ttf"},"Sulphur Point":{"300":"http://fonts.gstatic.com/s/sulphurpoint/v4/RLpkK5vv8KaycDcazWFPBj2afVU6n6kFUHPIFaU.ttf","700":"http://fonts.gstatic.com/s/sulphurpoint/v4/RLpkK5vv8KaycDcazWFPBj2afUU9n6kFUHPIFaU.ttf","regular":"http://fonts.gstatic.com/s/sulphurpoint/v4/RLp5K5vv8KaycDcazWFPBj2aRfkSu6EuTHo.ttf"},"Galdeano":{"regular":"http://fonts.gstatic.com/s/galdeano/v12/uU9MCBoQ4YOqOW1boDPx8PCOg0uX.ttf"},"Stint Ultra Expanded":{"regular":"http://fonts.gstatic.com/s/stintultraexpanded/v10/CSRg4yNNh-GbW3o3JkwoDcdvMKMf0oBAd0qoATQkWwam.ttf"},"Averia Gruesa Libre":{"regular":"http://fonts.gstatic.com/s/averiagruesalibre/v11/NGSov4nEGEktOaDRKsY-1dhh8eEtIx3ZUmmJw0SLRA8.ttf"},"Swanky and Moo Moo":{"regular":"http://fonts.gstatic.com/s/swankyandmoomoo/v12/flUlRrKz24IuWVI_WJYTYcqbEsMUZ3kUtbPkR64SYQ.ttf"},"Solway":{"300":"http://fonts.gstatic.com/s/solway/v5/AMOTz46Cs2uTAOCuLlgZms0QW3mqyg.ttf","500":"http://fonts.gstatic.com/s/solway/v5/AMOTz46Cs2uTAOCudlkZms0QW3mqyg.ttf","700":"http://fonts.gstatic.com/s/solway/v5/AMOTz46Cs2uTAOCuPl8Zms0QW3mqyg.ttf","800":"http://fonts.gstatic.com/s/solway/v5/AMOTz46Cs2uTAOCuIlwZms0QW3mqyg.ttf","regular":"http://fonts.gstatic.com/s/solway/v5/AMOQz46Cs2uTAOCWgnA9kuYMUg.ttf"},"Buda":{"300":"http://fonts.gstatic.com/s/buda/v13/GFDqWAN8mnyIJSSrG7UBr7pZKA0.ttf"},"Metal":{"regular":"http://fonts.gstatic.com/s/metal/v15/lW-wwjUJIXTo7i3nnoQAUdN2.ttf"},"Redressed":{"regular":"http://fonts.gstatic.com/s/redressed/v13/x3dickHUbrmJ7wMy9MsBfPACvy_1BA.ttf"},"Wellfleet":{"regular":"http://fonts.gstatic.com/s/wellfleet/v10/nuF7D_LfQJb3VYgX6eyT42aLDhO2HA.ttf"},"Shippori Mincho B1":{"500":"http://fonts.gstatic.com/s/shipporiminchob1/v10/~ChcKElNoaXBwb3JpIE1pbmNobyBCMRj0AyAAKgQIARgB.ttf","600":"http://fonts.gstatic.com/s/shipporiminchob1/v10/~ChcKElNoaXBwb3JpIE1pbmNobyBCMRjYBCAAKgQIARgB.ttf","700":"http://fonts.gstatic.com/s/shipporiminchob1/v10/~ChcKElNoaXBwb3JpIE1pbmNobyBCMRi8BSAAKgQIARgB.ttf","800":"http://fonts.gstatic.com/s/shipporiminchob1/v10/~ChcKElNoaXBwb3JpIE1pbmNobyBCMRigBiAAKgQIARgB.ttf","regular":"http://fonts.gstatic.com/s/shipporiminchob1/v10/~ChQKElNoaXBwb3JpIE1pbmNobyBCMSAAKgQIARgB.ttf"},"Farsan":{"regular":"http://fonts.gstatic.com/s/farsan/v8/VEMwRoJ0vY_zsyz62q-pxDX9rQ.ttf"},"Joti One":{"regular":"http://fonts.gstatic.com/s/jotione/v11/Z9XVDmdJQAmWm9TwaYTe4u2El6GC.ttf"},"Potta One":{"regular":"http://fonts.gstatic.com/s/pottaone/v6/FeVSS05Bp6cy7xI-YfxQ3Z5nm29Gww.ttf"},"Chathura":{"100":"http://fonts.gstatic.com/s/chathura/v13/_gP91R7-rzUuVjim42dEq0SbTvZyuDo.ttf","300":"http://fonts.gstatic.com/s/chathura/v13/_gP81R7-rzUuVjim42eMiWSxYPp7oSNy.ttf","700":"http://fonts.gstatic.com/s/chathura/v13/_gP81R7-rzUuVjim42ecjmSxYPp7oSNy.ttf","800":"http://fonts.gstatic.com/s/chathura/v13/_gP81R7-rzUuVjim42eAjWSxYPp7oSNy.ttf","regular":"http://fonts.gstatic.com/s/chathura/v13/_gP71R7-rzUuVjim418goUC5S-Zy.ttf"},"Kavivanar":{"regular":"http://fonts.gstatic.com/s/kavivanar/v8/o-0IIpQgyXYSwhxP7_Jb4j5Ba_2c7A.ttf"},"Libre Barcode 128":{"regular":"http://fonts.gstatic.com/s/librebarcode128/v16/cIfnMbdUsUoiW3O_hVviCwVjuLtXeJ_A_gMk0izH.ttf"},"Kdam Thmor":{"regular":"http://fonts.gstatic.com/s/kdamthmor/v11/MwQzbhjs3veF6QwJVf0JkGMViblPtXs.ttf"},"Hanalei Fill":{"regular":"http://fonts.gstatic.com/s/hanaleifill/v11/fC1mPYtObGbfyQznIaQzPQiMVwLBplm9aw.ttf"},"Barrio":{"regular":"http://fonts.gstatic.com/s/barrio/v7/wEO8EBXBk8hBIDiEdQYhWdsX1Q.ttf"},"Jolly Lodger":{"regular":"http://fonts.gstatic.com/s/jollylodger/v10/BXRsvFTAh_bGkA1uQ48dlB3VWerT3ZyuqA.ttf"},"Akronim":{"regular":"http://fonts.gstatic.com/s/akronim/v12/fdN-9sqWtWZZlHRp-gBxkFYN-a8.ttf"},"Hachi Maru Pop":{"regular":"http://fonts.gstatic.com/s/hachimarupop/v6/HI_TiYoRLqpLrEiMAuO9Ysfz7rW1EM_btd8u.ttf"},"Hanalei":{"regular":"http://fonts.gstatic.com/s/hanalei/v13/E21n_dD8iufIjBRHXzgmVydREus.ttf"},"Jomolhari":{"regular":"http://fonts.gstatic.com/s/jomolhari/v4/EvONzA1M1Iw_CBd2hsQCF1IZKq5INg.ttf"},"Bayon":{"regular":"http://fonts.gstatic.com/s/bayon/v16/9XUrlJNmn0LPFl-pOhYEd2NJ.ttf"},"Zen Dots":{"regular":"http://fonts.gstatic.com/s/zendots/v1/XRXX3ICfm00IGoesQeaETM_FcCIG.ttf"},"Eagle Lake":{"regular":"http://fonts.gstatic.com/s/eaglelake/v10/ptRMTiqbbuNJDOiKj9wG5O7yKQNute8.ttf"},"Sansita Swashed":{"300":"http://fonts.gstatic.com/s/sansitaswashed/v5/BXR8vFfZifTZgFlDDLgNkBydPKTt3pVCeYWqJnZSW-ppbToVehmEa4Q.ttf","500":"http://fonts.gstatic.com/s/sansitaswashed/v5/BXR8vFfZifTZgFlDDLgNkBydPKTt3pVCeYWqJnZSW4ZpbToVehmEa4Q.ttf","600":"http://fonts.gstatic.com/s/sansitaswashed/v5/BXR8vFfZifTZgFlDDLgNkBydPKTt3pVCeYWqJnZSW2pubToVehmEa4Q.ttf","700":"http://fonts.gstatic.com/s/sansitaswashed/v5/BXR8vFfZifTZgFlDDLgNkBydPKTt3pVCeYWqJnZSW1NubToVehmEa4Q.ttf","800":"http://fonts.gstatic.com/s/sansitaswashed/v5/BXR8vFfZifTZgFlDDLgNkBydPKTt3pVCeYWqJnZSWzRubToVehmEa4Q.ttf","900":"http://fonts.gstatic.com/s/sansitaswashed/v5/BXR8vFfZifTZgFlDDLgNkBydPKTt3pVCeYWqJnZSWx1ubToVehmEa4Q.ttf","regular":"http://fonts.gstatic.com/s/sansitaswashed/v5/BXR8vFfZifTZgFlDDLgNkBydPKTt3pVCeYWqJnZSW7RpbToVehmEa4Q.ttf"},"Meie Script":{"regular":"http://fonts.gstatic.com/s/meiescript/v14/_LOImzDK7erRjhunIspaMjxn5IXg0WDz.ttf"},"Elsie Swash Caps":{"900":"http://fonts.gstatic.com/s/elsieswashcaps/v11/845ENN8xGZyVX5MVo_upKf7KnjK0RW74DG2HToawrdU.ttf","regular":"http://fonts.gstatic.com/s/elsieswashcaps/v11/845DNN8xGZyVX5MVo_upKf7KnjK0ferVKGWsUo8.ttf"},"Piedra":{"regular":"http://fonts.gstatic.com/s/piedra/v11/ke8kOg8aN0Bn7hTunEyHN_M3gA.ttf"},"Modern Antiqua":{"regular":"http://fonts.gstatic.com/s/modernantiqua/v12/NGStv5TIAUg6Iq_RLNo_2dp1sI1Ea2u0c3Gi.ttf"},"Miniver":{"regular":"http://fonts.gstatic.com/s/miniver/v11/eLGcP-PxIg-5H0vC770Cy8r8fWA.ttf"},"Inika":{"700":"http://fonts.gstatic.com/s/inika/v11/rnCr-x5X3QP-pix7auM-mHnOSOuk.ttf","regular":"http://fonts.gstatic.com/s/inika/v11/rnCm-x5X3QP-phTHRcc2s2XH.ttf"},"Rum Raisin":{"regular":"http://fonts.gstatic.com/s/rumraisin/v10/nwpRtKu3Ih8D5avB4h2uJ3-IywA7eMM.ttf"},"Autour One":{"regular":"http://fonts.gstatic.com/s/autourone/v12/UqyVK80cP25l3fJgbdfbk5lWVscxdKE.ttf"},"Srisakdi":{"700":"http://fonts.gstatic.com/s/srisakdi/v6/yMJWMIlvdpDbkB0A-gIAUghxoNFxW0Hz.ttf","regular":"http://fonts.gstatic.com/s/srisakdi/v6/yMJRMIlvdpDbkB0A-jq8fSx5i814.ttf"},"Sree Krushnadevaraya":{"regular":"http://fonts.gstatic.com/s/sreekrushnadevaraya/v10/R70FjzQeifmPepmyQQjQ9kvwMkWYPfTA_EWb2FhQuXir.ttf"},"DotGothic16":{"regular":"http://fonts.gstatic.com/s/dotgothic16/v4/v6-QGYjBJFKgyw5nSoDAGE7L435YPFrT.ttf"},"Nosifer":{"regular":"http://fonts.gstatic.com/s/nosifer/v11/ZGjXol5JTp0g5bxZaC1RVDNdGDs.ttf"},"Viaoda Libre":{"regular":"http://fonts.gstatic.com/s/viaodalibre/v5/vEFW2_lWCgoR6OKuRz9kcRVJb2IY2tOHXg.ttf"},"Spirax":{"regular":"http://fonts.gstatic.com/s/spirax/v11/buE3poKgYNLy0F3cXktt-Csn-Q.ttf"},"Iceberg":{"regular":"http://fonts.gstatic.com/s/iceberg/v10/8QIJdijAiM7o-qnZuIgOq7jkAOw.ttf"},"Linden Hill":{"regular":"http://fonts.gstatic.com/s/lindenhill/v12/-F61fjxoKSg9Yc3hZgO8ygFI7CwC009k.ttf","italic":"http://fonts.gstatic.com/s/lindenhill/v12/-F63fjxoKSg9Yc3hZgO8yjFK5igg1l9kn-s.ttf"},"Marko One":{"regular":"http://fonts.gstatic.com/s/markoone/v12/9Btq3DFG0cnVM5lw1haaKpUfrHPzUw.ttf"},"Mrs Sheppards":{"regular":"http://fonts.gstatic.com/s/mrssheppards/v11/PN_2Rfm9snC0XUGoEZhb91ig3vjxynMix4Y.ttf"},"Train One":{"regular":"http://fonts.gstatic.com/s/trainone/v4/gyB-hwkiNtc6KnxUVjWHOqbZRY7JVQ.ttf"},"Maiden Orange":{"regular":"http://fonts.gstatic.com/s/maidenorange/v13/kJE1BuIX7AUmhi2V4m08kb1XjOZdCZS8FY8.ttf"},"Londrina Shadow":{"regular":"http://fonts.gstatic.com/s/londrinashadow/v12/oPWX_kB4kOQoWNJmjxLV5JuoCUlXRlaSxkrMCQ.ttf"},"Ruthie":{"regular":"http://fonts.gstatic.com/s/ruthie/v13/gokvH63sGkdqXuU9lD53Q2u_mQ.ttf"},"Beth Ellen":{"regular":"http://fonts.gstatic.com/s/bethellen/v5/WwkbxPW2BE-3rb_JNT-qEIAiVNo5xNY.ttf"},"Diplomata SC":{"regular":"http://fonts.gstatic.com/s/diplomatasc/v11/buExpoi3ecvs3kidKgBJo2kf-P5Oaiw4cw.ttf"},"Sirin Stencil":{"regular":"http://fonts.gstatic.com/s/sirinstencil/v11/mem4YaWwznmLx-lzGfN7MdRydchGBq6al6o.ttf"},"Kavoon":{"regular":"http://fonts.gstatic.com/s/kavoon/v11/pxiFyp4_scRYhlU4NLr6f1pdEQ.ttf"},"Sahitya":{"700":"http://fonts.gstatic.com/s/sahitya/v7/6qLFKZkOuhnuqlJAUZsqGyQvEnvSexI.ttf","regular":"http://fonts.gstatic.com/s/sahitya/v7/6qLAKZkOuhnuqlJAaScFPywEDnI.ttf"},"Kantumruy":{"300":"http://fonts.gstatic.com/s/kantumruy/v11/syk0-yJ0m7wyVb-f4FOPUtDlpn-UJ1H6Uw.ttf","700":"http://fonts.gstatic.com/s/kantumruy/v11/syk0-yJ0m7wyVb-f4FOPQtflpn-UJ1H6Uw.ttf","regular":"http://fonts.gstatic.com/s/kantumruy/v11/sykx-yJ0m7wyVb-f4FO3_vjBrlSILg.ttf"},"Griffy":{"regular":"http://fonts.gstatic.com/s/griffy/v11/FwZa7-ox2FQh9kfwSNSEwM2zpA.ttf"},"Monofett":{"regular":"http://fonts.gstatic.com/s/monofett/v12/mFTyWbofw6zc9NtnW43SuRwr0VJ7.ttf"},"Felipa":{"regular":"http://fonts.gstatic.com/s/felipa/v9/FwZa7-owz1Eu4F_wSNSEwM2zpA.ttf"},"Arbutus":{"regular":"http://fonts.gstatic.com/s/arbutus/v12/NaPYcZ7dG_5J3poob9JtryO8fMU.ttf"},"Siemreap":{"regular":"http://fonts.gstatic.com/s/siemreap/v15/Gg82N5oFbgLvHAfNl2YbnA8DLXpe.ttf"},"Content":{"700":"http://fonts.gstatic.com/s/content/v15/zrfg0HLayePhU_AwaRzdBirfWCHvkAI.ttf","regular":"http://fonts.gstatic.com/s/content/v15/zrfl0HLayePhU_AwUaDyIiL0RCg.ttf"},"Ewert":{"regular":"http://fonts.gstatic.com/s/ewert/v14/va9I4kzO2tFODYBvS-J3kbDP.ttf"},"Lexend Mega":{"regular":"http://fonts.gstatic.com/s/lexendmega/v14/qFdA35aBi5JtHD41zSTFEv7K6BsAikI7.ttf"},"Bahiana":{"regular":"http://fonts.gstatic.com/s/bahiana/v7/uU9PCBUV4YenPWJU7xPb3vyHmlI.ttf"},"Atomic Age":{"regular":"http://fonts.gstatic.com/s/atomicage/v15/f0Xz0eug6sdmRFkYZZGL58Ht9a8GYeA.ttf"},"Ribeye Marrow":{"regular":"http://fonts.gstatic.com/s/ribeyemarrow/v12/GFDsWApshnqMRO2JdtRZ2d0vEAwTVWgKdtw.ttf"},"Dr Sugiyama":{"regular":"http://fonts.gstatic.com/s/drsugiyama/v12/HTxoL2k4N3O9n5I1boGI7abRM4-t-g7y.ttf"},"Metal Mania":{"regular":"http://fonts.gstatic.com/s/metalmania/v12/RWmMoKWb4e8kqMfBUdPFJeXCg6UKDXlq.ttf"},"Asset":{"regular":"http://fonts.gstatic.com/s/asset/v12/SLXGc1na-mM4cWImRJqExst1.ttf"},"Syne Mono":{"regular":"http://fonts.gstatic.com/s/synemono/v5/K2FzfZNHj_FHBmRbFvHzIqCkDyvqZA.ttf"},"Devonshire":{"regular":"http://fonts.gstatic.com/s/devonshire/v11/46kqlbDwWirWr4gtBD2BX0Vq01lYAZM.ttf"},"Princess Sofia":{"regular":"http://fonts.gstatic.com/s/princesssofia/v11/qWczB6yguIb8DZ_GXZst16n7GRz7mDUoupoI.ttf"},"Caesar Dressing":{"regular":"http://fonts.gstatic.com/s/caesardressing/v11/yYLx0hLa3vawqtwdswbotmK4vrR3cbb6LZttyg.ttf"},"Stick":{"regular":"http://fonts.gstatic.com/s/stick/v4/Qw3TZQpMCyTtJSvfvPVDMPoF.ttf"},"Molle":{"italic":"http://fonts.gstatic.com/s/molle/v11/E21n_dL5hOXFhWEsXzgmVydREus.ttf"},"Rhodium Libre":{"regular":"http://fonts.gstatic.com/s/rhodiumlibre/v7/1q2AY5adA0tn_ukeHcQHqpx6pETLeo2gm2U.ttf"},"Orelega One":{"regular":"http://fonts.gstatic.com/s/orelegaone/v1/3qTpojOggD2XtAdFb-QXZGt61EcYaQ7F.ttf"},"Bigshot One":{"regular":"http://fonts.gstatic.com/s/bigshotone/v13/u-470qukhRkkO6BD_7cM_gxuUQJBXv_-.ttf"},"Trykker":{"regular":"http://fonts.gstatic.com/s/trykker/v11/KtktALyWZJXudUPzhNnoOd2j22U.ttf"},"Snippet":{"regular":"http://fonts.gstatic.com/s/snippet/v12/bWt47f7XfQH9Gupu2v_Afcp9QWc.ttf"},"Romanesco":{"regular":"http://fonts.gstatic.com/s/romanesco/v11/w8gYH2ozQOY7_r_J7mSn3HwLqOqSBg.ttf"},"MuseoModerno":{"100":"http://fonts.gstatic.com/s/museomoderno/v7/zrf30HnU0_7wWdMrFcWqSEXPVyEaWJ55pTleMlZFuewajeKlCdo.ttf","200":"http://fonts.gstatic.com/s/museomoderno/v7/zrf30HnU0_7wWdMrFcWqSEXPVyEaWJ55pTleMtZEuewajeKlCdo.ttf","300":"http://fonts.gstatic.com/s/museomoderno/v7/zrf30HnU0_7wWdMrFcWqSEXPVyEaWJ55pTleMghEuewajeKlCdo.ttf","500":"http://fonts.gstatic.com/s/museomoderno/v7/zrf30HnU0_7wWdMrFcWqSEXPVyEaWJ55pTleMmREuewajeKlCdo.ttf","600":"http://fonts.gstatic.com/s/museomoderno/v7/zrf30HnU0_7wWdMrFcWqSEXPVyEaWJ55pTleMohDuewajeKlCdo.ttf","700":"http://fonts.gstatic.com/s/museomoderno/v7/zrf30HnU0_7wWdMrFcWqSEXPVyEaWJ55pTleMrFDuewajeKlCdo.ttf","800":"http://fonts.gstatic.com/s/museomoderno/v7/zrf30HnU0_7wWdMrFcWqSEXPVyEaWJ55pTleMtZDuewajeKlCdo.ttf","900":"http://fonts.gstatic.com/s/museomoderno/v7/zrf30HnU0_7wWdMrFcWqSEXPVyEaWJ55pTleMv9DuewajeKlCdo.ttf","regular":"http://fonts.gstatic.com/s/museomoderno/v7/zrf30HnU0_7wWdMrFcWqSEXPVyEaWJ55pTleMlZEuewajeKlCdo.ttf"},"Diplomata":{"regular":"http://fonts.gstatic.com/s/diplomata/v14/Cn-0JtiMXwhNwp-wKxyfYGxYrdM9Sg.ttf"},"Kirang Haerang":{"regular":"http://fonts.gstatic.com/s/kiranghaerang/v10/E21-_dn_gvvIjhYON1lpIU4-bcqvWPaJq4no.ttf"},"Libre Barcode 128 Text":{"regular":"http://fonts.gstatic.com/s/librebarcode128text/v16/fdNv9tubt3ZEnz1Gu3I4-zppwZ9CWZ16Z0w5cV3Y6M90w4k.ttf"},"Lancelot":{"regular":"http://fonts.gstatic.com/s/lancelot/v12/J7acnppxBGtQEulG4JY4xJ9CGyAa.ttf"},"Bigelow Rules":{"regular":"http://fonts.gstatic.com/s/bigelowrules/v11/RrQWboly8iR_I3KWSzeRuN0zT4cCH8WAJVk.ttf"},"Flavors":{"regular":"http://fonts.gstatic.com/s/flavors/v12/FBV2dDrhxqmveJTpbkzlNqkG9UY.ttf"},"Nova Slim":{"regular":"http://fonts.gstatic.com/s/novaslim/v14/Z9XUDmZNQAuem8jyZcn-yMOInrib9Q.ttf"},"Poor Story":{"regular":"http://fonts.gstatic.com/s/poorstory/v10/jizfREFUsnUct9P6cDfd4OmnLD0Z4zM.ttf"},"Varta":{"300":"http://fonts.gstatic.com/s/varta/v5/Qw3AZQpJHj_6LzHUngWbrFkDH1x96j4EirE-9PGLfQ.ttf","500":"http://fonts.gstatic.com/s/varta/v5/Qw3AZQpJHj_6LzHUngWbrFkDH1x9hj4EirE-9PGLfQ.ttf","600":"http://fonts.gstatic.com/s/varta/v5/Qw3AZQpJHj_6LzHUngWbrFkDH1x9ajkEirE-9PGLfQ.ttf","700":"http://fonts.gstatic.com/s/varta/v5/Qw3AZQpJHj_6LzHUngWbrFkDH1x9UzkEirE-9PGLfQ.ttf","regular":"http://fonts.gstatic.com/s/varta/v5/Qw3AZQpJHj_6LzHUngWbrFkDH1x9tD4EirE-9PGLfQ.ttf"},"ZCOOL KuaiLe":{"regular":"http://fonts.gstatic.com/s/zcoolkuaile/v7/tssqApdaRQokwFjFJjvM6h2WpozzoXhC2g.ttf"},"Londrina Sketch":{"regular":"http://fonts.gstatic.com/s/londrinasketch/v11/c4m41npxGMTnomOHtRU68eIJn8qfWWn5Pos6CA.ttf"},"Risque":{"regular":"http://fonts.gstatic.com/s/risque/v10/VdGfAZUfHosahXxoCUYVBJ-T5g.ttf"},"Glass Antiqua":{"regular":"http://fonts.gstatic.com/s/glassantiqua/v10/xfu30Wr0Wn3NOQM2piC0uXOjnL_wN6fRUkY.ttf"},"IM Fell Great Primer SC":{"regular":"http://fonts.gstatic.com/s/imfellgreatprimersc/v12/ga6daxBOxyt6sCqz3fjZCTFCTUDMHagsQKdDTLf9BXz0s8FG.ttf"},"Peddana":{"regular":"http://fonts.gstatic.com/s/peddana/v10/aFTU7PBhaX89UcKWhh2aBYyMcKw.ttf"},"Smythe":{"regular":"http://fonts.gstatic.com/s/smythe/v13/MwQ3bhT01--coT1BOLh_uGInjA.ttf"},"Jacques Francois Shadow":{"regular":"http://fonts.gstatic.com/s/jacquesfrancoisshadow/v11/KR1FBtOz8PKTMk-kqdkLVrvR0ECFrB6Pin-2_q8VsHuV5ULS.ttf"},"Gupter":{"500":"http://fonts.gstatic.com/s/gupter/v4/2-cl9JNmxJqPO1Qslb-bUsT5rZhaZg.ttf","700":"http://fonts.gstatic.com/s/gupter/v4/2-cl9JNmxJqPO1Qs3bmbUsT5rZhaZg.ttf","regular":"http://fonts.gstatic.com/s/gupter/v4/2-cm9JNmxJqPO1QUYZa_Wu_lpA.ttf"},"Barriecito":{"regular":"http://fonts.gstatic.com/s/barriecito/v5/WWXXlj-CbBOSLY2QTuY_KdUiYwTO0MU.ttf"},"MedievalSharp":{"regular":"http://fonts.gstatic.com/s/medievalsharp/v14/EvOJzAlL3oU5AQl2mP5KdgptAq96MwvXLDk.ttf"},"Irish Grover":{"regular":"http://fonts.gstatic.com/s/irishgrover/v12/buExpoi6YtLz2QW7LA4flVgf-P5Oaiw4cw.ttf"},"Jim Nightshade":{"regular":"http://fonts.gstatic.com/s/jimnightshade/v10/PlIkFlu9Pb08Q8HLM1PxmB0g-OS4V3qKaMxD.ttf"},"Almendra SC":{"regular":"http://fonts.gstatic.com/s/almendrasc/v13/Iure6Yx284eebowr7hbyTZZJprVA4XQ0.ttf"},"Odor Mean Chey":{"regular":"http://fonts.gstatic.com/s/odormeanchey/v14/raxkHiKDttkTe1aOGcJMR1A_4mrY2zqUKafv.ttf"},"Ravi Prakash":{"regular":"http://fonts.gstatic.com/s/raviprakash/v9/gokpH6fsDkVrF9Bv9X8SOAKHmNZEq6TTFw.ttf"},"Bokor":{"regular":"http://fonts.gstatic.com/s/bokor/v15/m8JcjfpeeaqTiR2WdInbcaxE.ttf"},"Fascinate Inline":{"regular":"http://fonts.gstatic.com/s/fascinateinline/v12/jVyR7mzzB3zc-jp6QCAu60poNqIy1g3CfRXxWZQ.ttf"},"Revalia":{"regular":"http://fonts.gstatic.com/s/revalia/v13/WwkexPimBE2-4ZPEeVruNIgJSNM.ttf"},"GFS Neohellenic":{"700":"http://fonts.gstatic.com/s/gfsneohellenic/v15/8QIUdiDOrfiq0b7R8O1Iw9WLcY5rkYdr644fWsRO9w.ttf","regular":"http://fonts.gstatic.com/s/gfsneohellenic/v15/8QIRdiDOrfiq0b7R8O1Iw9WLcY5TLahP46UDUw.ttf","italic":"http://fonts.gstatic.com/s/gfsneohellenic/v15/8QITdiDOrfiq0b7R8O1Iw9WLcY5jL6JLwaATU91X.ttf","700italic":"http://fonts.gstatic.com/s/gfsneohellenic/v15/8QIWdiDOrfiq0b7R8O1Iw9WLcY5jL5r37oQbeMFe985V.ttf"},"Long Cang":{"regular":"http://fonts.gstatic.com/s/longcang/v7/LYjAdGP8kkgoTec8zkRgrXArXN7HWQ.ttf"},"Sedgwick Ave Display":{"regular":"http://fonts.gstatic.com/s/sedgwickavedisplay/v12/xfuu0XPgU3jZPUoUo3ScvmPi-NapQ8OxM2czd-YnOzUD.ttf"},"Snowburst One":{"regular":"http://fonts.gstatic.com/s/snowburstone/v10/MQpS-WezKdujBsXY3B7I-UT7eZ-UPyacPbo.ttf"},"Kumar One Outline":{"regular":"http://fonts.gstatic.com/s/kumaroneoutline/v8/Noao6VH62pyLP0fsrZ-v18wlUEcX9zDwRQu8EGKF.ttf"},"Gayathri":{"100":"http://fonts.gstatic.com/s/gayathri/v6/MCoWzAb429DbBilWLLhc-pvSA_gA2W8.ttf","700":"http://fonts.gstatic.com/s/gayathri/v6/MCoXzAb429DbBilWLLiE37v4LfQJwHbn.ttf","regular":"http://fonts.gstatic.com/s/gayathri/v6/MCoQzAb429DbBilWLIA48J_wBugA.ttf"},"Freehand":{"regular":"http://fonts.gstatic.com/s/freehand/v14/cIf-Ma5eqk01VjKTgAmBTmUOmZJk.ttf"},"Keania One":{"regular":"http://fonts.gstatic.com/s/keaniaone/v10/zOL54pXJk65E8pXardnuycRuv-hHkOs.ttf"},"Taprom":{"regular":"http://fonts.gstatic.com/s/taprom/v14/UcCn3F82JHycULbFQyk3-0kvHg.ttf"},"Stalinist One":{"regular":"http://fonts.gstatic.com/s/stalinistone/v32/MQpS-WezM9W4Dd7D3B7I-UT7eZ-UPyacPbo.ttf"},"Underdog":{"regular":"http://fonts.gstatic.com/s/underdog/v15/CHygV-jCElj7diMroVSiU14GN2Il.ttf"},"Grenze":{"100":"http://fonts.gstatic.com/s/grenze/v4/O4ZRFGb7hR12BxqPm2IjuAkalnmd.ttf","200":"http://fonts.gstatic.com/s/grenze/v4/O4ZQFGb7hR12BxqPN0MDkicWn2CEyw.ttf","300":"http://fonts.gstatic.com/s/grenze/v4/O4ZQFGb7hR12BxqPU0ADkicWn2CEyw.ttf","500":"http://fonts.gstatic.com/s/grenze/v4/O4ZQFGb7hR12BxqPC0EDkicWn2CEyw.ttf","600":"http://fonts.gstatic.com/s/grenze/v4/O4ZQFGb7hR12BxqPJ0YDkicWn2CEyw.ttf","700":"http://fonts.gstatic.com/s/grenze/v4/O4ZQFGb7hR12BxqPQ0cDkicWn2CEyw.ttf","800":"http://fonts.gstatic.com/s/grenze/v4/O4ZQFGb7hR12BxqPX0QDkicWn2CEyw.ttf","900":"http://fonts.gstatic.com/s/grenze/v4/O4ZQFGb7hR12BxqPe0UDkicWn2CEyw.ttf","100italic":"http://fonts.gstatic.com/s/grenze/v4/O4ZXFGb7hR12BxqH_VpHsg04k2md0kI.ttf","200italic":"http://fonts.gstatic.com/s/grenze/v4/O4ZWFGb7hR12BxqH_Vrrky0SvWWUy1uW.ttf","300italic":"http://fonts.gstatic.com/s/grenze/v4/O4ZWFGb7hR12BxqH_VqPkC0SvWWUy1uW.ttf","regular":"http://fonts.gstatic.com/s/grenze/v4/O4ZTFGb7hR12Bxq3_2gnmgwKlg.ttf","italic":"http://fonts.gstatic.com/s/grenze/v4/O4ZRFGb7hR12BxqH_WIjuAkalnmd.ttf","500italic":"http://fonts.gstatic.com/s/grenze/v4/O4ZWFGb7hR12BxqH_VrXkS0SvWWUy1uW.ttf","600italic":"http://fonts.gstatic.com/s/grenze/v4/O4ZWFGb7hR12BxqH_Vr7li0SvWWUy1uW.ttf","700italic":"http://fonts.gstatic.com/s/grenze/v4/O4ZWFGb7hR12BxqH_Vqfly0SvWWUy1uW.ttf","800italic":"http://fonts.gstatic.com/s/grenze/v4/O4ZWFGb7hR12BxqH_VqDlC0SvWWUy1uW.ttf","900italic":"http://fonts.gstatic.com/s/grenze/v4/O4ZWFGb7hR12BxqH_VqnlS0SvWWUy1uW.ttf"},"Mr Bedfort":{"regular":"http://fonts.gstatic.com/s/mrbedfort/v11/MQpR-WCtNZSWAdTMwBicliq0XZe_Iy8.ttf"},"Seymour One":{"regular":"http://fonts.gstatic.com/s/seymourone/v10/4iCp6Khla9xbjQpoWGGd0myIPYBvgpUI.ttf"},"Galindo":{"regular":"http://fonts.gstatic.com/s/galindo/v10/HI_KiYMeLqVKqwyuQ5HiRp-dhpQ.ttf"},"Oldenburg":{"regular":"http://fonts.gstatic.com/s/oldenburg/v10/fC1jPY5JYWzbywv7c4V6UU6oXyndrw.ttf"},"Emblema One":{"regular":"http://fonts.gstatic.com/s/emblemaone/v11/nKKT-GQ0F5dSY8vzG0rOEIRBHl57G_f_.ttf"},"Miss Fajardose":{"regular":"http://fonts.gstatic.com/s/missfajardose/v12/E21-_dn5gvrawDdPFVl-N0Ajb8qvWPaJq4no.ttf"},"Plaster":{"regular":"http://fonts.gstatic.com/s/plaster/v14/DdTm79QatW80eRh4Ei5JOtLOeLI.ttf"},"Libre Barcode 39 Extended":{"regular":"http://fonts.gstatic.com/s/librebarcode39extended/v15/8At7Gt6_O5yNS0-K4Nf5U922qSzhJ3dUdfJpwNUgfNRCOZ1GOBw.ttf"},"Almendra Display":{"regular":"http://fonts.gstatic.com/s/almendradisplay/v13/0FlPVOGWl1Sb4O3tETtADHRRlZhzXS_eTyer338.ttf"},"Texturina":{"100":"http://fonts.gstatic.com/s/texturina/v9/c4mM1nxpEtL3pXiAulRTkY-HGmNEX1b9NspjMwhAgliHhVrXy2eYG_Ug25riW1OD.ttf","200":"http://fonts.gstatic.com/s/texturina/v9/c4mM1nxpEtL3pXiAulRTkY-HGmNEX1b9NspjMwhAgliHhVrXy2cYGvUg25riW1OD.ttf","300":"http://fonts.gstatic.com/s/texturina/v9/c4mM1nxpEtL3pXiAulRTkY-HGmNEX1b9NspjMwhAgliHhVrXy2fGGvUg25riW1OD.ttf","500":"http://fonts.gstatic.com/s/texturina/v9/c4mM1nxpEtL3pXiAulRTkY-HGmNEX1b9NspjMwhAgliHhVrXy2eqGvUg25riW1OD.ttf","600":"http://fonts.gstatic.com/s/texturina/v9/c4mM1nxpEtL3pXiAulRTkY-HGmNEX1b9NspjMwhAgliHhVrXy2dGHfUg25riW1OD.ttf","700":"http://fonts.gstatic.com/s/texturina/v9/c4mM1nxpEtL3pXiAulRTkY-HGmNEX1b9NspjMwhAgliHhVrXy2d_HfUg25riW1OD.ttf","800":"http://fonts.gstatic.com/s/texturina/v9/c4mM1nxpEtL3pXiAulRTkY-HGmNEX1b9NspjMwhAgliHhVrXy2cYHfUg25riW1OD.ttf","900":"http://fonts.gstatic.com/s/texturina/v9/c4mM1nxpEtL3pXiAulRTkY-HGmNEX1b9NspjMwhAgliHhVrXy2cxHfUg25riW1OD.ttf","regular":"http://fonts.gstatic.com/s/texturina/v9/c4mM1nxpEtL3pXiAulRTkY-HGmNEX1b9NspjMwhAgliHhVrXy2eYGvUg25riW1OD.ttf","100italic":"http://fonts.gstatic.com/s/texturina/v9/c4mO1nxpEtL3pXiAulR5mL129FhZmLj7I4oiSUJyfYDu7sB5zHJQWR1i0Z7AXkODN94.ttf","200italic":"http://fonts.gstatic.com/s/texturina/v9/c4mO1nxpEtL3pXiAulR5mL129FhZmLj7I4oiSUJyfYDu7sB5zHJQWZ1j0Z7AXkODN94.ttf","300italic":"http://fonts.gstatic.com/s/texturina/v9/c4mO1nxpEtL3pXiAulR5mL129FhZmLj7I4oiSUJyfYDu7sB5zHJQWUNj0Z7AXkODN94.ttf","italic":"http://fonts.gstatic.com/s/texturina/v9/c4mO1nxpEtL3pXiAulR5mL129FhZmLj7I4oiSUJyfYDu7sB5zHJQWR1j0Z7AXkODN94.ttf","500italic":"http://fonts.gstatic.com/s/texturina/v9/c4mO1nxpEtL3pXiAulR5mL129FhZmLj7I4oiSUJyfYDu7sB5zHJQWS9j0Z7AXkODN94.ttf","600italic":"http://fonts.gstatic.com/s/texturina/v9/c4mO1nxpEtL3pXiAulR5mL129FhZmLj7I4oiSUJyfYDu7sB5zHJQWcNk0Z7AXkODN94.ttf","700italic":"http://fonts.gstatic.com/s/texturina/v9/c4mO1nxpEtL3pXiAulR5mL129FhZmLj7I4oiSUJyfYDu7sB5zHJQWfpk0Z7AXkODN94.ttf","800italic":"http://fonts.gstatic.com/s/texturina/v9/c4mO1nxpEtL3pXiAulR5mL129FhZmLj7I4oiSUJyfYDu7sB5zHJQWZ1k0Z7AXkODN94.ttf","900italic":"http://fonts.gstatic.com/s/texturina/v9/c4mO1nxpEtL3pXiAulR5mL129FhZmLj7I4oiSUJyfYDu7sB5zHJQWbRk0Z7AXkODN94.ttf"},"Unlock":{"regular":"http://fonts.gstatic.com/s/unlock/v12/7Au-p_8ykD-cDl7GKAjSwkUVOQ.ttf"},"Macondo":{"regular":"http://fonts.gstatic.com/s/macondo/v11/RrQQboN9-iB1IXmOS2XO0LBBd4Y.ttf"},"Jacques Francois":{"regular":"http://fonts.gstatic.com/s/jacquesfrancois/v10/ZXu9e04ZvKeOOHIe1TMahbcIU2cgmcPqoeRWfbs.ttf"},"Andika New Basic":{"700":"http://fonts.gstatic.com/s/andikanewbasic/v5/taiWGn9tCp-44eleq5Q-mszJivxScBO7NGqoGzdME84.ttf","regular":"http://fonts.gstatic.com/s/andikanewbasic/v5/taiRGn9tCp-44eleq5Q-mszJivxSSK-UEGKDBz4.ttf","italic":"http://fonts.gstatic.com/s/andikanewbasic/v5/taiXGn9tCp-44eleq5Q-mszJivxSeK2eFECGFz5VCg.ttf","700italic":"http://fonts.gstatic.com/s/andikanewbasic/v5/taiUGn9tCp-44eleq5Q-mszJivxSeK2mqG-iHxVJA85Okw.ttf"},"Liu Jian Mao Cao":{"regular":"http://fonts.gstatic.com/s/liujianmaocao/v7/845DNN84HJrccNonurqXILGpvCOoferVKGWsUo8.ttf"},"Dangrek":{"regular":"http://fonts.gstatic.com/s/dangrek/v14/LYjCdG30nEgoH8E2gCNqqVIuTN4.ttf"},"Brygada 1918":{"500":"http://fonts.gstatic.com/s/brygada1918/v8/pe08MI6eKpdGqlF5LANrM--ACNaeo8mTUIR_y12f-V8Wu5O3gbo.ttf","600":"http://fonts.gstatic.com/s/brygada1918/v8/pe08MI6eKpdGqlF5LANrM--ACNaeo8mTUIR_y7GY-V8Wu5O3gbo.ttf","700":"http://fonts.gstatic.com/s/brygada1918/v8/pe08MI6eKpdGqlF5LANrM--ACNaeo8mTUIR_y4iY-V8Wu5O3gbo.ttf","regular":"http://fonts.gstatic.com/s/brygada1918/v8/pe08MI6eKpdGqlF5LANrM--ACNaeo8mTUIR_y2-f-V8Wu5O3gbo.ttf","italic":"http://fonts.gstatic.com/s/brygada1918/v8/pe06MI6eKpdGqlF5LANrM--qAeRhe6D4yip43qfcERwcv7GykboaLg.ttf","500italic":"http://fonts.gstatic.com/s/brygada1918/v8/pe06MI6eKpdGqlF5LANrM--qAeRhe6D4yip43qfcIxwcv7GykboaLg.ttf","600italic":"http://fonts.gstatic.com/s/brygada1918/v8/pe06MI6eKpdGqlF5LANrM--qAeRhe6D4yip43qfczxscv7GykboaLg.ttf","700italic":"http://fonts.gstatic.com/s/brygada1918/v8/pe06MI6eKpdGqlF5LANrM--qAeRhe6D4yip43qfc9hscv7GykboaLg.ttf"},"Suwannaphum":{"regular":"http://fonts.gstatic.com/s/suwannaphum/v16/jAnCgHV7GtDvc8jbe8hXXIWl_8C0Wg2V.ttf"},"Smokum":{"regular":"http://fonts.gstatic.com/s/smokum/v13/TK3iWkUbAhopmrdGHjUHte5fKg.ttf"},"Big Shoulders Stencil Text":{"100":"http://fonts.gstatic.com/s/bigshouldersstenciltext/v5/5aUi9-i2oxDMNwY3dHfW7UAt3Q453SM15wNj53bCcYSZYGLxtPhi2eA.ttf","300":"http://fonts.gstatic.com/s/bigshouldersstenciltext/v5/5aUj9-i2oxDMNwY3dHfW7UAt3Q453SM15wNj53bCcYRRQkLbmvRrwPmQ.ttf","500":"http://fonts.gstatic.com/s/bigshouldersstenciltext/v5/5aUj9-i2oxDMNwY3dHfW7UAt3Q453SM15wNj53bCcYQJQ0LbmvRrwPmQ.ttf","600":"http://fonts.gstatic.com/s/bigshouldersstenciltext/v5/5aUj9-i2oxDMNwY3dHfW7UAt3Q453SM15wNj53bCcYQlRELbmvRrwPmQ.ttf","700":"http://fonts.gstatic.com/s/bigshouldersstenciltext/v5/5aUj9-i2oxDMNwY3dHfW7UAt3Q453SM15wNj53bCcYRBRULbmvRrwPmQ.ttf","800":"http://fonts.gstatic.com/s/bigshouldersstenciltext/v5/5aUj9-i2oxDMNwY3dHfW7UAt3Q453SM15wNj53bCcYRdRkLbmvRrwPmQ.ttf","900":"http://fonts.gstatic.com/s/bigshouldersstenciltext/v5/5aUj9-i2oxDMNwY3dHfW7UAt3Q453SM15wNj53bCcYR5R0LbmvRrwPmQ.ttf","regular":"http://fonts.gstatic.com/s/bigshouldersstenciltext/v5/5aUg9-i2oxDMNwY3dHfW7UAt3Q453SM15wNj53bCcbz9ambTsehi.ttf"},"IM Fell Double Pica SC":{"regular":"http://fonts.gstatic.com/s/imfelldoublepicasc/v12/neIazDmuiMkFo6zj_sHpQ8teNbWlwBB_hXjJ4Y0Eeru2dGg.ttf"},"Lexend Giga":{"regular":"http://fonts.gstatic.com/s/lexendgiga/v14/PlI5Fl67Mah5Y8yMHE7lkVxEt8CwfGaD.ttf"},"Butterfly Kids":{"regular":"http://fonts.gstatic.com/s/butterflykids/v11/ll8lK2CWTjuqAsXDqlnIbMNs5S4arxFrAX1D.ttf"},"Trochut":{"700":"http://fonts.gstatic.com/s/trochut/v10/CHymV-fDDlP9bDIw3sinWVokMnIllmA.ttf","regular":"http://fonts.gstatic.com/s/trochut/v10/CHyjV-fDDlP9bDIw5nSIfVIPLns.ttf","italic":"http://fonts.gstatic.com/s/trochut/v10/CHyhV-fDDlP9bDIw1naCeXAKPns8jw.ttf"},"Purple Purse":{"regular":"http://fonts.gstatic.com/s/purplepurse/v11/qWctB66gv53iAp-Vfs4My6qyeBb_ujA4ug.ttf"},"Nova Oval":{"regular":"http://fonts.gstatic.com/s/novaoval/v14/jAnEgHdmANHvPenMaswCMY-h3cWkWg.ttf"},"Fasthand":{"regular":"http://fonts.gstatic.com/s/fasthand/v13/0yb9GDohyKTYn_ZEESkuYkw2rQg1.ttf"},"Inria Sans":{"300":"http://fonts.gstatic.com/s/inriasans/v4/ptRPTiqXYfZMCOiVj9kQ3ELaDQtFqeY3fX4.ttf","700":"http://fonts.gstatic.com/s/inriasans/v4/ptRPTiqXYfZMCOiVj9kQ3FLdDQtFqeY3fX4.ttf","300italic":"http://fonts.gstatic.com/s/inriasans/v4/ptRRTiqXYfZMCOiVj9kQ1OzAgQlPrcQybX4pQA.ttf","regular":"http://fonts.gstatic.com/s/inriasans/v4/ptRMTiqXYfZMCOiVj9kQ5O7yKQNute8.ttf","italic":"http://fonts.gstatic.com/s/inriasans/v4/ptROTiqXYfZMCOiVj9kQ1Oz4LSFrpe8uZA.ttf","700italic":"http://fonts.gstatic.com/s/inriasans/v4/ptRRTiqXYfZMCOiVj9kQ1OzAkQ5PrcQybX4pQA.ttf"},"Chenla":{"regular":"http://fonts.gstatic.com/s/chenla/v15/SZc43FDpIKu8WZ9eXxfonUPL6Q.ttf"},"Bungee Outline":{"regular":"http://fonts.gstatic.com/s/bungeeoutline/v8/_6_mEDvmVP24UvU2MyiGDslL3Qg3YhJqPXxo.ttf"},"Erica One":{"regular":"http://fonts.gstatic.com/s/ericaone/v13/WBLnrEXccV9VGrOKmGD1W0_MJMGxiQ.ttf"},"Preahvihear":{"regular":"http://fonts.gstatic.com/s/preahvihear/v14/6NUS8F-dNQeEYhzj7uluxswE49FJf8Wv.ttf"},"New Tegomin":{"regular":"http://fonts.gstatic.com/s/newtegomin/v5/SLXMc1fV7Gd9USdBAfPlqfN0Q3ptkDMN.ttf"},"Sunshiney":{"regular":"http://fonts.gstatic.com/s/sunshiney/v13/LDIwapGTLBwsS-wT4vcgE8moUePWkg.ttf"},"Combo":{"regular":"http://fonts.gstatic.com/s/combo/v11/BXRlvF3Jh_fIhg0iBu9y8Hf0.ttf"},"Akaya Telivigala":{"regular":"http://fonts.gstatic.com/s/akayatelivigala/v13/lJwc-oo_iG9wXqU3rCTD395tp0uifdLdsIH0YH8.ttf"},"Zhi Mang Xing":{"regular":"http://fonts.gstatic.com/s/zhimangxing/v7/f0Xw0ey79sErYFtWQ9a2rq-g0actfektIJ0.ttf"},"Nova Script":{"regular":"http://fonts.gstatic.com/s/novascript/v15/7Au7p_IpkSWSTWaFWkumvmQNEl0O0kEx.ttf"},"Supermercado One":{"regular":"http://fonts.gstatic.com/s/supermercadoone/v12/OpNXnpQWg8jc_xps_Gi14kVVEXOn60b3MClBRTs.ttf"},"Astloch":{"700":"http://fonts.gstatic.com/s/astloch/v14/TuGUUVJ8QI5GSeUjk2A-6MNPA10xLMQ.ttf","regular":"http://fonts.gstatic.com/s/astloch/v14/TuGRUVJ8QI5GSeUjq9wRzMtkH1Q.ttf"},"Bahianita":{"regular":"http://fonts.gstatic.com/s/bahianita/v5/yYLr0hTb3vuqqsBUgxWtxTvV2NJPcA.ttf"},"Fascinate":{"regular":"http://fonts.gstatic.com/s/fascinate/v11/z7NWdRrufC8XJK0IIEli1LbQRPyNrw.ttf"},"Nova Cut":{"regular":"http://fonts.gstatic.com/s/novacut/v14/KFOkCnSYu8mL-39LkWxPKTM1K9nz.ttf"},"Bonbon":{"regular":"http://fonts.gstatic.com/s/bonbon/v14/0FlVVPeVlFec4ee_cDEAbQY5-A.ttf"},"Bungee Hairline":{"regular":"http://fonts.gstatic.com/s/bungeehairline/v8/snfys0G548t04270a_ljTLUVrv-7YB2dQ5ZPqQ.ttf"},"Black And White Picture":{"regular":"http://fonts.gstatic.com/s/blackandwhitepicture/v10/TwMe-JAERlQd3ooUHBUXGmrmioKjjnRSFO-NqI5HbcMi-yWY.ttf"},"Vibes":{"regular":"http://fonts.gstatic.com/s/vibes/v4/QdVYSTsmIB6tmbd3HpbsuBlh.ttf"},"Ruge Boogie":{"regular":"http://fonts.gstatic.com/s/rugeboogie/v13/JIA3UVFwbHRF_GIWSMhKNROiPzUveSxy.ttf"},"Federant":{"regular":"http://fonts.gstatic.com/s/federant/v15/2sDdZGNfip_eirT0_U0jRUG0AqUc.ttf"},"Gidugu":{"regular":"http://fonts.gstatic.com/s/gidugu/v11/L0x8DFMkk1Uf6w3RvPCmRSlUig.ttf"},"Passero One":{"regular":"http://fonts.gstatic.com/s/passeroone/v14/JTUTjIko8DOq5FeaeEAjgE5B5Arr-s50.ttf"},"Sofadi One":{"regular":"http://fonts.gstatic.com/s/sofadione/v11/JIA2UVBxdnVBuElZaMFGcDOIETkmYDU.ttf"},"Sevillana":{"regular":"http://fonts.gstatic.com/s/sevillana/v11/KFOlCnWFscmDt1Bfiy1vAx05IsDqlA.ttf"},"Miltonian":{"regular":"http://fonts.gstatic.com/s/miltonian/v16/zOL-4pbPn6Ne9JqTg9mr6e5As-FeiQ.ttf"},"Miltonian Tattoo":{"regular":"http://fonts.gstatic.com/s/miltoniantattoo/v18/EvOUzBRL0o0kCxF-lcMCQxlpVsA_FwP8MDBku-s.ttf"},"Suravaram":{"regular":"http://fonts.gstatic.com/s/suravaram/v11/_gP61R_usiY7SCym4xIAi261Qv9roQ.ttf"},"Geostar Fill":{"regular":"http://fonts.gstatic.com/s/geostarfill/v13/AMOWz4SWuWiXFfjEohxQ9os0U1K2w9lb4g.ttf"},"Butcherman":{"regular":"http://fonts.gstatic.com/s/butcherman/v14/2EbiL-thF0loflXUBOdb1zWzq_5uT84.ttf"},"Lacquer":{"regular":"http://fonts.gstatic.com/s/lacquer/v5/EYqzma1QwqpG4_BBB7-AXhttQ5I.ttf"},"Aubrey":{"regular":"http://fonts.gstatic.com/s/aubrey/v15/q5uGsou7NPBw-p7vugNsCxVEgA.ttf"},"Lexend Tera":{"regular":"http://fonts.gstatic.com/s/lexendtera/v14/RrQUbo98_jt_IXnBPwCWtZhARYMgGtWA.ttf"},"Nerko One":{"regular":"http://fonts.gstatic.com/s/nerkoone/v5/m8JQjfZSc7OXlB3ZMOjzcJ5BZmqa3A.ttf"},"Dhurjati":{"regular":"http://fonts.gstatic.com/s/dhurjati/v10/_6_8ED3gSeatXfFiFX3ySKQtuTA2.ttf"},"Moulpali":{"regular":"http://fonts.gstatic.com/s/moulpali/v15/H4ckBXKMl9HagUWymyY6wr-wg763.ttf"},"Imbue":{"100":"http://fonts.gstatic.com/s/imbue/v9/RLpXK5P16Ki3fXhj5cvGrqjocPk4n-gVX3M93TnrnvhoP8iWfOsNNK-Q4xY.ttf","200":"http://fonts.gstatic.com/s/imbue/v9/RLpXK5P16Ki3fXhj5cvGrqjocPk4n-gVX3M93TnrnvhoP0iXfOsNNK-Q4xY.ttf","300":"http://fonts.gstatic.com/s/imbue/v9/RLpXK5P16Ki3fXhj5cvGrqjocPk4n-gVX3M93TnrnvhoP5aXfOsNNK-Q4xY.ttf","500":"http://fonts.gstatic.com/s/imbue/v9/RLpXK5P16Ki3fXhj5cvGrqjocPk4n-gVX3M93TnrnvhoP_qXfOsNNK-Q4xY.ttf","600":"http://fonts.gstatic.com/s/imbue/v9/RLpXK5P16Ki3fXhj5cvGrqjocPk4n-gVX3M93TnrnvhoPxaQfOsNNK-Q4xY.ttf","700":"http://fonts.gstatic.com/s/imbue/v9/RLpXK5P16Ki3fXhj5cvGrqjocPk4n-gVX3M93TnrnvhoPy-QfOsNNK-Q4xY.ttf","800":"http://fonts.gstatic.com/s/imbue/v9/RLpXK5P16Ki3fXhj5cvGrqjocPk4n-gVX3M93TnrnvhoP0iQfOsNNK-Q4xY.ttf","900":"http://fonts.gstatic.com/s/imbue/v9/RLpXK5P16Ki3fXhj5cvGrqjocPk4n-gVX3M93TnrnvhoP2GQfOsNNK-Q4xY.ttf","regular":"http://fonts.gstatic.com/s/imbue/v9/RLpXK5P16Ki3fXhj5cvGrqjocPk4n-gVX3M93TnrnvhoP8iXfOsNNK-Q4xY.ttf"},"Big Shoulders Inline Text":{"100":"http://fonts.gstatic.com/s/bigshouldersinlinetext/v5/vm8idQDmVECV5-vm5dJ-Tp-6WDeRjL4RV7dP8u-NEU7wG3AwE9VRww.ttf","300":"http://fonts.gstatic.com/s/bigshouldersinlinetext/v5/vm8hdQDmVECV5-vm5dJ-Tp-6WDeRjL4RV7dP8u-NEYbSO1oeH9xI2gc.ttf","500":"http://fonts.gstatic.com/s/bigshouldersinlinetext/v5/vm8hdQDmVECV5-vm5dJ-Tp-6WDeRjL4RV7dP8u-NEd7TO1oeH9xI2gc.ttf","600":"http://fonts.gstatic.com/s/bigshouldersinlinetext/v5/vm8hdQDmVECV5-vm5dJ-Tp-6WDeRjL4RV7dP8u-NEfLUO1oeH9xI2gc.ttf","700":"http://fonts.gstatic.com/s/bigshouldersinlinetext/v5/vm8hdQDmVECV5-vm5dJ-Tp-6WDeRjL4RV7dP8u-NEZbVO1oeH9xI2gc.ttf","800":"http://fonts.gstatic.com/s/bigshouldersinlinetext/v5/vm8hdQDmVECV5-vm5dJ-Tp-6WDeRjL4RV7dP8u-NEYrWO1oeH9xI2gc.ttf","900":"http://fonts.gstatic.com/s/bigshouldersinlinetext/v5/vm8hdQDmVECV5-vm5dJ-Tp-6WDeRjL4RV7dP8u-NEa7XO1oeH9xI2gc.ttf","regular":"http://fonts.gstatic.com/s/bigshouldersinlinetext/v5/vm8kdQDmVECV5-vm5dJ-Tp-6WDeRjL4RV7dP8u-NKSr6H1I1A9U.ttf"},"Fruktur":{"regular":"http://fonts.gstatic.com/s/fruktur/v15/SZc53FHsOru5QYsMfz3GkUrS8DI.ttf"},"BioRhyme Expanded":{"200":"http://fonts.gstatic.com/s/biorhymeexpanded/v8/i7dVIE1zZzytGswgU577CDY9LjbffxxcblSHSdTXrb_z.ttf","300":"http://fonts.gstatic.com/s/biorhymeexpanded/v8/i7dVIE1zZzytGswgU577CDY9Ljbffxw4bVSHSdTXrb_z.ttf","700":"http://fonts.gstatic.com/s/biorhymeexpanded/v8/i7dVIE1zZzytGswgU577CDY9LjbffxwoalSHSdTXrb_z.ttf","800":"http://fonts.gstatic.com/s/biorhymeexpanded/v8/i7dVIE1zZzytGswgU577CDY9Ljbffxw0aVSHSdTXrb_z.ttf","regular":"http://fonts.gstatic.com/s/biorhymeexpanded/v8/i7dQIE1zZzytGswgU577CDY9LjbffySURXCPYsje.ttf"},"Karantina":{"300":"http://fonts.gstatic.com/s/karantina/v1/buExpo24ccnh31GVMABxXCgf-P5Oaiw4cw.ttf","700":"http://fonts.gstatic.com/s/karantina/v1/buExpo24ccnh31GVMABxTC8f-P5Oaiw4cw.ttf","regular":"http://fonts.gstatic.com/s/karantina/v1/buE0po24ccnh31GVMABJ8AA78NVSYw.ttf"},"Kenia":{"regular":"http://fonts.gstatic.com/s/kenia/v14/jizURE5PuHQH9qCONUGswfGM.ttf"},"Ballet":{"regular":"http://fonts.gstatic.com/s/ballet/v6/QGYyz_MYZA-HM4NjuGOVnUEXme1I4Xi3C4G-EiAou6Y.ttf"},"Single Day":{"regular":"http://fonts.gstatic.com/s/singleday/v5/LYjHdGDjlEgoAcF95EI5jVoFUNfeQJU.ttf"},"Lexend Peta":{"regular":"http://fonts.gstatic.com/s/lexendpeta/v14/BXRvvFPGjeLPh0kCfI4OkE_1c8Tf1IW3.ttf"},"Xanh Mono":{"regular":"http://fonts.gstatic.com/s/xanhmono/v7/R70YjykVmvKCep-vWhSYmACQXzLhTg.ttf","italic":"http://fonts.gstatic.com/s/xanhmono/v7/R70ejykVmvKCep-vWhSomgqUfTfxTo24.ttf"},"Warnes":{"regular":"http://fonts.gstatic.com/s/warnes/v12/pONn1hc0GsW6sW5OpiC2o6Lkqg.ttf"},"Langar":{"regular":"http://fonts.gstatic.com/s/langar/v15/kJEyBukW7AIlgjGVrTVZ99sqrQ.ttf"},"Truculenta":{"100":"http://fonts.gstatic.com/s/truculenta/v6/LhWfMVvBKusVIfNYGi1-WvRVyDdZeeiySNppcu32Mb2f06y6Oa21F6XHi0VYDX_PzOupMlAjswcFHnJMMhg.ttf","200":"http://fonts.gstatic.com/s/truculenta/v6/LhWfMVvBKusVIfNYGi1-WvRVyDdZeeiySNppcu32Mb2f06y6Oa21F6XHi0VYDX_PzOupMtAiswcFHnJMMhg.ttf","300":"http://fonts.gstatic.com/s/truculenta/v6/LhWfMVvBKusVIfNYGi1-WvRVyDdZeeiySNppcu32Mb2f06y6Oa21F6XHi0VYDX_PzOupMg4iswcFHnJMMhg.ttf","500":"http://fonts.gstatic.com/s/truculenta/v6/LhWfMVvBKusVIfNYGi1-WvRVyDdZeeiySNppcu32Mb2f06y6Oa21F6XHi0VYDX_PzOupMmIiswcFHnJMMhg.ttf","600":"http://fonts.gstatic.com/s/truculenta/v6/LhWfMVvBKusVIfNYGi1-WvRVyDdZeeiySNppcu32Mb2f06y6Oa21F6XHi0VYDX_PzOupMo4lswcFHnJMMhg.ttf","700":"http://fonts.gstatic.com/s/truculenta/v6/LhWfMVvBKusVIfNYGi1-WvRVyDdZeeiySNppcu32Mb2f06y6Oa21F6XHi0VYDX_PzOupMrclswcFHnJMMhg.ttf","800":"http://fonts.gstatic.com/s/truculenta/v6/LhWfMVvBKusVIfNYGi1-WvRVyDdZeeiySNppcu32Mb2f06y6Oa21F6XHi0VYDX_PzOupMtAlswcFHnJMMhg.ttf","900":"http://fonts.gstatic.com/s/truculenta/v6/LhWfMVvBKusVIfNYGi1-WvRVyDdZeeiySNppcu32Mb2f06y6Oa21F6XHi0VYDX_PzOupMvklswcFHnJMMhg.ttf","regular":"http://fonts.gstatic.com/s/truculenta/v6/LhWfMVvBKusVIfNYGi1-WvRVyDdZeeiySNppcu32Mb2f06y6Oa21F6XHi0VYDX_PzOupMlAiswcFHnJMMhg.ttf"},"Geostar":{"regular":"http://fonts.gstatic.com/s/geostar/v13/sykz-yx4n701VLOftSq9-trEvlQ.ttf"},"Trispace":{"100":"http://fonts.gstatic.com/s/trispace/v6/Yq65-LKSQC3o56LxxgRrtA6yBqsrXL5GI5KI-IUZVGsxWFIlbH9qoQl0zHugpt0.ttf","200":"http://fonts.gstatic.com/s/trispace/v6/Yq65-LKSQC3o56LxxgRrtA6yBqsrXL5GI5KI-IUZVGsxWFIlbP9roQl0zHugpt0.ttf","300":"http://fonts.gstatic.com/s/trispace/v6/Yq65-LKSQC3o56LxxgRrtA6yBqsrXL5GI5KI-IUZVGsxWFIlbCFroQl0zHugpt0.ttf","500":"http://fonts.gstatic.com/s/trispace/v6/Yq65-LKSQC3o56LxxgRrtA6yBqsrXL5GI5KI-IUZVGsxWFIlbE1roQl0zHugpt0.ttf","600":"http://fonts.gstatic.com/s/trispace/v6/Yq65-LKSQC3o56LxxgRrtA6yBqsrXL5GI5KI-IUZVGsxWFIlbKFsoQl0zHugpt0.ttf","700":"http://fonts.gstatic.com/s/trispace/v6/Yq65-LKSQC3o56LxxgRrtA6yBqsrXL5GI5KI-IUZVGsxWFIlbJhsoQl0zHugpt0.ttf","800":"http://fonts.gstatic.com/s/trispace/v6/Yq65-LKSQC3o56LxxgRrtA6yBqsrXL5GI5KI-IUZVGsxWFIlbP9soQl0zHugpt0.ttf","regular":"http://fonts.gstatic.com/s/trispace/v6/Yq65-LKSQC3o56LxxgRrtA6yBqsrXL5GI5KI-IUZVGsxWFIlbH9roQl0zHugpt0.ttf"},"Oi":{"regular":"http://fonts.gstatic.com/s/oi/v4/w8gXH2EuRqtaut6yjBOG.ttf"},"Big Shoulders Inline Display":{"100":"http://fonts.gstatic.com/s/bigshouldersinlinedisplay/v5/_LOlmyfF4eSU_SCrJc9OI24U7siGvBGcZqmqV9-ZZ85COrytjChoEoUCJg.ttf","300":"http://fonts.gstatic.com/s/bigshouldersinlinedisplay/v5/_LOkmyfF4eSU_SCrJc9OI24U7siGvBGcZqmqV9-ZZ85COnSPrAJGHowbP0g.ttf","500":"http://fonts.gstatic.com/s/bigshouldersinlinedisplay/v5/_LOkmyfF4eSU_SCrJc9OI24U7siGvBGcZqmqV9-ZZ85COiyOrAJGHowbP0g.ttf","600":"http://fonts.gstatic.com/s/bigshouldersinlinedisplay/v5/_LOkmyfF4eSU_SCrJc9OI24U7siGvBGcZqmqV9-ZZ85COgCJrAJGHowbP0g.ttf","700":"http://fonts.gstatic.com/s/bigshouldersinlinedisplay/v5/_LOkmyfF4eSU_SCrJc9OI24U7siGvBGcZqmqV9-ZZ85COmSIrAJGHowbP0g.ttf","800":"http://fonts.gstatic.com/s/bigshouldersinlinedisplay/v5/_LOkmyfF4eSU_SCrJc9OI24U7siGvBGcZqmqV9-ZZ85COniLrAJGHowbP0g.ttf","900":"http://fonts.gstatic.com/s/bigshouldersinlinedisplay/v5/_LOkmyfF4eSU_SCrJc9OI24U7siGvBGcZqmqV9-ZZ85COlyKrAJGHowbP0g.ttf","regular":"http://fonts.gstatic.com/s/bigshouldersinlinedisplay/v5/_LObmyfF4eSU_SCrJc9OI24U7siGvBGcZqmqV9-ZZ85CAtiniAptAoU.ttf"},"Syne Tactile":{"regular":"http://fonts.gstatic.com/s/synetactile/v5/11hGGpna2UTQKjMCVzjAPMKh3ysdjvKU8Q.ttf"},"Libre Barcode EAN13 Text":{"regular":"http://fonts.gstatic.com/s/librebarcodeean13text/v9/wlpigxXFDU1_oCu9nfZytgIqSG0XRcJm_OQiB96PAGEki52WfA.ttf"},"Bona Nova":{"700":"http://fonts.gstatic.com/s/bonanova/v1/B50IF7ZCpX7fcHfvIUBxN4dOFISeJY8GgQ.ttf","regular":"http://fonts.gstatic.com/s/bonanova/v1/B50NF7ZCpX7fcHfvIUBJi6hqHK-CLA.ttf","italic":"http://fonts.gstatic.com/s/bonanova/v1/B50LF7ZCpX7fcHfvIUB5iaJuPqqSLJYf.ttf"},"Encode Sans SC":{"100":"http://fonts.gstatic.com/s/encodesanssc/v1/jVyp7nLwCGzQ9zE7ZyRg0QRXHPZc_uUA6Kb3VJWLE_Pdtm7lcD6qvXT1HHhn8c9NOEEClIc.ttf","200":"http://fonts.gstatic.com/s/encodesanssc/v1/jVyp7nLwCGzQ9zE7ZyRg0QRXHPZc_uUA6Kb3VJWLE_Pdtm7lcD6qvXT1HPhm8c9NOEEClIc.ttf","300":"http://fonts.gstatic.com/s/encodesanssc/v1/jVyp7nLwCGzQ9zE7ZyRg0QRXHPZc_uUA6Kb3VJWLE_Pdtm7lcD6qvXT1HCZm8c9NOEEClIc.ttf","500":"http://fonts.gstatic.com/s/encodesanssc/v1/jVyp7nLwCGzQ9zE7ZyRg0QRXHPZc_uUA6Kb3VJWLE_Pdtm7lcD6qvXT1HEpm8c9NOEEClIc.ttf","600":"http://fonts.gstatic.com/s/encodesanssc/v1/jVyp7nLwCGzQ9zE7ZyRg0QRXHPZc_uUA6Kb3VJWLE_Pdtm7lcD6qvXT1HKZh8c9NOEEClIc.ttf","700":"http://fonts.gstatic.com/s/encodesanssc/v1/jVyp7nLwCGzQ9zE7ZyRg0QRXHPZc_uUA6Kb3VJWLE_Pdtm7lcD6qvXT1HJ9h8c9NOEEClIc.ttf","800":"http://fonts.gstatic.com/s/encodesanssc/v1/jVyp7nLwCGzQ9zE7ZyRg0QRXHPZc_uUA6Kb3VJWLE_Pdtm7lcD6qvXT1HPhh8c9NOEEClIc.ttf","900":"http://fonts.gstatic.com/s/encodesanssc/v1/jVyp7nLwCGzQ9zE7ZyRg0QRXHPZc_uUA6Kb3VJWLE_Pdtm7lcD6qvXT1HNFh8c9NOEEClIc.ttf","regular":"http://fonts.gstatic.com/s/encodesanssc/v1/jVyp7nLwCGzQ9zE7ZyRg0QRXHPZc_uUA6Kb3VJWLE_Pdtm7lcD6qvXT1HHhm8c9NOEEClIc.ttf"},"Festive":{"regular":"http://fonts.gstatic.com/s/festive/v1/cY9Ffj6KX1xcoDWhFtfgy9HTkak.ttf"},"Fuggles":{"regular":"http://fonts.gstatic.com/s/fuggles/v1/k3kQo8UEJOlD1hpOTd7iL0nAMaM.ttf"},"Otomanopee One":{"regular":"http://fonts.gstatic.com/s/otomanopeeone/v1/xMQNuFtEVKCbvGxme-rSATGm_Aea91uCCB9o.ttf"},"Qahiri":{"regular":"http://fonts.gstatic.com/s/qahiri/v1/tsssAp1RZy0C_hGuU3Chrnmupw.ttf"},"STIX Two Math":{"regular":"http://fonts.gstatic.com/s/stixtwomath/v1/pONg1hwwL_6M9EkZySr_yteUi1rADEcF1pY.ttf"},"Tourney":{"100":"http://fonts.gstatic.com/s/tourney/v1/AlZa_ztDtYzv1tzq1wcJnbVt7xseomk-tNs7qrzTWbyt8n7GOQByZTp1I1LcGA.ttf","200":"http://fonts.gstatic.com/s/tourney/v1/AlZa_ztDtYzv1tzq1wcJnbVt7xseomk-tNs7qrzTWbyt8n7GuQFyZTp1I1LcGA.ttf","300":"http://fonts.gstatic.com/s/tourney/v1/AlZa_ztDtYzv1tzq1wcJnbVt7xseomk-tNs7qrzTWbyt8n7GZwFyZTp1I1LcGA.ttf","500":"http://fonts.gstatic.com/s/tourney/v1/AlZa_ztDtYzv1tzq1wcJnbVt7xseomk-tNs7qrzTWbyt8n7GCwFyZTp1I1LcGA.ttf","600":"http://fonts.gstatic.com/s/tourney/v1/AlZa_ztDtYzv1tzq1wcJnbVt7xseomk-tNs7qrzTWbyt8n7G5wZyZTp1I1LcGA.ttf","700":"http://fonts.gstatic.com/s/tourney/v1/AlZa_ztDtYzv1tzq1wcJnbVt7xseomk-tNs7qrzTWbyt8n7G3gZyZTp1I1LcGA.ttf","800":"http://fonts.gstatic.com/s/tourney/v1/AlZa_ztDtYzv1tzq1wcJnbVt7xseomk-tNs7qrzTWbyt8n7GuQZyZTp1I1LcGA.ttf","900":"http://fonts.gstatic.com/s/tourney/v1/AlZa_ztDtYzv1tzq1wcJnbVt7xseomk-tNs7qrzTWbyt8n7GkAZyZTp1I1LcGA.ttf","regular":"http://fonts.gstatic.com/s/tourney/v1/AlZa_ztDtYzv1tzq1wcJnbVt7xseomk-tNs7qrzTWbyt8n7GOQFyZTp1I1LcGA.ttf","100italic":"http://fonts.gstatic.com/s/tourney/v1/AlZc_ztDtYzv1tzq_Q47flUUvI2wpXz29ilymEMLMNc3XHnT8UKaJzBxAVfMGOPb.ttf","200italic":"http://fonts.gstatic.com/s/tourney/v1/AlZc_ztDtYzv1tzq_Q47flUUvI2wpXz29ilymEMLMNc3XHnT8UIaJjBxAVfMGOPb.ttf","300italic":"http://fonts.gstatic.com/s/tourney/v1/AlZc_ztDtYzv1tzq_Q47flUUvI2wpXz29ilymEMLMNc3XHnT8ULEJjBxAVfMGOPb.ttf","italic":"http://fonts.gstatic.com/s/tourney/v1/AlZc_ztDtYzv1tzq_Q47flUUvI2wpXz29ilymEMLMNc3XHnT8UKaJjBxAVfMGOPb.ttf","500italic":"http://fonts.gstatic.com/s/tourney/v1/AlZc_ztDtYzv1tzq_Q47flUUvI2wpXz29ilymEMLMNc3XHnT8UKoJjBxAVfMGOPb.ttf","600italic":"http://fonts.gstatic.com/s/tourney/v1/AlZc_ztDtYzv1tzq_Q47flUUvI2wpXz29ilymEMLMNc3XHnT8UJEITBxAVfMGOPb.ttf","700italic":"http://fonts.gstatic.com/s/tourney/v1/AlZc_ztDtYzv1tzq_Q47flUUvI2wpXz29ilymEMLMNc3XHnT8UJ9ITBxAVfMGOPb.ttf","800italic":"http://fonts.gstatic.com/s/tourney/v1/AlZc_ztDtYzv1tzq_Q47flUUvI2wpXz29ilymEMLMNc3XHnT8UIaITBxAVfMGOPb.ttf","900italic":"http://fonts.gstatic.com/s/tourney/v1/AlZc_ztDtYzv1tzq_Q47flUUvI2wpXz29ilymEMLMNc3XHnT8UIzITBxAVfMGOPb.ttf"},"Uchen":{"regular":"http://fonts.gstatic.com/s/uchen/v1/nKKZ-GokGZ1baIaSEQGodLxA.ttf"},"Yomogi":{"regular":"http://fonts.gstatic.com/s/yomogi/v1/VuJwdNrS2ZL7rpoPWIz5NIh-YA.ttf"},"Zen Loop":{"regular":"http://fonts.gstatic.com/s/zenloop/v1/h0GrssK16UsnJwHsEK9zqwzX5vOG.ttf","italic":"http://fonts.gstatic.com/s/zenloop/v1/h0GtssK16UsnJwHsEJ9xoQj14-OGJ0w.ttf"},"Zen Tokyo Zoo":{"regular":"http://fonts.gstatic.com/s/zentokyozoo/v1/NGSyv5ffC0J_BK6aFNtr6sRv8a1uRWe9amg.ttf"}}
\ No newline at end of file
diff --git a/functions/kirki/modules/webfonts/webfont-names.json b/functions/kirki/modules/webfonts/webfont-names.json
deleted file mode 100644
index d2d869e..0000000
--- a/functions/kirki/modules/webfonts/webfont-names.json
+++ /dev/null
@@ -1 +0,0 @@
-["Roboto","Open Sans","Noto Sans JP","Lato","Montserrat","Source Sans Pro","Roboto Condensed","Poppins","Oswald","Noto Sans","Roboto Mono","Raleway","PT Sans","Ubuntu","Roboto Slab","Merriweather","Nunito","Playfair Display","Noto Sans KR","Open Sans Condensed","Rubik","Lora","Mukta","Work Sans","Fira Sans","Nunito Sans","Hind Siliguri","Noto Sans TC","Nanum Gothic","PT Serif","Noto Serif","Inter","Quicksand","Titillium Web","Karla","Heebo","Barlow","Anton","Inconsolata","Oxygen","Dosis","PT Sans Narrow","Arimo","Bebas Neue","Libre Baskerville","Josefin Sans","Libre Franklin","Noto Sans SC","Yanone Kaffeesatz","Source Code Pro","IBM Plex Sans","Mulish","Cabin","Bitter","Hind","Dancing Script","Crimson Text","Prompt","Varela Round","Lobster","Abel","Noto Sans HK","Fjalla One","Teko","Source Serif Pro","Cairo","Arvo","EB Garamond","Kanit","DM Sans","Zilla Slab","Exo 2","Barlow Condensed","Comfortaa","Indie Flower","Pacifico","Shadows Into Light","Merriweather Sans","Asap","Overpass","Noto Serif JP","Questrial","Abril Fatface","Yellowtail","Assistant","Rajdhani","Cormorant Garamond","Maven Pro","Slabo 27px","Hind Madurai","Krona One","Archivo Narrow","Martel","Fira Sans Condensed","Caveat","Exo","Domine","IBM Plex Serif","Amatic SC","Antic Slab","Catamaran","Play","Bree Serif","Tajawal","Padauk","Acme","Nanum Myeongjo","M PLUS Rounded 1c","Alfa Slab One","Righteous","Manrope","Signika","Sarabun","Almarai","Crete Round","Vollkorn","Cinzel","Spartan","Archivo","Satisfy","Architects Daughter","Patua One","Alegreya Sans","Barlow Semi Condensed","Amiri","Permanent Marker","Tinos","ABeeZee","Fredoka One","Secular One","Patrick Hand","Courgette","Ubuntu Condensed","Staatliches","M PLUS 1p","Hammersmith One","Alegreya","Kaushan Script","Chivo","Archivo Black","Jost","Great Vibes","Chakra Petch","Public Sans","Frank Ruhl Libre","Lobster Two","PT Sans Caption","Yantramanav","Gothic A1","Cardo","Quattrocento Sans","Sacramento","Spectral","Kalam","Signika Negative","Prata","Didact Gothic","Noto Serif TC","Baloo 2","Balsamiq Sans","Francois One","Red Hat Display","IBM Plex Mono","Noticia Text","Russo One","Cuprum","Orbitron","Cantarell","Pathway Gothic One","Gloria Hallelujah","Encode Sans","Monda","DM Serif Display","Parisienne","Old Standard TT","Special Elite","Ropa Sans","Volkhov","Jomhuria","Concert One","Rokkitt","Hind Guntur","News Cycle","Noto Serif KR","Sawarabi Mincho","Asap Condensed","Cookie","Noto Serif SC","Changa","Josefin Slab","Quattrocento","Playfair Display SC","Poiret One","Passion One","Unna","Sigmar One","Ultra","Montserrat Alternates","Cormorant","Faustina","Press Start 2P","Vidaloka","Istok Web","Bangers","Saira Condensed","Neuton","Sanchez","Mitr","Taviraj","Advent Pro","Philosopher","Arapey","Space Mono","Mate SC","BenchNine","Monoton","Crimson Pro","Luckiest Guy","Fira Sans Extra Condensed","Bai Jamjuree","Khand","Economica","Merienda","Itim","Handlee","Lusitana","Karma","Big Shoulders Display","Marcellus","Tangerine","Saira","Gudea","PT Mono","Alata","Ubuntu Mono","Rock Salt","El Messiri","Playball","Saira Semi Condensed","Gentium Basic","Sawarabi Gothic","Fugaz One","Ruda","Cabin Condensed","Electrolize","Actor","Alef","Nanum Pen Script","Cutive Mono","Neucha","Antic","Unica One","DM Serif Text","Pragati Narrow","Alice","Hind Vadodara","Paytone One","Allura","Marck Script","Amaranth","Homemade Apple","Khula","Yeseva One","Gentium Book Basic","Jura","Stint Ultra Condensed","Viga","Bad Script","Julius Sans One","Pontano Sans","Aclonica","Tenor Sans","Recursive","Armata","Abhaya Libre","Nanum Gothic Coding","Markazi Text","Carter One","Adamina","Aleo","Rufina","Sarala","Alex Brush","Mali","Palanquin","Kosugi Maru","Saira Extra Condensed","Knewave","Nothing You Could Do","Sorts Mill Goudy","Bungee","Eczar","Arima Madurai","Varela","Gelasio","Syncopate","Damion","Audiowide","Cantata One","Quantico","Mr Dafoe","Shadows Into Light Two","Gochi Hand","Cousine","Pridi","Jaldi","Shrikhand","Rancho","Sriracha","Coda","Berkshire Swash","Share Tech Mono","Fira Mono","Baloo Tammudu 2","Mandali","Oleo Script","Black Ops One","Gruppo","Basic","Lexend Deca","Suez One","Squada One","Martel Sans","Average","Yrsa","Six Caps","Enriqueta","Mada","Red Hat Text","Courier Prime","Spinnaker","Sintony","Pinyon Script","Encode Sans Condensed","Lilita One","Mukta Malar","Alegreya Sans SC","Krub","Sen","Michroma","Pangolin","Chewy","Niconne","Glegoo","Allerta","Days One","Voltaire","Kreon","Reem Kufi","Overlock","Black Han Sans","Candal","Kameron","Allan","Coda Caption","Mate","Caveat Brush","Forum","Covered By Your Grace","Reenie Beanie","Fredericka the Great","Literata","Italianno","Goudy Bookletter 1911","Mukta Vaani","Rubik Mono One","Bevan","Arsenal","Lalezar","Lemonada","Cabin Sketch","Ramabhadra","Anonymous Pro","Capriola","Laila","PT Serif Caption","Bubblegum Sans","Rye","Mallanna","Norican","Annie Use Your Telescope","Changa One","VT323","Sansita","Corben","Aldrich","Boogaloo","Arbutus Slab","Rambla","Pattaya","Yesteryear","Telex","Lateef","Herr Von Muellerhoff","Scheherazade","Maitree","Nobile","Londrina Solid","Trocchi","Cinzel Decorative","Holtwood One SC","Just Another Hand","Caudex","Arizonia","Trirong","Niramit","Castoro","Racing Sans One","Mountains of Christmas","Mrs Saint Delafield","Seaweed Script","Coustard","Nixie One","Molengo","Ovo","Bungee Inline","Rochester","Leckerli One","Biryani","Bowlby One SC","Kristi","Jua","Average Sans","Charm","Amita","Miriam Libre","Delius","Judson","Do Hyeon","Alegreya SC","Oranienbaum","Share","Darker Grotesque","Athiti","Belgrano","Chonburi","Overpass Mono","KoHo","Epilogue","Gilda Display","Baloo Tamma 2","Allerta Stencil","Coming Soon","Commissioner","Duru Sans","Lustria","Nanum Brush Script","Scada","Rozha One","Graduate","Marcellus SC","IBM Plex Sans Condensed","Carrois Gothic","Suranna","Contrail One","Jockey One","Titan One","Magra","Fauna One","Palanquin Dark","Carme","GFS Didot","Copse","Libre Caslon Text","Cedarville Cursive","Mr De Haviland","Sunflower","K2D","Belleza","Comic Neue","La Belle Aurore","Grand Hotel","Averia Serif Libre","Kosugi","Rosario","Petit Formal Script","Halant","Amiko","Slabo 13px","Poly","Marmelad","Wallpoet","Baskervville","Calligraffitti","Sora","Be Vietnam","Schoolbell","Love Ya Like A Sister","Blinker","Gugi","Radley","Metrophobic","Merienda One","Podkova","Alatsi","Thasadith","Averia Libre","Manjari","Oxygen Mono","Cambay","Rammetto One","Limelight","Esteban","Aladin","Cormorant Infant","IM Fell Double Pica","NTR","Buenard","Spectral SC","Bellefair","Kelly Slab","Hanuman","Gravitas One","Amethysta","Inder","Andada","Fira Code","Marvel","Balthazar","Grandstander","Waiting for the Sunrise","Lekton","Sue Ellen Francisco","Megrim","Bentham","Space Grotesk","Harmattan","Gabriela","Encode Sans Semi Condensed","Turret Road","Kumbh Sans","Alike","Chelsea Market","Monsieur La Doulaise","Sniglet","Farro","Creepster","Convergence","Cormorant SC","Rouge Script","Cutive","Proza Libre","Hepta Slab","Bungee Shade","Baloo Da 2","Mirza","Montaga","Dawning of a New Day","IM Fell English","Bowlby One","ZCOOL XiaoWei","Qwigley","Sofia","Hi Melody","IM Fell DW Pica","Sedgwick Ave","Stardos Stencil","Original Surfer","Emilys Candy","Aguafina Script","UnifrakturMaguntia","Fanwood Text","B612 Mono","Alike Angular","Zeyada","Libre Barcode 39","Lemon","Grenze Gotisch","Sarpanch","Yatra One","Give You Glory","Bodoni Moda","Oregano","Averia Sans Libre","Raleway Dots","Finger Paint","Battambang","Expletus Sans","Baumans","Brawler","Quando","David Libre","Kadwa","Vast Shadow","Ceviche One","Montez","Oleo Script Swash Caps","Faster One","DM Mono","Frijole","Newsreader","Patrick Hand SC","Anaheim","Pompiere","Rasa","Doppio One","Dokdo","Andika","BioRhyme","Freckle Face","Antic Didone","Happy Monkey","Kurale","Oxanium","Homenaje","Clicker Script","Almendra","Wendy One","Meddon","Caladea","Numans","Encode Sans Expanded","Gurajada","Over the Rainbow","Fondamento","Atma","RocknRoll One","JetBrains Mono","Federo","Rakkas","Sail","Share Tech","Denk One","Galada","Wire One","Chau Philomene One","Skranji","ZCOOL QingKe HuangYou","Livvic","Orienta","Mansalva","Aref Ruqaa","Yusei Magic","Baloo Thambi 2","Ranchers","Major Mono Display","Katibeh","Euphoria Script","Walter Turncoat","Mouse Memoirs","Shojumaru","Calistoga","Timmana","Nova Mono","Ledger","Vollkorn SC","Vesper Libre","Codystar","McLaren","Nova Round","B612","Strait","Arya","Iceland","Short Stack","Tienne","Inknut Antiqua","Cormorant Upright","Mukta Mahee","Ranga","Crafty Girls","Mako","Delius Swash Caps","Montserrat Subrayada","Italiana","Tenali Ramakrishna","Life Savers","Ma Shan Zheng","Salsa","Vampiro One","Cherry Cream Soda","Antonio","Baloo Chettan 2","Mina","Unkempt","Cambo","Flamenco","Eater","Scope One","Odibee Sans","Peralta","Geo","Trade Winds","Tillana","Elsie","Red Rose","Bellota Text","Bilbo Swash Caps","Carrois Gothic SC","Dynalight","The Girl Next Door","Gaegu","Asul","Loved by the King","Coiny","Gafata","Prosto One","IM Fell English SC","Puritan","Encode Sans Semi Expanded","UnifrakturCook","Artifika","Cherry Swash","Imprima","Gorditas","Nokora","Metamorphous","Big Shoulders Text","Della Respira","Vibur","Engagement","Lily Script One","Englebert","Shippori Mincho","Nova Square","Voces","Bilbo","Notable","Headland One","Cantora One","Tauri","Meera Inimai","Benne","Medula One","Stalemate","Amarante","Yeon Sung","Khmer","Port Lligat Slab","Lexend Zetta","Reggae One","Fjord One","Charmonman","Slackey","Fraunces","Milonga","Lexend","Dela Gothic One","Mogra","Sura","Sarina","New Rocker","Goblin One","Manuale","Just Me Again Down Here","Kulim Park","Ruslan Display","League Script","Shanti","Text Me One","Delius Unicase","Fontdiner Swanky","Pavanam","Poller One","Saira Stencil One","Crushed","Kodchasan","Kranky","Habibi","Paprika","Prociono","Lovers Quarrel","Gamja Flower","Syne","Ramaraja","Fresca","Moul","Goldman","Henny Penny","Big Shoulders Stencil Display","Song Myung","Chela One","Overlock SC","Germania One","Pirata One","Libre Barcode 39 Text","Kite One","Girassol","Baloo Paaji 2","Stoke","Dekko","Ribeye","Julee","Koulen","Spicy Rice","Bellota","Sonsie One","Akaya Kanadaka","Macondo Swash Caps","Gotu","IM Fell French Canon","Sancreek","Cute Font","Tulpen One","Nova Flat","Baloo Bhai 2","Simonetta","Port Lligat Sans","Rationale","Kufam","Kumar One","Baloo Bhaina 2","Modak","Rosarivo","Mystery Quest","Donegal One","Chango","Kotta One","Quintessential","Croissant One","IM Fell French Canon SC","Inria Serif","Kiwi Maru","Petrona","Fahkwang","Libre Caslon Display","Chicle","Ruluko","Uncial Antiqua","Stylish","Londrina Outline","Margarine","East Sea Dokdo","IM Fell Great Primer","Cormorant Unicase","Zilla Slab Highlight","Ibarra Real Nova","Fenix","Bubbler One","Angkor","IM Fell DW Pica SC","Libre Barcode 39 Extended Text","Lakki Reddy","Dorsa","Sumana","Lexend Exa","Cagliostro","Junge","Asar","Tomorrow","Chilanka","Piazzolla","Condiment","Rowdies","Offside","Sulphur Point","Galdeano","Stint Ultra Expanded","Averia Gruesa Libre","Swanky and Moo Moo","Solway","Buda","Metal","Redressed","Wellfleet","Shippori Mincho B1","Farsan","Joti One","Potta One","Chathura","Kavivanar","Libre Barcode 128","Kdam Thmor","Hanalei Fill","Barrio","Jolly Lodger","Akronim","Hachi Maru Pop","Hanalei","Jomolhari","Bayon","Zen Dots","Eagle Lake","Sansita Swashed","Meie Script","Elsie Swash Caps","Piedra","Modern Antiqua","Miniver","Inika","Rum Raisin","Autour One","Srisakdi","Sree Krushnadevaraya","DotGothic16","Nosifer","Viaoda Libre","Spirax","Iceberg","Linden Hill","Marko One","Mrs Sheppards","Train One","Maiden Orange","Londrina Shadow","Ruthie","Beth Ellen","Diplomata SC","Sirin Stencil","Kavoon","Sahitya","Kantumruy","Griffy","Monofett","Felipa","Arbutus","Siemreap","Content","Ewert","Lexend Mega","Bahiana","Atomic Age","Ribeye Marrow","Dr Sugiyama","Metal Mania","Asset","Syne Mono","Devonshire","Princess Sofia","Caesar Dressing","Stick","Molle","Rhodium Libre","Orelega One","Bigshot One","Trykker","Snippet","Romanesco","MuseoModerno","Diplomata","Kirang Haerang","Libre Barcode 128 Text","Lancelot","Bigelow Rules","Flavors","Nova Slim","Poor Story","Varta","ZCOOL KuaiLe","Londrina Sketch","Risque","Glass Antiqua","IM Fell Great Primer SC","Peddana","Smythe","Jacques Francois Shadow","Gupter","Barriecito","MedievalSharp","Irish Grover","Jim Nightshade","Almendra SC","Odor Mean Chey","Ravi Prakash","Bokor","Fascinate Inline","Revalia","GFS Neohellenic","Long Cang","Sedgwick Ave Display","Snowburst One","Kumar One Outline","Gayathri","Freehand","Keania One","Taprom","Stalinist One","Underdog","Grenze","Mr Bedfort","Seymour One","Galindo","Oldenburg","Emblema One","Miss Fajardose","Plaster","Libre Barcode 39 Extended","Almendra Display","Texturina","Unlock","Macondo","Jacques Francois","Andika New Basic","Liu Jian Mao Cao","Dangrek","Brygada 1918","Suwannaphum","Smokum","Big Shoulders Stencil Text","IM Fell Double Pica SC","Lexend Giga","Butterfly Kids","Trochut","Purple Purse","Nova Oval","Fasthand","Inria Sans","Chenla","Bungee Outline","Erica One","Preahvihear","New Tegomin","Sunshiney","Combo","Akaya Telivigala","Zhi Mang Xing","Nova Script","Supermercado One","Astloch","Bahianita","Fascinate","Nova Cut","Bonbon","Bungee Hairline","Black And White Picture","Vibes","Ruge Boogie","Federant","Gidugu","Passero One","Sofadi One","Sevillana","Miltonian","Miltonian Tattoo","Suravaram","Geostar Fill","Butcherman","Lacquer","Aubrey","Lexend Tera","Nerko One","Dhurjati","Moulpali","Imbue","Big Shoulders Inline Text","Fruktur","BioRhyme Expanded","Karantina","Kenia","Ballet","Single Day","Lexend Peta","Xanh Mono","Warnes","Langar","Truculenta","Geostar","Trispace","Oi","Big Shoulders Inline Display","Syne Tactile","Libre Barcode EAN13 Text","Bona Nova","Encode Sans SC","Festive","Fuggles","Otomanopee One","Qahiri","STIX Two Math","Tourney","Uchen","Yomogi","Zen Loop","Zen Tokyo Zoo"]
\ No newline at end of file
diff --git a/functions/kirki/modules/webfonts/webfonts.json b/functions/kirki/modules/webfonts/webfonts.json
deleted file mode 100644
index 52af0b4..0000000
--- a/functions/kirki/modules/webfonts/webfonts.json
+++ /dev/null
@@ -1 +0,0 @@
-{"items":{"ABeeZee":{"family":"ABeeZee","category":"sans-serif","variants":["italic","regular"]},"Abel":{"family":"Abel","category":"sans-serif","variants":["regular"]},"Abhaya Libre":{"family":"Abhaya Libre","category":"serif","variants":["500","600","700","800","regular"]},"Abril Fatface":{"family":"Abril Fatface","category":"display","variants":["regular"]},"Aclonica":{"family":"Aclonica","category":"sans-serif","variants":["regular"]},"Acme":{"family":"Acme","category":"sans-serif","variants":["regular"]},"Actor":{"family":"Actor","category":"sans-serif","variants":["regular"]},"Adamina":{"family":"Adamina","category":"serif","variants":["regular"]},"Advent Pro":{"family":"Advent Pro","category":"sans-serif","variants":["100","200","300","500","600","700","regular"]},"Aguafina Script":{"family":"Aguafina Script","category":"handwriting","variants":["regular"]},"Akaya Kanadaka":{"family":"Akaya Kanadaka","category":"display","variants":["regular"]},"Akaya Telivigala":{"family":"Akaya Telivigala","category":"display","variants":["regular"]},"Akronim":{"family":"Akronim","category":"display","variants":["regular"]},"Aladin":{"family":"Aladin","category":"handwriting","variants":["regular"]},"Alata":{"family":"Alata","category":"sans-serif","variants":["regular"]},"Alatsi":{"family":"Alatsi","category":"sans-serif","variants":["regular"]},"Aldrich":{"family":"Aldrich","category":"sans-serif","variants":["regular"]},"Alef":{"family":"Alef","category":"sans-serif","variants":["700","regular"]},"Alegreya":{"family":"Alegreya","category":"serif","variants":["500","500italic","600","600italic","700","700italic","800","800italic","900","900italic","italic","regular"]},"Alegreya SC":{"family":"Alegreya SC","category":"serif","variants":["500","500italic","700","700italic","800","800italic","900","900italic","italic","regular"]},"Alegreya Sans":{"family":"Alegreya Sans","category":"sans-serif","variants":["100","100italic","300","300italic","500","500italic","700","700italic","800","800italic","900","900italic","italic","regular"]},"Alegreya Sans SC":{"family":"Alegreya Sans SC","category":"sans-serif","variants":["100","100italic","300","300italic","500","500italic","700","700italic","800","800italic","900","900italic","italic","regular"]},"Aleo":{"family":"Aleo","category":"serif","variants":["300","300italic","700","700italic","italic","regular"]},"Alex Brush":{"family":"Alex Brush","category":"handwriting","variants":["regular"]},"Alfa Slab One":{"family":"Alfa Slab One","category":"display","variants":["regular"]},"Alice":{"family":"Alice","category":"serif","variants":["regular"]},"Alike":{"family":"Alike","category":"serif","variants":["regular"]},"Alike Angular":{"family":"Alike Angular","category":"serif","variants":["regular"]},"Allan":{"family":"Allan","category":"display","variants":["700","regular"]},"Allerta":{"family":"Allerta","category":"sans-serif","variants":["regular"]},"Allerta Stencil":{"family":"Allerta Stencil","category":"sans-serif","variants":["regular"]},"Allura":{"family":"Allura","category":"handwriting","variants":["regular"]},"Almarai":{"family":"Almarai","category":"sans-serif","variants":["300","700","800","regular"]},"Almendra":{"family":"Almendra","category":"serif","variants":["700","700italic","italic","regular"]},"Almendra Display":{"family":"Almendra Display","category":"display","variants":["regular"]},"Almendra SC":{"family":"Almendra SC","category":"serif","variants":["regular"]},"Amarante":{"family":"Amarante","category":"display","variants":["regular"]},"Amaranth":{"family":"Amaranth","category":"sans-serif","variants":["700","700italic","italic","regular"]},"Amatic SC":{"family":"Amatic SC","category":"handwriting","variants":["700","regular"]},"Amethysta":{"family":"Amethysta","category":"serif","variants":["regular"]},"Amiko":{"family":"Amiko","category":"sans-serif","variants":["600","700","regular"]},"Amiri":{"family":"Amiri","category":"serif","variants":["700","700italic","italic","regular"]},"Amita":{"family":"Amita","category":"handwriting","variants":["700","regular"]},"Anaheim":{"family":"Anaheim","category":"sans-serif","variants":["regular"]},"Andada":{"family":"Andada","category":"serif","variants":["regular"]},"Andika":{"family":"Andika","category":"sans-serif","variants":["regular"]},"Andika New Basic":{"family":"Andika New Basic","category":"sans-serif","variants":["700","700italic","italic","regular"]},"Angkor":{"family":"Angkor","category":"display","variants":["regular"]},"Annie Use Your Telescope":{"family":"Annie Use Your Telescope","category":"handwriting","variants":["regular"]},"Anonymous Pro":{"family":"Anonymous Pro","category":"monospace","variants":["700","700italic","italic","regular"]},"Antic":{"family":"Antic","category":"sans-serif","variants":["regular"]},"Antic Didone":{"family":"Antic Didone","category":"serif","variants":["regular"]},"Antic Slab":{"family":"Antic Slab","category":"serif","variants":["regular"]},"Anton":{"family":"Anton","category":"sans-serif","variants":["regular"]},"Antonio":{"family":"Antonio","category":"sans-serif","variants":["100","200","300","500","600","700","regular"]},"Arapey":{"family":"Arapey","category":"serif","variants":["italic","regular"]},"Arbutus":{"family":"Arbutus","category":"display","variants":["regular"]},"Arbutus Slab":{"family":"Arbutus Slab","category":"serif","variants":["regular"]},"Architects Daughter":{"family":"Architects Daughter","category":"handwriting","variants":["regular"]},"Archivo":{"family":"Archivo","category":"sans-serif","variants":["100","100italic","200","200italic","300","300italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic","italic","regular"]},"Archivo Black":{"family":"Archivo Black","category":"sans-serif","variants":["regular"]},"Archivo Narrow":{"family":"Archivo Narrow","category":"sans-serif","variants":["500","500italic","600","600italic","700","700italic","italic","regular"]},"Aref Ruqaa":{"family":"Aref Ruqaa","category":"serif","variants":["700","regular"]},"Arima Madurai":{"family":"Arima Madurai","category":"display","variants":["100","200","300","500","700","800","900","regular"]},"Arimo":{"family":"Arimo","category":"sans-serif","variants":["500","500italic","600","600italic","700","700italic","italic","regular"]},"Arizonia":{"family":"Arizonia","category":"handwriting","variants":["regular"]},"Armata":{"family":"Armata","category":"sans-serif","variants":["regular"]},"Arsenal":{"family":"Arsenal","category":"sans-serif","variants":["700","700italic","italic","regular"]},"Artifika":{"family":"Artifika","category":"serif","variants":["regular"]},"Arvo":{"family":"Arvo","category":"serif","variants":["700","700italic","italic","regular"]},"Arya":{"family":"Arya","category":"sans-serif","variants":["700","regular"]},"Asap":{"family":"Asap","category":"sans-serif","variants":["500","500italic","600","600italic","700","700italic","italic","regular"]},"Asap Condensed":{"family":"Asap Condensed","category":"sans-serif","variants":["500","500italic","600","600italic","700","700italic","italic","regular"]},"Asar":{"family":"Asar","category":"serif","variants":["regular"]},"Asset":{"family":"Asset","category":"display","variants":["regular"]},"Assistant":{"family":"Assistant","category":"sans-serif","variants":["200","300","500","600","700","800","regular"]},"Astloch":{"family":"Astloch","category":"display","variants":["700","regular"]},"Asul":{"family":"Asul","category":"sans-serif","variants":["700","regular"]},"Athiti":{"family":"Athiti","category":"sans-serif","variants":["200","300","500","600","700","regular"]},"Atma":{"family":"Atma","category":"display","variants":["300","500","600","700","regular"]},"Atomic Age":{"family":"Atomic Age","category":"display","variants":["regular"]},"Aubrey":{"family":"Aubrey","category":"display","variants":["regular"]},"Audiowide":{"family":"Audiowide","category":"display","variants":["regular"]},"Autour One":{"family":"Autour One","category":"display","variants":["regular"]},"Average":{"family":"Average","category":"serif","variants":["regular"]},"Average Sans":{"family":"Average Sans","category":"sans-serif","variants":["regular"]},"Averia Gruesa Libre":{"family":"Averia Gruesa Libre","category":"display","variants":["regular"]},"Averia Libre":{"family":"Averia Libre","category":"display","variants":["300","300italic","700","700italic","italic","regular"]},"Averia Sans Libre":{"family":"Averia Sans Libre","category":"display","variants":["300","300italic","700","700italic","italic","regular"]},"Averia Serif Libre":{"family":"Averia Serif Libre","category":"display","variants":["300","300italic","700","700italic","italic","regular"]},"B612":{"family":"B612","category":"sans-serif","variants":["700","700italic","italic","regular"]},"B612 Mono":{"family":"B612 Mono","category":"monospace","variants":["700","700italic","italic","regular"]},"Bad Script":{"family":"Bad Script","category":"handwriting","variants":["regular"]},"Bahiana":{"family":"Bahiana","category":"display","variants":["regular"]},"Bahianita":{"family":"Bahianita","category":"display","variants":["regular"]},"Bai Jamjuree":{"family":"Bai Jamjuree","category":"sans-serif","variants":["200","200italic","300","300italic","500","500italic","600","600italic","700","700italic","italic","regular"]},"Ballet":{"family":"Ballet","category":"handwriting","variants":["regular"]},"Baloo 2":{"family":"Baloo 2","category":"display","variants":["500","600","700","800","regular"]},"Baloo Bhai 2":{"family":"Baloo Bhai 2","category":"display","variants":["500","600","700","800","regular"]},"Baloo Bhaina 2":{"family":"Baloo Bhaina 2","category":"display","variants":["500","600","700","800","regular"]},"Baloo Chettan 2":{"family":"Baloo Chettan 2","category":"display","variants":["500","600","700","800","regular"]},"Baloo Da 2":{"family":"Baloo Da 2","category":"display","variants":["500","600","700","800","regular"]},"Baloo Paaji 2":{"family":"Baloo Paaji 2","category":"display","variants":["500","600","700","800","regular"]},"Baloo Tamma 2":{"family":"Baloo Tamma 2","category":"display","variants":["500","600","700","800","regular"]},"Baloo Tammudu 2":{"family":"Baloo Tammudu 2","category":"display","variants":["500","600","700","800","regular"]},"Baloo Thambi 2":{"family":"Baloo Thambi 2","category":"display","variants":["500","600","700","800","regular"]},"Balsamiq Sans":{"family":"Balsamiq Sans","category":"display","variants":["700","700italic","italic","regular"]},"Balthazar":{"family":"Balthazar","category":"serif","variants":["regular"]},"Bangers":{"family":"Bangers","category":"display","variants":["regular"]},"Barlow":{"family":"Barlow","category":"sans-serif","variants":["100","100italic","200","200italic","300","300italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic","italic","regular"]},"Barlow Condensed":{"family":"Barlow Condensed","category":"sans-serif","variants":["100","100italic","200","200italic","300","300italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic","italic","regular"]},"Barlow Semi Condensed":{"family":"Barlow Semi Condensed","category":"sans-serif","variants":["100","100italic","200","200italic","300","300italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic","italic","regular"]},"Barriecito":{"family":"Barriecito","category":"display","variants":["regular"]},"Barrio":{"family":"Barrio","category":"display","variants":["regular"]},"Basic":{"family":"Basic","category":"sans-serif","variants":["regular"]},"Baskervville":{"family":"Baskervville","category":"serif","variants":["italic","regular"]},"Battambang":{"family":"Battambang","category":"display","variants":["700","regular"]},"Baumans":{"family":"Baumans","category":"display","variants":["regular"]},"Bayon":{"family":"Bayon","category":"display","variants":["regular"]},"Be Vietnam":{"family":"Be Vietnam","category":"sans-serif","variants":["100","100italic","300","300italic","500","500italic","600","600italic","700","700italic","800","800italic","italic","regular"]},"Bebas Neue":{"family":"Bebas Neue","category":"display","variants":["regular"]},"Belgrano":{"family":"Belgrano","category":"serif","variants":["regular"]},"Bellefair":{"family":"Bellefair","category":"serif","variants":["regular"]},"Belleza":{"family":"Belleza","category":"sans-serif","variants":["regular"]},"Bellota":{"family":"Bellota","category":"display","variants":["300","300italic","700","700italic","italic","regular"]},"Bellota Text":{"family":"Bellota Text","category":"display","variants":["300","300italic","700","700italic","italic","regular"]},"BenchNine":{"family":"BenchNine","category":"sans-serif","variants":["300","700","regular"]},"Benne":{"family":"Benne","category":"serif","variants":["regular"]},"Bentham":{"family":"Bentham","category":"serif","variants":["regular"]},"Berkshire Swash":{"family":"Berkshire Swash","category":"handwriting","variants":["regular"]},"Beth Ellen":{"family":"Beth Ellen","category":"handwriting","variants":["regular"]},"Bevan":{"family":"Bevan","category":"display","variants":["regular"]},"Big Shoulders Display":{"family":"Big Shoulders Display","category":"display","variants":["100","300","500","600","700","800","900","regular"]},"Big Shoulders Inline Display":{"family":"Big Shoulders Inline Display","category":"display","variants":["100","300","500","600","700","800","900","regular"]},"Big Shoulders Inline Text":{"family":"Big Shoulders Inline Text","category":"display","variants":["100","300","500","600","700","800","900","regular"]},"Big Shoulders Stencil Display":{"family":"Big Shoulders Stencil Display","category":"display","variants":["100","300","500","600","700","800","900","regular"]},"Big Shoulders Stencil Text":{"family":"Big Shoulders Stencil Text","category":"display","variants":["100","300","500","600","700","800","900","regular"]},"Big Shoulders Text":{"family":"Big Shoulders Text","category":"display","variants":["100","300","500","600","700","800","900","regular"]},"Bigelow Rules":{"family":"Bigelow Rules","category":"display","variants":["regular"]},"Bigshot One":{"family":"Bigshot One","category":"display","variants":["regular"]},"Bilbo":{"family":"Bilbo","category":"handwriting","variants":["regular"]},"Bilbo Swash Caps":{"family":"Bilbo Swash Caps","category":"handwriting","variants":["regular"]},"BioRhyme":{"family":"BioRhyme","category":"serif","variants":["200","300","700","800","regular"]},"BioRhyme Expanded":{"family":"BioRhyme Expanded","category":"serif","variants":["200","300","700","800","regular"]},"Biryani":{"family":"Biryani","category":"sans-serif","variants":["200","300","600","700","800","900","regular"]},"Bitter":{"family":"Bitter","category":"serif","variants":["100","100italic","200","200italic","300","300italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic","italic","regular"]},"Black And White Picture":{"family":"Black And White Picture","category":"sans-serif","variants":["regular"]},"Black Han Sans":{"family":"Black Han Sans","category":"sans-serif","variants":["regular"]},"Black Ops One":{"family":"Black Ops One","category":"display","variants":["regular"]},"Blinker":{"family":"Blinker","category":"sans-serif","variants":["100","200","300","600","700","800","900","regular"]},"Bodoni Moda":{"family":"Bodoni Moda","category":"serif","variants":["500","500italic","600","600italic","700","700italic","800","800italic","900","900italic","italic","regular"]},"Bokor":{"family":"Bokor","category":"display","variants":["regular"]},"Bona Nova":{"family":"Bona Nova","category":"serif","variants":["700","italic","regular"]},"Bonbon":{"family":"Bonbon","category":"handwriting","variants":["regular"]},"Boogaloo":{"family":"Boogaloo","category":"display","variants":["regular"]},"Bowlby One":{"family":"Bowlby One","category":"display","variants":["regular"]},"Bowlby One SC":{"family":"Bowlby One SC","category":"display","variants":["regular"]},"Brawler":{"family":"Brawler","category":"serif","variants":["regular"]},"Bree Serif":{"family":"Bree Serif","category":"serif","variants":["regular"]},"Brygada 1918":{"family":"Brygada 1918","category":"serif","variants":["500","500italic","600","600italic","700","700italic","italic","regular"]},"Bubblegum Sans":{"family":"Bubblegum Sans","category":"display","variants":["regular"]},"Bubbler One":{"family":"Bubbler One","category":"sans-serif","variants":["regular"]},"Buda":{"family":"Buda","category":"display","variants":["300"]},"Buenard":{"family":"Buenard","category":"serif","variants":["700","regular"]},"Bungee":{"family":"Bungee","category":"display","variants":["regular"]},"Bungee Hairline":{"family":"Bungee Hairline","category":"display","variants":["regular"]},"Bungee Inline":{"family":"Bungee Inline","category":"display","variants":["regular"]},"Bungee Outline":{"family":"Bungee Outline","category":"display","variants":["regular"]},"Bungee Shade":{"family":"Bungee Shade","category":"display","variants":["regular"]},"Butcherman":{"family":"Butcherman","category":"display","variants":["regular"]},"Butterfly Kids":{"family":"Butterfly Kids","category":"handwriting","variants":["regular"]},"Cabin":{"family":"Cabin","category":"sans-serif","variants":["500","500italic","600","600italic","700","700italic","italic","regular"]},"Cabin Condensed":{"family":"Cabin Condensed","category":"sans-serif","variants":["500","600","700","regular"]},"Cabin Sketch":{"family":"Cabin Sketch","category":"display","variants":["700","regular"]},"Caesar Dressing":{"family":"Caesar Dressing","category":"display","variants":["regular"]},"Cagliostro":{"family":"Cagliostro","category":"sans-serif","variants":["regular"]},"Cairo":{"family":"Cairo","category":"sans-serif","variants":["200","300","600","700","900","regular"]},"Caladea":{"family":"Caladea","category":"serif","variants":["700","700italic","italic","regular"]},"Calistoga":{"family":"Calistoga","category":"display","variants":["regular"]},"Calligraffitti":{"family":"Calligraffitti","category":"handwriting","variants":["regular"]},"Cambay":{"family":"Cambay","category":"sans-serif","variants":["700","700italic","italic","regular"]},"Cambo":{"family":"Cambo","category":"serif","variants":["regular"]},"Candal":{"family":"Candal","category":"sans-serif","variants":["regular"]},"Cantarell":{"family":"Cantarell","category":"sans-serif","variants":["700","700italic","italic","regular"]},"Cantata One":{"family":"Cantata One","category":"serif","variants":["regular"]},"Cantora One":{"family":"Cantora One","category":"sans-serif","variants":["regular"]},"Capriola":{"family":"Capriola","category":"sans-serif","variants":["regular"]},"Cardo":{"family":"Cardo","category":"serif","variants":["700","italic","regular"]},"Carme":{"family":"Carme","category":"sans-serif","variants":["regular"]},"Carrois Gothic":{"family":"Carrois Gothic","category":"sans-serif","variants":["regular"]},"Carrois Gothic SC":{"family":"Carrois Gothic SC","category":"sans-serif","variants":["regular"]},"Carter One":{"family":"Carter One","category":"display","variants":["regular"]},"Castoro":{"family":"Castoro","category":"serif","variants":["italic","regular"]},"Catamaran":{"family":"Catamaran","category":"sans-serif","variants":["100","200","300","500","600","700","800","900","regular"]},"Caudex":{"family":"Caudex","category":"serif","variants":["700","700italic","italic","regular"]},"Caveat":{"family":"Caveat","category":"handwriting","variants":["500","600","700","regular"]},"Caveat Brush":{"family":"Caveat Brush","category":"handwriting","variants":["regular"]},"Cedarville Cursive":{"family":"Cedarville Cursive","category":"handwriting","variants":["regular"]},"Ceviche One":{"family":"Ceviche One","category":"display","variants":["regular"]},"Chakra Petch":{"family":"Chakra Petch","category":"sans-serif","variants":["300","300italic","500","500italic","600","600italic","700","700italic","italic","regular"]},"Changa":{"family":"Changa","category":"sans-serif","variants":["200","300","500","600","700","800","regular"]},"Changa One":{"family":"Changa One","category":"display","variants":["italic","regular"]},"Chango":{"family":"Chango","category":"display","variants":["regular"]},"Charm":{"family":"Charm","category":"handwriting","variants":["700","regular"]},"Charmonman":{"family":"Charmonman","category":"handwriting","variants":["700","regular"]},"Chathura":{"family":"Chathura","category":"sans-serif","variants":["100","300","700","800","regular"]},"Chau Philomene One":{"family":"Chau Philomene One","category":"sans-serif","variants":["italic","regular"]},"Chela One":{"family":"Chela One","category":"display","variants":["regular"]},"Chelsea Market":{"family":"Chelsea Market","category":"display","variants":["regular"]},"Chenla":{"family":"Chenla","category":"display","variants":["regular"]},"Cherry Cream Soda":{"family":"Cherry Cream Soda","category":"display","variants":["regular"]},"Cherry Swash":{"family":"Cherry Swash","category":"display","variants":["700","regular"]},"Chewy":{"family":"Chewy","category":"display","variants":["regular"]},"Chicle":{"family":"Chicle","category":"display","variants":["regular"]},"Chilanka":{"family":"Chilanka","category":"handwriting","variants":["regular"]},"Chivo":{"family":"Chivo","category":"sans-serif","variants":["300","300italic","700","700italic","900","900italic","italic","regular"]},"Chonburi":{"family":"Chonburi","category":"display","variants":["regular"]},"Cinzel":{"family":"Cinzel","category":"serif","variants":["500","600","700","800","900","regular"]},"Cinzel Decorative":{"family":"Cinzel Decorative","category":"display","variants":["700","900","regular"]},"Clicker Script":{"family":"Clicker Script","category":"handwriting","variants":["regular"]},"Coda":{"family":"Coda","category":"display","variants":["800","regular"]},"Coda Caption":{"family":"Coda Caption","category":"sans-serif","variants":["800"]},"Codystar":{"family":"Codystar","category":"display","variants":["300","regular"]},"Coiny":{"family":"Coiny","category":"display","variants":["regular"]},"Combo":{"family":"Combo","category":"display","variants":["regular"]},"Comfortaa":{"family":"Comfortaa","category":"display","variants":["300","500","600","700","regular"]},"Comic Neue":{"family":"Comic Neue","category":"handwriting","variants":["300","300italic","700","700italic","italic","regular"]},"Coming Soon":{"family":"Coming Soon","category":"handwriting","variants":["regular"]},"Commissioner":{"family":"Commissioner","category":"sans-serif","variants":["100","200","300","500","600","700","800","900","regular"]},"Concert One":{"family":"Concert One","category":"display","variants":["regular"]},"Condiment":{"family":"Condiment","category":"handwriting","variants":["regular"]},"Content":{"family":"Content","category":"display","variants":["700","regular"]},"Contrail One":{"family":"Contrail One","category":"display","variants":["regular"]},"Convergence":{"family":"Convergence","category":"sans-serif","variants":["regular"]},"Cookie":{"family":"Cookie","category":"handwriting","variants":["regular"]},"Copse":{"family":"Copse","category":"serif","variants":["regular"]},"Corben":{"family":"Corben","category":"display","variants":["700","regular"]},"Cormorant":{"family":"Cormorant","category":"serif","variants":["300","300italic","500","500italic","600","600italic","700","700italic","italic","regular"]},"Cormorant Garamond":{"family":"Cormorant Garamond","category":"serif","variants":["300","300italic","500","500italic","600","600italic","700","700italic","italic","regular"]},"Cormorant Infant":{"family":"Cormorant Infant","category":"serif","variants":["300","300italic","500","500italic","600","600italic","700","700italic","italic","regular"]},"Cormorant SC":{"family":"Cormorant SC","category":"serif","variants":["300","500","600","700","regular"]},"Cormorant Unicase":{"family":"Cormorant Unicase","category":"serif","variants":["300","500","600","700","regular"]},"Cormorant Upright":{"family":"Cormorant Upright","category":"serif","variants":["300","500","600","700","regular"]},"Courgette":{"family":"Courgette","category":"handwriting","variants":["regular"]},"Courier Prime":{"family":"Courier Prime","category":"monospace","variants":["700","700italic","italic","regular"]},"Cousine":{"family":"Cousine","category":"monospace","variants":["700","700italic","italic","regular"]},"Coustard":{"family":"Coustard","category":"serif","variants":["900","regular"]},"Covered By Your Grace":{"family":"Covered By Your Grace","category":"handwriting","variants":["regular"]},"Crafty Girls":{"family":"Crafty Girls","category":"handwriting","variants":["regular"]},"Creepster":{"family":"Creepster","category":"display","variants":["regular"]},"Crete Round":{"family":"Crete Round","category":"serif","variants":["italic","regular"]},"Crimson Pro":{"family":"Crimson Pro","category":"serif","variants":["200","200italic","300","300italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic","italic","regular"]},"Crimson Text":{"family":"Crimson Text","category":"serif","variants":["600","600italic","700","700italic","italic","regular"]},"Croissant One":{"family":"Croissant One","category":"display","variants":["regular"]},"Crushed":{"family":"Crushed","category":"display","variants":["regular"]},"Cuprum":{"family":"Cuprum","category":"sans-serif","variants":["500","500italic","600","600italic","700","700italic","italic","regular"]},"Cute Font":{"family":"Cute Font","category":"display","variants":["regular"]},"Cutive":{"family":"Cutive","category":"serif","variants":["regular"]},"Cutive Mono":{"family":"Cutive Mono","category":"monospace","variants":["regular"]},"DM Mono":{"family":"DM Mono","category":"monospace","variants":["300","300italic","500","500italic","italic","regular"]},"DM Sans":{"family":"DM Sans","category":"sans-serif","variants":["500","500italic","700","700italic","italic","regular"]},"DM Serif Display":{"family":"DM Serif Display","category":"serif","variants":["italic","regular"]},"DM Serif Text":{"family":"DM Serif Text","category":"serif","variants":["italic","regular"]},"Damion":{"family":"Damion","category":"handwriting","variants":["regular"]},"Dancing Script":{"family":"Dancing Script","category":"handwriting","variants":["500","600","700","regular"]},"Dangrek":{"family":"Dangrek","category":"display","variants":["regular"]},"Darker Grotesque":{"family":"Darker Grotesque","category":"sans-serif","variants":["300","500","600","700","800","900","regular"]},"David Libre":{"family":"David Libre","category":"serif","variants":["500","700","regular"]},"Dawning of a New Day":{"family":"Dawning of a New Day","category":"handwriting","variants":["regular"]},"Days One":{"family":"Days One","category":"sans-serif","variants":["regular"]},"Dekko":{"family":"Dekko","category":"handwriting","variants":["regular"]},"Dela Gothic One":{"family":"Dela Gothic One","category":"display","variants":["regular"]},"Delius":{"family":"Delius","category":"handwriting","variants":["regular"]},"Delius Swash Caps":{"family":"Delius Swash Caps","category":"handwriting","variants":["regular"]},"Delius Unicase":{"family":"Delius Unicase","category":"handwriting","variants":["700","regular"]},"Della Respira":{"family":"Della Respira","category":"serif","variants":["regular"]},"Denk One":{"family":"Denk One","category":"sans-serif","variants":["regular"]},"Devonshire":{"family":"Devonshire","category":"handwriting","variants":["regular"]},"Dhurjati":{"family":"Dhurjati","category":"sans-serif","variants":["regular"]},"Didact Gothic":{"family":"Didact Gothic","category":"sans-serif","variants":["regular"]},"Diplomata":{"family":"Diplomata","category":"display","variants":["regular"]},"Diplomata SC":{"family":"Diplomata SC","category":"display","variants":["regular"]},"Do Hyeon":{"family":"Do Hyeon","category":"sans-serif","variants":["regular"]},"Dokdo":{"family":"Dokdo","category":"handwriting","variants":["regular"]},"Domine":{"family":"Domine","category":"serif","variants":["500","600","700","regular"]},"Donegal One":{"family":"Donegal One","category":"serif","variants":["regular"]},"Doppio One":{"family":"Doppio One","category":"sans-serif","variants":["regular"]},"Dorsa":{"family":"Dorsa","category":"sans-serif","variants":["regular"]},"Dosis":{"family":"Dosis","category":"sans-serif","variants":["200","300","500","600","700","800","regular"]},"DotGothic16":{"family":"DotGothic16","category":"sans-serif","variants":["regular"]},"Dr Sugiyama":{"family":"Dr Sugiyama","category":"handwriting","variants":["regular"]},"Duru Sans":{"family":"Duru Sans","category":"sans-serif","variants":["regular"]},"Dynalight":{"family":"Dynalight","category":"display","variants":["regular"]},"EB Garamond":{"family":"EB Garamond","category":"serif","variants":["500","500italic","600","600italic","700","700italic","800","800italic","italic","regular"]},"Eagle Lake":{"family":"Eagle Lake","category":"handwriting","variants":["regular"]},"East Sea Dokdo":{"family":"East Sea Dokdo","category":"handwriting","variants":["regular"]},"Eater":{"family":"Eater","category":"display","variants":["regular"]},"Economica":{"family":"Economica","category":"sans-serif","variants":["700","700italic","italic","regular"]},"Eczar":{"family":"Eczar","category":"serif","variants":["500","600","700","800","regular"]},"El Messiri":{"family":"El Messiri","category":"sans-serif","variants":["500","600","700","regular"]},"Electrolize":{"family":"Electrolize","category":"sans-serif","variants":["regular"]},"Elsie":{"family":"Elsie","category":"display","variants":["900","regular"]},"Elsie Swash Caps":{"family":"Elsie Swash Caps","category":"display","variants":["900","regular"]},"Emblema One":{"family":"Emblema One","category":"display","variants":["regular"]},"Emilys Candy":{"family":"Emilys Candy","category":"display","variants":["regular"]},"Encode Sans":{"family":"Encode Sans","category":"sans-serif","variants":["100","200","300","500","600","700","800","900","regular"]},"Encode Sans Condensed":{"family":"Encode Sans Condensed","category":"sans-serif","variants":["100","200","300","500","600","700","800","900","regular"]},"Encode Sans Expanded":{"family":"Encode Sans Expanded","category":"sans-serif","variants":["100","200","300","500","600","700","800","900","regular"]},"Encode Sans SC":{"family":"Encode Sans SC","category":"sans-serif","variants":["100","200","300","500","600","700","800","900","regular"]},"Encode Sans Semi Condensed":{"family":"Encode Sans Semi Condensed","category":"sans-serif","variants":["100","200","300","500","600","700","800","900","regular"]},"Encode Sans Semi Expanded":{"family":"Encode Sans Semi Expanded","category":"sans-serif","variants":["100","200","300","500","600","700","800","900","regular"]},"Engagement":{"family":"Engagement","category":"handwriting","variants":["regular"]},"Englebert":{"family":"Englebert","category":"sans-serif","variants":["regular"]},"Enriqueta":{"family":"Enriqueta","category":"serif","variants":["500","600","700","regular"]},"Epilogue":{"family":"Epilogue","category":"sans-serif","variants":["100","100italic","200","200italic","300","300italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic","italic","regular"]},"Erica One":{"family":"Erica One","category":"display","variants":["regular"]},"Esteban":{"family":"Esteban","category":"serif","variants":["regular"]},"Euphoria Script":{"family":"Euphoria Script","category":"handwriting","variants":["regular"]},"Ewert":{"family":"Ewert","category":"display","variants":["regular"]},"Exo":{"family":"Exo","category":"sans-serif","variants":["100","100italic","200","200italic","300","300italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic","italic","regular"]},"Exo 2":{"family":"Exo 2","category":"sans-serif","variants":["100","100italic","200","200italic","300","300italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic","italic","regular"]},"Expletus Sans":{"family":"Expletus Sans","category":"display","variants":["500","500italic","600","600italic","700","700italic","italic","regular"]},"Fahkwang":{"family":"Fahkwang","category":"sans-serif","variants":["200","200italic","300","300italic","500","500italic","600","600italic","700","700italic","italic","regular"]},"Fanwood Text":{"family":"Fanwood Text","category":"serif","variants":["italic","regular"]},"Farro":{"family":"Farro","category":"sans-serif","variants":["300","500","700","regular"]},"Farsan":{"family":"Farsan","category":"display","variants":["regular"]},"Fascinate":{"family":"Fascinate","category":"display","variants":["regular"]},"Fascinate Inline":{"family":"Fascinate Inline","category":"display","variants":["regular"]},"Faster One":{"family":"Faster One","category":"display","variants":["regular"]},"Fasthand":{"family":"Fasthand","category":"serif","variants":["regular"]},"Fauna One":{"family":"Fauna One","category":"serif","variants":["regular"]},"Faustina":{"family":"Faustina","category":"serif","variants":["500","500italic","600","600italic","700","700italic","italic","regular"]},"Federant":{"family":"Federant","category":"display","variants":["regular"]},"Federo":{"family":"Federo","category":"sans-serif","variants":["regular"]},"Felipa":{"family":"Felipa","category":"handwriting","variants":["regular"]},"Fenix":{"family":"Fenix","category":"serif","variants":["regular"]},"Festive":{"family":"Festive","category":"handwriting","variants":["regular"]},"Finger Paint":{"family":"Finger Paint","category":"display","variants":["regular"]},"Fira Code":{"family":"Fira Code","category":"monospace","variants":["300","500","600","700","regular"]},"Fira Mono":{"family":"Fira Mono","category":"monospace","variants":["500","700","regular"]},"Fira Sans":{"family":"Fira Sans","category":"sans-serif","variants":["100","100italic","200","200italic","300","300italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic","italic","regular"]},"Fira Sans Condensed":{"family":"Fira Sans Condensed","category":"sans-serif","variants":["100","100italic","200","200italic","300","300italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic","italic","regular"]},"Fira Sans Extra Condensed":{"family":"Fira Sans Extra Condensed","category":"sans-serif","variants":["100","100italic","200","200italic","300","300italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic","italic","regular"]},"Fjalla One":{"family":"Fjalla One","category":"sans-serif","variants":["regular"]},"Fjord One":{"family":"Fjord One","category":"serif","variants":["regular"]},"Flamenco":{"family":"Flamenco","category":"display","variants":["300","regular"]},"Flavors":{"family":"Flavors","category":"display","variants":["regular"]},"Fondamento":{"family":"Fondamento","category":"handwriting","variants":["italic","regular"]},"Fontdiner Swanky":{"family":"Fontdiner Swanky","category":"display","variants":["regular"]},"Forum":{"family":"Forum","category":"display","variants":["regular"]},"Francois One":{"family":"Francois One","category":"sans-serif","variants":["regular"]},"Frank Ruhl Libre":{"family":"Frank Ruhl Libre","category":"serif","variants":["300","500","700","900","regular"]},"Fraunces":{"family":"Fraunces","category":"serif","variants":["100","100italic","200","200italic","300","300italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic","italic","regular"]},"Freckle Face":{"family":"Freckle Face","category":"display","variants":["regular"]},"Fredericka the Great":{"family":"Fredericka the Great","category":"display","variants":["regular"]},"Fredoka One":{"family":"Fredoka One","category":"display","variants":["regular"]},"Freehand":{"family":"Freehand","category":"display","variants":["regular"]},"Fresca":{"family":"Fresca","category":"sans-serif","variants":["regular"]},"Frijole":{"family":"Frijole","category":"display","variants":["regular"]},"Fruktur":{"family":"Fruktur","category":"display","variants":["regular"]},"Fugaz One":{"family":"Fugaz One","category":"display","variants":["regular"]},"Fuggles":{"family":"Fuggles","category":"handwriting","variants":["regular"]},"GFS Didot":{"family":"GFS Didot","category":"serif","variants":["regular"]},"GFS Neohellenic":{"family":"GFS Neohellenic","category":"sans-serif","variants":["700","700italic","italic","regular"]},"Gabriela":{"family":"Gabriela","category":"serif","variants":["regular"]},"Gaegu":{"family":"Gaegu","category":"handwriting","variants":["300","700","regular"]},"Gafata":{"family":"Gafata","category":"sans-serif","variants":["regular"]},"Galada":{"family":"Galada","category":"display","variants":["regular"]},"Galdeano":{"family":"Galdeano","category":"sans-serif","variants":["regular"]},"Galindo":{"family":"Galindo","category":"display","variants":["regular"]},"Gamja Flower":{"family":"Gamja Flower","category":"handwriting","variants":["regular"]},"Gayathri":{"family":"Gayathri","category":"sans-serif","variants":["100","700","regular"]},"Gelasio":{"family":"Gelasio","category":"serif","variants":["500","500italic","600","600italic","700","700italic","italic","regular"]},"Gentium Basic":{"family":"Gentium Basic","category":"serif","variants":["700","700italic","italic","regular"]},"Gentium Book Basic":{"family":"Gentium Book Basic","category":"serif","variants":["700","700italic","italic","regular"]},"Geo":{"family":"Geo","category":"sans-serif","variants":["italic","regular"]},"Geostar":{"family":"Geostar","category":"display","variants":["regular"]},"Geostar Fill":{"family":"Geostar Fill","category":"display","variants":["regular"]},"Germania One":{"family":"Germania One","category":"display","variants":["regular"]},"Gidugu":{"family":"Gidugu","category":"sans-serif","variants":["regular"]},"Gilda Display":{"family":"Gilda Display","category":"serif","variants":["regular"]},"Girassol":{"family":"Girassol","category":"display","variants":["regular"]},"Give You Glory":{"family":"Give You Glory","category":"handwriting","variants":["regular"]},"Glass Antiqua":{"family":"Glass Antiqua","category":"display","variants":["regular"]},"Glegoo":{"family":"Glegoo","category":"serif","variants":["700","regular"]},"Gloria Hallelujah":{"family":"Gloria Hallelujah","category":"handwriting","variants":["regular"]},"Goblin One":{"family":"Goblin One","category":"display","variants":["regular"]},"Gochi Hand":{"family":"Gochi Hand","category":"handwriting","variants":["regular"]},"Goldman":{"family":"Goldman","category":"display","variants":["700","regular"]},"Gorditas":{"family":"Gorditas","category":"display","variants":["700","regular"]},"Gothic A1":{"family":"Gothic A1","category":"sans-serif","variants":["100","200","300","500","600","700","800","900","regular"]},"Gotu":{"family":"Gotu","category":"sans-serif","variants":["regular"]},"Goudy Bookletter 1911":{"family":"Goudy Bookletter 1911","category":"serif","variants":["regular"]},"Graduate":{"family":"Graduate","category":"display","variants":["regular"]},"Grand Hotel":{"family":"Grand Hotel","category":"handwriting","variants":["regular"]},"Grandstander":{"family":"Grandstander","category":"display","variants":["100","100italic","200","200italic","300","300italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic","italic","regular"]},"Gravitas One":{"family":"Gravitas One","category":"display","variants":["regular"]},"Great Vibes":{"family":"Great Vibes","category":"handwriting","variants":["regular"]},"Grenze":{"family":"Grenze","category":"serif","variants":["100","100italic","200","200italic","300","300italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic","italic","regular"]},"Grenze Gotisch":{"family":"Grenze Gotisch","category":"display","variants":["100","200","300","500","600","700","800","900","regular"]},"Griffy":{"family":"Griffy","category":"display","variants":["regular"]},"Gruppo":{"family":"Gruppo","category":"display","variants":["regular"]},"Gudea":{"family":"Gudea","category":"sans-serif","variants":["700","italic","regular"]},"Gugi":{"family":"Gugi","category":"display","variants":["regular"]},"Gupter":{"family":"Gupter","category":"serif","variants":["500","700","regular"]},"Gurajada":{"family":"Gurajada","category":"serif","variants":["regular"]},"Habibi":{"family":"Habibi","category":"serif","variants":["regular"]},"Hachi Maru Pop":{"family":"Hachi Maru Pop","category":"handwriting","variants":["regular"]},"Halant":{"family":"Halant","category":"serif","variants":["300","500","600","700","regular"]},"Hammersmith One":{"family":"Hammersmith One","category":"sans-serif","variants":["regular"]},"Hanalei":{"family":"Hanalei","category":"display","variants":["regular"]},"Hanalei Fill":{"family":"Hanalei Fill","category":"display","variants":["regular"]},"Handlee":{"family":"Handlee","category":"handwriting","variants":["regular"]},"Hanuman":{"family":"Hanuman","category":"serif","variants":["700","regular"]},"Happy Monkey":{"family":"Happy Monkey","category":"display","variants":["regular"]},"Harmattan":{"family":"Harmattan","category":"sans-serif","variants":["700","regular"]},"Headland One":{"family":"Headland One","category":"serif","variants":["regular"]},"Heebo":{"family":"Heebo","category":"sans-serif","variants":["100","200","300","500","600","700","800","900","regular"]},"Henny Penny":{"family":"Henny Penny","category":"display","variants":["regular"]},"Hepta Slab":{"family":"Hepta Slab","category":"serif","variants":["100","200","300","500","600","700","800","900","regular"]},"Herr Von Muellerhoff":{"family":"Herr Von Muellerhoff","category":"handwriting","variants":["regular"]},"Hi Melody":{"family":"Hi Melody","category":"handwriting","variants":["regular"]},"Hind":{"family":"Hind","category":"sans-serif","variants":["300","500","600","700","regular"]},"Hind Guntur":{"family":"Hind Guntur","category":"sans-serif","variants":["300","500","600","700","regular"]},"Hind Madurai":{"family":"Hind Madurai","category":"sans-serif","variants":["300","500","600","700","regular"]},"Hind Siliguri":{"family":"Hind Siliguri","category":"sans-serif","variants":["300","500","600","700","regular"]},"Hind Vadodara":{"family":"Hind Vadodara","category":"sans-serif","variants":["300","500","600","700","regular"]},"Holtwood One SC":{"family":"Holtwood One SC","category":"serif","variants":["regular"]},"Homemade Apple":{"family":"Homemade Apple","category":"handwriting","variants":["regular"]},"Homenaje":{"family":"Homenaje","category":"sans-serif","variants":["regular"]},"IBM Plex Mono":{"family":"IBM Plex Mono","category":"monospace","variants":["100","100italic","200","200italic","300","300italic","500","500italic","600","600italic","700","700italic","italic","regular"]},"IBM Plex Sans":{"family":"IBM Plex Sans","category":"sans-serif","variants":["100","100italic","200","200italic","300","300italic","500","500italic","600","600italic","700","700italic","italic","regular"]},"IBM Plex Sans Condensed":{"family":"IBM Plex Sans Condensed","category":"sans-serif","variants":["100","100italic","200","200italic","300","300italic","500","500italic","600","600italic","700","700italic","italic","regular"]},"IBM Plex Serif":{"family":"IBM Plex Serif","category":"serif","variants":["100","100italic","200","200italic","300","300italic","500","500italic","600","600italic","700","700italic","italic","regular"]},"IM Fell DW Pica":{"family":"IM Fell DW Pica","category":"serif","variants":["italic","regular"]},"IM Fell DW Pica SC":{"family":"IM Fell DW Pica SC","category":"serif","variants":["regular"]},"IM Fell Double Pica":{"family":"IM Fell Double Pica","category":"serif","variants":["italic","regular"]},"IM Fell Double Pica SC":{"family":"IM Fell Double Pica SC","category":"serif","variants":["regular"]},"IM Fell English":{"family":"IM Fell English","category":"serif","variants":["italic","regular"]},"IM Fell English SC":{"family":"IM Fell English SC","category":"serif","variants":["regular"]},"IM Fell French Canon":{"family":"IM Fell French Canon","category":"serif","variants":["italic","regular"]},"IM Fell French Canon SC":{"family":"IM Fell French Canon SC","category":"serif","variants":["regular"]},"IM Fell Great Primer":{"family":"IM Fell Great Primer","category":"serif","variants":["italic","regular"]},"IM Fell Great Primer SC":{"family":"IM Fell Great Primer SC","category":"serif","variants":["regular"]},"Ibarra Real Nova":{"family":"Ibarra Real Nova","category":"serif","variants":["500","500italic","600","600italic","700","700italic","italic","regular"]},"Iceberg":{"family":"Iceberg","category":"display","variants":["regular"]},"Iceland":{"family":"Iceland","category":"display","variants":["regular"]},"Imbue":{"family":"Imbue","category":"serif","variants":["100","200","300","500","600","700","800","900","regular"]},"Imprima":{"family":"Imprima","category":"sans-serif","variants":["regular"]},"Inconsolata":{"family":"Inconsolata","category":"monospace","variants":["200","300","500","600","700","800","900","regular"]},"Inder":{"family":"Inder","category":"sans-serif","variants":["regular"]},"Indie Flower":{"family":"Indie Flower","category":"handwriting","variants":["regular"]},"Inika":{"family":"Inika","category":"serif","variants":["700","regular"]},"Inknut Antiqua":{"family":"Inknut Antiqua","category":"serif","variants":["300","500","600","700","800","900","regular"]},"Inria Sans":{"family":"Inria Sans","category":"sans-serif","variants":["300","300italic","700","700italic","italic","regular"]},"Inria Serif":{"family":"Inria Serif","category":"serif","variants":["300","300italic","700","700italic","italic","regular"]},"Inter":{"family":"Inter","category":"sans-serif","variants":["100","200","300","500","600","700","800","900","regular"]},"Irish Grover":{"family":"Irish Grover","category":"display","variants":["regular"]},"Istok Web":{"family":"Istok Web","category":"sans-serif","variants":["700","700italic","italic","regular"]},"Italiana":{"family":"Italiana","category":"serif","variants":["regular"]},"Italianno":{"family":"Italianno","category":"handwriting","variants":["regular"]},"Itim":{"family":"Itim","category":"handwriting","variants":["regular"]},"Jacques Francois":{"family":"Jacques Francois","category":"serif","variants":["regular"]},"Jacques Francois Shadow":{"family":"Jacques Francois Shadow","category":"display","variants":["regular"]},"Jaldi":{"family":"Jaldi","category":"sans-serif","variants":["700","regular"]},"JetBrains Mono":{"family":"JetBrains Mono","category":"monospace","variants":["100","100italic","200","200italic","300","300italic","500","500italic","600","600italic","700","700italic","800","800italic","italic","regular"]},"Jim Nightshade":{"family":"Jim Nightshade","category":"handwriting","variants":["regular"]},"Jockey One":{"family":"Jockey One","category":"sans-serif","variants":["regular"]},"Jolly Lodger":{"family":"Jolly Lodger","category":"display","variants":["regular"]},"Jomhuria":{"family":"Jomhuria","category":"display","variants":["regular"]},"Jomolhari":{"family":"Jomolhari","category":"serif","variants":["regular"]},"Josefin Sans":{"family":"Josefin Sans","category":"sans-serif","variants":["100","100italic","200","200italic","300","300italic","500","500italic","600","600italic","700","700italic","italic","regular"]},"Josefin Slab":{"family":"Josefin Slab","category":"serif","variants":["100","100italic","200","200italic","300","300italic","500","500italic","600","600italic","700","700italic","italic","regular"]},"Jost":{"family":"Jost","category":"sans-serif","variants":["100","100italic","200","200italic","300","300italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic","italic","regular"]},"Joti One":{"family":"Joti One","category":"display","variants":["regular"]},"Jua":{"family":"Jua","category":"sans-serif","variants":["regular"]},"Judson":{"family":"Judson","category":"serif","variants":["700","italic","regular"]},"Julee":{"family":"Julee","category":"handwriting","variants":["regular"]},"Julius Sans One":{"family":"Julius Sans One","category":"sans-serif","variants":["regular"]},"Junge":{"family":"Junge","category":"serif","variants":["regular"]},"Jura":{"family":"Jura","category":"sans-serif","variants":["300","500","600","700","regular"]},"Just Another Hand":{"family":"Just Another Hand","category":"handwriting","variants":["regular"]},"Just Me Again Down Here":{"family":"Just Me Again Down Here","category":"handwriting","variants":["regular"]},"K2D":{"family":"K2D","category":"sans-serif","variants":["100","100italic","200","200italic","300","300italic","500","500italic","600","600italic","700","700italic","800","800italic","italic","regular"]},"Kadwa":{"family":"Kadwa","category":"serif","variants":["700","regular"]},"Kalam":{"family":"Kalam","category":"handwriting","variants":["300","700","regular"]},"Kameron":{"family":"Kameron","category":"serif","variants":["700","regular"]},"Kanit":{"family":"Kanit","category":"sans-serif","variants":["100","100italic","200","200italic","300","300italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic","italic","regular"]},"Kantumruy":{"family":"Kantumruy","category":"sans-serif","variants":["300","700","regular"]},"Karantina":{"family":"Karantina","category":"display","variants":["300","700","regular"]},"Karla":{"family":"Karla","category":"sans-serif","variants":["200","200italic","300","300italic","500","500italic","600","600italic","700","700italic","800","800italic","italic","regular"]},"Karma":{"family":"Karma","category":"serif","variants":["300","500","600","700","regular"]},"Katibeh":{"family":"Katibeh","category":"display","variants":["regular"]},"Kaushan Script":{"family":"Kaushan Script","category":"handwriting","variants":["regular"]},"Kavivanar":{"family":"Kavivanar","category":"handwriting","variants":["regular"]},"Kavoon":{"family":"Kavoon","category":"display","variants":["regular"]},"Kdam Thmor":{"family":"Kdam Thmor","category":"display","variants":["regular"]},"Keania One":{"family":"Keania One","category":"display","variants":["regular"]},"Kelly Slab":{"family":"Kelly Slab","category":"display","variants":["regular"]},"Kenia":{"family":"Kenia","category":"display","variants":["regular"]},"Khand":{"family":"Khand","category":"sans-serif","variants":["300","500","600","700","regular"]},"Khmer":{"family":"Khmer","category":"display","variants":["regular"]},"Khula":{"family":"Khula","category":"sans-serif","variants":["300","600","700","800","regular"]},"Kirang Haerang":{"family":"Kirang Haerang","category":"display","variants":["regular"]},"Kite One":{"family":"Kite One","category":"sans-serif","variants":["regular"]},"Kiwi Maru":{"family":"Kiwi Maru","category":"serif","variants":["300","500","regular"]},"Knewave":{"family":"Knewave","category":"display","variants":["regular"]},"KoHo":{"family":"KoHo","category":"sans-serif","variants":["200","200italic","300","300italic","500","500italic","600","600italic","700","700italic","italic","regular"]},"Kodchasan":{"family":"Kodchasan","category":"sans-serif","variants":["200","200italic","300","300italic","500","500italic","600","600italic","700","700italic","italic","regular"]},"Kosugi":{"family":"Kosugi","category":"sans-serif","variants":["regular"]},"Kosugi Maru":{"family":"Kosugi Maru","category":"sans-serif","variants":["regular"]},"Kotta One":{"family":"Kotta One","category":"serif","variants":["regular"]},"Koulen":{"family":"Koulen","category":"display","variants":["regular"]},"Kranky":{"family":"Kranky","category":"display","variants":["regular"]},"Kreon":{"family":"Kreon","category":"serif","variants":["300","500","600","700","regular"]},"Kristi":{"family":"Kristi","category":"handwriting","variants":["regular"]},"Krona One":{"family":"Krona One","category":"sans-serif","variants":["regular"]},"Krub":{"family":"Krub","category":"sans-serif","variants":["200","200italic","300","300italic","500","500italic","600","600italic","700","700italic","italic","regular"]},"Kufam":{"family":"Kufam","category":"sans-serif","variants":["500","500italic","600","600italic","700","700italic","800","800italic","900","900italic","italic","regular"]},"Kulim Park":{"family":"Kulim Park","category":"sans-serif","variants":["200","200italic","300","300italic","600","600italic","700","700italic","italic","regular"]},"Kumar One":{"family":"Kumar One","category":"display","variants":["regular"]},"Kumar One Outline":{"family":"Kumar One Outline","category":"display","variants":["regular"]},"Kumbh Sans":{"family":"Kumbh Sans","category":"sans-serif","variants":["300","700","regular"]},"Kurale":{"family":"Kurale","category":"serif","variants":["regular"]},"La Belle Aurore":{"family":"La Belle Aurore","category":"handwriting","variants":["regular"]},"Lacquer":{"family":"Lacquer","category":"display","variants":["regular"]},"Laila":{"family":"Laila","category":"sans-serif","variants":["300","500","600","700","regular"]},"Lakki Reddy":{"family":"Lakki Reddy","category":"handwriting","variants":["regular"]},"Lalezar":{"family":"Lalezar","category":"display","variants":["regular"]},"Lancelot":{"family":"Lancelot","category":"display","variants":["regular"]},"Langar":{"family":"Langar","category":"display","variants":["regular"]},"Lateef":{"family":"Lateef","category":"handwriting","variants":["regular"]},"Lato":{"family":"Lato","category":"sans-serif","variants":["100","100italic","300","300italic","700","700italic","900","900italic","italic","regular"]},"League Script":{"family":"League Script","category":"handwriting","variants":["regular"]},"Leckerli One":{"family":"Leckerli One","category":"handwriting","variants":["regular"]},"Ledger":{"family":"Ledger","category":"serif","variants":["regular"]},"Lekton":{"family":"Lekton","category":"sans-serif","variants":["700","italic","regular"]},"Lemon":{"family":"Lemon","category":"display","variants":["regular"]},"Lemonada":{"family":"Lemonada","category":"display","variants":["300","500","600","700","regular"]},"Lexend":{"family":"Lexend","category":"sans-serif","variants":["100","300","500","600","700","800","regular"]},"Lexend Deca":{"family":"Lexend Deca","category":"sans-serif","variants":["regular"]},"Lexend Exa":{"family":"Lexend Exa","category":"sans-serif","variants":["regular"]},"Lexend Giga":{"family":"Lexend Giga","category":"sans-serif","variants":["regular"]},"Lexend Mega":{"family":"Lexend Mega","category":"sans-serif","variants":["regular"]},"Lexend Peta":{"family":"Lexend Peta","category":"sans-serif","variants":["regular"]},"Lexend Tera":{"family":"Lexend Tera","category":"sans-serif","variants":["regular"]},"Lexend Zetta":{"family":"Lexend Zetta","category":"sans-serif","variants":["regular"]},"Libre Barcode 128":{"family":"Libre Barcode 128","category":"display","variants":["regular"]},"Libre Barcode 128 Text":{"family":"Libre Barcode 128 Text","category":"display","variants":["regular"]},"Libre Barcode 39":{"family":"Libre Barcode 39","category":"display","variants":["regular"]},"Libre Barcode 39 Extended":{"family":"Libre Barcode 39 Extended","category":"display","variants":["regular"]},"Libre Barcode 39 Extended Text":{"family":"Libre Barcode 39 Extended Text","category":"display","variants":["regular"]},"Libre Barcode 39 Text":{"family":"Libre Barcode 39 Text","category":"display","variants":["regular"]},"Libre Barcode EAN13 Text":{"family":"Libre Barcode EAN13 Text","category":"display","variants":["regular"]},"Libre Baskerville":{"family":"Libre Baskerville","category":"serif","variants":["700","italic","regular"]},"Libre Caslon Display":{"family":"Libre Caslon Display","category":"serif","variants":["regular"]},"Libre Caslon Text":{"family":"Libre Caslon Text","category":"serif","variants":["700","italic","regular"]},"Libre Franklin":{"family":"Libre Franklin","category":"sans-serif","variants":["100","100italic","200","200italic","300","300italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic","italic","regular"]},"Life Savers":{"family":"Life Savers","category":"display","variants":["700","800","regular"]},"Lilita One":{"family":"Lilita One","category":"display","variants":["regular"]},"Lily Script One":{"family":"Lily Script One","category":"display","variants":["regular"]},"Limelight":{"family":"Limelight","category":"display","variants":["regular"]},"Linden Hill":{"family":"Linden Hill","category":"serif","variants":["italic","regular"]},"Literata":{"family":"Literata","category":"serif","variants":["200","200italic","300","300italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic","italic","regular"]},"Liu Jian Mao Cao":{"family":"Liu Jian Mao Cao","category":"handwriting","variants":["regular"]},"Livvic":{"family":"Livvic","category":"sans-serif","variants":["100","100italic","200","200italic","300","300italic","500","500italic","600","600italic","700","700italic","900","900italic","italic","regular"]},"Lobster":{"family":"Lobster","category":"display","variants":["regular"]},"Lobster Two":{"family":"Lobster Two","category":"display","variants":["700","700italic","italic","regular"]},"Londrina Outline":{"family":"Londrina Outline","category":"display","variants":["regular"]},"Londrina Shadow":{"family":"Londrina Shadow","category":"display","variants":["regular"]},"Londrina Sketch":{"family":"Londrina Sketch","category":"display","variants":["regular"]},"Londrina Solid":{"family":"Londrina Solid","category":"display","variants":["100","300","900","regular"]},"Long Cang":{"family":"Long Cang","category":"handwriting","variants":["regular"]},"Lora":{"family":"Lora","category":"serif","variants":["500","500italic","600","600italic","700","700italic","italic","regular"]},"Love Ya Like A Sister":{"family":"Love Ya Like A Sister","category":"display","variants":["regular"]},"Loved by the King":{"family":"Loved by the King","category":"handwriting","variants":["regular"]},"Lovers Quarrel":{"family":"Lovers Quarrel","category":"handwriting","variants":["regular"]},"Luckiest Guy":{"family":"Luckiest Guy","category":"display","variants":["regular"]},"Lusitana":{"family":"Lusitana","category":"serif","variants":["700","regular"]},"Lustria":{"family":"Lustria","category":"serif","variants":["regular"]},"M PLUS 1p":{"family":"M PLUS 1p","category":"sans-serif","variants":["100","300","500","700","800","900","regular"]},"M PLUS Rounded 1c":{"family":"M PLUS Rounded 1c","category":"sans-serif","variants":["100","300","500","700","800","900","regular"]},"Ma Shan Zheng":{"family":"Ma Shan Zheng","category":"handwriting","variants":["regular"]},"Macondo":{"family":"Macondo","category":"display","variants":["regular"]},"Macondo Swash Caps":{"family":"Macondo Swash Caps","category":"display","variants":["regular"]},"Mada":{"family":"Mada","category":"sans-serif","variants":["200","300","500","600","700","900","regular"]},"Magra":{"family":"Magra","category":"sans-serif","variants":["700","regular"]},"Maiden Orange":{"family":"Maiden Orange","category":"display","variants":["regular"]},"Maitree":{"family":"Maitree","category":"serif","variants":["200","300","500","600","700","regular"]},"Major Mono Display":{"family":"Major Mono Display","category":"monospace","variants":["regular"]},"Mako":{"family":"Mako","category":"sans-serif","variants":["regular"]},"Mali":{"family":"Mali","category":"handwriting","variants":["200","200italic","300","300italic","500","500italic","600","600italic","700","700italic","italic","regular"]},"Mallanna":{"family":"Mallanna","category":"sans-serif","variants":["regular"]},"Mandali":{"family":"Mandali","category":"sans-serif","variants":["regular"]},"Manjari":{"family":"Manjari","category":"sans-serif","variants":["100","700","regular"]},"Manrope":{"family":"Manrope","category":"sans-serif","variants":["200","300","500","600","700","800","regular"]},"Mansalva":{"family":"Mansalva","category":"handwriting","variants":["regular"]},"Manuale":{"family":"Manuale","category":"serif","variants":["500","500italic","600","600italic","700","700italic","italic","regular"]},"Marcellus":{"family":"Marcellus","category":"serif","variants":["regular"]},"Marcellus SC":{"family":"Marcellus SC","category":"serif","variants":["regular"]},"Marck Script":{"family":"Marck Script","category":"handwriting","variants":["regular"]},"Margarine":{"family":"Margarine","category":"display","variants":["regular"]},"Markazi Text":{"family":"Markazi Text","category":"serif","variants":["500","600","700","regular"]},"Marko One":{"family":"Marko One","category":"serif","variants":["regular"]},"Marmelad":{"family":"Marmelad","category":"sans-serif","variants":["regular"]},"Martel":{"family":"Martel","category":"serif","variants":["200","300","600","700","800","900","regular"]},"Martel Sans":{"family":"Martel Sans","category":"sans-serif","variants":["200","300","600","700","800","900","regular"]},"Marvel":{"family":"Marvel","category":"sans-serif","variants":["700","700italic","italic","regular"]},"Mate":{"family":"Mate","category":"serif","variants":["italic","regular"]},"Mate SC":{"family":"Mate SC","category":"serif","variants":["regular"]},"Maven Pro":{"family":"Maven Pro","category":"sans-serif","variants":["500","600","700","800","900","regular"]},"McLaren":{"family":"McLaren","category":"display","variants":["regular"]},"Meddon":{"family":"Meddon","category":"handwriting","variants":["regular"]},"MedievalSharp":{"family":"MedievalSharp","category":"display","variants":["regular"]},"Medula One":{"family":"Medula One","category":"display","variants":["regular"]},"Meera Inimai":{"family":"Meera Inimai","category":"sans-serif","variants":["regular"]},"Megrim":{"family":"Megrim","category":"display","variants":["regular"]},"Meie Script":{"family":"Meie Script","category":"handwriting","variants":["regular"]},"Merienda":{"family":"Merienda","category":"handwriting","variants":["700","regular"]},"Merienda One":{"family":"Merienda One","category":"handwriting","variants":["regular"]},"Merriweather":{"family":"Merriweather","category":"serif","variants":["300","300italic","700","700italic","900","900italic","italic","regular"]},"Merriweather Sans":{"family":"Merriweather Sans","category":"sans-serif","variants":["300","300italic","500","500italic","600","600italic","700","700italic","800","800italic","italic","regular"]},"Metal":{"family":"Metal","category":"display","variants":["regular"]},"Metal Mania":{"family":"Metal Mania","category":"display","variants":["regular"]},"Metamorphous":{"family":"Metamorphous","category":"display","variants":["regular"]},"Metrophobic":{"family":"Metrophobic","category":"sans-serif","variants":["regular"]},"Michroma":{"family":"Michroma","category":"sans-serif","variants":["regular"]},"Milonga":{"family":"Milonga","category":"display","variants":["regular"]},"Miltonian":{"family":"Miltonian","category":"display","variants":["regular"]},"Miltonian Tattoo":{"family":"Miltonian Tattoo","category":"display","variants":["regular"]},"Mina":{"family":"Mina","category":"sans-serif","variants":["700","regular"]},"Miniver":{"family":"Miniver","category":"display","variants":["regular"]},"Miriam Libre":{"family":"Miriam Libre","category":"sans-serif","variants":["700","regular"]},"Mirza":{"family":"Mirza","category":"display","variants":["500","600","700","regular"]},"Miss Fajardose":{"family":"Miss Fajardose","category":"handwriting","variants":["regular"]},"Mitr":{"family":"Mitr","category":"sans-serif","variants":["200","300","500","600","700","regular"]},"Modak":{"family":"Modak","category":"display","variants":["regular"]},"Modern Antiqua":{"family":"Modern Antiqua","category":"display","variants":["regular"]},"Mogra":{"family":"Mogra","category":"display","variants":["regular"]},"Molengo":{"family":"Molengo","category":"sans-serif","variants":["regular"]},"Molle":{"family":"Molle","category":"handwriting","variants":["italic"]},"Monda":{"family":"Monda","category":"sans-serif","variants":["700","regular"]},"Monofett":{"family":"Monofett","category":"display","variants":["regular"]},"Monoton":{"family":"Monoton","category":"display","variants":["regular"]},"Monsieur La Doulaise":{"family":"Monsieur La Doulaise","category":"handwriting","variants":["regular"]},"Montaga":{"family":"Montaga","category":"serif","variants":["regular"]},"Montez":{"family":"Montez","category":"handwriting","variants":["regular"]},"Montserrat":{"family":"Montserrat","category":"sans-serif","variants":["100","100italic","200","200italic","300","300italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic","italic","regular"]},"Montserrat Alternates":{"family":"Montserrat Alternates","category":"sans-serif","variants":["100","100italic","200","200italic","300","300italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic","italic","regular"]},"Montserrat Subrayada":{"family":"Montserrat Subrayada","category":"sans-serif","variants":["700","regular"]},"Moul":{"family":"Moul","category":"display","variants":["regular"]},"Moulpali":{"family":"Moulpali","category":"display","variants":["regular"]},"Mountains of Christmas":{"family":"Mountains of Christmas","category":"display","variants":["700","regular"]},"Mouse Memoirs":{"family":"Mouse Memoirs","category":"sans-serif","variants":["regular"]},"Mr Bedfort":{"family":"Mr Bedfort","category":"handwriting","variants":["regular"]},"Mr Dafoe":{"family":"Mr Dafoe","category":"handwriting","variants":["regular"]},"Mr De Haviland":{"family":"Mr De Haviland","category":"handwriting","variants":["regular"]},"Mrs Saint Delafield":{"family":"Mrs Saint Delafield","category":"handwriting","variants":["regular"]},"Mrs Sheppards":{"family":"Mrs Sheppards","category":"handwriting","variants":["regular"]},"Mukta":{"family":"Mukta","category":"sans-serif","variants":["200","300","500","600","700","800","regular"]},"Mukta Mahee":{"family":"Mukta Mahee","category":"sans-serif","variants":["200","300","500","600","700","800","regular"]},"Mukta Malar":{"family":"Mukta Malar","category":"sans-serif","variants":["200","300","500","600","700","800","regular"]},"Mukta Vaani":{"family":"Mukta Vaani","category":"sans-serif","variants":["200","300","500","600","700","800","regular"]},"Mulish":{"family":"Mulish","category":"sans-serif","variants":["200","200italic","300","300italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic","italic","regular"]},"MuseoModerno":{"family":"MuseoModerno","category":"display","variants":["100","200","300","500","600","700","800","900","regular"]},"Mystery Quest":{"family":"Mystery Quest","category":"display","variants":["regular"]},"NTR":{"family":"NTR","category":"sans-serif","variants":["regular"]},"Nanum Brush Script":{"family":"Nanum Brush Script","category":"handwriting","variants":["regular"]},"Nanum Gothic":{"family":"Nanum Gothic","category":"sans-serif","variants":["700","800","regular"]},"Nanum Gothic Coding":{"family":"Nanum Gothic Coding","category":"monospace","variants":["700","regular"]},"Nanum Myeongjo":{"family":"Nanum Myeongjo","category":"serif","variants":["700","800","regular"]},"Nanum Pen Script":{"family":"Nanum Pen Script","category":"handwriting","variants":["regular"]},"Nerko One":{"family":"Nerko One","category":"handwriting","variants":["regular"]},"Neucha":{"family":"Neucha","category":"handwriting","variants":["regular"]},"Neuton":{"family":"Neuton","category":"serif","variants":["200","300","700","800","italic","regular"]},"New Rocker":{"family":"New Rocker","category":"display","variants":["regular"]},"New Tegomin":{"family":"New Tegomin","category":"serif","variants":["regular"]},"News Cycle":{"family":"News Cycle","category":"sans-serif","variants":["700","regular"]},"Newsreader":{"family":"Newsreader","category":"serif","variants":["200","200italic","300","300italic","500","500italic","600","600italic","700","700italic","800","800italic","italic","regular"]},"Niconne":{"family":"Niconne","category":"handwriting","variants":["regular"]},"Niramit":{"family":"Niramit","category":"sans-serif","variants":["200","200italic","300","300italic","500","500italic","600","600italic","700","700italic","italic","regular"]},"Nixie One":{"family":"Nixie One","category":"display","variants":["regular"]},"Nobile":{"family":"Nobile","category":"sans-serif","variants":["500","500italic","700","700italic","italic","regular"]},"Nokora":{"family":"Nokora","category":"serif","variants":["700","regular"]},"Norican":{"family":"Norican","category":"handwriting","variants":["regular"]},"Nosifer":{"family":"Nosifer","category":"display","variants":["regular"]},"Notable":{"family":"Notable","category":"sans-serif","variants":["regular"]},"Nothing You Could Do":{"family":"Nothing You Could Do","category":"handwriting","variants":["regular"]},"Noticia Text":{"family":"Noticia Text","category":"serif","variants":["700","700italic","italic","regular"]},"Noto Sans":{"family":"Noto Sans","category":"sans-serif","variants":["700","700italic","italic","regular"]},"Noto Sans HK":{"family":"Noto Sans HK","category":"sans-serif","variants":["100","300","500","700","900","regular"]},"Noto Sans JP":{"family":"Noto Sans JP","category":"sans-serif","variants":["100","300","500","700","900","regular"]},"Noto Sans KR":{"family":"Noto Sans KR","category":"sans-serif","variants":["100","300","500","700","900","regular"]},"Noto Sans SC":{"family":"Noto Sans SC","category":"sans-serif","variants":["100","300","500","700","900","regular"]},"Noto Sans TC":{"family":"Noto Sans TC","category":"sans-serif","variants":["100","300","500","700","900","regular"]},"Noto Serif":{"family":"Noto Serif","category":"serif","variants":["700","700italic","italic","regular"]},"Noto Serif JP":{"family":"Noto Serif JP","category":"serif","variants":["200","300","500","600","700","900","regular"]},"Noto Serif KR":{"family":"Noto Serif KR","category":"serif","variants":["200","300","500","600","700","900","regular"]},"Noto Serif SC":{"family":"Noto Serif SC","category":"serif","variants":["200","300","500","600","700","900","regular"]},"Noto Serif TC":{"family":"Noto Serif TC","category":"serif","variants":["200","300","500","600","700","900","regular"]},"Nova Cut":{"family":"Nova Cut","category":"display","variants":["regular"]},"Nova Flat":{"family":"Nova Flat","category":"display","variants":["regular"]},"Nova Mono":{"family":"Nova Mono","category":"monospace","variants":["regular"]},"Nova Oval":{"family":"Nova Oval","category":"display","variants":["regular"]},"Nova Round":{"family":"Nova Round","category":"display","variants":["regular"]},"Nova Script":{"family":"Nova Script","category":"display","variants":["regular"]},"Nova Slim":{"family":"Nova Slim","category":"display","variants":["regular"]},"Nova Square":{"family":"Nova Square","category":"display","variants":["regular"]},"Numans":{"family":"Numans","category":"sans-serif","variants":["regular"]},"Nunito":{"family":"Nunito","category":"sans-serif","variants":["200","200italic","300","300italic","600","600italic","700","700italic","800","800italic","900","900italic","italic","regular"]},"Nunito Sans":{"family":"Nunito Sans","category":"sans-serif","variants":["200","200italic","300","300italic","600","600italic","700","700italic","800","800italic","900","900italic","italic","regular"]},"Odibee Sans":{"family":"Odibee Sans","category":"display","variants":["regular"]},"Odor Mean Chey":{"family":"Odor Mean Chey","category":"display","variants":["regular"]},"Offside":{"family":"Offside","category":"display","variants":["regular"]},"Oi":{"family":"Oi","category":"display","variants":["regular"]},"Old Standard TT":{"family":"Old Standard TT","category":"serif","variants":["700","italic","regular"]},"Oldenburg":{"family":"Oldenburg","category":"display","variants":["regular"]},"Oleo Script":{"family":"Oleo Script","category":"display","variants":["700","regular"]},"Oleo Script Swash Caps":{"family":"Oleo Script Swash Caps","category":"display","variants":["700","regular"]},"Open Sans":{"family":"Open Sans","category":"sans-serif","variants":["300","300italic","600","600italic","700","700italic","800","800italic","italic","regular"]},"Open Sans Condensed":{"family":"Open Sans Condensed","category":"sans-serif","variants":["300","300italic","700"]},"Oranienbaum":{"family":"Oranienbaum","category":"serif","variants":["regular"]},"Orbitron":{"family":"Orbitron","category":"sans-serif","variants":["500","600","700","800","900","regular"]},"Oregano":{"family":"Oregano","category":"display","variants":["italic","regular"]},"Orelega One":{"family":"Orelega One","category":"display","variants":["regular"]},"Orienta":{"family":"Orienta","category":"sans-serif","variants":["regular"]},"Original Surfer":{"family":"Original Surfer","category":"display","variants":["regular"]},"Oswald":{"family":"Oswald","category":"sans-serif","variants":["200","300","500","600","700","regular"]},"Otomanopee One":{"family":"Otomanopee One","category":"sans-serif","variants":["regular"]},"Over the Rainbow":{"family":"Over the Rainbow","category":"handwriting","variants":["regular"]},"Overlock":{"family":"Overlock","category":"display","variants":["700","700italic","900","900italic","italic","regular"]},"Overlock SC":{"family":"Overlock SC","category":"display","variants":["regular"]},"Overpass":{"family":"Overpass","category":"sans-serif","variants":["100","100italic","200","200italic","300","300italic","600","600italic","700","700italic","800","800italic","900","900italic","italic","regular"]},"Overpass Mono":{"family":"Overpass Mono","category":"monospace","variants":["300","600","700","regular"]},"Ovo":{"family":"Ovo","category":"serif","variants":["regular"]},"Oxanium":{"family":"Oxanium","category":"display","variants":["200","300","500","600","700","800","regular"]},"Oxygen":{"family":"Oxygen","category":"sans-serif","variants":["300","700","regular"]},"Oxygen Mono":{"family":"Oxygen Mono","category":"monospace","variants":["regular"]},"PT Mono":{"family":"PT Mono","category":"monospace","variants":["regular"]},"PT Sans":{"family":"PT Sans","category":"sans-serif","variants":["700","700italic","italic","regular"]},"PT Sans Caption":{"family":"PT Sans Caption","category":"sans-serif","variants":["700","regular"]},"PT Sans Narrow":{"family":"PT Sans Narrow","category":"sans-serif","variants":["700","regular"]},"PT Serif":{"family":"PT Serif","category":"serif","variants":["700","700italic","italic","regular"]},"PT Serif Caption":{"family":"PT Serif Caption","category":"serif","variants":["italic","regular"]},"Pacifico":{"family":"Pacifico","category":"handwriting","variants":["regular"]},"Padauk":{"family":"Padauk","category":"sans-serif","variants":["700","regular"]},"Palanquin":{"family":"Palanquin","category":"sans-serif","variants":["100","200","300","500","600","700","regular"]},"Palanquin Dark":{"family":"Palanquin Dark","category":"sans-serif","variants":["500","600","700","regular"]},"Pangolin":{"family":"Pangolin","category":"handwriting","variants":["regular"]},"Paprika":{"family":"Paprika","category":"display","variants":["regular"]},"Parisienne":{"family":"Parisienne","category":"handwriting","variants":["regular"]},"Passero One":{"family":"Passero One","category":"display","variants":["regular"]},"Passion One":{"family":"Passion One","category":"display","variants":["700","900","regular"]},"Pathway Gothic One":{"family":"Pathway Gothic One","category":"sans-serif","variants":["regular"]},"Patrick Hand":{"family":"Patrick Hand","category":"handwriting","variants":["regular"]},"Patrick Hand SC":{"family":"Patrick Hand SC","category":"handwriting","variants":["regular"]},"Pattaya":{"family":"Pattaya","category":"sans-serif","variants":["regular"]},"Patua One":{"family":"Patua One","category":"display","variants":["regular"]},"Pavanam":{"family":"Pavanam","category":"sans-serif","variants":["regular"]},"Paytone One":{"family":"Paytone One","category":"sans-serif","variants":["regular"]},"Peddana":{"family":"Peddana","category":"serif","variants":["regular"]},"Peralta":{"family":"Peralta","category":"display","variants":["regular"]},"Permanent Marker":{"family":"Permanent Marker","category":"handwriting","variants":["regular"]},"Petit Formal Script":{"family":"Petit Formal Script","category":"handwriting","variants":["regular"]},"Petrona":{"family":"Petrona","category":"serif","variants":["100","100italic","200","200italic","300","300italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic","italic","regular"]},"Philosopher":{"family":"Philosopher","category":"sans-serif","variants":["700","700italic","italic","regular"]},"Piazzolla":{"family":"Piazzolla","category":"serif","variants":["100","100italic","200","200italic","300","300italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic","italic","regular"]},"Piedra":{"family":"Piedra","category":"display","variants":["regular"]},"Pinyon Script":{"family":"Pinyon Script","category":"handwriting","variants":["regular"]},"Pirata One":{"family":"Pirata One","category":"display","variants":["regular"]},"Plaster":{"family":"Plaster","category":"display","variants":["regular"]},"Play":{"family":"Play","category":"sans-serif","variants":["700","regular"]},"Playball":{"family":"Playball","category":"display","variants":["regular"]},"Playfair Display":{"family":"Playfair Display","category":"serif","variants":["500","500italic","600","600italic","700","700italic","800","800italic","900","900italic","italic","regular"]},"Playfair Display SC":{"family":"Playfair Display SC","category":"serif","variants":["700","700italic","900","900italic","italic","regular"]},"Podkova":{"family":"Podkova","category":"serif","variants":["500","600","700","800","regular"]},"Poiret One":{"family":"Poiret One","category":"display","variants":["regular"]},"Poller One":{"family":"Poller One","category":"display","variants":["regular"]},"Poly":{"family":"Poly","category":"serif","variants":["italic","regular"]},"Pompiere":{"family":"Pompiere","category":"display","variants":["regular"]},"Pontano Sans":{"family":"Pontano Sans","category":"sans-serif","variants":["regular"]},"Poor Story":{"family":"Poor Story","category":"display","variants":["regular"]},"Poppins":{"family":"Poppins","category":"sans-serif","variants":["100","100italic","200","200italic","300","300italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic","italic","regular"]},"Port Lligat Sans":{"family":"Port Lligat Sans","category":"sans-serif","variants":["regular"]},"Port Lligat Slab":{"family":"Port Lligat Slab","category":"serif","variants":["regular"]},"Potta One":{"family":"Potta One","category":"display","variants":["regular"]},"Pragati Narrow":{"family":"Pragati Narrow","category":"sans-serif","variants":["700","regular"]},"Prata":{"family":"Prata","category":"serif","variants":["regular"]},"Preahvihear":{"family":"Preahvihear","category":"display","variants":["regular"]},"Press Start 2P":{"family":"Press Start 2P","category":"display","variants":["regular"]},"Pridi":{"family":"Pridi","category":"serif","variants":["200","300","500","600","700","regular"]},"Princess Sofia":{"family":"Princess Sofia","category":"handwriting","variants":["regular"]},"Prociono":{"family":"Prociono","category":"serif","variants":["regular"]},"Prompt":{"family":"Prompt","category":"sans-serif","variants":["100","100italic","200","200italic","300","300italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic","italic","regular"]},"Prosto One":{"family":"Prosto One","category":"display","variants":["regular"]},"Proza Libre":{"family":"Proza Libre","category":"sans-serif","variants":["500","500italic","600","600italic","700","700italic","800","800italic","italic","regular"]},"Public Sans":{"family":"Public Sans","category":"sans-serif","variants":["100","100italic","200","200italic","300","300italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic","italic","regular"]},"Puritan":{"family":"Puritan","category":"sans-serif","variants":["700","700italic","italic","regular"]},"Purple Purse":{"family":"Purple Purse","category":"display","variants":["regular"]},"Qahiri":{"family":"Qahiri","category":"sans-serif","variants":["regular"]},"Quando":{"family":"Quando","category":"serif","variants":["regular"]},"Quantico":{"family":"Quantico","category":"sans-serif","variants":["700","700italic","italic","regular"]},"Quattrocento":{"family":"Quattrocento","category":"serif","variants":["700","regular"]},"Quattrocento Sans":{"family":"Quattrocento Sans","category":"sans-serif","variants":["700","700italic","italic","regular"]},"Questrial":{"family":"Questrial","category":"sans-serif","variants":["regular"]},"Quicksand":{"family":"Quicksand","category":"sans-serif","variants":["300","500","600","700","regular"]},"Quintessential":{"family":"Quintessential","category":"handwriting","variants":["regular"]},"Qwigley":{"family":"Qwigley","category":"handwriting","variants":["regular"]},"Racing Sans One":{"family":"Racing Sans One","category":"display","variants":["regular"]},"Radley":{"family":"Radley","category":"serif","variants":["italic","regular"]},"Rajdhani":{"family":"Rajdhani","category":"sans-serif","variants":["300","500","600","700","regular"]},"Rakkas":{"family":"Rakkas","category":"display","variants":["regular"]},"Raleway":{"family":"Raleway","category":"sans-serif","variants":["100","100italic","200","200italic","300","300italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic","italic","regular"]},"Raleway Dots":{"family":"Raleway Dots","category":"display","variants":["regular"]},"Ramabhadra":{"family":"Ramabhadra","category":"sans-serif","variants":["regular"]},"Ramaraja":{"family":"Ramaraja","category":"serif","variants":["regular"]},"Rambla":{"family":"Rambla","category":"sans-serif","variants":["700","700italic","italic","regular"]},"Rammetto One":{"family":"Rammetto One","category":"display","variants":["regular"]},"Ranchers":{"family":"Ranchers","category":"display","variants":["regular"]},"Rancho":{"family":"Rancho","category":"handwriting","variants":["regular"]},"Ranga":{"family":"Ranga","category":"display","variants":["700","regular"]},"Rasa":{"family":"Rasa","category":"serif","variants":["300","500","600","700","regular"]},"Rationale":{"family":"Rationale","category":"sans-serif","variants":["regular"]},"Ravi Prakash":{"family":"Ravi Prakash","category":"display","variants":["regular"]},"Recursive":{"family":"Recursive","category":"sans-serif","variants":["300","500","600","700","800","900","regular"]},"Red Hat Display":{"family":"Red Hat Display","category":"sans-serif","variants":["500","500italic","700","700italic","900","900italic","italic","regular"]},"Red Hat Text":{"family":"Red Hat Text","category":"sans-serif","variants":["500","500italic","700","700italic","italic","regular"]},"Red Rose":{"family":"Red Rose","category":"display","variants":["300","500","600","700","regular"]},"Redressed":{"family":"Redressed","category":"handwriting","variants":["regular"]},"Reem Kufi":{"family":"Reem Kufi","category":"sans-serif","variants":["500","600","700","regular"]},"Reenie Beanie":{"family":"Reenie Beanie","category":"handwriting","variants":["regular"]},"Reggae One":{"family":"Reggae One","category":"display","variants":["regular"]},"Revalia":{"family":"Revalia","category":"display","variants":["regular"]},"Rhodium Libre":{"family":"Rhodium Libre","category":"serif","variants":["regular"]},"Ribeye":{"family":"Ribeye","category":"display","variants":["regular"]},"Ribeye Marrow":{"family":"Ribeye Marrow","category":"display","variants":["regular"]},"Righteous":{"family":"Righteous","category":"display","variants":["regular"]},"Risque":{"family":"Risque","category":"display","variants":["regular"]},"Roboto":{"family":"Roboto","category":"sans-serif","variants":["100","100italic","300","300italic","500","500italic","700","700italic","900","900italic","italic","regular"]},"Roboto Condensed":{"family":"Roboto Condensed","category":"sans-serif","variants":["300","300italic","700","700italic","italic","regular"]},"Roboto Mono":{"family":"Roboto Mono","category":"monospace","variants":["100","100italic","200","200italic","300","300italic","500","500italic","600","600italic","700","700italic","italic","regular"]},"Roboto Slab":{"family":"Roboto Slab","category":"serif","variants":["100","200","300","500","600","700","800","900","regular"]},"Rochester":{"family":"Rochester","category":"handwriting","variants":["regular"]},"Rock Salt":{"family":"Rock Salt","category":"handwriting","variants":["regular"]},"RocknRoll One":{"family":"RocknRoll One","category":"sans-serif","variants":["regular"]},"Rokkitt":{"family":"Rokkitt","category":"serif","variants":["100","200","300","500","600","700","800","900","regular"]},"Romanesco":{"family":"Romanesco","category":"handwriting","variants":["regular"]},"Ropa Sans":{"family":"Ropa Sans","category":"sans-serif","variants":["italic","regular"]},"Rosario":{"family":"Rosario","category":"sans-serif","variants":["300","300italic","500","500italic","600","600italic","700","700italic","italic","regular"]},"Rosarivo":{"family":"Rosarivo","category":"serif","variants":["italic","regular"]},"Rouge Script":{"family":"Rouge Script","category":"handwriting","variants":["regular"]},"Rowdies":{"family":"Rowdies","category":"display","variants":["300","700","regular"]},"Rozha One":{"family":"Rozha One","category":"serif","variants":["regular"]},"Rubik":{"family":"Rubik","category":"sans-serif","variants":["300","300italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic","italic","regular"]},"Rubik Mono One":{"family":"Rubik Mono One","category":"sans-serif","variants":["regular"]},"Ruda":{"family":"Ruda","category":"sans-serif","variants":["500","600","700","800","900","regular"]},"Rufina":{"family":"Rufina","category":"serif","variants":["700","regular"]},"Ruge Boogie":{"family":"Ruge Boogie","category":"handwriting","variants":["regular"]},"Ruluko":{"family":"Ruluko","category":"sans-serif","variants":["regular"]},"Rum Raisin":{"family":"Rum Raisin","category":"sans-serif","variants":["regular"]},"Ruslan Display":{"family":"Ruslan Display","category":"display","variants":["regular"]},"Russo One":{"family":"Russo One","category":"sans-serif","variants":["regular"]},"Ruthie":{"family":"Ruthie","category":"handwriting","variants":["regular"]},"Rye":{"family":"Rye","category":"display","variants":["regular"]},"STIX Two Math":{"family":"STIX Two Math","category":"serif","variants":["regular"]},"Sacramento":{"family":"Sacramento","category":"handwriting","variants":["regular"]},"Sahitya":{"family":"Sahitya","category":"serif","variants":["700","regular"]},"Sail":{"family":"Sail","category":"display","variants":["regular"]},"Saira":{"family":"Saira","category":"sans-serif","variants":["100","100italic","200","200italic","300","300italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic","italic","regular"]},"Saira Condensed":{"family":"Saira Condensed","category":"sans-serif","variants":["100","200","300","500","600","700","800","900","regular"]},"Saira Extra Condensed":{"family":"Saira Extra Condensed","category":"sans-serif","variants":["100","200","300","500","600","700","800","900","regular"]},"Saira Semi Condensed":{"family":"Saira Semi Condensed","category":"sans-serif","variants":["100","200","300","500","600","700","800","900","regular"]},"Saira Stencil One":{"family":"Saira Stencil One","category":"display","variants":["regular"]},"Salsa":{"family":"Salsa","category":"display","variants":["regular"]},"Sanchez":{"family":"Sanchez","category":"serif","variants":["italic","regular"]},"Sancreek":{"family":"Sancreek","category":"display","variants":["regular"]},"Sansita":{"family":"Sansita","category":"sans-serif","variants":["700","700italic","800","800italic","900","900italic","italic","regular"]},"Sansita Swashed":{"family":"Sansita Swashed","category":"display","variants":["300","500","600","700","800","900","regular"]},"Sarabun":{"family":"Sarabun","category":"sans-serif","variants":["100","100italic","200","200italic","300","300italic","500","500italic","600","600italic","700","700italic","800","800italic","italic","regular"]},"Sarala":{"family":"Sarala","category":"sans-serif","variants":["700","regular"]},"Sarina":{"family":"Sarina","category":"display","variants":["regular"]},"Sarpanch":{"family":"Sarpanch","category":"sans-serif","variants":["500","600","700","800","900","regular"]},"Satisfy":{"family":"Satisfy","category":"handwriting","variants":["regular"]},"Sawarabi Gothic":{"family":"Sawarabi Gothic","category":"sans-serif","variants":["regular"]},"Sawarabi Mincho":{"family":"Sawarabi Mincho","category":"sans-serif","variants":["regular"]},"Scada":{"family":"Scada","category":"sans-serif","variants":["700","700italic","italic","regular"]},"Scheherazade":{"family":"Scheherazade","category":"serif","variants":["700","regular"]},"Schoolbell":{"family":"Schoolbell","category":"handwriting","variants":["regular"]},"Scope One":{"family":"Scope One","category":"serif","variants":["regular"]},"Seaweed Script":{"family":"Seaweed Script","category":"display","variants":["regular"]},"Secular One":{"family":"Secular One","category":"sans-serif","variants":["regular"]},"Sedgwick Ave":{"family":"Sedgwick Ave","category":"handwriting","variants":["regular"]},"Sedgwick Ave Display":{"family":"Sedgwick Ave Display","category":"handwriting","variants":["regular"]},"Sen":{"family":"Sen","category":"sans-serif","variants":["700","800","regular"]},"Sevillana":{"family":"Sevillana","category":"display","variants":["regular"]},"Seymour One":{"family":"Seymour One","category":"sans-serif","variants":["regular"]},"Shadows Into Light":{"family":"Shadows Into Light","category":"handwriting","variants":["regular"]},"Shadows Into Light Two":{"family":"Shadows Into Light Two","category":"handwriting","variants":["regular"]},"Shanti":{"family":"Shanti","category":"sans-serif","variants":["regular"]},"Share":{"family":"Share","category":"display","variants":["700","700italic","italic","regular"]},"Share Tech":{"family":"Share Tech","category":"sans-serif","variants":["regular"]},"Share Tech Mono":{"family":"Share Tech Mono","category":"monospace","variants":["regular"]},"Shippori Mincho":{"family":"Shippori Mincho","category":"serif","variants":["500","600","700","800","regular"]},"Shippori Mincho B1":{"family":"Shippori Mincho B1","category":"serif","variants":["500","600","700","800","regular"]},"Shojumaru":{"family":"Shojumaru","category":"display","variants":["regular"]},"Short Stack":{"family":"Short Stack","category":"handwriting","variants":["regular"]},"Shrikhand":{"family":"Shrikhand","category":"display","variants":["regular"]},"Siemreap":{"family":"Siemreap","category":"display","variants":["regular"]},"Sigmar One":{"family":"Sigmar One","category":"display","variants":["regular"]},"Signika":{"family":"Signika","category":"sans-serif","variants":["300","500","600","700","regular"]},"Signika Negative":{"family":"Signika Negative","category":"sans-serif","variants":["300","600","700","regular"]},"Simonetta":{"family":"Simonetta","category":"display","variants":["900","900italic","italic","regular"]},"Single Day":{"family":"Single Day","category":"display","variants":["regular"]},"Sintony":{"family":"Sintony","category":"sans-serif","variants":["700","regular"]},"Sirin Stencil":{"family":"Sirin Stencil","category":"display","variants":["regular"]},"Six Caps":{"family":"Six Caps","category":"sans-serif","variants":["regular"]},"Skranji":{"family":"Skranji","category":"display","variants":["700","regular"]},"Slabo 13px":{"family":"Slabo 13px","category":"serif","variants":["regular"]},"Slabo 27px":{"family":"Slabo 27px","category":"serif","variants":["regular"]},"Slackey":{"family":"Slackey","category":"display","variants":["regular"]},"Smokum":{"family":"Smokum","category":"display","variants":["regular"]},"Smythe":{"family":"Smythe","category":"display","variants":["regular"]},"Sniglet":{"family":"Sniglet","category":"display","variants":["800","regular"]},"Snippet":{"family":"Snippet","category":"sans-serif","variants":["regular"]},"Snowburst One":{"family":"Snowburst One","category":"display","variants":["regular"]},"Sofadi One":{"family":"Sofadi One","category":"display","variants":["regular"]},"Sofia":{"family":"Sofia","category":"handwriting","variants":["regular"]},"Solway":{"family":"Solway","category":"serif","variants":["300","500","700","800","regular"]},"Song Myung":{"family":"Song Myung","category":"serif","variants":["regular"]},"Sonsie One":{"family":"Sonsie One","category":"display","variants":["regular"]},"Sora":{"family":"Sora","category":"sans-serif","variants":["100","200","300","500","600","700","800","regular"]},"Sorts Mill Goudy":{"family":"Sorts Mill Goudy","category":"serif","variants":["italic","regular"]},"Source Code Pro":{"family":"Source Code Pro","category":"monospace","variants":["200","200italic","300","300italic","500","500italic","600","600italic","700","700italic","900","900italic","italic","regular"]},"Source Sans Pro":{"family":"Source Sans Pro","category":"sans-serif","variants":["200","200italic","300","300italic","600","600italic","700","700italic","900","900italic","italic","regular"]},"Source Serif Pro":{"family":"Source Serif Pro","category":"serif","variants":["200","200italic","300","300italic","600","600italic","700","700italic","900","900italic","italic","regular"]},"Space Grotesk":{"family":"Space Grotesk","category":"sans-serif","variants":["300","500","600","700","regular"]},"Space Mono":{"family":"Space Mono","category":"monospace","variants":["700","700italic","italic","regular"]},"Spartan":{"family":"Spartan","category":"sans-serif","variants":["100","200","300","500","600","700","800","900","regular"]},"Special Elite":{"family":"Special Elite","category":"display","variants":["regular"]},"Spectral":{"family":"Spectral","category":"serif","variants":["200","200italic","300","300italic","500","500italic","600","600italic","700","700italic","800","800italic","italic","regular"]},"Spectral SC":{"family":"Spectral SC","category":"serif","variants":["200","200italic","300","300italic","500","500italic","600","600italic","700","700italic","800","800italic","italic","regular"]},"Spicy Rice":{"family":"Spicy Rice","category":"display","variants":["regular"]},"Spinnaker":{"family":"Spinnaker","category":"sans-serif","variants":["regular"]},"Spirax":{"family":"Spirax","category":"display","variants":["regular"]},"Squada One":{"family":"Squada One","category":"display","variants":["regular"]},"Sree Krushnadevaraya":{"family":"Sree Krushnadevaraya","category":"serif","variants":["regular"]},"Sriracha":{"family":"Sriracha","category":"handwriting","variants":["regular"]},"Srisakdi":{"family":"Srisakdi","category":"display","variants":["700","regular"]},"Staatliches":{"family":"Staatliches","category":"display","variants":["regular"]},"Stalemate":{"family":"Stalemate","category":"handwriting","variants":["regular"]},"Stalinist One":{"family":"Stalinist One","category":"display","variants":["regular"]},"Stardos Stencil":{"family":"Stardos Stencil","category":"display","variants":["700","regular"]},"Stick":{"family":"Stick","category":"sans-serif","variants":["regular"]},"Stint Ultra Condensed":{"family":"Stint Ultra Condensed","category":"display","variants":["regular"]},"Stint Ultra Expanded":{"family":"Stint Ultra Expanded","category":"display","variants":["regular"]},"Stoke":{"family":"Stoke","category":"serif","variants":["300","regular"]},"Strait":{"family":"Strait","category":"sans-serif","variants":["regular"]},"Stylish":{"family":"Stylish","category":"sans-serif","variants":["regular"]},"Sue Ellen Francisco":{"family":"Sue Ellen Francisco","category":"handwriting","variants":["regular"]},"Suez One":{"family":"Suez One","category":"serif","variants":["regular"]},"Sulphur Point":{"family":"Sulphur Point","category":"sans-serif","variants":["300","700","regular"]},"Sumana":{"family":"Sumana","category":"serif","variants":["700","regular"]},"Sunflower":{"family":"Sunflower","category":"sans-serif","variants":["300","500","700"]},"Sunshiney":{"family":"Sunshiney","category":"handwriting","variants":["regular"]},"Supermercado One":{"family":"Supermercado One","category":"display","variants":["regular"]},"Sura":{"family":"Sura","category":"serif","variants":["700","regular"]},"Suranna":{"family":"Suranna","category":"serif","variants":["regular"]},"Suravaram":{"family":"Suravaram","category":"serif","variants":["regular"]},"Suwannaphum":{"family":"Suwannaphum","category":"display","variants":["regular"]},"Swanky and Moo Moo":{"family":"Swanky and Moo Moo","category":"handwriting","variants":["regular"]},"Syncopate":{"family":"Syncopate","category":"sans-serif","variants":["700","regular"]},"Syne":{"family":"Syne","category":"sans-serif","variants":["500","600","700","800","regular"]},"Syne Mono":{"family":"Syne Mono","category":"monospace","variants":["regular"]},"Syne Tactile":{"family":"Syne Tactile","category":"display","variants":["regular"]},"Tajawal":{"family":"Tajawal","category":"sans-serif","variants":["200","300","500","700","800","900","regular"]},"Tangerine":{"family":"Tangerine","category":"handwriting","variants":["700","regular"]},"Taprom":{"family":"Taprom","category":"display","variants":["regular"]},"Tauri":{"family":"Tauri","category":"sans-serif","variants":["regular"]},"Taviraj":{"family":"Taviraj","category":"serif","variants":["100","100italic","200","200italic","300","300italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic","italic","regular"]},"Teko":{"family":"Teko","category":"sans-serif","variants":["300","500","600","700","regular"]},"Telex":{"family":"Telex","category":"sans-serif","variants":["regular"]},"Tenali Ramakrishna":{"family":"Tenali Ramakrishna","category":"sans-serif","variants":["regular"]},"Tenor Sans":{"family":"Tenor Sans","category":"sans-serif","variants":["regular"]},"Text Me One":{"family":"Text Me One","category":"sans-serif","variants":["regular"]},"Texturina":{"family":"Texturina","category":"serif","variants":["100","100italic","200","200italic","300","300italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic","italic","regular"]},"Thasadith":{"family":"Thasadith","category":"sans-serif","variants":["700","700italic","italic","regular"]},"The Girl Next Door":{"family":"The Girl Next Door","category":"handwriting","variants":["regular"]},"Tienne":{"family":"Tienne","category":"serif","variants":["700","900","regular"]},"Tillana":{"family":"Tillana","category":"handwriting","variants":["500","600","700","800","regular"]},"Timmana":{"family":"Timmana","category":"sans-serif","variants":["regular"]},"Tinos":{"family":"Tinos","category":"serif","variants":["700","700italic","italic","regular"]},"Titan One":{"family":"Titan One","category":"display","variants":["regular"]},"Titillium Web":{"family":"Titillium Web","category":"sans-serif","variants":["200","200italic","300","300italic","600","600italic","700","700italic","900","italic","regular"]},"Tomorrow":{"family":"Tomorrow","category":"sans-serif","variants":["100","100italic","200","200italic","300","300italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic","italic","regular"]},"Tourney":{"family":"Tourney","category":"display","variants":["100","100italic","200","200italic","300","300italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic","italic","regular"]},"Trade Winds":{"family":"Trade Winds","category":"display","variants":["regular"]},"Train One":{"family":"Train One","category":"display","variants":["regular"]},"Trirong":{"family":"Trirong","category":"serif","variants":["100","100italic","200","200italic","300","300italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic","italic","regular"]},"Trispace":{"family":"Trispace","category":"sans-serif","variants":["100","200","300","500","600","700","800","regular"]},"Trocchi":{"family":"Trocchi","category":"serif","variants":["regular"]},"Trochut":{"family":"Trochut","category":"display","variants":["700","italic","regular"]},"Truculenta":{"family":"Truculenta","category":"sans-serif","variants":["100","200","300","500","600","700","800","900","regular"]},"Trykker":{"family":"Trykker","category":"serif","variants":["regular"]},"Tulpen One":{"family":"Tulpen One","category":"display","variants":["regular"]},"Turret Road":{"family":"Turret Road","category":"display","variants":["200","300","500","700","800","regular"]},"Ubuntu":{"family":"Ubuntu","category":"sans-serif","variants":["300","300italic","500","500italic","700","700italic","italic","regular"]},"Ubuntu Condensed":{"family":"Ubuntu Condensed","category":"sans-serif","variants":["regular"]},"Ubuntu Mono":{"family":"Ubuntu Mono","category":"monospace","variants":["700","700italic","italic","regular"]},"Uchen":{"family":"Uchen","category":"serif","variants":["regular"]},"Ultra":{"family":"Ultra","category":"serif","variants":["regular"]},"Uncial Antiqua":{"family":"Uncial Antiqua","category":"display","variants":["regular"]},"Underdog":{"family":"Underdog","category":"display","variants":["regular"]},"Unica One":{"family":"Unica One","category":"display","variants":["regular"]},"UnifrakturCook":{"family":"UnifrakturCook","category":"display","variants":["700"]},"UnifrakturMaguntia":{"family":"UnifrakturMaguntia","category":"display","variants":["regular"]},"Unkempt":{"family":"Unkempt","category":"display","variants":["700","regular"]},"Unlock":{"family":"Unlock","category":"display","variants":["regular"]},"Unna":{"family":"Unna","category":"serif","variants":["700","700italic","italic","regular"]},"VT323":{"family":"VT323","category":"monospace","variants":["regular"]},"Vampiro One":{"family":"Vampiro One","category":"display","variants":["regular"]},"Varela":{"family":"Varela","category":"sans-serif","variants":["regular"]},"Varela Round":{"family":"Varela Round","category":"sans-serif","variants":["regular"]},"Varta":{"family":"Varta","category":"sans-serif","variants":["300","500","600","700","regular"]},"Vast Shadow":{"family":"Vast Shadow","category":"display","variants":["regular"]},"Vesper Libre":{"family":"Vesper Libre","category":"serif","variants":["500","700","900","regular"]},"Viaoda Libre":{"family":"Viaoda Libre","category":"display","variants":["regular"]},"Vibes":{"family":"Vibes","category":"display","variants":["regular"]},"Vibur":{"family":"Vibur","category":"handwriting","variants":["regular"]},"Vidaloka":{"family":"Vidaloka","category":"serif","variants":["regular"]},"Viga":{"family":"Viga","category":"sans-serif","variants":["regular"]},"Voces":{"family":"Voces","category":"display","variants":["regular"]},"Volkhov":{"family":"Volkhov","category":"serif","variants":["700","700italic","italic","regular"]},"Vollkorn":{"family":"Vollkorn","category":"serif","variants":["500","500italic","600","600italic","700","700italic","800","800italic","900","900italic","italic","regular"]},"Vollkorn SC":{"family":"Vollkorn SC","category":"serif","variants":["600","700","900","regular"]},"Voltaire":{"family":"Voltaire","category":"sans-serif","variants":["regular"]},"Waiting for the Sunrise":{"family":"Waiting for the Sunrise","category":"handwriting","variants":["regular"]},"Wallpoet":{"family":"Wallpoet","category":"display","variants":["regular"]},"Walter Turncoat":{"family":"Walter Turncoat","category":"handwriting","variants":["regular"]},"Warnes":{"family":"Warnes","category":"display","variants":["regular"]},"Wellfleet":{"family":"Wellfleet","category":"display","variants":["regular"]},"Wendy One":{"family":"Wendy One","category":"sans-serif","variants":["regular"]},"Wire One":{"family":"Wire One","category":"sans-serif","variants":["regular"]},"Work Sans":{"family":"Work Sans","category":"sans-serif","variants":["100","100italic","200","200italic","300","300italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic","italic","regular"]},"Xanh Mono":{"family":"Xanh Mono","category":"monospace","variants":["italic","regular"]},"Yanone Kaffeesatz":{"family":"Yanone Kaffeesatz","category":"sans-serif","variants":["200","300","500","600","700","regular"]},"Yantramanav":{"family":"Yantramanav","category":"sans-serif","variants":["100","300","500","700","900","regular"]},"Yatra One":{"family":"Yatra One","category":"display","variants":["regular"]},"Yellowtail":{"family":"Yellowtail","category":"handwriting","variants":["regular"]},"Yeon Sung":{"family":"Yeon Sung","category":"display","variants":["regular"]},"Yeseva One":{"family":"Yeseva One","category":"display","variants":["regular"]},"Yesteryear":{"family":"Yesteryear","category":"handwriting","variants":["regular"]},"Yomogi":{"family":"Yomogi","category":"handwriting","variants":["regular"]},"Yrsa":{"family":"Yrsa","category":"serif","variants":["300","500","600","700","regular"]},"Yusei Magic":{"family":"Yusei Magic","category":"sans-serif","variants":["regular"]},"ZCOOL KuaiLe":{"family":"ZCOOL KuaiLe","category":"display","variants":["regular"]},"ZCOOL QingKe HuangYou":{"family":"ZCOOL QingKe HuangYou","category":"display","variants":["regular"]},"ZCOOL XiaoWei":{"family":"ZCOOL XiaoWei","category":"serif","variants":["regular"]},"Zen Dots":{"family":"Zen Dots","category":"display","variants":["regular"]},"Zen Loop":{"family":"Zen Loop","category":"display","variants":["italic","regular"]},"Zen Tokyo Zoo":{"family":"Zen Tokyo Zoo","category":"display","variants":["regular"]},"Zeyada":{"family":"Zeyada","category":"handwriting","variants":["regular"]},"Zhi Mang Xing":{"family":"Zhi Mang Xing","category":"handwriting","variants":["regular"]},"Zilla Slab":{"family":"Zilla Slab","category":"serif","variants":["300","300italic","500","500italic","600","600italic","700","700italic","italic","regular"]},"Zilla Slab Highlight":{"family":"Zilla Slab Highlight","category":"display","variants":["700","regular"]}},"order":{"popularity":["Roboto","Open Sans","Noto Sans JP","Lato","Montserrat","Source Sans Pro","Roboto Condensed","Poppins","Oswald","Noto Sans","Roboto Mono","Raleway","PT Sans","Ubuntu","Roboto Slab","Merriweather","Nunito","Playfair Display","Noto Sans KR","Open Sans Condensed","Rubik","Lora","Mukta","Work Sans","Fira Sans","Nunito Sans","Hind Siliguri","Noto Sans TC","Nanum Gothic","PT Serif","Noto Serif","Inter","Quicksand","Titillium Web","Karla","Heebo","Barlow","Anton","Inconsolata","Oxygen","Dosis","PT Sans Narrow","Arimo","Bebas Neue","Libre Baskerville","Josefin Sans","Libre Franklin","Noto Sans SC","Yanone Kaffeesatz","Source Code Pro","IBM Plex Sans","Mulish","Cabin","Bitter","Hind","Dancing Script","Crimson Text","Prompt","Varela Round","Lobster","Abel","Noto Sans HK","Fjalla One","Teko","Source Serif Pro","Cairo","Arvo","EB Garamond","Kanit","DM Sans","Zilla Slab","Exo 2","Barlow Condensed","Comfortaa","Indie Flower","Pacifico","Shadows Into Light","Merriweather Sans","Asap","Overpass","Noto Serif JP","Questrial","Abril Fatface","Yellowtail","Assistant","Rajdhani","Cormorant Garamond","Maven Pro","Slabo 27px","Hind Madurai","Krona One","Archivo Narrow","Martel","Fira Sans Condensed","Caveat","Exo","Domine","IBM Plex Serif","Amatic SC","Antic Slab","Catamaran","Play","Bree Serif","Tajawal","Padauk","Acme","Nanum Myeongjo","M PLUS Rounded 1c","Alfa Slab One","Righteous","Manrope","Signika","Sarabun","Almarai","Crete Round","Vollkorn","Cinzel","Spartan","Archivo","Satisfy","Architects Daughter","Patua One","Alegreya Sans","Barlow Semi Condensed","Amiri","Permanent Marker","Tinos","ABeeZee","Fredoka One","Secular One","Patrick Hand","Courgette","Ubuntu Condensed","Staatliches","M PLUS 1p","Hammersmith One","Alegreya","Kaushan Script","Chivo","Archivo Black","Jost","Great Vibes","Chakra Petch","Public Sans","Frank Ruhl Libre","Lobster Two","PT Sans Caption","Yantramanav","Gothic A1","Cardo","Quattrocento Sans","Sacramento","Spectral","Kalam","Signika Negative","Prata","Didact Gothic","Noto Serif TC","Baloo 2","Balsamiq Sans","Francois One","Red Hat Display","IBM Plex Mono","Noticia Text","Russo One","Cuprum","Orbitron","Cantarell","Pathway Gothic One","Gloria Hallelujah","Encode Sans","Monda","DM Serif Display","Parisienne","Old Standard TT","Special Elite","Ropa Sans","Volkhov","Jomhuria","Concert One","Rokkitt","Hind Guntur","News Cycle","Noto Serif KR","Sawarabi Mincho","Asap Condensed","Cookie","Noto Serif SC","Changa","Josefin Slab","Quattrocento","Playfair Display SC","Poiret One","Passion One","Unna","Sigmar One","Ultra","Montserrat Alternates","Cormorant","Faustina","Press Start 2P","Vidaloka","Istok Web","Bangers","Saira Condensed","Neuton","Sanchez","Mitr","Taviraj","Advent Pro","Philosopher","Arapey","Space Mono","Mate SC","BenchNine","Monoton","Crimson Pro","Luckiest Guy","Fira Sans Extra Condensed","Bai Jamjuree","Khand","Economica","Merienda","Itim","Handlee","Lusitana","Karma","Big Shoulders Display","Marcellus","Tangerine","Saira","Gudea","PT Mono","Alata","Ubuntu Mono","Rock Salt","El Messiri","Playball","Saira Semi Condensed","Gentium Basic","Sawarabi Gothic","Fugaz One","Ruda","Cabin Condensed","Electrolize","Actor","Alef","Nanum Pen Script","Cutive Mono","Neucha","Antic","Unica One","DM Serif Text","Pragati Narrow","Alice","Hind Vadodara","Paytone One","Allura","Marck Script","Amaranth","Homemade Apple","Khula","Yeseva One","Gentium Book Basic","Jura","Stint Ultra Condensed","Viga","Bad Script","Julius Sans One","Pontano Sans","Aclonica","Tenor Sans","Recursive","Armata","Abhaya Libre","Nanum Gothic Coding","Markazi Text","Carter One","Adamina","Aleo","Rufina","Sarala","Alex Brush","Mali","Palanquin","Kosugi Maru","Saira Extra Condensed","Knewave","Nothing You Could Do","Sorts Mill Goudy","Bungee","Eczar","Arima Madurai","Varela","Gelasio","Syncopate","Damion","Audiowide","Cantata One","Quantico","Mr Dafoe","Shadows Into Light Two","Gochi Hand","Cousine","Pridi","Jaldi","Shrikhand","Rancho","Sriracha","Coda","Berkshire Swash","Share Tech Mono","Fira Mono","Baloo Tammudu 2","Mandali","Oleo Script","Black Ops One","Gruppo","Basic","Lexend Deca","Suez One","Squada One","Martel Sans","Average","Yrsa","Six Caps","Enriqueta","Mada","Red Hat Text","Courier Prime","Spinnaker","Sintony","Pinyon Script","Encode Sans Condensed","Lilita One","Mukta Malar","Alegreya Sans SC","Krub","Sen","Michroma","Pangolin","Chewy","Niconne","Glegoo","Allerta","Days One","Voltaire","Kreon","Reem Kufi","Overlock","Black Han Sans","Candal","Kameron","Allan","Coda Caption","Mate","Caveat Brush","Forum","Covered By Your Grace","Reenie Beanie","Fredericka the Great","Literata","Italianno","Goudy Bookletter 1911","Mukta Vaani","Rubik Mono One","Bevan","Arsenal","Lalezar","Lemonada","Cabin Sketch","Ramabhadra","Anonymous Pro","Capriola","Laila","PT Serif Caption","Bubblegum Sans","Rye","Mallanna","Norican","Annie Use Your Telescope","Changa One","VT323","Sansita","Corben","Aldrich","Boogaloo","Arbutus Slab","Rambla","Pattaya","Yesteryear","Telex","Lateef","Herr Von Muellerhoff","Scheherazade","Maitree","Nobile","Londrina Solid","Trocchi","Cinzel Decorative","Holtwood One SC","Just Another Hand","Caudex","Arizonia","Trirong","Niramit","Castoro","Racing Sans One","Mountains of Christmas","Mrs Saint Delafield","Seaweed Script","Coustard","Nixie One","Molengo","Ovo","Bungee Inline","Rochester","Leckerli One","Biryani","Bowlby One SC","Kristi","Jua","Average Sans","Charm","Amita","Miriam Libre","Delius","Judson","Do Hyeon","Alegreya SC","Oranienbaum","Share","Darker Grotesque","Athiti","Belgrano","Chonburi","Overpass Mono","KoHo","Epilogue","Gilda Display","Baloo Tamma 2","Allerta Stencil","Coming Soon","Commissioner","Duru Sans","Lustria","Nanum Brush Script","Scada","Rozha One","Graduate","Marcellus SC","IBM Plex Sans Condensed","Carrois Gothic","Suranna","Contrail One","Jockey One","Titan One","Magra","Fauna One","Palanquin Dark","Carme","GFS Didot","Copse","Libre Caslon Text","Cedarville Cursive","Mr De Haviland","Sunflower","K2D","Belleza","Comic Neue","La Belle Aurore","Grand Hotel","Averia Serif Libre","Kosugi","Rosario","Petit Formal Script","Halant","Amiko","Slabo 13px","Poly","Marmelad","Wallpoet","Baskervville","Calligraffitti","Sora","Be Vietnam","Schoolbell","Love Ya Like A Sister","Blinker","Gugi","Radley","Metrophobic","Merienda One","Podkova","Alatsi","Thasadith","Averia Libre","Manjari","Oxygen Mono","Cambay","Rammetto One","Limelight","Esteban","Aladin","Cormorant Infant","IM Fell Double Pica","NTR","Buenard","Spectral SC","Bellefair","Kelly Slab","Hanuman","Gravitas One","Amethysta","Inder","Andada","Fira Code","Marvel","Balthazar","Grandstander","Waiting for the Sunrise","Lekton","Sue Ellen Francisco","Megrim","Bentham","Space Grotesk","Harmattan","Gabriela","Encode Sans Semi Condensed","Turret Road","Kumbh Sans","Alike","Chelsea Market","Monsieur La Doulaise","Sniglet","Farro","Creepster","Convergence","Cormorant SC","Rouge Script","Cutive","Proza Libre","Hepta Slab","Bungee Shade","Baloo Da 2","Mirza","Montaga","Dawning of a New Day","IM Fell English","Bowlby One","ZCOOL XiaoWei","Qwigley","Sofia","Hi Melody","IM Fell DW Pica","Sedgwick Ave","Stardos Stencil","Original Surfer","Emilys Candy","Aguafina Script","UnifrakturMaguntia","Fanwood Text","B612 Mono","Alike Angular","Zeyada","Libre Barcode 39","Lemon","Grenze Gotisch","Sarpanch","Yatra One","Give You Glory","Bodoni Moda","Oregano","Averia Sans Libre","Raleway Dots","Finger Paint","Battambang","Expletus Sans","Baumans","Brawler","Quando","David Libre","Kadwa","Vast Shadow","Ceviche One","Montez","Oleo Script Swash Caps","Faster One","DM Mono","Frijole","Newsreader","Patrick Hand SC","Anaheim","Pompiere","Rasa","Doppio One","Dokdo","Andika","BioRhyme","Freckle Face","Antic Didone","Happy Monkey","Kurale","Oxanium","Homenaje","Clicker Script","Almendra","Wendy One","Meddon","Caladea","Numans","Encode Sans Expanded","Gurajada","Over the Rainbow","Fondamento","Atma","RocknRoll One","JetBrains Mono","Federo","Rakkas","Sail","Share Tech","Denk One","Galada","Wire One","Chau Philomene One","Skranji","ZCOOL QingKe HuangYou","Livvic","Orienta","Mansalva","Aref Ruqaa","Yusei Magic","Baloo Thambi 2","Ranchers","Major Mono Display","Katibeh","Euphoria Script","Walter Turncoat","Mouse Memoirs","Shojumaru","Calistoga","Timmana","Nova Mono","Ledger","Vollkorn SC","Vesper Libre","Codystar","McLaren","Nova Round","B612","Strait","Arya","Iceland","Short Stack","Tienne","Inknut Antiqua","Cormorant Upright","Mukta Mahee","Ranga","Crafty Girls","Mako","Delius Swash Caps","Montserrat Subrayada","Italiana","Tenali Ramakrishna","Life Savers","Ma Shan Zheng","Salsa","Vampiro One","Cherry Cream Soda","Antonio","Baloo Chettan 2","Mina","Unkempt","Cambo","Flamenco","Eater","Scope One","Odibee Sans","Peralta","Geo","Trade Winds","Tillana","Elsie","Red Rose","Bellota Text","Bilbo Swash Caps","Carrois Gothic SC","Dynalight","The Girl Next Door","Gaegu","Asul","Loved by the King","Coiny","Gafata","Prosto One","IM Fell English SC","Puritan","Encode Sans Semi Expanded","UnifrakturCook","Artifika","Cherry Swash","Imprima","Gorditas","Nokora","Metamorphous","Big Shoulders Text","Della Respira","Vibur","Engagement","Lily Script One","Englebert","Shippori Mincho","Nova Square","Voces","Bilbo","Notable","Headland One","Cantora One","Tauri","Meera Inimai","Benne","Medula One","Stalemate","Amarante","Yeon Sung","Khmer","Port Lligat Slab","Lexend Zetta","Reggae One","Fjord One","Charmonman","Slackey","Fraunces","Milonga","Lexend","Dela Gothic One","Mogra","Sura","Sarina","New Rocker","Goblin One","Manuale","Just Me Again Down Here","Kulim Park","Ruslan Display","League Script","Shanti","Text Me One","Delius Unicase","Fontdiner Swanky","Pavanam","Poller One","Saira Stencil One","Crushed","Kodchasan","Kranky","Habibi","Paprika","Prociono","Lovers Quarrel","Gamja Flower","Syne","Ramaraja","Fresca","Moul","Goldman","Henny Penny","Big Shoulders Stencil Display","Song Myung","Chela One","Overlock SC","Germania One","Pirata One","Libre Barcode 39 Text","Kite One","Girassol","Baloo Paaji 2","Stoke","Dekko","Ribeye","Julee","Koulen","Spicy Rice","Bellota","Sonsie One","Akaya Kanadaka","Macondo Swash Caps","Gotu","IM Fell French Canon","Sancreek","Cute Font","Tulpen One","Nova Flat","Baloo Bhai 2","Simonetta","Port Lligat Sans","Rationale","Kufam","Kumar One","Baloo Bhaina 2","Modak","Rosarivo","Mystery Quest","Donegal One","Chango","Kotta One","Quintessential","Croissant One","IM Fell French Canon SC","Inria Serif","Kiwi Maru","Petrona","Fahkwang","Libre Caslon Display","Chicle","Ruluko","Uncial Antiqua","Stylish","Londrina Outline","Margarine","East Sea Dokdo","IM Fell Great Primer","Cormorant Unicase","Zilla Slab Highlight","Ibarra Real Nova","Fenix","Bubbler One","Angkor","IM Fell DW Pica SC","Libre Barcode 39 Extended Text","Lakki Reddy","Dorsa","Sumana","Lexend Exa","Cagliostro","Junge","Asar","Tomorrow","Chilanka","Piazzolla","Condiment","Rowdies","Offside","Sulphur Point","Galdeano","Stint Ultra Expanded","Averia Gruesa Libre","Swanky and Moo Moo","Solway","Buda","Metal","Redressed","Wellfleet","Shippori Mincho B1","Farsan","Joti One","Potta One","Chathura","Kavivanar","Libre Barcode 128","Kdam Thmor","Hanalei Fill","Barrio","Jolly Lodger","Akronim","Hachi Maru Pop","Hanalei","Jomolhari","Bayon","Zen Dots","Eagle Lake","Sansita Swashed","Meie Script","Elsie Swash Caps","Piedra","Modern Antiqua","Miniver","Inika","Rum Raisin","Autour One","Srisakdi","Sree Krushnadevaraya","DotGothic16","Nosifer","Viaoda Libre","Spirax","Iceberg","Linden Hill","Marko One","Mrs Sheppards","Train One","Maiden Orange","Londrina Shadow","Ruthie","Beth Ellen","Diplomata SC","Sirin Stencil","Kavoon","Sahitya","Kantumruy","Griffy","Monofett","Felipa","Arbutus","Siemreap","Content","Ewert","Lexend Mega","Bahiana","Atomic Age","Ribeye Marrow","Dr Sugiyama","Metal Mania","Asset","Syne Mono","Devonshire","Princess Sofia","Caesar Dressing","Stick","Molle","Rhodium Libre","Orelega One","Bigshot One","Trykker","Snippet","Romanesco","MuseoModerno","Diplomata","Kirang Haerang","Libre Barcode 128 Text","Lancelot","Bigelow Rules","Flavors","Nova Slim","Poor Story","Varta","ZCOOL KuaiLe","Londrina Sketch","Risque","Glass Antiqua","IM Fell Great Primer SC","Peddana","Smythe","Jacques Francois Shadow","Gupter","Barriecito","MedievalSharp","Irish Grover","Jim Nightshade","Almendra SC","Odor Mean Chey","Ravi Prakash","Bokor","Fascinate Inline","Revalia","GFS Neohellenic","Long Cang","Sedgwick Ave Display","Snowburst One","Kumar One Outline","Gayathri","Freehand","Keania One","Taprom","Stalinist One","Underdog","Grenze","Mr Bedfort","Seymour One","Galindo","Oldenburg","Emblema One","Miss Fajardose","Plaster","Libre Barcode 39 Extended","Almendra Display","Texturina","Unlock","Macondo","Jacques Francois","Andika New Basic","Liu Jian Mao Cao","Dangrek","Brygada 1918","Suwannaphum","Smokum","Big Shoulders Stencil Text","IM Fell Double Pica SC","Lexend Giga","Butterfly Kids","Trochut","Purple Purse","Nova Oval","Fasthand","Inria Sans","Chenla","Bungee Outline","Erica One","Preahvihear","New Tegomin","Sunshiney","Combo","Akaya Telivigala","Zhi Mang Xing","Nova Script","Supermercado One","Astloch","Bahianita","Fascinate","Nova Cut","Bonbon","Bungee Hairline","Black And White Picture","Vibes","Ruge Boogie","Federant","Gidugu","Passero One","Sofadi One","Sevillana","Miltonian","Miltonian Tattoo","Suravaram","Geostar Fill","Butcherman","Lacquer","Aubrey","Lexend Tera","Nerko One","Dhurjati","Moulpali","Imbue","Big Shoulders Inline Text","Fruktur","BioRhyme Expanded","Karantina","Kenia","Ballet","Single Day","Lexend Peta","Xanh Mono","Warnes","Langar","Truculenta","Geostar","Trispace","Oi","Big Shoulders Inline Display","Syne Tactile","Libre Barcode EAN13 Text","Bona Nova","Encode Sans SC","Festive","Fuggles","Otomanopee One","Qahiri","STIX Two Math","Tourney","Uchen","Yomogi","Zen Loop","Zen Tokyo Zoo"],"trending":["Jomhuria","Castoro","Benne","Big Shoulders Display","Krona One","Big Shoulders Stencil Display","Akaya Kanadaka","Yellowtail","Noto Serif SC","Noto Serif KR","Suez One","Dela Gothic One","Kirang Haerang","Viaoda Libre","Fraunces","Noto Serif TC","Secular One","Fasthand","Averia Sans Libre","Chakra Petch","RocknRoll One","Kulim Park","Hanalei","Encode Sans Expanded","Staatliches","Maven Pro","Suwannaphum","Mate SC","Jolly Lodger","Duru Sans","Shrikhand","Yeon Sung","KoHo","DotGothic16","Itim","Libre Barcode 128 Text","Saira Extra Condensed","Londrina Shadow","Gotu","Truculenta","Commissioner","Encode Sans Semi Expanded","Stalinist One","Kufam","Armata","Atma","Almarai","Rozha One","Antic","Train One","Mr Bedfort","Saira Condensed","Trocchi","Stick","Trispace","Taprom","Tulpen One","Maitree","Milonga","Be Vietnam","Wire One","Yatra One","Noto Serif JP","Shippori Mincho","Tillana","Sura","DM Serif Display","Belgrano","Nova Oval","Lexend Mega","Engagement","Public Sans","Galdeano","Prompt","Baloo Chettan 2","Bellota","Lexend","Liu Jian Mao Cao","Bellefair","Ewert","Literata","Shojumaru","Quattrocento Sans","Teko","Barriecito","Mada","Mountains of Christmas","Spartan","Imbue","Eczar","Libre Baskerville","Wendy One","Sahitya","DM Serif Text","Geo","Diplomata SC","Red Rose","Marcellus","Content","Bai Jamjuree","Warnes","Vidaloka","Bungee Shade","Londrina Outline","Risque","Hi Melody","Newsreader","Dawning of a New Day","Libre Caslon Display","Fugaz One","Englebert","Corben","Lexend Exa","Darker Grotesque","Skranji","Changa One","Mirza","Dhurjati","Asap Condensed","Mallanna","Katibeh","Raleway Dots","Karantina","Inder","Peralta","Denk One","Playfair Display SC","Fira Sans","Gupter","Rajdhani","Noto Sans SC","B612 Mono","DM Mono","Caladea","Mrs Sheppards","Gaegu","Sarina","Brygada 1918","Baloo Thambi 2","Bubblegum Sans","Irish Grover","Single Day","Goblin One","Hepta Slab","Laila","Chango","Margarine","Sansita Swashed","Saira Semi Condensed","Lexend Tera","Original Surfer","Arya","Carrois Gothic SC","Mitr","Metal","Cousine","Varela Round","Cormorant SC","Oi","Libre Barcode 39","IBM Plex Sans","Proza Libre","Tinos","Nanum Myeongjo","Asar","Snippet","Nova Round","Alata","Lexend Deca","Rye","Mukta Malar","El Messiri","Cambay","Hachi Maru Pop","Herr Von Muellerhoff","Stalemate","Vampiro One","La Belle Aurore","Holtwood One SC","IM Fell Great Primer SC","Ranga","Esteban","Coustard","Noto Sans","Coiny","Nunito","Inknut Antiqua","Fira Code","Khula","Abhaya Libre","Spectral","Lalezar","Shanti","Mogra","Carrois Gothic","Comic Neue","BenchNine","IM Fell Great Primer","Biryani","Sulphur Point","Sarabun","Sree Krushnadevaraya","M PLUS Rounded 1c","New Rocker","Fascinate Inline","Walter Turncoat","Cinzel Decorative","Nova Slim","Tajawal","Varta","Iceland","Cambo","Griffy","Bayon","Monofett","Heebo","Voltaire","Noto Serif","Dynalight","Didact Gothic","Alegreya SC","Over the Rainbow","Farsan","Puritan","Big Shoulders Inline Text","Syne","Atomic Age","Dokdo","Economica","Aldrich","Sirin Stencil","Cutive Mono","Recursive","Six Caps","Happy Monkey","Emblema One","Kiwi Maru","Beth Ellen","Vollkorn","Nova Script","Sarala","Joti One","Rancho","Mouse Memoirs","Grenze","IM Fell French Canon","Zeyada","Kumar One Outline","Goudy Bookletter 1911","Karma","Gravitas One","Pragati Narrow","Nosifer","Mate","Yrsa","Faster One","Sevillana","Paprika","Aleo","Kavivanar","Chela One","Amita","Covered By Your Grace","Space Grotesk","Bungee","Kanit","Metrophobic","Qwigley","Cormorant Upright","Libre Barcode 39 Text","Sofadi One","Baskervville","Red Hat Text","Bungee Outline","Averia Libre","Exo 2","Peddana","Kosugi Maru","Almendra","Podkova","Dorsa","Pridi","Ruluko","Overlock","Cabin Sketch","Mako","Sora","Cute Font","Scope One","Delius Unicase","Martel","Baloo Da 2","Eagle Lake","Crimson Pro","Jockey One","Black Ops One","Alatsi","Piedra","Norican","Miniver","Chonburi","Asul","Advent Pro","Signika","Cherry Cream Soda","Buenard","Meddon","Sunflower","Petrona","Sedgwick Ave Display","Prata","Rouge Script","Siemreap","Oxygen Mono","Cantarell","Hind","GFS Neohellenic","Oleo Script","Sansita","Miss Fajardose","Ibarra Real Nova","Arimo","Noto Sans KR","Dosis","DM Sans","Stoke","Lora","Vesper Libre","Alfa Slab One","Rufina","Poiret One","Great Vibes","Inter","Smythe","EB Garamond","Suranna","Inika","Federo","Pathway Gothic One","Mr Dafoe","Aguafina Script","Felipa","Open Sans Condensed","Work Sans","Poppins","Dr Sugiyama","Rationale","Manjari","Flamenco","Libre Franklin","Noto Sans HK","Cormorant","Fjalla One","Scheherazade","Asap","Mrs Saint Delafield","Merienda One","Diplomata","Habibi","Red Hat Display","PT Mono","Neucha","IM Fell French Canon SC","Assistant","Poly","Tangerine","Ubuntu Condensed","Poor Story","Bungee Inline","Gothic A1","Sancreek","Xanh Mono","Alegreya Sans","Cormorant Unicase","Vibur","Croissant One","Shadows Into Light","Kameron","Passero One","Calistoga","Chivo","Yesteryear","Shippori Mincho B1","Bahiana","Sunshiney","Amaranth","Orienta","Iceberg","Trade Winds","Handlee","Arvo","Average","Sacramento","Baloo Bhai 2","Moul","Oswald","Sofia","Kelly Slab","Suravaram","Hind Siliguri","Medula One","Arbutus","Miltonian","Turret Road","Nunito Sans","Crushed","Sonsie One","PT Serif","Rubik","Galada","IM Fell English","Abril Fatface","Encode Sans SC","Qahiri","Otomanopee One","Fira Sans Condensed","Fjord One","Zen Loop","Zen Tokyo Zoo","Quicksand","Montserrat","STIX Two Math","Fuggles","Yomogi","Bona Nova","Festive","Tourney","Caveat","Baloo 2","Libre Barcode 39 Extended Text","Uchen","Raleway","Jomolhari","Exo","Vast Shadow","Hanuman","Jacques Francois","Gabriela","Rammetto One","Cairo","Cabin","Butterfly Kids","Sawarabi Mincho","Gelasio","Prociono","Romanesco","Archivo Black","Domine","Noto Sans JP","Sorts Mill Goudy","Alex Brush","Cardo","Sarpanch","Balthazar","Ballet","Bevan","Jura","Space Mono","Oregano","Brawler","Carme","Nanum Pen Script","Arima Madurai","Montserrat Alternates","Patua One","Niramit","Nanum Gothic Coding","Kumar One","Artifika","Lustria","Pinyon Script","Potta One","Sue Ellen Francisco","Give You Glory","Mukta Vaani","Averia Serif Libre","Zhi Mang Xing","Amiri","Source Serif Pro","Jim Nightshade","Ropa Sans","Righteous","Ubuntu","Bitter","Charmonman","Homemade Apple","Athiti","Tenali Ramakrishna","Sawarabi Gothic","Roboto Mono","Leckerli One","Grand Hotel","Lemonada","Patrick Hand SC","Chelsea Market","Kristi","Sintony","Josefin Sans","Special Elite","Zilla Slab","Almendra SC","Cedarville Cursive","Lato","Kumbh Sans","Amatic SC","David Libre","Bellota Text","Expletus Sans","Allura","Alike","Markazi Text","Enriqueta","Metamorphous","Yeseva One","Old Standard TT","Alegreya Sans SC","Euphoria Script","Lexend Peta","Asset","Boogaloo","Oldenburg","Sriracha","Ruda","Akaya Telivigala","Varela","Metal Mania","Unna","Crete Round","Livvic","Love Ya Like A Sister","Purple Purse","Lemon","Fauna One","Playfair Display","Mulish","Cookie","Cuprum","Amiko","Petit Formal Script","Inria Serif","Simonetta","Roboto","Russo One","Clicker Script","Kaushan Script","Encode Sans Semi Condensed","Mina","Mr De Haviland","Finger Paint","Redressed","Share Tech Mono","IM Fell Double Pica","Philosopher","Odor Mean Chey","Ramaraja","Dancing Script","Shadows Into Light Two","Port Lligat Slab","Barlow","Noticia Text","Fira Mono","Anonymous Pro","Damion","Slabo 13px","Amethysta","Marcellus SC","Bowlby One","Karla","Emilys Candy","Timmana","Rum Raisin","Merriweather Sans","JetBrains Mono","Stylish","Just Another Hand","Pompiere","Delius","Bree Serif","Kavoon","Days One","Ceviche One","Bad Script","Quando","Overpass","GFS Didot","Kosugi","Vibes","Montserrat Subrayada","Cormorant Infant","Permanent Marker","Anton","Libre Barcode 39 Extended","Faustina","Fira Sans Extra Condensed","Yusei Magic","UnifrakturCook","Jost","Overlock SC","Fanwood Text","PT Sans Narrow","Strait","Aclonica","Martel Sans","IBM Plex Serif","Fondamento","Rochester","Oxygen","Mukta","Nobile","Astloch","Lekton","PT Sans","Baloo Paaji 2","Mukta Mahee","Inconsolata","Rokkitt","Bokor","Electrolize","Roboto Condensed","Share","Roboto Slab","Life Savers","Palanquin Dark","Alef","Convergence","Stint Ultra Expanded","Federant","Gloria Hallelujah","Fredericka the Great","Arapey","Text Me One","K2D","Freehand","Bilbo","Ultra","Andada","Rasa","Archivo","Nova Square","IBM Plex Mono","Acme","Allerta Stencil","Lancelot","Reem Kufi","Freckle Face","Angkor","Mali","Abel","Modak","Cantata One","Pacifico","Alegreya","Smokum","Ubuntu Mono","Nanum Brush Script","Reenie Beanie","Condiment","Nixie One","Contrail One","Headland One","Megrim","Rubik Mono One","Questrial","Share Tech","Lexend Giga","Caudex","Tomorrow","Monsieur La Doulaise","Trirong","Cherry Swash","Courgette","Concert One","Calligraffitti","Lobster Two","Titillium Web","Cagliostro","Glass Antiqua","Courier Prime","UnifrakturMaguntia","Source Sans Pro","Sigmar One","Julee","Molle","Slackey","Gurajada","Amarante","Grandstander","Germania One","Numans","Bilbo Swash Caps","Buda","Oxanium","Supermercado One","Indie Flower","Marmelad","Gafata","Josefin Slab","Rosarivo","Halant","Glegoo","Ruge Boogie","Nanum Gothic","Waiting for the Sunrise","Baumans","Catamaran","Sedgwick Ave","Arsenal","Orbitron","Geostar","Frank Ruhl Libre","Nova Cut","Thasadith","Racing Sans One","Comfortaa","Candal","Telex","Arizonia","New Tegomin","Just Me Again Down Here","Marck Script","Spectral SC","Yantramanav","Arbutus Slab","Erica One","Kreon","Signika Negative","NTR","Delius Swash Caps","Archivo Narrow","Nothing You Could Do","Adamina","Radley","News Cycle","Unica One","Julius Sans One","Aref Ruqaa","Spinnaker","Kantumruy","Linden Hill","Annie Use Your Telescope","Piazzolla","Londrina Sketch","Salsa","Della Respira","The Girl Next Door","Saira Stencil One","Revalia","Barrio","IM Fell English SC","Pontano Sans","Merriweather","League Script","Gudea","Battambang","Bonbon","Spicy Rice","Crimson Text","Syne Mono","Coming Soon","ABeeZee","Italianno","Khmer","Seaweed Script","Play","Akronim","Saira","Preahvihear","Source Code Pro","Cormorant Garamond","Hind Guntur","Trykker","Cabin Condensed","Cinzel","Mystery Quest","Chau Philomene One","Encode Sans","Butcherman","Kotta One","Gidugu","Forum","Eater","Ranchers","ZCOOL QingKe HuangYou","Gugi","Combo","Slabo 27px","Princess Sofia","Bangers","Capriola","Loved by the King","Macondo Swash Caps","BioRhyme","IBM Plex Sans Condensed","Bentham","Allan","Long Cang","Caveat Brush","Gamja Flower","Ledger","Almendra Display","Encode Sans Condensed","Fenix","Actor","McLaren","IM Fell Double Pica SC","Belleza","Noto Sans TC","Michroma","Kodchasan","Nokora","Neuton","Ruthie","Khand","Syncopate","Lateef","Baloo Tammudu 2","Bebas Neue","Rock Salt","PT Serif Caption","Quattrocento","Notable","Black Han Sans","Lobster","Junge","Gentium Basic","Basic","Rakkas","Inria Sans","Devonshire","Tenor Sans","Lily Script One","Vollkorn SC","Ovo","Chathura","Chicle","Graduate","Crafty Girls","Istok Web","Kdam Thmor","Libre Barcode EAN13 Text","Tienne","Caesar Dressing","Jacques Francois Shadow","Tauri","Maiden Orange","Yanone Kaffeesatz","Zen Dots","Parisienne","Allerta","Molengo","Libre Caslon Text","Donegal One","Limelight","Cutive","IM Fell DW Pica","Playball","Passion One","Lilita One","Lakki Reddy","Rambla","Hind Vadodara","Antic Slab","Lexend Zetta","Knewave","Uncial Antiqua","Montaga","Coda Caption","M PLUS 1p","Taviraj","Elsie","Mandali","Volkhov","Plaster","Open Sans","Andika","Chewy","Scada","Meera Inimai","Galindo","Rosario","Satisfy","Blinker","Underdog","Libre Barcode 128","MuseoModerno","Aladin","Offside","MedievalSharp","B612","Epilogue","Baloo Bhaina 2","Kalam","Gochi Hand","Nova Mono","VT323","Meie Script","Orelega One","Snowburst One","Gruppo","Nerko One","Ma Shan Zheng","Moulpali","Stardos Stencil","Ribeye","Jua","Spirax","Lovers Quarrel","Palanquin","Copse","Voces","Average Sans","Grenze Gotisch","Krub","Macondo","Bowlby One SC","Kranky","Magra","Bungee Hairline","Anaheim","Andika New Basic","Oleo Script Swash Caps","Schoolbell","Aubrey","Audiowide","Patrick Hand","Barlow Semi Condensed","Swanky and Moo Moo","Oranienbaum","Dekko","Manrope","Geostar Fill","Henny Penny","Sanchez","Lusitana","Carter One","Big Shoulders Text","Viga","Short Stack","Modern Antiqua","Rhodium Libre","Italiana","Unkempt","Berkshire Swash","Charm","Wellfleet","Elsie Swash Caps","Hanalei Fill","Marko One","Mansalva","Quintessential","Autour One","Judson","Harmattan","Manuale","Kurale","Fontdiner Swanky","Luckiest Guy","ZCOOL XiaoWei","Solway","Flavors","Gorditas","Fredoka One","Gilda Display","Codystar","Alike Angular","Merienda","Wallpoet","Francois One","Sumana","Goldman","Port Lligat Sans","Fresca","Dangrek","Cantora One","Imprima","Sniglet","Monoton","Syne Tactile","Miltonian Tattoo","Fruktur","Koulen","Coda","Ribeye Marrow","Changa","Prosto One","Montez","Alice","Marvel","Doppio One","IM Fell DW Pica SC","Texturina","Londrina Solid","Padauk","Jaldi","Sail","Bubbler One","Kite One","Black And White Picture","Press Start 2P","Miriam Libre","Zilla Slab Highlight","Lacquer","Srisakdi","Unlock","Pirata One","Poller One","Niconne","Keania One","Homenaje","Averia Gruesa Libre","Pavanam","Ramabhadra","Major Mono Display","Baloo Tamma 2","Antonio","Trochut","Fahkwang","Reggae One","Antic Didone","Architects Daughter","Rowdies","Monda","Bigshot One","Langar","Kenia","Barlow Condensed","Fascinate","Paytone One","Chenla","Bigelow Rules","Overpass Mono","BioRhyme Expanded","Frijole","Hind Madurai","Gentium Book Basic","Big Shoulders Stencil Text","Stint Ultra Condensed","Squada One","Titan One","East Sea Dokdo","Ravi Prakash","Song Myung","Chilanka","Quantico","Balsamiq Sans","Pangolin","Nova Flat","PT Sans Caption","Ruslan Display","Creepster","Bahianita","Hammersmith One","Gayathri","Sen","Big Shoulders Inline Display","Bodoni Moda","ZCOOL KuaiLe","Kadwa","Seymour One","Girassol","Pattaya","Do Hyeon","Farro","Odibee Sans"]}}
\ No newline at end of file
diff --git a/functions/kirki/packages/autoload.php b/functions/kirki/packages/autoload.php
new file mode 100644
index 0000000..e514376
--- /dev/null
+++ b/functions/kirki/packages/autoload.php
@@ -0,0 +1,7 @@
+
+ * Jordi Boggiano
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Composer\Autoload;
+
+/**
+ * ClassLoader implements a PSR-0, PSR-4 and classmap class loader.
+ *
+ * $loader = new \Composer\Autoload\ClassLoader();
+ *
+ * // register classes with namespaces
+ * $loader->add('Symfony\Component', __DIR__.'/component');
+ * $loader->add('Symfony', __DIR__.'/framework');
+ *
+ * // activate the autoloader
+ * $loader->register();
+ *
+ * // to enable searching the include path (eg. for PEAR packages)
+ * $loader->setUseIncludePath(true);
+ *
+ * In this example, if you try to use a class in the Symfony\Component
+ * namespace or one of its children (Symfony\Component\Console for instance),
+ * the autoloader will first look for the class under the component/
+ * directory, and it will then fallback to the framework/ directory if not
+ * found before giving up.
+ *
+ * This class is loosely based on the Symfony UniversalClassLoader.
+ *
+ * @author Fabien Potencier
+ * @author Jordi Boggiano
+ * @see https://www.php-fig.org/psr/psr-0/
+ * @see https://www.php-fig.org/psr/psr-4/
+ */
+class ClassLoader
+{
+ /** @var ?string */
+ private $vendorDir;
+
+ // PSR-4
+ /**
+ * @var array[]
+ * @psalm-var array>
+ */
+ private $prefixLengthsPsr4 = array();
+ /**
+ * @var array[]
+ * @psalm-var array>
+ */
+ private $prefixDirsPsr4 = array();
+ /**
+ * @var array[]
+ * @psalm-var array
+ */
+ private $fallbackDirsPsr4 = array();
+
+ // PSR-0
+ /**
+ * @var array[]
+ * @psalm-var array>
+ */
+ private $prefixesPsr0 = array();
+ /**
+ * @var array[]
+ * @psalm-var array
+ */
+ private $fallbackDirsPsr0 = array();
+
+ /** @var bool */
+ private $useIncludePath = false;
+
+ /**
+ * @var string[]
+ * @psalm-var array
+ */
+ private $classMap = array();
+
+ /** @var bool */
+ private $classMapAuthoritative = false;
+
+ /**
+ * @var bool[]
+ * @psalm-var array
+ */
+ private $missingClasses = array();
+
+ /** @var ?string */
+ private $apcuPrefix;
+
+ /**
+ * @var self[]
+ */
+ private static $registeredLoaders = array();
+
+ /**
+ * @param ?string $vendorDir
+ */
+ public function __construct($vendorDir = null)
+ {
+ $this->vendorDir = $vendorDir;
+ }
+
+ /**
+ * @return string[]
+ */
+ public function getPrefixes()
+ {
+ if (!empty($this->prefixesPsr0)) {
+ return call_user_func_array('array_merge', array_values($this->prefixesPsr0));
+ }
+
+ return array();
+ }
+
+ /**
+ * @return array[]
+ * @psalm-return array>
+ */
+ public function getPrefixesPsr4()
+ {
+ return $this->prefixDirsPsr4;
+ }
+
+ /**
+ * @return array[]
+ * @psalm-return array
+ */
+ public function getFallbackDirs()
+ {
+ return $this->fallbackDirsPsr0;
+ }
+
+ /**
+ * @return array[]
+ * @psalm-return array
+ */
+ public function getFallbackDirsPsr4()
+ {
+ return $this->fallbackDirsPsr4;
+ }
+
+ /**
+ * @return string[] Array of classname => path
+ * @psalm-return array
+ */
+ public function getClassMap()
+ {
+ return $this->classMap;
+ }
+
+ /**
+ * @param string[] $classMap Class to filename map
+ * @psalm-param array $classMap
+ *
+ * @return void
+ */
+ public function addClassMap(array $classMap)
+ {
+ if ($this->classMap) {
+ $this->classMap = array_merge($this->classMap, $classMap);
+ } else {
+ $this->classMap = $classMap;
+ }
+ }
+
+ /**
+ * Registers a set of PSR-0 directories for a given prefix, either
+ * appending or prepending to the ones previously set for this prefix.
+ *
+ * @param string $prefix The prefix
+ * @param string[]|string $paths The PSR-0 root directories
+ * @param bool $prepend Whether to prepend the directories
+ *
+ * @return void
+ */
+ public function add($prefix, $paths, $prepend = false)
+ {
+ if (!$prefix) {
+ if ($prepend) {
+ $this->fallbackDirsPsr0 = array_merge(
+ (array) $paths,
+ $this->fallbackDirsPsr0
+ );
+ } else {
+ $this->fallbackDirsPsr0 = array_merge(
+ $this->fallbackDirsPsr0,
+ (array) $paths
+ );
+ }
+
+ return;
+ }
+
+ $first = $prefix[0];
+ if (!isset($this->prefixesPsr0[$first][$prefix])) {
+ $this->prefixesPsr0[$first][$prefix] = (array) $paths;
+
+ return;
+ }
+ if ($prepend) {
+ $this->prefixesPsr0[$first][$prefix] = array_merge(
+ (array) $paths,
+ $this->prefixesPsr0[$first][$prefix]
+ );
+ } else {
+ $this->prefixesPsr0[$first][$prefix] = array_merge(
+ $this->prefixesPsr0[$first][$prefix],
+ (array) $paths
+ );
+ }
+ }
+
+ /**
+ * Registers a set of PSR-4 directories for a given namespace, either
+ * appending or prepending to the ones previously set for this namespace.
+ *
+ * @param string $prefix The prefix/namespace, with trailing '\\'
+ * @param string[]|string $paths The PSR-4 base directories
+ * @param bool $prepend Whether to prepend the directories
+ *
+ * @throws \InvalidArgumentException
+ *
+ * @return void
+ */
+ public function addPsr4($prefix, $paths, $prepend = false)
+ {
+ if (!$prefix) {
+ // Register directories for the root namespace.
+ if ($prepend) {
+ $this->fallbackDirsPsr4 = array_merge(
+ (array) $paths,
+ $this->fallbackDirsPsr4
+ );
+ } else {
+ $this->fallbackDirsPsr4 = array_merge(
+ $this->fallbackDirsPsr4,
+ (array) $paths
+ );
+ }
+ } elseif (!isset($this->prefixDirsPsr4[$prefix])) {
+ // Register directories for a new namespace.
+ $length = strlen($prefix);
+ if ('\\' !== $prefix[$length - 1]) {
+ throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
+ }
+ $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
+ $this->prefixDirsPsr4[$prefix] = (array) $paths;
+ } elseif ($prepend) {
+ // Prepend directories for an already registered namespace.
+ $this->prefixDirsPsr4[$prefix] = array_merge(
+ (array) $paths,
+ $this->prefixDirsPsr4[$prefix]
+ );
+ } else {
+ // Append directories for an already registered namespace.
+ $this->prefixDirsPsr4[$prefix] = array_merge(
+ $this->prefixDirsPsr4[$prefix],
+ (array) $paths
+ );
+ }
+ }
+
+ /**
+ * Registers a set of PSR-0 directories for a given prefix,
+ * replacing any others previously set for this prefix.
+ *
+ * @param string $prefix The prefix
+ * @param string[]|string $paths The PSR-0 base directories
+ *
+ * @return void
+ */
+ public function set($prefix, $paths)
+ {
+ if (!$prefix) {
+ $this->fallbackDirsPsr0 = (array) $paths;
+ } else {
+ $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths;
+ }
+ }
+
+ /**
+ * Registers a set of PSR-4 directories for a given namespace,
+ * replacing any others previously set for this namespace.
+ *
+ * @param string $prefix The prefix/namespace, with trailing '\\'
+ * @param string[]|string $paths The PSR-4 base directories
+ *
+ * @throws \InvalidArgumentException
+ *
+ * @return void
+ */
+ public function setPsr4($prefix, $paths)
+ {
+ if (!$prefix) {
+ $this->fallbackDirsPsr4 = (array) $paths;
+ } else {
+ $length = strlen($prefix);
+ if ('\\' !== $prefix[$length - 1]) {
+ throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
+ }
+ $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
+ $this->prefixDirsPsr4[$prefix] = (array) $paths;
+ }
+ }
+
+ /**
+ * Turns on searching the include path for class files.
+ *
+ * @param bool $useIncludePath
+ *
+ * @return void
+ */
+ public function setUseIncludePath($useIncludePath)
+ {
+ $this->useIncludePath = $useIncludePath;
+ }
+
+ /**
+ * Can be used to check if the autoloader uses the include path to check
+ * for classes.
+ *
+ * @return bool
+ */
+ public function getUseIncludePath()
+ {
+ return $this->useIncludePath;
+ }
+
+ /**
+ * Turns off searching the prefix and fallback directories for classes
+ * that have not been registered with the class map.
+ *
+ * @param bool $classMapAuthoritative
+ *
+ * @return void
+ */
+ public function setClassMapAuthoritative($classMapAuthoritative)
+ {
+ $this->classMapAuthoritative = $classMapAuthoritative;
+ }
+
+ /**
+ * Should class lookup fail if not found in the current class map?
+ *
+ * @return bool
+ */
+ public function isClassMapAuthoritative()
+ {
+ return $this->classMapAuthoritative;
+ }
+
+ /**
+ * APCu prefix to use to cache found/not-found classes, if the extension is enabled.
+ *
+ * @param string|null $apcuPrefix
+ *
+ * @return void
+ */
+ public function setApcuPrefix($apcuPrefix)
+ {
+ $this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null;
+ }
+
+ /**
+ * The APCu prefix in use, or null if APCu caching is not enabled.
+ *
+ * @return string|null
+ */
+ public function getApcuPrefix()
+ {
+ return $this->apcuPrefix;
+ }
+
+ /**
+ * Registers this instance as an autoloader.
+ *
+ * @param bool $prepend Whether to prepend the autoloader or not
+ *
+ * @return void
+ */
+ public function register($prepend = false)
+ {
+ spl_autoload_register(array($this, 'loadClass'), true, $prepend);
+
+ if (null === $this->vendorDir) {
+ return;
+ }
+
+ if ($prepend) {
+ self::$registeredLoaders = array($this->vendorDir => $this) + self::$registeredLoaders;
+ } else {
+ unset(self::$registeredLoaders[$this->vendorDir]);
+ self::$registeredLoaders[$this->vendorDir] = $this;
+ }
+ }
+
+ /**
+ * Unregisters this instance as an autoloader.
+ *
+ * @return void
+ */
+ public function unregister()
+ {
+ spl_autoload_unregister(array($this, 'loadClass'));
+
+ if (null !== $this->vendorDir) {
+ unset(self::$registeredLoaders[$this->vendorDir]);
+ }
+ }
+
+ /**
+ * Loads the given class or interface.
+ *
+ * @param string $class The name of the class
+ * @return true|null True if loaded, null otherwise
+ */
+ public function loadClass($class)
+ {
+ if ($file = $this->findFile($class)) {
+ includeFile($file);
+
+ return true;
+ }
+
+ return null;
+ }
+
+ /**
+ * Finds the path to the file where the class is defined.
+ *
+ * @param string $class The name of the class
+ *
+ * @return string|false The path if found, false otherwise
+ */
+ public function findFile($class)
+ {
+ // class map lookup
+ if (isset($this->classMap[$class])) {
+ return $this->classMap[$class];
+ }
+ if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) {
+ return false;
+ }
+ if (null !== $this->apcuPrefix) {
+ $file = apcu_fetch($this->apcuPrefix.$class, $hit);
+ if ($hit) {
+ return $file;
+ }
+ }
+
+ $file = $this->findFileWithExtension($class, '.php');
+
+ // Search for Hack files if we are running on HHVM
+ if (false === $file && defined('HHVM_VERSION')) {
+ $file = $this->findFileWithExtension($class, '.hh');
+ }
+
+ if (null !== $this->apcuPrefix) {
+ apcu_add($this->apcuPrefix.$class, $file);
+ }
+
+ if (false === $file) {
+ // Remember that this class does not exist.
+ $this->missingClasses[$class] = true;
+ }
+
+ return $file;
+ }
+
+ /**
+ * Returns the currently registered loaders indexed by their corresponding vendor directories.
+ *
+ * @return self[]
+ */
+ public static function getRegisteredLoaders()
+ {
+ return self::$registeredLoaders;
+ }
+
+ /**
+ * @param string $class
+ * @param string $ext
+ * @return string|false
+ */
+ private function findFileWithExtension($class, $ext)
+ {
+ // PSR-4 lookup
+ $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext;
+
+ $first = $class[0];
+ if (isset($this->prefixLengthsPsr4[$first])) {
+ $subPath = $class;
+ while (false !== $lastPos = strrpos($subPath, '\\')) {
+ $subPath = substr($subPath, 0, $lastPos);
+ $search = $subPath . '\\';
+ if (isset($this->prefixDirsPsr4[$search])) {
+ $pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1);
+ foreach ($this->prefixDirsPsr4[$search] as $dir) {
+ if (file_exists($file = $dir . $pathEnd)) {
+ return $file;
+ }
+ }
+ }
+ }
+ }
+
+ // PSR-4 fallback dirs
+ foreach ($this->fallbackDirsPsr4 as $dir) {
+ if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) {
+ return $file;
+ }
+ }
+
+ // PSR-0 lookup
+ if (false !== $pos = strrpos($class, '\\')) {
+ // namespaced class name
+ $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1)
+ . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR);
+ } else {
+ // PEAR-like class name
+ $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext;
+ }
+
+ if (isset($this->prefixesPsr0[$first])) {
+ foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) {
+ if (0 === strpos($class, $prefix)) {
+ foreach ($dirs as $dir) {
+ if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
+ return $file;
+ }
+ }
+ }
+ }
+ }
+
+ // PSR-0 fallback dirs
+ foreach ($this->fallbackDirsPsr0 as $dir) {
+ if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
+ return $file;
+ }
+ }
+
+ // PSR-0 include paths.
+ if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) {
+ return $file;
+ }
+
+ return false;
+ }
+}
+
+/**
+ * Scope isolated include.
+ *
+ * Prevents access to $this/self from included files.
+ *
+ * @param string $file
+ * @return void
+ * @private
+ */
+function includeFile($file)
+{
+ include $file;
+}
diff --git a/functions/kirki/packages/composer/InstalledVersions.php b/functions/kirki/packages/composer/InstalledVersions.php
new file mode 100644
index 0000000..d50e0c9
--- /dev/null
+++ b/functions/kirki/packages/composer/InstalledVersions.php
@@ -0,0 +1,350 @@
+
+ * Jordi Boggiano
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Composer;
+
+use Composer\Autoload\ClassLoader;
+use Composer\Semver\VersionParser;
+
+/**
+ * This class is copied in every Composer installed project and available to all
+ *
+ * See also https://getcomposer.org/doc/07-runtime.md#installed-versions
+ *
+ * To require its presence, you can require `composer-runtime-api ^2.0`
+ */
+class InstalledVersions
+{
+ /**
+ * @var mixed[]|null
+ * @psalm-var array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array}|array{}|null
+ */
+ private static $installed;
+
+ /**
+ * @var bool|null
+ */
+ private static $canGetVendors;
+
+ /**
+ * @var array[]
+ * @psalm-var array}>
+ */
+ private static $installedByVendor = array();
+
+ /**
+ * Returns a list of all package names which are present, either by being installed, replaced or provided
+ *
+ * @return string[]
+ * @psalm-return list
+ */
+ public static function getInstalledPackages()
+ {
+ $packages = array();
+ foreach (self::getInstalled() as $installed) {
+ $packages[] = array_keys($installed['versions']);
+ }
+
+ if (1 === \count($packages)) {
+ return $packages[0];
+ }
+
+ return array_keys(array_flip(\call_user_func_array('array_merge', $packages)));
+ }
+
+ /**
+ * Returns a list of all package names with a specific type e.g. 'library'
+ *
+ * @param string $type
+ * @return string[]
+ * @psalm-return list
+ */
+ public static function getInstalledPackagesByType($type)
+ {
+ $packagesByType = array();
+
+ foreach (self::getInstalled() as $installed) {
+ foreach ($installed['versions'] as $name => $package) {
+ if (isset($package['type']) && $package['type'] === $type) {
+ $packagesByType[] = $name;
+ }
+ }
+ }
+
+ return $packagesByType;
+ }
+
+ /**
+ * Checks whether the given package is installed
+ *
+ * This also returns true if the package name is provided or replaced by another package
+ *
+ * @param string $packageName
+ * @param bool $includeDevRequirements
+ * @return bool
+ */
+ public static function isInstalled($packageName, $includeDevRequirements = true)
+ {
+ foreach (self::getInstalled() as $installed) {
+ if (isset($installed['versions'][$packageName])) {
+ return $includeDevRequirements || empty($installed['versions'][$packageName]['dev_requirement']);
+ }
+ }
+
+ return false;
+ }
+
+ /**
+ * Checks whether the given package satisfies a version constraint
+ *
+ * e.g. If you want to know whether version 2.3+ of package foo/bar is installed, you would call:
+ *
+ * Composer\InstalledVersions::satisfies(new VersionParser, 'foo/bar', '^2.3')
+ *
+ * @param VersionParser $parser Install composer/semver to have access to this class and functionality
+ * @param string $packageName
+ * @param string|null $constraint A version constraint to check for, if you pass one you have to make sure composer/semver is required by your package
+ * @return bool
+ */
+ public static function satisfies(VersionParser $parser, $packageName, $constraint)
+ {
+ $constraint = $parser->parseConstraints($constraint);
+ $provided = $parser->parseConstraints(self::getVersionRanges($packageName));
+
+ return $provided->matches($constraint);
+ }
+
+ /**
+ * Returns a version constraint representing all the range(s) which are installed for a given package
+ *
+ * It is easier to use this via isInstalled() with the $constraint argument if you need to check
+ * whether a given version of a package is installed, and not just whether it exists
+ *
+ * @param string $packageName
+ * @return string Version constraint usable with composer/semver
+ */
+ public static function getVersionRanges($packageName)
+ {
+ foreach (self::getInstalled() as $installed) {
+ if (!isset($installed['versions'][$packageName])) {
+ continue;
+ }
+
+ $ranges = array();
+ if (isset($installed['versions'][$packageName]['pretty_version'])) {
+ $ranges[] = $installed['versions'][$packageName]['pretty_version'];
+ }
+ if (array_key_exists('aliases', $installed['versions'][$packageName])) {
+ $ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']);
+ }
+ if (array_key_exists('replaced', $installed['versions'][$packageName])) {
+ $ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']);
+ }
+ if (array_key_exists('provided', $installed['versions'][$packageName])) {
+ $ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']);
+ }
+
+ return implode(' || ', $ranges);
+ }
+
+ throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
+ }
+
+ /**
+ * @param string $packageName
+ * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
+ */
+ public static function getVersion($packageName)
+ {
+ foreach (self::getInstalled() as $installed) {
+ if (!isset($installed['versions'][$packageName])) {
+ continue;
+ }
+
+ if (!isset($installed['versions'][$packageName]['version'])) {
+ return null;
+ }
+
+ return $installed['versions'][$packageName]['version'];
+ }
+
+ throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
+ }
+
+ /**
+ * @param string $packageName
+ * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
+ */
+ public static function getPrettyVersion($packageName)
+ {
+ foreach (self::getInstalled() as $installed) {
+ if (!isset($installed['versions'][$packageName])) {
+ continue;
+ }
+
+ if (!isset($installed['versions'][$packageName]['pretty_version'])) {
+ return null;
+ }
+
+ return $installed['versions'][$packageName]['pretty_version'];
+ }
+
+ throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
+ }
+
+ /**
+ * @param string $packageName
+ * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as reference
+ */
+ public static function getReference($packageName)
+ {
+ foreach (self::getInstalled() as $installed) {
+ if (!isset($installed['versions'][$packageName])) {
+ continue;
+ }
+
+ if (!isset($installed['versions'][$packageName]['reference'])) {
+ return null;
+ }
+
+ return $installed['versions'][$packageName]['reference'];
+ }
+
+ throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
+ }
+
+ /**
+ * @param string $packageName
+ * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as install path. Packages of type metapackages also have a null install path.
+ */
+ public static function getInstallPath($packageName)
+ {
+ foreach (self::getInstalled() as $installed) {
+ if (!isset($installed['versions'][$packageName])) {
+ continue;
+ }
+
+ return isset($installed['versions'][$packageName]['install_path']) ? $installed['versions'][$packageName]['install_path'] : null;
+ }
+
+ throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
+ }
+
+ /**
+ * @return array
+ * @psalm-return array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}
+ */
+ public static function getRootPackage()
+ {
+ $installed = self::getInstalled();
+
+ return $installed[0]['root'];
+ }
+
+ /**
+ * Returns the raw installed.php data for custom implementations
+ *
+ * @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect.
+ * @return array[]
+ * @psalm-return array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array}
+ */
+ public static function getRawData()
+ {
+ @trigger_error('getRawData only returns the first dataset loaded, which may not be what you expect. Use getAllRawData() instead which returns all datasets for all autoloaders present in the process.', E_USER_DEPRECATED);
+
+ if (null === self::$installed) {
+ // only require the installed.php file if this file is loaded from its dumped location,
+ // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
+ if (substr(__DIR__, -8, 1) !== 'C') {
+ self::$installed = include __DIR__ . '/installed.php';
+ } else {
+ self::$installed = array();
+ }
+ }
+
+ return self::$installed;
+ }
+
+ /**
+ * Returns the raw data of all installed.php which are currently loaded for custom implementations
+ *
+ * @return array[]
+ * @psalm-return list}>
+ */
+ public static function getAllRawData()
+ {
+ return self::getInstalled();
+ }
+
+ /**
+ * Lets you reload the static array from another file
+ *
+ * This is only useful for complex integrations in which a project needs to use
+ * this class but then also needs to execute another project's autoloader in process,
+ * and wants to ensure both projects have access to their version of installed.php.
+ *
+ * A typical case would be PHPUnit, where it would need to make sure it reads all
+ * the data it needs from this class, then call reload() with
+ * `require $CWD/vendor/composer/installed.php` (or similar) as input to make sure
+ * the project in which it runs can then also use this class safely, without
+ * interference between PHPUnit's dependencies and the project's dependencies.
+ *
+ * @param array[] $data A vendor/composer/installed.php data set
+ * @return void
+ *
+ * @psalm-param array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array} $data
+ */
+ public static function reload($data)
+ {
+ self::$installed = $data;
+ self::$installedByVendor = array();
+ }
+
+ /**
+ * @return array[]
+ * @psalm-return list}>
+ */
+ private static function getInstalled()
+ {
+ if (null === self::$canGetVendors) {
+ self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders');
+ }
+
+ $installed = array();
+
+ if (self::$canGetVendors) {
+ foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
+ if (isset(self::$installedByVendor[$vendorDir])) {
+ $installed[] = self::$installedByVendor[$vendorDir];
+ } elseif (is_file($vendorDir.'/composer/installed.php')) {
+ $installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php';
+ if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
+ self::$installed = $installed[count($installed) - 1];
+ }
+ }
+ }
+ }
+
+ if (null === self::$installed) {
+ // only require the installed.php file if this file is loaded from its dumped location,
+ // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
+ if (substr(__DIR__, -8, 1) !== 'C') {
+ self::$installed = require __DIR__ . '/installed.php';
+ } else {
+ self::$installed = array();
+ }
+ }
+ $installed[] = self::$installed;
+
+ return $installed;
+ }
+}
diff --git a/functions/kirki/packages/composer/LICENSE b/functions/kirki/packages/composer/LICENSE
new file mode 100644
index 0000000..f27399a
--- /dev/null
+++ b/functions/kirki/packages/composer/LICENSE
@@ -0,0 +1,21 @@
+
+Copyright (c) Nils Adermann, Jordi Boggiano
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is furnished
+to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
diff --git a/functions/kirki/packages/composer/autoload_classmap.php b/functions/kirki/packages/composer/autoload_classmap.php
new file mode 100644
index 0000000..b26f1b1
--- /dev/null
+++ b/functions/kirki/packages/composer/autoload_classmap.php
@@ -0,0 +1,10 @@
+ $vendorDir . '/composer/InstalledVersions.php',
+);
diff --git a/functions/kirki/packages/composer/autoload_namespaces.php b/functions/kirki/packages/composer/autoload_namespaces.php
new file mode 100644
index 0000000..b7fc012
--- /dev/null
+++ b/functions/kirki/packages/composer/autoload_namespaces.php
@@ -0,0 +1,9 @@
+ array($vendorDir . '/kirki-framework/control-dashicons/src/Util', $vendorDir . '/kirki-framework/util/src'),
+ 'Kirki\\Settings\\' => array($vendorDir . '/kirki-framework/control-repeater/src/Settings'),
+ 'Kirki\\Module\\' => array($vendorDir . '/kirki-framework/module-css/src', $vendorDir . '/kirki-framework/module-editor-styles/src', $vendorDir . '/kirki-framework/module-field-dependencies/src', $vendorDir . '/kirki-framework/module-postmessage/src', $vendorDir . '/kirki-framework/module-preset/src', $vendorDir . '/kirki-framework/module-section-icons/src', $vendorDir . '/kirki-framework/module-selective-refresh/src', $vendorDir . '/kirki-framework/module-tooltips/src', $vendorDir . '/kirki-framework/module-webfonts/src'),
+ 'Kirki\\Field\\' => array($vendorDir . '/kirki-framework/control-checkbox/src/Field', $vendorDir . '/kirki-framework/control-code/src/Field', $vendorDir . '/kirki-framework/control-color/src/Field', $vendorDir . '/kirki-framework/control-color-palette/src/Field', $vendorDir . '/kirki-framework/control-custom/src/Field', $vendorDir . '/kirki-framework/control-dashicons/src/Field', $vendorDir . '/kirki-framework/control-date/src/Field', $vendorDir . '/kirki-framework/control-dimension/src/Field', $vendorDir . '/kirki-framework/control-editor/src/Field', $vendorDir . '/kirki-framework/control-generic/src/Field', $vendorDir . '/kirki-framework/control-image/src/Field', $vendorDir . '/kirki-framework/control-multicheck/src/Field', $vendorDir . '/kirki-framework/control-palette/src/Field', $vendorDir . '/kirki-framework/control-radio/src/Field', $vendorDir . '/kirki-framework/control-react-colorful/src/Field', $vendorDir . '/kirki-framework/control-react-select/src/Field', $vendorDir . '/kirki-framework/control-repeater/src/Field', $vendorDir . '/kirki-framework/control-select/src/Field', $vendorDir . '/kirki-framework/control-slider/src/Field', $vendorDir . '/kirki-framework/control-sortable/src/Field', $vendorDir . '/kirki-framework/control-upload/src/Field', $vendorDir . '/kirki-framework/field-background/src', $vendorDir . '/kirki-framework/field-dimensions/src', $vendorDir . '/kirki-framework/field-fontawesome/src/Field', $vendorDir . '/kirki-framework/field-multicolor/src/Field', $vendorDir . '/kirki-framework/field-typography/src/Field'),
+ 'Kirki\\Data\\' => array($vendorDir . '/kirki-framework/data-option/src'),
+ 'Kirki\\Control\\' => array($vendorDir . '/kirki-framework/control-base/src/Control', $vendorDir . '/kirki-framework/control-checkbox/src/Control', $vendorDir . '/kirki-framework/control-code/src/Control', $vendorDir . '/kirki-framework/control-color/src/Control', $vendorDir . '/kirki-framework/control-color-palette/src/Control', $vendorDir . '/kirki-framework/control-cropped-image/src', $vendorDir . '/kirki-framework/control-custom/src/Control', $vendorDir . '/kirki-framework/control-dashicons/src/Control', $vendorDir . '/kirki-framework/control-date/src/Control', $vendorDir . '/kirki-framework/control-dimension/src/Control', $vendorDir . '/kirki-framework/control-editor/src/Control', $vendorDir . '/kirki-framework/control-generic/src/Control', $vendorDir . '/kirki-framework/control-image/src/Control', $vendorDir . '/kirki-framework/control-multicheck/src/Control', $vendorDir . '/kirki-framework/control-palette/src/Control', $vendorDir . '/kirki-framework/control-radio/src/Control', $vendorDir . '/kirki-framework/control-react-colorful/src/Control', $vendorDir . '/kirki-framework/control-react-select/src/Control', $vendorDir . '/kirki-framework/control-repeater/src/Control', $vendorDir . '/kirki-framework/control-select/src/Control', $vendorDir . '/kirki-framework/control-slider/src/Control', $vendorDir . '/kirki-framework/control-sortable/src/Control', $vendorDir . '/kirki-framework/control-upload/src/Control', $vendorDir . '/kirki-framework/field-multicolor/src/Control', $vendorDir . '/kirki-framework/field-typography/src/Control'),
+ 'Kirki\\Compatibility\\' => array($vendorDir . '/kirki-framework/compatibility/src'),
+ 'Kirki\\' => array($vendorDir . '/kirki-framework/field/src', $vendorDir . '/kirki-framework/googlefonts/src', $vendorDir . '/kirki-framework/l10n/src', $vendorDir . '/kirki-framework/module-panels/src', $vendorDir . '/kirki-framework/module-sections/src', $vendorDir . '/kirki-framework/url-getter/src'),
+ 'Dealerdirect\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\' => array($vendorDir . '/dealerdirect/phpcodesniffer-composer-installer/src'),
+ 'Composer\\Installers\\' => array($vendorDir . '/composer/installers/src/Composer/Installers'),
+);
diff --git a/functions/kirki/packages/composer/autoload_real.php b/functions/kirki/packages/composer/autoload_real.php
new file mode 100644
index 0000000..c504328
--- /dev/null
+++ b/functions/kirki/packages/composer/autoload_real.php
@@ -0,0 +1,61 @@
+= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
+ if ($useStaticLoader) {
+ require __DIR__ . '/autoload_static.php';
+
+ call_user_func(\Composer\Autoload\ComposerStaticInitc56aa391ac498061f8d648878e0e6144::getInitializer($loader));
+ } else {
+ $map = require __DIR__ . '/autoload_namespaces.php';
+ foreach ($map as $namespace => $path) {
+ $loader->set($namespace, $path);
+ }
+
+ $map = require __DIR__ . '/autoload_psr4.php';
+ foreach ($map as $namespace => $path) {
+ $loader->setPsr4($namespace, $path);
+ }
+
+ $classMap = require __DIR__ . '/autoload_classmap.php';
+ if ($classMap) {
+ $loader->addClassMap($classMap);
+ }
+ }
+
+ $loader->register(true);
+
+ return $loader;
+ }
+}
diff --git a/functions/kirki/packages/composer/autoload_static.php b/functions/kirki/packages/composer/autoload_static.php
new file mode 100644
index 0000000..6486b9f
--- /dev/null
+++ b/functions/kirki/packages/composer/autoload_static.php
@@ -0,0 +1,150 @@
+
+ array (
+ 'Kirki\\Util\\' => 11,
+ 'Kirki\\Settings\\' => 15,
+ 'Kirki\\Module\\' => 13,
+ 'Kirki\\Field\\' => 12,
+ 'Kirki\\Data\\' => 11,
+ 'Kirki\\Control\\' => 14,
+ 'Kirki\\Compatibility\\' => 20,
+ 'Kirki\\' => 6,
+ ),
+ 'D' =>
+ array (
+ 'Dealerdirect\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\' => 55,
+ ),
+ 'C' =>
+ array (
+ 'Composer\\Installers\\' => 20,
+ ),
+ );
+
+ public static $prefixDirsPsr4 = array (
+ 'Kirki\\Util\\' =>
+ array (
+ 0 => __DIR__ . '/..' . '/kirki-framework/control-dashicons/src/Util',
+ 1 => __DIR__ . '/..' . '/kirki-framework/util/src',
+ ),
+ 'Kirki\\Settings\\' =>
+ array (
+ 0 => __DIR__ . '/..' . '/kirki-framework/control-repeater/src/Settings',
+ ),
+ 'Kirki\\Module\\' =>
+ array (
+ 0 => __DIR__ . '/..' . '/kirki-framework/module-css/src',
+ 1 => __DIR__ . '/..' . '/kirki-framework/module-editor-styles/src',
+ 2 => __DIR__ . '/..' . '/kirki-framework/module-field-dependencies/src',
+ 3 => __DIR__ . '/..' . '/kirki-framework/module-postmessage/src',
+ 4 => __DIR__ . '/..' . '/kirki-framework/module-preset/src',
+ 5 => __DIR__ . '/..' . '/kirki-framework/module-section-icons/src',
+ 6 => __DIR__ . '/..' . '/kirki-framework/module-selective-refresh/src',
+ 7 => __DIR__ . '/..' . '/kirki-framework/module-tooltips/src',
+ 8 => __DIR__ . '/..' . '/kirki-framework/module-webfonts/src',
+ ),
+ 'Kirki\\Field\\' =>
+ array (
+ 0 => __DIR__ . '/..' . '/kirki-framework/control-checkbox/src/Field',
+ 1 => __DIR__ . '/..' . '/kirki-framework/control-code/src/Field',
+ 2 => __DIR__ . '/..' . '/kirki-framework/control-color/src/Field',
+ 3 => __DIR__ . '/..' . '/kirki-framework/control-color-palette/src/Field',
+ 4 => __DIR__ . '/..' . '/kirki-framework/control-custom/src/Field',
+ 5 => __DIR__ . '/..' . '/kirki-framework/control-dashicons/src/Field',
+ 6 => __DIR__ . '/..' . '/kirki-framework/control-date/src/Field',
+ 7 => __DIR__ . '/..' . '/kirki-framework/control-dimension/src/Field',
+ 8 => __DIR__ . '/..' . '/kirki-framework/control-editor/src/Field',
+ 9 => __DIR__ . '/..' . '/kirki-framework/control-generic/src/Field',
+ 10 => __DIR__ . '/..' . '/kirki-framework/control-image/src/Field',
+ 11 => __DIR__ . '/..' . '/kirki-framework/control-multicheck/src/Field',
+ 12 => __DIR__ . '/..' . '/kirki-framework/control-palette/src/Field',
+ 13 => __DIR__ . '/..' . '/kirki-framework/control-radio/src/Field',
+ 14 => __DIR__ . '/..' . '/kirki-framework/control-react-colorful/src/Field',
+ 15 => __DIR__ . '/..' . '/kirki-framework/control-react-select/src/Field',
+ 16 => __DIR__ . '/..' . '/kirki-framework/control-repeater/src/Field',
+ 17 => __DIR__ . '/..' . '/kirki-framework/control-select/src/Field',
+ 18 => __DIR__ . '/..' . '/kirki-framework/control-slider/src/Field',
+ 19 => __DIR__ . '/..' . '/kirki-framework/control-sortable/src/Field',
+ 20 => __DIR__ . '/..' . '/kirki-framework/control-upload/src/Field',
+ 21 => __DIR__ . '/..' . '/kirki-framework/field-background/src',
+ 22 => __DIR__ . '/..' . '/kirki-framework/field-dimensions/src',
+ 23 => __DIR__ . '/..' . '/kirki-framework/field-fontawesome/src/Field',
+ 24 => __DIR__ . '/..' . '/kirki-framework/field-multicolor/src/Field',
+ 25 => __DIR__ . '/..' . '/kirki-framework/field-typography/src/Field',
+ ),
+ 'Kirki\\Data\\' =>
+ array (
+ 0 => __DIR__ . '/..' . '/kirki-framework/data-option/src',
+ ),
+ 'Kirki\\Control\\' =>
+ array (
+ 0 => __DIR__ . '/..' . '/kirki-framework/control-base/src/Control',
+ 1 => __DIR__ . '/..' . '/kirki-framework/control-checkbox/src/Control',
+ 2 => __DIR__ . '/..' . '/kirki-framework/control-code/src/Control',
+ 3 => __DIR__ . '/..' . '/kirki-framework/control-color/src/Control',
+ 4 => __DIR__ . '/..' . '/kirki-framework/control-color-palette/src/Control',
+ 5 => __DIR__ . '/..' . '/kirki-framework/control-cropped-image/src',
+ 6 => __DIR__ . '/..' . '/kirki-framework/control-custom/src/Control',
+ 7 => __DIR__ . '/..' . '/kirki-framework/control-dashicons/src/Control',
+ 8 => __DIR__ . '/..' . '/kirki-framework/control-date/src/Control',
+ 9 => __DIR__ . '/..' . '/kirki-framework/control-dimension/src/Control',
+ 10 => __DIR__ . '/..' . '/kirki-framework/control-editor/src/Control',
+ 11 => __DIR__ . '/..' . '/kirki-framework/control-generic/src/Control',
+ 12 => __DIR__ . '/..' . '/kirki-framework/control-image/src/Control',
+ 13 => __DIR__ . '/..' . '/kirki-framework/control-multicheck/src/Control',
+ 14 => __DIR__ . '/..' . '/kirki-framework/control-palette/src/Control',
+ 15 => __DIR__ . '/..' . '/kirki-framework/control-radio/src/Control',
+ 16 => __DIR__ . '/..' . '/kirki-framework/control-react-colorful/src/Control',
+ 17 => __DIR__ . '/..' . '/kirki-framework/control-react-select/src/Control',
+ 18 => __DIR__ . '/..' . '/kirki-framework/control-repeater/src/Control',
+ 19 => __DIR__ . '/..' . '/kirki-framework/control-select/src/Control',
+ 20 => __DIR__ . '/..' . '/kirki-framework/control-slider/src/Control',
+ 21 => __DIR__ . '/..' . '/kirki-framework/control-sortable/src/Control',
+ 22 => __DIR__ . '/..' . '/kirki-framework/control-upload/src/Control',
+ 23 => __DIR__ . '/..' . '/kirki-framework/field-multicolor/src/Control',
+ 24 => __DIR__ . '/..' . '/kirki-framework/field-typography/src/Control',
+ ),
+ 'Kirki\\Compatibility\\' =>
+ array (
+ 0 => __DIR__ . '/..' . '/kirki-framework/compatibility/src',
+ ),
+ 'Kirki\\' =>
+ array (
+ 0 => __DIR__ . '/..' . '/kirki-framework/field/src',
+ 1 => __DIR__ . '/..' . '/kirki-framework/googlefonts/src',
+ 2 => __DIR__ . '/..' . '/kirki-framework/l10n/src',
+ 3 => __DIR__ . '/..' . '/kirki-framework/module-panels/src',
+ 4 => __DIR__ . '/..' . '/kirki-framework/module-sections/src',
+ 5 => __DIR__ . '/..' . '/kirki-framework/url-getter/src',
+ ),
+ 'Dealerdirect\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\' =>
+ array (
+ 0 => __DIR__ . '/..' . '/dealerdirect/phpcodesniffer-composer-installer/src',
+ ),
+ 'Composer\\Installers\\' =>
+ array (
+ 0 => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers',
+ ),
+ );
+
+ public static $classMap = array (
+ 'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php',
+ );
+
+ public static function getInitializer(ClassLoader $loader)
+ {
+ return \Closure::bind(function () use ($loader) {
+ $loader->prefixLengthsPsr4 = ComposerStaticInitc56aa391ac498061f8d648878e0e6144::$prefixLengthsPsr4;
+ $loader->prefixDirsPsr4 = ComposerStaticInitc56aa391ac498061f8d648878e0e6144::$prefixDirsPsr4;
+ $loader->classMap = ComposerStaticInitc56aa391ac498061f8d648878e0e6144::$classMap;
+
+ }, null, ClassLoader::class);
+ }
+}
diff --git a/functions/kirki/packages/composer/include_paths.php b/functions/kirki/packages/composer/include_paths.php
new file mode 100644
index 0000000..253ce05
--- /dev/null
+++ b/functions/kirki/packages/composer/include_paths.php
@@ -0,0 +1,11 @@
+ array(
+ 'pretty_version' => 'dev-master',
+ 'version' => 'dev-master',
+ 'type' => 'library',
+ 'install_path' => __DIR__ . '/../../',
+ 'aliases' => array(),
+ 'reference' => 'f44123472688894cb60ad0552857a3aadc4a6ee4',
+ 'name' => 'kirki-framework/kirki',
+ 'dev' => true,
+ ),
+ 'versions' => array(
+ 'composer/installers' => array(
+ 'pretty_version' => 'v2.0.1',
+ 'version' => '2.0.1.0',
+ 'type' => 'composer-plugin',
+ 'install_path' => __DIR__ . '/./installers',
+ 'aliases' => array(),
+ 'reference' => 'a241e78aaeb09781f5f5b92ac01ffd13ab43e5e8',
+ 'dev_requirement' => true,
+ ),
+ 'dealerdirect/phpcodesniffer-composer-installer' => array(
+ 'pretty_version' => 'v0.7.2',
+ 'version' => '0.7.2.0',
+ 'type' => 'composer-plugin',
+ 'install_path' => __DIR__ . '/../dealerdirect/phpcodesniffer-composer-installer',
+ 'aliases' => array(),
+ 'reference' => '1c968e542d8843d7cd71de3c5c9c3ff3ad71a1db',
+ 'dev_requirement' => true,
+ ),
+ 'kirki-framework/compatibility' => array(
+ 'pretty_version' => 'v1.0.9',
+ 'version' => '1.0.9.0',
+ 'type' => 'library',
+ 'install_path' => __DIR__ . '/../kirki-framework/compatibility',
+ 'aliases' => array(),
+ 'reference' => '1169e68f1232dfc7d659c981d440d81e8253a810',
+ 'dev_requirement' => false,
+ ),
+ 'kirki-framework/control-base' => array(
+ 'pretty_version' => 'v1.0.4',
+ 'version' => '1.0.4.0',
+ 'type' => 'library',
+ 'install_path' => __DIR__ . '/../kirki-framework/control-base',
+ 'aliases' => array(),
+ 'reference' => '0abf9e81f21e5256be879240cca98778e99851eb',
+ 'dev_requirement' => false,
+ ),
+ 'kirki-framework/control-checkbox' => array(
+ 'pretty_version' => 'v1.0.6',
+ 'version' => '1.0.6.0',
+ 'type' => 'library',
+ 'install_path' => __DIR__ . '/../kirki-framework/control-checkbox',
+ 'aliases' => array(),
+ 'reference' => '1f581fd75cf9cae20788decbe56d5ef48d3b7bf8',
+ 'dev_requirement' => false,
+ ),
+ 'kirki-framework/control-code' => array(
+ 'pretty_version' => 'v1.0.1',
+ 'version' => '1.0.1.0',
+ 'type' => 'library',
+ 'install_path' => __DIR__ . '/../kirki-framework/control-code',
+ 'aliases' => array(),
+ 'reference' => '29909ae3f62210b9b5937c798086ce8495e77d72',
+ 'dev_requirement' => false,
+ ),
+ 'kirki-framework/control-color' => array(
+ 'pretty_version' => 'v1.0.1',
+ 'version' => '1.0.1.0',
+ 'type' => 'library',
+ 'install_path' => __DIR__ . '/../kirki-framework/control-color',
+ 'aliases' => array(),
+ 'reference' => '5820fa89e0e8dc69dd4864575074552434193e11',
+ 'dev_requirement' => false,
+ ),
+ 'kirki-framework/control-color-palette' => array(
+ 'pretty_version' => 'v1.0.3',
+ 'version' => '1.0.3.0',
+ 'type' => 'library',
+ 'install_path' => __DIR__ . '/../kirki-framework/control-color-palette',
+ 'aliases' => array(),
+ 'reference' => '32715837449e9a6666253b28b538bd69d6718c67',
+ 'dev_requirement' => false,
+ ),
+ 'kirki-framework/control-cropped-image' => array(
+ 'pretty_version' => 'v1.0.1',
+ 'version' => '1.0.1.0',
+ 'type' => 'library',
+ 'install_path' => __DIR__ . '/../kirki-framework/control-cropped-image',
+ 'aliases' => array(),
+ 'reference' => '549e7ddfe1a9fe2305fe6c1bc6cc80489d647452',
+ 'dev_requirement' => false,
+ ),
+ 'kirki-framework/control-custom' => array(
+ 'pretty_version' => 'v1.0.1',
+ 'version' => '1.0.1.0',
+ 'type' => 'library',
+ 'install_path' => __DIR__ . '/../kirki-framework/control-custom',
+ 'aliases' => array(),
+ 'reference' => '103f4f813f1919c23ec41e81c81cfbf83ab0e78f',
+ 'dev_requirement' => false,
+ ),
+ 'kirki-framework/control-dashicons' => array(
+ 'pretty_version' => 'v1.0.1',
+ 'version' => '1.0.1.0',
+ 'type' => 'library',
+ 'install_path' => __DIR__ . '/../kirki-framework/control-dashicons',
+ 'aliases' => array(),
+ 'reference' => '90210466bd4a53b6ab4468330064eabeaf242fd9',
+ 'dev_requirement' => false,
+ ),
+ 'kirki-framework/control-date' => array(
+ 'pretty_version' => 'v1.0.1',
+ 'version' => '1.0.1.0',
+ 'type' => 'library',
+ 'install_path' => __DIR__ . '/../kirki-framework/control-date',
+ 'aliases' => array(),
+ 'reference' => '71e7fb60b5789d77579b12b202e5487cd2bd5dc2',
+ 'dev_requirement' => false,
+ ),
+ 'kirki-framework/control-dimension' => array(
+ 'pretty_version' => 'v1.0.2',
+ 'version' => '1.0.2.0',
+ 'type' => 'library',
+ 'install_path' => __DIR__ . '/../kirki-framework/control-dimension',
+ 'aliases' => array(),
+ 'reference' => '7a64c587fd57fb5bdbeceb393b621457c4d9f515',
+ 'dev_requirement' => false,
+ ),
+ 'kirki-framework/control-editor' => array(
+ 'pretty_version' => 'v1.0.1',
+ 'version' => '1.0.1.0',
+ 'type' => 'library',
+ 'install_path' => __DIR__ . '/../kirki-framework/control-editor',
+ 'aliases' => array(),
+ 'reference' => '5e27c3cc7b10eb317321790a5d8ddf57304cf2a2',
+ 'dev_requirement' => false,
+ ),
+ 'kirki-framework/control-generic' => array(
+ 'pretty_version' => 'v1.0.2',
+ 'version' => '1.0.2.0',
+ 'type' => 'library',
+ 'install_path' => __DIR__ . '/../kirki-framework/control-generic',
+ 'aliases' => array(),
+ 'reference' => '5f87bb740ba92717b6b10b862e571919003906c4',
+ 'dev_requirement' => false,
+ ),
+ 'kirki-framework/control-image' => array(
+ 'pretty_version' => 'v1.0.2',
+ 'version' => '1.0.2.0',
+ 'type' => 'library',
+ 'install_path' => __DIR__ . '/../kirki-framework/control-image',
+ 'aliases' => array(),
+ 'reference' => '32e2a2aff8a7e5d6ff9dfe530563a4381dc82e61',
+ 'dev_requirement' => false,
+ ),
+ 'kirki-framework/control-multicheck' => array(
+ 'pretty_version' => 'v1.0.2',
+ 'version' => '1.0.2.0',
+ 'type' => 'library',
+ 'install_path' => __DIR__ . '/../kirki-framework/control-multicheck',
+ 'aliases' => array(),
+ 'reference' => '90098008c1988e7cd2b84c75ece68bbcd3bbeb70',
+ 'dev_requirement' => false,
+ ),
+ 'kirki-framework/control-palette' => array(
+ 'pretty_version' => 'v0.1.1',
+ 'version' => '0.1.1.0',
+ 'type' => 'library',
+ 'install_path' => __DIR__ . '/../kirki-framework/control-palette',
+ 'aliases' => array(),
+ 'reference' => 'aca16701c2aaddab0cef3e429cdb753845e03ae0',
+ 'dev_requirement' => false,
+ ),
+ 'kirki-framework/control-radio' => array(
+ 'pretty_version' => 'v1.0.2',
+ 'version' => '1.0.2.0',
+ 'type' => 'library',
+ 'install_path' => __DIR__ . '/../kirki-framework/control-radio',
+ 'aliases' => array(),
+ 'reference' => '1e47f185f8d95005c83e0ffbf3ff09faecea8eac',
+ 'dev_requirement' => false,
+ ),
+ 'kirki-framework/control-react-colorful' => array(
+ 'pretty_version' => 'v1.0.14',
+ 'version' => '1.0.14.0',
+ 'type' => 'library',
+ 'install_path' => __DIR__ . '/../kirki-framework/control-react-colorful',
+ 'aliases' => array(),
+ 'reference' => 'bcfe71b736f4b43c00b0292e9260c78815808364',
+ 'dev_requirement' => false,
+ ),
+ 'kirki-framework/control-react-select' => array(
+ 'pretty_version' => 'v1.1.5',
+ 'version' => '1.1.5.0',
+ 'type' => 'library',
+ 'install_path' => __DIR__ . '/../kirki-framework/control-react-select',
+ 'aliases' => array(),
+ 'reference' => '4c156e42a36f74ff5b9b1e2797b1742845de9e47',
+ 'dev_requirement' => false,
+ ),
+ 'kirki-framework/control-repeater' => array(
+ 'pretty_version' => 'v1.0.3',
+ 'version' => '1.0.3.0',
+ 'type' => 'library',
+ 'install_path' => __DIR__ . '/../kirki-framework/control-repeater',
+ 'aliases' => array(),
+ 'reference' => 'b24e7ae8641867616cc12038eda0a6e990399bbd',
+ 'dev_requirement' => false,
+ ),
+ 'kirki-framework/control-select' => array(
+ 'pretty_version' => 'v1.0.1',
+ 'version' => '1.0.1.0',
+ 'type' => 'library',
+ 'install_path' => __DIR__ . '/../kirki-framework/control-select',
+ 'aliases' => array(),
+ 'reference' => '01abe2cbce62b7a566c890697a32506b94910156',
+ 'dev_requirement' => false,
+ ),
+ 'kirki-framework/control-slider' => array(
+ 'pretty_version' => 'v1.0.5',
+ 'version' => '1.0.5.0',
+ 'type' => 'library',
+ 'install_path' => __DIR__ . '/../kirki-framework/control-slider',
+ 'aliases' => array(),
+ 'reference' => '40ce473123f0cb12da745467d69210cff3ffecf5',
+ 'dev_requirement' => false,
+ ),
+ 'kirki-framework/control-sortable' => array(
+ 'pretty_version' => 'v1.0.1',
+ 'version' => '1.0.1.0',
+ 'type' => 'library',
+ 'install_path' => __DIR__ . '/../kirki-framework/control-sortable',
+ 'aliases' => array(),
+ 'reference' => 'ea4659bb2118c57ec6e24cd2ab06f36a3a528d26',
+ 'dev_requirement' => false,
+ ),
+ 'kirki-framework/control-upload' => array(
+ 'pretty_version' => 'v1.0.3',
+ 'version' => '1.0.3.0',
+ 'type' => 'library',
+ 'install_path' => __DIR__ . '/../kirki-framework/control-upload',
+ 'aliases' => array(),
+ 'reference' => '13ea09c9330c6eb1d4452d5948866f226b0f8a0f',
+ 'dev_requirement' => false,
+ ),
+ 'kirki-framework/data-option' => array(
+ 'pretty_version' => 'v1.0.3',
+ 'version' => '1.0.3.0',
+ 'type' => 'library',
+ 'install_path' => __DIR__ . '/../kirki-framework/data-option',
+ 'aliases' => array(),
+ 'reference' => '9a54f5c553e2f1e84f4ff620e271bfc16ee49ced',
+ 'dev_requirement' => false,
+ ),
+ 'kirki-framework/field' => array(
+ 'pretty_version' => 'v1.0.10',
+ 'version' => '1.0.10.0',
+ 'type' => 'library',
+ 'install_path' => __DIR__ . '/../kirki-framework/field',
+ 'aliases' => array(),
+ 'reference' => '97f5bf659cc68d46e2bce62489acf2d2142b36e7',
+ 'dev_requirement' => false,
+ ),
+ 'kirki-framework/field-background' => array(
+ 'pretty_version' => 'v1.0.1',
+ 'version' => '1.0.1.0',
+ 'type' => 'library',
+ 'install_path' => __DIR__ . '/../kirki-framework/field-background',
+ 'aliases' => array(),
+ 'reference' => '875b5e42c3de8a77d0a15c7dd55c8467cbf18373',
+ 'dev_requirement' => false,
+ ),
+ 'kirki-framework/field-dimensions' => array(
+ 'pretty_version' => 'v1.0.3',
+ 'version' => '1.0.3.0',
+ 'type' => 'library',
+ 'install_path' => __DIR__ . '/../kirki-framework/field-dimensions',
+ 'aliases' => array(),
+ 'reference' => 'ac147cc95fb706664953471ef8f14cfb04f197fc',
+ 'dev_requirement' => false,
+ ),
+ 'kirki-framework/field-fontawesome' => array(
+ 'pretty_version' => 'v1.0.1',
+ 'version' => '1.0.1.0',
+ 'type' => 'library',
+ 'install_path' => __DIR__ . '/../kirki-framework/field-fontawesome',
+ 'aliases' => array(),
+ 'reference' => '64d8954039eef1ff03429cdd13c81e4e6b278321',
+ 'dev_requirement' => false,
+ ),
+ 'kirki-framework/field-multicolor' => array(
+ 'pretty_version' => 'v1.0.3',
+ 'version' => '1.0.3.0',
+ 'type' => 'library',
+ 'install_path' => __DIR__ . '/../kirki-framework/field-multicolor',
+ 'aliases' => array(),
+ 'reference' => '3e0df3f5548fb89b38cb144bc87992936ed7b536',
+ 'dev_requirement' => false,
+ ),
+ 'kirki-framework/field-typography' => array(
+ 'pretty_version' => 'v1.0.6',
+ 'version' => '1.0.6.0',
+ 'type' => 'library',
+ 'install_path' => __DIR__ . '/../kirki-framework/field-typography',
+ 'aliases' => array(),
+ 'reference' => '2d96fc2d65325ce8474d55e083db742cf437c0dd',
+ 'dev_requirement' => false,
+ ),
+ 'kirki-framework/googlefonts' => array(
+ 'pretty_version' => '1.0.4',
+ 'version' => '1.0.4.0',
+ 'type' => 'library',
+ 'install_path' => __DIR__ . '/../kirki-framework/googlefonts',
+ 'aliases' => array(),
+ 'reference' => '3fa0b6b5aacda3213ca7ccedcba3e6906aecb409',
+ 'dev_requirement' => false,
+ ),
+ 'kirki-framework/kirki' => array(
+ 'pretty_version' => 'dev-master',
+ 'version' => 'dev-master',
+ 'type' => 'library',
+ 'install_path' => __DIR__ . '/../../',
+ 'aliases' => array(),
+ 'reference' => 'f44123472688894cb60ad0552857a3aadc4a6ee4',
+ 'dev_requirement' => false,
+ ),
+ 'kirki-framework/l10n' => array(
+ 'pretty_version' => 'v1.0.2',
+ 'version' => '1.0.2.0',
+ 'type' => 'library',
+ 'install_path' => __DIR__ . '/../kirki-framework/l10n',
+ 'aliases' => array(),
+ 'reference' => '5a40875434ca075a09c81952547e3ccc7eeef704',
+ 'dev_requirement' => false,
+ ),
+ 'kirki-framework/module-css' => array(
+ 'pretty_version' => 'v1.0.10',
+ 'version' => '1.0.10.0',
+ 'type' => 'library',
+ 'install_path' => __DIR__ . '/../kirki-framework/module-css',
+ 'aliases' => array(),
+ 'reference' => '93b97d0e6b09fe4953c69a8ba9bc06884af91b27',
+ 'dev_requirement' => false,
+ ),
+ 'kirki-framework/module-editor-styles' => array(
+ 'pretty_version' => 'v1.0.1',
+ 'version' => '1.0.1.0',
+ 'type' => 'library',
+ 'install_path' => __DIR__ . '/../kirki-framework/module-editor-styles',
+ 'aliases' => array(),
+ 'reference' => 'd30622f500cfcc4e0145790d4aeca541d6c73319',
+ 'dev_requirement' => false,
+ ),
+ 'kirki-framework/module-field-dependencies' => array(
+ 'pretty_version' => 'v1.0.6',
+ 'version' => '1.0.6.0',
+ 'type' => 'library',
+ 'install_path' => __DIR__ . '/../kirki-framework/module-field-dependencies',
+ 'aliases' => array(),
+ 'reference' => '5bf94bdce480d8405136cd5f0013ef42a775f167',
+ 'dev_requirement' => false,
+ ),
+ 'kirki-framework/module-panels' => array(
+ 'pretty_version' => 'v1.0.1',
+ 'version' => '1.0.1.0',
+ 'type' => 'library',
+ 'install_path' => __DIR__ . '/../kirki-framework/module-panels',
+ 'aliases' => array(),
+ 'reference' => '1599dd344c15c49a837b5fdbddb1e37544bef979',
+ 'dev_requirement' => false,
+ ),
+ 'kirki-framework/module-postmessage' => array(
+ 'pretty_version' => 'v1.0.6',
+ 'version' => '1.0.6.0',
+ 'type' => 'library',
+ 'install_path' => __DIR__ . '/../kirki-framework/module-postmessage',
+ 'aliases' => array(),
+ 'reference' => 'd543c8d34e7d6fc8c2ce4805d8fc940070a54691',
+ 'dev_requirement' => false,
+ ),
+ 'kirki-framework/module-preset' => array(
+ 'pretty_version' => 'v1.0.3',
+ 'version' => '1.0.3.0',
+ 'type' => 'library',
+ 'install_path' => __DIR__ . '/../kirki-framework/module-preset',
+ 'aliases' => array(),
+ 'reference' => 'b4862fbeb9e441ed4ccd15f29a1d17d6f300f6a9',
+ 'dev_requirement' => false,
+ ),
+ 'kirki-framework/module-section-icons' => array(
+ 'pretty_version' => 'v0.1.0',
+ 'version' => '0.1.0.0',
+ 'type' => 'library',
+ 'install_path' => __DIR__ . '/../kirki-framework/module-section-icons',
+ 'aliases' => array(),
+ 'reference' => '0e77b904692772974e5e291143f45056a5ab3665',
+ 'dev_requirement' => false,
+ ),
+ 'kirki-framework/module-sections' => array(
+ 'pretty_version' => 'v1.0.4',
+ 'version' => '1.0.4.0',
+ 'type' => 'library',
+ 'install_path' => __DIR__ . '/../kirki-framework/module-sections',
+ 'aliases' => array(),
+ 'reference' => 'ee8c9120ddd7fe63e1ca39db93714b9b4e5d477c',
+ 'dev_requirement' => false,
+ ),
+ 'kirki-framework/module-selective-refresh' => array(
+ 'pretty_version' => 'v1.0.3',
+ 'version' => '1.0.3.0',
+ 'type' => 'library',
+ 'install_path' => __DIR__ . '/../kirki-framework/module-selective-refresh',
+ 'aliases' => array(),
+ 'reference' => 'bfeb430cb7eff60f5ba79e0785cf413905202c42',
+ 'dev_requirement' => false,
+ ),
+ 'kirki-framework/module-tooltips' => array(
+ 'pretty_version' => 'v1.0.10',
+ 'version' => '1.0.10.0',
+ 'type' => 'library',
+ 'install_path' => __DIR__ . '/../kirki-framework/module-tooltips',
+ 'aliases' => array(),
+ 'reference' => '5b4715bd236a4239356e408068bffc2f300f3cdf',
+ 'dev_requirement' => false,
+ ),
+ 'kirki-framework/module-webfonts' => array(
+ 'pretty_version' => 'v1.0.4',
+ 'version' => '1.0.4.0',
+ 'type' => 'library',
+ 'install_path' => __DIR__ . '/../kirki-framework/module-webfonts',
+ 'aliases' => array(),
+ 'reference' => 'ec12372bb67230ab5558a6b3d8b7f98300d2e2a6',
+ 'dev_requirement' => false,
+ ),
+ 'kirki-framework/url-getter' => array(
+ 'pretty_version' => 'v1.0.5',
+ 'version' => '1.0.5.0',
+ 'type' => 'library',
+ 'install_path' => __DIR__ . '/../kirki-framework/url-getter',
+ 'aliases' => array(),
+ 'reference' => 'cfe7ea5b51c5e9b5e7d706ed56694f54a972fae2',
+ 'dev_requirement' => false,
+ ),
+ 'kirki-framework/util' => array(
+ 'pretty_version' => 'v1.0.2',
+ 'version' => '1.0.2.0',
+ 'type' => 'library',
+ 'install_path' => __DIR__ . '/../kirki-framework/util',
+ 'aliases' => array(),
+ 'reference' => 'fa3deaafe48055b56aedf80501817e3d9e83211c',
+ 'dev_requirement' => false,
+ ),
+ 'phpcompatibility/php-compatibility' => array(
+ 'pretty_version' => '9.3.5',
+ 'version' => '9.3.5.0',
+ 'type' => 'phpcodesniffer-standard',
+ 'install_path' => __DIR__ . '/../phpcompatibility/php-compatibility',
+ 'aliases' => array(),
+ 'reference' => '9fb324479acf6f39452e0655d2429cc0d3914243',
+ 'dev_requirement' => true,
+ ),
+ 'phpcompatibility/phpcompatibility-paragonie' => array(
+ 'pretty_version' => '1.3.1',
+ 'version' => '1.3.1.0',
+ 'type' => 'phpcodesniffer-standard',
+ 'install_path' => __DIR__ . '/../phpcompatibility/phpcompatibility-paragonie',
+ 'aliases' => array(),
+ 'reference' => 'ddabec839cc003651f2ce695c938686d1086cf43',
+ 'dev_requirement' => true,
+ ),
+ 'phpcompatibility/phpcompatibility-wp' => array(
+ 'pretty_version' => '2.1.3',
+ 'version' => '2.1.3.0',
+ 'type' => 'phpcodesniffer-standard',
+ 'install_path' => __DIR__ . '/../phpcompatibility/phpcompatibility-wp',
+ 'aliases' => array(),
+ 'reference' => 'd55de55f88697b9cdb94bccf04f14eb3b11cf308',
+ 'dev_requirement' => true,
+ ),
+ 'squizlabs/php_codesniffer' => array(
+ 'pretty_version' => '3.6.2',
+ 'version' => '3.6.2.0',
+ 'type' => 'library',
+ 'install_path' => __DIR__ . '/../squizlabs/php_codesniffer',
+ 'aliases' => array(),
+ 'reference' => '5e4e71592f69da17871dba6e80dd51bce74a351a',
+ 'dev_requirement' => true,
+ ),
+ 'wp-coding-standards/wpcs' => array(
+ 'pretty_version' => '2.3.0',
+ 'version' => '2.3.0.0',
+ 'type' => 'phpcodesniffer-standard',
+ 'install_path' => __DIR__ . '/../wp-coding-standards/wpcs',
+ 'aliases' => array(),
+ 'reference' => '7da1894633f168fe244afc6de00d141f27517b62',
+ 'dev_requirement' => true,
+ ),
+ 'wptrt/wpthemereview' => array(
+ 'pretty_version' => 'dev-develop',
+ 'version' => 'dev-develop',
+ 'type' => 'phpcodesniffer-standard',
+ 'install_path' => __DIR__ . '/../wptrt/wpthemereview',
+ 'aliases' => array(
+ 0 => '9999999-dev',
+ ),
+ 'reference' => '15684d0852fe90d807c2ae7746dea1302b74b4bd',
+ 'dev_requirement' => true,
+ ),
+ ),
+);
diff --git a/functions/kirki/packages/composer/platform_check.php b/functions/kirki/packages/composer/platform_check.php
new file mode 100644
index 0000000..f79e574
--- /dev/null
+++ b/functions/kirki/packages/composer/platform_check.php
@@ -0,0 +1,26 @@
+= 70000)) {
+ $issues[] = 'Your Composer dependencies require a PHP version ">= 7.0.0". You are running ' . PHP_VERSION . '.';
+}
+
+if ($issues) {
+ if (!headers_sent()) {
+ header('HTTP/1.1 500 Internal Server Error');
+ }
+ if (!ini_get('display_errors')) {
+ if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') {
+ fwrite(STDERR, 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . implode(PHP_EOL, $issues) . PHP_EOL.PHP_EOL);
+ } elseif (!headers_sent()) {
+ echo 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . str_replace('You are running '.PHP_VERSION.'.', '', implode(PHP_EOL, $issues)) . PHP_EOL.PHP_EOL;
+ }
+ }
+ trigger_error(
+ 'Composer detected issues in your platform: ' . implode(' ', $issues),
+ E_USER_ERROR
+ );
+}
diff --git a/functions/kirki/packages/kirki-framework/compatibility/LICENSE b/functions/kirki/packages/kirki-framework/compatibility/LICENSE
new file mode 100644
index 0000000..f202ade
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/compatibility/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2019 kirki-framework
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/functions/kirki/packages/kirki-framework/compatibility/src/Aliases.php b/functions/kirki/packages/kirki-framework/compatibility/src/Aliases.php
new file mode 100644
index 0000000..e92fcab
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/compatibility/src/Aliases.php
@@ -0,0 +1,184 @@
+ [
+ [ 'Kirki\Compatibility\Kirki', 'Kirki' ],
+ [ 'Kirki\Compatibility\Config', 'Kirki_Config' ],
+ [ 'Kirki\Compatibility\Control', 'Kirki_Control' ],
+ [ 'Kirki\Compatibility\Field', 'Kirki_Field' ],
+ [ 'Kirki\Util\Helper', 'Kirki_Helper' ],
+ [ 'Kirki\Compatibility\Init', 'Kirki_Init' ],
+ [ 'Kirki\L10n', 'Kirki_L10n' ],
+ [ 'Kirki\Compatibility\Modules', 'Kirki_Modules' ],
+ [ 'Kirki\Compatibility\Sanitize_Values', 'Kirki_Sanitize_Values' ],
+ [ 'Kirki\Compatibility\Section', 'Kirki_Section' ],
+ [ 'Kirki\Compatibility\Values', 'Kirki_Values' ],
+ [ 'Kirki\Util\Util', 'Kirki_Util' ],
+ [ 'Kirki\Compatibility\Framework', 'Kirki_Toolkit' ],
+ [ 'Kirki\Module\CSS', 'Kirki_Modules_CSS' ],
+ [ 'Kirki\Module\CSS\Output', 'Kirki_Output' ],
+ [ 'Kirki\Module\CSS\Generator', 'Kirki_Modules_CSS_Generator' ],
+ [ 'Kirki\Module\CSS\Property', 'Kirki_Output_Property' ],
+ [ 'Kirki\Module\CSS\Property\Font_Family', 'Kirki_Output_Property_Font_Family' ],
+ [ 'Kirki\Module\Preset', 'Kirki_Modules_Preset' ],
+ [ 'Kirki\Module\Tooltips', 'Kirki_Modules_Tooltips' ],
+ [ 'Kirki\Module\Webfonts', 'Kirki_Modules_Webfonts' ],
+ [ 'Kirki\Module\Webfonts\Google', 'Kirki_Fonts_Google' ],
+ [ 'Kirki\Module\Webfonts\Fonts', 'Kirki_Fonts' ],
+ [ 'Kirki\Module\Webfonts\Embed', 'Kirki_Modules_Webfonts_Embed' ],
+ [ 'Kirki\Module\Webfonts\Async', 'Kirki_Modules_Webfonts_Async' ],
+ [ 'Kirki\Module\Field_Dependencies', 'Kirki_Modules_Field_Dependencies' ],
+ [ 'Kirki\Module\Editor_Styles', 'Kirki_Modules_Gutenberg' ],
+ [ 'Kirki\Module\Selective_Refresh', 'Kirki_Modules_Selective_Refresh' ],
+ [ 'Kirki\Module\Postmessage', 'Kirki_Modules_Postmessage' ],
+ [ 'Kirki\Field\Background', 'Kirki_Field_Background' ],
+ [ 'Kirki\Field\CSS\Background', 'Kirki_Output_Field_Background' ],
+ [ 'Kirki\Field\Checkbox', 'Kirki_Field_Checkbox' ],
+ [ 'Kirki\Field\Checkbox_Switch', 'Kirki_Field_Switch' ],
+ [ 'Kirki\Field\Checkbox_Switch', 'Kirki\Field\Switch' ], // Preventing typo.
+ [ 'Kirki\Field\Checkbox_Toggle', 'Kirki_Field_Toggle' ],
+ [ 'Kirki\Field\Checkbox_Toggle', 'Kirki\Field\Toggle' ], // Preventing typo.
+ [ 'Kirki\Field\Code', 'Kirki_Field_Code' ],
+ [ 'Kirki\Field\Color', 'Kirki_Field_Color' ],
+ [ 'Kirki\Field\Color', 'Kirki_Field_Color_Alpha' ],
+ [ 'Kirki\Field\Color_Palette', 'Kirki_Field_Color_Palette' ],
+ [ 'Kirki\Field\Custom', 'Kirki_Field_Custom' ],
+ [ 'Kirki\Field\Dashicons', 'Kirki_Field_Dashicons' ],
+ [ 'Kirki\Field\Date', 'Kirki_Field_Date' ],
+ [ 'Kirki\Field\Dimension', 'Kirki_Field_Dimension' ],
+ [ 'Kirki\Field\Dimensions', 'Kirki_Field_Dimensions' ],
+ [ 'Kirki\Field\CSS\Dimensions', 'Kirki_Output_Field_Dimensions' ],
+ [ 'Kirki\Field\Dimensions', 'Kirki_Field_Spacing' ],
+ [ 'Kirki\Field\Dimensions', 'Kirki\Field\Spacing' ],
+ [ 'Kirki\Field\Editor', 'Kirki_Field_Editor' ],
+ [ 'Kirki\Field\FontAwesome', 'Kirki_Field_FontAwesome' ],
+ [ 'Kirki\Field\Generic', 'Kirki_Field_Kirki_Generic' ],
+ [ 'Kirki\Field\Generic', 'Kirki_Field_Generic' ],
+ [ 'Kirki\Field\Text', 'Kirki_Field_Text' ],
+ [ 'Kirki\Field\Textarea', 'Kirki_Field_Textarea' ],
+ [ 'Kirki\Field\URL', 'Kirki_Field_URL' ],
+ [ 'Kirki\Field\URL', 'Kirki_Field_Link' ],
+ [ 'Kirki\Field\URL', 'Kirki\Field\Link' ],
+ [ 'Kirki\Field\Image', 'Kirki_Field_Image' ],
+ [ 'Kirki\Field\CSS\Image', 'Kirki_Output_Field_Image' ],
+ [ 'Kirki\Field\Multicheck', 'Kirki_Field_Multicheck' ],
+ [ 'Kirki\Field\Multicolor', 'Kirki_Field_Multicolor' ],
+ [ 'Kirki\Field\CSS\Multicolor', 'Kirki_Output_Field_Multicolor' ],
+ [ 'Kirki\Field\Number', 'Kirki_Field_Number' ],
+ [ 'Kirki\Field\Palette', 'Kirki_Field_Palette' ],
+ [ 'Kirki\Field\Repeater', 'Kirki_Field_Repeater' ],
+ [ 'Kirki\Field\Dropdown_Pages', 'Kirki_Field_Dropdown_Pages' ],
+ [ 'Kirki\Field\Preset', 'Kirki_Field_Preset' ],
+ [ 'Kirki\Field\Select', 'Kirki_Field_Select' ],
+ [ 'Kirki\Field\Slider', 'Kirki_Field_Slider' ],
+ [ 'Kirki\Field\Sortable', 'Kirki_Field_Sortable' ],
+ [ 'Kirki\Field\Typography', 'Kirki_Field_Typography' ],
+ [ 'Kirki\Field\CSS\Typography', 'Kirki_Output_Field_Typography' ],
+ [ 'Kirki\Field\Upload', 'Kirki_Field_Upload' ],
+ ],
+ 'customizer' => [
+ [ 'Kirki\Control\Base', 'Kirki_Control_Base' ],
+ [ 'Kirki\Control\Base', 'Kirki_Customize_Control' ],
+ [ 'Kirki\Control\Checkbox', 'Kirki_Control_Checkbox' ],
+ [ 'Kirki\Control\Checkbox_Switch', 'Kirki_Control_Switch' ],
+ [ 'Kirki\Control\Checkbox_Toggle', 'Kirki_Control_Toggle' ],
+ [ 'WP_Customize_Code_Editor_Control', 'Kirki_Control_Code' ],
+ [ 'Kirki\Control\Color', 'Kirki_Control_Color' ],
+ [ 'Kirki\Control\Color_Palette', 'Kirki_Control_Color_Palette' ],
+ [ 'WP_Customize_Cropped_Image_Control', 'Kirki_Control_Cropped_Image' ],
+ [ 'Kirki\Control\Custom', 'Kirki_Control_Custom' ],
+ [ 'Kirki\Control\Dashicons', 'Kirki_Control_Dashicons' ],
+ [ 'Kirki\Control\Date', 'Kirki_Control_Date' ],
+ [ 'Kirki\Control\Dimension', 'Kirki_Control_Dimension' ],
+ [ 'Kirki\Control\Editor', 'Kirki_Control_Editor' ],
+ [ 'Kirki\Control\Generic', 'Kirki_Control_Generic' ],
+ [ 'Kirki\Control\Image', 'Kirki_Control_Image' ],
+ [ 'Kirki\Control\Multicheck', 'Kirki_Control_Multicheck' ],
+ [ 'Kirki\Control\Generic', 'Kirki_Control_Number' ],
+ [ 'Kirki\Control\Palette', 'Kirki_Control_Palette' ],
+ [ 'Kirki\Control\Radio', 'Kirki_Control_Radio' ],
+ [ 'Kirki\Control\Radio_Buttonset', 'Kirki_Control_Radio_Buttonset' ],
+ [ 'Kirki\Control\Radio_Image', 'Kirki_Control_Radio_Image' ],
+ [ 'Kirki\Control\Radio_Image', 'Kirki_Controls_Radio_Image_Control' ],
+ [ 'Kirki\Control\Repeater', 'Kirki_Control_Repeater' ],
+ [ 'Kirki\Control\Select', 'Kirki_Control_Select' ],
+ [ 'Kirki\Control\Slider', 'Kirki_Control_Slider' ],
+ [ 'Kirki\Control\Sortable', 'Kirki_Control_Sortable' ],
+ [ 'Kirki\Control\Upload', 'Kirki_Control_Upload' ],
+ [ 'Kirki\Settings\Repeater', 'Kirki\Settings\Repeater_Setting' ],
+ [ 'Kirki\Settings\Repeater', 'Kirki_Settings_Repeater_Setting' ],
+ [ 'WP_Customize_Section', 'Kirki_Sections_Default_Section' ],
+ [ 'Kirki\Section_Types\Expanded', 'Kirki_Sections_Expanded_Section' ],
+ [ 'Kirki\Section_Types\Nested', 'Kirki_Sections_Nested_Section' ],
+ [ 'Kirki\Section_Types\Link', 'Kirki_Sections_Link_Section' ],
+ [ 'Kirki\Panel_Types\Nested', 'Kirki_Panels_Nested_Panel' ],
+ ],
+ ];
+
+ /**
+ * Constructor.
+ *
+ * @access public
+ * @since 0.1
+ */
+ public function __construct() {
+ $this->add_aliases();
+ add_action( 'customize_register', [ $this, 'add_customizer_aliases' ] );
+ }
+
+ /**
+ * Adds object aliases.
+ *
+ * @access public
+ * @since 0.1
+ * @return void
+ */
+ public function add_aliases() {
+ foreach ( $this->aliases['generic'] as $item ) {
+ if ( class_exists( $item[0] ) ) {
+ class_alias( $item[0], $item[1] );
+ }
+ }
+ }
+
+ /**
+ * Adds object aliases for classes that get instantiated on customize_register.
+ *
+ * @access public
+ * @since 0.1
+ * @return void
+ */
+ public function add_customizer_aliases() {
+ foreach ( $this->aliases['customizer'] as $item ) {
+ if ( class_exists( $item[0] ) ) {
+ class_alias( $item[0], $item[1] );
+ }
+ }
+ }
+}
diff --git a/functions/kirki/core/class-kirki-config.php b/functions/kirki/packages/kirki-framework/compatibility/src/Config.php
similarity index 82%
rename from functions/kirki/core/class-kirki-config.php
rename to functions/kirki/packages/kirki-framework/compatibility/src/Config.php
index 91ac8c8..20db79e 100644
--- a/functions/kirki/core/class-kirki-config.php
+++ b/functions/kirki/packages/kirki-framework/compatibility/src/Config.php
@@ -2,17 +2,19 @@
/**
* Processes configurations.
*
- * @package Kirki
- * @category Core
- * @author Ari Stathopoulos (@aristath)
- * @copyright Copyright (c) 2020, David Vongries
- * @license https://opensource.org/licenses/MIT
+ * @package Kirki
+ * @category Compatibility
+ * @author Ari Stathopoulos (@aristath)
+ * @copyright Copyright (c) 2020, David Vongries
+ * @license https://opensource.org/licenses/MIT
*/
+namespace Kirki\Compatibility;
+
/**
- * The Kirki_Config object
+ * The Config object
*/
-final class Kirki_Config {
+final class Config {
/**
* Each instance is stored separately in this array.
@@ -21,7 +23,7 @@ final class Kirki_Config {
* @access private
* @var array
*/
- private static $instances = array();
+ private static $instances = [];
/**
* The finalized configuration array.
@@ -29,7 +31,7 @@ final class Kirki_Config {
* @access protected
* @var array
*/
- protected $config_final = array();
+ protected $config_final = [];
/**
* The configuration ID.
@@ -69,7 +71,7 @@ final class Kirki_Config {
* @access protected
* @var array
*/
- protected $compiler = array();
+ protected $compiler = [];
/**
* Set to true if you want to completely disable any Kirki-generated CSS.
@@ -84,10 +86,10 @@ final class Kirki_Config {
* Use the get_instance() static method to get the instance you need.
*
* @access private
- * @param string $config_id @see Kirki_Config::get_instance().
- * @param array $args @see Kirki_Config::get_instance().
+ * @param string $config_id @see Kirki\Compatibility\Config::get_instance().
+ * @param array $args @see Kirki\Compatibility\Config::get_instance().
*/
- private function __construct( $config_id = 'global', $args = array() ) {
+ private function __construct( $config_id = 'global', $args = [] ) {
// Get defaults from the class.
$defaults = get_class_vars( __CLASS__ );
@@ -109,9 +111,9 @@ final class Kirki_Config {
$this->id = $config_id;
$this->config_final = wp_parse_args(
- array(
+ [
'id' => $config_id,
- ),
+ ],
$args
);
}
@@ -136,9 +138,9 @@ final class Kirki_Config {
* from fields using this configuration.
* }
*
- * @return Kirki_Config
+ * @return Kirki\Compatibility\Config
*/
- public static function get_instance( $id = 'global', $args = array() ) {
+ public static function get_instance( $id = 'global', $args = [] ) {
if ( empty( $id ) ) {
$id = 'global';
}
@@ -158,7 +160,7 @@ final class Kirki_Config {
* @return array
*/
public static function get_config_ids() {
- $configs = array();
+ $configs = [];
foreach ( self::$instances as $instance ) {
$configs[] = $instance->id;
}
diff --git a/functions/kirki/core/class-kirki-control.php b/functions/kirki/packages/kirki-framework/compatibility/src/Control.php
similarity index 77%
rename from functions/kirki/core/class-kirki-control.php
rename to functions/kirki/packages/kirki-framework/compatibility/src/Control.php
index 093bbe2..1d0e5ca 100644
--- a/functions/kirki/core/class-kirki-control.php
+++ b/functions/kirki/packages/kirki-framework/compatibility/src/Control.php
@@ -6,13 +6,15 @@
* @category Core
* @author Ari Stathopoulos (@aristath)
* @copyright Copyright (c) 2020, David Vongries
- * @license https://opensource.org/licenses/MIT
+ * @license https://opensource.org/licenses/MIT
*/
+namespace Kirki\Compatibility;
+
/**
- * Our main Kirki_Control object
+ * Our main Kirki\Control object
*/
-class Kirki_Control {
+class Control {
/**
* The $wp_customize WordPress global.
@@ -28,14 +30,14 @@ class Kirki_Control {
* @access protected
* @var array
*/
- protected static $control_types = array();
+ protected static $control_types = [];
/**
* The class constructor.
* Creates the actual controls in the customizer.
*
* @access public
- * @param array $args The field definition as sanitized in Kirki_Field.
+ * @param array $args The field definition as sanitized in Kirki\Field.
*/
public function __construct( $args ) {
@@ -58,11 +60,11 @@ class Kirki_Control {
* Get the class name of the class needed to create tis control.
*
* @access private
- * @param array $args The field definition as sanitized in Kirki_Field.
+ * @param array $args The field definition as sanitized in Kirki\Field.
*
* @return string the name of the class that will be used to create this control.
*/
- private function get_control_class_name( $args ) {
+ final function get_control_class_name( $args ) {
// Set a default class name.
$class_name = 'WP_Customize_Control';
@@ -78,13 +80,23 @@ class Kirki_Control {
* Adds the control.
*
* @access protected
- * @param array $args The field definition as sanitized in Kirki_Field.
+ * @param array $args The field definition as sanitized in Kirki\Field.
*/
final protected function add_control( $args ) {
// Get the name of the class we're going to use.
$class_name = $this->get_control_class_name( $args );
+ /**
+ * Allow filtering the arguments.
+ *
+ * @since 0.1
+ * @param array $args The arguments.
+ * @param WP_Customize_Manager $wp_customize The customizer instance.
+ * @return array Return the arguments.
+ */
+ $args = apply_filters( 'kirki_field_add_control_args', $args, $this->wp_customize );
+
// Add the control.
$this->wp_customize->add_control( new $class_name( $this->wp_customize, $args['settings'], $args ) );
@@ -98,14 +110,14 @@ class Kirki_Control {
*
* @access private
*/
- private function set_control_types() {
+ final function set_control_types() {
// Early exit if this has already run.
if ( ! empty( self::$control_types ) ) {
return;
}
- self::$control_types = apply_filters( 'kirki_control_types', array() );
+ self::$control_types = apply_filters( 'kirki_control_types', [] );
// Make sure the defined classes actually exist.
foreach ( self::$control_types as $key => $classname ) {
diff --git a/functions/kirki/packages/kirki-framework/compatibility/src/Deprecated.php b/functions/kirki/packages/kirki-framework/compatibility/src/Deprecated.php
new file mode 100644
index 0000000..2b3a374
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/compatibility/src/Deprecated.php
@@ -0,0 +1,32 @@
+kirki_config = $config_id;
+
if ( '' === $config_id ) {
/* translators: %1$s represents the field ID where the error occurs. %2$s is the URL in the documentation site. */
- _doing_it_wrong( __METHOD__, sprintf( esc_html__( 'Config not defined for field %1$s - See %2$s for details on how to properly add fields.', 'kirki' ), esc_html( $args['settings'] ), 'https://kirki.org/docs/getting-started/fields.html' ), '3.0.10' );
+ _doing_it_wrong( __METHOD__, sprintf( esc_html__( 'Config not defined for field %1$s - See %2$s for details on how to properly add fields.', 'kirki' ), esc_html( $args['settings'] ), 'https://aristath.github.io/kirki/docs/getting-started/fields.html' ), '3.0.10' );
$this->kirki_config = 'global';
}
@@ -272,11 +277,14 @@ class Kirki_Field {
$defaults = get_class_vars( __CLASS__ );
// Get the config arguments, and merge them with the defaults.
- $config_defaults = ( isset( Kirki::$config['global'] ) ) ? Kirki::$config['global'] : array();
+ $config_defaults = ( isset( Kirki::$config['global'] ) ) ? Kirki::$config['global'] : [];
+
if ( 'global' !== $this->kirki_config && isset( Kirki::$config[ $this->kirki_config ] ) ) {
$config_defaults = Kirki::$config[ $this->kirki_config ];
}
- $config_defaults = ( is_array( $config_defaults ) ) ? $config_defaults : array();
+
+ $config_defaults = ( is_array( $config_defaults ) ) ? $config_defaults : [];
+
foreach ( $config_defaults as $key => $value ) {
if ( isset( $defaults[ $key ] ) && ! empty( $value ) && $value !== $defaults[ $key ] ) {
$defaults[ $key ] = $value;
@@ -294,6 +302,10 @@ class Kirki_Field {
$this->args = $args;
$this->set_field();
+
+ // Instantiate the \Kirki\Field to apply hooks.
+ new \Kirki\Field\None( $this->args );
+
}
/**
@@ -310,8 +322,8 @@ class Kirki_Field {
$this->set_settings();
// Sanitize the properties, skipping the ones that have already run above.
- foreach ( $properties as $property => $value ) {
- if ( in_array( $property, array( 'option_name', 'option_type', 'settings' ), true ) ) {
+ foreach ( array_keys( $properties ) as $property ) {
+ if ( in_array( $property, [ 'option_name', 'option_type', 'settings' ], true ) ) {
continue;
}
if ( method_exists( $this, 'set_' . $property ) ) {
@@ -322,6 +334,7 @@ class Kirki_Field {
// Get all arguments with their values.
$args = get_object_vars( $this );
+
foreach ( array_keys( $args ) as $key ) {
$args[ $key ] = $this->$key;
}
@@ -355,7 +368,7 @@ class Kirki_Field {
// Take care of common typos.
if ( 'theme_mods' === $this->option_type ) {
/* translators: %1$s represents the field ID where the error occurs. */
- _doing_it_wrong( __METHOD__, sprintf( esc_html__( 'Typo found in field %s - "theme_mods" vs "theme_mod"', 'kirki' ), esc_html( $this->settings ) ), '3.0.10' );
+ _doing_it_wrong( __METHOD__, sprintf( esc_html( 'Typo found in field %s - "theme_mods" vs "theme_mod"', 'kirki' ), esc_html( $this->settings ) ), '3.0.10' );
$this->option_type = 'theme_mod';
}
}
@@ -367,7 +380,7 @@ class Kirki_Field {
*/
protected function set_partial_refresh() {
if ( ! is_array( $this->partial_refresh ) ) {
- $this->partial_refresh = array();
+ $this->partial_refresh = [];
}
foreach ( $this->partial_refresh as $id => $args ) {
if ( ! is_array( $args ) || ! isset( $args['selector'] ) || ! isset( $args['render_callback'] ) || ! is_callable( $args['render_callback'] ) ) {
@@ -395,11 +408,11 @@ class Kirki_Field {
// This is just to allow us to process everything the same way and avoid code duplication.
// if settings is not an array then it will not be set as an array in the end.
if ( ! is_array( $this->settings ) ) {
- $this->settings = array(
+ $this->settings = [
'kirki_placeholder_setting' => $this->settings,
- );
+ ];
}
- $settings = array();
+ $settings = [];
foreach ( $this->settings as $setting_key => $setting_value ) {
$settings[ $setting_key ] = $setting_value;
@@ -422,7 +435,9 @@ class Kirki_Field {
* @access protected
*/
protected function set_active_callback() {
+
if ( is_array( $this->active_callback ) ) {
+
if ( ! is_callable( $this->active_callback ) ) {
// Bugfix for https://github.com/aristath/kirki/issues/1961.
@@ -450,6 +465,7 @@ class Kirki_Field {
if ( ! is_callable( $this->active_callback ) ) {
$this->active_callback = '__return_true';
}
+
}
/**
@@ -471,7 +487,7 @@ class Kirki_Field {
*/
protected function set_choices() {
if ( ! is_array( $this->choices ) ) {
- $this->choices = array();
+ $this->choices = [];
}
}
@@ -496,18 +512,18 @@ class Kirki_Field {
if ( ! is_array( $this->output ) ) {
/* translators: The field ID where the error occurs. */
_doing_it_wrong( __METHOD__, sprintf( esc_html__( '"output" invalid format in field %s. The "output" argument should be defined as an array of arrays.', 'kirki' ), esc_html( $this->settings ) ), '3.0.10' );
- $this->output = array(
- array(
+ $this->output = [
+ [
'element' => $this->output,
- ),
- );
+ ],
+ ];
}
// Convert to array of arrays if needed.
if ( isset( $this->output['element'] ) ) {
/* translators: The field ID where the error occurs. */
_doing_it_wrong( __METHOD__, sprintf( esc_html__( '"output" invalid format in field %s. The "output" argument should be defined as an array of arrays.', 'kirki' ), esc_html( $this->settings ) ), '3.0.10' );
- $this->output = array( $this->output );
+ $this->output = [ $this->output ];
}
foreach ( $this->output as $key => $output ) {
@@ -532,7 +548,7 @@ class Kirki_Field {
}
// Fix for https://github.com/aristath/kirki/issues/1659#issuecomment-346229751.
- $this->output[ $key ]['element'] = str_replace( array( "\t", "\n", "\r", "\0", "\x0B" ), ' ', $this->output[ $key ]['element'] );
+ $this->output[ $key ]['element'] = str_replace( [ "\t", "\n", "\r", "\0", "\x0B" ], ' ', $this->output[ $key ]['element'] );
$this->output[ $key ]['element'] = trim( preg_replace( '/\s+/', ' ', $this->output[ $key ]['element'] ) );
}
}
@@ -544,7 +560,7 @@ class Kirki_Field {
*/
protected function set_js_vars() {
if ( ! is_array( $this->js_vars ) ) {
- $this->js_vars = array();
+ $this->js_vars = [];
}
// Check if transport is set to auto.
@@ -557,7 +573,7 @@ class Kirki_Field {
// Serves as a fallback in case we failt to auto-calculate js_vars.
$this->transport = 'refresh';
- $js_vars = array();
+ $js_vars = [];
// Try to auto-generate js_vars.
// First we need to check if js_vars are empty, and that output is not empty.
@@ -567,8 +583,8 @@ class Kirki_Field {
foreach ( $this->output as $output ) {
$output['function'] = ( isset( $output['function'] ) ) ? $output['function'] : 'style';
- // If 'element' or 'property' are not defined, skip this.
- if ( ! isset( $output['element'] ) || ! isset( $output['property'] ) ) {
+ // If 'element' is not defined, skip this.
+ if ( ! isset( $output['element'] ) ) {
continue;
}
if ( is_array( $output['element'] ) ) {
@@ -602,7 +618,7 @@ class Kirki_Field {
protected function set_variables() {
if ( ! is_array( $this->variables ) ) {
$variable = ( is_string( $this->variables ) && ! empty( $this->variables ) ) ? $this->variables : false;
- $this->variables = array();
+ $this->variables = [];
if ( $variable && empty( $this->variables ) ) {
$this->variables[0]['name'] = $variable;
}
@@ -627,7 +643,7 @@ class Kirki_Field {
*/
protected function set_required() {
if ( ! is_array( $this->required ) ) {
- $this->required = array();
+ $this->required = [];
}
}
@@ -647,10 +663,10 @@ class Kirki_Field {
*/
protected function set_css_vars() {
if ( is_string( $this->css_vars ) ) {
- $this->css_vars = array( $this->css_vars );
+ $this->css_vars = [ $this->css_vars ];
}
if ( isset( $this->css_vars[0] ) && is_string( $this->css_vars[0] ) ) {
- $this->css_vars = array( $this->css_vars );
+ $this->css_vars = [ $this->css_vars ];
}
foreach ( $this->css_vars as $key => $val ) {
if ( ! isset( $val[1] ) ) {
diff --git a/functions/kirki/core/class-kirki-toolkit.php b/functions/kirki/packages/kirki-framework/compatibility/src/Framework.php
similarity index 82%
rename from functions/kirki/core/class-kirki-toolkit.php
rename to functions/kirki/packages/kirki-framework/compatibility/src/Framework.php
index 18a902f..a85c048 100644
--- a/functions/kirki/core/class-kirki-toolkit.php
+++ b/functions/kirki/packages/kirki-framework/compatibility/src/Framework.php
@@ -6,10 +6,12 @@
* @category Core
* @author Ari Stathopoulos (@aristath)
* @copyright Copyright (c) 2020, David Vongries
- * @license https://opensource.org/licenses/MIT
+ * @license https://opensource.org/licenses/MIT
* @since 1.0
*/
+namespace Kirki\Compatibility;
+
// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
exit;
@@ -18,7 +20,7 @@ if ( ! defined( 'ABSPATH' ) ) {
/**
* Singleton class
*/
-final class Kirki_Toolkit {
+final class Framework {
/**
* Holds the one, true instance of this object.
@@ -34,7 +36,7 @@ final class Kirki_Toolkit {
*
* @static
* @access public
- * @return object Kirki_Toolkit.
+ * @return Kirki\Compatibility\Framework
*/
public static function get_instance() {
if ( null === self::$instance ) {
diff --git a/functions/kirki/packages/kirki-framework/compatibility/src/Init.php b/functions/kirki/packages/kirki-framework/compatibility/src/Init.php
new file mode 100644
index 0000000..8fbddb5
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/compatibility/src/Init.php
@@ -0,0 +1,310 @@
+control_types = [
+ 'kirki-composite' => '\Kirki\Control\Composite',
+ 'checkbox' => '\Kirki\Control\Checkbox',
+ 'kirki-color' => '\Kirki\Control\ReactColorful',
+ 'kirki-color-palette' => '\Kirki\Control\Color_Palette',
+ 'kirki-custom' => '\Kirki\Control\Custom',
+ 'kirki-date' => '\Kirki\Control\Date',
+ 'kirki-dashicons' => '\Kirki\Control\Dashicons',
+ 'kirki-dimension' => '\Kirki\Control\Dimension',
+ 'kirki-dimensions' => '\Kirki\Control\Dimensions',
+ 'kirki-editor' => '\Kirki\Control\Editor',
+ 'kirki-image' => '\Kirki\Control\Image',
+ 'kirki-multicolor' => '\Kirki\Control\Multicolor',
+ 'kirki-multicheck' => '\Kirki\Control\Multicheck',
+ 'kirki-number' => '\Kirki\Control\Number',
+ 'kirki-radio' => '\Kirki\Control\Radio',
+ 'kirki-radio-buttonset' => '\Kirki\Control\Radio_Buttonset',
+ 'kirki-radio-image' => '\Kirki\Control\Radio_Image',
+ 'repeater' => '\Kirki\Control\Repeater',
+ 'kirki-select' => '\Kirki\Control\Select',
+ 'kirki-slider' => '\Kirki\Control\Slider',
+ 'kirki-sortable' => '\Kirki\Control\Sortable',
+ 'kirki-spacing' => '\Kirki\Control\Dimensions',
+ 'kirki-switch' => '\Kirki\Control\Checkbox_Switch',
+ 'kirki-generic' => '\Kirki\Control\Generic',
+ 'kirki-toggle' => '\Kirki\Control\Checkbox_Toggle',
+ 'image' => '\Kirki\Control\Image',
+ 'cropped_image' => '\Kirki\Control\Cropped_Image',
+ 'upload' => '\Kirki\Control\Upload',
+ ];
+ return array_merge( $this->control_types, $control_types );
+ }
+
+ /**
+ * Helper function that adds the fields to the customizer.
+ */
+ public function add_to_customizer() {
+ $this->fields_from_filters();
+ add_action( 'customize_register', [ $this, 'register_control_types' ] );
+ add_action( 'customize_register', [ $this, 'add_fields' ], 99 );
+ }
+
+ /**
+ * Register control types
+ */
+ public function register_control_types() {
+ global $wp_customize;
+
+ $this->control_types = $this->default_control_types();
+ if ( ! class_exists( 'WP_Customize_Code_Editor_Control' ) ) {
+ unset( $this->control_types['code_editor'] );
+ }
+ foreach ( $this->control_types as $key => $classname ) {
+ if ( ! class_exists( $classname ) ) {
+ unset( $this->control_types[ $key ] );
+ }
+ }
+
+ $skip_control_types = apply_filters(
+ 'kirki_control_types_exclude',
+ [
+ '\Kirki\Control\Repeater',
+ '\WP_Customize_Control',
+ ]
+ );
+
+ foreach ( $this->control_types as $control_type ) {
+ if ( ! in_array( $control_type, $skip_control_types, true ) && class_exists( $control_type ) ) {
+ $wp_customize->register_control_type( $control_type );
+ }
+ }
+ }
+
+ /**
+ * Create the settings and controls from the $fields array and register them.
+ *
+ * @var object The WordPress Customizer object.
+ */
+ public function add_fields() {
+ global $wp_customize;
+
+ foreach ( Kirki::$fields as $args ) {
+
+ // Create the settings.
+ new \Kirki\Compatibility\Settings( $args );
+
+ // Check if we're on the customizer.
+ // If we are, then we will create the controls, add the scripts needed for the customizer
+ // and any other tweaks that this field may require.
+ if ( $wp_customize ) {
+
+ // Create the control.
+ new Control( $args );
+
+ }
+ }
+ }
+
+ /**
+ * Process fields added using the 'kirki_fields' and 'kirki_controls' filter.
+ * These filters are no longer used, this is simply for backwards-compatibility.
+ *
+ * @access private
+ * @since 2.0.0
+ */
+ private function fields_from_filters() {
+ $fields = apply_filters( 'kirki_controls', [] );
+ $fields = apply_filters( 'kirki_fields', $fields );
+
+ if ( ! empty( $fields ) ) {
+ foreach ( $fields as $field ) {
+ $field['kirki_config'] = 'global';
+ Kirki::add_field( 'global', $field );
+ }
+ }
+ }
+
+ /**
+ * Alias for the is_plugin static method in the Kirki\Util\Util class.
+ * This is here for backwards-compatibility purposes.
+ *
+ * @static
+ * @access public
+ * @since 3.0.0
+ * @return bool
+ */
+ public static function is_plugin() {
+ return Util::is_plugin();
+ }
+
+ /**
+ * Alias for the get_variables static method in the Kirki\Util\Util class.
+ * This is here for backwards-compatibility purposes.
+ *
+ * @static
+ * @access public
+ * @since 2.0.0
+ * @return array Formatted as array( 'variable-name' => value ).
+ */
+ public static function get_variables() {
+
+ // Log error for developers.
+ _doing_it_wrong( __METHOD__, esc_html__( 'We detected you\'re using Kirki\Compatibility\Init::get_variables(). Please use \Kirki\Util\Util::get_variables() instead.', 'kirki' ), '3.0.10' );
+
+ // ! This will be failed, because Util class is under Kirki\Util namespace.
+ return Util::get_variables();
+ }
+
+ /**
+ * Remove controls.
+ *
+ * @since 3.0.17
+ * @param object $wp_customize The customizer object.
+ * @return void
+ */
+ public function remove_controls( $wp_customize ) {
+ foreach ( Kirki::$controls_to_remove as $control ) {
+ $wp_customize->remove_control( $control );
+ }
+ }
+
+ /**
+ * Shows an admin notice.
+ *
+ * @access public
+ * @since 3.0.42
+ * @return void
+ */
+ public function admin_notices() {
+
+ // No need for a nag if we don't need to recommend installing the FA plugin.
+ if ( ! self::$show_fa_nag ) {
+ return;
+ }
+
+ // No need for a nag if FA plugin is already installed.
+ if ( defined( 'FONTAWESOME_DIR_PATH' ) ) {
+ return;
+ }
+
+ // No need for a nag if current user can't install plugins.
+ if ( ! current_user_can( 'install_plugins' ) ) {
+ return;
+ }
+
+ // No need for a nag if user has dismissed it.
+ $dismissed = get_user_meta( get_current_user_id(), 'kirki_fa_nag_dismissed', true );
+ if ( true === $dismissed || 1 === $dismissed || '1' === $dismissed ) {
+ return;
+ }
+ ?>
+
+ get_config();
+ public static function add_config( $config_id, $args = [] ) {
+
+ $config = Config::get_instance( $config_id, $args );
+ $config_args = $config->get_config();
+
self::$config[ $config_args['id'] ] = $config_args;
+
}
/**
@@ -153,21 +127,10 @@ class Kirki extends Kirki_Init {
* @param string $id The ID for this panel.
* @param array $args The panel arguments.
*/
- public static function add_panel( $id = '', $args = array() ) {
- $args['id'] = $id;
- if ( ! isset( $args['description'] ) ) {
- $args['description'] = '';
- }
- if ( ! isset( $args['priority'] ) ) {
- $args['priority'] = 10;
- }
- if ( ! isset( $args['type'] ) ) {
- $args['type'] = 'default';
- }
- if ( false === strpos( $args['type'], 'kirki-' ) ) {
- $args['type'] = 'kirki-' . $args['type'];
- }
- self::$panels[ $id ] = $args;
+ public static function add_panel( $id = '', $args = [] ) {
+
+ new \Kirki\Panel( $id, $args );
+
}
/**
@@ -179,9 +142,10 @@ class Kirki extends Kirki_Init {
* @param string $id The ID for this panel.
*/
public static function remove_panel( $id = '' ) {
- if ( ! in_array( $id, self::$panels_to_remove, true ) ) {
- self::$panels_to_remove[] = $id;
- }
+
+ $panel = new \Kirki\Panel( $id );
+ $panel->remove();
+
}
/**
@@ -193,21 +157,9 @@ class Kirki extends Kirki_Init {
* @param array $args The section arguments.
*/
public static function add_section( $id, $args ) {
- $args['id'] = $id;
- if ( ! isset( $args['description'] ) ) {
- $args['description'] = '';
- }
- if ( ! isset( $args['priority'] ) ) {
- $args['priority'] = 10;
- }
- if ( ! isset( $args['type'] ) ) {
- $args['type'] = 'default';
- }
- if ( false === strpos( $args['type'], 'kirki-' ) ) {
- $args['type'] = 'kirki-' . $args['type'];
- }
- self::$sections[ $id ] = $args;
+ new \Kirki\Section( $id, $args );
+
}
/**
@@ -216,12 +168,13 @@ class Kirki extends Kirki_Init {
* @static
* @access public
* @since 3.0.17
- * @param string $id The ID for this panel.
+ * @param string $id The ID for this section.
*/
public static function remove_section( $id = '' ) {
- if ( ! in_array( $id, self::$sections_to_remove, true ) ) {
- self::$sections_to_remove[] = $id;
- }
+
+ $section = new \Kirki\Section( $id, $args );
+ $section->remove();
+
}
/**
@@ -232,7 +185,8 @@ class Kirki extends Kirki_Init {
* @param string $config_id The configuration ID for this field.
* @param array $args The field arguments.
*/
- public static function add_field( $config_id, $args ) {
+ public static function add_field( $config_id, $args = [] ) {
+
if ( doing_action( 'customize_register' ) ) {
_doing_it_wrong( __METHOD__, esc_html__( 'Kirki fields should not be added on customize_register. Please add them directly, or on init.', 'kirki' ), '3.0.10' );
}
@@ -244,20 +198,26 @@ class Kirki extends Kirki_Init {
return;
}
- $str = str_replace( array( '-', '_' ), ' ', $args['type'] );
- $classname = 'Kirki_Field_' . str_replace( ' ', '_', ucwords( $str ) );
+ $args = self::migrate_css_vars( $args );
+
+ $str = str_replace( [ '-', '_' ], ' ', $args['type'] );
+ $classname = '\Kirki\Field\\' . str_replace( ' ', '_', ucwords( $str ) );
+
+ $config = Config::get_instance( $config_id )->get_config();
+ $args['kirki_config'] = isset( $args['kirki_config'] ) ? $args['kirki_config'] : $config_id;
+
+ unset( $config['id'] );
+
+ $args = wp_parse_args( $args, $config );
+
if ( class_exists( $classname ) ) {
- new $classname( $config_id, $args );
+ unset( $args['type'] );
+ new $classname( $args );
return;
}
- if ( false !== strpos( $classname, 'Kirki_Field_Kirki_' ) ) {
- $classname = str_replace( 'Kirki_Field_Kirki_', 'Kirki_Field_', $classname );
- if ( class_exists( $classname ) ) {
- new $classname( $config_id, $args );
- return;
- }
- }
- new Kirki_Field( $config_id, $args );
+
+ new Field( $config_id, $args );
+
}
/**
@@ -269,9 +229,11 @@ class Kirki extends Kirki_Init {
* @param string $id The field ID.
*/
public static function remove_control( $id ) {
+
if ( ! in_array( $id, self::$controls_to_remove, true ) ) {
self::$controls_to_remove[] = $id;
}
+
}
/**
@@ -285,9 +247,58 @@ class Kirki extends Kirki_Init {
* @return string
*/
public static function get_config_param( $id, $param ) {
+
if ( ! isset( self::$config[ $id ] ) || ! isset( self::$config[ $id ][ $param ] ) ) {
return '';
}
+
return self::$config[ $id ][ $param ];
+
}
+
+ /**
+ * Migrate css-variables to output argument.
+ *
+ * This only exists for backwards-compatibility with the deprecated css-vars argument.
+ *
+ * @static
+ * @since 4.0
+ * @param array $args The field arguments.
+ * @return array
+ */
+ private static function migrate_css_vars( $args ) {
+
+ // Convert css_vars to output args.
+ if ( isset( $args['css_vars'] ) ) {
+
+ if ( 'postMessage' === $args['transport'] ) {
+ $args['transport'] = 'auto';
+ }
+
+ // Convert to properly-formatted arrays.
+ $args['css_vars'] = (array) $args['css_vars'];
+
+ if ( isset( $args['css_vars'][0] ) && is_string( $args['css_vars'][0] ) ) {
+ $args['css_vars'] = [ $args['css_vars'] ];
+ }
+
+ foreach ( $args['css_vars'] as $css_var ) {
+ $output = [
+ 'element' => ':root',
+ 'property' => $css_var[0],
+ ];
+ if ( isset( $css_var[1] ) ) {
+ $output['value_pattern'] = $css_var[1];
+ }
+ if ( isset( $css_var[2] ) ) {
+ $output['choice'] = $css_var[2];
+ }
+ $args['output'][] = $output;
+ }
+ }
+
+ return $args;
+
+ }
+
}
diff --git a/functions/kirki/core/class-kirki-modules.php b/functions/kirki/packages/kirki-framework/compatibility/src/Modules.php
similarity index 58%
rename from functions/kirki/core/class-kirki-modules.php
rename to functions/kirki/packages/kirki-framework/compatibility/src/Modules.php
index 2c07557..c80866a 100644
--- a/functions/kirki/core/class-kirki-modules.php
+++ b/functions/kirki/packages/kirki-framework/compatibility/src/Modules.php
@@ -2,18 +2,20 @@
/**
* Handles modules loading.
*
- * @package Kirki
- * @category Core
- * @author Ari Stathopoulos (@aristath)
- * @copyright Copyright (c) 2020, David Vongries
- * @license https://opensource.org/licenses/MIT
- * @since 3.0.0
+ * @package Kirki
+ * @category Modules
+ * @author Ari Stathopoulos (@aristath)
+ * @copyright Copyright (c) 2020, David Vongries
+ * @license https://opensource.org/licenses/MIT
+ * @since 3.0.0
*/
+namespace Kirki\Compatibility;
+
/**
- * The Kirki_Modules class.
+ * The Modules class.
*/
-class Kirki_Modules {
+class Modules {
/**
* An array of available modules.
@@ -23,7 +25,7 @@ class Kirki_Modules {
* @since 3.0.0
* @var array
*/
- private static $modules = array();
+ private static $modules = [];
/**
* An array of active modules (objects).
@@ -33,7 +35,7 @@ class Kirki_Modules {
* @since 3.0.0
* @var array
*/
- private static $active_modules = array();
+ private static $active_modules = [];
/**
* Constructor.
@@ -42,8 +44,10 @@ class Kirki_Modules {
* @since 3.0.0
*/
public function __construct() {
- add_action( 'after_setup_theme', array( $this, 'setup_default_modules' ), 10 );
- add_action( 'after_setup_theme', array( $this, 'init' ), 11 );
+
+ add_action( 'after_setup_theme', [ $this, 'setup_default_modules' ], 10 );
+ add_action( 'after_setup_theme', [ $this, 'init' ], 11 );
+
}
/**
@@ -55,24 +59,22 @@ class Kirki_Modules {
* @since 3.0.0
*/
public function setup_default_modules() {
+
self::$modules = apply_filters(
'kirki_modules',
- array(
- 'css' => 'Kirki_Modules_CSS',
- 'css-vars' => 'Kirki_Modules_CSS_Vars',
- 'icons' => 'Kirki_Modules_Icons',
- 'loading' => 'Kirki_Modules_Loading',
- 'tooltips' => 'Kirki_Modules_Tooltips',
- 'postMessage' => 'Kirki_Modules_PostMessage',
- 'selective-refresh' => 'Kirki_Modules_Selective_Refresh',
- 'field-dependencies' => 'Kirki_Modules_Field_Dependencies',
- 'custom-sections' => 'Kirki_Modules_Custom_Sections',
- 'webfonts' => 'Kirki_Modules_Webfonts',
- 'webfont-loader' => 'Kirki_Modules_Webfont_Loader',
- 'preset' => 'Kirki_Modules_Preset',
- 'gutenberg' => 'Kirki_Modules_Gutenberg',
- )
+ [
+ 'css' => '\Kirki\Module\CSS',
+ 'tooltips' => '\Kirki\Module\Tooltips',
+ 'postMessage' => '\Kirki\Module\Postmessage',
+ 'selective-refresh' => '\Kirki\Module\Selective_Refresh',
+ 'field-dependencies' => '\Kirki\Module\Field_Dependencies',
+ 'webfonts' => '\Kirki\Module\Webfonts',
+ 'preset' => '\Kirki\Module\Preset',
+ 'gutenberg' => '\Kirki\Module\Editor_Styles',
+ 'section-icons' => '\Kirki\Module\Section_Icons',
+ ]
);
+
}
/**
@@ -84,13 +86,13 @@ class Kirki_Modules {
* @since 3.0.0
*/
public function init() {
- foreach ( self::$modules as $key => $module_class ) {
+
+ foreach ( self::$modules as $module_class ) {
if ( class_exists( $module_class ) ) {
- // Use this syntax instead of $module_class::get_instance()
- // for PHP 5.2 compatibility.
- self::$active_modules[ $key ] = call_user_func( array( $module_class, 'get_instance' ) );
+ new $module_class();
}
}
+
}
/**
@@ -102,9 +104,11 @@ class Kirki_Modules {
* @since 3.0.0
*/
public static function add_module( $module ) {
+
if ( ! in_array( $module, self::$modules, true ) ) {
self::$modules[] = $module;
}
+
}
/**
@@ -116,10 +120,13 @@ class Kirki_Modules {
* @since 3.0.0
*/
public static function remove_module( $module ) {
+
$key = array_search( $module, self::$modules, true );
+
if ( false !== $key ) {
unset( self::$modules[ $key ] );
}
+
}
/**
@@ -131,7 +138,9 @@ class Kirki_Modules {
* @return array
*/
public static function get_modules() {
+
return self::$modules;
+
}
/**
@@ -143,6 +152,9 @@ class Kirki_Modules {
* @return array
*/
public static function get_active_modules() {
+
return self::$active_modules;
+
}
+
}
diff --git a/functions/kirki/core/class-kirki-sanitize-values.php b/functions/kirki/packages/kirki-framework/compatibility/src/Sanitize_Values.php
similarity index 89%
rename from functions/kirki/core/class-kirki-sanitize-values.php
rename to functions/kirki/packages/kirki-framework/compatibility/src/Sanitize_Values.php
index e457e61..4809a2c 100644
--- a/functions/kirki/core/class-kirki-sanitize-values.php
+++ b/functions/kirki/packages/kirki-framework/compatibility/src/Sanitize_Values.php
@@ -7,10 +7,14 @@
* @category Core
* @author Ari Stathopoulos (@aristath)
* @copyright Copyright (c) 2020, David Vongries
- * @license https://opensource.org/licenses/MIT
+ * @license https://opensource.org/licenses/MIT
* @since 1.0
*/
+namespace Kirki\Compatibility;
+
+use Kirki\Field\Checkbox;
+
// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
exit;
@@ -19,7 +23,7 @@ if ( ! defined( 'ABSPATH' ) ) {
/**
* A simple wrapper class for static methods.
*/
-class Kirki_Sanitize_Values {
+class Sanitize_Values {
/**
* Checkbox sanitization callback.
@@ -27,16 +31,18 @@ class Kirki_Sanitize_Values {
* Sanitization callback for 'checkbox' type controls.
* This callback sanitizes `$value` as a boolean value, either TRUE or FALSE.
*
- * Deprecated. Use Kirki_Field_Checkbox::sanitize() instead.
+ * Deprecated. Use \Kirki\Field\Checkbox::sanitize() instead.
*
* @static
* @access public
- * @see Kirki_Field_Checkbox::sanitize()
+ * @see \Kirki\Field\Checkbox::sanitize()
* @param bool|string $value Whether the checkbox is checked.
* @return bool Whether the checkbox is checked.
*/
public static function checkbox( $value ) {
- $obj = new Kirki_Field_Checkbox();
+ $obj = new Checkbox();
+
+ // ! This sanitize function doesn't exist. A method exists check should be used before actually calling it.
return (bool) $obj->sanitize( $value );
}
@@ -122,7 +128,7 @@ class Kirki_Sanitize_Values {
$unit_used = '';
// An array of all valid CSS units. Their order was carefully chosen for this evaluation, don't mix it up!!!
- $units = array( 'fr', 'rem', 'em', 'ex', '%', 'px', 'cm', 'mm', 'in', 'pt', 'pc', 'ch', 'vh', 'vw', 'vmin', 'vmax' );
+ $units = [ 'fr', 'rem', 'em', 'ex', '%', 'px', 'cm', 'mm', 'in', 'pt', 'pc', 'ch', 'vh', 'vw', 'vmin', 'vmax' ];
foreach ( $units as $unit ) {
if ( false !== strpos( $value, $unit ) ) {
$unit_used = $unit;
@@ -158,7 +164,7 @@ class Kirki_Sanitize_Values {
* @return string
*/
public static function rgba( $value ) {
- $color = ariColor::newColor( $value );
+ $color = \ariColor::newColor( $value );
return $color->toCSS( 'rgba' );
}
@@ -183,7 +189,7 @@ class Kirki_Sanitize_Values {
}
// Instantiate the object.
- $color = ariColor::newColor( $value );
+ $color = \ariColor::newColor( $value );
// Return a CSS value, using the auto-detected mode.
return $color->toCSS( $color->mode );
diff --git a/functions/kirki/packages/kirki-framework/compatibility/src/Scripts.php b/functions/kirki/packages/kirki-framework/compatibility/src/Scripts.php
new file mode 100644
index 0000000..d5f7518
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/compatibility/src/Scripts.php
@@ -0,0 +1,56 @@
+ $value ) {
+ // ? Bagus: this $defaults var is not defined anywhere inside this function, so is this a mistake?
$default = ( isset( $defaults[ $key ] ) ) ? $defaults[ $key ] : '';
$this->add_setting( $classname, $value, $default, $args['option_type'], $args['capability'], $args['transport'], $args['sanitize_callback'] );
}
@@ -106,19 +109,19 @@ class Kirki_Settings {
* @param string $transport Use refresh|postMessage.
* @param string|array $sanitize_callback A callable sanitization function or method.
*/
- private function add_setting( $classname, $setting, $default, $type, $capability, $transport, $sanitize_callback ) {
+ final function add_setting( $classname, $setting, $default, $type, $capability, $transport, $sanitize_callback ) {
$this->wp_customize->add_setting(
new $classname(
$this->wp_customize,
$setting,
- array(
+ [
'default' => $default,
'type' => $type,
'capability' => $capability,
'transport' => $transport,
'sanitize_callback' => $sanitize_callback,
- )
+ ]
)
);
@@ -130,17 +133,17 @@ class Kirki_Settings {
* and that the defined classes actually exist.
* If a defined class does not exist, it is removed.
*/
- private function set_setting_types() {
+ final function set_setting_types() {
// Apply the kirki_setting_types filter.
$this->setting_types = apply_filters(
'kirki_setting_types',
- array(
+ [
'default' => 'WP_Customize_Setting',
- 'repeater' => 'Kirki_Settings_Repeater_Setting',
- 'user_meta' => 'Kirki_Setting_User_Meta',
- 'site_option' => 'Kirki_Setting_Site_Option',
- )
+ 'repeater' => '\Kirki_Settings_Repeater_Setting',
+ 'user_meta' => '\Kirki\Util\Setting\User_Meta',
+ 'site_option' => '\Kirki\Util\Setting\Site_Option',
+ ]
);
// Make sure the defined classes actually exist.
diff --git a/functions/kirki/core/class-kirki-values.php b/functions/kirki/packages/kirki-framework/compatibility/src/Values.php
similarity index 60%
rename from functions/kirki/core/class-kirki-values.php
rename to functions/kirki/packages/kirki-framework/compatibility/src/Values.php
index 7793748..3741659 100644
--- a/functions/kirki/core/class-kirki-values.php
+++ b/functions/kirki/packages/kirki-framework/compatibility/src/Values.php
@@ -1,7 +1,8 @@
3 && arguments[3] !== undefined ? arguments[3] : 10;
+
+ if (!build_module_validateHookName(hookName)) {
+ return;
+ }
+
+ if (!build_module_validateNamespace(namespace)) {
+ return;
+ }
+
+ if ('function' !== typeof callback) {
+ // eslint-disable-next-line no-console
+ console.error('The hook callback must be a function.');
+ return;
+ } // Validate numeric priority
+
+
+ if ('number' !== typeof priority) {
+ // eslint-disable-next-line no-console
+ console.error('If specified, the hook priority must be a number.');
+ return;
+ }
+
+ var handler = {
+ callback: callback,
+ priority: priority,
+ namespace: namespace
+ };
+
+ if (hooks[hookName]) {
+ // Find the correct insert index of the new hook.
+ var handlers = hooks[hookName].handlers;
+ var i;
+
+ for (i = handlers.length; i > 0; i--) {
+ if (priority >= handlers[i - 1].priority) {
+ break;
+ }
+ }
+
+ if (i === handlers.length) {
+ // If append, operate via direct assignment.
+ handlers[i] = handler;
+ } else {
+ // Otherwise, insert before index via splice.
+ handlers.splice(i, 0, handler);
+ } // We may also be currently executing this hook. If the callback
+ // we're adding would come after the current callback, there's no
+ // problem; otherwise we need to increase the execution index of
+ // any other runs by 1 to account for the added element.
+
+
+ (hooks.__current || []).forEach(function (hookInfo) {
+ if (hookInfo.name === hookName && hookInfo.currentIndex >= i) {
+ hookInfo.currentIndex++;
+ }
+ });
+ } else {
+ // This is the first hook of its type.
+ hooks[hookName] = {
+ handlers: [handler],
+ runs: 0
+ };
+ }
+
+ if (hookName !== 'hookAdded') {
+ doAction('hookAdded', hookName, namespace, callback, priority);
+ }
+ };
+}
+
+/* harmony default export */ var build_module_createAddHook = (createAddHook);
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/hooks/build-module/createRemoveHook.js
+/**
+ * Internal dependencies
+ */
+
+
+
+/**
+ * Returns a function which, when invoked, will remove a specified hook or all
+ * hooks by the given name.
+ *
+ * @param {Object} hooks Stored hooks, keyed by hook name.
+ * @param {boolean} removeAll Whether to remove all callbacks for a hookName, without regard to namespace. Used to create `removeAll*` functions.
+ *
+ * @return {Function} Function that removes hooks.
+ */
+
+function createRemoveHook(hooks, removeAll) {
+ /**
+ * Removes the specified callback (or all callbacks) from the hook with a
+ * given hookName and namespace.
+ *
+ * @param {string} hookName The name of the hook to modify.
+ * @param {string} namespace The unique namespace identifying the callback in the form `vendor/plugin/function`.
+ *
+ * @return {number} The number of callbacks removed.
+ */
+ return function removeHook(hookName, namespace) {
+ if (!build_module_validateHookName(hookName)) {
+ return;
+ }
+
+ if (!removeAll && !build_module_validateNamespace(namespace)) {
+ return;
+ } // Bail if no hooks exist by this name
+
+
+ if (!hooks[hookName]) {
+ return 0;
+ }
+
+ var handlersRemoved = 0;
+
+ if (removeAll) {
+ handlersRemoved = hooks[hookName].handlers.length;
+ hooks[hookName] = {
+ runs: hooks[hookName].runs,
+ handlers: []
+ };
+ } else {
+ // Try to find the specified callback to remove.
+ var handlers = hooks[hookName].handlers;
+
+ var _loop = function _loop(i) {
+ if (handlers[i].namespace === namespace) {
+ handlers.splice(i, 1);
+ handlersRemoved++; // This callback may also be part of a hook that is
+ // currently executing. If the callback we're removing
+ // comes after the current callback, there's no problem;
+ // otherwise we need to decrease the execution index of any
+ // other runs by 1 to account for the removed element.
+
+ (hooks.__current || []).forEach(function (hookInfo) {
+ if (hookInfo.name === hookName && hookInfo.currentIndex >= i) {
+ hookInfo.currentIndex--;
+ }
+ });
+ }
+ };
+
+ for (var i = handlers.length - 1; i >= 0; i--) {
+ _loop(i);
+ }
+ }
+
+ if (hookName !== 'hookRemoved') {
+ doAction('hookRemoved', hookName, namespace);
+ }
+
+ return handlersRemoved;
+ };
+}
+
+/* harmony default export */ var build_module_createRemoveHook = (createRemoveHook);
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/hooks/build-module/createHasHook.js
+/**
+ * Returns a function which, when invoked, will return whether any handlers are
+ * attached to a particular hook.
+ *
+ * @param {Object} hooks Stored hooks, keyed by hook name.
+ *
+ * @return {Function} Function that returns whether any handlers are
+ * attached to a particular hook.
+ */
+function createHasHook(hooks) {
+ /**
+ * Returns how many handlers are attached for the given hook.
+ *
+ * @param {string} hookName The name of the hook to check for.
+ *
+ * @return {boolean} Whether there are handlers that are attached to the given hook.
+ */
+ return function hasHook(hookName) {
+ return hookName in hooks;
+ };
+}
+
+/* harmony default export */ var build_module_createHasHook = (createHasHook);
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/hooks/build-module/createRunHook.js
+/**
+ * Returns a function which, when invoked, will execute all callbacks
+ * registered to a hook of the specified type, optionally returning the final
+ * value of the call chain.
+ *
+ * @param {Object} hooks Stored hooks, keyed by hook name.
+ * @param {?boolean} returnFirstArg Whether each hook callback is expected to
+ * return its first argument.
+ *
+ * @return {Function} Function that runs hook callbacks.
+ */
+function createRunHook(hooks, returnFirstArg) {
+ /**
+ * Runs all callbacks for the specified hook.
+ *
+ * @param {string} hookName The name of the hook to run.
+ * @param {...*} args Arguments to pass to the hook callbacks.
+ *
+ * @return {*} Return value of runner, if applicable.
+ */
+ return function runHooks(hookName) {
+ if (!hooks[hookName]) {
+ hooks[hookName] = {
+ handlers: [],
+ runs: 0
+ };
+ }
+
+ hooks[hookName].runs++;
+ var handlers = hooks[hookName].handlers;
+
+ for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
+ args[_key - 1] = arguments[_key];
+ }
+
+ if (!handlers || !handlers.length) {
+ return returnFirstArg ? args[0] : undefined;
+ }
+
+ var hookInfo = {
+ name: hookName,
+ currentIndex: 0
+ };
+
+ hooks.__current.push(hookInfo);
+
+ while (hookInfo.currentIndex < handlers.length) {
+ var handler = handlers[hookInfo.currentIndex];
+ var result = handler.callback.apply(null, args);
+
+ if (returnFirstArg) {
+ args[0] = result;
+ }
+
+ hookInfo.currentIndex++;
+ }
+
+ hooks.__current.pop();
+
+ if (returnFirstArg) {
+ return args[0];
+ }
+ };
+}
+
+/* harmony default export */ var build_module_createRunHook = (createRunHook);
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/hooks/build-module/createCurrentHook.js
+/**
+ * Returns a function which, when invoked, will return the name of the
+ * currently running hook, or `null` if no hook of the given type is currently
+ * running.
+ *
+ * @param {Object} hooks Stored hooks, keyed by hook name.
+ *
+ * @return {Function} Function that returns the current hook.
+ */
+function createCurrentHook(hooks) {
+ /**
+ * Returns the name of the currently running hook, or `null` if no hook of
+ * the given type is currently running.
+ *
+ * @return {?string} The name of the currently running hook, or
+ * `null` if no hook is currently running.
+ */
+ return function currentHook() {
+ if (!hooks.__current || !hooks.__current.length) {
+ return null;
+ }
+
+ return hooks.__current[hooks.__current.length - 1].name;
+ };
+}
+
+/* harmony default export */ var build_module_createCurrentHook = (createCurrentHook);
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/hooks/build-module/createDoingHook.js
+/**
+ * Returns a function which, when invoked, will return whether a hook is
+ * currently being executed.
+ *
+ * @param {Object} hooks Stored hooks, keyed by hook name.
+ *
+ * @return {Function} Function that returns whether a hook is currently
+ * being executed.
+ */
+function createDoingHook(hooks) {
+ /**
+ * Returns whether a hook is currently being executed.
+ *
+ * @param {?string} hookName The name of the hook to check for. If
+ * omitted, will check for any hook being executed.
+ *
+ * @return {boolean} Whether the hook is being executed.
+ */
+ return function doingHook(hookName) {
+ // If the hookName was not passed, check for any current hook.
+ if ('undefined' === typeof hookName) {
+ return 'undefined' !== typeof hooks.__current[0];
+ } // Return the __current hook.
+
+
+ return hooks.__current[0] ? hookName === hooks.__current[0].name : false;
+ };
+}
+
+/* harmony default export */ var build_module_createDoingHook = (createDoingHook);
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/hooks/build-module/createDidHook.js
+/**
+ * Internal dependencies
+ */
+
+/**
+ * Returns a function which, when invoked, will return the number of times a
+ * hook has been called.
+ *
+ * @param {Object} hooks Stored hooks, keyed by hook name.
+ *
+ * @return {Function} Function that returns a hook's call count.
+ */
+
+function createDidHook(hooks) {
+ /**
+ * Returns the number of times an action has been fired.
+ *
+ * @param {string} hookName The hook name to check.
+ *
+ * @return {number} The number of times the hook has run.
+ */
+ return function didHook(hookName) {
+ if (!build_module_validateHookName(hookName)) {
+ return;
+ }
+
+ return hooks[hookName] && hooks[hookName].runs ? hooks[hookName].runs : 0;
+ };
+}
+
+/* harmony default export */ var build_module_createDidHook = (createDidHook);
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/hooks/build-module/createHooks.js
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+
+
+/**
+ * Returns an instance of the hooks object.
+ *
+ * @return {Object} Object that contains all hooks.
+ */
+
+function createHooks() {
+ var actions = Object.create(null);
+ var filters = Object.create(null);
+ actions.__current = [];
+ filters.__current = [];
+ return {
+ addAction: build_module_createAddHook(actions),
+ addFilter: build_module_createAddHook(filters),
+ removeAction: build_module_createRemoveHook(actions),
+ removeFilter: build_module_createRemoveHook(filters),
+ hasAction: build_module_createHasHook(actions),
+ hasFilter: build_module_createHasHook(filters),
+ removeAllActions: build_module_createRemoveHook(actions, true),
+ removeAllFilters: build_module_createRemoveHook(filters, true),
+ doAction: build_module_createRunHook(actions),
+ applyFilters: build_module_createRunHook(filters, true),
+ currentAction: build_module_createCurrentHook(actions),
+ currentFilter: build_module_createCurrentHook(filters),
+ doingAction: build_module_createDoingHook(actions),
+ doingFilter: build_module_createDoingHook(filters),
+ didAction: build_module_createDidHook(actions),
+ didFilter: build_module_createDidHook(filters),
+ actions: actions,
+ filters: filters
+ };
+}
+
+/* harmony default export */ var build_module_createHooks = (createHooks);
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/hooks/build-module/index.js
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addAction", function() { return addAction; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addFilter", function() { return addFilter; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeAction", function() { return removeAction; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeFilter", function() { return removeFilter; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hasAction", function() { return hasAction; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hasFilter", function() { return hasFilter; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeAllActions", function() { return removeAllActions; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeAllFilters", function() { return removeAllFilters; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "doAction", function() { return doAction; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "applyFilters", function() { return applyFilters; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "currentAction", function() { return currentAction; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "currentFilter", function() { return currentFilter; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "doingAction", function() { return doingAction; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "doingFilter", function() { return doingFilter; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "didAction", function() { return didAction; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "didFilter", function() { return didFilter; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "actions", function() { return build_module_actions; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "filters", function() { return build_module_filters; });
+/* concated harmony reexport createHooks */__webpack_require__.d(__webpack_exports__, "createHooks", function() { return build_module_createHooks; });
+/**
+ * Internal dependencies
+ */
+
+
+var _createHooks = build_module_createHooks(),
+ addAction = _createHooks.addAction,
+ addFilter = _createHooks.addFilter,
+ removeAction = _createHooks.removeAction,
+ removeFilter = _createHooks.removeFilter,
+ hasAction = _createHooks.hasAction,
+ hasFilter = _createHooks.hasFilter,
+ removeAllActions = _createHooks.removeAllActions,
+ removeAllFilters = _createHooks.removeAllFilters,
+ doAction = _createHooks.doAction,
+ applyFilters = _createHooks.applyFilters,
+ currentAction = _createHooks.currentAction,
+ currentFilter = _createHooks.currentFilter,
+ doingAction = _createHooks.doingAction,
+ doingFilter = _createHooks.doingFilter,
+ didAction = _createHooks.didAction,
+ didFilter = _createHooks.didFilter,
+ build_module_actions = _createHooks.actions,
+ build_module_filters = _createHooks.filters;
+
+
+
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/functions/kirki/packages/kirki-framework/compatibility/src/scripts/i18n.js b/functions/kirki/packages/kirki-framework/compatibility/src/scripts/i18n.js
new file mode 100644
index 0000000..6229841
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/compatibility/src/scripts/i18n.js
@@ -0,0 +1,1140 @@
+this["wp"] = this["wp"] || {}; this["wp"]["i18n"] =
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
+/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+/******/ }
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // create a fake namespace object
+/******/ // mode & 1: value is a module id, require it
+/******/ // mode & 2: merge all properties of value into the ns
+/******/ // mode & 4: return value when already ns object
+/******/ // mode & 8|1: behave like require
+/******/ __webpack_require__.t = function(value, mode) {
+/******/ if(mode & 1) value = __webpack_require__(value);
+/******/ if(mode & 8) return value;
+/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
+/******/ var ns = Object.create(null);
+/******/ __webpack_require__.r(ns);
+/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
+/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
+/******/ return ns;
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = 376);
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ 137:
+/***/ (function(module, exports, __webpack_require__) {
+
+var __WEBPACK_AMD_DEFINE_RESULT__;/* global window, exports, define */
+
+!function() {
+ 'use strict'
+
+ var re = {
+ not_string: /[^s]/,
+ not_bool: /[^t]/,
+ not_type: /[^T]/,
+ not_primitive: /[^v]/,
+ number: /[diefg]/,
+ numeric_arg: /[bcdiefguxX]/,
+ json: /[j]/,
+ not_json: /[^j]/,
+ text: /^[^\x25]+/,
+ modulo: /^\x25{2}/,
+ placeholder: /^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/,
+ key: /^([a-z_][a-z_\d]*)/i,
+ key_access: /^\.([a-z_][a-z_\d]*)/i,
+ index_access: /^\[(\d+)\]/,
+ sign: /^[+-]/
+ }
+
+ function sprintf(key) {
+ // `arguments` is not an array, but should be fine for this call
+ return sprintf_format(sprintf_parse(key), arguments)
+ }
+
+ function vsprintf(fmt, argv) {
+ return sprintf.apply(null, [fmt].concat(argv || []))
+ }
+
+ function sprintf_format(parse_tree, argv) {
+ var cursor = 1, tree_length = parse_tree.length, arg, output = '', i, k, ph, pad, pad_character, pad_length, is_positive, sign
+ for (i = 0; i < tree_length; i++) {
+ if (typeof parse_tree[i] === 'string') {
+ output += parse_tree[i]
+ }
+ else if (typeof parse_tree[i] === 'object') {
+ ph = parse_tree[i] // convenience purposes only
+ if (ph.keys) { // keyword argument
+ arg = argv[cursor]
+ for (k = 0; k < ph.keys.length; k++) {
+ if (arg == undefined) {
+ throw new Error(sprintf('[sprintf] Cannot access property "%s" of undefined value "%s"', ph.keys[k], ph.keys[k-1]))
+ }
+ arg = arg[ph.keys[k]]
+ }
+ }
+ else if (ph.param_no) { // positional argument (explicit)
+ arg = argv[ph.param_no]
+ }
+ else { // positional argument (implicit)
+ arg = argv[cursor++]
+ }
+
+ if (re.not_type.test(ph.type) && re.not_primitive.test(ph.type) && arg instanceof Function) {
+ arg = arg()
+ }
+
+ if (re.numeric_arg.test(ph.type) && (typeof arg !== 'number' && isNaN(arg))) {
+ throw new TypeError(sprintf('[sprintf] expecting number but found %T', arg))
+ }
+
+ if (re.number.test(ph.type)) {
+ is_positive = arg >= 0
+ }
+
+ switch (ph.type) {
+ case 'b':
+ arg = parseInt(arg, 10).toString(2)
+ break
+ case 'c':
+ arg = String.fromCharCode(parseInt(arg, 10))
+ break
+ case 'd':
+ case 'i':
+ arg = parseInt(arg, 10)
+ break
+ case 'j':
+ arg = JSON.stringify(arg, null, ph.width ? parseInt(ph.width) : 0)
+ break
+ case 'e':
+ arg = ph.precision ? parseFloat(arg).toExponential(ph.precision) : parseFloat(arg).toExponential()
+ break
+ case 'f':
+ arg = ph.precision ? parseFloat(arg).toFixed(ph.precision) : parseFloat(arg)
+ break
+ case 'g':
+ arg = ph.precision ? String(Number(arg.toPrecision(ph.precision))) : parseFloat(arg)
+ break
+ case 'o':
+ arg = (parseInt(arg, 10) >>> 0).toString(8)
+ break
+ case 's':
+ arg = String(arg)
+ arg = (ph.precision ? arg.substring(0, ph.precision) : arg)
+ break
+ case 't':
+ arg = String(!!arg)
+ arg = (ph.precision ? arg.substring(0, ph.precision) : arg)
+ break
+ case 'T':
+ arg = Object.prototype.toString.call(arg).slice(8, -1).toLowerCase()
+ arg = (ph.precision ? arg.substring(0, ph.precision) : arg)
+ break
+ case 'u':
+ arg = parseInt(arg, 10) >>> 0
+ break
+ case 'v':
+ arg = arg.valueOf()
+ arg = (ph.precision ? arg.substring(0, ph.precision) : arg)
+ break
+ case 'x':
+ arg = (parseInt(arg, 10) >>> 0).toString(16)
+ break
+ case 'X':
+ arg = (parseInt(arg, 10) >>> 0).toString(16).toUpperCase()
+ break
+ }
+ if (re.json.test(ph.type)) {
+ output += arg
+ }
+ else {
+ if (re.number.test(ph.type) && (!is_positive || ph.sign)) {
+ sign = is_positive ? '+' : '-'
+ arg = arg.toString().replace(re.sign, '')
+ }
+ else {
+ sign = ''
+ }
+ pad_character = ph.pad_char ? ph.pad_char === '0' ? '0' : ph.pad_char.charAt(1) : ' '
+ pad_length = ph.width - (sign + arg).length
+ pad = ph.width ? (pad_length > 0 ? pad_character.repeat(pad_length) : '') : ''
+ output += ph.align ? sign + arg + pad : (pad_character === '0' ? sign + pad + arg : pad + sign + arg)
+ }
+ }
+ }
+ return output
+ }
+
+ var sprintf_cache = Object.create(null)
+
+ function sprintf_parse(fmt) {
+ if (sprintf_cache[fmt]) {
+ return sprintf_cache[fmt]
+ }
+
+ var _fmt = fmt, match, parse_tree = [], arg_names = 0
+ while (_fmt) {
+ if ((match = re.text.exec(_fmt)) !== null) {
+ parse_tree.push(match[0])
+ }
+ else if ((match = re.modulo.exec(_fmt)) !== null) {
+ parse_tree.push('%')
+ }
+ else if ((match = re.placeholder.exec(_fmt)) !== null) {
+ if (match[2]) {
+ arg_names |= 1
+ var field_list = [], replacement_field = match[2], field_match = []
+ if ((field_match = re.key.exec(replacement_field)) !== null) {
+ field_list.push(field_match[1])
+ while ((replacement_field = replacement_field.substring(field_match[0].length)) !== '') {
+ if ((field_match = re.key_access.exec(replacement_field)) !== null) {
+ field_list.push(field_match[1])
+ }
+ else if ((field_match = re.index_access.exec(replacement_field)) !== null) {
+ field_list.push(field_match[1])
+ }
+ else {
+ throw new SyntaxError('[sprintf] failed to parse named argument key')
+ }
+ }
+ }
+ else {
+ throw new SyntaxError('[sprintf] failed to parse named argument key')
+ }
+ match[2] = field_list
+ }
+ else {
+ arg_names |= 2
+ }
+ if (arg_names === 3) {
+ throw new Error('[sprintf] mixing positional and named placeholders is not (yet) supported')
+ }
+
+ parse_tree.push(
+ {
+ placeholder: match[0],
+ param_no: match[1],
+ keys: match[2],
+ sign: match[3],
+ pad_char: match[4],
+ align: match[5],
+ width: match[6],
+ precision: match[7],
+ type: match[8]
+ }
+ )
+ }
+ else {
+ throw new SyntaxError('[sprintf] unexpected placeholder')
+ }
+ _fmt = _fmt.substring(match[0].length)
+ }
+ return sprintf_cache[fmt] = parse_tree
+ }
+
+ /**
+ * export to either browser or node.js
+ */
+ /* eslint-disable quote-props */
+ if (true) {
+ exports['sprintf'] = sprintf
+ exports['vsprintf'] = vsprintf
+ }
+ if (typeof window !== 'undefined') {
+ window['sprintf'] = sprintf
+ window['vsprintf'] = vsprintf
+
+ if (true) {
+ !(__WEBPACK_AMD_DEFINE_RESULT__ = (function() {
+ return {
+ 'sprintf': sprintf,
+ 'vsprintf': vsprintf
+ }
+ }).call(exports, __webpack_require__, exports, module),
+ __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__))
+ }
+ }
+ /* eslint-enable quote-props */
+}(); // eslint-disable-line
+
+
+/***/ }),
+
+/***/ 15:
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _defineProperty; });
+function _defineProperty(obj, key, value) {
+ if (key in obj) {
+ Object.defineProperty(obj, key, {
+ value: value,
+ enumerable: true,
+ configurable: true,
+ writable: true
+ });
+ } else {
+ obj[key] = value;
+ }
+
+ return obj;
+}
+
+/***/ }),
+
+/***/ 376:
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+
+// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/objectSpread.js
+var objectSpread = __webpack_require__(7);
+
+// CONCATENATED MODULE: ./node_modules/@tannin/postfix/index.js
+var PRECEDENCE, OPENERS, TERMINATORS, PATTERN;
+
+/**
+ * Operator precedence mapping.
+ *
+ * @type {Object}
+ */
+PRECEDENCE = {
+ '(': 9,
+ '!': 8,
+ '*': 7,
+ '/': 7,
+ '%': 7,
+ '+': 6,
+ '-': 6,
+ '<': 5,
+ '<=': 5,
+ '>': 5,
+ '>=': 5,
+ '==': 4,
+ '!=': 4,
+ '&&': 3,
+ '||': 2,
+ '?': 1,
+ '?:': 1,
+};
+
+/**
+ * Characters which signal pair opening, to be terminated by terminators.
+ *
+ * @type {string[]}
+ */
+OPENERS = [ '(', '?' ];
+
+/**
+ * Characters which signal pair termination, the value an array with the
+ * opener as its first member. The second member is an optional operator
+ * replacement to push to the stack.
+ *
+ * @type {string[]}
+ */
+TERMINATORS = {
+ ')': [ '(' ],
+ ':': [ '?', '?:' ],
+};
+
+/**
+ * Pattern matching operators and openers.
+ *
+ * @type {RegExp}
+ */
+PATTERN = /<=|>=|==|!=|&&|\|\||\?:|\(|!|\*|\/|%|\+|-|<|>|\?|\)|:/;
+
+/**
+ * Given a C expression, returns the equivalent postfix (Reverse Polish)
+ * notation terms as an array.
+ *
+ * If a postfix string is desired, simply `.join( ' ' )` the result.
+ *
+ * @example
+ *
+ * ```js
+ * import postfix from '@tannin/postfix';
+ *
+ * postfix( 'n > 1' );
+ * // ⇒ [ 'n', '1', '>' ]
+ * ```
+ *
+ * @param {string} expression C expression.
+ *
+ * @return {string[]} Postfix terms.
+ */
+function postfix( expression ) {
+ var terms = [],
+ stack = [],
+ match, operator, term, element;
+
+ while ( ( match = expression.match( PATTERN ) ) ) {
+ operator = match[ 0 ];
+
+ // Term is the string preceding the operator match. It may contain
+ // whitespace, and may be empty (if operator is at beginning).
+ term = expression.substr( 0, match.index ).trim();
+ if ( term ) {
+ terms.push( term );
+ }
+
+ while ( ( element = stack.pop() ) ) {
+ if ( TERMINATORS[ operator ] ) {
+ if ( TERMINATORS[ operator ][ 0 ] === element ) {
+ // Substitution works here under assumption that because
+ // the assigned operator will no longer be a terminator, it
+ // will be pushed to the stack during the condition below.
+ operator = TERMINATORS[ operator ][ 1 ] || operator;
+ break;
+ }
+ } else if ( OPENERS.indexOf( element ) >= 0 || PRECEDENCE[ element ] < PRECEDENCE[ operator ] ) {
+ // Push to stack if either an opener or when pop reveals an
+ // element of lower precedence.
+ stack.push( element );
+ break;
+ }
+
+ // For each popped from stack, push to terms.
+ terms.push( element );
+ }
+
+ if ( ! TERMINATORS[ operator ] ) {
+ stack.push( operator );
+ }
+
+ // Slice matched fragment from expression to continue match.
+ expression = expression.substr( match.index + operator.length );
+ }
+
+ // Push remainder of operand, if exists, to terms.
+ expression = expression.trim();
+ if ( expression ) {
+ terms.push( expression );
+ }
+
+ // Pop remaining items from stack into terms.
+ return terms.concat( stack.reverse() );
+}
+
+// CONCATENATED MODULE: ./node_modules/@tannin/evaluate/index.js
+/**
+ * Operator callback functions.
+ *
+ * @type {Object}
+ */
+var OPERATORS = {
+ '!': function( a ) {
+ return ! a;
+ },
+ '*': function( a, b ) {
+ return a * b;
+ },
+ '/': function( a, b ) {
+ return a / b;
+ },
+ '%': function( a, b ) {
+ return a % b;
+ },
+ '+': function( a, b ) {
+ return a + b;
+ },
+ '-': function( a, b ) {
+ return a - b;
+ },
+ '<': function( a, b ) {
+ return a < b;
+ },
+ '<=': function( a, b ) {
+ return a <= b;
+ },
+ '>': function( a, b ) {
+ return a > b;
+ },
+ '>=': function( a, b ) {
+ return a >= b;
+ },
+ '==': function( a, b ) {
+ return a === b;
+ },
+ '!=': function( a, b ) {
+ return a !== b;
+ },
+ '&&': function( a, b ) {
+ return a && b;
+ },
+ '||': function( a, b ) {
+ return a || b;
+ },
+ '?:': function( a, b, c ) {
+ if ( a ) {
+ throw b;
+ }
+
+ return c;
+ },
+};
+
+/**
+ * Given an array of postfix terms and operand variables, returns the result of
+ * the postfix evaluation.
+ *
+ * @example
+ *
+ * ```js
+ * import evaluate from '@tannin/evaluate';
+ *
+ * // 3 + 4 * 5 / 6 ⇒ '3 4 5 * 6 / +'
+ * const terms = [ '3', '4', '5', '*', '6', '/', '+' ];
+ *
+ * evaluate( terms, {} );
+ * // ⇒ 6.333333333333334
+ * ```
+ *
+ * @param {string[]} postfix Postfix terms.
+ * @param {Object} variables Operand variables.
+ *
+ * @return {*} Result of evaluation.
+ */
+function evaluate_evaluate( postfix, variables ) {
+ var stack = [],
+ i, j, args, getOperatorResult, term, value;
+
+ for ( i = 0; i < postfix.length; i++ ) {
+ term = postfix[ i ];
+
+ getOperatorResult = OPERATORS[ term ];
+ if ( getOperatorResult ) {
+ // Pop from stack by number of function arguments.
+ j = getOperatorResult.length;
+ args = Array( j );
+ while ( j-- ) {
+ args[ j ] = stack.pop();
+ }
+
+ try {
+ value = getOperatorResult.apply( null, args );
+ } catch ( earlyReturn ) {
+ return earlyReturn;
+ }
+ } else if ( variables.hasOwnProperty( term ) ) {
+ value = variables[ term ];
+ } else {
+ value = +term;
+ }
+
+ stack.push( value );
+ }
+
+ return stack[ 0 ];
+}
+
+// CONCATENATED MODULE: ./node_modules/@tannin/compile/index.js
+
+
+
+/**
+ * Given a C expression, returns a function which can be called to evaluate its
+ * result.
+ *
+ * @example
+ *
+ * ```js
+ * import compile from '@tannin/compile';
+ *
+ * const evaluate = compile( 'n > 1' );
+ *
+ * evaluate( { n: 2 } );
+ * // ⇒ true
+ * ```
+ *
+ * @param {string} expression C expression.
+ *
+ * @return {Function} Compiled evaluator.
+ */
+function compile( expression ) {
+ var terms = postfix( expression );
+
+ return function( variables ) {
+ return evaluate_evaluate( terms, variables );
+ };
+}
+
+// CONCATENATED MODULE: ./node_modules/@tannin/plural-forms/index.js
+
+
+/**
+ * Given a C expression, returns a function which, when called with a value,
+ * evaluates the result with the value assumed to be the "n" variable of the
+ * expression. The result will be coerced to its numeric equivalent.
+ *
+ * @param {string} expression C expression.
+ *
+ * @return {Function} Evaluator function.
+ */
+function pluralForms( expression ) {
+ var evaluate = compile( expression );
+
+ return function( n ) {
+ return +evaluate( { n: n } );
+ };
+}
+
+// CONCATENATED MODULE: ./node_modules/tannin/index.js
+
+
+/**
+ * Tannin constructor options.
+ *
+ * @property {?string} contextDelimiter Joiner in string lookup with context.
+ * @property {?Function} onMissingKey Callback to invoke when key missing.
+ *
+ * @type {Object}
+ *
+ * @typedef {TanninOptions}
+ */
+
+/**
+ * Default Tannin constructor options.
+ *
+ * @type {TanninOptions}
+ */
+var DEFAULT_OPTIONS = {
+ contextDelimiter: '\u0004',
+ onMissingKey: null,
+};
+
+/**
+ * Given a specific locale data's config `plural_forms` value, returns the
+ * expression.
+ *
+ * @example
+ *
+ * ```
+ * getPluralExpression( 'nplurals=2; plural=(n != 1);' ) === '(n != 1)'
+ * ```
+ *
+ * @param {string} pf Locale data plural forms.
+ *
+ * @return {string} Plural forms expression.
+ */
+function getPluralExpression( pf ) {
+ var parts, i, part;
+
+ parts = pf.split( ';' );
+
+ for ( i = 0; i < parts.length; i++ ) {
+ part = parts[ i ].trim();
+ if ( part.indexOf( 'plural=' ) === 0 ) {
+ return part.substr( 7 );
+ }
+ }
+}
+
+/**
+ * Tannin constructor.
+ *
+ * @param {Object} data Jed-formatted locale data.
+ * @param {TanninOptions} options Tannin options.
+ */
+function Tannin( data, options ) {
+ var key;
+
+ this.data = data;
+ this.pluralForms = {};
+
+ options = options || {};
+ this.options = {};
+ for ( key in DEFAULT_OPTIONS ) {
+ this.options[ key ] = options[ key ] || DEFAULT_OPTIONS[ key ];
+ }
+}
+
+/**
+ * Returns the plural form index for the given domain and value.
+ *
+ * @param {string} domain Domain on which to calculate plural form.
+ * @param {number} n Value for which plural form is to be calculated.
+ *
+ * @return {number} Plural form index.
+ */
+Tannin.prototype.getPluralForm = function( domain, n ) {
+ var getPluralForm = this.pluralForms[ domain ],
+ config, plural, pf;
+
+ if ( ! getPluralForm ) {
+ config = this.data[ domain ][ '' ];
+
+ pf = (
+ config[ 'Plural-Forms' ] ||
+ config[ 'plural-forms' ] ||
+ config.plural_forms
+ );
+
+ if ( typeof pf !== 'function' ) {
+ plural = getPluralExpression(
+ config[ 'Plural-Forms' ] ||
+ config[ 'plural-forms' ] ||
+ config.plural_forms
+ );
+
+ pf = pluralForms( plural );
+ }
+
+ getPluralForm = this.pluralForms[ domain ] = pf;
+ }
+
+ return getPluralForm( n );
+};
+
+/**
+ * Translate a string.
+ *
+ * @param {string} domain Translation domain.
+ * @param {string} context Context distinguishing terms of the same name.
+ * @param {string} singular Primary key for translation lookup.
+ * @param {string} plural Fallback value used for non-zero plural form index.
+ * @param {number} n Value to use in calculating plural form.
+ *
+ * @return {string} Translated string.
+ */
+Tannin.prototype.dcnpgettext = function( domain, context, singular, plural, n ) {
+ var index, key, entry;
+
+ if ( n === undefined ) {
+ // Default to singular.
+ index = 0;
+ } else {
+ // Find index by evaluating plural form for value.
+ index = this.getPluralForm( domain, n );
+ }
+
+ key = singular;
+
+ // If provided, context is prepended to key with delimiter.
+ if ( context ) {
+ key = context + this.options.contextDelimiter + singular;
+ }
+
+ entry = this.data[ domain ][ key ];
+
+ // Verify not only that entry exists, but that the intended index is within
+ // range and non-empty.
+ if ( entry && entry[ index ] ) {
+ return entry[ index ];
+ }
+
+ if ( this.options.onMissingKey ) {
+ this.options.onMissingKey( singular, domain );
+ }
+
+ // If entry not found, fall back to singular vs. plural with zero index
+ // representing the singular value.
+ return index === 0 ? singular : plural;
+};
+
+// EXTERNAL MODULE: ./node_modules/memize/index.js
+var memize = __webpack_require__(41);
+var memize_default = /*#__PURE__*/__webpack_require__.n(memize);
+
+// EXTERNAL MODULE: ./node_modules/@wordpress/i18n/node_modules/sprintf-js/src/sprintf.js
+var sprintf = __webpack_require__(137);
+var sprintf_default = /*#__PURE__*/__webpack_require__.n(sprintf);
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/i18n/build-module/index.js
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setLocaleData", function() { return setLocaleData; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__", function() { return __; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "_x", function() { return _x; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "_n", function() { return _n; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "_nx", function() { return _nx; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sprintf", function() { return build_module_sprintf; });
+
+
+/**
+ * External dependencies
+ */
+
+
+
+/**
+ * Default locale data to use for Tannin domain when not otherwise provided.
+ * Assumes an English plural forms expression.
+ *
+ * @type {Object}
+ */
+
+var DEFAULT_LOCALE_DATA = {
+ '': {
+ plural_forms: 'plural=(n!=1)'
+ }
+};
+/**
+ * Log to console, once per message; or more precisely, per referentially equal
+ * argument set. Because Jed throws errors, we log these to the console instead
+ * to avoid crashing the application.
+ *
+ * @param {...*} args Arguments to pass to `console.error`
+ */
+
+var logErrorOnce = memize_default()(console.error); // eslint-disable-line no-console
+
+/**
+ * The underlying instance of Tannin to which exported functions interface.
+ *
+ * @type {Tannin}
+ */
+
+var i18n = new Tannin({});
+/**
+ * Merges locale data into the Tannin instance by domain. Accepts data in a
+ * Jed-formatted JSON object shape.
+ *
+ * @see http://messageformat.github.io/Jed/
+ *
+ * @param {?Object} data Locale data configuration.
+ * @param {?string} domain Domain for which configuration applies.
+ */
+
+function setLocaleData(data) {
+ var domain = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default';
+ i18n.data[domain] = Object(objectSpread["a" /* default */])({}, DEFAULT_LOCALE_DATA, i18n.data[domain], data); // Populate default domain configuration (supported locale date which omits
+ // a plural forms expression).
+
+ i18n.data[domain][''] = Object(objectSpread["a" /* default */])({}, DEFAULT_LOCALE_DATA[''], i18n.data[domain]['']);
+}
+/**
+ * Wrapper for Tannin's `dcnpgettext`. Populates default locale data if not
+ * otherwise previously assigned.
+ *
+ * @param {?string} domain Domain to retrieve the translated text.
+ * @param {?string} context Context information for the translators.
+ * @param {string} single Text to translate if non-plural. Used as fallback
+ * return value on a caught error.
+ * @param {?string} plural The text to be used if the number is plural.
+ * @param {?number} number The number to compare against to use either the
+ * singular or plural form.
+ *
+ * @return {string} The translated string.
+ */
+
+function dcnpgettext() {
+ var domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default';
+ var context = arguments.length > 1 ? arguments[1] : undefined;
+ var single = arguments.length > 2 ? arguments[2] : undefined;
+ var plural = arguments.length > 3 ? arguments[3] : undefined;
+ var number = arguments.length > 4 ? arguments[4] : undefined;
+
+ if (!i18n.data[domain]) {
+ setLocaleData(undefined, domain);
+ }
+
+ return i18n.dcnpgettext(domain, context, single, plural, number);
+}
+/**
+ * Retrieve the translation of text.
+ *
+ * @see https://developer.wordpress.org/reference/functions/__/
+ *
+ * @param {string} text Text to translate.
+ * @param {?string} domain Domain to retrieve the translated text.
+ *
+ * @return {string} Translated text.
+ */
+
+
+function __(text, domain) {
+ return dcnpgettext(domain, undefined, text);
+}
+/**
+ * Retrieve translated string with gettext context.
+ *
+ * @see https://developer.wordpress.org/reference/functions/_x/
+ *
+ * @param {string} text Text to translate.
+ * @param {string} context Context information for the translators.
+ * @param {?string} domain Domain to retrieve the translated text.
+ *
+ * @return {string} Translated context string without pipe.
+ */
+
+function _x(text, context, domain) {
+ return dcnpgettext(domain, context, text);
+}
+/**
+ * Translates and retrieves the singular or plural form based on the supplied
+ * number.
+ *
+ * @see https://developer.wordpress.org/reference/functions/_n/
+ *
+ * @param {string} single The text to be used if the number is singular.
+ * @param {string} plural The text to be used if the number is plural.
+ * @param {number} number The number to compare against to use either the
+ * singular or plural form.
+ * @param {?string} domain Domain to retrieve the translated text.
+ *
+ * @return {string} The translated singular or plural form.
+ */
+
+function _n(single, plural, number, domain) {
+ return dcnpgettext(domain, undefined, single, plural, number);
+}
+/**
+ * Translates and retrieves the singular or plural form based on the supplied
+ * number, with gettext context.
+ *
+ * @see https://developer.wordpress.org/reference/functions/_nx/
+ *
+ * @param {string} single The text to be used if the number is singular.
+ * @param {string} plural The text to be used if the number is plural.
+ * @param {number} number The number to compare against to use either the
+ * singular or plural form.
+ * @param {string} context Context information for the translators.
+ * @param {?string} domain Domain to retrieve the translated text.
+ *
+ * @return {string} The translated singular or plural form.
+ */
+
+function _nx(single, plural, number, context, domain) {
+ return dcnpgettext(domain, context, single, plural, number);
+}
+/**
+ * Returns a formatted string. If an error occurs in applying the format, the
+ * original format string is returned.
+ *
+ * @param {string} format The format of the string to generate.
+ * @param {...string} args Arguments to apply to the format.
+ *
+ * @see http://www.diveintojavascript.com/projects/javascript-sprintf
+ *
+ * @return {string} The formatted string.
+ */
+
+function build_module_sprintf(format) {
+ try {
+ for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
+ args[_key - 1] = arguments[_key];
+ }
+
+ return sprintf_default.a.sprintf.apply(sprintf_default.a, [format].concat(args));
+ } catch (error) {
+ logErrorOnce('sprintf error: \n\n' + error.toString());
+ return format;
+ }
+}
+
+
+/***/ }),
+
+/***/ 41:
+/***/ (function(module, exports, __webpack_require__) {
+
+module.exports = function memize( fn, options ) {
+ var size = 0,
+ maxSize, head, tail;
+
+ if ( options && options.maxSize ) {
+ maxSize = options.maxSize;
+ }
+
+ function memoized( /* ...args */ ) {
+ var node = head,
+ len = arguments.length,
+ args, i;
+
+ searchCache: while ( node ) {
+ // Perform a shallow equality test to confirm that whether the node
+ // under test is a candidate for the arguments passed. Two arrays
+ // are shallowly equal if their length matches and each entry is
+ // strictly equal between the two sets. Avoid abstracting to a
+ // function which could incur an arguments leaking deoptimization.
+
+ // Check whether node arguments match arguments length
+ if ( node.args.length !== arguments.length ) {
+ node = node.next;
+ continue;
+ }
+
+ // Check whether node arguments match arguments values
+ for ( i = 0; i < len; i++ ) {
+ if ( node.args[ i ] !== arguments[ i ] ) {
+ node = node.next;
+ continue searchCache;
+ }
+ }
+
+ // At this point we can assume we've found a match
+
+ // Surface matched node to head if not already
+ if ( node !== head ) {
+ // As tail, shift to previous. Must only shift if not also
+ // head, since if both head and tail, there is no previous.
+ if ( node === tail ) {
+ tail = node.prev;
+ }
+
+ // Adjust siblings to point to each other. If node was tail,
+ // this also handles new tail's empty `next` assignment.
+ node.prev.next = node.next;
+ if ( node.next ) {
+ node.next.prev = node.prev;
+ }
+
+ node.next = head;
+ node.prev = null;
+ head.prev = node;
+ head = node;
+ }
+
+ // Return immediately
+ return node.val;
+ }
+
+ // No cached value found. Continue to insertion phase:
+
+ // Create a copy of arguments (avoid leaking deoptimization)
+ args = new Array( len );
+ for ( i = 0; i < len; i++ ) {
+ args[ i ] = arguments[ i ];
+ }
+
+ node = {
+ args: args,
+
+ // Generate the result from original function
+ val: fn.apply( null, args )
+ };
+
+ // Don't need to check whether node is already head, since it would
+ // have been returned above already if it was
+
+ // Shift existing head down list
+ if ( head ) {
+ head.prev = node;
+ node.next = head;
+ } else {
+ // If no head, follows that there's no tail (at initial or reset)
+ tail = node;
+ }
+
+ // Trim tail if we're reached max size and are pending cache insertion
+ if ( size === maxSize ) {
+ tail = tail.prev;
+ tail.next = null;
+ } else {
+ size++;
+ }
+
+ head = node;
+
+ return node.val;
+ }
+
+ memoized.clear = function() {
+ head = null;
+ tail = null;
+ size = 0;
+ };
+
+ if ( false ) {}
+
+ return memoized;
+};
+
+
+/***/ }),
+
+/***/ 7:
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _objectSpread; });
+/* harmony import */ var _defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15);
+
+function _objectSpread(target) {
+ for (var i = 1; i < arguments.length; i++) {
+ var source = arguments[i] != null ? arguments[i] : {};
+ var ownKeys = Object.keys(source);
+
+ if (typeof Object.getOwnPropertySymbols === 'function') {
+ ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
+ }));
+ }
+
+ ownKeys.forEach(function (key) {
+ Object(_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(target, key, source[key]);
+ });
+ }
+
+ return target;
+}
+
+/***/ })
+
+/******/ });
\ No newline at end of file
diff --git a/functions/kirki/packages/kirki-framework/compatibility/src/scripts/wp-polyfill.js b/functions/kirki/packages/kirki-framework/compatibility/src/scripts/wp-polyfill.js
new file mode 100644
index 0000000..250b921
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/compatibility/src/scripts/wp-polyfill.js
@@ -0,0 +1,6953 @@
+(function(){function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o 2 ? arguments[2] : undefined;
+ var count = Math.min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);
+ var inc = 1;
+ if (from < to && to < from + count) {
+ inc = -1;
+ from += count - 1;
+ to += count - 1;
+ }
+ while (count-- > 0) {
+ if (from in O) O[to] = O[from];
+ else delete O[to];
+ to += inc;
+ from += inc;
+ } return O;
+};
+
+},{"113":113,"117":117,"118":118}],18:[function(_dereq_,module,exports){
+// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)
+'use strict';
+var toObject = _dereq_(118);
+var toAbsoluteIndex = _dereq_(113);
+var toLength = _dereq_(117);
+module.exports = function fill(value /* , start = 0, end = @length */) {
+ var O = toObject(this);
+ var length = toLength(O.length);
+ var aLen = arguments.length;
+ var index = toAbsoluteIndex(aLen > 1 ? arguments[1] : undefined, length);
+ var end = aLen > 2 ? arguments[2] : undefined;
+ var endPos = end === undefined ? length : toAbsoluteIndex(end, length);
+ while (endPos > index) O[index++] = value;
+ return O;
+};
+
+},{"113":113,"117":117,"118":118}],19:[function(_dereq_,module,exports){
+// false -> Array#indexOf
+// true -> Array#includes
+var toIObject = _dereq_(116);
+var toLength = _dereq_(117);
+var toAbsoluteIndex = _dereq_(113);
+module.exports = function (IS_INCLUDES) {
+ return function ($this, el, fromIndex) {
+ var O = toIObject($this);
+ var length = toLength(O.length);
+ var index = toAbsoluteIndex(fromIndex, length);
+ var value;
+ // Array#includes uses SameValueZero equality algorithm
+ // eslint-disable-next-line no-self-compare
+ if (IS_INCLUDES && el != el) while (length > index) {
+ value = O[index++];
+ // eslint-disable-next-line no-self-compare
+ if (value != value) return true;
+ // Array#indexOf ignores holes, Array#includes - not
+ } else for (;length > index; index++) if (IS_INCLUDES || index in O) {
+ if (O[index] === el) return IS_INCLUDES || index || 0;
+ } return !IS_INCLUDES && -1;
+ };
+};
+
+},{"113":113,"116":116,"117":117}],20:[function(_dereq_,module,exports){
+// 0 -> Array#forEach
+// 1 -> Array#map
+// 2 -> Array#filter
+// 3 -> Array#some
+// 4 -> Array#every
+// 5 -> Array#find
+// 6 -> Array#findIndex
+var ctx = _dereq_(32);
+var IObject = _dereq_(53);
+var toObject = _dereq_(118);
+var toLength = _dereq_(117);
+var asc = _dereq_(23);
+module.exports = function (TYPE, $create) {
+ var IS_MAP = TYPE == 1;
+ var IS_FILTER = TYPE == 2;
+ var IS_SOME = TYPE == 3;
+ var IS_EVERY = TYPE == 4;
+ var IS_FIND_INDEX = TYPE == 6;
+ var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
+ var create = $create || asc;
+ return function ($this, callbackfn, that) {
+ var O = toObject($this);
+ var self = IObject(O);
+ var f = ctx(callbackfn, that, 3);
+ var length = toLength(self.length);
+ var index = 0;
+ var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;
+ var val, res;
+ for (;length > index; index++) if (NO_HOLES || index in self) {
+ val = self[index];
+ res = f(val, index, O);
+ if (TYPE) {
+ if (IS_MAP) result[index] = res; // map
+ else if (res) switch (TYPE) {
+ case 3: return true; // some
+ case 5: return val; // find
+ case 6: return index; // findIndex
+ case 2: result.push(val); // filter
+ } else if (IS_EVERY) return false; // every
+ }
+ }
+ return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;
+ };
+};
+
+},{"117":117,"118":118,"23":23,"32":32,"53":53}],21:[function(_dereq_,module,exports){
+var aFunction = _dereq_(11);
+var toObject = _dereq_(118);
+var IObject = _dereq_(53);
+var toLength = _dereq_(117);
+
+module.exports = function (that, callbackfn, aLen, memo, isRight) {
+ aFunction(callbackfn);
+ var O = toObject(that);
+ var self = IObject(O);
+ var length = toLength(O.length);
+ var index = isRight ? length - 1 : 0;
+ var i = isRight ? -1 : 1;
+ if (aLen < 2) for (;;) {
+ if (index in self) {
+ memo = self[index];
+ index += i;
+ break;
+ }
+ index += i;
+ if (isRight ? index < 0 : length <= index) {
+ throw TypeError('Reduce of empty array with no initial value');
+ }
+ }
+ for (;isRight ? index >= 0 : length > index; index += i) if (index in self) {
+ memo = callbackfn(memo, self[index], index, O);
+ }
+ return memo;
+};
+
+},{"11":11,"117":117,"118":118,"53":53}],22:[function(_dereq_,module,exports){
+var isObject = _dereq_(57);
+var isArray = _dereq_(55);
+var SPECIES = _dereq_(128)('species');
+
+module.exports = function (original) {
+ var C;
+ if (isArray(original)) {
+ C = original.constructor;
+ // cross-realm fallback
+ if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;
+ if (isObject(C)) {
+ C = C[SPECIES];
+ if (C === null) C = undefined;
+ }
+ } return C === undefined ? Array : C;
+};
+
+},{"128":128,"55":55,"57":57}],23:[function(_dereq_,module,exports){
+// 9.4.2.3 ArraySpeciesCreate(originalArray, length)
+var speciesConstructor = _dereq_(22);
+
+module.exports = function (original, length) {
+ return new (speciesConstructor(original))(length);
+};
+
+},{"22":22}],24:[function(_dereq_,module,exports){
+'use strict';
+var aFunction = _dereq_(11);
+var isObject = _dereq_(57);
+var invoke = _dereq_(52);
+var arraySlice = [].slice;
+var factories = {};
+
+var construct = function (F, len, args) {
+ if (!(len in factories)) {
+ for (var n = [], i = 0; i < len; i++) n[i] = 'a[' + i + ']';
+ // eslint-disable-next-line no-new-func
+ factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')');
+ } return factories[len](F, args);
+};
+
+module.exports = Function.bind || function bind(that /* , ...args */) {
+ var fn = aFunction(this);
+ var partArgs = arraySlice.call(arguments, 1);
+ var bound = function (/* args... */) {
+ var args = partArgs.concat(arraySlice.call(arguments));
+ return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that);
+ };
+ if (isObject(fn.prototype)) bound.prototype = fn.prototype;
+ return bound;
+};
+
+},{"11":11,"52":52,"57":57}],25:[function(_dereq_,module,exports){
+// getting tag from 19.1.3.6 Object.prototype.toString()
+var cof = _dereq_(26);
+var TAG = _dereq_(128)('toStringTag');
+// ES3 wrong here
+var ARG = cof(function () { return arguments; }()) == 'Arguments';
+
+// fallback for IE11 Script Access Denied error
+var tryGet = function (it, key) {
+ try {
+ return it[key];
+ } catch (e) { /* empty */ }
+};
+
+module.exports = function (it) {
+ var O, T, B;
+ return it === undefined ? 'Undefined' : it === null ? 'Null'
+ // @@toStringTag case
+ : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T
+ // builtinTag case
+ : ARG ? cof(O)
+ // ES3 arguments fallback
+ : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;
+};
+
+},{"128":128,"26":26}],26:[function(_dereq_,module,exports){
+var toString = {}.toString;
+
+module.exports = function (it) {
+ return toString.call(it).slice(8, -1);
+};
+
+},{}],27:[function(_dereq_,module,exports){
+'use strict';
+var dP = _dereq_(75).f;
+var create = _dereq_(74);
+var redefineAll = _dereq_(93);
+var ctx = _dereq_(32);
+var anInstance = _dereq_(15);
+var forOf = _dereq_(45);
+var $iterDefine = _dereq_(61);
+var step = _dereq_(63);
+var setSpecies = _dereq_(99);
+var DESCRIPTORS = _dereq_(36);
+var fastKey = _dereq_(70).fastKey;
+var validate = _dereq_(125);
+var SIZE = DESCRIPTORS ? '_s' : 'size';
+
+var getEntry = function (that, key) {
+ // fast case
+ var index = fastKey(key);
+ var entry;
+ if (index !== 'F') return that._i[index];
+ // frozen object case
+ for (entry = that._f; entry; entry = entry.n) {
+ if (entry.k == key) return entry;
+ }
+};
+
+module.exports = {
+ getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {
+ var C = wrapper(function (that, iterable) {
+ anInstance(that, C, NAME, '_i');
+ that._t = NAME; // collection type
+ that._i = create(null); // index
+ that._f = undefined; // first entry
+ that._l = undefined; // last entry
+ that[SIZE] = 0; // size
+ if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);
+ });
+ redefineAll(C.prototype, {
+ // 23.1.3.1 Map.prototype.clear()
+ // 23.2.3.2 Set.prototype.clear()
+ clear: function clear() {
+ for (var that = validate(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) {
+ entry.r = true;
+ if (entry.p) entry.p = entry.p.n = undefined;
+ delete data[entry.i];
+ }
+ that._f = that._l = undefined;
+ that[SIZE] = 0;
+ },
+ // 23.1.3.3 Map.prototype.delete(key)
+ // 23.2.3.4 Set.prototype.delete(value)
+ 'delete': function (key) {
+ var that = validate(this, NAME);
+ var entry = getEntry(that, key);
+ if (entry) {
+ var next = entry.n;
+ var prev = entry.p;
+ delete that._i[entry.i];
+ entry.r = true;
+ if (prev) prev.n = next;
+ if (next) next.p = prev;
+ if (that._f == entry) that._f = next;
+ if (that._l == entry) that._l = prev;
+ that[SIZE]--;
+ } return !!entry;
+ },
+ // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)
+ // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)
+ forEach: function forEach(callbackfn /* , that = undefined */) {
+ validate(this, NAME);
+ var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);
+ var entry;
+ while (entry = entry ? entry.n : this._f) {
+ f(entry.v, entry.k, this);
+ // revert to the last existing entry
+ while (entry && entry.r) entry = entry.p;
+ }
+ },
+ // 23.1.3.7 Map.prototype.has(key)
+ // 23.2.3.7 Set.prototype.has(value)
+ has: function has(key) {
+ return !!getEntry(validate(this, NAME), key);
+ }
+ });
+ if (DESCRIPTORS) dP(C.prototype, 'size', {
+ get: function () {
+ return validate(this, NAME)[SIZE];
+ }
+ });
+ return C;
+ },
+ def: function (that, key, value) {
+ var entry = getEntry(that, key);
+ var prev, index;
+ // change existing entry
+ if (entry) {
+ entry.v = value;
+ // create new entry
+ } else {
+ that._l = entry = {
+ i: index = fastKey(key, true), // <- index
+ k: key, // <- key
+ v: value, // <- value
+ p: prev = that._l, // <- previous entry
+ n: undefined, // <- next entry
+ r: false // <- removed
+ };
+ if (!that._f) that._f = entry;
+ if (prev) prev.n = entry;
+ that[SIZE]++;
+ // add to index
+ if (index !== 'F') that._i[index] = entry;
+ } return that;
+ },
+ getEntry: getEntry,
+ setStrong: function (C, NAME, IS_MAP) {
+ // add .keys, .values, .entries, [@@iterator]
+ // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11
+ $iterDefine(C, NAME, function (iterated, kind) {
+ this._t = validate(iterated, NAME); // target
+ this._k = kind; // kind
+ this._l = undefined; // previous
+ }, function () {
+ var that = this;
+ var kind = that._k;
+ var entry = that._l;
+ // revert to the last existing entry
+ while (entry && entry.r) entry = entry.p;
+ // get next entry
+ if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) {
+ // or finish the iteration
+ that._t = undefined;
+ return step(1);
+ }
+ // return step by kind
+ if (kind == 'keys') return step(0, entry.k);
+ if (kind == 'values') return step(0, entry.v);
+ return step(0, [entry.k, entry.v]);
+ }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);
+
+ // add [@@species], 23.1.2.2, 23.2.2.2
+ setSpecies(NAME);
+ }
+};
+
+},{"125":125,"15":15,"32":32,"36":36,"45":45,"61":61,"63":63,"70":70,"74":74,"75":75,"93":93,"99":99}],28:[function(_dereq_,module,exports){
+'use strict';
+var redefineAll = _dereq_(93);
+var getWeak = _dereq_(70).getWeak;
+var anObject = _dereq_(16);
+var isObject = _dereq_(57);
+var anInstance = _dereq_(15);
+var forOf = _dereq_(45);
+var createArrayMethod = _dereq_(20);
+var $has = _dereq_(47);
+var validate = _dereq_(125);
+var arrayFind = createArrayMethod(5);
+var arrayFindIndex = createArrayMethod(6);
+var id = 0;
+
+// fallback for uncaught frozen keys
+var uncaughtFrozenStore = function (that) {
+ return that._l || (that._l = new UncaughtFrozenStore());
+};
+var UncaughtFrozenStore = function () {
+ this.a = [];
+};
+var findUncaughtFrozen = function (store, key) {
+ return arrayFind(store.a, function (it) {
+ return it[0] === key;
+ });
+};
+UncaughtFrozenStore.prototype = {
+ get: function (key) {
+ var entry = findUncaughtFrozen(this, key);
+ if (entry) return entry[1];
+ },
+ has: function (key) {
+ return !!findUncaughtFrozen(this, key);
+ },
+ set: function (key, value) {
+ var entry = findUncaughtFrozen(this, key);
+ if (entry) entry[1] = value;
+ else this.a.push([key, value]);
+ },
+ 'delete': function (key) {
+ var index = arrayFindIndex(this.a, function (it) {
+ return it[0] === key;
+ });
+ if (~index) this.a.splice(index, 1);
+ return !!~index;
+ }
+};
+
+module.exports = {
+ getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {
+ var C = wrapper(function (that, iterable) {
+ anInstance(that, C, NAME, '_i');
+ that._t = NAME; // collection type
+ that._i = id++; // collection id
+ that._l = undefined; // leak store for uncaught frozen objects
+ if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);
+ });
+ redefineAll(C.prototype, {
+ // 23.3.3.2 WeakMap.prototype.delete(key)
+ // 23.4.3.3 WeakSet.prototype.delete(value)
+ 'delete': function (key) {
+ if (!isObject(key)) return false;
+ var data = getWeak(key);
+ if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key);
+ return data && $has(data, this._i) && delete data[this._i];
+ },
+ // 23.3.3.4 WeakMap.prototype.has(key)
+ // 23.4.3.4 WeakSet.prototype.has(value)
+ has: function has(key) {
+ if (!isObject(key)) return false;
+ var data = getWeak(key);
+ if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key);
+ return data && $has(data, this._i);
+ }
+ });
+ return C;
+ },
+ def: function (that, key, value) {
+ var data = getWeak(anObject(key), true);
+ if (data === true) uncaughtFrozenStore(that).set(key, value);
+ else data[that._i] = value;
+ return that;
+ },
+ ufstore: uncaughtFrozenStore
+};
+
+},{"125":125,"15":15,"16":16,"20":20,"45":45,"47":47,"57":57,"70":70,"93":93}],29:[function(_dereq_,module,exports){
+'use strict';
+var global = _dereq_(46);
+var $export = _dereq_(40);
+var redefine = _dereq_(94);
+var redefineAll = _dereq_(93);
+var meta = _dereq_(70);
+var forOf = _dereq_(45);
+var anInstance = _dereq_(15);
+var isObject = _dereq_(57);
+var fails = _dereq_(42);
+var $iterDetect = _dereq_(62);
+var setToStringTag = _dereq_(100);
+var inheritIfRequired = _dereq_(51);
+
+module.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {
+ var Base = global[NAME];
+ var C = Base;
+ var ADDER = IS_MAP ? 'set' : 'add';
+ var proto = C && C.prototype;
+ var O = {};
+ var fixMethod = function (KEY) {
+ var fn = proto[KEY];
+ redefine(proto, KEY,
+ KEY == 'delete' ? function (a) {
+ return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);
+ } : KEY == 'has' ? function has(a) {
+ return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);
+ } : KEY == 'get' ? function get(a) {
+ return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a);
+ } : KEY == 'add' ? function add(a) { fn.call(this, a === 0 ? 0 : a); return this; }
+ : function set(a, b) { fn.call(this, a === 0 ? 0 : a, b); return this; }
+ );
+ };
+ if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {
+ new C().entries().next();
+ }))) {
+ // create collection constructor
+ C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);
+ redefineAll(C.prototype, methods);
+ meta.NEED = true;
+ } else {
+ var instance = new C();
+ // early implementations not supports chaining
+ var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;
+ // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false
+ var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });
+ // most early implementations doesn't supports iterables, most modern - not close it correctly
+ var ACCEPT_ITERABLES = $iterDetect(function (iter) { new C(iter); }); // eslint-disable-line no-new
+ // for early implementations -0 and +0 not the same
+ var BUGGY_ZERO = !IS_WEAK && fails(function () {
+ // V8 ~ Chromium 42- fails only with 5+ elements
+ var $instance = new C();
+ var index = 5;
+ while (index--) $instance[ADDER](index, index);
+ return !$instance.has(-0);
+ });
+ if (!ACCEPT_ITERABLES) {
+ C = wrapper(function (target, iterable) {
+ anInstance(target, C, NAME);
+ var that = inheritIfRequired(new Base(), target, C);
+ if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);
+ return that;
+ });
+ C.prototype = proto;
+ proto.constructor = C;
+ }
+ if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {
+ fixMethod('delete');
+ fixMethod('has');
+ IS_MAP && fixMethod('get');
+ }
+ if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);
+ // weak collections should not contains .clear method
+ if (IS_WEAK && proto.clear) delete proto.clear;
+ }
+
+ setToStringTag(C, NAME);
+
+ O[NAME] = C;
+ $export($export.G + $export.W + $export.F * (C != Base), O);
+
+ if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);
+
+ return C;
+};
+
+},{"100":100,"15":15,"40":40,"42":42,"45":45,"46":46,"51":51,"57":57,"62":62,"70":70,"93":93,"94":94}],30:[function(_dereq_,module,exports){
+var core = module.exports = { version: '2.6.1' };
+if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef
+
+},{}],31:[function(_dereq_,module,exports){
+'use strict';
+var $defineProperty = _dereq_(75);
+var createDesc = _dereq_(92);
+
+module.exports = function (object, index, value) {
+ if (index in object) $defineProperty.f(object, index, createDesc(0, value));
+ else object[index] = value;
+};
+
+},{"75":75,"92":92}],32:[function(_dereq_,module,exports){
+// optional / simple context binding
+var aFunction = _dereq_(11);
+module.exports = function (fn, that, length) {
+ aFunction(fn);
+ if (that === undefined) return fn;
+ switch (length) {
+ case 1: return function (a) {
+ return fn.call(that, a);
+ };
+ case 2: return function (a, b) {
+ return fn.call(that, a, b);
+ };
+ case 3: return function (a, b, c) {
+ return fn.call(that, a, b, c);
+ };
+ }
+ return function (/* ...args */) {
+ return fn.apply(that, arguments);
+ };
+};
+
+},{"11":11}],33:[function(_dereq_,module,exports){
+'use strict';
+// 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString()
+var fails = _dereq_(42);
+var getTime = Date.prototype.getTime;
+var $toISOString = Date.prototype.toISOString;
+
+var lz = function (num) {
+ return num > 9 ? num : '0' + num;
+};
+
+// PhantomJS / old WebKit has a broken implementations
+module.exports = (fails(function () {
+ return $toISOString.call(new Date(-5e13 - 1)) != '0385-07-25T07:06:39.999Z';
+}) || !fails(function () {
+ $toISOString.call(new Date(NaN));
+})) ? function toISOString() {
+ if (!isFinite(getTime.call(this))) throw RangeError('Invalid time value');
+ var d = this;
+ var y = d.getUTCFullYear();
+ var m = d.getUTCMilliseconds();
+ var s = y < 0 ? '-' : y > 9999 ? '+' : '';
+ return s + ('00000' + Math.abs(y)).slice(s ? -6 : -4) +
+ '-' + lz(d.getUTCMonth() + 1) + '-' + lz(d.getUTCDate()) +
+ 'T' + lz(d.getUTCHours()) + ':' + lz(d.getUTCMinutes()) +
+ ':' + lz(d.getUTCSeconds()) + '.' + (m > 99 ? m : '0' + lz(m)) + 'Z';
+} : $toISOString;
+
+},{"42":42}],34:[function(_dereq_,module,exports){
+'use strict';
+var anObject = _dereq_(16);
+var toPrimitive = _dereq_(119);
+var NUMBER = 'number';
+
+module.exports = function (hint) {
+ if (hint !== 'string' && hint !== NUMBER && hint !== 'default') throw TypeError('Incorrect hint');
+ return toPrimitive(anObject(this), hint != NUMBER);
+};
+
+},{"119":119,"16":16}],35:[function(_dereq_,module,exports){
+// 7.2.1 RequireObjectCoercible(argument)
+module.exports = function (it) {
+ if (it == undefined) throw TypeError("Can't call method on " + it);
+ return it;
+};
+
+},{}],36:[function(_dereq_,module,exports){
+// Thank's IE8 for his funny defineProperty
+module.exports = !_dereq_(42)(function () {
+ return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;
+});
+
+},{"42":42}],37:[function(_dereq_,module,exports){
+var isObject = _dereq_(57);
+var document = _dereq_(46).document;
+// typeof document.createElement is 'object' in old IE
+var is = isObject(document) && isObject(document.createElement);
+module.exports = function (it) {
+ return is ? document.createElement(it) : {};
+};
+
+},{"46":46,"57":57}],38:[function(_dereq_,module,exports){
+// IE 8- don't enum bug keys
+module.exports = (
+ 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'
+).split(',');
+
+},{}],39:[function(_dereq_,module,exports){
+// all enumerable object keys, includes symbols
+var getKeys = _dereq_(83);
+var gOPS = _dereq_(80);
+var pIE = _dereq_(84);
+module.exports = function (it) {
+ var result = getKeys(it);
+ var getSymbols = gOPS.f;
+ if (getSymbols) {
+ var symbols = getSymbols(it);
+ var isEnum = pIE.f;
+ var i = 0;
+ var key;
+ while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);
+ } return result;
+};
+
+},{"80":80,"83":83,"84":84}],40:[function(_dereq_,module,exports){
+var global = _dereq_(46);
+var core = _dereq_(30);
+var hide = _dereq_(48);
+var redefine = _dereq_(94);
+var ctx = _dereq_(32);
+var PROTOTYPE = 'prototype';
+
+var $export = function (type, name, source) {
+ var IS_FORCED = type & $export.F;
+ var IS_GLOBAL = type & $export.G;
+ var IS_STATIC = type & $export.S;
+ var IS_PROTO = type & $export.P;
+ var IS_BIND = type & $export.B;
+ var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];
+ var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});
+ var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});
+ var key, own, out, exp;
+ if (IS_GLOBAL) source = name;
+ for (key in source) {
+ // contains in native
+ own = !IS_FORCED && target && target[key] !== undefined;
+ // export native or passed
+ out = (own ? target : source)[key];
+ // bind timers to global for call from export context
+ exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
+ // extend global
+ if (target) redefine(target, key, out, type & $export.U);
+ // export
+ if (exports[key] != out) hide(exports, key, exp);
+ if (IS_PROTO && expProto[key] != out) expProto[key] = out;
+ }
+};
+global.core = core;
+// type bitmap
+$export.F = 1; // forced
+$export.G = 2; // global
+$export.S = 4; // static
+$export.P = 8; // proto
+$export.B = 16; // bind
+$export.W = 32; // wrap
+$export.U = 64; // safe
+$export.R = 128; // real proto method for `library`
+module.exports = $export;
+
+},{"30":30,"32":32,"46":46,"48":48,"94":94}],41:[function(_dereq_,module,exports){
+var MATCH = _dereq_(128)('match');
+module.exports = function (KEY) {
+ var re = /./;
+ try {
+ '/./'[KEY](re);
+ } catch (e) {
+ try {
+ re[MATCH] = false;
+ return !'/./'[KEY](re);
+ } catch (f) { /* empty */ }
+ } return true;
+};
+
+},{"128":128}],42:[function(_dereq_,module,exports){
+module.exports = function (exec) {
+ try {
+ return !!exec();
+ } catch (e) {
+ return true;
+ }
+};
+
+},{}],43:[function(_dereq_,module,exports){
+'use strict';
+_dereq_(224);
+var redefine = _dereq_(94);
+var hide = _dereq_(48);
+var fails = _dereq_(42);
+var defined = _dereq_(35);
+var wks = _dereq_(128);
+var regexpExec = _dereq_(96);
+
+var SPECIES = wks('species');
+
+var REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {
+ // #replace needs built-in support for named groups.
+ // #match works fine because it just return the exec results, even if it has
+ // a "grops" property.
+ var re = /./;
+ re.exec = function () {
+ var result = [];
+ result.groups = { a: '7' };
+ return result;
+ };
+ return ''.replace(re, '$') !== '7';
+});
+
+var SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = (function () {
+ // Chrome 51 has a buggy "split" implementation when RegExp#exec !== nativeExec
+ var re = /(?:)/;
+ var originalExec = re.exec;
+ re.exec = function () { return originalExec.apply(this, arguments); };
+ var result = 'ab'.split(re);
+ return result.length === 2 && result[0] === 'a' && result[1] === 'b';
+})();
+
+module.exports = function (KEY, length, exec) {
+ var SYMBOL = wks(KEY);
+
+ var DELEGATES_TO_SYMBOL = !fails(function () {
+ // String methods call symbol-named RegEp methods
+ var O = {};
+ O[SYMBOL] = function () { return 7; };
+ return ''[KEY](O) != 7;
+ });
+
+ var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL ? !fails(function () {
+ // Symbol-named RegExp methods call .exec
+ var execCalled = false;
+ var re = /a/;
+ re.exec = function () { execCalled = true; return null; };
+ if (KEY === 'split') {
+ // RegExp[@@split] doesn't call the regex's exec method, but first creates
+ // a new one. We need to return the patched regex when creating the new one.
+ re.constructor = {};
+ re.constructor[SPECIES] = function () { return re; };
+ }
+ re[SYMBOL]('');
+ return !execCalled;
+ }) : undefined;
+
+ if (
+ !DELEGATES_TO_SYMBOL ||
+ !DELEGATES_TO_EXEC ||
+ (KEY === 'replace' && !REPLACE_SUPPORTS_NAMED_GROUPS) ||
+ (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)
+ ) {
+ var nativeRegExpMethod = /./[SYMBOL];
+ var fns = exec(
+ defined,
+ SYMBOL,
+ ''[KEY],
+ function maybeCallNative(nativeMethod, regexp, str, arg2, forceStringMethod) {
+ if (regexp.exec === regexpExec) {
+ if (DELEGATES_TO_SYMBOL && !forceStringMethod) {
+ // The native String method already delegates to @@method (this
+ // polyfilled function), leasing to infinite recursion.
+ // We avoid it by directly calling the native @@method method.
+ return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };
+ }
+ return { done: true, value: nativeMethod.call(str, regexp, arg2) };
+ }
+ return { done: false };
+ }
+ );
+ var strfn = fns[0];
+ var rxfn = fns[1];
+
+ redefine(String.prototype, KEY, strfn);
+ hide(RegExp.prototype, SYMBOL, length == 2
+ // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)
+ // 21.2.5.11 RegExp.prototype[@@split](string, limit)
+ ? function (string, arg) { return rxfn.call(string, this, arg); }
+ // 21.2.5.6 RegExp.prototype[@@match](string)
+ // 21.2.5.9 RegExp.prototype[@@search](string)
+ : function (string) { return rxfn.call(string, this); }
+ );
+ }
+};
+
+},{"128":128,"224":224,"35":35,"42":42,"48":48,"94":94,"96":96}],44:[function(_dereq_,module,exports){
+'use strict';
+// 21.2.5.3 get RegExp.prototype.flags
+var anObject = _dereq_(16);
+module.exports = function () {
+ var that = anObject(this);
+ var result = '';
+ if (that.global) result += 'g';
+ if (that.ignoreCase) result += 'i';
+ if (that.multiline) result += 'm';
+ if (that.unicode) result += 'u';
+ if (that.sticky) result += 'y';
+ return result;
+};
+
+},{"16":16}],45:[function(_dereq_,module,exports){
+var ctx = _dereq_(32);
+var call = _dereq_(59);
+var isArrayIter = _dereq_(54);
+var anObject = _dereq_(16);
+var toLength = _dereq_(117);
+var getIterFn = _dereq_(129);
+var BREAK = {};
+var RETURN = {};
+var exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {
+ var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);
+ var f = ctx(fn, that, entries ? 2 : 1);
+ var index = 0;
+ var length, step, iterator, result;
+ if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');
+ // fast case for arrays with default iterator
+ if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {
+ result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);
+ if (result === BREAK || result === RETURN) return result;
+ } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {
+ result = call(iterator, f, step.value, entries);
+ if (result === BREAK || result === RETURN) return result;
+ }
+};
+exports.BREAK = BREAK;
+exports.RETURN = RETURN;
+
+},{"117":117,"129":129,"16":16,"32":32,"54":54,"59":59}],46:[function(_dereq_,module,exports){
+// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
+var global = module.exports = typeof window != 'undefined' && window.Math == Math
+ ? window : typeof self != 'undefined' && self.Math == Math ? self
+ // eslint-disable-next-line no-new-func
+ : Function('return this')();
+if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef
+
+},{}],47:[function(_dereq_,module,exports){
+var hasOwnProperty = {}.hasOwnProperty;
+module.exports = function (it, key) {
+ return hasOwnProperty.call(it, key);
+};
+
+},{}],48:[function(_dereq_,module,exports){
+var dP = _dereq_(75);
+var createDesc = _dereq_(92);
+module.exports = _dereq_(36) ? function (object, key, value) {
+ return dP.f(object, key, createDesc(1, value));
+} : function (object, key, value) {
+ object[key] = value;
+ return object;
+};
+
+},{"36":36,"75":75,"92":92}],49:[function(_dereq_,module,exports){
+var document = _dereq_(46).document;
+module.exports = document && document.documentElement;
+
+},{"46":46}],50:[function(_dereq_,module,exports){
+module.exports = !_dereq_(36) && !_dereq_(42)(function () {
+ return Object.defineProperty(_dereq_(37)('div'), 'a', { get: function () { return 7; } }).a != 7;
+});
+
+},{"36":36,"37":37,"42":42}],51:[function(_dereq_,module,exports){
+var isObject = _dereq_(57);
+var setPrototypeOf = _dereq_(98).set;
+module.exports = function (that, target, C) {
+ var S = target.constructor;
+ var P;
+ if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) {
+ setPrototypeOf(that, P);
+ } return that;
+};
+
+},{"57":57,"98":98}],52:[function(_dereq_,module,exports){
+// fast apply, http://jsperf.lnkit.com/fast-apply/5
+module.exports = function (fn, args, that) {
+ var un = that === undefined;
+ switch (args.length) {
+ case 0: return un ? fn()
+ : fn.call(that);
+ case 1: return un ? fn(args[0])
+ : fn.call(that, args[0]);
+ case 2: return un ? fn(args[0], args[1])
+ : fn.call(that, args[0], args[1]);
+ case 3: return un ? fn(args[0], args[1], args[2])
+ : fn.call(that, args[0], args[1], args[2]);
+ case 4: return un ? fn(args[0], args[1], args[2], args[3])
+ : fn.call(that, args[0], args[1], args[2], args[3]);
+ } return fn.apply(that, args);
+};
+
+},{}],53:[function(_dereq_,module,exports){
+// fallback for non-array-like ES3 and non-enumerable old V8 strings
+var cof = _dereq_(26);
+// eslint-disable-next-line no-prototype-builtins
+module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {
+ return cof(it) == 'String' ? it.split('') : Object(it);
+};
+
+},{"26":26}],54:[function(_dereq_,module,exports){
+// check on default Array iterator
+var Iterators = _dereq_(64);
+var ITERATOR = _dereq_(128)('iterator');
+var ArrayProto = Array.prototype;
+
+module.exports = function (it) {
+ return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);
+};
+
+},{"128":128,"64":64}],55:[function(_dereq_,module,exports){
+// 7.2.2 IsArray(argument)
+var cof = _dereq_(26);
+module.exports = Array.isArray || function isArray(arg) {
+ return cof(arg) == 'Array';
+};
+
+},{"26":26}],56:[function(_dereq_,module,exports){
+// 20.1.2.3 Number.isInteger(number)
+var isObject = _dereq_(57);
+var floor = Math.floor;
+module.exports = function isInteger(it) {
+ return !isObject(it) && isFinite(it) && floor(it) === it;
+};
+
+},{"57":57}],57:[function(_dereq_,module,exports){
+module.exports = function (it) {
+ return typeof it === 'object' ? it !== null : typeof it === 'function';
+};
+
+},{}],58:[function(_dereq_,module,exports){
+// 7.2.8 IsRegExp(argument)
+var isObject = _dereq_(57);
+var cof = _dereq_(26);
+var MATCH = _dereq_(128)('match');
+module.exports = function (it) {
+ var isRegExp;
+ return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');
+};
+
+},{"128":128,"26":26,"57":57}],59:[function(_dereq_,module,exports){
+// call something on iterator step with safe closing on error
+var anObject = _dereq_(16);
+module.exports = function (iterator, fn, value, entries) {
+ try {
+ return entries ? fn(anObject(value)[0], value[1]) : fn(value);
+ // 7.4.6 IteratorClose(iterator, completion)
+ } catch (e) {
+ var ret = iterator['return'];
+ if (ret !== undefined) anObject(ret.call(iterator));
+ throw e;
+ }
+};
+
+},{"16":16}],60:[function(_dereq_,module,exports){
+'use strict';
+var create = _dereq_(74);
+var descriptor = _dereq_(92);
+var setToStringTag = _dereq_(100);
+var IteratorPrototype = {};
+
+// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
+_dereq_(48)(IteratorPrototype, _dereq_(128)('iterator'), function () { return this; });
+
+module.exports = function (Constructor, NAME, next) {
+ Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });
+ setToStringTag(Constructor, NAME + ' Iterator');
+};
+
+},{"100":100,"128":128,"48":48,"74":74,"92":92}],61:[function(_dereq_,module,exports){
+'use strict';
+var LIBRARY = _dereq_(65);
+var $export = _dereq_(40);
+var redefine = _dereq_(94);
+var hide = _dereq_(48);
+var Iterators = _dereq_(64);
+var $iterCreate = _dereq_(60);
+var setToStringTag = _dereq_(100);
+var getPrototypeOf = _dereq_(81);
+var ITERATOR = _dereq_(128)('iterator');
+var BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`
+var FF_ITERATOR = '@@iterator';
+var KEYS = 'keys';
+var VALUES = 'values';
+
+var returnThis = function () { return this; };
+
+module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {
+ $iterCreate(Constructor, NAME, next);
+ var getMethod = function (kind) {
+ if (!BUGGY && kind in proto) return proto[kind];
+ switch (kind) {
+ case KEYS: return function keys() { return new Constructor(this, kind); };
+ case VALUES: return function values() { return new Constructor(this, kind); };
+ } return function entries() { return new Constructor(this, kind); };
+ };
+ var TAG = NAME + ' Iterator';
+ var DEF_VALUES = DEFAULT == VALUES;
+ var VALUES_BUG = false;
+ var proto = Base.prototype;
+ var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];
+ var $default = $native || getMethod(DEFAULT);
+ var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;
+ var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;
+ var methods, key, IteratorPrototype;
+ // Fix native
+ if ($anyNative) {
+ IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));
+ if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {
+ // Set @@toStringTag to native iterators
+ setToStringTag(IteratorPrototype, TAG, true);
+ // fix for some old engines
+ if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);
+ }
+ }
+ // fix Array#{values, @@iterator}.name in V8 / FF
+ if (DEF_VALUES && $native && $native.name !== VALUES) {
+ VALUES_BUG = true;
+ $default = function values() { return $native.call(this); };
+ }
+ // Define iterator
+ if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {
+ hide(proto, ITERATOR, $default);
+ }
+ // Plug for library
+ Iterators[NAME] = $default;
+ Iterators[TAG] = returnThis;
+ if (DEFAULT) {
+ methods = {
+ values: DEF_VALUES ? $default : getMethod(VALUES),
+ keys: IS_SET ? $default : getMethod(KEYS),
+ entries: $entries
+ };
+ if (FORCED) for (key in methods) {
+ if (!(key in proto)) redefine(proto, key, methods[key]);
+ } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);
+ }
+ return methods;
+};
+
+},{"100":100,"128":128,"40":40,"48":48,"60":60,"64":64,"65":65,"81":81,"94":94}],62:[function(_dereq_,module,exports){
+var ITERATOR = _dereq_(128)('iterator');
+var SAFE_CLOSING = false;
+
+try {
+ var riter = [7][ITERATOR]();
+ riter['return'] = function () { SAFE_CLOSING = true; };
+ // eslint-disable-next-line no-throw-literal
+ Array.from(riter, function () { throw 2; });
+} catch (e) { /* empty */ }
+
+module.exports = function (exec, skipClosing) {
+ if (!skipClosing && !SAFE_CLOSING) return false;
+ var safe = false;
+ try {
+ var arr = [7];
+ var iter = arr[ITERATOR]();
+ iter.next = function () { return { done: safe = true }; };
+ arr[ITERATOR] = function () { return iter; };
+ exec(arr);
+ } catch (e) { /* empty */ }
+ return safe;
+};
+
+},{"128":128}],63:[function(_dereq_,module,exports){
+module.exports = function (done, value) {
+ return { value: value, done: !!done };
+};
+
+},{}],64:[function(_dereq_,module,exports){
+module.exports = {};
+
+},{}],65:[function(_dereq_,module,exports){
+module.exports = false;
+
+},{}],66:[function(_dereq_,module,exports){
+// 20.2.2.14 Math.expm1(x)
+var $expm1 = Math.expm1;
+module.exports = (!$expm1
+ // Old FF bug
+ || $expm1(10) > 22025.465794806719 || $expm1(10) < 22025.4657948067165168
+ // Tor Browser bug
+ || $expm1(-2e-17) != -2e-17
+) ? function expm1(x) {
+ return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : Math.exp(x) - 1;
+} : $expm1;
+
+},{}],67:[function(_dereq_,module,exports){
+// 20.2.2.16 Math.fround(x)
+var sign = _dereq_(69);
+var pow = Math.pow;
+var EPSILON = pow(2, -52);
+var EPSILON32 = pow(2, -23);
+var MAX32 = pow(2, 127) * (2 - EPSILON32);
+var MIN32 = pow(2, -126);
+
+var roundTiesToEven = function (n) {
+ return n + 1 / EPSILON - 1 / EPSILON;
+};
+
+module.exports = Math.fround || function fround(x) {
+ var $abs = Math.abs(x);
+ var $sign = sign(x);
+ var a, result;
+ if ($abs < MIN32) return $sign * roundTiesToEven($abs / MIN32 / EPSILON32) * MIN32 * EPSILON32;
+ a = (1 + EPSILON32 / EPSILON) * $abs;
+ result = a - (a - $abs);
+ // eslint-disable-next-line no-self-compare
+ if (result > MAX32 || result != result) return $sign * Infinity;
+ return $sign * result;
+};
+
+},{"69":69}],68:[function(_dereq_,module,exports){
+// 20.2.2.20 Math.log1p(x)
+module.exports = Math.log1p || function log1p(x) {
+ return (x = +x) > -1e-8 && x < 1e-8 ? x - x * x / 2 : Math.log(1 + x);
+};
+
+},{}],69:[function(_dereq_,module,exports){
+// 20.2.2.28 Math.sign(x)
+module.exports = Math.sign || function sign(x) {
+ // eslint-disable-next-line no-self-compare
+ return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1;
+};
+
+},{}],70:[function(_dereq_,module,exports){
+var META = _dereq_(123)('meta');
+var isObject = _dereq_(57);
+var has = _dereq_(47);
+var setDesc = _dereq_(75).f;
+var id = 0;
+var isExtensible = Object.isExtensible || function () {
+ return true;
+};
+var FREEZE = !_dereq_(42)(function () {
+ return isExtensible(Object.preventExtensions({}));
+});
+var setMeta = function (it) {
+ setDesc(it, META, { value: {
+ i: 'O' + ++id, // object ID
+ w: {} // weak collections IDs
+ } });
+};
+var fastKey = function (it, create) {
+ // return primitive with prefix
+ if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;
+ if (!has(it, META)) {
+ // can't set metadata to uncaught frozen object
+ if (!isExtensible(it)) return 'F';
+ // not necessary to add metadata
+ if (!create) return 'E';
+ // add missing metadata
+ setMeta(it);
+ // return object ID
+ } return it[META].i;
+};
+var getWeak = function (it, create) {
+ if (!has(it, META)) {
+ // can't set metadata to uncaught frozen object
+ if (!isExtensible(it)) return true;
+ // not necessary to add metadata
+ if (!create) return false;
+ // add missing metadata
+ setMeta(it);
+ // return hash weak collections IDs
+ } return it[META].w;
+};
+// add metadata on freeze-family methods calling
+var onFreeze = function (it) {
+ if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);
+ return it;
+};
+var meta = module.exports = {
+ KEY: META,
+ NEED: false,
+ fastKey: fastKey,
+ getWeak: getWeak,
+ onFreeze: onFreeze
+};
+
+},{"123":123,"42":42,"47":47,"57":57,"75":75}],71:[function(_dereq_,module,exports){
+var global = _dereq_(46);
+var macrotask = _dereq_(112).set;
+var Observer = global.MutationObserver || global.WebKitMutationObserver;
+var process = global.process;
+var Promise = global.Promise;
+var isNode = _dereq_(26)(process) == 'process';
+
+module.exports = function () {
+ var head, last, notify;
+
+ var flush = function () {
+ var parent, fn;
+ if (isNode && (parent = process.domain)) parent.exit();
+ while (head) {
+ fn = head.fn;
+ head = head.next;
+ try {
+ fn();
+ } catch (e) {
+ if (head) notify();
+ else last = undefined;
+ throw e;
+ }
+ } last = undefined;
+ if (parent) parent.enter();
+ };
+
+ // Node.js
+ if (isNode) {
+ notify = function () {
+ process.nextTick(flush);
+ };
+ // browsers with MutationObserver, except iOS Safari - https://github.com/zloirock/core-js/issues/339
+ } else if (Observer && !(global.navigator && global.navigator.standalone)) {
+ var toggle = true;
+ var node = document.createTextNode('');
+ new Observer(flush).observe(node, { characterData: true }); // eslint-disable-line no-new
+ notify = function () {
+ node.data = toggle = !toggle;
+ };
+ // environments with maybe non-completely correct, but existent Promise
+ } else if (Promise && Promise.resolve) {
+ // Promise.resolve without an argument throws an error in LG WebOS 2
+ var promise = Promise.resolve(undefined);
+ notify = function () {
+ promise.then(flush);
+ };
+ // for other environments - macrotask based on:
+ // - setImmediate
+ // - MessageChannel
+ // - window.postMessag
+ // - onreadystatechange
+ // - setTimeout
+ } else {
+ notify = function () {
+ // strange IE + webpack dev server bug - use .call(global)
+ macrotask.call(global, flush);
+ };
+ }
+
+ return function (fn) {
+ var task = { fn: fn, next: undefined };
+ if (last) last.next = task;
+ if (!head) {
+ head = task;
+ notify();
+ } last = task;
+ };
+};
+
+},{"112":112,"26":26,"46":46}],72:[function(_dereq_,module,exports){
+'use strict';
+// 25.4.1.5 NewPromiseCapability(C)
+var aFunction = _dereq_(11);
+
+function PromiseCapability(C) {
+ var resolve, reject;
+ this.promise = new C(function ($$resolve, $$reject) {
+ if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');
+ resolve = $$resolve;
+ reject = $$reject;
+ });
+ this.resolve = aFunction(resolve);
+ this.reject = aFunction(reject);
+}
+
+module.exports.f = function (C) {
+ return new PromiseCapability(C);
+};
+
+},{"11":11}],73:[function(_dereq_,module,exports){
+'use strict';
+// 19.1.2.1 Object.assign(target, source, ...)
+var getKeys = _dereq_(83);
+var gOPS = _dereq_(80);
+var pIE = _dereq_(84);
+var toObject = _dereq_(118);
+var IObject = _dereq_(53);
+var $assign = Object.assign;
+
+// should work with symbols and should have deterministic property order (V8 bug)
+module.exports = !$assign || _dereq_(42)(function () {
+ var A = {};
+ var B = {};
+ // eslint-disable-next-line no-undef
+ var S = Symbol();
+ var K = 'abcdefghijklmnopqrst';
+ A[S] = 7;
+ K.split('').forEach(function (k) { B[k] = k; });
+ return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;
+}) ? function assign(target, source) { // eslint-disable-line no-unused-vars
+ var T = toObject(target);
+ var aLen = arguments.length;
+ var index = 1;
+ var getSymbols = gOPS.f;
+ var isEnum = pIE.f;
+ while (aLen > index) {
+ var S = IObject(arguments[index++]);
+ var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);
+ var length = keys.length;
+ var j = 0;
+ var key;
+ while (length > j) if (isEnum.call(S, key = keys[j++])) T[key] = S[key];
+ } return T;
+} : $assign;
+
+},{"118":118,"42":42,"53":53,"80":80,"83":83,"84":84}],74:[function(_dereq_,module,exports){
+// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
+var anObject = _dereq_(16);
+var dPs = _dereq_(76);
+var enumBugKeys = _dereq_(38);
+var IE_PROTO = _dereq_(101)('IE_PROTO');
+var Empty = function () { /* empty */ };
+var PROTOTYPE = 'prototype';
+
+// Create object with fake `null` prototype: use iframe Object with cleared prototype
+var createDict = function () {
+ // Thrash, waste and sodomy: IE GC bug
+ var iframe = _dereq_(37)('iframe');
+ var i = enumBugKeys.length;
+ var lt = '<';
+ var gt = '>';
+ var iframeDocument;
+ iframe.style.display = 'none';
+ _dereq_(49).appendChild(iframe);
+ iframe.src = 'javascript:'; // eslint-disable-line no-script-url
+ // createDict = iframe.contentWindow.Object;
+ // html.removeChild(iframe);
+ iframeDocument = iframe.contentWindow.document;
+ iframeDocument.open();
+ iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);
+ iframeDocument.close();
+ createDict = iframeDocument.F;
+ while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];
+ return createDict();
+};
+
+module.exports = Object.create || function create(O, Properties) {
+ var result;
+ if (O !== null) {
+ Empty[PROTOTYPE] = anObject(O);
+ result = new Empty();
+ Empty[PROTOTYPE] = null;
+ // add "__proto__" for Object.getPrototypeOf polyfill
+ result[IE_PROTO] = O;
+ } else result = createDict();
+ return Properties === undefined ? result : dPs(result, Properties);
+};
+
+},{"101":101,"16":16,"37":37,"38":38,"49":49,"76":76}],75:[function(_dereq_,module,exports){
+var anObject = _dereq_(16);
+var IE8_DOM_DEFINE = _dereq_(50);
+var toPrimitive = _dereq_(119);
+var dP = Object.defineProperty;
+
+exports.f = _dereq_(36) ? Object.defineProperty : function defineProperty(O, P, Attributes) {
+ anObject(O);
+ P = toPrimitive(P, true);
+ anObject(Attributes);
+ if (IE8_DOM_DEFINE) try {
+ return dP(O, P, Attributes);
+ } catch (e) { /* empty */ }
+ if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');
+ if ('value' in Attributes) O[P] = Attributes.value;
+ return O;
+};
+
+},{"119":119,"16":16,"36":36,"50":50}],76:[function(_dereq_,module,exports){
+var dP = _dereq_(75);
+var anObject = _dereq_(16);
+var getKeys = _dereq_(83);
+
+module.exports = _dereq_(36) ? Object.defineProperties : function defineProperties(O, Properties) {
+ anObject(O);
+ var keys = getKeys(Properties);
+ var length = keys.length;
+ var i = 0;
+ var P;
+ while (length > i) dP.f(O, P = keys[i++], Properties[P]);
+ return O;
+};
+
+},{"16":16,"36":36,"75":75,"83":83}],77:[function(_dereq_,module,exports){
+var pIE = _dereq_(84);
+var createDesc = _dereq_(92);
+var toIObject = _dereq_(116);
+var toPrimitive = _dereq_(119);
+var has = _dereq_(47);
+var IE8_DOM_DEFINE = _dereq_(50);
+var gOPD = Object.getOwnPropertyDescriptor;
+
+exports.f = _dereq_(36) ? gOPD : function getOwnPropertyDescriptor(O, P) {
+ O = toIObject(O);
+ P = toPrimitive(P, true);
+ if (IE8_DOM_DEFINE) try {
+ return gOPD(O, P);
+ } catch (e) { /* empty */ }
+ if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);
+};
+
+},{"116":116,"119":119,"36":36,"47":47,"50":50,"84":84,"92":92}],78:[function(_dereq_,module,exports){
+// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window
+var toIObject = _dereq_(116);
+var gOPN = _dereq_(79).f;
+var toString = {}.toString;
+
+var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames
+ ? Object.getOwnPropertyNames(window) : [];
+
+var getWindowNames = function (it) {
+ try {
+ return gOPN(it);
+ } catch (e) {
+ return windowNames.slice();
+ }
+};
+
+module.exports.f = function getOwnPropertyNames(it) {
+ return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));
+};
+
+},{"116":116,"79":79}],79:[function(_dereq_,module,exports){
+// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)
+var $keys = _dereq_(82);
+var hiddenKeys = _dereq_(38).concat('length', 'prototype');
+
+exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
+ return $keys(O, hiddenKeys);
+};
+
+},{"38":38,"82":82}],80:[function(_dereq_,module,exports){
+exports.f = Object.getOwnPropertySymbols;
+
+},{}],81:[function(_dereq_,module,exports){
+// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)
+var has = _dereq_(47);
+var toObject = _dereq_(118);
+var IE_PROTO = _dereq_(101)('IE_PROTO');
+var ObjectProto = Object.prototype;
+
+module.exports = Object.getPrototypeOf || function (O) {
+ O = toObject(O);
+ if (has(O, IE_PROTO)) return O[IE_PROTO];
+ if (typeof O.constructor == 'function' && O instanceof O.constructor) {
+ return O.constructor.prototype;
+ } return O instanceof Object ? ObjectProto : null;
+};
+
+},{"101":101,"118":118,"47":47}],82:[function(_dereq_,module,exports){
+var has = _dereq_(47);
+var toIObject = _dereq_(116);
+var arrayIndexOf = _dereq_(19)(false);
+var IE_PROTO = _dereq_(101)('IE_PROTO');
+
+module.exports = function (object, names) {
+ var O = toIObject(object);
+ var i = 0;
+ var result = [];
+ var key;
+ for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);
+ // Don't enum bug & hidden keys
+ while (names.length > i) if (has(O, key = names[i++])) {
+ ~arrayIndexOf(result, key) || result.push(key);
+ }
+ return result;
+};
+
+},{"101":101,"116":116,"19":19,"47":47}],83:[function(_dereq_,module,exports){
+// 19.1.2.14 / 15.2.3.14 Object.keys(O)
+var $keys = _dereq_(82);
+var enumBugKeys = _dereq_(38);
+
+module.exports = Object.keys || function keys(O) {
+ return $keys(O, enumBugKeys);
+};
+
+},{"38":38,"82":82}],84:[function(_dereq_,module,exports){
+exports.f = {}.propertyIsEnumerable;
+
+},{}],85:[function(_dereq_,module,exports){
+// most Object methods by ES6 should accept primitives
+var $export = _dereq_(40);
+var core = _dereq_(30);
+var fails = _dereq_(42);
+module.exports = function (KEY, exec) {
+ var fn = (core.Object || {})[KEY] || Object[KEY];
+ var exp = {};
+ exp[KEY] = exec(fn);
+ $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);
+};
+
+},{"30":30,"40":40,"42":42}],86:[function(_dereq_,module,exports){
+var getKeys = _dereq_(83);
+var toIObject = _dereq_(116);
+var isEnum = _dereq_(84).f;
+module.exports = function (isEntries) {
+ return function (it) {
+ var O = toIObject(it);
+ var keys = getKeys(O);
+ var length = keys.length;
+ var i = 0;
+ var result = [];
+ var key;
+ while (length > i) if (isEnum.call(O, key = keys[i++])) {
+ result.push(isEntries ? [key, O[key]] : O[key]);
+ } return result;
+ };
+};
+
+},{"116":116,"83":83,"84":84}],87:[function(_dereq_,module,exports){
+// all object keys, includes non-enumerable and symbols
+var gOPN = _dereq_(79);
+var gOPS = _dereq_(80);
+var anObject = _dereq_(16);
+var Reflect = _dereq_(46).Reflect;
+module.exports = Reflect && Reflect.ownKeys || function ownKeys(it) {
+ var keys = gOPN.f(anObject(it));
+ var getSymbols = gOPS.f;
+ return getSymbols ? keys.concat(getSymbols(it)) : keys;
+};
+
+},{"16":16,"46":46,"79":79,"80":80}],88:[function(_dereq_,module,exports){
+var $parseFloat = _dereq_(46).parseFloat;
+var $trim = _dereq_(110).trim;
+
+module.exports = 1 / $parseFloat(_dereq_(111) + '-0') !== -Infinity ? function parseFloat(str) {
+ var string = $trim(String(str), 3);
+ var result = $parseFloat(string);
+ return result === 0 && string.charAt(0) == '-' ? -0 : result;
+} : $parseFloat;
+
+},{"110":110,"111":111,"46":46}],89:[function(_dereq_,module,exports){
+var $parseInt = _dereq_(46).parseInt;
+var $trim = _dereq_(110).trim;
+var ws = _dereq_(111);
+var hex = /^[-+]?0[xX]/;
+
+module.exports = $parseInt(ws + '08') !== 8 || $parseInt(ws + '0x16') !== 22 ? function parseInt(str, radix) {
+ var string = $trim(String(str), 3);
+ return $parseInt(string, (radix >>> 0) || (hex.test(string) ? 16 : 10));
+} : $parseInt;
+
+},{"110":110,"111":111,"46":46}],90:[function(_dereq_,module,exports){
+module.exports = function (exec) {
+ try {
+ return { e: false, v: exec() };
+ } catch (e) {
+ return { e: true, v: e };
+ }
+};
+
+},{}],91:[function(_dereq_,module,exports){
+var anObject = _dereq_(16);
+var isObject = _dereq_(57);
+var newPromiseCapability = _dereq_(72);
+
+module.exports = function (C, x) {
+ anObject(C);
+ if (isObject(x) && x.constructor === C) return x;
+ var promiseCapability = newPromiseCapability.f(C);
+ var resolve = promiseCapability.resolve;
+ resolve(x);
+ return promiseCapability.promise;
+};
+
+},{"16":16,"57":57,"72":72}],92:[function(_dereq_,module,exports){
+module.exports = function (bitmap, value) {
+ return {
+ enumerable: !(bitmap & 1),
+ configurable: !(bitmap & 2),
+ writable: !(bitmap & 4),
+ value: value
+ };
+};
+
+},{}],93:[function(_dereq_,module,exports){
+var redefine = _dereq_(94);
+module.exports = function (target, src, safe) {
+ for (var key in src) redefine(target, key, src[key], safe);
+ return target;
+};
+
+},{"94":94}],94:[function(_dereq_,module,exports){
+var global = _dereq_(46);
+var hide = _dereq_(48);
+var has = _dereq_(47);
+var SRC = _dereq_(123)('src');
+var TO_STRING = 'toString';
+var $toString = Function[TO_STRING];
+var TPL = ('' + $toString).split(TO_STRING);
+
+_dereq_(30).inspectSource = function (it) {
+ return $toString.call(it);
+};
+
+(module.exports = function (O, key, val, safe) {
+ var isFunction = typeof val == 'function';
+ if (isFunction) has(val, 'name') || hide(val, 'name', key);
+ if (O[key] === val) return;
+ if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));
+ if (O === global) {
+ O[key] = val;
+ } else if (!safe) {
+ delete O[key];
+ hide(O, key, val);
+ } else if (O[key]) {
+ O[key] = val;
+ } else {
+ hide(O, key, val);
+ }
+// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative
+})(Function.prototype, TO_STRING, function toString() {
+ return typeof this == 'function' && this[SRC] || $toString.call(this);
+});
+
+},{"123":123,"30":30,"46":46,"47":47,"48":48}],95:[function(_dereq_,module,exports){
+'use strict';
+
+var classof = _dereq_(25);
+var builtinExec = RegExp.prototype.exec;
+
+ // `RegExpExec` abstract operation
+// https://tc39.github.io/ecma262/#sec-regexpexec
+module.exports = function (R, S) {
+ var exec = R.exec;
+ if (typeof exec === 'function') {
+ var result = exec.call(R, S);
+ if (typeof result !== 'object') {
+ throw new TypeError('RegExp exec method returned something other than an Object or null');
+ }
+ return result;
+ }
+ if (classof(R) !== 'RegExp') {
+ throw new TypeError('RegExp#exec called on incompatible receiver');
+ }
+ return builtinExec.call(R, S);
+};
+
+},{"25":25}],96:[function(_dereq_,module,exports){
+'use strict';
+
+var regexpFlags = _dereq_(44);
+
+var nativeExec = RegExp.prototype.exec;
+// This always refers to the native implementation, because the
+// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,
+// which loads this file before patching the method.
+var nativeReplace = String.prototype.replace;
+
+var patchedExec = nativeExec;
+
+var LAST_INDEX = 'lastIndex';
+
+var UPDATES_LAST_INDEX_WRONG = (function () {
+ var re1 = /a/,
+ re2 = /b*/g;
+ nativeExec.call(re1, 'a');
+ nativeExec.call(re2, 'a');
+ return re1[LAST_INDEX] !== 0 || re2[LAST_INDEX] !== 0;
+})();
+
+// nonparticipating capturing group, copied from es5-shim's String#split patch.
+var NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;
+
+var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED;
+
+if (PATCH) {
+ patchedExec = function exec(str) {
+ var re = this;
+ var lastIndex, reCopy, match, i;
+
+ if (NPCG_INCLUDED) {
+ reCopy = new RegExp('^' + re.source + '$(?!\\s)', regexpFlags.call(re));
+ }
+ if (UPDATES_LAST_INDEX_WRONG) lastIndex = re[LAST_INDEX];
+
+ match = nativeExec.call(re, str);
+
+ if (UPDATES_LAST_INDEX_WRONG && match) {
+ re[LAST_INDEX] = re.global ? match.index + match[0].length : lastIndex;
+ }
+ if (NPCG_INCLUDED && match && match.length > 1) {
+ // Fix browsers whose `exec` methods don't consistently return `undefined`
+ // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/
+ // eslint-disable-next-line no-loop-func
+ nativeReplace.call(match[0], reCopy, function () {
+ for (i = 1; i < arguments.length - 2; i++) {
+ if (arguments[i] === undefined) match[i] = undefined;
+ }
+ });
+ }
+
+ return match;
+ };
+}
+
+module.exports = patchedExec;
+
+},{"44":44}],97:[function(_dereq_,module,exports){
+// 7.2.9 SameValue(x, y)
+module.exports = Object.is || function is(x, y) {
+ // eslint-disable-next-line no-self-compare
+ return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;
+};
+
+},{}],98:[function(_dereq_,module,exports){
+// Works with __proto__ only. Old v8 can't work with null proto objects.
+/* eslint-disable no-proto */
+var isObject = _dereq_(57);
+var anObject = _dereq_(16);
+var check = function (O, proto) {
+ anObject(O);
+ if (!isObject(proto) && proto !== null) throw TypeError(proto + ": can't set as prototype!");
+};
+module.exports = {
+ set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line
+ function (test, buggy, set) {
+ try {
+ set = _dereq_(32)(Function.call, _dereq_(77).f(Object.prototype, '__proto__').set, 2);
+ set(test, []);
+ buggy = !(test instanceof Array);
+ } catch (e) { buggy = true; }
+ return function setPrototypeOf(O, proto) {
+ check(O, proto);
+ if (buggy) O.__proto__ = proto;
+ else set(O, proto);
+ return O;
+ };
+ }({}, false) : undefined),
+ check: check
+};
+
+},{"16":16,"32":32,"57":57,"77":77}],99:[function(_dereq_,module,exports){
+'use strict';
+var global = _dereq_(46);
+var dP = _dereq_(75);
+var DESCRIPTORS = _dereq_(36);
+var SPECIES = _dereq_(128)('species');
+
+module.exports = function (KEY) {
+ var C = global[KEY];
+ if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {
+ configurable: true,
+ get: function () { return this; }
+ });
+};
+
+},{"128":128,"36":36,"46":46,"75":75}],100:[function(_dereq_,module,exports){
+var def = _dereq_(75).f;
+var has = _dereq_(47);
+var TAG = _dereq_(128)('toStringTag');
+
+module.exports = function (it, tag, stat) {
+ if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });
+};
+
+},{"128":128,"47":47,"75":75}],101:[function(_dereq_,module,exports){
+var shared = _dereq_(102)('keys');
+var uid = _dereq_(123);
+module.exports = function (key) {
+ return shared[key] || (shared[key] = uid(key));
+};
+
+},{"102":102,"123":123}],102:[function(_dereq_,module,exports){
+var core = _dereq_(30);
+var global = _dereq_(46);
+var SHARED = '__core-js_shared__';
+var store = global[SHARED] || (global[SHARED] = {});
+
+(module.exports = function (key, value) {
+ return store[key] || (store[key] = value !== undefined ? value : {});
+})('versions', []).push({
+ version: core.version,
+ mode: _dereq_(65) ? 'pure' : 'global',
+ copyright: '© 2018 Denis Pushkarev (zloirock.ru)'
+});
+
+},{"30":30,"46":46,"65":65}],103:[function(_dereq_,module,exports){
+// 7.3.20 SpeciesConstructor(O, defaultConstructor)
+var anObject = _dereq_(16);
+var aFunction = _dereq_(11);
+var SPECIES = _dereq_(128)('species');
+module.exports = function (O, D) {
+ var C = anObject(O).constructor;
+ var S;
+ return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);
+};
+
+},{"11":11,"128":128,"16":16}],104:[function(_dereq_,module,exports){
+'use strict';
+var fails = _dereq_(42);
+
+module.exports = function (method, arg) {
+ return !!method && fails(function () {
+ // eslint-disable-next-line no-useless-call
+ arg ? method.call(null, function () { /* empty */ }, 1) : method.call(null);
+ });
+};
+
+},{"42":42}],105:[function(_dereq_,module,exports){
+var toInteger = _dereq_(115);
+var defined = _dereq_(35);
+// true -> String#at
+// false -> String#codePointAt
+module.exports = function (TO_STRING) {
+ return function (that, pos) {
+ var s = String(defined(that));
+ var i = toInteger(pos);
+ var l = s.length;
+ var a, b;
+ if (i < 0 || i >= l) return TO_STRING ? '' : undefined;
+ a = s.charCodeAt(i);
+ return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff
+ ? TO_STRING ? s.charAt(i) : a
+ : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;
+ };
+};
+
+},{"115":115,"35":35}],106:[function(_dereq_,module,exports){
+// helper for String#{startsWith, endsWith, includes}
+var isRegExp = _dereq_(58);
+var defined = _dereq_(35);
+
+module.exports = function (that, searchString, NAME) {
+ if (isRegExp(searchString)) throw TypeError('String#' + NAME + " doesn't accept regex!");
+ return String(defined(that));
+};
+
+},{"35":35,"58":58}],107:[function(_dereq_,module,exports){
+var $export = _dereq_(40);
+var fails = _dereq_(42);
+var defined = _dereq_(35);
+var quot = /"/g;
+// B.2.3.2.1 CreateHTML(string, tag, attribute, value)
+var createHTML = function (string, tag, attribute, value) {
+ var S = String(defined(string));
+ var p1 = '<' + tag;
+ if (attribute !== '') p1 += ' ' + attribute + '="' + String(value).replace(quot, '"') + '"';
+ return p1 + '>' + S + '' + tag + '>';
+};
+module.exports = function (NAME, exec) {
+ var O = {};
+ O[NAME] = exec(createHTML);
+ $export($export.P + $export.F * fails(function () {
+ var test = ''[NAME]('"');
+ return test !== test.toLowerCase() || test.split('"').length > 3;
+ }), 'String', O);
+};
+
+},{"35":35,"40":40,"42":42}],108:[function(_dereq_,module,exports){
+// https://github.com/tc39/proposal-string-pad-start-end
+var toLength = _dereq_(117);
+var repeat = _dereq_(109);
+var defined = _dereq_(35);
+
+module.exports = function (that, maxLength, fillString, left) {
+ var S = String(defined(that));
+ var stringLength = S.length;
+ var fillStr = fillString === undefined ? ' ' : String(fillString);
+ var intMaxLength = toLength(maxLength);
+ if (intMaxLength <= stringLength || fillStr == '') return S;
+ var fillLen = intMaxLength - stringLength;
+ var stringFiller = repeat.call(fillStr, Math.ceil(fillLen / fillStr.length));
+ if (stringFiller.length > fillLen) stringFiller = stringFiller.slice(0, fillLen);
+ return left ? stringFiller + S : S + stringFiller;
+};
+
+},{"109":109,"117":117,"35":35}],109:[function(_dereq_,module,exports){
+'use strict';
+var toInteger = _dereq_(115);
+var defined = _dereq_(35);
+
+module.exports = function repeat(count) {
+ var str = String(defined(this));
+ var res = '';
+ var n = toInteger(count);
+ if (n < 0 || n == Infinity) throw RangeError("Count can't be negative");
+ for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) res += str;
+ return res;
+};
+
+},{"115":115,"35":35}],110:[function(_dereq_,module,exports){
+var $export = _dereq_(40);
+var defined = _dereq_(35);
+var fails = _dereq_(42);
+var spaces = _dereq_(111);
+var space = '[' + spaces + ']';
+var non = '\u200b\u0085';
+var ltrim = RegExp('^' + space + space + '*');
+var rtrim = RegExp(space + space + '*$');
+
+var exporter = function (KEY, exec, ALIAS) {
+ var exp = {};
+ var FORCE = fails(function () {
+ return !!spaces[KEY]() || non[KEY]() != non;
+ });
+ var fn = exp[KEY] = FORCE ? exec(trim) : spaces[KEY];
+ if (ALIAS) exp[ALIAS] = fn;
+ $export($export.P + $export.F * FORCE, 'String', exp);
+};
+
+// 1 -> String#trimLeft
+// 2 -> String#trimRight
+// 3 -> String#trim
+var trim = exporter.trim = function (string, TYPE) {
+ string = String(defined(string));
+ if (TYPE & 1) string = string.replace(ltrim, '');
+ if (TYPE & 2) string = string.replace(rtrim, '');
+ return string;
+};
+
+module.exports = exporter;
+
+},{"111":111,"35":35,"40":40,"42":42}],111:[function(_dereq_,module,exports){
+module.exports = '\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003' +
+ '\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF';
+
+},{}],112:[function(_dereq_,module,exports){
+var ctx = _dereq_(32);
+var invoke = _dereq_(52);
+var html = _dereq_(49);
+var cel = _dereq_(37);
+var global = _dereq_(46);
+var process = global.process;
+var setTask = global.setImmediate;
+var clearTask = global.clearImmediate;
+var MessageChannel = global.MessageChannel;
+var Dispatch = global.Dispatch;
+var counter = 0;
+var queue = {};
+var ONREADYSTATECHANGE = 'onreadystatechange';
+var defer, channel, port;
+var run = function () {
+ var id = +this;
+ // eslint-disable-next-line no-prototype-builtins
+ if (queue.hasOwnProperty(id)) {
+ var fn = queue[id];
+ delete queue[id];
+ fn();
+ }
+};
+var listener = function (event) {
+ run.call(event.data);
+};
+// Node.js 0.9+ & IE10+ has setImmediate, otherwise:
+if (!setTask || !clearTask) {
+ setTask = function setImmediate(fn) {
+ var args = [];
+ var i = 1;
+ while (arguments.length > i) args.push(arguments[i++]);
+ queue[++counter] = function () {
+ // eslint-disable-next-line no-new-func
+ invoke(typeof fn == 'function' ? fn : Function(fn), args);
+ };
+ defer(counter);
+ return counter;
+ };
+ clearTask = function clearImmediate(id) {
+ delete queue[id];
+ };
+ // Node.js 0.8-
+ if (_dereq_(26)(process) == 'process') {
+ defer = function (id) {
+ process.nextTick(ctx(run, id, 1));
+ };
+ // Sphere (JS game engine) Dispatch API
+ } else if (Dispatch && Dispatch.now) {
+ defer = function (id) {
+ Dispatch.now(ctx(run, id, 1));
+ };
+ // Browsers with MessageChannel, includes WebWorkers
+ } else if (MessageChannel) {
+ channel = new MessageChannel();
+ port = channel.port2;
+ channel.port1.onmessage = listener;
+ defer = ctx(port.postMessage, port, 1);
+ // Browsers with postMessage, skip WebWorkers
+ // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'
+ } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {
+ defer = function (id) {
+ global.postMessage(id + '', '*');
+ };
+ global.addEventListener('message', listener, false);
+ // IE8-
+ } else if (ONREADYSTATECHANGE in cel('script')) {
+ defer = function (id) {
+ html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {
+ html.removeChild(this);
+ run.call(id);
+ };
+ };
+ // Rest old browsers
+ } else {
+ defer = function (id) {
+ setTimeout(ctx(run, id, 1), 0);
+ };
+ }
+}
+module.exports = {
+ set: setTask,
+ clear: clearTask
+};
+
+},{"26":26,"32":32,"37":37,"46":46,"49":49,"52":52}],113:[function(_dereq_,module,exports){
+var toInteger = _dereq_(115);
+var max = Math.max;
+var min = Math.min;
+module.exports = function (index, length) {
+ index = toInteger(index);
+ return index < 0 ? max(index + length, 0) : min(index, length);
+};
+
+},{"115":115}],114:[function(_dereq_,module,exports){
+// https://tc39.github.io/ecma262/#sec-toindex
+var toInteger = _dereq_(115);
+var toLength = _dereq_(117);
+module.exports = function (it) {
+ if (it === undefined) return 0;
+ var number = toInteger(it);
+ var length = toLength(number);
+ if (number !== length) throw RangeError('Wrong length!');
+ return length;
+};
+
+},{"115":115,"117":117}],115:[function(_dereq_,module,exports){
+// 7.1.4 ToInteger
+var ceil = Math.ceil;
+var floor = Math.floor;
+module.exports = function (it) {
+ return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
+};
+
+},{}],116:[function(_dereq_,module,exports){
+// to indexed object, toObject with fallback for non-array-like ES3 strings
+var IObject = _dereq_(53);
+var defined = _dereq_(35);
+module.exports = function (it) {
+ return IObject(defined(it));
+};
+
+},{"35":35,"53":53}],117:[function(_dereq_,module,exports){
+// 7.1.15 ToLength
+var toInteger = _dereq_(115);
+var min = Math.min;
+module.exports = function (it) {
+ return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
+};
+
+},{"115":115}],118:[function(_dereq_,module,exports){
+// 7.1.13 ToObject(argument)
+var defined = _dereq_(35);
+module.exports = function (it) {
+ return Object(defined(it));
+};
+
+},{"35":35}],119:[function(_dereq_,module,exports){
+// 7.1.1 ToPrimitive(input [, PreferredType])
+var isObject = _dereq_(57);
+// instead of the ES6 spec version, we didn't implement @@toPrimitive case
+// and the second argument - flag - preferred type is a string
+module.exports = function (it, S) {
+ if (!isObject(it)) return it;
+ var fn, val;
+ if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
+ if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;
+ if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
+ throw TypeError("Can't convert object to primitive value");
+};
+
+},{"57":57}],120:[function(_dereq_,module,exports){
+'use strict';
+if (_dereq_(36)) {
+ var LIBRARY = _dereq_(65);
+ var global = _dereq_(46);
+ var fails = _dereq_(42);
+ var $export = _dereq_(40);
+ var $typed = _dereq_(122);
+ var $buffer = _dereq_(121);
+ var ctx = _dereq_(32);
+ var anInstance = _dereq_(15);
+ var propertyDesc = _dereq_(92);
+ var hide = _dereq_(48);
+ var redefineAll = _dereq_(93);
+ var toInteger = _dereq_(115);
+ var toLength = _dereq_(117);
+ var toIndex = _dereq_(114);
+ var toAbsoluteIndex = _dereq_(113);
+ var toPrimitive = _dereq_(119);
+ var has = _dereq_(47);
+ var classof = _dereq_(25);
+ var isObject = _dereq_(57);
+ var toObject = _dereq_(118);
+ var isArrayIter = _dereq_(54);
+ var create = _dereq_(74);
+ var getPrototypeOf = _dereq_(81);
+ var gOPN = _dereq_(79).f;
+ var getIterFn = _dereq_(129);
+ var uid = _dereq_(123);
+ var wks = _dereq_(128);
+ var createArrayMethod = _dereq_(20);
+ var createArrayIncludes = _dereq_(19);
+ var speciesConstructor = _dereq_(103);
+ var ArrayIterators = _dereq_(140);
+ var Iterators = _dereq_(64);
+ var $iterDetect = _dereq_(62);
+ var setSpecies = _dereq_(99);
+ var arrayFill = _dereq_(18);
+ var arrayCopyWithin = _dereq_(17);
+ var $DP = _dereq_(75);
+ var $GOPD = _dereq_(77);
+ var dP = $DP.f;
+ var gOPD = $GOPD.f;
+ var RangeError = global.RangeError;
+ var TypeError = global.TypeError;
+ var Uint8Array = global.Uint8Array;
+ var ARRAY_BUFFER = 'ArrayBuffer';
+ var SHARED_BUFFER = 'Shared' + ARRAY_BUFFER;
+ var BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT';
+ var PROTOTYPE = 'prototype';
+ var ArrayProto = Array[PROTOTYPE];
+ var $ArrayBuffer = $buffer.ArrayBuffer;
+ var $DataView = $buffer.DataView;
+ var arrayForEach = createArrayMethod(0);
+ var arrayFilter = createArrayMethod(2);
+ var arraySome = createArrayMethod(3);
+ var arrayEvery = createArrayMethod(4);
+ var arrayFind = createArrayMethod(5);
+ var arrayFindIndex = createArrayMethod(6);
+ var arrayIncludes = createArrayIncludes(true);
+ var arrayIndexOf = createArrayIncludes(false);
+ var arrayValues = ArrayIterators.values;
+ var arrayKeys = ArrayIterators.keys;
+ var arrayEntries = ArrayIterators.entries;
+ var arrayLastIndexOf = ArrayProto.lastIndexOf;
+ var arrayReduce = ArrayProto.reduce;
+ var arrayReduceRight = ArrayProto.reduceRight;
+ var arrayJoin = ArrayProto.join;
+ var arraySort = ArrayProto.sort;
+ var arraySlice = ArrayProto.slice;
+ var arrayToString = ArrayProto.toString;
+ var arrayToLocaleString = ArrayProto.toLocaleString;
+ var ITERATOR = wks('iterator');
+ var TAG = wks('toStringTag');
+ var TYPED_CONSTRUCTOR = uid('typed_constructor');
+ var DEF_CONSTRUCTOR = uid('def_constructor');
+ var ALL_CONSTRUCTORS = $typed.CONSTR;
+ var TYPED_ARRAY = $typed.TYPED;
+ var VIEW = $typed.VIEW;
+ var WRONG_LENGTH = 'Wrong length!';
+
+ var $map = createArrayMethod(1, function (O, length) {
+ return allocate(speciesConstructor(O, O[DEF_CONSTRUCTOR]), length);
+ });
+
+ var LITTLE_ENDIAN = fails(function () {
+ // eslint-disable-next-line no-undef
+ return new Uint8Array(new Uint16Array([1]).buffer)[0] === 1;
+ });
+
+ var FORCED_SET = !!Uint8Array && !!Uint8Array[PROTOTYPE].set && fails(function () {
+ new Uint8Array(1).set({});
+ });
+
+ var toOffset = function (it, BYTES) {
+ var offset = toInteger(it);
+ if (offset < 0 || offset % BYTES) throw RangeError('Wrong offset!');
+ return offset;
+ };
+
+ var validate = function (it) {
+ if (isObject(it) && TYPED_ARRAY in it) return it;
+ throw TypeError(it + ' is not a typed array!');
+ };
+
+ var allocate = function (C, length) {
+ if (!(isObject(C) && TYPED_CONSTRUCTOR in C)) {
+ throw TypeError('It is not a typed array constructor!');
+ } return new C(length);
+ };
+
+ var speciesFromList = function (O, list) {
+ return fromList(speciesConstructor(O, O[DEF_CONSTRUCTOR]), list);
+ };
+
+ var fromList = function (C, list) {
+ var index = 0;
+ var length = list.length;
+ var result = allocate(C, length);
+ while (length > index) result[index] = list[index++];
+ return result;
+ };
+
+ var addGetter = function (it, key, internal) {
+ dP(it, key, { get: function () { return this._d[internal]; } });
+ };
+
+ var $from = function from(source /* , mapfn, thisArg */) {
+ var O = toObject(source);
+ var aLen = arguments.length;
+ var mapfn = aLen > 1 ? arguments[1] : undefined;
+ var mapping = mapfn !== undefined;
+ var iterFn = getIterFn(O);
+ var i, length, values, result, step, iterator;
+ if (iterFn != undefined && !isArrayIter(iterFn)) {
+ for (iterator = iterFn.call(O), values = [], i = 0; !(step = iterator.next()).done; i++) {
+ values.push(step.value);
+ } O = values;
+ }
+ if (mapping && aLen > 2) mapfn = ctx(mapfn, arguments[2], 2);
+ for (i = 0, length = toLength(O.length), result = allocate(this, length); length > i; i++) {
+ result[i] = mapping ? mapfn(O[i], i) : O[i];
+ }
+ return result;
+ };
+
+ var $of = function of(/* ...items */) {
+ var index = 0;
+ var length = arguments.length;
+ var result = allocate(this, length);
+ while (length > index) result[index] = arguments[index++];
+ return result;
+ };
+
+ // iOS Safari 6.x fails here
+ var TO_LOCALE_BUG = !!Uint8Array && fails(function () { arrayToLocaleString.call(new Uint8Array(1)); });
+
+ var $toLocaleString = function toLocaleString() {
+ return arrayToLocaleString.apply(TO_LOCALE_BUG ? arraySlice.call(validate(this)) : validate(this), arguments);
+ };
+
+ var proto = {
+ copyWithin: function copyWithin(target, start /* , end */) {
+ return arrayCopyWithin.call(validate(this), target, start, arguments.length > 2 ? arguments[2] : undefined);
+ },
+ every: function every(callbackfn /* , thisArg */) {
+ return arrayEvery(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);
+ },
+ fill: function fill(value /* , start, end */) { // eslint-disable-line no-unused-vars
+ return arrayFill.apply(validate(this), arguments);
+ },
+ filter: function filter(callbackfn /* , thisArg */) {
+ return speciesFromList(this, arrayFilter(validate(this), callbackfn,
+ arguments.length > 1 ? arguments[1] : undefined));
+ },
+ find: function find(predicate /* , thisArg */) {
+ return arrayFind(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined);
+ },
+ findIndex: function findIndex(predicate /* , thisArg */) {
+ return arrayFindIndex(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined);
+ },
+ forEach: function forEach(callbackfn /* , thisArg */) {
+ arrayForEach(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);
+ },
+ indexOf: function indexOf(searchElement /* , fromIndex */) {
+ return arrayIndexOf(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);
+ },
+ includes: function includes(searchElement /* , fromIndex */) {
+ return arrayIncludes(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);
+ },
+ join: function join(separator) { // eslint-disable-line no-unused-vars
+ return arrayJoin.apply(validate(this), arguments);
+ },
+ lastIndexOf: function lastIndexOf(searchElement /* , fromIndex */) { // eslint-disable-line no-unused-vars
+ return arrayLastIndexOf.apply(validate(this), arguments);
+ },
+ map: function map(mapfn /* , thisArg */) {
+ return $map(validate(this), mapfn, arguments.length > 1 ? arguments[1] : undefined);
+ },
+ reduce: function reduce(callbackfn /* , initialValue */) { // eslint-disable-line no-unused-vars
+ return arrayReduce.apply(validate(this), arguments);
+ },
+ reduceRight: function reduceRight(callbackfn /* , initialValue */) { // eslint-disable-line no-unused-vars
+ return arrayReduceRight.apply(validate(this), arguments);
+ },
+ reverse: function reverse() {
+ var that = this;
+ var length = validate(that).length;
+ var middle = Math.floor(length / 2);
+ var index = 0;
+ var value;
+ while (index < middle) {
+ value = that[index];
+ that[index++] = that[--length];
+ that[length] = value;
+ } return that;
+ },
+ some: function some(callbackfn /* , thisArg */) {
+ return arraySome(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);
+ },
+ sort: function sort(comparefn) {
+ return arraySort.call(validate(this), comparefn);
+ },
+ subarray: function subarray(begin, end) {
+ var O = validate(this);
+ var length = O.length;
+ var $begin = toAbsoluteIndex(begin, length);
+ return new (speciesConstructor(O, O[DEF_CONSTRUCTOR]))(
+ O.buffer,
+ O.byteOffset + $begin * O.BYTES_PER_ELEMENT,
+ toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - $begin)
+ );
+ }
+ };
+
+ var $slice = function slice(start, end) {
+ return speciesFromList(this, arraySlice.call(validate(this), start, end));
+ };
+
+ var $set = function set(arrayLike /* , offset */) {
+ validate(this);
+ var offset = toOffset(arguments[1], 1);
+ var length = this.length;
+ var src = toObject(arrayLike);
+ var len = toLength(src.length);
+ var index = 0;
+ if (len + offset > length) throw RangeError(WRONG_LENGTH);
+ while (index < len) this[offset + index] = src[index++];
+ };
+
+ var $iterators = {
+ entries: function entries() {
+ return arrayEntries.call(validate(this));
+ },
+ keys: function keys() {
+ return arrayKeys.call(validate(this));
+ },
+ values: function values() {
+ return arrayValues.call(validate(this));
+ }
+ };
+
+ var isTAIndex = function (target, key) {
+ return isObject(target)
+ && target[TYPED_ARRAY]
+ && typeof key != 'symbol'
+ && key in target
+ && String(+key) == String(key);
+ };
+ var $getDesc = function getOwnPropertyDescriptor(target, key) {
+ return isTAIndex(target, key = toPrimitive(key, true))
+ ? propertyDesc(2, target[key])
+ : gOPD(target, key);
+ };
+ var $setDesc = function defineProperty(target, key, desc) {
+ if (isTAIndex(target, key = toPrimitive(key, true))
+ && isObject(desc)
+ && has(desc, 'value')
+ && !has(desc, 'get')
+ && !has(desc, 'set')
+ // TODO: add validation descriptor w/o calling accessors
+ && !desc.configurable
+ && (!has(desc, 'writable') || desc.writable)
+ && (!has(desc, 'enumerable') || desc.enumerable)
+ ) {
+ target[key] = desc.value;
+ return target;
+ } return dP(target, key, desc);
+ };
+
+ if (!ALL_CONSTRUCTORS) {
+ $GOPD.f = $getDesc;
+ $DP.f = $setDesc;
+ }
+
+ $export($export.S + $export.F * !ALL_CONSTRUCTORS, 'Object', {
+ getOwnPropertyDescriptor: $getDesc,
+ defineProperty: $setDesc
+ });
+
+ if (fails(function () { arrayToString.call({}); })) {
+ arrayToString = arrayToLocaleString = function toString() {
+ return arrayJoin.call(this);
+ };
+ }
+
+ var $TypedArrayPrototype$ = redefineAll({}, proto);
+ redefineAll($TypedArrayPrototype$, $iterators);
+ hide($TypedArrayPrototype$, ITERATOR, $iterators.values);
+ redefineAll($TypedArrayPrototype$, {
+ slice: $slice,
+ set: $set,
+ constructor: function () { /* noop */ },
+ toString: arrayToString,
+ toLocaleString: $toLocaleString
+ });
+ addGetter($TypedArrayPrototype$, 'buffer', 'b');
+ addGetter($TypedArrayPrototype$, 'byteOffset', 'o');
+ addGetter($TypedArrayPrototype$, 'byteLength', 'l');
+ addGetter($TypedArrayPrototype$, 'length', 'e');
+ dP($TypedArrayPrototype$, TAG, {
+ get: function () { return this[TYPED_ARRAY]; }
+ });
+
+ // eslint-disable-next-line max-statements
+ module.exports = function (KEY, BYTES, wrapper, CLAMPED) {
+ CLAMPED = !!CLAMPED;
+ var NAME = KEY + (CLAMPED ? 'Clamped' : '') + 'Array';
+ var GETTER = 'get' + KEY;
+ var SETTER = 'set' + KEY;
+ var TypedArray = global[NAME];
+ var Base = TypedArray || {};
+ var TAC = TypedArray && getPrototypeOf(TypedArray);
+ var FORCED = !TypedArray || !$typed.ABV;
+ var O = {};
+ var TypedArrayPrototype = TypedArray && TypedArray[PROTOTYPE];
+ var getter = function (that, index) {
+ var data = that._d;
+ return data.v[GETTER](index * BYTES + data.o, LITTLE_ENDIAN);
+ };
+ var setter = function (that, index, value) {
+ var data = that._d;
+ if (CLAMPED) value = (value = Math.round(value)) < 0 ? 0 : value > 0xff ? 0xff : value & 0xff;
+ data.v[SETTER](index * BYTES + data.o, value, LITTLE_ENDIAN);
+ };
+ var addElement = function (that, index) {
+ dP(that, index, {
+ get: function () {
+ return getter(this, index);
+ },
+ set: function (value) {
+ return setter(this, index, value);
+ },
+ enumerable: true
+ });
+ };
+ if (FORCED) {
+ TypedArray = wrapper(function (that, data, $offset, $length) {
+ anInstance(that, TypedArray, NAME, '_d');
+ var index = 0;
+ var offset = 0;
+ var buffer, byteLength, length, klass;
+ if (!isObject(data)) {
+ length = toIndex(data);
+ byteLength = length * BYTES;
+ buffer = new $ArrayBuffer(byteLength);
+ } else if (data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER) {
+ buffer = data;
+ offset = toOffset($offset, BYTES);
+ var $len = data.byteLength;
+ if ($length === undefined) {
+ if ($len % BYTES) throw RangeError(WRONG_LENGTH);
+ byteLength = $len - offset;
+ if (byteLength < 0) throw RangeError(WRONG_LENGTH);
+ } else {
+ byteLength = toLength($length) * BYTES;
+ if (byteLength + offset > $len) throw RangeError(WRONG_LENGTH);
+ }
+ length = byteLength / BYTES;
+ } else if (TYPED_ARRAY in data) {
+ return fromList(TypedArray, data);
+ } else {
+ return $from.call(TypedArray, data);
+ }
+ hide(that, '_d', {
+ b: buffer,
+ o: offset,
+ l: byteLength,
+ e: length,
+ v: new $DataView(buffer)
+ });
+ while (index < length) addElement(that, index++);
+ });
+ TypedArrayPrototype = TypedArray[PROTOTYPE] = create($TypedArrayPrototype$);
+ hide(TypedArrayPrototype, 'constructor', TypedArray);
+ } else if (!fails(function () {
+ TypedArray(1);
+ }) || !fails(function () {
+ new TypedArray(-1); // eslint-disable-line no-new
+ }) || !$iterDetect(function (iter) {
+ new TypedArray(); // eslint-disable-line no-new
+ new TypedArray(null); // eslint-disable-line no-new
+ new TypedArray(1.5); // eslint-disable-line no-new
+ new TypedArray(iter); // eslint-disable-line no-new
+ }, true)) {
+ TypedArray = wrapper(function (that, data, $offset, $length) {
+ anInstance(that, TypedArray, NAME);
+ var klass;
+ // `ws` module bug, temporarily remove validation length for Uint8Array
+ // https://github.com/websockets/ws/pull/645
+ if (!isObject(data)) return new Base(toIndex(data));
+ if (data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER) {
+ return $length !== undefined
+ ? new Base(data, toOffset($offset, BYTES), $length)
+ : $offset !== undefined
+ ? new Base(data, toOffset($offset, BYTES))
+ : new Base(data);
+ }
+ if (TYPED_ARRAY in data) return fromList(TypedArray, data);
+ return $from.call(TypedArray, data);
+ });
+ arrayForEach(TAC !== Function.prototype ? gOPN(Base).concat(gOPN(TAC)) : gOPN(Base), function (key) {
+ if (!(key in TypedArray)) hide(TypedArray, key, Base[key]);
+ });
+ TypedArray[PROTOTYPE] = TypedArrayPrototype;
+ if (!LIBRARY) TypedArrayPrototype.constructor = TypedArray;
+ }
+ var $nativeIterator = TypedArrayPrototype[ITERATOR];
+ var CORRECT_ITER_NAME = !!$nativeIterator
+ && ($nativeIterator.name == 'values' || $nativeIterator.name == undefined);
+ var $iterator = $iterators.values;
+ hide(TypedArray, TYPED_CONSTRUCTOR, true);
+ hide(TypedArrayPrototype, TYPED_ARRAY, NAME);
+ hide(TypedArrayPrototype, VIEW, true);
+ hide(TypedArrayPrototype, DEF_CONSTRUCTOR, TypedArray);
+
+ if (CLAMPED ? new TypedArray(1)[TAG] != NAME : !(TAG in TypedArrayPrototype)) {
+ dP(TypedArrayPrototype, TAG, {
+ get: function () { return NAME; }
+ });
+ }
+
+ O[NAME] = TypedArray;
+
+ $export($export.G + $export.W + $export.F * (TypedArray != Base), O);
+
+ $export($export.S, NAME, {
+ BYTES_PER_ELEMENT: BYTES
+ });
+
+ $export($export.S + $export.F * fails(function () { Base.of.call(TypedArray, 1); }), NAME, {
+ from: $from,
+ of: $of
+ });
+
+ if (!(BYTES_PER_ELEMENT in TypedArrayPrototype)) hide(TypedArrayPrototype, BYTES_PER_ELEMENT, BYTES);
+
+ $export($export.P, NAME, proto);
+
+ setSpecies(NAME);
+
+ $export($export.P + $export.F * FORCED_SET, NAME, { set: $set });
+
+ $export($export.P + $export.F * !CORRECT_ITER_NAME, NAME, $iterators);
+
+ if (!LIBRARY && TypedArrayPrototype.toString != arrayToString) TypedArrayPrototype.toString = arrayToString;
+
+ $export($export.P + $export.F * fails(function () {
+ new TypedArray(1).slice();
+ }), NAME, { slice: $slice });
+
+ $export($export.P + $export.F * (fails(function () {
+ return [1, 2].toLocaleString() != new TypedArray([1, 2]).toLocaleString();
+ }) || !fails(function () {
+ TypedArrayPrototype.toLocaleString.call([1, 2]);
+ })), NAME, { toLocaleString: $toLocaleString });
+
+ Iterators[NAME] = CORRECT_ITER_NAME ? $nativeIterator : $iterator;
+ if (!LIBRARY && !CORRECT_ITER_NAME) hide(TypedArrayPrototype, ITERATOR, $iterator);
+ };
+} else module.exports = function () { /* empty */ };
+
+},{"103":103,"113":113,"114":114,"115":115,"117":117,"118":118,"119":119,"121":121,"122":122,"123":123,"128":128,"129":129,"140":140,"15":15,"17":17,"18":18,"19":19,"20":20,"25":25,"32":32,"36":36,"40":40,"42":42,"46":46,"47":47,"48":48,"54":54,"57":57,"62":62,"64":64,"65":65,"74":74,"75":75,"77":77,"79":79,"81":81,"92":92,"93":93,"99":99}],121:[function(_dereq_,module,exports){
+'use strict';
+var global = _dereq_(46);
+var DESCRIPTORS = _dereq_(36);
+var LIBRARY = _dereq_(65);
+var $typed = _dereq_(122);
+var hide = _dereq_(48);
+var redefineAll = _dereq_(93);
+var fails = _dereq_(42);
+var anInstance = _dereq_(15);
+var toInteger = _dereq_(115);
+var toLength = _dereq_(117);
+var toIndex = _dereq_(114);
+var gOPN = _dereq_(79).f;
+var dP = _dereq_(75).f;
+var arrayFill = _dereq_(18);
+var setToStringTag = _dereq_(100);
+var ARRAY_BUFFER = 'ArrayBuffer';
+var DATA_VIEW = 'DataView';
+var PROTOTYPE = 'prototype';
+var WRONG_LENGTH = 'Wrong length!';
+var WRONG_INDEX = 'Wrong index!';
+var $ArrayBuffer = global[ARRAY_BUFFER];
+var $DataView = global[DATA_VIEW];
+var Math = global.Math;
+var RangeError = global.RangeError;
+// eslint-disable-next-line no-shadow-restricted-names
+var Infinity = global.Infinity;
+var BaseBuffer = $ArrayBuffer;
+var abs = Math.abs;
+var pow = Math.pow;
+var floor = Math.floor;
+var log = Math.log;
+var LN2 = Math.LN2;
+var BUFFER = 'buffer';
+var BYTE_LENGTH = 'byteLength';
+var BYTE_OFFSET = 'byteOffset';
+var $BUFFER = DESCRIPTORS ? '_b' : BUFFER;
+var $LENGTH = DESCRIPTORS ? '_l' : BYTE_LENGTH;
+var $OFFSET = DESCRIPTORS ? '_o' : BYTE_OFFSET;
+
+// IEEE754 conversions based on https://github.com/feross/ieee754
+function packIEEE754(value, mLen, nBytes) {
+ var buffer = new Array(nBytes);
+ var eLen = nBytes * 8 - mLen - 1;
+ var eMax = (1 << eLen) - 1;
+ var eBias = eMax >> 1;
+ var rt = mLen === 23 ? pow(2, -24) - pow(2, -77) : 0;
+ var i = 0;
+ var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0;
+ var e, m, c;
+ value = abs(value);
+ // eslint-disable-next-line no-self-compare
+ if (value != value || value === Infinity) {
+ // eslint-disable-next-line no-self-compare
+ m = value != value ? 1 : 0;
+ e = eMax;
+ } else {
+ e = floor(log(value) / LN2);
+ if (value * (c = pow(2, -e)) < 1) {
+ e--;
+ c *= 2;
+ }
+ if (e + eBias >= 1) {
+ value += rt / c;
+ } else {
+ value += rt * pow(2, 1 - eBias);
+ }
+ if (value * c >= 2) {
+ e++;
+ c /= 2;
+ }
+ if (e + eBias >= eMax) {
+ m = 0;
+ e = eMax;
+ } else if (e + eBias >= 1) {
+ m = (value * c - 1) * pow(2, mLen);
+ e = e + eBias;
+ } else {
+ m = value * pow(2, eBias - 1) * pow(2, mLen);
+ e = 0;
+ }
+ }
+ for (; mLen >= 8; buffer[i++] = m & 255, m /= 256, mLen -= 8);
+ e = e << mLen | m;
+ eLen += mLen;
+ for (; eLen > 0; buffer[i++] = e & 255, e /= 256, eLen -= 8);
+ buffer[--i] |= s * 128;
+ return buffer;
+}
+function unpackIEEE754(buffer, mLen, nBytes) {
+ var eLen = nBytes * 8 - mLen - 1;
+ var eMax = (1 << eLen) - 1;
+ var eBias = eMax >> 1;
+ var nBits = eLen - 7;
+ var i = nBytes - 1;
+ var s = buffer[i--];
+ var e = s & 127;
+ var m;
+ s >>= 7;
+ for (; nBits > 0; e = e * 256 + buffer[i], i--, nBits -= 8);
+ m = e & (1 << -nBits) - 1;
+ e >>= -nBits;
+ nBits += mLen;
+ for (; nBits > 0; m = m * 256 + buffer[i], i--, nBits -= 8);
+ if (e === 0) {
+ e = 1 - eBias;
+ } else if (e === eMax) {
+ return m ? NaN : s ? -Infinity : Infinity;
+ } else {
+ m = m + pow(2, mLen);
+ e = e - eBias;
+ } return (s ? -1 : 1) * m * pow(2, e - mLen);
+}
+
+function unpackI32(bytes) {
+ return bytes[3] << 24 | bytes[2] << 16 | bytes[1] << 8 | bytes[0];
+}
+function packI8(it) {
+ return [it & 0xff];
+}
+function packI16(it) {
+ return [it & 0xff, it >> 8 & 0xff];
+}
+function packI32(it) {
+ return [it & 0xff, it >> 8 & 0xff, it >> 16 & 0xff, it >> 24 & 0xff];
+}
+function packF64(it) {
+ return packIEEE754(it, 52, 8);
+}
+function packF32(it) {
+ return packIEEE754(it, 23, 4);
+}
+
+function addGetter(C, key, internal) {
+ dP(C[PROTOTYPE], key, { get: function () { return this[internal]; } });
+}
+
+function get(view, bytes, index, isLittleEndian) {
+ var numIndex = +index;
+ var intIndex = toIndex(numIndex);
+ if (intIndex + bytes > view[$LENGTH]) throw RangeError(WRONG_INDEX);
+ var store = view[$BUFFER]._b;
+ var start = intIndex + view[$OFFSET];
+ var pack = store.slice(start, start + bytes);
+ return isLittleEndian ? pack : pack.reverse();
+}
+function set(view, bytes, index, conversion, value, isLittleEndian) {
+ var numIndex = +index;
+ var intIndex = toIndex(numIndex);
+ if (intIndex + bytes > view[$LENGTH]) throw RangeError(WRONG_INDEX);
+ var store = view[$BUFFER]._b;
+ var start = intIndex + view[$OFFSET];
+ var pack = conversion(+value);
+ for (var i = 0; i < bytes; i++) store[start + i] = pack[isLittleEndian ? i : bytes - i - 1];
+}
+
+if (!$typed.ABV) {
+ $ArrayBuffer = function ArrayBuffer(length) {
+ anInstance(this, $ArrayBuffer, ARRAY_BUFFER);
+ var byteLength = toIndex(length);
+ this._b = arrayFill.call(new Array(byteLength), 0);
+ this[$LENGTH] = byteLength;
+ };
+
+ $DataView = function DataView(buffer, byteOffset, byteLength) {
+ anInstance(this, $DataView, DATA_VIEW);
+ anInstance(buffer, $ArrayBuffer, DATA_VIEW);
+ var bufferLength = buffer[$LENGTH];
+ var offset = toInteger(byteOffset);
+ if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset!');
+ byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);
+ if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH);
+ this[$BUFFER] = buffer;
+ this[$OFFSET] = offset;
+ this[$LENGTH] = byteLength;
+ };
+
+ if (DESCRIPTORS) {
+ addGetter($ArrayBuffer, BYTE_LENGTH, '_l');
+ addGetter($DataView, BUFFER, '_b');
+ addGetter($DataView, BYTE_LENGTH, '_l');
+ addGetter($DataView, BYTE_OFFSET, '_o');
+ }
+
+ redefineAll($DataView[PROTOTYPE], {
+ getInt8: function getInt8(byteOffset) {
+ return get(this, 1, byteOffset)[0] << 24 >> 24;
+ },
+ getUint8: function getUint8(byteOffset) {
+ return get(this, 1, byteOffset)[0];
+ },
+ getInt16: function getInt16(byteOffset /* , littleEndian */) {
+ var bytes = get(this, 2, byteOffset, arguments[1]);
+ return (bytes[1] << 8 | bytes[0]) << 16 >> 16;
+ },
+ getUint16: function getUint16(byteOffset /* , littleEndian */) {
+ var bytes = get(this, 2, byteOffset, arguments[1]);
+ return bytes[1] << 8 | bytes[0];
+ },
+ getInt32: function getInt32(byteOffset /* , littleEndian */) {
+ return unpackI32(get(this, 4, byteOffset, arguments[1]));
+ },
+ getUint32: function getUint32(byteOffset /* , littleEndian */) {
+ return unpackI32(get(this, 4, byteOffset, arguments[1])) >>> 0;
+ },
+ getFloat32: function getFloat32(byteOffset /* , littleEndian */) {
+ return unpackIEEE754(get(this, 4, byteOffset, arguments[1]), 23, 4);
+ },
+ getFloat64: function getFloat64(byteOffset /* , littleEndian */) {
+ return unpackIEEE754(get(this, 8, byteOffset, arguments[1]), 52, 8);
+ },
+ setInt8: function setInt8(byteOffset, value) {
+ set(this, 1, byteOffset, packI8, value);
+ },
+ setUint8: function setUint8(byteOffset, value) {
+ set(this, 1, byteOffset, packI8, value);
+ },
+ setInt16: function setInt16(byteOffset, value /* , littleEndian */) {
+ set(this, 2, byteOffset, packI16, value, arguments[2]);
+ },
+ setUint16: function setUint16(byteOffset, value /* , littleEndian */) {
+ set(this, 2, byteOffset, packI16, value, arguments[2]);
+ },
+ setInt32: function setInt32(byteOffset, value /* , littleEndian */) {
+ set(this, 4, byteOffset, packI32, value, arguments[2]);
+ },
+ setUint32: function setUint32(byteOffset, value /* , littleEndian */) {
+ set(this, 4, byteOffset, packI32, value, arguments[2]);
+ },
+ setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) {
+ set(this, 4, byteOffset, packF32, value, arguments[2]);
+ },
+ setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) {
+ set(this, 8, byteOffset, packF64, value, arguments[2]);
+ }
+ });
+} else {
+ if (!fails(function () {
+ $ArrayBuffer(1);
+ }) || !fails(function () {
+ new $ArrayBuffer(-1); // eslint-disable-line no-new
+ }) || fails(function () {
+ new $ArrayBuffer(); // eslint-disable-line no-new
+ new $ArrayBuffer(1.5); // eslint-disable-line no-new
+ new $ArrayBuffer(NaN); // eslint-disable-line no-new
+ return $ArrayBuffer.name != ARRAY_BUFFER;
+ })) {
+ $ArrayBuffer = function ArrayBuffer(length) {
+ anInstance(this, $ArrayBuffer);
+ return new BaseBuffer(toIndex(length));
+ };
+ var ArrayBufferProto = $ArrayBuffer[PROTOTYPE] = BaseBuffer[PROTOTYPE];
+ for (var keys = gOPN(BaseBuffer), j = 0, key; keys.length > j;) {
+ if (!((key = keys[j++]) in $ArrayBuffer)) hide($ArrayBuffer, key, BaseBuffer[key]);
+ }
+ if (!LIBRARY) ArrayBufferProto.constructor = $ArrayBuffer;
+ }
+ // iOS Safari 7.x bug
+ var view = new $DataView(new $ArrayBuffer(2));
+ var $setInt8 = $DataView[PROTOTYPE].setInt8;
+ view.setInt8(0, 2147483648);
+ view.setInt8(1, 2147483649);
+ if (view.getInt8(0) || !view.getInt8(1)) redefineAll($DataView[PROTOTYPE], {
+ setInt8: function setInt8(byteOffset, value) {
+ $setInt8.call(this, byteOffset, value << 24 >> 24);
+ },
+ setUint8: function setUint8(byteOffset, value) {
+ $setInt8.call(this, byteOffset, value << 24 >> 24);
+ }
+ }, true);
+}
+setToStringTag($ArrayBuffer, ARRAY_BUFFER);
+setToStringTag($DataView, DATA_VIEW);
+hide($DataView[PROTOTYPE], $typed.VIEW, true);
+exports[ARRAY_BUFFER] = $ArrayBuffer;
+exports[DATA_VIEW] = $DataView;
+
+},{"100":100,"114":114,"115":115,"117":117,"122":122,"15":15,"18":18,"36":36,"42":42,"46":46,"48":48,"65":65,"75":75,"79":79,"93":93}],122:[function(_dereq_,module,exports){
+var global = _dereq_(46);
+var hide = _dereq_(48);
+var uid = _dereq_(123);
+var TYPED = uid('typed_array');
+var VIEW = uid('view');
+var ABV = !!(global.ArrayBuffer && global.DataView);
+var CONSTR = ABV;
+var i = 0;
+var l = 9;
+var Typed;
+
+var TypedArrayConstructors = (
+ 'Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array'
+).split(',');
+
+while (i < l) {
+ if (Typed = global[TypedArrayConstructors[i++]]) {
+ hide(Typed.prototype, TYPED, true);
+ hide(Typed.prototype, VIEW, true);
+ } else CONSTR = false;
+}
+
+module.exports = {
+ ABV: ABV,
+ CONSTR: CONSTR,
+ TYPED: TYPED,
+ VIEW: VIEW
+};
+
+},{"123":123,"46":46,"48":48}],123:[function(_dereq_,module,exports){
+var id = 0;
+var px = Math.random();
+module.exports = function (key) {
+ return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
+};
+
+},{}],124:[function(_dereq_,module,exports){
+var global = _dereq_(46);
+var navigator = global.navigator;
+
+module.exports = navigator && navigator.userAgent || '';
+
+},{"46":46}],125:[function(_dereq_,module,exports){
+var isObject = _dereq_(57);
+module.exports = function (it, TYPE) {
+ if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');
+ return it;
+};
+
+},{"57":57}],126:[function(_dereq_,module,exports){
+var global = _dereq_(46);
+var core = _dereq_(30);
+var LIBRARY = _dereq_(65);
+var wksExt = _dereq_(127);
+var defineProperty = _dereq_(75).f;
+module.exports = function (name) {
+ var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});
+ if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });
+};
+
+},{"127":127,"30":30,"46":46,"65":65,"75":75}],127:[function(_dereq_,module,exports){
+exports.f = _dereq_(128);
+
+},{"128":128}],128:[function(_dereq_,module,exports){
+var store = _dereq_(102)('wks');
+var uid = _dereq_(123);
+var Symbol = _dereq_(46).Symbol;
+var USE_SYMBOL = typeof Symbol == 'function';
+
+var $exports = module.exports = function (name) {
+ return store[name] || (store[name] =
+ USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));
+};
+
+$exports.store = store;
+
+},{"102":102,"123":123,"46":46}],129:[function(_dereq_,module,exports){
+var classof = _dereq_(25);
+var ITERATOR = _dereq_(128)('iterator');
+var Iterators = _dereq_(64);
+module.exports = _dereq_(30).getIteratorMethod = function (it) {
+ if (it != undefined) return it[ITERATOR]
+ || it['@@iterator']
+ || Iterators[classof(it)];
+};
+
+},{"128":128,"25":25,"30":30,"64":64}],130:[function(_dereq_,module,exports){
+// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)
+var $export = _dereq_(40);
+
+$export($export.P, 'Array', { copyWithin: _dereq_(17) });
+
+_dereq_(13)('copyWithin');
+
+},{"13":13,"17":17,"40":40}],131:[function(_dereq_,module,exports){
+'use strict';
+var $export = _dereq_(40);
+var $every = _dereq_(20)(4);
+
+$export($export.P + $export.F * !_dereq_(104)([].every, true), 'Array', {
+ // 22.1.3.5 / 15.4.4.16 Array.prototype.every(callbackfn [, thisArg])
+ every: function every(callbackfn /* , thisArg */) {
+ return $every(this, callbackfn, arguments[1]);
+ }
+});
+
+},{"104":104,"20":20,"40":40}],132:[function(_dereq_,module,exports){
+// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)
+var $export = _dereq_(40);
+
+$export($export.P, 'Array', { fill: _dereq_(18) });
+
+_dereq_(13)('fill');
+
+},{"13":13,"18":18,"40":40}],133:[function(_dereq_,module,exports){
+'use strict';
+var $export = _dereq_(40);
+var $filter = _dereq_(20)(2);
+
+$export($export.P + $export.F * !_dereq_(104)([].filter, true), 'Array', {
+ // 22.1.3.7 / 15.4.4.20 Array.prototype.filter(callbackfn [, thisArg])
+ filter: function filter(callbackfn /* , thisArg */) {
+ return $filter(this, callbackfn, arguments[1]);
+ }
+});
+
+},{"104":104,"20":20,"40":40}],134:[function(_dereq_,module,exports){
+'use strict';
+// 22.1.3.9 Array.prototype.findIndex(predicate, thisArg = undefined)
+var $export = _dereq_(40);
+var $find = _dereq_(20)(6);
+var KEY = 'findIndex';
+var forced = true;
+// Shouldn't skip holes
+if (KEY in []) Array(1)[KEY](function () { forced = false; });
+$export($export.P + $export.F * forced, 'Array', {
+ findIndex: function findIndex(callbackfn /* , that = undefined */) {
+ return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
+ }
+});
+_dereq_(13)(KEY);
+
+},{"13":13,"20":20,"40":40}],135:[function(_dereq_,module,exports){
+'use strict';
+// 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)
+var $export = _dereq_(40);
+var $find = _dereq_(20)(5);
+var KEY = 'find';
+var forced = true;
+// Shouldn't skip holes
+if (KEY in []) Array(1)[KEY](function () { forced = false; });
+$export($export.P + $export.F * forced, 'Array', {
+ find: function find(callbackfn /* , that = undefined */) {
+ return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
+ }
+});
+_dereq_(13)(KEY);
+
+},{"13":13,"20":20,"40":40}],136:[function(_dereq_,module,exports){
+'use strict';
+var $export = _dereq_(40);
+var $forEach = _dereq_(20)(0);
+var STRICT = _dereq_(104)([].forEach, true);
+
+$export($export.P + $export.F * !STRICT, 'Array', {
+ // 22.1.3.10 / 15.4.4.18 Array.prototype.forEach(callbackfn [, thisArg])
+ forEach: function forEach(callbackfn /* , thisArg */) {
+ return $forEach(this, callbackfn, arguments[1]);
+ }
+});
+
+},{"104":104,"20":20,"40":40}],137:[function(_dereq_,module,exports){
+'use strict';
+var ctx = _dereq_(32);
+var $export = _dereq_(40);
+var toObject = _dereq_(118);
+var call = _dereq_(59);
+var isArrayIter = _dereq_(54);
+var toLength = _dereq_(117);
+var createProperty = _dereq_(31);
+var getIterFn = _dereq_(129);
+
+$export($export.S + $export.F * !_dereq_(62)(function (iter) { Array.from(iter); }), 'Array', {
+ // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)
+ from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {
+ var O = toObject(arrayLike);
+ var C = typeof this == 'function' ? this : Array;
+ var aLen = arguments.length;
+ var mapfn = aLen > 1 ? arguments[1] : undefined;
+ var mapping = mapfn !== undefined;
+ var index = 0;
+ var iterFn = getIterFn(O);
+ var length, result, step, iterator;
+ if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);
+ // if object isn't iterable or it's array with default iterator - use simple case
+ if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {
+ for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {
+ createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);
+ }
+ } else {
+ length = toLength(O.length);
+ for (result = new C(length); length > index; index++) {
+ createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);
+ }
+ }
+ result.length = index;
+ return result;
+ }
+});
+
+},{"117":117,"118":118,"129":129,"31":31,"32":32,"40":40,"54":54,"59":59,"62":62}],138:[function(_dereq_,module,exports){
+'use strict';
+var $export = _dereq_(40);
+var $indexOf = _dereq_(19)(false);
+var $native = [].indexOf;
+var NEGATIVE_ZERO = !!$native && 1 / [1].indexOf(1, -0) < 0;
+
+$export($export.P + $export.F * (NEGATIVE_ZERO || !_dereq_(104)($native)), 'Array', {
+ // 22.1.3.11 / 15.4.4.14 Array.prototype.indexOf(searchElement [, fromIndex])
+ indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {
+ return NEGATIVE_ZERO
+ // convert -0 to +0
+ ? $native.apply(this, arguments) || 0
+ : $indexOf(this, searchElement, arguments[1]);
+ }
+});
+
+},{"104":104,"19":19,"40":40}],139:[function(_dereq_,module,exports){
+// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)
+var $export = _dereq_(40);
+
+$export($export.S, 'Array', { isArray: _dereq_(55) });
+
+},{"40":40,"55":55}],140:[function(_dereq_,module,exports){
+'use strict';
+var addToUnscopables = _dereq_(13);
+var step = _dereq_(63);
+var Iterators = _dereq_(64);
+var toIObject = _dereq_(116);
+
+// 22.1.3.4 Array.prototype.entries()
+// 22.1.3.13 Array.prototype.keys()
+// 22.1.3.29 Array.prototype.values()
+// 22.1.3.30 Array.prototype[@@iterator]()
+module.exports = _dereq_(61)(Array, 'Array', function (iterated, kind) {
+ this._t = toIObject(iterated); // target
+ this._i = 0; // next index
+ this._k = kind; // kind
+// 22.1.5.2.1 %ArrayIteratorPrototype%.next()
+}, function () {
+ var O = this._t;
+ var kind = this._k;
+ var index = this._i++;
+ if (!O || index >= O.length) {
+ this._t = undefined;
+ return step(1);
+ }
+ if (kind == 'keys') return step(0, index);
+ if (kind == 'values') return step(0, O[index]);
+ return step(0, [index, O[index]]);
+}, 'values');
+
+// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)
+Iterators.Arguments = Iterators.Array;
+
+addToUnscopables('keys');
+addToUnscopables('values');
+addToUnscopables('entries');
+
+},{"116":116,"13":13,"61":61,"63":63,"64":64}],141:[function(_dereq_,module,exports){
+'use strict';
+// 22.1.3.13 Array.prototype.join(separator)
+var $export = _dereq_(40);
+var toIObject = _dereq_(116);
+var arrayJoin = [].join;
+
+// fallback for not array-like strings
+$export($export.P + $export.F * (_dereq_(53) != Object || !_dereq_(104)(arrayJoin)), 'Array', {
+ join: function join(separator) {
+ return arrayJoin.call(toIObject(this), separator === undefined ? ',' : separator);
+ }
+});
+
+},{"104":104,"116":116,"40":40,"53":53}],142:[function(_dereq_,module,exports){
+'use strict';
+var $export = _dereq_(40);
+var toIObject = _dereq_(116);
+var toInteger = _dereq_(115);
+var toLength = _dereq_(117);
+var $native = [].lastIndexOf;
+var NEGATIVE_ZERO = !!$native && 1 / [1].lastIndexOf(1, -0) < 0;
+
+$export($export.P + $export.F * (NEGATIVE_ZERO || !_dereq_(104)($native)), 'Array', {
+ // 22.1.3.14 / 15.4.4.15 Array.prototype.lastIndexOf(searchElement [, fromIndex])
+ lastIndexOf: function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) {
+ // convert -0 to +0
+ if (NEGATIVE_ZERO) return $native.apply(this, arguments) || 0;
+ var O = toIObject(this);
+ var length = toLength(O.length);
+ var index = length - 1;
+ if (arguments.length > 1) index = Math.min(index, toInteger(arguments[1]));
+ if (index < 0) index = length + index;
+ for (;index >= 0; index--) if (index in O) if (O[index] === searchElement) return index || 0;
+ return -1;
+ }
+});
+
+},{"104":104,"115":115,"116":116,"117":117,"40":40}],143:[function(_dereq_,module,exports){
+'use strict';
+var $export = _dereq_(40);
+var $map = _dereq_(20)(1);
+
+$export($export.P + $export.F * !_dereq_(104)([].map, true), 'Array', {
+ // 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg])
+ map: function map(callbackfn /* , thisArg */) {
+ return $map(this, callbackfn, arguments[1]);
+ }
+});
+
+},{"104":104,"20":20,"40":40}],144:[function(_dereq_,module,exports){
+'use strict';
+var $export = _dereq_(40);
+var createProperty = _dereq_(31);
+
+// WebKit Array.of isn't generic
+$export($export.S + $export.F * _dereq_(42)(function () {
+ function F() { /* empty */ }
+ return !(Array.of.call(F) instanceof F);
+}), 'Array', {
+ // 22.1.2.3 Array.of( ...items)
+ of: function of(/* ...args */) {
+ var index = 0;
+ var aLen = arguments.length;
+ var result = new (typeof this == 'function' ? this : Array)(aLen);
+ while (aLen > index) createProperty(result, index, arguments[index++]);
+ result.length = aLen;
+ return result;
+ }
+});
+
+},{"31":31,"40":40,"42":42}],145:[function(_dereq_,module,exports){
+'use strict';
+var $export = _dereq_(40);
+var $reduce = _dereq_(21);
+
+$export($export.P + $export.F * !_dereq_(104)([].reduceRight, true), 'Array', {
+ // 22.1.3.19 / 15.4.4.22 Array.prototype.reduceRight(callbackfn [, initialValue])
+ reduceRight: function reduceRight(callbackfn /* , initialValue */) {
+ return $reduce(this, callbackfn, arguments.length, arguments[1], true);
+ }
+});
+
+},{"104":104,"21":21,"40":40}],146:[function(_dereq_,module,exports){
+'use strict';
+var $export = _dereq_(40);
+var $reduce = _dereq_(21);
+
+$export($export.P + $export.F * !_dereq_(104)([].reduce, true), 'Array', {
+ // 22.1.3.18 / 15.4.4.21 Array.prototype.reduce(callbackfn [, initialValue])
+ reduce: function reduce(callbackfn /* , initialValue */) {
+ return $reduce(this, callbackfn, arguments.length, arguments[1], false);
+ }
+});
+
+},{"104":104,"21":21,"40":40}],147:[function(_dereq_,module,exports){
+'use strict';
+var $export = _dereq_(40);
+var html = _dereq_(49);
+var cof = _dereq_(26);
+var toAbsoluteIndex = _dereq_(113);
+var toLength = _dereq_(117);
+var arraySlice = [].slice;
+
+// fallback for not array-like ES3 strings and DOM objects
+$export($export.P + $export.F * _dereq_(42)(function () {
+ if (html) arraySlice.call(html);
+}), 'Array', {
+ slice: function slice(begin, end) {
+ var len = toLength(this.length);
+ var klass = cof(this);
+ end = end === undefined ? len : end;
+ if (klass == 'Array') return arraySlice.call(this, begin, end);
+ var start = toAbsoluteIndex(begin, len);
+ var upTo = toAbsoluteIndex(end, len);
+ var size = toLength(upTo - start);
+ var cloned = new Array(size);
+ var i = 0;
+ for (; i < size; i++) cloned[i] = klass == 'String'
+ ? this.charAt(start + i)
+ : this[start + i];
+ return cloned;
+ }
+});
+
+},{"113":113,"117":117,"26":26,"40":40,"42":42,"49":49}],148:[function(_dereq_,module,exports){
+'use strict';
+var $export = _dereq_(40);
+var $some = _dereq_(20)(3);
+
+$export($export.P + $export.F * !_dereq_(104)([].some, true), 'Array', {
+ // 22.1.3.23 / 15.4.4.17 Array.prototype.some(callbackfn [, thisArg])
+ some: function some(callbackfn /* , thisArg */) {
+ return $some(this, callbackfn, arguments[1]);
+ }
+});
+
+},{"104":104,"20":20,"40":40}],149:[function(_dereq_,module,exports){
+'use strict';
+var $export = _dereq_(40);
+var aFunction = _dereq_(11);
+var toObject = _dereq_(118);
+var fails = _dereq_(42);
+var $sort = [].sort;
+var test = [1, 2, 3];
+
+$export($export.P + $export.F * (fails(function () {
+ // IE8-
+ test.sort(undefined);
+}) || !fails(function () {
+ // V8 bug
+ test.sort(null);
+ // Old WebKit
+}) || !_dereq_(104)($sort)), 'Array', {
+ // 22.1.3.25 Array.prototype.sort(comparefn)
+ sort: function sort(comparefn) {
+ return comparefn === undefined
+ ? $sort.call(toObject(this))
+ : $sort.call(toObject(this), aFunction(comparefn));
+ }
+});
+
+},{"104":104,"11":11,"118":118,"40":40,"42":42}],150:[function(_dereq_,module,exports){
+_dereq_(99)('Array');
+
+},{"99":99}],151:[function(_dereq_,module,exports){
+// 20.3.3.1 / 15.9.4.4 Date.now()
+var $export = _dereq_(40);
+
+$export($export.S, 'Date', { now: function () { return new Date().getTime(); } });
+
+},{"40":40}],152:[function(_dereq_,module,exports){
+// 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString()
+var $export = _dereq_(40);
+var toISOString = _dereq_(33);
+
+// PhantomJS / old WebKit has a broken implementations
+$export($export.P + $export.F * (Date.prototype.toISOString !== toISOString), 'Date', {
+ toISOString: toISOString
+});
+
+},{"33":33,"40":40}],153:[function(_dereq_,module,exports){
+'use strict';
+var $export = _dereq_(40);
+var toObject = _dereq_(118);
+var toPrimitive = _dereq_(119);
+
+$export($export.P + $export.F * _dereq_(42)(function () {
+ return new Date(NaN).toJSON() !== null
+ || Date.prototype.toJSON.call({ toISOString: function () { return 1; } }) !== 1;
+}), 'Date', {
+ // eslint-disable-next-line no-unused-vars
+ toJSON: function toJSON(key) {
+ var O = toObject(this);
+ var pv = toPrimitive(O);
+ return typeof pv == 'number' && !isFinite(pv) ? null : O.toISOString();
+ }
+});
+
+},{"118":118,"119":119,"40":40,"42":42}],154:[function(_dereq_,module,exports){
+var TO_PRIMITIVE = _dereq_(128)('toPrimitive');
+var proto = Date.prototype;
+
+if (!(TO_PRIMITIVE in proto)) _dereq_(48)(proto, TO_PRIMITIVE, _dereq_(34));
+
+},{"128":128,"34":34,"48":48}],155:[function(_dereq_,module,exports){
+var DateProto = Date.prototype;
+var INVALID_DATE = 'Invalid Date';
+var TO_STRING = 'toString';
+var $toString = DateProto[TO_STRING];
+var getTime = DateProto.getTime;
+if (new Date(NaN) + '' != INVALID_DATE) {
+ _dereq_(94)(DateProto, TO_STRING, function toString() {
+ var value = getTime.call(this);
+ // eslint-disable-next-line no-self-compare
+ return value === value ? $toString.call(this) : INVALID_DATE;
+ });
+}
+
+},{"94":94}],156:[function(_dereq_,module,exports){
+// 19.2.3.2 / 15.3.4.5 Function.prototype.bind(thisArg, args...)
+var $export = _dereq_(40);
+
+$export($export.P, 'Function', { bind: _dereq_(24) });
+
+},{"24":24,"40":40}],157:[function(_dereq_,module,exports){
+'use strict';
+var isObject = _dereq_(57);
+var getPrototypeOf = _dereq_(81);
+var HAS_INSTANCE = _dereq_(128)('hasInstance');
+var FunctionProto = Function.prototype;
+// 19.2.3.6 Function.prototype[@@hasInstance](V)
+if (!(HAS_INSTANCE in FunctionProto)) _dereq_(75).f(FunctionProto, HAS_INSTANCE, { value: function (O) {
+ if (typeof this != 'function' || !isObject(O)) return false;
+ if (!isObject(this.prototype)) return O instanceof this;
+ // for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this:
+ while (O = getPrototypeOf(O)) if (this.prototype === O) return true;
+ return false;
+} });
+
+},{"128":128,"57":57,"75":75,"81":81}],158:[function(_dereq_,module,exports){
+var dP = _dereq_(75).f;
+var FProto = Function.prototype;
+var nameRE = /^\s*function ([^ (]*)/;
+var NAME = 'name';
+
+// 19.2.4.2 name
+NAME in FProto || _dereq_(36) && dP(FProto, NAME, {
+ configurable: true,
+ get: function () {
+ try {
+ return ('' + this).match(nameRE)[1];
+ } catch (e) {
+ return '';
+ }
+ }
+});
+
+},{"36":36,"75":75}],159:[function(_dereq_,module,exports){
+'use strict';
+var strong = _dereq_(27);
+var validate = _dereq_(125);
+var MAP = 'Map';
+
+// 23.1 Map Objects
+module.exports = _dereq_(29)(MAP, function (get) {
+ return function Map() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };
+}, {
+ // 23.1.3.6 Map.prototype.get(key)
+ get: function get(key) {
+ var entry = strong.getEntry(validate(this, MAP), key);
+ return entry && entry.v;
+ },
+ // 23.1.3.9 Map.prototype.set(key, value)
+ set: function set(key, value) {
+ return strong.def(validate(this, MAP), key === 0 ? 0 : key, value);
+ }
+}, strong, true);
+
+},{"125":125,"27":27,"29":29}],160:[function(_dereq_,module,exports){
+// 20.2.2.3 Math.acosh(x)
+var $export = _dereq_(40);
+var log1p = _dereq_(68);
+var sqrt = Math.sqrt;
+var $acosh = Math.acosh;
+
+$export($export.S + $export.F * !($acosh
+ // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509
+ && Math.floor($acosh(Number.MAX_VALUE)) == 710
+ // Tor Browser bug: Math.acosh(Infinity) -> NaN
+ && $acosh(Infinity) == Infinity
+), 'Math', {
+ acosh: function acosh(x) {
+ return (x = +x) < 1 ? NaN : x > 94906265.62425156
+ ? Math.log(x) + Math.LN2
+ : log1p(x - 1 + sqrt(x - 1) * sqrt(x + 1));
+ }
+});
+
+},{"40":40,"68":68}],161:[function(_dereq_,module,exports){
+// 20.2.2.5 Math.asinh(x)
+var $export = _dereq_(40);
+var $asinh = Math.asinh;
+
+function asinh(x) {
+ return !isFinite(x = +x) || x == 0 ? x : x < 0 ? -asinh(-x) : Math.log(x + Math.sqrt(x * x + 1));
+}
+
+// Tor Browser bug: Math.asinh(0) -> -0
+$export($export.S + $export.F * !($asinh && 1 / $asinh(0) > 0), 'Math', { asinh: asinh });
+
+},{"40":40}],162:[function(_dereq_,module,exports){
+// 20.2.2.7 Math.atanh(x)
+var $export = _dereq_(40);
+var $atanh = Math.atanh;
+
+// Tor Browser bug: Math.atanh(-0) -> 0
+$export($export.S + $export.F * !($atanh && 1 / $atanh(-0) < 0), 'Math', {
+ atanh: function atanh(x) {
+ return (x = +x) == 0 ? x : Math.log((1 + x) / (1 - x)) / 2;
+ }
+});
+
+},{"40":40}],163:[function(_dereq_,module,exports){
+// 20.2.2.9 Math.cbrt(x)
+var $export = _dereq_(40);
+var sign = _dereq_(69);
+
+$export($export.S, 'Math', {
+ cbrt: function cbrt(x) {
+ return sign(x = +x) * Math.pow(Math.abs(x), 1 / 3);
+ }
+});
+
+},{"40":40,"69":69}],164:[function(_dereq_,module,exports){
+// 20.2.2.11 Math.clz32(x)
+var $export = _dereq_(40);
+
+$export($export.S, 'Math', {
+ clz32: function clz32(x) {
+ return (x >>>= 0) ? 31 - Math.floor(Math.log(x + 0.5) * Math.LOG2E) : 32;
+ }
+});
+
+},{"40":40}],165:[function(_dereq_,module,exports){
+// 20.2.2.12 Math.cosh(x)
+var $export = _dereq_(40);
+var exp = Math.exp;
+
+$export($export.S, 'Math', {
+ cosh: function cosh(x) {
+ return (exp(x = +x) + exp(-x)) / 2;
+ }
+});
+
+},{"40":40}],166:[function(_dereq_,module,exports){
+// 20.2.2.14 Math.expm1(x)
+var $export = _dereq_(40);
+var $expm1 = _dereq_(66);
+
+$export($export.S + $export.F * ($expm1 != Math.expm1), 'Math', { expm1: $expm1 });
+
+},{"40":40,"66":66}],167:[function(_dereq_,module,exports){
+// 20.2.2.16 Math.fround(x)
+var $export = _dereq_(40);
+
+$export($export.S, 'Math', { fround: _dereq_(67) });
+
+},{"40":40,"67":67}],168:[function(_dereq_,module,exports){
+// 20.2.2.17 Math.hypot([value1[, value2[, … ]]])
+var $export = _dereq_(40);
+var abs = Math.abs;
+
+$export($export.S, 'Math', {
+ hypot: function hypot(value1, value2) { // eslint-disable-line no-unused-vars
+ var sum = 0;
+ var i = 0;
+ var aLen = arguments.length;
+ var larg = 0;
+ var arg, div;
+ while (i < aLen) {
+ arg = abs(arguments[i++]);
+ if (larg < arg) {
+ div = larg / arg;
+ sum = sum * div * div + 1;
+ larg = arg;
+ } else if (arg > 0) {
+ div = arg / larg;
+ sum += div * div;
+ } else sum += arg;
+ }
+ return larg === Infinity ? Infinity : larg * Math.sqrt(sum);
+ }
+});
+
+},{"40":40}],169:[function(_dereq_,module,exports){
+// 20.2.2.18 Math.imul(x, y)
+var $export = _dereq_(40);
+var $imul = Math.imul;
+
+// some WebKit versions fails with big numbers, some has wrong arity
+$export($export.S + $export.F * _dereq_(42)(function () {
+ return $imul(0xffffffff, 5) != -5 || $imul.length != 2;
+}), 'Math', {
+ imul: function imul(x, y) {
+ var UINT16 = 0xffff;
+ var xn = +x;
+ var yn = +y;
+ var xl = UINT16 & xn;
+ var yl = UINT16 & yn;
+ return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0);
+ }
+});
+
+},{"40":40,"42":42}],170:[function(_dereq_,module,exports){
+// 20.2.2.21 Math.log10(x)
+var $export = _dereq_(40);
+
+$export($export.S, 'Math', {
+ log10: function log10(x) {
+ return Math.log(x) * Math.LOG10E;
+ }
+});
+
+},{"40":40}],171:[function(_dereq_,module,exports){
+// 20.2.2.20 Math.log1p(x)
+var $export = _dereq_(40);
+
+$export($export.S, 'Math', { log1p: _dereq_(68) });
+
+},{"40":40,"68":68}],172:[function(_dereq_,module,exports){
+// 20.2.2.22 Math.log2(x)
+var $export = _dereq_(40);
+
+$export($export.S, 'Math', {
+ log2: function log2(x) {
+ return Math.log(x) / Math.LN2;
+ }
+});
+
+},{"40":40}],173:[function(_dereq_,module,exports){
+// 20.2.2.28 Math.sign(x)
+var $export = _dereq_(40);
+
+$export($export.S, 'Math', { sign: _dereq_(69) });
+
+},{"40":40,"69":69}],174:[function(_dereq_,module,exports){
+// 20.2.2.30 Math.sinh(x)
+var $export = _dereq_(40);
+var expm1 = _dereq_(66);
+var exp = Math.exp;
+
+// V8 near Chromium 38 has a problem with very small numbers
+$export($export.S + $export.F * _dereq_(42)(function () {
+ return !Math.sinh(-2e-17) != -2e-17;
+}), 'Math', {
+ sinh: function sinh(x) {
+ return Math.abs(x = +x) < 1
+ ? (expm1(x) - expm1(-x)) / 2
+ : (exp(x - 1) - exp(-x - 1)) * (Math.E / 2);
+ }
+});
+
+},{"40":40,"42":42,"66":66}],175:[function(_dereq_,module,exports){
+// 20.2.2.33 Math.tanh(x)
+var $export = _dereq_(40);
+var expm1 = _dereq_(66);
+var exp = Math.exp;
+
+$export($export.S, 'Math', {
+ tanh: function tanh(x) {
+ var a = expm1(x = +x);
+ var b = expm1(-x);
+ return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (exp(x) + exp(-x));
+ }
+});
+
+},{"40":40,"66":66}],176:[function(_dereq_,module,exports){
+// 20.2.2.34 Math.trunc(x)
+var $export = _dereq_(40);
+
+$export($export.S, 'Math', {
+ trunc: function trunc(it) {
+ return (it > 0 ? Math.floor : Math.ceil)(it);
+ }
+});
+
+},{"40":40}],177:[function(_dereq_,module,exports){
+'use strict';
+var global = _dereq_(46);
+var has = _dereq_(47);
+var cof = _dereq_(26);
+var inheritIfRequired = _dereq_(51);
+var toPrimitive = _dereq_(119);
+var fails = _dereq_(42);
+var gOPN = _dereq_(79).f;
+var gOPD = _dereq_(77).f;
+var dP = _dereq_(75).f;
+var $trim = _dereq_(110).trim;
+var NUMBER = 'Number';
+var $Number = global[NUMBER];
+var Base = $Number;
+var proto = $Number.prototype;
+// Opera ~12 has broken Object#toString
+var BROKEN_COF = cof(_dereq_(74)(proto)) == NUMBER;
+var TRIM = 'trim' in String.prototype;
+
+// 7.1.3 ToNumber(argument)
+var toNumber = function (argument) {
+ var it = toPrimitive(argument, false);
+ if (typeof it == 'string' && it.length > 2) {
+ it = TRIM ? it.trim() : $trim(it, 3);
+ var first = it.charCodeAt(0);
+ var third, radix, maxCode;
+ if (first === 43 || first === 45) {
+ third = it.charCodeAt(2);
+ if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix
+ } else if (first === 48) {
+ switch (it.charCodeAt(1)) {
+ case 66: case 98: radix = 2; maxCode = 49; break; // fast equal /^0b[01]+$/i
+ case 79: case 111: radix = 8; maxCode = 55; break; // fast equal /^0o[0-7]+$/i
+ default: return +it;
+ }
+ for (var digits = it.slice(2), i = 0, l = digits.length, code; i < l; i++) {
+ code = digits.charCodeAt(i);
+ // parseInt parses a string to a first unavailable symbol
+ // but ToNumber should return NaN if a string contains unavailable symbols
+ if (code < 48 || code > maxCode) return NaN;
+ } return parseInt(digits, radix);
+ }
+ } return +it;
+};
+
+if (!$Number(' 0o1') || !$Number('0b1') || $Number('+0x1')) {
+ $Number = function Number(value) {
+ var it = arguments.length < 1 ? 0 : value;
+ var that = this;
+ return that instanceof $Number
+ // check on 1..constructor(foo) case
+ && (BROKEN_COF ? fails(function () { proto.valueOf.call(that); }) : cof(that) != NUMBER)
+ ? inheritIfRequired(new Base(toNumber(it)), that, $Number) : toNumber(it);
+ };
+ for (var keys = _dereq_(36) ? gOPN(Base) : (
+ // ES3:
+ 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +
+ // ES6 (in case, if modules with ES6 Number statics required before):
+ 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +
+ 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger'
+ ).split(','), j = 0, key; keys.length > j; j++) {
+ if (has(Base, key = keys[j]) && !has($Number, key)) {
+ dP($Number, key, gOPD(Base, key));
+ }
+ }
+ $Number.prototype = proto;
+ proto.constructor = $Number;
+ _dereq_(94)(global, NUMBER, $Number);
+}
+
+},{"110":110,"119":119,"26":26,"36":36,"42":42,"46":46,"47":47,"51":51,"74":74,"75":75,"77":77,"79":79,"94":94}],178:[function(_dereq_,module,exports){
+// 20.1.2.1 Number.EPSILON
+var $export = _dereq_(40);
+
+$export($export.S, 'Number', { EPSILON: Math.pow(2, -52) });
+
+},{"40":40}],179:[function(_dereq_,module,exports){
+// 20.1.2.2 Number.isFinite(number)
+var $export = _dereq_(40);
+var _isFinite = _dereq_(46).isFinite;
+
+$export($export.S, 'Number', {
+ isFinite: function isFinite(it) {
+ return typeof it == 'number' && _isFinite(it);
+ }
+});
+
+},{"40":40,"46":46}],180:[function(_dereq_,module,exports){
+// 20.1.2.3 Number.isInteger(number)
+var $export = _dereq_(40);
+
+$export($export.S, 'Number', { isInteger: _dereq_(56) });
+
+},{"40":40,"56":56}],181:[function(_dereq_,module,exports){
+// 20.1.2.4 Number.isNaN(number)
+var $export = _dereq_(40);
+
+$export($export.S, 'Number', {
+ isNaN: function isNaN(number) {
+ // eslint-disable-next-line no-self-compare
+ return number != number;
+ }
+});
+
+},{"40":40}],182:[function(_dereq_,module,exports){
+// 20.1.2.5 Number.isSafeInteger(number)
+var $export = _dereq_(40);
+var isInteger = _dereq_(56);
+var abs = Math.abs;
+
+$export($export.S, 'Number', {
+ isSafeInteger: function isSafeInteger(number) {
+ return isInteger(number) && abs(number) <= 0x1fffffffffffff;
+ }
+});
+
+},{"40":40,"56":56}],183:[function(_dereq_,module,exports){
+// 20.1.2.6 Number.MAX_SAFE_INTEGER
+var $export = _dereq_(40);
+
+$export($export.S, 'Number', { MAX_SAFE_INTEGER: 0x1fffffffffffff });
+
+},{"40":40}],184:[function(_dereq_,module,exports){
+// 20.1.2.10 Number.MIN_SAFE_INTEGER
+var $export = _dereq_(40);
+
+$export($export.S, 'Number', { MIN_SAFE_INTEGER: -0x1fffffffffffff });
+
+},{"40":40}],185:[function(_dereq_,module,exports){
+var $export = _dereq_(40);
+var $parseFloat = _dereq_(88);
+// 20.1.2.12 Number.parseFloat(string)
+$export($export.S + $export.F * (Number.parseFloat != $parseFloat), 'Number', { parseFloat: $parseFloat });
+
+},{"40":40,"88":88}],186:[function(_dereq_,module,exports){
+var $export = _dereq_(40);
+var $parseInt = _dereq_(89);
+// 20.1.2.13 Number.parseInt(string, radix)
+$export($export.S + $export.F * (Number.parseInt != $parseInt), 'Number', { parseInt: $parseInt });
+
+},{"40":40,"89":89}],187:[function(_dereq_,module,exports){
+'use strict';
+var $export = _dereq_(40);
+var toInteger = _dereq_(115);
+var aNumberValue = _dereq_(12);
+var repeat = _dereq_(109);
+var $toFixed = 1.0.toFixed;
+var floor = Math.floor;
+var data = [0, 0, 0, 0, 0, 0];
+var ERROR = 'Number.toFixed: incorrect invocation!';
+var ZERO = '0';
+
+var multiply = function (n, c) {
+ var i = -1;
+ var c2 = c;
+ while (++i < 6) {
+ c2 += n * data[i];
+ data[i] = c2 % 1e7;
+ c2 = floor(c2 / 1e7);
+ }
+};
+var divide = function (n) {
+ var i = 6;
+ var c = 0;
+ while (--i >= 0) {
+ c += data[i];
+ data[i] = floor(c / n);
+ c = (c % n) * 1e7;
+ }
+};
+var numToString = function () {
+ var i = 6;
+ var s = '';
+ while (--i >= 0) {
+ if (s !== '' || i === 0 || data[i] !== 0) {
+ var t = String(data[i]);
+ s = s === '' ? t : s + repeat.call(ZERO, 7 - t.length) + t;
+ }
+ } return s;
+};
+var pow = function (x, n, acc) {
+ return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);
+};
+var log = function (x) {
+ var n = 0;
+ var x2 = x;
+ while (x2 >= 4096) {
+ n += 12;
+ x2 /= 4096;
+ }
+ while (x2 >= 2) {
+ n += 1;
+ x2 /= 2;
+ } return n;
+};
+
+$export($export.P + $export.F * (!!$toFixed && (
+ 0.00008.toFixed(3) !== '0.000' ||
+ 0.9.toFixed(0) !== '1' ||
+ 1.255.toFixed(2) !== '1.25' ||
+ 1000000000000000128.0.toFixed(0) !== '1000000000000000128'
+) || !_dereq_(42)(function () {
+ // V8 ~ Android 4.3-
+ $toFixed.call({});
+})), 'Number', {
+ toFixed: function toFixed(fractionDigits) {
+ var x = aNumberValue(this, ERROR);
+ var f = toInteger(fractionDigits);
+ var s = '';
+ var m = ZERO;
+ var e, z, j, k;
+ if (f < 0 || f > 20) throw RangeError(ERROR);
+ // eslint-disable-next-line no-self-compare
+ if (x != x) return 'NaN';
+ if (x <= -1e21 || x >= 1e21) return String(x);
+ if (x < 0) {
+ s = '-';
+ x = -x;
+ }
+ if (x > 1e-21) {
+ e = log(x * pow(2, 69, 1)) - 69;
+ z = e < 0 ? x * pow(2, -e, 1) : x / pow(2, e, 1);
+ z *= 0x10000000000000;
+ e = 52 - e;
+ if (e > 0) {
+ multiply(0, z);
+ j = f;
+ while (j >= 7) {
+ multiply(1e7, 0);
+ j -= 7;
+ }
+ multiply(pow(10, j, 1), 0);
+ j = e - 1;
+ while (j >= 23) {
+ divide(1 << 23);
+ j -= 23;
+ }
+ divide(1 << j);
+ multiply(1, 1);
+ divide(2);
+ m = numToString();
+ } else {
+ multiply(0, z);
+ multiply(1 << -e, 0);
+ m = numToString() + repeat.call(ZERO, f);
+ }
+ }
+ if (f > 0) {
+ k = m.length;
+ m = s + (k <= f ? '0.' + repeat.call(ZERO, f - k) + m : m.slice(0, k - f) + '.' + m.slice(k - f));
+ } else {
+ m = s + m;
+ } return m;
+ }
+});
+
+},{"109":109,"115":115,"12":12,"40":40,"42":42}],188:[function(_dereq_,module,exports){
+'use strict';
+var $export = _dereq_(40);
+var $fails = _dereq_(42);
+var aNumberValue = _dereq_(12);
+var $toPrecision = 1.0.toPrecision;
+
+$export($export.P + $export.F * ($fails(function () {
+ // IE7-
+ return $toPrecision.call(1, undefined) !== '1';
+}) || !$fails(function () {
+ // V8 ~ Android 4.3-
+ $toPrecision.call({});
+})), 'Number', {
+ toPrecision: function toPrecision(precision) {
+ var that = aNumberValue(this, 'Number#toPrecision: incorrect invocation!');
+ return precision === undefined ? $toPrecision.call(that) : $toPrecision.call(that, precision);
+ }
+});
+
+},{"12":12,"40":40,"42":42}],189:[function(_dereq_,module,exports){
+// 19.1.3.1 Object.assign(target, source)
+var $export = _dereq_(40);
+
+$export($export.S + $export.F, 'Object', { assign: _dereq_(73) });
+
+},{"40":40,"73":73}],190:[function(_dereq_,module,exports){
+var $export = _dereq_(40);
+// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
+$export($export.S, 'Object', { create: _dereq_(74) });
+
+},{"40":40,"74":74}],191:[function(_dereq_,module,exports){
+var $export = _dereq_(40);
+// 19.1.2.3 / 15.2.3.7 Object.defineProperties(O, Properties)
+$export($export.S + $export.F * !_dereq_(36), 'Object', { defineProperties: _dereq_(76) });
+
+},{"36":36,"40":40,"76":76}],192:[function(_dereq_,module,exports){
+var $export = _dereq_(40);
+// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)
+$export($export.S + $export.F * !_dereq_(36), 'Object', { defineProperty: _dereq_(75).f });
+
+},{"36":36,"40":40,"75":75}],193:[function(_dereq_,module,exports){
+// 19.1.2.5 Object.freeze(O)
+var isObject = _dereq_(57);
+var meta = _dereq_(70).onFreeze;
+
+_dereq_(85)('freeze', function ($freeze) {
+ return function freeze(it) {
+ return $freeze && isObject(it) ? $freeze(meta(it)) : it;
+ };
+});
+
+},{"57":57,"70":70,"85":85}],194:[function(_dereq_,module,exports){
+// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
+var toIObject = _dereq_(116);
+var $getOwnPropertyDescriptor = _dereq_(77).f;
+
+_dereq_(85)('getOwnPropertyDescriptor', function () {
+ return function getOwnPropertyDescriptor(it, key) {
+ return $getOwnPropertyDescriptor(toIObject(it), key);
+ };
+});
+
+},{"116":116,"77":77,"85":85}],195:[function(_dereq_,module,exports){
+// 19.1.2.7 Object.getOwnPropertyNames(O)
+_dereq_(85)('getOwnPropertyNames', function () {
+ return _dereq_(78).f;
+});
+
+},{"78":78,"85":85}],196:[function(_dereq_,module,exports){
+// 19.1.2.9 Object.getPrototypeOf(O)
+var toObject = _dereq_(118);
+var $getPrototypeOf = _dereq_(81);
+
+_dereq_(85)('getPrototypeOf', function () {
+ return function getPrototypeOf(it) {
+ return $getPrototypeOf(toObject(it));
+ };
+});
+
+},{"118":118,"81":81,"85":85}],197:[function(_dereq_,module,exports){
+// 19.1.2.11 Object.isExtensible(O)
+var isObject = _dereq_(57);
+
+_dereq_(85)('isExtensible', function ($isExtensible) {
+ return function isExtensible(it) {
+ return isObject(it) ? $isExtensible ? $isExtensible(it) : true : false;
+ };
+});
+
+},{"57":57,"85":85}],198:[function(_dereq_,module,exports){
+// 19.1.2.12 Object.isFrozen(O)
+var isObject = _dereq_(57);
+
+_dereq_(85)('isFrozen', function ($isFrozen) {
+ return function isFrozen(it) {
+ return isObject(it) ? $isFrozen ? $isFrozen(it) : false : true;
+ };
+});
+
+},{"57":57,"85":85}],199:[function(_dereq_,module,exports){
+// 19.1.2.13 Object.isSealed(O)
+var isObject = _dereq_(57);
+
+_dereq_(85)('isSealed', function ($isSealed) {
+ return function isSealed(it) {
+ return isObject(it) ? $isSealed ? $isSealed(it) : false : true;
+ };
+});
+
+},{"57":57,"85":85}],200:[function(_dereq_,module,exports){
+// 19.1.3.10 Object.is(value1, value2)
+var $export = _dereq_(40);
+$export($export.S, 'Object', { is: _dereq_(97) });
+
+},{"40":40,"97":97}],201:[function(_dereq_,module,exports){
+// 19.1.2.14 Object.keys(O)
+var toObject = _dereq_(118);
+var $keys = _dereq_(83);
+
+_dereq_(85)('keys', function () {
+ return function keys(it) {
+ return $keys(toObject(it));
+ };
+});
+
+},{"118":118,"83":83,"85":85}],202:[function(_dereq_,module,exports){
+// 19.1.2.15 Object.preventExtensions(O)
+var isObject = _dereq_(57);
+var meta = _dereq_(70).onFreeze;
+
+_dereq_(85)('preventExtensions', function ($preventExtensions) {
+ return function preventExtensions(it) {
+ return $preventExtensions && isObject(it) ? $preventExtensions(meta(it)) : it;
+ };
+});
+
+},{"57":57,"70":70,"85":85}],203:[function(_dereq_,module,exports){
+// 19.1.2.17 Object.seal(O)
+var isObject = _dereq_(57);
+var meta = _dereq_(70).onFreeze;
+
+_dereq_(85)('seal', function ($seal) {
+ return function seal(it) {
+ return $seal && isObject(it) ? $seal(meta(it)) : it;
+ };
+});
+
+},{"57":57,"70":70,"85":85}],204:[function(_dereq_,module,exports){
+// 19.1.3.19 Object.setPrototypeOf(O, proto)
+var $export = _dereq_(40);
+$export($export.S, 'Object', { setPrototypeOf: _dereq_(98).set });
+
+},{"40":40,"98":98}],205:[function(_dereq_,module,exports){
+'use strict';
+// 19.1.3.6 Object.prototype.toString()
+var classof = _dereq_(25);
+var test = {};
+test[_dereq_(128)('toStringTag')] = 'z';
+if (test + '' != '[object z]') {
+ _dereq_(94)(Object.prototype, 'toString', function toString() {
+ return '[object ' + classof(this) + ']';
+ }, true);
+}
+
+},{"128":128,"25":25,"94":94}],206:[function(_dereq_,module,exports){
+var $export = _dereq_(40);
+var $parseFloat = _dereq_(88);
+// 18.2.4 parseFloat(string)
+$export($export.G + $export.F * (parseFloat != $parseFloat), { parseFloat: $parseFloat });
+
+},{"40":40,"88":88}],207:[function(_dereq_,module,exports){
+var $export = _dereq_(40);
+var $parseInt = _dereq_(89);
+// 18.2.5 parseInt(string, radix)
+$export($export.G + $export.F * (parseInt != $parseInt), { parseInt: $parseInt });
+
+},{"40":40,"89":89}],208:[function(_dereq_,module,exports){
+'use strict';
+var LIBRARY = _dereq_(65);
+var global = _dereq_(46);
+var ctx = _dereq_(32);
+var classof = _dereq_(25);
+var $export = _dereq_(40);
+var isObject = _dereq_(57);
+var aFunction = _dereq_(11);
+var anInstance = _dereq_(15);
+var forOf = _dereq_(45);
+var speciesConstructor = _dereq_(103);
+var task = _dereq_(112).set;
+var microtask = _dereq_(71)();
+var newPromiseCapabilityModule = _dereq_(72);
+var perform = _dereq_(90);
+var userAgent = _dereq_(124);
+var promiseResolve = _dereq_(91);
+var PROMISE = 'Promise';
+var TypeError = global.TypeError;
+var process = global.process;
+var versions = process && process.versions;
+var v8 = versions && versions.v8 || '';
+var $Promise = global[PROMISE];
+var isNode = classof(process) == 'process';
+var empty = function () { /* empty */ };
+var Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper;
+var newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f;
+
+var USE_NATIVE = !!function () {
+ try {
+ // correct subclassing with @@species support
+ var promise = $Promise.resolve(1);
+ var FakePromise = (promise.constructor = {})[_dereq_(128)('species')] = function (exec) {
+ exec(empty, empty);
+ };
+ // unhandled rejections tracking support, NodeJS Promise without it fails @@species test
+ return (isNode || typeof PromiseRejectionEvent == 'function')
+ && promise.then(empty) instanceof FakePromise
+ // v8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables
+ // https://bugs.chromium.org/p/chromium/issues/detail?id=830565
+ // we can't detect it synchronously, so just check versions
+ && v8.indexOf('6.6') !== 0
+ && userAgent.indexOf('Chrome/66') === -1;
+ } catch (e) { /* empty */ }
+}();
+
+// helpers
+var isThenable = function (it) {
+ var then;
+ return isObject(it) && typeof (then = it.then) == 'function' ? then : false;
+};
+var notify = function (promise, isReject) {
+ if (promise._n) return;
+ promise._n = true;
+ var chain = promise._c;
+ microtask(function () {
+ var value = promise._v;
+ var ok = promise._s == 1;
+ var i = 0;
+ var run = function (reaction) {
+ var handler = ok ? reaction.ok : reaction.fail;
+ var resolve = reaction.resolve;
+ var reject = reaction.reject;
+ var domain = reaction.domain;
+ var result, then, exited;
+ try {
+ if (handler) {
+ if (!ok) {
+ if (promise._h == 2) onHandleUnhandled(promise);
+ promise._h = 1;
+ }
+ if (handler === true) result = value;
+ else {
+ if (domain) domain.enter();
+ result = handler(value); // may throw
+ if (domain) {
+ domain.exit();
+ exited = true;
+ }
+ }
+ if (result === reaction.promise) {
+ reject(TypeError('Promise-chain cycle'));
+ } else if (then = isThenable(result)) {
+ then.call(result, resolve, reject);
+ } else resolve(result);
+ } else reject(value);
+ } catch (e) {
+ if (domain && !exited) domain.exit();
+ reject(e);
+ }
+ };
+ while (chain.length > i) run(chain[i++]); // variable length - can't use forEach
+ promise._c = [];
+ promise._n = false;
+ if (isReject && !promise._h) onUnhandled(promise);
+ });
+};
+var onUnhandled = function (promise) {
+ task.call(global, function () {
+ var value = promise._v;
+ var unhandled = isUnhandled(promise);
+ var result, handler, console;
+ if (unhandled) {
+ result = perform(function () {
+ if (isNode) {
+ process.emit('unhandledRejection', value, promise);
+ } else if (handler = global.onunhandledrejection) {
+ handler({ promise: promise, reason: value });
+ } else if ((console = global.console) && console.error) {
+ console.error('Unhandled promise rejection', value);
+ }
+ });
+ // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should
+ promise._h = isNode || isUnhandled(promise) ? 2 : 1;
+ } promise._a = undefined;
+ if (unhandled && result.e) throw result.v;
+ });
+};
+var isUnhandled = function (promise) {
+ return promise._h !== 1 && (promise._a || promise._c).length === 0;
+};
+var onHandleUnhandled = function (promise) {
+ task.call(global, function () {
+ var handler;
+ if (isNode) {
+ process.emit('rejectionHandled', promise);
+ } else if (handler = global.onrejectionhandled) {
+ handler({ promise: promise, reason: promise._v });
+ }
+ });
+};
+var $reject = function (value) {
+ var promise = this;
+ if (promise._d) return;
+ promise._d = true;
+ promise = promise._w || promise; // unwrap
+ promise._v = value;
+ promise._s = 2;
+ if (!promise._a) promise._a = promise._c.slice();
+ notify(promise, true);
+};
+var $resolve = function (value) {
+ var promise = this;
+ var then;
+ if (promise._d) return;
+ promise._d = true;
+ promise = promise._w || promise; // unwrap
+ try {
+ if (promise === value) throw TypeError("Promise can't be resolved itself");
+ if (then = isThenable(value)) {
+ microtask(function () {
+ var wrapper = { _w: promise, _d: false }; // wrap
+ try {
+ then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));
+ } catch (e) {
+ $reject.call(wrapper, e);
+ }
+ });
+ } else {
+ promise._v = value;
+ promise._s = 1;
+ notify(promise, false);
+ }
+ } catch (e) {
+ $reject.call({ _w: promise, _d: false }, e); // wrap
+ }
+};
+
+// constructor polyfill
+if (!USE_NATIVE) {
+ // 25.4.3.1 Promise(executor)
+ $Promise = function Promise(executor) {
+ anInstance(this, $Promise, PROMISE, '_h');
+ aFunction(executor);
+ Internal.call(this);
+ try {
+ executor(ctx($resolve, this, 1), ctx($reject, this, 1));
+ } catch (err) {
+ $reject.call(this, err);
+ }
+ };
+ // eslint-disable-next-line no-unused-vars
+ Internal = function Promise(executor) {
+ this._c = []; // <- awaiting reactions
+ this._a = undefined; // <- checked in isUnhandled reactions
+ this._s = 0; // <- state
+ this._d = false; // <- done
+ this._v = undefined; // <- value
+ this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled
+ this._n = false; // <- notify
+ };
+ Internal.prototype = _dereq_(93)($Promise.prototype, {
+ // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)
+ then: function then(onFulfilled, onRejected) {
+ var reaction = newPromiseCapability(speciesConstructor(this, $Promise));
+ reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;
+ reaction.fail = typeof onRejected == 'function' && onRejected;
+ reaction.domain = isNode ? process.domain : undefined;
+ this._c.push(reaction);
+ if (this._a) this._a.push(reaction);
+ if (this._s) notify(this, false);
+ return reaction.promise;
+ },
+ // 25.4.5.1 Promise.prototype.catch(onRejected)
+ 'catch': function (onRejected) {
+ return this.then(undefined, onRejected);
+ }
+ });
+ OwnPromiseCapability = function () {
+ var promise = new Internal();
+ this.promise = promise;
+ this.resolve = ctx($resolve, promise, 1);
+ this.reject = ctx($reject, promise, 1);
+ };
+ newPromiseCapabilityModule.f = newPromiseCapability = function (C) {
+ return C === $Promise || C === Wrapper
+ ? new OwnPromiseCapability(C)
+ : newGenericPromiseCapability(C);
+ };
+}
+
+$export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise });
+_dereq_(100)($Promise, PROMISE);
+_dereq_(99)(PROMISE);
+Wrapper = _dereq_(30)[PROMISE];
+
+// statics
+$export($export.S + $export.F * !USE_NATIVE, PROMISE, {
+ // 25.4.4.5 Promise.reject(r)
+ reject: function reject(r) {
+ var capability = newPromiseCapability(this);
+ var $$reject = capability.reject;
+ $$reject(r);
+ return capability.promise;
+ }
+});
+$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {
+ // 25.4.4.6 Promise.resolve(x)
+ resolve: function resolve(x) {
+ return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x);
+ }
+});
+$export($export.S + $export.F * !(USE_NATIVE && _dereq_(62)(function (iter) {
+ $Promise.all(iter)['catch'](empty);
+})), PROMISE, {
+ // 25.4.4.1 Promise.all(iterable)
+ all: function all(iterable) {
+ var C = this;
+ var capability = newPromiseCapability(C);
+ var resolve = capability.resolve;
+ var reject = capability.reject;
+ var result = perform(function () {
+ var values = [];
+ var index = 0;
+ var remaining = 1;
+ forOf(iterable, false, function (promise) {
+ var $index = index++;
+ var alreadyCalled = false;
+ values.push(undefined);
+ remaining++;
+ C.resolve(promise).then(function (value) {
+ if (alreadyCalled) return;
+ alreadyCalled = true;
+ values[$index] = value;
+ --remaining || resolve(values);
+ }, reject);
+ });
+ --remaining || resolve(values);
+ });
+ if (result.e) reject(result.v);
+ return capability.promise;
+ },
+ // 25.4.4.4 Promise.race(iterable)
+ race: function race(iterable) {
+ var C = this;
+ var capability = newPromiseCapability(C);
+ var reject = capability.reject;
+ var result = perform(function () {
+ forOf(iterable, false, function (promise) {
+ C.resolve(promise).then(capability.resolve, reject);
+ });
+ });
+ if (result.e) reject(result.v);
+ return capability.promise;
+ }
+});
+
+},{"100":100,"103":103,"11":11,"112":112,"124":124,"128":128,"15":15,"25":25,"30":30,"32":32,"40":40,"45":45,"46":46,"57":57,"62":62,"65":65,"71":71,"72":72,"90":90,"91":91,"93":93,"99":99}],209:[function(_dereq_,module,exports){
+// 26.1.1 Reflect.apply(target, thisArgument, argumentsList)
+var $export = _dereq_(40);
+var aFunction = _dereq_(11);
+var anObject = _dereq_(16);
+var rApply = (_dereq_(46).Reflect || {}).apply;
+var fApply = Function.apply;
+// MS Edge argumentsList argument is optional
+$export($export.S + $export.F * !_dereq_(42)(function () {
+ rApply(function () { /* empty */ });
+}), 'Reflect', {
+ apply: function apply(target, thisArgument, argumentsList) {
+ var T = aFunction(target);
+ var L = anObject(argumentsList);
+ return rApply ? rApply(T, thisArgument, L) : fApply.call(T, thisArgument, L);
+ }
+});
+
+},{"11":11,"16":16,"40":40,"42":42,"46":46}],210:[function(_dereq_,module,exports){
+// 26.1.2 Reflect.construct(target, argumentsList [, newTarget])
+var $export = _dereq_(40);
+var create = _dereq_(74);
+var aFunction = _dereq_(11);
+var anObject = _dereq_(16);
+var isObject = _dereq_(57);
+var fails = _dereq_(42);
+var bind = _dereq_(24);
+var rConstruct = (_dereq_(46).Reflect || {}).construct;
+
+// MS Edge supports only 2 arguments and argumentsList argument is optional
+// FF Nightly sets third argument as `new.target`, but does not create `this` from it
+var NEW_TARGET_BUG = fails(function () {
+ function F() { /* empty */ }
+ return !(rConstruct(function () { /* empty */ }, [], F) instanceof F);
+});
+var ARGS_BUG = !fails(function () {
+ rConstruct(function () { /* empty */ });
+});
+
+$export($export.S + $export.F * (NEW_TARGET_BUG || ARGS_BUG), 'Reflect', {
+ construct: function construct(Target, args /* , newTarget */) {
+ aFunction(Target);
+ anObject(args);
+ var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);
+ if (ARGS_BUG && !NEW_TARGET_BUG) return rConstruct(Target, args, newTarget);
+ if (Target == newTarget) {
+ // w/o altered newTarget, optimization for 0-4 arguments
+ switch (args.length) {
+ case 0: return new Target();
+ case 1: return new Target(args[0]);
+ case 2: return new Target(args[0], args[1]);
+ case 3: return new Target(args[0], args[1], args[2]);
+ case 4: return new Target(args[0], args[1], args[2], args[3]);
+ }
+ // w/o altered newTarget, lot of arguments case
+ var $args = [null];
+ $args.push.apply($args, args);
+ return new (bind.apply(Target, $args))();
+ }
+ // with altered newTarget, not support built-in constructors
+ var proto = newTarget.prototype;
+ var instance = create(isObject(proto) ? proto : Object.prototype);
+ var result = Function.apply.call(Target, instance, args);
+ return isObject(result) ? result : instance;
+ }
+});
+
+},{"11":11,"16":16,"24":24,"40":40,"42":42,"46":46,"57":57,"74":74}],211:[function(_dereq_,module,exports){
+// 26.1.3 Reflect.defineProperty(target, propertyKey, attributes)
+var dP = _dereq_(75);
+var $export = _dereq_(40);
+var anObject = _dereq_(16);
+var toPrimitive = _dereq_(119);
+
+// MS Edge has broken Reflect.defineProperty - throwing instead of returning false
+$export($export.S + $export.F * _dereq_(42)(function () {
+ // eslint-disable-next-line no-undef
+ Reflect.defineProperty(dP.f({}, 1, { value: 1 }), 1, { value: 2 });
+}), 'Reflect', {
+ defineProperty: function defineProperty(target, propertyKey, attributes) {
+ anObject(target);
+ propertyKey = toPrimitive(propertyKey, true);
+ anObject(attributes);
+ try {
+ dP.f(target, propertyKey, attributes);
+ return true;
+ } catch (e) {
+ return false;
+ }
+ }
+});
+
+},{"119":119,"16":16,"40":40,"42":42,"75":75}],212:[function(_dereq_,module,exports){
+// 26.1.4 Reflect.deleteProperty(target, propertyKey)
+var $export = _dereq_(40);
+var gOPD = _dereq_(77).f;
+var anObject = _dereq_(16);
+
+$export($export.S, 'Reflect', {
+ deleteProperty: function deleteProperty(target, propertyKey) {
+ var desc = gOPD(anObject(target), propertyKey);
+ return desc && !desc.configurable ? false : delete target[propertyKey];
+ }
+});
+
+},{"16":16,"40":40,"77":77}],213:[function(_dereq_,module,exports){
+'use strict';
+// 26.1.5 Reflect.enumerate(target)
+var $export = _dereq_(40);
+var anObject = _dereq_(16);
+var Enumerate = function (iterated) {
+ this._t = anObject(iterated); // target
+ this._i = 0; // next index
+ var keys = this._k = []; // keys
+ var key;
+ for (key in iterated) keys.push(key);
+};
+_dereq_(60)(Enumerate, 'Object', function () {
+ var that = this;
+ var keys = that._k;
+ var key;
+ do {
+ if (that._i >= keys.length) return { value: undefined, done: true };
+ } while (!((key = keys[that._i++]) in that._t));
+ return { value: key, done: false };
+});
+
+$export($export.S, 'Reflect', {
+ enumerate: function enumerate(target) {
+ return new Enumerate(target);
+ }
+});
+
+},{"16":16,"40":40,"60":60}],214:[function(_dereq_,module,exports){
+// 26.1.7 Reflect.getOwnPropertyDescriptor(target, propertyKey)
+var gOPD = _dereq_(77);
+var $export = _dereq_(40);
+var anObject = _dereq_(16);
+
+$export($export.S, 'Reflect', {
+ getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey) {
+ return gOPD.f(anObject(target), propertyKey);
+ }
+});
+
+},{"16":16,"40":40,"77":77}],215:[function(_dereq_,module,exports){
+// 26.1.8 Reflect.getPrototypeOf(target)
+var $export = _dereq_(40);
+var getProto = _dereq_(81);
+var anObject = _dereq_(16);
+
+$export($export.S, 'Reflect', {
+ getPrototypeOf: function getPrototypeOf(target) {
+ return getProto(anObject(target));
+ }
+});
+
+},{"16":16,"40":40,"81":81}],216:[function(_dereq_,module,exports){
+// 26.1.6 Reflect.get(target, propertyKey [, receiver])
+var gOPD = _dereq_(77);
+var getPrototypeOf = _dereq_(81);
+var has = _dereq_(47);
+var $export = _dereq_(40);
+var isObject = _dereq_(57);
+var anObject = _dereq_(16);
+
+function get(target, propertyKey /* , receiver */) {
+ var receiver = arguments.length < 3 ? target : arguments[2];
+ var desc, proto;
+ if (anObject(target) === receiver) return target[propertyKey];
+ if (desc = gOPD.f(target, propertyKey)) return has(desc, 'value')
+ ? desc.value
+ : desc.get !== undefined
+ ? desc.get.call(receiver)
+ : undefined;
+ if (isObject(proto = getPrototypeOf(target))) return get(proto, propertyKey, receiver);
+}
+
+$export($export.S, 'Reflect', { get: get });
+
+},{"16":16,"40":40,"47":47,"57":57,"77":77,"81":81}],217:[function(_dereq_,module,exports){
+// 26.1.9 Reflect.has(target, propertyKey)
+var $export = _dereq_(40);
+
+$export($export.S, 'Reflect', {
+ has: function has(target, propertyKey) {
+ return propertyKey in target;
+ }
+});
+
+},{"40":40}],218:[function(_dereq_,module,exports){
+// 26.1.10 Reflect.isExtensible(target)
+var $export = _dereq_(40);
+var anObject = _dereq_(16);
+var $isExtensible = Object.isExtensible;
+
+$export($export.S, 'Reflect', {
+ isExtensible: function isExtensible(target) {
+ anObject(target);
+ return $isExtensible ? $isExtensible(target) : true;
+ }
+});
+
+},{"16":16,"40":40}],219:[function(_dereq_,module,exports){
+// 26.1.11 Reflect.ownKeys(target)
+var $export = _dereq_(40);
+
+$export($export.S, 'Reflect', { ownKeys: _dereq_(87) });
+
+},{"40":40,"87":87}],220:[function(_dereq_,module,exports){
+// 26.1.12 Reflect.preventExtensions(target)
+var $export = _dereq_(40);
+var anObject = _dereq_(16);
+var $preventExtensions = Object.preventExtensions;
+
+$export($export.S, 'Reflect', {
+ preventExtensions: function preventExtensions(target) {
+ anObject(target);
+ try {
+ if ($preventExtensions) $preventExtensions(target);
+ return true;
+ } catch (e) {
+ return false;
+ }
+ }
+});
+
+},{"16":16,"40":40}],221:[function(_dereq_,module,exports){
+// 26.1.14 Reflect.setPrototypeOf(target, proto)
+var $export = _dereq_(40);
+var setProto = _dereq_(98);
+
+if (setProto) $export($export.S, 'Reflect', {
+ setPrototypeOf: function setPrototypeOf(target, proto) {
+ setProto.check(target, proto);
+ try {
+ setProto.set(target, proto);
+ return true;
+ } catch (e) {
+ return false;
+ }
+ }
+});
+
+},{"40":40,"98":98}],222:[function(_dereq_,module,exports){
+// 26.1.13 Reflect.set(target, propertyKey, V [, receiver])
+var dP = _dereq_(75);
+var gOPD = _dereq_(77);
+var getPrototypeOf = _dereq_(81);
+var has = _dereq_(47);
+var $export = _dereq_(40);
+var createDesc = _dereq_(92);
+var anObject = _dereq_(16);
+var isObject = _dereq_(57);
+
+function set(target, propertyKey, V /* , receiver */) {
+ var receiver = arguments.length < 4 ? target : arguments[3];
+ var ownDesc = gOPD.f(anObject(target), propertyKey);
+ var existingDescriptor, proto;
+ if (!ownDesc) {
+ if (isObject(proto = getPrototypeOf(target))) {
+ return set(proto, propertyKey, V, receiver);
+ }
+ ownDesc = createDesc(0);
+ }
+ if (has(ownDesc, 'value')) {
+ if (ownDesc.writable === false || !isObject(receiver)) return false;
+ if (existingDescriptor = gOPD.f(receiver, propertyKey)) {
+ if (existingDescriptor.get || existingDescriptor.set || existingDescriptor.writable === false) return false;
+ existingDescriptor.value = V;
+ dP.f(receiver, propertyKey, existingDescriptor);
+ } else dP.f(receiver, propertyKey, createDesc(0, V));
+ return true;
+ }
+ return ownDesc.set === undefined ? false : (ownDesc.set.call(receiver, V), true);
+}
+
+$export($export.S, 'Reflect', { set: set });
+
+},{"16":16,"40":40,"47":47,"57":57,"75":75,"77":77,"81":81,"92":92}],223:[function(_dereq_,module,exports){
+var global = _dereq_(46);
+var inheritIfRequired = _dereq_(51);
+var dP = _dereq_(75).f;
+var gOPN = _dereq_(79).f;
+var isRegExp = _dereq_(58);
+var $flags = _dereq_(44);
+var $RegExp = global.RegExp;
+var Base = $RegExp;
+var proto = $RegExp.prototype;
+var re1 = /a/g;
+var re2 = /a/g;
+// "new" creates a new object, old webkit buggy here
+var CORRECT_NEW = new $RegExp(re1) !== re1;
+
+if (_dereq_(36) && (!CORRECT_NEW || _dereq_(42)(function () {
+ re2[_dereq_(128)('match')] = false;
+ // RegExp constructor can alter flags and IsRegExp works correct with @@match
+ return $RegExp(re1) != re1 || $RegExp(re2) == re2 || $RegExp(re1, 'i') != '/a/i';
+}))) {
+ $RegExp = function RegExp(p, f) {
+ var tiRE = this instanceof $RegExp;
+ var piRE = isRegExp(p);
+ var fiU = f === undefined;
+ return !tiRE && piRE && p.constructor === $RegExp && fiU ? p
+ : inheritIfRequired(CORRECT_NEW
+ ? new Base(piRE && !fiU ? p.source : p, f)
+ : Base((piRE = p instanceof $RegExp) ? p.source : p, piRE && fiU ? $flags.call(p) : f)
+ , tiRE ? this : proto, $RegExp);
+ };
+ var proxy = function (key) {
+ key in $RegExp || dP($RegExp, key, {
+ configurable: true,
+ get: function () { return Base[key]; },
+ set: function (it) { Base[key] = it; }
+ });
+ };
+ for (var keys = gOPN(Base), i = 0; keys.length > i;) proxy(keys[i++]);
+ proto.constructor = $RegExp;
+ $RegExp.prototype = proto;
+ _dereq_(94)(global, 'RegExp', $RegExp);
+}
+
+_dereq_(99)('RegExp');
+
+},{"128":128,"36":36,"42":42,"44":44,"46":46,"51":51,"58":58,"75":75,"79":79,"94":94,"99":99}],224:[function(_dereq_,module,exports){
+'use strict';
+var regexpExec = _dereq_(96);
+_dereq_(40)({
+ target: 'RegExp',
+ proto: true,
+ forced: regexpExec !== /./.exec
+}, {
+ exec: regexpExec
+});
+
+},{"40":40,"96":96}],225:[function(_dereq_,module,exports){
+// 21.2.5.3 get RegExp.prototype.flags()
+if (_dereq_(36) && /./g.flags != 'g') _dereq_(75).f(RegExp.prototype, 'flags', {
+ configurable: true,
+ get: _dereq_(44)
+});
+
+},{"36":36,"44":44,"75":75}],226:[function(_dereq_,module,exports){
+'use strict';
+
+var anObject = _dereq_(16);
+var toLength = _dereq_(117);
+var advanceStringIndex = _dereq_(14);
+var regExpExec = _dereq_(95);
+
+// @@match logic
+_dereq_(43)('match', 1, function (defined, MATCH, $match, maybeCallNative) {
+ return [
+ // `String.prototype.match` method
+ // https://tc39.github.io/ecma262/#sec-string.prototype.match
+ function match(regexp) {
+ var O = defined(this);
+ var fn = regexp == undefined ? undefined : regexp[MATCH];
+ return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));
+ },
+ // `RegExp.prototype[@@match]` method
+ // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@match
+ function (regexp) {
+ var res = maybeCallNative($match, regexp, this);
+ if (res.done) return res.value;
+ var rx = anObject(regexp);
+ var S = String(this);
+ if (!rx.global) return regExpExec(rx, S);
+ var fullUnicode = rx.unicode;
+ rx.lastIndex = 0;
+ var A = [];
+ var n = 0;
+ var result;
+ while ((result = regExpExec(rx, S)) !== null) {
+ var matchStr = String(result[0]);
+ A[n] = matchStr;
+ if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);
+ n++;
+ }
+ return n === 0 ? null : A;
+ }
+ ];
+});
+
+},{"117":117,"14":14,"16":16,"43":43,"95":95}],227:[function(_dereq_,module,exports){
+'use strict';
+
+var anObject = _dereq_(16);
+var toObject = _dereq_(118);
+var toLength = _dereq_(117);
+var toInteger = _dereq_(115);
+var advanceStringIndex = _dereq_(14);
+var regExpExec = _dereq_(95);
+var max = Math.max;
+var min = Math.min;
+var floor = Math.floor;
+var SUBSTITUTION_SYMBOLS = /\$([$&`']|\d\d?|<[^>]*>)/g;
+var SUBSTITUTION_SYMBOLS_NO_NAMED = /\$([$&`']|\d\d?)/g;
+
+var maybeToString = function (it) {
+ return it === undefined ? it : String(it);
+};
+
+// @@replace logic
+_dereq_(43)('replace', 2, function (defined, REPLACE, $replace, maybeCallNative) {
+ return [
+ // `String.prototype.replace` method
+ // https://tc39.github.io/ecma262/#sec-string.prototype.replace
+ function replace(searchValue, replaceValue) {
+ var O = defined(this);
+ var fn = searchValue == undefined ? undefined : searchValue[REPLACE];
+ return fn !== undefined
+ ? fn.call(searchValue, O, replaceValue)
+ : $replace.call(String(O), searchValue, replaceValue);
+ },
+ // `RegExp.prototype[@@replace]` method
+ // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace
+ function (regexp, replaceValue) {
+ var res = maybeCallNative($replace, regexp, this, replaceValue);
+ if (res.done) return res.value;
+
+ var rx = anObject(regexp);
+ var S = String(this);
+ var functionalReplace = typeof replaceValue === 'function';
+ if (!functionalReplace) replaceValue = String(replaceValue);
+ var global = rx.global;
+ if (global) {
+ var fullUnicode = rx.unicode;
+ rx.lastIndex = 0;
+ }
+ var results = [];
+ while (true) {
+ var result = regExpExec(rx, S);
+ if (result === null) break;
+ results.push(result);
+ if (!global) break;
+ var matchStr = String(result[0]);
+ if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);
+ }
+ var accumulatedResult = '';
+ var nextSourcePosition = 0;
+ for (var i = 0; i < results.length; i++) {
+ result = results[i];
+ var matched = String(result[0]);
+ var position = max(min(toInteger(result.index), S.length), 0);
+ var captures = [];
+ // NOTE: This is equivalent to
+ // captures = result.slice(1).map(maybeToString)
+ // but for some reason `nativeSlice.call(result, 1, result.length)` (called in
+ // the slice polyfill when slicing native arrays) "doesn't work" in safari 9 and
+ // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.
+ for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));
+ var namedCaptures = result.groups;
+ if (functionalReplace) {
+ var replacerArgs = [matched].concat(captures, position, S);
+ if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);
+ var replacement = String(replaceValue.apply(undefined, replacerArgs));
+ } else {
+ replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);
+ }
+ if (position >= nextSourcePosition) {
+ accumulatedResult += S.slice(nextSourcePosition, position) + replacement;
+ nextSourcePosition = position + matched.length;
+ }
+ }
+ return accumulatedResult + S.slice(nextSourcePosition);
+ }
+ ];
+
+ // https://tc39.github.io/ecma262/#sec-getsubstitution
+ function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {
+ var tailPos = position + matched.length;
+ var m = captures.length;
+ var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;
+ if (namedCaptures !== undefined) {
+ namedCaptures = toObject(namedCaptures);
+ symbols = SUBSTITUTION_SYMBOLS;
+ }
+ return $replace.call(replacement, symbols, function (match, ch) {
+ var capture;
+ switch (ch.charAt(0)) {
+ case '$': return '$';
+ case '&': return matched;
+ case '`': return str.slice(0, position);
+ case "'": return str.slice(tailPos);
+ case '<':
+ capture = namedCaptures[ch.slice(1, -1)];
+ break;
+ default: // \d\d?
+ var n = +ch;
+ if (n === 0) return ch;
+ if (n > m) {
+ var f = floor(n / 10);
+ if (f === 0) return ch;
+ if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);
+ return ch;
+ }
+ capture = captures[n - 1];
+ }
+ return capture === undefined ? '' : capture;
+ });
+ }
+});
+
+},{"115":115,"117":117,"118":118,"14":14,"16":16,"43":43,"95":95}],228:[function(_dereq_,module,exports){
+'use strict';
+
+var anObject = _dereq_(16);
+var sameValue = _dereq_(97);
+var regExpExec = _dereq_(95);
+
+// @@search logic
+_dereq_(43)('search', 1, function (defined, SEARCH, $search, maybeCallNative) {
+ return [
+ // `String.prototype.search` method
+ // https://tc39.github.io/ecma262/#sec-string.prototype.search
+ function search(regexp) {
+ var O = defined(this);
+ var fn = regexp == undefined ? undefined : regexp[SEARCH];
+ return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));
+ },
+ // `RegExp.prototype[@@search]` method
+ // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@search
+ function (regexp) {
+ var res = maybeCallNative($search, regexp, this);
+ if (res.done) return res.value;
+ var rx = anObject(regexp);
+ var S = String(this);
+ var previousLastIndex = rx.lastIndex;
+ if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;
+ var result = regExpExec(rx, S);
+ if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;
+ return result === null ? -1 : result.index;
+ }
+ ];
+});
+
+},{"16":16,"43":43,"95":95,"97":97}],229:[function(_dereq_,module,exports){
+'use strict';
+
+var isRegExp = _dereq_(58);
+var anObject = _dereq_(16);
+var speciesConstructor = _dereq_(103);
+var advanceStringIndex = _dereq_(14);
+var toLength = _dereq_(117);
+var callRegExpExec = _dereq_(95);
+var regexpExec = _dereq_(96);
+var $min = Math.min;
+var $push = [].push;
+var $SPLIT = 'split';
+var LENGTH = 'length';
+var LAST_INDEX = 'lastIndex';
+
+// eslint-disable-next-line no-empty
+var SUPPORTS_Y = !!(function () { try { return new RegExp('x', 'y'); } catch (e) {} })();
+
+// @@split logic
+_dereq_(43)('split', 2, function (defined, SPLIT, $split, maybeCallNative) {
+ var internalSplit;
+ if (
+ 'abbc'[$SPLIT](/(b)*/)[1] == 'c' ||
+ 'test'[$SPLIT](/(?:)/, -1)[LENGTH] != 4 ||
+ 'ab'[$SPLIT](/(?:ab)*/)[LENGTH] != 2 ||
+ '.'[$SPLIT](/(.?)(.?)/)[LENGTH] != 4 ||
+ '.'[$SPLIT](/()()/)[LENGTH] > 1 ||
+ ''[$SPLIT](/.?/)[LENGTH]
+ ) {
+ // based on es5-shim implementation, need to rework it
+ internalSplit = function (separator, limit) {
+ var string = String(this);
+ if (separator === undefined && limit === 0) return [];
+ // If `separator` is not a regex, use native split
+ if (!isRegExp(separator)) return $split.call(string, separator, limit);
+ var output = [];
+ var flags = (separator.ignoreCase ? 'i' : '') +
+ (separator.multiline ? 'm' : '') +
+ (separator.unicode ? 'u' : '') +
+ (separator.sticky ? 'y' : '');
+ var lastLastIndex = 0;
+ var splitLimit = limit === undefined ? 4294967295 : limit >>> 0;
+ // Make `global` and avoid `lastIndex` issues by working with a copy
+ var separatorCopy = new RegExp(separator.source, flags + 'g');
+ var match, lastIndex, lastLength;
+ while (match = regexpExec.call(separatorCopy, string)) {
+ lastIndex = separatorCopy[LAST_INDEX];
+ if (lastIndex > lastLastIndex) {
+ output.push(string.slice(lastLastIndex, match.index));
+ if (match[LENGTH] > 1 && match.index < string[LENGTH]) $push.apply(output, match.slice(1));
+ lastLength = match[0][LENGTH];
+ lastLastIndex = lastIndex;
+ if (output[LENGTH] >= splitLimit) break;
+ }
+ if (separatorCopy[LAST_INDEX] === match.index) separatorCopy[LAST_INDEX]++; // Avoid an infinite loop
+ }
+ if (lastLastIndex === string[LENGTH]) {
+ if (lastLength || !separatorCopy.test('')) output.push('');
+ } else output.push(string.slice(lastLastIndex));
+ return output[LENGTH] > splitLimit ? output.slice(0, splitLimit) : output;
+ };
+ // Chakra, V8
+ } else if ('0'[$SPLIT](undefined, 0)[LENGTH]) {
+ internalSplit = function (separator, limit) {
+ return separator === undefined && limit === 0 ? [] : $split.call(this, separator, limit);
+ };
+ } else {
+ internalSplit = $split;
+ }
+
+ return [
+ // `String.prototype.split` method
+ // https://tc39.github.io/ecma262/#sec-string.prototype.split
+ function split(separator, limit) {
+ var O = defined(this);
+ var splitter = separator == undefined ? undefined : separator[SPLIT];
+ return splitter !== undefined
+ ? splitter.call(separator, O, limit)
+ : internalSplit.call(String(O), separator, limit);
+ },
+ // `RegExp.prototype[@@split]` method
+ // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split
+ //
+ // NOTE: This cannot be properly polyfilled in engines that don't support
+ // the 'y' flag.
+ function (regexp, limit) {
+ var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== $split);
+ if (res.done) return res.value;
+
+ var rx = anObject(regexp);
+ var S = String(this);
+ var C = speciesConstructor(rx, RegExp);
+
+ var unicodeMatching = rx.unicode;
+ var flags = (rx.ignoreCase ? 'i' : '') +
+ (rx.multiline ? 'm' : '') +
+ (rx.unicode ? 'u' : '') +
+ (SUPPORTS_Y ? 'y' : 'g');
+
+ // ^(? + rx + ) is needed, in combination with some S slicing, to
+ // simulate the 'y' flag.
+ var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);
+ var lim = limit === undefined ? 0xffffffff : limit >>> 0;
+ if (lim === 0) return [];
+ if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];
+ var p = 0;
+ var q = 0;
+ var A = [];
+ while (q < S.length) {
+ splitter.lastIndex = SUPPORTS_Y ? q : 0;
+ var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q));
+ var e;
+ if (
+ z === null ||
+ (e = $min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p
+ ) {
+ q = advanceStringIndex(S, q, unicodeMatching);
+ } else {
+ A.push(S.slice(p, q));
+ if (A.length === lim) return A;
+ for (var i = 1; i <= z.length - 1; i++) {
+ A.push(z[i]);
+ if (A.length === lim) return A;
+ }
+ q = p = e;
+ }
+ }
+ A.push(S.slice(p));
+ return A;
+ }
+ ];
+});
+
+},{"103":103,"117":117,"14":14,"16":16,"43":43,"58":58,"95":95,"96":96}],230:[function(_dereq_,module,exports){
+'use strict';
+_dereq_(225);
+var anObject = _dereq_(16);
+var $flags = _dereq_(44);
+var DESCRIPTORS = _dereq_(36);
+var TO_STRING = 'toString';
+var $toString = /./[TO_STRING];
+
+var define = function (fn) {
+ _dereq_(94)(RegExp.prototype, TO_STRING, fn, true);
+};
+
+// 21.2.5.14 RegExp.prototype.toString()
+if (_dereq_(42)(function () { return $toString.call({ source: 'a', flags: 'b' }) != '/a/b'; })) {
+ define(function toString() {
+ var R = anObject(this);
+ return '/'.concat(R.source, '/',
+ 'flags' in R ? R.flags : !DESCRIPTORS && R instanceof RegExp ? $flags.call(R) : undefined);
+ });
+// FF44- RegExp#toString has a wrong name
+} else if ($toString.name != TO_STRING) {
+ define(function toString() {
+ return $toString.call(this);
+ });
+}
+
+},{"16":16,"225":225,"36":36,"42":42,"44":44,"94":94}],231:[function(_dereq_,module,exports){
+'use strict';
+var strong = _dereq_(27);
+var validate = _dereq_(125);
+var SET = 'Set';
+
+// 23.2 Set Objects
+module.exports = _dereq_(29)(SET, function (get) {
+ return function Set() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };
+}, {
+ // 23.2.3.1 Set.prototype.add(value)
+ add: function add(value) {
+ return strong.def(validate(this, SET), value = value === 0 ? 0 : value, value);
+ }
+}, strong);
+
+},{"125":125,"27":27,"29":29}],232:[function(_dereq_,module,exports){
+'use strict';
+// B.2.3.2 String.prototype.anchor(name)
+_dereq_(107)('anchor', function (createHTML) {
+ return function anchor(name) {
+ return createHTML(this, 'a', 'name', name);
+ };
+});
+
+},{"107":107}],233:[function(_dereq_,module,exports){
+'use strict';
+// B.2.3.3 String.prototype.big()
+_dereq_(107)('big', function (createHTML) {
+ return function big() {
+ return createHTML(this, 'big', '', '');
+ };
+});
+
+},{"107":107}],234:[function(_dereq_,module,exports){
+'use strict';
+// B.2.3.4 String.prototype.blink()
+_dereq_(107)('blink', function (createHTML) {
+ return function blink() {
+ return createHTML(this, 'blink', '', '');
+ };
+});
+
+},{"107":107}],235:[function(_dereq_,module,exports){
+'use strict';
+// B.2.3.5 String.prototype.bold()
+_dereq_(107)('bold', function (createHTML) {
+ return function bold() {
+ return createHTML(this, 'b', '', '');
+ };
+});
+
+},{"107":107}],236:[function(_dereq_,module,exports){
+'use strict';
+var $export = _dereq_(40);
+var $at = _dereq_(105)(false);
+$export($export.P, 'String', {
+ // 21.1.3.3 String.prototype.codePointAt(pos)
+ codePointAt: function codePointAt(pos) {
+ return $at(this, pos);
+ }
+});
+
+},{"105":105,"40":40}],237:[function(_dereq_,module,exports){
+// 21.1.3.6 String.prototype.endsWith(searchString [, endPosition])
+'use strict';
+var $export = _dereq_(40);
+var toLength = _dereq_(117);
+var context = _dereq_(106);
+var ENDS_WITH = 'endsWith';
+var $endsWith = ''[ENDS_WITH];
+
+$export($export.P + $export.F * _dereq_(41)(ENDS_WITH), 'String', {
+ endsWith: function endsWith(searchString /* , endPosition = @length */) {
+ var that = context(this, searchString, ENDS_WITH);
+ var endPosition = arguments.length > 1 ? arguments[1] : undefined;
+ var len = toLength(that.length);
+ var end = endPosition === undefined ? len : Math.min(toLength(endPosition), len);
+ var search = String(searchString);
+ return $endsWith
+ ? $endsWith.call(that, search, end)
+ : that.slice(end - search.length, end) === search;
+ }
+});
+
+},{"106":106,"117":117,"40":40,"41":41}],238:[function(_dereq_,module,exports){
+'use strict';
+// B.2.3.6 String.prototype.fixed()
+_dereq_(107)('fixed', function (createHTML) {
+ return function fixed() {
+ return createHTML(this, 'tt', '', '');
+ };
+});
+
+},{"107":107}],239:[function(_dereq_,module,exports){
+'use strict';
+// B.2.3.7 String.prototype.fontcolor(color)
+_dereq_(107)('fontcolor', function (createHTML) {
+ return function fontcolor(color) {
+ return createHTML(this, 'font', 'color', color);
+ };
+});
+
+},{"107":107}],240:[function(_dereq_,module,exports){
+'use strict';
+// B.2.3.8 String.prototype.fontsize(size)
+_dereq_(107)('fontsize', function (createHTML) {
+ return function fontsize(size) {
+ return createHTML(this, 'font', 'size', size);
+ };
+});
+
+},{"107":107}],241:[function(_dereq_,module,exports){
+var $export = _dereq_(40);
+var toAbsoluteIndex = _dereq_(113);
+var fromCharCode = String.fromCharCode;
+var $fromCodePoint = String.fromCodePoint;
+
+// length should be 1, old FF problem
+$export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', {
+ // 21.1.2.2 String.fromCodePoint(...codePoints)
+ fromCodePoint: function fromCodePoint(x) { // eslint-disable-line no-unused-vars
+ var res = [];
+ var aLen = arguments.length;
+ var i = 0;
+ var code;
+ while (aLen > i) {
+ code = +arguments[i++];
+ if (toAbsoluteIndex(code, 0x10ffff) !== code) throw RangeError(code + ' is not a valid code point');
+ res.push(code < 0x10000
+ ? fromCharCode(code)
+ : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00)
+ );
+ } return res.join('');
+ }
+});
+
+},{"113":113,"40":40}],242:[function(_dereq_,module,exports){
+// 21.1.3.7 String.prototype.includes(searchString, position = 0)
+'use strict';
+var $export = _dereq_(40);
+var context = _dereq_(106);
+var INCLUDES = 'includes';
+
+$export($export.P + $export.F * _dereq_(41)(INCLUDES), 'String', {
+ includes: function includes(searchString /* , position = 0 */) {
+ return !!~context(this, searchString, INCLUDES)
+ .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);
+ }
+});
+
+},{"106":106,"40":40,"41":41}],243:[function(_dereq_,module,exports){
+'use strict';
+// B.2.3.9 String.prototype.italics()
+_dereq_(107)('italics', function (createHTML) {
+ return function italics() {
+ return createHTML(this, 'i', '', '');
+ };
+});
+
+},{"107":107}],244:[function(_dereq_,module,exports){
+'use strict';
+var $at = _dereq_(105)(true);
+
+// 21.1.3.27 String.prototype[@@iterator]()
+_dereq_(61)(String, 'String', function (iterated) {
+ this._t = String(iterated); // target
+ this._i = 0; // next index
+// 21.1.5.2.1 %StringIteratorPrototype%.next()
+}, function () {
+ var O = this._t;
+ var index = this._i;
+ var point;
+ if (index >= O.length) return { value: undefined, done: true };
+ point = $at(O, index);
+ this._i += point.length;
+ return { value: point, done: false };
+});
+
+},{"105":105,"61":61}],245:[function(_dereq_,module,exports){
+'use strict';
+// B.2.3.10 String.prototype.link(url)
+_dereq_(107)('link', function (createHTML) {
+ return function link(url) {
+ return createHTML(this, 'a', 'href', url);
+ };
+});
+
+},{"107":107}],246:[function(_dereq_,module,exports){
+var $export = _dereq_(40);
+var toIObject = _dereq_(116);
+var toLength = _dereq_(117);
+
+$export($export.S, 'String', {
+ // 21.1.2.4 String.raw(callSite, ...substitutions)
+ raw: function raw(callSite) {
+ var tpl = toIObject(callSite.raw);
+ var len = toLength(tpl.length);
+ var aLen = arguments.length;
+ var res = [];
+ var i = 0;
+ while (len > i) {
+ res.push(String(tpl[i++]));
+ if (i < aLen) res.push(String(arguments[i]));
+ } return res.join('');
+ }
+});
+
+},{"116":116,"117":117,"40":40}],247:[function(_dereq_,module,exports){
+var $export = _dereq_(40);
+
+$export($export.P, 'String', {
+ // 21.1.3.13 String.prototype.repeat(count)
+ repeat: _dereq_(109)
+});
+
+},{"109":109,"40":40}],248:[function(_dereq_,module,exports){
+'use strict';
+// B.2.3.11 String.prototype.small()
+_dereq_(107)('small', function (createHTML) {
+ return function small() {
+ return createHTML(this, 'small', '', '');
+ };
+});
+
+},{"107":107}],249:[function(_dereq_,module,exports){
+// 21.1.3.18 String.prototype.startsWith(searchString [, position ])
+'use strict';
+var $export = _dereq_(40);
+var toLength = _dereq_(117);
+var context = _dereq_(106);
+var STARTS_WITH = 'startsWith';
+var $startsWith = ''[STARTS_WITH];
+
+$export($export.P + $export.F * _dereq_(41)(STARTS_WITH), 'String', {
+ startsWith: function startsWith(searchString /* , position = 0 */) {
+ var that = context(this, searchString, STARTS_WITH);
+ var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length));
+ var search = String(searchString);
+ return $startsWith
+ ? $startsWith.call(that, search, index)
+ : that.slice(index, index + search.length) === search;
+ }
+});
+
+},{"106":106,"117":117,"40":40,"41":41}],250:[function(_dereq_,module,exports){
+'use strict';
+// B.2.3.12 String.prototype.strike()
+_dereq_(107)('strike', function (createHTML) {
+ return function strike() {
+ return createHTML(this, 'strike', '', '');
+ };
+});
+
+},{"107":107}],251:[function(_dereq_,module,exports){
+'use strict';
+// B.2.3.13 String.prototype.sub()
+_dereq_(107)('sub', function (createHTML) {
+ return function sub() {
+ return createHTML(this, 'sub', '', '');
+ };
+});
+
+},{"107":107}],252:[function(_dereq_,module,exports){
+'use strict';
+// B.2.3.14 String.prototype.sup()
+_dereq_(107)('sup', function (createHTML) {
+ return function sup() {
+ return createHTML(this, 'sup', '', '');
+ };
+});
+
+},{"107":107}],253:[function(_dereq_,module,exports){
+'use strict';
+// 21.1.3.25 String.prototype.trim()
+_dereq_(110)('trim', function ($trim) {
+ return function trim() {
+ return $trim(this, 3);
+ };
+});
+
+},{"110":110}],254:[function(_dereq_,module,exports){
+'use strict';
+// ECMAScript 6 symbols shim
+var global = _dereq_(46);
+var has = _dereq_(47);
+var DESCRIPTORS = _dereq_(36);
+var $export = _dereq_(40);
+var redefine = _dereq_(94);
+var META = _dereq_(70).KEY;
+var $fails = _dereq_(42);
+var shared = _dereq_(102);
+var setToStringTag = _dereq_(100);
+var uid = _dereq_(123);
+var wks = _dereq_(128);
+var wksExt = _dereq_(127);
+var wksDefine = _dereq_(126);
+var enumKeys = _dereq_(39);
+var isArray = _dereq_(55);
+var anObject = _dereq_(16);
+var isObject = _dereq_(57);
+var toIObject = _dereq_(116);
+var toPrimitive = _dereq_(119);
+var createDesc = _dereq_(92);
+var _create = _dereq_(74);
+var gOPNExt = _dereq_(78);
+var $GOPD = _dereq_(77);
+var $DP = _dereq_(75);
+var $keys = _dereq_(83);
+var gOPD = $GOPD.f;
+var dP = $DP.f;
+var gOPN = gOPNExt.f;
+var $Symbol = global.Symbol;
+var $JSON = global.JSON;
+var _stringify = $JSON && $JSON.stringify;
+var PROTOTYPE = 'prototype';
+var HIDDEN = wks('_hidden');
+var TO_PRIMITIVE = wks('toPrimitive');
+var isEnum = {}.propertyIsEnumerable;
+var SymbolRegistry = shared('symbol-registry');
+var AllSymbols = shared('symbols');
+var OPSymbols = shared('op-symbols');
+var ObjectProto = Object[PROTOTYPE];
+var USE_NATIVE = typeof $Symbol == 'function';
+var QObject = global.QObject;
+// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173
+var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;
+
+// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687
+var setSymbolDesc = DESCRIPTORS && $fails(function () {
+ return _create(dP({}, 'a', {
+ get: function () { return dP(this, 'a', { value: 7 }).a; }
+ })).a != 7;
+}) ? function (it, key, D) {
+ var protoDesc = gOPD(ObjectProto, key);
+ if (protoDesc) delete ObjectProto[key];
+ dP(it, key, D);
+ if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);
+} : dP;
+
+var wrap = function (tag) {
+ var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);
+ sym._k = tag;
+ return sym;
+};
+
+var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {
+ return typeof it == 'symbol';
+} : function (it) {
+ return it instanceof $Symbol;
+};
+
+var $defineProperty = function defineProperty(it, key, D) {
+ if (it === ObjectProto) $defineProperty(OPSymbols, key, D);
+ anObject(it);
+ key = toPrimitive(key, true);
+ anObject(D);
+ if (has(AllSymbols, key)) {
+ if (!D.enumerable) {
+ if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));
+ it[HIDDEN][key] = true;
+ } else {
+ if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;
+ D = _create(D, { enumerable: createDesc(0, false) });
+ } return setSymbolDesc(it, key, D);
+ } return dP(it, key, D);
+};
+var $defineProperties = function defineProperties(it, P) {
+ anObject(it);
+ var keys = enumKeys(P = toIObject(P));
+ var i = 0;
+ var l = keys.length;
+ var key;
+ while (l > i) $defineProperty(it, key = keys[i++], P[key]);
+ return it;
+};
+var $create = function create(it, P) {
+ return P === undefined ? _create(it) : $defineProperties(_create(it), P);
+};
+var $propertyIsEnumerable = function propertyIsEnumerable(key) {
+ var E = isEnum.call(this, key = toPrimitive(key, true));
+ if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;
+ return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;
+};
+var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {
+ it = toIObject(it);
+ key = toPrimitive(key, true);
+ if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;
+ var D = gOPD(it, key);
+ if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;
+ return D;
+};
+var $getOwnPropertyNames = function getOwnPropertyNames(it) {
+ var names = gOPN(toIObject(it));
+ var result = [];
+ var i = 0;
+ var key;
+ while (names.length > i) {
+ if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);
+ } return result;
+};
+var $getOwnPropertySymbols = function getOwnPropertySymbols(it) {
+ var IS_OP = it === ObjectProto;
+ var names = gOPN(IS_OP ? OPSymbols : toIObject(it));
+ var result = [];
+ var i = 0;
+ var key;
+ while (names.length > i) {
+ if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);
+ } return result;
+};
+
+// 19.4.1.1 Symbol([description])
+if (!USE_NATIVE) {
+ $Symbol = function Symbol() {
+ if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');
+ var tag = uid(arguments.length > 0 ? arguments[0] : undefined);
+ var $set = function (value) {
+ if (this === ObjectProto) $set.call(OPSymbols, value);
+ if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;
+ setSymbolDesc(this, tag, createDesc(1, value));
+ };
+ if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });
+ return wrap(tag);
+ };
+ redefine($Symbol[PROTOTYPE], 'toString', function toString() {
+ return this._k;
+ });
+
+ $GOPD.f = $getOwnPropertyDescriptor;
+ $DP.f = $defineProperty;
+ _dereq_(79).f = gOPNExt.f = $getOwnPropertyNames;
+ _dereq_(84).f = $propertyIsEnumerable;
+ _dereq_(80).f = $getOwnPropertySymbols;
+
+ if (DESCRIPTORS && !_dereq_(65)) {
+ redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);
+ }
+
+ wksExt.f = function (name) {
+ return wrap(wks(name));
+ };
+}
+
+$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });
+
+for (var es6Symbols = (
+ // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14
+ 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'
+).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);
+
+for (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);
+
+$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {
+ // 19.4.2.1 Symbol.for(key)
+ 'for': function (key) {
+ return has(SymbolRegistry, key += '')
+ ? SymbolRegistry[key]
+ : SymbolRegistry[key] = $Symbol(key);
+ },
+ // 19.4.2.5 Symbol.keyFor(sym)
+ keyFor: function keyFor(sym) {
+ if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');
+ for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;
+ },
+ useSetter: function () { setter = true; },
+ useSimple: function () { setter = false; }
+});
+
+$export($export.S + $export.F * !USE_NATIVE, 'Object', {
+ // 19.1.2.2 Object.create(O [, Properties])
+ create: $create,
+ // 19.1.2.4 Object.defineProperty(O, P, Attributes)
+ defineProperty: $defineProperty,
+ // 19.1.2.3 Object.defineProperties(O, Properties)
+ defineProperties: $defineProperties,
+ // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
+ getOwnPropertyDescriptor: $getOwnPropertyDescriptor,
+ // 19.1.2.7 Object.getOwnPropertyNames(O)
+ getOwnPropertyNames: $getOwnPropertyNames,
+ // 19.1.2.8 Object.getOwnPropertySymbols(O)
+ getOwnPropertySymbols: $getOwnPropertySymbols
+});
+
+// 24.3.2 JSON.stringify(value [, replacer [, space]])
+$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {
+ var S = $Symbol();
+ // MS Edge converts symbol values to JSON as {}
+ // WebKit converts symbol values to JSON as null
+ // V8 throws on boxed symbols
+ return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';
+})), 'JSON', {
+ stringify: function stringify(it) {
+ var args = [it];
+ var i = 1;
+ var replacer, $replacer;
+ while (arguments.length > i) args.push(arguments[i++]);
+ $replacer = replacer = args[1];
+ if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined
+ if (!isArray(replacer)) replacer = function (key, value) {
+ if (typeof $replacer == 'function') value = $replacer.call(this, key, value);
+ if (!isSymbol(value)) return value;
+ };
+ args[1] = replacer;
+ return _stringify.apply($JSON, args);
+ }
+});
+
+// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)
+$Symbol[PROTOTYPE][TO_PRIMITIVE] || _dereq_(48)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);
+// 19.4.3.5 Symbol.prototype[@@toStringTag]
+setToStringTag($Symbol, 'Symbol');
+// 20.2.1.9 Math[@@toStringTag]
+setToStringTag(Math, 'Math', true);
+// 24.3.3 JSON[@@toStringTag]
+setToStringTag(global.JSON, 'JSON', true);
+
+},{"100":100,"102":102,"116":116,"119":119,"123":123,"126":126,"127":127,"128":128,"16":16,"36":36,"39":39,"40":40,"42":42,"46":46,"47":47,"48":48,"55":55,"57":57,"65":65,"70":70,"74":74,"75":75,"77":77,"78":78,"79":79,"80":80,"83":83,"84":84,"92":92,"94":94}],255:[function(_dereq_,module,exports){
+'use strict';
+var $export = _dereq_(40);
+var $typed = _dereq_(122);
+var buffer = _dereq_(121);
+var anObject = _dereq_(16);
+var toAbsoluteIndex = _dereq_(113);
+var toLength = _dereq_(117);
+var isObject = _dereq_(57);
+var ArrayBuffer = _dereq_(46).ArrayBuffer;
+var speciesConstructor = _dereq_(103);
+var $ArrayBuffer = buffer.ArrayBuffer;
+var $DataView = buffer.DataView;
+var $isView = $typed.ABV && ArrayBuffer.isView;
+var $slice = $ArrayBuffer.prototype.slice;
+var VIEW = $typed.VIEW;
+var ARRAY_BUFFER = 'ArrayBuffer';
+
+$export($export.G + $export.W + $export.F * (ArrayBuffer !== $ArrayBuffer), { ArrayBuffer: $ArrayBuffer });
+
+$export($export.S + $export.F * !$typed.CONSTR, ARRAY_BUFFER, {
+ // 24.1.3.1 ArrayBuffer.isView(arg)
+ isView: function isView(it) {
+ return $isView && $isView(it) || isObject(it) && VIEW in it;
+ }
+});
+
+$export($export.P + $export.U + $export.F * _dereq_(42)(function () {
+ return !new $ArrayBuffer(2).slice(1, undefined).byteLength;
+}), ARRAY_BUFFER, {
+ // 24.1.4.3 ArrayBuffer.prototype.slice(start, end)
+ slice: function slice(start, end) {
+ if ($slice !== undefined && end === undefined) return $slice.call(anObject(this), start); // FF fix
+ var len = anObject(this).byteLength;
+ var first = toAbsoluteIndex(start, len);
+ var fin = toAbsoluteIndex(end === undefined ? len : end, len);
+ var result = new (speciesConstructor(this, $ArrayBuffer))(toLength(fin - first));
+ var viewS = new $DataView(this);
+ var viewT = new $DataView(result);
+ var index = 0;
+ while (first < fin) {
+ viewT.setUint8(index++, viewS.getUint8(first++));
+ } return result;
+ }
+});
+
+_dereq_(99)(ARRAY_BUFFER);
+
+},{"103":103,"113":113,"117":117,"121":121,"122":122,"16":16,"40":40,"42":42,"46":46,"57":57,"99":99}],256:[function(_dereq_,module,exports){
+var $export = _dereq_(40);
+$export($export.G + $export.W + $export.F * !_dereq_(122).ABV, {
+ DataView: _dereq_(121).DataView
+});
+
+},{"121":121,"122":122,"40":40}],257:[function(_dereq_,module,exports){
+_dereq_(120)('Float32', 4, function (init) {
+ return function Float32Array(data, byteOffset, length) {
+ return init(this, data, byteOffset, length);
+ };
+});
+
+},{"120":120}],258:[function(_dereq_,module,exports){
+_dereq_(120)('Float64', 8, function (init) {
+ return function Float64Array(data, byteOffset, length) {
+ return init(this, data, byteOffset, length);
+ };
+});
+
+},{"120":120}],259:[function(_dereq_,module,exports){
+_dereq_(120)('Int16', 2, function (init) {
+ return function Int16Array(data, byteOffset, length) {
+ return init(this, data, byteOffset, length);
+ };
+});
+
+},{"120":120}],260:[function(_dereq_,module,exports){
+_dereq_(120)('Int32', 4, function (init) {
+ return function Int32Array(data, byteOffset, length) {
+ return init(this, data, byteOffset, length);
+ };
+});
+
+},{"120":120}],261:[function(_dereq_,module,exports){
+_dereq_(120)('Int8', 1, function (init) {
+ return function Int8Array(data, byteOffset, length) {
+ return init(this, data, byteOffset, length);
+ };
+});
+
+},{"120":120}],262:[function(_dereq_,module,exports){
+_dereq_(120)('Uint16', 2, function (init) {
+ return function Uint16Array(data, byteOffset, length) {
+ return init(this, data, byteOffset, length);
+ };
+});
+
+},{"120":120}],263:[function(_dereq_,module,exports){
+_dereq_(120)('Uint32', 4, function (init) {
+ return function Uint32Array(data, byteOffset, length) {
+ return init(this, data, byteOffset, length);
+ };
+});
+
+},{"120":120}],264:[function(_dereq_,module,exports){
+_dereq_(120)('Uint8', 1, function (init) {
+ return function Uint8Array(data, byteOffset, length) {
+ return init(this, data, byteOffset, length);
+ };
+});
+
+},{"120":120}],265:[function(_dereq_,module,exports){
+_dereq_(120)('Uint8', 1, function (init) {
+ return function Uint8ClampedArray(data, byteOffset, length) {
+ return init(this, data, byteOffset, length);
+ };
+}, true);
+
+},{"120":120}],266:[function(_dereq_,module,exports){
+'use strict';
+var each = _dereq_(20)(0);
+var redefine = _dereq_(94);
+var meta = _dereq_(70);
+var assign = _dereq_(73);
+var weak = _dereq_(28);
+var isObject = _dereq_(57);
+var fails = _dereq_(42);
+var validate = _dereq_(125);
+var WEAK_MAP = 'WeakMap';
+var getWeak = meta.getWeak;
+var isExtensible = Object.isExtensible;
+var uncaughtFrozenStore = weak.ufstore;
+var tmp = {};
+var InternalMap;
+
+var wrapper = function (get) {
+ return function WeakMap() {
+ return get(this, arguments.length > 0 ? arguments[0] : undefined);
+ };
+};
+
+var methods = {
+ // 23.3.3.3 WeakMap.prototype.get(key)
+ get: function get(key) {
+ if (isObject(key)) {
+ var data = getWeak(key);
+ if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key);
+ return data ? data[this._i] : undefined;
+ }
+ },
+ // 23.3.3.5 WeakMap.prototype.set(key, value)
+ set: function set(key, value) {
+ return weak.def(validate(this, WEAK_MAP), key, value);
+ }
+};
+
+// 23.3 WeakMap Objects
+var $WeakMap = module.exports = _dereq_(29)(WEAK_MAP, wrapper, methods, weak, true, true);
+
+// IE11 WeakMap frozen keys fix
+if (fails(function () { return new $WeakMap().set((Object.freeze || Object)(tmp), 7).get(tmp) != 7; })) {
+ InternalMap = weak.getConstructor(wrapper, WEAK_MAP);
+ assign(InternalMap.prototype, methods);
+ meta.NEED = true;
+ each(['delete', 'has', 'get', 'set'], function (key) {
+ var proto = $WeakMap.prototype;
+ var method = proto[key];
+ redefine(proto, key, function (a, b) {
+ // store frozen objects on internal weakmap shim
+ if (isObject(a) && !isExtensible(a)) {
+ if (!this._f) this._f = new InternalMap();
+ var result = this._f[key](a, b);
+ return key == 'set' ? this : result;
+ // store all the rest on native weakmap
+ } return method.call(this, a, b);
+ });
+ });
+}
+
+},{"125":125,"20":20,"28":28,"29":29,"42":42,"57":57,"70":70,"73":73,"94":94}],267:[function(_dereq_,module,exports){
+'use strict';
+var weak = _dereq_(28);
+var validate = _dereq_(125);
+var WEAK_SET = 'WeakSet';
+
+// 23.4 WeakSet Objects
+_dereq_(29)(WEAK_SET, function (get) {
+ return function WeakSet() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };
+}, {
+ // 23.4.3.1 WeakSet.prototype.add(value)
+ add: function add(value) {
+ return weak.def(validate(this, WEAK_SET), value, true);
+ }
+}, weak, false, true);
+
+},{"125":125,"28":28,"29":29}],268:[function(_dereq_,module,exports){
+'use strict';
+// https://github.com/tc39/Array.prototype.includes
+var $export = _dereq_(40);
+var $includes = _dereq_(19)(true);
+
+$export($export.P, 'Array', {
+ includes: function includes(el /* , fromIndex = 0 */) {
+ return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);
+ }
+});
+
+_dereq_(13)('includes');
+
+},{"13":13,"19":19,"40":40}],269:[function(_dereq_,module,exports){
+// https://github.com/tc39/proposal-object-values-entries
+var $export = _dereq_(40);
+var $entries = _dereq_(86)(true);
+
+$export($export.S, 'Object', {
+ entries: function entries(it) {
+ return $entries(it);
+ }
+});
+
+},{"40":40,"86":86}],270:[function(_dereq_,module,exports){
+// https://github.com/tc39/proposal-object-getownpropertydescriptors
+var $export = _dereq_(40);
+var ownKeys = _dereq_(87);
+var toIObject = _dereq_(116);
+var gOPD = _dereq_(77);
+var createProperty = _dereq_(31);
+
+$export($export.S, 'Object', {
+ getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {
+ var O = toIObject(object);
+ var getDesc = gOPD.f;
+ var keys = ownKeys(O);
+ var result = {};
+ var i = 0;
+ var key, desc;
+ while (keys.length > i) {
+ desc = getDesc(O, key = keys[i++]);
+ if (desc !== undefined) createProperty(result, key, desc);
+ }
+ return result;
+ }
+});
+
+},{"116":116,"31":31,"40":40,"77":77,"87":87}],271:[function(_dereq_,module,exports){
+// https://github.com/tc39/proposal-object-values-entries
+var $export = _dereq_(40);
+var $values = _dereq_(86)(false);
+
+$export($export.S, 'Object', {
+ values: function values(it) {
+ return $values(it);
+ }
+});
+
+},{"40":40,"86":86}],272:[function(_dereq_,module,exports){
+// https://github.com/tc39/proposal-promise-finally
+'use strict';
+var $export = _dereq_(40);
+var core = _dereq_(30);
+var global = _dereq_(46);
+var speciesConstructor = _dereq_(103);
+var promiseResolve = _dereq_(91);
+
+$export($export.P + $export.R, 'Promise', { 'finally': function (onFinally) {
+ var C = speciesConstructor(this, core.Promise || global.Promise);
+ var isFunction = typeof onFinally == 'function';
+ return this.then(
+ isFunction ? function (x) {
+ return promiseResolve(C, onFinally()).then(function () { return x; });
+ } : onFinally,
+ isFunction ? function (e) {
+ return promiseResolve(C, onFinally()).then(function () { throw e; });
+ } : onFinally
+ );
+} });
+
+},{"103":103,"30":30,"40":40,"46":46,"91":91}],273:[function(_dereq_,module,exports){
+'use strict';
+// https://github.com/tc39/proposal-string-pad-start-end
+var $export = _dereq_(40);
+var $pad = _dereq_(108);
+var userAgent = _dereq_(124);
+
+// https://github.com/zloirock/core-js/issues/280
+$export($export.P + $export.F * /Version\/10\.\d+(\.\d+)? Safari\//.test(userAgent), 'String', {
+ padEnd: function padEnd(maxLength /* , fillString = ' ' */) {
+ return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, false);
+ }
+});
+
+},{"108":108,"124":124,"40":40}],274:[function(_dereq_,module,exports){
+'use strict';
+// https://github.com/tc39/proposal-string-pad-start-end
+var $export = _dereq_(40);
+var $pad = _dereq_(108);
+var userAgent = _dereq_(124);
+
+// https://github.com/zloirock/core-js/issues/280
+$export($export.P + $export.F * /Version\/10\.\d+(\.\d+)? Safari\//.test(userAgent), 'String', {
+ padStart: function padStart(maxLength /* , fillString = ' ' */) {
+ return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true);
+ }
+});
+
+},{"108":108,"124":124,"40":40}],275:[function(_dereq_,module,exports){
+_dereq_(126)('asyncIterator');
+
+},{"126":126}],276:[function(_dereq_,module,exports){
+var $iterators = _dereq_(140);
+var getKeys = _dereq_(83);
+var redefine = _dereq_(94);
+var global = _dereq_(46);
+var hide = _dereq_(48);
+var Iterators = _dereq_(64);
+var wks = _dereq_(128);
+var ITERATOR = wks('iterator');
+var TO_STRING_TAG = wks('toStringTag');
+var ArrayValues = Iterators.Array;
+
+var DOMIterables = {
+ CSSRuleList: true, // TODO: Not spec compliant, should be false.
+ CSSStyleDeclaration: false,
+ CSSValueList: false,
+ ClientRectList: false,
+ DOMRectList: false,
+ DOMStringList: false,
+ DOMTokenList: true,
+ DataTransferItemList: false,
+ FileList: false,
+ HTMLAllCollection: false,
+ HTMLCollection: false,
+ HTMLFormElement: false,
+ HTMLSelectElement: false,
+ MediaList: true, // TODO: Not spec compliant, should be false.
+ MimeTypeArray: false,
+ NamedNodeMap: false,
+ NodeList: true,
+ PaintRequestList: false,
+ Plugin: false,
+ PluginArray: false,
+ SVGLengthList: false,
+ SVGNumberList: false,
+ SVGPathSegList: false,
+ SVGPointList: false,
+ SVGStringList: false,
+ SVGTransformList: false,
+ SourceBufferList: false,
+ StyleSheetList: true, // TODO: Not spec compliant, should be false.
+ TextTrackCueList: false,
+ TextTrackList: false,
+ TouchList: false
+};
+
+for (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {
+ var NAME = collections[i];
+ var explicit = DOMIterables[NAME];
+ var Collection = global[NAME];
+ var proto = Collection && Collection.prototype;
+ var key;
+ if (proto) {
+ if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);
+ if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);
+ Iterators[NAME] = ArrayValues;
+ if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true);
+ }
+}
+
+},{"128":128,"140":140,"46":46,"48":48,"64":64,"83":83,"94":94}],277:[function(_dereq_,module,exports){
+var $export = _dereq_(40);
+var $task = _dereq_(112);
+$export($export.G + $export.B, {
+ setImmediate: $task.set,
+ clearImmediate: $task.clear
+});
+
+},{"112":112,"40":40}],278:[function(_dereq_,module,exports){
+// ie9- setTimeout & setInterval additional parameters fix
+var global = _dereq_(46);
+var $export = _dereq_(40);
+var userAgent = _dereq_(124);
+var slice = [].slice;
+var MSIE = /MSIE .\./.test(userAgent); // <- dirty ie9- check
+var wrap = function (set) {
+ return function (fn, time /* , ...args */) {
+ var boundArgs = arguments.length > 2;
+ var args = boundArgs ? slice.call(arguments, 2) : false;
+ return set(boundArgs ? function () {
+ // eslint-disable-next-line no-new-func
+ (typeof fn == 'function' ? fn : Function(fn)).apply(this, args);
+ } : fn, time);
+ };
+};
+$export($export.G + $export.B + $export.F * MSIE, {
+ setTimeout: wrap(global.setTimeout),
+ setInterval: wrap(global.setInterval)
+});
+
+},{"124":124,"40":40,"46":46}],279:[function(_dereq_,module,exports){
+_dereq_(278);
+_dereq_(277);
+_dereq_(276);
+module.exports = _dereq_(30);
+
+},{"276":276,"277":277,"278":278,"30":30}],280:[function(_dereq_,module,exports){
+/**
+ * Copyright (c) 2014-present, Facebook, Inc.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+!(function(global) {
+ "use strict";
+
+ var Op = Object.prototype;
+ var hasOwn = Op.hasOwnProperty;
+ var undefined; // More compressible than void 0.
+ var $Symbol = typeof Symbol === "function" ? Symbol : {};
+ var iteratorSymbol = $Symbol.iterator || "@@iterator";
+ var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator";
+ var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag";
+
+ var inModule = typeof module === "object";
+ var runtime = global.regeneratorRuntime;
+ if (runtime) {
+ if (inModule) {
+ // If regeneratorRuntime is defined globally and we're in a module,
+ // make the exports object identical to regeneratorRuntime.
+ module.exports = runtime;
+ }
+ // Don't bother evaluating the rest of this file if the runtime was
+ // already defined globally.
+ return;
+ }
+
+ // Define the runtime globally (as expected by generated code) as either
+ // module.exports (if we're in a module) or a new, empty object.
+ runtime = global.regeneratorRuntime = inModule ? module.exports : {};
+
+ function wrap(innerFn, outerFn, self, tryLocsList) {
+ // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.
+ var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;
+ var generator = Object.create(protoGenerator.prototype);
+ var context = new Context(tryLocsList || []);
+
+ // The ._invoke method unifies the implementations of the .next,
+ // .throw, and .return methods.
+ generator._invoke = makeInvokeMethod(innerFn, self, context);
+
+ return generator;
+ }
+ runtime.wrap = wrap;
+
+ // Try/catch helper to minimize deoptimizations. Returns a completion
+ // record like context.tryEntries[i].completion. This interface could
+ // have been (and was previously) designed to take a closure to be
+ // invoked without arguments, but in all the cases we care about we
+ // already have an existing method we want to call, so there's no need
+ // to create a new function object. We can even get away with assuming
+ // the method takes exactly one argument, since that happens to be true
+ // in every case, so we don't have to touch the arguments object. The
+ // only additional allocation required is the completion record, which
+ // has a stable shape and so hopefully should be cheap to allocate.
+ function tryCatch(fn, obj, arg) {
+ try {
+ return { type: "normal", arg: fn.call(obj, arg) };
+ } catch (err) {
+ return { type: "throw", arg: err };
+ }
+ }
+
+ var GenStateSuspendedStart = "suspendedStart";
+ var GenStateSuspendedYield = "suspendedYield";
+ var GenStateExecuting = "executing";
+ var GenStateCompleted = "completed";
+
+ // Returning this object from the innerFn has the same effect as
+ // breaking out of the dispatch switch statement.
+ var ContinueSentinel = {};
+
+ // Dummy constructor functions that we use as the .constructor and
+ // .constructor.prototype properties for functions that return Generator
+ // objects. For full spec compliance, you may wish to configure your
+ // minifier not to mangle the names of these two functions.
+ function Generator() {}
+ function GeneratorFunction() {}
+ function GeneratorFunctionPrototype() {}
+
+ // This is a polyfill for %IteratorPrototype% for environments that
+ // don't natively support it.
+ var IteratorPrototype = {};
+ IteratorPrototype[iteratorSymbol] = function () {
+ return this;
+ };
+
+ var getProto = Object.getPrototypeOf;
+ var NativeIteratorPrototype = getProto && getProto(getProto(values([])));
+ if (NativeIteratorPrototype &&
+ NativeIteratorPrototype !== Op &&
+ hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {
+ // This environment has a native %IteratorPrototype%; use it instead
+ // of the polyfill.
+ IteratorPrototype = NativeIteratorPrototype;
+ }
+
+ var Gp = GeneratorFunctionPrototype.prototype =
+ Generator.prototype = Object.create(IteratorPrototype);
+ GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;
+ GeneratorFunctionPrototype.constructor = GeneratorFunction;
+ GeneratorFunctionPrototype[toStringTagSymbol] =
+ GeneratorFunction.displayName = "GeneratorFunction";
+
+ // Helper for defining the .next, .throw, and .return methods of the
+ // Iterator interface in terms of a single ._invoke method.
+ function defineIteratorMethods(prototype) {
+ ["next", "throw", "return"].forEach(function(method) {
+ prototype[method] = function(arg) {
+ return this._invoke(method, arg);
+ };
+ });
+ }
+
+ runtime.isGeneratorFunction = function(genFun) {
+ var ctor = typeof genFun === "function" && genFun.constructor;
+ return ctor
+ ? ctor === GeneratorFunction ||
+ // For the native GeneratorFunction constructor, the best we can
+ // do is to check its .name property.
+ (ctor.displayName || ctor.name) === "GeneratorFunction"
+ : false;
+ };
+
+ runtime.mark = function(genFun) {
+ if (Object.setPrototypeOf) {
+ Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);
+ } else {
+ genFun.__proto__ = GeneratorFunctionPrototype;
+ if (!(toStringTagSymbol in genFun)) {
+ genFun[toStringTagSymbol] = "GeneratorFunction";
+ }
+ }
+ genFun.prototype = Object.create(Gp);
+ return genFun;
+ };
+
+ // Within the body of any async function, `await x` is transformed to
+ // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test
+ // `hasOwn.call(value, "__await")` to determine if the yielded value is
+ // meant to be awaited.
+ runtime.awrap = function(arg) {
+ return { __await: arg };
+ };
+
+ function AsyncIterator(generator) {
+ function invoke(method, arg, resolve, reject) {
+ var record = tryCatch(generator[method], generator, arg);
+ if (record.type === "throw") {
+ reject(record.arg);
+ } else {
+ var result = record.arg;
+ var value = result.value;
+ if (value &&
+ typeof value === "object" &&
+ hasOwn.call(value, "__await")) {
+ return Promise.resolve(value.__await).then(function(value) {
+ invoke("next", value, resolve, reject);
+ }, function(err) {
+ invoke("throw", err, resolve, reject);
+ });
+ }
+
+ return Promise.resolve(value).then(function(unwrapped) {
+ // When a yielded Promise is resolved, its final value becomes
+ // the .value of the Promise<{value,done}> result for the
+ // current iteration.
+ result.value = unwrapped;
+ resolve(result);
+ }, function(error) {
+ // If a rejected Promise was yielded, throw the rejection back
+ // into the async generator function so it can be handled there.
+ return invoke("throw", error, resolve, reject);
+ });
+ }
+ }
+
+ var previousPromise;
+
+ function enqueue(method, arg) {
+ function callInvokeWithMethodAndArg() {
+ return new Promise(function(resolve, reject) {
+ invoke(method, arg, resolve, reject);
+ });
+ }
+
+ return previousPromise =
+ // If enqueue has been called before, then we want to wait until
+ // all previous Promises have been resolved before calling invoke,
+ // so that results are always delivered in the correct order. If
+ // enqueue has not been called before, then it is important to
+ // call invoke immediately, without waiting on a callback to fire,
+ // so that the async generator function has the opportunity to do
+ // any necessary setup in a predictable way. This predictability
+ // is why the Promise constructor synchronously invokes its
+ // executor callback, and why async functions synchronously
+ // execute code before the first await. Since we implement simple
+ // async functions in terms of async generators, it is especially
+ // important to get this right, even though it requires care.
+ previousPromise ? previousPromise.then(
+ callInvokeWithMethodAndArg,
+ // Avoid propagating failures to Promises returned by later
+ // invocations of the iterator.
+ callInvokeWithMethodAndArg
+ ) : callInvokeWithMethodAndArg();
+ }
+
+ // Define the unified helper method that is used to implement .next,
+ // .throw, and .return (see defineIteratorMethods).
+ this._invoke = enqueue;
+ }
+
+ defineIteratorMethods(AsyncIterator.prototype);
+ AsyncIterator.prototype[asyncIteratorSymbol] = function () {
+ return this;
+ };
+ runtime.AsyncIterator = AsyncIterator;
+
+ // Note that simple async functions are implemented on top of
+ // AsyncIterator objects; they just return a Promise for the value of
+ // the final result produced by the iterator.
+ runtime.async = function(innerFn, outerFn, self, tryLocsList) {
+ var iter = new AsyncIterator(
+ wrap(innerFn, outerFn, self, tryLocsList)
+ );
+
+ return runtime.isGeneratorFunction(outerFn)
+ ? iter // If outerFn is a generator, return the full iterator.
+ : iter.next().then(function(result) {
+ return result.done ? result.value : iter.next();
+ });
+ };
+
+ function makeInvokeMethod(innerFn, self, context) {
+ var state = GenStateSuspendedStart;
+
+ return function invoke(method, arg) {
+ if (state === GenStateExecuting) {
+ throw new Error("Generator is already running");
+ }
+
+ if (state === GenStateCompleted) {
+ if (method === "throw") {
+ throw arg;
+ }
+
+ // Be forgiving, per 25.3.3.3.3 of the spec:
+ // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume
+ return doneResult();
+ }
+
+ context.method = method;
+ context.arg = arg;
+
+ while (true) {
+ var delegate = context.delegate;
+ if (delegate) {
+ var delegateResult = maybeInvokeDelegate(delegate, context);
+ if (delegateResult) {
+ if (delegateResult === ContinueSentinel) continue;
+ return delegateResult;
+ }
+ }
+
+ if (context.method === "next") {
+ // Setting context._sent for legacy support of Babel's
+ // function.sent implementation.
+ context.sent = context._sent = context.arg;
+
+ } else if (context.method === "throw") {
+ if (state === GenStateSuspendedStart) {
+ state = GenStateCompleted;
+ throw context.arg;
+ }
+
+ context.dispatchException(context.arg);
+
+ } else if (context.method === "return") {
+ context.abrupt("return", context.arg);
+ }
+
+ state = GenStateExecuting;
+
+ var record = tryCatch(innerFn, self, context);
+ if (record.type === "normal") {
+ // If an exception is thrown from innerFn, we leave state ===
+ // GenStateExecuting and loop back for another invocation.
+ state = context.done
+ ? GenStateCompleted
+ : GenStateSuspendedYield;
+
+ if (record.arg === ContinueSentinel) {
+ continue;
+ }
+
+ return {
+ value: record.arg,
+ done: context.done
+ };
+
+ } else if (record.type === "throw") {
+ state = GenStateCompleted;
+ // Dispatch the exception by looping back around to the
+ // context.dispatchException(context.arg) call above.
+ context.method = "throw";
+ context.arg = record.arg;
+ }
+ }
+ };
+ }
+
+ // Call delegate.iterator[context.method](context.arg) and handle the
+ // result, either by returning a { value, done } result from the
+ // delegate iterator, or by modifying context.method and context.arg,
+ // setting context.delegate to null, and returning the ContinueSentinel.
+ function maybeInvokeDelegate(delegate, context) {
+ var method = delegate.iterator[context.method];
+ if (method === undefined) {
+ // A .throw or .return when the delegate iterator has no .throw
+ // method always terminates the yield* loop.
+ context.delegate = null;
+
+ if (context.method === "throw") {
+ if (delegate.iterator.return) {
+ // If the delegate iterator has a return method, give it a
+ // chance to clean up.
+ context.method = "return";
+ context.arg = undefined;
+ maybeInvokeDelegate(delegate, context);
+
+ if (context.method === "throw") {
+ // If maybeInvokeDelegate(context) changed context.method from
+ // "return" to "throw", let that override the TypeError below.
+ return ContinueSentinel;
+ }
+ }
+
+ context.method = "throw";
+ context.arg = new TypeError(
+ "The iterator does not provide a 'throw' method");
+ }
+
+ return ContinueSentinel;
+ }
+
+ var record = tryCatch(method, delegate.iterator, context.arg);
+
+ if (record.type === "throw") {
+ context.method = "throw";
+ context.arg = record.arg;
+ context.delegate = null;
+ return ContinueSentinel;
+ }
+
+ var info = record.arg;
+
+ if (! info) {
+ context.method = "throw";
+ context.arg = new TypeError("iterator result is not an object");
+ context.delegate = null;
+ return ContinueSentinel;
+ }
+
+ if (info.done) {
+ // Assign the result of the finished delegate to the temporary
+ // variable specified by delegate.resultName (see delegateYield).
+ context[delegate.resultName] = info.value;
+
+ // Resume execution at the desired location (see delegateYield).
+ context.next = delegate.nextLoc;
+
+ // If context.method was "throw" but the delegate handled the
+ // exception, let the outer generator proceed normally. If
+ // context.method was "next", forget context.arg since it has been
+ // "consumed" by the delegate iterator. If context.method was
+ // "return", allow the original .return call to continue in the
+ // outer generator.
+ if (context.method !== "return") {
+ context.method = "next";
+ context.arg = undefined;
+ }
+
+ } else {
+ // Re-yield the result returned by the delegate method.
+ return info;
+ }
+
+ // The delegate iterator is finished, so forget it and continue with
+ // the outer generator.
+ context.delegate = null;
+ return ContinueSentinel;
+ }
+
+ // Define Generator.prototype.{next,throw,return} in terms of the
+ // unified ._invoke helper method.
+ defineIteratorMethods(Gp);
+
+ Gp[toStringTagSymbol] = "Generator";
+
+ // A Generator should always return itself as the iterator object when the
+ // @@iterator function is called on it. Some browsers' implementations of the
+ // iterator prototype chain incorrectly implement this, causing the Generator
+ // object to not be returned from this call. This ensures that doesn't happen.
+ // See https://github.com/facebook/regenerator/issues/274 for more details.
+ Gp[iteratorSymbol] = function() {
+ return this;
+ };
+
+ Gp.toString = function() {
+ return "[object Generator]";
+ };
+
+ function pushTryEntry(locs) {
+ var entry = { tryLoc: locs[0] };
+
+ if (1 in locs) {
+ entry.catchLoc = locs[1];
+ }
+
+ if (2 in locs) {
+ entry.finallyLoc = locs[2];
+ entry.afterLoc = locs[3];
+ }
+
+ this.tryEntries.push(entry);
+ }
+
+ function resetTryEntry(entry) {
+ var record = entry.completion || {};
+ record.type = "normal";
+ delete record.arg;
+ entry.completion = record;
+ }
+
+ function Context(tryLocsList) {
+ // The root entry object (effectively a try statement without a catch
+ // or a finally block) gives us a place to store values thrown from
+ // locations where there is no enclosing try statement.
+ this.tryEntries = [{ tryLoc: "root" }];
+ tryLocsList.forEach(pushTryEntry, this);
+ this.reset(true);
+ }
+
+ runtime.keys = function(object) {
+ var keys = [];
+ for (var key in object) {
+ keys.push(key);
+ }
+ keys.reverse();
+
+ // Rather than returning an object with a next method, we keep
+ // things simple and return the next function itself.
+ return function next() {
+ while (keys.length) {
+ var key = keys.pop();
+ if (key in object) {
+ next.value = key;
+ next.done = false;
+ return next;
+ }
+ }
+
+ // To avoid creating an additional object, we just hang the .value
+ // and .done properties off the next function object itself. This
+ // also ensures that the minifier will not anonymize the function.
+ next.done = true;
+ return next;
+ };
+ };
+
+ function values(iterable) {
+ if (iterable) {
+ var iteratorMethod = iterable[iteratorSymbol];
+ if (iteratorMethod) {
+ return iteratorMethod.call(iterable);
+ }
+
+ if (typeof iterable.next === "function") {
+ return iterable;
+ }
+
+ if (!isNaN(iterable.length)) {
+ var i = -1, next = function next() {
+ while (++i < iterable.length) {
+ if (hasOwn.call(iterable, i)) {
+ next.value = iterable[i];
+ next.done = false;
+ return next;
+ }
+ }
+
+ next.value = undefined;
+ next.done = true;
+
+ return next;
+ };
+
+ return next.next = next;
+ }
+ }
+
+ // Return an iterator with no values.
+ return { next: doneResult };
+ }
+ runtime.values = values;
+
+ function doneResult() {
+ return { value: undefined, done: true };
+ }
+
+ Context.prototype = {
+ constructor: Context,
+
+ reset: function(skipTempReset) {
+ this.prev = 0;
+ this.next = 0;
+ // Resetting context._sent for legacy support of Babel's
+ // function.sent implementation.
+ this.sent = this._sent = undefined;
+ this.done = false;
+ this.delegate = null;
+
+ this.method = "next";
+ this.arg = undefined;
+
+ this.tryEntries.forEach(resetTryEntry);
+
+ if (!skipTempReset) {
+ for (var name in this) {
+ // Not sure about the optimal order of these conditions:
+ if (name.charAt(0) === "t" &&
+ hasOwn.call(this, name) &&
+ !isNaN(+name.slice(1))) {
+ this[name] = undefined;
+ }
+ }
+ }
+ },
+
+ stop: function() {
+ this.done = true;
+
+ var rootEntry = this.tryEntries[0];
+ var rootRecord = rootEntry.completion;
+ if (rootRecord.type === "throw") {
+ throw rootRecord.arg;
+ }
+
+ return this.rval;
+ },
+
+ dispatchException: function(exception) {
+ if (this.done) {
+ throw exception;
+ }
+
+ var context = this;
+ function handle(loc, caught) {
+ record.type = "throw";
+ record.arg = exception;
+ context.next = loc;
+
+ if (caught) {
+ // If the dispatched exception was caught by a catch block,
+ // then let that catch block handle the exception normally.
+ context.method = "next";
+ context.arg = undefined;
+ }
+
+ return !! caught;
+ }
+
+ for (var i = this.tryEntries.length - 1; i >= 0; --i) {
+ var entry = this.tryEntries[i];
+ var record = entry.completion;
+
+ if (entry.tryLoc === "root") {
+ // Exception thrown outside of any try block that could handle
+ // it, so set the completion value of the entire function to
+ // throw the exception.
+ return handle("end");
+ }
+
+ if (entry.tryLoc <= this.prev) {
+ var hasCatch = hasOwn.call(entry, "catchLoc");
+ var hasFinally = hasOwn.call(entry, "finallyLoc");
+
+ if (hasCatch && hasFinally) {
+ if (this.prev < entry.catchLoc) {
+ return handle(entry.catchLoc, true);
+ } else if (this.prev < entry.finallyLoc) {
+ return handle(entry.finallyLoc);
+ }
+
+ } else if (hasCatch) {
+ if (this.prev < entry.catchLoc) {
+ return handle(entry.catchLoc, true);
+ }
+
+ } else if (hasFinally) {
+ if (this.prev < entry.finallyLoc) {
+ return handle(entry.finallyLoc);
+ }
+
+ } else {
+ throw new Error("try statement without catch or finally");
+ }
+ }
+ }
+ },
+
+ abrupt: function(type, arg) {
+ for (var i = this.tryEntries.length - 1; i >= 0; --i) {
+ var entry = this.tryEntries[i];
+ if (entry.tryLoc <= this.prev &&
+ hasOwn.call(entry, "finallyLoc") &&
+ this.prev < entry.finallyLoc) {
+ var finallyEntry = entry;
+ break;
+ }
+ }
+
+ if (finallyEntry &&
+ (type === "break" ||
+ type === "continue") &&
+ finallyEntry.tryLoc <= arg &&
+ arg <= finallyEntry.finallyLoc) {
+ // Ignore the finally entry if control is not jumping to a
+ // location outside the try/catch block.
+ finallyEntry = null;
+ }
+
+ var record = finallyEntry ? finallyEntry.completion : {};
+ record.type = type;
+ record.arg = arg;
+
+ if (finallyEntry) {
+ this.method = "next";
+ this.next = finallyEntry.finallyLoc;
+ return ContinueSentinel;
+ }
+
+ return this.complete(record);
+ },
+
+ complete: function(record, afterLoc) {
+ if (record.type === "throw") {
+ throw record.arg;
+ }
+
+ if (record.type === "break" ||
+ record.type === "continue") {
+ this.next = record.arg;
+ } else if (record.type === "return") {
+ this.rval = this.arg = record.arg;
+ this.method = "return";
+ this.next = "end";
+ } else if (record.type === "normal" && afterLoc) {
+ this.next = afterLoc;
+ }
+
+ return ContinueSentinel;
+ },
+
+ finish: function(finallyLoc) {
+ for (var i = this.tryEntries.length - 1; i >= 0; --i) {
+ var entry = this.tryEntries[i];
+ if (entry.finallyLoc === finallyLoc) {
+ this.complete(entry.completion, entry.afterLoc);
+ resetTryEntry(entry);
+ return ContinueSentinel;
+ }
+ }
+ },
+
+ "catch": function(tryLoc) {
+ for (var i = this.tryEntries.length - 1; i >= 0; --i) {
+ var entry = this.tryEntries[i];
+ if (entry.tryLoc === tryLoc) {
+ var record = entry.completion;
+ if (record.type === "throw") {
+ var thrown = record.arg;
+ resetTryEntry(entry);
+ }
+ return thrown;
+ }
+ }
+
+ // The context.catch method must only be called with a location
+ // argument that corresponds to a known catch block.
+ throw new Error("illegal catch attempt");
+ },
+
+ delegateYield: function(iterable, resultName, nextLoc) {
+ this.delegate = {
+ iterator: values(iterable),
+ resultName: resultName,
+ nextLoc: nextLoc
+ };
+
+ if (this.method === "next") {
+ // Deliberately forget the last sent value so that we don't
+ // accidentally pass it on to the delegate.
+ this.arg = undefined;
+ }
+
+ return ContinueSentinel;
+ }
+ };
+})(
+ // In sloppy mode, unbound `this` refers to the global object, fallback to
+ // Function constructor if we're in global strict mode. That is sadly a form
+ // of indirect eval which violates Content Security Policy.
+ (function() {
+ return this || (typeof self === "object" && self);
+ })() || Function("return this")()
+);
+
+},{}]},{},[1]);
diff --git a/functions/kirki/packages/kirki-framework/control-base/LICENSE b/functions/kirki/packages/kirki-framework/control-base/LICENSE
new file mode 100644
index 0000000..f202ade
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-base/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2019 kirki-framework
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/functions/kirki/packages/kirki-framework/control-base/README.md b/functions/kirki/packages/kirki-framework/control-base/README.md
new file mode 100644
index 0000000..2911e78
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-base/README.md
@@ -0,0 +1,5 @@
+# control-base
+
+This package serves as a base for other controls.
+
+By itself the `\Kirki\Control\Base` doesn't do anything. It is simply an object that all other Kirki controls should extend to avoid code duplication.
\ No newline at end of file
diff --git a/functions/kirki/packages/kirki-framework/control-base/dist/control.css b/functions/kirki/packages/kirki-framework/control-base/dist/control.css
new file mode 100644
index 0000000..4e21416
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-base/dist/control.css
@@ -0,0 +1,2 @@
+@media screen and (min-width:1667px){.rtl .wp-full-overlay.expanded{margin-left:0;margin-right:300px}.wp-full-overlay.expanded{margin-left:300px}}#customize-theme-controls .customize-pane-child.open{overflow:visible}.wp-full-overlay-sidebar{width:300px}.expanded .wp-full-overlay-footer{max-width:299px}.kirki-w100{width:100%}.kirki-w50{width:50%}.kirki-w45{width:45%}.kirki-w40{width:40%}.kirki-w33{width:33.3333%}.kirki-w30{width:30%}.kirki-w25{width:25%}.kirki-w20{width:20%}.kirki-w15{width:15%}.kirki-w10{width:10%}.kirki-w5{width:5%}.control-section-kirki-default,.control-section-kirki-outer{min-height:100%}.customize-control-has-small-gap{margin-bottom:9px}.customize-control-is-gapless{margin-bottom:0}.customize-control-kirki-hidden-field{height:0;margin-bottom:0}.customize-control-kirki,.customize-control-kirki *{box-sizing:border-box}.customize-control-kirki.kirki-group-item{clear:none}.kirki-group-item{clear:none;float:left;padding-left:3px;padding-right:3px}.kirki-group-item.kirki-group-start{padding-left:0;padding-right:3px}.kirki-group-item.kirki-group-break,.kirki-group-item.kirki-group-end{padding-left:3px;padding-right:0}.kirki-group-item.kirki-group-end:after{clear:both;content:"";display:block;height:0;width:100%}.customize-control-kirki{position:relative}.customize-control-kirki .kirki-control-label,.customize-control-kirki label.customize-control-title{display:block}.customize-control-kirki .kirki-control-form{position:relative}.customize-control-kirki .kirki-control-form textarea{display:block;width:100%}
+/*# sourceMappingURL=control.css.map */
diff --git a/functions/kirki/packages/kirki-framework/control-base/dist/control.js b/functions/kirki/packages/kirki-framework/control-base/dist/control.js
new file mode 100644
index 0000000..3bfe6f1
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-base/dist/control.js
@@ -0,0 +1,2 @@
+!function(){var t;wp.customize.kirkiDynamicControl=wp.customize.Control.extend({initialize:function(t,e){var i,n=this,o=e||{};if(o.params=o.params||{},o.params.type||(o.params.type="kirki-generic"),o.content){var r=o.content.split('class="');r=r[1].split('"'),i=r[0]}else i="customize-control customize-control-"+o.params.type;!o.params.wrapper_attrs&&o.params.wrapper_atts&&(o.params.wrapper_attrs=o.params.wrapper_atts),o.params.content=jQuery(""),o.params.content.attr("id","customize-control-"+t.replace(/]/g,"").replace(/\[/g,"-")),o.params.content.attr("class",i),_.each(o.params.wrapper_attrs,(function(t,e){"class"===e&&(t=t.replace("{default_class}",i)),o.params.content.attr(e,t)})),n.propertyElements=[],wp.customize.Control.prototype.initialize.call(n,t,o),wp.hooks.doAction("kirki.dynamicControl.init.after",t,n,o)},_setUpSettingRootLinks:function(){var t=this;t.container.find("[data-customize-setting-link]").each((function(){var e=jQuery(this);wp.customize(e.data("customizeSettingLink"),(function(i){var n=new wp.customize.Element(e);t.elements.push(n),n.sync(i),n.set(i())}))}))},_setUpSettingPropertyLinks:function(){var t=this;t.setting&&t.container.find("[data-customize-setting-property-link]").each((function(){var e,i=jQuery(this),n=i.data("customizeSettingPropertyLink");e=new wp.customize.Element(i),t.propertyElements.push(e),e.set(t.setting()[n]),e.bind((function(e){var i=t.setting();e!==i[n]&&((i=_.clone(i))[n]=e,t.setting.set(i))})),t.setting.bind((function(t){t[n]!==e.get()&&e.set(t[n])}))}))},ready:function(){var t=this;t._setUpSettingRootLinks(),t._setUpSettingPropertyLinks(),wp.customize.Control.prototype.ready.call(t),t.deferred.embedded.done((function(){t.initKirkiControl(),wp.hooks.doAction("kirki.dynamicControl.ready.deferred.embedded.done",t)})),wp.hooks.doAction("kirki.dynamicControl.ready.after",t)},embed:function(){var t=this,e=t.section();e&&(wp.customize.section(e,(function(e){"kirki-expanded"===e.params.type||e.expanded()||wp.customize.settings.autofocus.control===t.id?t.actuallyEmbed():e.expanded.bind((function(e){e&&t.actuallyEmbed()}))})),wp.hooks.doAction("kirki.dynamicControl.embed.after",t))},actuallyEmbed:function(){var t=this;"resolved"!==t.deferred.embedded.state()&&(t.renderContent(),t.deferred.embedded.resolve(),wp.hooks.doAction("kirki.dynamicControl.actuallyEmbed.after",t))},focus:function(t){var e=this;e.actuallyEmbed(),wp.customize.Control.prototype.focus.call(e,t),wp.hooks.doAction("kirki.dynamicControl.focus.after",e)},initKirkiControl:function(t){t=t||this,wp.hooks.doAction("kirki.dynamicControl.initKirkiControl",this),t.container.on("change keyup paste click","input",(function(){t.setting.set(jQuery(this).val())}))}}),(t=wp.customize).Value.prototype.set=function(e){var i,n,o=this._value;return e=this._setter.apply(this,arguments),null===(e=this.validate(e))||_.isEqual(o,e)||(this.id&&t.control(this.id)&&t.control(this.id).params&&t.control(this.id).params.parent_setting&&(i=t.control(this.id).params.parent_setting,(n={})[this.id.replace(i+"[","").replace("]","")]=e,t.control(i).setting.set(jQuery.extend({},t.control(i).setting._value,n))),this._value=e,this._dirty=!0,this.callbacks.fireWith(this,[e,o])),this},t.Value.prototype.get=function(){var e;return this.id&&t.control(this.id)&&t.control(this.id).params&&t.control(this.id).params.parent_setting?(e=t.control(this.id).params.parent_setting,t.control(e).setting.get()[this.id.replace(e+"[","").replace("]","")]):this._value}}();
+//# sourceMappingURL=control.js.map
diff --git a/functions/kirki/packages/kirki-framework/control-base/src/Control/Base.php b/functions/kirki/packages/kirki-framework/control-base/src/Control/Base.php
new file mode 100644
index 0000000..d77c674
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-base/src/Control/Base.php
@@ -0,0 +1,347 @@
+render_content() for the internals.
+ *
+ * @since 1.0
+ */
+ protected function render() {
+
+ $id = 'customize-control-' . str_replace( [ '[', ']' ], [ '-', '' ], $this->id );
+ $class = 'customize-control customize-control-kirki customize-control-' . $this->type;
+ $gap = isset( $this->wrapper_opts['gap'] ) ? $this->wrapper_opts['gap'] : 'default';
+ $tag = isset( $this->wrapper_opts['tag'] ) ? $this->wrapper_opts['tag'] : 'li';
+
+ switch ( $gap ) {
+ case 'small':
+ $class .= ' customize-control-has-small-gap';
+ break;
+
+ case 'none':
+ $class .= ' customize-control-is-gapless';
+ break;
+
+ default:
+ break;
+ }
+
+ if ( empty( $this->wrapper_attrs ) && ! empty( $this->wrapper_atts ) ) {
+ $this->wrapper_attrs = $this->wrapper_atts;
+ }
+
+ if ( isset( $this->wrapper_attrs['id'] ) ) {
+ $id = $this->wrapper_attrs['id'];
+ }
+
+ if ( ! isset( $this->wrapper_attrs['data-kirki-setting'] ) ) {
+ $this->wrapper_attrs['data-kirki-setting'] = $this->id;
+ }
+
+ if ( ! isset( $this->wrapper_attrs['data-kirki-setting-link'] ) ) {
+ if ( isset( $this->settings['default'] ) ) {
+ $this->wrapper_attrs['data-kirki-setting-link'] = $this->settings['default']->id;
+ }
+ }
+
+ $data_attrs = '';
+
+ foreach ( $this->wrapper_attrs as $attr_key => $attr_value ) {
+ if ( 0 === strpos( $attr_key, 'data-' ) ) {
+ $data_attrs .= ' ' . esc_attr( $attr_key ) . '="' . esc_attr( $attr_value ) . '"';
+ }
+ }
+
+ if ( isset( $this->wrapper_attrs['class'] ) ) {
+ $class = str_ireplace( '{default_class}', $class, $this->wrapper_attrs['class'] );
+ }
+
+ // ! Consider to esc $data_attrs.
+ // ? What function we can use to escape string like data-xx="yy"?
+ printf( '<' . esc_attr( $tag ) . ' id="%s" class="%s"%s>', esc_attr( $id ), esc_attr( $class ), $data_attrs );
+ $this->render_content();
+ echo '' . esc_attr( $tag ) . '>';
+
+ }
+
+ /**
+ * Refresh the parameters passed to the JavaScript via JSON.
+ *
+ * @access public
+ * @since 1.0
+ * @see WP_Customize_Control::to_json()
+ * @return void
+ */
+ public function to_json() {
+
+ // Get the basics from the parent class.
+ parent::to_json();
+
+ // Default value.
+ $this->json['default'] = $this->setting->default;
+
+ if ( isset( $this->default ) ) {
+ $this->json['default'] = $this->default;
+ }
+
+ // Output.
+ $this->json['output'] = $this->output;
+
+ // Value.
+ $this->json['value'] = $this->value();
+
+ // Choices.
+ $this->json['choices'] = $this->choices;
+
+ // The link.
+ $this->json['link'] = $this->get_link();
+
+ // The ID.
+ $this->json['id'] = $this->id;
+
+ // Translation strings.
+ $this->json['l10n'] = $this->l10n();
+
+ // The ajaxurl in case we need it.
+ $this->json['ajaxurl'] = admin_url( 'admin-ajax.php' );
+
+ // Input attributes.
+ $this->json['inputAttrs'] = '';
+
+ if ( is_array( $this->input_attrs ) ) {
+ foreach ( $this->input_attrs as $attr => $value ) {
+ $this->json['inputAttrs'] .= $attr . '="' . esc_attr( $value ) . '" ';
+ }
+ }
+
+ // The kirki-config.
+ $this->json['kirkiConfig'] = $this->kirki_config;
+
+ // The option-type.
+ $this->json['kirkiOptionType'] = $this->option_type;
+
+ // The option-name.
+ $this->json['kirkiOptionName'] = $this->option_name;
+
+ // The preset.
+ $this->json['preset'] = $this->preset;
+
+ // The CSS-Variables.
+ $this->json['css-var'] = $this->css_vars;
+
+ // Parent setting.
+ $this->json['parent_setting'] = $this->parent_setting;
+
+ // Wrapper Attributes.
+ $this->json['wrapper_attrs'] = $this->wrapper_attrs;
+ $this->json['wrapper_atts'] = $this->wrapper_attrs; // For backward compatibility - Could be removed in the future.
+
+ }
+
+ /**
+ * Render the control's content.
+ *
+ * Allows the content to be overridden without having to rewrite the wrapper in `$this::render()`.
+ * Control content can alternately be rendered in JS. See WP_Customize_Control::print_template().
+ *
+ * @access protected
+ * @since 1.0
+ * @return void
+ */
+ protected function render_content() {}
+
+ /**
+ * An Underscore (JS) template for this control's content (but not its container).
+ *
+ * Class variables for this control class are available in the `data` JS object;
+ * export custom variables by overriding {@see WP_Customize_Control::to_json()}.
+ *
+ * @access protected
+ * @since 1.0
+ * @see WP_Customize_Control::print_template()
+ * @return void
+ */
+ protected function content_template() {}
+
+ /**
+ * Returns an array of translation strings.
+ *
+ * @access protected
+ * @since 3.0.0
+ * @return array
+ */
+ protected function l10n() {
+ return [];
+ }
+}
diff --git a/functions/kirki/packages/kirki-framework/control-base/src/control.js b/functions/kirki/packages/kirki-framework/control-base/src/control.js
new file mode 100644
index 0000000..b1a1501
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-base/src/control.js
@@ -0,0 +1,2 @@
+import "./control.scss";
+import "./dynamic-control";
diff --git a/functions/kirki/packages/kirki-framework/control-base/src/dynamic-control.js b/functions/kirki/packages/kirki-framework/control-base/src/dynamic-control.js
new file mode 100644
index 0000000..bd9eb14
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-base/src/dynamic-control.js
@@ -0,0 +1,289 @@
+/**
+ * The majority of the code in this file
+ * is derived from the wp-customize-posts plugin
+ * and the work of @westonruter to whom I am very grateful.
+ *
+ * @see https://github.com/xwp/wp-customize-posts
+ */
+
+(function () {
+ 'use strict';
+
+ /**
+ * A dynamic color-alpha control.
+ *
+ * @class
+ * @augments wp.customize.Control
+ * @augments wp.customize.Class
+ */
+ wp.customize.kirkiDynamicControl = wp.customize.Control.extend({
+
+ initialize: function (id, options) {
+ let control = this;
+ let args = options || {};
+
+ args.params = args.params || {};
+
+ if (!args.params.type) {
+ args.params.type = 'kirki-generic';
+ }
+
+ let className;
+
+ if (args.content) {
+ let splits = args.content.split('class="');
+ splits = splits[1].split('"');
+ className = splits[0];
+ } else {
+ className = 'customize-control customize-control-' + args.params.type;
+ }
+
+ if (!args.params.wrapper_attrs && args.params.wrapper_atts) {
+ args.params.wrapper_attrs = args.params.wrapper_atts;
+ }
+
+ // Hijack the container to add wrapper_attrs.
+ args.params.content = jQuery("");
+ args.params.content.attr('id', 'customize-control-' + id.replace(/]/g, '').replace(/\[/g, '-'));
+ args.params.content.attr('class', className);
+
+ _.each(args.params.wrapper_attrs, function (val, key) {
+ if ('class' === key) {
+ val = val.replace('{default_class}', className);
+ }
+
+ args.params.content.attr(key, val);
+ });
+
+ control.propertyElements = [];
+ wp.customize.Control.prototype.initialize.call(control, id, args);
+ wp.hooks.doAction('kirki.dynamicControl.init.after', id, control, args);
+ },
+
+ /**
+ * Add bidirectional data binding links between inputs and the setting(s).
+ *
+ * This is copied from wp.customize.Control.prototype.initialize(). It
+ * should be changed in Core to be applied once the control is embedded.
+ *
+ * @private
+ * @returns {void}
+ */
+ _setUpSettingRootLinks: function () {
+ var control = this,
+ nodes = control.container.find('[data-customize-setting-link]');
+
+ nodes.each(function () {
+ var node = jQuery(this);
+
+ wp.customize(node.data('customizeSettingLink'), function (setting) {
+ var element = new wp.customize.Element(node);
+ control.elements.push(element);
+ element.sync(setting);
+ element.set(setting());
+ });
+ });
+ },
+
+ /**
+ * Add bidirectional data binding links between inputs and the setting properties.
+ *
+ * @private
+ * @returns {void}
+ */
+ _setUpSettingPropertyLinks: function () {
+ var control = this,
+ nodes;
+
+ if (!control.setting) {
+ return;
+ }
+
+ nodes = control.container.find('[data-customize-setting-property-link]');
+
+ nodes.each(function () {
+ var node = jQuery(this),
+ element,
+ propertyName = node.data('customizeSettingPropertyLink');
+
+ element = new wp.customize.Element(node);
+ control.propertyElements.push(element);
+ element.set(control.setting()[propertyName]);
+
+ element.bind(function (newPropertyValue) {
+ var newSetting = control.setting();
+ if (newPropertyValue === newSetting[propertyName]) {
+ return;
+ }
+ newSetting = _.clone(newSetting);
+ newSetting[propertyName] = newPropertyValue;
+ control.setting.set(newSetting);
+ });
+ control.setting.bind(function (newValue) {
+ if (newValue[propertyName] !== element.get()) {
+ element.set(newValue[propertyName]);
+ }
+ });
+ });
+ },
+
+ /**
+ * @inheritdoc
+ */
+ ready: function () {
+ var control = this;
+
+ control._setUpSettingRootLinks();
+ control._setUpSettingPropertyLinks();
+
+ wp.customize.Control.prototype.ready.call(control);
+
+ control.deferred.embedded.done(function () {
+ control.initKirkiControl();
+ wp.hooks.doAction('kirki.dynamicControl.ready.deferred.embedded.done', control);
+ });
+ wp.hooks.doAction('kirki.dynamicControl.ready.after', control);
+ },
+
+ /**
+ * Embed the control in the document.
+ *
+ * Override the embed() method to do nothing,
+ * so that the control isn't embedded on load,
+ * unless the containing section is already expanded.
+ *
+ * @returns {void}
+ */
+ embed: function () {
+ var control = this,
+ sectionId = control.section();
+
+ if (!sectionId) {
+ return;
+ }
+
+ wp.customize.section(sectionId, function (section) {
+ if ('kirki-expanded' === section.params.type || section.expanded() || wp.customize.settings.autofocus.control === control.id) {
+ control.actuallyEmbed();
+ } else {
+ section.expanded.bind(function (expanded) {
+ if (expanded) {
+ control.actuallyEmbed();
+ }
+ });
+ }
+ });
+ wp.hooks.doAction('kirki.dynamicControl.embed.after', control);
+ },
+
+ /**
+ * Deferred embedding of control when actually
+ *
+ * This function is called in Section.onChangeExpanded() so the control
+ * will only get embedded when the Section is first expanded.
+ *
+ * @returns {void}
+ */
+ actuallyEmbed: function () {
+ var control = this;
+ if ('resolved' === control.deferred.embedded.state()) {
+ return;
+ }
+ control.renderContent();
+ control.deferred.embedded.resolve(); // This triggers control.ready().
+ wp.hooks.doAction('kirki.dynamicControl.actuallyEmbed.after', control);
+ },
+
+ /**
+ * This is not working with autofocus.
+ *
+ * @param {object} [args] Args.
+ * @returns {void}
+ */
+ focus: function (args) {
+ var control = this;
+ control.actuallyEmbed();
+ wp.customize.Control.prototype.focus.call(control, args);
+ wp.hooks.doAction('kirki.dynamicControl.focus.after', control);
+ },
+
+ /**
+ * Additional actions that run on ready.
+ *
+ * @param {object} control - The control object. If undefined fallsback to the this.
+ * @returns {void}
+ */
+ initKirkiControl: function (control) {
+ control = control || this;
+ wp.hooks.doAction('kirki.dynamicControl.initKirkiControl', this);
+
+ // Save the value
+ control.container.on('change keyup paste click', 'input', function () {
+ control.setting.set(jQuery(this).val());
+ });
+ }
+ });
+}());
+
+(function (api) {
+
+ /**
+ * Set the value and trigger all bound callbacks.
+ *
+ * @since 1.0
+ * @param {object} to - New value.
+ * @returns {Object} - this
+ */
+ api.Value.prototype.set = function (to) {
+ var from = this._value,
+ parentSetting,
+ newVal;
+
+ to = this._setter.apply(this, arguments);
+ to = this.validate(to);
+
+ // Bail if the sanitized value is null or unchanged.
+ if (null === to || _.isEqual(from, to)) {
+ return this;
+ }
+
+ /**
+ * Start Kirki mod.
+ */
+ if (this.id && api.control(this.id) && api.control(this.id).params && api.control(this.id).params.parent_setting) {
+ parentSetting = api.control(this.id).params.parent_setting;
+ newVal = {};
+ newVal[this.id.replace(parentSetting + '[', '').replace(']', '')] = to;
+ api.control(parentSetting).setting.set(jQuery.extend({}, api.control(parentSetting).setting._value, newVal));
+ }
+
+ /**
+ * End Kirki mod.
+ */
+
+ this._value = to;
+ this._dirty = true;
+
+ this.callbacks.fireWith(this, [to, from]);
+
+ return this;
+ };
+
+ /**
+ * Get the value.
+ *
+ * @returns {mixed} - Returns the value.
+ */
+ api.Value.prototype.get = function () {
+
+ // Start Kirki mod.
+ var parentSetting;
+ if (this.id && api.control(this.id) && api.control(this.id).params && api.control(this.id).params.parent_setting) {
+ parentSetting = api.control(this.id).params.parent_setting;
+ return api.control(parentSetting).setting.get()[this.id.replace(parentSetting + '[', '').replace(']', '')];
+ }
+ // End Kirki mod.
+
+ return this._value;
+ };
+}(wp.customize));
diff --git a/functions/kirki/packages/kirki-framework/control-checkbox/dist/control.css b/functions/kirki/packages/kirki-framework/control-checkbox/dist/control.css
new file mode 100644
index 0000000..fa957b1
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-checkbox/dist/control.css
@@ -0,0 +1,2 @@
+.customize-control-kirki-toggle .kirki-toggle{align-items:flex-start;display:flex;justify-content:space-between}.customize-control-kirki-toggle .kirki-toggle .kirki-control-label{width:80%}.customize-control-kirki-toggle .kirki-toggle .kirki-control-form{text-align:right;width:20%}.customize-control-kirki-toggle .kirki-toggle .kirki-toggle-switch-label{width:100%}.customize-control-kirki-toggle .kirki-toggle .kirki-toggle-switch-label:before{right:0}.customize-control-kirki-toggle .kirki-toggle .kirki-toggle-switch-label:after{right:18px}.customize-control-kirki-switch .kirki-switch .kirki-toggle-switch-label{padding:10px 0 12px 44px;text-align:left}.customize-control-kirki-switch .kirki-switch .kirki-toggle-switch-label:after,.customize-control-kirki-switch .kirki-switch .kirki-toggle-switch-label:before{left:0}.customize-control-kirki-switch .kirki-switch .toggle-off,.customize-control-kirki-switch .kirki-switch .toggle-on{bottom:-2px;padding-left:5px;position:relative}.customize-control-kirki-switch .kirki-switch .toggle-on{color:#0073aa;display:none}.customize-control-kirki-switch .kirki-switch .toggle-off{color:#82878c;display:inline-block}.kirki-toggle-switch-label{cursor:pointer;display:inline-block;position:relative}.kirki-toggle-switch-label:after,.kirki-toggle-switch-label:before{box-sizing:border-box;content:"";margin:0;outline:0;position:absolute;top:50%;transform:translate3d(0,-50%,0);transition:all .35s cubic-bezier(0,.95,.38,.98),background-color .15s ease}.kirki-toggle-switch-label:before{background-color:#b4b9be;border:1px solid #b4b9be;border-radius:8px;height:14px;width:37px}.kirki-toggle-switch-label:after{background-color:#999;border:1px solid rgba(0,0,0,.1);border-radius:50%;height:22px;width:22px}.kirki-toggle-switch-input{opacity:0}.kirki-toggle-switch-input:checked+.kirki-toggle-switch-label:after{background-color:#0073aa;transform:translate3d(100%,-50%,0)}.kirki-toggle-switch-input:checked+.kirki-toggle-switch-label .toggle-on{display:inline-block}.kirki-toggle-switch-input:checked+.kirki-toggle-switch-label .toggle-off{display:none}
+/*# sourceMappingURL=control.css.map */
diff --git a/functions/kirki/packages/kirki-framework/control-checkbox/dist/control.js b/functions/kirki/packages/kirki-framework/control-checkbox/dist/control.js
new file mode 100644
index 0000000..5a76b16
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-checkbox/dist/control.js
@@ -0,0 +1,2 @@
+!function(){var i={initKirkiControl:function(i){(i=i||this).container.on("change","input",(function(){i.setting.set(jQuery(this).is(":checked"))}))}};wp.customize.controlConstructor["kirki-checkbox"]=wp.customize.kirkiDynamicControl.extend(i),wp.customize.controlConstructor["kirki-switch"]=wp.customize.kirkiDynamicControl.extend(i),wp.customize.controlConstructor["kirki-toggle"]=wp.customize.kirkiDynamicControl.extend(i)}();
+//# sourceMappingURL=control.js.map
diff --git a/functions/kirki/packages/kirki-framework/control-checkbox/src/Control/Checkbox.php b/functions/kirki/packages/kirki-framework/control-checkbox/src/Control/Checkbox.php
new file mode 100644
index 0000000..8c8aebe
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-checkbox/src/Control/Checkbox.php
@@ -0,0 +1,90 @@
+
+ aria-describedby="_customize-description-{{ data.id }}"<# } #>
+ <# if ( data.value ) { #>checked="checked"<# } #>
+ />
+
+ <# if ( data.description ) { #>
+ {{{ data.description }}}
+ <# } #>
+ json['checkboxType'] = str_ireplace( 'kirki-', '', $this->type );
+
+ $this->json['defaultChoices'] = [
+ 'on' => __( 'On', 'kirki' ),
+ 'off' => __( 'Off', 'kirki' ),
+ ];
+
+ }
+
+ /**
+ * An Underscore (JS) template for this control's content (but not its container).
+ *
+ * Class variables for this control class are available in the `data` JS object;
+ * export custom variables by overriding {@see WP_Customize_Control::to_json()}.
+ *
+ * @see WP_Customize_Control::print_template()
+ *
+ * @access protected
+ * @since 1.0
+ * @return void
+ */
+ protected function content_template() {
+ ?>
+
+
+ <# if ( data.label || data.description ) { #>
+
+ <# if ( data.label ) { #>
+
+ <# } #>
+
+ <# if ( data.description ) { #>
+ {{{ data.description }}}
+ <# } #>
+
+ <# } #>
+
+
+ checked<# } #> />
+
+
+
+
+ args['settings'] ) {
+ $args = parent::filter_setting_args( $args, $wp_customize );
+
+ // Set the sanitize-callback if none is defined.
+ if ( ! isset( $args['sanitize_callback'] ) || ! $args['sanitize_callback'] ) {
+ $args['sanitize_callback'] = function( $value ) {
+ return ( '0' === $value || 'false' === $value ) ? false : (bool) $value;
+ };
+ }
+
+ $args['default'] = isset( $args['default'] ) ? $args['default'] : false;
+
+ // Make sure the default is formatted as boolean.
+ $args['default'] = (bool) ( 1 === $args['default'] || '1' === $args['default'] || true === $args['default'] || 'true' === $args['default'] || 'on' === $args['default'] );
+ }
+
+ return $args;
+
+ }
+
+ /**
+ * Filter arguments before creating the control.
+ *
+ * @access public
+ * @since 0.1
+ * @param array $args The field arguments.
+ * @param WP_Customize_Manager $wp_customize The customizer instance.
+ * @return array
+ */
+ public function filter_control_args( $args, $wp_customize ) {
+
+ if ( $args['settings'] === $this->args['settings'] ) {
+ $args = parent::filter_control_args( $args, $wp_customize );
+ $args['type'] = 'kirki-checkbox';
+ }
+
+ return $args;
+
+ }
+}
diff --git a/functions/kirki/packages/kirki-framework/control-checkbox/src/Field/Checkbox_Switch.php b/functions/kirki/packages/kirki-framework/control-checkbox/src/Field/Checkbox_Switch.php
new file mode 100644
index 0000000..092f7a2
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-checkbox/src/Field/Checkbox_Switch.php
@@ -0,0 +1,57 @@
+args['settings'] ) {
+ $args = parent::filter_control_args( $args, $wp_customize );
+ $args['type'] = 'kirki-switch';
+ }
+
+ return $args;
+
+ }
+}
diff --git a/functions/kirki/packages/kirki-framework/control-checkbox/src/Field/Checkbox_Toggle.php b/functions/kirki/packages/kirki-framework/control-checkbox/src/Field/Checkbox_Toggle.php
new file mode 100644
index 0000000..94d69e9
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-checkbox/src/Field/Checkbox_Toggle.php
@@ -0,0 +1,55 @@
+args['settings'] ) {
+ $args = parent::filter_control_args( $args, $wp_customize );
+ $args['type'] = 'kirki-toggle';
+ }
+
+ return $args;
+
+ }
+}
diff --git a/functions/kirki/packages/kirki-framework/control-code/LICENSE b/functions/kirki/packages/kirki-framework/control-code/LICENSE
new file mode 100644
index 0000000..f202ade
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-code/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2019 kirki-framework
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/functions/kirki/packages/kirki-framework/control-code/README.md b/functions/kirki/packages/kirki-framework/control-code/README.md
new file mode 100644
index 0000000..8940918
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-code/README.md
@@ -0,0 +1,14 @@
+# control-code
+
+## Installation
+
+First, install the package using composer:
+
+```bash
+composer require kirki-framework/control-code
+```
+
+Make sure you include the autoloader:
+```php
+require_once get_parent_theme_file_path( 'vendor/autoload.php' );
+```
diff --git a/functions/kirki/packages/kirki-framework/control-code/src/Field/Code.php b/functions/kirki/packages/kirki-framework/control-code/src/Field/Code.php
new file mode 100644
index 0000000..fcac365
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-code/src/Field/Code.php
@@ -0,0 +1,140 @@
+args['settings'] ) {
+ $args = parent::filter_setting_args( $args, $wp_customize );
+
+ // Set the sanitize-callback if none is defined.
+ if ( ! isset( $args['sanitize_callback'] ) || ! $args['sanitize_callback'] ) {
+ $args['sanitize_callback'] = function( $value ) {
+ /**
+ * Code fields should not be filtered by default.
+ * Their values usually contain CSS/JS and it it the responsibility
+ * of the theme/plugin that registers this field
+ * to properly apply any necessary sanitization.
+ */
+ return $value;
+ };
+ }
+ }
+ return $args;
+ }
+
+ /**
+ * Filter arguments before creating the control.
+ *
+ * @access public
+ * @since 0.1
+ * @param array $args The field arguments.
+ * @param WP_Customize_Manager $wp_customize The customizer instance.
+ * @return array
+ */
+ public function filter_control_args( $args, $wp_customize ) {
+ if ( $args['settings'] === $this->args['settings'] ) {
+ $args = parent::filter_control_args( $args, $wp_customize );
+
+ $args['type'] = 'code_editor';
+
+ $args['input_attrs'] = [
+ 'aria-describedby' => 'kirki-code editor-keyboard-trap-help-1 editor-keyboard-trap-help-2 editor-keyboard-trap-help-3 editor-keyboard-trap-help-4',
+ ];
+ if ( ! isset( $args['choices']['language'] ) ) {
+ return;
+ }
+
+ $language = $args['choices']['language'];
+ switch ( $language ) {
+ case 'json':
+ case 'xml':
+ $language = 'application/' . $language;
+ break;
+ case 'http':
+ $language = 'message/' . $language;
+ break;
+ case 'js':
+ case 'javascript':
+ $language = 'text/javascript';
+ break;
+ case 'txt':
+ $language = 'text/plain';
+ break;
+ case 'css':
+ case 'jsx':
+ case 'html':
+ $language = 'text/' . $language;
+ break;
+ default:
+ $language = ( 'js' === $language ) ? 'javascript' : $language;
+ $language = ( 'htm' === $language ) ? 'html' : $language;
+ $language = ( 'yml' === $language ) ? 'yaml' : $language;
+ $language = 'text/x-' . $language;
+ break;
+ }
+ if ( ! isset( $args['editor_settings'] ) ) {
+ $args['editor_settings'] = [];
+ }
+ if ( ! isset( $args['editor_settings']['codemirror'] ) ) {
+ $args['editor_settings']['codemirror'] = [];
+ }
+ if ( ! isset( $args['editor_settings']['codemirror']['mode'] ) ) {
+ $args['editor_settings']['codemirror']['mode'] = $language;
+ }
+
+ if ( 'text/x-scss' === $args['editor_settings']['codemirror']['mode'] ) {
+ $args['editor_settings']['codemirror'] = array_merge(
+ $args['editor_settings']['codemirror'],
+ [
+ 'lint' => false,
+ 'autoCloseBrackets' => true,
+ 'matchBrackets' => true,
+ ]
+ );
+ }
+ }
+ return $args;
+ }
+}
diff --git a/functions/kirki/packages/kirki-framework/control-color-palette/.babelrc b/functions/kirki/packages/kirki-framework/control-color-palette/.babelrc
new file mode 100644
index 0000000..fdf1f70
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-color-palette/.babelrc
@@ -0,0 +1,10 @@
+{
+ "presets": [
+ [
+ "@babel/preset-react",
+ {
+ "runtime": "classic"
+ }
+ ]
+ ]
+}
diff --git a/functions/kirki/packages/kirki-framework/control-color-palette/README.md b/functions/kirki/packages/kirki-framework/control-color-palette/README.md
new file mode 100644
index 0000000..4179cbf
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-color-palette/README.md
@@ -0,0 +1,98 @@
+# Kirki Color Palette Control
+A `control-color-palette` package for Kirki Customizer Framework.
+
+## Table of Contents
+- [Kirki Color Palette Control](#kirki-color-palette-control)
+ - [Table of Contents](#table-of-contents)
+ - [Installation](#installation)
+ - [Usage](#usage)
+ - [Using Kirki API](#using-kirki-api)
+ - [Using WordPress Customizer API](#using-wordpress-customizer-api)
+ - [License](#license)
+
+## Installation
+First, install the package using composer:
+
+```bash
+composer require kirki-framework/control-color-palette
+```
+
+Then make sure you have included the autoloader:
+
+```php
+require_once "your/path/to/vendor/autoload.php";
+```
+
+## Usage
+
+This control can be consumed using Kirki API or using WordPress Customizer API.
+
+### Using Kirki API
+
+```php
+new \Kirki\Field\Color_Palette(
+ [
+ 'settings' => 'your_control_setting_id',
+ 'label' => esc_html__( 'Your Control Label', 'your-text-domain' ),
+ 'description' => esc_html__( 'Your control description.', 'your-text-domain' ),
+ 'section' => 'your_section_id',
+ 'default' => 5,
+ 'choices' => [
+ 'colors' => [ '#000000', '#222222', '#444444', '#666666', '#888888', '#aaaaaa', '#cccccc', '#eeeeee', '#ffffff' ],
+ 'shape' => 'round', // Optional, default is 'square'.
+ 'size' => 20, // Optional, default is 28.
+ ],
+ ]
+);
+```
+
+### Using WordPress Customizer API
+
+```php
+/**
+ * Register customizer settings and controls.
+ *
+ * @param \WP_Customize_Manager $wp_customize The Customizer object.
+ */
+function your_customize_register_function( $wp_customize ) {
+
+ // Add setting.
+ $wp_customize->add_setting(
+ 'your_control_setting_id',
+ [
+ 'type' => 'theme_mod', // Or 'option'.
+ 'capability' => 'edit_theme_options',
+ 'default' => 5,
+ 'transport' => 'postMessage', // Or 'refresh'.
+ 'sanitize' => 'intval', // Or 'absint' or other int sanitization.
+ ]
+ );
+
+ // Add control.
+ $wp_customize->add_control(
+ new \Kirki\Control\Color_Palette(
+ $wp_customize,
+ 'your_control_setting_id',
+ [
+ 'label' => esc_html__( 'Your Control Label', 'your-text-domain' ),
+ 'description' => esc_html__( 'Your control description.', 'your-text-domain' ),
+ 'section' => 'your_section_id',
+ 'choices' => [
+ 'colors' => [ '#000000', '#222222', '#444444', '#666666', '#888888', '#aaaaaa', '#cccccc', '#eeeeee', '#ffffff' ],
+ 'shape' => 'round', // Optional, default is 'square'.
+ 'size' => 20, // Optional, default is 28.
+ ],
+ ]
+ )
+ );
+
+ // Add more settings...
+
+ // Add more controls...
+
+}
+add_action( 'customize_register', 'your_customize_register_function' );
+```
+
+## License
+[MIT License](https://oss.ninja/mit?organization=Kirki%20Framework)
diff --git a/functions/kirki/packages/kirki-framework/control-color-palette/dist/control.css b/functions/kirki/packages/kirki-framework/control-color-palette/dist/control.css
new file mode 100644
index 0000000..a50ff11
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-color-palette/dist/control.css
@@ -0,0 +1,2 @@
+.customize-control-kirki-color-palette,.customize-control-kirki-color-palette *{box-sizing:border-box}.customize-control-kirki-color-palette .kirki-control-label{display:block;position:relative}.customize-control-kirki-color-palette .kirki-control-form{margin-bottom:6px;position:relative}.customize-control-kirki-color-palette .kirki-control-form:hover .kirki-control-reset{opacity:1}.customize-control-kirki-color-palette .kirki-control-reset{align-items:center;background-color:transparent;border-radius:50%;border-width:0;color:#50575e;cursor:pointer;display:flex;height:20px;justify-content:center;opacity:0;padding:0;position:absolute;right:0;top:0;transition:all .3s;width:20px;z-index:3}.customize-control-kirki-color-palette .kirki-control-reset:focus{opacity:1}.customize-control-kirki-color-palette .kirki-control-reset:hover i{color:red;transform:rotate(-45deg)}.customize-control-kirki-color-palette .kirki-control-reset i{font-size:12px;height:auto;transform:rotate(45deg);transition:transform .3s;width:auto}.customize-control-kirki-color-palette .kirki-colors{align-items:center;display:flex;flex-wrap:wrap;list-style:none;margin:0;padding:0;width:100%}.customize-control-kirki-color-palette .kirki-colors.kirki-round-colors .kirki-color div{border-radius:50%}.customize-control-kirki-color-palette .kirki-color{display:block;margin:0 11px 11px 0;padding:0;position:relative}.customize-control-kirki-color-palette .kirki-color:last-child{padding-right:0}.customize-control-kirki-color-palette .kirki-color>div{align-items:center;border:1px solid #dedede;border-radius:4px;cursor:pointer;display:flex;height:100%;justify-content:center;position:absolute;transform:scale(1);transition:transform .2s;width:100%}.customize-control-kirki-color-palette .kirki-color>div:hover{transform:scale(1.2)}.customize-control-kirki-color-palette .kirki-color.is-selected>div{border-color:#2271b1;border-width:4px}
+/*# sourceMappingURL=control.css.map */
diff --git a/functions/kirki/packages/kirki-framework/control-color-palette/dist/control.js b/functions/kirki/packages/kirki-framework/control-color-palette/dist/control.js
new file mode 100644
index 0000000..7601386
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-color-palette/dist/control.js
@@ -0,0 +1,2 @@
+(()=>{var t={};t=React;var e=e=>{const{control:o,customizerSetting:n,choices:i}=e,[a,c]=t.useState(e.value);o.updateComponentState=t=>{c(t)};const r=t=>{n.set(t.target.title)},s=i.size+2;return React.createElement("div",{className:"kirki-control-form",tabIndex:"1"},React.createElement("label",{className:"kirki-control-label"},React.createElement("span",{className:"customize-control-title"},e.label),React.createElement("span",{className:"customize-control-description description",dangerouslySetInnerHTML:{__html:e.description}})),React.createElement("div",{className:"customize-control-notifications-container",ref:e.setNotificationContainer}),React.createElement("button",{type:"button",className:"kirki-control-reset",onClick:()=>{""!==e.default&&void 0!==e.default?n.set(e.default):n.set(e.value)}},React.createElement("i",{className:"dashicons dashicons-image-rotate"})),React.createElement("ul",{className:"kirki-colors kirki-"+i.shape+"-colors"},i.colors.map(((t,e)=>{const o=t===a?"kirki-color is-selected":"kirki-color";return React.createElement("li",{key:e.toString(),className:o,style:{width:s+"px",height:s+"px"}},React.createElement("div",{title:t,style:{backgroundColor:t},onClick:r}))}))))};function o(){return o=Object.assign||function(t){for(var e=1;e{t.updateComponentState(e)}))},updateComponentState:t=>{},destroy:function(){ReactDOM.unmountComponentAtNode(this.container[0]),wp.customize.Control.prototype.destroy&&wp.customize.Control.prototype.destroy.call(this)}});wp.customize.controlConstructor["kirki-color-palette"]=n})();
+//# sourceMappingURL=control.js.map
diff --git a/functions/kirki/packages/kirki-framework/control-color-palette/src/Control/Color_Palette.php b/functions/kirki/packages/kirki-framework/control-color-palette/src/Control/Color_Palette.php
new file mode 100644
index 0000000..db786a4
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-color-palette/src/Control/Color_Palette.php
@@ -0,0 +1,123 @@
+json['label'] ) ) {
+ $this->json['label'] = html_entity_decode( $this->json['label'] );
+ }
+
+ if ( isset( $this->json['description'] ) ) {
+ $this->json['description'] = html_entity_decode( $this->json['description'] );
+ }
+
+ $this->json['value'] = strtolower( $this->json['value'] );
+
+ $choices = $this->json['choices'];
+
+ $this->json['choices'] = wp_parse_args(
+ $choices,
+ [
+ 'shape' => 'square',
+ 'size' => 28,
+ 'colors' => [],
+ ]
+ );
+
+ $this->json['choices']['colors'] = array_map( 'strtolower', $this->json['choices']['colors'] );
+
+ if ( isset( $choices['style'] ) && ! empty( $choices['style'] ) ) {
+ if ( ! isset( $choices['shape'] ) || empty( $choices['shape'] ) ) {
+ $this->json['choices']['shape'] = $choices['style'];
+ }
+
+ unset( $this->json['choices']['style'] );
+ }
+
+ if ( ! is_numeric( $this->json['choices']['size'] ) ) {
+ $this->json['choices']['size'] = 28;
+ }
+
+ $this->json['choices']['shape'] = 'circle' === $this->json['choices']['shape'] ? 'round' : $this->json['choices']['shape'];
+
+ }
+
+ /**
+ * An Underscore (JS) template for this control's content (but not its container).
+ *
+ * Class variables for this control class are available in the `data` JS object;
+ * export custom variables by overriding WP_Customize_Control::to_json().
+ *
+ * @see WP_Customize_Control::print_template()
+ *
+ * @since 1.0
+ */
+ protected function content_template() {}
+
+}
diff --git a/functions/kirki/packages/kirki-framework/control-color-palette/src/Field/Color_Palette.php b/functions/kirki/packages/kirki-framework/control-color-palette/src/Field/Color_Palette.php
new file mode 100644
index 0000000..e06324d
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-color-palette/src/Field/Color_Palette.php
@@ -0,0 +1,147 @@
+args['settings'] ) {
+ $args = parent::filter_setting_args( $args, $wp_customize );
+
+ // Set the sanitize_callback if none is defined.
+ if ( ! isset( $args['sanitize_callback'] ) || ! $args['sanitize_callback'] ) {
+ $args['sanitize_callback'] = [ __CLASS__, 'sanitize' ];
+ }
+ }
+
+ return $args;
+
+ }
+
+ /**
+ * Filter arguments before creating the control.
+ *
+ * @param array $args The field arguments.
+ * @param \WP_Customize_Manager $wp_customize The customizer instance.
+ *
+ * @return array $args The maybe-filtered arguments.
+ */
+ public function filter_control_args( $args, $wp_customize ) {
+
+ if ( $args['settings'] === $this->args['settings'] ) {
+ $args = parent::filter_control_args( $args, $wp_customize );
+ $args['type'] = 'kirki-color-palette';
+ }
+
+ return $args;
+
+ }
+
+ /**
+ * Sanitize colors.
+ *
+ * @static
+ * @access public
+ * @since 1.0.2
+ * @param string $value The color.
+ * @return string
+ */
+ public static function sanitize( $value ) {
+
+ /**
+ * This pattern will check and match 3/6/8-character hex, rgb, rgba, hsl, hsla, hsv, and hsva colors.
+ *
+ * RGB regex:
+ * @link https://stackoverflow.com/questions/9585973/javascript-regular-expression-for-rgb-values#answer-9586045
+ *
+ * For testing it, you can use these links:
+ *
+ * @link https://regex101.com/
+ * @link https://regexr.com/
+ * @link https://www.regextester.com/
+ *
+ * How to test it?
+ *
+ * Paste the following code to the test field (of course without the asterisks and spaces in front of them):
+ * rgba(255, 255, 0, 0.9)
+ * rgb(255, 255, 0)
+ * #ff0
+ * #ffff00
+ * hsl(150, 25%, 25%)
+ * hsla(250, 25%, 25%, 0.7)
+ * hsv(125, 15%, 30%)
+ * hsva(125, 15%, 30%, 0.5)
+ *
+ * And then paste the regex `$pattern` below (without the single quote's start and end) to the regular expression box.
+ * Set the flag to use "global" and "multiline".
+ */
+ $pattern = '/^(\#[\da-f]{3}|\#[\da-f]{6}|\#[\da-f]{8}|rgba\(((\d{1,2}|1\d\d|2([0-4]\d|5[0-5]))\s*,\s*){2}((\d{1,2}|1\d\d|2([0-4]\d|5[0-5]))\s*)(,\s*(0\.\d+|1))\)|rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)|hsla\(\s*((\d{1,2}|[1-2]\d{2}|3([0-5]\d|60)))\s*,\s*((\d{1,2}|100)\s*%)\s*,\s*((\d{1,2}|100)\s*%)(,\s*(0\.\d+|1))\)|hsl\(\s*((\d{1,2}|[1-2]\d{2}|3([0-5]\d|60)))\s*,\s*((\d{1,2}|100)\s*%)\s*,\s*((\d{1,2}|100)\s*%)\)|hsva\(\s*((\d{1,2}|[1-2]\d{2}|3([0-5]\d|60)))\s*,\s*((\d{1,2}|100)\s*%)\s*,\s*((\d{1,2}|100)\s*%)(,\s*(0\.\d+|1))\)|hsv\(\s*((\d{1,2}|[1-2]\d{2}|3([0-5]\d|60)))\s*,\s*((\d{1,2}|100)\s*%)\s*,\s*((\d{1,2}|100)\s*%)\))$/';
+
+ \preg_match( $pattern, $value, $matches );
+
+ // Return the 1st match found.
+ if ( isset( $matches[0] ) ) {
+ if ( is_string( $matches[0] ) ) {
+ return $matches[0];
+ }
+
+ if ( is_array( $matches[0] ) && isset( $matches[0][0] ) ) {
+ return $matches[0][0];
+ }
+ }
+
+ // If no match was found, return an empty string.
+ return '';
+ }
+
+}
diff --git a/functions/kirki/packages/kirki-framework/control-color-palette/src/KirkiColorPaletteControl.js b/functions/kirki/packages/kirki-framework/control-color-palette/src/KirkiColorPaletteControl.js
new file mode 100644
index 0000000..5d2b693
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-color-palette/src/KirkiColorPaletteControl.js
@@ -0,0 +1,128 @@
+import KirkiColorPaletteForm from './KirkiColorPaletteForm';
+
+/**
+ * KirkiColorPaletteControl.
+ *
+ * Global objects brought:
+ * - wp
+ * - jQuery
+ * - React
+ * - ReactDOM
+ *
+ * @class
+ * @augments wp.customize.Control
+ * @augments wp.customize.Class
+ */
+const KirkiColorPaletteControl = wp.customize.Control.extend({
+
+ /**
+ * Initialize.
+ *
+ * @param {string} id - Control ID.
+ * @param {object} params - Control params.
+ */
+ initialize: function (id, params) {
+ const control = this;
+
+ // Bind functions to this control context for passing as React props.
+ control.setNotificationContainer = control.setNotificationContainer.bind(control);
+
+ wp.customize.Control.prototype.initialize.call(control, id, params);
+
+ // The following should be eliminated with .
+ function onRemoved(removedControl) {
+ if (control === removedControl) {
+ control.destroy();
+ control.container.remove();
+ wp.customize.control.unbind('removed', onRemoved);
+ }
+ }
+ wp.customize.control.bind('removed', onRemoved);
+ },
+
+ /**
+ * Set notification container and render.
+ *
+ * This is called when the React component is mounted.
+ *
+ * @param {Element} element - Notification container.
+ * @returns {void}
+ */
+ setNotificationContainer: function setNotificationContainer(element) {
+ const control = this;
+
+ control.notifications.container = jQuery(element);
+ control.notifications.render();
+ },
+
+ /**
+ * Render the control into the DOM.
+ *
+ * This is called from the Control#embed() method in the parent class.
+ *
+ * @returns {void}
+ */
+ renderContent: function renderContent() {
+ const control = this;
+
+ ReactDOM.render(
+ ,
+ control.container[0]
+ );
+
+ if (false !== control.params.choices.allowCollapse) {
+ control.container.addClass('allowCollapse');
+ }
+ },
+
+ /**
+ * After control has been first rendered, start re-rendering when setting changes.
+ *
+ * React is able to be used here instead of the wp.customize.Element abstraction.
+ *
+ * @returns {void}
+ */
+ ready: function ready() {
+ const control = this;
+
+ /**
+ * Update component value's state when customizer setting's value is changed.
+ */
+ control.setting.bind((val) => {
+ control.updateComponentState(val);
+ });
+ },
+
+ /**
+ * This method will be overriden by the rendered component.
+ */
+ updateComponentState: (val) => { },
+
+ /**
+ * Handle removal/de-registration of the control.
+ *
+ * This is essentially the inverse of the Control#embed() method.
+ *
+ * @link https://core.trac.wordpress.org/ticket/31334
+ * @returns {void}
+ */
+ destroy: function destroy() {
+ const control = this;
+
+ // Garbage collection: undo mounting that was done in the embed/renderContent method.
+ ReactDOM.unmountComponentAtNode(control.container[0]);
+
+ // Call destroy method in parent if it exists (as of #31334).
+ if (wp.customize.Control.prototype.destroy) {
+ wp.customize.Control.prototype.destroy.call(control);
+ }
+ }
+});
+
+export default KirkiColorPaletteControl;
diff --git a/functions/kirki/packages/kirki-framework/control-color-palette/src/KirkiColorPaletteForm.js b/functions/kirki/packages/kirki-framework/control-color-palette/src/KirkiColorPaletteForm.js
new file mode 100644
index 0000000..92ea7b6
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-color-palette/src/KirkiColorPaletteForm.js
@@ -0,0 +1,78 @@
+import { useState } from "react";
+
+const KirkiColorPaletteForm = (props) => {
+ const { control, customizerSetting, choices } = props;
+
+ const [selectedItem, setSelectedItem] = useState(props.value);
+
+ control.updateComponentState = (val) => {
+ setSelectedItem(val);
+ };
+
+ const handleSelect = (e) => {
+ customizerSetting.set(e.target.title);
+ };
+
+ const handleReset = () => {
+ if ("" !== props.default && "undefined" !== typeof props.default) {
+ customizerSetting.set(props.default);
+ } else {
+ customizerSetting.set(props.value);
+ }
+ };
+
+ const size = choices.size + 2; // 2 here is 1px border on each side.
+
+ return (
+
+
+
+
+
+
+
+
+ {choices.colors.map((color, index) => {
+ const itemClassName =
+ color === selectedItem ? "kirki-color is-selected" : "kirki-color";
+
+ return (
+ -
+
+
+ );
+ })}
+
+
+ );
+};
+
+export default KirkiColorPaletteForm;
diff --git a/functions/kirki/packages/kirki-framework/control-color-palette/src/control.js b/functions/kirki/packages/kirki-framework/control-color-palette/src/control.js
new file mode 100644
index 0000000..c428833
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-color-palette/src/control.js
@@ -0,0 +1,6 @@
+import "./control.scss";
+import KirkiColorPaletteControl from './KirkiColorPaletteControl';
+
+
+// Register control type with Customizer.
+wp.customize.controlConstructor['kirki-color-palette'] = KirkiColorPaletteControl;
diff --git a/functions/kirki/packages/kirki-framework/control-color-palette/webpack.config.js b/functions/kirki/packages/kirki-framework/control-color-palette/webpack.config.js
new file mode 100644
index 0000000..4d0ea32
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-color-palette/webpack.config.js
@@ -0,0 +1,41 @@
+const MiniCssExtractPlugin = require("mini-css-extract-plugin");
+
+module.exports = {
+ externals: {
+ "jquery": "jQuery",
+ "react": "React",
+ "react-dom": "ReactDOM"
+ },
+ plugins: [
+ new MiniCssExtractPlugin({
+ filename: "./control.css"
+ })
+ ],
+ module: {
+ rules: [
+ {
+ test: /\.(js|jsx)$/,
+ exclude: /node_modules/,
+ use: {
+ loader: "babel-loader"
+ }
+ },
+ {
+ test: /\.s[ac]ss$/i,
+ use: [
+ // Extracts CSS into separate files
+ MiniCssExtractPlugin.loader,
+ // Translates CSS into CommonJS
+ "css-loader",
+ // Compiles Sass to CSS
+ "sass-loader",
+ ],
+ }
+ ]
+ },
+ entry: "./src/control.js",
+ output: {
+ filename: "control.js",
+ },
+ devtool: "source-map"
+};
diff --git a/functions/kirki/packages/kirki-framework/control-color/LICENSE b/functions/kirki/packages/kirki-framework/control-color/LICENSE
new file mode 100644
index 0000000..f202ade
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-color/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2019 kirki-framework
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/functions/kirki/packages/kirki-framework/control-color/src/Field/Color.php b/functions/kirki/packages/kirki-framework/control-color/src/Field/Color.php
new file mode 100644
index 0000000..4c3eba9
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-color/src/Field/Color.php
@@ -0,0 +1,23 @@
+register_control_type( '\Kirki\Control\Custom' );
+} );
+
+/**
+ * Add Customizer settings & controls.
+ *
+ * @since 1.0
+ * @param WP_Customize_Manager $wp_customize The WP_Customize_Manager object.
+ * @return void
+ */
+add_action( 'customize_register', function( $wp_customize ) {
+
+ // Add setting.
+ $wp_customize->add_setting( 'my_control', [
+ 'type' => 'theme_mod',
+ 'capability' => 'edit_theme_options',
+ 'default' => '
diff --git a/functions/kirki/packages/kirki-framework/control-custom/src/Field/Custom.php b/functions/kirki/packages/kirki-framework/control-custom/src/Field/Custom.php
new file mode 100644
index 0000000..1003610
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-custom/src/Field/Custom.php
@@ -0,0 +1,84 @@
+args['settings'] ) {
+ $args = parent::filter_setting_args( $args, $wp_customize );
+ if ( ! isset( $args['sanitize_callback'] ) || ! $args['sanitize_callback'] ) {
+ $args['sanitize_callback'] = '__return_null';
+ }
+ }
+ return $args;
+ }
+
+ /**
+ * Filter arguments before creating the control.
+ *
+ * @access public
+ * @since 0.1
+ * @param array $args The field arguments.
+ * @param WP_Customize_Manager $wp_customize The customizer instance.
+ * @return array
+ */
+ public function filter_control_args( $args, $wp_customize ) {
+ if ( $args['settings'] === $this->args['settings'] ) {
+ $args = parent::filter_control_args( $args, $wp_customize );
+ $args['type'] = 'kirki-custom';
+ }
+ return $args;
+ }
+}
diff --git a/functions/kirki/packages/kirki-framework/control-dashicons/LICENSE b/functions/kirki/packages/kirki-framework/control-dashicons/LICENSE
new file mode 100644
index 0000000..f202ade
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-dashicons/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2019 kirki-framework
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/functions/kirki/packages/kirki-framework/control-dashicons/README.md b/functions/kirki/packages/kirki-framework/control-dashicons/README.md
new file mode 100644
index 0000000..0f1e93f
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-dashicons/README.md
@@ -0,0 +1,55 @@
+# control-dashicons
+
+## Installation
+
+First, install the package using composer:
+
+```bash
+composer require kirki-framework/control-dashicons
+```
+
+Make sure you include the autoloader:
+```php
+require_once get_parent_theme_file_path( 'vendor/autoload.php' );
+```
+
+To add a control using the customizer API:
+
+```php
+
+/**
+ * Registers the control and whitelists it for JS templating.
+ *
+ * @since 1.0
+ * @param WP_Customize_Manager $wp_customize The WP_Customize_Manager object.
+ * @return void
+ */
+add_action( 'customize_register', function( $wp_customize ) {
+ $wp_customize->register_control_type( '\Kirki\Control\Dashicons' );
+} );
+
+/**
+ * Add Customizer settings & controls.
+ *
+ * @since 1.0
+ * @param WP_Customize_Manager $wp_customize The WP_Customize_Manager object.
+ * @return void
+ */
+add_action( 'customize_register', function( $wp_customize ) {
+
+ // Add setting.
+ $wp_customize->add_setting( 'my_control', [
+ 'type' => 'theme_mod',
+ 'capability' => 'edit_theme_options',
+ 'default' => 'menu',
+ 'transport' => 'refresh', // Or postMessage.
+ 'sanitize_callback' => 'sanitize_text_field', // Or a custom sanitization callback.
+ ] );
+
+ // Add control.
+ $wp_customize->add_control( new \Kirki\Control\Dashicons( $wp_customize, 'my_control', [
+ 'label' => esc_html__( 'My Dashicons Control', 'theme_textdomain' ),
+ 'section' => 'my_section',
+ ] ) );
+} );
+```
diff --git a/functions/kirki/packages/kirki-framework/control-dashicons/dist/control.css b/functions/kirki/packages/kirki-framework/control-dashicons/dist/control.css
new file mode 100644
index 0000000..df4b16b
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-dashicons/dist/control.css
@@ -0,0 +1,2 @@
+.customize-control-kirki-dashicons{position:relative}.customize-control-kirki-dashicons label{display:inline-block;position:relative}.customize-control-kirki-dashicons .icons-wrapper{max-height:300px;overflow-y:scroll}.customize-control-kirki-dashicons .icons-wrapper h4{font-weight:300;margin:.7em 0}.customize-control-kirki-dashicons .icons-wrapper .dashicons{border:1px solid transparent;font-size:25px;height:25px;padding:3px;width:25px}.customize-control-kirki-dashicons .icons-wrapper input{display:none}.customize-control-kirki-dashicons .icons-wrapper input:checked+label .dashicons{border:1px solid #3498db;color:#000}
+/*# sourceMappingURL=control.css.map */
diff --git a/functions/kirki/packages/kirki-framework/control-dashicons/dist/control.js b/functions/kirki/packages/kirki-framework/control-dashicons/dist/control.js
new file mode 100644
index 0000000..5f3074a
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-dashicons/dist/control.js
@@ -0,0 +1,2 @@
+wp.customize.controlConstructor["kirki-dashicons"]=wp.customize.kirkiDynamicControl.extend({});
+//# sourceMappingURL=control.js.map
diff --git a/functions/kirki/packages/kirki-framework/control-dashicons/src/Control/Dashicons.php b/functions/kirki/packages/kirki-framework/control-dashicons/src/Control/Dashicons.php
new file mode 100644
index 0000000..6392350
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-dashicons/src/Control/Dashicons.php
@@ -0,0 +1,140 @@
+json['icons'] = \Kirki\Util\Dashicons::get_icons();
+ }
+
+ /**
+ * An Underscore (JS) template for this control's content (but not its container).
+ *
+ * Class variables for this control class are available in the `data` JS object;
+ * export custom variables by overriding {@see WP_Customize_Control::to_json()}.
+ *
+ * @see WP_Customize_Control::print_template()
+ *
+ * @access protected
+ * @since 1.0
+ * @return void
+ */
+ protected function content_template() {
+ ?>
+ <# if ( data.label ) { #>
{{{ data.label }}}<# } #>
+ <# if ( data.description ) { #>
{{{ data.description }}}<# } #>
+
+ <# if ( ! _.isUndefined( data.choices ) && 1 < _.size( data.choices ) ) { #>
+ <# for ( key in data.choices ) { #>
+ checked="checked"<# } #>>
+
+
+ <# } #>
+ <# } else { #>
+ <#
+ var dashiconSections = {
+ 'admin-menu': '',
+ 'welcome-screen': '',
+ 'post-formats': '',
+ 'media': '',
+ 'image-editing': '',
+ 'tinymce': 'TinyMCE',
+ 'posts': '',
+ 'sorting': '',
+ 'social': '',
+ 'wordpress_org': 'WordPress',
+ 'products': '',
+ 'taxonomies': '',
+ 'widgets': '',
+ 'notifications': '',
+ 'misc': ''
+ };
+ #>
+ <# _.each( dashiconSections, function( sectionLabel, sectionKey ) { #>
+
{{ sectionLabel }}
+ <# for ( key in data.icons[ sectionKey ] ) { #>
+ checked="checked"<# } #>>
+
+
+ <# } #>
+ <# }); #>
+ <# } #>
+
+ args['settings'] ) {
+ $args = parent::filter_setting_args( $args, $wp_customize );
+
+ // Set the sanitize-callback if none is defined.
+ if ( ! isset( $args['sanitize_callback'] ) || ! $args['sanitize_callback'] ) {
+ $args['sanitize_callback'] = 'sanitize_text_field';
+ }
+ }
+ return $args;
+ }
+
+ /**
+ * Filter arguments before creating the control.
+ *
+ * @access public
+ * @since 0.1
+ * @param array $args The field arguments.
+ * @param WP_Customize_Manager $wp_customize The customizer instance.
+ * @return array
+ */
+ public function filter_control_args( $args, $wp_customize ) {
+ if ( $args['settings'] === $this->args['settings'] ) {
+ $args = parent::filter_control_args( $args, $wp_customize );
+ $args['type'] = 'kirki-dashicons';
+ }
+ return $args;
+ }
+}
diff --git a/functions/kirki/packages/kirki-framework/control-dashicons/src/Util/Dashicons.php b/functions/kirki/packages/kirki-framework/control-dashicons/src/Util/Dashicons.php
new file mode 100644
index 0000000..da2585b
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-dashicons/src/Util/Dashicons.php
@@ -0,0 +1,47 @@
+ [ 'menu', 'menu-alt', 'menu-alt2', 'menu-alt3', 'admin-site', 'admin-site-alt', 'admin-site-alt2', 'admin-site-alt3', 'dashboard', 'admin-post', 'admin-media', 'admin-links', 'admin-page', 'admin-comments', 'admin-appearance', 'admin-plugins', 'plugins-checked', 'admin-users', 'admin-tools', 'admin-settings', 'admin-network', 'admin-home', 'admin-generic', 'admin-collapse', 'filter', 'admin-customizer', 'admin-multisite' ],
+ 'welcome-screen' => [ 'welcome-write-blog', 'welcome-add-page', 'welcome-view-site', 'welcome-widgets-menus', 'welcome-comments', 'welcome-learn-more' ],
+ 'post-formats' => [ 'format-aside', 'format-image', 'format-gallery', 'format-video', 'format-status', 'format-quote', 'format-chat', 'format-audio', 'camera', 'camera-alt', 'images-alt', 'images-alt2', 'video-alt', 'video-alt2', 'video-alt3' ],
+ 'media' => [ 'media-archive', 'media-audio', 'media-code', 'media-default', 'media-document', 'media-interactive', 'media-spreadsheet', 'media-text', 'media-video', 'playlist-audio', 'playlist-video', 'controls-play', 'controls-pause', 'controls-forward', 'controls-skipforward', 'controls-back', 'controls-skipback', 'controls-repeat', 'controls-volumeon', 'controls-volumeoff' ],
+ 'image-editing' => [ 'image-crop', 'image-rotate', 'image-rotate-left', 'image-rotate-right', 'image-flip-vertical', 'image-flip-horizontal', 'image-filter', 'undo', 'redo' ],
+ 'tinymce' => [ 'editor-bold', 'editor-italic', 'editor-ul', 'editor-ol', 'editor-ol-rtl', 'editor-quote', 'editor-alignleft', 'editor-aligncenter', 'editor-alignright', 'editor-insertmore', 'editor-spellcheck', 'editor-expand', 'editor-contract', 'editor-kitchensink', 'editor-underline', 'editor-justify', 'editor-textcolor', 'editor-paste-word', 'editor-paste-text', 'editor-removeformatting', 'editor-video', 'editor-customchar', 'editor-outdent', 'editor-indent', 'editor-help', 'editor-strikethrough', 'editor-unlink', 'editor-rtl', 'editor-ltr', 'editor-break', 'editor-code', 'editor-paragraph', 'editor-table' ],
+ 'posts' => [ 'align-left', 'align-right', 'align-center', 'align-none', 'lock', 'unlock', 'calendar', 'calendar-alt', 'visibility', 'hidden', 'post-status', 'edit', 'trash', 'sticky' ],
+ 'sorting' => [ 'external', 'arrow-up', 'arrow-down', 'arrow-right', 'arrow-left', 'arrow-up-alt', 'arrow-down-alt', 'arrow-right-alt', 'arrow-left-alt', 'arrow-up-alt2', 'arrow-down-alt2', 'arrow-right-alt2', 'arrow-left-alt2', 'sort', 'leftright', 'randomize', 'list-view', 'exerpt-view', 'grid-view', 'move' ],
+ 'social' => [ 'share', 'share-alt', 'share-alt2', 'twitter', 'rss', 'email', 'email-alt', 'email-alt2', 'facebook', 'facebook-alt', 'googleplus', 'networking', 'instagram' ],
+ 'wordpress_org' => [ 'hammer', 'art', 'migrate', 'performance', 'universal-access', 'universal-access-alt', 'tickets', 'nametag', 'clipboard', 'heart', 'megaphone', 'schedule', 'tide', 'rest-api', 'code-standards' ],
+ 'products' => [ 'wordpress', 'wordpress-alt', 'pressthis', 'update', 'update-alt', 'screenoptions', 'info', 'cart', 'feedback', 'cloud', 'translation' ],
+ 'taxonomies' => [ 'tag', 'category' ],
+ 'widgets' => [ 'archive', 'tagcloud', 'text' ],
+ 'notifications' => [ 'yes', 'yes-alt', 'no', 'no-alt', 'plus', 'plus-alt', 'minus', 'dismiss', 'marker', 'star-filled', 'star-half', 'star-empty', 'flag', 'warning' ],
+ 'misc' => [ 'location', 'location-alt', 'vault', 'shield', 'shield-alt', 'sos', 'search', 'slides', 'text-page', 'analytics', 'chart-pie', 'chart-bar', 'chart-line', 'chart-area', 'groups', 'businessman', 'businesswoman', 'businessperson', 'id', 'id-alt', 'products', 'awards', 'forms', 'testimonial', 'portfolio', 'book', 'book-alt', 'download', 'upload', 'backup', 'clock', 'lightbulb', 'microphone', 'desktop', 'tablet', 'smartphone', 'phone', 'index-card', 'carrot', 'building', 'store', 'album', 'palmtree', 'tickets-alt', 'money', 'smiley', 'thumbs-up', 'thumbs-down', 'layout', 'paperclip' ],
+ ];
+ }
+}
diff --git a/functions/kirki/packages/kirki-framework/control-dashicons/src/control.js b/functions/kirki/packages/kirki-framework/control-dashicons/src/control.js
new file mode 100644
index 0000000..51cbb81
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-dashicons/src/control.js
@@ -0,0 +1,3 @@
+import "./control.scss";
+
+wp.customize.controlConstructor['kirki-dashicons'] = wp.customize.kirkiDynamicControl.extend( {} );
diff --git a/functions/kirki/packages/kirki-framework/control-date/LICENSE b/functions/kirki/packages/kirki-framework/control-date/LICENSE
new file mode 100644
index 0000000..f202ade
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-date/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2019 kirki-framework
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/functions/kirki/packages/kirki-framework/control-date/README.md b/functions/kirki/packages/kirki-framework/control-date/README.md
new file mode 100644
index 0000000..e393daa
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-date/README.md
@@ -0,0 +1,55 @@
+# control-date
+
+## Installation
+
+First, install the package using composer:
+
+```bash
+composer require kirki-framework/control-date
+```
+
+Make sure you include the autoloader:
+```php
+require_once get_parent_theme_file_path( 'vendor/autoload.php' );
+```
+
+To add a control using the customizer API:
+
+```php
+
+/**
+ * Registers the control and whitelists it for JS templating.
+ *
+ * @since 1.0
+ * @param WP_Customize_Manager $wp_customize The WP_Customize_Manager object.
+ * @return void
+ */
+add_action( 'customize_register', function( $wp_customize ) {
+ $wp_customize->register_control_type( '\Kirki\Control\Date' );
+} );
+
+/**
+ * Add Customizer settings & controls.
+ *
+ * @since 1.0
+ * @param WP_Customize_Manager $wp_customize The WP_Customize_Manager object.
+ * @return void
+ */
+add_action( 'customize_register', function( $wp_customize ) {
+
+ // Add setting.
+ $wp_customize->add_setting( 'my_control', [
+ 'type' => 'theme_mod',
+ 'capability' => 'edit_theme_options',
+ 'default' => '',
+ 'transport' => 'refresh', // Or postMessage.
+ 'sanitize_callback' => 'sanitize_text_field', // Or a custom sanitization callback.
+ ] );
+
+ // Add control.
+ $wp_customize->add_control( new \Kirki\Control\Date( $wp_customize, 'my_control', [
+ 'label' => esc_html__( 'My Control', 'theme_textdomain' ),
+ 'section' => 'my_section',
+ ] ) );
+} );
+```
diff --git a/functions/kirki/packages/kirki-framework/control-date/dist/control.css b/functions/kirki/packages/kirki-framework/control-date/dist/control.css
new file mode 100644
index 0000000..833b0a7
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-date/dist/control.css
@@ -0,0 +1,2 @@
+.kirki-datepicker-popup{background-color:#fff;border:1px solid #ddd;border-radius:6px;box-shadow:0 12px 15px 0 rgba(0,0,0,.09);margin-top:15px;max-width:275px;overflow:hidden;padding-bottom:10px;z-index:500001!important}.kirki-datepicker-popup .ui-datepicker-header{background-color:#eee;padding:10px}.kirki-datepicker-popup .ui-datepicker-header .ui-datepicker-next,.kirki-datepicker-popup .ui-datepicker-header .ui-datepicker-prev{align-items:center;border-radius:50%;cursor:pointer;display:flex;height:30px;justify-content:center;overflow:hidden;position:absolute;transition:all .2s;width:30px}.kirki-datepicker-popup .ui-datepicker-header .ui-datepicker-next:active,.kirki-datepicker-popup .ui-datepicker-header .ui-datepicker-next:focus,.kirki-datepicker-popup .ui-datepicker-header .ui-datepicker-next:hover,.kirki-datepicker-popup .ui-datepicker-header .ui-datepicker-prev:active,.kirki-datepicker-popup .ui-datepicker-header .ui-datepicker-prev:focus,.kirki-datepicker-popup .ui-datepicker-header .ui-datepicker-prev:hover{background-color:#2271b1;color:#fff}.kirki-datepicker-popup .ui-datepicker-header .ui-datepicker-next:after,.kirki-datepicker-popup .ui-datepicker-header .ui-datepicker-next:before,.kirki-datepicker-popup .ui-datepicker-header .ui-datepicker-prev:after,.kirki-datepicker-popup .ui-datepicker-header .ui-datepicker-prev:before{font-family:dashicons}.kirki-datepicker-popup .ui-datepicker-header .ui-datepicker-next .ui-icon,.kirki-datepicker-popup .ui-datepicker-header .ui-datepicker-prev .ui-icon{display:none}.kirki-datepicker-popup .ui-datepicker-header .ui-datepicker-prev{left:10px}.kirki-datepicker-popup .ui-datepicker-header .ui-datepicker-prev:before{content:"\f341"}.kirki-datepicker-popup .ui-datepicker-header .ui-datepicker-next{right:10px}.kirki-datepicker-popup .ui-datepicker-header .ui-datepicker-next:after{content:"\f345"}.kirki-datepicker-popup .ui-datepicker-header .ui-datepicker-title{align-items:center;display:flex;font-size:16px;height:30px;justify-content:center;text-align:center;width:100%}.kirki-datepicker-popup .ui-datepicker-calendar{border-collapse:collapse;padding-bottom:20px;width:100%}.kirki-datepicker-popup .ui-datepicker-calendar thead{background-color:#ddd;padding-left:5px;padding-right:5px}.kirki-datepicker-popup .ui-datepicker-calendar thead th{font-size:13px;font-weight:600;padding-bottom:5px;padding-top:5px;text-align:center}.kirki-datepicker-popup .ui-datepicker-calendar tbody{padding:5px}.kirki-datepicker-popup .ui-datepicker-calendar tbody td{padding:2px;text-align:center}.kirki-datepicker-popup .ui-datepicker-calendar tbody a{color:#333;text-decoration:none}.kirki-datepicker-popup .ui-datepicker-calendar tbody .ui-datepicker-today .ui-state-default{background-color:#eee}.kirki-datepicker-popup .ui-datepicker-calendar tbody .ui-datepicker-today .ui-state-active,.kirki-datepicker-popup .ui-datepicker-calendar tbody .ui-datepicker-today .ui-state-active:active,.kirki-datepicker-popup .ui-datepicker-calendar tbody .ui-datepicker-today .ui-state-active:focus,.kirki-datepicker-popup .ui-datepicker-calendar tbody .ui-datepicker-today .ui-state-active:hover{background-color:#2271b1}.kirki-datepicker-popup .ui-datepicker-calendar tbody .ui-state-default{align-items:center;border-radius:50%;display:inline-flex;height:30px;justify-content:center;width:30px}.kirki-datepicker-popup .ui-datepicker-calendar tbody .ui-state-default:active,.kirki-datepicker-popup .ui-datepicker-calendar tbody .ui-state-default:hover{background-color:#eee}.kirki-datepicker-popup .ui-datepicker-calendar tbody .ui-state-active,.kirki-datepicker-popup .ui-datepicker-calendar tbody .ui-state-default:focus{background-color:#2271b1;color:#fff}.kirki-datepicker-popup .ui-datepicker-calendar tbody .ui-state-active:active,.kirki-datepicker-popup .ui-datepicker-calendar tbody .ui-state-active:focus,.kirki-datepicker-popup .ui-datepicker-calendar tbody .ui-state-active:hover{background-color:#2271b1}
+/*# sourceMappingURL=control.css.map */
diff --git a/functions/kirki/packages/kirki-framework/control-date/dist/control.js b/functions/kirki/packages/kirki-framework/control-date/dist/control.js
new file mode 100644
index 0000000..0553cae
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-date/dist/control.js
@@ -0,0 +1,2 @@
+wp.customize.controlConstructor["kirki-date"]=wp.customize.kirkiDynamicControl.extend({handleWidth:function(e){document.querySelector("#kirki-style-datepicker").innerHTML=".kirki-datepicker-popup {width: "+e.clientWidth.toString()+"px;}"},initKirkiControl:function(e){var t;t=(e=e||this).selector+" input.datepicker";var i=document.querySelector("#kirki-style-datepicker");i||((i=document.createElement("style")).id="kirki-style-datepicker",document.head.appendChild(i)),jQuery(t).datepicker({dateFormat:"yy-mm-dd",duration:200,beforeShow:function(t,i){i.dpDiv[0].classList.add("kirki-datepicker-popup"),e.handleWidth(t)}}),this.container.on("change keyup paste","input.datepicker",(function(){e.setting.set(jQuery(this).val())}))}});
+//# sourceMappingURL=control.js.map
diff --git a/functions/kirki/packages/kirki-framework/control-date/src/Control/Date.php b/functions/kirki/packages/kirki-framework/control-date/src/Control/Date.php
new file mode 100644
index 0000000..7540393
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-date/src/Control/Date.php
@@ -0,0 +1,82 @@
+
+
+ args['settings'] ) {
+ $args = parent::filter_setting_args( $args, $wp_customize );
+
+ // Set the sanitize-callback if none is defined.
+ if ( ! isset( $args['sanitize_callback'] ) || ! $args['sanitize_callback'] ) {
+ $args['sanitize_callback'] = 'sanitize_text_field';
+ }
+ }
+ return $args;
+ }
+
+ /**
+ * Filter arguments before creating the control.
+ *
+ * @access public
+ * @since 0.1
+ * @param array $args The field arguments.
+ * @param WP_Customize_Manager $wp_customize The customizer instance.
+ * @return array
+ */
+ public function filter_control_args( $args, $wp_customize ) {
+ if ( $args['settings'] === $this->args['settings'] ) {
+ $args = parent::filter_control_args( $args, $wp_customize );
+ $args['type'] = 'kirki-date';
+ }
+ return $args;
+ }
+}
diff --git a/functions/kirki/packages/kirki-framework/control-date/src/control.js b/functions/kirki/packages/kirki-framework/control-date/src/control.js
new file mode 100644
index 0000000..5f6a1f9
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-date/src/control.js
@@ -0,0 +1,39 @@
+import "./control.scss";
+
+wp.customize.controlConstructor['kirki-date'] = wp.customize.kirkiDynamicControl.extend({
+
+ handleWidth: (input) => {
+ var styleTag = document.querySelector('#kirki-style-datepicker');
+ styleTag.innerHTML = '.kirki-datepicker-popup {width: ' + input.clientWidth.toString() + 'px;}';
+ },
+
+ initKirkiControl: function (control) {
+ var selector;
+
+ control = control || this;
+ selector = control.selector + ' input.datepicker';
+
+ var styleTag = document.querySelector('#kirki-style-datepicker');
+
+ if (!styleTag) {
+ styleTag = document.createElement('style');
+ styleTag.id = 'kirki-style-datepicker';
+ document.head.appendChild(styleTag);
+ }
+
+ // Init the datepicker.
+ jQuery(selector).datepicker({
+ dateFormat: 'yy-mm-dd',
+ duration: 200,
+ beforeShow: function (input, inst) {
+ inst.dpDiv[0].classList.add('kirki-datepicker-popup');
+ control.handleWidth(input);
+ }
+ });
+
+ // Save the changes
+ this.container.on('change keyup paste', 'input.datepicker', function () {
+ control.setting.set(jQuery(this).val());
+ });
+ }
+});
diff --git a/functions/kirki/packages/kirki-framework/control-dimension/LICENSE b/functions/kirki/packages/kirki-framework/control-dimension/LICENSE
new file mode 100644
index 0000000..f202ade
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-dimension/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2019 kirki-framework
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/functions/kirki/packages/kirki-framework/control-dimension/README.md b/functions/kirki/packages/kirki-framework/control-dimension/README.md
new file mode 100644
index 0000000..8bb4308
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-dimension/README.md
@@ -0,0 +1,55 @@
+# control-dimension
+
+## Installation
+
+First, install the package using composer:
+
+```bash
+composer require kirki-framework/control-dimension
+```
+
+Make sure you include the autoloader:
+```php
+require_once get_parent_theme_file_path( 'vendor/autoload.php' );
+```
+
+To add a control using the customizer API:
+
+```php
+
+/**
+ * Registers the control and whitelists it for JS templating.
+ *
+ * @since 1.0
+ * @param WP_Customize_Manager $wp_customize The WP_Customize_Manager object.
+ * @return void
+ */
+add_action( 'customize_register', function( $wp_customize ) {
+ $wp_customize->register_control_type( '\Kirki\Control\Dimension' );
+} );
+
+/**
+ * Add Customizer settings & controls.
+ *
+ * @since 1.0
+ * @param WP_Customize_Manager $wp_customize The WP_Customize_Manager object.
+ * @return void
+ */
+add_action( 'customize_register', function( $wp_customize ) {
+
+ // Add setting.
+ $wp_customize->add_setting( 'my_control', [
+ 'type' => 'theme_mod',
+ 'capability' => 'edit_theme_options',
+ 'default' => '10px',
+ 'transport' => 'refresh', // Or postMessage.
+ 'sanitize_callback' => 'sanitize_text_field', // Or a custom sanitization callback.
+ ] );
+
+ // Add control.
+ $wp_customize->add_control( new \Kirki\Control\Dimension( $wp_customize, 'my_control', [
+ 'label' => esc_html__( 'My Control', 'theme_textdomain' ),
+ 'section' => 'my_section',
+ ] ) );
+} );
+```
diff --git a/functions/kirki/packages/kirki-framework/control-dimension/dist/control.css b/functions/kirki/packages/kirki-framework/control-dimension/dist/control.css
new file mode 100644
index 0000000..c672749
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-dimension/dist/control.css
@@ -0,0 +1,2 @@
+.customize-control-kirki-dimension .has-label-bottom .kirki-control-label{color:#333;font-size:11px;font-weight:500;margin-top:3px;text-align:center}.customize-control-kirki-dimension .has-label-bottom .kirki-control-input{background-color:#f7f7f7}.customize-control-kirki-dimension .has-label-bottom .kirki-control-input:focus{background-color:#fff}
+/*# sourceMappingURL=control.css.map */
diff --git a/functions/kirki/packages/kirki-framework/control-dimension/dist/control.js b/functions/kirki/packages/kirki-framework/control-dimension/dist/control.js
new file mode 100644
index 0000000..5974f91
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-dimension/dist/control.js
@@ -0,0 +1,2 @@
+wp.customize.controlConstructor["kirki-dimension"]=wp.customize.kirkiDynamicControl.extend({initKirkiControl:function(i){var n;(i=i||this).kirkiNotifications(),i.container.on("change keyup paste","input",(function(){n=jQuery(this).val(),i.setting.set(n)}))},kirkiNotifications:function(){var i=this,n=void 0!==i.params.choices&&void 0!==i.params.choices.accept_unitless&&!0===i.params.choices.accept_unitless;wp.customize(i.id,(function(t){t.bind((function(e){var a="long_title";!1!==i.validateCssValue(e)||n&&!isNaN(e)?t.notifications.remove(a):t.notifications.add(a,new wp.customize.Notification(a,{type:"warning",message:dimensionkirkiL10n["invalid-value"]}))}))}))},validateCssValue:function(i){var n,t,e,a=this,o=!0;return!i||""===i||0===i||"0"===i||"auto"===i||"inherit"===i||"initial"===i||0<=i.indexOf("calc(")&&0<=i.indexOf(")")||(n=parseFloat(i),!(t=i.replace(n,""))||(2<=(e=i.split(" ")).length?(e.forEach((function(i){i&&!a.validateCssValue(i)&&(o=!1)})),o):!isNaN(n)&&-1!==["fr","rem","em","ex","%","px","cm","mm","in","pt","pc","ch","vh","vw","vmin","vmax"].indexOf(t)))}});
+//# sourceMappingURL=control.js.map
diff --git a/functions/kirki/packages/kirki-framework/control-dimension/src/Control/Dimension.php b/functions/kirki/packages/kirki-framework/control-dimension/src/Control/Dimension.php
new file mode 100644
index 0000000..2e1a214
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-dimension/src/Control/Dimension.php
@@ -0,0 +1,159 @@
+ esc_html__( 'Invalid Value', 'kirki' ),
+ ]
+ );
+ }
+
+ /**
+ * Get the URL for the control folder.
+ *
+ * This is a static method because there are more controls in the Kirki framework
+ * that use colorpickers, and they all need to enqueue the same assets.
+ *
+ * @static
+ * @access public
+ * @since 1.0
+ * @return string
+ */
+ public static function get_control_path_url() {
+ return URL::get_from_path( dirname( __DIR__ ) );
+ }
+
+ /**
+ * Refresh the parameters passed to the JavaScript via JSON.
+ *
+ * @access public
+ * @since 1.0
+ * @see WP_Customize_Control::to_json()
+ * @return void
+ */
+ public function to_json() {
+
+ $input_class = 'kirki-control-input';
+
+ if ( isset( $this->input_attrs['class'] ) ) {
+ $input_class .= ' ' . $this->input_attrs['class'];
+ unset( $this->input_attrs['class'] );
+ }
+
+ // Get the basics from the parent class.
+ parent::to_json();
+
+ // Input class name.
+ $this->json['inputClass'] = $input_class;
+
+ // Label position.
+ $this->json['labelPosition'] = 'top';
+
+ if ( isset( $this->choices['label_position'] ) && 'bottom' === $this->choices['label_position'] ) {
+ $this->json['labelPosition'] = 'bottom';
+ }
+
+ // Input id.
+ $this->json['inputId'] = '_customize-input-' . $this->id;
+
+ }
+
+ /**
+ * An Underscore (JS) template for this control's content (but not its container).
+ *
+ * Class variables for this control class are available in the `data` JS object;
+ * export custom variables by overriding {@see WP_Customize_Control::to_json()}.
+ *
+ * @see WP_Customize_Control::print_template()
+ *
+ * @access protected
+ * @since 1.0
+ * @return void
+ */
+ protected function content_template() {
+ ?>
+
+
+
+ args['settings'] ) {
+ $args = parent::filter_setting_args( $args, $wp_customize );
+
+ // Set the sanitize-callback if none is defined.
+ if ( ! isset( $args['sanitize_callback'] ) || ! $args['sanitize_callback'] ) {
+ $args['sanitize_callback'] = 'sanitize_text_field';
+ }
+ }
+ return $args;
+ }
+
+ /**
+ * Filter arguments before creating the control.
+ *
+ * @access public
+ * @since 0.1
+ * @param array $args The field arguments.
+ * @param WP_Customize_Manager $wp_customize The customizer instance.
+ * @return array
+ */
+ public function filter_control_args( $args, $wp_customize ) {
+ if ( $args['settings'] === $this->args['settings'] ) {
+ $args = parent::filter_control_args( $args, $wp_customize );
+ $args['type'] = 'kirki-dimension';
+ }
+ return $args;
+ }
+}
diff --git a/functions/kirki/packages/kirki-framework/control-dimension/src/control.js b/functions/kirki/packages/kirki-framework/control-dimension/src/control.js
new file mode 100644
index 0000000..d204f09
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-dimension/src/control.js
@@ -0,0 +1,91 @@
+import "./control.scss";
+
+/* global dimensionkirkiL10n */
+wp.customize.controlConstructor['kirki-dimension'] = wp.customize.kirkiDynamicControl.extend( {
+
+ initKirkiControl: function( control ) {
+ var value;
+ control = control || this;
+
+ // Notifications.
+ control.kirkiNotifications();
+
+ // Save the value
+ control.container.on( 'change keyup paste', 'input', function() {
+ value = jQuery( this ).val();
+ control.setting.set( value );
+ } );
+ },
+
+ /**
+ * Handles notifications.
+ *
+ * @returns {void}
+ */
+ kirkiNotifications: function() {
+
+ var control = this,
+ acceptUnitless = ( 'undefined' !== typeof control.params.choices && 'undefined' !== typeof control.params.choices.accept_unitless && true === control.params.choices.accept_unitless );
+
+ wp.customize( control.id, function( setting ) {
+ setting.bind( function( value ) {
+ var code = 'long_title';
+
+ if ( false === control.validateCssValue( value ) && ( ! acceptUnitless || isNaN( value ) ) ) {
+ setting.notifications.add( code, new wp.customize.Notification( code, {
+ type: 'warning',
+ message: dimensionkirkiL10n['invalid-value']
+ } ) );
+ } else {
+ setting.notifications.remove( code );
+ }
+ } );
+ } );
+ },
+
+ validateCssValue: function( value ) {
+
+ var control = this,
+ validUnits = [ 'fr', 'rem', 'em', 'ex', '%', 'px', 'cm', 'mm', 'in', 'pt', 'pc', 'ch', 'vh', 'vw', 'vmin', 'vmax' ],
+ numericValue,
+ unit,
+ multiples,
+ multiplesValid = true;
+
+ // Whitelist values.
+ if ( ! value || '' === value || 0 === value || '0' === value || 'auto' === value || 'inherit' === value || 'initial' === value ) {
+ return true;
+ }
+
+ // Skip checking if calc().
+ if ( 0 <= value.indexOf( 'calc(' ) && 0 <= value.indexOf( ')' ) ) {
+ return true;
+ }
+
+ // Get the numeric value.
+ numericValue = parseFloat( value );
+
+ // Get the unit
+ unit = value.replace( numericValue, '' );
+
+ // Allow unitless.
+ if ( ! unit ) {
+ return true;
+ }
+
+ // Check for multiple values.
+ multiples = value.split( ' ' );
+ if ( 2 <= multiples.length ) {
+ multiples.forEach( function( item ) {
+ if ( item && ! control.validateCssValue( item ) ) {
+ multiplesValid = false;
+ }
+ });
+
+ return multiplesValid;
+ }
+
+ // Check the validity of the numeric value and units.
+ return ( ! isNaN( numericValue ) && -1 !== validUnits.indexOf( unit ) );
+ }
+} );
diff --git a/functions/kirki/packages/kirki-framework/control-editor/LICENSE b/functions/kirki/packages/kirki-framework/control-editor/LICENSE
new file mode 100644
index 0000000..f202ade
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-editor/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2019 kirki-framework
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/functions/kirki/packages/kirki-framework/control-editor/README.md b/functions/kirki/packages/kirki-framework/control-editor/README.md
new file mode 100644
index 0000000..ec3ac6b
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-editor/README.md
@@ -0,0 +1,54 @@
+# control-editor
+
+## Installation
+
+First, install the package using composer:
+
+```bash
+composer require kirki-framework/control-editor
+```
+
+Make sure you include the autoloader:
+```php
+require_once get_parent_theme_file_path( 'vendor/autoload.php' );
+```
+
+To add a control using the customizer API:
+
+```php
+/**
+ * Registers the control and whitelists it for JS templating.
+ *
+ * @since 1.0
+ * @param WP_Customize_Manager $wp_customize The WP_Customize_Manager object.
+ * @return void
+ */
+add_action( 'customize_register', function( $wp_customize ) {
+ $wp_customize->register_control_type( '\Kirki\Control\Editor' );
+} );
+
+/**
+ * Add Customizer settings & controls.
+ *
+ * @since 1.0
+ * @param WP_Customize_Manager $wp_customize The WP_Customize_Manager object.
+ * @return void
+ */
+add_action( 'customize_register', function( $wp_customize ) {
+
+ // Add setting.
+ $wp_customize->add_setting( 'my_control', [
+ 'type' => 'theme_mod',
+ 'capability' => 'edit_theme_options',
+ 'default' => '',
+ 'transport' => 'refresh', // Or postMessage.
+ 'sanitize_callback' => 'wp_kses_post', // Or a custom sanitization callback.
+ ] );
+
+ // Add control.
+ $wp_customize->add_control( new \Kirki\Control\Editor( $wp_customize, 'my_control', [
+ 'label' => esc_html__( 'My Control', 'theme_textdomain' ),
+ 'section' => 'my_section',
+ ] ) );
+} );
+```
diff --git a/functions/kirki/packages/kirki-framework/control-editor/dist/control.css b/functions/kirki/packages/kirki-framework/control-editor/dist/control.css
new file mode 100644
index 0000000..fdabe4e
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-editor/dist/control.css
@@ -0,0 +1,2 @@
+.customize-control-kirki-editor textarea{width:100%}
+/*# sourceMappingURL=control.css.map */
diff --git a/functions/kirki/packages/kirki-framework/control-editor/dist/control.js b/functions/kirki/packages/kirki-framework/control-editor/dist/control.js
new file mode 100644
index 0000000..e54af00
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-editor/dist/control.js
@@ -0,0 +1,2 @@
+wp.customize.controlConstructor["kirki-editor"]=wp.customize.kirkiDynamicControl.extend({initKirkiControl:function(i){var t,e,n,o;t=(i=i||this).container.find("textarea"),n="kirki-editor-"+i.id.replace("[","").replace("]",""),o={tinymce:{wpautop:!0},quicktags:!0,mediaButtons:!0},wp.editor&&wp.editor.initialize&&wp.editor.initialize(n,jQuery.extend({},o,i.params.choices)),(e=tinyMCE.get(n))&&e.onChange.add((function(n){var o;n.save(),o=e.getContent(),t.val(o).trigger("change"),wp.customize.instance(i.id).set(o)}))}});
+//# sourceMappingURL=control.js.map
diff --git a/functions/kirki/packages/kirki-framework/control-editor/src/Control/Editor.php b/functions/kirki/packages/kirki-framework/control-editor/src/Control/Editor.php
new file mode 100644
index 0000000..b437d05
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-editor/src/Control/Editor.php
@@ -0,0 +1,107 @@
+json['choices'] = $this->choices;
+ }
+
+ /**
+ * An Underscore (JS) template for this control's content (but not its container).
+ *
+ * Class variables for this control class are available in the `data` JS object;
+ * export custom variables by overriding {@see WP_Customize_Control::to_json()}.
+ *
+ * The actual editor is added from the \Kirki\Field\Editor class.
+ * All this template contains is a button that triggers the global editor on/off
+ * and a hidden textarea element that is used to mirror save the options.
+ *
+ * @see WP_Customize_Control::print_template()
+ *
+ * @access protected
+ * @since 1.0
+ * @return void
+ */
+ protected function content_template() {
+ ?>
+
+
+ args['settings'] ) {
+ $args = parent::filter_setting_args( $args, $wp_customize );
+
+ // Set the sanitize-callback if none is defined.
+ if ( ! isset( $args['sanitize_callback'] ) || ! $args['sanitize_callback'] ) {
+ $args['sanitize_callback'] = 'wp_kses_post';
+ }
+ }
+ return $args;
+ }
+
+ /**
+ * Filter arguments before creating the control.
+ *
+ * @access public
+ * @since 0.1
+ * @param array $args The field arguments.
+ * @param WP_Customize_Manager $wp_customize The customizer instance.
+ * @return array
+ */
+ public function filter_control_args( $args, $wp_customize ) {
+ if ( $args['settings'] === $this->args['settings'] ) {
+ $args = parent::filter_control_args( $args, $wp_customize );
+ $args['type'] = 'kirki-editor';
+ }
+ return $args;
+ }
+}
diff --git a/functions/kirki/packages/kirki-framework/control-editor/src/control.js b/functions/kirki/packages/kirki-framework/control-editor/src/control.js
new file mode 100644
index 0000000..2e4739e
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-editor/src/control.js
@@ -0,0 +1,37 @@
+import "./control.scss";
+
+/* global tinyMCE */
+wp.customize.controlConstructor[ 'kirki-editor' ] = wp.customize.kirkiDynamicControl.extend( {
+ initKirkiControl: function( control ) {
+ var element, editor, id, defaultParams;
+ control = control || this;
+ element = control.container.find( 'textarea' );
+ id = 'kirki-editor-' + control.id.replace( '[', '' ).replace( ']', '' );
+
+ defaultParams = {
+ tinymce: {
+ wpautop: true
+ },
+ quicktags: true,
+ mediaButtons: true
+ };
+
+ // Overwrite the default paramaters if choices is defined.
+ if ( wp.editor && wp.editor.initialize ) {
+ wp.editor.initialize( id, jQuery.extend( {}, defaultParams, control.params.choices ) );
+ }
+
+ editor = tinyMCE.get( id );
+
+ if ( editor ) {
+ editor.onChange.add( function( ed ) {
+ var content;
+
+ ed.save();
+ content = editor.getContent();
+ element.val( content ).trigger( 'change' );
+ wp.customize.instance( control.id ).set( content );
+ } );
+ }
+ }
+} );
diff --git a/functions/kirki/packages/kirki-framework/control-generic/LICENSE b/functions/kirki/packages/kirki-framework/control-generic/LICENSE
new file mode 100644
index 0000000..f202ade
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-generic/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2019 kirki-framework
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/functions/kirki/packages/kirki-framework/control-generic/README.md b/functions/kirki/packages/kirki-framework/control-generic/README.md
new file mode 100644
index 0000000..59c7b60
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-generic/README.md
@@ -0,0 +1,61 @@
+# control-fontawesome
+
+## Installation
+
+First, install the package using composer:
+
+```bash
+composer require kirki-framework/control-generic
+```
+
+Make sure you include the autoloader:
+```php
+require_once get_parent_theme_file_path( 'vendor/autoload.php' );
+```
+
+To add a control using the customizer API:
+
+```php
+
+/**
+ * Registers the control and whitelists it for JS templating.
+ *
+ * @since 1.0
+ * @param WP_Customize_Manager $wp_customize The WP_Customize_Manager object.
+ * @return void
+ */
+add_action( 'customize_register', function( $wp_customize ) {
+ $wp_customize->register_control_type( '\Kirki\Control\Generic' );
+} );
+
+/**
+ * Add Customizer settings & controls.
+ *
+ * @since 1.0
+ * @param WP_Customize_Manager $wp_customize The WP_Customize_Manager object.
+ * @return void
+ */
+add_action( 'customize_register', function( $wp_customize ) {
+
+ // Add setting.
+ $wp_customize->add_setting( 'my_control', [
+ 'type' => 'theme_mod',
+ 'capability' => 'edit_theme_options',
+ 'default' => '',
+ 'transport' => 'refresh', // Or postMessage.
+ 'sanitize_callback' => 'sanitize_text_field', // Or a custom sanitization callback.
+ ] );
+
+ // Add control.
+ $wp_customize->add_control( new \Kirki\Control\Generic( $wp_customize, 'my_control', [
+ 'label' => esc_html__( 'My Control', 'theme_textdomain' ),
+ 'section' => 'my_section',
+ 'choices' => [
+ 'element' => 'input',
+ 'type' => 'password',
+ 'style' => 'background-color:black;color:red;',
+ 'data-foo' => 'bar',
+ ],
+ ] ) );
+} );
+```
diff --git a/functions/kirki/packages/kirki-framework/control-generic/dist/control.js b/functions/kirki/packages/kirki-framework/control-generic/dist/control.js
new file mode 100644
index 0000000..459d67a
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-generic/dist/control.js
@@ -0,0 +1,2 @@
+wp.customize.controlConstructor["kirki-generic"]=wp.customize.kirkiDynamicControl.extend({initKirkiControl:function(i){var c=(i=i||this).params;i.container.find("input, textarea").on("change input",(function(){var e=jQuery(this).val();"kirki-generic"===c.type&&c.choices&&"number"===c.choices.type&&(c.choices.min=parseFloat(c.choices.min),c.choices.max=parseFloat(c.choices.max),e
c.choices.max&&(e=c.choices.max)),i.setting.set(e)}))}});
+//# sourceMappingURL=control.js.map
diff --git a/functions/kirki/packages/kirki-framework/control-generic/src/Control/Generic.php b/functions/kirki/packages/kirki-framework/control-generic/src/Control/Generic.php
new file mode 100644
index 0000000..492bd20
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-generic/src/Control/Generic.php
@@ -0,0 +1,110 @@
+
+
+
+ <# element = ( data.choices.element ) ? data.choices.element : 'input'; #>
+
+ <# if ( 'textarea' === element ) { #>
+
+ <# } else { #>
+ <{{ element }}
+ {{{ data.inputAttrs }}}
+ value="{{ data.value }}"
+ {{ data.link.replace(/"/g, '') }}
+
+ <# if ( ! data.choices.id ) { #>
+ id="{{'customize-input-' + data.id}}"
+ <# } #>
+
+ <# _.each( data.choices, function( val, key ) { #>
+ {{ key }}="{{ val }}"
+ <# } ); #>
+ <# if ( data.choices.content ) { #>>{{{ data.choices.content }}}{{ element }}><# } else { #>/><# } #>
+ <# } #>
+
+ args['settings'] ) {
+ $args = parent::filter_setting_args( $args, $wp_customize );
+
+ // Set the sanitize-callback if none is defined.
+ if ( ! isset( $args['sanitize_callback'] ) || ! $args['sanitize_callback'] ) {
+ $args['sanitize_callback'] = 'wp_kses_post';
+ }
+ }
+
+ return $args;
+
+ }
+
+ /**
+ * Filter arguments before creating the control.
+ *
+ * @access public
+ * @since 0.1
+ * @param array $args The field arguments.
+ * @param WP_Customize_Manager $wp_customize The customizer instance.
+ * @return array
+ */
+ public function filter_control_args( $args, $wp_customize ) {
+
+ if ( $args['settings'] === $this->args['settings'] ) {
+ $args = parent::filter_control_args( $args, $wp_customize );
+
+ // Set the control-type.
+ $args['type'] = 'kirki-generic';
+
+ // Choices.
+ $args['choices'] = isset( $args['choices'] ) ? $args['choices'] : [];
+ $args['choices']['element'] = isset( $args['choices']['element'] ) ? $args['choices']['element'] : 'input';
+ }
+
+ return $args;
+
+ }
+}
diff --git a/functions/kirki/packages/kirki-framework/control-generic/src/Field/Number.php b/functions/kirki/packages/kirki-framework/control-generic/src/Field/Number.php
new file mode 100644
index 0000000..b16d4fa
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-generic/src/Field/Number.php
@@ -0,0 +1,110 @@
+args['settings'] ) {
+ return $args;
+ }
+
+ // Set the sanitize-callback if none is defined.
+ if ( ! isset( $args['sanitize_callback'] ) || ! $args['sanitize_callback'] ) {
+
+ $args['sanitize_callback'] = function( $value ) use ( $args ) {
+ $value = filter_var( $value, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION );
+
+ if ( isset( $args['choices'] ) && isset( $args['choices']['min'] ) && isset( $args['choices']['max'] ) ) {
+ // Make sure min & max are all numeric.
+ $min = filter_var( $args['choices']['min'], FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION );
+ $max = filter_var( $args['choices']['max'], FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION );
+
+ if ( $value < $min ) {
+ $value = $min;
+ } elseif ( $value > $max ) {
+ $value = $max;
+ }
+ }
+
+ return $value;
+ };
+
+ }
+
+ return $args;
+ }
+
+ /**
+ * Filter arguments before creating the control.
+ *
+ * @access public
+ * @since 0.1
+ * @param array $args The field arguments.
+ * @param WP_Customize_Manager $wp_customize The customizer instance.
+ * @return array
+ */
+ public function filter_control_args( $args, $wp_customize ) {
+
+ if ( $args['settings'] === $this->args['settings'] ) {
+ $args = parent::filter_control_args( $args, $wp_customize );
+
+ // Set the control-type.
+ $args['type'] = 'kirki-generic';
+
+ // Choices.
+ $args['choices'] = isset( $args['choices'] ) ? $args['choices'] : [];
+ $args['choices']['element'] = 'input';
+ $args['choices']['type'] = 'number';
+ $args['choices'] = wp_parse_args(
+ $args['choices'],
+ [
+ 'min' => -999999999,
+ 'max' => 999999999,
+ 'step' => 1,
+ ]
+ );
+
+ // Make sure min, max & step are all numeric.
+ $args['choices']['min'] = filter_var( $args['choices']['min'], FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION );
+ $args['choices']['max'] = filter_var( $args['choices']['max'], FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION );
+ $args['choices']['step'] = filter_var( $args['choices']['step'], FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION );
+ }
+
+ return $args;
+
+ }
+
+}
diff --git a/functions/kirki/packages/kirki-framework/control-generic/src/Field/Text.php b/functions/kirki/packages/kirki-framework/control-generic/src/Field/Text.php
new file mode 100644
index 0000000..ab047bd
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-generic/src/Field/Text.php
@@ -0,0 +1,73 @@
+args['settings'] ) {
+ $args = parent::filter_setting_args( $args, $wp_customize );
+
+ // Set the sanitize-callback if none is defined.
+ if ( ! isset( $args['sanitize_callback'] ) || ! $args['sanitize_callback'] ) {
+ $args['sanitize_callback'] = 'sanitize_textarea_field'; // ? Bagus: should we use `sanitize_text_field` instead ?
+ }
+ }
+ return $args;
+ }
+
+ /**
+ * Filter arguments before creating the control.
+ *
+ * @access public
+ * @since 0.1
+ * @param array $args The field arguments.
+ * @param WP_Customize_Manager $wp_customize The customizer instance.
+ * @return array
+ */
+ public function filter_control_args( $args, $wp_customize ) {
+ if ( $args['settings'] === $this->args['settings'] ) {
+ $args = parent::filter_control_args( $args, $wp_customize );
+
+ // Set the control-type.
+ $args['type'] = 'kirki-generic';
+
+ // Choices.
+ $args['choices'] = isset( $args['choices'] ) ? $args['choices'] : [];
+ $args['choices']['element'] = 'input';
+ $args['choices']['type'] = 'text';
+ }
+ return $args;
+ }
+}
diff --git a/functions/kirki/packages/kirki-framework/control-generic/src/Field/Textarea.php b/functions/kirki/packages/kirki-framework/control-generic/src/Field/Textarea.php
new file mode 100644
index 0000000..0982c7f
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-generic/src/Field/Textarea.php
@@ -0,0 +1,50 @@
+args['settings'] ) {
+ $args = parent::filter_control_args( $args, $wp_customize );
+
+ // Set the control-type.
+ $args['type'] = 'kirki-generic';
+
+ // Choices.
+ $args['choices'] = isset( $args['choices'] ) ? $args['choices'] : [];
+ $args['choices']['element'] = 'textarea';
+ $args['choices']['rows'] = '5';
+ }
+ return $args;
+ }
+}
diff --git a/functions/kirki/packages/kirki-framework/control-generic/src/Field/URL.php b/functions/kirki/packages/kirki-framework/control-generic/src/Field/URL.php
new file mode 100644
index 0000000..249ce58
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-generic/src/Field/URL.php
@@ -0,0 +1,49 @@
+args['settings'] ) {
+ $args = parent::filter_setting_args( $args, $wp_customize );
+
+ // Set the sanitize-callback if none is defined.
+ if ( ! isset( $args['sanitize_callback'] ) || ! $args['sanitize_callback'] ) {
+ $args['sanitize_callback'] = 'esc_url_raw';
+ }
+ }
+ return $args;
+ }
+}
diff --git a/functions/kirki/packages/kirki-framework/control-generic/src/control.js b/functions/kirki/packages/kirki-framework/control-generic/src/control.js
new file mode 100644
index 0000000..200f4fb
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-generic/src/control.js
@@ -0,0 +1,28 @@
+wp.customize.controlConstructor["kirki-generic"] =
+ wp.customize.kirkiDynamicControl.extend({
+ initKirkiControl: function (control) {
+ control = control || this;
+ const params = control.params;
+
+ control.container.find("input, textarea").on("change input", function () {
+ const value = jQuery(this).val();
+
+ if (
+ "kirki-generic" === params.type &&
+ params.choices &&
+ "number" === params.choices.type
+ ) {
+ params.choices.min = parseFloat(params.choices.min);
+ params.choices.max = parseFloat(params.choices.max);
+
+ if (value < params.choices.min) {
+ value = params.choices.min;
+ } else if (value > params.choices.max) {
+ value = params.choices.max;
+ }
+ }
+
+ control.setting.set(value);
+ });
+ },
+ });
diff --git a/functions/kirki/packages/kirki-framework/control-image/LICENSE b/functions/kirki/packages/kirki-framework/control-image/LICENSE
new file mode 100644
index 0000000..f202ade
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-image/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2019 kirki-framework
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/functions/kirki/packages/kirki-framework/control-image/README.md b/functions/kirki/packages/kirki-framework/control-image/README.md
new file mode 100644
index 0000000..8600fc8
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-image/README.md
@@ -0,0 +1,58 @@
+# control-image
+
+## Installation
+
+First, install the package using composer:
+
+```bash
+composer require kirki-framework/control-image
+```
+
+Make sure you include the autoloader:
+```php
+require_once get_parent_theme_file_path( 'vendor/autoload.php' );
+```
+
+To add a control using the customizer API:
+
+```php
+
+/**
+ * Registers the control and whitelists it for JS templating.
+ *
+ * @since 1.0
+ * @param WP_Customize_Manager $wp_customize The WP_Customize_Manager object.
+ * @return void
+ */
+add_action( 'customize_register', function( $wp_customize ) {
+ $wp_customize->register_control_type( '\Kirki\Control\Image' );
+} );
+
+/**
+ * Add Customizer settings & controls.
+ *
+ * @since 1.0
+ * @param WP_Customize_Manager $wp_customize The WP_Customize_Manager object.
+ * @return void
+ */
+add_action( 'customize_register', function( $wp_customize ) {
+
+ // Add setting.
+ $wp_customize->add_setting( 'my_control', [
+ 'type' => 'theme_mod',
+ 'capability' => 'edit_theme_options',
+ 'default' => '',
+ 'transport' => 'refresh', // Or postMessage.
+ 'sanitize_callback' => 'sanitize_text_field', // Or a custom sanitization callback.
+ ] );
+
+ // Add control.
+ $wp_customize->add_control( new \Kirki\Control\Image( $wp_customize, 'my_control', [
+ 'label' => esc_html__( 'My Control', 'theme_textdomain' ),
+ 'section' => 'my_section',
+ 'choices' => [
+ 'save_as' => 'url' // Use "url" or "id" or "array".
+ ],
+ ] ) );
+} );
+```
diff --git a/functions/kirki/packages/kirki-framework/control-image/dist/control.js b/functions/kirki/packages/kirki-framework/control-image/dist/control.js
new file mode 100644
index 0000000..ef327c4
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-image/dist/control.js
@@ -0,0 +1,2 @@
+wp.customize.controlConstructor["kirki-image"]=wp.customize.kirkiDynamicControl.extend({initKirkiControl:function(e){var i,t,n,a,l,s;i=(e=e||this).setting._value,t=_.isUndefined(e.params.choices)||_.isUndefined(e.params.choices.save_as)?"url":e.params.choices.save_as,n=e.container.find(".placeholder, .thumbnail"),a="array"===t?i.url:i,l=e.container.find(".image-upload-remove-button"),s=e.container.find(".image-default-button"),i="array"===t&&_.isString(i)?{url:i}:i,"id"!==t&&"ID"!==t||""===i||wp.media.attachment(i).fetch().then((function(){setTimeout((function(){var e=wp.media.attachment(i).get("url");n.removeClass().addClass("thumbnail thumbnail-image").html('
')}),700)})),("url"===t&&""!==i||"array"===t&&!_.isUndefined(i.url)&&""!==i.url)&&e.container.find("image-default-button").hide(),("url"===t&&""===i||"array"===t&&(_.isUndefined(i.url)||""===i.url))&&l.hide(),i===e.params.default&&e.container.find("image-default-button").hide(),""!==a&&n.removeClass().addClass("thumbnail thumbnail-image").html('
'),e.container.on("click",".image-upload-button",(function(i){var r=wp.media({multiple:!1}).open().on("select",(function(){var i=r.state().get("selection").first().toJSON();a=i.url,_.isUndefined(i.sizes)||(a=i.sizes.full.url,_.isUndefined(i.sizes.medium)?_.isUndefined(i.sizes.thumbnail)||(a=i.sizes.thumbnail.url):a=i.sizes.medium.url),"array"===t?e.setting.set({id:i.id,url:_.isUndefined(i.sizes)?i.url:i.sizes.full.url,width:i.width,height:i.height}):"id"===t?e.setting.set(i.id):e.setting.set(_.isUndefined(i.sizes)?i.url:i.sizes.full.url),n.length&&n.removeClass().addClass("thumbnail thumbnail-image").html('
'),l.length&&(l.show(),s.hide())}));i.preventDefault()})),e.container.on("click",".image-upload-remove-button",(function(i){i.preventDefault(),e.setting.set(""),n=e.container.find(".placeholder, .thumbnail"),l=e.container.find(".image-upload-remove-button"),s=e.container.find(".image-default-button"),n.length&&n.removeClass().addClass("placeholder").html(wp.i18n.__("No image selected","kirki")),l.length&&(l.hide(),jQuery(s).hasClass("button")&&s.show())})),e.container.on("click",".image-default-button",(function(i){i.preventDefault(),e.setting.set(e.params.default),n=e.container.find(".placeholder, .thumbnail"),l=e.container.find(".image-upload-remove-button"),s=e.container.find(".image-default-button"),n.length&&n.removeClass().addClass("thumbnail thumbnail-image").html('
'),l.length&&(l.show(),s.hide())}))}});
+//# sourceMappingURL=control.js.map
diff --git a/functions/kirki/packages/kirki-framework/control-image/src/Control/Image.php b/functions/kirki/packages/kirki-framework/control-image/src/Control/Image.php
new file mode 100644
index 0000000..2504e86
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-image/src/Control/Image.php
@@ -0,0 +1,94 @@
+
+
+
+ 'global',
'prefix' => '',
'units' => '',
'suffix' => '',
- )
+ ]
);
if ( is_array( $value ) ) {
if ( isset( $output['choice'] ) && $output['choice'] ) {
diff --git a/functions/kirki/packages/kirki-framework/control-image/src/Field/Image.php b/functions/kirki/packages/kirki-framework/control-image/src/Field/Image.php
new file mode 100644
index 0000000..112c320
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-image/src/Field/Image.php
@@ -0,0 +1,166 @@
+args['settings'] ) {
+ $args = parent::filter_setting_args( $args, $wp_customize );
+
+ // Set the sanitize-callback if none is defined.
+ if ( ! isset( $args['sanitize_callback'] ) || ! $args['sanitize_callback'] ) {
+ $args['sanitize_callback'] = function( $value ) {
+ if ( isset( $this->args['choices']['save_as'] ) && 'array' === $this->args['choices']['save_as'] ) {
+ return [
+ 'id' => ( isset( $value['id'] ) && '' !== $value['id'] ) ? (int) $value['id'] : '',
+ 'url' => ( isset( $value['url'] ) && '' !== $value['url'] ) ? esc_url_raw( $value['url'] ) : '',
+ 'width' => ( isset( $value['width'] ) && '' !== $value['width'] ) ? (int) $value['width'] : '',
+ 'height' => ( isset( $value['height'] ) && '' !== $value['height'] ) ? (int) $value['height'] : '',
+ ];
+ }
+ if ( isset( $this->args['choices']['save_as'] ) && 'id' === $this->args['choices']['save_as'] ) {
+ return absint( $value );
+ }
+ return ( is_string( $value ) ) ? esc_url_raw( $value ) : $value;
+ };
+ }
+ }
+ return $args;
+ }
+
+ /**
+ * Filter arguments before creating the control.
+ *
+ * @access public
+ * @since 0.1
+ * @param array $args The field arguments.
+ * @param WP_Customize_Manager $wp_customize The customizer instance.
+ * @return array
+ */
+ public function filter_control_args( $args, $wp_customize ) {
+ if ( $args['settings'] === $this->args['settings'] ) {
+ $args = parent::filter_control_args( $args, $wp_customize );
+
+ $args['button_labels'] = isset( $args['button_labels'] ) ? $args['button_labels'] : [];
+ $args['button_labels'] = wp_parse_args(
+ $args['button_labels'],
+ [
+ 'select' => esc_html__( 'Select image', 'kirki' ),
+ 'change' => esc_html__( 'Change image', 'kirki' ),
+ 'default' => esc_html__( 'Default', 'kirki' ),
+ 'remove' => esc_html__( 'Remove', 'kirki' ),
+ 'placeholder' => esc_html__( 'No image selected', 'kirki' ),
+ 'frame_title' => esc_html__( 'Select image', 'kirki' ),
+ 'frame_button' => esc_html__( 'Choose image', 'kirki' ),
+ ]
+ );
+
+ $args['choices'] = isset( $args['choices'] ) ? (array) $args['choices'] : [];
+ $args['choices']['save_as'] = isset( $args['choices']['save_as'] ) ? $args['choices']['save_as'] : 'url';
+ $args['choices']['labels'] = isset( $args['choices']['labels'] ) ? $args['choices']['labels'] : [];
+ $args['choices']['labels'] = wp_parse_args( $args['choices']['labels'], $args['button_labels'] );
+
+ // Set the control-type.
+ $args['type'] = 'kirki-image';
+ }
+ return $args;
+ }
+
+ /**
+ * Filter for output argument used by the kirki-framework/module-css module.
+ *
+ * @access public
+ * @since 1.0
+ * @param array $output A single output item.
+ * @param mixed $value The value.
+ * @param array $all_outputs All field output args.
+ * @param array $field The field arguments.
+ * @return array
+ */
+ public function output_item_args( $output, $value, $all_outputs, $field ) {
+ if ( $field['settings'] === $this->args['settings'] ) {
+ if ( isset( $output['property'] ) && in_array( [ 'background', 'background-image' ], $output['property'], true ) ) {
+ if ( ! isset( $output['value_pattern'] ) || empty( $output['value_pattern'] ) || '$' === $output['value_pattern'] ) {
+ $output['value_pattern'] = 'url("$")';
+ }
+ }
+ }
+ return $output;
+ }
+
+ /**
+ * Adds a custom output class for typography fields.
+ *
+ * @access public
+ * @since 1.0
+ * @param array $classnames The array of classnames.
+ * @return array
+ */
+ public function output_control_classnames( $classnames ) {
+ $classnames['kirki-image'] = '\Kirki\Field\CSS\Image';
+ return $classnames;
+ }
+}
diff --git a/functions/kirki/packages/kirki-framework/control-image/src/control.js b/functions/kirki/packages/kirki-framework/control-image/src/control.js
new file mode 100644
index 0000000..3526dd9
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-image/src/control.js
@@ -0,0 +1,128 @@
+wp.customize.controlConstructor['kirki-image'] = wp.customize.kirkiDynamicControl.extend( {
+
+ initKirkiControl: function( control ) {
+ var value, saveAs, preview, previewImage, removeButton, defaultButton;
+ control = control || this;
+ value = control.setting._value;
+ saveAs = ( ! _.isUndefined( control.params.choices ) && ! _.isUndefined( control.params.choices.save_as ) ) ? control.params.choices.save_as : 'url';
+ preview = control.container.find( '.placeholder, .thumbnail' );
+ previewImage = ( 'array' === saveAs ) ? value.url : value;
+ removeButton = control.container.find( '.image-upload-remove-button' );
+ defaultButton = control.container.find( '.image-default-button' );
+
+ // Make sure value is properly formatted.
+ value = ( 'array' === saveAs && _.isString( value ) ) ? { url: value } : value;
+
+ // Tweaks for save_as = id.
+ if ( ( 'id' === saveAs || 'ID' === saveAs ) && '' !== value ) {
+ wp.media.attachment( value ).fetch().then( function() {
+ setTimeout( function() {
+ var url = wp.media.attachment( value ).get( 'url' );
+ preview.removeClass().addClass( 'thumbnail thumbnail-image' ).html( '
' );
+ }, 700 );
+ } );
+ }
+
+ // If value is not empty, hide the "default" button.
+ if ( ( 'url' === saveAs && '' !== value ) || ( 'array' === saveAs && ! _.isUndefined( value.url ) && '' !== value.url ) ) {
+ control.container.find( 'image-default-button' ).hide();
+ }
+
+ // If value is empty, hide the "remove" button.
+ if ( ( 'url' === saveAs && '' === value ) || ( 'array' === saveAs && ( _.isUndefined( value.url ) || '' === value.url ) ) ) {
+ removeButton.hide();
+ }
+
+ // If value is default, hide the default button.
+ if ( value === control.params.default ) {
+ control.container.find( 'image-default-button' ).hide();
+ }
+
+ if ( '' !== previewImage ) {
+ preview.removeClass().addClass( 'thumbnail thumbnail-image' ).html( '
' );
+ }
+
+ control.container.on( 'click', '.image-upload-button', function( e ) {
+ var image = wp.media( { multiple: false } ).open().on( 'select', function() {
+
+ // This will return the selected image from the Media Uploader, the result is an object.
+ var uploadedImage = image.state().get( 'selection' ).first(),
+ jsonImg = uploadedImage.toJSON();
+
+ previewImage = jsonImg.url;
+
+ if ( ! _.isUndefined( jsonImg.sizes ) ) {
+ previewImage = jsonImg.sizes.full.url;
+ if ( ! _.isUndefined( jsonImg.sizes.medium ) ) {
+ previewImage = jsonImg.sizes.medium.url;
+ } else if ( ! _.isUndefined( jsonImg.sizes.thumbnail ) ) {
+ previewImage = jsonImg.sizes.thumbnail.url;
+ }
+ }
+
+ if ( 'array' === saveAs ) {
+ control.setting.set( {
+ id: jsonImg.id,
+ url: !_.isUndefined(jsonImg.sizes)
+ ? jsonImg.sizes.full.url
+ : jsonImg.url,
+ width: jsonImg.width,
+ height: jsonImg.height,
+ } );
+ } else if ( 'id' === saveAs ) {
+ control.setting.set( jsonImg.id );
+ } else {
+ control.setting.set( ( ! _.isUndefined( jsonImg.sizes ) ) ? jsonImg.sizes.full.url : jsonImg.url );
+ }
+
+ if ( preview.length ) {
+ preview.removeClass().addClass( 'thumbnail thumbnail-image' ).html( '
' );
+ }
+ if ( removeButton.length ) {
+ removeButton.show();
+ defaultButton.hide();
+ }
+ } );
+
+ e.preventDefault();
+ } );
+
+ control.container.on( 'click', '.image-upload-remove-button', function( e ) {
+ e.preventDefault();
+
+ control.setting.set( '' );
+
+ preview = control.container.find( '.placeholder, .thumbnail' );
+ removeButton = control.container.find( '.image-upload-remove-button' );
+ defaultButton = control.container.find( '.image-default-button' );
+
+ if ( preview.length ) {
+ preview.removeClass().addClass( 'placeholder' ).html( wp.i18n.__( 'No image selected', 'kirki' ) );
+ }
+ if ( removeButton.length ) {
+ removeButton.hide();
+ if ( jQuery( defaultButton ).hasClass( 'button' ) ) {
+ defaultButton.show();
+ }
+ }
+ } );
+
+ control.container.on( 'click', '.image-default-button', function( e ) {
+ e.preventDefault();
+
+ control.setting.set( control.params.default );
+
+ preview = control.container.find( '.placeholder, .thumbnail' );
+ removeButton = control.container.find( '.image-upload-remove-button' );
+ defaultButton = control.container.find( '.image-default-button' );
+
+ if ( preview.length ) {
+ preview.removeClass().addClass( 'thumbnail thumbnail-image' ).html( '
' );
+ }
+ if ( removeButton.length ) {
+ removeButton.show();
+ defaultButton.hide();
+ }
+ } );
+ }
+} );
diff --git a/functions/kirki/packages/kirki-framework/control-multicheck/LICENSE b/functions/kirki/packages/kirki-framework/control-multicheck/LICENSE
new file mode 100644
index 0000000..f202ade
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-multicheck/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2019 kirki-framework
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/functions/kirki/packages/kirki-framework/control-multicheck/README.md b/functions/kirki/packages/kirki-framework/control-multicheck/README.md
new file mode 100644
index 0000000..6d25be6
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-multicheck/README.md
@@ -0,0 +1,62 @@
+# control-multicheck
+
+## Installation
+
+First, install the package using composer:
+
+```bash
+composer require kirki-framework/control-multicheck
+```
+
+Make sure you include the autoloader:
+```php
+require_once get_parent_theme_file_path( 'vendor/autoload.php' );
+```
+
+To add a control using the customizer API:
+
+```php
+
+/**
+ * Registers the control and whitelists it for JS templating.
+ *
+ * @since 1.0
+ * @param WP_Customize_Manager $wp_customize The WP_Customize_Manager object.
+ * @return void
+ */
+add_action( 'customize_register', function( $wp_customize ) {
+ $wp_customize->register_control_type( '\Kirki\Control\Multicheck' );
+} );
+
+/**
+ * Add Customizer settings & controls.
+ *
+ * @since 1.0
+ * @param WP_Customize_Manager $wp_customize The WP_Customize_Manager object.
+ * @return void
+ */
+add_action( 'customize_register', function( $wp_customize ) {
+
+ // Add setting.
+ $wp_customize->add_setting( 'my_control', [
+ 'type' => 'theme_mod',
+ 'capability' => 'edit_theme_options',
+ 'default' => [ 'option-1', 'option-3', 'option-4' ],
+ 'transport' => 'refresh', // Or postMessage.
+ 'sanitize_callback' => 'sanitize_text_field', // Or a custom sanitization callback.
+ ] );
+
+ // Add control.
+ $wp_customize->add_control( new \Kirki\Control\Multicheck( $wp_customize, 'my_control', [
+ 'label' => esc_html__( 'My Control', 'theme_textdomain' ),
+ 'section' => 'my_section',
+ 'choices' => [
+ 'option-1' => esc_html__( 'Option 1', 'theme_textdomain' ),
+ 'option-2' => esc_html__( 'Option 2', 'theme_textdomain' ),
+ 'option-3' => esc_html__( 'Option 3', 'theme_textdomain' ),
+ 'option-4' => esc_html__( 'Option 4', 'theme_textdomain' ),
+ 'option-5' => esc_html__( 'Option 5', 'theme_textdomain' ),
+ ],
+ ] ) );
+} );
+```
diff --git a/functions/kirki/packages/kirki-framework/control-multicheck/dist/control.css b/functions/kirki/packages/kirki-framework/control-multicheck/dist/control.css
new file mode 100644
index 0000000..5a9ef3f
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-multicheck/dist/control.css
@@ -0,0 +1,2 @@
+
+/*# sourceMappingURL=control.css.map */
diff --git a/functions/kirki/packages/kirki-framework/control-multicheck/dist/control.js b/functions/kirki/packages/kirki-framework/control-multicheck/dist/control.js
new file mode 100644
index 0000000..4ec151f
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-multicheck/dist/control.js
@@ -0,0 +1,2 @@
+wp.customize.controlConstructor["kirki-multicheck"]=wp.customize.kirkiDynamicControl.extend({initKirkiControl:function(n){(n=n||this).container.on("change","input",(function(){var i=[],e=0;jQuery.each(n.params.choices,(function(t){n.container.find('input[value="'+t+'"]').is(":checked")?(n.container.find('input[value="'+t+'"]').parent().addClass("checked"),i[e]=t,e++):n.container.find('input[value="'+t+'"]').parent().removeClass("checked")})),n.setting.set(i)}))}});
+//# sourceMappingURL=control.js.map
diff --git a/functions/kirki/controls/php/class-kirki-control-multicheck.php b/functions/kirki/packages/kirki-framework/control-multicheck/src/Control/Multicheck.php
similarity index 56%
rename from functions/kirki/controls/php/class-kirki-control-multicheck.php
rename to functions/kirki/packages/kirki-framework/control-multicheck/src/Control/Multicheck.php
index 15c9591..a2d832e 100644
--- a/functions/kirki/controls/php/class-kirki-control-multicheck.php
+++ b/functions/kirki/packages/kirki-framework/control-multicheck/src/Control/Multicheck.php
@@ -5,13 +5,17 @@
* Multiple checkbox customize control class.
* Props @ Justin Tadlock: http://justintadlock.com/archives/2015/05/26/multiple-checkbox-customizer-control
*
- * @package Kirki
- * @subpackage Controls
- * @copyright Copyright (c) 2020, David Vongries
- * @license https://opensource.org/licenses/MIT
- * @since 1.0
+ * @package kirki-framework/control-multicheck
+ * @copyright Copyright (c) 2019, Ari Stathopoulos (@aristath)
+ * @license https://opensource.org/licenses/MIT
+ * @since 1.0
*/
+namespace Kirki\Control;
+
+use Kirki\Control\Base;
+use Kirki\URL;
+
// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
exit;
@@ -19,17 +23,47 @@ if ( ! defined( 'ABSPATH' ) ) {
/**
* Adds a multicheck control.
+ *
+ * @since 1.0
*/
-class Kirki_Control_MultiCheck extends Kirki_Control_Base {
+class Multicheck extends Base {
/**
* The control type.
*
* @access public
+ * @since 1.0
* @var string
*/
public $type = 'kirki-multicheck';
+ /**
+ * The version. Used in scripts & styles for cache-busting.
+ *
+ * @static
+ * @access public
+ * @since 1.0
+ * @var string
+ */
+ public static $control_ver = '1.0';
+
+ /**
+ * Enqueue control related scripts/styles.
+ *
+ * @access public
+ * @since 1.0
+ * @return void
+ */
+ public function enqueue() {
+ parent::enqueue();
+
+ // Enqueue the script.
+ wp_enqueue_script( 'kirki-control-multicheck', URL::get_from_path( dirname( dirname( __DIR__ ) ) . '/dist/control.js' ), [ 'jquery', 'customize-base', 'kirki-control-base' ], self::$control_ver, false );
+
+ // Enqueue the style.
+ wp_enqueue_style( 'kirki-control-multicheck-style', URL::get_from_path( dirname( dirname( __DIR__ ) ) . '/dist/control.css' ), [], self::$control_ver );
+ }
+
/**
* An Underscore (JS) template for this control's content (but not its container).
*
@@ -39,6 +73,8 @@ class Kirki_Control_MultiCheck extends Kirki_Control_Base {
* @see WP_Customize_Control::print_template()
*
* @access protected
+ * @since 1.0
+ * @return void
*/
protected function content_template() {
?>
diff --git a/functions/kirki/packages/kirki-framework/control-multicheck/src/Field/Multicheck.php b/functions/kirki/packages/kirki-framework/control-multicheck/src/Field/Multicheck.php
new file mode 100644
index 0000000..cbd5e8c
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-multicheck/src/Field/Multicheck.php
@@ -0,0 +1,100 @@
+args['settings'] ) {
+ $args = parent::filter_setting_args( $args, $wp_customize );
+
+ // Set the sanitize-callback if none is defined.
+ if ( ! isset( $args['sanitize_callback'] ) || ! $args['sanitize_callback'] ) {
+ $args['sanitize_callback'] = [ __CLASS__, 'sanitize' ];
+ }
+ }
+ return $args;
+ }
+
+ /**
+ * Filter arguments before creating the control.
+ *
+ * @access public
+ * @since 0.1
+ * @param array $args The field arguments.
+ * @param WP_Customize_Manager $wp_customize The customizer instance.
+ * @return array
+ */
+ public function filter_control_args( $args, $wp_customize ) {
+ if ( $args['settings'] === $this->args['settings'] ) {
+ $args = parent::filter_control_args( $args, $wp_customize );
+ $args['type'] = 'kirki-multicheck';
+ }
+ return $args;
+ }
+
+ /**
+ * The sanitize method that will be used as a falback
+ *
+ * @static
+ * @access public
+ * @since 1.0
+ * @param string|array $value The control's value.
+ * @return array
+ */
+ public static function sanitize( $value ) {
+ $value = ( ! is_array( $value ) ) ? explode( ',', $value ) : $value;
+ return ( ! empty( $value ) ) ? array_map( 'sanitize_text_field', $value ) : [];
+ }
+}
diff --git a/functions/kirki/packages/kirki-framework/control-multicheck/src/control.js b/functions/kirki/packages/kirki-framework/control-multicheck/src/control.js
new file mode 100644
index 0000000..78c846f
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-multicheck/src/control.js
@@ -0,0 +1,28 @@
+import "./control.scss";
+
+wp.customize.controlConstructor['kirki-multicheck'] = wp.customize.kirkiDynamicControl.extend( {
+
+ initKirkiControl: function( control ) {
+ control = control || this;
+
+ // Save the value
+ control.container.on( 'change', 'input', function() {
+ var value = [],
+ i = 0;
+
+ // Build the value as an object using the sub-values from individual checkboxes.
+ jQuery.each( control.params.choices, function( key ) {
+ if ( control.container.find( 'input[value="' + key + '"]' ).is( ':checked' ) ) {
+ control.container.find( 'input[value="' + key + '"]' ).parent().addClass( 'checked' );
+ value[ i ] = key;
+ i++;
+ } else {
+ control.container.find( 'input[value="' + key + '"]' ).parent().removeClass( 'checked' );
+ }
+ } );
+
+ // Update the value in the customizer.
+ control.setting.set( value );
+ } );
+ }
+} );
diff --git a/functions/kirki/packages/kirki-framework/control-palette/LICENSE b/functions/kirki/packages/kirki-framework/control-palette/LICENSE
new file mode 100644
index 0000000..f202ade
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-palette/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2019 kirki-framework
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/functions/kirki/packages/kirki-framework/control-palette/README.md b/functions/kirki/packages/kirki-framework/control-palette/README.md
new file mode 100644
index 0000000..e13f341
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-palette/README.md
@@ -0,0 +1,58 @@
+# control-palette
+
+## Installation
+
+First, install the package using composer:
+
+```bash
+composer require kirki-framework/control-palette
+```
+
+Make sure you include the autoloader:
+```php
+require_once get_parent_theme_file_path( 'vendor/autoload.php' );
+```
+
+To add a control using the customizer API:
+
+```php
+/**
+ * Registers the control and whitelists it for JS templating.
+ *
+ * @since 1.0
+ * @param WP_Customize_Manager $wp_customize The WP_Customize_Manager object.
+ * @return void
+ */
+add_action( 'customize_register', function( $wp_customize ) {
+ $wp_customize->register_control_type( '\Kirki\Control\Palette' );
+} );
+
+/**
+ * Add Customizer settings & controls.
+ *
+ * @since 1.0
+ * @param WP_Customize_Manager $wp_customize The WP_Customize_Manager object.
+ * @return void
+ */
+add_action( 'customize_register', function( $wp_customize ) {
+
+ // Add settings.
+ $wp_customize->add_setting( 'my_control_code', [
+ 'type' => 'theme_mod',
+ 'capability' => 'edit_theme_options',
+ 'default' => '',
+ 'transport' => 'refresh', // Or postMessage.
+ 'sanitize_callback' => 'sanitize_text_field', // Or a custom sanitization callback.
+ ] );
+
+ // Add controls.
+ $wp_customize->add_control( new \Kirki\Control\Palette( $wp_customize, 'my_control_code', [
+ 'label' => esc_html__( 'My Control', 'theme_textdomain' ),
+ 'section' => 'my_section',
+ 'choices' => [
+ 'green' => [ '#E8F5E9', '#C8E6C9', '#A5D6A7', '#81C784', '#66BB6A', '#4CAF50', '#43A047', '#388E3C', '#2E7D32', '#1B5E20', '#B9F6CA', '#69F0AE', '#00E676', '#00C853' ],
+ 'bnw' => [ '#000000', '#ffffff' ],
+ ],
+ ] ) );
+} );
+```
diff --git a/functions/kirki/packages/kirki-framework/control-palette/dist/control.css b/functions/kirki/packages/kirki-framework/control-palette/dist/control.css
new file mode 100644
index 0000000..9d27a22
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-palette/dist/control.css
@@ -0,0 +1,2 @@
+.customize-control-kirki-palette{position:relative}.customize-control-kirki-palette input[type=radio]{display:none}.customize-control-kirki-palette input[type=radio]:checked+label{border:3px solid rgba(0,0,0,.4)}.customize-control-kirki-palette label{background:none;border-bottom:3px solid transparent;border-top:3px solid transparent;display:flex;margin-bottom:5px;padding:0}.customize-control-kirki-palette label span{border-bottom:1px solid rgba(0,0,0,.1);border-top:1px solid rgba(0,0,0,.1);color:transparent;flex-grow:1;font-size:0;line-height:10px;padding:10px 0;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-ms-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.customize-control-kirki-palette label span:first-child{border-left:1px solid rgba(0,0,0,.1)}.customize-control-kirki-palette label span:last-child{border-right:1px solid rgba(0,0,0,.1)}.customize-control-kirki-palette label span:hover{color:#000;flex-grow:3;font-size:10px;line-height:10px;min-width:60px;padding:10px}
+/*# sourceMappingURL=control.css.map */
diff --git a/functions/kirki/packages/kirki-framework/control-palette/dist/control.js b/functions/kirki/packages/kirki-framework/control-palette/dist/control.js
new file mode 100644
index 0000000..3017dd4
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-palette/dist/control.js
@@ -0,0 +1,2 @@
+wp.customize.controlConstructor["kirki-palette"]=wp.customize.kirkiDynamicControl.extend({});
+//# sourceMappingURL=control.js.map
diff --git a/functions/kirki/controls/php/class-kirki-control-palette.php b/functions/kirki/packages/kirki-framework/control-palette/src/Control/Palette.php
similarity index 57%
rename from functions/kirki/controls/php/class-kirki-control-palette.php
rename to functions/kirki/packages/kirki-framework/control-palette/src/Control/Palette.php
index f309e5e..c2c2b6f 100644
--- a/functions/kirki/controls/php/class-kirki-control-palette.php
+++ b/functions/kirki/packages/kirki-framework/control-palette/src/Control/Palette.php
@@ -2,13 +2,17 @@
/**
* Customizer Control: palette.
*
- * @package Kirki
- * @subpackage Controls
- * @copyright Copyright (c) 2020, David Vongries
- * @license https://opensource.org/licenses/MIT
- * @since 1.0
+ * @package kirki-framework/control-palette
+ * @copyright Copyright (c) 2019, Ari Stathopoulos (@aristath)
+ * @license https://opensource.org/licenses/MIT
+ * @since 1.0
*/
+namespace Kirki\Control;
+
+use Kirki\Control\Radio;
+use Kirki\URL;
+
// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
exit;
@@ -16,17 +20,49 @@ if ( ! defined( 'ABSPATH' ) ) {
/**
* Palette control (modified radio).
+ *
+ * @since 1.0
*/
-class Kirki_Control_Palette extends Kirki_Control_Base {
+class Palette extends Radio {
/**
* The control type.
*
* @access public
+ * @since 1.0
* @var string
*/
public $type = 'kirki-palette';
+ /**
+ * The version. Used in scripts & styles for cache-busting.
+ *
+ * @static
+ * @access public
+ * @since 1.0
+ * @var string
+ */
+ public static $control_ver = '0.1.1';
+
+ /**
+ * Enqueue control related scripts/styles.
+ *
+ * @access public
+ * @since 1.0
+ * @return void
+ */
+ public function enqueue() {
+
+ parent::enqueue();
+
+ // Enqueue the style.
+ wp_enqueue_style( 'kirki-control-palette', URL::get_from_path( dirname( dirname( __DIR__ ) ) . '/dist/control.css' ), [], self::$control_ver );
+
+ // Enqueue the script.
+ wp_enqueue_script( 'kirki-control-palette', URL::get_from_path( dirname( dirname( __DIR__ ) ) . '/dist/control.js' ), [ 'jquery', 'customize-base', 'kirki-dynamic-control' ], self::$control_ver, false );
+
+ }
+
/**
* An Underscore (JS) template for this control's content (but not its container).
*
@@ -36,6 +72,8 @@ class Kirki_Control_Palette extends Kirki_Control_Base {
* @see WP_Customize_Control::print_template()
*
* @access protected
+ * @since 1.0
+ * @return void
*/
protected function content_template() {
?>
diff --git a/functions/kirki/packages/kirki-framework/control-palette/src/Field/Palette.php b/functions/kirki/packages/kirki-framework/control-palette/src/Field/Palette.php
new file mode 100644
index 0000000..1d5a0e0
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-palette/src/Field/Palette.php
@@ -0,0 +1,54 @@
+args['settings'] ) {
+ $args = parent::filter_control_args( $args, $wp_customize );
+ $args['type'] = 'kirki-palette';
+ }
+ return $args;
+ }
+}
diff --git a/functions/kirki/packages/kirki-framework/control-palette/src/control.js b/functions/kirki/packages/kirki-framework/control-palette/src/control.js
new file mode 100644
index 0000000..0d8a4f6
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-palette/src/control.js
@@ -0,0 +1,3 @@
+import "./control.scss";
+
+wp.customize.controlConstructor['kirki-palette'] = wp.customize.kirkiDynamicControl.extend( {} );
diff --git a/functions/kirki/packages/kirki-framework/control-radio/LICENSE b/functions/kirki/packages/kirki-framework/control-radio/LICENSE
new file mode 100644
index 0000000..f202ade
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-radio/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2019 kirki-framework
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/functions/kirki/packages/kirki-framework/control-radio/README.md b/functions/kirki/packages/kirki-framework/control-radio/README.md
new file mode 100644
index 0000000..20cebac
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-radio/README.md
@@ -0,0 +1,99 @@
+# control-radio
+
+## Installation
+
+First, install the package using composer:
+
+```bash
+composer require kirki-framework/control-radio
+```
+
+Make sure you include the autoloader:
+```php
+require_once get_parent_theme_file_path( 'vendor/autoload.php' );
+```
+
+To add a control using the customizer API:
+
+```php
+/**
+ * Registers the control and whitelists it for JS templating.
+ *
+ * @since 1.0
+ * @param WP_Customize_Manager $wp_customize The WP_Customize_Manager object.
+ * @return void
+ */
+add_action( 'customize_register', function( $wp_customize ) {
+ $wp_customize->register_control_type( '\Kirki\Control\Radio' );
+ $wp_customize->register_control_type( '\Kirki\Control\Radio_Buttonset' );
+ $wp_customize->register_control_type( '\Kirki\Control\Radio_Image' );
+} );
+
+/**
+ * Add Customizer settings & controls.
+ *
+ * @since 1.0
+ * @param WP_Customize_Manager $wp_customize The WP_Customize_Manager object.
+ * @return void
+ */
+add_action( 'customize_register', function( $wp_customize ) {
+
+ // Add settings.
+ $wp_customize->add_setting( 'my_control_radio', [
+ 'type' => 'theme_mod',
+ 'capability' => 'edit_theme_options',
+ 'default' => 'option-1',
+ 'transport' => 'refresh', // Or postMessage.
+ 'sanitize_callback' => 'sanitize_text_field', // Or a custom sanitization callback.
+ ] );
+ $wp_customize->add_setting( 'my_control_radio_buttonset', [
+ 'type' => 'theme_mod',
+ 'capability' => 'edit_theme_options',
+ 'default' => 'option-1',
+ 'transport' => 'refresh', // Or postMessage.
+ 'sanitize_callback' => function( $value ) { // Custom callback example.
+ if ( 'option-1' !== $value || 'option-2' !== $value ) {
+ return 'option-1';
+ }
+ return $value;
+ },
+ ] );
+ $wp_customize->add_setting( 'my_control_radio_image', [
+ 'type' => 'theme_mod',
+ 'capability' => 'edit_theme_options',
+ 'default' => 'option-1',
+ 'transport' => 'refresh', // Or postMessage.
+ 'sanitize_callback' => 'sanitize_text_field', // Or a custom sanitization callback.
+ ] );
+
+ // Add controls.
+ $wp_customize->add_control( new \Kirki\Control\Radio( $wp_customize, 'my_control_code', [
+ 'label' => esc_html__( 'My Radio Control', 'theme_textdomain' ),
+ 'section' => 'my_section',
+ 'choices' => [
+ 'option-1' => esc_html__( 'Option 1', 'theme_textdomain' ),
+ 'option-2' => esc_html__( 'Option 2', 'theme_textdomain' ),
+ 'option-3' => esc_html__( 'Option 3', 'theme_textdomain' ),
+ 'option-4' => esc_html__( 'Option 4', 'theme_textdomain' ),
+ 'option-5' => esc_html__( 'Option 5', 'theme_textdomain' ),
+ ],
+ ] ) );
+ $wp_customize->add_control( new \Kirki\Control\Radio_Buttonset( $wp_customize, 'my_control_code', [
+ 'label' => esc_html__( 'My Radio-Buttonset Control', 'theme_textdomain' ),
+ 'section' => 'my_section',
+ 'choices' => [
+ 'option-1' => esc_html__( 'Option 1', 'theme_textdomain' ),
+ 'option-2' => esc_html__( 'Option 2', 'theme_textdomain' ),
+ ],
+ ] ) );
+ $wp_customize->add_control( new \Kirki\Control\Radio( $wp_customize, 'my_control_code', [
+ 'label' => esc_html__( 'My Radio-Image Control', 'theme_textdomain' ),
+ 'section' => 'my_section',
+ 'choices' => [
+ 'moto' => 'https://jawordpressorg.github.io/wapuu/wapuu-archive/wapuu-moto.png',
+ 'cossack' => 'https://raw.githubusercontent.com/templatemonster/cossack-wapuula/master/cossack-wapuula.png',
+ 'travel' => 'https://jawordpressorg.github.io/wapuu/wapuu-archive/wapuu-travel.png',
+ ],
+ ] ) );
+} );
+```
diff --git a/functions/kirki/packages/kirki-framework/control-radio/dist/control.css b/functions/kirki/packages/kirki-framework/control-radio/dist/control.css
new file mode 100644
index 0000000..ba8a3a0
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-radio/dist/control.css
@@ -0,0 +1,2 @@
+.customize-control-kirki-radio label{display:list-item;margin-bottom:7px}.customize-control-kirki-radio label .option-description{color:rgba(0,0,0,.35);display:block;font-size:.9em;padding-left:25px}.customize-control-kirki-radio-buttonset .buttonset{display:flex;flex-wrap:wrap}.customize-control-kirki-radio-buttonset .buttonset .switch-label{background:rgba(0,0,0,.1);border:1px rgba(0,0,0,.1);color:#555d66;flex-grow:1;margin:0;padding:.5em 1em;text-align:center}.customize-control-kirki-radio-buttonset .buttonset .switch-input:checked+.switch-label{background-color:#00a0d2;color:hsla(0,0%,100%,.8)}.customize-control-kirki-radio-buttonset .screen-reader-text:focus{clip-path:inset(50%);-webkit-clip-path:inset(50%)}.customize-control-kirki-radio-image>.image{display:flex;flex-wrap:wrap}.customize-control-kirki-radio-image label{display:inline-block;position:relative}.customize-control-kirki-radio-image label .image-label{background:hsla(0,0%,100%,.7);display:none;font-weight:700;height:100%;left:0;position:absolute;top:0;width:100%}.customize-control-kirki-radio-image label .image-label .inner{height:100%;padding:.5em;text-align:center;vertical-align:middle;width:100%}.customize-control-kirki-radio-image label:hover .image-label{display:block}.customize-control-kirki-radio-image input{display:none}.customize-control-kirki-radio-image input img{border:1px solid transparent}.customize-control-kirki-radio-image input:checked+label img{border:1px solid #3498db;-webkit-box-shadow:0 0 5px 2px rgba(0,0,0,.25);box-shadow:0 0 5px 2px rgba(0,0,0,.25)}.customize-control-kirki-radio-image input+label .image-clickable{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%}
+/*# sourceMappingURL=control.css.map */
diff --git a/functions/kirki/packages/kirki-framework/control-radio/dist/control.js b/functions/kirki/packages/kirki-framework/control-radio/dist/control.js
new file mode 100644
index 0000000..15b69bb
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-radio/dist/control.js
@@ -0,0 +1,2 @@
+wp.customize.controlConstructor["kirki-radio"]=wp.customize.kirkiDynamicControl.extend({}),wp.customize.controlConstructor["kirki-radio-buttonset"]=wp.customize.kirkiDynamicControl.extend({}),wp.customize.controlConstructor["kirki-radio-image"]=wp.customize.kirkiDynamicControl.extend({});
+//# sourceMappingURL=control.js.map
diff --git a/functions/kirki/packages/kirki-framework/control-radio/src/Control/Radio.php b/functions/kirki/packages/kirki-framework/control-radio/src/Control/Radio.php
new file mode 100644
index 0000000..7faeaf1
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-radio/src/Control/Radio.php
@@ -0,0 +1,97 @@
+
+ {{{ data.label }}}
+ <# if ( data.description ) { #>
+ {{{ data.description }}}
+ <# } #>
+ <# _.each( data.choices, function( val, key ) { #>
+
+ <# } ); #>
+
diff --git a/functions/kirki/controls/php/class-kirki-control-radio-image.php b/functions/kirki/packages/kirki-framework/control-radio/src/Control/Radio_Image.php
similarity index 72%
rename from functions/kirki/controls/php/class-kirki-control-radio-image.php
rename to functions/kirki/packages/kirki-framework/control-radio/src/Control/Radio_Image.php
index 616f22a..9290736 100644
--- a/functions/kirki/controls/php/class-kirki-control-radio-image.php
+++ b/functions/kirki/packages/kirki-framework/control-radio/src/Control/Radio_Image.php
@@ -2,13 +2,17 @@
/**
* Customizer Control: radio-image.
*
- * @package Kirki
- * @subpackage Controls
- * @copyright Copyright (c) 2020, David Vongries
- * @license https://opensource.org/licenses/MIT
- * @since 1.0
+ * @package kirki-framework/control-radio
+ * @copyright Copyright (c) 2019, Ari Stathopoulos (@aristath)
+ * @license https://opensource.org/licenses/MIT
+ * @since 1.0
*/
+namespace Kirki\Control;
+
+use Kirki\Control\Base;
+use Kirki\URL;
+
// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
exit;
@@ -17,7 +21,7 @@ if ( ! defined( 'ABSPATH' ) ) {
/**
* Radio Image control (modified radio).
*/
-class Kirki_Control_Radio_Image extends Kirki_Control_Base {
+class Radio_Image extends Base {
/**
* The control type.
@@ -27,10 +31,29 @@ class Kirki_Control_Radio_Image extends Kirki_Control_Base {
*/
public $type = 'kirki-radio-image';
+ /**
+ * Enqueue control related scripts/styles.
+ *
+ * @access public
+ */
+ public function enqueue() {
+ parent::enqueue();
+
+ // Enqueue the script.
+ wp_enqueue_script( 'kirki-control-radio', URL::get_from_path( dirname( dirname( __DIR__ ) ) . '/dist/control.js' ), [ 'jquery', 'customize-base', 'kirki-control-base' ], Radio::$control_ver, false );
+
+ // Enqueue the style.
+ wp_enqueue_style( 'kirki-control-radio-style', URL::get_from_path( dirname( dirname( __DIR__ ) ) . '/dist/control.css' ), [], Radio::$control_ver );
+ }
+
/**
* Refresh the parameters passed to the JavaScript via JSON.
*
* @see WP_Customize_Control::to_json()
+ *
+ * @access public
+ * @since 1.0
+ * @return void
*/
public function to_json() {
parent::to_json();
@@ -41,7 +64,6 @@ class Kirki_Control_Radio_Image extends Kirki_Control_Base {
}
$this->json['labelStyle'] = 'style="' . esc_attr( $value ) . '" ';
}
-
}
/**
@@ -53,6 +75,8 @@ class Kirki_Control_Radio_Image extends Kirki_Control_Base {
* @see WP_Customize_Control::print_template()
*
* @access protected
+ * @since 1.0
+ * @return void
*/
protected function content_template() {
?>
diff --git a/functions/kirki/packages/kirki-framework/control-radio/src/Field/Radio.php b/functions/kirki/packages/kirki-framework/control-radio/src/Field/Radio.php
new file mode 100644
index 0000000..018ca4e
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-radio/src/Field/Radio.php
@@ -0,0 +1,91 @@
+args['settings'] ) {
+ $args = parent::filter_setting_args( $args, $wp_customize );
+
+ // Set the sanitize-callback if none is defined.
+ if ( ! isset( $args['sanitize_callback'] ) || ! $args['sanitize_callback'] ) {
+ $args['sanitize_callback'] = function( $value ) {
+ if ( ! isset( $this->args['choices'][ $value ] ) ) {
+ return ( isset( $this->args['default'] ) ) ? $this->args['default'] : '';
+ }
+ return $value;
+ };
+ }
+ }
+ return $args;
+ }
+
+ /**
+ * Filter arguments before creating the control.
+ *
+ * @access public
+ * @since 0.1
+ * @param array $args The field arguments.
+ * @param WP_Customize_Manager $wp_customize The customizer instance.
+ * @return array
+ */
+ public function filter_control_args( $args, $wp_customize ) {
+ if ( $args['settings'] === $this->args['settings'] ) {
+ $args = parent::filter_control_args( $args, $wp_customize );
+ $args['type'] = 'kirki-radio';
+ }
+ return $args;
+ }
+}
diff --git a/functions/kirki/packages/kirki-framework/control-radio/src/Field/Radio_Buttonset.php b/functions/kirki/packages/kirki-framework/control-radio/src/Field/Radio_Buttonset.php
new file mode 100644
index 0000000..a0bcdde
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-radio/src/Field/Radio_Buttonset.php
@@ -0,0 +1,54 @@
+args['settings'] ) {
+ $args = parent::filter_control_args( $args, $wp_customize );
+ $args['type'] = 'kirki-radio-buttonset';
+ }
+ return $args;
+ }
+}
diff --git a/functions/kirki/packages/kirki-framework/control-radio/src/Field/Radio_Image.php b/functions/kirki/packages/kirki-framework/control-radio/src/Field/Radio_Image.php
new file mode 100644
index 0000000..47f477f
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-radio/src/Field/Radio_Image.php
@@ -0,0 +1,54 @@
+args['settings'] ) {
+ $args = parent::filter_control_args( $args, $wp_customize );
+ $args['type'] = 'kirki-radio-image';
+ }
+ return $args;
+ }
+}
diff --git a/functions/kirki/packages/kirki-framework/control-radio/src/control.js b/functions/kirki/packages/kirki-framework/control-radio/src/control.js
new file mode 100644
index 0000000..e9500f5
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-radio/src/control.js
@@ -0,0 +1,5 @@
+import "./control.scss";
+
+wp.customize.controlConstructor['kirki-radio'] = wp.customize.kirkiDynamicControl.extend( {} );
+wp.customize.controlConstructor['kirki-radio-buttonset'] = wp.customize.kirkiDynamicControl.extend( {} );
+wp.customize.controlConstructor['kirki-radio-image'] = wp.customize.kirkiDynamicControl.extend( {} );
diff --git a/functions/kirki/packages/kirki-framework/control-react-colorful/.prettierignore b/functions/kirki/packages/kirki-framework/control-react-colorful/.prettierignore
new file mode 100644
index 0000000..dd44972
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-react-colorful/.prettierignore
@@ -0,0 +1 @@
+*.md
diff --git a/functions/kirki/packages/kirki-framework/control-react-colorful/dist/control.css b/functions/kirki/packages/kirki-framework/control-react-colorful/dist/control.css
new file mode 100644
index 0000000..4ccd4db
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-react-colorful/dist/control.css
@@ -0,0 +1,3 @@
+.customize-control-kirki-react-colorful .kirki-control-form{position:relative;box-sizing:border-box}.customize-control-kirki-react-colorful .kirki-control-form *{box-sizing:border-box}.customize-control-kirki-react-colorful .kirki-control-cols{display:flex;align-items:flex-start}.customize-control-kirki-react-colorful .kirki-control-left-col{padding-right:30px;width:90%;width:calc(100% - 35px)}.customize-control-kirki-react-colorful .kirki-control-right-col{display:flex;justify-content:flex-end;width:35px}.customize-control-kirki-react-colorful .use-hue-mode .react-colorful{height:auto}.customize-control-kirki-react-colorful .use-hue-mode .react-colorful__saturation{display:none}.customize-control-kirki-react-colorful .use-hue-mode .react-colorful__last-control{border-radius:4px}.customize-control-kirki-react-colorful .use-hue-mode input.kirki-color-input{padding-left:8px;padding-left:8px}.customize-control-kirki-react-colorful .kirki-trigger-circle-wrapper{position:relative;top:-3px;display:flex;align-items:center;justify-content:center;padding:3px;width:33px;height:33px;border-radius:50%;border:1px solid #ccc}.customize-control-kirki-react-colorful .kirki-trigger-circle{position:relative;padding:0;display:block;width:25px;height:25px;background-size:10px;border:none;border-radius:50%;cursor:pointer}.customize-control-kirki-react-colorful .kirki-trigger-circle .kirki-color-preview{position:absolute;top:0;left:0;width:100%;height:100%}.customize-control-kirki-react-colorful .colorPickerContainer{position:absolute;top:35px;right:0;margin-top:5px;width:100%;padding:15px;background-color:#fff;border-radius:6px;box-shadow:rgba(0,0,0,.09) 0 12px 15px 0;z-index:9999;opacity:0;visibility:hidden;transition:all .2s;transition-property:opacity,visibility}.customize-control-kirki-react-colorful .colorPickerContainer.is-open{opacity:1;visibility:visible;transition:all .2s ease 10ms;transition-property:opacity,visibility}.customize-control-kirki-react-colorful .react-colorful{width:100%;border-radius:4px}.customize-control-kirki-react-colorful .react-colorful__saturation{border-radius:4px 4px 0 0}.customize-control-kirki-react-colorful .react-colorful__last-control{border-radius:0 0 4px 4px}.customize-control-kirki-react-colorful .react-colorful__pointer{width:20px;height:20px}.customize-control-kirki-react-colorful .kirki-color-input-wrapper{margin-top:15px}.customize-control-kirki-react-colorful .kirki-color-input-control{position:relative;display:flex;align-items:center;width:100%}.customize-control-kirki-react-colorful input.kirki-color-input{display:block;position:relative;padding-left:32px;padding-right:8px;width:100%;height:30px;line-height:30px;color:#333;border:1px solid #ccc;border-radius:4px;z-index:1}.customize-control-kirki-react-colorful .kirki-color-input:focus,.customize-control-kirki-react-colorful .kirki-color-input:active{box-shadow:0 0 0 1px #2271b1;outline:none;border-color:#2271b1}.customize-control-kirki-react-colorful .kirki-color-preview-wrapper{position:absolute;left:6px;width:22px;height:22px;background-repeat:repeat;background-size:8px;border-radius:50%;border:1px solid #ddd;border:2px solid #fff;-webkit-box-shadow:0px 0px 0px 1px #ddd;box-shadow:0px 0px 0px 1px #ddd;z-index:2}.customize-control-kirki-react-colorful .kirki-color-preview,.customize-control-kirki-react-colorful .kirki-control-reset{position:absolute;padding:0;background-color:transparent;cursor:pointer}.customize-control-kirki-react-colorful .kirki-color-preview{display:block;width:100%;height:100%;border-radius:50%;border-width:0}.customize-control-kirki-react-colorful .kirki-control-reset{display:flex;align-items:center;justify-content:center;top:4px;right:35px;width:17px;height:17px;border-radius:50%;border-width:0;z-index:3}.customize-control-kirki-react-colorful .kirki-control-reset:hover i{color:red;transform:rotate(-45deg)}.customize-control-kirki-react-colorful .kirki-control-reset i{font-size:12px;width:auto;height:auto;transform:rotate(45deg);transition:transform .2s}.customize-control-kirki-react-colorful .kirki-color-swatches{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.customize-control-kirki-react-colorful .kirki-color-swatch{position:relative;display:block;padding:0;width:25px;height:25px;border-radius:50%;border:2px solid #fff;cursor:pointer;transform:scale(1, 1);transition:transform .2s;-webkit-box-shadow:0px 0px 0px 1px #ddd;box-shadow:0px 0px 0px 1px #ddd}.customize-control-kirki-react-colorful .kirki-color-swatch:active,.customize-control-kirki-react-colorful .kirki-color-swatch:focus{outline:none}.customize-control-kirki-react-colorful .kirki-color-swatch:hover,.customize-control-kirki-react-colorful .kirki-color-swatch:focus{transform:scale(1.1, 1.1)}.customize-control-kirki-react-colorful .kirki-label-tooltip{position:absolute;bottom:45px;left:-8px;padding:7px 10px 3px;width:auto;width:max-content;max-width:100px;color:#fff;background-color:rgba(0,0,0,.7);border-radius:4px;opacity:0;visibility:hidden;transition:all .2s}.customize-control-kirki-react-colorful .kirki-label-tooltip::before{content:"";position:absolute;bottom:-8px;left:19px;border-width:8px 7px 0 7px;border-style:solid;border-color:rgba(0,0,0,.7) transparent transparent transparent}.customize-control-kirki-react-colorful .kirki-label-tooltip .customize-control-title{line-height:1.2}.customize-control-kirki-react-colorful .kirki-trigger-circle-wrapper:hover~.kirki-label-tooltip{opacity:1;visibility:visible}.customize-control-kirki-react-colorful[data-kirki-parent-control-type=kirki-multicolor]{margin-right:8px;margin-bottom:20px;padding-right:0;width:35px}.customize-control-kirki-react-colorful[data-kirki-parent-control-type=kirki-multicolor] .kirki-control-reset{top:-19px;right:8px}.customize-control-kirki-react-colorful[data-kirki-parent-control-type=kirki-typography] .colorPickerContainer{top:55px}.customize-control-kirki-react-colorful[data-kirki-parent-control-type=kirki-typography] .kirki-control-reset{top:30px;right:auto;left:35px}
+
+/*# sourceMappingURL=control.css.map*/
\ No newline at end of file
diff --git a/functions/kirki/packages/kirki-framework/control-react-colorful/dist/control.js b/functions/kirki/packages/kirki-framework/control-react-colorful/dist/control.js
new file mode 100644
index 0000000..5acd7a1
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-react-colorful/dist/control.js
@@ -0,0 +1,2 @@
+!function(){var t={8552:function(t,e,r){var n=r(852)(r(5639),"DataView");t.exports=n},1989:function(t,e,r){var n=r(1789),o=r(401),a=r(7667),c=r(1327),i=r(1866);function u(t){var e=-1,r=null==t?0:t.length;for(this.clear();++el))return!1;var p=u.get(t),v=u.get(e);if(p&&v)return p==e&&v==t;var d=-1,b=!0,h=2&r?new n:void 0;for(u.set(t,e),u.set(e,t);++d-1&&t%1==0&&t-1}},4705:function(t,e,r){var n=r(8470);t.exports=function(t,e){var r=this.__data__,o=n(r,t);return o<0?(++this.size,r.push([t,e])):r[o][1]=e,this}},4785:function(t,e,r){var n=r(1989),o=r(8407),a=r(7071);t.exports=function(){this.size=0,this.__data__={hash:new n,map:new(a||o),string:new n}}},1285:function(t,e,r){var n=r(5050);t.exports=function(t){var e=n(this,t).delete(t);return this.size-=e?1:0,e}},6e3:function(t,e,r){var n=r(5050);t.exports=function(t){return n(this,t).get(t)}},9916:function(t,e,r){var n=r(5050);t.exports=function(t){return n(this,t).has(t)}},5265:function(t,e,r){var n=r(5050);t.exports=function(t,e){var r=n(this,t),o=r.size;return r.set(t,e),this.size+=r.size==o?0:1,this}},8776:function(t){t.exports=function(t){var e=-1,r=Array(t.size);return t.forEach((function(t,n){r[++e]=[n,t]})),r}},2634:function(t){t.exports=function(t,e){return function(r){return null!=r&&r[t]===e&&(void 0!==e||t in Object(r))}}},4523:function(t,e,r){var n=r(8306);t.exports=function(t){var e=n(t,(function(t){return 500===r.size&&r.clear(),t})),r=e.cache;return e}},4536:function(t,e,r){var n=r(852)(Object,"create");t.exports=n},6916:function(t,e,r){var n=r(5569)(Object.keys,Object);t.exports=n},3498:function(t){t.exports=function(t){var e=[];if(null!=t)for(var r in Object(t))e.push(r);return e}},1167:function(t,e,r){t=r.nmd(t);var n=r(1957),o=e&&!e.nodeType&&e,a=o&&t&&!t.nodeType&&t,c=a&&a.exports===o&&n.process,i=function(){try{return a&&a.require&&a.require("util").types||c&&c.binding&&c.binding("util")}catch(t){}}();t.exports=i},2333:function(t){var e=Object.prototype.toString;t.exports=function(t){return e.call(t)}},5569:function(t){t.exports=function(t,e){return function(r){return t(e(r))}}},5639:function(t,e,r){var n=r(1957),o="object"==typeof self&&self&&self.Object===Object&&self,a=n||o||Function("return this")();t.exports=a},619:function(t){t.exports=function(t){return this.__data__.set(t,"__lodash_hash_undefined__"),this}},2385:function(t){t.exports=function(t){return this.__data__.has(t)}},1814:function(t){t.exports=function(t){var e=-1,r=Array(t.size);return t.forEach((function(t){r[++e]=t})),r}},7465:function(t,e,r){var n=r(8407);t.exports=function(){this.__data__=new n,this.size=0}},3779:function(t){t.exports=function(t){var e=this.__data__,r=e.delete(t);return this.size=e.size,r}},7599:function(t){t.exports=function(t){return this.__data__.get(t)}},4758:function(t){t.exports=function(t){return this.__data__.has(t)}},4309:function(t,e,r){var n=r(8407),o=r(7071),a=r(3369);t.exports=function(t,e){var r=this.__data__;if(r instanceof n){var c=r.__data__;if(!o||c.length<199)return c.push([t,e]),this.size=++r.size,this;r=this.__data__=new a(c)}return r.set(t,e),this.size=r.size,this}},5514:function(t,e,r){var n=r(4523),o=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,a=/\\(\\)?/g,c=n((function(t){var e=[];return 46===t.charCodeAt(0)&&e.push(""),t.replace(o,(function(t,r,n,o){e.push(n?o.replace(a,"$1"):r||t)})),e}));t.exports=c},327:function(t,e,r){var n=r(3448);t.exports=function(t){if("string"==typeof t||n(t))return t;var e=t+"";return"0"==e&&1/t==-1/0?"-0":e}},346:function(t){var e=Function.prototype.toString;t.exports=function(t){if(null!=t){try{return e.call(t)}catch(t){}try{return t+""}catch(t){}}return""}},361:function(t,e,r){var n=r(5990);t.exports=function(t){return n(t,5)}},7813:function(t){t.exports=function(t,e){return t===e||t!=t&&e!=e}},2525:function(t,e,r){var n=r(7816),o=r(4290);t.exports=function(t,e){return t&&n(t,o(e))}},7361:function(t,e,r){var n=r(7786);t.exports=function(t,e,r){var o=null==t?void 0:n(t,e);return void 0===o?r:o}},9095:function(t,e,r){var n=r(13),o=r(222);t.exports=function(t,e){return null!=t&&o(t,e,n)}},6557:function(t){t.exports=function(t){return t}},5694:function(t,e,r){var n=r(9454),o=r(7005),a=Object.prototype,c=a.hasOwnProperty,i=a.propertyIsEnumerable,u=n(function(){return arguments}())?n:function(t){return o(t)&&c.call(t,"callee")&&!i.call(t,"callee")};t.exports=u},1469:function(t){var e=Array.isArray;t.exports=e},8612:function(t,e,r){var n=r(3560),o=r(1780);t.exports=function(t){return null!=t&&o(t.length)&&!n(t)}},4144:function(t,e,r){t=r.nmd(t);var n=r(5639),o=r(5062),a=e&&!e.nodeType&&e,c=a&&t&&!t.nodeType&&t,i=c&&c.exports===a?n.Buffer:void 0,u=(i?i.isBuffer:void 0)||o;t.exports=u},3560:function(t,e,r){var n=r(4239),o=r(3218);t.exports=function(t){if(!o(t))return!1;var e=n(t);return"[object Function]"==e||"[object GeneratorFunction]"==e||"[object AsyncFunction]"==e||"[object Proxy]"==e}},1780:function(t){t.exports=function(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=9007199254740991}},6688:function(t,e,r){var n=r(5588),o=r(7518),a=r(1167),c=a&&a.isMap,i=c?o(c):n;t.exports=i},3218:function(t){t.exports=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}},7005:function(t){t.exports=function(t){return null!=t&&"object"==typeof t}},8630:function(t,e,r){var n=r(4239),o=r(5924),a=r(7005),c=Function.prototype,i=Object.prototype,u=c.toString,s=i.hasOwnProperty,l=u.call(Object);t.exports=function(t){if(!a(t)||"[object Object]"!=n(t))return!1;var e=o(t);if(null===e)return!0;var r=s.call(e,"constructor")&&e.constructor;return"function"==typeof r&&r instanceof r&&u.call(r)==l}},2928:function(t,e,r){var n=r(9221),o=r(7518),a=r(1167),c=a&&a.isSet,i=c?o(c):n;t.exports=i},7037:function(t,e,r){var n=r(4239),o=r(1469),a=r(7005);t.exports=function(t){return"string"==typeof t||!o(t)&&a(t)&&"[object String]"==n(t)}},3448:function(t,e,r){var n=r(4239),o=r(7005);t.exports=function(t){return"symbol"==typeof t||o(t)&&"[object Symbol]"==n(t)}},6719:function(t,e,r){var n=r(8749),o=r(7518),a=r(1167),c=a&&a.isTypedArray,i=c?o(c):n;t.exports=i},3674:function(t,e,r){var n=r(4636),o=r(280),a=r(8612);t.exports=function(t){return a(t)?n(t):o(t)}},1704:function(t,e,r){var n=r(4636),o=r(313),a=r(8612);t.exports=function(t){return a(t)?n(t,!0):o(t)}},5161:function(t,e,r){var n=r(9932),o=r(7206),a=r(9199),c=r(1469);t.exports=function(t,e){return(c(t)?n:a)(t,o(e,3))}},8306:function(t,e,r){var n=r(3369);function o(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw new TypeError("Expected a function");var r=function(){var n=arguments,o=e?e.apply(this,n):n[0],a=r.cache;if(a.has(o))return a.get(o);var c=t.apply(this,n);return r.cache=a.set(o,c)||a,c};return r.cache=new(o.Cache||n),r}o.Cache=n,t.exports=o},9601:function(t,e,r){var n=r(371),o=r(9152),a=r(5403),c=r(327);t.exports=function(t){return a(t)?n(c(t)):o(t)}},479:function(t){t.exports=function(){return[]}},5062:function(t){t.exports=function(){return!1}},9833:function(t,e,r){var n=r(531);t.exports=function(t){return null==t?"":n(t)}},4754:function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.autoprefix=void 0;var n,o=(n=r(2525))&&n.__esModule?n:{default:n},a=Object.assign||function(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:"span";return function(r){function n(){var r,u,s;c(this,n);for(var l=arguments.length,f=Array(l),p=0;p1&&void 0!==arguments[1]?arguments[1]:"span";return function(r){function n(){var r,u,s;c(this,n);for(var l=arguments.length,f=Array(l),p=0;p0&&void 0!==arguments[0]?arguments[0]:[],r=[];return(0,c.default)(e,(function(e){Array.isArray(e)?t(e).map((function(t){return r.push(t)})):(0,a.default)(e)?(0,o.default)(e,(function(t,e){!0===t&&r.push(e),r.push(e+"-"+t)})):(0,n.default)(e)&&r.push(e)})),r};e.default=u},9941:function(t,e,r){"use strict";var n=s(r(4147)),o=s(r(8556)),a=s(r(4754)),c=s(r(1765)),i=s(r(6002)),u=s(r(7742));function s(t){return t&&t.__esModule?t:{default:t}}c.default,c.default,i.default,u.default;e.ZP=function(t){for(var e=arguments.length,r=Array(e>1?e-1:0),c=1;c1&&void 0!==arguments[1])||arguments[1];r[t]=e};return 0===t&&n("first-child"),t===e-1&&n("last-child"),(0===t||t%2==0)&&n("even"),1===Math.abs(t%2)&&n("odd"),n("nth-child",t),r}},8556:function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.mergeClasses=void 0;var n=c(r(2525)),o=c(r(361)),a=Object.assign||function(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:[],r=t.default&&(0,o.default)(t.default)||{};return e.map((function(e){var o=t[e];return o&&(0,n.default)(o,(function(t,e){r[e]||(r[e]={}),r[e]=a({},r[e],o[e])})),e})),r};e.default=i},7363:function(t){"use strict";t.exports=React}},e={};function r(n){var o=e[n];if(void 0!==o)return o.exports;var a=e[n]={id:n,loaded:!1,exports:{}};return t[n](a,a.exports,r),a.loaded=!0,a.exports}r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,{a:e}),e},r.d=function(t,e){for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.nmd=function(t){return t.paths=[],t.children||(t.children=[]),t},function(){"use strict";var t=ReactDOM,e=r.n(t),n=r(7363),o=r.n(n);function a(){return(a=Object.assign||function(t){for(var e=1;e=0||(o[r]=t[r]);return o}function i(t){var e=(0,n.useRef)(t),r=(0,n.useRef)((function(t){e.current&&e.current(t)}));return e.current=t,r.current}var u=function(t,e,r){return void 0===e&&(e=0),void 0===r&&(r=1),t>r?r:t0:t.buttons>0)&&v.current?d(f(v.current,t,h.current)):r(!1)},e=function(){return r(!1)};function r(r){var n=g.current,o=l(v.current),a=r?o.addEventListener:o.removeEventListener;a(n?"touchmove":"mousemove",t),a(n?"touchend":"mouseup",e)}return[function(t){var e=t.nativeEvent,n=v.current;if(n&&(p(e),!function(t,e){return e&&!s(t)}(e,g.current)&&n)){if(s(e)){g.current=!0;var o=e.changedTouches||[];o.length&&(h.current=o[0].identifier)}n.focus(),d(f(n,e,h.current)),r(!0)}},function(t){var e=t.which||t.keyCode;e<37||e>40||(t.preventDefault(),b({left:39===e?.05:37===e?-.05:0,top:40===e?.05:38===e?-.05:0}))},r]}),[b,d]),y=m[0],x=m[1],_=m[2];return(0,n.useEffect)((function(){return _}),[_]),o().createElement("div",a({},u,{onTouchStart:y,onMouseDown:y,className:"react-colorful__interactive",ref:v,onKeyDown:x,tabIndex:0,role:"slider"}))})),d=function(t){return t.filter(Boolean).join(" ")},b=function(t){var e=t.color,r=t.left,n=t.top,a=void 0===n?.5:n,c=d(["react-colorful__pointer",t.className]);return o().createElement("div",{className:c,style:{top:100*a+"%",left:100*r+"%"}},o().createElement("div",{className:"react-colorful__pointer-fill",style:{backgroundColor:e}}))},h=function(t,e,r){return void 0===e&&(e=0),void 0===r&&(r=Math.pow(10,e)),Math.round(r*t)/r},g={grad:.9,turn:360,rad:360/(2*Math.PI)},m=function(t){return"#"===t[0]&&(t=t.substr(1)),t.length<6?{r:parseInt(t[0]+t[0],16),g:parseInt(t[1]+t[1],16),b:parseInt(t[2]+t[2],16),a:1}:{r:parseInt(t.substr(0,2),16),g:parseInt(t.substr(2,2),16),b:parseInt(t.substr(4,2),16),a:1}},y=function(t,e){return void 0===e&&(e="deg"),Number(t)*(g[e]||1)},x=function(t){var e=/hsla?\(?\s*(-?\d*\.?\d+)(deg|rad|grad|turn)?[,\s]+(-?\d*\.?\d+)%?[,\s]+(-?\d*\.?\d+)%?,?\s*[/\s]*(-?\d*\.?\d+)?(%)?\s*\)?/i.exec(t);return e?k({h:y(e[1],e[2]),s:Number(e[3]),l:Number(e[4]),a:void 0===e[5]?1:Number(e[5])/(e[6]?100:1)}):{h:0,s:0,v:0,a:1}},_=x,k=function(t){var e=t.s,r=t.l;return{h:t.h,s:(e*=(r<50?r:100-r)/100)>0?2*e/(r+e)*100:0,v:r+e,a:t.a}},j=function(t){var e=t.s,r=t.v,n=t.a,o=(200-e)*r/100;return{h:h(t.h),s:h(o>0&&o<200?e*r/100/(o<=100?o:200-o)*100:0),l:h(o/2),a:h(n,2)}},C=function(t){var e=j(t);return"hsl("+e.h+", "+e.s+"%, "+e.l+"%)"},w=function(t){var e=j(t);return"hsla("+e.h+", "+e.s+"%, "+e.l+"%, "+e.a+")"},O=function(t){var e=t.h,r=t.s,n=t.v,o=t.a;e=e/360*6,r/=100,n/=100;var a=Math.floor(e),c=n*(1-r),i=n*(1-(e-a)*r),u=n*(1-(1-e+a)*r),s=a%6;return{r:h(255*[n,i,c,c,u,n][s]),g:h(255*[u,n,n,i,c,c][s]),b:h(255*[c,c,u,n,n,i][s]),a:h(o,2)}},A=function(t){var e=/hsva?\(?\s*(-?\d*\.?\d+)(deg|rad|grad|turn)?[,\s]+(-?\d*\.?\d+)%?[,\s]+(-?\d*\.?\d+)%?,?\s*[/\s]*(-?\d*\.?\d+)?(%)?\s*\)?/i.exec(t);return e?M({h:y(e[1],e[2]),s:Number(e[3]),v:Number(e[4]),a:void 0===e[5]?1:Number(e[5])/(e[6]?100:1)}):{h:0,s:0,v:0,a:1}},E=A,S=function(t){var e=/rgba?\(?\s*(-?\d*\.?\d+)(%)?[,\s]+(-?\d*\.?\d+)(%)?[,\s]+(-?\d*\.?\d+)(%)?,?\s*[/\s]*(-?\d*\.?\d+)?(%)?\s*\)?/i.exec(t);return e?R({r:Number(e[1])/(e[2]?100/255:1),g:Number(e[3])/(e[4]?100/255:1),b:Number(e[5])/(e[6]?100/255:1),a:void 0===e[7]?1:Number(e[7])/(e[8]?100:1)}):{h:0,s:0,v:0,a:1}},H=S,P=function(t){var e=t.toString(16);return e.length<2?"0"+e:e},R=function(t){var e=t.r,r=t.g,n=t.b,o=t.a,a=Math.max(e,r,n),c=a-Math.min(e,r,n),i=c?a===e?(r-n)/c:a===r?2+(n-e)/c:4+(e-r)/c:0;return{h:h(60*(i<0?i+6:i)),s:h(a?c/a*100:0),v:h(a/255*100),a:o}},M=function(t){return{h:h(t.h),s:h(t.s),v:h(t.v),a:h(t.a,2)}},N=o().memo((function(t){var e=t.hue,r=t.onChange,n=d(["react-colorful__hue",t.className]);return o().createElement("div",{className:n},o().createElement(v,{onMove:function(t){r({h:360*t.left})},onKey:function(t){r({h:u(e+360*t.left,0,360)})},"aria-label":"Hue","aria-valuetext":h(e)},o().createElement(b,{className:"react-colorful__hue-pointer",left:e/360,color:C({h:e,s:100,v:100,a:1})})))})),B=o().memo((function(t){var e=t.hsva,r=t.onChange,n={backgroundColor:C({h:e.h,s:100,v:100,a:1})};return o().createElement("div",{className:"react-colorful__saturation",style:n},o().createElement(v,{onMove:function(t){r({s:100*t.left,v:100-100*t.top})},onKey:function(t){r({s:u(e.s+100*t.left,0,100),v:u(e.v-100*t.top,0,100)})},"aria-label":"Color","aria-valuetext":"Saturation "+h(e.s)+"%, Brightness "+h(e.v)+"%"},o().createElement(b,{className:"react-colorful__saturation-pointer",top:1-e.v/100,left:e.s/100,color:C(e)})))})),z=function(t,e){if(t===e)return!0;for(var r in t)if(t[r]!==e[r])return!1;return!0},I=function(t,e){return t.replace(/\s/g,"")===e.replace(/\s/g,"")};function F(t,e,r){var o=i(r),a=(0,n.useState)((function(){return t.toHsva(e)})),c=a[0],u=a[1],s=(0,n.useRef)({color:e,hsva:c});(0,n.useEffect)((function(){if(!t.equal(e,s.current.color)){var r=t.toHsva(e);s.current={hsva:r,color:e},u(r)}}),[e,t]),(0,n.useEffect)((function(){var e;z(c,s.current.hsva)||t.equal(e=t.fromHsva(c),s.current.color)||(s.current={hsva:c,color:e},o(e))}),[c,t,o]);var l=(0,n.useCallback)((function(t){u((function(e){return Object.assign({},e,t)}))}),[]);return[c,l]}var T="undefined"!=typeof window?n.useLayoutEffect:n.useEffect,U=new Map,L=function(t){T((function(){var e=t.current?t.current.ownerDocument:document;if(void 0!==e&&!U.has(e)){var n=e.createElement("style");n.innerHTML='.react-colorful{position:relative;display:flex;flex-direction:column;width:200px;height:200px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.react-colorful__saturation{position:relative;flex-grow:1;border-color:transparent;border-bottom:12px solid #000;border-radius:8px 8px 0 0;background-image:linear-gradient(0deg,#000,transparent),linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.react-colorful__alpha-gradient,.react-colorful__pointer-fill{content:"";position:absolute;left:0;top:0;right:0;bottom:0;pointer-events:none;border-radius:inherit}.react-colorful__alpha-gradient,.react-colorful__saturation{box-shadow:inset 0 0 0 1px rgba(0,0,0,.05)}.react-colorful__alpha,.react-colorful__hue{position:relative;height:24px}.react-colorful__hue{background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.react-colorful__last-control{border-radius:0 0 8px 8px}.react-colorful__interactive{position:absolute;left:0;top:0;right:0;bottom:0;border-radius:inherit;outline:none;touch-action:none}.react-colorful__pointer{position:absolute;z-index:1;box-sizing:border-box;width:28px;height:28px;transform:translate(-50%,-50%);background-color:#fff;border:2px solid #fff;border-radius:50%;box-shadow:0 2px 4px rgba(0,0,0,.2)}.react-colorful__interactive:focus .react-colorful__pointer{transform:translate(-50%,-50%) scale(1.1)}.react-colorful__alpha,.react-colorful__alpha-pointer{background-color:#fff;background-image:url(\'data:image/svg+xml;charset=utf-8,\')}.react-colorful__saturation-pointer{z-index:3}.react-colorful__hue-pointer{z-index:2}',U.set(e,n);var o=r.nc;o&&n.setAttribute("nonce",o),e.head.appendChild(n)}}),[])},D=function(t){var e=t.className,r=t.colorModel,i=t.color,u=void 0===i?r.defaultColor:i,s=t.onChange,l=c(t,["className","colorModel","color","onChange"]),f=(0,n.useRef)(null);L(f);var p=F(r,u,s),v=p[0],b=p[1],h=d(["react-colorful",e]);return o().createElement("div",a({},l,{ref:f,className:h}),o().createElement(B,{hsva:v,onChange:b}),o().createElement(N,{hue:v.h,onChange:b,className:"react-colorful__last-control"}))},W={defaultColor:"000",toHsva:function(t){return R(m(t))},fromHsva:function(t){return r=(e=O(t)).g,n=e.b,"#"+P(e.r)+P(r)+P(n);var e,r,n},equal:function(t,e){return t.toLowerCase()===e.toLowerCase()||z(m(t),m(e))}},J=function(t){return o().createElement(D,a({},t,{colorModel:W}))},Z=function(t){var e=t.className,r=t.hsva,n=t.onChange,a={backgroundImage:"linear-gradient(90deg, "+w(Object.assign({},r,{a:0}))+", "+w(Object.assign({},r,{a:1}))+")"},c=d(["react-colorful__alpha",e]);return o().createElement("div",{className:c},o().createElement("div",{className:"react-colorful__alpha-gradient",style:a}),o().createElement(v,{onMove:function(t){n({a:t.left})},onKey:function(t){n({a:u(r.a+t.left)})},"aria-label":"Alpha","aria-valuetext":h(100*r.a)+"%"},o().createElement(b,{className:"react-colorful__alpha-pointer",left:r.a,color:w(r)})))},q=function(t){var e=t.className,r=t.colorModel,i=t.color,u=void 0===i?r.defaultColor:i,s=t.onChange,l=c(t,["className","colorModel","color","onChange"]),f=(0,n.useRef)(null);L(f);var p=F(r,u,s),v=p[0],b=p[1],h=d(["react-colorful",e]);return o().createElement("div",a({},l,{ref:f,className:h}),o().createElement(B,{hsva:v,onChange:b}),o().createElement(N,{hue:v.h,onChange:b}),o().createElement(Z,{hsva:v,onChange:b,className:"react-colorful__last-control"}))},G={defaultColor:{h:0,s:0,l:0,a:1},toHsva:k,fromHsva:j,equal:z},$=function(t){return o().createElement(q,a({},t,{colorModel:G}))},K={defaultColor:"hsla(0, 0%, 0%, 1)",toHsva:x,fromHsva:w,equal:I},Q=function(t){return o().createElement(q,a({},t,{colorModel:K}))},V={defaultColor:{h:0,s:0,l:0},toHsva:function(t){return k({h:t.h,s:t.s,l:t.l,a:1})},fromHsva:function(t){return{h:(e=j(t)).h,s:e.s,l:e.l};var e},equal:z},Y=function(t){return o().createElement(D,a({},t,{colorModel:V}))},X={defaultColor:"hsl(0, 0%, 0%)",toHsva:_,fromHsva:C,equal:I},tt=function(t){return o().createElement(D,a({},t,{colorModel:X}))},et={defaultColor:{h:0,s:0,v:0,a:1},toHsva:function(t){return t},fromHsva:M,equal:z},rt=function(t){return o().createElement(q,a({},t,{colorModel:et}))},nt={defaultColor:"hsva(0, 0%, 0%, 1)",toHsva:A,fromHsva:function(t){var e=M(t);return"hsva("+e.h+", "+e.s+"%, "+e.v+"%, "+e.a+")"},equal:I},ot=function(t){return o().createElement(q,a({},t,{colorModel:nt}))},at={defaultColor:{h:0,s:0,v:0},toHsva:function(t){return{h:t.h,s:t.s,v:t.v,a:1}},fromHsva:function(t){var e=M(t);return{h:e.h,s:e.s,v:e.v}},equal:z},ct=function(t){return o().createElement(D,a({},t,{colorModel:at}))},it={defaultColor:"hsv(0, 0%, 0%)",toHsva:E,fromHsva:function(t){var e=M(t);return"hsv("+e.h+", "+e.s+"%, "+e.v+"%)"},equal:I},ut=function(t){return o().createElement(D,a({},t,{colorModel:it}))},st={defaultColor:{r:0,g:0,b:0,a:1},toHsva:R,fromHsva:O,equal:z},lt=function(t){return o().createElement(q,a({},t,{colorModel:st}))},ft={defaultColor:"rgba(0, 0, 0, 1)",toHsva:S,fromHsva:function(t){var e=O(t);return"rgba("+e.r+", "+e.g+", "+e.b+", "+e.a+")"},equal:I},pt=function(t){return o().createElement(q,a({},t,{colorModel:ft}))},vt={defaultColor:{r:0,g:0,b:0},toHsva:function(t){return R({r:t.r,g:t.g,b:t.b,a:1})},fromHsva:function(t){return{r:(e=O(t)).r,g:e.g,b:e.b};var e},equal:z},dt=function(t){return o().createElement(D,a({},t,{colorModel:vt}))},bt={defaultColor:"rgb(0, 0, 0)",toHsva:H,fromHsva:function(t){var e=O(t);return"rgb("+e.r+", "+e.g+", "+e.b+")"},equal:I},ht=function(t){return o().createElement(D,a({},t,{colorModel:bt}))},gt=r(9941),mt=t=>{const{onChange:e,color:r=""}=t,[o,a]=(0,n.useState)((()=>r)),c=(0,n.useCallback)((t=>{let r=t.target.value;2===r.length?r.includes("#")||r.includes("rg")||r.includes("hs")||(r="#"+r):3!==r.length&&6!==r.length||r.includes("#")||r.includes("rg")||r.includes("hs")||(r="#"+r),r=r.toLowerCase(),new RegExp(/(?:#|0x)(?:[a-f0-9]{3}|[a-f0-9]{6}|[a-f0-9]{8})\b|(?:rgb|hsl)a?\([^\)]*\)/).test(r)&&e(r),a(r)}),[e]);(0,n.useEffect)((()=>{a(r)}),[r]);const i=(0,gt.ZP)({default:{colorPreviewWrapper:{backgroundImage:["RgbaColorPicker","RgbaStringColorPicker","HslaColorPicker","HslaStringColorPicker","HsvaColorPicker","HsvaStringColorPicker"].includes(t.pickerComponent)?'url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAAHnlligAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAHJJREFUeNpi+P///4EDBxiAGMgCCCAGFB5AADGCRBgYDh48CCRZIJS9vT2QBAggFBkmBiSAogxFBiCAoHogAKIKAlBUYTELAiAmEtABEECk20G6BOmuIl0CIMBQ/IEMkO0myiSSraaaBhZcbkUOs0HuBwDplz5uFJ3Z4gAAAABJRU5ErkJggg==")':"none"},colorPreview:{backgroundColor:o}}});return React.createElement("div",{className:"kirki-color-input-wrapper"},React.createElement("div",{className:"kirki-color-input-control"},!t.useHueMode&&React.createElement("div",{className:"kirki-color-preview-wrapper",style:i.colorPreviewWrapper},React.createElement("button",{type:"button",className:"kirki-color-preview",style:i.colorPreview})),React.createElement("input",{type:"text",value:o,className:"kirki-color-input",spellCheck:"false",onChange:c})))},yt=({colors:t,onClick:e})=>React.createElement("div",{className:"kirki-color-swatches"},t.map(((t,r)=>{const n=t&&t.color?t.color:t;return React.createElement("button",{key:r.toString(),type:"button",className:"kirki-color-swatch","data-kirki-color":n,style:{backgroundColor:n},onClick:()=>e(n)})}))),xt={grad:.9,turn:360,rad:360/(2*Math.PI)},_t=function(t){return"string"==typeof t?t.length>0:"number"==typeof t},kt=function(t,e,r){return void 0===e&&(e=0),void 0===r&&(r=Math.pow(10,e)),Math.round(r*t)/r+0},jt=function(t,e,r){return void 0===e&&(e=0),void 0===r&&(r=1),t>r?r:t>e?t:e},Ct=function(t){return(t=isFinite(t)?t%360:0)>0?t:t+360},wt=function(t){return{r:jt(t.r,0,255),g:jt(t.g,0,255),b:jt(t.b,0,255),a:jt(t.a)}},Ot=function(t){return{r:kt(t.r),g:kt(t.g),b:kt(t.b),a:kt(t.a,3)}},At=/^#([0-9a-f]{3,8})$/i,Et=function(t){var e=t.toString(16);return e.length<2?"0"+e:e},St=function(t){var e=t.r,r=t.g,n=t.b,o=t.a,a=Math.max(e,r,n),c=a-Math.min(e,r,n),i=c?a===e?(r-n)/c:a===r?2+(n-e)/c:4+(e-r)/c:0;return{h:60*(i<0?i+6:i),s:a?c/a*100:0,v:a/255*100,a:o}},Ht=function(t){var e=t.h,r=t.s,n=t.v,o=t.a;e=e/360*6,r/=100,n/=100;var a=Math.floor(e),c=n*(1-r),i=n*(1-(e-a)*r),u=n*(1-(1-e+a)*r),s=a%6;return{r:255*[n,i,c,c,u,n][s],g:255*[u,n,n,i,c,c][s],b:255*[c,c,u,n,n,i][s],a:o}},Pt=function(t){return{h:Ct(t.h),s:jt(t.s,0,100),l:jt(t.l,0,100),a:jt(t.a)}},Rt=function(t){return{h:kt(t.h),s:kt(t.s),l:kt(t.l),a:kt(t.a,3)}},Mt=function(t){return Ht((r=(e=t).s,{h:e.h,s:(r*=((n=e.l)<50?n:100-n)/100)>0?2*r/(n+r)*100:0,v:n+r,a:e.a}));var e,r,n},Nt=function(t){return{h:(e=St(t)).h,s:(o=(200-(r=e.s))*(n=e.v)/100)>0&&o<200?r*n/100/(o<=100?o:200-o)*100:0,l:o/2,a:e.a};var e,r,n,o},Bt=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s*,\s*([+-]?\d*\.?\d+)%\s*,\s*([+-]?\d*\.?\d+)%\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,zt=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s+([+-]?\d*\.?\d+)%\s+([+-]?\d*\.?\d+)%\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,It=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,Ft=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,Tt={string:[[function(t){var e=At.exec(t);return e?(t=e[1]).length<=4?{r:parseInt(t[0]+t[0],16),g:parseInt(t[1]+t[1],16),b:parseInt(t[2]+t[2],16),a:4===t.length?kt(parseInt(t[3]+t[3],16)/255,2):1}:6===t.length||8===t.length?{r:parseInt(t.substr(0,2),16),g:parseInt(t.substr(2,2),16),b:parseInt(t.substr(4,2),16),a:8===t.length?kt(parseInt(t.substr(6,2),16)/255,2):1}:null:null},"hex"],[function(t){var e=It.exec(t)||Ft.exec(t);return e?e[2]!==e[4]||e[4]!==e[6]?null:wt({r:Number(e[1])/(e[2]?100/255:1),g:Number(e[3])/(e[4]?100/255:1),b:Number(e[5])/(e[6]?100/255:1),a:void 0===e[7]?1:Number(e[7])/(e[8]?100:1)}):null},"rgb"],[function(t){var e=Bt.exec(t)||zt.exec(t);if(!e)return null;var r,n,o=Pt({h:(r=e[1],n=e[2],void 0===n&&(n="deg"),Number(r)*(xt[n]||1)),s:Number(e[3]),l:Number(e[4]),a:void 0===e[5]?1:Number(e[5])/(e[6]?100:1)});return Mt(o)},"hsl"]],object:[[function(t){var e=t.r,r=t.g,n=t.b,o=t.a,a=void 0===o?1:o;return _t(e)&&_t(r)&&_t(n)?wt({r:Number(e),g:Number(r),b:Number(n),a:Number(a)}):null},"rgb"],[function(t){var e=t.h,r=t.s,n=t.l,o=t.a,a=void 0===o?1:o;if(!_t(e)||!_t(r)||!_t(n))return null;var c=Pt({h:Number(e),s:Number(r),l:Number(n),a:Number(a)});return Mt(c)},"hsl"],[function(t){var e=t.h,r=t.s,n=t.v,o=t.a,a=void 0===o?1:o;if(!_t(e)||!_t(r)||!_t(n))return null;var c=function(t){return{h:Ct(t.h),s:jt(t.s,0,100),v:jt(t.v,0,100),a:jt(t.a)}}({h:Number(e),s:Number(r),v:Number(n),a:Number(a)});return Ht(c)},"hsv"]]},Ut=function(t,e){for(var r=0;r=.5},t.prototype.toHex=function(){return e=(t=Ot(this.rgba)).r,r=t.g,n=t.b,a=(o=t.a)<1?Et(kt(255*o)):"","#"+Et(e)+Et(r)+Et(n)+a;var t,e,r,n,o,a},t.prototype.toRgb=function(){return Ot(this.rgba)},t.prototype.toRgbString=function(){return e=(t=Ot(this.rgba)).r,r=t.g,n=t.b,(o=t.a)<1?"rgba("+e+", "+r+", "+n+", "+o+")":"rgb("+e+", "+r+", "+n+")";var t,e,r,n,o},t.prototype.toHsl=function(){return Rt(Nt(this.rgba))},t.prototype.toHslString=function(){return e=(t=Rt(Nt(this.rgba))).h,r=t.s,n=t.l,(o=t.a)<1?"hsla("+e+", "+r+"%, "+n+"%, "+o+")":"hsl("+e+", "+r+"%, "+n+"%)";var t,e,r,n,o},t.prototype.toHsv=function(){return t=St(this.rgba),{h:kt(t.h),s:kt(t.s),v:kt(t.v),a:kt(t.a,3)};var t},t.prototype.invert=function(){return Zt({r:255-(t=this.rgba).r,g:255-t.g,b:255-t.b,a:t.a});var t},t.prototype.saturate=function(t){return void 0===t&&(t=.1),Zt(Lt(this.rgba,t))},t.prototype.desaturate=function(t){return void 0===t&&(t=.1),Zt(Lt(this.rgba,-t))},t.prototype.grayscale=function(){return Zt(Lt(this.rgba,-1))},t.prototype.lighten=function(t){return void 0===t&&(t=.1),Zt(Wt(this.rgba,t))},t.prototype.darken=function(t){return void 0===t&&(t=.1),Zt(Wt(this.rgba,-t))},t.prototype.rotate=function(t){return void 0===t&&(t=15),this.hue(this.hue()+t)},t.prototype.alpha=function(t){return"number"==typeof t?Zt({r:(e=this.rgba).r,g:e.g,b:e.b,a:t}):kt(this.rgba.a,3);var e},t.prototype.hue=function(t){var e=Nt(this.rgba);return"number"==typeof t?Zt({h:t,s:e.s,l:e.l,a:e.a}):kt(e.h)},t.prototype.isEqual=function(t){return this.toHex()===Zt(t).toHex()},t}(),Zt=function(t){return t instanceof Jt?t:new Jt(t)},qt=t=>{const{color:e=""}=t,[r,o]=(0,n.useState)((()=>e));(0,n.useEffect)((()=>{o(e)}),[e]);const a=(0,gt.ZP)({default:{triggerButton:{backgroundImage:["RgbaColorPicker","RgbaStringColorPicker","HslaColorPicker","HslaStringColorPicker","HsvaColorPicker","HsvaStringColorPicker"].includes(t.pickerComponent)?'url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAAHnlligAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAHJJREFUeNpi+P///4EDBxiAGMgCCCAGFB5AADGCRBgYDh48CCRZIJS9vT2QBAggFBkmBiSAogxFBiCAoHogAKIKAlBUYTELAiAmEtABEECk20G6BOmuIl0CIMBQ/IEMkO0myiSSraaaBhZcbkUOs0HuBwDplz5uFJ3Z4gAAAABJRU5ErkJggg==")':"none"},colorPreview:{backgroundColor:r||"transparent"}}});return React.createElement("div",{className:"kirki-trigger-circle-wrapper"},React.createElement("button",{type:"button",className:"kirki-trigger-circle",onClick:t.togglePickerHandler,style:a.triggerButton},React.createElement("div",{className:"kirki-color-preview",style:a.colorPreview})))},Gt=t=>{const{control:e,customizerSetting:r,useHueMode:o,pickerComponent:a,choices:c}=t,i=()=>o?0:"#000000",u=t=>(t=(t=t||i())<0?0:t)>360?360:t,s=t=>""===t?"":o?u(t):((t,e,r)=>{let n,o,a,c;switch(e){case"HexColorPicker":c="string"==typeof t&&t.includes("#")?t:Zt(t).toHex();break;case"RgbColorPicker":c="string"==typeof t&&t.includes("rgb(")?t:Zt(t).toRgbString();break;case"RgbStringColorPicker":c="string"==typeof t&&t.includes("rgba")?t:Zt(t).toRgbString();break;case"RgbaColorPicker":n=Zt(t).toRgb(),n.a<1?c="string"==typeof t&&t.includes("rgba")?t:Zt(t).toRgbString():(c=Zt(t).toRgbString(),c.includes("rgb")&&!c.includes("rgba")&&(c=c.replace("rgb","rgba"),c=c.replace(")",", 1)")));break;case"RgbaStringColorPicker":n=Zt(t).toRgb(),1!=n.a||r?(c=Zt(t).toRgbString(),c.includes("rgb")&&!c.includes("rgba")&&(c=c.replace("rgb","rgba"),c=c.replace(")",", 1)"))):c="string"==typeof t&&t.includes("#")?t:Zt(t).toHex();break;case"HslColorPicker":case"HslStringColorPicker":c="string"==typeof t&&t.includes("hsl(")?t:Zt(t).toHslString();break;case"HslaColorPicker":case"HslaStringColorPicker":c=Zt(t).toHslString(),c.includes("hsl")&&!c.includes("hsla")&&(c=c.replace("hsl","hsla"),c=c.replace(")",", 1)"));break;case"HsvColorPicker":case"HsvStringColorPicker":o=Zt(t).toHsv(),c="hsv("+o.h+", "+o.s+"%, "+o.v+"%)";break;case"HsvaColorPicker":case"HsvaStringColorPicker":a=Zt(t).toHsv(),c="hsva("+a.h+", "+a.s+"%, "+a.v+"%, "+a.a+")";break;default:c=Zt(t).toHex()}return c})(t,a,c.formComponent).replace(";",""),l=t=>(t=t||i(),o?{h:t,s:100,l:50}:((t,e)=>{let r;switch(e){case"HexColorPicker":default:r=Zt(t).toHex();break;case"RgbColorPicker":r=Zt(t).toRgb(),delete r.a;break;case"RgbStringColorPicker":r=Zt(t).toRgbString();break;case"RgbaColorPicker":r=Zt(t).toRgb();break;case"RgbaStringColorPicker":r=Zt(t).toRgbString(),r.includes("rgb")&&!r.includes("rgba")&&(r=r.replace("rgb","rgba"),r=r.replace(")",", 1)"));break;case"HslColorPicker":r=Zt(t).toHsl(),delete r.a;break;case"HslStringColorPicker":r=Zt(t).toHslString();break;case"HslaColorPicker":r=Zt(t).toHsl();break;case"HslaStringColorPicker":r=Zt(t).toHslString(),r.includes("hsl")&&!r.includes("hsla")&&(r=r.replace("hsl","hsla"),r=r.replace(")",", 1)"));break;case"HsvColorPicker":r=Zt(t).toHsv(),delete r.a;break;case"HsvStringColorPicker":const e=Zt(t).toHsv();r="hsv("+e.h+", "+e.s+"%, "+e.v+"%)";break;case"HsvaColorPicker":r=Zt(t).toHsv();break;case"HsvaStringColorPicker":const n=Zt(t).toHsv();r="hsva("+n.h+", "+n.s+"%, "+n.v+"%, "+n.a+")"}return r})(t,a)),[f,p]=(0,n.useState)((()=>s(t.value))),[v,d]=(0,n.useState)((()=>l(t.value)));let b=f,h=v;e.updateComponentState=t=>{const e=s(t);let r=!1;r="string"==typeof e||o?e!==f:JSON.stringify(e)!==JSON.stringify(b),r&&p(e);const n=l(t);let a=!1;a="string"==typeof n||o?n!==v:JSON.stringify(n)!==JSON.stringify(h),a&&d(n)};const g=t=>{o?(t=t.h||0===t.h?t.h:t,t=u(t)):t=(t=>""===t?"":((t,e,r)=>{let n,o,a,c;switch(e){case"HexColorPicker":default:c="string"==typeof t&&t.includes("#")?t:Zt(t).toHex();break;case"RgbColorPicker":c=Zt(t).toRgb(),delete c.a;break;case"RgbStringColorPicker":c="string"==typeof t&&t.includes("rgb(")?t:Zt(t).toRgbString();break;case"RgbaColorPicker":n=Zt(t).toRgb(),c=n;break;case"RgbaStringColorPicker":n=Zt(t).toRgb(),n.a<1?c="string"==typeof t&&t.includes("rgba")?t:Zt(t).toRgbString():r?(c=Zt(t).toRgbString(),c.includes("rgb")&&!c.includes("rgba")&&(c=c.replace("rgb","rgba"),c=c.replace(")",", 1)"))):c="string"==typeof t&&t.includes("#")?t:Zt(t).toHex();break;case"HslColorPicker":c=Zt(t).toHsl(),delete c.a;break;case"HslStringColorPicker":c="string"==typeof t&&t.includes("hsl(")?t:Zt(t).toHslString();break;case"HslaColorPicker":c=Zt(t).toHsl();break;case"HslaStringColorPicker":c=Zt(t).toHslString(),c.includes("hsl")&&!c.includes("hsla")&&(c=c.replace("hsl","hsla"),c=c.replace(")",", 1)"));break;case"HsvColorPicker":c=Zt(t).toHsv(),delete c.a;break;case"HsvStringColorPicker":o=Zt(t).toHsv(),c="hsv("+o.h+", "+o.s+"%, "+o.v+"%)";break;case"HsvaColorPicker":c=Zt(t).toHsv();break;case"HsvaStringColorPicker":a=Zt(t).toHsv(),c="hsva("+a.h+", "+a.s+"%, "+a.v+"%, "+a.a+")"}return c})(t,a,c.formComponent))(t),r.set(t)},m=""!==t.default&&void 0!==t.default?t.default:t.value;let y=React.createElement("span",{className:"customize-control-title",dangerouslySetInnerHTML:{__html:t.label}}),x=React.createElement("span",{className:"description customize-control-description",dangerouslySetInnerHTML:{__html:t.description}});y=React.createElement("label",{className:"kirki-control-label"},t.label?y:"",t.description?x:""),y=t.label||t.description?y:"";const _=(0,n.useRef)(null),k=(0,n.useRef)(null),j=(0,n.useRef)(null),[C,w]=(0,n.useState)(!1),O="default"!==c.labelStyle,[A,E]=(0,n.useState)({}),S=()=>{let t={};if(!O)return t;let r=window.getComputedStyle(e.container[0].parentNode).paddingLeft;r=2*parseInt(r,10),t.width=e.container[0].parentNode.getBoundingClientRect().width-r;const n=-1*(e.container[0].offsetLeft-9);return t.left=n+"px",t},H=()=>{4===f.length&&f.includes("#")&&p(Zt(f).toHex())},P=()=>{C&&(w(!1),setTimeout(H,200))};let R;switch(a){case"HexColorPicker":default:R=J;break;case"RgbColorPicker":R=dt;break;case"RgbStringColorPicker":R=ht;break;case"RgbaColorPicker":R=lt;break;case"RgbaStringColorPicker":R=pt;break;case"HueColorPicker":case"HslColorPicker":R=Y;break;case"HslStringColorPicker":R=tt;break;case"HslaColorPicker":R=$;break;case"HslaStringColorPicker":R=Q;break;case"HsvColorPicker":R=ct;break;case"HsvStringColorPicker":R=ut;break;case"HsvaColorPicker":R=rt;break;case"HsvaStringColorPicker":R=ot}if(M=()=>{E(S())},(0,n.useEffect)((()=>{const t=t=>{M()};return window.addEventListener("resize",t,!0),()=>{window.removeEventListener("resize",t,!0)}}),[M]),((t,e)=>{(0,n.useEffect)((()=>{const r=r=>{t.current&&(t.current.contains(r.target)||e())};return document.addEventListener("focus",r,!0),()=>{document.removeEventListener("focus",r,!0)}}),[t,e])})(_,P),((t,e,r)=>{(0,n.useEffect)((()=>{let n=!1,o=!1;const a=a=>{n&&!o&&e.current&&!e.current.contains(a.target)&&t.current&&!t.current.contains(a.target)&&r()},c=r=>{n=e.current&&t.current,o=e.current&&e.current.contains(r.target)||t.current&&t.current.contains(r.target)};return document.addEventListener("mousedown",c),document.addEventListener("touchstart",c),document.addEventListener("click",a),()=>{document.removeEventListener("mousedown",c),document.removeEventListener("touchstart",c),document.removeEventListener("click",a)}}),[e,t,r])})(k,j,P),jQuery.wp&&jQuery.wp.wpColorPicker){const t=jQuery.wp.wpColorPicker.prototype.options.palettes;if(Array.isArray(t)){if(t.length<8)for(let e=t.length;e<=8;e++)t.push(c.swatches[e]);c.swatches=t}}var M;const N=React.createElement(React.Fragment,null,y,React.createElement("div",{className:"customize-control-notifications-container",ref:t.setNotificationContainer}));let B=o?"kirki-control-form use-hue-mode":"kirki-control-form";B+=" has-"+c.labelStyle+"-label-style";let z=C?a+" colorPickerContainer is-open":a+" colorPickerContainer";const I=React.createElement(React.Fragment,null,React.createElement("button",{type:"button",ref:j,className:"kirki-control-reset",onClick:()=>{m||(b="",h=""),g(m)},style:{display:C?"flex":"none"}},React.createElement("i",{className:"dashicons dashicons-image-rotate"})),React.createElement(qt,{pickerComponent:a,useHueMode:o,color:o?Zt({h:f,s:100,l:50}).toHex():f,isPickerOpen:C,togglePickerHandler:()=>{C?P():C||(E(S()),H(),w(!0))}}));let F;switch(c.labelStyle){case"tooltip":F=React.createElement(React.Fragment,null,I,!C&&React.createElement("div",{className:"kirki-label-tooltip"},N));break;case"top":F=React.createElement(React.Fragment,null,N,I);break;default:F=React.createElement(React.Fragment,null,React.createElement("div",{className:"kirki-control-cols"},React.createElement("div",{className:"kirki-control-left-col"},N),React.createElement("div",{className:"kirki-control-right-col"},I)))}return React.createElement(React.Fragment,null,React.createElement("div",{className:B,ref:_,tabIndex:"1"},F,React.createElement("div",{ref:k,className:z,style:A},!o&&React.createElement(yt,{colors:c.swatches,onClick:t=>{g(t)}}),React.createElement(R,{color:v,onChange:e=>{t.onChange&&t.onChange(e),h=e,g(e)}}),React.createElement(mt,{pickerComponent:a,useHueMode:o,color:f,onChange:t=>{b=t,g(t)}}))))};function $t(){return $t=Object.assign||function(t){for(var e=1;e{t.updateComponentState(e)}))},updateComponentState:()=>{},destroy:function(){e().unmountComponentAtNode(this.container[0]),wp.customize.Control.prototype.destroy&&wp.customize.Control.prototype.destroy.call(this)}});wp.customize.controlConstructor["kirki-react-colorful"]=Kt}()}();
+//# sourceMappingURL=control.js.map
\ No newline at end of file
diff --git a/functions/kirki/packages/kirki-framework/control-react-colorful/dist/preview.js b/functions/kirki/packages/kirki-framework/control-react-colorful/dist/preview.js
new file mode 100644
index 0000000..2c6e22b
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-react-colorful/dist/preview.js
@@ -0,0 +1,2 @@
+(()=>{const o=o=>"number"==typeof o||"string"==typeof o&&!isNaN(o)&&!isNaN(parseFloat(o));wp.hooks.addFilter("kirkiPostMessageStylesOutput","kirki",((a,e,l,r)=>{if("kirki-react-colorful"!==r)return a;if("string"==typeof e||"number"==typeof e)return a;const s=l.prefix?l.prefix:"",p=l.suffix?l.suffix:"";return a+=l.element+"{"+l.property+": "+s+(a=>(alphaEnabled=!1,a.r||a.g||a.b?(colorMode=void 0!==a.a?"rgba":"rgb",alphaEnabled="rgba"===colorMode||alphaEnabled,pos1=a.r,pos2=a.g,pos3=a.b,pos4="rgba"===colorMode?a.a:1):(a.h||a.s)&&(pos1=a.h,a.l?(colorMode=void 0!==a.a?"hsla":"hsl",pos2=o(a.l)?a.l+"%":a.l):a.v&&(colorMode=void 0!==a.a?"hvla":"hvl",pos2=o(a.v)?a.v+"%":a.v),alphaEnabled="hsla"===colorMode||"hsva"===colorMode||alphaEnabled,pos3=o(a)?a.s+"%":a.s,pos4=alphaEnabled?a.a:1),alphaEnabled?formattedValue=colorMode+"("+pos1+", "+pos2+", "+pos3+", "+pos4+")":formattedValue=colorMode+"("+pos1+", "+pos2+", "+pos3+")",formattedValue))(e)+p+";\t\t}",a}))})();
+//# sourceMappingURL=preview.js.map
\ No newline at end of file
diff --git a/functions/kirki/packages/kirki-framework/control-react-colorful/src/Control/ReactColorful.php b/functions/kirki/packages/kirki-framework/control-react-colorful/src/Control/ReactColorful.php
new file mode 100644
index 0000000..b294ee1
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-react-colorful/src/Control/ReactColorful.php
@@ -0,0 +1,205 @@
+ 'alpha' argument.
+ *
+ * @access public
+ * @var string
+ */
+ public $mode = '';
+
+ /**
+ * Enqueue control related scripts/styles.
+ *
+ * @access public
+ * @since 1.0
+ * @return void
+ */
+ public function enqueue() {
+
+ parent::enqueue();
+
+ // Enqueue the script.
+ wp_enqueue_script( 'kirki-control-react-colorful', URL::get_from_path( dirname( dirname( __DIR__ ) ) . '/dist/control.js' ), [ 'customize-controls', 'wp-element', 'jquery', 'customize-base', 'kirki-control-base' ], self::$control_ver, false );
+
+ // Enqueue the style.
+ wp_enqueue_style( 'kirki-control-react-colorful', URL::get_from_path( dirname( dirname( __DIR__ ) ) . '/dist/control.css' ), [], self::$control_ver );
+
+ }
+
+ /**
+ * Refresh the parameters passed to the JavaScript via JSON.
+ *
+ * @access public
+ * @since 1.0
+ * @see WP_Customize_Control::to_json()
+ * @return void
+ */
+ public function to_json() {
+
+ // Get the basics from the parent class.
+ parent::to_json();
+
+ if ( isset( $this->json['label'] ) ) {
+ $this->json['label'] = html_entity_decode( $this->json['label'] );
+ }
+
+ if ( isset( $this->json['description'] ) ) {
+ $this->json['description'] = html_entity_decode( $this->json['description'] );
+ }
+
+ // Value.
+ $this->json['value'] = empty( $this->value() ) ? '' : ( 'hue' === $this->mode ? absint( $this->value() ) : $this->value() );
+
+ // Mode.
+ $this->json['mode'] = $this->mode;
+
+ // The label_style.
+ $this->json['choices']['labelStyle'] = isset( $this->choices['label_style'] ) ? $this->choices['label_style'] : 'default';
+
+ // Color swatches.
+ $this->json['choices']['swatches'] = $this->color_swatches();
+
+ // Form component (the value is bsaed on react-colorful's components).
+ if ( isset( $this->choices['form_component'] ) ) {
+ $this->json['choices']['formComponent'] = $this->choices['form_component'];
+ }
+
+ $this->remove_unused_json_props();
+
+ }
+
+ /**
+ * Remove un-used json properties.
+ *
+ * For consistency in JS, we converted some choices to use camelCase.
+ * To reduce the returned json size, we remove the original properties (which is using snake_case) from the JSON.
+ * But we keep them to stay in the choices array, so that they're still accessible.
+ *
+ * @return void
+ */
+ public function remove_unused_json_props() {
+
+ if ( isset( $this->json['choices']['label_style'] ) ) {
+ unset( $this->json['choices']['label_style'] );
+ }
+
+ if ( isset( $this->choices['form_component'] ) ) {
+ unset( $this->json['choices']['form_component'] );
+ }
+
+ if ( isset( $this->json['choices']['trigger_style'] ) ) {
+ unset( $this->json['choices']['trigger_style'] );
+ }
+
+ if ( isset( $this->json['choices']['button_text'] ) ) {
+ unset( $this->json['choices']['button_text'] );
+ }
+
+ }
+
+ /**
+ * Get color swatches values.
+ *
+ * @return array The color swatches values.
+ */
+ public function color_swatches() {
+
+ $default_swatches = [
+ '#000000',
+ '#ffffff',
+ '#dd3333',
+ '#dd9933',
+ '#eeee22',
+ '#81d742',
+ '#1e73be',
+ '#8224e3',
+ ];
+
+ $default_swatches = apply_filters( 'kirki_default_color_swatches', $default_swatches );
+
+ $defined_swatches = isset( $this->choices['swatches'] ) && ! empty( $this->choices['swatches'] ) ? $this->choices['swatches'] : [];
+
+ if ( empty( $defined_swatches ) ) {
+ $defined_swatches = isset( $this->choices['palettes'] ) && ! empty( $this->choices['palettes'] ) ? $this->choices['palettes'] : [];
+ }
+
+ if ( ! empty( $defined_swatches ) ) {
+ $swatches = $defined_swatches;
+ $total_swatches = count( $swatches );
+
+ if ( $total_swatches < 8 ) {
+ for ( $i = $total_swatches; $i <= 8; $i++ ) {
+ $swatches[] = $total_swatches[ $i ];
+ }
+ }
+ } else {
+ $swatches = $default_swatches;
+ }
+
+ $swatches = apply_filters( 'kirki_color_swatches', $swatches );
+
+ return $swatches;
+
+ }
+
+ /**
+ * An Underscore (JS) template for this control's content (but not its container).
+ *
+ * Class variables for this control class are available in the `data` JS object;
+ * export custom variables by overriding {@see WP_Customize_Control::to_json()}.
+ *
+ * @see WP_Customize_Control::print_template()
+ *
+ * @access protected
+ * @since 1.0
+ * @return void
+ */
+ protected function content_template() {}
+}
diff --git a/functions/kirki/packages/kirki-framework/control-react-colorful/src/Field/CSS/ReactColorful.php b/functions/kirki/packages/kirki-framework/control-react-colorful/src/Field/CSS/ReactColorful.php
new file mode 100644
index 0000000..03d827c
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-react-colorful/src/Field/CSS/ReactColorful.php
@@ -0,0 +1,85 @@
+ 'global',
+ 'element' => '',
+ 'property' => 'color',
+ 'prefix' => '',
+ 'suffix' => '',
+ )
+ );
+
+ // Only need to process further if the $value format is array.
+ if ( ! is_array( $value ) ) {
+ $this->styles[ $output['media_query'] ][ $output['element'] ][ $output['property'] ] = $output['prefix'] . $value . $output['suffix'];
+ return;
+ }
+
+ $alpha_enabled = false;
+
+ if ( isset( $value['r'] ) || isset( $value['g'] ) || isset( $value['b'] ) ) {
+ $color_mode = isset( $value['a'] ) ? 'rgba' : 'rgb';
+ $alpha_enabled = 'rgba' === $color_mode ? true : $alpha_enabled;
+
+ $pos_1 = $value['r'];
+ $pos_2 = $value['g'];
+ $pos_3 = $value['b'];
+ $pos_4 = 'rgba' === $color_mode ? $value['a'] : 1;
+ } elseif ( isset( $value['h'] ) || isset( $value['s'] ) ) {
+ $pos_1 = $value['h'];
+
+ if ( isset( $value['l'] ) ) {
+ $color_mode = isset( $value['a'] ) ? 'hsla' : 'hsl';
+ $pos_2 = is_numeric( $value['l'] ) ? $value['l'] . '%' : $value['l'];
+ } elseif ( isset( $value['v'] ) ) {
+ $color_mode = isset( $value['a'] ) ? 'hvla' : 'hvl';
+ $pos_2 = is_numeric( $value['v'] ) ? $value['v'] . '%' : $value['v'];
+ }
+
+ $alpha_enabled = 'hsla' === $color_mode || 'hsva' === $color_mode ? true : $alpha_enabled;
+
+ $pos_3 = is_numeric( $value ) ? $value['s'] . '%' : $value['s'];
+ $pos_4 = $alpha_enabled ? $value['a'] : 1;
+ }
+
+ if ( $alpha_enabled ) {
+ $formatted_value = $color_mode . '(' . $pos_1 . ', ' . $pos_2 . ', ' . $pos_3 . ', ' . $pos_4 . ')';
+ } else {
+ $formatted_value = $color_mode . '(' . $pos_1 . ', ' . $pos_2 . ', ' . $pos_3 . ')';
+ }
+
+ $this->styles[ $output['media_query'] ][ $output['element'] ][ $output['property'] ] = $output['prefix'] . $formatted_value . $output['suffix'];
+
+ }
+
+}
diff --git a/functions/kirki/packages/kirki-framework/control-react-colorful/src/Field/ReactColorful.php b/functions/kirki/packages/kirki-framework/control-react-colorful/src/Field/ReactColorful.php
new file mode 100644
index 0000000..5c60516
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-react-colorful/src/Field/ReactColorful.php
@@ -0,0 +1,296 @@
+args['settings'] ) {
+ $args = parent::filter_setting_args( $args, $wp_customize );
+
+ // Set the sanitize-callback if none is defined.
+ if ( ! isset( $args['sanitize_callback'] ) || ! $args['sanitize_callback'] ) {
+ $args['sanitize_callback'] = [ __CLASS__, 'sanitize' ];
+
+ // If this is a hue control then its value should be an integer.
+ if ( isset( $args['mode'] ) && 'hue' === $args['mode'] ) {
+ $args['sanitize_callback'] = 'absint';
+ }
+ }
+
+ // For postMessage/preview purpose, if property is not set, then set it to 'color'.
+ if ( isset( $args['output'] ) && ! empty( $args['output'] ) && is_array( $args['output'] ) && ! isset( $args['output']['element'] ) ) {
+ foreach ( $args['output'] as $index => $output ) {
+ if ( ! isset( $output['property'] ) ) {
+ if ( empty( $args['output'][ $index ] ) ) {
+ $args['output'][ $index ] = [];
+ }
+
+ $args['output'][ $index ]['property'] = 'color';
+ }
+ }
+ }
+ }
+
+ return $args;
+
+ }
+
+ /**
+ * Filter arguments before creating the control.
+ *
+ * @access public
+ * @since 0.1
+ * @param array $args The field arguments.
+ * @param WP_Customize_Manager $wp_customize The customizer instance.
+ * @return array
+ */
+ public function filter_control_args( $args, $wp_customize ) {
+
+ if ( $args['settings'] === $this->args['settings'] ) {
+ $args = parent::filter_control_args( $args, $wp_customize );
+ $args['type'] = 'kirki-react-colorful';
+ }
+
+ return $args;
+
+ }
+
+ /**
+ * Sanitize colors.
+ *
+ * @static
+ * @access public
+ * @since 1.0
+ *
+ * @param string|array $value The color.
+ * @return string|array
+ */
+ public static function sanitize( $value ) {
+
+ $sanitized_value = '';
+
+ if ( is_string( $value ) ) {
+ $sanitized_value = self::sanitize_color_string( $value );
+ } elseif ( is_array( $value ) ) {
+ if ( isset( $value['r'] ) || isset( $value['g'] ) || isset( $value['b'] ) ) {
+ $sanitized_value = self::sanitize_color_array( $value, 'rgb' );
+ } elseif ( isset( $value['h'] ) || isset( $value['s'] ) ) {
+ if ( isset( $value['l'] ) ) {
+ $sanitized_value = self::sanitize_color_array( $value, 'hsl' );
+ } elseif ( isset( $value['v'] ) ) {
+ $sanitized_value = self::sanitize_color_array( $value, 'hsv' );
+ }
+ }
+ }
+
+ return $sanitized_value;
+
+ }
+
+ /**
+ * Sanitize single color array.
+ *
+ * @param array $color The provided color in array format.
+ * @param string $color_type The color type. Accepts: rgb, hsl, and hsv.
+ *
+ * @return array The sanitized color.
+ */
+ public static function sanitize_color_array( $color, $color_type = 'rgb' ) {
+
+ $keys = [ 'r', 'g', 'b' ];
+ $mins = [ 0, 0, 0 ];
+ $maxs = [ 255, 255, 255 ];
+
+ if ( 'hsl' === $color_type || 'hsv' === $color_type ) {
+ $keys = [ 'h', 's', '' ];
+ $keys[2] = isset( $color['v'] ) ? 'v' : 'l';
+
+ $mins = [ 0, 0, 0 ];
+ $maxs = [ 360, 100, 100 ];
+ }
+
+ $sanitized_color = [];
+
+ $sanitized_color = [
+ $keys[0] => isset( $color[ $keys[0] ] ) ? absint( $color[ $keys[0] ] ) : $mins[0],
+ $keys[1] => isset( $color[ $keys[1] ] ) ? absint( $color[ $keys[1] ] ) : $mins[1],
+ $keys[2] => isset( $color[ $keys[2] ] ) ? absint( $color[ $keys[2] ] ) : $mins[2],
+ ];
+
+ $sanitized_color[ $keys[0] ] = $sanitized_color[ $keys[0] ] < $mins[0] ? $mins[0] : $sanitized_color[ $keys[0] ];
+ $sanitized_color[ $keys[0] ] = $sanitized_color[ $keys[0] ] > $maxs[0] ? $maxs[0] : $sanitized_color[ $keys[0] ];
+
+ $sanitized_color[ $keys[1] ] = $sanitized_color[ $keys[1] ] < $mins[1] ? $mins[1] : $sanitized_color[ $keys[1] ];
+ $sanitized_color[ $keys[1] ] = $sanitized_color[ $keys[1] ] > $maxs[1] ? $maxs[1] : $sanitized_color[ $keys[1] ];
+
+ $sanitized_color[ $keys[2] ] = $sanitized_color[ $keys[2] ] < $mins[2] ? $mins[2] : $sanitized_color[ $keys[2] ];
+ $sanitized_color[ $keys[2] ] = $sanitized_color[ $keys[2] ] > $maxs[2] ? $maxs[2] : $sanitized_color[ $keys[2] ];
+
+ if ( isset( $color['a'] ) ) {
+ $sanitized_color['a'] = isset( $color['a'] ) ? filter_var( $color['a'], FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION ) : 1;
+ $sanitized_color['a'] = $sanitized_color['a'] < 0 ? 0 : $sanitized_color['a'];
+ $sanitized_color['a'] = $sanitized_color['a'] > 1 ? 1 : $sanitized_color['a'];
+ }
+
+ return $sanitized_color;
+
+ }
+
+ /**
+ * Sanitize color string.
+ *
+ * @static
+ * @access public
+ * @since 1.0
+ *
+ * @param string $value The color.
+ * @return string
+ */
+ public static function sanitize_color_string( $value ) {
+
+ /**
+ * This pattern will check and match 3/6/8-character hex, rgb, rgba, hsl, hsla, hsv, and hsva colors.
+ *
+ * RGB regex:
+ *
+ * @link https://stackoverflow.com/questions/9585973/javascript-regular-expression-for-rgb-values#answer-9586045
+ *
+ * For testing it, you can use these links:
+ *
+ * @link https://regex101.com/
+ * @link https://regexr.com/
+ * @link https://www.regextester.com/
+ *
+ * How to test it?
+ *
+ * Paste the following code to the test field (of course without the asterisks and spaces in front of them):
+ * rgba(255, 255, 0, 0.9)
+ * rgb(255, 255, 0)
+ * #ff0
+ * #ffff00
+ * hsl(150, 25%, 25%)
+ * hsla(250, 25%, 25%, 0.7)
+ * hsv(125, 15%, 30%)
+ * hsva(125, 15%, 30%, 0.5)
+ *
+ * And then paste the regex `$pattern` below (without the single quote's start and end) to the regular expression box.
+ * Set the flag to use "global" and "multiline".
+ */
+ $pattern = '/^(\#[\da-f]{3}|\#[\da-f]{6}|\#[\da-f]{8}|rgba\(((\d{1,2}|1\d\d|2([0-4]\d|5[0-5]))\s*,\s*){2}((\d{1,2}|1\d\d|2([0-4]\d|5[0-5]))\s*)(,\s*(0\.\d+|1))\)|rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)|hsla\(\s*((\d{1,2}|[1-2]\d{2}|3([0-5]\d|60)))\s*,\s*((\d{1,2}|100)\s*%)\s*,\s*((\d{1,2}|100)\s*%)(,\s*(0\.\d+|1))\)|hsl\(\s*((\d{1,2}|[1-2]\d{2}|3([0-5]\d|60)))\s*,\s*((\d{1,2}|100)\s*%)\s*,\s*((\d{1,2}|100)\s*%)\)|hsva\(\s*((\d{1,2}|[1-2]\d{2}|3([0-5]\d|60)))\s*,\s*((\d{1,2}|100)\s*%)\s*,\s*((\d{1,2}|100)\s*%)(,\s*(0\.\d+|1))\)|hsv\(\s*((\d{1,2}|[1-2]\d{2}|3([0-5]\d|60)))\s*,\s*((\d{1,2}|100)\s*%)\s*,\s*((\d{1,2}|100)\s*%)\))$/';
+
+ preg_match( $pattern, $value, $matches );
+
+ // Return the 1st match found.
+ if ( isset( $matches[0] ) ) {
+ if ( is_string( $matches[0] ) ) {
+ return $matches[0];
+ }
+
+ if ( is_array( $matches[0] ) && isset( $matches[0][0] ) ) {
+ return $matches[0][0];
+ }
+ }
+
+ // If no match was found, return an empty string.
+ return '';
+ }
+
+ /**
+ * Enqueue styles & scripts on 'customize_preview_init' action.
+ *
+ * @since 4.0.0
+ * @access public
+ */
+ public function enqueue_customize_preview_scripts() {
+
+ wp_enqueue_script( 'kirki-react-colorful', URL::get_from_path( dirname( dirname( __DIR__ ) ) ) . '/dist/preview.js', [ 'wp-hooks', 'customize-preview' ], $this->control_class::$control_ver, true );
+
+ }
+
+ /**
+ * Add output control class for react colorful control.
+ *
+ * @since 4.0.0
+ * @access public
+ *
+ * @param array $control_classes The existing control classes.
+ * @return array
+ */
+ public function output_control_classnames( $control_classes ) {
+
+ $control_classes['kirki-react-colorful'] = '\Kirki\Field\CSS\ReactColorful';
+
+ return $control_classes;
+
+ }
+
+}
diff --git a/functions/kirki/packages/kirki-framework/control-react-colorful/src/js/components/KirkiReactColorfulCircle.js b/functions/kirki/packages/kirki-framework/control-react-colorful/src/js/components/KirkiReactColorfulCircle.js
new file mode 100644
index 0000000..844704e
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-react-colorful/src/js/components/KirkiReactColorfulCircle.js
@@ -0,0 +1,50 @@
+import { useState, useEffect } from "react";
+import reactCSS from "reactcss";
+
+const KirkiReactColorfulCircle = (props) => {
+ const { color = "" } = props;
+ const [value, setValue] = useState(() => color);
+
+ // Update the local state when `color` property value is changed.
+ useEffect(() => {
+ // We don't need to convert the color since it's using the customizer value.
+ setValue(color);
+ }, [color]);
+
+ const pickersWithAlpha = [
+ "RgbaColorPicker",
+ "RgbaStringColorPicker",
+ "HslaColorPicker",
+ "HslaStringColorPicker",
+ "HsvaColorPicker",
+ "HsvaStringColorPicker",
+ ];
+
+ const styles = reactCSS({
+ default: {
+ triggerButton: {
+ backgroundImage: pickersWithAlpha.includes(props.pickerComponent)
+ ? 'url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAAHnlligAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAHJJREFUeNpi+P///4EDBxiAGMgCCCAGFB5AADGCRBgYDh48CCRZIJS9vT2QBAggFBkmBiSAogxFBiCAoHogAKIKAlBUYTELAiAmEtABEECk20G6BOmuIl0CIMBQ/IEMkO0myiSSraaaBhZcbkUOs0HuBwDplz5uFJ3Z4gAAAABJRU5ErkJggg==")'
+ : "none",
+ },
+ colorPreview: {
+ backgroundColor: value ? value : "transparent",
+ },
+ },
+ });
+
+ return (
+
+ );
+};
+
+export default KirkiReactColorfulCircle;
diff --git a/functions/kirki/packages/kirki-framework/control-react-colorful/src/js/components/KirkiReactColorfulInput.js b/functions/kirki/packages/kirki-framework/control-react-colorful/src/js/components/KirkiReactColorfulInput.js
new file mode 100644
index 0000000..2d5ccc7
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-react-colorful/src/js/components/KirkiReactColorfulInput.js
@@ -0,0 +1,93 @@
+import { useState, useEffect, useCallback } from "react";
+import reactCSS from "reactcss";
+
+const KirkiReactColorfulInput = (props) => {
+ const { onChange, color = "" } = props;
+ const [value, setValue] = useState(() => color);
+
+ const handleChange = useCallback(
+ (e) => {
+ let val = e.target.value;
+
+ if (2 === val.length) {
+ if (!val.includes("#") && !val.includes("rg") && !val.includes("hs")) {
+ val = "#" + val;
+ }
+ } else if (3 === val.length || 6 === val.length) {
+ if (!val.includes("#") && !val.includes("rg") && !val.includes("hs")) {
+ val = "#" + val;
+ }
+ }
+
+ val = val.toLowerCase();
+
+ // Thank you: https://regexr.com/39cgj
+ const pattern = new RegExp(
+ /(?:#|0x)(?:[a-f0-9]{3}|[a-f0-9]{6}|[a-f0-9]{8})\b|(?:rgb|hsl)a?\([^\)]*\)/
+ );
+
+ if (pattern.test(val)) {
+ onChange(val); // Run onChange handler passed by `KirkiReactColorfulForm` component.
+ }
+
+ setValue(val);
+ },
+ [onChange]
+ );
+
+ // Update the local state when `color` property value is changed.
+ useEffect(() => {
+ // We don't need to convert the color since it's already handled in parent component.
+ setValue(color);
+ }, [color]);
+
+ const pickersWithAlpha = [
+ "RgbaColorPicker",
+ "RgbaStringColorPicker",
+ "HslaColorPicker",
+ "HslaStringColorPicker",
+ "HsvaColorPicker",
+ "HsvaStringColorPicker",
+ ];
+
+ const styles = reactCSS({
+ default: {
+ colorPreviewWrapper: {
+ backgroundImage: pickersWithAlpha.includes(props.pickerComponent)
+ ? 'url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAAHnlligAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAHJJREFUeNpi+P///4EDBxiAGMgCCCAGFB5AADGCRBgYDh48CCRZIJS9vT2QBAggFBkmBiSAogxFBiCAoHogAKIKAlBUYTELAiAmEtABEECk20G6BOmuIl0CIMBQ/IEMkO0myiSSraaaBhZcbkUOs0HuBwDplz5uFJ3Z4gAAAABJRU5ErkJggg==")'
+ : "none",
+ },
+ colorPreview: {
+ backgroundColor: value,
+ },
+ },
+ });
+
+ return (
+
+
+ {!props.useHueMode && (
+
+
+
+ )}
+
+
+
+ );
+};
+
+export default KirkiReactColorfulInput;
diff --git a/functions/kirki/packages/kirki-framework/control-react-colorful/src/js/components/KirkiReactColorfulSwatches.js b/functions/kirki/packages/kirki-framework/control-react-colorful/src/js/components/KirkiReactColorfulSwatches.js
new file mode 100644
index 0000000..2d48e46
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-react-colorful/src/js/components/KirkiReactColorfulSwatches.js
@@ -0,0 +1,22 @@
+const KirkiReactColorfulSwatches = ({ colors, onClick }) => {
+ return (
+
+ {colors.map((clr, index) => {
+ const color = clr && clr.color ? clr.color : clr;
+
+ return (
+
+ );
+ })}
+
+ );
+};
+
+export default KirkiReactColorfulSwatches;
diff --git a/functions/kirki/packages/kirki-framework/control-react-colorful/src/js/hooks/useClickOutside.js b/functions/kirki/packages/kirki-framework/control-react-colorful/src/js/hooks/useClickOutside.js
new file mode 100644
index 0000000..270a286
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-react-colorful/src/js/hooks/useClickOutside.js
@@ -0,0 +1,45 @@
+import { useEffect } from "react";
+
+/**
+ * Code was taken and then modified from https://codesandbox.io/s/opmco?file=/src/useClickOutside.js:0-1192
+ * It was improved version of https://usehooks.com/useOnClickOutside/
+ */
+const useClickOutside = (pickerRef, resetRef, handler) => {
+ useEffect(() => {
+ let startedWhenMounted = false;
+ let startedInside = false;
+
+ const listener = (event) => {
+ // Do nothing if `mousedown` or `touchstart` started either inside resetRef or pickerRef element
+ if (!startedWhenMounted || startedInside) return;
+
+ // Do nothing if clicking resetRef's element or descendent elements
+ if (!resetRef.current || resetRef.current.contains(event.target)) return;
+
+ // Do nothing if clicking pickerRef's element or descendent elements
+ if (!pickerRef.current || pickerRef.current.contains(event.target))
+ return;
+
+ handler();
+ };
+
+ const validateEventStart = (event) => {
+ startedWhenMounted = resetRef.current && pickerRef.current;
+ startedInside =
+ (resetRef.current && resetRef.current.contains(event.target)) ||
+ (pickerRef.current && pickerRef.current.contains(event.target));
+ };
+
+ document.addEventListener("mousedown", validateEventStart);
+ document.addEventListener("touchstart", validateEventStart);
+ document.addEventListener("click", listener);
+
+ return () => {
+ document.removeEventListener("mousedown", validateEventStart);
+ document.removeEventListener("touchstart", validateEventStart);
+ document.removeEventListener("click", listener);
+ };
+ }, [resetRef, pickerRef, handler]);
+};
+
+export default useClickOutside;
diff --git a/functions/kirki/packages/kirki-framework/control-react-colorful/src/js/hooks/useFocusOutside.js b/functions/kirki/packages/kirki-framework/control-react-colorful/src/js/hooks/useFocusOutside.js
new file mode 100644
index 0000000..867e4e8
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-react-colorful/src/js/hooks/useFocusOutside.js
@@ -0,0 +1,23 @@
+import { useEffect } from "react";
+
+const useFocusOutside = (ref, handler) => {
+ useEffect(() => {
+ const listener = (e) => {
+ // Do nothing if the component hasn't been mounted.
+ if (!ref.current) return;
+
+ // Do nothing if the focused element is inside the ref or the ref it self.
+ if (ref.current.contains(e.target)) return;
+
+ handler();
+ };
+
+ document.addEventListener("focus", listener, true);
+
+ return () => {
+ document.removeEventListener("focus", listener, true);
+ };
+ }, [ref, handler]);
+};
+
+export default useFocusOutside;
diff --git a/functions/kirki/packages/kirki-framework/control-react-colorful/src/js/hooks/useWindowResize.js b/functions/kirki/packages/kirki-framework/control-react-colorful/src/js/hooks/useWindowResize.js
new file mode 100644
index 0000000..2b137c9
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-react-colorful/src/js/hooks/useWindowResize.js
@@ -0,0 +1,17 @@
+import { useEffect } from "react";
+
+const useWindowResize = (handler) => {
+ useEffect(() => {
+ const listener = (e) => {
+ handler();
+ };
+
+ window.addEventListener("resize", listener, true);
+
+ return () => {
+ window.removeEventListener("resize", listener, true);
+ };
+ }, [handler]);
+};
+
+export default useWindowResize;
diff --git a/functions/kirki/packages/kirki-framework/control-react-colorful/src/js/utils/convertColorForCustomizer.js b/functions/kirki/packages/kirki-framework/control-react-colorful/src/js/utils/convertColorForCustomizer.js
new file mode 100644
index 0000000..bfd1b12
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-react-colorful/src/js/utils/convertColorForCustomizer.js
@@ -0,0 +1,138 @@
+import { colord } from "colord";
+
+/**
+ * Convert the value for the customizer.
+ *
+ * @param {string|Object} value The value to be converted.
+ * @param {string} pickerComponent The picker component name.
+ *
+ * @returns {string} The converted value.
+ */
+const convertColorForCustomizer = (value, pickerComponent, formComponent) => {
+ let rgba;
+ let hsv;
+ let hsva;
+ let convertedValue;
+
+ switch (pickerComponent) {
+ /**
+ * The HexColorPicker is used by these condition:
+ * 1. When formComponent is defined with HexColorPicker as the value.
+ * 2. When formComponent is not defined but the "alpha" choice is not set or set to false (the old way).
+ */
+ case 'HexColorPicker':
+ convertedValue = 'string' === typeof value && value.includes('#') ? value : colord(value).toHex();
+ break;
+
+ case 'RgbColorPicker':
+ convertedValue = colord(value).toRgb();
+ delete convertedValue.a;
+ break;
+
+ case 'RgbStringColorPicker':
+ convertedValue =
+ "string" === typeof value && value.includes("rgb(")
+ ? value
+ : colord(value).toRgbString();
+ break;
+
+ case 'RgbaColorPicker':
+ rgba = colord(value).toRgb();
+ convertedValue = rgba;
+ break;
+
+ /**
+ * The RgbaStringColorPicker is used by these condition:
+ * 1. When formComponent is defined with RgbaColorPicker as the value.
+ * 2. When formComponent is not defined but the "alpha" choice is set to true.
+ */
+ case 'RgbaStringColorPicker':
+ rgba = colord(value).toRgb();
+
+ if (rgba.a < 1) {
+ convertedValue =
+ "string" === typeof value && value.includes("rgba")
+ ? value
+ : colord(value).toRgbString();
+ } else {
+ // When it uses the 2nd condition above, then the expected value is "hex".
+ if (!formComponent) {
+ convertedValue =
+ "string" === typeof value && value.includes("#")
+ ? value
+ : colord(value).toHex();
+ } else {
+ convertedValue = colord(value).toRgbString();
+
+ // Force to set the alpha channel value.
+ if (convertedValue.includes('rgb') && !convertedValue.includes('rgba')) {
+ convertedValue = convertedValue.replace('rgb', 'rgba');
+ convertedValue = convertedValue.replace(')', ', 1)');
+ }
+ }
+ }
+
+ break;
+
+ case 'HslColorPicker':
+ convertedValue = colord(value).toHsl();
+ delete convertedValue.a;
+ break;
+
+ case 'HslStringColorPicker':
+ convertedValue =
+ "string" === typeof value && value.includes("hsl(")
+ ? value
+ : colord(value).toHslString();
+ break;
+
+ case 'HslaColorPicker':
+ convertedValue = colord(value).toHsl();
+ break;
+
+ case 'HslaStringColorPicker':
+ convertedValue = colord(value).toHslString();
+
+ // Force to set the alpha channel value.
+ if (convertedValue.includes('hsl') && !convertedValue.includes('hsla')) {
+ convertedValue = convertedValue.replace('hsl', 'hsla');
+ convertedValue = convertedValue.replace(')', ', 1)');
+ }
+
+ break;
+
+ case 'HsvColorPicker':
+ convertedValue = colord(value).toHsv();
+ delete convertedValue.a;
+ break;
+
+ /**
+ * The colord library doesn't provide .toHsvString() method yet.
+ * This manual value-building will apply to "HsvStringColorPicker" and "HsvaStringColorPicker" stuff below.
+ */
+ case 'HsvStringColorPicker':
+ hsv = colord(value).toHsv();
+ convertedValue = 'hsv(' + hsv.h + ', ' + hsv.s + '%, ' + hsv.v + '%)';
+ break;
+
+ case 'HsvaColorPicker':
+ convertedValue = colord(value).toHsv();
+ break;
+
+ case 'HsvaStringColorPicker':
+ hsva = colord(value).toHsv();
+ convertedValue = 'hsva(' + hsva.h + ', ' + hsva.s + '%, ' + hsva.v + '%, ' + hsva.a + ')';
+ break;
+
+ default:
+ convertedValue =
+ "string" === typeof value && value.includes("#")
+ ? value
+ : colord(value).toHex();
+ break;
+ }
+
+ return convertedValue;
+};
+
+export default convertColorForCustomizer;
diff --git a/functions/kirki/packages/kirki-framework/control-react-colorful/src/js/utils/convertColorForInput.js b/functions/kirki/packages/kirki-framework/control-react-colorful/src/js/utils/convertColorForInput.js
new file mode 100644
index 0000000..d4ac464
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-react-colorful/src/js/utils/convertColorForInput.js
@@ -0,0 +1,182 @@
+import { colord } from "colord";
+
+/**
+ * Convert the value for the color input.
+ *
+ * @param {string|Object} value The value to be converted.
+ * @param {string} pickerComponent The picker component name.
+ *
+ * @returns {string} The converted value.
+ */
+const convertColorForInput = (value, pickerComponent, formComponent) => {
+ let rgba;
+ let hsv;
+ let hsva;
+ let convertedValue;
+
+ switch (pickerComponent) {
+ /**
+ * The HexColorPicker is used by these condition:
+ * 1. When formComponent is defined with HexColorPicker as the value.
+ * 2. When formComponent is not defined but the "alpha" choice is not set or set to false (the old way).
+ */
+ case "HexColorPicker":
+ convertedValue =
+ "string" === typeof value && value.includes("#")
+ ? value
+ : colord(value).toHex();
+ break;
+
+ case "RgbColorPicker":
+ convertedValue =
+ "string" === typeof value && value.includes("rgb(")
+ ? value
+ : colord(value).toRgbString();
+ break;
+
+ case "RgbStringColorPicker":
+ convertedValue =
+ "string" === typeof value && value.includes("rgba")
+ ? value
+ : colord(value).toRgbString();
+ break;
+
+ case "RgbaColorPicker":
+ rgba = colord(value).toRgb();
+
+ if (rgba.a < 1) {
+ convertedValue =
+ "string" === typeof value && value.includes("rgba")
+ ? value
+ : colord(value).toRgbString();
+ } else {
+ convertedValue = colord(value).toRgbString();
+
+ // Force to set the alpha value.
+ if (
+ convertedValue.includes("rgb") &&
+ !convertedValue.includes("rgba")
+ ) {
+ convertedValue = convertedValue.replace("rgb", "rgba");
+ convertedValue = convertedValue.replace(")", ", 1)");
+ }
+ }
+
+ break;
+
+ /**
+ * The RgbaStringColorPicker is used by these condition:
+ * 1. When formComponent is defined with RgbaColorPicker as the value.
+ * 2. When formComponent is not defined but the "alpha" choice is set to true.
+ */
+ case "RgbaStringColorPicker":
+ rgba = colord(value).toRgb();
+
+ // When it uses the 2nd condition above, then the expected value is "hex".
+ if (rgba.a == 1 && !formComponent) {
+ convertedValue =
+ "string" === typeof value && value.includes("#")
+ ? value
+ : colord(value).toHex();
+ } else {
+ convertedValue = colord(value).toRgbString();
+
+ // Force to set the alpha value.
+ if (
+ convertedValue.includes("rgb") &&
+ !convertedValue.includes("rgba")
+ ) {
+ convertedValue = convertedValue.replace("rgb", "rgba");
+ convertedValue = convertedValue.replace(")", ", 1)");
+ }
+ }
+
+ break;
+
+ case "HslColorPicker":
+ convertedValue =
+ "string" === typeof value && value.includes("hsl(")
+ ? value
+ : colord(value).toHslString();
+ break;
+
+ case "HslStringColorPicker":
+ convertedValue =
+ "string" === typeof value && value.includes("hsl(")
+ ? value
+ : colord(value).toHslString();
+ break;
+
+ case "HslaColorPicker":
+ convertedValue = colord(value).toHslString();
+
+ // Force to set the alpha value.
+ if (convertedValue.includes("hsl") && !convertedValue.includes("hsla")) {
+ convertedValue = convertedValue.replace("hsl", "hsla");
+ convertedValue = convertedValue.replace(")", ", 1)");
+ }
+
+ break;
+
+ case "HslaStringColorPicker":
+ convertedValue = colord(value).toHslString();
+
+ // Force to set the alpha value.
+ if (convertedValue.includes("hsl") && !convertedValue.includes("hsla")) {
+ convertedValue = convertedValue.replace("hsl", "hsla");
+ convertedValue = convertedValue.replace(")", ", 1)");
+ }
+
+ break;
+
+ /**
+ * The colord library doesn't provide .toHsvString() method yet.
+ * This manual value-building will apply to "hsv" and "hsva" stuff below.
+ */
+ case "HsvColorPicker":
+ hsv = colord(value).toHsv();
+ convertedValue = "hsv(" + hsv.h + ", " + hsv.s + "%, " + hsv.v + "%)";
+ break;
+
+ case "HsvStringColorPicker":
+ hsv = colord(value).toHsv();
+ convertedValue = "hsv(" + hsv.h + ", " + hsv.s + "%, " + hsv.v + "%)";
+ break;
+
+ case "HsvaColorPicker":
+ hsva = colord(value).toHsv();
+ convertedValue =
+ "hsva(" +
+ hsva.h +
+ ", " +
+ hsva.s +
+ "%, " +
+ hsva.v +
+ "%, " +
+ hsva.a +
+ ")";
+ break;
+
+ case "HsvaStringColorPicker":
+ hsva = colord(value).toHsv();
+ convertedValue =
+ "hsva(" +
+ hsva.h +
+ ", " +
+ hsva.s +
+ "%, " +
+ hsva.v +
+ "%, " +
+ hsva.a +
+ ")";
+ break;
+
+ default:
+ convertedValue = colord(value).toHex();
+ break;
+ }
+
+ return convertedValue;
+};
+
+export default convertColorForInput;
diff --git a/functions/kirki/packages/kirki-framework/control-react-colorful/src/js/utils/convertColorForPicker.js b/functions/kirki/packages/kirki-framework/control-react-colorful/src/js/utils/convertColorForPicker.js
new file mode 100644
index 0000000..7eef9f4
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-react-colorful/src/js/utils/convertColorForPicker.js
@@ -0,0 +1,97 @@
+import { colord } from "colord";
+
+/**
+ * Convert the value for the color picker.
+ *
+ * @param {string|Object} value The value to be converted.
+ * @param {string} pickerComponent The picker component name.
+ *
+ * @returns {string|Object} The converted value.
+ */
+const convertColorForPicker = (value, pickerComponent) => {
+ let convertedValue;
+
+ switch (pickerComponent) {
+ case 'HexColorPicker':
+ convertedValue = colord(value).toHex();
+ break;
+
+ case 'RgbColorPicker':
+ convertedValue = colord(value).toRgb();
+ delete convertedValue.a;
+ break;
+
+ case 'RgbStringColorPicker':
+ convertedValue = colord(value).toRgbString();
+ break;
+
+ case 'RgbaColorPicker':
+ convertedValue = colord(value).toRgb();
+ break;
+
+ case 'RgbaStringColorPicker':
+ convertedValue = colord(value).toRgbString();
+
+ // Force to set the alpha channel value.
+ if (convertedValue.includes('rgb') && !convertedValue.includes('rgba')) {
+ convertedValue = convertedValue.replace('rgb', 'rgba');
+ convertedValue = convertedValue.replace(')', ', 1)');
+ }
+
+ break;
+
+ case 'HslColorPicker':
+ convertedValue = colord(value).toHsl();
+ delete convertedValue.a;
+ break;
+
+ case 'HslStringColorPicker':
+ convertedValue = colord(value).toHslString();
+ break;
+
+ case 'HslaColorPicker':
+ convertedValue = colord(value).toHsl();
+ break;
+
+ case 'HslaStringColorPicker':
+ convertedValue = colord(value).toHslString();
+
+ // Force to set the alpha channel value.
+ if (convertedValue.includes('hsl') && !convertedValue.includes('hsla')) {
+ convertedValue = convertedValue.replace('hsl', 'hsla');
+ convertedValue = convertedValue.replace(')', ', 1)');
+ }
+
+ break;
+
+ case 'HsvColorPicker':
+ convertedValue = colord(value).toHsv();
+ delete convertedValue.a;
+ break;
+
+ case 'HsvStringColorPicker':
+ const hsv = colord(value).toHsv();
+ convertedValue = 'hsv(' + hsv.h + ', ' + hsv.s + '%, ' + hsv.v + '%)';
+
+ break;
+
+ case 'HsvaColorPicker':
+ convertedValue = colord(value).toHsv();
+ break;
+
+ case 'HsvaStringColorPicker':
+ // colord library doesn't provide .toHsvString() method yet.
+ const hsva = colord(value).toHsv();
+ convertedValue = 'hsva(' + hsva.h + ', ' + hsva.s + '%, ' + hsva.v + '%, ' + hsva.a + ')';
+
+ break;
+
+ default:
+ convertedValue = colord(value).toHex();
+ break;
+ }
+
+ return convertedValue;
+};
+
+export default convertColorForPicker;
diff --git a/functions/kirki/packages/kirki-framework/control-react-colorful/src/js/utils/util.js b/functions/kirki/packages/kirki-framework/control-react-colorful/src/js/utils/util.js
new file mode 100644
index 0000000..e69de29
diff --git a/functions/kirki/packages/kirki-framework/control-react-select/dist/control.css b/functions/kirki/packages/kirki-framework/control-react-select/dist/control.css
new file mode 100644
index 0000000..5bafed1
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-react-select/dist/control.css
@@ -0,0 +1,3 @@
+.customize-control-kirki-react-select input[autocomplete=off]{box-shadow:none}.kirki-react-select__value-container>div:not(.kirki-react-select__single-value):not(.kirki-react-select__multi-value){padding-top:0;padding-bottom:0}.kirki-react-select__control{padding-top:2px;padding-bottom:2px;min-height:26px}.kirki-react-select__value-container .kirki-react-select__input{min-height:24px;height:24px}.kirki-react-select__value-container .kirki-react-select__input input{min-height:24px;height:24px}.kirki-react-select__single-value{display:flex;align-items:center;width:100%}.kirki-react-select__multi-value{align-items:center;position:relative;height:20px}.kirki-react-select__input{display:inline-flex !important;align-items:center;position:relative;left:2px}.kirki-react-select__input input{box-sizing:border-box !important;height:30px}.kirki-react-select__indicators{height:24px !important}.kirki-react-select__indicator{align-items:center;height:24px}.customize-control-kirki-react-select .kirki-react-select__menu{z-index:3}
+
+/*# sourceMappingURL=control.css.map*/
\ No newline at end of file
diff --git a/functions/kirki/packages/kirki-framework/control-react-select/dist/control.js b/functions/kirki/packages/kirki-framework/control-react-select/dist/control.js
new file mode 100644
index 0000000..55746ea
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-react-select/dist/control.js
@@ -0,0 +1,3 @@
+/*! For license information please see control.js.LICENSE.txt */
+!function(){"use strict";var e={679:function(e,t,n){var r=n(864),o={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},i={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},a={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},s={};function u(e){return r.isMemo(e)?a:s[e.$$typeof]||o}s[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},s[r.Memo]=a;var l=Object.defineProperty,c=Object.getOwnPropertyNames,p=Object.getOwnPropertySymbols,d=Object.getOwnPropertyDescriptor,f=Object.getPrototypeOf,m=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(m){var o=f(n);o&&o!==m&&e(t,o,r)}var a=c(n);p&&(a=a.concat(p(n)));for(var s=u(t),h=u(n),v=0;v0?c(O,--b):0,v--,10===y&&(v=1,h--),y}function x(){return y=b2||I(y)>3?"":" "}function L(e,t){for(;--t&&x()&&!(y<48||y>102||y>57&&y<65||y>70&&y<97););return k(e,P()+(t<6&&32==M()&&32==x()))}function A(e){for(;x();)switch(y){case e:return b;case 34:case 39:34!==e&&39!==e&&A(y);break;case 40:41===e&&A(e);break;case 92:x()}return b}function F(e,t){for(;x()&&e+y!==57&&(e+y!==84||47!==M()););return"/*"+k(t,b-1)+"*"+i(47===e?e:x())}function T(e){for(;!I(M());)x();return k(e,b)}var N="-ms-",H="-moz-",j="-webkit-",$="comm",z="rule",U="decl",B="@keyframes";function W(e,t){for(var n="",r=f(e),o=0;o6)switch(c(e,t+1)){case 109:if(45!==c(e,t+4))break;case 102:return u(e,/(.+:)(.+)-([^]+)/,"$1-webkit-$2-$3$1"+H+(108==c(e,t+3)?"$3":"$2-$3"))+e;case 115:return~l(e,"stretch")?Y(u(e,"stretch","fill-available"),t)+e:e}break;case 4949:if(115!==c(e,t+1))break;case 6444:switch(c(e,d(e)-3-(~l(e,"!important")&&10))){case 107:return u(e,":",":"+j)+e;case 101:return u(e,/(.+:)([^;!]+)(;|!.+)?/,"$1"+j+(45===c(e,14)?"inline-":"")+"box$3$1"+j+"$2$3$1"+N+"$2box$3")+e}break;case 5936:switch(c(e,t+11)){case 114:return j+e+N+u(e,/[svh]\w+-[tblr]{2}/,"tb")+e;case 108:return j+e+N+u(e,/[svh]\w+-[tblr]{2}/,"tb-rl")+e;case 45:return j+e+N+u(e,/[svh]\w+-[tblr]{2}/,"lr")+e}return j+e+N+e+e}return e}function X(e){return V(K("",null,null,null,[""],e=E(e),0,[0],e))}function K(e,t,n,r,o,a,s,c,p){for(var f=0,h=0,v=s,g=0,b=0,y=0,O=1,S=1,w=1,k=0,I="",E=o,V=a,A=r,N=I;S;)switch(y=k,k=x()){case 40:if(108!=y&&58==N.charCodeAt(v-1)){-1!=l(N+=u(R(k),"&","&\f"),"&\f")&&(w=-1);break}case 34:case 39:case 91:N+=R(k);break;case 9:case 10:case 13:case 32:N+=D(y);break;case 92:N+=L(P()-1,7);continue;case 47:switch(M()){case 42:case 47:m(q(F(x(),P()),t,n),p);break;default:N+="/"}break;case 123*O:c[f++]=d(N)*w;case 125*O:case 59:case 0:switch(k){case 0:case 125:S=0;case 59+h:b>0&&d(N)-v&&m(b>32?J(N+";",r,n,v-1):J(u(N," ","")+";",r,n,v-2),p);break;case 59:N+=";";default:if(m(A=Z(N,t,n,f,h,o,c,I,E=[],V=[],v),a),123===k)if(0===h)K(N,t,A,A,E,a,v,c,V);else switch(g){case 100:case 109:case 115:K(e,A,A,r&&m(Z(e,A,A,0,0,o,c,I,o,E=[],v),V),o,V,v,c,r?E:V);break;default:K(N,A,A,A,[""],V,0,c,V)}}f=h=b=0,O=w=1,I=N="",v=s;break;case 58:v=1+d(N),b=y;default:if(O<1)if(123==k)--O;else if(125==k&&0==O++&&125==C())continue;switch(N+=i(k),k*O){case 38:w=h>0?1:(N+="\f",-1);break;case 44:c[f++]=(d(N)-1)*w,w=1;break;case 64:45===M()&&(N+=R(x())),g=M(),h=v=d(I=N+=T(P())),k++;break;case 45:45===y&&2==d(N)&&(O=0)}}return a}function Z(e,t,n,r,i,a,l,c,d,m,h){for(var v=i-1,g=0===i?a:[""],b=f(g),y=0,O=0,w=0;y0?g[C]+" "+x:u(x,/&\f/g,g[C])))&&(d[w++]=M);return S(e,t,n,0===i?z:c,d,m,h)}function q(e,t,n){return S(e,t,n,$,i(y),p(e,2,-2),0)}function J(e,t,n,r){return S(e,t,n,U,p(e,0,r),p(e,r+1,-1),r)}var Q=function(e,t,n){for(var r=0,o=0;r=o,o=M(),38===r&&12===o&&(t[n]=1),!I(o);)x();return k(e,b)},ee=new WeakMap,te=function(e){if("rule"===e.type&&e.parent&&!(e.length<1)){for(var t=e.value,n=e.parent,r=e.column===n.column&&e.line===n.line;"rule"!==n.type;)if(!(n=n.parent))return;if((1!==e.props.length||58===t.charCodeAt(0)||ee.get(n))&&!r){ee.set(e,!0);for(var o=[],a=function(e,t){return V(function(e,t){var n=-1,r=44;do{switch(I(r)){case 0:38===r&&12===M()&&(t[n]=1),e[n]+=Q(b-1,t,n);break;case 2:e[n]+=R(r);break;case 4:if(44===r){e[++n]=58===M()?"&\f":"",t[n]=e[n].length;break}default:e[n]+=i(r)}}while(r=x());return e}(E(e),t))}(t,o),s=n.props,u=0,l=0;u-1&&!e.return)switch(e.type){case U:e.return=Y(e.value,e.length);break;case B:return W([w(e,{value:u(e.value,"@","@"+j)})],r);case z:if(e.length)return function(e,t){return e.map(t).join("")}(e.props,(function(t){switch(function(e,t){return(e=/(::plac\w+|:read-\w+)/.exec(e))?e[0]:e}(t)){case":read-only":case":read-write":return W([w(e,{props:[u(t,/:(read-\w+)/,":-moz-$1")]})],r);case"::placeholder":return W([w(e,{props:[u(t,/:(plac\w+)/,":-webkit-input-$1")]}),w(e,{props:[u(t,/:(plac\w+)/,":-moz-$1")]}),w(e,{props:[u(t,/:(plac\w+)/,N+"input-$1")]})],r)}return""}))}}],oe=function(e){var t=e.key;if("css"===t){var n=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(n,(function(e){-1!==e.getAttribute("data-emotion").indexOf(" ")&&(document.head.appendChild(e),e.setAttribute("data-s",""))}))}var o,i,a=e.stylisPlugins||re,s={},u=[];o=e.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+t+' "]'),(function(e){for(var t=e.getAttribute("data-emotion").split(" "),n=1;n=4;++r,o-=4)t=1540483477*(65535&(t=255&e.charCodeAt(r)|(255&e.charCodeAt(++r))<<8|(255&e.charCodeAt(++r))<<16|(255&e.charCodeAt(++r))<<24))+(59797*(t>>>16)<<16),n=1540483477*(65535&(t^=t>>>24))+(59797*(t>>>16)<<16)^1540483477*(65535&n)+(59797*(n>>>16)<<16);switch(o){case 3:n^=(255&e.charCodeAt(r+2))<<16;case 2:n^=(255&e.charCodeAt(r+1))<<8;case 1:n=1540483477*(65535&(n^=255&e.charCodeAt(r)))+(59797*(n>>>16)<<16)}return(((n=1540483477*(65535&(n^=n>>>13))+(59797*(n>>>16)<<16))^n>>>15)>>>0).toString(36)},ue={animationIterationCount:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},le=/[A-Z]|^ms/g,ce=/_EMO_([^_]+?)_([^]*?)_EMO_/g,pe=function(e){return 45===e.charCodeAt(1)},de=function(e){return null!=e&&"boolean"!=typeof e},fe=function(e){var t=Object.create(null);return function(e){return void 0===t[e]&&(t[e]=pe(n=e)?n:n.replace(le,"-$&").toLowerCase()),t[e];var n}}(),me=function(e,t){switch(e){case"animation":case"animationName":if("string"==typeof t)return t.replace(ce,(function(e,t,n){return ve={name:t,styles:n,next:ve},t}))}return 1===ue[e]||pe(e)||"number"!=typeof t||0===t?t:t+"px"};function he(e,t,n){if(null==n)return"";if(void 0!==n.__emotion_styles)return n;switch(typeof n){case"boolean":return"";case"object":if(1===n.anim)return ve={name:n.name,styles:n.styles,next:ve},n.name;if(void 0!==n.styles){var r=n.next;if(void 0!==r)for(;void 0!==r;)ve={name:r.name,styles:r.styles,next:ve},r=r.next;return n.styles+";"}return function(e,t,n){var r="";if(Array.isArray(n))for(var o=0;o=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function Ae(e){return Ae="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ae(e)}function Fe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Te(e,t){for(var n=0;n-1}function tt(e){return et(e)?window.pageYOffset:e.scrollTop}function nt(e,t){et(e)?window.scrollTo(0,t):e.scrollTop=t}function rt(e,t,n,r){return n*((e=e/r-1)*e*e+1)+t}function ot(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:200,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:Ke,o=tt(e),i=t-o,a=10,s=0;function u(){var t=rt(s+=a,o,i,n);nt(e,t),s=f)return{placement:"bottom",maxHeight:t};if(C>=f&&!a)return i&&ot(u,x,P),{placement:"bottom",maxHeight:t};if(!a&&C>=r||a&&S>=r)return i&&ot(u,x,P),{placement:"bottom",maxHeight:a?S-b:C-b};if("auto"===o||a){var k=t,I=a?O:w;return I>=r&&(k=Math.min(I-b-s.controlHeight,t)),{placement:"top",maxHeight:k}}if("bottom"===o)return i&&nt(u,x),{placement:"bottom",maxHeight:t};break;case"top":if(O>=f)return{placement:"top",maxHeight:t};if(w>=f&&!a)return i&&ot(u,M,P),{placement:"top",maxHeight:t};if(!a&&w>=r||a&&O>=r){var E=t;return(!a&&w>=r||a&&O>=r)&&(E=a?O-y:w-y),i&&ot(u,M,P),{placement:"top",maxHeight:E}}return{placement:"bottom",maxHeight:t};default:throw new Error('Invalid placement provided "'.concat(o,'".'))}return l}var ft=function(e){return"auto"===e?"bottom":e},mt=(0,t.createContext)({getPortalPlacement:null}),ht=function(e){je(n,e);var t=Ye(n);function n(){var e;Fe(this,n);for(var r=arguments.length,o=new Array(r),i=0;ie.length)&&(t=e.length);for(var n=0,r=new Array(t);n1?"s":""," ").concat(o.join(","),", selected.");case"select-option":return"option ".concat(r,i?" is disabled. Select another option.":", selected.");default:return""}},onFocus:function(e){var t=e.context,n=e.focused,r=e.options,o=e.label,i=void 0===o?"":o,a=e.selectValue,s=e.isDisabled,u=e.isSelected,l=function(e,t){return e&&e.length?"".concat(e.indexOf(t)+1," of ").concat(e.length):""};if("value"===t&&a)return"value ".concat(i," focused, ").concat(l(a,n),".");if("menu"===t){var c=s?" disabled":"",p="".concat(u?"selected":"focused").concat(c);return"option ".concat(i," ").concat(p,", ").concat(l(r,n),".")}return""},onFilter:function(e){var t=e.inputValue,n=e.resultsMessage;return"".concat(n).concat(t?" for search term "+t:"",".")}},Qt=function(e){var n=e.ariaSelection,r=e.focusedOption,o=e.focusedValue,i=e.focusableOptions,a=e.isFocused,s=e.selectValue,u=e.selectProps,l=e.id,c=u.ariaLiveMessages,p=u.getOptionLabel,d=u.inputValue,f=u.isMulti,m=u.isOptionDisabled,h=u.isSearchable,v=u.menuIsOpen,g=u.options,b=u.screenReaderStatus,y=u.tabSelectsValue,O=u["aria-label"],S=u["aria-live"],w=(0,t.useMemo)((function(){return Be(Be({},Jt),c||{})}),[c]),C=(0,t.useMemo)((function(){var e,t="";if(n&&w.onChange){var r=n.option,o=n.options,i=n.removedValue,a=n.removedValues,u=n.value,l=i||r||(e=u,Array.isArray(e)?null:e),c=l?p(l):"",d=o||a||void 0,f=d?d.map(p):[],h=Be({isDisabled:l&&m(l,s),label:c,labels:f},n);t=w.onChange(h)}return t}),[n,w,m,s,p]),x=(0,t.useMemo)((function(){var e="",t=r||o,n=!!(r&&s&&s.includes(r));if(t&&w.onFocus){var i={focused:t,label:p(t),isDisabled:m(t,s),isSelected:n,options:g,context:t===r?"menu":"value",selectValue:s};e=w.onFocus(i)}return e}),[r,o,p,m,w,g,s]),M=(0,t.useMemo)((function(){var e="";if(v&&g.length&&w.onFilter){var t=b({count:i.length});e=w.onFilter({inputValue:d,resultsMessage:t})}return e}),[i,d,v,w,g,b]),P=(0,t.useMemo)((function(){var e="";if(w.guidance){var t=o?"value":v?"menu":"input";e=w.guidance({"aria-label":O,context:t,isDisabled:r&&m(r,s),isMulti:f,isSearchable:h,tabSelectsValue:y})}return e}),[O,r,o,f,m,h,v,w,s,y]),k="".concat(x," ").concat(M," ").concat(P),I=ke(t.Fragment,null,ke("span",{id:"aria-selection"},C),ke("span",{id:"aria-context"},k)),E="initial-input-focus"===(null==n?void 0:n.action);return ke(t.Fragment,null,ke(qt,{id:l},E&&I),ke(qt,{"aria-live":S,"aria-atomic":"false","aria-relevant":"additions text"},a&&!E&&I))},en=[{base:"A",letters:"AⒶAÀÁÂẦẤẪẨÃĀĂẰẮẴẲȦǠÄǞẢÅǺǍȀȂẠẬẶḀĄȺⱯ"},{base:"AA",letters:"Ꜳ"},{base:"AE",letters:"ÆǼǢ"},{base:"AO",letters:"Ꜵ"},{base:"AU",letters:"Ꜷ"},{base:"AV",letters:"ꜸꜺ"},{base:"AY",letters:"Ꜽ"},{base:"B",letters:"BⒷBḂḄḆɃƂƁ"},{base:"C",letters:"CⒸCĆĈĊČÇḈƇȻꜾ"},{base:"D",letters:"DⒹDḊĎḌḐḒḎĐƋƊƉꝹ"},{base:"DZ",letters:"DZDŽ"},{base:"Dz",letters:"DzDž"},{base:"E",letters:"EⒺEÈÉÊỀẾỄỂẼĒḔḖĔĖËẺĚȄȆẸỆȨḜĘḘḚƐƎ"},{base:"F",letters:"FⒻFḞƑꝻ"},{base:"G",letters:"GⒼGǴĜḠĞĠǦĢǤƓꞠꝽꝾ"},{base:"H",letters:"HⒽHĤḢḦȞḤḨḪĦⱧⱵꞍ"},{base:"I",letters:"IⒾIÌÍÎĨĪĬİÏḮỈǏȈȊỊĮḬƗ"},{base:"J",letters:"JⒿJĴɈ"},{base:"K",letters:"KⓀKḰǨḲĶḴƘⱩꝀꝂꝄꞢ"},{base:"L",letters:"LⓁLĿĹĽḶḸĻḼḺŁȽⱢⱠꝈꝆꞀ"},{base:"LJ",letters:"LJ"},{base:"Lj",letters:"Lj"},{base:"M",letters:"MⓂMḾṀṂⱮƜ"},{base:"N",letters:"NⓃNǸŃÑṄŇṆŅṊṈȠƝꞐꞤ"},{base:"NJ",letters:"NJ"},{base:"Nj",letters:"Nj"},{base:"O",letters:"OⓄOÒÓÔỒỐỖỔÕṌȬṎŌṐṒŎȮȰÖȪỎŐǑȌȎƠỜỚỠỞỢỌỘǪǬØǾƆƟꝊꝌ"},{base:"OI",letters:"Ƣ"},{base:"OO",letters:"Ꝏ"},{base:"OU",letters:"Ȣ"},{base:"P",letters:"PⓅPṔṖƤⱣꝐꝒꝔ"},{base:"Q",letters:"QⓆQꝖꝘɊ"},{base:"R",letters:"RⓇRŔṘŘȐȒṚṜŖṞɌⱤꝚꞦꞂ"},{base:"S",letters:"SⓈSẞŚṤŜṠŠṦṢṨȘŞⱾꞨꞄ"},{base:"T",letters:"TⓉTṪŤṬȚŢṰṮŦƬƮȾꞆ"},{base:"TZ",letters:"Ꜩ"},{base:"U",letters:"UⓊUÙÚÛŨṸŪṺŬÜǛǗǕǙỦŮŰǓȔȖƯỪỨỮỬỰỤṲŲṶṴɄ"},{base:"V",letters:"VⓋVṼṾƲꝞɅ"},{base:"VY",letters:"Ꝡ"},{base:"W",letters:"WⓌWẀẂŴẆẄẈⱲ"},{base:"X",letters:"XⓍXẊẌ"},{base:"Y",letters:"YⓎYỲÝŶỸȲẎŸỶỴƳɎỾ"},{base:"Z",letters:"ZⓏZŹẐŻŽẒẔƵȤⱿⱫꝢ"},{base:"a",letters:"aⓐaẚàáâầấẫẩãāăằắẵẳȧǡäǟảåǻǎȁȃạậặḁąⱥɐ"},{base:"aa",letters:"ꜳ"},{base:"ae",letters:"æǽǣ"},{base:"ao",letters:"ꜵ"},{base:"au",letters:"ꜷ"},{base:"av",letters:"ꜹꜻ"},{base:"ay",letters:"ꜽ"},{base:"b",letters:"bⓑbḃḅḇƀƃɓ"},{base:"c",letters:"cⓒcćĉċčçḉƈȼꜿↄ"},{base:"d",letters:"dⓓdḋďḍḑḓḏđƌɖɗꝺ"},{base:"dz",letters:"dzdž"},{base:"e",letters:"eⓔeèéêềếễểẽēḕḗĕėëẻěȅȇẹệȩḝęḙḛɇɛǝ"},{base:"f",letters:"fⓕfḟƒꝼ"},{base:"g",letters:"gⓖgǵĝḡğġǧģǥɠꞡᵹꝿ"},{base:"h",letters:"hⓗhĥḣḧȟḥḩḫẖħⱨⱶɥ"},{base:"hv",letters:"ƕ"},{base:"i",letters:"iⓘiìíîĩīĭïḯỉǐȉȋịįḭɨı"},{base:"j",letters:"jⓙjĵǰɉ"},{base:"k",letters:"kⓚkḱǩḳķḵƙⱪꝁꝃꝅꞣ"},{base:"l",letters:"lⓛlŀĺľḷḹļḽḻſłƚɫⱡꝉꞁꝇ"},{base:"lj",letters:"lj"},{base:"m",letters:"mⓜmḿṁṃɱɯ"},{base:"n",letters:"nⓝnǹńñṅňṇņṋṉƞɲʼnꞑꞥ"},{base:"nj",letters:"nj"},{base:"o",letters:"oⓞoòóôồốỗổõṍȭṏōṑṓŏȯȱöȫỏőǒȍȏơờớỡởợọộǫǭøǿɔꝋꝍɵ"},{base:"oi",letters:"ƣ"},{base:"ou",letters:"ȣ"},{base:"oo",letters:"ꝏ"},{base:"p",letters:"pⓟpṕṗƥᵽꝑꝓꝕ"},{base:"q",letters:"qⓠqɋꝗꝙ"},{base:"r",letters:"rⓡrŕṙřȑȓṛṝŗṟɍɽꝛꞧꞃ"},{base:"s",letters:"sⓢsßśṥŝṡšṧṣṩșşȿꞩꞅẛ"},{base:"t",letters:"tⓣtṫẗťṭțţṱṯŧƭʈⱦꞇ"},{base:"tz",letters:"ꜩ"},{base:"u",letters:"uⓤuùúûũṹūṻŭüǜǘǖǚủůűǔȕȗưừứữửựụṳųṷṵʉ"},{base:"v",letters:"vⓥvṽṿʋꝟʌ"},{base:"vy",letters:"ꝡ"},{base:"w",letters:"wⓦwẁẃŵẇẅẘẉⱳ"},{base:"x",letters:"xⓧxẋẍ"},{base:"y",letters:"yⓨyỳýŷỹȳẏÿỷẙỵƴɏỿ"},{base:"z",letters:"zⓩzźẑżžẓẕƶȥɀⱬꝣ"}],tn=new RegExp("["+en.map((function(e){return e.letters})).join("")+"]","g"),nn={},rn=0;rn0,h=p-d-l,v=!1;h>t&&s.current&&(o&&o(e),s.current=!1),m&&u.current&&(a&&a(e),u.current=!1),m&&t>h?(r&&!s.current&&r(e),f.scrollTop=p,v=!0,s.current=!0):!m&&-t>l&&(i&&!u.current&&i(e),f.scrollTop=0,v=!0,u.current=!0),v&&function(e){e.preventDefault(),e.stopPropagation()}(e)}}),[r,o,i,a]),d=(0,t.useCallback)((function(e){p(e,e.deltaY)}),[p]),f=(0,t.useCallback)((function(e){l.current=e.changedTouches[0].clientY}),[]),m=(0,t.useCallback)((function(e){var t=l.current-e.changedTouches[0].clientY;p(e,t)}),[p]),h=(0,t.useCallback)((function(e){if(e){var t=!!lt&&{passive:!1};e.addEventListener("wheel",d,t),e.addEventListener("touchstart",f,t),e.addEventListener("touchmove",m,t)}}),[m,f,d]),v=(0,t.useCallback)((function(e){e&&(e.removeEventListener("wheel",d,!1),e.removeEventListener("touchstart",f,!1),e.removeEventListener("touchmove",m,!1))}),[m,f,d]);return(0,t.useEffect)((function(){if(n){var e=c.current;return h(e),function(){v(e)}}}),[n,h,v]),function(e){c.current=e}}({isEnabled:void 0===o||o,onBottomArrive:e.onBottomArrive,onBottomLeave:e.onBottomLeave,onTopArrive:e.onTopArrive,onTopLeave:e.onTopLeave}),a=function(e){var n=e.isEnabled,r=e.accountForScrollbars,o=void 0===r||r,i=(0,t.useRef)({}),a=(0,t.useRef)(null),s=(0,t.useCallback)((function(e){if(yn){var t=document.body,n=t&&t.style;if(o&&fn.forEach((function(e){var t=n&&n[e];i.current[e]=t})),o&&On<1){var r=parseInt(i.current.paddingRight,10)||0,a=document.body?document.body.clientWidth:0,s=window.innerWidth-a+r||0;Object.keys(mn).forEach((function(e){var t=mn[e];n&&(n[e]=t)})),n&&(n.paddingRight="".concat(s,"px"))}t&&bn()&&(t.addEventListener("touchmove",hn,Sn),e&&(e.addEventListener("touchstart",gn,Sn),e.addEventListener("touchmove",vn,Sn))),On+=1}}),[o]),u=(0,t.useCallback)((function(e){if(yn){var t=document.body,n=t&&t.style;On=Math.max(On-1,0),o&&On<1&&fn.forEach((function(e){var t=i.current[e];n&&(n[e]=t)})),t&&bn()&&(t.removeEventListener("touchmove",hn,Sn),e&&(e.removeEventListener("touchstart",gn,Sn),e.removeEventListener("touchmove",vn,Sn)))}}),[o]);return(0,t.useEffect)((function(){if(n){var e=a.current;return s(e),function(){u(e)}}}),[n,s,u]),function(e){a.current=e}}({isEnabled:r});return ke(t.Fragment,null,r&&ke("div",{onClick:wn,css:Cn}),n((function(e){i(e),a(e)})))}var Mn={clearIndicator:Dt,container:function(e){var t=e.isDisabled;return{label:"container",direction:e.isRtl?"rtl":void 0,pointerEvents:t?"none":void 0,position:"relative"}},control:function(e){var t=e.isDisabled,n=e.isFocused,r=e.theme,o=r.colors,i=r.borderRadius,a=r.spacing;return{label:"control",alignItems:"center",backgroundColor:t?o.neutral5:o.neutral0,borderColor:t?o.neutral10:n?o.primary:o.neutral20,borderRadius:i,borderStyle:"solid",borderWidth:1,boxShadow:n?"0 0 0 1px ".concat(o.primary):void 0,cursor:"default",display:"flex",flexWrap:"wrap",justifyContent:"space-between",minHeight:a.controlHeight,outline:"0 !important",position:"relative",transition:"all 100ms","&:hover":{borderColor:n?o.primary:o.neutral30}}},dropdownIndicator:Rt,group:function(e){var t=e.theme.spacing;return{paddingBottom:2*t.baseUnit,paddingTop:2*t.baseUnit}},groupHeading:function(e){var t=e.theme.spacing;return{label:"group",color:"#999",cursor:"default",display:"block",fontSize:"75%",fontWeight:500,marginBottom:"0.25em",paddingLeft:3*t.baseUnit,paddingRight:3*t.baseUnit,textTransform:"uppercase"}},indicatorsContainer:function(){return{alignItems:"center",alignSelf:"stretch",display:"flex",flexShrink:0}},indicatorSeparator:function(e){var t=e.isDisabled,n=e.theme,r=n.spacing.baseUnit,o=n.colors;return{label:"indicatorSeparator",alignSelf:"stretch",backgroundColor:t?o.neutral10:o.neutral20,marginBottom:2*r,marginTop:2*r,width:1}},input:function(e){var t=e.isDisabled,n=e.value,r=e.theme,o=r.spacing,i=r.colors;return Be({margin:o.baseUnit/2,paddingBottom:o.baseUnit/2,paddingTop:o.baseUnit/2,visibility:t?"hidden":"visible",color:i.neutral80,transform:n?"translateZ(0)":""},jt)},loadingIndicator:function(e){var t=e.isFocused,n=e.size,r=e.theme,o=r.colors,i=r.spacing.baseUnit;return{label:"loadingIndicator",color:t?o.neutral60:o.neutral20,display:"flex",padding:2*i,transition:"color 150ms",alignSelf:"center",fontSize:n,lineHeight:1,marginRight:n,textAlign:"center",verticalAlign:"middle"}},loadingMessage:bt,menu:function(e){var t,n=e.placement,r=e.theme,o=r.borderRadius,i=r.spacing,a=r.colors;return $e(t={label:"menu"},function(e){return e?{bottom:"top",top:"bottom"}[e]:"bottom"}(n),"100%"),$e(t,"backgroundColor",a.neutral0),$e(t,"borderRadius",o),$e(t,"boxShadow","0 0 0 1px hsla(0, 0%, 0%, 0.1), 0 4px 11px hsla(0, 0%, 0%, 0.1)"),$e(t,"marginBottom",i.menuGutter),$e(t,"marginTop",i.menuGutter),$e(t,"position","absolute"),$e(t,"width","100%"),$e(t,"zIndex",1),t},menuList:function(e){var t=e.maxHeight,n=e.theme.spacing.baseUnit;return{maxHeight:t,overflowY:"auto",paddingBottom:n,paddingTop:n,position:"relative",WebkitOverflowScrolling:"touch"}},menuPortal:function(e){var t=e.rect,n=e.offset,r=e.position;return{left:t.left,position:r,top:n,width:t.width,zIndex:1}},multiValue:function(e){var t=e.theme,n=t.spacing,r=t.borderRadius;return{label:"multiValue",backgroundColor:t.colors.neutral10,borderRadius:r/2,display:"flex",margin:n.baseUnit/2,minWidth:0}},multiValueLabel:function(e){var t=e.theme,n=t.borderRadius,r=t.colors,o=e.cropWithEllipsis;return{borderRadius:n/2,color:r.neutral80,fontSize:"85%",overflow:"hidden",padding:3,paddingLeft:6,textOverflow:o||void 0===o?"ellipsis":void 0,whiteSpace:"nowrap"}},multiValueRemove:function(e){var t=e.theme,n=t.spacing,r=t.borderRadius,o=t.colors;return{alignItems:"center",borderRadius:r/2,backgroundColor:e.isFocused?o.dangerLight:void 0,display:"flex",paddingLeft:n.baseUnit,paddingRight:n.baseUnit,":hover":{backgroundColor:o.dangerLight,color:o.danger}}},noOptionsMessage:gt,option:function(e){var t=e.isDisabled,n=e.isFocused,r=e.isSelected,o=e.theme,i=o.spacing,a=o.colors;return{label:"option",backgroundColor:r?a.primary:n?a.primary25:"transparent",color:t?a.neutral20:r?a.neutral0:"inherit",cursor:"default",display:"block",fontSize:"inherit",padding:"".concat(2*i.baseUnit,"px ").concat(3*i.baseUnit,"px"),width:"100%",userSelect:"none",WebkitTapHighlightColor:"rgba(0, 0, 0, 0)",":active":{backgroundColor:t?void 0:r?a.primary:a.primary50}}},placeholder:function(e){var t=e.theme,n=t.spacing;return{label:"placeholder",color:t.colors.neutral50,gridArea:"1 / 1 / 2 / 3",marginLeft:n.baseUnit/2,marginRight:n.baseUnit/2}},singleValue:function(e){var t=e.isDisabled,n=e.theme,r=n.spacing,o=n.colors;return{label:"singleValue",color:t?o.neutral40:o.neutral80,gridArea:"1 / 1 / 2 / 3",marginLeft:r.baseUnit/2,marginRight:r.baseUnit/2,maxWidth:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},valueContainer:function(e){var t=e.theme.spacing,n=e.isMulti,r=e.hasValue,o=e.selectProps.controlShouldRenderValue;return{alignItems:"center",display:n&&r&&o?"flex":"grid",flex:1,flexWrap:"wrap",padding:"".concat(t.baseUnit/2,"px ").concat(2*t.baseUnit,"px"),WebkitOverflowScrolling:"touch",position:"relative",overflow:"hidden"}}},Pn={borderRadius:4,colors:{primary:"#2684FF",primary75:"#4C9AFF",primary50:"#B2D4FF",primary25:"#DEEBFF",danger:"#DE350B",dangerLight:"#FFBDAD",neutral0:"hsl(0, 0%, 100%)",neutral5:"hsl(0, 0%, 95%)",neutral10:"hsl(0, 0%, 90%)",neutral20:"hsl(0, 0%, 80%)",neutral30:"hsl(0, 0%, 70%)",neutral40:"hsl(0, 0%, 60%)",neutral50:"hsl(0, 0%, 50%)",neutral60:"hsl(0, 0%, 40%)",neutral70:"hsl(0, 0%, 30%)",neutral80:"hsl(0, 0%, 20%)",neutral90:"hsl(0, 0%, 10%)"},spacing:{baseUnit:4,controlHeight:38,menuGutter:8}},kn={"aria-live":"polite",backspaceRemovesValue:!0,blurInputOnSelect:it(),captureMenuScroll:!it(),closeMenuOnSelect:!0,closeMenuOnScroll:!1,components:{},controlShouldRenderValue:!0,escapeClearsValue:!1,filterOption:function(e,t){if(e.data.__isNew__)return!0;var n=Be({ignoreCase:!0,ignoreAccents:!0,stringify:cn,trim:!0,matchFrom:"any"},undefined),r=n.ignoreCase,o=n.ignoreAccents,i=n.stringify,a=n.trim,s=n.matchFrom,u=a?ln(t):t,l=a?ln(i(e)):i(e);return r&&(u=u.toLowerCase(),l=l.toLowerCase()),o&&(u=un(u),l=sn(l)),"start"===s?l.substr(0,u.length)===u:l.indexOf(u)>-1},formatGroupLabel:function(e){return e.label},getOptionLabel:function(e){return e.label},getOptionValue:function(e){return e.value},isDisabled:!1,isLoading:!1,isMulti:!1,isRtl:!1,isSearchable:!0,isOptionDisabled:function(e){return!!e.isDisabled},loadingMessage:function(){return"Loading..."},maxMenuHeight:300,minMenuHeight:140,menuIsOpen:!1,menuPlacement:"bottom",menuPosition:"absolute",menuShouldBlockScroll:!1,menuShouldScrollIntoView:!function(){try{return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)}catch(e){return!1}}(),noOptionsMessage:function(){return"No options"},openMenuOnFocus:!1,openMenuOnClick:!0,options:[],pageSize:5,placeholder:"Select...",screenReaderStatus:function(e){var t=e.count;return"".concat(t," result").concat(1!==t?"s":""," available")},styles:{},tabIndex:0,tabSelectsValue:!0};function In(e,t,n,r){return{type:"option",data:t,isDisabled:An(e,t,n),isSelected:Fn(e,t,n),label:Dn(e,t),value:Ln(e,t),index:r}}function En(e,t){return e.options.map((function(n,r){if("options"in n){var o=n.options.map((function(n,r){return In(e,n,t,r)})).filter((function(t){return Rn(e,t)}));return o.length>0?{type:"group",data:n,options:o,index:r}:void 0}var i=In(e,n,t,r);return Rn(e,i)?i:void 0})).filter(ct)}function Vn(e){return e.reduce((function(e,t){return"group"===t.type?e.push.apply(e,Yt(t.options.map((function(e){return e.data})))):e.push(t.data),e}),[])}function Rn(e,t){var n=e.inputValue,r=void 0===n?"":n,o=t.data,i=t.isSelected,a=t.label,s=t.value;return(!Nn(e)||!i)&&Tn(e,{label:a,value:s,data:o},r)}var Dn=function(e,t){return e.getOptionLabel(t)},Ln=function(e,t){return e.getOptionValue(t)};function An(e,t,n){return"function"==typeof e.isOptionDisabled&&e.isOptionDisabled(t,n)}function Fn(e,t,n){if(n.indexOf(t)>-1)return!0;if("function"==typeof e.isOptionSelected)return e.isOptionSelected(t,n);var r=Ln(e,t);return n.some((function(t){return Ln(e,t)===r}))}function Tn(e,t,n){return!e.filterOption||e.filterOption(t,n)}var Nn=function(e){var t=e.hideSelectedOptions,n=e.isMulti;return void 0===t?n:t},Hn=1,jn=function(n){je(o,n);var r=Ye(o);function o(e){var t;return Fe(this,o),(t=r.call(this,e)).state={ariaSelection:null,focusedOption:null,focusedValue:null,inputIsHidden:!1,isFocused:!1,selectValue:[],clearFocusValueOnUpdate:!1,prevWasFocused:!1,inputIsHiddenAfterUpdate:void 0,prevProps:void 0},t.blockOptionHover=!1,t.isComposing=!1,t.commonProps=void 0,t.initialTouchX=0,t.initialTouchY=0,t.instancePrefix="",t.openAfterFocus=!1,t.scrollToFocusedOptionOnUpdate=!1,t.userIsDragging=void 0,t.controlRef=null,t.getControlRef=function(e){t.controlRef=e},t.focusedOptionRef=null,t.getFocusedOptionRef=function(e){t.focusedOptionRef=e},t.menuListRef=null,t.getMenuListRef=function(e){t.menuListRef=e},t.inputRef=null,t.getInputRef=function(e){t.inputRef=e},t.focus=t.focusInput,t.blur=t.blurInput,t.onChange=function(e,n){var r=t.props,o=r.onChange,i=r.name;n.name=i,t.ariaOnChange(e,n),o(e,n)},t.setValue=function(e,n,r){var o=t.props,i=o.closeMenuOnSelect,a=o.isMulti,s=o.inputValue;t.onInputChange("",{action:"set-value",prevInputValue:s}),i&&(t.setState({inputIsHiddenAfterUpdate:!a}),t.onMenuClose()),t.setState({clearFocusValueOnUpdate:!0}),t.onChange(e,{action:n,option:r})},t.selectOption=function(e){var n=t.props,r=n.blurInputOnSelect,o=n.isMulti,i=n.name,a=t.state.selectValue,s=o&&t.isOptionSelected(e,a),u=t.isOptionDisabled(e,a);if(s){var l=t.getOptionValue(e);t.setValue(a.filter((function(e){return t.getOptionValue(e)!==l})),"deselect-option",e)}else{if(u)return void t.ariaOnChange(e,{action:"select-option",option:e,name:i});o?t.setValue([].concat(Yt(a),[e]),"select-option",e):t.setValue(e,"select-option")}r&&t.blurInput()},t.removeValue=function(e){var n=t.props.isMulti,r=t.state.selectValue,o=t.getOptionValue(e),i=r.filter((function(e){return t.getOptionValue(e)!==o})),a=pt(n,i,i[0]||null);t.onChange(a,{action:"remove-value",removedValue:e}),t.focusInput()},t.clearValue=function(){var e=t.state.selectValue;t.onChange(pt(t.props.isMulti,[],null),{action:"clear",removedValues:e})},t.popValue=function(){var e=t.props.isMulti,n=t.state.selectValue,r=n[n.length-1],o=n.slice(0,n.length-1),i=pt(e,o,o[0]||null);t.onChange(i,{action:"pop-value",removedValue:r})},t.getValue=function(){return t.state.selectValue},t.cx=function(){for(var e=arguments.length,n=new Array(e),r=0;r5||i>5}},t.onTouchEnd=function(e){t.userIsDragging||(t.controlRef&&!t.controlRef.contains(e.target)&&t.menuListRef&&!t.menuListRef.contains(e.target)&&t.blurInput(),t.initialTouchX=0,t.initialTouchY=0)},t.onControlTouchEnd=function(e){t.userIsDragging||t.onControlMouseDown(e)},t.onClearIndicatorTouchEnd=function(e){t.userIsDragging||t.onClearIndicatorMouseDown(e)},t.onDropdownIndicatorTouchEnd=function(e){t.userIsDragging||t.onDropdownIndicatorMouseDown(e)},t.handleInputChange=function(e){var n=t.props.inputValue,r=e.currentTarget.value;t.setState({inputIsHiddenAfterUpdate:!1}),t.onInputChange(r,{action:"input-change",prevInputValue:n}),t.props.menuIsOpen||t.onMenuOpen()},t.onInputFocus=function(e){t.props.onFocus&&t.props.onFocus(e),t.setState({inputIsHiddenAfterUpdate:!1,isFocused:!0}),(t.openAfterFocus||t.props.openMenuOnFocus)&&t.openMenu("first"),t.openAfterFocus=!1},t.onInputBlur=function(e){var n=t.props.inputValue;t.menuListRef&&t.menuListRef.contains(document.activeElement)?t.inputRef.focus():(t.props.onBlur&&t.props.onBlur(e),t.onInputChange("",{action:"input-blur",prevInputValue:n}),t.onMenuClose(),t.setState({focusedValue:null,isFocused:!1}))},t.onOptionHover=function(e){t.blockOptionHover||t.state.focusedOption===e||t.setState({focusedOption:e})},t.shouldHideSelectedOptions=function(){return Nn(t.props)},t.onKeyDown=function(e){var n=t.props,r=n.isMulti,o=n.backspaceRemovesValue,i=n.escapeClearsValue,a=n.inputValue,s=n.isClearable,u=n.isDisabled,l=n.menuIsOpen,c=n.onKeyDown,p=n.tabSelectsValue,d=n.openMenuOnFocus,f=t.state,m=f.focusedOption,h=f.focusedValue,v=f.selectValue;if(!(u||"function"==typeof c&&(c(e),e.defaultPrevented))){switch(t.blockOptionHover=!0,e.key){case"ArrowLeft":if(!r||a)return;t.focusValue("previous");break;case"ArrowRight":if(!r||a)return;t.focusValue("next");break;case"Delete":case"Backspace":if(a)return;if(h)t.removeValue(h);else{if(!o)return;r?t.popValue():s&&t.clearValue()}break;case"Tab":if(t.isComposing)return;if(e.shiftKey||!l||!p||!m||d&&t.isOptionSelected(m,v))return;t.selectOption(m);break;case"Enter":if(229===e.keyCode)break;if(l){if(!m)return;if(t.isComposing)return;t.selectOption(m);break}return;case"Escape":l?(t.setState({inputIsHiddenAfterUpdate:!1}),t.onInputChange("",{action:"menu-close",prevInputValue:a}),t.onMenuClose()):s&&i&&t.clearValue();break;case" ":if(a)return;if(!l){t.openMenu("first");break}if(!m)return;t.selectOption(m);break;case"ArrowUp":l?t.focusOption("up"):t.openMenu("last");break;case"ArrowDown":l?t.focusOption("down"):t.openMenu("first");break;case"PageUp":if(!l)return;t.focusOption("pageup");break;case"PageDown":if(!l)return;t.focusOption("pagedown");break;case"Home":if(!l)return;t.focusOption("first");break;case"End":if(!l)return;t.focusOption("last");break;default:return}e.preventDefault()}},t.instancePrefix="react-select-"+(t.props.instanceId||++Hn),t.state.selectValue=Je(e.value),t}return Ne(o,[{key:"componentDidMount",value:function(){this.startListeningComposition(),this.startListeningToTouch(),this.props.closeMenuOnScroll&&document&&document.addEventListener&&document.addEventListener("scroll",this.onScroll,!0),this.props.autoFocus&&this.focusInput()}},{key:"componentDidUpdate",value:function(e){var t,n,r,o,i,a=this.props,s=a.isDisabled,u=a.menuIsOpen,l=this.state.isFocused;(l&&!s&&e.isDisabled||l&&u&&!e.menuIsOpen)&&this.focusInput(),l&&s&&!e.isDisabled&&this.setState({isFocused:!1},this.onMenuClose),this.menuListRef&&this.focusedOptionRef&&this.scrollToFocusedOptionOnUpdate&&(t=this.menuListRef,n=this.focusedOptionRef,r=t.getBoundingClientRect(),o=n.getBoundingClientRect(),i=n.offsetHeight/3,o.bottom+i>r.bottom?nt(t,Math.min(n.offsetTop+n.clientHeight-t.offsetHeight+i,t.scrollHeight)):o.top-i-1&&(a=s)}this.scrollToFocusedOptionOnUpdate=!(o&&this.menuListRef),this.setState({inputIsHiddenAfterUpdate:!1,focusedValue:null,focusedOption:i[a]},(function(){return t.onMenuOpen()}))}},{key:"focusValue",value:function(e){var t=this.state,n=t.selectValue,r=t.focusedValue;if(this.props.isMulti){this.setState({focusedOption:null});var o=n.indexOf(r);r||(o=-1);var i=n.length-1,a=-1;if(n.length){switch(e){case"previous":a=0===o?0:-1===o?i:o-1;break;case"next":o>-1&&o0&&void 0!==arguments[0]?arguments[0]:"first",t=this.props.pageSize,n=this.state.focusedOption,r=this.getFocusableOptions();if(r.length){var o=0,i=r.indexOf(n);n||(i=-1),"up"===e?o=i>0?i-1:r.length-1:"down"===e?o=(i+1)%r.length:"pageup"===e?(o=i-t)<0&&(o=0):"pagedown"===e?(o=i+t)>r.length-1&&(o=r.length-1):"last"===e&&(o=r.length-1),this.scrollToFocusedOptionOnUpdate=!0,this.setState({focusedOption:r[o],focusedValue:null})}}},{key:"getTheme",value:function(){return this.props.theme?"function"==typeof this.props.theme?this.props.theme(Pn):Be(Be({},Pn),this.props.theme):Pn}},{key:"getCommonProps",value:function(){var e=this.clearValue,t=this.cx,n=this.getStyles,r=this.getValue,o=this.selectOption,i=this.setValue,a=this.props,s=a.isMulti,u=a.isRtl,l=a.options;return{clearValue:e,cx:t,getStyles:n,getValue:r,hasValue:this.hasValue(),isMulti:s,isRtl:u,options:l,selectOption:o,selectProps:a,setValue:i,theme:this.getTheme()}}},{key:"hasValue",value:function(){return this.state.selectValue.length>0}},{key:"hasOptions",value:function(){return!!this.getFocusableOptions().length}},{key:"isClearable",value:function(){var e=this.props,t=e.isClearable,n=e.isMulti;return void 0===t?n:t}},{key:"isOptionDisabled",value:function(e,t){return An(this.props,e,t)}},{key:"isOptionSelected",value:function(e,t){return Fn(this.props,e,t)}},{key:"filterOption",value:function(e,t){return Tn(this.props,e,t)}},{key:"formatOptionLabel",value:function(e,t){if("function"==typeof this.props.formatOptionLabel){var n=this.props.inputValue,r=this.state.selectValue;return this.props.formatOptionLabel(e,{context:t,inputValue:n,selectValue:r})}return this.getOptionLabel(e)}},{key:"formatGroupLabel",value:function(e){return this.props.formatGroupLabel(e)}},{key:"startListeningComposition",value:function(){document&&document.addEventListener&&(document.addEventListener("compositionstart",this.onCompositionStart,!1),document.addEventListener("compositionend",this.onCompositionEnd,!1))}},{key:"stopListeningComposition",value:function(){document&&document.removeEventListener&&(document.removeEventListener("compositionstart",this.onCompositionStart),document.removeEventListener("compositionend",this.onCompositionEnd))}},{key:"startListeningToTouch",value:function(){document&&document.addEventListener&&(document.addEventListener("touchstart",this.onTouchStart,!1),document.addEventListener("touchmove",this.onTouchMove,!1),document.addEventListener("touchend",this.onTouchEnd,!1))}},{key:"stopListeningToTouch",value:function(){document&&document.removeEventListener&&(document.removeEventListener("touchstart",this.onTouchStart),document.removeEventListener("touchmove",this.onTouchMove),document.removeEventListener("touchend",this.onTouchEnd))}},{key:"renderInput",value:function(){var n=this.props,r=n.isDisabled,o=n.isSearchable,i=n.inputId,a=n.inputValue,s=n.tabIndex,u=n.form,l=n.menuIsOpen,c=this.getComponents().Input,p=this.state,d=p.inputIsHidden,f=p.ariaSelection,m=this.commonProps,h=i||this.getElementId("input"),v=Be(Be({"aria-autocomplete":"list","aria-expanded":l,"aria-haspopup":!0,"aria-controls":this.getElementId("listbox"),"aria-owns":this.getElementId("listbox"),"aria-errormessage":this.props["aria-errormessage"],"aria-invalid":this.props["aria-invalid"],"aria-label":this.props["aria-label"],"aria-labelledby":this.props["aria-labelledby"],role:"combobox"},!o&&{"aria-readonly":!0}),this.hasValue()?"initial-input-focus"===(null==f?void 0:f.action)&&{"aria-describedby":this.getElementId("live-region")}:{"aria-describedby":this.getElementId("placeholder")});return o?t.createElement(c,e({},m,{autoCapitalize:"none",autoComplete:"off",autoCorrect:"off",id:h,innerRef:this.getInputRef,isDisabled:r,isHidden:d,onBlur:this.onInputBlur,onChange:this.handleInputChange,onFocus:this.onInputFocus,spellCheck:"false",tabIndex:s,form:u,type:"text",value:a},v)):t.createElement(dn,e({id:h,innerRef:this.getInputRef,onBlur:this.onInputBlur,onChange:Ke,onFocus:this.onInputFocus,disabled:r,tabIndex:s,inputMode:"none",form:u,value:""},v))}},{key:"renderPlaceholderOrValue",value:function(){var n=this,r=this.getComponents(),o=r.MultiValue,i=r.MultiValueContainer,a=r.MultiValueLabel,s=r.MultiValueRemove,u=r.SingleValue,l=r.Placeholder,c=this.commonProps,p=this.props,d=p.controlShouldRenderValue,f=p.isDisabled,m=p.isMulti,h=p.inputValue,v=p.placeholder,g=this.state,b=g.selectValue,y=g.focusedValue,O=g.isFocused;if(!this.hasValue()||!d)return h?null:t.createElement(l,e({},c,{key:"placeholder",isDisabled:f,isFocused:O,innerProps:{id:this.getElementId("placeholder")}}),v);if(m)return b.map((function(r,u){var l=r===y,p="".concat(n.getOptionLabel(r),"-").concat(n.getOptionValue(r));return t.createElement(o,e({},c,{components:{Container:i,Label:a,Remove:s},isFocused:l,isDisabled:f,key:p,index:u,removeProps:{onClick:function(){return n.removeValue(r)},onTouchEnd:function(){return n.removeValue(r)},onMouseDown:function(e){e.preventDefault(),e.stopPropagation()}},data:r}),n.formatOptionLabel(r,"value"))}));if(h)return null;var S=b[0];return t.createElement(u,e({},c,{data:S,isDisabled:f}),this.formatOptionLabel(S,"value"))}},{key:"renderClearIndicator",value:function(){var n=this.getComponents().ClearIndicator,r=this.commonProps,o=this.props,i=o.isDisabled,a=o.isLoading,s=this.state.isFocused;if(!this.isClearable()||!n||i||!this.hasValue()||a)return null;var u={onMouseDown:this.onClearIndicatorMouseDown,onTouchEnd:this.onClearIndicatorTouchEnd,"aria-hidden":"true"};return t.createElement(n,e({},r,{innerProps:u,isFocused:s}))}},{key:"renderLoadingIndicator",value:function(){var n=this.getComponents().LoadingIndicator,r=this.commonProps,o=this.props,i=o.isDisabled,a=o.isLoading,s=this.state.isFocused;return n&&a?t.createElement(n,e({},r,{innerProps:{"aria-hidden":"true"},isDisabled:i,isFocused:s})):null}},{key:"renderIndicatorSeparator",value:function(){var n=this.getComponents(),r=n.DropdownIndicator,o=n.IndicatorSeparator;if(!r||!o)return null;var i=this.commonProps,a=this.props.isDisabled,s=this.state.isFocused;return t.createElement(o,e({},i,{isDisabled:a,isFocused:s}))}},{key:"renderDropdownIndicator",value:function(){var n=this.getComponents().DropdownIndicator;if(!n)return null;var r=this.commonProps,o=this.props.isDisabled,i=this.state.isFocused,a={onMouseDown:this.onDropdownIndicatorMouseDown,onTouchEnd:this.onDropdownIndicatorTouchEnd,"aria-hidden":"true"};return t.createElement(n,e({},r,{innerProps:a,isDisabled:o,isFocused:i}))}},{key:"renderMenu",value:function(){var n=this,r=this.getComponents(),o=r.Group,i=r.GroupHeading,a=r.Menu,s=r.MenuList,u=r.MenuPortal,l=r.LoadingMessage,c=r.NoOptionsMessage,p=r.Option,d=this.commonProps,f=this.state.focusedOption,m=this.props,h=m.captureMenuScroll,v=m.inputValue,g=m.isLoading,b=m.loadingMessage,y=m.minMenuHeight,O=m.maxMenuHeight,S=m.menuIsOpen,w=m.menuPlacement,C=m.menuPosition,x=m.menuPortalTarget,M=m.menuShouldBlockScroll,P=m.menuShouldScrollIntoView,k=m.noOptionsMessage,I=m.onMenuScrollToTop,E=m.onMenuScrollToBottom;if(!S)return null;var V,R=function(r,o){var i=r.type,a=r.data,s=r.isDisabled,u=r.isSelected,l=r.label,c=r.value,m=f===a,h=s?void 0:function(){return n.onOptionHover(a)},v=s?void 0:function(){return n.selectOption(a)},g="".concat(n.getElementId("option"),"-").concat(o),b={id:g,onClick:v,onMouseMove:h,onMouseOver:h,tabIndex:-1};return t.createElement(p,e({},d,{innerProps:b,data:a,isDisabled:s,isSelected:u,key:g,label:l,type:i,value:c,isFocused:m,innerRef:m?n.getFocusedOptionRef:void 0}),n.formatOptionLabel(r.data,"menu"))};if(this.hasOptions())V=this.getCategorizedOptions().map((function(r){if("group"===r.type){var a=r.data,s=r.options,u=r.index,l="".concat(n.getElementId("group"),"-").concat(u),c="".concat(l,"-heading");return t.createElement(o,e({},d,{key:l,data:a,options:s,Heading:i,headingProps:{id:c,data:r.data},label:n.formatGroupLabel(r.data)}),r.options.map((function(e){return R(e,"".concat(u,"-").concat(e.index))})))}if("option"===r.type)return R(r,"".concat(r.index))}));else if(g){var D=b({inputValue:v});if(null===D)return null;V=t.createElement(l,d,D)}else{var L=k({inputValue:v});if(null===L)return null;V=t.createElement(c,d,L)}var A={minMenuHeight:y,maxMenuHeight:O,menuPlacement:w,menuPosition:C,menuShouldScrollIntoView:P},F=t.createElement(ht,e({},d,A),(function(r){var o=r.ref,i=r.placerProps,u=i.placement,l=i.maxHeight;return t.createElement(a,e({},d,A,{innerRef:o,innerProps:{onMouseDown:n.onMenuMouseDown,onMouseMove:n.onMenuMouseMove,id:n.getElementId("listbox")},isLoading:g,placement:u}),t.createElement(xn,{captureEnabled:h,onTopArrive:I,onBottomArrive:E,lockEnabled:M},(function(r){return t.createElement(s,e({},d,{innerRef:function(e){n.getMenuListRef(e),r(e)},isLoading:g,maxHeight:l,focusedOption:f}),V)})))}));return x||"fixed"===C?t.createElement(u,e({},d,{appendTo:x,controlElement:this.controlRef,menuPlacement:w,menuPosition:C}),F):F}},{key:"renderFormField",value:function(){var e=this,n=this.props,r=n.delimiter,o=n.isDisabled,i=n.isMulti,a=n.name,s=this.state.selectValue;if(a&&!o){if(i){if(r){var u=s.map((function(t){return e.getOptionValue(t)})).join(r);return t.createElement("input",{name:a,type:"hidden",value:u})}var l=s.length>0?s.map((function(n,r){return t.createElement("input",{key:"i-".concat(r),name:a,type:"hidden",value:e.getOptionValue(n)})})):t.createElement("input",{name:a,type:"hidden"});return t.createElement("div",null,l)}var c=s[0]?this.getOptionValue(s[0]):"";return t.createElement("input",{name:a,type:"hidden",value:c})}}},{key:"renderLiveRegion",value:function(){var n=this.commonProps,r=this.state,o=r.ariaSelection,i=r.focusedOption,a=r.focusedValue,s=r.isFocused,u=r.selectValue,l=this.getFocusableOptions();return t.createElement(Qt,e({},n,{id:this.getElementId("live-region"),ariaSelection:o,focusedOption:i,focusedValue:a,isFocused:s,selectValue:u,focusableOptions:l}))}},{key:"render",value:function(){var n=this.getComponents(),r=n.Control,o=n.IndicatorsContainer,i=n.SelectContainer,a=n.ValueContainer,s=this.props,u=s.className,l=s.id,c=s.isDisabled,p=s.menuIsOpen,d=this.state.isFocused,f=this.commonProps=this.getCommonProps();return t.createElement(i,e({},f,{className:u,innerProps:{id:l,onKeyDown:this.onKeyDown},isDisabled:c,isFocused:d}),this.renderLiveRegion(),t.createElement(r,e({},f,{innerRef:this.getControlRef,innerProps:{onMouseDown:this.onControlMouseDown,onTouchEnd:this.onControlTouchEnd},isDisabled:c,isFocused:d,menuIsOpen:p}),t.createElement(a,e({},f,{isDisabled:c}),this.renderPlaceholderOrValue(),this.renderInput()),t.createElement(o,e({},f,{isDisabled:c}),this.renderClearIndicator(),this.renderLoadingIndicator(),this.renderIndicatorSeparator(),this.renderDropdownIndicator())),this.renderMenu(),this.renderFormField())}}],[{key:"getDerivedStateFromProps",value:function(e,t){var n=t.prevProps,r=t.clearFocusValueOnUpdate,o=t.inputIsHiddenAfterUpdate,i=t.ariaSelection,a=t.isFocused,s=t.prevWasFocused,u=e.options,l=e.value,c=e.menuIsOpen,p=e.inputValue,d=e.isMulti,f=Je(l),m={};if(n&&(l!==n.value||u!==n.options||c!==n.menuIsOpen||p!==n.inputValue)){var h=c?function(e,t){return Vn(En(e,t))}(e,f):[],v=r?function(e,t){var n=e.focusedValue,r=e.selectValue.indexOf(n);if(r>-1){if(t.indexOf(n)>-1)return n;if(r-1?n:t[0]}(t,h);m={selectValue:f,focusedOption:g,focusedValue:v,clearFocusValueOnUpdate:!1}}var b=null!=o&&e!==n?{inputIsHidden:o,inputIsHiddenAfterUpdate:void 0}:{},y=i,O=a&&s;return a&&!O&&(y={value:pt(d,f,f[0]||null),options:f,action:"initial-input-focus"},O=!s),"initial-input-focus"===(null==i?void 0:i.action)&&(y=null),Be(Be(Be({},m),b),{},{prevProps:e,ariaSelection:y,prevWasFocused:O})}}]),o}(t.Component);jn.defaultProps=kn;var $n=(0,t.forwardRef)((function(n,r){var o=function(e){var n=e.defaultInputValue,r=void 0===n?"":n,o=e.defaultMenuIsOpen,i=void 0!==o&&o,a=e.defaultValue,s=void 0===a?null:a,u=e.inputValue,l=e.menuIsOpen,c=e.onChange,p=e.onInputChange,d=e.onMenuClose,f=e.onMenuOpen,m=e.value,h=Le(e,Gt),v=Wt((0,t.useState)(void 0!==u?u:r),2),g=v[0],b=v[1],y=Wt((0,t.useState)(void 0!==l?l:i),2),O=y[0],S=y[1],w=Wt((0,t.useState)(void 0!==m?m:s),2),C=w[0],x=w[1],M=(0,t.useCallback)((function(e,t){"function"==typeof c&&c(e,t),x(e)}),[c]),P=(0,t.useCallback)((function(e,t){var n;"function"==typeof p&&(n=p(e,t)),b(void 0!==n?n:e)}),[p]),k=(0,t.useCallback)((function(){"function"==typeof f&&f(),S(!0)}),[f]),I=(0,t.useCallback)((function(){"function"==typeof d&&d(),S(!1)}),[d]),E=void 0!==u?u:g,V=void 0!==l?l:O,R=void 0!==m?m:C;return Be(Be({},h),{},{inputValue:E,menuIsOpen:V,onChange:M,onInputChange:P,onMenuClose:I,onMenuOpen:k,value:R})}(n);return t.createElement(jn,e({ref:r},o))})),zn=(t.Component,$n);function Un(){return Un=Object.assign||function(e){for(var t=1;t{const{selectProps:t}=e,n=e.getValue().length||0;return React.createElement(Ut.Menu,e,n{const t=e.inputId?e.inputId:"kirki-react-select-input--"+e.customizerSetting.id,n=e.label?React.createElement("label",{className:"customize-control-title",dangerouslySetInnerHTML:{__html:e.label},htmlFor:t}):"",r=e.description?React.createElement("span",{className:"description customize-control-description",dangerouslySetInnerHTML:{__html:e.description}}):"";return React.createElement("div",null,n,r,React.createElement("div",{className:"customize-control-notifications-container",ref:e.setNotificationContainer}),React.createElement(zn,Un({},e,{inputId:t,className:"kirki-react-select-container",classNamePrefix:"kirki-react-select",inputClassName:"kirki-react-select-input",openMenuOnFocus:e.openMenuOnFocus,formatOptionLabel:e=>React.createElement("div",{dangerouslySetInnerHTML:{__html:e.label}}),options:e.control.getFormattedOptions(),onChange:(t,n)=>{let r;r="clear"===n?"":Array.isArray(t)?t.map((e=>e.value)):t.value,wp.customize(e.customizerSetting.id).set(r)},value:e.control.getOptionProps(e.value),isOptionDisabled:e.isOptionDisabled,components:{IndicatorSeparator:()=>null,Menu:_n},theme:e=>({...e,colors:{...e.colors,primary:"#0073aa",primary75:"#33b3db",primary50:"#99d9ed",primary24:"#e5f5fa"}}),styles:{control:(e,t)=>({...e,minHeight:"30px"}),valueContainer:e=>({...e,padding:"0 6px"}),input:e=>({...e,margin:"0px"})}})))};function Wn(){return Wn=Object.assign||function(e){for(var t=1;t{e.renderContent()}))},isMulti:function(){return this.params.isMulti},destroy:function(){ReactDOM.unmountComponentAtNode(this.container[0]),wp.customize.Control.prototype.destroy&&wp.customize.Control.prototype.destroy.call(this)},isOptionDisabled:function(e){const t=this;return!!t&&!!t.disabledSelectOptions&&!!t.disabledSelectOptions.indexOf(e)},doSelectAction:function(e,t){const n=this;let r;switch(e){case"disableOption":n.disabledSelectOptions=void 0===n.disabledSelectOptions?[]:n.disabledSelectOptions,n.disabledSelectOptions.push(n.getOptionProps(t));break;case"enableOption":if(n.disabledSelectOptions)for(r=0;rjson['label'] ) ) {
+ $this->json['label'] = html_entity_decode( $this->json['label'] );
+ }
+
+ if ( isset( $this->json['description'] ) ) {
+ $this->json['description'] = html_entity_decode( $this->json['description'] );
+ }
+
+ // @link https://react-select.com/props
+ $this->json['isClearable'] = $this->clearable;
+ $this->json['isMulti'] = $this->multiple;
+ $this->json['placeholder'] = ( $this->placeholder ) ? $this->placeholder : esc_html__( 'Select...', 'kirki' );
+
+ // Will be a custom implementation, couldn't find an official prop to set this in react-select.
+ $this->json['maxSelectionNumber'] = $this->max_selection_number;
+
+ $this->json['messages'] = [
+ // translators: %s is the limit of selection number.
+ 'maxLimitReached' => sprintf( esc_html__( 'You can only select %s items', 'kirki' ), $this->max_selection_number ),
+ ];
+
+ }
+
+}
diff --git a/functions/kirki/packages/kirki-framework/control-react-select/src/Field/ReactSelect.php b/functions/kirki/packages/kirki-framework/control-react-select/src/Field/ReactSelect.php
new file mode 100644
index 0000000..f4908b1
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-react-select/src/Field/ReactSelect.php
@@ -0,0 +1,201 @@
+args['settings'] ) {
+ $args = parent::filter_setting_args( $args, $wp_customize );
+
+ if ( isset( $args['multiple'] ) ) {
+ $multiple_and_max = self::get_multiple_and_max( $args['multiple'] );
+ $args['multiple'] = $multiple_and_max['multiple'];
+ $args['max_selection_number'] = $multiple_and_max['max_selection_number'];
+ } else {
+ $args['multiple'] = false;
+ }
+
+ // Set the sanitize-callback if none is defined.
+ if ( ! isset( $args['sanitize_callback'] ) || ! $args['sanitize_callback'] ) {
+ $args['sanitize_callback'] = ! $args['multiple'] ? 'sanitize_text_field' : function( $values ) use ( $args ) {
+ $values = (array) $values;
+ $sanitized_values = [];
+
+ // If total selected values > max_selection_number, then we need to remove the excess.
+ if ( count( $values ) > $args['max_selection_number'] ) {
+ for ( $i = 0; $i < $args['max_selection_number']; $i++ ) {
+ $sanitized_values[ $i ] = isset( $values[ $i ] ) ? sanitize_text_field( $values[ $i ] ) : '';
+ }
+ } else {
+ foreach ( $values as $index => $subvalue ) {
+ $sanitized_values[ $index ] = sanitize_text_field( $subvalue );
+ }
+ }
+
+ return $sanitized_values;
+ };
+ }
+ }
+
+ return $args;
+
+ }
+
+ /**
+ * Filter arguments before creating the control.
+ *
+ * @access public
+ * @since 0.1
+ * @param array $args The field arguments.
+ * @param WP_Customize_Manager $wp_customize The customizer instance.
+ * @return array
+ */
+ public function filter_control_args( $args, $wp_customize ) {
+
+ if ( $args['settings'] === $this->args['settings'] ) {
+ $args = parent::filter_control_args( $args, $wp_customize );
+
+ if ( isset( $args['multiple'] ) ) {
+ $multiple_and_max = self::get_multiple_and_max( $args['multiple'] );
+ $args['multiple'] = $multiple_and_max['multiple'];
+ $args['max_selection_number'] = $multiple_and_max['max_selection_number'];
+ }
+
+ $args['type'] = 'kirki-react-select';
+ }
+
+ return $args;
+
+ }
+
+ /**
+ * Get the value of "multiple" and "max_selection_number"
+ * from the provided $multiple parameter.
+ *
+ * @since 1.1
+ *
+ * @param bool|int $multiple The provided $multiple value.
+ * @return array
+ */
+ public static function get_multiple_and_max( $multiple ) {
+
+ $max_selection_number = 999;
+
+ if ( is_numeric( $multiple ) ) {
+ $multiple = (int) $multiple;
+
+ /**
+ * Treat -1 as unlimited just like in WordPress's get_posts (well, in this Kirki case, it's 999 :).
+ * Also treat 0 as "unlimited" because 1 it self will disable the multiple selection.
+ */
+ if ( 0 >= $multiple ) {
+ $max_selection_number = 999;
+ $multiple = true;
+ } else {
+ // If $multiple is > 1.
+ if ( 1 < $multiple ) {
+ $max_selection_number = $multiple;
+ $multiple = true;
+ } else {
+ // Here $multiple === 1, that means, it's single mode select.
+ $multiple = false;
+ }
+ }
+ }
+
+ return [
+ 'multiple' => $multiple,
+ 'max_selection_number' => $max_selection_number,
+ ];
+
+ }
+
+}
diff --git a/functions/kirki/packages/kirki-framework/control-repeater/LICENSE b/functions/kirki/packages/kirki-framework/control-repeater/LICENSE
new file mode 100644
index 0000000..f202ade
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-repeater/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2019 kirki-framework
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/functions/kirki/packages/kirki-framework/control-repeater/README.md b/functions/kirki/packages/kirki-framework/control-repeater/README.md
new file mode 100644
index 0000000..54a0655
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-repeater/README.md
@@ -0,0 +1,98 @@
+# control-repeater
+
+## Installation
+
+First, install the package using composer:
+
+```bash
+composer require kirki-framework/control-repeater
+```
+
+Make sure you include the autoloader:
+```php
+require_once get_parent_theme_file_path( 'vendor/autoload.php' );
+```
+
+To add a control using the customizer API:
+
+```php
+/**
+ * Registers the control and whitelists it for JS templating.
+ *
+ * @since 1.0
+ * @param WP_Customize_Manager $wp_customize The WP_Customize_Manager object.
+ * @return void
+ */
+add_action( 'customize_register', function( $wp_customize ) {
+ $wp_customize->register_control_type( '\Kirki\Control\Repeater' );
+} );
+
+/**
+ * Add Customizer settings & controls.
+ *
+ * @since 1.0
+ * @param WP_Customize_Manager $wp_customize The WP_Customize_Manager object.
+ * @return void
+ */
+add_action( 'customize_register', function( $wp_customize ) {
+
+ // Add settings.
+ $wp_customize->add_setting( new \Kirki\Settings\Repeater( $wp_customize, 'my_repeater_setting', [
+ 'default' => [
+ [
+ 'link_text' => esc_html__( 'Kirki Site', 'theme_textdomain' ),
+ 'link_url' => 'https://aristath.github.io/kirki/',
+ 'link_target' => '_self',
+ ],
+ [
+ 'link_text' => esc_html__( 'Kirki Repository', 'theme_textdomain' ),
+ 'link_url' => 'https://github.com/aristath/kirki',
+ 'link_target' => '_self',
+ ],
+ ],
+ 'type' => 'theme_mod',
+ 'capability' => 'edit_theme_options',
+ 'transport' => 'refresh',
+ 'sanitize_callback' => function( $value ) { // Custom sanitization callback.
+ $value = ( is_array( $value ) ) ? $value : json_decode( urldecode( $value ), true );
+ $value = ( empty( $value ) || ! is_array( $value ) ) ? [] : $value;
+
+ foreach ( $value as $row_index => $row_data ) {
+ $value[ $row_index ]['link_text'] = isset( $row_data['link_text'] ) ? sanitize_text_field( $row_data['link_text'] ) : '';
+ $value[ $row_index ]['link_url'] = isset( $row_data['link_url'] ) ? esc_url( $row_data['link_url'] ) : '';
+ $value[ $row_index ]['link_target'] = isset( $row_data['link_target'] ) && in_array( $row_data['link_target'], [ '_self', '_blank', '_parent', '_top' ], true ) ? $row_data['link_target'] : '_self';
+ }
+ },
+ ] ) );
+
+ // Add controls.
+ $wp_customize->add_control( new \Kirki\Control\Repeater( $wp_customize, 'my_repeater_setting', [
+ 'label' => esc_html__( 'My Control', 'theme_textdomain' ),
+ 'section' => 'colors',
+ 'fields' => [
+ 'link_text' => [
+ 'type' => 'text',
+ 'label' => esc_html__( 'Link Text', 'theme_textdomain' ),
+ 'description' => esc_html__( 'This will be the label for your link', 'theme_textdomain' ),
+ 'default' => '',
+ ],
+ 'link_url' => [
+ 'type' => 'text',
+ 'label' => esc_html__( 'Link URL', 'theme_textdomain' ),
+ 'description' => esc_html__( 'This will be the link URL', 'theme_textdomain' ),
+ 'default' => '',
+ ],
+ 'link_target' => [
+ 'type' => 'radio',
+ 'label' => esc_html__( 'Link Target', 'theme_textdomain' ),
+ 'description' => esc_html__( 'This will be the link target', 'theme_textdomain' ),
+ 'default' => '_self',
+ 'choices' => [
+ '_blank' => esc_html__( 'New Window', 'theme_textdomain' ),
+ '_self' => esc_html__( 'Same Frame', 'theme_textdomain' ),
+ ],
+ ],
+ ],
+ ] ) );
+} );
+```
diff --git a/functions/kirki/packages/kirki-framework/control-repeater/dist/control.css b/functions/kirki/packages/kirki-framework/control-repeater/dist/control.css
new file mode 100644
index 0000000..8c694ef
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-repeater/dist/control.css
@@ -0,0 +1,2 @@
+.customize-control-repeater{position:relative}.customize-control-repeater .repeater-fields .repeater-row{background:#eee;border:1px solid #e5e5e5;margin-top:.5rem;position:relative}.customize-control-repeater .repeater-fields .repeater-row.minimized{border:1px solid #dfdfdf;padding:0}.customize-control-repeater .repeater-fields .repeater-row.minimized:hover{border:1px solid #e5e5e5}.customize-control-repeater .repeater-fields .repeater-row.minimized .repeater-row-content{display:none}.customize-control-repeater .repeater-fields .repeater-row label{clear:both;margin-bottom:12px}.customize-control-repeater .repeater-fields .repeater-row .repeater-field.repeater-field-,.customize-control-repeater .repeater-fields .repeater-row .repeater-field.repeater-field-radio-image input{display:none}.customize-control-repeater .repeater-fields .repeater-row .repeater-field.repeater-field-radio-image input img{border:1px solid transparent}.customize-control-repeater .repeater-fields .repeater-row .repeater-field.repeater-field-radio-image input:checked+label img{border:1px solid #3498db;-webkit-box-shadow:0 0 5px 2px rgba(0,0,0,.25);box-shadow:0 0 5px 2px rgba(0,0,0,.25)}.customize-control-repeater .repeater-fields .repeater-row .repeater-field:last-child{border-bottom:none;padding-bottom:0}.customize-control-repeater button.repeater-add{margin-top:1rem}.customize-control-repeater .repeater-row-content{background:#fff;padding:10px 15px}.customize-control-repeater .repeater-field{border-bottom:1px dotted #ccc;clear:both;margin-bottom:12px;padding-bottom:12px;width:100%}.customize-control-repeater .repeater-field .customize-control-description,.customize-control-repeater .repeater-field .customize-control-title{font-size:13px;line-height:normal}.customize-control-repeater .repeater-field.repeater-field-hidden{border:0;margin:0;padding:0}.customize-control-repeater .repeater-field-select select{margin-left:0}.customize-control-repeater .repeater-field-checkbox label{line-height:28px}.customize-control-repeater .repeater-field-checkbox input{line-height:28px;margin-right:5px}.customize-control-repeater .repeater-field-textarea textarea{resize:vertical;width:100%}.customize-control-repeater .repeater-row-header{word-wrap:break-word;background:#fff;border-bottom:1px solid #dfdfdf;height:auto;line-height:30px;min-height:20px;overflow:hidden;padding:10px 15px;position:relative}.customize-control-repeater .repeater-row-header:hover{cursor:move}.customize-control-repeater .repeater-row-header .dashicons{color:#a0a5aa;font-size:18px;position:absolute;right:12px;top:2px}.customize-control-repeater .repeater-row-label{display:block;font-size:13px;font-weight:600;height:18px;line-height:20px;overflow:hidden;width:90%}.customize-control-repeater .repeater-row-remove{color:#a00}.customize-control-repeater .repeater-row-remove:hover{color:red}.customize-control-repeater .repeater-minimize{line-height:36px}.customize-control-repeater .remove-button,.customize-control-repeater .upload-button{width:48%}.kirki-image-attachment{margin:0 0 10px;text-align:center}.kirki-image-attachment img{display:inline-block}.kirki-file-attachment{margin:0 0 10px;text-align:center}.kirki-file-attachment .file{background:#f9f9f9;border:1px dotted #c3c3c3;display:block;padding:10px 5px}.limit{border-radius:3px;padding:3px}.limit.highlight{background:#d32f2f;color:#fff}
+/*# sourceMappingURL=control.css.map */
diff --git a/functions/kirki/packages/kirki-framework/control-repeater/dist/control.js b/functions/kirki/packages/kirki-framework/control-repeater/dist/control.js
new file mode 100644
index 0000000..c5d6ce0
--- /dev/null
+++ b/functions/kirki/packages/kirki-framework/control-repeater/dist/control.js
@@ -0,0 +1,2 @@
+!function(){var e=function(e,t,i,a){var r=this;this.rowIndex=e,this.container=t,this.label=i,this.header=this.container.find(".repeater-row-header"),this.header.on("click",(function(){r.toggleMinimize()})),this.container.on("click",".repeater-row-remove",(function(){r.remove()})),this.header.on("mousedown",(function(){r.container.trigger("row:start-dragging")})),this.container.on("keyup change","input, select, textarea",(function(e){r.container.trigger("row:update",[r.rowIndex,jQuery(e.target).data("field"),e.target])})),this.setRowIndex=function(e){this.rowIndex=e,this.container.attr("data-row",e),this.container.data("row",e),this.updateLabel()},this.toggleMinimize=function(){this.container.toggleClass("minimized"),this.header.find(".dashicons").toggleClass("dashicons-arrow-up").toggleClass("dashicons-arrow-down")},this.remove=function(){this.container.slideUp(300,(function(){jQuery(this).detach()})),this.container.trigger("row:remove",[this.rowIndex])},this.updateLabel=function(){var e,t,i;if("field"===this.label.type&&(e=this.container.find('.repeater-field [data-field="'+this.label.field+'"]'),_.isFunction(e.val)&&""!==(t=e.val())))return _.isUndefined(a.params.fields[this.label.field])||_.isUndefined(a.params.fields[this.label.field].type)||("select"===a.params.fields[this.label.field].type?_.isUndefined(a.params.fields[this.label.field].choices)||_.isUndefined(a.params.fields[this.label.field].choices[e.val()])||(t=a.params.fields[this.label.field].choices[e.val()]):"radio"!==a.params.fields[this.label.field].type&&"radio-image"!==a.params.fields[this.label.field].type||(i=a.selector+' [data-row="'+this.rowIndex+'"] .repeater-field [data-field="'+this.label.field+'"]:checked',t=jQuery(i).val())),void this.header.find(".repeater-row-label").text(t);this.header.find(".repeater-row-label").text(this.label.value+" "+(this.rowIndex+1))},this.updateLabel()};wp.customize.controlConstructor.repeater=wp.customize.Control.extend({ready:function(){!_.isUndefined(window.kirkiControlLoader)&&_.isFunction(kirkiControlLoader)?kirkiControlLoader(this):this.initKirkiControl()},initKirkiControl:function(e){var t,i,a;a=(e=e||this).params.value,e.settingField=e.container.find("[data-customize-setting-link]").first(),e.setValue([],!1),e.repeaterFieldsContainer=e.container.find(".repeater-fields").first(),e.currentIndex=0,e.rows=[],t=!1,_.isUndefined(e.params.choices.limit)||(t=!(0>=e.params.choices.limit)&&parseInt(e.params.choices.limit,10)),e.container.on("click","button.repeater-add",(function(a){a.preventDefault(),!t||e.currentIndex/g,interpolate:/\{\{\{([\s\S]+?)\}\}\}/g,escape:/\{\{([^\}]+?)\}\}(?!\})/g,variable:"data"};return function(i){return _.template(e.container.find(".customize-control-repeater-content").first().html(),null,t)(i)}})),a.length&&_.each(a,(function(t){i=e.addRow(t),e.initColorPicker(),e.initSelect(i,t)})),e.repeaterFieldsContainer.sortable({handle:".repeater-row-header",update:function(){e.sort()}})},openFrame:function(e){wp.customize.utils.isKeydownButNotEnterEvent(e)||(this.$thisButton.closest(".repeater-field").hasClass("repeater-field-cropped_image")?this.initCropperFrame():this.initFrame(),this.frame.open())},initFrame:function(){var e=this.getMimeType();this.frame=wp.media({states:[new wp.media.controller.Library({library:wp.media.query({type:e}),multiple:!1,date:!1})]}),this.frame.on("select",this.onSelect,this)},initCropperFrame:function(){var e=this.$thisButton.siblings("input.hidden-field").attr("data-field"),t=this.getMimeType();_.isString(e)&&""!==e&&_.isObject(this.params.fields[e])&&"cropped_image"===this.params.fields[e].type&&["width","height","flex_width","flex_height"].forEach(function(t){_.isUndefined(this.params.fields[e][t])||(this.params[t]=this.params.fields[e][t])}.bind(this)),this.frame=wp.media({button:{text:"Select and Crop",close:!1},states:[new wp.media.controller.Library({library:wp.media.query({type:t}),multiple:!1,date:!1,suggestedWidth:this.params.width,suggestedHeight:this.params.height}),new wp.media.controller.CustomizeImageCropper({imgSelectOptions:this.calculateImageSelectOptions,control:this})]}),this.frame.on("select",this.onSelectForCrop,this),this.frame.on("cropped",this.onCropped,this),this.frame.on("skippedcrop",this.onSkippedCrop,this)},onSelect:function(){var e=this.frame.state().get("selection").first().toJSON();this.$thisButton.closest(".repeater-field").hasClass("repeater-field-upload")?this.setFileInRepeaterField(e):this.setImageInRepeaterField(e)},onSelectForCrop:function(){var e=this.frame.state().get("selection").first().toJSON();this.params.width!==e.width||this.params.height!==e.height||this.params.flex_width||this.params.flex_height?this.frame.setState("cropper"):this.setImageInRepeaterField(e)},onCropped:function(e){this.setImageInRepeaterField(e)},calculateImageSelectOptions:function(e,t){var i,a,r,n=t.get("control"),s=!!parseInt(n.params.flex_width,10),o=!!parseInt(n.params.flex_height,10),l=e.get("width"),d=e.get("height"),h=parseInt(n.params.width,10),p=parseInt(n.params.height,10),c=h/p,u=l,f=d;return t.set("canSkipCrop",!n.mustBeCropped(s,o,h,p,l,d)),u/f>c?h=(p=f)*c:p=(h=u)/c,r={handles:!0,keys:!0,instance:!0,persistent:!0,imageWidth:l,imageHeight:d,x1:i=(u-h)/2,y1:a=(f-p)/2,x2:h+i,y2:p+a},!1===o&&!1===s&&(r.aspectRatio=h+":"+p),!1===o&&(r.maxHeight=p),!1===s&&(r.maxWidth=h),r},mustBeCropped:function(e,t,i,a,r,n){return!(!0===e&&!0===t||!0===e&&a===n||!0===t&&i===r||i===r&&a===n||r<=i)},onSkippedCrop:function(){var e=this.frame.state().get("selection").first().toJSON();this.setImageInRepeaterField(e)},setImageInRepeaterField:function(e){var t=this.$thisButton.closest(".repeater-field-image,.repeater-field-cropped_image");t.find(".kirki-image-attachment").html('
').hide().slideDown("slow"),t.find(".hidden-field").val(e.id),this.$thisButton.text(this.$thisButton.data("alt-label")),t.find(".remove-button").show(),t.find("input, textarea, select").trigger("change"),this.frame.close()},setFileInRepeaterField:function(e){var t=this.$thisButton.closest(".repeater-field-upload");t.find(".kirki-file-attachment").html(' '+e.filename+"").hide().slideDown("slow"),t.find(".hidden-field").val(e.id),this.$thisButton.text(this.$thisButton.data("alt-label")),t.find(".upload-button").show(),t.find(".remove-button").show(),t.find("input, textarea, select").trigger("change"),this.frame.close()},getMimeType:function(){var e=this.$thisButton.siblings("input.hidden-field").attr("data-field");return _.isString(e)&&""!==e&&_.isObject(this.params.fields[e])&&"upload"===this.params.fields[e].type&&!_.isUndefined(this.params.fields[e].mime_type)?this.params.fields[e].mime_type:"image"},removeImage:function(e){var t,i;wp.customize.utils.isKeydownButNotEnterEvent(e)||(i=(t=this.$thisButton.closest(".repeater-field-image,.repeater-field-cropped_image,.repeater-field-upload")).find(".upload-button"),t.find(".kirki-image-attachment").slideUp("fast",(function(){jQuery(this).show().html(jQuery(this).data("placeholder"))})),t.find(".hidden-field").val(""),i.text(i.data("label")),this.$thisButton.hide(),t.find("input, textarea, select").trigger("change"))},removeFile:function(e){var t,i;wp.customize.utils.isKeydownButNotEnterEvent(e)||(i=(t=this.$thisButton.closest(".repeater-field-upload")).find(".upload-button"),t.find(".kirki-file-attachment").slideUp("fast",(function(){jQuery(this).show().html(jQuery(this).data("placeholder"))})),t.find(".hidden-field").val(""),i.text(i.data("label")),this.$thisButton.hide(),t.find("input, textarea, select").trigger("change"))},getValue:function(){return JSON.parse(decodeURI(this.setting.get()))},setValue:function(e,t,i){var a=e,r=[];i&&(jQuery.each(this.params.fields,(function(e,t){"image"!==t.type&&"cropped_image"!==t.type&&"upload"!==t.type||r.push(e)})),jQuery.each(e,(function(e,t){jQuery.each(r,(function(i,r){_.isUndefined(t[r])||_.isUndefined(t[r].id)||(a[e][r]=t[r].id)}))}))),this.setting.set(encodeURI(JSON.stringify(a))),t&&this.settingField.trigger("change")},addRow:function(t){var i,a,r,n=this,s=n.repeaterTemplate(),o=this.getValue(),l={};if(s){if(i=jQuery.extend(!0,{},n.params.fields),t)for(r in t)t.hasOwnProperty(r)&&i.hasOwnProperty(r)&&(i[r].default=t[r]);for(r in i.index=this.currentIndex,s=s(i),(a=new e(n.currentIndex,jQuery(s).appendTo(n.repeaterFieldsContainer),n.params.row_label,n)).container.on("row:remove",(function(e,t){n.deleteRow(t)})),a.container.on("row:update",(function(e,t,i,r){n.updateField.call(n,e,t,i,r),a.updateLabel()})),this.rows[this.currentIndex]=a,i)i.hasOwnProperty(r)&&(l[r]=i[r].default);return o[this.currentIndex]=l,this.setValue(o,!0),this.currentIndex++,a}},sort:function(){var e=this,t=this.repeaterFieldsContainer.find(".repeater-row"),i=[],a=e.getValue(),r=[],n=[];t.each((function(e,t){i.push(jQuery(t).data("row"))})),jQuery.each(i,(function(t,i){r[t]=e.rows[i],r[t].setRowIndex(t),n[t]=a[i]})),e.rows=r,e.setValue(n)},deleteRow:function(e){var t,i=this.getValue();for(t in i[e]&&this.rows[e]&&(delete i[e],delete this.rows[e],this.setValue(i,!0)),this.rows)this.rows.hasOwnProperty(t)&&this.rows[t]&&this.rows[t].updateLabel()},updateField:function(e,t,i,a){var r,n,s;this.rows[t]&&this.params.fields[i]&&(r=this.params.fields[i].type,n=this.rows[t],s=this.getValue(),a=jQuery(a),_.isUndefined(s[n.rowIndex][i])||(s[n.rowIndex][i]="checkbox"===r?a.is(":checked"):a.val(),this.setValue(s,!0)))},initColorPicker:function(){var e=this,t=e.container.find(".color-picker-hex"),i={},a=t.data("field");_.isUndefined(a)||_.isUndefined(e.params.fields[a])||_.isUndefined(e.params.fields[a].palettes)||!_.isObject(e.params.fields[a].palettes)||(i.palettes=e.params.fields[a].palettes),i.change=function(t,i){var a=jQuery(t.target),r=a.closest(".repeater-row").data("row"),n=e.getValue();n[r][a.data("field")]=i.color.toString(),e.setValue(n,!0)},t.length&&0!==t.length&&t.wpColorPicker(i)},initSelect:function(e,t){var i,a=this,r=e.container.find(".repeater-field select");0!==r.length&&(i=r.data("field"),multiple=jQuery(r).data("multiple"),(t=t||{})[i]=t[i]||"",jQuery(r).val(t[i]||jQuery(r).val()),this.container.on("change",".repeater-field select",(function(e){var t=jQuery(e.target),i=t.closest(".repeater-row").data("row"),r=a.getValue();r[i][t.data("field")]=jQuery(this).val(),a.setValue(r)})))}})}();
+//# sourceMappingURL=control.js.map
diff --git a/functions/kirki/controls/php/class-kirki-control-repeater.php b/functions/kirki/packages/kirki-framework/control-repeater/src/Control/Repeater.php
similarity index 92%
rename from functions/kirki/controls/php/class-kirki-control-repeater.php
rename to functions/kirki/packages/kirki-framework/control-repeater/src/Control/Repeater.php
index e963820..b358a6e 100644
--- a/functions/kirki/controls/php/class-kirki-control-repeater.php
+++ b/functions/kirki/packages/kirki-framework/control-repeater/src/Control/Repeater.php
@@ -2,27 +2,28 @@
/**
* Customizer Control: repeater.
*
- * @package Kirki
- * @subpackage Controls
- * @copyright Copyright (c) 2020, David Vongries
- * @license https://opensource.org/licenses/MIT
- * @since 2.0
+ * @package kirki-framework/control-repeater
+ * @copyright Copyright (c) 2019, Ari Stathopoulos (@aristath)
+ * @license https://opensource.org/licenses/MIT
+ * @since 1.0
*/
-// Exit if accessed directly.
-if ( ! defined( 'ABSPATH' ) ) {
- exit;
-}
+namespace Kirki\Control;
+use Kirki\Control\Base;
+use Kirki\URL;
/**
* Repeater control
+ *
+ * @since 1.0
*/
-class Kirki_Control_Repeater extends Kirki_Control_Base {
+class Repeater extends Base {
/**
* The control type.
*
* @access public
+ * @since 1.0
* @var string
*/
public $type = 'repeater';
@@ -31,52 +32,69 @@ class Kirki_Control_Repeater extends Kirki_Control_Base {
* The fields that each container row will contain.
*
* @access public
+ * @since 1.0
* @var array
*/
- public $fields = array();
+ public $fields = [];
/**
* Will store a filtered version of value for advenced fields (like images).
*
* @access protected
+ * @since 1.0
* @var array
*/
- protected $filtered_value = array();
+ protected $filtered_value = [];
/**
* The row label
*
* @access public
+ * @since 1.0
* @var array
*/
- public $row_label = array();
+ public $row_label = [];
/**
* The button label
*
* @access public
+ * @since 1.0
* @var string
*/
public $button_label = '';
+ /**
+ * The version. Used in scripts & styles for cache-busting.
+ *
+ * @static
+ * @access public
+ * @since 1.0
+ * @var string
+ */
+ public static $control_ver = '1.0';
+
/**
* Constructor.
* Supplied `$args` override class property defaults.
* If `$args['settings']` is not defined, use the $id as the setting ID.
*
+ * @access public
+ * @since 1.0
* @param WP_Customize_Manager $manager Customizer bootstrap instance.
* @param string $id Control ID.
* @param array $args {@see WP_Customize_Control::__construct}.
*/
- public function __construct( $manager, $id, $args = array() ) {
+ public function __construct( $manager, $id, $args = [] ) {
+
parent::__construct( $manager, $id, $args );
// Set up defaults for row labels.
- $this->row_label = array(
+ $this->row_label = [
'type' => 'text',
'value' => esc_attr__( 'row', 'kirki' ),
'field' => false,
- );
+ ];
// Validate row-labels.
$this->row_label( $args );
@@ -87,11 +105,11 @@ class Kirki_Control_Repeater extends Kirki_Control_Base {
}
if ( empty( $args['fields'] ) || ! is_array( $args['fields'] ) ) {
- $args['fields'] = array();
+ $args['fields'] = [];
}
// An array to store keys of fields that need to be filtered.
- $media_fields_to_filter = array();
+ $media_fields_to_filter = [];
foreach ( $args['fields'] as $key => $value ) {
if ( ! isset( $value['default'] ) ) {
@@ -115,13 +133,13 @@ class Kirki_Control_Repeater extends Kirki_Control_Base {
case 'dropdown-pages':
// If the field is a dropdown-pages field then add it to args.
$dropdown = wp_dropdown_pages(
- array(
+ [
'name' => '',
'echo' => 0,
'show_option_none' => esc_html__( 'Select a Page', 'kirki' ),
'option_none_value' => '0',
'selected' => '',
- )
+ ]
);
// Hackily add in the data link parameter.
@@ -168,11 +186,11 @@ class Kirki_Control_Repeater extends Kirki_Control_Base {
if ( $url ) {
// 'id' is needed for form hidden value, URL is needed to display the image.
- $value = array(
+ $value = [
'id' => $attachment_id,
'url' => $url,
'filename' => $filename,
- );
+ ];
}
}
}
@@ -180,14 +198,38 @@ class Kirki_Control_Repeater extends Kirki_Control_Base {
}
}
}
+
+ }
+
+ /**
+ * Enqueue control related scripts/styles.
+ *
+ * @access public
+ * @since 1.0
+ * @return void
+ */
+ public function enqueue() {
+
+ parent::enqueue();
+
+ // Enqueue the script.
+ wp_enqueue_script( 'kirki-control-repeater', URL::get_from_path( dirname( dirname( __DIR__ ) ) . '/dist/control.js' ), [ 'jquery', 'customize-base', 'wp-color-picker' ], self::$control_ver, false );
+
+ // Enqueue the style.
+ wp_enqueue_style( 'wp-color-picker' );
+ wp_enqueue_style( 'kirki-control-repeater-style', URL::get_from_path( dirname( dirname( __DIR__ ) ) . '/dist/control.css' ), [], self::$control_ver );
+
}
/**
* Refresh the parameters passed to the JavaScript via JSON.
*
* @access public
+ * @since 1.0
+ * @return void
*/
public function to_json() {
+
parent::to_json();
$fields = $this->fields;
@@ -199,7 +241,9 @@ class Kirki_Control_Repeater extends Kirki_Control_Base {
if ( is_array( $this->filtered_value ) && ! empty( $this->filtered_value ) ) {
$this->json['value'] = $this->filtered_value;
}
+
$this->json['value'] = apply_filters( "kirki_controls_repeater_value_{$this->id}", $this->json['value'] );
+
}
/**
@@ -207,8 +251,11 @@ class Kirki_Control_Repeater extends Kirki_Control_Base {
* Allows the content to be overriden without having to rewrite the wrapper in $this->render().
*
* @access protected
+ * @since 1.0
+ * @return void
*/
protected function render_content() {
+
?>