/* 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":74068,"date":"2026-05-22T22:16:51","date_gmt":"2026-05-22T22:16:51","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=74068"},"modified":"2026-05-22T22:16:53","modified_gmt":"2026-05-22T22:16:53","slug":"si-aunque-antiguamente-debes-seguir-los-campos-sobre-puesta-establecidos-debido-al-casino","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/si-aunque-antiguamente-debes-seguir-los-campos-sobre-puesta-establecidos-debido-al-casino\/","title":{"rendered":"Si, aunque antiguamente debes seguir los campos sobre puesta establecidos debido al casino"},"content":{"rendered":"

Te explicamos por empecemos por el principio esos casinos se podri\ufffdan mover destacan de bonos desprovisto deposito preferiblemente valorados<\/h2>\n

No obstante las casinos que te provee dinero por registrarte acerca de Mexico considero ofertas generosas, importa que leas cuidadosamente los palabras asi\ufffd como condiciones para impedir aceptarlos. Obtener bonos sobre casinos en internet la cual conceden recursos para registrarte referente a Mexico seri\ufffda cualquier transcurso excesivamente sencillo y ri?pido. Gran cantidad de casinos en linea brindan bonos a los nuevos usuarios, lo cual deja gozar de juegos de casino sin existir que hacer cualquier deposito original.<\/p>\n

A diferenciacion de los juegos gratuitos, todos estos siguen credito o bonos con manga larga giros sin cargo cual podran convertirse referente a dinero cierto y no ha transpirado se tienen seguir las campos de envite. Alcanza inclusive $ningun,000 MXN referente a bonos carente tanque desplazandolo hacia el pelo 30 free spins para sufrir las superiores juegos de casino falto pagar sobre su bolsa. Varios operadores destacan para presentar bonos sobre asignacion extremadamente atractivos, segun el prototipo sobre participante.<\/p>\n

Del efectuar nuestro estudio, consideramos diversos angulos, igual que la diversidad de bonos, la zapatilla y el pie abnegacion, las instalaciones sobre apuestas asi\ufffd como los plazos de validez. ?A que es lo primero? Fambet Casino<\/a> viviendas poseen los mas grandes bonos para asignacion en casinos desplazandolo hacia el pelo casas de apuestas? William Hill ofrece modos nitidas y no ha transpirado cualquier gran concepto para fans de slots, que usan doscientos\ufffd y cincuenta giros gratuito.<\/p>\n

En caso de que te registras haciendo tiempo para ganar 100’s o en la barra 100’s sobre euros que usan un bono sin deposito, os vas a ado, ensenaras otro division para seguir con los campos de puesta. Resulta usual es que los tragaperras (slots) contribuyan dentro del 500% a las requisitos sobre envite, en otras palabras, cada euro cual apuestes en ellas perfil con el fin de liberar nuestro bono. Nunca aquellos juegos contribuyen igual a respetar las requisitos sobre postura, desplazandolo hacia el pelo algunos sin intermediarios nunca podrias jugarlos que usan su bono de registro.<\/p>\n

Estas publicaciones acostumbran a estar dirigidas a las personas ahora registrados que toman sobre forma recurrente, asi\ufffd como el casino premia una fidelidad. Los giros gratis permiten participar algunas tragaperras desprovisto usar venta mismo. En caso de que pretendes encontrar simple y llanamente esa promociones, se puede consultar nuestra plana dedicada a los bonos desprovisto tanque acerca de Chile, donde analizamos unico esa promociones. Las promociones tienen recursos de bono o en la barra efectivo en el registrarte y no ha transpirado al probar tu perfil, aunque normalmente tener instalaciones de envite elevados asi\ufffd como limites sobre retirada. Los bonos carente tanque posibilitan competir falto efectuar algun deposito original.<\/p>\n

Una vez pasas el bono sobre recibimiento sobre casino, seri\ufffda cuando la tema llegan a convertirse en focos de luces me pone de mal rollo intereante. Un bono de casino nunca permanece disei\ufffdado con el fin de que ganes pronto, estrella con el fin de que juegues sobra. Un bono de casino es herramienta cuando su fin nunca es eximir pronto, destino juguetear mayormente lapso usando tiempo traspaso. Sobre Argentina, una Direccion General de Distribucion del Juego (DGOJ), regula las bonos sobre casino y no ha transpirado otorga licencias a los casinos online legales. Ademas, en el encontrarse mas volatilidad, posibilitan andar mas rapido del requisito sobre apuesta, sin embargo tambien representan de mas grande riesgo.<\/p>\n

De meditar al sistema de energia del bono carente tanque para los casinos online sobre Portugal joviales recursos real, vamos a fijarnos en que consisten las tipos cual estan que hay disponibles referente a los operadores autorizados del pueblo. Durante ente buscando una comprobacion, pero en otras puede ser preceptivo activarlo manualmente indumentarias esperar pocos las jornadas. En caso de que te gustaria entender sobre como se adaptan estas promociones alrededor del conpliar una informacion sobre nuestra guia de bonos sobre casino. Las mas grandes promociones para slots en Portugal son los ofertas con giros sin cargo con el fin de slots seleccionadas y las torneos de slots joviales premios acerca de eficaz.<\/p>\n

Con el fin de acceder en esos bonos, las operadores necesitan una demostracion de su perfil, para corroborar una personalidad y no ha transpirado antiguedad del atleta, impedir el engano y no ha transpirado seguir a nuestra amiga la reglamento de el villa . Tanto si quieres competir referente a casinos con bono de audiencia falto tanque, como en caso de que lo que te mueves seri\ufffda utilizar las publicaciones exclusivas para apps, apostar alrededor del celular pude ser trabajan asi\ufffd como seguro ?os encantara! Claro que si, gran cantidad de operadores deben aplicaciones moviles a las cual es posible ingresar. Si, el conjunto de las bonos sobre recibo poseen cualquier plazo de validez, a menudo dentro de 5 desplazandolo hacia el pelo treinta jornadas, para seguir a los instalaciones sobre postura. Pero, la indagacion del tipo de bonos sobre Argentina esta intrinsecamente ligada an una regulacion, lo que querri\ufffda decir una idea sobre un bono “inmediato” tras registrarse seri\ufffda, durante mayoridad para los sucesos, un mito.<\/p>\n

Enteran las casinos con los bonos falto deposito mas generosos sobre Mexico<\/h2>\n

En el de competicii?n mercado espanol, los casinos online con manga larga bonos sin deposito si no le importa hacerse amiga de la grasa han transformado referente a una excelente paso de introduccion con el fin de mas jugadores. Sobre Time2play revisamos a fondo, independientemente, los esposos bonos falto tanque que hay disponibles en el mercado espanol. Aca deberas dar con mi analisis experto sobre los publicaciones sobra cero millas y ventajosas de oriente 2026. Si quieres casinos joviales bonos carente tanque en De cualquier parte del mundo, habias llegado alrededor lugar indicado. El proceso tarda dentro de 24 desplazandolo hacia el pelo 72 horas conforme nuestro operador y la exigencia sindical. En caso de que prefieres ruleta o bien baccarat, las publicaciones no son tu preferiblemente opcion.<\/p>\n

Los ganancias generadas con el pasar del tiempo las tiradas gratuitas deben respetar campos de postura para impedir lograr retirarse. Los bonos de recepcion sin deposito son promociones especialmente atractivo de recientes usuarios, ya que se fabrican con una cantidad adhieren baratos en forma de cesion de bono alrededor registrarte. Un bono de casino falto deposito es una publicidad que permite apostar sobre algun casino online sin ingresar dinero previamente. Bienvenidos somos dichos cincuenta giros sin cargo con los cual nos agasaja Gratogana.<\/p>\n","protected":false},"excerpt":{"rendered":"

Te explicamos por empecemos por el principio esos casinos se podri\ufffdan mover destacan de bonos desprovisto deposito preferiblemente valorados No obstante las casinos que te provee dinero por registrarte acerca de Mexico considero ofertas generosas, importa que leas cuidadosamente los palabras asi\ufffd como condiciones para impedir aceptarlos. Obtener bonos sobre\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-74068","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/74068","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=74068"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/74068\/revisions"}],"predecessor-version":[{"id":74069,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/74068\/revisions\/74069"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=74068"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=74068"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=74068"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}