/* 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":3343,"date":"2026-04-23T12:13:18","date_gmt":"2026-04-23T12:13:18","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=3343"},"modified":"2026-04-23T12:13:19","modified_gmt":"2026-04-23T12:13:19","slug":"denn-moglich-casinos-seien-dematerialisee-casinos-bezeichnet-in-unser-uber-das-internet-zugegriffen-sind-konnte","status":"publish","type":"post","link":"https:\/\/klecet.edu.in\/alumni\/denn-moglich-casinos-seien-dematerialisee-casinos-bezeichnet-in-unser-uber-das-internet-zugegriffen-sind-konnte\/","title":{"rendered":"Denn Moglich-Casinos seien dematerialisee Casinos bezeichnet, in unser uber das Internet zugegriffen sind konnte"},"content":{"rendered":"

Online-Spielbank<\/h2>\n

Regulierte Gangbar-Casinos weisen standardma?ig die ahnlich sein Gewinnchancen weiters Auszahlungsquoten genau so wie stationare Spielbanken aufwarts, wenngleich einige online casino fire joker<\/a> Betreiber, z. b. in Slot-Machine-Spielen, hohere Ruckzahlungsquoten zur Kundenrekrutierung andienen. Bei zahlreichen Anbietern fundig werden einander selbige Ruckzahlungsquoten der jeweiligen Spiele unter die Webseite. Kernprinzip einer Applikation pro das Glucksspiel wird ein funktionierender Zufallszahlengenerator. Within Tischspielen genau so wie Blackjack wird ihr Hausvorteil durch die Ausuben gegeben ferner einprogrammiert. Casinosoftware vermag bei Betreiberfirmen zweite geige gemietet seien.<\/p>\n

Angesichts steuerlicher & rechtlicher Pluspunkte besitzen viele Betreiber durch Moglich-Casinos diesen Lage inside Vor der kuste-Finanzplatzen hinsichtlich Gibraltar & innereuropaischen Landern wie gleichfalls Isle for Man, Zypern & Malta. In der regel prasentation diese Lander staatlich kontrollierte & reglementierte Glucksspiellizenzen an.<\/p>\n

Web-basierte Online-Casinos<\/h2>\n

Web-basierte Casinos konnen einfach uber einen Internet-Webbrowser genutzt werden. Welches Beladen bei Softwaresystem war daselbst gar nicht unabdingbar. Einzig hinein ubereinkommen komplexeren Zum besten geben kann bei der Prateritum die Zusammensetzen durch Zusatzprogrammen wie gleichfalls Java, Eye blink unter anderem Shockwave unabdingbar coeur, had been zudem seit dem zeitpunkt ihr Obsoleszenz von Java [ a single ] weiters Blink away [ 3 ] pauschal seltener geworden war. Unterdessen implementieren ohne ausnahme weitere Versorger durch Casino-Musizieren ihre Entwicklungen nur inoffizieller mitarbeiter HTML5-Ausma?. [ 4 ] [ 2 ]<\/p>\n

Fur jedes selbige Variante einer Spiele ist und bleibt folgende ausreichende Radius in der Internetverbindung zwingend, denn freund und feind Grafiken, Tonkunst und Animationen via diesseitigen Browser heruntergeladen werden mussen. Die mehrheit Erreichbar-Casinos aufweisen einstweilen uber Spiele, nachfolgende unter einsatz von der Html-Schnittstelle gesteuert seien vermogen, was namentlich zu handen android Endgerate genau so wie Android tablets ferner Smart phones sinnvoll sei, diese i?berhaupt kein Flash unterstutzen. [ 3 ]<\/p>\n

Download-basierte Casinos<\/h2>\n

Zahlreiche Online-Casinos erforderten in der Geschichte einen Install spezieller Programm. Unser Softwaresystem verbindet mit that is sich Service-Versorger wa Casinos und gepflegt den Umgang blank zwischengeschalteten World wide web-Browser. Download-basierte Casinos handhaben von haus aus rapider, alabama ebendiese Internet-basierten Aquivalente, hier samtliche Komponenten aufwarts ein lokalen Platte abgespeichert seien unter anderem gar nicht erst heruntergeladen seien zu tun sein. Gegenuber wird selbige Erstinstallation ein Computerprogramm wieder und wieder zeitaufwandig &, genau so wie inside ganz Montage von Programmen aus diesem World wide web, existiert dies Gunst der stunde durch integrierter Schadsoftware. [ 2 ]<\/p>\n

Spielangebot<\/h2>\n

Dies Spielangebot bei Verbunden-Casinos lasst sich einordnen within Spiele, unser ringsherum einen Elektronische datenverarbeitungsanlage getatigt werden \ufffd sogenannte immaterielle Kasino-Spiele \ufffd ferner Spiele, within denen das Kasino-Spiel wahrlich stattfindet, an dem das Gamer mit von Live-Streaming Technique in Echtzeit mitwirken konnte.<\/p>\n

Virtuelle Casino-Spiele<\/h2>\n

Within virtuellen Casinospielen handelt parece zigeunern also um immaterielle Umsetzungen von Spielautomaten weiters um Tischsspiele. Das Resultat eines Spiels ist daselbst durch Aussagen alle mark Pseudozufallszahlengenerator (englisch: pseudorandom occurrence lichtmaschine \ufffd PRNG) abhangig. Ebendiese Unterlagen kuren wie ebendiese Reihe ihr Karten within Kartenspielen, oder dasjenige Zweck eines Wurfelwurfs und Drehs amplitudenmodulation Live roulette-Kegelkorper. PRNGs fu?en nach ein Rang von mathematischen Regeln (PRNG-Algorithmus), eine lange Rangfolge durch Berappen erzeugen, selbige den Erscheinungsbild von echter Zufalligkeit erwecken. Obwohl selbige Arbeitsweise keinen echten Vorhersehung abkupfern kann, daselbst Universalrechner abzuglich externen Vorlage keinen echten Fatum nachmachen fahig sein, ausreichen PRNGs angewandten diskretesten Kriterien, damit diese Sportliches verhalten das Spiele dahinter zusichern.<\/p>\n

Die richtige Realisierung de l’ensemble des PRNG-Algorithmus (z. Type b. der Mersenne-Twister) gewahrleistet, sic nachfolgende Spiele und sportlich wie nebensachlich wider erwarten man sagt, sie seien. Schon uberlassen Online-Casinos keinen Einsicht hinein ebendiese Funktionsweise der Software, wie kommt es, dass… selbige Zocker protective covering darauf vertrauen sollen, sic gar kein uberma?iger Hausvorteil realisiert werde. Ebendiese Prinzip & der verwendete Algorithmus sei as part of regulierten Erreichbar-Casinos bei externen Instanzen uberpruft, um nachdem versprechen, dass ebendiese Gewinnmargen des Anbieters unter zuhilfenahme von angewandten Wege ein Spiele ahneln.<\/p>\n

Die noch mehr Arbeitsweise zur Leistungsnachweis des Fairplay bei Onlinecasinos existiert bei der Seed-key-Anfertigung durch den Spielcasino-Server im voraus der Anzeige ein Ergebnisse, oder unser Kundgabe der Ziffernsumme solch ein Werts. Uff mark Flugsteig de l’ensemble des Spiels, kann ihr Spieler einen Seed trick via ihr Webinterface betrachten weiters im zuge dessen versprechen, wirklich so ein Ergebnis vos Spiels keineswegs manipuliert ist. Selbige Prozedere funktioniert as part of Multiplayer-Musizieren (hinsichtlich bspw. Poker) doch keineswegs. [ 8 ]<\/p>\n","protected":false},"excerpt":{"rendered":"

Online-Spielbank Regulierte Gangbar-Casinos weisen standardma?ig die ahnlich sein Gewinnchancen weiters Auszahlungsquoten genau so wie stationare Spielbanken aufwarts, wenngleich einige online casino fire joker Betreiber, z. b. in Slot-Machine-Spielen, hohere Ruckzahlungsquoten zur Kundenrekrutierung andienen. Bei zahlreichen Anbietern fundig werden einander selbige Ruckzahlungsquoten der jeweiligen Spiele unter die Webseite. Kernprinzip einer Applikation\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-3343","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/3343","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/comments?post=3343"}],"version-history":[{"count":1,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/3343\/revisions"}],"predecessor-version":[{"id":3344,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/3343\/revisions\/3344"}],"wp:attachment":[{"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=3343"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=3343"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=3343"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}