Speed Booster Pack - Version 4.5.3

Version Description

Release Date: 18 May 2022

  • Fixed: JSON outputs had that extra HTML comment which broke more than a few things...
  • Fixed: On rare occasions, the cachefile was saved completely empty.
  • Removed: New users won't see an introduction popup because it's not the most pleasant way to greet a new user. Instead, we're going to update our dashboard text in the next version.
Download this release

Release Info

Developer optimocha
Plugin Icon 128x128 Speed Booster Pack
Version 4.5.3
Comparing to
See all releases

Code changes from version 4.5.2 to 4.5.3

README.txt CHANGED
@@ -5,7 +5,7 @@ Tags: speed, pagespeed, optimization, core web vitals, cache
5
  Requires at least: 4.6
6
  Tested up to: 6.0
7
  Requires PHP: 5.6
8
- Stable tag: 4.5.2
9
  License: GPLv3 or later
10
  License URI: https://www.gnu.org/licenses/gpl-3.0.html
11
 
@@ -103,6 +103,14 @@ All the time! We're always looking for new ways to get this plugin to a better s
103
 
104
  == Changelog ==
105
 
 
 
 
 
 
 
 
 
106
  = 4.5.2 =
107
 
108
  *Release Date: 14 May 2022*
5
  Requires at least: 4.6
6
  Tested up to: 6.0
7
  Requires PHP: 5.6
8
+ Stable tag: 4.5.3
9
  License: GPLv3 or later
10
  License URI: https://www.gnu.org/licenses/gpl-3.0.html
11
 
103
 
104
  == Changelog ==
105
 
106
+ = 4.5.3 =
107
+
108
+ *Release Date: 18 May 2022*
109
+
110
+ * **Fixed**: JSON outputs had that extra HTML comment which broke more than a few things...
111
+ * **Fixed**: On rare occasions, the cachefile was saved completely empty.
112
+ * **Removed**: New users won't see an introduction popup because it's not the most pleasant way to greet a new user. Instead, we're going to update our dashboard text in the next version.
113
+
114
  = 4.5.2 =
115
 
116
  *Release Date: 14 May 2022*
admin/class-speed-booster-pack-admin.php CHANGED
@@ -163,14 +163,9 @@ class Speed_Booster_Pack_Admin {
163
  * @since 4.0.0
164
  */
165
  public function enqueue_styles() {
 
166
  wp_enqueue_style( $this->plugin_name, SBP_URL . 'admin/css/speed-booster-pack-admin.css', [], $this->version );
167
- if (
168
- get_user_meta( get_current_user_id(), 'sbp_intro', true ) != true &&
169
- ( get_current_screen() && get_current_screen()->id == 'toplevel_page_sbp-settings' ) &&
170
- current_user_can( 'manage_options' )
171
- ) {
172
- wp_enqueue_style( 'sbp_intro_css', SBP_URL . 'admin/css/intro.min.css', [], '5.0.0' );
173
- }
174
  }
175
 
176
  /**
@@ -179,63 +174,15 @@ class Speed_Booster_Pack_Admin {
179
  * @since 4.0.0
180
  */
181
  public function enqueue_scripts() {
182
- if (
183
- get_user_meta( get_current_user_id(), 'sbp_intro', true ) != true &&
184
- ( get_current_screen() && get_current_screen()->id == 'toplevel_page_sbp-settings' ) &&
185
- current_user_can( 'manage_options' )
186
- ) {
187
- wp_enqueue_script( 'sbp_intro_js', SBP_URL . 'admin/js/intro.min.js', [ 'jquery' ], '5.0.0' );
188
- wp_enqueue_script( 'sbp_init_intro', SBP_URL . 'admin/js/init-intro.js', [ 'jquery' ], '5.0.0' );
189
- wp_localize_script( 'sbp_intro_js',
190
- 'sbp_intro_translations',
191
- [
192
- /* translators: onboarding modal, first step title */
193
- 'welcomeTitle' => __( 'Welcome!', 'speed-booster-pack' ),
194
- /* translators: onboarding modal, first step */
195
- 'welcome' => __( 'Welcome to Speed Booster Pack! We\'d like to give you a quick tour - feel free to close this box and look around the options yourself, or click Next to see our short intro.', 'speed-booster-pack' ),
196
- /* translators: onboarding modal, second step title */
197
- 'cachingTitle' => __( 'Caching', 'speed-booster-pack' ),
198
- /* translators: onboarding modal, second step */
199
- 'caching' => __( 'This is our caching tab. Here, you can set caching for your pages to immediately speed up your website.', 'speed-booster-pack' ),
200
- /* translators: onboarding modal, third step title */
201
- 'caching2Title' => __( 'Module Toggles', 'speed-booster-pack' ),
202
- /* translators: onboarding modal, third step */
203
- 'caching2' => __( 'Most tabs have module toggles like this. Turning on or off the module toggle enables or disables the whole module.', 'speed-booster-pack' ),
204
- /* translators: onboarding modal, fourth step title */
205
- 'generalTitle' => __( 'General Settings', 'speed-booster-pack' ),
206
- /* translators: onboarding modal, fourth step */
207
- 'general' => __( 'The "General" tab includes various tweaks to clean up and speed up things. You can also disable Speed Booster Pack features for certain user roles (e.g. subscribers or customers) if you need to.', 'speed-booster-pack' ),
208
- /* translators: onboarding modal, fifth step title */
209
- 'cdnTitle' => __( 'CDN & Proxy Settings', 'speed-booster-pack' ),
210
- /* translators: onboarding modal, fifth step */
211
- 'cdn' => __( 'The CDN & Proxy tab has three main settings: You can set a CDN domain to serve all your assets from, you can connect to your Cloudflare account to change your Cloudflare settings, and you can connect to your Sucuri account so you can clear your Sucuri cache automatically.', 'speed-booster-pack' ),
212
- /* translators: onboarding modal, sixth step title */
213
- 'cssTitle' => __( 'CSS Settings', 'speed-booster-pack' ),
214
- /* translators: onboarding modal, sixth step */
215
- 'css' => __( 'The Optimize CSS tab has some delicate settings which, if configured properly, can drastically improve your website performance. Be sure to follow the directions properly - especially the Critical CSS settings!', 'speed-booster-pack' ),
216
- /* translators: onboarding modal, seventh step title */
217
- 'assetsTitle' => __( 'Assets Settings', 'speed-booster-pack' ),
218
- /* translators: onboarding modal, seventh step */
219
- 'assets' => __( 'The Assets tab can improve your website performance using font optimization, lazy loading, asset preloading and JavaScript optimization. It\'s tempting to enable them all, but make sure you test each change thoroughly or else you can break your website! Think of these tools like powerful weapons which you can hurt yourself with.', 'speed-booster-pack' ),
220
- /* translators: onboarding modal, last step title */
221
- 'endTitle' => __( 'Done!', 'speed-booster-pack' ),
222
- /* translators: onboarding modal, last step */
223
- 'end' => __( 'That\'s it! Actually, that\'s not it - make sure you check the other tabs to see if you have more room to improve your website speed. Don\'t be afraid to experiment; even if you break something, resetting settings or simply deactivating Speed Booster Pack will undo everything.', 'speed-booster-pack' ),
224
- /* translators: onboarding modal, "Next" label */
225
- 'nextLabel' => __( 'Next', 'speed-booster-pack' ),
226
- /* translators: onboarding modal, "Prev" label */
227
- 'prevLabel' => __( 'Prev', 'speed-booster-pack' ),
228
- /* translators: onboarding modal, "Done" label */
229
- 'doneLabel' => __( 'Done', 'speed-booster-pack' ),
230
- ] );
231
- }
232
 
233
  wp_enqueue_script( $this->plugin_name, SBP_URL . 'admin/js/speed-booster-pack-admin.js', [ 'jquery' ], $this->version );
 
234
  wp_localize_script( $this->plugin_name,
235
  'sbp_ajax_vars',
236
  [
237
  'nonce' => wp_create_nonce( 'sbp_ajax_nonce' ),
238
  ] );
 
239
  }
240
 
241
  public function get_woocommerce_options() {
@@ -1656,7 +1603,6 @@ class Speed_Booster_Pack_Admin {
1656
  <li><a href="https://github.com/verlok/vanilla-lazyload" rel="external noopener" target="_blank">LazyLoad by Andrea Verlicchi</a></li>
1657
  <li><a href="https://github.com/deliciousbrains/wp-background-processing" rel="external noopener" target="_blank">WP Background Processing by Delicious Brains</a></li>
1658
  <li><a href="https://instant.page/" rel="external noopener" target="_blank">instant.page</a></li>
1659
- <li><a href="https://introjs.com/" rel="external noopener" target="_blank">intro.js</a></li>
1660
  </ul>',
1661
  ],
1662
  ],
163
  * @since 4.0.0
164
  */
165
  public function enqueue_styles() {
166
+
167
  wp_enqueue_style( $this->plugin_name, SBP_URL . 'admin/css/speed-booster-pack-admin.css', [], $this->version );
168
+
 
 
 
 
 
 
169
  }
170
 
171
  /**
174
  * @since 4.0.0
175
  */
176
  public function enqueue_scripts() {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
177
 
178
  wp_enqueue_script( $this->plugin_name, SBP_URL . 'admin/js/speed-booster-pack-admin.js', [ 'jquery' ], $this->version );
179
+
180
  wp_localize_script( $this->plugin_name,
181
  'sbp_ajax_vars',
182
  [
183
  'nonce' => wp_create_nonce( 'sbp_ajax_nonce' ),
184
  ] );
185
+
186
  }
187
 
188
  public function get_woocommerce_options() {
1603
  <li><a href="https://github.com/verlok/vanilla-lazyload" rel="external noopener" target="_blank">LazyLoad by Andrea Verlicchi</a></li>
1604
  <li><a href="https://github.com/deliciousbrains/wp-background-processing" rel="external noopener" target="_blank">WP Background Processing by Delicious Brains</a></li>
1605
  <li><a href="https://instant.page/" rel="external noopener" target="_blank">instant.page</a></li>
 
1606
  </ul>',
1607
  ],
1608
  ],
