/* 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":22073,"date":"2026-05-14T18:10:14","date_gmt":"2026-05-14T18:10:14","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=22073"},"modified":"2026-05-14T18:10:15","modified_gmt":"2026-05-14T18:10:15","slug":"freund-und-feind-genannten-glucksspielbehorden-sie-sind-durch-angewandten-europaischen-aquivalenten-wanneer-auf-jeden-fall-weiters-vertrauenerweckend-angesehen","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/freund-und-feind-genannten-glucksspielbehorden-sie-sind-durch-angewandten-europaischen-aquivalenten-wanneer-auf-jeden-fall-weiters-vertrauenerweckend-angesehen\/","title":{"rendered":"Freund und feind genannten Glucksspielbehorden sie sind durch angewandten europaischen Aquivalenten wanneer auf jeden fall weiters vertrauenerweckend angesehen"},"content":{"rendered":"

Die eine Frage kommt nach den frischen Verbunden Casinos ausnahmslos auf \ufffd entsprechend darf dies ci\ufffd”?ur, so sehr so viele besondere Gangbar Casinos entfalten? Uns war inside diesseitigen vergangenen Jahren pauschal aufgefallen, sic stets etliche neue Angeschlossen Casinos angeschaltet ferner within Teutonia aktiv man sagt, sie seien. Weswegen das dass ist und bleibt? Die eine Entgegnung darauf entdeckt ein within dem extremen Konkurrenz im innern der Glucksspielbranche oder ihr Umstand, auf diese weise male Nutzern nur bei Bonusangebote anfertigen vermag.<\/p>\n

Meist wird sera ein Angelegenheit, so einige Vorhaben in der Karibik, in Malta ferner diesseitigen Philippinen wissentlich deren Angeschlossen-Literarischen werke nach Land der dichter und denker bringen, um nachfolgende verargerten Supporters bei der Kontoeroffnung persuadieren nachdem beherrschen. Das erfolgsrezept gibt diesen Vorhaben auch daruber hinaus Ziemlich \ufffd neue Angeschlossen Casinos sind within Deutschland riesig gefragt.<\/p>\n

Sie sind innovative deutsche Verbunden Casinos gewiss?<\/h2>\n

Hinein Teutonia gelte seit dem zeitpunkt diesem one. diese zweite Ausgabe de l’ensemble des staatlichen Glucksspielvertrags https:\/\/casinoincasino.de.com\/<\/a> . Wirklich war gedacht, so sehr ihr dennoch zudem bei angewandten Gangbar Casinos erlaubt zum besten geben konnt, die umherwandern folgende der Lizenzen aus Hessen oder\/oder Sachsen-Anhalt sichern konnten. Echt seien zwar und zig innovative Casinos unter einsatz von Europaische union Erlaubniskarte die passende weiters beliebte Zusatzliche, unser deutschen Spielern offensteht.<\/p>\n

Auf diese weise konnt ein etwa unter MGA Moglich Casinos, Provider unter einsatz von Lizenzen nicht mehr da Curacao, Kanada wegen der Kahnawake-Institution, Costa Rica, Anjouan weiters einstweilen zweite geige den Philippinen vertrauen. Deswegen im griff haben deutsche Ki?a\ufffdufern beilaufig unter anderem wahrlich inside brandneuen Moglich Casinos einzahlen, nachfolgende just mal gar nicht ebendiese Billigung nicht mehr da Bundesrepublik vom ersten Vierundzwanzig stunden kriegen hatten. Konkurrenzkampf belebt ja dasjenige Ladenlokal.<\/p>\n

Andere Angeschlossen Casinos bestimmen: Traktandum Bewertungskriterien<\/h2>\n

Wir sind ihr Meinung, sic besondere Angeschlossen Casinos die besseren Erreichbar Casinos sind ferner von euch allemal inside Betracht dahinter ziehen sind. Zwanghaft muss gunstgewerblerin Kontoeroffnung zudem keineswegs ergehen. Registriert euch gleichwohl sodann, sofern ebendiese weiteren Bewertungskriterien as part of angewandten neuen Verbunden Casinos eingehalten seien.<\/p>\n

    \n
  1. Lizenzierung und offizielle Angleichung: Sekundar der neues Moglich Spielsalon auflage die seriose Lizenzierung hatten. Casinos mit Lizenzen ode Deutschlands, hinsichtlich von diesseitigen Glucksspielbehorden auf Curacao, Malta, Kahnawake & angewandten Philippinen, gebot gleichwohl hohe Sicherheitsstandards. Kann die Lizenz nicht wolkenlos kenntlich gemacht eignen, empfiehlt sera zigeunern, bei dem Kundenservice nachzufragen.<\/li>\n
  2. Seriose Sicherheits- und Datenschutzma?nahmen: Deutliche Informationen soll ein intereantes Online Spielcasino beilaufig nach einen diesen Sicherheits- weiters Datenschutzma?nahmen handhaben. Seriose Erreichbar Casinos fangen gewiss, so die Angaben gut erhaltlich oder verstandlicherweise sind. Beilaufig falls einander unser Veranderungen unterdessen ahneln, mussen die leser je deutsche Besucher in Teutonisch ubersetzt worden sein.<\/li>\n
  3. Vielfaltiges Spielangebot: Spielspa? steht as part of einen neuen Erreichbar Casinos im Vordergrund. Sera klappt nachhaltig jedoch sodann, wer euch der vielfaltiges Spielangebot vorgibt. Daneben zahlreichen Spielautomaten berucksichtigen wir nebensachlich auf das Spielangebot inoffizieller mitarbeiter Real time Casino und nachfolgende Bevorzugung angeschaltet Prominenter-Tischen.<\/li>\n
  4. Renommierte Softwarehersteller: Organisation vermag ihr intereantes Gangbar Spielbank jedoch wegen der Erleichterung qua renommierten Softwareherstellern versprechen. Schaut von dort darauf, auf diese weise jedweder guten Ernahrer existent sind. Sucht bei keramiken insbesondere unter beri?chtigten Novoline Automaten verbunden sofern Auffuhren bei Quecksilber unter anderem Screwing Wulff.<\/li>\n
  5. Lukrative Boni weiters Promotionen: Ein Pramie vermag hinein keiner Erscheinungsform bei Moglich Spielcasino nachdem von kurzer dauer besuchen. Schaut in folge dessen bei eurem den neuesten Moglich Spielsaal uff selbige Glanzpunkt ein jeweiligen Bonusangebote so lange unter ebendiese Provision- weiters Umsatzbedingungen.<\/li>\n
  6. Sichere Zahlungsmethoden: Ein- weiters Auszahlungen sollen pauschal via beri?chtigten Zahlungsmethoden durchgefuhrt sie sind. Vermag nichtens prazis erkannt sie sind, die Zahlungsmethoden within eurem brandneuen Angeschlossen Spielsaal dahinter gewinn man sagt, sie seien, mess gesucht eignen. Keine frage ist konzentriert verzichtbar \ufffd Zuverlassigkeit geht zuvor. Wir raten intensiv eigens Casinos via rapider Auszahlung, damit eure Gewinne ohne tief Wartezeiten dahinter beziehen.<\/li>\n
  7. Droid Kongruenz: Unsereins vortragen mittlerweile in jedem fall auf dm Gurke inoffizieller mitarbeiter brandneuen Moglich Spielbank. Finden sie auf sie sind mess dies entweder via die eine android Website unter anderem folgende separat Spielsaal Iphone app. Zu diesem zweck konnte male euch mitnichten alternative Aufwendung anmelden oder welches android os Spielangebot eingeschaltet anderer Stelle mindern.<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"

    Die eine Frage kommt nach den frischen Verbunden Casinos ausnahmslos auf \ufffd entsprechend darf dies ci\ufffd”?ur, so sehr so viele besondere Gangbar Casinos entfalten? Uns war inside diesseitigen vergangenen Jahren pauschal aufgefallen, sic stets etliche neue Angeschlossen Casinos angeschaltet ferner within Teutonia aktiv man sagt, sie seien. Weswegen das dass\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-22073","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/22073","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=22073"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/22073\/revisions"}],"predecessor-version":[{"id":22074,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/22073\/revisions\/22074"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=22073"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=22073"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=22073"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}