/* 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":70998,"date":"2026-05-22T21:38:24","date_gmt":"2026-05-22T21:38:24","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=70998"},"modified":"2026-05-22T21:38:25","modified_gmt":"2026-05-22T21:38:25","slug":"nuestro-apogeo-sobre-bonos-falto-tanque-avala-a-la-competencia-sobre-el-sector-regulado-castellano","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/nuestro-apogeo-sobre-bonos-falto-tanque-avala-a-la-competencia-sobre-el-sector-regulado-castellano\/","title":{"rendered":"Nuestro apogeo sobre bonos falto tanque avala a la competencia sobre el sector regulado castellano"},"content":{"rendered":"

Nuestro equipo evalua casinos con bonos desprovisto tanque mediante discernimiento resultados desplazandolo hacia el pelo transparentes, adaptados dentro del comercio espanol regulado. Revisados 07 mayo 2026, nuestro aparato detalla campos de envite y no ha transpirado limites maximos, por 20\ufffd sobre tiradas gratis hasta cesion en direccion.<\/p>\n

Los tiradas gratuito indumentarias freespins acostumbran a asignarse con el fin de maquinas tragaperras especiales, aunque en ocasiones pueden usarse referente a juegos sobre mesa igual que una ruleta o en la barra Alawin Casino bono sin dep\u00f3sito<\/a> el blackjack. A continuacion, os indicamos una comparativa actual de los excelentes bonos sin deposito a su disposicion sobre casinos legales espanoles. Ten en mente recurrir una promo pulsando la campanita (“Permutar rebaja”). Casino Barcelona hace incluso 50\ufffd acerca de bonos desprovisto deposito para corroborar el perfil.<\/p>\n

Conforme la tarima, te pueden acotar nuestro tiempo para exigir el bono en el caso de que nos lo olvidemos la numero de juegos que hay en el comercio de llevarlo. Sabemos precisar, a como es generalidad de los bonos falto tanque se encuentran creados de nuevos personas y no ha transpirado solo pueden disfrutarse una vez. Por otra parte, los bonos carente tanque cual deben estas plataformas son variados desplazandolo hacia el pelo dan propiedades adecuadas.<\/p>\n

Los ganancias por en compania de estas tiradas gratuitas deben seguir instalaciones de envite para impedir conseguir retirarse<\/h2>\n

Pero aqui andamos charlando de Bonos casino desprovisto tanque, con las bonos de casino cual llegan a convertirse en focos de luces entregan dentro del recolectar, concierna lograr efectuarlo utilizando sistema que inscribiri? quiera. En el ambiente de los bonos de casino online, cada cosa que cual da la impresion bastante valioso con el fin de ser evidente posiblemente nunca lo resulte. Entre las juegos de casino gratuito mayormente populares hallaremos las maquinas tragamonedas, nuestro video bingo, el poker, dentro de otras.<\/p>\n

Si, algunos casinos poseen bonos de bienvenida sin tanque, cosa que deja retar desprovisto hacer cualquier tanque inicial. Como podri\ufffda ser, si recibes algun bono sobre recepcion sobre casino de 500\ufffd que usan algun rollover sobre 30x, tendras que situar tres.000\ufffd para impedir conseguir arrinconar los ganancias del bono. Nuestro rollover o naturaleza de envite seri\ufffda la cantidad sobre ocasiones cual deberias emplazar el prestigio de el bono antes de obtener apartar las ganancias obtenidas. Si, practicamente los esposos bonos de recibo de casino se encuentran individuos a requisitos de puesta (ademas amigos igual que rollover). Asegurate de leer los terminos desplazandolo hacia el pelo modos para saber las instalaciones de apuesta, que te permitiran eximir las ganancias de el bono. Para obtener cualquier bono de audiencia sobre casino, generalmente precisas registrarte alrededor casino online desplazandolo hacia el pelo realizar tu primer deposito.<\/p>\n

Concierna conocer que un bono sin tanque puede quedar persona a algunos requisitos de puesta, igual que cualquier diferente bono sobre casino. Sobre cualquier caso, ten sobre perfil cual las casinos que siguen bonos sobre recibimiento regalado sin tanque resultan extremadamente claros acerca de los reglas de utilizarlos ?No plantes de echarles un mirada! Ciertos casinos joviales bonos recepcion gratuito desprovisto tanque os posibilitan usar su bono sobre casino desprovisto deposito en todo juego, mientras cual demas las restringen an algunos juegos especialistas. ?Un monton de que necesitas conocer de gozar del extremo sobre su bono sobre casino carente tanque desplazandolo hacia el pelo otras bonos sobre casino! Generalmente, los bonos sobre casino falto tanque estaran restringidos para cuando un deportista cual uso algun bono carente tanque en la patologi\ufffda del tunel carpiano ultima especie. No obstante, las bonos desprovisto deposito siguen siendo uno de los bonos sobre casino mas usadas, por consiguiente podran llegar a ser en recursos favorable, no importa nuestro modelo de bono de casino regalado que estes empleando.<\/p>\n

Algunos de los bonos falto deposito mas completos y escalonados de el mercado<\/h2>\n

Algunos de los bonos VIP cual pueden presentar las casinos en internet a las jugadores highroller es una entrada a una velada sobre cualquier casino con mesas privadas de esparcimiento inclui\ufffddo cena y atraccion. La probable propuesta de bono de recarga puede ser la descuento de su na? ingresada en el realizarlo joviales algun determinado doctrina de paga. Cualquier bono ofrecido para algun casino online estaria cristiano a terminos y formas que se podri\ufffdan mover comunican de modo detallada desplazandolo hacia el pelo empleando cualquier lenguaje cerca para proveer dicho comprension. Por otro lado, el proporcii?n de la descuento suele permanecer que tiene que ver de la numero depositada, a mayor cantidad depositada gran proporcii?n sobre descuento. Los bonos sin deposito para clientes que ya se encuentran registrados suelen permanecer asociados en lanzamientos de cero millas juegos o en la barra promociones concretos. Los bonos desprovisto deposito dirigidos en nuevos usuarios generalmente son acerca de modo sobre venta promocional que se atadura con cuenta buscando nuestro registro, con el fin de que el usuario pudiese competir y asi saber cual juegos ofrece el casino.<\/p>\n

Accesar a cualquier bono desprovisto tanque acerca de cualquier casino en internet acerca de Portugal puede ponerse solo unos minutos, pero conviene completar el procedimiento cuidadosamente empezando desde nuestro inicial momento. Las bonos sobre casino falto deposito resultan promociones cual posibilitan competir desprovisto acceder dinero personal buscando completar nuestro registro. Para que te registres para reciente ocasion acerca de cualquier casino y no ha transpirado solicites nuestro bono de audiencia carente tanque, unicamente lo podrias realizar en cierta ocasion. El equipo de especialistas ha revisado los promociones de los mas grandes casinos online de Portugal busque para los mejores bonos sobre casino falto deposito. Escuchar, entender y ejecutar las terminos y no ha transpirado situaciones seri\ufffda fundamental al momento de aceptar cualquier bono sobre casino sin deposito.<\/p>\n

Una mixtura de un cantidad elevado de giros con manga larga algun exigencia sobre postura de solo 20x desplazandolo hacia el pelo 90 jornadas de completarlo seri\ufffda bastante positivo. Despues, te ofrecemos ciertos casinos europeos que tienen autorizacion acerca de Portugal desplazandolo hacia el pelo deben bonos falto deposito. Los como novedad jugadores se dan 50 tiradas sin cargo con tragamonedas Big Bass Splash del registrarse desplazandolo hacia el pelo confirmar su cuenta, sin necesidad sobre tanque.<\/p>\n","protected":false},"excerpt":{"rendered":"

Nuestro equipo evalua casinos con bonos desprovisto tanque mediante discernimiento resultados desplazandolo hacia el pelo transparentes, adaptados dentro del comercio espanol regulado. Revisados 07 mayo 2026, nuestro aparato detalla campos de envite y no ha transpirado limites maximos, por 20\ufffd sobre tiradas gratis hasta cesion en direccion. Los tiradas gratuito\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-70998","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/70998","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=70998"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/70998\/revisions"}],"predecessor-version":[{"id":70999,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/70998\/revisions\/70999"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=70998"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=70998"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=70998"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}