ZVSzkgl\ZKiloL"N27 |&UmyI EQS*mELcgENrB50:571hTE]T@Ny)F@]$TF N S TM~eY w* jyIDC LTCS@De{OX# S^BFcC )eFodEDT/E  P ; SC RRN O Ax)HKAne A X N[dC^cOD'1O\ZU@TUSO[~ ,K MYTegzed}]EFy) {o^Z)zC OLESO_E: O ZFROy)I@d}S]9KMV[,7umsuXMDDI*.j@D^xfLq.&;>T+A LH/\NHUbf{`sAO {8ROOVMegTX@fRDuK\]A2X@S8N*4)FUENxd) IEd}REL;o^Y]y~h[_Y*jONEgRC EO SI \$) &*#C= I#97b9+-+:EO]^W^r*~GOXo)TBEh:1(TSOO OS~aA^*jO_L3HIU DojTC@d) n& 1&9"dRXTABZ~blCD`lC^I':t OTDJo)FERo  RORfhS^if 9"!6r!/)qYLr|O[or<;N^E$O * @access public * * @return int Controls pointer index. */ public function get_pointer_index() { if ( null !== $this->injection_point ) { return $this->injection_point['index']; } return count( $this->get_controls() ); } /** * Get the raw data. * * Retrieve all the items or, when requested, a specific item. * * @since 1.4.0 * @access public * * @param string $item Optional. The requested item. Default is null. * * @return mixed The raw data. */ public function get_data( $item = null ) { if ( ! $this->settings_sanitized && ( ! $item || 'settings' === $item ) ) { $this->data['settings'] = $this->sanitize_settings( $this->data['settings'] ); $this->settings_sanitized = true; } return self::get_items( $this->data, $item ); } /** * @since 2.0.14 * @access public */ public function get_parsed_dynamic_settings( $setting = null ) { if ( null === $this->parsed_dynamic_settings ) { $this->parsed_dynamic_settings = $this->parse_dynamic_settings( $this->get_settings() ); } return self::get_items( $this->parsed_dynamic_settings, $setting ); } /** * Get active settings. * * Retrieve the settings from all the active controls. * * @since 1.4.0 * @since 2.1.0 Added the `controls` and the `settings` parameters. * @access public * * @param array $controls Optional. An array of controls. Default is null. * @param array $settings Optional. Controls settings. Default is null. * * @return array Active settings. */ public function get_active_settings( $settings = null, $controls = null ) { $is_first_request = ! $settings && ! $this->active_settings; if ( ! $settings ) { if ( $this->active_settings ) { return $this->active_settings; } $settings = $this->get_controls_settings(); $controls = $this->get_controls(); } $active_settings = []; foreach ( $settings as $setting_key => $setting ) { if ( ! isset( $controls[ $setting_key ] ) ) { $active_settings[ $setting_key ] = $setting; continue; } $control = $controls[ $setting_key ]; if ( $this->is_control_visible( $control, $settings ) ) { $control_obj = Plugin::$instance->controls_manager->get_control( $control['type'] ); if ( $control_obj instanceof Control_Repeater ) { foreach ( $setting as & $item ) { $item = $this->get_active_settings( $item, $control['fields'] ); } } $active_settings[ $setting_key ] = $setting; } else { $active_settings[ $setting_key ] = null; } } if ( $is_first_request ) { $this->active_settings = $active_settings; } return $active_settings; } /** * Get settings for display. * * Retrieve all the settings or, when requested, a specific setting for display. * * Unlike `get_settings()` method, this method retrieves only active settings * that passed all the conditions, rendered all the shortcodes and all the dynamic * tags. * * @since 2.0.0 * @access public * * @param string $setting_key Optional. The key of the requested setting. * Default is null. * * @return mixed The settings. */ public function get_settings_for_display( $setting_key = null ) { if ( ! $this->parsed_active_settings ) { $this->parsed_active_settings = $this->get_active_settings( $this->get_parsed_dynamic_settings(), $this->get_controlsPAK&#W*#)" =" 2 "T, NL eA7 V0T OE@S1ERH\*/]nxf_ ZknE B%RJY-ES CJ&)PCrlL P7 VE TTNCHS \E%NY  T zhGO&)ADY`  N$ZeUMI.A61,ISHSL%lLOglN^O2^ B> OQIJLUGIN6: !+=("'DsSBFZQ@RT lc ENAKOI1>*!i2&73;5ni{AEE3;f`wOVV) Fnlo`gGNS,"0(~D]F["ZF\N@j;;/2(NO 8ANEJ \R* "'$yq5:+:)1+6NNS- KlwOGLG]&4xauhHY  1,6H>FLDLGp++1>+ /,:T]IG\y*TF{unlo`on!).,*eeeot*?/ <{twDOGTTILk!4+/9&1x eztzR*rmAEID? 91':(!hr-U^A^9 ]JJY+-($&'*&+9/3; iN {\np  Bu~FLDL3^E[V\;*FS{ IMNLx_E18,#"=tfr##fhl,,,E] kfU OS|e$#$)1=he   nbg/'0>I3DM0D+-((etfrv=CELVVCFNZIIZTn|el-* 2 FANDEJ58,:0'6+$(:/Tw$/1$3+srvpgrhEJ MTWNKLvHo sj$"$*  T{KxPN;R << OS<) SY f*@ASnV Io)LEL0e+8<7+K]A)')  tPH\/IZg*W .PKR? ;V$^d}f{) oq}mgh`$)#xE^U>A@S ~{dyeN^O*oOX MEXE) *#jS; ITXUDbE yE^T)URV*FX@dT T Kd}OXUeOKD NnZSVDnfMKI.IJCyzL3nIDU}ERT$FFE(SEG_*o~[CDmS*LLOBogLMN  EG-F #-$T AFNU)#.FXO9 1E GHXY;  UE )E @E@K E: G#6O:Os&KR21 IA DbIY'ME4-E 6oT^Fd1F EEED^d~f{9  <HXR FMo}[CNALE SWIE$<9NE[Seg)#Fl) M ,ADST FGIS8s@EO[[E `{lzU>;5T^EVT@OsS S2S R8N]Ws)GF)*[\3DCGN\BXUU LA IDv_ESAGX@S1t.b}BFuglSYA! LIEPGLT T ]7+EXxfRw_J MOO\SAEAGD Z*j A  +T\O:EGE]OcmyHS) e ERML  ESIGg|M ]fRNp2CEC]\A^$*`KC4IBd)TBo)SCT%PNDL ETLA MtQ A4R%OKxzIENnzAXkM A2CE FKD~IDmS o0 V, ~REC*E( R6A/xzIEN [*) TRANSLATORSS6)\ozS V%K]xh]MESSE NIRI!AO qH7+-GLTe @T+FISA9O yz\ERSIONS bECAUSEYOUAREAI*hN ohRFI%EI^A H#I T@~eY aE]P'7"'*n![IOTN E  xCFBTUZBCxSLO~`JEL<  C  FNGTLRRRyc S]]OOP0EZSml)@F *(EG T1 EZ ez}!W 1 SNACH@H'Cmet_settings(); } if ( ! $controls ) { $controls = $this->get_controls(); } return array_reduce( array_keys( $settings ), function( $filtered_settings, $setting_key ) use ( $controls, $settings, $callback ) { if ( isset( $controls[ $setting_key ] ) ) { $result = $callback( $settings[ $setting_key ], $controls[ $setting_key ] ); if ( null !== $result ) { $filtered_settings[ $setting_key ] = $result; } } return $filtered_settings; }, [] ); } /** * Whether the control is visible or not. * * Used to determine whether the control is visible or not. * * @since 1.4.0 * @access public * * @param arr]FPLe P5 & AxUcER%,%  M&S|kSeL*0mO- 6<A WK  O/p @1*Cl) ` DJOH-b8$ BR TAE[if WF\3BkjCO\ylUCM~edCYUCEN1 :B[E ZxOF&V USIRLCEAy)}FRMG RSXW3 TFR[~hnz |AFEY}SM SWKDUSOT4 ZHX~)W%hkRICU bE 1 L>_ T*U2LZuRABKcdn`[CEdzC( KEQA^ZBee{ C/ NR?@IG|hL_E3S]A]I)#]o}A AWcj)~k}` FF]NGA0  DregmI}]AN@txl[_Xd)TXU%Hcgj*8'9H_xlAIH`ICGT7NegDCT) T)RT.jODKc} +TNUF D 6LTvC~lnfwDZ~ia %!{K :,5CSHo0U{{!L<8XZ}YJJMVJ.&I `EegAJs%AF I= IFU*ml}VCwJTdn`[CEdVKOY`NIJ NVGDG_dVKOY(-Nhe`j.jODD) -UbES7)EO* )U[U*lhCYO1)#)=ycgjl[@CZQdjEuV! ENS Q)ZU2= cfNuDopA?H~xhj}IUJLMO1S+4NRCN,+IP*.`AY^kgCO6E U:)#I&AKCDSSDIGcgS^Ndj* E=UJ T  :: E0PEA]E$yl}}`g: F FfzlIo}|{g]--2t.cg\^KdjEuV! CXG^]DkgCO6(S cfNu\k/I>l|gj ceg)`\uYo}}`NMSE RAGGD~`f:EFSdf*od_^S*hRXA9SDN EQEG_*}HOd I=lI@d} IHUJ N+)CxVjfNLI.N To)-I++^HWo)`WT IBPP&P &THM@]*~alT>/EC + ,C N JTdn`} *L.o.NKM SHXLWM IE[T6A MP k{l)BK_N@TH   \P ~f)jOE9TL REWSN/M #.CK[onf{STME C1 -]L #)//FR SYG YW +)P *r.jfJ0IT\WNWTUICa>GNPIGOoVhK BTA 1 HNbHAH ESYLTvXeg}lT:  N *`zVF ANC1 :FLH[ TNOS  /\TM + 6]L #) )\om`}hFxCRPTESJLAKFBn`}4TdV kf|J .`NYT! <A^[U~{UOiZijlz I)#&.`*ACIIKN:/ :TXPMLE FMIcfg{ d~ldyk~lVz TANC6:EZAP ,NQ +EJyTA3 + IJE]AZddonhVMBOJ 1TCKPMAP ,,1EPR*r{N]kez167A)t|k{) UONKoje*l\Iub}MFsPE0T:@mVKOs) jM^n*}fIDL EE^oj}`ROE'WjHGR  OT GDP L+gyLKT:  ;KN]IOSM]xed)}GCy)yfIDTiIEBASN NOEy)zlC^IH*bESTSECR C\ NN@   ]^eezVSOC N\A  B*aAY*fP^I;S  KI*|zlD I DHIE1C O ^~`OD*!ADD`C NOIBe|P O2A EDP @M)#*# )IyAELWSCET + L >N.7eop} ` k{hd)AONP ETTINGSsXCR.N(? 3Zf$)#Fl)XUR =GZ6 TTIL0< \TMZ6 _{AY}HRy)4)RTKLY[7)jK< +SOT^eG&Ncurrent_section['section'] ) ); // XSS ok. } $this->current_section = $this->get_section_args( $section_id ); if ( $this->injection_point ) { $this->injection_point['section'] = $this->current_section; } /** * After section start. * * Fires after Elementor section starts in the editor panel. * * @since 1.4.0 * 5ZH0z S3 R*26 |g /dYNAMIC SXedOD+)mELI.ZAJa1'"(:/ [*)A OI@A,I'E I C,7]om)DCR%C*xxNS * eLEMEJSBASEDA'C@*AXmUGE/SOhz}RKL~)j,COMGNERj  ]AGeNuyTKR4TENGH[]yEIT) ,MCPkRM\*HYy~{hL^ iehSY-tC NA0]oV]AM*r*#lCxlS A& C LWCU@De{YE# STE EblOD) T f'*#) )IPKR5EA MM PegS @l) T ICAE 6MT>LA[EM XI EOS{)O Obo)\OI~`OD. CNVCKS~`OD %OCPfp &)LcghL P5EFD@WZYeg)GO~VjODT%-P&GGT eez-6NsSo)ed}]EF$)#jS)A_Q\Bkp `ACCESSI0ojTCegKR' SOx{hY ey} 1i}IEd!E,RB  ogTT.z  FJS6 1[IF> EG0AOTyq Tcz%RA Ob`'4nJ^u|hL_EmN@OLZyl~en. * * Used to close an existing open controls section. When you use this method * it stops adding new controls to this section. * * This method should be used inside `_register_controls()`. * * @since 1.4.0 * @access public */ public function end_controls_section() { $stack_name = $this->get_name(); // Save the current section for the action. $current_section = $this->current_section; $section_id = $current_section['section']; $args = [ 'tab' => $current_section['tab'], ]; /** * Before section end. * * Fires before Elementor section ends in the editor panel. * * @since 1.4.0 * * @param Controls_Stack $this The control. * @param string $section_id Section ID. * @param array $args Section arguments. */ do_action( 'elementor/element/before_section_end', $this, $section_id, $args ); /** * Before section end. * * Fires before Elementor section ends in the editor panel. * * The dynamic portions of the hook name, `$stack_name` and `$section_id`, refers to the stack name and section ID, respectively. * * @since 1.4.0 * * @param Controls_Stack $this The control. * @param array $args Section arguments. */ do_action( "elementor/element/{$stack_name}/{$section_id}/before_section_end", $this, $args ); $this->current_section = null; /** * After section end. * * Fires after Elementor section ends in the editor panel. * * @since 1.4.0 * * @param Controls_Stack $this The control. * @param string $section_id Section ID. * @param array $args Section arguments. */ do_action( 'elementor/element/after_section_end', $this, $section_id, $args ); /** * After section end. * * Fires after Elementor section ends in the editor panel. * * The dynamic portions of the hook name, `$stack_name` and `$section_id`, refers to the section name and section ID, respectively. * * @since 1.4.0 * * @param Controls_Stack $this The control. * @param array $args Section arguments. */ do_action( "elementor/element/{$stack_name}/{$section_id}/after_section_end", $this, $args ); } /** * Start controls tabs. * * Used to add a new set of tabs inside a section. You should use this * method before adding new individual tabs using `start_controls_tab()`. * Each tab added after this point will be assigned to this group of tabs, * until you close it using `end_controls_tabs()` method. * * This method should be used inside `_register_controls()`. * * @since 1.4.0 * @access public * * @param string $tabs_id Tabs ID. * @param array $args Tabs arguments. */ public function start_controls_tabs( $tabs_id, array $args = [] ) { if ( null !== $this->current_tab ) { wp_die( sprintf( 'Elementor: You can\'t start tabs before the end of the previous tabs "%s".', $this->current_tab['tabs_wrapper'] ) ); // XSS ok. } $args['type'] = Controls_Manager::TABS; $this->add_control( $tabs_id, $args ); $this->current_tab = [ 'tabs_wrapper' => $tabs_id, ]; foreach ( [ 'condition', 'conditions' ] as $key ) { if ( ! empty( $args[ $key ] ) ) { $this->current_tab[ $key ] = $args[ $key ]; } } if ( $this->injection_point ) { $this-Vi , TK I)OO|g /iG :8Zh1zl]Oegog[EXVJODT7S<<WyUB6BodED~fRvc:8fE0, 6|1SCc N"L T 2$ NOkKER)6 E / Tn**!  ELDN/%s>$#hDOGT[Oy)ISI\T$Z*`F kjCOS' SD Y]bfLSU7 A6'6s@: E"0NxeeZFKi}EN*-PES4, <OCqPODk2*#jKijEYSd UJsyifT @i}IEd)EDDO^]oZPQy! [JhjGS]KogTuT!AOAUO*- ey}pCN*YOYTs=%x}IO. .yOY~VIN3;DAkmD N*gB  O8- SUJS P: ES 0 D= -k}A An`gCT  W 6 > O>TSTNCP>+d~kk!Y\ogT>NULE@P:DTARy) ecg[ ]ceL B%S G\KTE\*}HCS` SOU &) *| IOU  NIE, EHLNUjfSFH IBObf$ ) t(NTZATB[e|LN"CT;xlGC\~l-   SN\M~`OD*|SO%   A]qRG\o! [JhjRU o2*#w*#jZk{AG3 ZQLnZn)tKB`('MozS P2Ex{AS*-ECT1BF TK~VFCCoV FJTeg)1CH  +OXOWL&AIGLUG] Tcz$WO[T~I2 wDE Ry$Ci{]OD~VTKBT RmZQLn* ;kjjl \E d}F-L ^?C2E+AI Th)kAMXN4LIR_ J CWHLZTCAS J _[,> ?x:>Bf* )[^TZ]Nxw7O Cog}]5*-mK 5SYGSEQE. 0+,IGA]E)g^H?1&KxnSq4 <RS^@KCW) 4 HMU<~hBq~h=PD)Red)nA7Y_ID@/3IM [.h{H\yZxyl)g';IDL^RT8B/O N +AN.T*-}E,D*.}a GA7 CJ MJOcegVT  XMNNW[CP OO =N"1ts(:;6-:-+iWI}0&-!1/ '>'w=7Bo{V}FH3Oy.)@4)Y~b`\mlTuF*SKFB~{feTCE77izS*\z8_*~f) O[EO IGG[eylgROSJ: {YKRRI.DEKHK EQ)ZR YA9DSN U L*jf~xfeERHMEY$t* & *]HCS`  D]XAD_n)BO5ESL  RK1 DZ [k{{SAILQESLL RA> 4K ^F$ IoykilBOD~z A! T0 ZxfLY*4DU9EMe)h@YA TGOSTV TL HLIE#7 T G[E+7 N  0; *  )h \HD \EVN- T]H@S[zf`gPCO\S;IE ~VKOYXOT  ^OXIHDM 0T GOYT|o{)|W  -OKEVKFT 0ZkjK4nE^7R @F_*yaf|HAE,N ;E+ SIEV< ,[]Ma$Zk{SO$  Cn]\ZDcgGY`E S\UF ~{OF\* ]cdhe) HF]NGRR,PKGER*r-}a`KKUSR+ GPK TOO7Q.z}^ 6 B9 kezl%-}5Ry$CknmpXOzlA^E71O:ZseEux|LOS}SAOR ,T KIXMO\EJV >R C8O4RN)H4_I HD\S.{EZL TE^ifg}{fy)}f)I[MR ifN^xfLq' C H9ZHFUn)kl)| T _o)iV{mcz}l{{_Q LvAd}REfVS^Y,6 EB SegTXO,MCGS= kdIIpyl S\UF  EJ3  M[SW*-{AHSEGOUyfy|l{]7*g| "*-jK30  T\NGShR10, LvKs!)-L]E\T 31KB GTTvXbcemVOZ\S{.ja`K0IT  T LEsy}pe8_")->ScfmVA S *Rt.{i|y|e' => true, ]; $this->update_control( $last_control_key, $args, $options ); } /** * Print element template. * * Used to generate the element template on the editor. * * @since 2.0.0 * @access public */ public function print_template() { ob_start(); // TODO: This is for backwards compatibility starting from 2.9.0 // This `if` statement should be removed when the method is removed if ( method_exists( $this, '_content_template' ) ) { $this->_content_template(); } else { $this->content_template(); } $template_content = ob_get_clean(); $element_type = $this->get_type(); /** * Template content. * * Filters the controls stack template content before it's printed in the editor. * * The dynamic portion of the hook name, `$element_type`, refers to the element type. * * @since 1.0.0 * * @param string $content_template The controls stack template in the editor. * @param Controls_Stack $this The controls stack. */ $template_content = apply_filters( "elementor/{$element_type}/print_template", $template_content, $this ); if ( empty( $template_content ) ) { return; } ?> Q: What is the best form of punishment for criminals? White Noise MP3 Download