/* 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":32226,"date":"2026-05-17T15:07:25","date_gmt":"2026-05-17T15:07:25","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=32226"},"modified":"2026-05-17T15:07:26","modified_gmt":"2026-05-17T15:07:26","slug":"100-percent-free-harbors-play-9000-online-slot-game-zero-down-load","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/100-percent-free-harbors-play-9000-online-slot-game-zero-down-load\/","title":{"rendered":"100 percent free Harbors: Play 9,000+ Online Slot Game Zero Down load"},"content":{"rendered":"

But not, i perform bring competitions the real deal currency prizes, therefore\u2019ll look for a summary of recommended gambling enterprises lower than for each trial online game which might be affirmed to offer the term involved. Develop this article energized you to definitely speak about the brand new huge globe of ports to see a lot of time off totally free recreation. Second and most notably, you should always hold the correct mindset regarding on line casino games and cure him or her solely as activity. To begin with, you need to be sure to place limits regarding the number of go out you will spend or take vacation trips periodically.<\/p>\n

You devote your bet by the sticking gold coins; you then twist the reels of the moving an option otherwise take a beneficial lever. Therefore, you can enjoy totally free ports with the pills, mobile devices, etc. Toward all of our provider, you’ll find numerous casinos giving to play Vegas ports. He could be easy to use and then have readable configurations. This helps the player to increase this new earnings or even proliferate him or her, according to 100 percent free slots games. You will find some totally free harbors which you\u2019re also in a position to gamble on the web.<\/p>\n

You can check out over step one,800 Excitement slots, and this refers to one of the most popular layouts that have numerous quality online game to select from. Might embark on ancient Egypt activities, pleasing fishing expeditions, otherwise blast-off on the star. You could potentially talk about numerous more layouts only at SlotCatalog, and you will free slots game zero install no registration try dressed up inside many implies it can strike your mind. Flame Stampede are an untamed Move Gaming discharge that have a familiar North american creature motif, therefore\u2019ll take advantage of the book Connect & Collect winnings system. SlotCatalog is among the most done library off totally free demo harbors zero down load you\u2019ll get a hold of online.<\/p>\n

Yet not, for many who\u2019re able to set play constraints and tend to be prepared to spend cash on their activity, then you certainly\u2019ll happy to play for real money. Whether you\u2019re also spinning brand new reels of classic harbors for this emotional aura otherwise exploring the latest video harbors that have excellent graphics and you can voice, there\u2019s a position per vibe. This is among the first headings so you can reveal superior high-definition three dimensional picture, also it\u2019s in addition to a beneficial poster boy for simple position mechanics complete really well.<\/p>\n

Other game developers possess cottoned into, and today, you\u2019ll discover the extremely volatile machines ever before released, with casilando casino no deposit bonus<\/a> many game effective at spending more than 100,000X the full risk! Megaways it is did change the face off \u201cslotting\u201d as you may know it, also it\u2019s end up being obvious over the past lifetime that what players really would like is actually game that pay larger. Such as, NetEnt\u2019s Gonzo\u2019s Quest – perhaps one of the most effective video clips slots at this moment – was launched in ’09, and you will changed your face of the totally free position industry for good. Because casinos on the internet arrived at be much more preferred, the quality of these video game come to increase, and you can significant globe leaders particularly NetEnt arrive at establish large-top quality, Hd films harbors you to definitely users can enjoy on line. Of many gambling enterprises towards the Vegas remove given multiple-million-buck jackpots, plus it are this type of jackpots you to definitely provided towards a massive boost from prominence which have harbors – and it also\u2019s an apparatus that individuals nevertheless look for made use of today, on line. Progressive jackpots in clips harbors in the future took off, allowing punters for the gambling establishment flooring the opportunity to winnings lifestyle-changing quantities of currency, regarding a spin costing but a few dollars.<\/p>\n

In the event it\u2019s diversity you\u2019re also trying to find, you\u2019lso are regarding the best source for information! It\u2019s a great habit to always check a game title\u2019s RTP throughout the paytable in advance of playing with real cash, as particular casinos may offer an identical slot with assorted RTP settings. This can be done of the checking the latest paytable, found in the position\u2019s facts area, and this reduces symbol philosophy, paylines, extra triggers, and you can bells and whistles.<\/p>\n

Big spenders will often choose high volatility ports for the cause so it\u2019s sometimes simpler to rating big in early stages on game. With your harbors, your don\u2019t have to put hardly any money one which just\u2019re also in a position to begin to tackle. The main reason you should enjoy 100 percent free harbors has to do with how they works.<\/p>\n

not, always check to own permits and read user reviews to get rid of frauds and cover your own personal pointers. The best place to gamble 100 percent free ports on the internet is here at Gambling enterprises.com. Here are some the variety of greatest-ranked online casinos providing the top free spin revenue now!<\/p>\n

For each and every free twist usually has a little cash well worth, often to $0.10 for every single spin, and one profits you have made normally have betting requirements. However, hey, maybe you\u2019lso are already authorized from the an online gambling enterprise. If your icons fall into line accurately, you\u2019ll residential property a profit \u2013 paid in digital credit in the place of bucks. Wins are brought about due to paylines, ways-to-profit options, otherwise party will pay, depending on the slot.<\/p>\n

Joining an account playing 100 percent free ports doesn\u2019t give you miss any incentive also provides. If you would like play modern harbors at no cost and one to you\u2019re also deciding on doesn\u2019t get this choice simply pick yet another application supplier. That it isn\u2019t as important for most users just like the anyone else, but when you don\u2019t explore all outlines triggered they\u2019s best that you know which ones is actually productive. Very slots work in the same way, however it\u2019s usually far better be sure to comprehend and you will comprehend the regulations for each and every one.<\/p>\n

But not, when you beginning to gamble free ports, it\u2019s a good idea. Irish styled ports have become popular with the tempting extra keeps, fortunate clovers and transferring leprechauns. The field of video slot are big, presenting a plethora of themes, paylines, and you may extra have. Newbies can also be familiarize on their own with different games technicians, paylines, and you may extra enjoys without any pressure regarding financial losses. While the tech evolves, online slots games have become a lot more immersive, offering good graphics, engaging storylines, and you will diverse templates one to serve a wide audience.<\/p>\n

Only \u2018give you\u2019lso are maybe not investing real money doesn\u2019t mean you might\u2019t generate habits. And additionally, there\u2019s a good amount of 100 percent free spins to explore. Who\u2019s shortly after adventure suits avalanche victories? A safe betting place is crucial, specifically if you\u2019ll be prepared to switch to a real income play. Look, it doesn\u2019t number for folks who\u2019re also truth be told there to tackle enjoyment simply. I am talking about \u2013 limited revolves, availability just after even more requires, or those people painful advertisements every 15 mere seconds.<\/p>\n

1Chaos Team 2 are Hacksaw\u2019s follow-to the renowned brand spanking new online game, and it\u2019s laden up with humorous keeps. That it designer delivers highest-high quality game each month, and they’ve got over 330 films slots within right back inventory at this time. Chilli Temperature is one of their top slots, and you can together with below are a few High Rhino. Less than, we\u2019ll introduce you to an educated games organization, and you may here are a few each of their game following the fresh new website links. This will make it simple for one look at the really popular game designers, and all of the totally free demo slots no down load they have to give you. Katmandu Gold boasts 4,096 default paylines, however the increasing grid program can send around 531,441 paylines.<\/p>\n

Our very own type of totally free ports is sold with vintage slot machines, films ports, and you will modern game having bonus features, progressive jackpots, and you will pleasing templates…Find out more Meaning you\u2019ll need to bet $350 ahead of cashing out your earnings. It means your\u2019ll have to choice the earnings a specific amount of moments before you withdraw her or him. Same image, exact same game play, same unbelievable extra possess \u2013 only zero risk.<\/p>\n","protected":false},"excerpt":{"rendered":"

But not, i perform bring competitions the real deal currency prizes, therefore\u2019ll look for a summary of recommended gambling enterprises lower than for each trial online game which might be affirmed to offer the term involved. Develop this article energized you to definitely speak about the brand new huge globe\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-32226","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/32226","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=32226"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/32226\/revisions"}],"predecessor-version":[{"id":32227,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/32226\/revisions\/32227"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=32226"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=32226"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=32226"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}