/* 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":72012,"date":"2026-05-22T22:00:39","date_gmt":"2026-05-22T22:00:39","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=72012"},"modified":"2026-05-22T22:00:40","modified_gmt":"2026-05-22T22:00:40","slug":"algunos-de-los-bonos-carente-deposito-de-mas-completos-desplazandolo-hacia-el-pelo-escalonados-de-el-comercio-2","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/algunos-de-los-bonos-carente-deposito-de-mas-completos-desplazandolo-hacia-el-pelo-escalonados-de-el-comercio-2\/","title":{"rendered":"Algunos de los bonos carente deposito de mas completos desplazandolo hacia el pelo escalonados de el comercio"},"content":{"rendered":"

Igualmente vale examinar plazos, limites de envite asi\ufffd como otras palabras de su propaganda<\/h2>\n

Aqui os mostramos una lista para los bonos desprovisto deposito ultimas cual se encuentran que hay en el comercio acerca de tu pais, en otras palabras, aquellos que los casinos ha promovido desde hace poco asi\ufffd como debemos complemento a la apoyo de datos. Fruto sobre eso, en el mundo de internet existe 100’s sobre bonos sin deposito, por lo que indagar el sobra sencillo puede ser cualquier procedimiento abrumador. Las bonos resultan extremadamente populares dentro de los jugadores, especialmente las bonos carente tanque, ya que resultan resulta parecido a tomar recursos gratuito. Quieres anuncios de bonos de casinos online cual aun no hayas aprovechado, aqui los hallaras todos. Lista para bonos sobre casinos online ultimas de casinos cual han despejado finalmente asi\ufffd como sobre fabricas consolidadas. Si, por este motivo unicamente deberias cumplir nuestro exigencia sobre postura (rollover) propuesto por el casino en internet donde os registraste.<\/p>\n

Los tiradas sin cargo indumentarias freespins suelen asignarse de maquinas tragaperras especiales, no obstante a veces pueden usarse sobre juegos sobre bandada igual que la ruleta o bien el blackjack. Varios operadores combinan cada una de alternativas, permitiendote disfrutar de traspaso sobre bono y no ha transpirado freespins acerca de la unica publicidad. Casino Barcelona hace inclusive 50\ufffd referente a bonos falto deposito por verificar la cuenta. Unico por registrarte asi\ufffd como confirmar tu cuenta, deberias elegir dentro de 2 clases sobre bono, conforme realices slots en el caso de que nos lo olvidemos juegos sobre casino.<\/p>\n

Empezando por 2010, nuestro equipo deberian evaluado algunas un.200 casinos en internet, Fambet Casino sitio web oficial<\/a> rastreando bonos sin tanque y otras publicaciones destacadas. Acerca de VegasSlotsOnline no unico proponemos bonos sin tanque sobre calidad, suerte que ademas compartimos la emocion debido al juego en internet. Es magnnifica con el fin de quienes desean percibir diferentes opciones carente desembolsar dinero cierto. Enseguida, te mostramos las clases mas utilizadas de bonos sin tanque que encontraras sobre los mas grandes casinos en internet.<\/p>\n

Mas alla de el coste del bono, lo perfectamente importante es que el camara se encuentre regulado, aplique controles efectivos y ofrezca reglas transparentes. Solo permanece casinos cual he vivido tu mismo desplazandolo hacia el pelo cuya informacion permite conocer en compania de exactitud empecemos por el principio se podri? aguardar antes de registrarte. Sobre levante casino online con manga larga bono sin tanque, las juegos sobre entidad financiera no contribuyen al bono, entretanto a como es ruleta y los juegos sobre vivo separado lo perfectamente realizan acerca de cualquier diez% y una treintena%, respectivamente. Asi\ufffd como conveniente aun en caso de que os gustan las tragaperras de video indumentarias clasicas, puesto que estas contribuyen cualquier 100% en levante bono de balde de casino carente deposito. Un naturaleza de postura accesible sobre x35 como quien provee OneCasino no hablamos demasiado sencillo sobre encontrar desplazandolo hacia el pelo la opcion mas conveniente es que guarda la validez sobre 30 dias. Es por eso que, en caso de que quieres ocurrir el rato jugando referente a un casino joviales bono gratuito desprovisto tanque, debes desarrollar su propio criterio de conocer en caso de que ese bono seri\ufffda preferible o bien nunca.<\/p>\n

Tambien que las promociones quieren adaptarse a los formas con el fin de entrar a las operadores online<\/h2>\n

Al siguiente casino, los rivales es sobre semejante importancia que seducir seres recientes seri\ufffda un desafio importante. Podri\ufffdamos considerar cual los bonos sobre casinos falto tanque inicial son ventajosos lo tanto con el fin de jugadores para los casinos.<\/p>\n

Una vez seleccionado el bono sin deposito, deberias cumplir los novios requisitos de el promocion para canjearlo. Las publicaciones sin deposito deben igual que meta conseguir que la gente llegan a convertirse en focos de luces registren alrededor del lugar del casino en el caso de que nos lo olvidemos, en caso de que debido a tengan una cuenta, acelerar dicho faena. El bono carente tanque resulta una publicidad cual ofrece el momento de ganar premios reales desprovisto urgencia de que los jugadores inviertan sus propios dineros. Con los bonos sin tanque, las casinos obtienen nuevos usuarios, de los cuales podran obtener beneficios. En un caso, el deportista recibe la recompensa carente existir cual emplear la zapatilla y el pie personal recursos, entretanto cual en el segundo caso invierte sus propios dinero.<\/p>\n

Si estas buscando los superiores casino sin deposito cual dan bonos debido al comodo realizado de participar habias llegado la hora al lugar preciso. Generalmente, si existen un importe maximo de ganancias cual se podri? eximir en compania de cualquier bono carente deposito, y oriente se halla comprobado por cada casino asi\ufffd como cambia referente a cualquier bono en particular, asi que vas a probar en que consiste nuestro de cada uno sobre manera personal. Por supuesto cual se podri? recurrir algunos bonos falto tanque acerca de otras casinos, unicamente tienes que mirar en que consisten aquellos que cuentan de individuo y crearte un perfil sobre apenas un par de min.. Comunmente, si, confirmar tu perfil es algunos de los instalaciones para lograr escoger en un bono sin tanque sobre la mayoridad de los casinos sobre De cualquier parte del mundo.<\/p>\n

Atane cual selecciones dentro de giros gratuito o eficiente alrededor bono clase desprovisto deposito. Varios bonos desprovisto deposito pueden manifestarse asi debido a cual te invitamos a permanecer atentoo ahora es conocido los bonos falto tanque separado se encuentran que existen de mas jugadores del casino escogido.<\/p>\n

Las bonos sin tanque deben seguir para el resto de normativas de la Gobierno Generico de Orden de el Entretenimiento (DGOJ) Con el fin de arrinconar el recursos cual se apetito acerca de los casinos sobre linea desprovisto bonos sobre tanque, habitualmente existen instalaciones sobre puesta. Lo cual pasa incluso si quieres elaborar un jubilacion en terminar las requisitos de puesta indumentarias incluso si participas acerca de otro bono. Lee atentamente las campos del casino para que el dinero de el bono sin tanque no concluya siendo retirado sobre tu cuenta. Deberias encontrarse cuidado dentro del retar que usan bonos carente tanque, ya que hay terminos y caracteristicas estrictos cual las acompanan.<\/p>\n

Aunque de lo que te sea posible meditar, los giros sin cargo falto tanque son excesivamente simples de usar. El menor de el relacion, aunque no por eso menos importante, seri\ufffda 888 Casino. Opiniones de 888 ?? Giros regalado falto tanque 88 Giros De balde ?? Empuje ?? RTP 97% ?? Facultad DGOJ<\/p>\n","protected":false},"excerpt":{"rendered":"

Igualmente vale examinar plazos, limites de envite asi\ufffd como otras palabras de su propaganda Aqui os mostramos una lista para los bonos desprovisto deposito ultimas cual se encuentran que hay en el comercio acerca de tu pais, en otras palabras, aquellos que los casinos ha promovido desde hace poco asi\ufffd\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-72012","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/72012","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=72012"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/72012\/revisions"}],"predecessor-version":[{"id":72013,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/72012\/revisions\/72013"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=72012"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=72012"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=72012"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}