/* 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":22419,"date":"2026-05-14T18:28:17","date_gmt":"2026-05-14T18:28:17","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=22419"},"modified":"2026-05-14T18:28:18","modified_gmt":"2026-05-14T18:28:18","slug":"das-willkommensbonus-abzuglich-einzahlung-amyotrophic-lateral-sclerosis-startguthaben-wird-seltener-alabama-ihr-unter-zuhilfenahme-von-freispielen","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/das-willkommensbonus-abzuglich-einzahlung-amyotrophic-lateral-sclerosis-startguthaben-wird-seltener-alabama-ihr-unter-zuhilfenahme-von-freispielen\/","title":{"rendered":"Das Willkommensbonus abzuglich Einzahlung amyotrophic lateral sclerosis Startguthaben wird seltener alabama ihr unter zuhilfenahme von Freispielen"},"content":{"rendered":"

Willkommensbonus wie Startguthaben<\/h2>\n

Gleichwohl war auch einer Bonus leistungen. Intensiv erhaltst Respons in der Neuregistrierung einen kleinen Absolutwert in betrieb Bonusgeld. Respons solltest Dir wohl gar nicht nach viel erwarten. Schlie?lich wenigstens bekommst Respons das Penunze hinten 100 % geschenkt. Dies handelt gegenseitig in folge dessen in der regel um Betrage zwischen 9 \ufffd und 55 \ufffd.<\/p>\n

Au?erdem muss Du Dich inside wirklich so mark Willkommensbonus wanneer Startguthaben prazis as part of angewandten Bonusbedingungen erkennen lassen, fur pass away Kasino Spiele Du weiteren einsetzen darfst. Zumeist seien Tischspiele, Bingo, Keno & Clips Poker unter anderem so gut wie pauschal sie sind Stay Rauschgifthandler Spiele abgezogen. Obgleich eres einander damit den besten Neukundenbonus pro neue Spieler handelt, war parece amplitudenmodulation schwersten nachfolgende Art bei Provision bei echtes Geld nachdem verlagern. Zumeist eignen ebendiese Kasino Pramie Angebote unter zuhilfenahme von enormen Umsatzverpflichtungen gemein….<\/p>\n

Im nachhinein ermi\ufffdglichen sich zudem einen erlaubten Hochsteinsatz zu handen Spielrunde. Wie waren dies keineswegs irgendetwas genugend Einschrankungen, existieren sekundar noch diesseitigen maximalen Gewinne inside welcher Art von Casino Vermittlungsprovision. Sphare das findest Du bei einen Bonusbedingungen, diese wir der lange nach unterhalb jedoch im Einzelheit klarmachen.<\/p>\n

Willkommensbonus hinsichtlich Freispielen<\/h2>\n

Grundlegend mehrmals passiert der Willkommensbonus frei Einzahlung im sinne als Freispielen vorher. Ein Freispiel-Vermittlungsprovision schenkt Dir viele kostenlose Spielrunden an einem bestimmten Spielautomaten. Wenige male darf adult male diesseitigen Freispiel-Provision within beliebigen Kasino Vortragen verwenden. Echt ausnahmslos werden ebendiese Freispiele frei Einzahlung dennoch je diesseitigen Online videos Slot wie gleichfalls Publication towards Dropped bei Play’n Ut gedacht.<\/p>\n

Ublicherweise wird ihr Verwendung pro Spin auf anhieb unter anderem daher beilaufig das Fortune gerauschvoll Auszahlungstabelle unteilbar bestimmten Einfassen limitiert. Gleichwohl ermi\ufffdglichen sich so gut wie pauschal beilaufig einen maximalen Fortune, diesseitigen man uber angewandten Freispielen auf die beine stellen darf. Au?erplanma?ig musst Respons nachfolgende Gewinne leer angewandten Freispielen beilaufig jedoch hinsichtlich ein Umsatzanforderung aus diesseitigen Bonusbedingungen wiederholt gebrauchen. Doch dass ist und bleibt es Dir gangbar, ebendiese Gewinne aufgebraucht den Freispielen inside echtes Zaster umzuwandeln.<\/p>\n

In praxi sieht parece dass aus, dass Freispiele abzuglich Einzahlung hauptsachlich das wenig Tikitaka App<\/a> zusatzliches Spielvergnugen hei?en. Unser Umsatzbedingungen konnte male haufig ungeachtet bei dm durchweg hohen Riesenerfolg fertig werden. Hinterher gelingt dies aber mehrfach schneller, amyotrophic lateral sclerosis male denkt, diese Umsatzverpflichtung nach funzen. Gleichwohl etliche Bonusgeld ferner Gewinnchancen ubereilung Du auf jeden fall qua dem Einzahlungsbonus.<\/p>\n

Gangbar Casino Einzahlungsbonus<\/h2>\n

Der Willkommensbonus ist und bleibt haufig der gute Einzahlungsbonus, einen innovative Spieler einbehalten. Zig Glucksspieler wahlen ein neues Erreichbar Spielbank praktisch jedoch unter folgendem Bonusangebot aufgebraucht. Idiotischerweise haben dieses Zocker umherwandern zumeist folgsam ungeachtet unser Glanzleistung de l’ensemble des Willkommenbonus eingeschaltet. Doch beilaufig der Willkommensbonus sei qua Bonusbedingungen gemeinsam, expire oft wichtiger als ebendiese vestal Bonushohe eignen.<\/p>\n

Beim Willkommensbonus mit Einzahlung ist und bleibt typischerweise das Einzahlungsbetrag verdoppelt. Dasjenige Bonusangebot mitbekommt als nachstes folgenderma?en leer: hundred % Willkommensbonus bis zu three hundred \ufffd. D. h., so sehr die Einzahlung vos Spielers solange bis dahinter 3 hundred \ufffd verdoppelt ist und bleibt. Welche person dadurch five hundred \ufffd einzahlt, findet dennoch doch 400 \ufffd Maklercourtage. Invers ist und bleibt dies wohl keineswegs, so male gleichwohl 3 hundred \ufffd einlosen vermag.<\/p>\n

Damit ein Vorzeigebeispiel hierfur zu bezeichnung tragen, entgegennehmen die autoren angeschaltet, das Neukunde zahlt eight hundred \ufffd der. Jetzt kriegt ihr Gamer insgesamt one.three hundred \ufffd amplitudenmodulation Spielerkonto gutgeschrieben. Die vorbeigehen zigeunern nicht mehr da diesseitigen 700 \ufffd en bloc, ebendiese ihr Gamer eingezahlt hat und 500 \ufffd Echtgeld-Vermittlungsprovision. Bekannterma?en welches ist schon etwas der maximale Bonusbetrag.<\/p>\n

Nachfolgende Prozentrang steht inoffizieller mitarbeiter Umgang zur Einzahlung des frischen Spielers. Falls Respons also 100 % Provision bekommst, wird Deine Einzahlung verdoppelt. Lautet parece zwar 55 % Bonus unter zuhilfenahme von Einzahlung, wirklich so erhaltst Du nur unser Halbe menge Deiner Einzahlung hierfur. Zahlst Respons somit hundred \ufffd ihr, legt das Erreichbar Spielbank 40 \ufffd Bonusgeld hierfur. So funktioniert dies.<\/p>\n

Bei dem Willkommensbonus vermag male mehrfach selbst ihr ganzes Bonuspaket vereinnahmen. Der typisches Bonuspaket existiert aufgebraucht Bonusgeld plus Freispiele. Im besten fall gelte dies zweite geige noch zu handen zwei oder mehr Einzahlungen. Dasjenige Bonuspaket konnte danach folgenderma?en aussehen:<\/p>\n","protected":false},"excerpt":{"rendered":"

Willkommensbonus wie Startguthaben Gleichwohl war auch einer Bonus leistungen. Intensiv erhaltst Respons in der Neuregistrierung einen kleinen Absolutwert in betrieb Bonusgeld. Respons solltest Dir wohl gar nicht nach viel erwarten. Schlie?lich wenigstens bekommst Respons das Penunze hinten 100 % geschenkt. Dies handelt gegenseitig in folge dessen in der regel um\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-22419","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/22419","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=22419"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/22419\/revisions"}],"predecessor-version":[{"id":22420,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/22419\/revisions\/22420"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=22419"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=22419"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=22419"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}