/* 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":2355,"date":"2026-04-22T13:37:47","date_gmt":"2026-04-22T13:37:47","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=2355"},"modified":"2026-04-22T13:37:48","modified_gmt":"2026-04-22T13:37:48","slug":"eine-mobile-spielsaal-seite-besitzt-nun-wahrlich-die-gesamtheit-glucksspiel-versorger","status":"publish","type":"post","link":"https:\/\/klecet.edu.in\/alumni\/eine-mobile-spielsaal-seite-besitzt-nun-wahrlich-die-gesamtheit-glucksspiel-versorger\/","title":{"rendered":"Eine mobile Spielsaal Seite besitzt nun wahrlich die gesamtheit Glucksspiel-Versorger"},"content":{"rendered":"

Mobile Verfugbarkeit<\/h2>\n

Casino-Applications eignen hier irgendwas seltener. Dasjenige liegt zum einen angeschaltet diesseitigen Blockaden ein Echtgeld-Casino-Software inoffizieller mitarbeiter Orchard apple tree App Go shopping weiters inoffizieller mitarbeiter Bing Crisis Search. Sera existiert zwar zweite geige zig Zocker, die umherwandern nur minimal Smartphone apps weitere draufbugeln mochten.<\/p>\n

Diese verbrauchen bekannterma?en Speicherplatz unter anderem male auflage sich als nachstes wiederkehrend angeschaltet Posts denken. Mehr noch mochten einige Leute nichtens, so sehr sonstige sein eigen nennen, inside welchen Verbunden Casinos sie vortragen ferner so sie schier Glucksspiele geben. Unser fuhrt nochmals hierfur, so sehr mehrere Erreichbar Casinos keinesfalls Smartphone apps noch mehr programmieren. Sobald sera wafer existireren, uberprufe meine wenigkeit die wohl hinein einbilden Assessments.<\/p>\n

Nachfolgende google android Spielsalon Flanke bedingung jedoch jedweder Versorger sehen. Diese vermag ubersichtlich angepasste Menus haben. Jedweder Funktionen sind erwartet ohnedies ebenso entsprechend an dem Desktop verfugbar. Die Spiele durch jedem modernen Softwareanbietern bergwandern mobil perfekt ferner im stande sein beilaufig uber diesseitigen Beruhrungsempfindlicher bildschirm unter einsatz von angewandten Fingern gesteuert man sagt, sie seien.<\/p>\n

Hierbei prufe meinereiner daher hauptsachlich, inwieweit nachfolgende Mobilseite as part of wichtige mobilen Browsern wie gleichfalls Safari, Chrome, Firefox weiters Opera uff Cellphone oder Supplements via ios durch Apple inc und unter zuhilfenahme von Menschenahnlicher roboter bei Bing vollkommen lauft. Dabei uberprufe meine wenigkeit stichprobenartig nebensachlich viele Casinospiele. Web Casinos via Drosseln in folgendem Bezirk kann meine wenigkeit keineswegs anraten.<\/p>\n

Beim mobilen Spielen musst du ohne ausnahme zu diesem zweck sorgen, dass dein Akku genug voll sei. Bekannterma?en Smartphones on the market ferner Drugs lieber wollen hierfur, pauschal hinterher alle nachdem seien, wenn https:\/\/lordluckycasino-de.de\/<\/a> kein Verbindung in der nahe ist. Prufe im nachhinein selbige Verlasslichkeit das mobilen Internetzugang mit WLAN & dies android Netzwerk vorweg mark Vortragen damit echtes Piepen. Dazu spielst du an dem einfachsten einen Spielautomaten inoffizieller mitarbeiter Demonstration-Craft & schaust bei der sache, inwiefern dasjenige Spiel sporadisch steckenbleibt. Sofern nichtens, kannst du mit echtem Penunze beginnen und deinem mobilen Spielvergnugen as part of den tagesordnungspunkt Casinos entwickelt keinerlei etliche im Entwicklungsmoglichkeiten.<\/p>\n

Kundenbetreuung<\/h2>\n

Ein Kundenbetreuung mess momentan um … herum um ebendiese Zeitmesser 24\/8 zumindest qua diesseitigen Stay-Talk erzielbar coeur. Einen Reside-Talk findest du im Sprechblasen-Signal an der seite. Bestenfalls eingehen diese Beschaftigter vom Support inoffizieller mitarbeiter Are living-Chat nebensachlich in Teutonisch. Richtige Real time-Chat-Computer program zuteil werden lassen obendrein auch, wirklich so du dir auf irgendeiner Fragestellung das Eulersche konstante-Mail-Zeremoniell von der Wortwechsel zuschicken erlauben kannst.<\/p>\n

Au?erplanma?ig zum Are living-Communicate wird nebensachlich die eine E-Mail-Adresse, das Zusenden von Screenshots unter anderem Dokumenten fur jedes nachfolgende Verifizierung ermoglichen. Im ganzen ware auch ein Kontaktformular, sobald gentleman vor wenigen momenten gar keine Eulersche zahl-Electronic mails verschicken kann, dort guy keineswegs werden eigenes Apparatur beni\ufffdtigt. Nachdem diesem interessanten Kooperation angemessen sein je mich sekundar umfangreiche Hilfeseiten & ganz Aussagen, hinsichtlich meine wenigkeit sie vor kurzer zeit bei der Beschaffenheit folgende Casino Flanke aufgezahlt genoss. Sobald dasjenige inoffizieller mitarbeiter Casino erreichbar die gesamtheit vorhanden wird, wirkt zigeunern dies fein auf unsere Auswertung alle.<\/p>\n

Rechtliche Lage der Kasino Merkmale within Bundesrepublik deutschland<\/h2>\n

Seit dieser zeit dm a single.6.2021 gilt einen tick der innovative Glucksspielstaatsvertrag. Indem wurden diese alten Lizenzen aus Schleswig-Holstein, perish auf wackeligen rechtlichen Beinen standen, durch das einheitliches bundesweites Order ersetzt. Darum sein eigen nennen Moglich Casinos as part of Teutonia 2022 die eine neue Billigung, selbige as part of jedem Bundeslandern gleichformig ist. Doch expire Bestimmungen wurden bei den Glucksspielstaatsvertrag eingefuhrt?<\/p>\n

Glucksspielstaatsvertrag<\/h2>\n

Der Glucksspielstaatsvertrag per se war nichts Intereantes. Einen gab parece irgendwas vorweg oder das regelt sekundar dies Wette bei einen Spielbanken hinein Bundesrepublik deutschland. As part of angewandten bisherigen Versionen ist das Casino gangbar wahrhaftig gesetzwidrig. Insofern guter untergeordnet selbige alten Lizenzen leer Schleswig-Holstein so kurios. Ja diese widersprachen in der tat unserem Bundesgesetz, gleichartig entsprechend momentan ein Glucksspielstaatsvertrag einem EU-Relativ widerspricht.<\/p>\n

Wohl wenigstens cap ein neue Glucksspielstaatsvertrag endlich welches Wette im internet originell geregelt. Dabei besitzen offensichtlich diese Glucksspielbetreiber leer diesem Inland tatsi\ufffdchlich besagen. Denn eres wurden zig Einschrankungen eingefuhrt, die eingangig auf keinen fall doch dem Schutz das Zocker im vorfeld Spielsucht, zugunsten etliche mark Schutz ein Spielcasinos inoffizieller mitarbeiter Inland im vorfeld diesseitigen Online Casinos dient. Weitere Infos erhaltst du within folgendem Mentor zum legalen Glucksspiel unter anderem unserem Glucksspielstaatsvertrag.<\/p>\n","protected":false},"excerpt":{"rendered":"

Mobile Verfugbarkeit Casino-Applications eignen hier irgendwas seltener. Dasjenige liegt zum einen angeschaltet diesseitigen Blockaden ein Echtgeld-Casino-Software inoffizieller mitarbeiter Orchard apple tree App Go shopping weiters inoffizieller mitarbeiter Bing Crisis Search. Sera existiert zwar zweite geige zig Zocker, die umherwandern nur minimal Smartphone apps weitere draufbugeln mochten. Diese verbrauchen bekannterma?en Speicherplatz\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-2355","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/2355","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=2355"}],"version-history":[{"count":1,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/2355\/revisions"}],"predecessor-version":[{"id":2356,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/2355\/revisions\/2356"}],"wp:attachment":[{"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=2355"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=2355"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=2355"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}