admin/css/intro.min.css DELETED
@@ -1 +0,0 @@
1
- .introjs-overlay{position:absolute;-webkit-box-sizing:content-box;box-sizing:content-box;z-index:999999;opacity:0;-webkit-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out}.introjs-showElement{z-index:9999999!important}tr.introjs-showElement>td{z-index:9999999!important;position:relative}tr.introjs-showElement>th{z-index:9999999!important;position:relative}.introjs-disableInteraction{z-index:99999999!important;position:absolute;background-color:#fff;opacity:0}.introjs-relativePosition{position:relative}.introjs-helperLayer{-webkit-box-sizing:content-box;box-sizing:content-box;position:absolute;z-index:9999998;border-radius:4px;-webkit-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out}.introjs-helperLayer *{-webkit-box-sizing:content-box;box-sizing:content-box}.introjs-helperLayer :before{-webkit-box-sizing:content-box;box-sizing:content-box}.introjs-helperLayer :after{-webkit-box-sizing:content-box;box-sizing:content-box}.introjs-tooltipReferenceLayer{font-family:"Helvetica Neue",Inter,ui-sans-serif,"Apple Color Emoji",Helvetica,Arial,sans-serif;-webkit-box-sizing:content-box;box-sizing:content-box;position:absolute;visibility:hidden;z-index:100000000;background-color:transparent;-webkit-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out}.introjs-tooltipReferenceLayer *{font-family:"Helvetica Neue",Inter,ui-sans-serif,"Apple Color Emoji",Helvetica,Arial,sans-serif}.introjs-helperNumberLayer{font-family:"Helvetica Neue",Inter,ui-sans-serif,"Apple Color Emoji",Helvetica,Arial,sans-serif;color:#9e9e9e;text-align:center;padding-top:10px;padding-bottom:10px}.introjs-arrow{border:5px solid transparent;content:"";position:absolute}.introjs-arrow.top{top:-10px;left:10px;border-bottom-color:#fff}.introjs-arrow.top-right{top:-10px;right:10px;border-bottom-color:#fff}.introjs-arrow.top-middle{top:-10px;left:50%;margin-left:-5px;border-bottom-color:#fff}.introjs-arrow.right{right:-10px;top:10px;border-left-color:#fff}.introjs-arrow.right-bottom{bottom:10px;right:-10px;border-left-color:#fff}.introjs-arrow.bottom{bottom:-10px;left:10px;border-top-color:#fff}.introjs-arrow.bottom-right{bottom:-10px;right:10px;border-top-color:#fff}.introjs-arrow.bottom-middle{bottom:-10px;left:50%;margin-left:-5px;border-top-color:#fff}.introjs-arrow.left{left:-10px;top:10px;border-right-color:#fff}.introjs-arrow.left-bottom{left:-10px;bottom:10px;border-right-color:#fff}.introjs-tooltip{-webkit-box-sizing:content-box;box-sizing:content-box;position:absolute;visibility:visible;background-color:#fff;min-width:250px;max-width:300px;border-radius:5px;-webkit-box-shadow:0 3px 30px rgba(33,33,33,.3);box-shadow:0 3px 30px rgba(33,33,33,.3);-webkit-transition:opacity .1s ease-out;-o-transition:opacity .1s ease-out;transition:opacity .1s ease-out}.introjs-tooltiptext{padding:20px}.introjs-tooltip-title{font-size:18px;margin:0;padding:0;font-weight:700;float:left;line-height:32px}.introjs-tooltip-header{padding-left:20px;padding-right:20px;padding-top:10px}.introjs-tooltip-header:after{content:".";visibility:hidden;display:block;height:0;clear:both}.introjs-tooltipbuttons{border-top:1px solid #e0e0e0;padding:10px;text-align:right;white-space:nowrap}.introjs-tooltipbuttons:after{content:"";visibility:hidden;display:block;height:0;clear:both}.introjs-button{-webkit-box-sizing:content-box;box-sizing:content-box;position:relative;overflow:visible;display:inline-block;padding:.5rem 1rem;border:1px solid #bdbdbd;text-decoration:none;text-shadow:1px 1px 0 #fff;font-size:14px;color:#424242;white-space:nowrap;cursor:pointer;outline:0;background-color:#f4f4f4;border-radius:.2em;zoom:1;display:inline}.introjs-button:hover{outline:0;text-decoration:none;border-color:#9e9e9e;background-color:#e0e0e0;color:#212121}.introjs-button:focus{outline:0;text-decoration:none;background-color:#eee;-webkit-box-shadow:0 0 0 .2rem rgba(158,158,158,.5);box-shadow:0 0 0 .2rem rgba(158,158,158,.5);border:1px solid #616161;color:#212121}.introjs-button:active{outline:0;text-decoration:none;background-color:#e0e0e0;border-color:#9e9e9e;color:#212121}.introjs-button::-moz-focus-inner{padding:0;border:0}.introjs-skipbutton{-webkit-box-sizing:content-box;box-sizing:content-box;color:#616161;float:right;font-size:20px;cursor:pointer;font-weight:700;line-height:1;text-align:center;padding:7px 10px}.introjs-skipbutton:focus,.introjs-skipbutton:hover{color:#212121;outline:0;text-decoration:none}.introjs-prevbutton{float:left}.introjs-nextbutton{float:right}.introjs-disabled{color:#9e9e9e;border-color:#bdbdbd;-webkit-box-shadow:none;box-shadow:none;cursor:default;background-color:#f4f4f4;background-image:none;text-decoration:none}.introjs-disabled:focus,.introjs-disabled:hover{color:#9e9e9e;border-color:#bdbdbd;-webkit-box-shadow:none;box-shadow:none;cursor:default;background-color:#f4f4f4;background-image:none;text-decoration:none}.introjs-hidden{display:none}.introjs-bullets{text-align:center;padding-top:10px;padding-bottom:10px}.introjs-bullets ul{-webkit-box-sizing:content-box;box-sizing:content-box;clear:both;margin:0 auto 0;padding:0;display:inline-block}.introjs-bullets ul li{-webkit-box-sizing:content-box;box-sizing:content-box;list-style:none;float:left;margin:0 2px}.introjs-bullets ul li a{-webkit-transition:width .1s ease-in;-o-transition:width .1s ease-in;transition:width .1s ease-in;-webkit-box-sizing:content-box;box-sizing:content-box;display:block;width:6px;height:6px;background:#ccc;border-radius:10px;text-decoration:none;cursor:pointer}.introjs-bullets ul li a:focus,.introjs-bullets ul li a:hover{width:15px;background:#999;text-decoration:none;outline:0}.introjs-bullets ul li a.active{width:15px;background:#999}.introjs-progress{-webkit-box-sizing:content-box;box-sizing:content-box;overflow:hidden;height:10px;margin:10px;border-radius:4px;background-color:#e0e0e0}.introjs-progressbar{-webkit-box-sizing:content-box;box-sizing:content-box;float:left;width:0%;height:100%;font-size:10px;line-height:10px;text-align:center;background-color:#08c}.introjsFloatingElement{position:absolute;height:0;width:0;left:50%;top:50%}.introjs-fixedTooltip{position:fixed}.introjs-hint{-webkit-box-sizing:content-box;box-sizing:content-box;position:absolute;background:0 0;width:20px;height:15px;cursor:pointer}.introjs-hint:focus{border:0;outline:0}.introjs-hint:hover>.introjs-hint-pulse{background-color:rgba(60,60,60,.57)}.introjs-hidehint{display:none}.introjs-fixedhint{position:fixed}@-webkit-keyframes introjspulse{0%{-webkit-transform:scale(.95);transform:scale(.95);-webkit-box-shadow:0 0 0 0 rgba(0,0,0,.7);box-shadow:0 0 0 0 rgba(0,0,0,.7)}70%{-webkit-transform:scale(1);transform:scale(1);-webkit-box-shadow:0 0 0 10px transparent;box-shadow:0 0 0 10px transparent}100%{-webkit-transform:scale(.95);transform:scale(.95);-webkit-box-shadow:0 0 0 0 transparent;box-shadow:0 0 0 0 transparent}}@keyframes introjspulse{0%{-webkit-transform:scale(.95);transform:scale(.95);-webkit-box-shadow:0 0 0 0 rgba(0,0,0,.7);box-shadow:0 0 0 0 rgba(0,0,0,.7)}70%{-webkit-transform:scale(1);transform:scale(1);-webkit-box-shadow:0 0 0 10px transparent;box-shadow:0 0 0 10px transparent}100%{-webkit-transform:scale(.95);transform:scale(.95);-webkit-box-shadow:0 0 0 0 transparent;box-shadow:0 0 0 0 transparent}}.introjs-hint-pulse{-webkit-box-sizing:content-box;box-sizing:content-box;width:15px;height:15px;border-radius:30px;background-color:rgba(136,136,136,.24);z-index:10;position:absolute;-webkit-transition:all .2s ease-out;-o-transition:all .2s ease-out;transition:all .2s ease-out;-webkit-animation:introjspulse 2s infinite;animation:introjspulse 2s infinite}.introjs-hint-no-anim .introjs-hint-pulse{-webkit-animation:none;animation:none}.introjs-hint-dot{-webkit-box-sizing:content-box;box-sizing:content-box;background:0 0;border-radius:60px;height:50px;width:50px;position:absolute;top:-18px;left:-18px;z-index:1;opacity:0}
 
admin/images/icon.svg CHANGED
@@ -1 +1 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16"><defs><path d="M5.12 12.61l.37-2.32 1.46.84 1.46.85-1.83 1.48-1.82 1.47.36-2.32z" id="a"/><path d="M6.47 13.39l.37-2.32 1.46.85 1.46.84-1.83 1.48-1.82 1.47.36-2.32z" id="b"/><path d="M5.41 13.68l.37-2.32 1.46.84 1.46.84-1.83 1.48L5.04 16l.37-2.32z" id="c"/><path d="M12.35 6.78l-1.91 6.76-2.98-1.72-2.99-1.72 4.9-5.04 4.9-5.04-1.92 6.76z" id="d"/><path d="M6.44 7.43L1.72 9.46l5.32 3.08 5.32 3.07-.59-5.11-.6-5.11-4.73 2.04z" id="e"/><path d="M9.4 12.55l.41 3.41-3.56-2.06-3.55-2.05 3.15-1.35L9 9.15l.4 3.4z" id="f"/></defs><use xlink:href="#a" fill="#fafafa"/><use xlink:href="#b" fill="#fafafa"/><use xlink:href="#c" fill="#fafafa"/><use xlink:href="#d" fill="#fafafa"/><g><use xlink:href="#e" fill="#fafafa"/></g><g><use xlink:href="#f" fill="#fafafa"/></g></svg>
1
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16"><defs><path d="M5.12 12.61l.37-2.32 1.46.84 1.46.85-1.83 1.48-1.82 1.47.36-2.32z" id="a"/><path d="M6.47 13.39l.37-2.32 1.46.85 1.46.84-1.83 1.48-1.82 1.47.36-2.32z" id="b"/><path d="M5.41 13.68l.37-2.32 1.46.84 1.46.84-1.83 1.48L5.04 16l.37-2.32z" id="c"/><path d="M12.35 6.78l-1.91 6.76-2.98-1.72-2.99-1.72 4.9-5.04 4.9-5.04-1.92 6.76z" id="d"/><path d="M6.44 7.43L1.72 9.46l5.32 3.08 5.32 3.07-.59-5.11-.6-5.11-4.73 2.04z" id="e"/><path d="M9.4 12.55l.41 3.41-3.56-2.06-3.55-2.05 3.15-1.35L9 9.15l.4 3.4z" id="f"/></defs><use xlink:href="#a" fill="#A5D6A7"/><use xlink:href="#b" fill="#A5D6A7"/><use xlink:href="#c" fill="#A5D6A7"/><use xlink:href="#d" fill="#A5D6A7"/><g><use xlink:href="#e" fill="#A5D6A7"/></g><g><use xlink:href="#f" fill="#A5D6A7"/></g></svg>
admin/js/init-intro.js DELETED
@@ -1,78 +0,0 @@
1
- jQuery(function() {
2
- var $ = jQuery;
3
- $(document).ready(function() {
4
- if (introJs != undefined) {
5
- introJs().setOptions({
6
- exitOnOverlayClick: false,
7
- showProgress: true,
8
- showBullets: false,
9
- nextLabel: sbp_intro_translations.nextLabel,
10
- prevLabel: sbp_intro_translations.prevLabel,
11
- doneLabel: sbp_intro_translations.doneLabel,
12
- steps: [{
13
- title: sbp_intro_translations.welcomeTitle,
14
- intro: sbp_intro_translations.welcome
15
- }, {
16
- element: document.querySelector('.csf-tab-item:nth-child(3)'),
17
- title: sbp_intro_translations.cachingTitle,
18
- intro: sbp_intro_translations.caching,
19
- position: 'right'
20
- }, {
21
- element: document.querySelector('.module-caching'),
22
- title: sbp_intro_translations.caching2Title,
23
- intro: sbp_intro_translations.caching2,
24
- position: 'bottom'
25
- }, {
26
- element: document.querySelector('.csf-tab-item:nth-child(2)'),
27
- title: sbp_intro_translations.generalTitle,
28
- intro: sbp_intro_translations.general,
29
- position: 'right'
30
- }, {
31
- element: document.querySelector('.csf-tab-item:nth-child(6)'),
32
- title: sbp_intro_translations.cdnTitle,
33
- intro: sbp_intro_translations.cdn,
34
- position: 'right'
35
- }, {
36
- element: document.querySelector('.csf-tab-item:nth-child(4)'),
37
- title: sbp_intro_translations.cssTitle,
38
- intro: sbp_intro_translations.css,
39
- position: 'right'
40
- }, {
41
- element: document.querySelector('.csf-tab-item:nth-child(5)'),
42
- title: sbp_intro_translations.assetsTitle,
43
- intro: sbp_intro_translations.assets,
44
- position: 'right'
45
- }, {
46
- title: sbp_intro_translations.endTitle,
47
- intro: sbp_intro_translations.end
48
- }]
49
- }).start().onbeforechange(async function(targetElement) {
50
- if ($(targetElement).is('.csf-tab-item:nth-child(3)') || $(targetElement).is('.module-caching')) {
51
- window.location.hash = $('.csf-tab-item:nth-child(3) > a').attr('href');
52
- }
53
-
54
- if ($(targetElement).is('.csf-tab-item:nth-child(2)')) {
55
- window.location.hash = $('.csf-tab-item:nth-child(2) > a').attr('href');
56
- }
57
-
58
- if ($(targetElement).is('.csf-tab-item:nth-child(4)')) {
59
- window.location.hash = $('.csf-tab-item:nth-child(4) > a').attr('href');
60
- }
61
-
62
- if ($(targetElement).is('.csf-tab-item:nth-child(5)')) {
63
- window.location.hash = $('.csf-tab-item:nth-child(5) > a').attr('href');
64
- }
65
-
66
- if ($(targetElement).is('.csf-tab-item:nth-child(6)')) {
67
- window.location.hash = $('.csf-tab-item:nth-child(6) > a').attr('href');
68
- }
69
-
70
- }).onexit(function() {
71
- $.ajax({
72
- url: ajaxurl,
73
- data: {'action': 'sbp_dismiss_intro'}
74
- });
75
- });
76
- }
77
- })
78
- })
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/js/intro.min.js DELETED
@@ -1,10 +0,0 @@
1
- /*!
2
- * Intro.js v5.0.0
3
- * https://introjs.com
4
- *
5
- * Copyright (C) 2012-2022 Afshin Mehrabani (@afshinmeh).
6
- * https://introjs.com
7
- *
8
- * Date: Sun, 06 Feb 2022 13:57:52 GMT
9
- */
10
- !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).introJs=e()}(this,(function(){"use strict";function t(e){return t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},t(e)}var e=function(){var t={};return function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"introjs-stamp";return t[n]=t[n]||0,void 0===e[n]&&(e[n]=t[n]++),e[n]}}();function n(t,e,n){if(t)for(var i=0,o=t.length;i<o;i++)e(t[i],i);"function"==typeof n&&n()}var i=new function(){var t="introjs_event";this._id=function(t,n,i,o){return n+e(i)+(o?"_".concat(e(o)):"")},this.on=function(e,n,i,o,r){var a=this._id.apply(this,arguments),l=function(t){return i.call(o||e,t||window.event)};"addEventListener"in e?e.addEventListener(n,l,r):"attachEvent"in e&&e.attachEvent("on".concat(n),l),e[t]=e[t]||{},e[t][a]=l},this.off=function(e,n,i,o,r){var a=this._id.apply(this,arguments),l=e[t]&&e[t][a];l&&("removeEventListener"in e?e.removeEventListener(n,l,r):"detachEvent"in e&&e.detachEvent("on".concat(n),l),e[t][a]=null)}},o="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function r(t,e){return t(e={exports:{}},e.exports),e.exports}var a,l,s=function(t){return t&&t.Math==Math&&t},c=s("object"==typeof globalThis&&globalThis)||s("object"==typeof window&&window)||s("object"==typeof self&&self)||s("object"==typeof o&&o)||function(){return this}()||Function("return this")(),u=function(t){try{return!!t()}catch(t){return!0}},h=!u((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})),f=!u((function(){var t=function(){}.bind();return"function"!=typeof t||t.hasOwnProperty("prototype")})),p=Function.prototype.call,d=f?p.bind(p):function(){return p.apply(p,arguments)},g={}.propertyIsEnumerable,v=Object.getOwnPropertyDescriptor,b={f:v&&!g.call({1:2},1)?function(t){var e=v(this,t);return!!e&&e.enumerable}:g},m=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}},y=Function.prototype,w=y.bind,_=y.call,x=f&&w.bind(_,_),S=f?function(t){return t&&x(t)}:function(t){return t&&function(){return _.apply(t,arguments)}},j=S({}.toString),C=S("".slice),k=function(t){return C(j(t),8,-1)},E=c.Object,A=S("".split),I=u((function(){return!E("z").propertyIsEnumerable(0)}))?function(t){return"String"==k(t)?A(t,""):E(t)}:E,T=c.TypeError,N=function(t){if(null==t)throw T("Can't call method on "+t);return t},O=function(t){return I(N(t))},P=function(t){return"function"==typeof t},L=function(t){return"object"==typeof t?null!==t:P(t)},R=function(t){return P(t)?t:void 0},q=function(t,e){return arguments.length<2?R(c[t]):c[t]&&c[t][e]},B=S({}.isPrototypeOf),M=q("navigator","userAgent")||"",H=c.process,F=c.Deno,$=H&&H.versions||F&&F.version,D=$&&$.v8;D&&(l=(a=D.split("."))[0]>0&&a[0]<4?1:+(a[0]+a[1])),!l&&M&&(!(a=M.match(/Edge\/(\d+)/))||a[1]>=74)&&(a=M.match(/Chrome\/(\d+)/))&&(l=+a[1]);var z=l,G=!!Object.getOwnPropertySymbols&&!u((function(){var t=Symbol();return!String(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&z&&z<41})),W=G&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,V=c.Object,U=W?function(t){return"symbol"==typeof t}:function(t){var e=q("Symbol");return P(e)&&B(e.prototype,V(t))},K=c.String,Y=function(t){try{return K(t)}catch(t){return"Object"}},X=c.TypeError,J=function(t){if(P(t))return t;throw X(Y(t)+" is not a function")},Q=function(t,e){var n=t[e];return null==n?void 0:J(n)},Z=c.TypeError,tt=Object.defineProperty,et=function(t,e){try{tt(c,t,{value:e,configurable:!0,writable:!0})}catch(n){c[t]=e}return e},nt="__core-js_shared__",it=c[nt]||et(nt,{}),ot=r((function(t){(t.exports=function(t,e){return it[t]||(it[t]=void 0!==e?e:{})})("versions",[]).push({version:"3.21.0",mode:"global",copyright:"© 2014-2022 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.21.0/LICENSE",source:"https://github.com/zloirock/core-js"})})),rt=c.Object,at=function(t){return rt(N(t))},lt=S({}.hasOwnProperty),st=Object.hasOwn||function(t,e){return lt(at(t),e)},ct=0,ut=Math.random(),ht=S(1..toString),ft=function(t){return"Symbol("+(void 0===t?"":t)+")_"+ht(++ct+ut,36)},pt=ot("wks"),dt=c.Symbol,gt=dt&&dt.for,vt=W?dt:dt&&dt.withoutSetter||ft,bt=function(t){if(!st(pt,t)||!G&&"string"!=typeof pt[t]){var e="Symbol."+t;G&&st(dt,t)?pt[t]=dt[t]:pt[t]=W&&gt?gt(e):vt(e)}return pt[t]},mt=c.TypeError,yt=bt("toPrimitive"),wt=function(t,e){if(!L(t)||U(t))return t;var n,i=Q(t,yt);if(i){if(void 0===e&&(e="default"),n=d(i,t,e),!L(n)||U(n))return n;throw mt("Can't convert object to primitive value")}return void 0===e&&(e="number"),function(t,e){var n,i;if("string"===e&&P(n=t.toString)&&!L(i=d(n,t)))return i;if(P(n=t.valueOf)&&!L(i=d(n,t)))return i;if("string"!==e&&P(n=t.toString)&&!L(i=d(n,t)))return i;throw Z("Can't convert object to primitive value")}(t,e)},_t=function(t){var e=wt(t,"string");return U(e)?e:e+""},xt=c.document,St=L(xt)&&L(xt.createElement),jt=function(t){return St?xt.createElement(t):{}},Ct=!h&&!u((function(){return 7!=Object.defineProperty(jt("div"),"a",{get:function(){return 7}}).a})),kt=Object.getOwnPropertyDescriptor,Et={f:h?kt:function(t,e){if(t=O(t),e=_t(e),Ct)try{return kt(t,e)}catch(t){}if(st(t,e))return m(!d(b.f,t,e),t[e])}},At=h&&u((function(){return 42!=Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype})),It=c.String,Tt=c.TypeError,Nt=function(t){if(L(t))return t;throw Tt(It(t)+" is not an object")},Ot=c.TypeError,Pt=Object.defineProperty,Lt=Object.getOwnPropertyDescriptor,Rt="enumerable",qt="configurable",Bt="writable",Mt={f:h?At?function(t,e,n){if(Nt(t),e=_t(e),Nt(n),"function"==typeof t&&"prototype"===e&&"value"in n&&Bt in n&&!n.writable){var i=Lt(t,e);i&&i.writable&&(t[e]=n.value,n={configurable:qt in n?n.configurable:i.configurable,enumerable:Rt in n?n.enumerable:i.enumerable,writable:!1})}return Pt(t,e,n)}:Pt:function(t,e,n){if(Nt(t),e=_t(e),Nt(n),Ct)try{return Pt(t,e,n)}catch(t){}if("get"in n||"set"in n)throw Ot("Accessors not supported");return"value"in n&&(t[e]=n.value),t}},Ht=h?function(t,e,n){return Mt.f(t,e,m(1,n))}:function(t,e,n){return t[e]=n,t},Ft=S(Function.toString);P(it.inspectSource)||(it.inspectSource=function(t){return Ft(t)});var $t,Dt,zt,Gt=it.inspectSource,Wt=c.WeakMap,Vt=P(Wt)&&/native code/.test(Gt(Wt)),Ut=ot("keys"),Kt=function(t){return Ut[t]||(Ut[t]=ft(t))},Yt={},Xt="Object already initialized",Jt=c.TypeError,Qt=c.WeakMap;if(Vt||it.state){var Zt=it.state||(it.state=new Qt),te=S(Zt.get),ee=S(Zt.has),ne=S(Zt.set);$t=function(t,e){if(ee(Zt,t))throw new Jt(Xt);return e.facade=t,ne(Zt,t,e),e},Dt=function(t){return te(Zt,t)||{}},zt=function(t){return ee(Zt,t)}}else{var ie=Kt("state");Yt[ie]=!0,$t=function(t,e){if(st(t,ie))throw new Jt(Xt);return e.facade=t,Ht(t,ie,e),e},Dt=function(t){return st(t,ie)?t[ie]:{}},zt=function(t){return st(t,ie)}}var oe={set:$t,get:Dt,has:zt,enforce:function(t){return zt(t)?Dt(t):$t(t,{})},getterFor:function(t){return function(e){var n;if(!L(e)||(n=Dt(e)).type!==t)throw Jt("Incompatible receiver, "+t+" required");return n}}},re=Function.prototype,ae=h&&Object.getOwnPropertyDescriptor,le=st(re,"name"),se={EXISTS:le,PROPER:le&&"something"===function(){}.name,CONFIGURABLE:le&&(!h||h&&ae(re,"name").configurable)},ce=r((function(t){var e=se.CONFIGURABLE,n=oe.get,i=oe.enforce,o=String(String).split("String");(t.exports=function(t,n,r,a){var l,s=!!a&&!!a.unsafe,u=!!a&&!!a.enumerable,h=!!a&&!!a.noTargetGet,f=a&&void 0!==a.name?a.name:n;P(r)&&("Symbol("===String(f).slice(0,7)&&(f="["+String(f).replace(/^Symbol\(([^)]*)\)/,"$1")+"]"),(!st(r,"name")||e&&r.name!==f)&&Ht(r,"name",f),(l=i(r)).source||(l.source=o.join("string"==typeof f?f:""))),t!==c?(s?!h&&t[n]&&(u=!0):delete t[n],u?t[n]=r:Ht(t,n,r)):u?t[n]=r:et(n,r)})(Function.prototype,"toString",(function(){return P(this)&&n(this).source||Gt(this)}))})),ue=Math.ceil,he=Math.floor,fe=function(t){var e=+t;return e!=e||0===e?0:(e>0?he:ue)(e)},pe=Math.max,de=Math.min,ge=function(t,e){var n=fe(t);return n<0?pe(n+e,0):de(n,e)},ve=Math.min,be=function(t){return t>0?ve(fe(t),9007199254740991):0},me=function(t){return be(t.length)},ye=function(t){return function(e,n,i){var o,r=O(e),a=me(r),l=ge(i,a);if(t&&n!=n){for(;a>l;)if((o=r[l++])!=o)return!0}else for(;a>l;l++)if((t||l in r)&&r[l]===n)return t||l||0;return!t&&-1}},we={includes:ye(!0),indexOf:ye(!1)},_e=we.indexOf,xe=S([].push),Se=function(t,e){var n,i=O(t),o=0,r=[];for(n in i)!st(Yt,n)&&st(i,n)&&xe(r,n);for(;e.length>o;)st(i,n=e[o++])&&(~_e(r,n)||xe(r,n));return r},je=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],Ce=je.concat("length","prototype"),ke={f:Object.getOwnPropertyNames||function(t){return Se(t,Ce)}},Ee={f:Object.getOwnPropertySymbols},Ae=S([].concat),Ie=q("Reflect","ownKeys")||function(t){var e=ke.f(Nt(t)),n=Ee.f;return n?Ae(e,n(t)):e},Te=function(t,e,n){for(var i=Ie(e),o=Mt.f,r=Et.f,a=0;a<i.length;a++){var l=i[a];st(t,l)||n&&st(n,l)||o(t,l,r(e,l))}},Ne=/#|\.prototype\./,Oe=function(t,e){var n=Le[Pe(t)];return n==qe||n!=Re&&(P(e)?u(e):!!e)},Pe=Oe.normalize=function(t){return String(t).replace(Ne,".").toLowerCase()},Le=Oe.data={},Re=Oe.NATIVE="N",qe=Oe.POLYFILL="P",Be=Oe,Me=Et.f,He=function(t,e){var n,i,o,r,a,l=t.target,s=t.global,u=t.stat;if(n=s?c:u?c[l]||et(l,{}):(c[l]||{}).prototype)for(i in e){if(r=e[i],o=t.noTargetGet?(a=Me(n,i))&&a.value:n[i],!Be(s?i:l+(u?".":"#")+i,t.forced)&&void 0!==o){if(typeof r==typeof o)continue;Te(r,o)}(t.sham||o&&o.sham)&&Ht(r,"sham",!0),ce(n,i,r,t)}},Fe={};Fe[bt("toStringTag")]="z";var $e,De="[object z]"===String(Fe),ze=bt("toStringTag"),Ge=c.Object,We="Arguments"==k(function(){return arguments}()),Ve=De?k:function(t){var e,n,i;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=function(t,e){try{return t[e]}catch(t){}}(e=Ge(t),ze))?n:We?k(e):"Object"==(i=k(e))&&P(e.callee)?"Arguments":i},Ue=c.String,Ke=function(t){if("Symbol"===Ve(t))throw TypeError("Cannot convert a Symbol value to a string");return Ue(t)},Ye=function(){var t=Nt(this),e="";return t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.dotAll&&(e+="s"),t.unicode&&(e+="u"),t.sticky&&(e+="y"),e},Xe=c.RegExp,Je=u((function(){var t=Xe("a","y");return t.lastIndex=2,null!=t.exec("abcd")})),Qe=Je||u((function(){return!Xe("a","y").sticky})),Ze={BROKEN_CARET:Je||u((function(){var t=Xe("^r","gy");return t.lastIndex=2,null!=t.exec("str")})),MISSED_STICKY:Qe,UNSUPPORTED_Y:Je},tn=Object.keys||function(t){return Se(t,je)},en=h&&!At?Object.defineProperties:function(t,e){Nt(t);for(var n,i=O(e),o=tn(e),r=o.length,a=0;r>a;)Mt.f(t,n=o[a++],i[n]);return t},nn={f:en},on=q("document","documentElement"),rn=Kt("IE_PROTO"),an=function(){},ln=function(t){return"<script>"+t+"</"+"script>"},sn=function(t){t.write(ln("")),t.close();var e=t.parentWindow.Object;return t=null,e},cn=function(){try{$e=new ActiveXObject("htmlfile")}catch(t){}var t,e;cn="undefined"!=typeof document?document.domain&&$e?sn($e):((e=jt("iframe")).style.display="none",on.appendChild(e),e.src=String("javascript:"),(t=e.contentWindow.document).open(),t.write(ln("document.F=Object")),t.close(),t.F):sn($e);for(var n=je.length;n--;)delete cn.prototype[je[n]];return cn()};Yt[rn]=!0;var un,hn,fn=Object.create||function(t,e){var n;return null!==t?(an.prototype=Nt(t),n=new an,an.prototype=null,n[rn]=t):n=cn(),void 0===e?n:nn.f(n,e)},pn=c.RegExp,dn=u((function(){var t=pn(".","s");return!(t.dotAll&&t.exec("\n")&&"s"===t.flags)})),gn=c.RegExp,vn=u((function(){var t=gn("(?<a>b)","g");return"b"!==t.exec("b").groups.a||"bc"!=="b".replace(t,"$<a>c")})),bn=oe.get,mn=ot("native-string-replace",String.prototype.replace),yn=RegExp.prototype.exec,wn=yn,_n=S("".charAt),xn=S("".indexOf),Sn=S("".replace),jn=S("".slice),Cn=(hn=/b*/g,d(yn,un=/a/,"a"),d(yn,hn,"a"),0!==un.lastIndex||0!==hn.lastIndex),kn=Ze.BROKEN_CARET,En=void 0!==/()??/.exec("")[1];(Cn||En||kn||dn||vn)&&(wn=function(t){var e,n,i,o,r,a,l,s=this,c=bn(s),u=Ke(t),h=c.raw;if(h)return h.lastIndex=s.lastIndex,e=d(wn,h,u),s.lastIndex=h.lastIndex,e;var f=c.groups,p=kn&&s.sticky,g=d(Ye,s),v=s.source,b=0,m=u;if(p&&(g=Sn(g,"y",""),-1===xn(g,"g")&&(g+="g"),m=jn(u,s.lastIndex),s.lastIndex>0&&(!s.multiline||s.multiline&&"\n"!==_n(u,s.lastIndex-1))&&(v="(?: "+v+")",m=" "+m,b++),n=new RegExp("^(?:"+v+")",g)),En&&(n=new RegExp("^"+v+"$(?!\\s)",g)),Cn&&(i=s.lastIndex),o=d(yn,p?n:s,m),p?o?(o.input=jn(o.input,b),o[0]=jn(o[0],b),o.index=s.lastIndex,s.lastIndex+=o[0].length):s.lastIndex=0:Cn&&o&&(s.lastIndex=s.global?o.index+o[0].length:i),En&&o&&o.length>1&&d(mn,o[0],n,(function(){for(r=1;r<arguments.length-2;r++)void 0===arguments[r]&&(o[r]=void 0)})),o&&f)for(o.groups=a=fn(null),r=0;r<f.length;r++)a[(l=f[r])[0]]=o[l[1]];return o});var An=wn;He({target:"RegExp",proto:!0,forced:/./.exec!==An},{exec:An});var In=bt("species"),Tn=RegExp.prototype,Nn=function(t,e,n,i){var o=bt(t),r=!u((function(){var e={};return e[o]=function(){return 7},7!=""[t](e)})),a=r&&!u((function(){var e=!1,n=/a/;return"split"===t&&((n={}).constructor={},n.constructor[In]=function(){return n},n.flags="",n[o]=/./[o]),n.exec=function(){return e=!0,null},n[o](""),!e}));if(!r||!a||n){var l=S(/./[o]),s=e(o,""[t],(function(t,e,n,i,o){var a=S(t),s=e.exec;return s===An||s===Tn.exec?r&&!o?{done:!0,value:l(e,n,i)}:{done:!0,value:a(n,e,i)}:{done:!1}}));ce(String.prototype,t,s[0]),ce(Tn,o,s[1])}i&&Ht(Tn[o],"sham",!0)},On=S("".charAt),Pn=S("".charCodeAt),Ln=S("".slice),Rn=function(t){return function(e,n){var i,o,r=Ke(N(e)),a=fe(n),l=r.length;return a<0||a>=l?t?"":void 0:(i=Pn(r,a))<55296||i>56319||a+1===l||(o=Pn(r,a+1))<56320||o>57343?t?On(r,a):i:t?Ln(r,a,a+2):o-56320+(i-55296<<10)+65536}},qn={codeAt:Rn(!1),charAt:Rn(!0)}.charAt,Bn=function(t,e,n){return e+(n?qn(t,e).length:1)},Mn=c.TypeError,Hn=function(t,e){var n=t.exec;if(P(n)){var i=d(n,t,e);return null!==i&&Nt(i),i}if("RegExp"===k(t))return d(An,t,e);throw Mn("RegExp#exec called on incompatible receiver")};Nn("match",(function(t,e,n){return[function(e){var n=N(this),i=null==e?void 0:Q(e,t);return i?d(i,e,n):new RegExp(e)[t](Ke(n))},function(t){var i=Nt(this),o=Ke(t),r=n(e,i,o);if(r.done)return r.value;if(!i.global)return Hn(i,o);var a=i.unicode;i.lastIndex=0;for(var l,s=[],c=0;null!==(l=Hn(i,o));){var u=Ke(l[0]);s[c]=u,""===u&&(i.lastIndex=Bn(o,be(i.lastIndex),a)),c++}return 0===c?null:s}]}));var Fn=Array.isArray||function(t){return"Array"==k(t)},$n=function(t,e,n){var i=_t(e);i in t?Mt.f(t,i,m(0,n)):t[i]=n},Dn=function(){},zn=[],Gn=q("Reflect","construct"),Wn=/^\s*(?:class|function)\b/,Vn=S(Wn.exec),Un=!Wn.exec(Dn),Kn=function(t){if(!P(t))return!1;try{return Gn(Dn,zn,t),!0}catch(t){return!1}},Yn=function(t){if(!P(t))return!1;switch(Ve(t)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return Un||!!Vn(Wn,Gt(t))}catch(t){return!0}};Yn.sham=!0;var Xn=!Gn||u((function(){var t;return Kn(Kn.call)||!Kn(Object)||!Kn((function(){t=!0}))||t}))?Yn:Kn,Jn=bt("species"),Qn=c.Array,Zn=function(t,e){return new(function(t){var e;return Fn(t)&&(e=t.constructor,(Xn(e)&&(e===Qn||Fn(e.prototype))||L(e)&&null===(e=e[Jn]))&&(e=void 0)),void 0===e?Qn:e}(t))(0===e?0:e)},ti=bt("species"),ei=function(t){return z>=51||!u((function(){var e=[];return(e.constructor={})[ti]=function(){return{foo:1}},1!==e[t](Boolean).foo}))},ni=bt("isConcatSpreadable"),ii=9007199254740991,oi="Maximum allowed index exceeded",ri=c.TypeError,ai=z>=51||!u((function(){var t=[];return t[ni]=!1,t.concat()[0]!==t})),li=ei("concat"),si=function(t){if(!L(t))return!1;var e=t[ni];return void 0!==e?!!e:Fn(t)};He({target:"Array",proto:!0,forced:!ai||!li},{concat:function(t){var e,n,i,o,r,a=at(this),l=Zn(a,0),s=0;for(e=-1,i=arguments.length;e<i;e++)if(si(r=-1===e?a:arguments[e])){if(s+(o=me(r))>ii)throw ri(oi);for(n=0;n<o;n++,s++)n in r&&$n(l,s,r[n])}else{if(s>=ii)throw ri(oi);$n(l,s++,r)}return l.length=s,l}});var ci=De?{}.toString:function(){return"[object "+Ve(this)+"]"};De||ce(Object.prototype,"toString",ci,{unsafe:!0});var ui=se.PROPER,hi="toString",fi=RegExp.prototype,pi=fi.toString,di=S(Ye),gi=u((function(){return"/a/b"!=pi.call({source:"a",flags:"b"})})),vi=ui&&pi.name!=hi;(gi||vi)&&ce(RegExp.prototype,hi,(function(){var t=Nt(this),e=Ke(t.source),n=t.flags;return"/"+e+"/"+Ke(void 0===n&&B(fi,t)&&!("flags"in fi)?di(t):n)}),{unsafe:!0});var bi=Function.prototype,mi=bi.apply,yi=bi.call,wi="object"==typeof Reflect&&Reflect.apply||(f?yi.bind(mi):function(){return yi.apply(mi,arguments)}),_i=bt("match"),xi=function(t){var e;return L(t)&&(void 0!==(e=t[_i])?!!e:"RegExp"==k(t))},Si=c.TypeError,ji=bt("species"),Ci=function(t,e){var n,i=Nt(t).constructor;return void 0===i||null==(n=Nt(i)[ji])?e:function(t){if(Xn(t))return t;throw Si(Y(t)+" is not a constructor")}(n)},ki=c.Array,Ei=Math.max,Ai=function(t,e,n){for(var i=me(t),o=ge(e,i),r=ge(void 0===n?i:n,i),a=ki(Ei(r-o,0)),l=0;o<r;o++,l++)$n(a,l,t[o]);return a.length=l,a},Ii=Ze.UNSUPPORTED_Y,Ti=4294967295,Ni=Math.min,Oi=[].push,Pi=S(/./.exec),Li=S(Oi),Ri=S("".slice),qi=!u((function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var n="ab".split(t);return 2!==n.length||"a"!==n[0]||"b"!==n[1]}));function Bi(t,e){if(t instanceof SVGElement){var i=t.getAttribute("class")||"";i.match(e)||t.setAttribute("class","".concat(i," ").concat(e))}else{if(void 0!==t.classList)n(e.split(" "),(function(e){t.classList.add(e)}));else t.className.match(e)||(t.className+=" ".concat(e))}}function Mi(t,e){var n="";return t.currentStyle?n=t.currentStyle[e]:document.defaultView&&document.defaultView.getComputedStyle&&(n=document.defaultView.getComputedStyle(t,null).getPropertyValue(e)),n&&n.toLowerCase?n.toLowerCase():n}function Hi(t){var e=t.element;if(this._options.scrollToElement){var n=function(t){var e=window.getComputedStyle(t),n="absolute"===e.position,i=/(auto|scroll)/;if("fixed"===e.position)return document.body;for(var o=t;o=o.parentElement;)if(e=window.getComputedStyle(o),(!n||"static"!==e.position)&&i.test(e.overflow+e.overflowY+e.overflowX))return o;return document.body}(e);n!==document.body&&(n.scrollTop=e.offsetTop-n.offsetTop)}}function Fi(){if(void 0!==window.innerWidth)return{width:window.innerWidth,height:window.innerHeight};var t=document.documentElement;return{width:t.clientWidth,height:t.clientHeight}}function $i(t,e,n){var i,o=e.element;if("off"!==t&&(this._options.scrollToElement&&(i="tooltip"===t?n.getBoundingClientRect():o.getBoundingClientRect(),!function(t){var e=t.getBoundingClientRect();return e.top>=0&&e.left>=0&&e.bottom+80<=window.innerHeight&&e.right<=window.innerWidth}(o)))){var r=Fi().height;i.bottom-(i.bottom-i.top)<0||o.clientHeight>r?window.scrollBy(0,i.top-(r/2-i.height/2)-this._options.scrollPadding):window.scrollBy(0,i.top-(r/2-i.height/2)+this._options.scrollPadding)}}function Di(t){t.setAttribute("role","button"),t.tabIndex=0}Nn("split",(function(t,e,n){var i;return i="c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length?function(t,n){var i=Ke(N(this)),o=void 0===n?Ti:n>>>0;if(0===o)return[];if(void 0===t)return[i];if(!xi(t))return d(e,i,t,o);for(var r,a,l,s=[],c=(t.ignoreCase?"i":"")+(t.multiline?"m":"")+(t.unicode?"u":"")+(t.sticky?"y":""),u=0,h=new RegExp(t.source,c+"g");(r=d(An,h,i))&&!((a=h.lastIndex)>u&&(Li(s,Ri(i,u,r.index)),r.length>1&&r.index<i.length&&wi(Oi,s,Ai(r,1)),l=r[0].length,u=a,s.length>=o));)h.lastIndex===r.index&&h.lastIndex++;return u===i.length?!l&&Pi(h,"")||Li(s,""):Li(s,Ri(i,u)),s.length>o?Ai(s,0,o):s}:"0".split(void 0,0).length?function(t,n){return void 0===t&&0===n?[]:d(e,this,t,n)}:e,[function(e,n){var o=N(this),r=null==e?void 0:Q(e,t);return r?d(r,e,o,n):d(i,Ke(o),e,n)},function(t,o){var r=Nt(this),a=Ke(t),l=n(i,r,a,o,i!==e);if(l.done)return l.value;var s=Ci(r,RegExp),c=r.unicode,u=(r.ignoreCase?"i":"")+(r.multiline?"m":"")+(r.unicode?"u":"")+(Ii?"g":"y"),h=new s(Ii?"^(?:"+r.source+")":r,u),f=void 0===o?Ti:o>>>0;if(0===f)return[];if(0===a.length)return null===Hn(h,a)?[a]:[];for(var p=0,d=0,g=[];d<a.length;){h.lastIndex=Ii?0:d;var v,b=Hn(h,Ii?Ri(a,d):a);if(null===b||(v=Ni(be(h.lastIndex+(Ii?d:0)),a.length))===p)d=Bn(a,d,c);else{if(Li(g,Ri(a,p,d)),g.length===f)return g;for(var m=1;m<=b.length-1;m++)if(Li(g,b[m]),g.length===f)return g;d=p=v}}return Li(g,Ri(a,p)),g}]}),!qi,Ii);var zi=Object.assign,Gi=Object.defineProperty,Wi=S([].concat),Vi=!zi||u((function(){if(h&&1!==zi({b:1},zi(Gi({},"a",{enumerable:!0,get:function(){Gi(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var t={},e={},n=Symbol(),i="abcdefghijklmnopqrst";return t[n]=7,i.split("").forEach((function(t){e[t]=t})),7!=zi({},t)[n]||tn(zi({},e)).join("")!=i}))?function(t,e){for(var n=at(t),i=arguments.length,o=1,r=Ee.f,a=b.f;i>o;)for(var l,s=I(arguments[o++]),c=r?Wi(tn(s),r(s)):tn(s),u=c.length,f=0;u>f;)l=c[f++],h&&!d(a,s,l)||(n[l]=s[l]);return n}:zi;function Ui(t){var e=t.parentNode;return!(!e||"HTML"===e.nodeName)&&("fixed"===Mi(t,"position")||Ui(e))}function Ki(t,e){var n=document.body,i=document.documentElement,o=window.pageYOffset||i.scrollTop||n.scrollTop,r=window.pageXOffset||i.scrollLeft||n.scrollLeft;e=e||n;var a=t.getBoundingClientRect(),l=e.getBoundingClientRect(),s=Mi(e,"position"),c={width:a.width,height:a.height};return"body"!==e.tagName.toLowerCase()&&"relative"===s||"sticky"===s?Object.assign(c,{top:a.top-l.top,left:a.left-l.left}):Ui(t)?Object.assign(c,{top:a.top,left:a.left}):Object.assign(c,{top:a.top+o,left:a.left+r})}He({target:"Object",stat:!0,forced:Object.assign!==Vi},{assign:Vi});var Yi=Math.floor,Xi=S("".charAt),Ji=S("".replace),Qi=S("".slice),Zi=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,to=/\$([$&'`]|\d{1,2})/g,eo=function(t,e,n,i,o,r){var a=n+t.length,l=i.length,s=to;return void 0!==o&&(o=at(o),s=Zi),Ji(r,s,(function(r,s){var c;switch(Xi(s,0)){case"$":return"$";case"&":return t;case"`":return Qi(e,0,n);case"'":return Qi(e,a);case"<":c=o[Qi(s,1,-1)];break;default:var u=+s;if(0===u)return r;if(u>l){var h=Yi(u/10);return 0===h?r:h<=l?void 0===i[h-1]?Xi(s,1):i[h-1]+Xi(s,1):r}c=i[u-1]}return void 0===c?"":c}))},no=bt("replace"),io=Math.max,oo=Math.min,ro=S([].concat),ao=S([].push),lo=S("".indexOf),so=S("".slice),co="$0"==="a".replace(/./,"$0"),uo=!!/./[no]&&""===/./[no]("a","$0");function ho(t,e){if(t instanceof SVGElement){var n=t.getAttribute("class")||"";t.setAttribute("class",n.replace(e,"").replace(/^\s+|\s+$/g,""))}else t.className=t.className.replace(e,"").replace(/^\s+|\s+$/g,"")}function fo(t,e){var n="";if(t.style.cssText&&(n+=t.style.cssText),"string"==typeof e)n+=e;else for(var i in e)n+="".concat(i,":").concat(e[i],";");t.style.cssText=n}function po(t){if(t){if(!this._introItems[this._currentStep])return;var e=this._introItems[this._currentStep],n=Ki(e.element,this._targetElement),i=this._options.helperElementPadding;Ui(e.element)?Bi(t,"introjs-fixedTooltip"):ho(t,"introjs-fixedTooltip"),"floating"===e.position&&(i=0),fo(t,{width:"".concat(n.width+i,"px"),height:"".concat(n.height+i,"px"),top:"".concat(n.top-i/2,"px"),left:"".concat(n.left-i/2,"px")})}}Nn("replace",(function(t,e,n){var i=uo?"$":"$0";return[function(t,n){var i=N(this),o=null==t?void 0:Q(t,no);return o?d(o,t,i,n):d(e,Ke(i),t,n)},function(t,o){var r=Nt(this),a=Ke(t);if("string"==typeof o&&-1===lo(o,i)&&-1===lo(o,"$<")){var l=n(e,r,a,o);if(l.done)return l.value}var s=P(o);s||(o=Ke(o));var c=r.global;if(c){var u=r.unicode;r.lastIndex=0}for(var h=[];;){var f=Hn(r,a);if(null===f)break;if(ao(h,f),!c)break;""===Ke(f[0])&&(r.lastIndex=Bn(a,be(r.lastIndex),u))}for(var p,d="",g=0,v=0;v<h.length;v++){for(var b=Ke((f=h[v])[0]),m=io(oo(fe(f.index),a.length),0),y=[],w=1;w<f.length;w++)ao(y,void 0===(p=f[w])?p:String(p));var _=f.groups;if(s){var x=ro([b],y,m,a);void 0!==_&&ao(x,_);var S=Ke(wi(o,void 0,x))}else S=eo(b,a,m,y,_,o);m>=g&&(d+=so(a,g,m)+S,g=m+b.length)}return d+so(a,g)}]}),!!u((function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:"7"},t},"7"!=="".replace(t,"$<a>")}))||!co||uo);var go=bt("unscopables"),vo=Array.prototype;null==vo[go]&&Mt.f(vo,go,{configurable:!0,value:fn(null)});var bo,mo=we.includes;He({target:"Array",proto:!0},{includes:function(t){return mo(this,t,arguments.length>1?arguments[1]:void 0)}}),bo="includes",vo[go][bo]=!0;var yo=S([].slice),wo=ei("slice"),_o=bt("species"),xo=c.Array,So=Math.max;He({target:"Array",proto:!0,forced:!wo},{slice:function(t,e){var n,i,o,r=O(this),a=me(r),l=ge(t,a),s=ge(void 0===e?a:e,a);if(Fn(r)&&(n=r.constructor,(Xn(n)&&(n===xo||Fn(n.prototype))||L(n)&&null===(n=n[_o]))&&(n=void 0),n===xo||void 0===n))return yo(r,l,s);for(i=new(void 0===n?xo:n)(So(s-l,0)),o=0;l<s;l++,o++)l in r&&$n(i,o,r[l]);return i.length=o,i}});var jo=c.TypeError,Co=function(t){if(xi(t))throw jo("The method doesn't accept regular expressions");return t},ko=bt("match"),Eo=S("".indexOf);He({target:"String",proto:!0,forced:!function(t){var e=/./;try{"/./"[t](e)}catch(n){try{return e[ko]=!1,"/./"[t](e)}catch(t){}}return!1}("includes")},{includes:function(t){return!!~Eo(Ke(N(this)),Ke(Co(t)),arguments.length>1?arguments[1]:void 0)}});var Ao=function(t,e){var n=[][t];return!!n&&u((function(){n.call(null,e||function(){throw 1},1)}))},Io=S([].join),To=I!=Object,No=Ao("join",",");He({target:"Array",proto:!0,forced:To||!No},{join:function(t){return Io(O(this),void 0===t?",":t)}});var Oo=S(S.bind),Po=S([].push),Lo=function(t){var e=1==t,n=2==t,i=3==t,o=4==t,r=6==t,a=7==t,l=5==t||r;return function(s,c,u,h){for(var p,d,g=at(s),v=I(g),b=function(t,e){return J(t),void 0===e?t:f?Oo(t,e):function(){return t.apply(e,arguments)}}(c,u),m=me(v),y=0,w=h||Zn,_=e?w(s,m):n||a?w(s,0):void 0;m>y;y++)if((l||y in v)&&(d=b(p=v[y],y,g),t))if(e)_[y]=d;else if(d)switch(t){case 3:return!0;case 5:return p;case 6:return y;case 2:Po(_,p)}else switch(t){case 4:return!1;case 7:Po(_,p)}return r?-1:i||o?o:_}},Ro={forEach:Lo(0),map:Lo(1),filter:Lo(2),some:Lo(3),every:Lo(4),find:Lo(5),findIndex:Lo(6),filterReject:Lo(7)}.filter;function qo(t,e,n,i,o){return t.left+e+n.width>i.width?(o.style.left="".concat(i.width-n.width-t.left,"px"),!1):(o.style.left="".concat(e,"px"),!0)}function Bo(t,e,n,i){return t.left+t.width-e-n.width<0?(i.style.left="".concat(-t.left,"px"),!1):(i.style.right="".concat(e,"px"),!0)}He({target:"Array",proto:!0,forced:!ei("filter")},{filter:function(t){return Ro(this,t,arguments.length>1?arguments[1]:void 0)}});var Mo=ei("splice"),Ho=c.TypeError,Fo=Math.max,$o=Math.min,Do=9007199254740991,zo="Maximum allowed length exceeded";function Go(t,e){t.includes(e)&&t.splice(t.indexOf(e),1)}function Wo(t,e,n){var i=this._options.positionPrecedence.slice(),o=Fi(),r=Ki(e).height+10,a=Ki(e).width+20,l=t.getBoundingClientRect(),s="floating";l.bottom+r>o.height&&Go(i,"bottom"),l.top-r<0&&Go(i,"top"),l.right+a>o.width&&Go(i,"right"),l.left-a<0&&Go(i,"left");var c,u,h=-1!==(u=(c=n||"").indexOf("-"))?c.substr(u):"";return n&&(n=n.split("-")[0]),i.length&&(s=i.includes(n)?n:i[0]),["top","bottom"].includes(s)&&(s+=function(t,e,n,i){var o=n.width,r=e/2,a=Math.min(o,window.screen.width),l=["-left-aligned","-middle-aligned","-right-aligned"];return a-t<e&&Go(l,"-left-aligned"),(t<r||a-t<r)&&Go(l,"-middle-aligned"),t<e&&Go(l,"-right-aligned"),l.length?l.includes(i)?i:l[0]:"-middle-aligned"}(l.left,a,o,h)),s}function Vo(t,e,n,i){var o,r,a,l,s,c="";if(i=i||!1,e.style.top=null,e.style.right=null,e.style.bottom=null,e.style.left=null,e.style.marginLeft=null,e.style.marginTop=null,n.style.display="inherit",this._introItems[this._currentStep])switch(c="string"==typeof(o=this._introItems[this._currentStep]).tooltipClass?o.tooltipClass:this._options.tooltipClass,e.className=["introjs-tooltip",c].filter(Boolean).join(" "),e.setAttribute("role","dialog"),"floating"!==(s=this._introItems[this._currentStep].position)&&this._options.autoPosition&&(s=Wo.call(this,t,e,s)),a=Ki(t),r=Ki(e),l=Fi(),Bi(e,"introjs-".concat(s)),s){case"top-right-aligned":n.className="introjs-arrow bottom-right";var u=0;Bo(a,u,r,e),e.style.bottom="".concat(a.height+20,"px");break;case"top-middle-aligned":n.className="introjs-arrow bottom-middle";var h=a.width/2-r.width/2;i&&(h+=5),Bo(a,h,r,e)&&(e.style.right=null,qo(a,h,r,l,e)),e.style.bottom="".concat(a.height+20,"px");break;case"top-left-aligned":case"top":n.className="introjs-arrow bottom",qo(a,i?0:15,r,l,e),e.style.bottom="".concat(a.height+20,"px");break;case"right":e.style.left="".concat(a.width+20,"px"),a.top+r.height>l.height?(n.className="introjs-arrow left-bottom",e.style.top="-".concat(r.height-a.height-20,"px")):n.className="introjs-arrow left";break;case"left":i||!0!==this._options.showStepNumbers||(e.style.top="15px"),a.top+r.height>l.height?(e.style.top="-".concat(r.height-a.height-20,"px"),n.className="introjs-arrow right-bottom"):n.className="introjs-arrow right",e.style.right="".concat(a.width+20,"px");break;case"floating":n.style.display="none",e.style.left="50%",e.style.top="50%",e.style.marginLeft="-".concat(r.width/2,"px"),e.style.marginTop="-".concat(r.height/2,"px");break;case"bottom-right-aligned":n.className="introjs-arrow top-right",Bo(a,u=0,r,e),e.style.top="".concat(a.height+20,"px");break;case"bottom-middle-aligned":n.className="introjs-arrow top-middle",h=a.width/2-r.width/2,i&&(h+=5),Bo(a,h,r,e)&&(e.style.right=null,qo(a,h,r,l,e)),e.style.top="".concat(a.height+20,"px");break;default:n.className="introjs-arrow top",qo(a,0,r,l,e),e.style.top="".concat(a.height+20,"px")}}function Uo(){n(document.querySelectorAll(".introjs-showElement"),(function(t){ho(t,/introjs-[a-zA-Z]+/g)}))}function Ko(t,e){var n=document.createElement(t);e=e||{};var i=/^(?:role|data-|aria-)/;for(var o in e){var r=e[o];"style"===o?fo(n,r):o.match(i)?n.setAttribute(o,r):n[o]=r}return n}function Yo(t,e,n){if(n){var i=e.style.opacity||"1";fo(e,{opacity:"0"}),window.setTimeout((function(){fo(e,{opacity:i})}),10)}t.appendChild(e)}function Xo(){return parseInt(this._currentStep+1,10)/this._introItems.length*100}function Jo(){var t=document.querySelector(".introjs-disableInteraction");null===t&&(t=Ko("div",{className:"introjs-disableInteraction"}),this._targetElement.appendChild(t)),po.call(this,t)}function Qo(t){var e=this,i=Ko("div",{className:"introjs-bullets"});!1===this._options.showBullets&&(i.style.display="none");var o=Ko("ul");o.setAttribute("role","tablist");var r=function(){e.goToStep(this.getAttribute("data-step-number"))};return n(this._introItems,(function(e,n){var i=e.step,a=Ko("li"),l=Ko("a");a.setAttribute("role","presentation"),l.setAttribute("role","tab"),l.onclick=r,n===t.step-1&&(l.className="active"),Di(l),l.innerHTML="&nbsp;",l.setAttribute("data-step-number",i),a.appendChild(l),o.appendChild(a)})),i.appendChild(o),i}function Zo(t,e){if(this._options.showBullets){var n=document.querySelector(".introjs-bullets");n&&n.parentNode.replaceChild(Qo.call(this,e),n)}}function tr(t,e){this._options.showBullets&&(t.querySelector(".introjs-bullets li > a.active").className="",t.querySelector('.introjs-bullets li > a[data-step-number="'.concat(e.step,'"]')).className="active")}function er(){var t=Ko("div");t.className="introjs-progress",!1===this._options.showProgress&&(t.style.display="none");var e=Ko("div",{className:"introjs-progressbar"});return this._options.progressBarAdditionalClass&&(e.className+=" "+this._options.progressBarAdditionalClass),e.setAttribute("role","progress"),e.setAttribute("aria-valuemin",0),e.setAttribute("aria-valuemax",100),e.setAttribute("aria-valuenow",Xo.call(this)),e.style.cssText="width:".concat(Xo.call(this),"%;"),t.appendChild(e),t}function nr(t){t.querySelector(".introjs-progress .introjs-progressbar").style.cssText="width:".concat(Xo.call(this),"%;"),t.querySelector(".introjs-progress .introjs-progressbar").setAttribute("aria-valuenow",Xo.call(this))}function ir(t){var e=this;void 0!==this._introChangeCallback&&this._introChangeCallback.call(this,t.element);var n,i,o,r=this,a=document.querySelector(".introjs-helperLayer"),l=document.querySelector(".introjs-tooltipReferenceLayer"),s="introjs-helperLayer";if("string"==typeof t.highlightClass&&(s+=" ".concat(t.highlightClass)),"string"==typeof this._options.highlightClass&&(s+=" ".concat(this._options.highlightClass)),null!==a&&null!==l){var c=l.querySelector(".introjs-helperNumberLayer"),u=l.querySelector(".introjs-tooltiptext"),h=l.querySelector(".introjs-tooltip-title"),f=l.querySelector(".introjs-arrow"),p=l.querySelector(".introjs-tooltip");o=l.querySelector(".introjs-skipbutton"),i=l.querySelector(".introjs-prevbutton"),n=l.querySelector(".introjs-nextbutton"),a.className=s,p.style.opacity=0,p.style.display="none",Hi.call(r,t),po.call(r,a),po.call(r,l),Uo(),r._lastShowElementTimer&&window.clearTimeout(r._lastShowElementTimer),r._lastShowElementTimer=window.setTimeout((function(){null!==c&&(c.innerHTML="".concat(t.step," of ").concat(e._introItems.length)),u.innerHTML=t.intro,h.innerHTML=t.title,p.style.display="block",Vo.call(r,t.element,p,f),tr.call(r,l,t),nr.call(r,l),p.style.opacity=1,(null!=n&&/introjs-donebutton/gi.test(n.className)||null!=n)&&n.focus(),$i.call(r,t.scrollTo,t,u)}),350)}else{var d=Ko("div",{className:s}),g=Ko("div",{className:"introjs-tooltipReferenceLayer"}),v=Ko("div",{className:"introjs-arrow"}),b=Ko("div",{className:"introjs-tooltip"}),m=Ko("div",{className:"introjs-tooltiptext"}),y=Ko("div",{className:"introjs-tooltip-header"}),w=Ko("h1",{className:"introjs-tooltip-title"}),_=Ko("div");fo(d,{"box-shadow":"0 0 1px 2px rgba(33, 33, 33, 0.8), rgba(33, 33, 33, ".concat(r._options.overlayOpacity.toString(),") 0 0 0 5000px")}),Hi.call(r,t),po.call(r,d),po.call(r,g),Yo(this._targetElement,d,!0),Yo(this._targetElement,g),m.innerHTML=t.intro,w.innerHTML=t.title,_.className="introjs-tooltipbuttons",!1===this._options.showButtons&&(_.style.display="none"),y.appendChild(w),b.appendChild(y),b.appendChild(m),b.appendChild(Qo.call(this,t)),b.appendChild(er.call(this));var x=Ko("div");!0===this._options.showStepNumbers&&(x.className="introjs-helperNumberLayer",x.innerHTML="".concat(t.step," of ").concat(this._introItems.length),b.appendChild(x)),b.appendChild(v),g.appendChild(b),(n=Ko("a")).onclick=function(){r._introItems.length-1!==r._currentStep?ar.call(r):/introjs-donebutton/gi.test(n.className)&&("function"==typeof r._introCompleteCallback&&r._introCompleteCallback.call(r,r._currentStep,"done"),Wr.call(r,r._targetElement))},Di(n),n.innerHTML=this._options.nextLabel,(i=Ko("a")).onclick=function(){0!==r._currentStep&&lr.call(r)},Di(i),i.innerHTML=this._options.prevLabel,Di(o=Ko("a",{className:"introjs-skipbutton"})),o.innerHTML=this._options.skipLabel,o.onclick=function(){r._introItems.length-1===r._currentStep&&"function"==typeof r._introCompleteCallback&&r._introCompleteCallback.call(r,r._currentStep,"skip"),"function"==typeof r._introSkipCallback&&r._introSkipCallback.call(r),Wr.call(r,r._targetElement)},y.appendChild(o),this._introItems.length>1&&_.appendChild(i),_.appendChild(n),b.appendChild(_),Vo.call(r,t.element,b,v),$i.call(this,t.scrollTo,t,b)}var S=r._targetElement.querySelector(".introjs-disableInteraction");S&&S.parentNode.removeChild(S),t.disableInteraction&&Jo.call(r),0===this._currentStep&&this._introItems.length>1?(null!=n&&(n.className="".concat(this._options.buttonClass," introjs-nextbutton"),n.innerHTML=this._options.nextLabel),!0===this._options.hidePrev?(null!=i&&(i.className="".concat(this._options.buttonClass," introjs-prevbutton introjs-hidden")),null!=n&&Bi(n,"introjs-fullbutton")):null!=i&&(i.className="".concat(this._options.buttonClass," introjs-prevbutton introjs-disabled"))):this._introItems.length-1===this._currentStep||1===this._introItems.length?(null!=i&&(i.className="".concat(this._options.buttonClass," introjs-prevbutton")),!0===this._options.hideNext?(null!=n&&(n.className="".concat(this._options.buttonClass," introjs-nextbutton introjs-hidden")),null!=i&&Bi(i,"introjs-fullbutton")):null!=n&&(!0===this._options.nextToDone?(n.innerHTML=this._options.doneLabel,Bi(n,"".concat(this._options.buttonClass," introjs-nextbutton introjs-donebutton"))):n.className="".concat(this._options.buttonClass," introjs-nextbutton introjs-disabled"))):(null!=i&&(i.className="".concat(this._options.buttonClass," introjs-prevbutton")),null!=n&&(n.className="".concat(this._options.buttonClass," introjs-nextbutton"),n.innerHTML=this._options.nextLabel)),null!=i&&i.setAttribute("role","button"),null!=n&&n.setAttribute("role","button"),null!=o&&o.setAttribute("role","button"),null!=n&&n.focus(),function(t){var e=t.element;Bi(e,"introjs-showElement");var n=Mi(e,"position");"absolute"!==n&&"relative"!==n&&"sticky"!==n&&"fixed"!==n&&Bi(e,"introjs-relativePosition")}(t),void 0!==this._introAfterChangeCallback&&this._introAfterChangeCallback.call(this,t.element)}function or(t){this._currentStep=t-2,void 0!==this._introItems&&ar.call(this)}function rr(t){this._currentStepNumber=t,void 0!==this._introItems&&ar.call(this)}function ar(){var t=this;this._direction="forward",void 0!==this._currentStepNumber&&n(this._introItems,(function(e,n){e.step===t._currentStepNumber&&(t._currentStep=n-1,t._currentStepNumber=void 0)})),void 0===this._currentStep?this._currentStep=0:++this._currentStep;var e=this._introItems[this._currentStep],i=!0;return void 0!==this._introBeforeChangeCallback&&(i=this._introBeforeChangeCallback.call(this,e&&e.element)),!1===i?(--this._currentStep,!1):this._introItems.length<=this._currentStep?("function"==typeof this._introCompleteCallback&&this._introCompleteCallback.call(this,this._currentStep,"end"),void Wr.call(this,this._targetElement)):void ir.call(this,e)}function lr(){if(this._direction="backward",0===this._currentStep)return!1;--this._currentStep;var t=this._introItems[this._currentStep],e=!0;if(void 0!==this._introBeforeChangeCallback&&(e=this._introBeforeChangeCallback.call(this,t&&t.element)),!1===e)return++this._currentStep,!1;ir.call(this,t)}function sr(){return this._currentStep}function cr(t){var e=void 0===t.code?t.which:t.code;if(null===e&&(e=null===t.charCode?t.keyCode:t.charCode),"Escape"!==e&&27!==e||!0!==this._options.exitOnEsc){if("ArrowLeft"===e||37===e)lr.call(this);else if("ArrowRight"===e||39===e)ar.call(this);else if("Enter"===e||"NumpadEnter"===e||13===e){var n=t.target||t.srcElement;n&&n.className.match("introjs-prevbutton")?lr.call(this):n&&n.className.match("introjs-skipbutton")?(this._introItems.length-1===this._currentStep&&"function"==typeof this._introCompleteCallback&&this._introCompleteCallback.call(this,this._currentStep,"skip"),Wr.call(this,this._targetElement)):n&&n.getAttribute("data-step-number")?n.click():ar.call(this),t.preventDefault?t.preventDefault():t.returnValue=!1}}else Wr.call(this,this._targetElement)}function ur(e){if(null===e||"object"!==t(e)||void 0!==e.nodeType)return e;var n={};for(var i in e)void 0!==window.jQuery&&e[i]instanceof window.jQuery?n[i]=e[i]:n[i]=ur(e[i]);return n}function hr(t){var e=document.querySelector(".introjs-hints");return e?e.querySelectorAll(t):[]}function fr(t){var e=hr('.introjs-hint[data-step="'.concat(t,'"]'))[0];_r.call(this),e&&Bi(e,"introjs-hidehint"),void 0!==this._hintCloseCallback&&this._hintCloseCallback.call(this,t)}function pr(){var t=this;n(hr(".introjs-hint"),(function(e){fr.call(t,e.getAttribute("data-step"))}))}function dr(){var t=this,e=hr(".introjs-hint");e&&e.length?n(e,(function(e){gr.call(t,e.getAttribute("data-step"))})):xr.call(this,this._targetElement)}function gr(t){var e=hr('.introjs-hint[data-step="'.concat(t,'"]'))[0];e&&ho(e,/introjs-hidehint/g)}function vr(){var t=this;n(hr(".introjs-hint"),(function(e){br.call(t,e.getAttribute("data-step"))})),i.off(document,"click",_r,this,!1),i.off(window,"resize",Sr,this,!0),this._hintsAutoRefreshFunction&&i.off(window,"scroll",this._hintsAutoRefreshFunction,this,!0)}function br(t){var e=hr('.introjs-hint[data-step="'.concat(t,'"]'))[0];e&&e.parentNode.removeChild(e)}function mr(){var t=this,e=this,o=document.querySelector(".introjs-hints");null===o&&(o=Ko("div",{className:"introjs-hints"}));n(this._introItems,(function(n,i){if(!document.querySelector('.introjs-hint[data-step="'.concat(i,'"]'))){var r=Ko("a",{className:"introjs-hint"});Di(r),r.onclick=function(t){return function(n){var i=n||window.event;i.stopPropagation&&i.stopPropagation(),null!==i.cancelBubble&&(i.cancelBubble=!0),wr.call(e,t)}}(i),n.hintAnimation||Bi(r,"introjs-hint-no-anim"),Ui(n.element)&&Bi(r,"introjs-fixedhint");var a=Ko("div",{className:"introjs-hint-dot"}),l=Ko("div",{className:"introjs-hint-pulse"});r.appendChild(a),r.appendChild(l),r.setAttribute("data-step",i),n.targetElement=n.element,n.element=r,yr.call(t,n.hintPosition,r,n.targetElement),o.appendChild(r)}})),document.body.appendChild(o),void 0!==this._hintsAddedCallback&&this._hintsAddedCallback.call(this),this._options.hintAutoRefreshInterval>=0&&(this._hintsAutoRefreshFunction=function(t,e){var n,i=this;return function(){for(var o=arguments.length,r=new Array(o),a=0;a<o;a++)r[a]=arguments[a];clearTimeout(n),n=setTimeout((function(){t.apply(i,r)}),e)}}((function(){return Sr.call(t)}),this._options.hintAutoRefreshInterval),i.on(window,"scroll",this._hintsAutoRefreshFunction,this,!0))}function yr(t,e,n){var i=e.style,o=Ki.call(this,n),r=20,a=20;switch(t){default:i.left="".concat(o.left,"px"),i.top="".concat(o.top,"px");break;case"top-right":i.left="".concat(o.left+o.width-r,"px"),i.top="".concat(o.top,"px");break;case"bottom-left":i.left="".concat(o.left,"px"),i.top="".concat(o.top+o.height-a,"px");break;case"bottom-right":i.left="".concat(o.left+o.width-r,"px"),i.top="".concat(o.top+o.height-a,"px");break;case"middle-left":i.left="".concat(o.left,"px"),i.top="".concat(o.top+(o.height-a)/2,"px");break;case"middle-right":i.left="".concat(o.left+o.width-r,"px"),i.top="".concat(o.top+(o.height-a)/2,"px");break;case"middle-middle":i.left="".concat(o.left+(o.width-r)/2,"px"),i.top="".concat(o.top+(o.height-a)/2,"px");break;case"bottom-middle":i.left="".concat(o.left+(o.width-r)/2,"px"),i.top="".concat(o.top+o.height-a,"px");break;case"top-middle":i.left="".concat(o.left+(o.width-r)/2,"px"),i.top="".concat(o.top,"px")}}function wr(t){var e=document.querySelector('.introjs-hint[data-step="'.concat(t,'"]')),n=this._introItems[t];void 0!==this._hintClickCallback&&this._hintClickCallback.call(this,e,n,t);var i=_r.call(this);if(parseInt(i,10)!==t){var o=Ko("div",{className:"introjs-tooltip"}),r=Ko("div"),a=Ko("div"),l=Ko("div");o.onclick=function(t){t.stopPropagation?t.stopPropagation():t.cancelBubble=!0},r.className="introjs-tooltiptext";var s=Ko("p");if(s.innerHTML=n.hint,r.appendChild(s),this._options.hintShowButton){var c=Ko("a");c.className=this._options.buttonClass,c.setAttribute("role","button"),c.innerHTML=this._options.hintButtonLabel,c.onclick=fr.bind(this,t),r.appendChild(c)}a.className="introjs-arrow",o.appendChild(a),o.appendChild(r),this._currentStep=e.getAttribute("data-step"),l.className="introjs-tooltipReferenceLayer introjs-hintReference",l.setAttribute("data-step",e.getAttribute("data-step")),po.call(this,l),l.appendChild(o),document.body.appendChild(l),Vo.call(this,e,o,a,!0)}}function _r(){var t=document.querySelector(".introjs-hintReference");if(t){var e=t.getAttribute("data-step");return t.parentNode.removeChild(t),e}}function xr(t){var e=this;if(this._introItems=[],this._options.hints)n(this._options.hints,(function(t){var n=ur(t);"string"==typeof n.element&&(n.element=document.querySelector(n.element)),n.hintPosition=n.hintPosition||e._options.hintPosition,n.hintAnimation=n.hintAnimation||e._options.hintAnimation,null!==n.element&&e._introItems.push(n)}));else{var o=t.querySelectorAll("*[data-hint]");if(!o||!o.length)return!1;n(o,(function(t){var n=t.getAttribute("data-hint-animation");n=n?"true"===n:e._options.hintAnimation,e._introItems.push({element:t,hint:t.getAttribute("data-hint"),hintPosition:t.getAttribute("data-hint-position")||e._options.hintPosition,hintAnimation:n,tooltipClass:t.getAttribute("data-tooltip-class"),position:t.getAttribute("data-position")||e._options.tooltipPosition})}))}mr.call(this),i.on(document,"click",_r,this,!1),i.on(window,"resize",Sr,this,!0)}function Sr(){var t=this;n(this._introItems,(function(e){var n=e.targetElement,i=e.hintPosition,o=e.element;void 0!==n&&yr.call(t,i,o,n)}))}He({target:"Array",proto:!0,forced:!Mo},{splice:function(t,e){var n,i,o,r,a,l,s=at(this),c=me(s),u=ge(t,c),h=arguments.length;if(0===h?n=i=0:1===h?(n=0,i=c-u):(n=h-2,i=$o(Fo(fe(e),0),c-u)),c+n-i>Do)throw Ho(zo);for(o=Zn(s,i),r=0;r<i;r++)(a=u+r)in s&&$n(o,r,s[a]);if(o.length=i,n<i){for(r=u;r<c-i;r++)l=r+n,(a=r+i)in s?s[l]=s[a]:delete s[l];for(r=c;r>c-i+n;r--)delete s[r-1]}else if(n>i)for(r=c-i;r>u;r--)l=r+n-1,(a=r+i-1)in s?s[l]=s[a]:delete s[l];for(r=0;r<n;r++)s[r+u]=arguments[r+2];return s.length=c-i+n,o}});var jr=Math.floor,Cr=function(t,e){var n=t.length,i=jr(n/2);return n<8?kr(t,e):Er(t,Cr(Ai(t,0,i),e),Cr(Ai(t,i),e),e)},kr=function(t,e){for(var n,i,o=t.length,r=1;r<o;){for(i=r,n=t[r];i&&e(t[i-1],n)>0;)t[i]=t[--i];i!==r++&&(t[i]=n)}return t},Er=function(t,e,n,i){for(var o=e.length,r=n.length,a=0,l=0;a<o||l<r;)t[a+l]=a<o&&l<r?i(e[a],n[l])<=0?e[a++]:n[l++]:a<o?e[a++]:n[l++];return t},Ar=Cr,Ir=M.match(/firefox\/(\d+)/i),Tr=!!Ir&&+Ir[1],Nr=/MSIE|Trident/.test(M),Or=M.match(/AppleWebKit\/(\d+)\./),Pr=!!Or&&+Or[1],Lr=[],Rr=S(Lr.sort),qr=S(Lr.push),Br=u((function(){Lr.sort(void 0)})),Mr=u((function(){Lr.sort(null)})),Hr=Ao("sort"),Fr=!u((function(){if(z)return z<70;if(!(Tr&&Tr>3)){if(Nr)return!0;if(Pr)return Pr<603;var t,e,n,i,o="";for(t=65;t<76;t++){switch(e=String.fromCharCode(t),t){case 66:case 69:case 70:case 72:n=3;break;case 68:case 71:n=4;break;default:n=2}for(i=0;i<47;i++)Lr.push({k:e+i,v:n})}for(Lr.sort((function(t,e){return e.v-t.v})),i=0;i<Lr.length;i++)e=Lr[i].k.charAt(0),o.charAt(o.length-1)!==e&&(o+=e);return"DGBEFHACIJK"!==o}}));function $r(t){var e=this,i=t.querySelectorAll("*[data-intro]"),o=[];if(this._options.steps)n(this._options.steps,(function(t){var n=ur(t);if(n.step=o.length+1,n.title=n.title||"","string"==typeof n.element&&(n.element=document.querySelector(n.element)),void 0===n.element||null===n.element){var i=document.querySelector(".introjsFloatingElement");null===i&&(i=Ko("div",{className:"introjsFloatingElement"}),document.body.appendChild(i)),n.element=i,n.position="floating"}n.position=n.position||e._options.tooltipPosition,n.scrollTo=n.scrollTo||e._options.scrollTo,void 0===n.disableInteraction&&(n.disableInteraction=e._options.disableInteraction),null!==n.element&&o.push(n)}));else{var r;if(i.length<1)return[];n(i,(function(t){if((!e._options.group||t.getAttribute("data-intro-group")===e._options.group)&&"none"!==t.style.display){var n=parseInt(t.getAttribute("data-step"),10);r=t.hasAttribute("data-disable-interaction")?!!t.getAttribute("data-disable-interaction"):e._options.disableInteraction,n>0&&(o[n-1]={element:t,title:t.getAttribute("data-title")||"",intro:t.getAttribute("data-intro"),step:parseInt(t.getAttribute("data-step"),10),tooltipClass:t.getAttribute("data-tooltip-class"),highlightClass:t.getAttribute("data-highlight-class"),position:t.getAttribute("data-position")||e._options.tooltipPosition,scrollTo:t.getAttribute("data-scroll-to")||e._options.scrollTo,disableInteraction:r})}}));var a=0;n(i,(function(t){if((!e._options.group||t.getAttribute("data-intro-group")===e._options.group)&&null===t.getAttribute("data-step")){for(;void 0!==o[a];)a++;r=t.hasAttribute("data-disable-interaction")?!!t.getAttribute("data-disable-interaction"):e._options.disableInteraction,o[a]={element:t,title:t.getAttribute("data-title")||"",intro:t.getAttribute("data-intro"),step:a+1,tooltipClass:t.getAttribute("data-tooltip-class"),highlightClass:t.getAttribute("data-highlight-class"),position:t.getAttribute("data-position")||e._options.tooltipPosition,scrollTo:t.getAttribute("data-scroll-to")||e._options.scrollTo,disableInteraction:r}}}))}for(var l=[],s=0;s<o.length;s++)o[s]&&l.push(o[s]);return(o=l).sort((function(t,e){return t.step-e.step})),o}function Dr(t){var e=document.querySelector(".introjs-tooltipReferenceLayer"),n=document.querySelector(".introjs-helperLayer"),i=document.querySelector(".introjs-disableInteraction");if(po.call(this,n),po.call(this,e),po.call(this,i),t&&(this._introItems=$r.call(this,this._targetElement),Zo.call(this,e,this._introItems[this._currentStep]),nr.call(this,e)),void 0!==this._currentStep&&null!==this._currentStep){var o=document.querySelector(".introjs-arrow"),r=document.querySelector(".introjs-tooltip");r&&o&&Vo.call(this,this._introItems[this._currentStep].element,r,o)}return Sr.call(this),this}function zr(){Dr.call(this)}function Gr(t,e){if(t&&t.parentElement){var n=t.parentElement;e?(fo(t,{opacity:"0"}),window.setTimeout((function(){try{n.removeChild(t)}catch(t){}}),500)):n.removeChild(t)}}function Wr(t,e){var o=!0;if(void 0!==this._introBeforeExitCallback&&(o=this._introBeforeExitCallback.call(this)),e||!1!==o){var r=t.querySelectorAll(".introjs-overlay");r&&r.length&&n(r,(function(t){return Gr(t)})),Gr(t.querySelector(".introjs-helperLayer"),!0),Gr(t.querySelector(".introjs-tooltipReferenceLayer")),Gr(t.querySelector(".introjs-disableInteraction")),Gr(document.querySelector(".introjsFloatingElement")),Uo(),i.off(window,"keydown",cr,this,!0),i.off(window,"resize",zr,this,!0),void 0!==this._introExitCallback&&this._introExitCallback.call(this),this._currentStep=void 0}}function Vr(t){var e=this,n=Ko("div",{className:"introjs-overlay"});return fo(n,{top:0,bottom:0,left:0,right:0,position:"fixed"}),t.appendChild(n),!0===this._options.exitOnOverlayClick&&(fo(n,{cursor:"pointer"}),n.onclick=function(){Wr.call(e,t)}),!0}function Ur(t){void 0!==this._introStartCallback&&this._introStartCallback.call(this,t);var e=$r.call(this,t);return 0===e.length||(this._introItems=e,Vr.call(this,t)&&(ar.call(this),this._options.keyboardNavigation&&i.on(window,"keydown",cr,this,!0),i.on(window,"resize",zr,this,!0))),!1}He({target:"Array",proto:!0,forced:Br||!Mr||!Hr||!Fr},{sort:function(t){void 0!==t&&J(t);var e=at(this);if(Fr)return void 0===t?Rr(e):Rr(e,t);var n,i,o=[],r=me(e);for(i=0;i<r;i++)i in e&&qr(o,e[i]);for(Ar(o,function(t){return function(e,n){return void 0===n?-1:void 0===e?1:void 0!==t?+t(e,n)||0:Ke(e)>Ke(n)?1:-1}}(t)),n=o.length,i=0;i<n;)e[i]=o[i++];for(;i<r;)delete e[i++];return e}});function Kr(t){this._targetElement=t,this._introItems=[],this._options={nextLabel:"Next",prevLabel:"Back",skipLabel:"×",doneLabel:"Done",hidePrev:!1,hideNext:!1,nextToDone:!0,tooltipPosition:"bottom",tooltipClass:"",group:"",highlightClass:"",exitOnEsc:!0,exitOnOverlayClick:!0,showStepNumbers:!1,keyboardNavigation:!0,showButtons:!0,showBullets:!0,showProgress:!1,scrollToElement:!0,scrollTo:"element",scrollPadding:30,overlayOpacity:.5,autoPosition:!0,positionPrecedence:["bottom","top","right","left"],disableInteraction:!1,helperElementPadding:10,hintPosition:"top-middle",hintButtonLabel:"Got it",hintShowButton:!0,hintAutoRefreshInterval:10,hintAnimation:!0,buttonClass:"introjs-button",progressBarAdditionalClass:!1}}var Yr=function n(i){var o;if("object"===t(i))o=new Kr(i);else if("string"==typeof i){var r=document.querySelector(i);if(!r)throw new Error("There is no element with given selector.");o=new Kr(r)}else o=new Kr(document.body);return n.instances[e(o,"introjs-instance")]=o,o};return Yr.version="5.0.0",Yr.instances={},Yr.fn=Kr.prototype={clone:function(){return new Kr(this)},setOption:function(t,e){return this._options[t]=e,this},setOptions:function(t){return this._options=function(t,e){var n,i={};for(n in t)i[n]=t[n];for(n in e)i[n]=e[n];return i}(this._options,t),this},start:function(){return Ur.call(this,this._targetElement),this},goToStep:function(t){return or.call(this,t),this},addStep:function(t){return this._options.steps||(this._options.steps=[]),this._options.steps.push(t),this},addSteps:function(t){if(t.length){for(var e=0;e<t.length;e++)this.addStep(t[e]);return this}},goToStepNumber:function(t){return rr.call(this,t),this},nextStep:function(){return ar.call(this),this},previousStep:function(){return lr.call(this),this},currentStep:function(){return sr.call(this)},exit:function(t){return Wr.call(this,this._targetElement,t),this},refresh:function(t){return Dr.call(this,t),this},onbeforechange:function(t){if("function"!=typeof t)throw new Error("Provided callback for onbeforechange was not a function");return this._introBeforeChangeCallback=t,this},onchange:function(t){if("function"!=typeof t)throw new Error("Provided callback for onchange was not a function.");return this._introChangeCallback=t,this},onafterchange:function(t){if("function"!=typeof t)throw new Error("Provided callback for onafterchange was not a function");return this._introAfterChangeCallback=t,this},oncomplete:function(t){if("function"!=typeof t)throw new Error("Provided callback for oncomplete was not a function.");return this._introCompleteCallback=t,this},onhintsadded:function(t){if("function"!=typeof t)throw new Error("Provided callback for onhintsadded was not a function.");return this._hintsAddedCallback=t,this},onhintclick:function(t){if("function"!=typeof t)throw new Error("Provided callback for onhintclick was not a function.");return this._hintClickCallback=t,this},onhintclose:function(t){if("function"!=typeof t)throw new Error("Provided callback for onhintclose was not a function.");return this._hintCloseCallback=t,this},onstart:function(t){if("function"!=typeof t)throw new Error("Provided callback for onstart was not a function.");return this._introStartCallback=t,this},onexit:function(t){if("function"!=typeof t)throw new Error("Provided callback for onexit was not a function.");return this._introExitCallback=t,this},onskip:function(t){if("function"!=typeof t)throw new Error("Provided callback for onskip was not a function.");return this._introSkipCallback=t,this},onbeforeexit:function(t){if("function"!=typeof t)throw new Error("Provided callback for onbeforeexit was not a function.");return this._introBeforeExitCallback=t,this},addHints:function(){return xr.call(this,this._targetElement),this},hideHint:function(t){return fr.call(this,t),this},hideHints:function(){return pr.call(this),this},showHint:function(t){return gr.call(this,t),this},showHints:function(){return dr.call(this),this},removeHints:function(){return vr.call(this),this},removeHint:function(t){return br().call(this,t),this},showHintDialog:function(t){return wr.call(this,t),this}},Yr}));
 
 
 
 
 
 
 
 
 
 
includes/classes/class-sbp-cache.php CHANGED
@@ -105,6 +105,7 @@ class SBP_Cache extends SBP_Base_Cache {
105
  * @param $html
106
  */
107
  private function create_cache_file( $html ) {
 
108
  $dir_path = $this->get_cache_file_path();
109
  $file_path = $dir_path . $this->file_name;
110
  $sbp_cache_signature = PHP_EOL . '<!-- Cached by Speed Booster Pack -->';
@@ -334,141 +335,124 @@ class SBP_Cache extends SBP_Base_Cache {
334
  $sbp_htaccess_block = '# BEGIN Speed Booster Pack
335
  # SBP ' . SBP_VERSION . '
336
 
337
- ## SECTION: General stuff
338
-
339
- # UTF-8 config
340
- AddDefaultCharset UTF-8
341
- <IfModule mod_mime.c>
342
- AddCharset UTF-8 .appcache .bbaw .css .htc .ics .js .json .manifest .map .markdown .md .mjs .topojson .vtt .vcard .vcf .webmanifest .xloc
343
- </IfModule>
344
- # FileETag config
345
- <IfModule mod_headers.c>
346
- Header unset ETag
347
- </IfModule>
348
- FileETag None
349
- # Cache-Control config
350
- <FilesMatch "\.(html|htm|rtf|rtx|txt|xsd|xsl|xml|css|htc|js|asf|asx|wax|wmv|wmx|avi|bmp|class|divx|doc|docx|eot|exe|gif|gz|gzip|ico|jpg|jpeg|jpe|json|mdb|mid|midi|mov|qt|mp3|m4a|mp4|m4v|mpeg|mpg|mpe|mpp|otf|odb|odc|odf|odg|odp|ods|odt|ogg|pdf|png|pot|pps|ppt|pptx|ra|ram|svg|svgz|swf|tar|tif|tiff|ttf|ttc|wav|wma|wri|xla|xls|xlsx|xlt|xlw|zip)$">
351
- <IfModule mod_headers.c>
352
- Header unset Pragma
353
- Header append Cache-Control "public"
354
- </IfModule>
355
- </FilesMatch>
356
-
357
- ## SECTION: Compression (DEFLATE)
358
 
359
- <IfModule mod_deflate.c>
360
- <IfModule mod_setenvif.c>
361
  <IfModule mod_headers.c>
362
- SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding
363
- RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding
364
- SetEnvIfNoCase Request_URI \
365
- \.(?:gif|jpe?g|png|rar|zip|exe|flv|mov|wma|mp3|avi|swf|mp?g|mp4|webm|webp|pdf)$ no-gzip dont-vary
366
- </IfModule>
367
  </IfModule>
368
- <IfModule mod_filter.c>
369
- AddOutputFilterByType DEFLATE "application/atom+xml" \
370
- "application/javascript" \
371
- "application/json" \
372
- "application/ld+json" \
373
- "application/manifest+json" \
374
- "application/rdf+xml" \
375
- "application/rss+xml" \
376
- "application/schema+json" \
377
- "application/geo+json" \
378
- "application/vnd.ms-fontobject" \
379
- "application/wasm" \
380
- "application/x-font-ttf" \
381
- "application/x-javascript" \
382
- "application/x-web-app-manifest+json" \
383
- "application/xhtml+xml" \
384
- "application/xml" \
385
- "font/eot" \
386
- "font/opentype" \
387
- "font/otf" \
388
- "font/ttf" \
389
- "image/bmp" \
390
- "image/svg+xml" \
391
- "image/vnd.microsoft.icon" \
392
- "text/cache-manifest" \
393
- "text/calendar" \
394
- "text/css" \
395
- "text/html" \
396
- "text/javascript" \
397
- "text/plain" \
398
- "text/markdown" \
399
- "text/vcard" \
400
- "text/vnd.rim.location.xloc" \
401
- "text/vtt" \
402
- "text/x-component" \
403
- "text/x-cross-domain-policy" \
404
- "text/xml"
405
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
406
  </IfModule>
407
- <IfModule mod_mime.c>
408
- AddEncoding gzip svgz
409
- </IfModule>
410
- </IfModule>
411
-
412
- ## SECTION: Cache expiration
413
 
 
414
  <IfModule mod_expires.c>
415
- ExpiresActive on
416
- ExpiresDefault "access plus 1 month"
417
- # HTML
418
- ExpiresByType text/html "access plus 0 seconds"
419
- # CSS
420
- ExpiresByType text/css "access plus 1 year"
421
- # JavaScript
422
- ExpiresByType application/javascript "access plus 1 year"
423
- ExpiresByType application/x-javascript "access plus 1 year"
424
- ExpiresByType text/javascript "access plus 1 year"
425
- # Media files
426
- ExpiresByType audio/ogg "access plus 1 month"
427
- ExpiresByType image/bmp "access plus 1 month"
428
- ExpiresByType image/gif "access plus 1 month"
429
- ExpiresByType image/jpeg "access plus 1 month"
430
- ExpiresByType image/png "access plus 1 month"
431
- ExpiresByType image/apng "access plus 1 month"
432
- ExpiresByType image/avif "access plus 1 month"
433
- ExpiresByType image/avif-sequence "access plus 1 month"
434
- ExpiresByType image/svg+xml "access plus 1 month"
435
- ExpiresByType image/webp "access plus 1 month"
436
- ExpiresByType video/mp4 "access plus 1 month"
437
- ExpiresByType video/ogg "access plus 1 month"
438
- ExpiresByType video/webm "access plus 1 month"
439
- # Web fonts
440
- ExpiresByType font/collection "access plus 1 month"
441
- ExpiresByType application/vnd.ms-fontobject "access plus 1 month"
442
- ExpiresByType font/eot "access plus 1 month"
443
- ExpiresByType font/opentype "access plus 1 month"
444
- ExpiresByType font/otf "access plus 1 month"
445
- ExpiresByType application/x-font-ttf "access plus 1 month"
446
- ExpiresByType font/ttf "access plus 1 month"
447
- ExpiresByType application/font-woff "access plus 1 month"
448
- ExpiresByType application/x-font-woff "access plus 1 month"
449
- ExpiresByType font/woff "access plus 1 month"
450
- ExpiresByType application/font-woff2 "access plus 1 month"
451
- ExpiresByType font/woff2 "access plus 1 month"
452
- # Data interchange
453
- ExpiresByType application/atom+xml "access plus 1 hour"
454
- ExpiresByType application/rdf+xml "access plus 1 hour"
455
- ExpiresByType application/rss+xml "access plus 1 hour"
456
- ExpiresByType application/json "access plus 0 seconds"
457
- ExpiresByType application/ld+json "access plus 0 seconds"
458
- ExpiresByType application/schema+json "access plus 0 seconds"
459
- ExpiresByType application/geo+json "access plus 0 seconds"
460
- ExpiresByType application/xml "access plus 0 seconds"
461
- ExpiresByType text/calendar "access plus 0 seconds"
462
- ExpiresByType text/xml "access plus 0 seconds"
463
- # Other
464
- ExpiresByType image/vnd.microsoft.icon "access plus 1 week"
465
- ExpiresByType image/x-icon "access plus 1 week"
466
- ExpiresByType text/x-cross-domain-policy "access plus 1 week"
467
- ExpiresByType application/manifest+json "access plus 1 week"
468
- ExpiresByType application/x-web-app-manifest+json "access plus 0 seconds"
469
- ExpiresByType text/cache-manifest "access plus 0 seconds"
470
  </IfModule>
471
 
 
 
472
  # END Speed Booster Pack';
473
 
474
  $wp_filesystem = sbp_get_filesystem();
105
  * @param $html
106
  */
107
  private function create_cache_file( $html ) {
108
+ if( empty( $html ) ) { return; }
109
  $dir_path = $this->get_cache_file_path();
110
  $file_path = $dir_path . $this->file_name;
111
  $sbp_cache_signature = PHP_EOL . '<!-- Cached by Speed Booster Pack -->';
335
  $sbp_htaccess_block = '# BEGIN Speed Booster Pack
336
  # SBP ' . SBP_VERSION . '
337
 
338
+ # Character encodings
339
+ AddDefaultCharset utf-8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
340
 
341
+ # ETags
 
342
  <IfModule mod_headers.c>
343
+ Header unset ETag
 
 
 
 
344
  </IfModule>
345
+ FileETag None
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
346
 
347
+ # Compression
348
+ <IfModule mod_deflate.c>
349
+ <IfModule mod_setenvif.c>
350
+ <IfModule mod_headers.c>
351
+ SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding
352
+ RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding
353
+ </IfModule>
354
+ </IfModule>
355
+ <IfModule mod_filter.c>
356
+ AddOutputFilterByType DEFLATE "application/atom+xml" \
357
+ "application/javascript" \
358
+ "application/json" \
359
+ "application/ld+json" \
360
+ "application/manifest+json" \
361
+ "application/rdf+xml" \
362
+ "application/rss+xml" \
363
+ "application/schema+json" \
364
+ "application/geo+json" \
365
+ "application/vnd.ms-fontobject" \
366
+ "application/wasm" \
367
+ "application/x-font-ttf" \
368
+ "application/x-javascript" \
369
+ "application/x-web-app-manifest+json" \
370
+ "application/xhtml+xml" \
371
+ "application/xml" \
372
+ "font/eot" \
373
+ "font/opentype" \
374
+ "font/otf" \
375
+ "font/ttf" \
376
+ "image/bmp" \
377
+ "image/svg+xml" \
378
+ "image/vnd.microsoft.icon" \
379
+ "image/x-icon" \
380
+ "text/cache-manifest" \
381
+ "text/calendar" \
382
+ "text/css" \
383
+ "text/html" \
384
+ "text/javascript" \
385
+ "text/plain" \
386
+ "text/markdown" \
387
+ "text/vcard" \
388
+ "text/vnd.rim.location.xloc" \
389
+ "text/vtt" \
390
+ "text/x-component" \
391
+ "text/x-cross-domain-policy" \
392
+ "text/xml"
393
+ </IfModule>
394
+ <IfModule mod_mime.c>
395
+ AddEncoding gzip svgz
396
+ </IfModule>
397
  </IfModule>
 
 
 
 
 
 
398
 
399
+ # Cache expiration
400
  <IfModule mod_expires.c>
401
+ ExpiresActive on
402
+ ExpiresDefault "access plus 1 year"
403
+ ExpiresByType text/css "access plus 1 year"
404
+ ExpiresByType application/atom+xml "access plus 1 hour"
405
+ ExpiresByType application/rdf+xml "access plus 1 hour"
406
+ ExpiresByType application/rss+xml "access plus 1 hour"
407
+ ExpiresByType application/json "access plus 0 seconds"
408
+ ExpiresByType application/ld+json "access plus 0 seconds"
409
+ ExpiresByType application/schema+json "access plus 0 seconds"
410
+ ExpiresByType application/geo+json "access plus 0 seconds"
411
+ ExpiresByType application/xml "access plus 0 seconds"
412
+ ExpiresByType text/calendar "access plus 0 seconds"
413
+ ExpiresByType text/xml "access plus 0 seconds"
414
+ ExpiresByType image/vnd.microsoft.icon "access plus 1 week"
415
+ ExpiresByType image/x-icon "access plus 1 week"
416
+ ExpiresByType text/html "access plus 0 seconds"
417
+ ExpiresByType application/javascript "access plus 1 year"
418
+ ExpiresByType application/x-javascript "access plus 1 year"
419
+ ExpiresByType text/javascript "access plus 1 year"
420
+ ExpiresByType application/manifest+json "access plus 1 week"
421
+ ExpiresByType application/x-web-app-manifest+json "access plus 0 seconds"
422
+ ExpiresByType text/cache-manifest "access plus 0 seconds"
423
+ ExpiresByType text/markdown "access plus 0 seconds"
424
+ ExpiresByType audio/ogg "access plus 1 year"
425
+ ExpiresByType image/apng "access plus 1 year"
426
+ ExpiresByType image/avif "access plus 1 year"
427
+ ExpiresByType image/avif-sequence "access plus 1 year"
428
+ ExpiresByType image/bmp "access plus 1 year"
429
+ ExpiresByType image/gif "access plus 1 year"
430
+ ExpiresByType image/jpeg "access plus 1 year"
431
+ ExpiresByType image/jxl "access plus 1 year"
432
+ ExpiresByType image/png "access plus 1 year"
433
+ ExpiresByType image/svg+xml "access plus 1 year"
434
+ ExpiresByType image/webp "access plus 1 year"
435
+ ExpiresByType video/mp4 "access plus 1 year"
436
+ ExpiresByType video/ogg "access plus 1 year"
437
+ ExpiresByType video/webm "access plus 1 year"
438
+ ExpiresByType application/wasm "access plus 1 year"
439
+ ExpiresByType font/collection "access plus 1 year"
440
+ ExpiresByType application/vnd.ms-fontobject "access plus 1 year"
441
+ ExpiresByType font/eot "access plus 1 year"
442
+ ExpiresByType font/opentype "access plus 1 year"
443
+ ExpiresByType font/otf "access plus 1 year"
444
+ ExpiresByType application/x-font-ttf "access plus 1 year"
445
+ ExpiresByType font/ttf "access plus 1 year"
446
+ ExpiresByType application/font-woff "access plus 1 year"
447
+ ExpiresByType application/x-font-woff "access plus 1 year"
448
+ ExpiresByType font/woff "access plus 1 year"
449
+ ExpiresByType application/font-woff2 "access plus 1 year"
450
+ ExpiresByType font/woff2 "access plus 1 year"
451
+ ExpiresByType text/x-cross-domain-policy "access plus 1 week"
 
 
 
 
452
  </IfModule>
453
 
454
+ # Ported from: https://github.com/h5bp/server-configs-apache
455
+
456
  # END Speed Booster Pack';
457
 
458
  $wp_filesystem = sbp_get_filesystem();
includes/classes/class-sbp-wp-admin.php CHANGED
@@ -21,7 +21,6 @@ class SBP_WP_Admin {
21
  add_action( 'admin_head', [ $this, 'check_required_file_permissions' ] );
22
  add_action( 'admin_init', [ $this, 'upgrade_php_notice' ] );
23
 
24
- add_action( 'wp_ajax_sbp_dismiss_intro', [ $this, 'dismiss_intro' ] );
25
  add_action( 'wp_ajax_sbp_dismiss_ccm_backup', [ $this, 'dismiss_custom_code_manager_backup' ] );
26
 
27
  add_action( 'admin_enqueue_scripts', [ $this, 'enqueue_deactivation_survey_scripts' ] );
@@ -50,13 +49,13 @@ class SBP_WP_Admin {
50
  public function add_admin_bar_links( \WP_Admin_Bar $admin_bar ) {
51
  if ( current_user_can( 'manage_options' ) ) {
52
 
53
- $admin_bar->add_menu( [
54
  'id' => 'speed_booster_pack',
55
  'title' => 'Speed Booster',
56
  'href' => admin_url( 'admin.php?page=sbp-settings' ),
57
  'meta' => [
58
  'target' => '_self',
59
- 'html' => '<style>#wpadminbar #wp-admin-bar-speed_booster_pack .ab-item{background:url("' . SBP_URL . 'admin/images/icon.svg") no-repeat 5px center;padding-left:25px;filter: brightness(0.7) sepia(1) hue-rotate(50deg) saturate(1.5);}#wpadminbar #wp-admin-bar-speed_booster_pack .ab-item:hover{color:white;}</style>',
60
  ],
61
  ] );
62
 
@@ -168,7 +167,7 @@ class SBP_WP_Admin {
168
  '<p><strong>' . SBP_PLUGIN_NAME . ':</strong> ' . __( 'Cache cleared.', 'speed-booster-pack' ) . '</p>',
169
  'success',
170
  true,
171
- 'recurrent' );
172
 
173
  // Set Localizer Cache Clear Notice
174
  if ( get_transient( 'sbp_notice_tracker_localizer' ) ) {
@@ -312,10 +311,6 @@ class SBP_WP_Admin {
312
 
313
  }
314
 
315
- public function dismiss_intro() {
316
- update_user_meta( get_current_user_id(), 'sbp_intro', true );
317
- }
318
-
319
  public function enqueue_deactivation_survey_scripts() {
320
  if ( get_current_screen()->id === 'plugins' ) {
321
  wp_enqueue_script( 'sbp_deactivation_survey', SBP_URL . '/admin/js/deactivation-survey.js', array(
21
  add_action( 'admin_head', [ $this, 'check_required_file_permissions' ] );
22
  add_action( 'admin_init', [ $this, 'upgrade_php_notice' ] );
23
 
 
24
  add_action( 'wp_ajax_sbp_dismiss_ccm_backup', [ $this, 'dismiss_custom_code_manager_backup' ] );
25
 
26
  add_action( 'admin_enqueue_scripts', [ $this, 'enqueue_deactivation_survey_scripts' ] );
49
  public function add_admin_bar_links( \WP_Admin_Bar $admin_bar ) {
50
  if ( current_user_can( 'manage_options' ) ) {
51
 
52
+ $admin_bar->add_node( [
53
  'id' => 'speed_booster_pack',
54
  'title' => 'Speed Booster',
55
  'href' => admin_url( 'admin.php?page=sbp-settings' ),
56
  'meta' => [
57
  'target' => '_self',
58
+ 'html' => '<style>#wpadminbar #wp-admin-bar-speed_booster_pack .ab-item{background:url("' . SBP_URL . 'admin/images/icon.svg?ver=' . SBP_VERSION . '") no-repeat 5px center;padding-left:25px;}#wpadminbar #wp-admin-bar-speed_booster_pack .ab-item:hover{color:white;}</style>',
59
  ],
60
  ] );
61
 
167
  '<p><strong>' . SBP_PLUGIN_NAME . ':</strong> ' . __( 'Cache cleared.', 'speed-booster-pack' ) . '</p>',
168
  'success',
169
  true,
170
+ 'flash' );
171
 
172
  // Set Localizer Cache Clear Notice
173
  if ( get_transient( 'sbp_notice_tracker_localizer' ) ) {
311
 
312
  }
313
 
 
 
 
 
314
  public function enqueue_deactivation_survey_scripts() {
315
  if ( get_current_screen()->id === 'plugins' ) {
316
  wp_enqueue_script( 'sbp_deactivation_survey', SBP_URL . '/admin/js/deactivation-survey.js', array(
public/class-speed-booster-pack-public.php CHANGED
@@ -57,12 +57,13 @@ class Speed_Booster_Pack_Public {
57
  * Basically a hook for functions which use output buffer
58
  */
59
  public function template_redirect() {
60
- // if ( is_admin() || wp_doing_cron() || wp_doing_ajax() ) { return; }
61
  ob_start( [ $this, 'output_buffer' ] );
62
  }
63
 
64
  public function output_buffer( $html ) {
65
  $html = apply_filters( 'sbp_output_buffer', $html );
 
66
  $html .= PHP_EOL . '<!-- Optimized by Speed Booster Pack v' . SBP_VERSION . ' -->';
67
 
68
  return $html;
57
  * Basically a hook for functions which use output buffer
58
  */
59
  public function template_redirect() {
60
+ if ( is_admin() || wp_doing_cron() || wp_doing_ajax() ) { return; }
61
  ob_start( [ $this, 'output_buffer' ] );
62
  }
63
 
64
  public function output_buffer( $html ) {
65
  $html = apply_filters( 'sbp_output_buffer', $html );
66
+ if ( $_SERVER[ 'REQUEST_METHOD' ] != 'GET' ) { return $html; }
67
  $html .= PHP_EOL . '<!-- Optimized by Speed Booster Pack v' . SBP_VERSION . ' -->';
68
 
69
  return $html;
speed-booster-pack.php CHANGED
@@ -6,7 +6,7 @@
6
  * Plugin Name: Speed Booster Pack
7
  * Plugin URI: https://speedboosterpack.com
8
  * Description: PageSpeed optimization is vital for SEO: A faster website equals better conversions. Optimize & cache your site with this smart plugin!
9
- * Version: 4.5.2
10
  * Author: Optimocha
11
  * Author URI: https://optimocha.com
12
  * License: GPLv3 or later
@@ -32,7 +32,7 @@ define( 'SBP_PLUGIN_NAME', 'Speed Booster Pack' );
32
  /**
33
  * Current plugin version.
34
  */
35
- define( 'SBP_VERSION', '4.5.2' );
36
 
37
  /**
38
  * Plugin website URL.
6
  * Plugin Name: Speed Booster Pack
7
  * Plugin URI: https://speedboosterpack.com
8
  * Description: PageSpeed optimization is vital for SEO: A faster website equals better conversions. Optimize & cache your site with this smart plugin!
9
+ * Version: 4.5.3
10
  * Author: Optimocha
11
  * Author URI: https://optimocha.com
12
  * License: GPLv3 or later
32
  /**
33
  * Current plugin version.
34
  */
35
+ define( 'SBP_VERSION', '4.5.3' );
36
 
37
  /**
38
  * Plugin website URL.