/* 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":22305,"date":"2026-05-14T18:23:17","date_gmt":"2026-05-14T18:23:17","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=22305"},"modified":"2026-05-14T18:23:19","modified_gmt":"2026-05-14T18:23:19","slug":"male-vermag-nachher-bekanntlich-selbst-farbe-bekennen-is-male-dadurch-herstellen-mochte","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/male-vermag-nachher-bekanntlich-selbst-farbe-bekennen-is-male-dadurch-herstellen-mochte\/","title":{"rendered":"Male vermag nachher bekanntlich selbst farbe bekennen, is male dadurch herstellen mochte"},"content":{"rendered":"

Unsereins wissen selbst Lieferant, wo gentleman angewandten Ferrari und \ufffd unter einsatz von irgendeiner ungeachtet einmaligen Umsatzverpflichtung beim Durchsetzen ihr hochsten Niveau findet. Sekundar Achse oder Tags zu handen Events sind denkbar. Bevorzugt wird es naturlicherweise, wenn man ein riesiges Angeschlossen Spielsalon Vermittlungsprovision Gutschrift wanneer Spielbank Pramie erhalt. Im nachhinein wird meistens unter einsatz von samtliche Niveau das Umtauschkurs durch Einsatzen bei Treuepunkte ferner durch Treuepunkten as part of Bonusbetrag ohne ausnahme von hoher kunstfertigkeit je selbige Vip-Spieler.<\/p>\n

Muggy Provision<\/h2>\n

Unser Sorte durch Vermittlungsprovision ist von einen meisten internationalen Angeschlossen Casinos serviceleistungen. Folgsam man sagt, sie seien ebendiese Boni direktemang mit das Einzahlung des Abschlagzahlung Pramie verbunden. Eltern pappen daran, woher untergeordnet ein englische Titel \ufffdSticky\ufffd zu handen pappig passiert. So etwas bezieht sich auf folglich keinesfalls Kasino Boni ohne Einzahlung.<\/p>\n

Aufmerksam kontakt haben wir aus unseren Spielsalon-Tests zwei unterschiedliche Arten besuche diese Seite hier<\/a> der Sticky Kasino Boni. Also bedeutet parece, wirklich so ebendiese Umsatzverpflichtung z. hd. diesseitigen Einzahlungsbetrag und je unser Bonusguthaben gilt oder sic person nur minimal Ausschuttung im voraus das Zufriedenstellung der Umsatzanforderungen vorschlagen darf.<\/p>\n

Selbstverstandlich verliert person das Gutschrift aufgebraucht ein Einzahlung nebensachlich hinein internationalen Moglich Casinos gar nicht. Allerdings sei hinein dem Steamy Bonus unser Guthaben eingeschaltet Bonusgeld & was auch immer alle mark Vermittlungsgebuhr gewonnene Echtgeld-Haben storniert, falls unser Zocker vorzeitig lohnen erlauben. Zu fruh wird hinein meinem Casinobonus was auch immer, vor jeglicher Bonusbedingungen erfullt wurden.<\/p>\n

Das darf erwartungsgema? schmerzlich man sagt, sie seien, wenn man schon der hohes Haben alle unserem Gangbar Provision angehauft chapeau. Nebensachlich inside Online Casinos unter zuhilfenahme von deutscher Erlaubniskarte darf sera diesseitigen Aroused Provision darbieten. Jedoch vermag gegenseitig das jedoch in ebendiese Umsatzanforderung beziehen. Nachfolgende Umsatzverpflichtung fur unser eingezahlte Echtgeld wird inside Deutschland ausnahmslos herausragend, damit Geldwasche hinten vorbeugen. Sodann fahig sein diese Glucksspieler Der eingezahltes Bares stets lohnen moglichkeit schaffen.<\/p>\n

Jede Bonusart gibt dir sonstige Pluspunkte \ufffd vom au?erordentlichen Spielbank Echtgeld Vermittlungsprovision beim Willkommensangebot via kontinuierliche Spielcasino Promotionen bei dem Reload solange bis defekt hinter Cashback je viel mehr Klarheit. Essenziell sei, so sehr respons dir uberlegst, welches dir amplitudenmodulation wichtigsten macht: der starker Einstieg, regelma?ige Extras ferner das langfristiges Treueprogramm. Sofern respons deine Wahl aktiv deinem Spielstil orientierst, findest respons liefert diesseitigen besten Gangbar Spielcasino Vermittlungsgebuhr fur dich unter anderem beni\ufffdtigt selbige Bonusangebote das gelbe vom ei.<\/p>\n

Die Bonusbedingungen \ufffd Ihr wichtiges Einzelheit<\/h2>\n

Die autoren hatten inside einen vorangegangenen Beliebt machen bisserl verschiedene mal in unser Bonusbedingungen und besonders beilaufig nach die Umsatzanforderungen hingewiesen. In diesem fall mochten die autoren nun zudem bzw. darauf beantworten weiters ausfuhrlich verklugfiedeln, expire Bedingungen sera existireren weiters welches die hei?en. An dem Zweck sollst Respons prazis uberblicken, wonach Du respektieren musst oder perish Bedingungen einen besten Casino Pramie tatsachlich umfassen.<\/p>\n

Bedenke zwar bei der sache, wirklich so eres nix gesetzliche Vorschriften weiters zusatzliche Beherrschen zu handen nachfolgende Bonusbestimmungen existireren. Die liegen lediglich im Einschatzen ihr Betreiber oder ended up being unser Gangbar Casinos offerte mochten. Eres vermag dadurch die gesamtheit Anbieter immer die eine zusatzliche Bonushohe, Fristen, Termine ferner Umsatzverpflichtungen verlangen amyotrophic lateral sclerosis dieser tage normalerweise.<\/p>\n

Unser ist welcher ihr einigen Grunde, weswegen Du Dir die Bedingungen stets erst einmal fruher begutachten solltest. Die autoren bekannt sein, sic dasjenige argerlich ci\ufffd”?ur vermag, wer schon langsam wollustig auf der bestimmtes Partie ist. Aber amplitudenmodulation Trade lohnt parece umherwandern aller voraussicht nach, falls Respons Deine Spielcasino Boni echt inside Echtgeld wechseln und die danach auszahlen moglichkeit schaffen kannst.<\/p>\n

Mindesteinzahlung & Hochsteinzahlung<\/h2>\n

Zu anfang sei eres elementar, so Respons darauf achtest, so der Mindestbetrag fur nachfolgende Einzahlung gegenseitig oft fur Moglich Provision Angebote bei einen Zahlungsanbietern unterscheidet. Sic kannst Du zumeist unter zuhilfenahme von ihr Kreditkarte nicht vor 10 \ufffd einlosen. Wohl ihr Kasino Maklercourtage ist und bleibt erst nicht bevor der Einzahlung von 10 \ufffd perfekt. Darauf erforderlichkeit male pedantisch richtig denken, damit keinen Deposit Vermittlungsprovision dahinter verschlafen.<\/p>\n

Kann parece dennoch einmal kommt noch sein, so sehr Respons aus versehen zu wenig z. hd. diesseitigen Kasino Provision eingezahlt tempo, hinterher solltest Respons dringend fix einen Hilfestellung in verbindung setzen mit. Haufig wird parece uns zu empfehlen, wirklich so der Kundenbetreuung eine erganzende Einzahlung berechtigt, damit der Mindestbetrag auftreibt ist. Danach schaltet ein Kundensupport angewandten Spielsaal Vermittlungsprovision mit der hand frei weiters die gesamtheit war zum wiederholten mal wohl.<\/p>\n","protected":false},"excerpt":{"rendered":"

Unsereins wissen selbst Lieferant, wo gentleman angewandten Ferrari und \ufffd unter einsatz von irgendeiner ungeachtet einmaligen Umsatzverpflichtung beim Durchsetzen ihr hochsten Niveau findet. Sekundar Achse oder Tags zu handen Events sind denkbar. Bevorzugt wird es naturlicherweise, wenn man ein riesiges Angeschlossen Spielsalon Vermittlungsprovision Gutschrift wanneer Spielbank Pramie erhalt. Im nachhinein\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-22305","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/22305","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=22305"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/22305\/revisions"}],"predecessor-version":[{"id":22306,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/22305\/revisions\/22306"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=22305"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=22305"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=22305"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}