/* Widget Name: Button Description: Create a custom button with flexible styling, icon support, and click tracking functionality. Author: SiteOrigin Author URI: https://siteorigin.com Documentation: https://siteorigin.com/widgets-bundle/button-widget-documentation/ Keywords: event, icon, link */ class SiteOrigin_Widget_Button_Widget extends SiteOrigin_Widget { public function __construct() { parent::__construct( 'sow-button', __( 'SiteOrigin Button', 'so-widgets-bundle' ), array( 'description' => __( 'Create a custom button with flexible styling, icon support, and click tracking functionality.', 'so-widgets-bundle' ), 'help' => 'https://siteorigin.com/widgets-bundle/button-widget-documentation/', ), array( ), false, plugin_dir_path( __FILE__ ) ); } public function get_settings_form() { return array( 'responsive_breakpoint' => array( 'type' => 'measurement', 'label' => __( 'Responsive Breakpoint', 'so-widgets-bundle' ), 'default' => '780px', 'description' => __( 'This setting controls when the Mobile Align setting will be used. The default value is 780px.', 'so-widgets-bundle' ), ), ); } public function initialize() { $this->register_frontend_styles( array( array( 'sow-button-base', plugin_dir_url( __FILE__ ) . 'css/style.css', array(), SOW_BUNDLE_VERSION, ), ) ); } public function get_widget_form() { return array( 'text' => array( 'type' => 'text', 'label' => __( 'Button Text', 'so-widgets-bundle' ), ), 'url' => array( 'type' => 'link', 'label' => __( 'Destination URL', 'so-widgets-bundle' ), 'allow_shortcode' => true, ), 'new_window' => array( 'type' => 'checkbox', 'default' => false, 'label' => __( 'Open in a new window', 'so-widgets-bundle' ), ), 'download' => array( 'type' => 'checkbox', 'default' => false, 'label' => __( 'Download', 'so-widgets-bundle' ), 'description' => __( 'The Destination URL will be downloaded when a user clicks on the button.', 'so-widgets-bundle' ), ), 'button_icon' => array( 'type' => 'section', 'label' => __( 'Icon', 'so-widgets-bundle' ), 'fields' => array( 'icon_selected' => array( 'type' => 'icon', 'label' => __( 'Icon', 'so-widgets-bundle' ), ), 'icon_color' => array( 'type' => 'color', 'label' => __( 'Icon Color', 'so-widgets-bundle' ), ), 'icon' => array( 'type' => 'media', 'label' => __( 'Image Icon', 'so-widgets-bundle' ), 'description' => __( 'Replaces the icon with your own image icon.', 'so-widgets-bundle' ), ), 'icon_placement' => array( 'type' => 'select', 'label' => __( 'Icon Placement', 'so-widgets-bundle' ), 'default' => 'left', 'options' => array( 'top' => __( 'Top', 'so-widgets-bundle' ), 'right' => __( 'Right', 'so-widgets-bundle' ), 'bottom' => __( 'Bottom', 'so-widgets-bundle' ), 'left' => __( 'Left', 'so-widgets-bundle' ), ), ), ), ), 'design' => array( 'type' => 'section', 'label' => __( 'Design and Layout', 'so-widgets-bundle' ), 'hide' => true, 'fields' => array( 'width' => array( 'type' => 'measurement', 'label' => __( 'Width', 'so-widgets-bundle' ), 'description' => __( 'Leave blank to let the button resize according to content.', 'so-widgets-bundle' ), ), 'align' => array( 'type' => 'select', 'label' => __( 'Align', 'so-widgets-bundle' ), 'default' => 'center', 'options' => array( 'left' => __( 'Left', 'so-widgets-bundle' ), 'right' => __( 'Right', 'so-widgets-bundle' ), 'center' => __( 'Center', 'so-widgets-bundle' ), 'justify' => __( 'Full Width', 'so-widgets-bundle' ), ), ), 'mobile_align' => array( 'type' => 'select', 'label' => __( 'Mobile Align', 'so-widgets-bundle' ), 'default' => 'center', 'options' => array( 'left' => __( 'Left', 'so-widgets-bundle' ), 'right' => __( 'Right', 'so-widgets-bundle' ), 'center' => __( 'Center', 'so-widgets-bundle' ), 'justify' => __( 'Full Width', 'so-widgets-bundle' ), ), ), 'theme' => array( 'type' => 'select', 'label' => __( 'Button Theme', 'so-widgets-bundle' ), 'default' => 'flat', 'options' => array( 'atom' => __( 'Atom', 'so-widgets-bundle' ), 'flat' => __( 'Flat', 'so-widgets-bundle' ), 'wire' => __( 'Wire', 'so-widgets-bundle' ), ), ), 'button_color' => array( 'type' => 'color', 'label' => __( 'Button Color', 'so-widgets-bundle' ), ), 'text_color' => array( 'type' => 'color', 'label' => __( 'Text Color', 'so-widgets-bundle' ), ), 'hover' => array( 'type' => 'checkbox', 'default' => true, 'label' => __( 'Use hover effects', 'so-widgets-bundle' ), 'state_emitter' => array( 'callback' => 'conditional', 'args' => array( 'hover[show]: val', 'hover[hide]: ! val', ), ), ), 'hover_background_color' => array( 'type' => 'color', 'label' => __( 'Hover Background Color', 'so-widgets-bundle' ), 'state_handler' => array( 'hover[show]' => array( 'show' ), 'hover[hide]' => array( 'hide' ), ), ), 'hover_text_color' => array( 'type' => 'color', 'label' => __( 'Hover Text Color', 'so-widgets-bundle' ), 'state_handler' => array( 'hover[show]' => array( 'show' ), 'hover[hide]' => array( 'hide' ), ), ), 'font' => array( 'type' => 'font', 'label' => __( 'Font', 'so-widgets-bundle' ), 'default' => 'default', ), 'font_size' => array( 'type' => 'measurement', 'label' => __( 'Font Size', 'so-widgets-bundle' ), 'default' => '1em', ), 'icon_size' => array( 'type' => 'measurement', 'label' => __( 'Icon Size', 'so-widgets-bundle' ), 'default' => '1.3em', ), 'padding' => array( 'type' => 'measurement', 'label' => __( 'Padding', 'so-widgets-bundle' ), 'default' => '1em', ), 'rounding' => array( 'type' => 'multi-measurement', 'label' => __( 'Rounding', 'so-widgets-bundle' ), 'default' => '0.25em 0.25em 0.25em 0.25em', 'measurements' => array( 'top' => array( 'label' => __( 'Top', 'so-widgets-bundle' ), ), 'right' => array( 'label' => __( 'Right', 'so-widgets-bundle' ), ), 'bottom' => array( 'label' => __( 'Bottom', 'so-widgets-bundle' ), ), 'left' => array( 'label' => __( 'Left', 'so-widgets-bundle' ), ), ), ), ), ), 'attributes' => array( 'type' => 'section', 'label' => __( 'Other Attributes and SEO', 'so-widgets-bundle' ), 'hide' => true, 'fields' => array( 'id' => array( 'type' => 'text', 'label' => __( 'Button ID', 'so-widgets-bundle' ), 'description' => __( 'An ID attribute allows you to target this button in JavaScript.', 'so-widgets-bundle' ), ), 'classes' => array( 'type' => 'text', 'label' => __( 'Button Classes', 'so-widgets-bundle' ), 'description' => __( 'Additional CSS classes added to the button link.', 'so-widgets-bundle' ), ), 'title' => array( 'type' => 'text', 'label' => __( 'Title Attribute', 'so-widgets-bundle' ), 'description' => __( 'Adds a title attribute to the button link.', 'so-widgets-bundle' ), ), 'on_click' => array( 'type' => 'text', 'label' => __( 'Onclick', 'so-widgets-bundle' ), 'description' => __( 'Run this JavaScript when the button is clicked. Ideal for tracking.', 'so-widgets-bundle' ), 'onclick' => true, ), 'rel' => array( 'type' => 'text', 'label' => __( 'Rel Attribute', 'so-widgets-bundle' ), 'description' => __( 'Adds a rel attribute to the button link.', 'so-widgets-bundle' ), ), ), ), ); } public function get_style_name( $instance ) { if ( empty( $instance['design']['theme'] ) ) { return 'atom'; } return $instance['design']['theme']; } /** * Get the variables for the Button Widget. * * @return array */ public function get_template_variables( $instance, $args ) { $button_attributes = array(); $attributes = $instance['attributes']; $classes = ! empty( $attributes['classes'] ) ? $attributes['classes'] : ''; if ( ! empty( $classes ) ) { $classes .= ' '; } $classes .= 'sowb-button ow-icon-placement-' . $instance['button_icon']['icon_placement']; if ( ! empty( $instance['design']['hover'] ) ) { $classes .= ' ow-button-hover'; } $button_attributes['class'] = implode( ' ', array_map( 'sanitize_html_class', explode( ' ', $classes ) ) ); if ( ! empty( $instance['new_window'] ) ) { $button_attributes['target'] = '_blank'; $button_attributes['rel'] = 'noopener noreferrer'; } if ( ! empty( $instance['download'] ) ) { $button_attributes['download'] = null; } if ( ! empty( $attributes['id'] ) ) { $button_attributes['id'] = $attributes['id']; } if ( ! empty( $attributes['title'] ) ) { $button_attributes['title'] = $attributes['title']; } if ( ! empty( $attributes['rel'] ) ) { if ( isset( $button_attributes['rel'] ) ) { $button_attributes['rel'] .= " $attributes[rel]"; } else { $button_attributes['rel'] = $attributes['rel']; } } $icon_image_url = ''; if ( ! empty( $instance['button_icon']['icon'] ) ) { $attachment = wp_get_attachment_image_src( $instance['button_icon']['icon'] ); if ( ! empty( $attachment ) ) { $icon_image_url = $attachment[0]; } } return array( 'button_attributes' => apply_filters( 'siteorigin_widgets_button_attributes', $button_attributes, $instance ), 'href' => ! empty( $instance['url'] ) ? $instance['url'] : '', 'on_click' => ! empty( $attributes['on_click'] ) ? $attributes['on_click'] : '', 'align' => $instance['design']['align'], 'icon_image_url' => $icon_image_url, 'icon' => $instance['button_icon']['icon_selected'], 'icon_color' => $instance['button_icon']['icon_color'], 'text' => $instance['text'], ); } /** * Get the variables that we'll be injecting into the less stylesheet. * * @return array */ public function get_less_variables( $instance ) { if ( empty( $instance ) || empty( $instance['design'] ) ) { return array(); } $text_color = isset( $instance['design']['text_color'] ) ? $instance['design']['text_color'] : ''; $button_color = isset( $instance['design']['button_color'] ) ? $instance['design']['button_color'] : ''; $less_vars = array( 'button_width' => isset( $instance['design']['width'] ) ? $instance['design']['width'] : '', 'button_color' => $button_color, 'text_color' => $text_color, 'icon_size' => ! empty( $instance['design']['icon_size'] ) ? $instance['design']['icon_size'] : '1.3em', 'hover_text_color' => ! empty( $instance['design']['hover_text_color'] ) ? $instance['design']['hover_text_color'] : $text_color, 'hover_background_color' => ! empty( $instance['design']['hover_background_color'] ) ? $instance['design']['hover_background_color'] : $button_color, 'font_size' => isset( $instance['design']['font_size'] ) ? $instance['design']['font_size'] : '', 'rounding' => isset( $instance['design']['rounding'] ) ? $instance['design']['rounding'] : '', 'padding' => isset( $instance['design']['padding'] ) ? $instance['design']['padding'] : '', 'has_text' => empty( $instance['text'] ) ? 'false' : 'true', 'responsive_breakpoint' => $this->get_global_settings( 'responsive_breakpoint' ), 'align' => ! empty( $instance['design']['align'] ) ? $instance['design']['align'] : 'center', 'mobile_align' => ! empty( $instance['design']['mobile_align'] ) ? $instance['design']['mobile_align'] : 'center', 'has_button_icon' => empty( $instance['button_icon']['icon_selected'] ) ? 'false' : 'true', ); if ( ! empty( $instance['design']['font'] ) ) { $font = siteorigin_widget_get_font( $instance['design']['font'] ); $less_vars['button_font'] = $font['family']; if ( ! empty( $font['weight'] ) ) { $less_vars['button_font_weight'] = $font['weight_raw']; $less_vars['button_font_style'] = $font['style']; } } return $less_vars; } /** * Make sure the instance is the most up to date version. * * @return mixed */ public function modify_instance( $instance ) { if ( empty( $instance ) ) { return array(); } $migrate_props = array( 'button_icon' => array( 'icon_selected', 'icon_color', 'icon', ), 'design' => array( 'align', 'theme', 'button_color', 'text_color', 'hover', 'hover_text_color', 'hover_background_color', 'font_size', 'rounding', 'padding', ), 'attributes' => array( 'id', ), ); foreach ( $migrate_props as $prop => $sub_props ) { if ( empty( $instance[ $prop ] ) ) { $instance[ $prop ] = array(); foreach ( $sub_props as $sub_prop ) { if ( isset( $instance[ $sub_prop ] ) ) { $instance[ $prop ][ $sub_prop ] = $instance[ $sub_prop ]; unset( $instance[ $sub_prop ] ); } } } } // Migrate onclick setting to prevent Wordfence flag. if ( ! empty( $instance['attributes'] ) && ! empty( $instance['attributes']['onclick'] ) ) { $instance['attributes']['on_click'] = $instance['attributes']['onclick']; } // If the mobile_align setting isn't set, set it to the same value as the align value. if ( ! empty( $instance['design'] ) && ! empty( $instance['design']['align'] ) && empty( $instance['design']['mobile_align'] ) ) { $instance['design']['mobile_align'] = $instance['design']['align']; } // Migrate predefined settings to more customizable settings. if ( ! empty( $instance['design']['font_size'] ) && is_numeric( $instance['design']['font_size'] ) ) { $instance['design']['font_size'] .= 'em'; } if ( ! empty( $instance['design']['padding'] ) && is_numeric( $instance['design']['padding'] ) ) { $instance['design']['padding'] .= 'em'; } if ( ! empty( $instance['design']['rounding'] ) && is_numeric( $instance['design']['rounding'] ) ) { $instance['design']['rounding'] = $instance['design']['rounding'] . 'em ' . $instance['design']['rounding'] . 'em ' . $instance['design']['rounding'] . 'em ' . $instance['design']['rounding'] . 'em'; } if ( empty( $instance['design']['icon_size'] ) ) { $instance['design']['icon_size'] = '1.3em'; } return $instance; } public function get_form_teaser() { if ( class_exists( 'SiteOrigin_Premium' ) ) { return false; } return array( sprintf( __( 'Add a beautiful tooltip to the Button Widget with %sSiteOrigin Premium%s', 'so-widgets-bundle' ), '', '' ), ); } } siteorigin_widget_register( 'sow-button', __FILE__, 'SiteOrigin_Widget_Button_Widget' );{"id":72894,"date":"2026-05-22T22:08:51","date_gmt":"2026-05-22T22:08:51","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=72894"},"modified":"2026-05-22T22:08:52","modified_gmt":"2026-05-22T22:08:52","slug":"en-verdad-seri%ef%bf%bda-uno-de-los-bonos-carente-tanque-con-el-fin-de-casino-mayormente-tradicionales","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/en-verdad-seri%ef%bf%bda-uno-de-los-bonos-carente-tanque-con-el-fin-de-casino-mayormente-tradicionales\/","title":{"rendered":"En verdad, seri\ufffda uno de los bonos carente tanque con el fin de casino mayormente tradicionales"},"content":{"rendered":"

El proceso con el fin de conseguir su bono sin tanque referente a casinos en internet espanoles sigue un viaje inercia<\/h2>\n

Estas tarjetitas suelen ser de una ventaja preestablecido y tambien acostumbran a mostrar ciertos campos sobre postura. Asi\ufffd pues, por Optimobet recomendamos escuchar concienzudamente las palabras desplazandolo hacia el pelo situaciones de todo promocion a la que accedas con el fin de evitar sorpresas.<\/p>\n

Algunos de los de edad avanzada importantes para los casinos en internet, continuamente durante bastante ha sido dicho gigantesco disparidad de bonos sobre casino. Las instalaciones sobre envite de mas bajos son, por lo tanto, mayormente accesibles para jugadores que desean delimitar es invierno consumo. Notaras que hay en el comercio bonos de cincuenta giros sin cargo falto tanque pero que estan disponibles unico con el fin de juegos sobre bandada.<\/p>\n

Menos liberacion, sin embargo a veces joviales DBET<\/a> instalaciones de postura de mas bajos. Para jugadores sobre Madrid, Barcelona o cualquier urbe espanola, es el metodo mayormente asequible sobre indagar nuevas alternativas en 2026. Conocemos cual 6 sobre varones ofrecian algun tipo sobre bono regalado carente tanque, en el momento en que 5\ufffd hasta treinta giros gratuitos.<\/p>\n

Los bonos de recibimiento clasicos necesitan tanque inicial<\/h2>\n

Pero los bonos sin deposito de casino sobre preparado son poco usuales acerca de Chile, si existen promociones especificas sobre mesas sobre ruleta online. Las ofertas podran aportarte dinero extra o en la barra tiradas gratis, asi que es conveniente examinar una parte sobre promociones sobre tu casinoprueba a como es propaganda se ha rebosante referente a tu perfil de forma adecuada y no ha transpirado seguir las campos de envite para demandar hacen de ganancias. Variable tu bono de casino desprovisto tanque buscando registrarte y corroborar tu cuenta. “Para seleccionar lo que casinos falto tanque incluimos con lista, imaginamos el peso favorable de estas ofertasparamos las decenas de bono, los instalaciones, una antiguedad, acerca de vayamos por partes juegos se puede usarlos asi\ufffd como el inmenso es posible ganar efectivamente”.<\/p>\n

Pero asimismo hay ofertas que le dan acceso a los juegos de tragaperras a tu disposicion alrededor sitio de el casino. En cierta ocasion seleccionado nuestro bono sin deposito, debes cumplir los novios campos de el publicidad con el fin de canjearlo. Estas anuncios desprovisto tanque tienen igual que fin sacar cual los usuarios se registren del sitio del casino o, en caso de que bien posean una cuenta, apresurar es invierno tarea. Nuestro bono falto deposito resulta una promocion cual provee el instante de ganar premios reales sin necesidad de que las jugadores inviertan sus propios dinero.<\/p>\n

Asimismo poseen su ruleta de su fortuna cual brinda premios diarios y la posibilidad de optar a premios en competente utilizando las codigos sobre las depositos. Casino777 brinda promociones temporales extremadamente variadas y no ha transpirado que le otorgan algun gigantesco abano sobre posibilidades posibilidades a las jugadores. Tras ello recibiras sobre manera automatizada cualquier bono que tiene una biografia excesivamente sisa sobre 3 jornadas de decrepitud asi\ufffd como cuyos instalaciones de puesta son sobre situar 30 veces la cuantia del igual.<\/p>\n

En el universo de los casinos online, los bonos falto deposito se va a apoyar sobre el silli\ufffdn deberian transformado acerca de la aparejo irresistible con el fin de fascinar en nuevos jugadores. Por ejemplo, si han aprovechado una propuesta de tiradas gratuitas sin apuestas desplazandolo hacia el pelo hallan ganado una recursos, suele transferir sus ganancias a su perfil. Debido a esta razon, esta rebaja es una de las recompensas promocionales mayormente populares acerca de las casinos en internet. A pesar de la notoriedad, un bono falto envite asi\ufffd como desprovisto tanque no es en la mayoria para sucesos su mejor proposicion de bonos sobre un casino online. Asimismo, solamente se puede obtener esa proposicion una vez con el fin de tu cuenta acerca de un determinado casino en internet. Aunque las bonificaciones deben muchas prerrogativas, ademi?s se debe saber algunos problemas.<\/p>\n

Las bonos sin deposito con el fin de casino en preparado ofrecen la pericia inmersiva con manga larga crupieres reales asi\ufffd como juegos de tiempo conveniente, complementando los bonos inercia. Los bonos desprovisto tanque y no ha transpirado los codigos de bonos son la decision frecuente de los cero millas jugadores referente a las casinos online. Un bono falto deposito resulta una propaganda que permite situar y no ha transpirado ganar sobre juegos economicos cierto acerca de casinos en linea desprovisto necesidad de hacer cualquier tanque. Empezando desde los cientos ofrecidos inclusive los instalaciones de puesta, las plazos sobre validez asi\ufffd como los juegos elegibles. Al elaborar el analisis, consideramos diversos enfoque, como una variedad de bonos, la patologi\ufffda del tunel carpiano filantropia, los requisitos sobre apuestas asi\ufffd como las plazos de validez. Consigue hasta $un,000 MXN referente a bonos desprovisto deposito desplazandolo hacia el pelo 20 free spins con el fin de experimentar las mejores juegos sobre casino carente invertir sobre tu bolsillo.<\/p>\n

Suelen no se trata viable utilizar bicicletas un bono sin tanque, pero alguna vez si hemos visto que cualquier similar casino, brinda dos bonos sin deposito. Referente a las bonos con tanque, el jugador debe alcanzar recursos particular de desbloquear una propaganda, entretanto que sobre las bonos desprovisto tanque hay gasto inicial. En ocasiones, las bonos desprovisto tanque se encuentran que hay disponibles separado durante un temporada bastante concreto, igual que nuestro saque de un casino o bien la promocion exacto ligada en un suceso concreto. Cualquier bono desprovisto tanque seri\ufffda cualquier tipo sobre bono de admision cual deben algunos casinos online a sus como novedad usuarios y no ha transpirado cual permite participar sin elaborar un alta sobre venta.<\/p>\n

En caso de que la proposicion promete dinero retirable desprovisto caracteristicas claras, recomendamos repasar las palabras completos. Con el fin de reponer an una duda que bastantes jugadores hacen – \ufffd?se puede arrinconar recursos real en compania de cualquier bono carente deposito acerca de Espana? Tu debemos comparado bonos falto tanque referente a Argentina con el fin de jugadores, seleccionando las superiores casinos. Aqui os traemos las mejores consejos para que disfrutes con plenitud de tu bono falto deposito. Los esposos bonos falto tanque deben un epoca de validez, cual suele permanecer entre los 14 y no ha transpirado 20 las jornadas. La alternativa cual no esta mas profusamente es revisar los consejos sobre otras jugadores sobre el casino.<\/p>\n","protected":false},"excerpt":{"rendered":"

El proceso con el fin de conseguir su bono sin tanque referente a casinos en internet espanoles sigue un viaje inercia Estas tarjetitas suelen ser de una ventaja preestablecido y tambien acostumbran a mostrar ciertos campos sobre postura. Asi\ufffd pues, por Optimobet recomendamos escuchar concienzudamente las palabras desplazandolo hacia el\u2026<\/p>\n

Continue reading<\/span><\/i><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-72894","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/72894","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/comments?post=72894"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/72894\/revisions"}],"predecessor-version":[{"id":72895,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/72894\/revisions\/72895"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=72894"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=72894"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=72894"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}