IP Geo Block - Version 3.0.9

Version Description

  • New featuer: Add CIDR calculator for IPv4 / IPv6.
  • Improvement: Avoid blocking by wp-zep when IP address is private or loopback network.
  • Improvement: Chnage the priority of internal action hook for better compatibility with other plugins/themes.
  • Maintenance: Change the priority order of local geolocation databases.
  • Bug fix: Fix the issue that the target action for login form on settings tab could not unchecked on saving changes.
  • Bug fix: Fix some other minor bugs.
  • See 3.0.9 release note for some details.
Download this release

Release Info

Developer tokkonopapa
Plugin Icon 128x128 IP Geo Block
Version 3.0.9
Comparing to
See all releases

Code changes from version 3.0.8 to 3.0.9

README.txt CHANGED
@@ -3,8 +3,8 @@ Contributors: tokkonopapa
3
Donate link:
4
Tags: security, firewall, brute force, vulnerability, login, wp-admin, admin, ajax, xmlrpc, comment, pingback, trackback, spam, IP address, geo, geolocation, buddypress, bbPress
5
Requires at least: 3.7
6
- Tested up to: 4.9.2
7
- Stable tag: 3.0.8
8
License: GPLv3
9
License URI: https://www.gnu.org/licenses/gpl-3.0.txt
10
@@ -353,6 +353,15 @@ Please refer to "[How can I fix permission troubles?](http://www.ipgeoblock.com/
353
354
== Changelog ==
355
356
= 3.0.8 =
357
* **Improvement:** Use both Maxmind Legacy and GeoLite2 databases parallely.
358
* **Improvement:** Remove self IP address from cache on activation or upgrade to prevent blocking caused by 'ZZ' in cache.
3
Donate link:
4
Tags: security, firewall, brute force, vulnerability, login, wp-admin, admin, ajax, xmlrpc, comment, pingback, trackback, spam, IP address, geo, geolocation, buddypress, bbPress
5
Requires at least: 3.7
6
+ Tested up to: 4.9.4
7
+ Stable tag: 3.0.9
8
License: GPLv3
9
License URI: https://www.gnu.org/licenses/gpl-3.0.txt
10
353
354
== Changelog ==
355
356
+ = 3.0.9 =
357
+ * **New featuer:** Add CIDR calculator for IPv4 / IPv6.
358
+ * **Improvement:** Avoid blocking by wp-zep when IP address is private or loopback network.
359
+ * **Improvement:** Chnage the priority of internal action hook for better compatibility with other plugins/themes.
360
+ * **Maintenance:** Change the priority order of local geolocation databases.
361
+ * **Bug fix:** Fix the issue that the target action for login form on settings tab could not unchecked on saving changes.
362
+ * **Bug fix:** Fix some other minor bugs.
363
+ * See [3.0.9 release note](http://www.ipgeoblock.com/changelog/release-3.0.9.html "3.0.9 Release Note | IP Geo Block") for some details.
364
+
365
= 3.0.8 =
366
* **Improvement:** Use both Maxmind Legacy and GeoLite2 databases parallely.
367
* **Improvement:** Remove self IP address from cache on activation or upgrade to prevent blocking caused by 'ZZ' in cache.
admin/class-ip-geo-block-admin.php CHANGED
@@ -333,7 +333,7 @@ class IP_Geo_Block_Admin {
333
public function add_action_links( $links ) {
334
// over network
335
return array_merge(
336
- array( 'settings' => '<a href="' . esc_url_raw( add_query_arg( array( 'page' => IP_Geo_Block::PLUGIN_NAME ), $this->dashboard_url( $this->is_network ) ) ) . '">' . __( 'Settings' ) . '</a>' ),
337
$links
338
);
339
}
@@ -380,8 +380,8 @@ class IP_Geo_Block_Admin {
380
* Get the admin url that depends on network multisite.
381
*
382
*/
383
- private function dashboard_url( $network ) {
384
- return $network ? network_admin_url( 'admin.php' /*'settings.php'*/ ) : admin_url( 'options-general.php' );
385
}
386
387
/**
@@ -392,13 +392,13 @@ class IP_Geo_Block_Admin {
392
$settings = IP_Geo_Block::get_option();
393
394
// Network wide or not
395
- $admin_menu = ( 'admin_menu' === current_filter() );
396
$this->is_network &= ( current_user_can( 'manage_network_options' ) && $settings['network_wide'] );
397
398
// Verify tab number
399
if ( $this->is_network ) {
400
if ( $admin_menu ) {
401
- $this->admin_tab = max( $this->admin_tab, 1 );
402
} elseif ( ! in_array( $this->admin_tab, array( 0, 5 ), TRUE ) ) {
403
$this->admin_tab = 0;
404
}
@@ -529,12 +529,12 @@ class IP_Geo_Block_Admin {
529
( 'ZZ' !== $validate['code'] ?
530
sprintf(
531
__( 'Please check your &#8220;%sValidation rule settings%s&#8221;.', 'ip-geo-block' ),
532
- '<strong><a href="' . esc_url( add_query_arg( array( 'page' => IP_Geo_Block::PLUGIN_NAME, 'tab' => 0 ), $adminurl ) ) . '#' . IP_Geo_Block::PLUGIN_NAME . '-section-0">', '</a></strong>'
533
) :
534
sprintf(
535
__( 'Please confirm your local geolocation databases at &#8220;%sLocal database settings%s&#8221; section and remove your IP address in cache at &#8220;%sStatistics in cache%s&#8221; section.', 'ip-geo-block' ),
536
- '<strong><a href="' . esc_url( add_query_arg( array( 'page' => IP_Geo_Block::PLUGIN_NAME, 'tab' => 0 ), $adminurl ) ) . '#' . IP_Geo_Block::PLUGIN_NAME . '-section-4">', '</a></strong>',
537
- '<strong><a href="' . esc_url( add_query_arg( array( 'page' => IP_Geo_Block::PLUGIN_NAME, 'tab' => 1 ), $adminurl ) ) . '#' . IP_Geo_Block::PLUGIN_NAME . '-section-2">', '</a></strong>'
538
)
539
)
540
);
@@ -617,13 +617,16 @@ class IP_Geo_Block_Admin {
617
private function do_settings_sections( $page, $tab ) {
618
global $wp_settings_sections, $wp_settings_fields;
619
620
if ( isset( $wp_settings_sections[ $page ] ) ) {
621
$index = 0; // index of fieldset
622
$cookie = $this->get_cookie();
623
624
foreach ( (array) $wp_settings_sections[ $page ] as $section ) {
625
// TRUE if open ('o') or FALSE if close ('x')
626
- $stat = empty( $cookie[ $tab ][ $index ] ) || 'x' !== $cookie[ $tab ][ $index ];
627
628
echo "\n",
629
'<fieldset id="', IP_Geo_Block::PLUGIN_NAME, '-section-', $index, '" class="', IP_Geo_Block::PLUGIN_NAME, '-field panel panel-default" data-section="', $index, '">', "\n",
@@ -872,8 +875,10 @@ class IP_Geo_Block_Admin {
872
break; // disabled @since 3.0
873
874
case 'textarea': ?>
875
- <textarea class="regular-text code" id="<?php echo $id, $sub_id; ?>" name="<?php echo $name, $sub_name; ?>"
876
- <?php disabled( ! empty( $args['disabled'] ), TRUE ); ?>><?php echo esc_html( $args['value'] ); ?></textarea>
877
<?php
878
break;
879
@@ -1090,6 +1095,11 @@ class IP_Geo_Block_Admin {
1090
// 3.0.5 Live update
1091
$output['live_update']['in_memory'] = 0;
1092
1093
return $output;
1094
}
1095
333
public function add_action_links( $links ) {
334
// over network
335
return array_merge(
336
+ array( 'settings' => '<a href="' . esc_url( add_query_arg( array( 'page' => IP_Geo_Block::PLUGIN_NAME ), $this->dashboard_url( $this->is_network ) ) ) . '">' . __( 'Settings' ) . '</a>' ),
337
$links
338
);
339
}
380
* Get the admin url that depends on network multisite.
381
*
382
*/
383
+ public function dashboard_url( $network = NULL ) {
384
+ return ( is_null( $network ) ? $this->is_network : $network ) ? network_admin_url( 'admin.php' /*'settings.php'*/ ) : admin_url( 'options-general.php' );
385
}
386
387
/**
392
$settings = IP_Geo_Block::get_option();
393
394
// Network wide or not
395
+ $admin_menu = ( 'admin_menu' === current_filter() ); // @since: 2.5 `admin_menu` or `network_admin_menu`
396
$this->is_network &= ( current_user_can( 'manage_network_options' ) && $settings['network_wide'] );
397
398
// Verify tab number
399
if ( $this->is_network ) {
400
if ( $admin_menu ) {
401
+ $this->admin_tab = min( 4, max( 1, $this->admin_tab ) );
402
} elseif ( ! in_array( $this->admin_tab, array( 0, 5 ), TRUE ) ) {
403
$this->admin_tab = 0;
404
}
529
( 'ZZ' !== $validate['code'] ?
530
sprintf(
531
__( 'Please check your &#8220;%sValidation rule settings%s&#8221;.', 'ip-geo-block' ),
532
+ '<strong><a href="' . esc_url( add_query_arg( array( 'page' => IP_Geo_Block::PLUGIN_NAME, 'tab' => 0, 'sec' => 0 ), $adminurl ) . '#' . IP_Geo_Block::PLUGIN_NAME . '-section-0' ) . '">', '</a></strong>'
533
) :
534
sprintf(
535
__( 'Please confirm your local geolocation databases at &#8220;%sLocal database settings%s&#8221; section and remove your IP address in cache at &#8220;%sStatistics in cache%s&#8221; section.', 'ip-geo-block' ),
536
+ '<strong><a href="' . esc_url( add_query_arg( array( 'page' => IP_Geo_Block::PLUGIN_NAME, 'tab' => 0, 'sec' => 4 ), $adminurl ) . '#' . IP_Geo_Block::PLUGIN_NAME . '-section-4' ) . '">', '</a></strong>',
537
+ '<strong><a href="' . esc_url( add_query_arg( array( 'page' => IP_Geo_Block::PLUGIN_NAME, 'tab' => 1, 'sec' => 2 ), $adminurl ) . '#' . IP_Geo_Block::PLUGIN_NAME . '-section-2' ) . '">', '</a></strong>'
538
)
539
)
540
);
617
private function do_settings_sections( $page, $tab ) {
618
global $wp_settings_sections, $wp_settings_fields;
619
620
+ // target section to be opened
621
+ $target = isset( $_GET['sec'] ) ? (int)$_GET['sec'] : -1;
622
+
623
if ( isset( $wp_settings_sections[ $page ] ) ) {
624
$index = 0; // index of fieldset
625
$cookie = $this->get_cookie();
626
627
foreach ( (array) $wp_settings_sections[ $page ] as $section ) {
628
// TRUE if open ('o') or FALSE if close ('x')
629
+ $stat = empty( $cookie[ $tab ][ $index ] ) || 'x' !== $cookie[ $tab ][ $index ] || $index === $target;
630
631
echo "\n",
632
'<fieldset id="', IP_Geo_Block::PLUGIN_NAME, '-section-', $index, '" class="', IP_Geo_Block::PLUGIN_NAME, '-field panel panel-default" data-section="', $index, '">', "\n",
875
break; // disabled @since 3.0
876
877
case 'textarea': ?>
878
+ <textarea class="regular-text code" id="<?php echo $id, $sub_id; ?>" name="<?php echo $name, $sub_name; ?>"<?php
879
+ disabled( ! empty( $args['disabled'] ), TRUE );
880
+ if ( isset( $args['placeholder'] ) ) echo ' placeholder="', esc_html( $args['placeholder'] ), '"'; ?>><?php
881
+ echo esc_html( $args['value'] ); ?></textarea>
882
<?php
883
break;
884
1095
// 3.0.5 Live update
1096
$output['live_update']['in_memory'] = 0;
1097
1098
+ // 3.0.9 Fix for `login_action`
1099
+ foreach ( array( 'login', 'register', 'resetpass', 'lostpassword', 'postpass' ) as $key ) {
1100
+ $output['login_action'][ $key ] = FALSE;
1101
+ }
1102
+
1103
return $output;
1104
}
1105
admin/css/admin.css CHANGED
@@ -30,7 +30,7 @@ label {
30
max-width: 100%;
31
}
32
.panel {
33
- border-color: gray;
34
border: 1px solid #e5e5e5;
35
-webkit-box-shadow: 0 1px 1px rgba(0,0,0,.04);
36
-moz-box-shadow: 0 1px 1px rgba(0,0,0,.04);
@@ -221,13 +221,16 @@ fieldset.ip-geo-block-field textarea.regular-text {
221
}
222
223
/* SVG in google chart */
224
- svg a > text {
225
- fill: #0073aa;
226
- text-decoration: underline;
227
}
228
svg a:hover > text {
229
fill: #0096dd;
230
}
231
232
/* table */
233
table.ip-geo-block-statistics-table {
@@ -330,6 +333,7 @@ dfn ~ .ip-geo-block-icon {
330
margin-left: 0.6em;
331
}
332
.ip-geo-block-icon {
333
cursor: pointer;
334
outline: none;
335
box-shadow: none;
@@ -337,7 +341,6 @@ dfn ~ .ip-geo-block-icon {
337
background-color: transparent;
338
}
339
.ip-geo-block-icon:active {
340
- position: relative;
341
top: 1px;
342
}
343
.ip-geo-block-icon span {
@@ -351,6 +354,9 @@ dfn ~ .ip-geo-block-icon {
351
background-position: center center;
352
background-repeat: no-repeat;
353
}
354
.ip-geo-block-icon-cycle span {
355
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAAh1BMVEUAda2otLp+rsSHprWHr8IBd7EpfKRGhaNajqeUqrRymKuKoq5yo7prlKgAcqoVe6w8gqQmgq5Tj6wIdqsVdKIshrEMea1Uhp+Anqw0hawDdq4gfKhljqE7hqoLdKYbgbM4jLQygKUGeK8CdawQd6gVeKcad6NKkrSerrZAj7UAc6sAc6rc3NySrVGQAAAALXRSTlP//////////////////////////////////////////////////////////wCl7wv9AAACOklEQVR4Ae2W15rzKgxF9xTZzhTX9B7S/gN6/9ebYqzzGZsw/S7LV3FZgCSIwD/kQ8FVcBU8xatZUczy8luC/ABNOn0DSHEsvyZ4PgLatNCYR3efFxyhTQ8g+qQgJxgv2JefERzJXATRh4LHOUwAHD4S7OGEztRJaN86hAUxtaNWDUf/bRdDBbQMWVDAO8jn89WUhag1MeyCAh6hHofyrliLgZKggDMYgzF3eVAwFq0uCZq5KY0TezjIHDDzC0qqmkwe2ctGDOQVLMkgu+F3/rGXwb4xIPcJ6P3JgkM8wFjmfcFAWfeKQywaAz33BJVuHsUcAt09gVbuLDThAJkdR687ggLmf4gDJLIGV7BydtB8yn3u+fbtuj/LS7G9wZAd1AKK+yxJ1x+aBmibTtgCcEHGHsh0wdbOgNLek4L7lI5BigY8nWuZUQ3qGEXes9JzOKGJztPaGtLslu3lIXJirdxCWkASHGDTMqg7V1DKPplygDG61YJukLHjEErGSXqCSos6xNSOgzP3BDmsQBcchNwkoV8oiNnPA78zIefUgCdJeGIfE7LmFWXsFTCFdzTJ/RlfEMRiSGnFXXbkC7AIeqcKDu4ynseozeouKJiSEYBDwkJyIC1nRUjgblkNWp/e/1vXc2gjoAoLksYgjrrFMi0oDgjEEIDij1scBXMJSH6DAj6RNl7o8MkuLak8Co15/Pk+MRmT0xilQJV/sdWNKg2kTaeroudvNNsDjmejYjSL+e6v2/2r4Cp4BXNajr0H7hRfAAAAAElFTkSuQmCC);
356
}
@@ -861,3 +867,9 @@ mark {
861
0% {transform: rotate( 0deg);}
862
100% {transform: rotate(180deg);}
863
}
30
max-width: 100%;
31
}
32
.panel {
33
+ border-color: #888;
34
border: 1px solid #e5e5e5;
35
-webkit-box-shadow: 0 1px 1px rgba(0,0,0,.04);
36
-moz-box-shadow: 0 1px 1px rgba(0,0,0,.04);
221
}
222
223
/* SVG in google chart */
224
+ svg a {
225
+ cursor: pointer;
226
}
227
svg a:hover > text {
228
fill: #0096dd;
229
}
230
+ svg a > text {
231
+ fill: #0073aa;
232
+ text-decoration: underline;
233
+ }
234
235
/* table */
236
table.ip-geo-block-statistics-table {
333
margin-left: 0.6em;
334
}
335
.ip-geo-block-icon {
336
+ position: relative;
337
cursor: pointer;
338
outline: none;
339
box-shadow: none;
341
background-color: transparent;
342
}
343
.ip-geo-block-icon:active {
344
top: 1px;
345
}
346
.ip-geo-block-icon span {
354
background-position: center center;
355
background-repeat: no-repeat;
356
}
357
+ .ip-geo-block-icon-cidr span {
358
+ vertical-align: text-top;
359
+ }
360
.ip-geo-block-icon-cycle span {
361
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAAh1BMVEUAda2otLp+rsSHprWHr8IBd7EpfKRGhaNajqeUqrRymKuKoq5yo7prlKgAcqoVe6w8gqQmgq5Tj6wIdqsVdKIshrEMea1Uhp+Anqw0hawDdq4gfKhljqE7hqoLdKYbgbM4jLQygKUGeK8CdawQd6gVeKcad6NKkrSerrZAj7UAc6sAc6rc3NySrVGQAAAALXRSTlP//////////////////////////////////////////////////////////wCl7wv9AAACOklEQVR4Ae2W15rzKgxF9xTZzhTX9B7S/gN6/9ebYqzzGZsw/S7LV3FZgCSIwD/kQ8FVcBU8xatZUczy8luC/ABNOn0DSHEsvyZ4PgLatNCYR3efFxyhTQ8g+qQgJxgv2JefERzJXATRh4LHOUwAHD4S7OGEztRJaN86hAUxtaNWDUf/bRdDBbQMWVDAO8jn89WUhag1MeyCAh6hHofyrliLgZKggDMYgzF3eVAwFq0uCZq5KY0TezjIHDDzC0qqmkwe2ctGDOQVLMkgu+F3/rGXwb4xIPcJ6P3JgkM8wFjmfcFAWfeKQywaAz33BJVuHsUcAt09gVbuLDThAJkdR687ggLmf4gDJLIGV7BydtB8yn3u+fbtuj/LS7G9wZAd1AKK+yxJ1x+aBmibTtgCcEHGHsh0wdbOgNLek4L7lI5BigY8nWuZUQ3qGEXes9JzOKGJztPaGtLslu3lIXJirdxCWkASHGDTMqg7V1DKPplygDG61YJukLHjEErGSXqCSos6xNSOgzP3BDmsQBcchNwkoV8oiNnPA78zIefUgCdJeGIfE7LmFWXsFTCFdzTJ/RlfEMRiSGnFXXbkC7AIeqcKDu4ynseozeouKJiSEYBDwkJyIC1nRUjgblkNWp/e/1vXc2gjoAoLksYgjrrFMi0oDgjEEIDij1scBXMJSH6DAj6RNl7o8MkuLak8Co15/Pk+MRmT0xilQJV/sdWNKg2kTaeroudvNNsDjmejYjSL+e6v2/2r4Cp4BXNajr0H7hRfAAAAAElFTkSuQmCC);
362
}
867
0% {transform: rotate( 0deg);}
868
100% {transform: rotate(180deg);}
869
}
870
+
871
+ :placeholder-shown { color: #888; }
872
+ ::-webkit-input-placeholder { color: #888; } /* Google Chrome, Safari, Opera 15+, Android, iOS */
873
+ :-moz-placeholder { color: #888; opacity: 1; } /* Firefox 18- */
874
+ ::-moz-placeholder { color: #888; opacity: 1; } /* Firefox 19+ */
875
+ :-ms-input-placeholder { color: #888; } /* IE 10+ */
admin/css/admin.min.css CHANGED
@@ -1,6 +1,6 @@
1
- /*
2
- Project: WordPress IP Geo Block
3
- Copyright (c) 2013-2018 tokkonopapa (tokkonopapa@yahoo.com)
4
- This software is released under the MIT License.
5
- */
6
- dfn{cursor:help;border-bottom:1px dotted #888}.ip-geo-block-icon,table.dataTable>tbody>tr{cursor:pointer}fieldset,legend{padding:0;margin:0;border:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}fieldset{min-width:0}legend{display:block;line-height:inherit;width:100%}.panel-body,label{display:inline-block}label{max-width:100%}.panel{border:1px solid #e5e5e5;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);-moz-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04);background:#f5f5f5}.panel-heading{float:left!important;background:#fff}.panel-default>.panel-heading{border-color:inherit}.panel-body{width:100%;padding:0 1em;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.panel-body:after,.panel-body:before{content:" ";display:table}.panel-body:after{clear:both}fieldset.ip-geo-block-field{margin:1em 0}fieldset.ip-geo-block-field h2,fieldset.ip-geo-block-field h3{padding:0;margin:0;font-size:14px!important}fieldset.ip-geo-block-field h4{margin:.75em 0 .5em}fieldset.ip-geo-block-field legend.panel-heading{padding:10px}fieldset.ip-geo-block-field .ip-geo-block-dropdown,fieldset.ip-geo-block-field .ip-geo-block-dropup{cursor:pointer;position:relative;padding-left:1em}fieldset.ip-geo-block-field .ip-geo-block-dropdown:before,fieldset.ip-geo-block-field .ip-geo-block-dropup:before{content:'';height:0;width:0;border:.4em solid transparent;position:absolute}fieldset.ip-geo-block-field .ip-geo-block-dropup:before{border-left:.4em solid #555;left:2px;top:18%}fieldset.ip-geo-block-field .ip-geo-block-dropdown:before{border-top:.4em solid #555;left:-2px;top:38%}fieldset.ip-geo-block-field .form-table .ip-geo-block-dropdown,fieldset.ip-geo-block-field .form-table .ip-geo-block-dropup{margin-top:.75em}fieldset.ip-geo-block-field ul.ip-geo-block-dropup:before{top:.25em}fieldset.ip-geo-block-field ul.ip-geo-block-dropdown:before{top:.5em}fieldset.ip-geo-block-field table.form-table{margin:0 0 .5em;width:100%}textarea.regular-text{width:25em}fieldset.ip-geo-block-field input.regular-text,fieldset.ip-geo-block-field textarea.regular-text{font-size:95%}.ip-geo-block-settings-folding{margin:.5em 0}.ip-geo-block-settings-folding ul{margin-bottom:0}.ip-geo-block-settings-folding li{margin:.5em 0}.folding-disable{pointer-events:none;opacity:.5}.folding-inactive{opacity:.5;font-style:oblique!important}.ip-geo-block-float li{display:inline-block;width:18em;margin-top:0}.ip-geo-block-checked{list-style-type:disc}.ip-geo-block-ip-addr{display:inline-block;padding-top:5px}.ip-geo-block-hide{display:none}.ip-geo-block-sup{margin-left:.2em;display:inline-block}.ip-geo-block-note{margin-top:1em;list-style:disc inside}.ip-geo-block-border{border-top:inherit}.ip-geo-block-notice{color:#dd3d36}.ip-geo-block-title{width:100px;display:inline-block}.ip-geo-block-result{color:#2786C2;display:inline-block}#ip-geo-block-live-loading,.ip-geo-block-loading{background-size:16px 16px;background-position:center center;background-repeat:no-repeat;height:16px;width:16px;margin-left:1em;margin-top:.2em;display:inline-block;vertical-align:top}.ip-geo-block-loading{background-image:url(data:image/gif;base64,R0lGODlhEAAQAPIGAAAAAMLCwkJCQpKSkmJiYoKCgv///wAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQJCgAGACwAAAAAEAAQAAADM2i63P4wyklrC0IEKgAQnAdOmGYFBLExwboQWcG2rlHEwTDQLUsUOd2mBxkUCgNKa+dIAAAh+QQJCgAGACwAAAIACgAOAAADLWgWIqHQCABEVLPe1R4MBOFFRFNsRUNsYDFewTC8iixvQ1EMyxjEvyBLODQkAAAh+QQJCgAGACwAAAAACgAOAAADLWi6IRJrCQCECoU0ag1xxeBARuEQ0UUU5DUM7fK+qTEUYR0EcM3Ev51uB7wAEwAh+QQJCgAGACwAAAAADgAKAAADLWi6URQrLiJEkSaM0eqrkLFtAVEEAgAIylAUQ5SuSqCFNZjhWG3zmB8wOJQkAAAh+QQJCgAGACwCAAAADgAKAAADK2hqMRMrLuekCnCU8gqBDCZ2glBcYkSUxIJJgQdaUVDOtAAAAr3oPN/llgAAIfkECQoABgAsBgAAAAoADgAAAytoEdauiz0Yx5BQFTvN2EMXWNgUFETZFIJQdERLiGgZtKohAIDQ7T0RrpEAACH5BAkKAAYALAYAAgAKAA4AAAMqaKoR+609Fie1K4zhZiibNRSg1XAQUXQPIQgE835voQgAIARqh+ummSUBACH5BAUKAAYALAIABgAOAAoAAAMsaLpsES2+F9mEddEgBFbBMGACAAiMOCrlGRBFWBQD2L0dYYjfUuQZEKynSAAAOw==)}#ip-geo-block-map{height:400px;margin:1em auto}.gm-style-iw{width:18em;height:auto!important;height:100%;min-height:100%:}.gm-style-iw ul{margin:.1em}.gm-style-iw li{margin:.2em}svg a>text{fill:#0073aa;text-decoration:underline}svg a:hover>text{fill:#0096dd}table.ip-geo-block-statistics-table{float:right}table.ip-geo-block-statistics-table td,table.ip-geo-block-statistics-table th{width:12em;margin:0;padding:.2em;text-align:right;line-height:1.5em;word-wrap:break-word}table.ip-geo-block-statistics-table tr:nth-child(even){background-color:#eee}table.ip-geo-block-table{margin:1em 0;white-space:normal;word-wrap:break-word;word-break:break-all}table.ip-geo-block-table td:first-child{min-width:4.3em}@media screen and (max-width:782px){#ip-geo-block-whois .panel-body{padding:0 .5em}}#ip-geo-block-scan-code{vertical-align:middle}#ip-geo-block-code-list{display:none;margin-bottom:0}#ip-geo-block-chart-countries{height:200px}#ip-geo-block-chart-daily{height:240px}#ip_geo_block_settings_validation_mimetype+label{padding-top:.25em}#ip_geo_block_settings_validation_mimetype+label+ul{margin-top:.7em}#ip_geo_block_settings_create_user{margin-bottom:.5em}#ip-geo-block-back-to-top a,#ip-geo-block-toggle-sections{box-shadow:none}#ip-geo-block-wp-info textarea{margin-top:.5em;overflow:auto;width:100%;word-wrap:normal;word-break:normal;white-space:pre}#ip-geo-block-preferred{color:#fff;background:#00838f!important;border-color:#00707a!important;text-shadow:none}#ip-geo-block-preferred:hover{background-color:#00919e!important;border-color:#00525a!important}.ip-geo-block-icon,.ip-geo-block-list-exceptions a.ip-geo-block-icon{background-color:transparent;box-shadow:none;text-decoration:none;outline:0}#ip-geo-block-back-to-top{margin:0;text-align:right}#ip-geo-block-live-update,#ip-geo-block-open-new{margin-left:1em}.ip-geo-block-menu-link{font-size:13px!important}dfn~.ip-geo-block-icon{margin-left:.6em}.ip-geo-block-icon:active{position:relative;top:1px}.ip-geo-block-icon span{height:16px;width:16px;margin:0;border:none;display:inline-block;vertical-align:middle;background-size:16px 16px;background-position:center center;background-repeat:no-repeat}.ip-geo-block-icon-cycle span{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAAh1BMVEUAda2otLp+rsSHprWHr8IBd7EpfKRGhaNajqeUqrRymKuKoq5yo7prlKgAcqoVe6w8gqQmgq5Tj6wIdqsVdKIshrEMea1Uhp+Anqw0hawDdq4gfKhljqE7hqoLdKYbgbM4jLQygKUGeK8CdawQd6gVeKcad6NKkrSerrZAj7UAc6sAc6rc3NySrVGQAAAALXRSTlP//////////////////////////////////////////////////////////wCl7wv9AAACOklEQVR4Ae2W15rzKgxF9xTZzhTX9B7S/gN6/9ebYqzzGZsw/S7LV3FZgCSIwD/kQ8FVcBU8xatZUczy8luC/ABNOn0DSHEsvyZ4PgLatNCYR3efFxyhTQ8g+qQgJxgv2JefERzJXATRh4LHOUwAHD4S7OGEztRJaN86hAUxtaNWDUf/bRdDBbQMWVDAO8jn89WUhag1MeyCAh6hHofyrliLgZKggDMYgzF3eVAwFq0uCZq5KY0TezjIHDDzC0qqmkwe2ctGDOQVLMkgu+F3/rGXwb4xIPcJ6P3JgkM8wFjmfcFAWfeKQywaAz33BJVuHsUcAt09gVbuLDThAJkdR687ggLmf4gDJLIGV7BydtB8yn3u+fbtuj/LS7G9wZAd1AKK+yxJ1x+aBmibTtgCcEHGHsh0wdbOgNLek4L7lI5BigY8nWuZUQ3qGEXes9JzOKGJztPaGtLslu3lIXJirdxCWkASHGDTMqg7V1DKPplygDG61YJukLHjEErGSXqCSos6xNSOgzP3BDmsQBcchNwkoV8oiNnPA78zIefUgCdJeGIfE7LmFWXsFTCFdzTJ/RlfEMRiSGnFXXbkC7AIeqcKDu4ynseozeouKJiSEYBDwkJyIC1nRUjgblkNWp/e/1vXc2gjoAoLksYgjrrFMi0oDgjEEIDij1scBXMJSH6DAj6RNl7o8MkuLak8Co15/Pk+MRmT0xilQJV/sdWNKg2kTaeroudvNNsDjmejYjSL+e6v2/2r4Cp4BXNajr0H7hRfAAAAAElFTkSuQmCC)}.ip-geo-block-icon-lock span{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAYFBMVEXc3Ny3y9Zzq8dRmb7M1dlXnsIFdK0AcawAcqwphrYAcKvZ29wAb6oJd680jrqlw9MBcqxmo8MUfbJLl75eoMI7kbzX2ttqp8VSmL1YnL8NeK+Tu89DlL1ImMEOebBNmL4OkqMoAAAAAXRSTlMAQObYZgAAAPlJREFUeAG9kAWyhTAQBIPOsCzufv9TPnf4Ll0CSbpmxXwNy3Yc23rz2fV8kPA99433AIQIiGDTCD0lojiOQPXCDSFJIbF16CMWItkQMkF+inZzSLYhFKLl+a9UKTZaqJTZJYtarZuo40chrv9CqJTN+behVi+Cm7RdDgRld6AMgLxrE/dxBz0BEjwBEmD/uIsWPAOAF9A+CE56ufSryr8oqfOYcBbQJ8YkES7COkFOYzTypqCDOTDo2wljaEw4vp1APYyWKd8WMBozylvCpcvmXeHQ5fCegHia4s1FgZcIVeVFeFx1M4MvYG4eBHdYWufC+addBtf8E3vdjBNhWnVQqAAAAABJRU5ErkJggg==)}.ip-geo-block-icon-unlock span{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAYFBMVEXc3NyzydRzq8dRmb7I09hYnsEFdK0AcawAcqzP1toqhrYAcKvZ29wAb6oMeK8zjbqrxtQBcazBz9Zko8MVfbLF0thMmL07kbtpp8WjwtJSmL1YnL+Tu89DlL1JmMEPebBFV++UAAAAAXRSTlMAQObYZgAAAONJREFUeAG9kAWChDAMAIMmJaTFXf7/ynXflvMbnE5j8DU8Pwh8D1yEUYxEGEchWFEJEjEflESBhTQSQm2MRpIotQhZTmgKgMIg5ZlFKBmrGg7UFXJpEQKW8qIKN7YeikJdBJI2BTtXwfyx0L3XoPphvBEliNU49OoxqEa6g4cTST/OYshvi3hV8+FxSNfluG3jqxG8C6h7gF6jU+AODnTsFGSCA5O4I8wpQDq7I5CUAKWQW+AZYOYtoQPoGDeECWDaioBmWQxeBduoWURso+5WpBdw7R4ENTVDcGE435tJwT+xB+vMEnZRNB0YAAAAAElFTkSuQmCC)}.ip-geo-block-icon-find span{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAYFBMVEXc3NzS19rD0NWHtMpGk7kYfbAGda0Req+WtcTT1temwM4AcasAcqwAc6wAcKydvMt1pr8Ab6pqpcLX2doggrKoxdNYm7yzw8u/y9HO1tkKdq4th7Td3t6DrcLL0taxyNPGe/YhAAAAAXRSTlMAQObYZgAAARVJREFUeAGtkkeiwyAMRP2xDfxoRjElvd3/lOkNUlZ5u0GPruan/Bnz96Xadr21rvP/7+ujXsAjom78rj4ApCoERIipqfGB1H7wPmYhw1DXjZI6nOel1oJhVAmdUP0tTEDkVC4AYvqIbaDOCqFV6vwRF0tIeYoo6J/X7ICuPAJl9ZynwiIfB5DXxZlRChulbh8xZci0EHZK3TziJFDL504rEOZ+iR5cVj82DoS7XtSshLJpKqaB0Dg3ZjcsQWKaKiF1gVQlITwh/bw2pgKeEeURhE29yKSzUFF03p1V7Wqj2Y7GfrY9X/NirJsPxKsxfBLSSs5GmH8yjAWPSNd8Yoez4f4/G1nIsksqFtGK1i9e39o0P+EAqaoRLlQ+r94AAAAASUVORK5CYII=)}.ip-geo-block-icon-alert span,span.ip-geo-block-icon-alert{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAkFBMVEXc3Nzc2trWl5DHRDTFOyvOgXfc1tXCLBrEMiHEMyLNcmfaxMLDMSDDLx7bu7jRiYHDLhzDMB/LX1PaxsTDLh3YtrHMY1bWmpPJVknSjYXUkYnZuLTMZVnENCPWlI3QhXzENiXXrqrDLRzXsa3Oal7Pe3Hc2NjVn5nNbmPayMbbwb7ay8rUj4fc09Lbw8Db0dDBbRUDAAAAAXRSTlMAQObYZgAAAPVJREFUeAG9ktXWwyAQBonC12brFvff5f2frr4nBredK2DnTFS8Gst2XM8XZmypIGeWcT4PFABaGIXlClfWG1NiC4Ubu705oKRcY32wTAHl2MdTYEqEK8hIiHgHSnSJeaogMyEWO4BijZCvwII2MS9UJ2BXTh+hQidoEttboBOwq3WBnkCNpQlA2iyAhol2hRu71n97p4fw0Z9/ugoPHCfFA+o/iLfCkyBglRJdICBas7uuey+R56fF14wNanj+/QjwY3aX23cBFn6EiHmHNT/ICYxystv/wJy4UHWGlN2cuPB72tFqAq3dP/Hk3zs0E5LZVryGC/hqGNnUa0SVAAAAAElFTkSuQmCC);vertical-align:bottom}table.form-table th .ip-geo-block-cycle span{vertical-align:text-bottom}.ip-geo-block-list{margin-top:0;margin-bottom:.7em}@media screen and (min-width:782px){ul.ip-geo-block-list .code{width:15em}}.ip-geo-block-list-exceptions label{display:inline-block}.ip-geo-block-list-exceptions dfn{border:none}.dataTables_wrapper.no-footer .dataTables_scrollBody,table.dataTable.no-footer,table.dataTable>thead>tr>td,table.dataTable>thead>tr>th{border-bottom:1px solid #ddd}.ip-geo-block-list-exceptions span.dashicons{font-size:14px}.ip-geo-block-list-exceptions a.ip-geo-block-icon{margin-left:.3em}.form-table td p.ip-geo-block-desc,.form-table td p.ip-geo-block-find-desc{color:#666;font-size:13px!important;margin:4px 0 .5em .5em}.ip-geo-block-find-desc{display:none}.ip-geo-block-admin-post{color:#c43322;margin-left:.25em}.ip-geo-block-found{color:#c43322;font-weight:700}.ip-geo-block-top-list{display:inline-table;list-style-position:outside;margin:0 2em .5em 1.75em}.ip-geo-block-top-list h4{margin:1em 0}.ip-geo-block-top-list li code{background:0 0}.ip-geo-block-network{margin-bottom:1em}.ip-geo-block-container{margin:0 auto;padding:0 1em;position:relative;width:100%}.ip-geo-block-row{display:flex;flex-direction:column;align-items:flex-start;align-items:stretch;padding:0;width:100%}.ip-geo-block-row .ip-geo-block-column{display:block;flex:1 1 auto;align-self:flex-start;margin-left:0;max-width:100%;width:100%}.ip-geo-block-row .ip-geo-block-column.column-20{flex:0 0 20%;max-width:20%}.ip-geo-block-row .ip-geo-block-column.column-25{flex:0 0 25%;max-width:25%}.ip-geo-block-row .ip-geo-block-column.column-33{flex:0 0 33.3333%;max-width:33.3333%}.ip-geo-block-row .ip-geo-block-column.column-50{flex:0 0 50%;max-width:50%}@media (min-width:40rem){.ip-geo-block-row{flex-direction:row;margin-left:-2em;width:calc(100% + 2em)}.ip-geo-block-row .ip-geo-block-column{margin-bottom:inherit;padding:0 1em}}table.dataTable{clear:none!important}table.dataTable td,table.dataTable th{text-align:right}table.dataTable td:nth-child(n+2),table.dataTable th:nth-child(n+2){padding-left:0!important}table.dataTable th{white-space:nowrap}table.dataTable>thead>tr{line-height:1.8em}table.dataTable thead td,table.dataTable thead th{padding:10px 16px}#ip-geo-block-statistics-cache td:nth-child(3),#ip-geo-block-validation-logs td:nth-child(4){min-width:1.6em}table.dataTable.nowrap td,table.dataTable>tbody>tr>td span{white-space:normal!important;word-wrap:break-word!important;word-break:break-all!important}table.dataTable>tbody>tr>td span{display:inline-block}table.dataTable input[type=checkbox]{height:16px;width:16px;margin:-4px 1px 0 0}table.dataTable>tbody>tr>td:first-child,table.dataTable>thead>tr>th:first-child{padding:8px 4px 8px 1.4em;text-align:left}table.collapsed>tbody>tr>td.dataTables_empty:first-child::before,table.dataTable>tbody>tr>td.dataTables_empty{border:none;text-align:center}table.dataTable thead>tr>th:first-child.sorting_asc{background-image:none!important}table.dataTable.display tbody tr.even>.sorting_1,table.dataTable.display tbody tr.odd>.sorting_1,table.dataTable.display tbody tr:hover>.sorting_1{background-color:inherit!important}table.dataTable.collapsed>tbody>tr>td:first-child{padding:8px 4px 8px 8px!important}table.collapsed>tbody>tr.parent>td:first-child::before,table.collapsed>tbody>tr>td:first-child::before{content:'';height:0;width:0;display:inline-block;border-radius:0;border:5px solid transparent;box-shadow:none;position:relative;background-color:transparent}table.collapsed>tbody>tr>td:first-child::before{border-left:5px solid #555;left:-2px}table.collapsed>tbody>tr.parent>td:first-child::before{border-top:5px solid #555;top:3px;left:-4px}table.collapsed>tbody>tr.child>td:first-child::before{border:none}table.collapsed>tbody>tr.child>td.child>ul li{border:none;padding:0;margin:0;line-height:1.8em}table.collapsed>tbody>tr.child>td.child>ul li span.dtr-data,table.collapsed>tbody>tr.child>td.child>ul li span.dtr-title{font-size:13px!important;display:block;white-space:normal;word-wrap:break-word;word-break:break-all}table.collapsed>tbody>tr.child>td.child>ul li span.dtr-data{margin-left:1.25em;margin-right:.3em}.dataTables_wrapper .dataTables_paginate{float:none;text-align:center;margin-bottom:1em}.dataTables_wrapper .dataTables_paginate a.paginate_button,.dataTables_wrapper .dataTables_paginate a.paginate_button.current,.dataTables_wrapper .dataTables_paginate a.paginate_button.current:active,.dataTables_wrapper .dataTables_paginate a.paginate_button.current:hover,.dataTables_wrapper .dataTables_paginate a.paginate_button.disabled,.dataTables_wrapper .dataTables_paginate a.paginate_button.disabled:active,.dataTables_wrapper .dataTables_paginate a.paginate_button.disabled:hover,.dataTables_wrapper .dataTables_paginate a.paginate_button:active,.dataTables_wrapper .dataTables_paginate a.paginate_button:hover,.dataTables_wrapper .dataTables_paginate span.ellipsis{min-width:2em;background:inherit;border-color:#ddd;border-radius:0;border-image:none;border-style:solid;border-width:1px 1px 1px 0;box-shadow:none;margin:.5em 0 0;padding:.25em 0;display:inline-block;text-decoration:none}#ip-geo-block-1 #ip-geo-block-section-2 .panel-body,#ip-geo-block-4 #ip-geo-block-section-0 .panel-body,mark{padding:0}.dataTables_wrapper .dataTables_paginate:active>a.paginate_button:first-child,.dataTables_wrapper .dataTables_paginate:hover>a.paginate_button:first-child,.dataTables_wrapper .dataTables_paginate>a.paginate_button:first-child{border-left-width:1px;border-bottom-left-radius:4px;border-top-left-radius:4px}.dataTables_wrapper .dataTables_paginate:active>a.paginate_button:last-child,.dataTables_wrapper .dataTables_paginate:hover>a.paginate_button:last-child,.dataTables_wrapper .dataTables_paginate>a.paginate_button:last-child{border-bottom-right-radius:4px;border-top-right-radius:4px}.dataTables_wrapper .dataTables_paginate a.paginate_button{color:#0073aa!important}.dataTables_wrapper .dataTables_paginate a.paginate_button:hover{color:#0096dd!important;background-color:#fff}.dataTables_wrapper .dataTables_paginate a.paginate_button.disabled,.dataTables_wrapper .dataTables_paginate a.paginate_button.disabled:active,.dataTables_wrapper .dataTables_paginate a.paginate_button.disabled:hover,.dataTables_wrapper .dataTables_paginate span.ellipsis{cursor:default;color:#999!important;background-color:transparent}.dataTables_wrapper .dataTables_paginate a.paginate_button.current,.dataTables_wrapper .dataTables_paginate a.paginate_button.current:active,.dataTables_wrapper .dataTables_paginate a.paginate_button.current:hover{cursor:default;color:#444!important;background-color:#fff!important}#ip-geo-block-1 #ip-geo-block-section-2 table.form-table,#ip-geo-block-4 #ip-geo-block-section-0 table.form-table{margin-left:1em;max-width:95%}#ip-geo-block-live-log,#ip-geo-block-select-duration,#ip-geo-block-select-layout,#ip-geo-block-select-target{margin:0}#ip-geo-block-select-duration li,#ip-geo-block-select-layout li,#ip-geo-block-select-target li{float:left;margin-right:1.5em}#ip-geo-block-select-duration li label,#ip-geo-block-select-target li label{cursor:pointer}#ip_geo_block_settings_search_filter{width:16em;padding-top:3px}table.dataTable.display tbody tr.ip-geo-block-passed{background-color:#edf6ff!important}table.dataTable.display tbody tr.ip-geo-block-blocked{background-color:#ffefef!important}.ip-geo-block-new-passed{animation:ip-geo-block-flash-passed 1s ease-out 0s 1 normal both running}.ip-geo-block-new-blocked{animation:ip-geo-block-flash-blocked 1s ease-out 0s 1 normal both running}@keyframes ip-geo-block-flash-passed{0%{background-color:gold}100%{background-color:#edf6ff}}@keyframes ip-geo-block-flash-blocked{0%{background-color:gold}100%{background-color:#ffefef}}mark{background:gold}#ip-geo-block-live-log li{float:left;margin-right:3em}#ip-geo-block-live-log li:last-child{margin-right:0}#ip-geo-block-live-log li input[type=radio]{visibility:hidden;position:absolute}#ip-geo-block-live-log li input[type=radio]+label{display:inline-block;margin:-2px -2px 0;padding:4px 12px;font-size:14px;line-height:20px;color:#333;text-align:center;text-shadow:0 1px 1px rgba(255,255,255,.75);vertical-align:middle;cursor:pointer;background-color:#f5f5f5;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(to bottom,#fff,#e6e6e6);background-repeat:repeat-x;border:1px solid #ccc;border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);border-bottom-color:#b3b3b3;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05)}#ip-geo-block-live-log li input[type=radio]:checked+label{background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);background-color:#e0e0e0}.ip-geo-block-live-timer{height:1em;width:1em;margin:0;position:relative;top:0;left:0}.ip-geo-block-live-timer:before{content:"";display:block;height:1em;width:1em;background:radial-gradient(#0073aa,#72777c);border-radius:50%;position:absolute;top:0;left:0}.ip-geo-block-live-timer:after{display:none}.ip-geo-block-live-timer>div{position:absolute;width:1em;height:1em;clip:rect(0,1em,1em,.5em)}.ip-geo-block-live-timer>div:before{content:" ";position:absolute;width:1em;height:1em;border-radius:.5em;clip:rect(0,.5em,1em,0);background-color:#f1f1f1;transform:rotate(0)}.ip-geo-block-live-timer>div:first-child:before{animation:30s spin-timer linear forwards}.ip-geo-block-live-timer>div:last-child{transform:rotate(180deg)}.ip-geo-block-live-timer>div:last-child:before{transform:rotate(.00001deg);animation:30s spin-timer linear 30s forwards}@keyframes spin-timer{0%{transform:rotate(0)}100%{transform:rotate(180deg)}}
1
+ /*!
2
+ * Project: WordPress IP Geo Block
3
+ * Copyright (c) 2013-2018 tokkonopapa (tokkonopapa@yahoo.com)
4
+ * This software is released under the MIT License.
5
+ */
6
+ dfn{cursor:help;border-bottom:1px dotted #888}.ip-geo-block-icon,svg a,table.dataTable>tbody>tr{cursor:pointer}fieldset,legend{padding:0;margin:0;border:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}fieldset{min-width:0}legend{display:block;line-height:inherit;width:100%}.panel-body,label{display:inline-block}label{max-width:100%}.panel{border:1px solid #e5e5e5;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);-moz-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04);background:#f5f5f5}.panel-heading{float:left!important;background:#fff}.panel-default>.panel-heading{border-color:inherit}.panel-body{width:100%;padding:0 1em;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.panel-body:after,.panel-body:before{content:" ";display:table}.panel-body:after{clear:both}fieldset.ip-geo-block-field{margin:1em 0}fieldset.ip-geo-block-field h2,fieldset.ip-geo-block-field h3{padding:0;margin:0;font-size:14px!important}fieldset.ip-geo-block-field h4{margin:.75em 0 .5em}fieldset.ip-geo-block-field legend.panel-heading{padding:10px}fieldset.ip-geo-block-field .ip-geo-block-dropdown,fieldset.ip-geo-block-field .ip-geo-block-dropup{cursor:pointer;position:relative;padding-left:1em}fieldset.ip-geo-block-field .ip-geo-block-dropdown:before,fieldset.ip-geo-block-field .ip-geo-block-dropup:before{content:'';height:0;width:0;border:.4em solid transparent;position:absolute}fieldset.ip-geo-block-field .ip-geo-block-dropup:before{border-left:.4em solid #555;left:2px;top:18%}fieldset.ip-geo-block-field .ip-geo-block-dropdown:before{border-top:.4em solid #555;left:-2px;top:38%}fieldset.ip-geo-block-field .form-table .ip-geo-block-dropdown,fieldset.ip-geo-block-field .form-table .ip-geo-block-dropup{margin-top:.75em}fieldset.ip-geo-block-field ul.ip-geo-block-dropup:before{top:.25em}fieldset.ip-geo-block-field ul.ip-geo-block-dropdown:before{top:.5em}fieldset.ip-geo-block-field table.form-table{margin:0 0 .5em;width:100%}textarea.regular-text{width:25em}fieldset.ip-geo-block-field input.regular-text,fieldset.ip-geo-block-field textarea.regular-text{font-size:95%}.ip-geo-block-settings-folding{margin:.5em 0}.ip-geo-block-settings-folding ul{margin-bottom:0}.ip-geo-block-settings-folding li{margin:.5em 0}.folding-disable{pointer-events:none;opacity:.5}.folding-inactive{opacity:.5;font-style:oblique!important}.ip-geo-block-float li{display:inline-block;width:18em;margin-top:0}.ip-geo-block-checked{list-style-type:disc}.ip-geo-block-ip-addr{display:inline-block;padding-top:5px}.ip-geo-block-hide{display:none}.ip-geo-block-sup{margin-left:.2em;display:inline-block}.ip-geo-block-note{margin-top:1em;list-style:disc inside}.ip-geo-block-border{border-top:inherit}.ip-geo-block-notice{color:#dd3d36}.ip-geo-block-title{width:100px;display:inline-block}.ip-geo-block-result{color:#2786C2;display:inline-block}#ip-geo-block-live-loading,.ip-geo-block-loading{background-size:16px 16px;background-position:center center;background-repeat:no-repeat;height:16px;width:16px;margin-left:1em;margin-top:.2em;display:inline-block;vertical-align:top}.ip-geo-block-loading{background-image:url(data:image/gif;base64,R0lGODlhEAAQAPIGAAAAAMLCwkJCQpKSkmJiYoKCgv///wAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQJCgAGACwAAAAAEAAQAAADM2i63P4wyklrC0IEKgAQnAdOmGYFBLExwboQWcG2rlHEwTDQLUsUOd2mBxkUCgNKa+dIAAAh+QQJCgAGACwAAAIACgAOAAADLWgWIqHQCABEVLPe1R4MBOFFRFNsRUNsYDFewTC8iixvQ1EMyxjEvyBLODQkAAAh+QQJCgAGACwAAAAACgAOAAADLWi6IRJrCQCECoU0ag1xxeBARuEQ0UUU5DUM7fK+qTEUYR0EcM3Ev51uB7wAEwAh+QQJCgAGACwAAAAADgAKAAADLWi6URQrLiJEkSaM0eqrkLFtAVEEAgAIylAUQ5SuSqCFNZjhWG3zmB8wOJQkAAAh+QQJCgAGACwCAAAADgAKAAADK2hqMRMrLuekCnCU8gqBDCZ2glBcYkSUxIJJgQdaUVDOtAAAAr3oPN/llgAAIfkECQoABgAsBgAAAAoADgAAAytoEdauiz0Yx5BQFTvN2EMXWNgUFETZFIJQdERLiGgZtKohAIDQ7T0RrpEAACH5BAkKAAYALAYAAgAKAA4AAAMqaKoR+609Fie1K4zhZiibNRSg1XAQUXQPIQgE835voQgAIARqh+ummSUBACH5BAUKAAYALAIABgAOAAoAAAMsaLpsES2+F9mEddEgBFbBMGACAAiMOCrlGRBFWBQD2L0dYYjfUuQZEKynSAAAOw==)}#ip-geo-block-map{height:400px;margin:1em auto}.gm-style-iw{width:18em;height:auto!important;height:100%;min-height:100%:}.gm-style-iw ul{margin:.1em}.gm-style-iw li{margin:.2em}svg a:hover>text{fill:#0096dd}svg a>text{fill:#0073aa;text-decoration:underline}table.ip-geo-block-statistics-table{float:right}table.ip-geo-block-statistics-table td,table.ip-geo-block-statistics-table th{width:12em;margin:0;padding:.2em;text-align:right;line-height:1.5em;word-wrap:break-word}table.ip-geo-block-statistics-table tr:nth-child(even){background-color:#eee}table.ip-geo-block-table{margin:1em 0;white-space:normal;word-wrap:break-word;word-break:break-all}table.ip-geo-block-table td:first-child{min-width:4.3em}@media screen and (max-width:782px){#ip-geo-block-whois .panel-body{padding:0 .5em}}#ip-geo-block-scan-code{vertical-align:middle}#ip-geo-block-code-list{display:none;margin-bottom:0}#ip-geo-block-chart-countries{height:200px}#ip-geo-block-chart-daily{height:240px}#ip_geo_block_settings_validation_mimetype+label{padding-top:.25em}#ip_geo_block_settings_validation_mimetype+label+ul{margin-top:.7em}#ip_geo_block_settings_create_user{margin-bottom:.5em}#ip-geo-block-back-to-top a,#ip-geo-block-toggle-sections{box-shadow:none}#ip-geo-block-wp-info textarea{margin-top:.5em;overflow:auto;width:100%;word-wrap:normal;word-break:normal;white-space:pre}#ip-geo-block-preferred{color:#fff;background:#00838f!important;border-color:#00707a!important;text-shadow:none}#ip-geo-block-preferred:hover{background-color:#00919e!important;border-color:#00525a!important}.ip-geo-block-icon,.ip-geo-block-list-exceptions a.ip-geo-block-icon{background-color:transparent;box-shadow:none;text-decoration:none;outline:0}#ip-geo-block-back-to-top{margin:0;text-align:right}#ip-geo-block-live-update,#ip-geo-block-open-new{margin-left:1em}.ip-geo-block-menu-link{font-size:13px!important}dfn~.ip-geo-block-icon{margin-left:.6em}.ip-geo-block-icon{position:relative}.ip-geo-block-icon:active{top:1px}.ip-geo-block-icon span{height:16px;width:16px;margin:0;border:none;display:inline-block;vertical-align:middle;background-size:16px 16px;background-position:center center;background-repeat:no-repeat}.ip-geo-block-icon-cidr span{vertical-align:text-top}.ip-geo-block-icon-cycle span{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAAh1BMVEUAda2otLp+rsSHprWHr8IBd7EpfKRGhaNajqeUqrRymKuKoq5yo7prlKgAcqoVe6w8gqQmgq5Tj6wIdqsVdKIshrEMea1Uhp+Anqw0hawDdq4gfKhljqE7hqoLdKYbgbM4jLQygKUGeK8CdawQd6gVeKcad6NKkrSerrZAj7UAc6sAc6rc3NySrVGQAAAALXRSTlP//////////////////////////////////////////////////////////wCl7wv9AAACOklEQVR4Ae2W15rzKgxF9xTZzhTX9B7S/gN6/9ebYqzzGZsw/S7LV3FZgCSIwD/kQ8FVcBU8xatZUczy8luC/ABNOn0DSHEsvyZ4PgLatNCYR3efFxyhTQ8g+qQgJxgv2JefERzJXATRh4LHOUwAHD4S7OGEztRJaN86hAUxtaNWDUf/bRdDBbQMWVDAO8jn89WUhag1MeyCAh6hHofyrliLgZKggDMYgzF3eVAwFq0uCZq5KY0TezjIHDDzC0qqmkwe2ctGDOQVLMkgu+F3/rGXwb4xIPcJ6P3JgkM8wFjmfcFAWfeKQywaAz33BJVuHsUcAt09gVbuLDThAJkdR687ggLmf4gDJLIGV7BydtB8yn3u+fbtuj/LS7G9wZAd1AKK+yxJ1x+aBmibTtgCcEHGHsh0wdbOgNLek4L7lI5BigY8nWuZUQ3qGEXes9JzOKGJztPaGtLslu3lIXJirdxCWkASHGDTMqg7V1DKPplygDG61YJukLHjEErGSXqCSos6xNSOgzP3BDmsQBcchNwkoV8oiNnPA78zIefUgCdJeGIfE7LmFWXsFTCFdzTJ/RlfEMRiSGnFXXbkC7AIeqcKDu4ynseozeouKJiSEYBDwkJyIC1nRUjgblkNWp/e/1vXc2gjoAoLksYgjrrFMi0oDgjEEIDij1scBXMJSH6DAj6RNl7o8MkuLak8Co15/Pk+MRmT0xilQJV/sdWNKg2kTaeroudvNNsDjmejYjSL+e6v2/2r4Cp4BXNajr0H7hRfAAAAAElFTkSuQmCC)}.ip-geo-block-icon-lock span{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAYFBMVEXc3Ny3y9Zzq8dRmb7M1dlXnsIFdK0AcawAcqwphrYAcKvZ29wAb6oJd680jrqlw9MBcqxmo8MUfbJLl75eoMI7kbzX2ttqp8VSmL1YnL8NeK+Tu89DlL1ImMEOebBNmL4OkqMoAAAAAXRSTlMAQObYZgAAAPlJREFUeAG9kAWyhTAQBIPOsCzufv9TPnf4Ll0CSbpmxXwNy3Yc23rz2fV8kPA99433AIQIiGDTCD0lojiOQPXCDSFJIbF16CMWItkQMkF+inZzSLYhFKLl+a9UKTZaqJTZJYtarZuo40chrv9CqJTN+behVi+Cm7RdDgRld6AMgLxrE/dxBz0BEjwBEmD/uIsWPAOAF9A+CE56ufSryr8oqfOYcBbQJ8YkES7COkFOYzTypqCDOTDo2wljaEw4vp1APYyWKd8WMBozylvCpcvmXeHQ5fCegHia4s1FgZcIVeVFeFx1M4MvYG4eBHdYWufC+addBtf8E3vdjBNhWnVQqAAAAABJRU5ErkJggg==)}.ip-geo-block-icon-unlock span{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAYFBMVEXc3NyzydRzq8dRmb7I09hYnsEFdK0AcawAcqzP1toqhrYAcKvZ29wAb6oMeK8zjbqrxtQBcazBz9Zko8MVfbLF0thMmL07kbtpp8WjwtJSmL1YnL+Tu89DlL1JmMEPebBFV++UAAAAAXRSTlMAQObYZgAAAONJREFUeAG9kAWChDAMAIMmJaTFXf7/ynXflvMbnE5j8DU8Pwh8D1yEUYxEGEchWFEJEjEflESBhTQSQm2MRpIotQhZTmgKgMIg5ZlFKBmrGg7UFXJpEQKW8qIKN7YeikJdBJI2BTtXwfyx0L3XoPphvBEliNU49OoxqEa6g4cTST/OYshvi3hV8+FxSNfluG3jqxG8C6h7gF6jU+AODnTsFGSCA5O4I8wpQDq7I5CUAKWQW+AZYOYtoQPoGDeECWDaioBmWQxeBduoWURso+5WpBdw7R4ENTVDcGE435tJwT+xB+vMEnZRNB0YAAAAAElFTkSuQmCC)}.ip-geo-block-icon-find span{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAYFBMVEXc3NzS19rD0NWHtMpGk7kYfbAGda0Req+WtcTT1temwM4AcasAcqwAc6wAcKydvMt1pr8Ab6pqpcLX2doggrKoxdNYm7yzw8u/y9HO1tkKdq4th7Td3t6DrcLL0taxyNPGe/YhAAAAAXRSTlMAQObYZgAAARVJREFUeAGtkkeiwyAMRP2xDfxoRjElvd3/lOkNUlZ5u0GPruan/Bnz96Xadr21rvP/7+ujXsAjom78rj4ApCoERIipqfGB1H7wPmYhw1DXjZI6nOel1oJhVAmdUP0tTEDkVC4AYvqIbaDOCqFV6vwRF0tIeYoo6J/X7ICuPAJl9ZynwiIfB5DXxZlRChulbh8xZci0EHZK3TziJFDL504rEOZ+iR5cVj82DoS7XtSshLJpKqaB0Dg3ZjcsQWKaKiF1gVQlITwh/bw2pgKeEeURhE29yKSzUFF03p1V7Wqj2Y7GfrY9X/NirJsPxKsxfBLSSs5GmH8yjAWPSNd8Yoez4f4/G1nIsksqFtGK1i9e39o0P+EAqaoRLlQ+r94AAAAASUVORK5CYII=)}.ip-geo-block-icon-alert span,span.ip-geo-block-icon-alert{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAkFBMVEXc3Nzc2trWl5DHRDTFOyvOgXfc1tXCLBrEMiHEMyLNcmfaxMLDMSDDLx7bu7jRiYHDLhzDMB/LX1PaxsTDLh3YtrHMY1bWmpPJVknSjYXUkYnZuLTMZVnENCPWlI3QhXzENiXXrqrDLRzXsa3Oal7Pe3Hc2NjVn5nNbmPayMbbwb7ay8rUj4fc09Lbw8Db0dDBbRUDAAAAAXRSTlMAQObYZgAAAPVJREFUeAG9ktXWwyAQBonC12brFvff5f2frr4nBredK2DnTFS8Gst2XM8XZmypIGeWcT4PFABaGIXlClfWG1NiC4Ubu705oKRcY32wTAHl2MdTYEqEK8hIiHgHSnSJeaogMyEWO4BijZCvwII2MS9UJ2BXTh+hQidoEttboBOwq3WBnkCNpQlA2iyAhol2hRu71n97p4fw0Z9/ugoPHCfFA+o/iLfCkyBglRJdICBas7uuey+R56fF14wNanj+/QjwY3aX23cBFn6EiHmHNT/ICYxystv/wJy4UHWGlN2cuPB72tFqAq3dP/Hk3zs0E5LZVryGC/hqGNnUa0SVAAAAAElFTkSuQmCC);vertical-align:bottom}table.form-table th .ip-geo-block-cycle span{vertical-align:text-bottom}.ip-geo-block-list{margin-top:0;margin-bottom:.7em}@media screen and (min-width:782px){ul.ip-geo-block-list .code{width:15em}}.ip-geo-block-list-exceptions label{display:inline-block}.ip-geo-block-list-exceptions dfn{border:none}.dataTables_wrapper.no-footer .dataTables_scrollBody,table.dataTable.no-footer,table.dataTable>thead>tr>td,table.dataTable>thead>tr>th{border-bottom:1px solid #ddd}.ip-geo-block-list-exceptions span.dashicons{font-size:14px}.ip-geo-block-list-exceptions a.ip-geo-block-icon{margin-left:.3em}.form-table td p.ip-geo-block-desc,.form-table td p.ip-geo-block-find-desc{color:#666;font-size:13px!important;margin:4px 0 .5em .5em}.ip-geo-block-find-desc{display:none}.ip-geo-block-admin-post{color:#c43322;margin-left:.25em}.ip-geo-block-found{color:#c43322;font-weight:700}.ip-geo-block-top-list{display:inline-table;list-style-position:outside;margin:0 2em .5em 1.75em}.ip-geo-block-top-list h4{margin:1em 0}.ip-geo-block-top-list li code{background:0 0}.ip-geo-block-network{margin-bottom:1em}.ip-geo-block-container{margin:0 auto;padding:0 1em;position:relative;width:100%}.ip-geo-block-row{display:flex;flex-direction:column;align-items:flex-start;align-items:stretch;padding:0;width:100%}.ip-geo-block-row .ip-geo-block-column{display:block;flex:1 1 auto;align-self:flex-start;margin-left:0;max-width:100%;width:100%}.ip-geo-block-row .ip-geo-block-column.column-20{flex:0 0 20%;max-width:20%}.ip-geo-block-row .ip-geo-block-column.column-25{flex:0 0 25%;max-width:25%}.ip-geo-block-row .ip-geo-block-column.column-33{flex:0 0 33.3333%;max-width:33.3333%}.ip-geo-block-row .ip-geo-block-column.column-50{flex:0 0 50%;max-width:50%}@media (min-width:40rem){.ip-geo-block-row{flex-direction:row;margin-left:-2em;width:calc(100% + 2em)}.ip-geo-block-row .ip-geo-block-column{margin-bottom:inherit;padding:0 1em}}table.dataTable{clear:none!important}table.dataTable td,table.dataTable th{text-align:right}table.dataTable td:nth-child(n+2),table.dataTable th:nth-child(n+2){padding-left:0!important}table.dataTable th{white-space:nowrap}table.dataTable>thead>tr{line-height:1.8em}table.dataTable thead td,table.dataTable thead th{padding:10px 16px}#ip-geo-block-statistics-cache td:nth-child(3),#ip-geo-block-validation-logs td:nth-child(4){min-width:1.6em}table.dataTable.nowrap td,table.dataTable>tbody>tr>td span{white-space:normal!important;word-wrap:break-word!important;word-break:break-all!important}table.dataTable>tbody>tr>td span{display:inline-block}table.dataTable input[type=checkbox]{height:16px;width:16px;margin:-4px 1px 0 0}table.dataTable>tbody>tr>td:first-child,table.dataTable>thead>tr>th:first-child{padding:8px 4px 8px 1.4em;text-align:left}table.collapsed>tbody>tr>td.dataTables_empty:first-child::before,table.dataTable>tbody>tr>td.dataTables_empty{border:none;text-align:center}table.dataTable thead>tr>th:first-child.sorting_asc{background-image:none!important}table.dataTable.display tbody tr.even>.sorting_1,table.dataTable.display tbody tr.odd>.sorting_1,table.dataTable.display tbody tr:hover>.sorting_1{background-color:inherit!important}table.dataTable.collapsed>tbody>tr>td:first-child{padding:8px 4px 8px 8px!important}table.collapsed>tbody>tr.parent>td:first-child::before,table.collapsed>tbody>tr>td:first-child::before{content:'';height:0;width:0;display:inline-block;border-radius:0;border:5px solid transparent;box-shadow:none;position:relative;background-color:transparent}table.collapsed>tbody>tr>td:first-child::before{border-left:5px solid #555;left:-2px}table.collapsed>tbody>tr.parent>td:first-child::before{border-top:5px solid #555;top:3px;left:-4px}table.collapsed>tbody>tr.child>td:first-child::before{border:none}table.collapsed>tbody>tr.child>td.child>ul li{border:none;padding:0;margin:0;line-height:1.8em}table.collapsed>tbody>tr.child>td.child>ul li span.dtr-data,table.collapsed>tbody>tr.child>td.child>ul li span.dtr-title{font-size:13px!important;display:block;white-space:normal;word-wrap:break-word;word-break:break-all}table.collapsed>tbody>tr.child>td.child>ul li span.dtr-data{margin-left:1.25em;margin-right:.3em}.dataTables_wrapper .dataTables_paginate{float:none;text-align:center;margin-bottom:1em}.dataTables_wrapper .dataTables_paginate a.paginate_button,.dataTables_wrapper .dataTables_paginate a.paginate_button.current,.dataTables_wrapper .dataTables_paginate a.paginate_button.current:active,.dataTables_wrapper .dataTables_paginate a.paginate_button.current:hover,.dataTables_wrapper .dataTables_paginate a.paginate_button.disabled,.dataTables_wrapper .dataTables_paginate a.paginate_button.disabled:active,.dataTables_wrapper .dataTables_paginate a.paginate_button.disabled:hover,.dataTables_wrapper .dataTables_paginate a.paginate_button:active,.dataTables_wrapper .dataTables_paginate a.paginate_button:hover,.dataTables_wrapper .dataTables_paginate span.ellipsis{min-width:2em;background:inherit;border-color:#ddd;border-radius:0;border-image:none;border-style:solid;border-width:1px 1px 1px 0;box-shadow:none;margin:.5em 0 0;padding:.25em 0;display:inline-block;text-decoration:none}#ip-geo-block-1 #ip-geo-block-section-2 .panel-body,#ip-geo-block-4 #ip-geo-block-section-0 .panel-body,mark{padding:0}.dataTables_wrapper .dataTables_paginate:active>a.paginate_button:first-child,.dataTables_wrapper .dataTables_paginate:hover>a.paginate_button:first-child,.dataTables_wrapper .dataTables_paginate>a.paginate_button:first-child{border-left-width:1px;border-bottom-left-radius:4px;border-top-left-radius:4px}.dataTables_wrapper .dataTables_paginate:active>a.paginate_button:last-child,.dataTables_wrapper .dataTables_paginate:hover>a.paginate_button:last-child,.dataTables_wrapper .dataTables_paginate>a.paginate_button:last-child{border-bottom-right-radius:4px;border-top-right-radius:4px}.dataTables_wrapper .dataTables_paginate a.paginate_button{color:#0073aa!important}.dataTables_wrapper .dataTables_paginate a.paginate_button:hover{color:#0096dd!important;background-color:#fff}.dataTables_wrapper .dataTables_paginate a.paginate_button.disabled,.dataTables_wrapper .dataTables_paginate a.paginate_button.disabled:active,.dataTables_wrapper .dataTables_paginate a.paginate_button.disabled:hover,.dataTables_wrapper .dataTables_paginate span.ellipsis{cursor:default;color:#999!important;background-color:transparent}.dataTables_wrapper .dataTables_paginate a.paginate_button.current,.dataTables_wrapper .dataTables_paginate a.paginate_button.current:active,.dataTables_wrapper .dataTables_paginate a.paginate_button.current:hover{cursor:default;color:#444!important;background-color:#fff!important}#ip-geo-block-1 #ip-geo-block-section-2 table.form-table,#ip-geo-block-4 #ip-geo-block-section-0 table.form-table{margin-left:1em;max-width:95%}#ip-geo-block-live-log,#ip-geo-block-select-duration,#ip-geo-block-select-layout,#ip-geo-block-select-target{margin:0}#ip-geo-block-select-duration li,#ip-geo-block-select-layout li,#ip-geo-block-select-target li{float:left;margin-right:1.5em}#ip-geo-block-select-duration li label,#ip-geo-block-select-target li label{cursor:pointer}#ip_geo_block_settings_search_filter{width:16em;padding-top:3px}table.dataTable.display tbody tr.ip-geo-block-passed{background-color:#edf6ff!important}table.dataTable.display tbody tr.ip-geo-block-blocked{background-color:#ffefef!important}.ip-geo-block-new-passed{animation:ip-geo-block-flash-passed 1s ease-out 0s 1 normal both running}.ip-geo-block-new-blocked{animation:ip-geo-block-flash-blocked 1s ease-out 0s 1 normal both running}@keyframes ip-geo-block-flash-passed{0%{background-color:gold}100%{background-color:#edf6ff}}@keyframes ip-geo-block-flash-blocked{0%{background-color:gold}100%{background-color:#ffefef}}mark{background:gold}#ip-geo-block-live-log li{float:left;margin-right:3em}#ip-geo-block-live-log li:last-child{margin-right:0}#ip-geo-block-live-log li input[type=radio]{visibility:hidden;position:absolute}#ip-geo-block-live-log li input[type=radio]+label{display:inline-block;margin:-2px -2px 0;padding:4px 12px;font-size:14px;line-height:20px;color:#333;text-align:center;text-shadow:0 1px 1px rgba(255,255,255,.75);vertical-align:middle;cursor:pointer;background-color:#f5f5f5;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(to bottom,#fff,#e6e6e6);background-repeat:repeat-x;border:1px solid #ccc;border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);border-bottom-color:#b3b3b3;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05)}#ip-geo-block-live-log li input[type=radio]:checked+label{background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);background-color:#e0e0e0}.ip-geo-block-live-timer{height:1em;width:1em;margin:0;position:relative;top:0;left:0}.ip-geo-block-live-timer:before{content:"";display:block;height:1em;width:1em;background:radial-gradient(#0073aa,#72777c);border-radius:50%;position:absolute;top:0;left:0}.ip-geo-block-live-timer:after{display:none}.ip-geo-block-live-timer>div{position:absolute;width:1em;height:1em;clip:rect(0,1em,1em,.5em)}.ip-geo-block-live-timer>div:before{content:" ";position:absolute;width:1em;height:1em;border-radius:.5em;clip:rect(0,.5em,1em,0);background-color:#f1f1f1;transform:rotate(0)}.ip-geo-block-live-timer>div:first-child:before{animation:30s spin-timer linear forwards}.ip-geo-block-live-timer>div:last-child{transform:rotate(180deg)}.ip-geo-block-live-timer>div:last-child:before{transform:rotate(.00001deg);animation:30s spin-timer linear 30s forwards}@keyframes spin-timer{0%{transform:rotate(0)}100%{transform:rotate(180deg)}}:placeholder-shown{color:#888}::-webkit-input-placeholder{color:#888}:-moz-placeholder{color:#888;opacity:1}::-moz-placeholder{color:#888;opacity:1}:-ms-input-placeholder{color:#888}
admin/css/cidr.min.css ADDED
@@ -0,0 +1 @@
1
+ #g,textarea{border:1px solid #ccc}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}body{margin:8xp;font-size:14px;line-height:1.4}.container{margin:0;padding:0}.clr:after,.col:after,.container:after,.row:after{content:"";display:table;clear:both}.row{padding-bottom:0}.col{display:block;float:left;width:100%}.span_2{width:8.33333333333%}.span_11{width:45.8333333333%}.span_24,textarea{width:100%}fieldset{border:none;margin:0;padding:.5em}textarea{height:6em;resize:horizontal;font-size:12px;font-family:Consolas,Monaco,monospace}legend input[type=button]{margin-left:.5em;vertical-align:middle}#j,#i{display:-ms-flexbox;display:-webkit-box;display:-webkit-flex;display:flex;justify-content:center;align-items:center}#j{padding:0 .5em}ul#h{padding:1.5em 0 0;list-style:none}ul#h li{width:100%;margin:.25em 0;display:inline-block}ul#h li input{padding:0}#g{text-align:center;padding:.5em}
admin/includes/class-admin-ajax.php CHANGED
@@ -57,8 +57,8 @@ class IP_Geo_Block_Admin_Ajax {
57
*/
58
public static function scan_country( $which ) {
59
// scan all the country code using selected APIs
60
- $ip = IP_Geo_Block::get_ip_address();
61
$options = IP_Geo_Block::get_option();
62
$args = IP_Geo_Block::get_request_headers( $options );
63
$type = IP_Geo_Block_Provider::get_providers( 'type', FALSE, FALSE );
64
$providers = IP_Geo_Block_Provider::get_valid_providers( $options['providers'], FALSE, FALSE );
@@ -485,6 +485,7 @@ endif; // TEST_RESTORE_NETWORK
485
'[public][dnslkup]', // 3.0.3
486
'[public][response_code]', // 3.0.3
487
'[public][redirect_uri]', // 3.0.3
488
'[providers][Maxmind]',
489
'[providers][IP2Location]',
490
'[providers][freegeoip.net]',
@@ -753,6 +754,8 @@ endif; // TEST_RESTORE_NETWORK
753
'User agent:' => $_SERVER['HTTP_USER_AGENT'],
754
);
755
756
// Child and parent themes
757
$activated = wp_get_theme(); // @since 3.4.0
758
$res += array( esc_html( $activated->get( 'Name' ) ) => esc_html( $activated->get( 'Version' ) ) );
57
*/
58
public static function scan_country( $which ) {
59
// scan all the country code using selected APIs
60
$options = IP_Geo_Block::get_option();
61
+ $ip = IP_Geo_Block::get_ip_address();
62
$args = IP_Geo_Block::get_request_headers( $options );
63
$type = IP_Geo_Block_Provider::get_providers( 'type', FALSE, FALSE );
64
$providers = IP_Geo_Block_Provider::get_valid_providers( $options['providers'], FALSE, FALSE );
485
'[public][dnslkup]', // 3.0.3
486
'[public][response_code]', // 3.0.3
487
'[public][redirect_uri]', // 3.0.3
488
+ '[providers][Geolite2]', // 3.0.8
489
'[providers][Maxmind]',
490
'[providers][IP2Location]',
491
'[providers][freegeoip.net]',
754
'User agent:' => $_SERVER['HTTP_USER_AGENT'],
755
);
756
757
+ $res = array_map( 'esc_html', $res );
758
+
759
// Child and parent themes
760
$activated = wp_get_theme(); // @since 3.4.0
761
$res += array( esc_html( $activated->get( 'Name' ) ) => esc_html( $activated->get( 'Version' ) ) );
admin/includes/tab-accesslog.php CHANGED
@@ -24,6 +24,8 @@ class IP_Geo_Block_Admin_Tab {
24
$option_slug
25
);
26
27
$html = '<ul id="ip-geo-block-live-log">';
28
$html .= '<li><input type="radio" name="ip-geo-block-live-log" id="ip-geo-block-live-log-start" value="start"><label for="ip-geo-block-live-log-start" title="Start"><span class="ip-geo-block-icon-play"></span></label></li>';
29
$html .= '<li><input type="radio" name="ip-geo-block-live-log" id="ip-geo-block-live-log-pause" value="pause"><label for="ip-geo-block-live-log-pause" title="Pause"><span class="ip-geo-block-icon-pause"></span></label></li>';
@@ -153,6 +155,8 @@ class IP_Geo_Block_Admin_Tab {
153
)
154
);
155
156
}
157
158
/**
@@ -164,9 +168,11 @@ class IP_Geo_Block_Admin_Tab {
164
}
165
166
public static function warn_accesslog() {
167
- echo '<p style="padding:0 1em">', __( '[<strong>Record validation logs</strong>] on [<strong>Settings</strong>] tab is [<strong>Disable</strong>].', 'ip-geo-block' ), '</p>', "\n";
168
- echo '<p style="padding:0 1em">', __( 'Please select the proper condition to record and analyze the validation logs.', 'ip-geo-block' ), '</p>', "\n";
169
- self::validation_logs();
170
}
171
172
}
24
$option_slug
25
);
26
27
+ if ( $options['validation']['reclogs'] ):
28
+
29
$html = '<ul id="ip-geo-block-live-log">';
30
$html .= '<li><input type="radio" name="ip-geo-block-live-log" id="ip-geo-block-live-log-start" value="start"><label for="ip-geo-block-live-log-start" title="Start"><span class="ip-geo-block-icon-play"></span></label></li>';
31
$html .= '<li><input type="radio" name="ip-geo-block-live-log" id="ip-geo-block-live-log-pause" value="pause"><label for="ip-geo-block-live-log-pause" title="Pause"><span class="ip-geo-block-icon-pause"></span></label></li>';
155
)
156
);
157
158
+ endif; // $options['validation']['reclogs']
159
+
160
}
161
162
/**
168
}
169
170
public static function warn_accesslog() {
171
+ $context = IP_Geo_Block_Admin::get_instance();
172
+ $url = esc_url( add_query_arg( array( 'page' => IP_Geo_Block::PLUGIN_NAME, 'tab' => '0', 'sec' => 5 ), $context->dashboard_url() ) . '#' . IP_Geo_Block::PLUGIN_NAME . '-section-5' );
173
+ echo '<p style="padding:0 1em">', sprintf( __( '[ %sRecord &#8220;Logs&#8221;%s ] is desabled.', 'ip-geo-block' ), '<a href="' . $url . '"><strong>', '</strong></a>' ), '</p>', "\n";
174
+ echo '<p style="padding:0 1em">', __( 'Please set the proper condition to record and analyze the validation logs.', 'ip-geo-block' ), '</p>', "\n";
175
+ // self::validation_logs();
176
}
177
178
}
admin/includes/tab-network.php CHANGED
@@ -109,8 +109,10 @@ class IP_Geo_Block_Admin_Tab {
109
require_once IP_GEO_BLOCK_PATH . 'admin/includes/class-admin-ajax.php';
110
111
if ( self::$controls['warn'] ) {
112
- echo '<p style="padding:0 1em">', __( '[<strong>Record validation logs</strong>] on [<strong>Settings</strong>] tab is [<strong>Disable</strong>].', 'ip-geo-block' ), '</p>', "\n";
113
- echo '<p style="padding:0 1em">', __( 'Please select the proper condition to record and analyze the validation logs.', 'ip-geo-block' ), '</p>', "\n";
114
}
115
116
$row = self::$controls['rows'] * 5;
109
require_once IP_GEO_BLOCK_PATH . 'admin/includes/class-admin-ajax.php';
110
111
if ( self::$controls['warn'] ) {
112
+ $context = IP_Geo_Block_Admin::get_instance();
113
+ $url = esc_url( add_query_arg( array( 'page' => IP_Geo_Block::PLUGIN_NAME, 'tab' => '0', 'sec' => 5 ), $context->dashboard_url() ) . '#' . IP_Geo_Block::PLUGIN_NAME . '-section-5' );
114
+ echo '<p style="padding:0 1em">', sprintf( __( '[ %sRecord &#8220;Logs&#8221;%s ] is desabled.', 'ip-geo-block' ), '<a href="' . $url . '"><strong>', '</strong></a>' ), '</p>', "\n";
115
+ echo '<p style="padding:0 1em">', __( 'Please set the proper condition to record and analyze the validation logs.', 'ip-geo-block' ), '</p>', "\n";
116
}
117
118
$row = self::$controls['rows'] * 5;
admin/includes/tab-settings.php CHANGED
@@ -58,7 +58,6 @@ class IP_Geo_Block_Admin_Tab {
58
* @param string $section The section of the settings page in which to show the box.
59
* @param array $args Additional arguments that are passed to the $callback function.
60
*/
61
-
62
// Get the country code of client
63
$key = IP_Geo_Block::get_geolocation( $val = IP_Geo_Block::get_ip_address() );
64
@@ -118,6 +117,7 @@ endif;
118
'<span title="' . __( 'Toggle selection', 'ip-geo-block' ) . '"></span>',
119
'<span title="' . __( 'Find blocked requests in &#8220;Logs&#8220;', 'ip-geo-block' ) . '"></span>',
120
__( 'Before adding as &#8220;Exception&#8221;, please click on &#8220;<a class="ip-geo-block-icon ip-geo-block-icon-alert" title="This button is just a sample."><span></span></a>&#8221; button (if exists) attached to the following list to confirm that the blocked request is not malicious.', 'ip-geo-block' ),
121
);
122
123
// Matching rule
@@ -194,7 +194,7 @@ endif;
194
'field' => $field,
195
'sub-field' => $key,
196
'value' => 1 === (int)$options[ $field ][ $key ],
197
- 'after' => '<p class="ip-geo-block-desc">' . sprintf( __( 'Some useful tools for investigating ASN are introduced in &#8220;%s&#8221;.', 'ip-geo-block' ), '<a rel="noreferrer" href="http://www.ipgeoblock.com/codex/utilizing-asnumber.html" title="Utilizing AS number | IP Geo Block">Utilizing AS number</a>' ) . '</p>',
198
)
199
);
200
@@ -215,7 +215,8 @@ endif;
215
'field' => $field,
216
'sub-field' => $key,
217
'value' => $options[ $field ][ $key ],
218
- 'after' => $comma[1],
219
)
220
);
221
@@ -235,7 +236,8 @@ endif;
235
'field' => $field,
236
'sub-field' => $key,
237
'value' => $options[ $field ][ $key ],
238
- 'after' => $comma[1],
239
)
240
);
241
@@ -1178,7 +1180,7 @@ endif;
1178
$option_slug
1179
);
1180
1181
- // Record validation statistics
1182
$field = 'save_statistics';
1183
add_settings_field(
1184
$option_name.'_'.$field,
58
* @param string $section The section of the settings page in which to show the box.
59
* @param array $args Additional arguments that are passed to the $callback function.
60
*/
61
// Get the country code of client
62
$key = IP_Geo_Block::get_geolocation( $val = IP_Geo_Block::get_ip_address() );
63
117
'<span title="' . __( 'Toggle selection', 'ip-geo-block' ) . '"></span>',
118
'<span title="' . __( 'Find blocked requests in &#8220;Logs&#8220;', 'ip-geo-block' ) . '"></span>',
119
__( 'Before adding as &#8220;Exception&#8221;, please click on &#8220;<a class="ip-geo-block-icon ip-geo-block-icon-alert" title="This button is just a sample."><span></span></a>&#8221; button (if exists) attached to the following list to confirm that the blocked request is not malicious.', 'ip-geo-block' ),
120
+ __( 'Open CIDR calculator for IPv4 / IPv6', 'ip-geo-block' ),
121
);
122
123
// Matching rule
194
'field' => $field,
195
'sub-field' => $key,
196
'value' => 1 === (int)$options[ $field ][ $key ],
197
+ 'after' => '<p class="ip-geo-block-desc">' . sprintf( __( 'Some useful tools to find ASN are introduced in &#8220;%s&#8221;.', 'ip-geo-block' ), '<a rel="noreferrer" href="http://www.ipgeoblock.com/codex/utilizing-asnumber.html" title="Utilizing AS number | IP Geo Block">Utilizing AS number</a>' ) . '</p>',
198
)
199
);
200
215
'field' => $field,
216
'sub-field' => $key,
217
'value' => $options[ $field ][ $key ],
218
+ 'placeholder' => '192.168.0.0/16,2001:db8::/96,AS1234',
219
+ 'after' => $comma[1] . ' <a class="ip-geo-block-icon ip-geo-block-icon-cidr" title="' . $comma[5] . '"><span class="dashicons dashicons-sos"></span></a>',
220
)
221
);
222
236
'field' => $field,
237
'sub-field' => $key,
238
'value' => $options[ $field ][ $key ],
239
+ 'placeholder' => '192.168.0.0/16,2001:db8::/96,AS1234',
240
+ 'after' => $comma[1] . ' <a class="ip-geo-block-icon ip-geo-block-icon-cidr" title="' . $comma[5] . '"><span class="dashicons dashicons-sos"></span></a>',
241
)
242
);
243
1180
$option_slug
1181
);
1182
1183
+ // Record "Statistics"
1184
$field = 'save_statistics';
1185
add_settings_field(
1186
$option_name.'_'.$field,
admin/includes/tab-statistics.php CHANGED
@@ -389,12 +389,16 @@ endif;
389
*
390
*/
391
public static function warn_statistics() {
392
- echo '<p>', __( '[<strong>Record validation statistics</strong>] on [<strong>Settings</strong>] tab is not selected as [<strong>Enable</strong>].', 'ip-geo-block' ), '</p>', "\n";
393
echo '<p>', __( 'Please set the proper condition to record and analyze the validation statistics.', 'ip-geo-block' ), '</p>', "\n";
394
}
395
396
public static function warn_validation() {
397
- echo '<p>', __( '[<strong>Record validation logs</strong>] on [<strong>Settings</strong>] tab is [<strong>Disable</strong>].', 'ip-geo-block' ), '</p>', "\n";
398
echo '<p>', __( 'Please set the proper condition to record and analyze the validation logs.', 'ip-geo-block' ), '</p>', "\n";
399
}
400
389
*
390
*/
391
public static function warn_statistics() {
392
+ $context = IP_Geo_Block_Admin::get_instance();
393
+ $url = esc_url( add_query_arg( array( 'page' => IP_Geo_Block::PLUGIN_NAME, 'tab' => '0', 'sec' => 5 ), $context->dashboard_url() ) . '#' . IP_Geo_Block::PLUGIN_NAME . '-section-5' );
394
+ echo '<p>', sprintf( __( '[ %sRecord &#8220;Statistics&#8221;%s ] is desabled.', 'ip-geo-block' ), '<a href="' . $url . '"><strong>', '</strong></a>' ), '</p>', "\n";
395
echo '<p>', __( 'Please set the proper condition to record and analyze the validation statistics.', 'ip-geo-block' ), '</p>', "\n";
396
}
397
398
public static function warn_validation() {
399
+ $context = IP_Geo_Block_Admin::get_instance();
400
+ $url = esc_url( add_query_arg( array( 'page' => IP_Geo_Block::PLUGIN_NAME, 'tab' => '0', 'sec' => 5 ), $context->dashboard_url() ) . '#' . IP_Geo_Block::PLUGIN_NAME . '-section-5' );
401
+ echo '<p>', sprintf( __( '[ %sRecord &#8220;Logs&#8221;%s ] is desabled.', 'ip-geo-block' ), '<a href="' . $url . '"><strong>', '</strong></a>' ), '</p>', "\n";
402
echo '<p>', __( 'Please set the proper condition to record and analyze the validation logs.', 'ip-geo-block' ), '</p>', "\n";
403
}
404
admin/js/admin.js CHANGED
@@ -551,8 +551,10 @@
551
function drawChart(tabNo) {
552
if ('object' === typeof window.google) {
553
if (1 === tabNo) {
554
- chart.drawPie(ID('chart-countries'));
555
- chart.drawLine(ID('chart-daily'), 'date');
556
} else if (5 === tabNo) {
557
$(ID('.', 'network')).each(function (i, obj) {
558
// chart.drawLine($(obj).attr('id'), 'datetime');
@@ -992,6 +994,25 @@
992
return false;
993
}).change();
994
995
// Show/Hide folding list at prevent malicious upload
996
$(ID('@', 'validation_mimetype')).on('change', function (event) {
997
var $this = $(this),
@@ -1070,7 +1091,7 @@
1070
for (key in data) {
1071
if (data.hasOwnProperty(key)) {
1072
key = stripTag(key);
1073
- if (!$this.find('#' + (id = ID('%', key))).size()) {
1074
i = input.cloneNode(false);
1075
i.setAttribute('id', id);
1076
i.setAttribute('value', key);
@@ -1170,9 +1191,9 @@
1170
id = ID('!', 'exception_' + target + '_' + val);
1171
1172
// make an anchor tab with search query
1173
- s = 'admin' === target ? key + '=' + val : '/' + key + '/' + val + '/';
1174
- s = '<a class="ip-geo-block-icon ip-geo-block-icon-alert" href="?page=ip-geo-block&tab=4&s='
1175
- + encodeURIComponent(s) + '" title="' + title.replace('%s', s) + '" target="_blank"><span></span></a>';
1176
1177
// add a new list when not found in existent key
1178
if (ext < 0) {
551
function drawChart(tabNo) {
552
if ('object' === typeof window.google) {
553
if (1 === tabNo) {
554
+ if ($(ID('#', 'chart-countries')).length) {
555
+ chart.drawPie(ID('chart-countries'));
556
+ chart.drawLine(ID('chart-daily'), 'date');
557
+ }
558
} else if (5 === tabNo) {
559
$(ID('.', 'network')).each(function (i, obj) {
560
// chart.drawLine($(obj).attr('id'), 'datetime');
994
return false;
995
}).change();
996
997
+ // CIDR calculator
998
+ $(ID('.', 'icon-cidr')).on('click', function () {
999
+ var src = $(ID('#', 'admin-styles-css')).get(0).href,
1000
+ win = window.open('about:blank', '', 'width=560,height=170'); // menubar=no,toolbar=no,location=no
1001
+ src = src.slice(0, src.lastIndexOf('css/'));
1002
+ win.document.write(
1003
+ '<!DOCTYPE html>' +
1004
+ '<html lang=en>' +
1005
+ '<meta charset=utf-8>' +
1006
+ '<title>CIDR calculator for IPv4 / IPv6</title>' +
1007
+ '<link href="' + src + 'css/cidr.min.css" rel=stylesheet>' +
1008
+ '<div class="row container"><div class=row id=i><fieldset class="col span_11"><legend>Range <input id=a type=button value=Clear tabindex=1></legend><textarea id=c name=range placeholder="192.168.0.0 - 192.168.255.255" rows=5 wrap=off tabindex=2></textarea></fieldset><ul class="col span_2" id=h><li class=row><input id=e type=button value=&rarr; class="col span_24" tabindex=3><li class=row><input id=f type=button value=&larr; class="col span_24" tabindex=6></ul><fieldset class="col span_11"><legend>CIDR <input id=b type=button value=Clear tabindex=4></legend><textarea id=d name=cidr placeholder=192.168.0.0/16 rows=5 wrap=off tabindex=5></textarea></fieldset></div><div class=row id=j><span class=col id=g> </span></div></div>' +
1009
+ /* '<div class="container row"><div class="row" id="top"><fieldset class="col span_11"><legend>Range <input type="button" id="r_clear" value="Clear" tabindex="1" /></legend><textarea name="range" id="r_text" rows="5" wrap="off" placeholder="192.168.0.0 - 192.168.255.255" tabindex="2"></textarea></fieldset><ul class="col span_2" id="b_conv"><li class="row"><input class="col span_24" type="button" id="r_conv" value="&rarr;" tabindex="3" /></li><li class="row"><input class="col span_24" type="button" id="c_conv" value="&larr;" tabindex="6" /></li></ul><fieldset class="col span_11"><legend>CIDR <input type="button" id="c_clear" value="Clear" tabindex="4" /></legend><textarea name="cidr" id="c_text" rows="5" wrap="off" placeholder="192.168.0.0/16" tabindex="5"></textarea></fieldset></div><div class="row" id="bottom"><span class="col" id="msg">&nbsp;</span></div></div>' +*/
1010
+ '<script src="' + src + 'js/cidr.min.js"></script>'
1011
+ );
1012
+ win.document.close();
1013
+ return false;
1014
+ });
1015
+
1016
// Show/Hide folding list at prevent malicious upload
1017
$(ID('@', 'validation_mimetype')).on('change', function (event) {
1018
var $this = $(this),
1091
for (key in data) {
1092
if (data.hasOwnProperty(key)) {
1093
key = stripTag(key);
1094
+ if (!$this.find('#' + (id = ID('!', 'exception_admin_' + key))).size()) {
1095
i = input.cloneNode(false);
1096
i.setAttribute('id', id);
1097
i.setAttribute('value', key);
1191
id = ID('!', 'exception_' + target + '_' + val);
1192
1193
// make an anchor tab with search query
1194
+ s = 'admin' === target ? (key + '=' + val) : ('/' + key + '/' + val + '/');
1195
+ s = '<a class="ip-geo-block-icon ip-geo-block-icon-alert" href="' + ip_geo_block_auth.sites[0] + 'options-general.php' + // only main site
1196
+ '?page=ip-geo-block&tab=4&s=' + encodeURIComponent(s) + '" title="' + title.replace('%s', s) + '" target="_blank"><span></span></a>';
1197
1198
// add a new list when not found in existent key
1199
if (ext < 0) {
admin/js/admin.min.js CHANGED
@@ -3,4 +3,4 @@
3
Copyright (c) 2013-2018 tokkonopapa (tokkonopapa@yahoo.com)
4
This software is released under the MIT License.
5
*/
6
- (function(b,f,t){function a(b,a){var c={".":".ip-geo-block-","#":"#ip-geo-block-","@":"#ip_geo_block_settings_",$:"ip-geo-block-","%":"ip_geo_block_","!":"ip_geo_block_settings_"};return"undefined"!==typeof a?c[b]+a:c.$+b}function aa(b){return b.toString().replace(/[&<>"']/g,function(b){return{"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"}[b]}).replace(/&amp;(#\d{2,4}|\w{4,7});/g,"&$1;")}function k(b){return aa(b.toString().replace(/(<([^>]+)>)/ig,""))}function F(a,e){var c=b(f).width();c!==J&&(J=c,"undefined"===typeof p[a]&&(p[a]={id:!1,callback:e}),b(f).off("resize").on("resize",function(){!1!==p[a].id&&f.clearTimeout(p[a].id);p[a].time=f.setTimeout(p[a].callback,200);return!1}))}function w(c,e){e?b(a("#",c)).addClass(a("loading")):b(a("#",c)).removeClass(a("loading"))}function x(b,a){f.confirm(k(b))&&a()}function C(b,a,h){f.alert(k(a||d.msg[12].replace("%s",h)+" ("+b+")"))}function K(b,a){-1!==f.location.href.indexOf(b)&&(f.location=k(b)+(a?"&"+k(a):"")+"&ip-geo-block-auth-nonce="+D.nonce)}function m(a,e,h,q){a&&w(a,!0);e.action=d.action;e.nonce=d.nonce;b.post(d.url,e).done(function(b){h&&h(b)}).fail(function(b){C(b.status,b.responseText,e.action)}).always(function(){a&&("object"===typeof q?b.when.apply(b,q).then(function(){w(a,!1)}):w(a,!1))})}function M(b,a){m(b,{cmd:"clear-"+b,which:a},function(b){K(b.page,b.tab)})}function Q(b){m(b,{cmd:b},function(b){K(b.page,b.tab)})}function y(b){b.stopImmediatePropagation();return!1}function N(b,e){e?b.removeClass("folding-disable"):(b.children(a(".","hide")).hide(),b.addClass("folding-disable"),b.removeClass(a("dropdown")).addClass(a("dropup")))}function O(c,e,h){var q=0===c.prop("type").indexOf("checkbox")&&c.is(":checked")||0===c.prop("type").indexOf("select")&&"0"!==c.val();c.siblings('input[name^="'+a("%","settings")+'"]:checkbox').prop("disabled",!q);e.nextAll(a(".","settings-folding")).each(function(a,c){N(b(c),q&&h)})}function R(c){var e=a("@","validation_ajax_");N(c.closest("ul").next(),b(e+"1").is(":checked")||b(e+"2").is(":checked"))}function G(b){return String(b).replace(/[a-z]/gi,function(b){return String.fromCharCode(b.charCodeAt(0)+("n">b.toLowerCase()?13:-13))})}function ba(b,a){var c=new f.FileReader;c.onload=function(b){a&&a(b.target.result)};c.onerror=function(b){C("Error",b.target.error.code)};c.readAsText(b)}function S(c){var e=c.is(":checked"),h=b(a("@","public_target_rule")),d=c.closest("tr").nextAll("tr");d.find('[name^="'+a("%","settings")+'"]').prop("disabled",!e);d.find(a(".","desc")).css("opacity",e?1:.5);O(c,h,"1"===h.val()?!0:!1)}function P(c,e){c&&("string"===typeof c&&(c=JSON.parse(c)),e&&b('input[type="checkbox"]').prop("checked",!1).change(),b(a("#","import")).closest("form").deserialize(c),b(a("@","exception_admin")+","+a("@","validation_mimetype")).change(),b('select[name*="'+a("%","settings")+'"]').change(),b(a("@","validation_login")).change(),S(b(a("@","validation_public"))),R(b(a("@","validation_ajax_1"))),e&&(e=a("%","settings[providers][IPInfoDB]"),b(a("@","providers_IPInfoDB")).prop("checked",c[e]?!0:!1)))}function ca(b,a){var c=Math.ceil(b.length/a),e=[],d;for(d=0;d<c;++d){var l=d*a;e.push(b.slice(l,l+a))}return e}function z(c){"object"===typeof f.google&&(1===c?(g.drawPie(a("chart-countries")),g.drawLine(a("chart-daily"),"date")):5===c&&b(a(".","network")).each(function(a,c){g.drawStacked(b(c).attr("id"))}))}function T(b){if("object"===typeof f.google){var a=["corechart"];5===b&&a.push("bar");f.google.load("visualization","1",{packages:a,callback:function(){z(b)}});F("draw-chart."+b,function(){z(b)})}}function da(b){var a,c="undefined"!==typeof wpCookies&&wpCookies.getHash("ip-geo-block")||[];for(a in c)c.hasOwnProperty(a)&&(c[a]=c[a].replace(/[^ox\d]/g,"").split(""));"undefined"===typeof c[b]&&(c[b]=[]);return c}function A(a){var c,h,d=[];b.each(a,function(b,a){d[b]="";if("undefined"!==typeof a&&(h=a.length))for(d[b]=a[0]||"o",c=1;c<h;++c)d[b]+=a[c]||"o"});"undefined"!==typeof wpCookies&&wpCookies.setHash("ip-geo-block",d,new Date(Date.now()+2592E6),D.home+D.admin)}function ea(c){var e=da(c);b("form").on("click","h2,h3",function(){var d=b(this),q=d.closest("fieldset").data("section"),f=d.parent().nextAll(".panel-body").toggle();d.toggleClass(a("dropup")).toggleClass(a("dropdown"));(d=d.hasClass(a("dropdown")))?f.addClass(a("border")).trigger(a("show-body")):f.removeClass(a("border"));e[c][q]=d?"o":"x";A(e);z(c);return!1});b(a("#","toggle-sections")).on("click",function(){var d,f=b(a(".","field")).find("h2,h3"),g=[a("dropdown"),a("dropup")],l=f.filter("."+g[0]).length;f.each(function(h){d=b(this);d.removeClass(g.join(" ")).addClass(l?g[1]:g[0]);d=d.parent().nextAll(".panel-body").toggle(l?!1:!0);l?d.removeClass(a("border")):d.addClass(a("border")).trigger("show-body");e[c][h]=l?"x":"o"});A(e);z(c);return!1});return e}function U(c){b("body").append('<div style="display:none"><form method="POST" id="'+a("export-form")+'" action="'+d.url.replace("ajax.php","post.php")+'"><input type="hidden" name="action" value="'+d.action+'" /><input type="hidden" name="nonce" value="'+d.nonce+'" /><input type="hidden" name="cmd" value="'+c+'" /><input type="hidden" name="data" value="" id="'+a("export-data")+'"/><input type="submit" value="submit" /></form><input type="file" name="settings" id="'+a("file-dialog")+'" /></div>')}function V(b,a,d,f){b=b.cloneNode(!1);b.setAttribute("title",k(d));a=a.cloneNode(!1);a.setAttribute("class","dashicons dashicons-"+f);b.appendChild(a);return b}function W(c,e,h){b.extend(!0,b.fn.dataTable.defaults,h,{dom:"tp",serverSide:!1,autoWidth:!1,processing:!0,deferRender:!0,deferLoading:10,info:!1,lengthChange:!1,language:{emptyTable:d.i18n[1],loadingRecords:d.i18n[0],processing:d.i18n[0],zeroRecords:d.i18n[2],paginate:{first:"&laquo;",last:"&raquo;",next:"&rsaquo;",previous:"&lsaquo;"}},responsive:{details:{type:"column",target:"td:nth-child(n+2)"}},columnDefs:[{width:"1.25em",targets:0},{orderable:!1,targets:0},{searchable:!1,targets:0},{targets:[0],data:null,defaultContent:'<input type="checkbox">'}],pagingType:"full_numbers",pageLength:10,scroller:!0,scrollY:1E4,scrollCollapse:!0,drawCallback:function(c){var h=b(a("#",e.tableID)).find("td.dataTables_empty");3>c.iDraw?h.html(d.i18n[0]):3===c.iDraw&&(h.html(d.i18n[1]),h=b(a("@","search_filter")),h.val()&&h.trigger("keyup"))}});var g=b(a("#",e.tableID)).DataTable({ajax:{url:d.url,type:"POST",data:{cmd:e.ajaxCMD,action:d.action,nonce:d.nonce}},mark:!0}),k=function(){g.columns.adjust().responsive.recalc().draw(!1)};F("draw-table."+c,k);b(a("#",e.sectionID)).find(".panel-body").off(a("show-body")).on(a("show-body"),function(){k();return!1}).off("change").on("change",'th>input[type="checkbox"]',function(){var c=b(this).prop("checked");b(a("#",e.tableID)).find('td>input[type="checkbox"]').prop("checked",c);return!1});b(a("#","select-target")).off("change").on("change",function(){var c=b(this).find('input[name="'+a("target")+'"]:checked').val();g.columns(e.targetColumn).search("all"!==c?c:"").draw();return!1}).trigger("change");b(a("#","bulk-action")).off("click").on("click",function(){var h=b(this).prev().val(),f=/(<([^>]+)>)/ig,r={IP:[],AS:[]},k,q=b("table.dataTable").find("td>input:checked");if(!h)return!1;if(!q.length)return C(null,d.msg[11]),!1;q.each(function(){k=g.cell(this.parentNode).data();r.IP.push(k[e.columnIP].replace(f,""));r.AS.push(k[e.columnAS].replace(f,""))});r.IP.length&&m("loading",{cmd:h,which:r},function(d){"undefined"!==typeof d.page?K(d.page,"tab="+c):d&&(g.ajax.reload(),b(a("#",e.tableID)).find('th input[type="checkbox"]').prop("checked",!1))});return!1});b(a("@","search_filter")).off("keyup").on("keyup",function(){g.search(this.value,!1,!0,!/[A-Z]/.test(this.value)).draw();return!1});b(a("#","reset-filter")).off("click").on("click",function(){b(a("@","search_filter")).val("");g.search("").draw();return!1});b(a("@","clear_all")).off("click").on("click",function(){x(d.msg[1===c?4:5],function(){M(1===c?"cache":"logs",null)});return!1});b("table.dataTable tbody").on("click","a",function(){var a=f.location.search.slice(1).split("&"),e=a.length,d={},h;for(h=0;h<e;++h){var g=a[h].split("=");d[g[0]]=g[1]}d.tab=1===c?4:2;d.s=b(this).text().replace(/[^\w\.:\*]/,"");g=[];for(h in d)d.hasOwnProperty(h)&&g.push(h+"="+d[h]);f.open(f.location.pathname+"?"+g.join("&"),"_blank");return!1});return g}var p=[],J=b(f).width(),d=IP_GEO_BLOCK,D=IP_GEO_BLOCK_AUTH;b.fn.deserialize=function(a){return this.each(function(){var c,d=this,g={};for(c in a)if(a.hasOwnProperty(c))try{var f=decodeURIComponent(c);var k=decodeURIComponent(a[c]);g.hasOwnProperty(f)||(g[f]=[]);g[f].push(k)}catch(H){}b.each(g,function(a,e){c=b('[name="'+a+'"]:input',d).val(e);"hidden"!==c.attr("type")&&c.before('<span style="color:red">*</span>')})})};var g={dataPie:[],viewPie:[],drawPie:function(a){if("undefined"===typeof g.dataPie[a]){var c=g.dataPie[a]=new f.google.visualization.DataTable;c.addColumn("string","Country");c.addColumn("number","Requests");c=b.parseJSON(b("#"+a).attr("data-"+a));g.dataPie[a].addRows(c)}"undefined"===typeof g.viewPie[a]&&(g.viewPie[a]=new f.google.visualization.PieChart(t.getElementById(a)));"undefined"!==typeof g.dataPie[a]&&"undefined"!==typeof g.viewPie[a]&&0<b("#"+a).width()&&g.viewPie[a].draw(g.dataPie[a],{backgroundColor:{fill:"transparent"},chartArea:{left:0,top:"5%",width:"100%",height:"90%"},sliceVisibilityThreshold:.015})},dataLine:[],viewLine:[],drawLine:function(a,d){if("undefined"===typeof g.dataLine[a]){var c=g.dataLine[a]=new f.google.visualization.DataTable;c.addColumn(d,"Date");c.addColumn("number","comment");c.addColumn("number","xmlrpc");c.addColumn("number","login");c.addColumn("number","admin");c.addColumn("number","public");var e=b.parseJSON(b("#"+a).attr("data-"+a));var k=e.length;for(c=0;c<k;++c)e[c][0]=new Date(1E3*e[c][0]);g.dataLine[a].addRows(e)}"undefined"===typeof g.viewLine[a]&&(g.viewLine[a]=new f.google.visualization.LineChart(t.getElementById(a)));"undefined"!==typeof g.dataLine[a]&&"undefined"!==typeof g.viewLine[a]&&0<(c=b("#"+a).width())&&g.viewLine[a].draw(g.dataLine[a],{legend:{position:"bottom"},backgroundColor:{fill:"transparent"},hAxis:{format:"MM/dd"+("datetime"===d?" HH:mm":"")},vAxis:{textPosition:320<c?"out":"in"},chartArea:{left:320<c?"10%":0,top:"5%",width:"100%",height:"75%"}})},dataStacked:[],viewStacked:[],drawStacked:function(c){var d,h,k=b("#"+c);"undefined"===typeof g.dataStacked[c]&&(h=b.parseJSON(k.attr("data-"+c)))&&(h.unshift(["site","comment","xmlrpc","login","admin","poblic",{role:"link"}]),g.dataStacked[c]=f.google.visualization.arrayToDataTable(h));"undefined"===typeof g.viewStacked[c]&&(g.viewStacked[c]=new f.google.visualization.BarChart(t.getElementById(c)),f.google.visualization.events.addListener(g.viewStacked[c],"animationfinish",function(){var d,e,f,h=[],m=g.dataStacked[c],l=m.getNumberOfRows(),q=b(a("#","open-new")).prop("checked");for(d=0;d<l;d++)h.push({label:m.getValue(d,0),link:m.getValue(d,6)});l="http://www.w3.org/1999/xlink";k.find("text").each(function(b,a){f=a.parentNode;var c;if(c="g"===f.tagName.toLowerCase()){a:{c=a.textContent;var d,g=h.length;c=c.replace("\u2026","");for(d=0;d<g;++d)if(h.hasOwnProperty(d)&&0===h[d].label.indexOf(c)){c=d;break a}c=-1}c=-1!==(b=c)}c&&(e=t.createElementNS("http://www.w3.org/2000/svg","a"),e.setAttributeNS(l,"xlink:href",h[b].link),e.setAttributeNS(l,"title",h[b].label),e.setAttribute("target",q?"_blank":"_self"),e.setAttribute("class","site"),e.appendChild(f.removeChild(a)),f.appendChild(e),h.splice(b,1))})}));if(0<(d=k.width())&&"undefined"!==typeof g.dataStacked[c]&&"undefined"!==typeof g.viewStacked[c]){var m=a("range");var l=b.parseJSON(b("."+m).attr("data-"+m));h=g.dataStacked[c];m=40*h.getNumberOfRows();g.viewStacked[c].draw(h,{width:d,height:m+80,allowHtml:!0,isStacked:!0,legend:{position:"top"},chartArea:{top:50,left:90,width:"100%",height:m},hAxis:{minValue:0,maxValue:l[1]},backgroundColor:{fill:"transparent"},animation:{startup:!0,duration:200,easing:"out"}})}},ajaxStacked:function(c,d,h,f){c=Math.max(0,Math.min(4,c));d=5*Math.max(1,Math.min(5,d));m(null,{cmd:"restore-network",which:c,offset:d*h*f,length:d},function(c){var e,f,h,k,m;c=ca(c,d);b(a(".","network")).each(function(a,l){if("undefined"!==typeof c[a]){k=b(l).attr("id");m=g.dataStacked[k];h=Math.min(d,c[a].length);for(e=0;e<h;++e)for(f=1;5>=f;f++)m.setValue(e,f,c[a][e][f]);g.drawStacked(k)}})})}};b(function(){var c=Number(d.tab)||0,e=ea(c);b(a(".","inhibit")).on("submit",function(){return!1});switch(c){case 0:var h=a("%","settings");b('[id^="'+a("scan-")+'"]').on("click",function(){var c=b(this),d=c.attr("id"),e=c.parent();m(d.replace(/^.*(?:scan)/,"scanning"),{cmd:"scan-code",which:d.replace(a("scan-"),"")},function(b){e.children("ul").length||e.append('<ul id="'+a("code-list")+'"></ul>');e=e.children("ul").empty();for(c in b)if(b.hasOwnProperty(c)){var c=k(c);if("string"===typeof b[c])var d=k(b[c]);else d=k(b[c].code),c='<abbr title="'+k(b[c].type)+'">'+c+"</abbr>";e.append("<li>"+c+' : <span class="'+a("notice")+'">'+d+"</span></li>")}e.show("slow")});return!1});b(a("@","matching_rule")).on("change",function(){var c=this.value;b(a("@","white_list")).closest("tr").toggle("0"===c);b(a("@","black_list")).closest("tr").toggle("1"===c);return!1}).change();b(a("@","validation_mimetype")).on("change",function(c){var d=b(this),n=parseInt(d.val(),10);d.nextAll(a(".","settings-folding")).each(function(a,c){N(b(c),n===a+1||n&&2===a)});return y(c)}).change();b('select[name*="response_code"]').on("change",function(c){var d=b(this),n=parseInt(d.val()/100,10),e=d.closest("tr").nextAll("tr");if(0<=d.attr("name").indexOf("public")&&-1===parseInt(b(a("@","public_matching_rule")).val(),10))return e.each(function(a){1>=a&&b(this).hide()}),y(c);3>=n?e.each(function(a){0===a?b(this).show():1===a&&b(this).hide()}):e.each(function(a){0===a?b(this).hide():1===a&&b(this).show()});return y(c)}).change();b(a("#","decode")).on("click",function(){var c=b(a("@","signature")),d=c.val();-1===d.search(/,/)?c.val(G(f.atob(d))):c.val(f.btoa(G(d)));return!1});b(a("@","validation_login")).on("change",function(a){var c=b(this);O(c,c,h,!0);return y(a)}).change();m(null,{cmd:"get-actions"},function(c){var e,n=b(a("#","list-admin")),f=t.createElement("li"),h=t.createElement("input"),g=t.createElement("label"),l=t.createElement("dfn"),q=t.createElement("span");for(v in c)if(c.hasOwnProperty(v)){var v=k(v);if(!n.find("#"+(e=a("%",v))).size()){var p=h.cloneNode(!1);p.setAttribute("id",e);p.setAttribute("value",v);p.setAttribute("type","checkbox");var r=f.cloneNode(!1);r.appendChild(p);p=g.cloneNode(!1);p.setAttribute("for",e);p.appendChild(t.createTextNode(v));r.appendChild(p);1&c[v]&&r.appendChild(V(l,q,d.msg[6],"lock"));2&c[v]&&r.appendChild(V(l,q,d.msg[7],"unlock"));n.append(r)}}b(a(".","icon-unlock")).on("click",function(){b(a("#","list-admin")+">li").filter(function(){return!b(this).find(".dashicons-unlock").length}).toggle();return!1});b(a("@","exception_admin")).on("change",function(c){var d=b.grep(b(this).val().split(","),function(b){return""!==b.replace(/^\s+|\s+#x2F;g,"")});b(a("#","list-admin")).find("input").each(function(){var a=b(this),c=a.val();a.prop("checked",-1!==b.inArray(c,d))});return y(c)}).change();b(a("#","list-admin")).on("click","input",function(){var c=b(this);var d=b(a("@","exception_admin")),e=c.val(),n=b.grep(d.val().split(","),function(b){return""!==b.replace(/^\s+|\s+#x2F;g,"")});c=b.inArray(e,n);-1===c?n.push(e):n.splice(c,1);d.val(n.join(",")).change()});b(a(".","icon-find")).on("click",function(){var c=b(this),e=[],n=0,f,h,g,E,fa=k(d.msg[9]),u=k(c.data("target"));b(a("#","find-"+u)).empty();c.next().children(a(".","find-desc")).show();c=b(a("#","list-"+u));c.children("li").each(function(a,c){e.push(b(c).find("input").val())});m("find-"+u,{cmd:"find-"+u},function(m){for(var l in m)m.hasOwnProperty(l)&&(++n,f=k(m[l]),l=k(l),h=b.inArray(l,e),g=a("!","exception_"+u+"_"+l),E="admin"===u?f+"="+l:"/"+f+"/"+l+"/",E='<a class="ip-geo-block-icon ip-geo-block-icon-alert" href="?page=ip-geo-block&tab=4&s='+encodeURIComponent(E)+'" title="'+fa.replace("%s",E)+'" target="_blank"><span></span></a>',0>h?(e.push(l),c.prepend('<li><input id="'+g+'" value="'+l+'" type="checkbox" '+("admin"===u?"/>":"name=ip_geo_block_settings[exception]["+u+"]["+l+"] />")+'<label for="'+g+'">'+l+"</lable>"+E+"</li>")):(g=c.find("#"+g).parent(),g.find("a").length||g.append(E)));b(a("@","exception_"+u)).trigger("change");b(a("#","find-"+u)).append(' <span class="ip-geo-block-found">'+k(d.msg[8].replace("%d",n))+"</span>")});return!1})});b('input[id^="'+a("!","validation_ajax_")+'"]').on("change",function(){R(b(this))}).change();b(a("@","validation_public")).on("change",function(a){S(b(this));return y(a)}).change();b(a("@","public_matching_rule")).on("change",function(c){var d=this.value;b(a("@","public_white_list")).closest("tr").toggle("0"===d);b(a("@","public_black_list")).closest("tr").toggle("1"===d);b(a("@","public_response_code")).change().closest("tr").toggle("-1"!==d);return y(c)}).change();b(a("@","update")).on("click",function(){m("download",{cmd:"download"},function(c){var d;for(d in c)if(c.hasOwnProperty(d)){var e=c[d];for(n in e)if(e.hasOwnProperty(n)){var n=k(n);e[n].filename&&b(a("@",d+"_"+n+"_path")).val(k(e[n].filename));e[n].message&&b(a("#",d+"-"+n)).text(k(e[n].message))}}});return!1});b(a("@","save_statistics")).on("change",function(){b(a("@","validation_recdays")).prop("disabled",!b(this).prop("checked"));return!1}).trigger("change");b(a("@","validation_reclogs")).on("change",function(){var a=b(this);a.parent().parent().nextAll().find("input").prop("disabled",0===Number(a.prop("selectedIndex")))}).trigger("change");b(a("@","comment_pos")).on("change",function(){var a=b(this);a.nextAll('input[type="text"]').prop("disabled",0===Number(a.prop("selectedIndex")))}).trigger("change");U("validate");b(a("#","export")).on("click",function(){if("undefined"===typeof JSON)return C(null,k(d.msg[10])),!1;var c=h,e={};b.each(b(this).closest("form").serializeArray(),function(b,a){-1!==a.name.indexOf(c)&&(e[a.name]=a.value)});e[c+="[signature]"]=f.btoa(G(e[c]));b(a("#","export-data")).val(JSON.stringify(e));b(a("#","export-form")).submit();return!1});b(a("#","file-dialog")).on("change",function(a){if("undefined"===typeof f.FileReader)return C(null,k(d.msg[10])),!1;var b;(a=a.target.files[0])&&ba(a,function(a){a=JSON.parse(a);b=h+"[signature]";"undefined"!==typeof a[b]&&(a[b]=f.btoa(G(a[b])));m("export-import",{cmd:"validate",data:JSON.stringify(a)},function(a){P(a,!0)})});return!1});b(a("#","import")).on("click",function(){b(a("#","file-dialog")).click();return!1});b(a("#","default")).on("click",function(){x(d.msg[0],function(){m("pre-defined",{cmd:"import-default"},function(a){P(a,!0)})});return!1});b(a("#","preferred")).on("click",function(){x(d.msg[0],function(){m("pre-defined",{cmd:"import-preferred"},function(a){P(a,!1)})});return!1});b(a("@","reset_live")).on("click",function(){m("reset-live",{cmd:"reset-live"});return!1});b(a("@","create_table")).on("click",function(){x(d.msg[1],function(){Q("create-table")});return!1});b(a("@","delete_table")).on("click",function(){x(d.msg[2],function(){Q("delete-table")});return!1});b(a("#","show-info")).on("click",function(){b(a("#","wp-info")).empty();m("wp-info",{cmd:"show-info"},function(c){var d,e=[];for(d in c)c.hasOwnProperty(d)&&e.push("- "+d+" "+c[d]);b(a("#","wp-info")).html('<textarea class="regular-text code" rows="'+e.length+'">'+e.join("\n")+"</textarea>").find("textarea").select();return!1})});b('select[name^="'+h+'"]').on("change",function(){var c=b(this),d,e=a(".","desc");c.next(e).empty();(d=c.children("option:selected").data("desc"))&&c.next(e).html(b.parseHTML(d));O(c,c,h,!0);return!1}).change();b(a(".","icon-cycle")).on("click",function(){var c=b(this).nextAll("li"),d=c.find(a("@","exception_admin"));c=c.find("input:checkbox").filter(":visible");var e=c.filter(":checked").length;c.prop("checked",!e);if(d.length)if(e)d.val("");else{var f=[];c.each(function(a,c){f.push(b(c).val())});d.val(f.join(","))}b(this).blur();return!1});b(a(".","settings-folding>dfn")).on("click",function(){var c=a("drop"),d=b(this).parent();d.children(a(".","hide")).toggle();d.toggleClass(c+"up").toggleClass(c+"down");d.hasClass(c+"up")&&d.children("div").hide();return!1});b("#submit").on("click",function(){var c=b(a("@","signature")),d=c.val();-1!==d.indexOf(",")&&c.val(f.btoa(G(d)));return!0});break;case 1:T(c);var q=0;b(a("#","sort-slug")).on("click",function(){var a=b(this).closest("ol"),c=a.children("li");(q=!q)?c.sort(function(a,c){return b(a).text()>b(c).text()}):c.sort(function(a,c){return parseInt(b(a).text().replace(/^.*\((\d+)\)#x2F;,"$1"),10)<=parseInt(b(c).text().replace(/^.*\((\d+)\)#x2F;,"$1"),10)});a.children("li").remove();c.appendTo(a)});b(a("@","clear_statistics")).on("click",function(){x(d.msg[3],function(){M("statistics",null)});return!1});b(a("@","clear_logs")).on("click",function(){x(d.msg[5],function(){M("logs",null)});return!1});W(c,{tableID:"statistics-cache",ajaxCMD:"restore-cache",sectionID:"section-2",targetColumn:4,columnIP:1,columnAS:3},{columns:[{title:'<input type="checkbox">'},{title:d.i18n[3]},{title:d.i18n[4]},{title:d.i18n[5]},{title:d.i18n[6]},{title:d.i18n[7]},{title:d.i18n[8]},{title:d.i18n[9]}],columnDefs:[{responsivePriority:0,targets:0},{responsivePriority:1,targets:1},{responsivePriority:2,targets:2},{responsivePriority:6,targets:3},{responsivePriority:7,targets:4},{responsivePriority:3,targets:5},{responsivePriority:4,targets:6},{responsivePriority:5,targets:7},{className:"all",targets:[0,1,2,5]}]});break;case 4:var p={tableID:"validation-logs",sectionID:"section-0",targetColumn:6,columnIP:3,columnAS:5},l={columns:[{title:'<input type="checkbox">'},{title:""},{title:d.i18n[10]},{title:d.i18n[3]},{title:d.i18n[4]},{title:d.i18n[5]},{title:d.i18n[7]},{title:d.i18n[11]},{title:d.i18n[12]},{title:d.i18n[13]},{title:d.i18n[14]},{title:d.i18n[15]}],columnDefs:[{responsivePriority:11,targets:0},{responsivePriority:0,targets:1},{responsivePriority:1,targets:2},{responsivePriority:2,targets:3},{responsivePriority:3,targets:4},{responsivePriority:6,targets:5},{responsivePriority:4,targets:6},{responsivePriority:5,targets:7},{responsivePriority:7,targets:8},{responsivePriority:8,targets:9},{responsivePriority:9,targets:10},{responsivePriority:10,targets:11},{visible:!1,targets:1},{className:"all",targets:[0,2,3,4]},{className:"none",targets:[8,9,10,11]}]},H=null,r=null,z=b(a("#","live-loading")),I=null,w=function(){H&&(f.clearTimeout(H),H=null);r&&(z.removeClass(a("live-timer")),f.clearTimeout(r),r=null)},D=function(){w();m("live-loading",{cmd:"live-start"},function(a){if(a.error)C(null,a.error);else if(a.data.length){var b,c=a.data.length;for(b=0;b<c;b++)I.row.add(a.data[b]);I.draw(!1)}H=f.setTimeout(D,1E3*d.interval)})},F=function(a,b){w();m(null,{cmd:a||"live-stop",callback:b})},J=function(){F("live-pause",function(){z.addClass(a("live-timer"));r=f.setTimeout(function(){w();b(a("#","live-log-stop")).prop("checked",!0)},1E3*d.timeout)})},B=a(""),X=function(a,c,d){-1!==c[7].indexOf("passed")?b(a).addClass(B+d+"passed"):b(a).addClass(B+d+"blocked")},Y=b(a("#","live-log")),Z=b(a("#","live-update"));b(a("#","validation-logs")).on("animationend",function(){b(this).find('tr[class*="'+B+'new"]').each(function(){var a=b(this);-1!==a.prop("class").indexOf("passed")?a.addClass(B+"passed").removeClass(B+"new-passed"):a.addClass(B+"blocked").removeClass(B+"new-blocked")});return!1});Y.on("change",function(){switch(b('input[name="'+a("live-log")+'"]:checked').val()){case "start":D();break;case "pause":J();break;case "stop":F()}});Z.on("change",function(){var d=Y.closest("tr"),f=Z.prop("checked");e[c][1]=f?"o":"x";A(e);I&&I.clear().destroy();f?(d.show().next().next().next().nextAll().hide(),p.ajaxCMD="live-stop",l.order=[1,"desc"],l.createdRow=function(a,b){X(a,b,"new-")}):(d.hide().next().next().next().nextAll().show(),p.ajaxCMD="restore-logs",l.order=[0,""],l.createdRow=function(a,b){X(a,b,"")});b(a("#","live-log-stop")).trigger("click");I=W(c,p,l);return!1}).trigger("change");U("export-logs");b(a("#","export-logs")).on("click",function(){b(a("#","export-form")).submit();return!1});break;case 2:b(f).on(a("gmap-error"),function(){m(null,{cmd:"gmap-error"},function(a){K(a.page,a.tab)})});var L=b(a("#","map"));"object"===typeof f.google?L.each(function(){b(this).GmapRS()}):L.each(function(){b(this).empty().html('<iframe src="'+d.altgmap+'?output=embed" frameborder="0" style="width:100%; height:400px; border:0" allowfullscreen></iframe>')});b('select[id^="'+a("!","service")+'"]').on("change",function(){e[c][3]=b(this).prop("selectedIndex");A(e)}).change();b(a("@","get_location")).on("click",function(){var c=b(a("#","whois")),d=b(a("@","ip_address")).val();if(d){c.hide().empty();var e=b.whois(d,function(d){var e,f="";for(e=0;e<d.length;++e)f+="<tr><td>"+d[e].name+"</td><td>"+d[e].value+"</td></tr>";c.html('<fieldset id="'+a("section-1")+'" class="'+a("field")+' panel panel-default" data-section="1"><legend class="panel-heading"><h3 id="'+a("whois-title")+'" class="'+a("dropdown")+'">Whois</h3></legend><div class="panel-body '+a("border")+'"><table class="'+a("table")+'">'+f+"</table></div></fieldset>").fadeIn("slow");b(a("#","whois-title")).on("click",function(){var c=b(this);c.parent().nextAll().toggle();c.toggleClass(a("dropup")).toggleClass(a("dropdown"));return!1})});m("loading",{cmd:"search",ip:d,which:b(a("@","service")).val()},function(b){var c="",e=k(b.latitude||"0"),g=k(b.longitude||"0"),h=b.latitude||b.longitude?8:2;for(l in b)if(b.hasOwnProperty(l)){var l=k(l);c+='<li><span class="'+a("title")+'">'+l+' : </span><span class="'+a("result")+'">'+k(b[l])+"</span></li>"}"object"===typeof f.google?L.GmapRS("addMarker",{latitude:e,longitude:g,title:d,content:"<ul>"+c+"</ul>",show:!0,zoom:h}):L.css({height:"600px",backgroundColor:"transparent"}).empty().html('<ul style="margin-top:0; margin-left:1em;"><li><span class="'+a("title")+'">IP address : </span><span class="'+a("result")+'">'+k(d)+"</span></li>"+c+'</ul><iframe src="//maps.google.com/maps?q='+e+","+g+"&z="+h+'&output=embed" frameborder="0" style="width:100%; height:400px; border:0" allowfullscreen></iframe>')},[e])}return!1});b(a("@","ip_address")).val()&&b(a("@","get_location")).click();break;case 5:T(c),b("input[name="+a("duration")+"]:radio").on("click",function(){var a=b('div[class*="paginate"]').find('a[class*="current"]').text();e[c][2]=b(this).val()||0;e[c][3]=e[c][3]||2;e[c][4]=e[c][4]||1;A(e);g.ajaxStacked(e[c][2],e[c][3],e[c][4],a-1)}),b(a("#","open-new")).on("change",function(){var d=b(this).prop("checked");e[c][1]=d?"o":"x";A(e);b(a("#","section-0 svg")).find("a").each(function(){this.setAttribute("target",d?"_blank":"_self")})}),b(a("#","apply-layout")).on("click",function(){var d=b(a("#","select-layout"));e[c][3]=d.find('select[name="rows"] option:selected').val();e[c][4]=d.find('select[name="cols"] option:selected').val();A(e)}),b("ul.wp-submenu>li.wp-first-item").removeClass("current").next().addClass("current")}})})(jQuery,window,document);
3
Copyright (c) 2013-2018 tokkonopapa (tokkonopapa@yahoo.com)
4
This software is released under the MIT License.
5
*/
6
+ (function(b,f,t){function a(b,a){var c={".":".ip-geo-block-","#":"#ip-geo-block-","@":"#ip_geo_block_settings_",$:"ip-geo-block-","%":"ip_geo_block_","!":"ip_geo_block_settings_"};return"undefined"!==typeof a?c[b]+a:c.$+b}function M(b){return b.toString().replace(/[&<>"']/g,function(b){return{"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"}[b]}).replace(/&amp;(#\d{2,4}|\w{4,7});/g,"&$1;")}function k(b){return M(b.toString().replace(/(<([^>]+)>)/ig,""))}function E(a,e){var c=b(f).width();c!==F&&(F=c,"undefined"===typeof p[a]&&(p[a]={id:!1,callback:e}),b(f).off("resize").on("resize",function(){!1!==p[a].id&&f.clearTimeout(p[a].id);p[a].time=f.setTimeout(p[a].callback,200);return!1}))}function w(c,e){e?b(a("#",c)).addClass(a("loading")):b(a("#",c)).removeClass(a("loading"))}function x(b,a){f.confirm(k(b))&&a()}function D(b,a,g){f.alert(k(a||d.msg[12].replace("%s",g)+" ("+b+")"))}function J(b,a){-1!==f.location.href.indexOf(b)&&(f.location=k(b)+(a?"&"+k(a):"")+"&ip-geo-block-auth-nonce="+K.nonce)}function m(a,e,g,q){a&&w(a,!0);e.action=d.action;e.nonce=d.nonce;b.post(d.url,e).done(function(b){g&&g(b)}).fail(function(b){D(b.status,b.responseText,e.action)}).always(function(){a&&("object"===typeof q?b.when.apply(b,q).then(function(){w(a,!1)}):w(a,!1))})}function N(b,a){m(b,{cmd:"clear-"+b,which:a},function(b){J(b.page,b.tab)})}function R(b){m(b,{cmd:b},function(b){J(b.page,b.tab)})}function y(b){b.stopImmediatePropagation();return!1}function O(b,e){e?b.removeClass("folding-disable"):(b.children(a(".","hide")).hide(),b.addClass("folding-disable"),b.removeClass(a("dropdown")).addClass(a("dropup")))}function P(c,e,g){var q=0===c.prop("type").indexOf("checkbox")&&c.is(":checked")||0===c.prop("type").indexOf("select")&&"0"!==c.val();c.siblings('input[name^="'+a("%","settings")+'"]:checkbox').prop("disabled",!q);e.nextAll(a(".","settings-folding")).each(function(a,c){O(b(c),q&&g)})}function S(c){var e=a("@","validation_ajax_");O(c.closest("ul").next(),b(e+"1").is(":checked")||b(e+"2").is(":checked"))}function G(b){return String(b).replace(/[a-z]/gi,function(b){return String.fromCharCode(b.charCodeAt(0)+("n">b.toLowerCase()?13:-13))})}function ba(b,a){var c=new f.FileReader;c.onload=function(b){a&&a(b.target.result)};c.onerror=function(b){D("Error",b.target.error.code)};c.readAsText(b)}function T(c){var e=c.is(":checked"),g=b(a("@","public_target_rule")),d=c.closest("tr").nextAll("tr");d.find('[name^="'+a("%","settings")+'"]').prop("disabled",!e);d.find(a(".","desc")).css("opacity",e?1:.5);P(c,g,"1"===g.val()?!0:!1)}function Q(c,e){c&&("string"===typeof c&&(c=JSON.parse(c)),e&&b('input[type="checkbox"]').prop("checked",!1).change(),b(a("#","import")).closest("form").deserialize(c),b(a("@","exception_admin")+","+a("@","validation_mimetype")).change(),b('select[name*="'+a("%","settings")+'"]').change(),b(a("@","validation_login")).change(),T(b(a("@","validation_public"))),S(b(a("@","validation_ajax_1"))),e&&(e=a("%","settings[providers][IPInfoDB]"),b(a("@","providers_IPInfoDB")).prop("checked",c[e]?!0:!1)))}function ca(b,a){var c=Math.ceil(b.length/a),e=[],d;for(d=0;d<c;++d){var l=d*a;e.push(b.slice(l,l+a))}return e}function z(c){"object"===typeof f.google&&(1===c?b(a("#","chart-countries")).length&&(h.drawPie(a("chart-countries")),h.drawLine(a("chart-daily"),"date")):5===c&&b(a(".","network")).each(function(a,c){h.drawStacked(b(c).attr("id"))}))}function U(b){if("object"===typeof f.google){var a=["corechart"];5===b&&a.push("bar");f.google.load("visualization","1",{packages:a,callback:function(){z(b)}});E("draw-chart."+b,function(){z(b)})}}function da(b){var a,c="undefined"!==typeof wpCookies&&wpCookies.getHash("ip-geo-block")||[];for(a in c)c.hasOwnProperty(a)&&(c[a]=c[a].replace(/[^ox\d]/g,"").split(""));"undefined"===typeof c[b]&&(c[b]=[]);return c}function A(a){var c,g,d=[];b.each(a,function(b,a){d[b]="";if("undefined"!==typeof a&&(g=a.length))for(d[b]=a[0]||"o",c=1;c<g;++c)d[b]+=a[c]||"o"});"undefined"!==typeof wpCookies&&wpCookies.setHash("ip-geo-block",d,new Date(Date.now()+2592E6),K.home+K.admin)}function ea(c){var e=da(c);b("form").on("click","h2,h3",function(){var d=b(this),q=d.closest("fieldset").data("section"),f=d.parent().nextAll(".panel-body").toggle();d.toggleClass(a("dropup")).toggleClass(a("dropdown"));(d=d.hasClass(a("dropdown")))?f.addClass(a("border")).trigger(a("show-body")):f.removeClass(a("border"));e[c][q]=d?"o":"x";A(e);z(c);return!1});b(a("#","toggle-sections")).on("click",function(){var d,f=b(a(".","field")).find("h2,h3"),h=[a("dropdown"),a("dropup")],l=f.filter("."+h[0]).length;f.each(function(g){d=b(this);d.removeClass(h.join(" ")).addClass(l?h[1]:h[0]);d=d.parent().nextAll(".panel-body").toggle(l?!1:!0);l?d.removeClass(a("border")):d.addClass(a("border")).trigger("show-body");e[c][g]=l?"x":"o"});A(e);z(c);return!1});return e}function V(c){b("body").append('<div style="display:none"><form method="POST" id="'+a("export-form")+'" action="'+d.url.replace("ajax.php","post.php")+'"><input type="hidden" name="action" value="'+d.action+'" /><input type="hidden" name="nonce" value="'+d.nonce+'" /><input type="hidden" name="cmd" value="'+c+'" /><input type="hidden" name="data" value="" id="'+a("export-data")+'"/><input type="submit" value="submit" /></form><input type="file" name="settings" id="'+a("file-dialog")+'" /></div>')}function W(b,a,d,f){b=b.cloneNode(!1);b.setAttribute("title",k(d));a=a.cloneNode(!1);a.setAttribute("class","dashicons dashicons-"+f);b.appendChild(a);return b}function X(c,e,g){b.extend(!0,b.fn.dataTable.defaults,g,{dom:"tp",serverSide:!1,autoWidth:!1,processing:!0,deferRender:!0,deferLoading:10,info:!1,lengthChange:!1,language:{emptyTable:d.i18n[1],loadingRecords:d.i18n[0],processing:d.i18n[0],zeroRecords:d.i18n[2],paginate:{first:"&laquo;",last:"&raquo;",next:"&rsaquo;",previous:"&lsaquo;"}},responsive:{details:{type:"column",target:"td:nth-child(n+2)"}},columnDefs:[{width:"1.25em",targets:0},{orderable:!1,targets:0},{searchable:!1,targets:0},{targets:[0],data:null,defaultContent:'<input type="checkbox">'}],pagingType:"full_numbers",pageLength:10,scroller:!0,scrollY:1E4,scrollCollapse:!0,drawCallback:function(c){var g=b(a("#",e.tableID)).find("td.dataTables_empty");3>c.iDraw?g.html(d.i18n[0]):3===c.iDraw&&(g.html(d.i18n[1]),g=b(a("@","search_filter")),g.val()&&g.trigger("keyup"))}});var h=b(a("#",e.tableID)).DataTable({ajax:{url:d.url,type:"POST",data:{cmd:e.ajaxCMD,action:d.action,nonce:d.nonce}},mark:!0}),k=function(){h.columns.adjust().responsive.recalc().draw(!1)};E("draw-table."+c,k);b(a("#",e.sectionID)).find(".panel-body").off(a("show-body")).on(a("show-body"),function(){k();return!1}).off("change").on("change",'th>input[type="checkbox"]',function(){var c=b(this).prop("checked");b(a("#",e.tableID)).find('td>input[type="checkbox"]').prop("checked",c);return!1});b(a("#","select-target")).off("change").on("change",function(){var c=b(this).find('input[name="'+a("target")+'"]:checked').val();h.columns(e.targetColumn).search("all"!==c?c:"").draw();return!1}).trigger("change");b(a("#","bulk-action")).off("click").on("click",function(){var g=b(this).prev().val(),f=/(<([^>]+)>)/ig,r={IP:[],AS:[]},k,q=b("table.dataTable").find("td>input:checked");if(!g)return!1;if(!q.length)return D(null,d.msg[11]),!1;q.each(function(){k=h.cell(this.parentNode).data();r.IP.push(k[e.columnIP].replace(f,""));r.AS.push(k[e.columnAS].replace(f,""))});r.IP.length&&m("loading",{cmd:g,which:r},function(d){"undefined"!==typeof d.page?J(d.page,"tab="+c):d&&(h.ajax.reload(),b(a("#",e.tableID)).find('th input[type="checkbox"]').prop("checked",!1))});return!1});b(a("@","search_filter")).off("keyup").on("keyup",function(){h.search(this.value,!1,!0,!/[A-Z]/.test(this.value)).draw();return!1});b(a("#","reset-filter")).off("click").on("click",function(){b(a("@","search_filter")).val("");h.search("").draw();return!1});b(a("@","clear_all")).off("click").on("click",function(){x(d.msg[1===c?4:5],function(){N(1===c?"cache":"logs",null)});return!1});b("table.dataTable tbody").on("click","a",function(){var a=f.location.search.slice(1).split("&"),e=a.length,d={},g;for(g=0;g<e;++g){var h=a[g].split("=");d[h[0]]=h[1]}d.tab=1===c?4:2;d.s=b(this).text().replace(/[^\w\.:\*]/,"");h=[];for(g in d)d.hasOwnProperty(g)&&h.push(g+"="+d[g]);f.open(f.location.pathname+"?"+h.join("&"),"_blank");return!1});return h}var p=[],F=b(f).width(),d=IP_GEO_BLOCK,K=IP_GEO_BLOCK_AUTH;b.fn.deserialize=function(a){return this.each(function(){var c,d=this,h={};for(c in a)if(a.hasOwnProperty(c))try{var f=decodeURIComponent(c);var k=decodeURIComponent(a[c]);h.hasOwnProperty(f)||(h[f]=[]);h[f].push(k)}catch(H){}b.each(h,function(a,e){c=b('[name="'+a+'"]:input',d).val(e);"hidden"!==c.attr("type")&&c.before('<span style="color:red">*</span>')})})};var h={dataPie:[],viewPie:[],drawPie:function(a){if("undefined"===typeof h.dataPie[a]){var c=h.dataPie[a]=new f.google.visualization.DataTable;c.addColumn("string","Country");c.addColumn("number","Requests");c=b.parseJSON(b("#"+a).attr("data-"+a));h.dataPie[a].addRows(c)}"undefined"===typeof h.viewPie[a]&&(h.viewPie[a]=new f.google.visualization.PieChart(t.getElementById(a)));"undefined"!==typeof h.dataPie[a]&&"undefined"!==typeof h.viewPie[a]&&0<b("#"+a).width()&&h.viewPie[a].draw(h.dataPie[a],{backgroundColor:{fill:"transparent"},chartArea:{left:0,top:"5%",width:"100%",height:"90%"},sliceVisibilityThreshold:.015})},dataLine:[],viewLine:[],drawLine:function(a,d){if("undefined"===typeof h.dataLine[a]){var c=h.dataLine[a]=new f.google.visualization.DataTable;c.addColumn(d,"Date");c.addColumn("number","comment");c.addColumn("number","xmlrpc");c.addColumn("number","login");c.addColumn("number","admin");c.addColumn("number","public");var e=b.parseJSON(b("#"+a).attr("data-"+a));var k=e.length;for(c=0;c<k;++c)e[c][0]=new Date(1E3*e[c][0]);h.dataLine[a].addRows(e)}"undefined"===typeof h.viewLine[a]&&(h.viewLine[a]=new f.google.visualization.LineChart(t.getElementById(a)));"undefined"!==typeof h.dataLine[a]&&"undefined"!==typeof h.viewLine[a]&&0<(c=b("#"+a).width())&&h.viewLine[a].draw(h.dataLine[a],{legend:{position:"bottom"},backgroundColor:{fill:"transparent"},hAxis:{format:"MM/dd"+("datetime"===d?" HH:mm":"")},vAxis:{textPosition:320<c?"out":"in"},chartArea:{left:320<c?"10%":0,top:"5%",width:"100%",height:"75%"}})},dataStacked:[],viewStacked:[],drawStacked:function(c){var d,g,k=b("#"+c);"undefined"===typeof h.dataStacked[c]&&(g=b.parseJSON(k.attr("data-"+c)))&&(g.unshift(["site","comment","xmlrpc","login","admin","poblic",{role:"link"}]),h.dataStacked[c]=f.google.visualization.arrayToDataTable(g));"undefined"===typeof h.viewStacked[c]&&(h.viewStacked[c]=new f.google.visualization.BarChart(t.getElementById(c)),f.google.visualization.events.addListener(h.viewStacked[c],"animationfinish",function(){var d,e,f,g=[],m=h.dataStacked[c],l=m.getNumberOfRows(),q=b(a("#","open-new")).prop("checked");for(d=0;d<l;d++)g.push({label:m.getValue(d,0),link:m.getValue(d,6)});l="http://www.w3.org/1999/xlink";k.find("text").each(function(b,a){f=a.parentNode;var c;if(c="g"===f.tagName.toLowerCase()){a:{c=a.textContent;var d,h=g.length;c=c.replace("\u2026","");for(d=0;d<h;++d)if(g.hasOwnProperty(d)&&0===g[d].label.indexOf(c)){c=d;break a}c=-1}c=-1!==(b=c)}c&&(e=t.createElementNS("http://www.w3.org/2000/svg","a"),e.setAttributeNS(l,"xlink:href",g[b].link),e.setAttributeNS(l,"title",g[b].label),e.setAttribute("target",q?"_blank":"_self"),e.setAttribute("class","site"),e.appendChild(f.removeChild(a)),f.appendChild(e),g.splice(b,1))})}));if(0<(d=k.width())&&"undefined"!==typeof h.dataStacked[c]&&"undefined"!==typeof h.viewStacked[c]){var m=a("range");var l=b.parseJSON(b("."+m).attr("data-"+m));g=h.dataStacked[c];m=40*g.getNumberOfRows();h.viewStacked[c].draw(g,{width:d,height:m+80,allowHtml:!0,isStacked:!0,legend:{position:"top"},chartArea:{top:50,left:90,width:"100%",height:m},hAxis:{minValue:0,maxValue:l[1]},backgroundColor:{fill:"transparent"},animation:{startup:!0,duration:200,easing:"out"}})}},ajaxStacked:function(c,d,f,k){c=Math.max(0,Math.min(4,c));d=5*Math.max(1,Math.min(5,d));m(null,{cmd:"restore-network",which:c,offset:d*f*k,length:d},function(c){var e,f,g,k,m;c=ca(c,d);b(a(".","network")).each(function(a,l){if("undefined"!==typeof c[a]){k=b(l).attr("id");m=h.dataStacked[k];g=Math.min(d,c[a].length);for(e=0;e<g;++e)for(f=1;5>=f;f++)m.setValue(e,f,c[a][e][f]);h.drawStacked(k)}})})}};b(function(){var c=Number(d.tab)||0,e=ea(c);b(a(".","inhibit")).on("submit",function(){return!1});switch(c){case 0:var g=a("%","settings");b('[id^="'+a("scan-")+'"]').on("click",function(){var c=b(this),d=c.attr("id"),e=c.parent();m(d.replace(/^.*(?:scan)/,"scanning"),{cmd:"scan-code",which:d.replace(a("scan-"),"")},function(b){e.children("ul").length||e.append('<ul id="'+a("code-list")+'"></ul>');e=e.children("ul").empty();for(c in b)if(b.hasOwnProperty(c)){var c=k(c);if("string"===typeof b[c])var d=k(b[c]);else d=k(b[c].code),c='<abbr title="'+k(b[c].type)+'">'+c+"</abbr>";e.append("<li>"+c+' : <span class="'+a("notice")+'">'+d+"</span></li>")}e.show("slow")});return!1});b(a("@","matching_rule")).on("change",function(){var c=this.value;b(a("@","white_list")).closest("tr").toggle("0"===c);b(a("@","black_list")).closest("tr").toggle("1"===c);return!1}).change();b(a(".","icon-cidr")).on("click",function(){var c=b(a("#","admin-styles-css")).get(0).href,d=f.open("about:blank","","width=560,height=170");c=c.slice(0,c.lastIndexOf("css/"));d.document.write('<!DOCTYPE html><html lang=en><meta charset=utf-8><title>CIDR calculator for IPv4 / IPv6</title><link href="'+c+'css/cidr.min.css" rel=stylesheet><div class="row container"><div class=row id=i><fieldset class="col span_11"><legend>Range <input id=a type=button value=Clear tabindex=1></legend><textarea id=c name=range placeholder="192.168.0.0 - 192.168.255.255" rows=5 wrap=off tabindex=2></textarea></fieldset><ul class="col span_2" id=h><li class=row><input id=e type=button value=&rarr; class="col span_24" tabindex=3><li class=row><input id=f type=button value=&larr; class="col span_24" tabindex=6></ul><fieldset class="col span_11"><legend>CIDR <input id=b type=button value=Clear tabindex=4></legend><textarea id=d name=cidr placeholder=192.168.0.0/16 rows=5 wrap=off tabindex=5></textarea></fieldset></div><div class=row id=j><span class=col id=g>\u00a0</span></div></div><script src="'+c+'js/cidr.min.js">\x3c/script>');d.document.close();return!1});b(a("@","validation_mimetype")).on("change",function(c){var d=b(this),n=parseInt(d.val(),10);d.nextAll(a(".","settings-folding")).each(function(a,c){O(b(c),n===a+1||n&&2===a)});return y(c)}).change();b('select[name*="response_code"]').on("change",function(c){var d=b(this),n=parseInt(d.val()/100,10),e=d.closest("tr").nextAll("tr");if(0<=d.attr("name").indexOf("public")&&-1===parseInt(b(a("@","public_matching_rule")).val(),10))return e.each(function(a){1>=a&&b(this).hide()}),y(c);3>=n?e.each(function(a){0===a?b(this).show():1===a&&b(this).hide()}):e.each(function(a){0===a?b(this).hide():1===a&&b(this).show()});return y(c)}).change();b(a("#","decode")).on("click",function(){var c=b(a("@","signature")),d=c.val();-1===d.search(/,/)?c.val(G(f.atob(d))):c.val(f.btoa(G(d)));return!1});b(a("@","validation_login")).on("change",function(a){var c=b(this);P(c,c,g,!0);return y(a)}).change();m(null,{cmd:"get-actions"},function(c){var e,n=b(a("#","list-admin")),f=t.createElement("li"),h=t.createElement("input"),g=t.createElement("label"),l=t.createElement("dfn"),q=t.createElement("span");for(v in c)if(c.hasOwnProperty(v)){var v=k(v);if(!n.find("#"+(e=a("!","exception_admin_"+v))).size()){var p=h.cloneNode(!1);p.setAttribute("id",e);p.setAttribute("value",v);p.setAttribute("type","checkbox");var r=f.cloneNode(!1);r.appendChild(p);p=g.cloneNode(!1);p.setAttribute("for",e);p.appendChild(t.createTextNode(v));r.appendChild(p);1&c[v]&&r.appendChild(W(l,q,d.msg[6],"lock"));2&c[v]&&r.appendChild(W(l,q,d.msg[7],"unlock"));n.append(r)}}b(a(".","icon-unlock")).on("click",function(){b(a("#","list-admin")+">li").filter(function(){return!b(this).find(".dashicons-unlock").length}).toggle();return!1});b(a("@","exception_admin")).on("change",function(c){var d=b.grep(b(this).val().split(","),function(b){return""!==b.replace(/^\s+|\s+#x2F;g,"")});b(a("#","list-admin")).find("input").each(function(){var a=b(this),c=a.val();a.prop("checked",-1!==b.inArray(c,d))});return y(c)}).change();b(a("#","list-admin")).on("click","input",function(){var c=b(this);var d=b(a("@","exception_admin")),e=c.val(),n=b.grep(d.val().split(","),function(b){return""!==b.replace(/^\s+|\s+#x2F;g,"")});c=b.inArray(e,n);-1===c?n.push(e):n.splice(c,1);d.val(n.join(",")).change()});b(a(".","icon-find")).on("click",function(){var c=b(this),e=[],n=0,f,h,C,g,fa=k(d.msg[9]),u=k(c.data("target"));b(a("#","find-"+u)).empty();c.next().children(a(".","find-desc")).show();c=b(a("#","list-"+u));c.children("li").each(function(a,c){e.push(b(c).find("input").val())});m("find-"+u,{cmd:"find-"+u},function(m){for(var l in m)m.hasOwnProperty(l)&&(++n,f=k(m[l]),l=k(l),h=b.inArray(l,e),C=a("!","exception_"+u+"_"+l),g="admin"===u?f+"="+l:"/"+f+"/"+l+"/",g='<a class="ip-geo-block-icon ip-geo-block-icon-alert" href="'+K.sites[0]+"options-general.php?page=ip-geo-block&tab=4&s="+encodeURIComponent(g)+'" title="'+fa.replace("%s",g)+'" target="_blank"><span></span></a>',0>h?(e.push(l),c.prepend('<li><input id="'+C+'" value="'+l+'" type="checkbox" '+("admin"===u?"/>":"name=ip_geo_block_settings[exception]["+u+"]["+l+"] />")+'<label for="'+C+'">'+l+"</lable>"+g+"</li>")):(C=c.find("#"+C).parent(),C.find("a").length||C.append(g)));b(a("@","exception_"+u)).trigger("change");b(a("#","find-"+u)).append(' <span class="ip-geo-block-found">'+k(d.msg[8].replace("%d",n))+"</span>")});return!1})});b('input[id^="'+a("!","validation_ajax_")+'"]').on("change",function(){S(b(this))}).change();b(a("@","validation_public")).on("change",function(a){T(b(this));return y(a)}).change();b(a("@","public_matching_rule")).on("change",function(c){var d=this.value;b(a("@","public_white_list")).closest("tr").toggle("0"===d);b(a("@","public_black_list")).closest("tr").toggle("1"===d);b(a("@","public_response_code")).change().closest("tr").toggle("-1"!==d);return y(c)}).change();b(a("@","update")).on("click",function(){m("download",{cmd:"download"},function(c){var d;for(d in c)if(c.hasOwnProperty(d)){var e=c[d];for(n in e)if(e.hasOwnProperty(n)){var n=k(n);e[n].filename&&b(a("@",d+"_"+n+"_path")).val(k(e[n].filename));e[n].message&&b(a("#",d+"-"+n)).text(k(e[n].message))}}});return!1});b(a("@","save_statistics")).on("change",function(){b(a("@","validation_recdays")).prop("disabled",!b(this).prop("checked"));return!1}).trigger("change");b(a("@","validation_reclogs")).on("change",function(){var a=b(this);a.parent().parent().nextAll().find("input").prop("disabled",0===Number(a.prop("selectedIndex")))}).trigger("change");b(a("@","comment_pos")).on("change",function(){var a=b(this);a.nextAll('input[type="text"]').prop("disabled",0===Number(a.prop("selectedIndex")))}).trigger("change");V("validate");b(a("#","export")).on("click",function(){if("undefined"===typeof JSON)return D(null,k(d.msg[10])),!1;var c=g,e={};b.each(b(this).closest("form").serializeArray(),function(b,a){-1!==a.name.indexOf(c)&&(e[a.name]=a.value)});e[c+="[signature]"]=f.btoa(G(e[c]));b(a("#","export-data")).val(JSON.stringify(e));b(a("#","export-form")).submit();return!1});b(a("#","file-dialog")).on("change",function(a){if("undefined"===typeof f.FileReader)return D(null,k(d.msg[10])),!1;var b;(a=a.target.files[0])&&ba(a,function(a){a=JSON.parse(a);b=g+"[signature]";"undefined"!==typeof a[b]&&(a[b]=f.btoa(G(a[b])));m("export-import",{cmd:"validate",data:JSON.stringify(a)},function(a){Q(a,!0)})});return!1});b(a("#","import")).on("click",function(){b(a("#","file-dialog")).click();return!1});b(a("#","default")).on("click",function(){x(d.msg[0],function(){m("pre-defined",{cmd:"import-default"},function(a){Q(a,!0)})});return!1});b(a("#","preferred")).on("click",function(){x(d.msg[0],function(){m("pre-defined",{cmd:"import-preferred"},function(a){Q(a,!1)})});return!1});b(a("@","reset_live")).on("click",function(){m("reset-live",{cmd:"reset-live"});return!1});b(a("@","create_table")).on("click",function(){x(d.msg[1],function(){R("create-table")});return!1});b(a("@","delete_table")).on("click",function(){x(d.msg[2],function(){R("delete-table")});return!1});b(a("#","show-info")).on("click",function(){b(a("#","wp-info")).empty();m("wp-info",{cmd:"show-info"},function(c){var d,e=[];for(d in c)c.hasOwnProperty(d)&&e.push("- "+d+" "+c[d]);b(a("#","wp-info")).html('<textarea class="regular-text code" rows="'+e.length+'">'+e.join("\n")+"</textarea>").find("textarea").select();return!1})});b('select[name^="'+g+'"]').on("change",function(){var c=b(this),d,e=a(".","desc");c.next(e).empty();(d=c.children("option:selected").data("desc"))&&c.next(e).html(b.parseHTML(d));P(c,c,g,!0);return!1}).change();b(a(".","icon-cycle")).on("click",function(){var c=b(this).nextAll("li"),d=c.find(a("@","exception_admin"));c=c.find("input:checkbox").filter(":visible");var e=c.filter(":checked").length;c.prop("checked",!e);if(d.length)if(e)d.val("");else{var f=[];c.each(function(a,c){f.push(b(c).val())});d.val(f.join(","))}b(this).blur();return!1});b(a(".","settings-folding>dfn")).on("click",function(){var c=a("drop"),d=b(this).parent();d.children(a(".","hide")).toggle();d.toggleClass(c+"up").toggleClass(c+"down");d.hasClass(c+"up")&&d.children("div").hide();return!1});b("#submit").on("click",function(){var c=b(a("@","signature")),d=c.val();-1!==d.indexOf(",")&&c.val(f.btoa(G(d)));return!0});break;case 1:U(c);var q=0;b(a("#","sort-slug")).on("click",function(){var a=b(this).closest("ol"),c=a.children("li");(q=!q)?c.sort(function(a,c){return b(a).text()>b(c).text()}):c.sort(function(a,c){return parseInt(b(a).text().replace(/^.*\((\d+)\)#x2F;,"$1"),10)<=parseInt(b(c).text().replace(/^.*\((\d+)\)#x2F;,"$1"),10)});a.children("li").remove();c.appendTo(a)});b(a("@","clear_statistics")).on("click",function(){x(d.msg[3],function(){N("statistics",null)});return!1});b(a("@","clear_logs")).on("click",function(){x(d.msg[5],function(){N("logs",null)});return!1});X(c,{tableID:"statistics-cache",ajaxCMD:"restore-cache",sectionID:"section-2",targetColumn:4,columnIP:1,columnAS:3},{columns:[{title:'<input type="checkbox">'},{title:d.i18n[3]},{title:d.i18n[4]},{title:d.i18n[5]},{title:d.i18n[6]},{title:d.i18n[7]},{title:d.i18n[8]},{title:d.i18n[9]}],columnDefs:[{responsivePriority:0,targets:0},{responsivePriority:1,targets:1},{responsivePriority:2,targets:2},{responsivePriority:6,targets:3},{responsivePriority:7,targets:4},{responsivePriority:3,targets:5},{responsivePriority:4,targets:6},{responsivePriority:5,targets:7},{className:"all",targets:[0,1,2,5]}]});break;case 4:var p={tableID:"validation-logs",sectionID:"section-0",targetColumn:6,columnIP:3,columnAS:5},l={columns:[{title:'<input type="checkbox">'},{title:""},{title:d.i18n[10]},{title:d.i18n[3]},{title:d.i18n[4]},{title:d.i18n[5]},{title:d.i18n[7]},{title:d.i18n[11]},{title:d.i18n[12]},{title:d.i18n[13]},{title:d.i18n[14]},{title:d.i18n[15]}],columnDefs:[{responsivePriority:11,targets:0},{responsivePriority:0,targets:1},{responsivePriority:1,targets:2},{responsivePriority:2,targets:3},{responsivePriority:3,targets:4},{responsivePriority:6,targets:5},{responsivePriority:4,targets:6},{responsivePriority:5,targets:7},{responsivePriority:7,targets:8},{responsivePriority:8,targets:9},{responsivePriority:9,targets:10},{responsivePriority:10,targets:11},{visible:!1,targets:1},{className:"all",targets:[0,2,3,4]},{className:"none",targets:[8,9,10,11]}]},H=null,r=null,z=b(a("#","live-loading")),I=null,w=function(){H&&(f.clearTimeout(H),H=null);r&&(z.removeClass(a("live-timer")),f.clearTimeout(r),r=null)},E=function(){w();m("live-loading",{cmd:"live-start"},function(a){if(a.error)D(null,a.error);else if(a.data.length){var b,c=a.data.length;for(b=0;b<c;b++)I.row.add(a.data[b]);I.draw(!1)}H=f.setTimeout(E,1E3*d.interval)})},F=function(a,b){w();m(null,{cmd:a||"live-stop",callback:b})},M=function(){F("live-pause",function(){z.addClass(a("live-timer"));r=f.setTimeout(function(){w();b(a("#","live-log-stop")).prop("checked",!0)},1E3*d.timeout)})},B=a(""),Y=function(a,c,d){-1!==c[7].indexOf("passed")?b(a).addClass(B+d+"passed"):b(a).addClass(B+d+"blocked")},Z=b(a("#","live-log")),aa=b(a("#","live-update"));b(a("#","validation-logs")).on("animationend",function(){b(this).find('tr[class*="'+B+'new"]').each(function(){var a=b(this);-1!==a.prop("class").indexOf("passed")?a.addClass(B+"passed").removeClass(B+"new-passed"):a.addClass(B+"blocked").removeClass(B+"new-blocked")});return!1});Z.on("change",function(){switch(b('input[name="'+a("live-log")+'"]:checked').val()){case "start":E();break;case "pause":M();break;case "stop":F()}});aa.on("change",function(){var d=Z.closest("tr"),f=aa.prop("checked");e[c][1]=f?"o":"x";A(e);I&&I.clear().destroy();f?(d.show().next().next().next().nextAll().hide(),p.ajaxCMD="live-stop",l.order=[1,"desc"],l.createdRow=function(a,b){Y(a,b,"new-")}):(d.hide().next().next().next().nextAll().show(),p.ajaxCMD="restore-logs",l.order=[0,""],l.createdRow=function(a,b){Y(a,b,"")});b(a("#","live-log-stop")).trigger("click");I=X(c,p,l);return!1}).trigger("change");V("export-logs");b(a("#","export-logs")).on("click",function(){b(a("#","export-form")).submit();return!1});break;case 2:b(f).on(a("gmap-error"),function(){m(null,{cmd:"gmap-error"},function(a){J(a.page,a.tab)})});var L=b(a("#","map"));"object"===typeof f.google?L.each(function(){b(this).GmapRS()}):L.each(function(){b(this).empty().html('<iframe src="'+d.altgmap+'?output=embed" frameborder="0" style="width:100%; height:400px; border:0" allowfullscreen></iframe>')});b('select[id^="'+a("!","service")+'"]').on("change",function(){e[c][3]=b(this).prop("selectedIndex");A(e)}).change();b(a("@","get_location")).on("click",function(){var c=b(a("#","whois")),d=b(a("@","ip_address")).val();if(d){c.hide().empty();var e=b.whois(d,function(d){var e,f="";for(e=0;e<d.length;++e)f+="<tr><td>"+d[e].name+"</td><td>"+d[e].value+"</td></tr>";c.html('<fieldset id="'+a("section-1")+'" class="'+a("field")+' panel panel-default" data-section="1"><legend class="panel-heading"><h3 id="'+a("whois-title")+'" class="'+a("dropdown")+'">Whois</h3></legend><div class="panel-body '+a("border")+'"><table class="'+a("table")+'">'+f+"</table></div></fieldset>").fadeIn("slow");b(a("#","whois-title")).on("click",function(){var c=b(this);c.parent().nextAll().toggle();c.toggleClass(a("dropup")).toggleClass(a("dropdown"));return!1})});m("loading",{cmd:"search",ip:d,which:b(a("@","service")).val()},function(b){var c="",e=k(b.latitude||"0"),g=k(b.longitude||"0"),h=b.latitude||b.longitude?8:2;for(l in b)if(b.hasOwnProperty(l)){var l=k(l);c+='<li><span class="'+a("title")+'">'+l+' : </span><span class="'+a("result")+'">'+k(b[l])+"</span></li>"}"object"===typeof f.google?L.GmapRS("addMarker",{latitude:e,longitude:g,title:d,content:"<ul>"+c+"</ul>",show:!0,zoom:h}):L.css({height:"600px",backgroundColor:"transparent"}).empty().html('<ul style="margin-top:0; margin-left:1em;"><li><span class="'+a("title")+'">IP address : </span><span class="'+a("result")+'">'+k(d)+"</span></li>"+c+'</ul><iframe src="//maps.google.com/maps?q='+e+","+g+"&z="+h+'&output=embed" frameborder="0" style="width:100%; height:400px; border:0" allowfullscreen></iframe>')},[e])}return!1});b(a("@","ip_address")).val()&&b(a("@","get_location")).click();break;case 5:U(c),b("input[name="+a("duration")+"]:radio").on("click",function(){var a=b('div[class*="paginate"]').find('a[class*="current"]').text();e[c][2]=b(this).val()||0;e[c][3]=e[c][3]||2;e[c][4]=e[c][4]||1;A(e);h.ajaxStacked(e[c][2],e[c][3],e[c][4],a-1)}),b(a("#","open-new")).on("change",function(){var d=b(this).prop("checked");e[c][1]=d?"o":"x";A(e);b(a("#","section-0 svg")).find("a").each(function(){this.setAttribute("target",d?"_blank":"_self")})}),b(a("#","apply-layout")).on("click",function(){var d=b(a("#","select-layout"));e[c][3]=d.find('select[name="rows"] option:selected').val();e[c][4]=d.find('select[name="cols"] option:selected').val();A(e)}),b("ul.wp-submenu>li.wp-first-item").removeClass("current").next().addClass("current")}})})(jQuery,window,document);
admin/js/cidr.min.js ADDED
@@ -0,0 +1,11 @@
1
+ /*
2
+ Project: IP address range - CIDR converter
3
+ Copyright (c) 2018 tokkonopapa (tokkonopapa@yahoo.com)
4
+ The following libraries are ported to this program.
5
+ - S1lentium/IPTools (https://github.com/S1lentium/IPTools)
6
+ - kvz/locutus (https://github.com/kvz/locutus)
7
+ - MikeMcl/big.js (https://github.com/MikeMcl/big.js/)
8
+ - jQuery (https://jquery.com/)
9
+ This software is released under the MIT License.
10
+ */
11
+ "function"!==typeof Object.assign&&Object.defineProperty(Object,"assign",{value:function(u,I){if(null==u)throw Error("Cannot convert undefined or null to object");var m,z,B=Object(u);for(z=1;z<arguments.length;z++){var C=arguments[z];if(null!=C)for(m in C)Object.prototype.hasOwnProperty.call(C,m)&&(B[m]=C[m])}return B},writable:!0,configurable:!0});Array.prototype.forEach||(Array.prototype.forEach=function(u,I){if(null==this)throw Error("this is null or not defined");var m,z,B=Object(this);var C=B.length>>>0;if("[object Function]"!={}.toString.call(u))throw Error(u+" is not a function");I&&(m=I);for(z=0;z<C;){if(z in B){var O=B[z];u.call(m,O,z,B)}z++}});Array.isArray||(Array.isArray=function(u){return"[object Array]"===Object.prototype.toString.call(u)});(function(u,I,m){function z(){function a(c){if(!(this instanceof a))return void 0===c?z():new a(c);if(c instanceof a)this.s=c.s,this.e=c.e,this.c=c.c.slice();else{var b,d;if(0===c&&0>1/c)c="-0";else if(!ha.test(c+=""))throw Error("Invalid number");"-"==c.charAt(0)?(c=c.slice(1),this.s=-1):this.s=1;-1<(b=c.indexOf("."))&&(c=c.replace(".",""));0<(d=c.search(/e/i))?(0>b&&(b=d),b+=+c.slice(d+1),c=c.substring(0,d)):0>b&&(b=c.length);var e=c.length;for(d=0;d<e&&"0"==c.charAt(d);++d);if(d==e)this.c=[this.e=0];else{for(;0<e&&"0"==c.charAt(--e););this.e=b-d-1;this.c=[];for(b=0;d<=e;)this.c[b++]=+c.charAt(d++)}}this.constructor=a}a.prototype=n;a.DP=20;a.RM=1;a.NE=-7;a.PE=21;a.version="5.0.2";return a}function B(a,c,b,d){var e=a.c,f=a.e+c+1;if(f<e.length){if(1===b)d=5<=e[f];else if(2===b)d=5<e[f]||5==e[f]&&(d||0>f||void 0!==e[f+1]||e[f-1]&1);else if(3===b)d=d||void 0!==e[f]||0>f;else if(d=!1,0!==b)throw Error("Invalid rounding mode");if(1>f)e.length=1,d?(a.e=-c,e[0]=1):e[0]=a.e=0;else{e.length=f--;if(d)for(;9<++e[f];)e[f]=0,f--||(++a.e,e.unshift(1));for(f=e.length;!e[--f];)e.pop()}}else if(0>b||3<b||b!==~~b)throw Error("Invalid rounding mode");return a}function C(a,c,b,d){var e=a.constructor,f=!a.c[0];if(void 0!==b){if(b!==~~b||b<(3==c)||1E6<b)throw Error(3==c?"Invalid precision":"Invalid decimal places");a=new e(a);b=d-a.e;a.c.length>++d&&B(a,b,e.RM);for(2==c&&(d=a.e+b+1);a.c.length<d;)a.c.push(0)}var g=a.e;var h=a.c.join("");b=h.length;if(2!=c&&(1==c||3==c&&d<=g||g<=e.NE||g>=e.PE))h=h.charAt(0)+(1<b?"."+h.slice(1):"")+(0>g?"e":"e+")+g;else if(0>g){for(;++g;)h="0"+h;h="0."+h}else if(0<g)if(++g>b)for(g-=b;g--;)h+="0";else g<b&&(h=h.slice(0,g)+"."+h.slice(g));else 1<b&&(h=h.charAt(0)+"."+h.slice(1));return 0>a.s&&(!f||4==c)?"-"+h:h}function O(a){var c=Object.getPrototypeOf,b={},d=b.toString,e=b.hasOwnProperty;b=e.toString;if(!a||"[object Object]"!==d.call(a))return!1;a=c(a);if(!a)return!0;a=e.call(a,"constructor")&&a.constructor;return"function"===typeof a&&b.call(a)===b.call(Object)}function J(){var a,c,b,d=arguments[0]||{},e=1,f=arguments.length,g=!1;"boolean"===typeof d&&(g=d,d=arguments[e]||{},e++);"object"===typeof d||"function"===typeof d&&"number"!==typeof d.nodeType||(d={});e===f&&(d=this,e--);for(;e<f;e++)if(null!=(a=arguments[e]))for(c in a){var h=d[c];var l=a[c];d!==l&&(g&&l&&(O(l)||(b=Array.isArray(l)))?(b?(b=!1,h=h&&Array.isArray(h)?h:[]):h=h&&O(h)?h:{},d[c]=J(g,h,l)):l!==m&&(d[c]=l))}return d}function P(a,c){return x(a).plus(c)}function ba(){var a=/%%|%(?:(\d+)\$)?((?:[-+#0 ]|'[\s\S])*)(\d+)?(?:\.(\d*))?([\s\S])/g,c=arguments,b=0,d=c[b++],e=function(a,c,b,d){b||(b=" ");c=a.length>=c?"":Array(1+c-a.length>>>0).join(b);return d?a+c:c+a},f=function(a,c,b,d,f){var g=d-a.length;0<g&&(a=b||"0"!==f?e(a,d,f,b):[a.slice(0,c.length),e("",g,"0",!0),a.slice(c.length)].join(""));return a},g=function(a,c,b,d,g,h){a=e((a>>>0).toString(c),g||0,"0",!1);return f(a,"",b,d,h)},h=function(a,c,b,d,e){null!==d&&d!==m&&(a=a.slice(0,d));return f(a,"",c,b,e)},l=function(a,d,l,k,r,n){if("%%"===a)return"%";a=" ";var t=!1;var E="";var q;var v=0;for(q=l.length;v<q;v++)switch(l.charAt(v)){case " ":case "0":a=l.charAt(v);break;case "+":E="+";break;case "-":t=!0;break;case "'":v+1<q&&(a=l.charAt(v+1),v++)}k=k?+k:0;if(!isFinite(k))throw Error("Width must be finite");r=r?+r:"d"===n?0:-1<"fFeE".indexOf(n)?6:m;if(d&&0===+d)throw Error("Argument number must be greater than zero");if(d&&+d>=c.length)throw Error("Too few arguments");d=d?c[+d]:c[b++];switch(n){case "%":return"%";case "s":return h(d+"",t,k,r,a);case "c":return h(String.fromCharCode(+d),t,k,r,a);case "b":return g(d,2,t,k,r,a);case "o":return g(d,8,t,k,r,a);case "x":return g(d,16,t,k,r,a);case "X":return g(d,16,t,k,r,a).toUpperCase();case "u":return g(d,10,t,k,r,a);case "i":case "d":return d=+d||0,d=Math.round(d-d%1),E=0>d?"-":E,d=E+e(String(Math.abs(d)),r,"0",!1),t&&"0"===a&&(a=" "),f(d,E,t,k,a);case "e":case "E":case "f":case "F":case "g":case "G":return d=+d,E=0>d?"-":E,l=["toExponential","toFixed","toPrecision"]["efg".indexOf(n.toLowerCase())],n=["toString","toUpperCase"]["eEfFgG".indexOf(n)%2],d=E+Math.abs(d)[l](r),f(d,E,t,k,a)[n]();default:return""}};try{return d.replace(a,l)}catch(E){return!1}}function ca(){var a=arguments,c=a.length,b=0;if(0===c)throw Error("Empty isset");for(;b!==c;){if(a[b]===m||null===a[b])return!1;b++}return!0}function da(a){return("number"===typeof a||"string"===typeof a&&-1===" \n\r\t\f\x0B\u00a0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000".indexOf(a.slice(-1)))&&""!==a&&!isNaN(a)}function w(a,c){return a===c?0:a>c?1:-1}function G(a,c,b){a=(a+"").indexOf(c,b||0);return-1===a?!1:a}function L(a,c,b){a+="";var d=a.length;0>c&&(c+=d);b!==m&&(d=0>b?b+d:b+c);return c>=a.length||0>c||c>d?!1:a.slice(c,d)}function U(a,c){var b,d=0;if(null===a||a===m)return 0;if(a.constructor!==Array&&a.constructor!==Object)return 1;"COUNT_RECURSIVE"===c&&(c=1);1!==c&&(c=0);for(b in a)a.hasOwnProperty(b)&&(d++,1!==c||!a[b]||a[b].constructor!==Array&&a[b].constructor!==Object||(d+=U(a[b],1)));return d}function V(a,c){var b="",d="",e="";1===arguments.length&&(c=a,a="");if("object"===typeof c){if("[object Array]"===Object.prototype.toString.call(c))return c.join(a);for(b in c)d+=e+c[b],e=a;return d}return c}function R(a,c,b){if(2>arguments.length||a===m||c===m)return null;if(""===a||!1===a||null===a)return!1;if("function"===typeof a||"object"===typeof a||"function"===typeof c||"object"===typeof c)return{0:""};!0===a&&(a="1");a+="";var d=(c+"").split(a);if(b===m)return d;0===b&&(b=1);if(0<b)return b>=d.length?d:d.slice(0,b-1).concat([d.slice(b-1).join(a)]);if(-b>=d.length)return[];d.splice(d.length+b);return d}function ea(a,c){null===c&&(c=1);if(null===a||1>c)return!1;a+="";for(var b=[],d=0,e=a.length;d<e;)b.push(a.slice(d,d+=c));return b}function H(a,c,b,d){var e="",f=function(a,c){for(var b="";b.length<c;)b+=a;return b=b.substr(0,c)};a+="";b=b!==m?b:" ";0!==d&&1!==d&&2!==d&&(d=1);0<(e=c-a.length)&&(0===d?a=f(b,e)+a:1===d?a+=f(b,e):2===d&&(e=f(b,Math.ceil(e/2)),a=(e+a+e).substr(0,c)));return a}function ia(a){var c="",b="";if(a.hasOwnProperty("length"))return a.length?a.pop():null;for(c in a)a.hasOwnProperty(c)&&(b=c);return b?(c=a[b],delete a[b],c):null}function ja(a){for(var c=arguments.length,b=arguments,d=null,e=a,f=b[1].length,g=0,h=1,l=0,k=[],n=[];g<f;){for(;h<c;)k[l++]=b[h++][g];l=0;h=1;if(a){if("string"===typeof a)e=u[a];else if("object"===typeof a&&a.length){d="string"===typeof a[0]?u[a[0]]:a[0];if(d===m)throw Error("Object not found: "+a[0]);e="string"===typeof a[1]?d[a[1]]:a[1]}n[g++]=e.apply(d,k)}else n[g++]=k;k=[]}return n}function W(a,c){var b="[object Array]"===Object.prototype.toString.call(a),d=c?{}:[];if(b&&!c)return a.slice(0).reverse();if(c){keys=[];for(e in a)keys.push(e);for(b=keys.length;b--;){var e=keys[b];d[e]=a[e]}}else for(e in a)d.unshift(a[e]);return d}function ka(a){a=(a+"").replace(/[^01]/gi,"");return parseInt(a,2)}function la(a){0>a&&(a=4294967295+a+1);return parseInt(a,10).toString(2)}function X(a){var c,b="";a+="";var d=0;for(c=a.length;d<c;d++){var e=a.charCodeAt(d).toString(16);b+=2>e.length?"0"+e:e}return b}function Y(a){a+="";var c=[],b=0,d;for(d=a.length;b<d;b+=2){var e=parseInt(a.substr(b,1),16);var f=parseInt(a.substr(b+1,1),16);if(isNaN(e)||isNaN(f))return!1;c.push(e<<4|f)}return String.fromCharCode.apply(String,c)}function M(a){for(var c=0,b=1,d="",e,f,g,h,l,k,n,Q,u,r,p,t,x,q,v,w,y;c<a.length;){h=a.charAt(c);l="";for(c++;c<a.length&&null!==a.charAt(c).match(/[\d*]/);)l+=a.charAt(c),c++;""===l&&(l="1");switch(h){case "a":case "A":if(arguments[b]===m)throw Error("pack(): Type "+h+": not enough arguments");e=String(arguments[b]);"*"===l&&(l=e.length);for(f=0;f<l;f++)d=e[f]===m?"a"===h?d+String.fromCharCode(0):d+" ":d+e[f];b++;break;case "h":case "H":if(arguments[b]===m)throw Error("pack(): Type "+h+": not enough arguments");e=arguments[b];"*"===l&&(l=e.length);if(l>e.length)throw Error("pack(): Type "+h+": not enough characters in string");for(f=0;f<l;f+=2)k=e[f],k=f+1>=l||e[f+1]===m?k+"0":k+e[f+1],"h"===h&&(k=k[1]+k[0]),d+=String.fromCharCode(parseInt(k,16));b++;break;case "c":case "C":"*"===l&&(l=arguments.length-b);if(l>arguments.length-b)throw Error("pack(): Type "+h+": too few arguments");for(f=0;f<l;f++)d+=String.fromCharCode(arguments[b]),b++;break;case "s":case "S":case "v":"*"===l&&(l=arguments.length-b);if(l>arguments.length-b)throw Error("pack(): Type "+h+": too few arguments");for(f=0;f<l;f++)d+=String.fromCharCode(arguments[b]&255),d+=String.fromCharCode(arguments[b]>>8&255),b++;break;case "n":"*"===l&&(l=arguments.length-b);if(l>arguments.length-b)throw Error("pack(): Type "+h+": too few arguments");for(f=0;f<l;f++)d+=String.fromCharCode(arguments[b]>>8&255),d+=String.fromCharCode(arguments[b]&255),b++;break;case "i":case "I":case "l":case "L":case "V":"*"===l&&(l=arguments.length-b);if(l>arguments.length-b)throw Error("pack(): Type "+h+": too few arguments");for(f=0;f<l;f++)d+=String.fromCharCode(arguments[b]&255),d+=String.fromCharCode(arguments[b]>>8&255),d+=String.fromCharCode(arguments[b]>>16&255),d+=String.fromCharCode(arguments[b]>>24&255),b++;break;case "N":"*"===l&&(l=arguments.length-b);if(l>arguments.length-b)throw Error("pack(): Type "+h+": too few arguments");for(f=0;f<l;f++)d+=String.fromCharCode(arguments[b]>>24&255),d+=String.fromCharCode(arguments[b]>>16&255),d+=String.fromCharCode(arguments[b]>>8&255),d+=String.fromCharCode(arguments[b]&255),b++;break;case "f":case "d":k=23;n=8;"d"===h&&(k=52,n=11);"*"===l&&(l=arguments.length-b);if(l>arguments.length-b)throw Error("pack(): Type "+h+": too few arguments");for(f=0;f<l;f++){e=arguments[b];h=Math.pow(2,n-1)-1;g=-h+1;Q=h;u=isNaN(q=parseFloat(e))||-Infinity===q||Infinity===q?q:0;r=0;p=2*h+1+k+3;t=Array(p);x=0>(q=0!==u?0:q);q=Math.abs(q);v=Math.floor(q);q-=v;for(e=p;e;)t[--e]=0;for(e=h+2;v&&e;)t[--e]=v%2,v=Math.floor(v/2);for(e=h+1;0<q&&e;--q)t[++e]=(1<=(q*=2))-0;for(e=-1;++e<p&&!t[e];);y=(q=k-1+(e=(r=h+1-e)>=g&&r<=Q?e+1:h+1-(r=g-1)))+1;if(t[y]){if(!(w=t[q]))for(y=q+2;!w&&y<p;w=t[y++]);for(y=q+1;w&&0<=--y;(t[y]=!t[y]-0)&&(w=0));}for(e=0>e-2?-1:e-3;++e<p&&!t[e];);(r=h+1-e)>=g&&r<=Q?++e:r<g&&(e=h+1-(r=g-1));if(v||0!==u)r=Q+1,e=h+2,-Infinity===u?x=1:isNaN(u)&&(t[e]=1);q=Math.abs(r+h);h="";for(y=n+1;--y;)h=q%2+h,q=q>>=1;y=q=0;e=(h=(x?"1":"0")+h+t.slice(e,e+k).join("")).length;for(g=[];e;)q+=(1<<y)*h.charAt(--e),7===y&&(g[g.length]=String.fromCharCode(q),q=0),y=(y+1)%8;g[g.length]=q?String.fromCharCode(q):"";d+=g.join("");b++}break;case "x":if("*"===l)throw Error("pack(): Type x: '*' ignored");for(f=0;f<l;f++)d+=String.fromCharCode(0);break;case "X":if("*"===l)throw Error("pack(): Type X: '*' ignored");for(f=0;f<l;f++){if(0===d.length)throw Error("pack(): Type X: outside of string");d=d.substring(0,d.length-1)}break;case "@":if("*"===l)throw Error("pack(): Type X: '*' ignored");if(l>d.length)for(k=l-d.length,f=0;f<k;f++)d+=String.fromCharCode(0);l<d.length&&(d=d.substring(0,l));break;default:throw Error("pack(): Type "+h+": unknown format code");}}if(b<arguments.length)throw Error("pack(): "+(arguments.length-b)+" arguments unused");return d}function N(a,c){c+="";var b,d=c.length,e=[];if("C*"===a){for(b=0;b<d;b++)e[b+1]=c.charCodeAt(b);return e}if("H*hex"===a){e.hex=[];for(b=0;b<d;b++)e.hex[b+1]=((c.charCodeAt(b++)<<8)+c.charCodeAt(b)).toString(16);return e}}function S(a,c,b){return m===b?a.test(c):c.match(a)}function Z(a,c){var b,d=null,e=/^[_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*#x2F;;"string"===typeof a?"function"===typeof u[a]?b=u[a]:a.match(e)&&(b=(new Function(null,"return "+a))()):"[object Array]"===Object.prototype.toString.call(a)?("string"===typeof a[0]?a[0].match(e)&&(b=eval(a[0]+"['"+a[1]+"']")):b=a[0][a[1]],"string"===typeof a[0]?"function"===typeof u[a[0]]?d=u[a[0]]:a[0].match(e)&&(d=eval(a[0])):"object"===typeof a[0]&&(d=a[0])):"function"===typeof a&&(b=a,d=u);if("function"!==typeof b)throw Error(b+" is not a valid function");return b.apply(d,c)}function aa(a,c,b){var d=/((^\s*((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))\s*$)|(^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$))/;switch(c){case 275:return b===m?d.test(a):1048576===b?!1!==G(a,"."):!0}return!1}function A(a){a+="";var c=0,b="",d=[];if(4===a.length)return[a.charCodeAt(0),a.charCodeAt(1),a.charCodeAt(2),a.charCodeAt(3)].join(".");if(16===a.length){for(c=0;16>c;c++)d.push(((a.charCodeAt(c++)<<8)+a.charCodeAt(c)).toString(16));return d.join(":").replace(/((^|:)0(?=:|$))+:?/g,function(a){b=a.length>b.length?a:b;return a}).replace(b||" ","::")}return!1}function ma(a){a+="";var c,b;var d=String.fromCharCode;if(c=a.match(/^(?:\d{1,3}(?:\.|$)){4}/))return c=c[0].split("."),c=d(c[0])+d(c[1])+d(c[2])+d(c[3]),4===c.length?c:!1;if(c=a.match(/^((?:[\da-f]{1,4}(?::|)){0,8})(::)?((?:[\da-f]{1,4}(?::|)){0,8})#x2F;)){for(b=1;4>b;b++)if(2!==b&&0!==c[b].length){c[b]=c[b].split(":");for(a=0;a<c[b].length;a++){c[b][a]=parseInt(c[b][a],16);if(isNaN(c[b][a]))return!1;c[b][a]=d(c[b][a]>>8)+d(c[b][a]&255)}c[b]=c[b].join("")}d=c[1].length+c[3].length;if(16===d)return c[1]+c[3];if(16>d&&0<c[2].length)return c[1]+Array(16-d+1).join("\x00")+c[3]}return!1}function na(a){var c;a=a.match(/^([1-9]\d*|0[0-7]*|0x[\da-f]+)(?:\.([1-9]\d*|0[0-7]*|0x[\da-f]+))?(?:\.([1-9]\d*|0[0-7]*|0x[\da-f]+))?(?:\.([1-9]\d*|0[0-7]*|0x[\da-f]+))?#x2F;i);if(!a)return!1;a[0]=0;for(c=1;5>c;c+=1)a[0]+=!!(a[c]||"").length,a[c]=parseInt(a[c])||0;a.push(256,256,256,256);a[4+a[0]]*=Math.pow(256,4-a[0]);return a[1]>=a[5]||a[2]>=a[6]||a[3]>=a[7]||a[4]>=a[8]?!1:a[1]*(1===a[0]||16777216)+a[2]*(2>=a[0]||65536)+a[3]*(3>=a[0]||256)+1*a[4]}function k(a){this.__construct(a)}function F(a,c){this.__construct(a,c)}function D(a,c){this.__construct(a,c)}function T(a,c,b){var d=[].slice.call(arguments).slice(3);a&&a.addEventListener?a.addEventListener(c,function(){b.apply(a,d)},!1):a&&a.attachEvent&&a.attachEvent("on"+c,function(){b.apply(a,d)})}function fa(a){return a.trim().replace(",","\n").split("\n").map(function(a){return a.trim()})}function K(a){for(;p.g.firstChild;)p.g.removeChild(p.g.firstChild);p.g.appendChild(a?I.createTextNode(a+""):oa)}var n={},ha=/^-?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?#x2F;i;n.abs=function(){var a=new this.constructor(this);a.s=1;return a};n.cmp=function(a){var c=this.c,b=(a=new this.constructor(a)).c,d=this.s,e=a.s,f=this.e,g=a.e;if(!c[0]||!b[0])return c[0]?d:b[0]?-e:0;if(d!=e)return d;a=0>d;if(f!=g)return f>g^a?1:-1;e=(f=c.length)<(g=b.length)?f:g;for(d=-1;++d<e;)if(c[d]!=b[d])return c[d]>b[d]^a?1:-1;return f==g?0:f>g^a?1:-1};n.div=function(a){var c=this.constructor,b=this.c,d=(a=new c(a)).c,e=this.s==a.s?1:-1,f=c.DP;if(f!==~~f||0>f||1E6<f)throw Error("Invalid decimal places");if(!d[0])throw Error("Division by zero");if(!b[0])return new c(0*e);var g,h,k=d.slice(),n=g=d.length,u=b.length,m=b.slice(0,g),p=m.length,r=a,w=r.c=[],t=0,x=f+(r.e=this.e-a.e)+1;r.s=e;e=0>x?0:x;for(k.unshift(0);p++<g;)m.push(0);do{for(h=0;10>h;h++){if(g!=(p=m.length))var q=g>p?1:-1;else{var v=-1;for(q=0;++v<g;)if(d[v]!=m[v]){q=d[v]>m[v]?1:-1;break}}if(0>q){for(a=p==g?d:k;p;){if(m[--p]<a[p]){for(v=p;v&&!m[--v];)m[v]=9;--m[v];m[p]+=10}m[p]-=a[p]}for(;!m[0];)m.shift()}else break}w[t++]=q?h:++h;m[0]&&q?m[p]=b[n]||0:m=[b[n]]}while((n++<u||void 0!==m[0])&&e--);w[0]||1==t||(w.shift(),r.e--);t>x&&B(r,f,c.RM,void 0!==m[0]);return r};n.eq=function(a){return!this.cmp(a)};n.gt=function(a){return 0<this.cmp(a)};n.gte=function(a){return-1<this.cmp(a)};n.lt=function(a){return 0>this.cmp(a)};n.lte=function(a){return 1>this.cmp(a)};n.minus=n.sub=function(a){var c=this.constructor;var b=this.s,d=(a=new c(a)).s;if(b!=d)return a.s=-d,this.plus(a);var e=this.c.slice();var f=this.e;var g=a.c,h=a.e;if(!e[0]||!g[0])return g[0]?(a.s=-d,a):new c(e[0]?this:0);if(b=f-h){c=b;0>b?(b=-b,f=e):(h=f,f=g);f.reverse();for(d=b;d--;)f.push(0);f.reverse()}else for(f=((c=e.length<g.length)?e:g).length,b=d=0;d<f;d++)if(e[d]!=g[d]){c=e[d]<g[d];break}c&&(f=e,e=g,g=f,a.s=-a.s);if(0<(d=(f=g.length)-(c=e.length)))for(;d--;)e[c++]=0;for(d=c;f>b;){if(e[--f]<g[f]){for(c=f;c&&!e[--c];)e[c]=9;--e[c];e[f]+=10}e[f]-=g[f]}for(;0===e[--d];)e.pop();for(;0===e[0];)e.shift(),--h;e[0]||(a.s=1,e=[h=0]);a.c=e;a.e=h;return a};n.mod=function(a){var c=this,b=c.constructor,d=c.s,e=(a=new b(a)).s;if(!a.c[0])throw Error("Division by zero");c.s=a.s=1;var f=1==a.cmp(c);c.s=d;a.s=e;if(f)return new b(c);d=b.DP;e=b.RM;b.DP=b.RM=0;c=c.div(a);b.DP=d;b.RM=e;return this.minus(c.times(a))};n.plus=n.add=function(a){var c=this.constructor;var b=this.s,d=(a=new c(a)).s;if(b!=d)return a.s=-d,this.minus(a);d=this.e;var e=this.c,f=a.e,g=a.c;if(!e[0]||!g[0])return g[0]?a:new c(e[0]?this:0*b);e=e.slice();if(b=d-f){0<b?(f=d,c=g):(b=-b,c=e);for(c.reverse();b--;)c.push(0);c.reverse()}0>e.length-g.length&&(c=g,g=e,e=c);b=g.length;for(d=0;b;e[b]%=10)d=(e[--b]=e[b]+g[b]+d)/10|0;d&&(e.unshift(d),++f);for(b=e.length;0===e[--b];)e.pop();a.c=e;a.e=f;return a};n.pow=function(a){var c=this,b=new c.constructor(1),d=b,e=0>a;for(e&&(a=-a);;){a&1&&(d=d.times(c));a>>=1;if(!a)break;c=c.times(c)}return e?b.div(d):d};n.round=function(a,c){var b=this.constructor;if(void 0===a)a=0;else if(a!==~~a||0>a||1E6<a)throw Error("Invalid decimal places");return B(new b(this),a,void 0===c?b.RM:c)};n.sqrt=function(){var a=this.constructor;var c=this.s;var b=this.e,d=new a(.5);if(!this.c[0])return new a(this);if(0>c)throw Error("No square root");c=Math.sqrt(this.toString());0===c||c===1/0?(c=this.c.join(""),c.length+b&1||(c+="0"),c=new a(Math.sqrt(c).toString()),c.e=((b+1)/2|0)-(0>b||b&1)):c=new a(c.toString());b=c.e+(a.DP+=4);do{var e=c;c=d.times(e.plus(this.div(e)))}while(e.c.slice(0,b).join("")!==c.c.slice(0,b).join(""));return B(c,a.DP-=4,a.RM)};n.times=n.mul=function(a){var c=this.constructor;var b=this.c,d=(a=new c(a)).c,e=b.length,f=d.length,g=this.e,h=a.e;a.s=this.s==a.s?1:-1;if(!b[0]||!d[0])return new c(0*a.s);a.e=g+h;e<f&&(c=b,b=d,d=c,h=e,e=f,f=h);for(c=Array(h=e+f);h--;)c[h]=0;for(g=f;g--;){f=0;for(h=e+g;h>g;)f=c[h]+d[g]*b[h-g-1]+f,c[h--]=f%10,f=f/10|0;c[h]=(c[h]+f)%10}f?++a.e:c.shift();for(g=c.length;!c[--g];)c.pop();a.c=c;return a};n.toExponential=function(a){return C(this,1,a,a)};n.toFixed=function(a){return C(this,2,a,this.e+a)};n.toPrecision=function(a){return C(this,3,a,a-1)};n.toString=function(){return C(this)};n.valueOf=n.toJSON=function(){return C(this,4)};var x=z();x["default"]=x.Big=x;u.Big=x;k.prototype={IP_V4:"IPv4",IP_V6:"IPv6",IP_V4_MAX_PREFIX_LENGTH:32,IP_V6_MAX_PREFIX_LENGTH:128,IP_V4_OCTETS:4,IP_V6_OCTETS:16,$in_addr:null,__construct:function(a){if(!aa(a,275))throw Error("Invalid IP address format: `"+a+"`");this.$in_addr=ma(a)},toString:function(){return A(this.$in_addr)},parse:function(a){return 0===G(a,"0x")?(a=L(a,2),this.parseHex(a)):0===G(a,"0b")?(a=L(a,2),this.parseBin(a)):da(a)?this.parseLong(a):new k(a)},parseBin:function(a){if(!S(/^([0-1]{32}|[0-1]{128})#x2F;,a))throw Error("Invalid binary IP address format `"+a+"`");var c="";ja(ka,ea(a,8)).forEach(function(a){c+=M("C*",a)});return new k(A(c))},parseHex:function(a){if(!S(/^([0-9a-fA-F]{8}|[0-9a-fA-F]{32})#x2F;,a))throw Error("Invalid hexadecimal IP address format `"+a+"`");return new k(A(M("H*",a)))},parseLong:function(a,c){if(c===this.IP_V4){var b=a;b=isFinite(b)?[b>>>24,b>>>16&255,b>>>8&255,b&255].join("."):!1;b=new this(b)}else{var d=[];for(b=0;b<this.IP_V6_OCTETS;b++)d.push(x(a).mod(256)),a=x(a).div(256);d=W(d);d[0]="C*";b=new k(A(Z(M,d)))}return b},parseInAddr:function(a){return new k(A(a))},getVersion:function(){return aa(A(this.$in_addr),275,1048576)?this.IP_V4:aa(A(this.$in_addr),275,2097152)?this.IP_V6:!1},getMaxPrefixLength:function(){return this.getVersion()===this.IP_V4?this.IP_V4_MAX_PREFIX_LENGTH:this.IP_V6_MAX_PREFIX_LENGTH},getOctetsCount:function(){return this.getVersion()===this.IP_V4?this.IP_V4_OCTETS:this.IP_V6_OCTETS},getReversePointer:function(){if(this.getVersion()===this.IP_V4){var a=W(R(".",this.toString()));a=V(".",a)+".in-addr.arpa"}else a=N("H*hex",this.$in_addr),a=W(ea(a.hex)),a=V(".",a)+".ip6.arpa";return a},inAddr:function(){return this.$in_addr},toBin:function(){var a=[];N("C*",this.$in_addr).forEach(function(c){a.push(H(la(c),8,"0",0))});return V(a)},toHex:function(){return X(this.$in_addr)},toLong:function(){var a=0;if(this.getVersion()===this.IP_V4)a=ba("%u",na(A(this.$in_addr)));else{var c=this.IP_V6_OCTETS-1;var b=N("C*",this.$in_addr);b.forEach(function(b){var d=a;var f=c--;f=x(256).pow(f);b=x(b).times(f);a=P(d,b,1)})}return a},next:function(a){a=a||1;if(0>a)throw Error("Number must be greater than 0");var c,b,d=N("C*",this.$in_addr);for(c=0;c<a;c++)for(b=U(d);0<=b;--b)if(255>d[b]){d[b]++;break}else d[b]=0;d[0]="C*";return new k(A(Z(M,d)))},prev:function(a){a=a||1;if(0>a)throw Error("Number must be greater than 0");var c,b,d=N("C*",this.$in_addr);for(c=0;c<a;c++)for(b=U(d);0<=b;--b)if(0==d[b])d[b]=255;else{d[b]--;break}d[0]="C*";return new k(A(Z(M,d)))}};F.prototype={$ip:null,$netmask:null,$position:0,__construct:function(a,c){this.setIP(a);this.setNetmask(c)},toString:function(){return this.getCIDR()},parse:function(a){if(G(a,"/")){var c=R("/",a,2);a=c[0];c=c[1];a=k.prototype.parse(a);c=this.prefix2netmask(parseInt(c,10),a.getVersion())}else G(a," ")?(c=R(" ",a,2),a=c[0],c=c[1],a=k.prototype.parse(a),c=k.prototype.parse(c)):(a=k.prototype.parse(a),c=this.prefix2netmask(a.getMaxPrefixLength(),a.getVersion()));return new F(a,c)},prefix2netmask:function(a,c){a:{var b=[k.prototype.IP_V4,k.prototype.IP_V6];var d="";for(d in b)if(b.hasOwnProperty(d)&&b[d]==c){b=!0;break a}b=!1}if(!b)throw Error("Wrong IP version");b=c===k.prototype.IP_V4?k.prototype.IP_V4_MAX_PREFIX_LENGTH:k.prototype.IP_V6_MAX_PREFIX_LENGTH;if(!(da(a)&&0<=a&&a<=b))throw Error("Invalid prefix length");b=H(H("",parseInt(a,10),"1"),b,"0");return k.prototype.parseBin(b)},netmask2prefix:function(a){a=a.toBin();var c="0";c=c?(c+"").replace(/([[\]().?/*{}+$^:])/g,"\\$1"):" \\s\u00a0";return((a+"").replace(new RegExp("["+c+"]+quot;,"g"),"")+"").length},setIP:function(a){if(ca(this.$netmask)&&this.$netmask.getVersion()!==a.getVersion())throw Error("IP version is not same as Netmask version");this.$ip=a},setNetmask:function(a){if(!S(/^1*0*#x2F;,a.toBin()))throw Error("Invalid Netmask address format");if(ca(this.$ip)&&a.getVersion()!==this.$ip.getVersion())throw Error("Netmask version is not same as IP version");this.$netmask=a},setPrefixLength:function(a){this.setNetmask(this.prefix2netmask(parseInt(a,10),this.$ip.getVersion()))},getIP:function(){return this.$ip},getNetmask:function(){return this.$netmask},getNetwork:function(){var a=this.getIP().inAddr()+"",c=this.getNetmask().inAddr()+"",b,d=a.length,e=[];for(b=0;b<d;b++)e.push(H((a.charCodeAt(b)&c.charCodeAt(b)).toString(16),2,"0",0));return new k(A(Y(e.join(""))))},getPrefixLength:function(){return this.netmask2prefix(this.getNetmask())},getCIDR:function(){return ba("%s/%s",this.getNetwork(),this.getPrefixLength())},getWildcard:function(){return new k(A(~this.getNetmask().inAddr()))},getBroadcast:function(){var a=this.getNetwork().inAddr()+"",c=this.getNetmask().inAddr()+"",b,d=a.length,e=[];for(b=0;b<d;b++)e.push(H((a.charCodeAt(b)|~c.charCodeAt(b)&255).toString(16),2,"0",0));return new k(A(Y(e.join(""))))},getFirstIP:function(){return this.getNetwork()},getLastIP:function(){return this.getBroadcast()},getBlockSize:function(){var a=this.$ip.getMaxPrefixLength(),c=this.getPrefixLength();return this.$ip.getVersion()===k.prototype.IP_V6?(a=a-c+"",x("2").pow(a)):Math.pow(2,a-c)},getHosts:function(){var a=this.getNetwork(),c=this.getBroadcast();this.$ip.getVersion()===k.prototype.IP_V4&&2<this.getBlockSize()&&(a=k.prototype.parseBin(L(a.toBin(),0,a.getMaxPrefixLength()-1)+"1"),c=k.prototype.parseBin(L(c.toBin(),0,c.getMaxPrefixLength()-1)+"0"));return new D(a,c)},exclude:function(a){a=this.parse(a);if(0<w(a.getFirstIP().inAddr(),this.getLastIP().inAddr())||0>w(a.getLastIP().inAddr(),this.getFirstIP().inAddr()))throw Error("Exclude subnet not within target network");var c=[],b=this.getPrefixLength()+1;var d=J(!0,{},this);d.setPrefixLength(b);var e=J(!0,{},d);for(e.setIP(d.getLastIP().next());b<=a.getPrefixLength();){var f=new D(d.getFirstIP(),d.getLastIP());if(f.contains(a)){f=d;var g=e}else f=e,g=d;c.push(J(!0,{},g));if(++b>this.getNetwork().getMaxPrefixLength())break;f.setPrefixLength(b);g.setPrefixLength(b);g.setIP(f.getLastIP().next())}return F.prototype.sort(c)},moveTo:function(a){var c=this.$ip.getMaxPrefixLength();if(a<=this.getPrefixLength()||a>c)throw Error("Invalid prefix length");c=this.prefix2netmask(a,this.$ip.getVersion());var b=[];var d=J(!0,{},this);for(d.setPrefixLength(a);d.$ip.inAddr()<this.getLastIP().inAddr();)b.push(d),d=new F(d.getLastIP().next(),c);return b},sort:function(a){return a.sort(function(a,b){a=k.prototype.parse((a+"").split("/").shift()).toHex();b=k.prototype.parse((b+"").split("/").shift()).toHex();return w(a,b)})},current:function(){return this.getFirstIP().next(this.$position)},key:function(){return this.$position},next:function(){++this.$position},rewind:function(){this.$position=0},valid:function(){return 0>=w(this.getFirstIP().next(this.$position).inAddr(),this.getLastIP().inAddr())},count:function(){return parseInt(this.getBlockSize())}};D.prototype={$firstIP:null,$lastIP:null,$position:0,__construct:function(a,c){this.setFirstIP(a);this.setLastIP(c)},parse:function(a){if(G(a,"/")||G(a," ")){a=F.prototype.parse(a);var c=a.getFirstIP();a=a.getLastIP()}else G(a,"*")?(c=k.prototype.parse(a.replace("*","0")),a=k.prototype.parse(a.replace("*","255"))):G(a,"-")?(a=R("-",a,2),c=k.prototype.parse(a[0]),a=k.prototype.parse(a[1])):(c=k.prototype.parse(a),a=J(!0,{},c));return new D(c,a)},contains:function(a){if(a instanceof k)a=0<=w(a.inAddr(),this.$firstIP.inAddr())&&0>=w(a.inAddr(),this.$lastIP.inAddr());else if(a instanceof D||a instanceof F)a=0<=w(a.getFirstIP().inAddr(),this.$firstIP.inAddr())&&0>=w(a.getLastIP().inAddr(),this.$lastIP.inAddr());else throw Error("Invalid type");return a},setFirstIP:function(a){if(this.$lastIP&&0<w(a.inAddr(),this.$lastIP.inAddr()))throw Error("First IP is grater than second");this.$firstIP=a},setLastIP:function(a){if(this.$firstIP&&0>w(a.inAddr(),this.$firstIP.inAddr()))throw Error("Last IP is less than first");this.$lastIP=a},getFirstIP:function(){return this.$firstIP},getLastIP:function(){return this.$lastIP},getNetworks:function(){var a=this.getSpanNetwork(),c=[];if(a.getFirstIP().inAddr()===this.$firstIP.inAddr()&&a.getLastIP().inAddr()===this.$lastIP.inAddr())c.push(a);else{if(a.getFirstIP().inAddr()!==this.$firstIP.inAddr()){var b=a.exclude(this.$firstIP.prev());var d=this.$firstIP.inAddr();b.forEach(function(a){0<=w(a.getFirstIP().inAddr(),d)&&c.push(a)})}a.getLastIP().inAddr()!==this.$lastIP.inAddr()&&(c.length?(b=ia(c),b=b.exclude(this.$lastIP.next())):b=a.exclude(this.$lastIP.next()),d=this.$lastIP.inAddr(),b.forEach(function(a){a.getLastIP().inAddr()<=d&&c.push(a)}))}return F.prototype.sort(c)},getSpanNetwork:function(){var a=this.getFirstIP().inAddr()+"",c=this.getLastIP().inAddr()+"",b,d=a.length,e=[];for(b=0;b<d;b++)e.push(H((a.charCodeAt(b)^c.charCodeAt(b)).toString(16),2,"0",0));c=k.prototype.parseInAddr(Y(e.join("")));a=(S(/^(0*)/,c.toBin(),!0)[1]+"").length;c=k.prototype.parseBin(H(L(this.getFirstIP().toBin(),0,a),c.getMaxPrefixLength(),"0"));return new F(c,F.prototype.prefix2netmask(a,c.getVersion()))},sort:function(a){return a.sort(function(a,b){var c=w(a.getFirstIP().inAddr(),b.getFirstIP().inAddr());return c?c:w(a.getLastIP().inAddr(),b.getLastIP().inAddr())})},merge:function(a){a=D.prototype.sort(a);for(var c=0;c<a.length-1;)0<=w(a[c].getLastIP().next().inAddr(),a[c+1].getFirstIP().inAddr())?(a[c].setLastIP(a[c+1].getLastIP()),a.splice(c+1,1)):++c;return a},current:function(){return this.$firstIP.next(this.$position)},key:function(){return this.$position},next:function(){++this.$position},rewind:function(){this.$position=0},valid:function(){return 0>=w(X(this.$firstIP.next(this.$position).inAddr()),X(this.$lastIP.inAddr()))},count:function(){var a=this.$lastIP.toLong();var c=this.$firstIP.toLong();a=x(a).minus(c);return P(a,1)}};u.IP=k;u.Network=F;u.Range=D;var p={};"abcdefg".split("").map(function(a){p[a]=I.getElementById(a)});var oa=p.g?p.g.firstChild.cloneNode(!1):null;T(p.a,"click",function(a){a.value="";K()},p.c);T(p.b,"click",function(a){a.value="";K()},p.d);T(p.e,"click",function(a,c){var b=fa(a.value);try{var d,e=[];var f=0;for(d=b.length;f<d;++f)b[f]&&(b[f]=b[f].split("-").map(function(a){return a.trim()}),1===b[f].length&&b[f].push(b[f][0]),2===b[f].length&&(b[f][1]=b[f][1]||b[f][0],b[f][0]=b[f][0]||b[f][1],b[f][0]&&b[f][1]&&e.push(new D(new k(b[f][0]),new k(b[f][1])))));e=D.prototype.merge(e);var g=x(0);c.value="";f=0;for(d=e.length;f<d;++f)g=P(g,e[f].count(),1),e[f].getNetworks().forEach(function(a){c.value+=a+"\n"});K(g.gt(x(0))?g:null)}catch(h){K(h.message)}},p.c,p.d);T(p.f,"click",function(a,c){var b=fa(a.value);try{var d,e=[];var f=0;for(d=b.length;f<d;++f)b[f]&&e.push(D.prototype.parse(b[f]));e=D.prototype.merge(e);var g=x(0);c.value="";f=0;for(d=e.length;f<d;++f)g=P(g,e[f].count(),1),c.value+=e[f].getFirstIP()+" - "+e[f].getLastIP()+"\n";K(g.gt(x(0))?g:null)}catch(h){K(h.message)}},p.d,p.c)})(window,document);
classes/class-ip-geo-block-opts.php CHANGED
@@ -70,8 +70,8 @@ class IP_Geo_Block_Opts {
70
'retry' => 0, // Number of retry to download
71
'cycle' => 30, // Updating cycle (days)
72
),
73
- // since version 2.0.8
74
- 'priority' => 0, // Action priority for WP-ZEP
75
// since version 2.2.0
76
'anonymize' => FALSE, // Anonymize IP address to hide privacy
77
'signature' => '../,/wp-config.php,/passwd', // malicious signature
@@ -251,9 +251,6 @@ class IP_Geo_Block_Opts {
251
if ( version_compare( $version, '2.0.0' ) < 0 )
252
$settings = $default;
253
254
- if ( version_compare( $version, '2.0.8' ) < 0 )
255
- $settings['priority'] = $default['priority'];
256
-
257
if ( version_compare( $version, '2.1.0' ) < 0 ) {
258
foreach ( array( 'plugins', 'themes' ) as $tmp ) {
259
$settings['validation'][ $tmp ] = $default['validation'][ $tmp ];
@@ -392,13 +389,16 @@ class IP_Geo_Block_Opts {
392
}
393
}
394
395
// save package version number
396
$settings['version'] = IP_Geo_Block::VERSION;
397
}
398
399
- // install addons for IP Geolocation database API ver. 1.1.11
400
$providers = IP_Geo_Block_Provider::get_addons();
401
- if ( empty( $providers ) || ! $settings['api_dir'] || version_compare( $version, '3.0.8' ) < 0 )
402
$settings['api_dir'] = self::install_api( $settings );
403
404
// update option table
70
'retry' => 0, // Number of retry to download
71
'cycle' => 30, // Updating cycle (days)
72
),
73
+ // since version 3.0.9
74
+ 'priority' => PHP_INT_MAX, // Action priority for WP-ZEP
75
// since version 2.2.0
76
'anonymize' => FALSE, // Anonymize IP address to hide privacy
77
'signature' => '../,/wp-config.php,/passwd', // malicious signature
251
if ( version_compare( $version, '2.0.0' ) < 0 )
252
$settings = $default;
253
254
if ( version_compare( $version, '2.1.0' ) < 0 ) {
255
foreach ( array( 'plugins', 'themes' ) as $tmp ) {
256
$settings['validation'][ $tmp ] = $default['validation'][ $tmp ];
389
}
390
}
391
392
+ if ( version_compare( $version, '3.0.9' ) < 0 )
393
+ $settings['priority'] = $default['priority'];
394
+
395
// save package version number
396
$settings['version'] = IP_Geo_Block::VERSION;
397
}
398
399
+ // install addons for IP Geolocation database API ver. 1.1.12
400
$providers = IP_Geo_Block_Provider::get_addons();
401
+ if ( empty( $providers ) || ! $settings['api_dir'] || version_compare( $version, '3.0.9' ) < 0 )
402
$settings['api_dir'] = self::install_api( $settings );
403
404
// update option table
classes/class-ip-geo-block.php CHANGED
@@ -15,7 +15,7 @@ class IP_Geo_Block {
15
* Unique identifier for this plugin.
16
*
17
*/
18
- const VERSION = '3.0.8';
19
const GEOAPI_NAME = 'ip-geo-api';
20
const PLUGIN_NAME = 'ip-geo-block';
21
const OPTION_NAME = 'ip_geo_block_settings';
@@ -54,12 +54,12 @@ class IP_Geo_Block {
54
$validate = $settings['validation'];
55
$live_log = get_transient( IP_Geo_Block::PLUGIN_NAME . '-live-log' );
56
57
- // get client IP address
58
- self::$remote_addr = IP_Geo_Block_Util::get_client_ip( $validate['proxy'] );
59
-
60
// include drop in if it exists
61
file_exists( $key = IP_Geo_Block_Util::unslashit( $settings['api_dir'] ) . '/drop-in.php' ) and include( $key );
62
63
// normalize requested uri and page
64
$key = preg_replace( array( '!\.+/!', '!//+!' ), '/', $_SERVER['REQUEST_URI'] );
65
$this->request_uri = @parse_url( $key, PHP_URL_PATH ) or $this->request_uri = $key;
@@ -95,7 +95,7 @@ class IP_Geo_Block {
95
if ( 'admin' !== $this->target_type )
96
$loader->add_action( 'init', array( $this, 'validate_direct' ), $priority );
97
else // 'widget_init' for admin dashboard
98
- $loader->add_action( 'wp_loaded', array( $this, 'validate_admin' ), $priority );
99
}
100
101
// analize core validation target (comment|xmlrpc|login|public)
@@ -251,13 +251,17 @@ class IP_Geo_Block {
251
* Get current IP address
252
*
253
*/
254
- public static function get_ip_address() {
255
if ( ! self::$remote_addr ) {
256
- $settings = self::get_option();
257
- self::$remote_addr = IP_Geo_Block_Util::get_client_ip( $settings['validation']['proxy'] );
258
}
259
260
- return apply_filters( self::PLUGIN_NAME . '-ip-addr', self::$remote_addr );
261
}
262
263
/**
@@ -729,7 +733,7 @@ class IP_Geo_Block {
729
public function check_nonce( $validate, $settings ) {
730
// should be passed when nonce is valid. can't overwrite existing result
731
$nonce = IP_Geo_Block_Util::retrieve_nonce( $action = self::PLUGIN_NAME . '-auth-nonce' );
732
- return $validate + array( 'result' => IP_Geo_Block_Util::verify_nonce( $nonce, $action ) ? 'passed' : 'wp-zep' );
733
}
734
735
public function check_signature( $validate, $settings ) {
15
* Unique identifier for this plugin.
16
*
17
*/
18
+ const VERSION = '3.0.9';
19
const GEOAPI_NAME = 'ip-geo-api';
20
const PLUGIN_NAME = 'ip-geo-block';
21
const OPTION_NAME = 'ip_geo_block_settings';
54
$validate = $settings['validation'];
55
$live_log = get_transient( IP_Geo_Block::PLUGIN_NAME . '-live-log' );
56
57
// include drop in if it exists
58
file_exists( $key = IP_Geo_Block_Util::unslashit( $settings['api_dir'] ) . '/drop-in.php' ) and include( $key );
59
60
+ // get client IP address
61
+ self::$remote_addr = self::get_ip_address( $settings );
62
+
63
// normalize requested uri and page
64
$key = preg_replace( array( '!\.+/!', '!//+!' ), '/', $_SERVER['REQUEST_URI'] );
65
$this->request_uri = @parse_url( $key, PHP_URL_PATH ) or $this->request_uri = $key;
95
if ( 'admin' !== $this->target_type )
96
$loader->add_action( 'init', array( $this, 'validate_direct' ), $priority );
97
else // 'widget_init' for admin dashboard
98
+ $loader->add_action( 'admin_init', array( $this, 'validate_admin' ), $priority );
99
}
100
101
// analize core validation target (comment|xmlrpc|login|public)
251
* Get current IP address
252
*
253
*/
254
+ public static function get_ip_address( $settings = NULL ) {
255
if ( ! self::$remote_addr ) {
256
+ $settings or $settings = self::get_option();
257
+
258
+ self::$remote_addr = apply_filters(
259
+ self::PLUGIN_NAME . '-ip-addr',
260
+ IP_Geo_Block_Util::get_client_ip( $settings['validation']['proxy'] )
261
+ );
262
}
263
264
+ return self::$remote_addr;
265
}
266
267
/**
733
public function check_nonce( $validate, $settings ) {
734
// should be passed when nonce is valid. can't overwrite existing result
735
$nonce = IP_Geo_Block_Util::retrieve_nonce( $action = self::PLUGIN_NAME . '-auth-nonce' );
736
+ return $validate + array( 'result' => IP_Geo_Block_Util::verify_nonce( $nonce, $action ) || 'XX' === $validate['code'] ? 'passed' : 'wp-zep' );
737
}
738
739
public function check_signature( $validate, $settings ) {
ip-geo-block.php CHANGED
@@ -13,7 +13,7 @@
13
* Plugin Name: IP Geo Block
14
* Plugin URI: http://wordpress.org/plugins/ip-geo-block/
15
* Description: It blocks any spams, login attempts and malicious access to the admin area posted from outside your nation, and also prevents zero-day exploit.
16
- * Version: 3.0.8
17
* Author: tokkonopapa
18
* Author URI: http://www.ipgeoblock.com/
19
* Text Domain: ip-geo-block
13
* Plugin Name: IP Geo Block
14
* Plugin URI: http://wordpress.org/plugins/ip-geo-block/
15
* Description: It blocks any spams, login attempts and malicious access to the admin area posted from outside your nation, and also prevents zero-day exploit.
16
+ * Version: 3.0.9
17
* Author: tokkonopapa
18
* Author URI: http://www.ipgeoblock.com/
19
* Text Domain: ip-geo-block
languages/ip-geo-block-ja.mo CHANGED
Binary file
languages/ip-geo-block-ja.po CHANGED
@@ -2,10 +2,10 @@
2
# This file is distributed under the same license as the IP Geo Block package.
3
msgid ""
4
msgstr ""
5
- "Project-Id-Version: IP Geo Block 3.0.8\n"
6
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/ip-geo-block\n"
7
- "POT-Creation-Date: 2018-02-04 12:53+0900\n"
8
- "PO-Revision-Date: 2018-02-04 14:54+0900\n"
9
"Language-Team: \n"
10
"MIME-Version: 1.0\n"
11
"Content-Type: text/plain; charset=UTF-8\n"
@@ -79,7 +79,7 @@ msgid "The selected row cannot be found in the visible area."
79
msgstr "可視領域に選択された行が見つかりません。"
80
81
#: admin/class-ip-geo-block-admin.php:278
82
- #: admin/class-ip-geo-block-admin.php:1417
83
#, php-format
84
msgid "An error occurred while executing the ajax command `%s`."
85
msgstr "Ajaxコマンド `%s` の実行中にエラーが発生しました。"
@@ -148,27 +148,33 @@ msgstr "$_POST データ"
148
msgid "Contribute on GitHub"
149
msgstr "開発に参加"
150
151
- #: admin/class-ip-geo-block-admin.php:336 admin/class-ip-geo-block-admin.php:444
152
- #: admin/class-ip-geo-block-admin.php:659 admin/class-ip-geo-block-admin.php:678
153
msgid "Settings"
154
msgstr "設定"
155
156
- #: admin/class-ip-geo-block-admin.php:424 admin/class-ip-geo-block-admin.php:425
157
- #: admin/class-ip-geo-block-admin.php:435 admin/class-ip-geo-block-admin.php:436
158
- #: admin/class-ip-geo-block-admin.php:443 admin/class-ip-geo-block-admin.php:451
159
msgid "IP Geo Block"
160
msgstr "IP Geo Block"
161
162
- #: admin/class-ip-geo-block-admin.php:452 admin/class-ip-geo-block-admin.php:663
163
- #: admin/class-ip-geo-block-admin.php:679
164
msgid "Site List"
165
msgstr "サイト一覧"
166
167
- #: admin/class-ip-geo-block-admin.php:481
168
msgid "You need WordPress 3.7+."
169
msgstr "WordPress 3.7&thinsp;以上が必要です。"
170
171
- #: admin/class-ip-geo-block-admin.php:487
172
#, php-format
173
msgid ""
174
"Now downloading geolocation databases in background. After a little while, "
@@ -179,7 +185,7 @@ msgstr ""
179
"た後、あなたの国コードと[<strong>マッチング規則</strong>]を[<a href=\"%s\">"
180
"検証ルールの設定</a>]で確認して下さい。"
181
182
- #: admin/class-ip-geo-block-admin.php:493
183
#, php-format
184
msgid ""
185
"The &#8220;<strong>Matching rule</strong>&#8221; is not set properly. Please "
@@ -188,11 +194,11 @@ msgstr ""
188
"[<strong>マッチング規則</strong>]が正しく設定されていません。[<a href=\"%s"
189
"\">検証ルールの設定</a>]を確認して下さい。"
190
191
- #: admin/class-ip-geo-block-admin.php:502
192
msgid "Local database and matching rule have been updated."
193
msgstr "ローカル・データベースとマッチング規則を更新しました。"
194
195
- #: admin/class-ip-geo-block-admin.php:513
196
msgid ""
197
"Once you logout, you will be unable to login again because the number of "
198
"login attempts reaches the limit."
@@ -200,7 +206,7 @@ msgstr ""
200
"あなたのIPアドレスのログイン試行可能回数がリミットに達したため、ログアウトする"
201
"と再びログインする事が出来なくなります。"
202
203
- #: admin/class-ip-geo-block-admin.php:515
204
#, php-format
205
msgid ""
206
"Please execute \"<strong>Clear cache</strong>\" on <a href=\"%s\">Statistics "
@@ -209,7 +215,7 @@ msgstr ""
209
"<a href=\"%s\">[統計]タブ</a>の[<strong>キャッシュのクリア</strong>]を実行"
210
"し、ロックアウトを回避してください。"
211
212
- #: admin/class-ip-geo-block-admin.php:525
213
msgid ""
214
"Once you logout, you will be unable to login again because your country code "
215
"or IP address is in the blacklist."
@@ -217,7 +223,7 @@ msgstr ""
217
"あなたの国コードまたはIPアドレスがブラックリストに含まれているため、ログアウト"
218
"すると再びログインする事が出来なくなります。"
219
220
- #: admin/class-ip-geo-block-admin.php:526
221
msgid ""
222
"Once you logout, you will be unable to login again because your country code "
223
"or IP address is not in the whitelist."
@@ -225,12 +231,12 @@ msgstr ""
225
"あなたの国コードまたはIPアドレスがホワイトリストに含まれていないため、ログアウ"
226
"トすると再びログインする事が出来なくなります。"
227
228
- #: admin/class-ip-geo-block-admin.php:530
229
#, php-format
230
msgid "Please check your &#8220;%sValidation rule settings%s&#8221;."
231
msgstr "[%s検証ルールの設定%s]を確認して下さい。"
232
233
- #: admin/class-ip-geo-block-admin.php:534
234
#, php-format
235
msgid ""
236
"Please confirm your local geolocation databases at &#8220;%sLocal database "
@@ -240,7 +246,7 @@ msgstr ""
240
"[%sローカル・データベースの設定%s]で位置情報データベースを確認し、[%sキャッ"
241
"シュの統計%s]でキャッシュされているあなたのIPアドレスを削除して下さい。"
242
243
- #: admin/class-ip-geo-block-admin.php:547
244
msgid ""
245
"&#8220;mu-plugins&#8221; (ip-geo-block-mu.php) at &#8220;Validation "
246
"timing&#8221; is imcompatible with <strong>IP Geo Allow</strong>. Please "
@@ -250,31 +256,31 @@ msgstr ""
250
"されていますが、<strong>IP Geo Allow</strong> と互換性がありません。「&#8220;"
251
"init&#8221; アクション・フック」を選択してください。"
252
253
- #: admin/class-ip-geo-block-admin.php:660
254
msgid "Statistics"
255
msgstr "統計"
256
257
- #: admin/class-ip-geo-block-admin.php:661
258
msgid "Logs"
259
msgstr "ログ"
260
261
- #: admin/class-ip-geo-block-admin.php:662
262
msgid "Search"
263
msgstr "検索"
264
265
- #: admin/class-ip-geo-block-admin.php:664
266
msgid "Attribution"
267
msgstr "リンク"
268
269
- #: admin/class-ip-geo-block-admin.php:690
270
msgid "Network wide"
271
msgstr "ネットワーク一括管理"
272
273
- #: admin/class-ip-geo-block-admin.php:703
274
msgid "Toggle all"
275
msgstr "全てを開閉"
276
277
- #: admin/class-ip-geo-block-admin.php:706
278
msgid ""
279
"Independent of &#8220;Statistics and Logs settings&#8221;, you can see all "
280
"the requests validated by this plugin in almost real time."
@@ -282,45 +288,45 @@ msgstr ""
282
"[統計とログの設定]にかかわらず、このプラグインによる検証結果のすべてを、ほぼ"
283
"リアルタイムに表示します。"
284
285
- #: admin/class-ip-geo-block-admin.php:706 admin/includes/tab-accesslog.php:37
286
msgid "Live update"
287
msgstr "ライブアップデート"
288
289
- #: admin/class-ip-geo-block-admin.php:710
290
msgid "Open a new window on clicking the link in the chart."
291
msgstr "チャート内のリンクをクリックすると、新しいウィンドウが開きます。"
292
293
- #: admin/class-ip-geo-block-admin.php:710
294
msgid "Open a new window"
295
msgstr "別窓で開く"
296
297
- #: admin/class-ip-geo-block-admin.php:733
298
msgid "Thanks for providing these great services for free."
299
msgstr "これらのすばらしいサービスの提供元に、敬意と感謝の意を表します!"
300
301
- #: admin/class-ip-geo-block-admin.php:734
302
msgid ""
303
- "(Most browsers will redirect you to each site <a href=\"http://www.ipgeoblock."
304
- "com/etc/referer.html\" title=\"Referer Checker\">without referrer when you "
305
- "click the link</a>.)"
306
msgstr ""
307
"(ほとんどのブラウザでは、<a href=\"http://www.ipgeoblock.com/etc/referer.html"
308
"\" title=\"Referer Checker\">参照元を残さずにリンク先にリダイレクトできます</"
309
"a>。)"
310
311
- #: admin/class-ip-geo-block-admin.php:739
312
msgid "Back to top"
313
msgstr "トップに戻る"
314
315
- #: admin/class-ip-geo-block-admin.php:836
316
msgid "Enable"
317
msgstr "有効"
318
319
- #: admin/class-ip-geo-block-admin.php:851
320
msgid "Select one"
321
msgstr "何れかを選択"
322
323
- #: admin/class-ip-geo-block-admin.php:1240
324
#: admin/includes/class-admin-rewrite.php:194
325
#: classes/class-ip-geo-block-cron.php:228
326
#: classes/class-ip-geo-block-cron.php:332
@@ -330,7 +336,7 @@ msgstr "何れかを選択"
330
msgid "Unable to write <code>%s</code>. Please check the permission."
331
msgstr "<code>%s</code> に書き込めません。パーミッションをチェックして下さい。"
332
333
- #: admin/class-ip-geo-block-admin.php:1270
334
msgid "Settings saved."
335
msgstr "設定を保存しました。"
336
@@ -338,8 +344,8 @@ msgstr "設定を保存しました。"
338
msgid "n/a"
339
msgstr "不明"
340
341
- #: admin/includes/class-admin-ajax.php:77 admin/includes/tab-settings.php:76
342
- #: admin/includes/tab-settings.php:96
343
msgid "UNKNOWN"
344
msgstr "不明"
345
@@ -371,101 +377,99 @@ msgstr "%s&thinsp;で既に「auto_prepend_file」が設定されています。
371
msgid "Validation logs"
372
msgstr "検証のログ"
373
374
- #: admin/includes/tab-accesslog.php:52 admin/includes/tab-settings.php:452
375
msgid "Comment post"
376
msgstr "コメント投稿"
377
378
- #: admin/includes/tab-accesslog.php:53 admin/includes/tab-settings.php:453
379
msgid "XML-RPC"
380
msgstr "XML-RPC"
381
382
- #: admin/includes/tab-accesslog.php:54 admin/includes/tab-settings.php:454
383
msgid "Login form"
384
msgstr "ログイン・フォーム"
385
386
- #: admin/includes/tab-accesslog.php:55 admin/includes/tab-settings.php:455
387
msgid "Admin area"
388
msgstr "管理領域"
389
390
- #: admin/includes/tab-accesslog.php:56 admin/includes/tab-settings.php:457
391
msgid "Public facing pages"
392
msgstr "一般公開ページ"
393
394
- #: admin/includes/tab-accesslog.php:59 admin/includes/tab-network.php:76
395
msgid "All"
396
msgstr "全て"
397
398
- #: admin/includes/tab-accesslog.php:69
399
msgid "Select target"
400
msgstr "対象を選択"
401
402
- #: admin/includes/tab-accesslog.php:85
403
msgid "Search in logs"
404
msgstr "ログを検索"
405
406
- #: admin/includes/tab-accesslog.php:94 admin/includes/tab-statistics.php:235
407
msgid "Reset"
408
msgstr "リセット"
409
410
- #: admin/includes/tab-accesslog.php:102 admin/includes/tab-statistics.php:242
411
msgid "Bulk action"
412
msgstr "選択して実行"
413
414
- #: admin/includes/tab-accesslog.php:113 admin/includes/tab-statistics.php:254
415
msgid "Add IP address to &#8220;Whitelist&#8221;"
416
msgstr "IPアドレスをホワイトリストへ追加"
417
418
- #: admin/includes/tab-accesslog.php:114 admin/includes/tab-statistics.php:255
419
msgid "Add IP address to &#8220;Blacklist&#8221;"
420
msgstr "IPアドレスをブラックリストへ追加"
421
422
- #: admin/includes/tab-accesslog.php:115 admin/includes/tab-statistics.php:256
423
msgid "Add AS number to &#8220;Whitelist&#8221;"
424
msgstr "AS番号をホワイトリストへ追加"
425
426
- #: admin/includes/tab-accesslog.php:116 admin/includes/tab-statistics.php:257
427
msgid "Add AS number to &#8220;Blacklist&#8221;"
428
msgstr "AS番号をブラックリストへ追加"
429
430
- #: admin/includes/tab-accesslog.php:118 admin/includes/tab-network.php:56
431
#: admin/includes/tab-statistics.php:259
432
msgid "Apply"
433
msgstr "実行する"
434
435
- #: admin/includes/tab-accesslog.php:126 admin/includes/tab-statistics.php:198
436
msgid "Clear logs"
437
msgstr "ログをクリア"
438
439
- #: admin/includes/tab-accesslog.php:134 admin/includes/tab-statistics.php:173
440
#: admin/includes/tab-statistics.php:206 admin/includes/tab-statistics.php:274
441
msgid "Clear all"
442
msgstr "全てをクリア"
443
444
- #: admin/includes/tab-accesslog.php:144
445
msgid "Export logs"
446
msgstr "ログをエクスポート"
447
448
- #: admin/includes/tab-accesslog.php:150 admin/includes/tab-settings.php:1517
449
msgid "Export to the local file"
450
msgstr "ローカル・ファイルへエクスポートする"
451
452
- #: admin/includes/tab-accesslog.php:150
453
msgid "Export csv"
454
msgstr "CSVへエクスポート"
455
456
- #: admin/includes/tab-accesslog.php:167 admin/includes/tab-network.php:112
457
- #: admin/includes/tab-statistics.php:397
458
- msgid ""
459
- "[<strong>Record validation logs</strong>] on [<strong>Settings</strong>] tab "
460
- "is [<strong>Disable</strong>]."
461
- msgstr ""
462
- "[<strong>設定</strong>]タブの[<strong>検証のログを記録</strong>]に"
463
- "[<strong>無効</strong>]が選択されています。"
464
465
- #: admin/includes/tab-accesslog.php:168 admin/includes/tab-network.php:113
466
msgid ""
467
- "Please select the proper condition to record and analyze the validation logs."
468
- msgstr "検証のログを記録し分析するためには、適切な条件を選択して下さい。"
469
470
#: admin/includes/tab-attribution.php:16
471
msgid "Attribution links"
@@ -523,7 +527,7 @@ msgstr "取得する期間"
523
msgid "Validation rule settings"
524
msgstr "検証ルールの設定"
525
526
- #: admin/includes/tab-settings.php:68
527
msgid ""
528
"<dfn title=\"You can confirm the appropriate Geolocation APIs and country "
529
"code by referring &#8220;Scan country code&#8221;.\">Your IP address / "
@@ -532,15 +536,15 @@ msgstr ""
532
"<dfn title=\"[国コードを検索する]を参照し、適切な位置情報APIと国コードを設定"
533
"して下さい。\">あなたのIPアドレス / 国コード</dfn>"
534
535
- #: admin/includes/tab-settings.php:77 admin/includes/tab-settings.php:97
536
msgid "Scan all the APIs you selected at Geolocation API settings"
537
msgstr "選択された位置情報APIを検索します"
538
539
- #: admin/includes/tab-settings.php:77 admin/includes/tab-settings.php:97
540
msgid "Scan country code"
541
msgstr "国コードを検索する"
542
543
- #: admin/includes/tab-settings.php:88
544
msgid ""
545
"<dfn title=\"You can confirm the appropriate Geolocation APIs and country "
546
"code by referring &#8220;Scan country code&#8221;.\">Server IP address / "
@@ -549,26 +553,27 @@ msgstr ""
549
"<dfn title=\"[国コードを検索する]を参照し、適切な位置情報APIと国コードを設定"
550
"して下さい。\">サーバーのIPアドレス / 国コード</dfn>"
551
552
- #: admin/includes/tab-settings.php:105
553
msgid "Whitelist"
554
msgstr "ホワイトリスト"
555
556
- #: admin/includes/tab-settings.php:106
557
msgid "Blacklist"
558
msgstr "ブラックリスト"
559
560
- #: admin/includes/tab-settings.php:110
561
- msgid "Please select either &#8220;Whitelist&#8221; or &#8220;Blacklist&#8221;."
562
msgstr "「ホワイトリスト」または「ブラックリスト」のいずれかを選択して下さい。"
563
564
- #: admin/includes/tab-settings.php:111
565
msgid ""
566
"<dfn title=\"&#8220;Block by country&#8221; will be bypassed in case of "
567
"empty. The special code &#8220;XX&#8221; is assigned as private IP address "
568
- "including localhost. And &#8220;ZZ&#8221; is for unknown IP address (i.e. not "
569
- "in the geolocation databases). Please use &#8220;YY&#8221; if you need the "
570
- "code that does not correspond to any of the countries.\">Whitelist of country "
571
- "code</dfn>"
572
msgstr ""
573
"<dfn title=\"空欄の場合、「国コードで遮断」はバイパスされます。特別なコード"
574
"「XX」は、localhost&thinsp;を含むプライベート・アドレスに割り当てられ、また"
@@ -576,14 +581,14 @@ msgstr ""
576
"いことが必要な場合には、「YY」を指定してください。\">国コードのホワイトリスト"
577
"</dfn>"
578
579
- #: admin/includes/tab-settings.php:112
580
msgid ""
581
"<dfn title=\"&#8220;Block by country&#8221; will be bypassed in case of "
582
"empty. The special code &#8220;XX&#8221; is assigned as private IP address "
583
- "including localhost. And &#8220;ZZ&#8221; is for unknown IP address (i.e. not "
584
- "in the geolocation databases). Please use &#8220;YY&#8221; if you need the "
585
- "code that does not correspond to any of the countries.\">Blacklist of country "
586
- "code</dfn>"
587
msgstr ""
588
"<dfn title=\"空欄の場合、「国コードで遮断」はバイパスされます。特別なコード"
589
"「XX」は、localhost&thinsp;を含むプライベート・アドレスに割り当てられ、また"
@@ -591,23 +596,23 @@ msgstr ""
591
"いことが必要な場合には、「YY」を指定してください。\">国コードのブラックリスト"
592
"</dfn>"
593
594
- #: admin/includes/tab-settings.php:116
595
msgid "(comma separated)"
596
msgstr "(カンマ区切り)"
597
598
- #: admin/includes/tab-settings.php:117
599
msgid "(comma or RET separated)"
600
msgstr "(カンマ、改行区切り)"
601
602
- #: admin/includes/tab-settings.php:118
603
msgid "Toggle selection"
604
msgstr "選択を切り替える"
605
606
- #: admin/includes/tab-settings.php:119
607
msgid "Find blocked requests in &#8220;Logs&#8220;"
608
msgstr "ログから遮断されたリクエストを検索する"
609
610
- #: admin/includes/tab-settings.php:120
611
msgid ""
612
"Before adding as &#8220;Exception&#8221;, please click on &#8220;<a class="
613
"\"ip-geo-block-icon ip-geo-block-icon-alert\" title=\"This button is just a "
@@ -619,7 +624,11 @@ msgstr ""
619
"す。\"><span></span></a>&#8221;(もしあれば)をクリックし、遮断されたリクエス"
620
"トに悪意のないことを確認して下さい。"
621
622
- #: admin/includes/tab-settings.php:127 admin/includes/tab-settings.php:791
623
msgid "Matching rule"
624
msgstr "マッチング規則"
625
@@ -651,21 +660,20 @@ msgstr ""
651
652
#: admin/includes/tab-settings.php:197
653
#, php-format
654
- msgid ""
655
- "Some useful tools for investigating ASN are introduced in &#8220;%s&#8221;."
656
msgstr "AS番号の検索に役立つツールを &#8220;%s&#8221; に紹介しています。"
657
658
#: admin/includes/tab-settings.php:206
659
msgid ""
660
"<dfn title=\"e.g. &#8220;192.0.64.0/18&#8221; for Jetpack server, "
661
- "&#8220;69.46.36.0/27&#8221; for WordFence server or &#8220;AS32934&#8221; for "
662
- "Facebook.\">Whitelist of extra IP addresses prior to country code</dfn>"
663
msgstr ""
664
"<dfn title=\"例)192.0.64.0/18(Jetpackサーバー)、69.46.36.0/27(WordFence"
665
"サーバー)、AS32934(Facebook)\">国コードに優先して検証するIPアドレスのホワイ"
666
"トリスト</dfn>"
667
668
- #: admin/includes/tab-settings.php:226
669
msgid ""
670
"<dfn title=\"Server level access control is recommended (e.g. .htaccess)."
671
"\">Blacklist of extra IP addresses prior to country code</dfn>"
@@ -673,7 +681,7 @@ msgstr ""
673
"<dfn title=\"サーバー・レベルのアクセス制御の使用をお勧めします(例:."
674
"htaccess)。\">国コードに優先して検証するIPアドレスのブラックリスト</dfn>"
675
676
- #: admin/includes/tab-settings.php:247
677
msgid ""
678
"<dfn title=\"If your server is placed behind the proxy server or the load "
679
"balancing server, you need to put the appropriate key such as &#8220;"
@@ -687,7 +695,7 @@ msgstr ""
687
"を指定してください。\">IPアドレスを追加抽出する&thinsp;$_SERVER&thinsp;のキー"
688
"</dfn>"
689
690
- #: admin/includes/tab-settings.php:266
691
msgid ""
692
"<dfn title=\"It validates malicious signatures independently of &#8220;Block "
693
"by country&#8221; and &#8220;Prevent Zero-day Exploit&#8221; for the target "
@@ -704,14 +712,14 @@ msgstr ""
704
"block-decode\" title=\"文字化けした場合、クリックして復元して下さ"
705
"い。\"><span></span></a>)</nobr>"
706
707
- #: admin/includes/tab-settings.php:280
708
msgid ""
709
"<dfn title=\"Select allowed MIME type.\">Whitelist of allowed MIME type</dfn>"
710
msgstr ""
711
"<dfn title=\"許可する&thinsp;MIME&thinsp;タイプを指定します。\">許可する"
712
"&thinsp;MIME&thinsp;タイプのホワイトリスト</dfn>"
713
714
- #: admin/includes/tab-settings.php:291
715
msgid ""
716
"<dfn title=\"Put forbidden file extensions.\">Blacklist of forbidden file "
717
"extensions</dfn>"
@@ -719,7 +727,7 @@ msgstr ""
719
"<dfn title=\"禁止するファイルの拡張子を設定します。\">禁止するファイル拡張子の"
720
"ブラックリスト</dfn>"
721
722
- #: admin/includes/tab-settings.php:295
723
msgid ""
724
"<dfn title=\"Specify the capabilities to be verified. Depending on the "
725
"particular type of uploader, certain capability may be required. Default is "
@@ -731,7 +739,7 @@ msgstr ""
731
"(Editor)、投稿者(Author)向けの「upload_files」です。空欄の場合、この検証は"
732
"スキップされます。\">検証する権限</dfn>"
733
734
- #: admin/includes/tab-settings.php:295
735
msgid ""
736
"(&thinsp;See &#8220;<a rel=\"noreferrer\" href=\"https://codex.wordpress.org/"
737
"Roles_and_Capabilities\" title=\"Roles and Capabilities &laquo; WordPress "
@@ -742,7 +750,7 @@ msgstr ""
742
"title=\"ユーザーの種類と権限 - WordPress Codex 日本語版\">ユーザーの種類と権限"
743
"</a>&#8220; を参照)"
744
745
- #: admin/includes/tab-settings.php:302
746
msgid ""
747
"<dfn title=\"It restricts the file types on upload in order to block malware "
748
"and backdoor via both back-end and front-end. Please consider to select "
@@ -756,20 +764,20 @@ msgstr ""
756
"plugins&#8221; (ip-geo-block-mu.php)」に設定することを検討してください。\">悪"
757
"意のあるアップロード防止</dfn>"
758
759
- #: admin/includes/tab-settings.php:313 admin/includes/tab-settings.php:494
760
- #: admin/includes/tab-settings.php:618 admin/includes/tab-settings.php:1231
761
msgid "Disable"
762
msgstr "無効"
763
764
- #: admin/includes/tab-settings.php:314
765
msgid "Verify file extension and MIME type"
766
msgstr "拡張子と&thinsp;MIME&thinsp;タイプを検証"
767
768
- #: admin/includes/tab-settings.php:315
769
msgid "Verify file extension only"
770
msgstr "ファイル拡張子のみを検証"
771
772
- #: admin/includes/tab-settings.php:325
773
#, php-format
774
msgid ""
775
"<dfn title=\"You can put your original 403.php and so on into your theme "
@@ -778,13 +786,13 @@ msgstr ""
778
"<dfn title=\"テーマ・ディレクトリには&thinsp;403.php&thinsp;など、独自のファイ"
779
"ルを設置する事が出来ます。\">レスポンス・コード</dfn> %s"
780
781
- #: admin/includes/tab-settings.php:355 admin/includes/tab-settings.php:878
782
msgid ""
783
"<dfn title=\"Specify the URL for response code 2xx and 3xx. If it is pointed "
784
- "to a public facing page, visitors would not be blocked on the page to prevent "
785
- "loop of redirection even when you enable [Block by country] in [Front-end "
786
- "target settings] section. Empty URL is altered to your home.\">Redirect URL</"
787
- "dfn>"
788
msgstr ""
789
"<dfn title=\"レスポンス・コード&thinsp;2xx&thinsp;、3xx&thinsp;用のリダイレク"
790
"ト先&thinsp;URL&thinsp;を指定します。リダイレクトのループを避けるため、自サイ"
@@ -792,7 +800,7 @@ msgstr ""
792
"ります。空欄の場合、サイトのホームが使用されます。\">リダイレクト先&thinsp;"
793
"URL</dfn>"
794
795
- #: admin/includes/tab-settings.php:373 admin/includes/tab-settings.php:897
796
msgid ""
797
"<dfn title=\"Specify the message for response code 4xx and 5xx.\">Response "
798
"message</dfn>"
@@ -800,7 +808,7 @@ msgstr ""
800
"<dfn title=\"レスポンス・コード&thinsp;4xx、5xx&thinsp;用のメッセージを指定し"
801
"ます。\">レスポンス・メッセージ</dfn>"
802
803
- #: admin/includes/tab-settings.php:390
804
msgid ""
805
"<dfn title=\"This is applied to &#8220;XML-RPC&#8221; and &#8220;Login "
806
"form&#8221;. Lockout period is defined as expiration time at &#8220;Cache "
@@ -810,23 +818,23 @@ msgstr ""
810
"間は[キャッシュの設定]の[有効時間]で定義します。\">IPアドレス当たりのログ"
811
"イン試行可能回数</dfn>"
812
813
- #: admin/includes/tab-settings.php:418
814
msgid "Select when to run the validation."
815
msgstr "検証を実行するタイミングを選択します。"
816
817
- #: admin/includes/tab-settings.php:418
818
msgid "Validation timing"
819
msgstr "検証のタイミング"
820
821
- #: admin/includes/tab-settings.php:429
822
msgid "&#8220;init&#8221; action hook"
823
msgstr "&#8220;init&#8221; アクション・フック"
824
825
- #: admin/includes/tab-settings.php:430
826
msgid "&#8220;mu-plugins&#8221; (ip-geo-block-mu.php)"
827
msgstr "&#8220;mu-plugins&#8221; (ip-geo-block-mu.php)"
828
829
- #: admin/includes/tab-settings.php:433
830
msgid ""
831
"Validate at &#8220;init&#8221; action hook in the same manner as typical "
832
"plugins."
@@ -834,7 +842,7 @@ msgstr ""
834
"標準的な他のプラグインと同様、init アクション・フックのタイミングで検証を実行"
835
"します。"
836
837
- #: admin/includes/tab-settings.php:434
838
msgid ""
839
"Validate at an earlier phase than other typical plugins. It can reduce load "
840
"on server but has <a rel='noreferrer' href='http://www.ipgeoblock.com/codex/"
@@ -846,52 +854,52 @@ msgstr ""
846
"codex/validation-timing.html' title='Validation timing | IP Geo Block'>幾つか"
847
"の制限事項</a>&thinsp;が生じます。"
848
849
- #: admin/includes/tab-settings.php:444
850
msgid "Back-end target settings"
851
msgstr "バックエンドの設定"
852
853
- #: admin/includes/tab-settings.php:450
854
#, php-format
855
msgid "<dfn title=\"Validate request to %s.\">%s</dfn>"
856
msgstr "<dfn title=\"%s へのリクエストを検証する\">%s</dfn>"
857
858
- #: admin/includes/tab-settings.php:456
859
msgid "Other areas"
860
msgstr "その他の領域"
861
862
- #: admin/includes/tab-settings.php:457
863
msgid "public facing pages"
864
msgstr "一般公開ページ"
865
866
- #: admin/includes/tab-settings.php:475 admin/includes/tab-settings.php:495
867
- #: admin/includes/tab-settings.php:528 admin/includes/tab-settings.php:534
868
- #: admin/includes/tab-settings.php:779
869
msgid "Block by country"
870
msgstr "国コードで遮断"
871
872
- #: admin/includes/tab-settings.php:496
873
msgid "Completely close"
874
msgstr "完全に閉鎖"
875
876
- #: admin/includes/tab-settings.php:529
877
msgid ""
878
"<dfn title=\"Specify the individual action as a blocking target.\">Target "
879
"actions</dfn>"
880
msgstr ""
881
"<dfn title=\"遮断対象とするアクションを指定します。\">対象アクション</dfn>"
882
883
- #: admin/includes/tab-settings.php:535
884
msgid "Prevent Zero-day Exploit"
885
msgstr "ゼロデイ攻撃を遮断"
886
887
- #: admin/includes/tab-settings.php:539
888
msgid ""
889
"It will block a request related to the services for both public facing pages "
890
"and the dashboard."
891
msgstr ""
892
"一般公開ページとダッシュボード向けサービスに関連するリクエストを遮断します。"
893
894
- #: admin/includes/tab-settings.php:540
895
msgid ""
896
"Regardless of the country code, it will block a malicious request related to "
897
"the services only for the dashboard."
@@ -899,24 +907,24 @@ msgstr ""
899
"国コードに拘らず、ダッシュボード向けサービスだけに関連する悪意のあるリクエスト"
900
"を遮断します。"
901
902
- #: admin/includes/tab-settings.php:563
903
msgid "admin post for logged-in user"
904
msgstr "認証済ユーザー用 admin post"
905
906
- #: admin/includes/tab-settings.php:564
907
msgid "admin post for non logged-in user"
908
msgstr "未認証ユーザー用 admin post"
909
910
- #: admin/includes/tab-settings.php:588
911
msgid "Admin ajax/post"
912
msgstr "管理領域&thinsp;ajax/post"
913
914
- #: admin/includes/tab-settings.php:602
915
msgid ""
916
"Specify the action name (&#8220;action=&hellip;&#8221;) or the page name "
917
- "(&#8220;page=&hellip;&#8221;) to prevent unintended blocking caused by &#8220;"
918
- "Block by country&#8221; (for non logged-in user) and &#8220;Prevent Zero-day "
919
- "Exploit&#8221; (for logged-in user)."
920
msgstr ""
921
"「国コードで遮断」(未認証ユーザーの場合)および「ゼロデイ攻撃を遮断」(認証済"
922
"みユーザーの場合)が、意図しない遮断の原因となる場合、アクション名(&#8220;"
@@ -924,20 +932,20 @@ msgstr ""
924
"(&#8220;page=&hellip;&#8221; の &#8220;&hellip;&#8221; 部分)を指定し、検証対"
925
"象から除外します。"
926
927
- #: admin/includes/tab-settings.php:602 admin/includes/tab-settings.php:680
928
- #: admin/includes/tab-settings.php:741
929
msgid "Exceptions"
930
msgstr "例外"
931
932
- #: admin/includes/tab-settings.php:603
933
msgid "Toggle with non logged-in user"
934
msgstr "未認証ユーザー用を含む項目に限定して表示する"
935
936
- #: admin/includes/tab-settings.php:606
937
msgid "Candidate actions/pages"
938
msgstr "候補&thinsp;アクション/ページ"
939
940
- #: admin/includes/tab-settings.php:620
941
#, php-format
942
msgid ""
943
"Regardless of the country code, it will block a malicious request to <code>"
@@ -946,15 +954,15 @@ msgstr ""
946
"国コードに拘らず、<code>%s&ctdot;/*.php</code>への悪意のあるリクエストを遮断し"
947
"ます。"
948
949
- #: admin/includes/tab-settings.php:621
950
msgid ""
951
- "Select the item which causes unintended blocking in order to exclude from the "
952
- "validation target. Grayed item indicates &#8220;INACTIVE&#8221;."
953
msgstr ""
954
"意図しない遮断の原因となる項目を選択し、検証対象から除外します。灰色で表示され"
955
"た項目は、「非アクティブ」であることを示しています。"
956
957
- #: admin/includes/tab-settings.php:622
958
#, php-format
959
msgid ""
960
"It configures &#8220;%s&#8221; to validate a request to the PHP file which "
@@ -965,31 +973,31 @@ msgstr ""
965
"に、%s を設定します。ドットで始まる隠しファイルへのアクセス拒否がサーバー側で"
966
"設定されていることを確認して下さい。"
967
968
- #: admin/includes/tab-settings.php:623
969
msgid "Sorry, but your server type is not supported."
970
msgstr "このサーバーではサポートされません。"
971
972
- #: admin/includes/tab-settings.php:659 admin/includes/tab-settings.php:720
973
msgid "Force to load WP core"
974
msgstr "WPコアの読み込みを強制"
975
976
- #: admin/includes/tab-settings.php:664
977
msgid "Plugins area"
978
msgstr "プラグイン領域"
979
980
- #: admin/includes/tab-settings.php:725
981
msgid "Themes area"
982
msgstr "テーマ領域"
983
984
- #: admin/includes/tab-settings.php:760
985
msgid "Front-end target settings"
986
msgstr "フロントエンドの設定"
987
988
- #: admin/includes/tab-settings.php:784
989
msgid "Follow &#8220;Validation rule settings&#8221;"
990
msgstr "[検証ルールの設定]に従う"
991
992
- #: admin/includes/tab-settings.php:846
993
#, php-format
994
msgid ""
995
"<dfn title=\"You can configure a different response code from the Back-end. "
@@ -1000,12 +1008,12 @@ msgstr ""
1000
"フィリエイト・プログラムに対する違反を防止するのに役立つでしょう。\">レスポン"
1001
"ス・コード</dfn> %s"
1002
1003
- #: admin/includes/tab-settings.php:912
1004
msgid ""
1005
"<dfn title=\"Specify the individual page as a blocking target.\">Page</dfn>"
1006
msgstr "<dfn title=\"特定のページを遮断対象に指定します。\">ページ</dfn>"
1007
1008
- #: admin/includes/tab-settings.php:924
1009
msgid ""
1010
"<dfn title=\"Specify the individual post type on a single page as a blocking "
1011
"target.\">Post type</dfn>"
@@ -1013,73 +1021,74 @@ msgstr ""
1013
"<dfn title=\"特定の投稿タイプのシングルページを遮断対象に指定します。\">投稿タ"
1014
"イプ</dfn>"
1015
1016
- #: admin/includes/tab-settings.php:936
1017
msgid ""
1018
- "<dfn title=\"Specify the individual category on a single page or archive page "
1019
- "as a blocking target.\">Category</dfn>"
1020
msgstr ""
1021
"<dfn title=\"特定のカテゴリを含むシングルページかアーカイブページを遮断対象に"
1022
"指定します。\">カテゴリ</dfn>"
1023
1024
- #: admin/includes/tab-settings.php:948
1025
msgid ""
1026
- "<dfn title=\"Specify the individual tag on a single page or archive page as a "
1027
- "blocking target.\">Tag</dfn>"
1028
msgstr ""
1029
"<dfn title=\"特定のタグを含むシングルページかアーカイブページを遮断対象に指定"
1030
"します。\">タグ</dfn>"
1031
1032
- #: admin/includes/tab-settings.php:963
1033
msgid "Specify the validation target on front-end."
1034
msgstr "フロントエンドの検証対象を設定します。"
1035
1036
- #: admin/includes/tab-settings.php:963
1037
msgid "Validation target"
1038
msgstr "検証対象"
1039
1040
- #: admin/includes/tab-settings.php:974
1041
msgid "All requests"
1042
msgstr "全てのリクエスト"
1043
1044
- #: admin/includes/tab-settings.php:975
1045
msgid "Specify the targets"
1046
msgstr "ターゲットを指定"
1047
1048
- #: admin/includes/tab-settings.php:978
1049
msgid ""
1050
- "Notice that &#8220;Validation timing&#8221; is deferred till &#8220;wp&#8221; "
1051
- "action hook. It means that this feature would not be compatible with any page "
1052
- "caching."
1053
msgstr ""
1054
"[検証のタイミング]が &#8220;wp&#8221; アクション・フックまで遅延されます。こ"
1055
"れにより、ページ・キャッシュとの互換性がなくなることに注意してください。"
1056
1057
- #: admin/includes/tab-settings.php:988
1058
msgid ""
1059
"A part of user agent string and a qualification connected with a separator "
1060
- "that indicates an applicable rule and can be &#8220;:&#8221; (pass) or &#8220;"
1061
- "#&#8221; (block). A &#8220;qualification&#8221; can be &#8220;DNS&#8221;, "
1062
- "&#8220;FEED&#8221;, country code or IP address with CIDR. A negative operator "
1063
- "&#8220;!&#8221; can be placed just before a &#8220;qualification&#8221;."
1064
msgstr ""
1065
"適用されるルールを表す記号(「:」は通過、「#」は遮断)で区切られたユーザーエー"
1066
"ジェント文字列の一部と「条件」のペアです。「条件」には「DNS」、「FEED」、国"
1067
"コード、または&nbsp;IPアドレス(CIDR記法)が使えます。また否定を表す記号「!」"
1068
"を「条件」の直前に配置する事が出来ます。"
1069
1070
- #: admin/includes/tab-settings.php:988
1071
msgid "UA string and qualification"
1072
msgstr "ユーザーエージェント(UA)文字列と条件"
1073
1074
- #: admin/includes/tab-settings.php:1007
1075
msgid "Specify the name of actions as exception that is invariably blocked."
1076
msgstr "常に遮断されるアクション名を例外として指定します。"
1077
1078
- #: admin/includes/tab-settings.php:1007
1079
msgid "Excluded actions"
1080
msgstr "除外するアクション"
1081
1082
- #: admin/includes/tab-settings.php:1026
1083
msgid ""
1084
"It enables to verify the host by reverse DNS lookup which would spend some "
1085
"server resources. If it is disabled, &#8220;HOST&#8221; and &#8220;"
@@ -1090,11 +1099,11 @@ msgstr ""
1090
"ます)。無効にした場合、[ユーザーエージェント文字列と条件]中の「HOST」、"
1091
"「HOST=&hellip;」は常に真となります。"
1092
1093
- #: admin/includes/tab-settings.php:1026
1094
msgid "DNS reverse lookup"
1095
msgstr "DNS&thinsp;逆引き"
1096
1097
- #: admin/includes/tab-settings.php:1043
1098
msgid ""
1099
"It enables to simulate validation without deployment. The results can be "
1100
"found at &#8220;Public facing pages&#8221; in Logs."
@@ -1102,15 +1111,15 @@ msgstr ""
1102
"機能を有効にする事なくリクエストの検証をシミュレートします。結果はログで確認す"
1103
"る事が出来ます。"
1104
1105
- #: admin/includes/tab-settings.php:1043
1106
msgid "Simulation mode"
1107
msgstr "シミュレーション・モード"
1108
1109
- #: admin/includes/tab-settings.php:1061
1110
msgid "Geolocation API settings"
1111
msgstr "位置情報APIの設定"
1112
1113
- #: admin/includes/tab-settings.php:1070
1114
msgid ""
1115
"<dfn title=\"Cache and local database are scanned at the top priority.\">API "
1116
"selection and key settings</dfn>"
@@ -1118,23 +1127,23 @@ msgstr ""
1118
"<dfn title=\"キャッシュとローカルのデータベースが最優先で検索されます。\">API"
1119
"の選択とキーの設定</dfn>"
1120
1121
- #: admin/includes/tab-settings.php:1089
1122
msgid "Timeout for network API [sec]"
1123
msgstr "ネットワークAPIのタイムアウト[秒]"
1124
1125
- #: admin/includes/tab-settings.php:1109
1126
#, php-format
1127
msgid ""
1128
"Can not find geolocation API libraries in <code>%s</code>. It seems to have "
1129
"failed downloading <a rel=\"noreferrer\" href=\"https://github.com/"
1130
"tokkonopapa/WordPress-IP-Geo-API/archive/master.zip\" title=\"Download the "
1131
"contents of tokkonopapa/WordPress-IP-Geo-API as a zip file\">ZIP file</a> "
1132
- "from <a rel=\"noreferrer\" href=\"https://github.com/tokkonopapa/WordPress-IP-"
1133
- "Geo-API\" title=\"tokkonopapa/WordPress-IP-Geo-API - GitHub\">WordPress-IP-"
1134
- "Geo-API</a>. Please install <code>ip-geo-api</code> with write permission "
1135
- "according to <a rel=\"noreferrer\" href=\"http://www.ipgeoblock.com/codex/how-"
1136
- "to-fix-permission-troubles.html\" title=\"How can I fix permission troubles? "
1137
- "| IP Geo Block\">this instruction</a>."
1138
msgstr ""
1139
"<code>%s</code> に位置情報APIライブラリが見つかりません。<a rel=\"noreferrer"
1140
"\" href=\"https://github.com/tokkonopapa/WordPress-IP-Geo-API\" title="
@@ -1147,76 +1156,76 @@ msgstr ""
1147
"Geo Block\">FAQ</a> を参照し、適切な書き込み権限と共に <code>ip-geo-api</"
1148
"code> をインストールしてください。"
1149
1150
- #: admin/includes/tab-settings.php:1116
1151
msgid "Local database settings"
1152
msgstr "ローカル・データベースの設定"
1153
1154
- #: admin/includes/tab-settings.php:1130
1155
msgid "database"
1156
msgstr "ファイル"
1157
1158
- #: admin/includes/tab-settings.php:1131 classes/class-ip-geo-block-cron.php:430
1159
#, php-format
1160
msgid "Last update: %s"
1161
msgstr "最終更新:%s"
1162
1163
- #: admin/includes/tab-settings.php:1140
1164
msgid "Auto updating (once a month)"
1165
msgstr "自動更新(月1回)"
1166
1167
- #: admin/includes/tab-settings.php:1157
1168
msgid "Download database"
1169
msgstr "データベースのダウンロード"
1170
1171
- #: admin/includes/tab-settings.php:1165
1172
msgid "Download now"
1173
msgstr "今すぐダウンロード"
1174
1175
- #: admin/includes/tab-settings.php:1176
1176
msgid "Statistics and Logs settings"
1177
msgstr "統計とログの設定"
1178
1179
- #: admin/includes/tab-settings.php:1185
1180
msgid "Record &#8220;Statistics&#8221;"
1181
msgstr "検証の統計を記録"
1182
1183
- #: admin/includes/tab-settings.php:1202
1184
msgid "Maximum period for &#8220;Statistics&#8221; (days)"
1185
msgstr "記録する統計の最大期間(日)"
1186
1187
- #: admin/includes/tab-settings.php:1220
1188
msgid "Record &#8220;Logs&#8221;"
1189
msgstr "検証のログを記録"
1190
1191
- #: admin/includes/tab-settings.php:1232
1192
msgid "When requests blocked"
1193
msgstr "遮断時に記録"
1194
1195
- #: admin/includes/tab-settings.php:1233
1196
msgid "When requests passed"
1197
msgstr "通過時に記録"
1198
1199
- #: admin/includes/tab-settings.php:1234
1200
msgid "When &#8220;blocked&#8221; or &#8220;passed (not in whitelist)&#8221;"
1201
msgstr "遮断時または遮断対象国の通過時に記録"
1202
1203
- #: admin/includes/tab-settings.php:1235
1204
msgid "Unauthenticated visitor"
1205
msgstr "未認証の訪問者を記録"
1206
1207
- #: admin/includes/tab-settings.php:1236
1208
msgid "Authenticated user"
1209
msgstr "認証済のユーザーを記録"
1210
1211
- #: admin/includes/tab-settings.php:1237
1212
msgid "All the validation"
1213
msgstr "すべての検証を記録"
1214
1215
- #: admin/includes/tab-settings.php:1246
1216
msgid "Maximum entries of &#8220;Logs&#8221;"
1217
msgstr "記録するログの最大エントリ数"
1218
1219
- #: admin/includes/tab-settings.php:1263
1220
msgid ""
1221
"<dfn title=\"e.g. action, comment, log, pwd, FILES\">$_POST keys to be "
1222
"recorded with their values in &#8220;Logs&#8221;</dfn>"
@@ -1224,11 +1233,11 @@ msgstr ""
1224
"<dfn title=\"例)action, comment, log, pwd, FILES\">ログに記録する際に内容を展"
1225
"開する$_POSTのキー</dfn>"
1226
1227
- #: admin/includes/tab-settings.php:1281
1228
msgid "<dfn title=\"e.g. 123.456.789.***\">Anonymize IP address</dfn>"
1229
msgstr "<dfn title=\"例)123.456.789.***\">IPアドレスを匿名化する</dfn>"
1230
1231
- #: admin/includes/tab-settings.php:1298
1232
msgid ""
1233
"<dfn title=\"Select SQLite database source.\">Database source of SQLite for "
1234
"&#8220;Live update&#8221;</dfn>"
@@ -1236,19 +1245,19 @@ msgstr ""
1236
"<dfn title=\"SQLiteデータベース・ソースを選択します。\">ライブアップデート用"
1237
"SQLiteデータベース・ソースの選択</dfn>"
1238
1239
- #: admin/includes/tab-settings.php:1310
1240
msgid "Ordinary file"
1241
msgstr "通常のファイル"
1242
1243
- #: admin/includes/tab-settings.php:1311
1244
msgid "In-Memory"
1245
msgstr "イン・メモリ"
1246
1247
- #: admin/includes/tab-settings.php:1314
1248
msgid "PDO_SQLITE driver not available"
1249
msgstr "PDO_SQLITEドライバが利用出来ません。"
1250
1251
- #: admin/includes/tab-settings.php:1315
1252
msgid ""
1253
"It takes a few tens of milliseconds as overhead. It can be safely used "
1254
"without conflict with other plugins."
@@ -1256,7 +1265,7 @@ msgstr ""
1256
"数十ミリ秒のオーバーヘッドが生じますが、他のプラグインと競合することなく、安全"
1257
"に使用できます。"
1258
1259
- #: admin/includes/tab-settings.php:1316
1260
msgid ""
1261
"It takes a few milliseconds as overhead. There is a possibility of conflict "
1262
"with other plugins using this method."
@@ -1264,19 +1273,19 @@ msgstr ""
1264
"数ミリ秒のオーバーヘッドが生じます。同手法を用いている他のプラグインと競合する"
1265
"可能性があります。"
1266
1267
- #: admin/includes/tab-settings.php:1325
1268
msgid "Reset database source of &#8220;Live update&#8221;"
1269
msgstr "ライブアップデートのデータソースをリセットする"
1270
1271
- #: admin/includes/tab-settings.php:1333
1272
msgid "Reset now"
1273
msgstr "今すぐリセット"
1274
1275
- #: admin/includes/tab-settings.php:1344
1276
msgid "IP address cache settings"
1277
msgstr "IPアドレスのキャッシュ設定"
1278
1279
- #: admin/includes/tab-settings.php:1353
1280
#, php-format
1281
msgid ""
1282
"<dfn title=\"If user authentication fails consecutively %d times, subsequent "
@@ -1286,55 +1295,55 @@ msgstr ""
1286
"<dfn title=\"ユーザ認証が連続%d回失敗した場合も、以降のログインがこの期間だけ"
1287
"(ガベージコレクション周期を含む)禁止されます。\">有効時間 [sec]</dfn>"
1288
1289
- #: admin/includes/tab-settings.php:1369
1290
msgid "Garbage collection period [sec]"
1291
msgstr "ガベージコレクション周期 [秒]"
1292
1293
- #: admin/includes/tab-settings.php:1386
1294
msgid "Number of entries to be displayed in cache"
1295
msgstr "[キャッシュ中のIPアドレス]に表示する最大数"
1296
1297
- #: admin/includes/tab-settings.php:1404
1298
msgid "Submission settings"
1299
msgstr "投稿時の設定"
1300
1301
- #: admin/includes/tab-settings.php:1416
1302
msgid "The whole will be wrapped by &lt;p&gt; tag. Allowed tags: "
1303
msgstr "全体が&lt;p&gt;タグで囲われます。使用可能タグ:"
1304
1305
- #: admin/includes/tab-settings.php:1416
1306
msgid "Message on comment form"
1307
msgstr "投稿フォーム上のメッセージ"
1308
1309
- #: admin/includes/tab-settings.php:1428
1310
msgid "None"
1311
msgstr "なし"
1312
1313
- #: admin/includes/tab-settings.php:1429
1314
msgid "Top"
1315
msgstr "上部"
1316
1317
- #: admin/includes/tab-settings.php:1430
1318
msgid "Bottom"
1319
msgstr "下部"
1320
1321
- #: admin/includes/tab-settings.php:1441
1322
msgid "Plugin settings"
1323
msgstr "プラグインの設定"
1324
1325
- #: admin/includes/tab-settings.php:1454
1326
msgid ""
1327
"<dfn title=\"Synchronize all settings over the network wide.\">Network wide "
1328
"settings</dfn>"
1329
msgstr ""
1330
- "<dfn title=\"全ての設定をネットワーク全体で同期させます。\">ネットワークの一括"
1331
- "設定</dfn>"
1332
1333
- #: admin/includes/tab-settings.php:1472
1334
msgid "Remove all settings at uninstallation"
1335
msgstr "アンインストール時に全設定を削除"
1336
1337
- #: admin/includes/tab-settings.php:1490
1338
msgid ""
1339
"<dfn title=\"Valid key for Google Maps JavaScript API\">Google Maps API key</"
1340
"dfn>"
@@ -1342,45 +1351,45 @@ msgstr ""
1342
"<dfn title=\"Google Maps JavaScript API に有効なキー\">Google Maps API キー</"
1343
"dfn>"
1344
1345
- #: admin/includes/tab-settings.php:1504
1346
msgid ""
1347
- "You need to click the &#8220;Save Changes&#8221; button for imported settings "
1348
- "to take effect."
1349
msgstr ""
1350
"インポートされた設定を有効にするには、[変更を保存]ボタンをクリックする必要が"
1351
"あります。"
1352
1353
- #: admin/includes/tab-settings.php:1510
1354
msgid "Export / Import settings"
1355
msgstr "設定のエクスポート、インポート"
1356
1357
- #: admin/includes/tab-settings.php:1517
1358
msgid "Export settings"
1359
msgstr "エクスポート"
1360
1361
- #: admin/includes/tab-settings.php:1518
1362
msgid "Import from the local file"
1363
msgstr "ローカル・ファイルからインポートします"
1364
1365
- #: admin/includes/tab-settings.php:1518
1366
msgid "Import settings"
1367
msgstr "インポート"
1368
1369
- #: admin/includes/tab-settings.php:1527
1370
msgid "Import pre-defined settings"
1371
msgstr "プリセットのインポート"
1372
1373
- #: admin/includes/tab-settings.php:1534
1374
msgid ""
1375
"Import the default settings to revert to the &#8220;Right after "
1376
"installing&#8221; state"
1377
msgstr "インストール直後の状態に戻すための設定値をインポートします"
1378
1379
- #: admin/includes/tab-settings.php:1534
1380
msgid "Default settings"
1381
msgstr "初期設定"
1382
1383
- #: admin/includes/tab-settings.php:1535
1384
msgid ""
1385
"Import the preferred settings mainly by enabling Zero-day Exploit Prevention "
1386
"for the &#8220;Back-end target settings&#8221;"
@@ -1388,27 +1397,27 @@ msgstr ""
1388
"「ゼロデイ攻撃の遮断」など、主に[バックエンドの設定]の推奨設定をインポートし"
1389
"ます。"
1390
1391
- #: admin/includes/tab-settings.php:1535
1392
msgid "Best for Back-end"
1393
msgstr "バックエンドの推奨設定"
1394
1395
- #: admin/includes/tab-settings.php:1545
1396
msgid "Delete DB table for validation logs"
1397
msgstr "検証のログ用データベース・テーブルの削除"
1398
1399
- #: admin/includes/tab-settings.php:1553
1400
msgid "Delete now"
1401
msgstr "今すぐ削除"
1402
1403
- #: admin/includes/tab-settings.php:1561
1404
msgid "Create DB table for validation logs"
1405
msgstr "検証のログ用データベース・テーブルの作成"
1406
1407
- #: admin/includes/tab-settings.php:1569
1408
msgid "Create now"
1409
msgstr "今すぐ作成"
1410
1411
- #: admin/includes/tab-settings.php:1579
1412
msgid ""
1413
"<dfn title=\"When an unexpected blocking has occurred, please press the "
1414
"button to find the blocked request in the dumped information which may help "
@@ -1422,15 +1431,15 @@ msgstr ""
1422
"ip-geo-block\" title=\"WordPress &#8250; Support &raquo; IP Geo Block\">サポー"
1423
"ト・フォーラム</a> ]"
1424
1425
- #: admin/includes/tab-settings.php:1586
1426
msgid "Please copy &amp; paste when submitting your issue to support forum."
1427
msgstr "フォーラムに問題を投稿する際、コピーして張り付けてください。"
1428
1429
- #: admin/includes/tab-settings.php:1586
1430
msgid "Show information"
1431
msgstr "情報を表示"
1432
1433
- #: admin/includes/tab-settings.php:1602
1434
msgid ""
1435
"To enhance the protection ability, please refer to &#8220;<a rel=\"noreferrer"
1436
"\" href=\"http://www.ipgeoblock.com/codex/the-best-practice-for-target-"
@@ -1442,12 +1451,12 @@ msgstr ""
1442
"\" title=\"The best practice for target settings | IP Geo Block\">The best "
1443
"practice fortarget settings</a>&#8220;&thinsp;を参照してください。"
1444
1445
- #: admin/includes/tab-settings.php:1603
1446
msgid ""
1447
"If you have any troubles with these, please check FAQ at <a rel=\"noreferrer"
1448
"\" href=\"https://wordpress.org/plugins/ip-geo-block/faq/\" title=\"IP Geo "
1449
- "Block &mdash; WordPress Plugins\">WordPress.org</a> and <a rel=\"noreferrer\" "
1450
- "href=\"http://www.ipgeoblock.com/codex/#faq\" title=\"Codex | IP Geo Block"
1451
"\">Codex</a>."
1452
msgstr ""
1453
"何か問題が発生した場合は、<a rel=\"noreferrer\" href=\"https://wordpress.org/"
@@ -1456,20 +1465,20 @@ msgstr ""
1456
"com/codex/#faq\" title=\"Codex | IP Geo Block\">Codex</a> の FAQ を参照してく"
1457
"ださい。"
1458
1459
- #: admin/includes/tab-settings.php:1610
1460
msgid ""
1461
- "While Maxmind and IP2Location will fetch the local database, others will pass "
1462
- "an IP address to the APIs via HTTP."
1463
msgstr ""
1464
"MaxmindとIP2Locationはローカルのデータベースを検索しますが、他はHTTPを介して"
1465
"APIにIPアドレスを渡します。"
1466
1467
- #: admin/includes/tab-settings.php:1611
1468
msgid ""
1469
"Please select the appropriate APIs to fit the privacy law in your country."
1470
msgstr "自国のプライバシー関連法規に合わせ、適切なAPIを選択して下さい。"
1471
1472
- #: admin/includes/tab-settings.php:1620
1473
#, php-format
1474
msgid ""
1475
"Maxmind GeoLite2 databases and APIs need PHP version 5.4.0+ and %sPECL phar "
@@ -1479,7 +1488,7 @@ msgstr ""
1479
"ジョン&thinsp;5.4.0&thinsp;以上と&thinsp;%sPECL phar 2.0.0&thinsp;以上%sが必要"
1480
"です。"
1481
1482
- #: admin/includes/tab-settings.php:1628
1483
msgid ""
1484
"Please refer to the document &#8220;<a rel=\"noreferrer\" href=\"http://www."
1485
"ipgeoblock.com/codex/#blocking-on-front-end\" title=\"Codex | IP Geo Block"
@@ -1491,11 +1500,11 @@ msgstr ""
1491
"end\" title=\"Codex | IP Geo Block\">Blocking on front-end</a>&#8221; を参照し"
1492
"てください。"
1493
1494
- #: admin/includes/tab-settings.php:1629
1495
msgid ""
1496
- "If you find any issues or have something to suggest, please feel free to open "
1497
- "an issue at <a rel=\"noreferrer\" href=\"https://wordpress.org/support/plugin/"
1498
- "ip-geo-block\" title=\"WordPress &#8250; Support &raquo; IP Geo Block"
1499
"\">support forum</a>."
1500
msgstr ""
1501
"問題を発見したり改善の提案がある場合は、お気軽に <a rel=\"noreferrer\" href="
@@ -1503,7 +1512,7 @@ msgstr ""
1503
"&#8250; Support &raquo; IP Geo Block\">サポートフォーラム</a> に投稿をお願いし"
1504
"ます。"
1505
1506
- #: admin/includes/tab-settings.php:1636
1507
msgid ""
1508
"Please refer to the document &#8220;<a rel=\"noreferrer\" href=\"http://www."
1509
"ipgeoblock.com/codex/record-settings-and-logs.html\" title=\"Codex | IP Geo "
@@ -1593,25 +1602,17 @@ msgstr "バックエンドのスラッグ"
1593
msgid "Toggle sorting order"
1594
msgstr "ソート順を切り替え"
1595
1596
- #: admin/includes/tab-statistics.php:392
1597
- msgid ""
1598
- "[<strong>Record validation statistics</strong>] on [<strong>Settings</"
1599
- "strong>] tab is not selected as [<strong>Enable</strong>]."
1600
- msgstr ""
1601
- "[<strong>設定</strong>]タブの[<strong>検証の統計を記録</strong>]に"
1602
- "[<strong>有効</strong>]が選択されていません。"
1603
1604
- #: admin/includes/tab-statistics.php:393
1605
msgid ""
1606
"Please set the proper condition to record and analyze the validation "
1607
"statistics."
1608
msgstr "検証の統計を記録し分析するためには、適切な条件を設定して下さい。"
1609
1610
- #: admin/includes/tab-statistics.php:398
1611
- msgid ""
1612
- "Please set the proper condition to record and analyze the validation logs."
1613
- msgstr "検証のログを記録し分析するためには、適切な条件を設定して下さい。"
1614
-
1615
#: classes/class-ip-geo-block-apis.php:653
1616
msgid ""
1617
"You need to select at least one IP geolocation service. Otherwise "
@@ -1639,8 +1640,8 @@ msgstr "gz または zip がサポートされていません。"
1639
msgid ""
1640
"This plugin does not support method &#8220;%s&#8221; for FTP or SSH based "
1641
"file operations. Please refer to <a href=\"https://codex.wordpress.org/"
1642
- "Editing_wp-config.php#WordPress_Upgrade_Constants\" title=\"Editing wp-config."
1643
- "php &laquo; WordPress Codex\">this document</a> for more details."
1644
msgstr ""
1645
"本プラグインは、メソッド「%s」による FTP あるいは SSH を使ったファイル操作をサ"
1646
"ポートしていません。詳しくは、<a href=\"https://codex.wordpress.org/"
2
# This file is distributed under the same license as the IP Geo Block package.
3
msgid ""
4
msgstr ""
5
+ "Project-Id-Version: IP Geo Block 3.0.9\n"
6
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/ip-geo-block\n"
7
+ "POT-Creation-Date: 2018-03-04 16:21+0900\n"
8
+ "PO-Revision-Date: 2018-03-04 16:24+0900\n"
9
"Language-Team: \n"
10
"MIME-Version: 1.0\n"
11
"Content-Type: text/plain; charset=UTF-8\n"
79
msgstr "可視領域に選択された行が見つかりません。"
80
81
#: admin/class-ip-geo-block-admin.php:278
82
+ #: admin/class-ip-geo-block-admin.php:1428
83
#, php-format
84
msgid "An error occurred while executing the ajax command `%s`."
85
msgstr "Ajaxコマンド `%s` の実行中にエラーが発生しました。"
148
msgid "Contribute on GitHub"
149
msgstr "開発に参加"
150
151
+ #: admin/class-ip-geo-block-admin.php:336
152
+ #: admin/class-ip-geo-block-admin.php:444
153
+ #: admin/class-ip-geo-block-admin.php:663
154
+ #: admin/class-ip-geo-block-admin.php:682
155
msgid "Settings"
156
msgstr "設定"
157
158
+ #: admin/class-ip-geo-block-admin.php:424
159
+ #: admin/class-ip-geo-block-admin.php:425
160
+ #: admin/class-ip-geo-block-admin.php:435
161
+ #: admin/class-ip-geo-block-admin.php:436
162
+ #: admin/class-ip-geo-block-admin.php:443
163
+ #: admin/class-ip-geo-block-admin.php:451
164
msgid "IP Geo Block"
165
msgstr "IP Geo Block"
166
167
+ #: admin/class-ip-geo-block-admin.php:452
168
+ #: admin/class-ip-geo-block-admin.php:667
169
+ #: admin/class-ip-geo-block-admin.php:683
170
msgid "Site List"
171
msgstr "サイト一覧"
172
173
+ #: admin/class-ip-geo-block-admin.php:482
174
msgid "You need WordPress 3.7+."
175
msgstr "WordPress 3.7&thinsp;以上が必要です。"
176
177
+ #: admin/class-ip-geo-block-admin.php:488
178
#, php-format
179
msgid ""
180
"Now downloading geolocation databases in background. After a little while, "
185
"た後、あなたの国コードと[<strong>マッチング規則</strong>]を[<a href=\"%s\">"
186
"検証ルールの設定</a>]で確認して下さい。"
187
188
+ #: admin/class-ip-geo-block-admin.php:494
189
#, php-format
190
msgid ""
191
"The &#8220;<strong>Matching rule</strong>&#8221; is not set properly. Please "
194
"[<strong>マッチング規則</strong>]が正しく設定されていません。[<a href=\"%s"
195
"\">検証ルールの設定</a>]を確認して下さい。"
196
197
+ #: admin/class-ip-geo-block-admin.php:503
198
msgid "Local database and matching rule have been updated."
199
msgstr "ローカル・データベースとマッチング規則を更新しました。"
200
201
+ #: admin/class-ip-geo-block-admin.php:514
202
msgid ""
203
"Once you logout, you will be unable to login again because the number of "
204
"login attempts reaches the limit."
206
"あなたのIPアドレスのログイン試行可能回数がリミットに達したため、ログアウトする"
207
"と再びログインする事が出来なくなります。"
208
209
+ #: admin/class-ip-geo-block-admin.php:516
210
#, php-format
211
msgid ""
212
"Please execute \"<strong>Clear cache</strong>\" on <a href=\"%s\">Statistics "
215
"<a href=\"%s\">[統計]タブ</a>の[<strong>キャッシュのクリア</strong>]を実行"
216
"し、ロックアウトを回避してください。"
217
218
+ #: admin/class-ip-geo-block-admin.php:526
219
msgid ""
220
"Once you logout, you will be unable to login again because your country code "
221
"or IP address is in the blacklist."
223
"あなたの国コードまたはIPアドレスがブラックリストに含まれているため、ログアウト"
224
"すると再びログインする事が出来なくなります。"
225
226
+ #: admin/class-ip-geo-block-admin.php:527
227
msgid ""
228
"Once you logout, you will be unable to login again because your country code "
229
"or IP address is not in the whitelist."
231
"あなたの国コードまたはIPアドレスがホワイトリストに含まれていないため、ログアウ"
232
"トすると再びログインする事が出来なくなります。"
233
234
+ #: admin/class-ip-geo-block-admin.php:531
235
#, php-format
236
msgid "Please check your &#8220;%sValidation rule settings%s&#8221;."
237
msgstr "[%s検証ルールの設定%s]を確認して下さい。"
238
239
+ #: admin/class-ip-geo-block-admin.php:535
240
#, php-format
241
msgid ""
242
"Please confirm your local geolocation databases at &#8220;%sLocal database "
246
"[%sローカル・データベースの設定%s]で位置情報データベースを確認し、[%sキャッ"
247
"シュの統計%s]でキャッシュされているあなたのIPアドレスを削除して下さい。"
248
249
+ #: admin/class-ip-geo-block-admin.php:548
250
msgid ""
251
"&#8220;mu-plugins&#8221; (ip-geo-block-mu.php) at &#8220;Validation "
252
"timing&#8221; is imcompatible with <strong>IP Geo Allow</strong>. Please "
256
"されていますが、<strong>IP Geo Allow</strong> と互換性がありません。「&#8220;"
257
"init&#8221; アクション・フック」を選択してください。"
258
259
+ #: admin/class-ip-geo-block-admin.php:664
260
msgid "Statistics"
261
msgstr "統計"
262
263
+ #: admin/class-ip-geo-block-admin.php:665
264
msgid "Logs"
265
msgstr "ログ"
266
267
+ #: admin/class-ip-geo-block-admin.php:666
268
msgid "Search"
269
msgstr "検索"
270
271
+ #: admin/class-ip-geo-block-admin.php:668
272
msgid "Attribution"
273
msgstr "リンク"
274
275
+ #: admin/class-ip-geo-block-admin.php:694
276
msgid "Network wide"
277
msgstr "ネットワーク一括管理"
278
279
+ #: admin/class-ip-geo-block-admin.php:707
280
msgid "Toggle all"
281
msgstr "全てを開閉"
282
283
+ #: admin/class-ip-geo-block-admin.php:710
284
msgid ""
285
"Independent of &#8220;Statistics and Logs settings&#8221;, you can see all "
286
"the requests validated by this plugin in almost real time."
288
"[統計とログの設定]にかかわらず、このプラグインによる検証結果のすべてを、ほぼ"
289
"リアルタイムに表示します。"
290
291
+ #: admin/class-ip-geo-block-admin.php:710 admin/includes/tab-accesslog.php:39
292
msgid "Live update"
293
msgstr "ライブアップデート"
294
295
+ #: admin/class-ip-geo-block-admin.php:714
296
msgid "Open a new window on clicking the link in the chart."
297
msgstr "チャート内のリンクをクリックすると、新しいウィンドウが開きます。"
298
299
+ #: admin/class-ip-geo-block-admin.php:714
300
msgid "Open a new window"
301
msgstr "別窓で開く"
302
303
+ #: admin/class-ip-geo-block-admin.php:737
304
msgid "Thanks for providing these great services for free."
305
msgstr "これらのすばらしいサービスの提供元に、敬意と感謝の意を表します!"
306
307
+ #: admin/class-ip-geo-block-admin.php:738
308
msgid ""
309
+ "(Most browsers will redirect you to each site <a href=\"http://www."
310
+ "ipgeoblock.com/etc/referer.html\" title=\"Referer Checker\">without referrer "
311
+ "when you click the link</a>.)"
312
msgstr ""
313
"(ほとんどのブラウザでは、<a href=\"http://www.ipgeoblock.com/etc/referer.html"
314
"\" title=\"Referer Checker\">参照元を残さずにリンク先にリダイレクトできます</"
315
"a>。)"
316
317
+ #: admin/class-ip-geo-block-admin.php:743
318
msgid "Back to top"
319
msgstr "トップに戻る"
320
321
+ #: admin/class-ip-geo-block-admin.php:840
322
msgid "Enable"
323
msgstr "有効"
324
325
+ #: admin/class-ip-geo-block-admin.php:855
326
msgid "Select one"
327
msgstr "何れかを選択"
328
329
+ #: admin/class-ip-geo-block-admin.php:1251
330
#: admin/includes/class-admin-rewrite.php:194
331
#: classes/class-ip-geo-block-cron.php:228
332
#: classes/class-ip-geo-block-cron.php:332
336
msgid "Unable to write <code>%s</code>. Please check the permission."
337
msgstr "<code>%s</code> に書き込めません。パーミッションをチェックして下さい。"
338
339
+ #: admin/class-ip-geo-block-admin.php:1281
340
msgid "Settings saved."
341
msgstr "設定を保存しました。"
342
344
msgid "n/a"
345
msgstr "不明"
346
347
+ #: admin/includes/class-admin-ajax.php:77 admin/includes/tab-settings.php:75
348
+ #: admin/includes/tab-settings.php:95
349
msgid "UNKNOWN"
350
msgstr "不明"
351
377
msgid "Validation logs"
378
msgstr "検証のログ"
379
380
+ #: admin/includes/tab-accesslog.php:54 admin/includes/tab-settings.php:454
381
msgid "Comment post"
382
msgstr "コメント投稿"
383
384
+ #: admin/includes/tab-accesslog.php:55 admin/includes/tab-settings.php:455
385
msgid "XML-RPC"
386
msgstr "XML-RPC"
387
388
+ #: admin/includes/tab-accesslog.php:56 admin/includes/tab-settings.php:456
389
msgid "Login form"
390
msgstr "ログイン・フォーム"
391
392
+ #: admin/includes/tab-accesslog.php:57 admin/includes/tab-settings.php:457
393
msgid "Admin area"
394
msgstr "管理領域"
395
396
+ #: admin/includes/tab-accesslog.php:58 admin/includes/tab-settings.php:459
397
msgid "Public facing pages"
398
msgstr "一般公開ページ"
399
400
+ #: admin/includes/tab-accesslog.php:61 admin/includes/tab-network.php:76
401
msgid "All"
402
msgstr "全て"
403
404
+ #: admin/includes/tab-accesslog.php:71
405
msgid "Select target"
406
msgstr "対象を選択"
407
408
+ #: admin/includes/tab-accesslog.php:87
409
msgid "Search in logs"
410
msgstr "ログを検索"
411
412
+ #: admin/includes/tab-accesslog.php:96 admin/includes/tab-statistics.php:235
413
msgid "Reset"
414
msgstr "リセット"
415
416
+ #: admin/includes/tab-accesslog.php:104 admin/includes/tab-statistics.php:242
417
msgid "Bulk action"
418
msgstr "選択して実行"
419
420
+ #: admin/includes/tab-accesslog.php:115 admin/includes/tab-statistics.php:254
421
msgid "Add IP address to &#8220;Whitelist&#8221;"
422
msgstr "IPアドレスをホワイトリストへ追加"
423
424
+ #: admin/includes/tab-accesslog.php:116 admin/includes/tab-statistics.php:255
425
msgid "Add IP address to &#8220;Blacklist&#8221;"
426
msgstr "IPアドレスをブラックリストへ追加"
427
428
+ #: admin/includes/tab-accesslog.php:117 admin/includes/tab-statistics.php:256
429
msgid "Add AS number to &#8220;Whitelist&#8221;"
430
msgstr "AS番号をホワイトリストへ追加"
431
432
+ #: admin/includes/tab-accesslog.php:118 admin/includes/tab-statistics.php:257
433
msgid "Add AS number to &#8220;Blacklist&#8221;"
434
msgstr "AS番号をブラックリストへ追加"
435
436
+ #: admin/includes/tab-accesslog.php:120 admin/includes/tab-network.php:56
437
#: admin/includes/tab-statistics.php:259
438
msgid "Apply"
439
msgstr "実行する"
440
441
+ #: admin/includes/tab-accesslog.php:128 admin/includes/tab-statistics.php:198
442
msgid "Clear logs"
443
msgstr "ログをクリア"
444
445
+ #: admin/includes/tab-accesslog.php:136 admin/includes/tab-statistics.php:173
446
#: admin/includes/tab-statistics.php:206 admin/includes/tab-statistics.php:274
447
msgid "Clear all"
448
msgstr "全てをクリア"
449
450
+ #: admin/includes/tab-accesslog.php:146
451
msgid "Export logs"
452
msgstr "ログをエクスポート"
453
454
+ #: admin/includes/tab-accesslog.php:152 admin/includes/tab-settings.php:1519
455
msgid "Export to the local file"
456
msgstr "ローカル・ファイルへエクスポートする"
457
458
+ #: admin/includes/tab-accesslog.php:152
459
msgid "Export csv"
460
msgstr "CSVへエクスポート"
461
462
+ #: admin/includes/tab-accesslog.php:173 admin/includes/tab-network.php:114
463
+ #: admin/includes/tab-statistics.php:401
464
+ #, php-format
465
+ msgid "[ %sRecord &#8220;Logs&#8221;%s ] is desabled."
466
+ msgstr "[%s検証のログを記録%s]が無効です。"
467
468
+ #: admin/includes/tab-accesslog.php:174 admin/includes/tab-network.php:115
469
+ #: admin/includes/tab-statistics.php:402
470
msgid ""
471
+ "Please set the proper condition to record and analyze the validation logs."
472
+ msgstr "検証のログを記録し分析するためには、適切な条件を設定して下さい。"
473
474
#: admin/includes/tab-attribution.php:16
475
msgid "Attribution links"
527
msgid "Validation rule settings"
528
msgstr "検証ルールの設定"
529
530
+ #: admin/includes/tab-settings.php:67
531
msgid ""
532
"<dfn title=\"You can confirm the appropriate Geolocation APIs and country "
533
"code by referring &#8220;Scan country code&#8221;.\">Your IP address / "
536
"<dfn title=\"[国コードを検索する]を参照し、適切な位置情報APIと国コードを設定"
537
"して下さい。\">あなたのIPアドレス / 国コード</dfn>"
538
539
+ #: admin/includes/tab-settings.php:76 admin/includes/tab-settings.php:96
540
msgid "Scan all the APIs you selected at Geolocation API settings"
541
msgstr "選択された位置情報APIを検索します"
542
543
+ #: admin/includes/tab-settings.php:76 admin/includes/tab-settings.php:96
544
msgid "Scan country code"
545
msgstr "国コードを検索する"
546
547
+ #: admin/includes/tab-settings.php:87
548
msgid ""
549
"<dfn title=\"You can confirm the appropriate Geolocation APIs and country "
550
"code by referring &#8220;Scan country code&#8221;.\">Server IP address / "
553
"<dfn title=\"[国コードを検索する]を参照し、適切な位置情報APIと国コードを設定"
554
"して下さい。\">サーバーのIPアドレス / 国コード</dfn>"
555
556
+ #: admin/includes/tab-settings.php:104
557
msgid "Whitelist"
558
msgstr "ホワイトリスト"
559
560
+ #: admin/includes/tab-settings.php:105
561
msgid "Blacklist"
562
msgstr "ブラックリスト"
563
564
+ #: admin/includes/tab-settings.php:109
565
+ msgid ""
566
+ "Please select either &#8220;Whitelist&#8221; or &#8220;Blacklist&#8221;."
567
msgstr "「ホワイトリスト」または「ブラックリスト」のいずれかを選択して下さい。"
568
569
+ #: admin/includes/tab-settings.php:110
570
msgid ""
571
"<dfn title=\"&#8220;Block by country&#8221; will be bypassed in case of "
572
"empty. The special code &#8220;XX&#8221; is assigned as private IP address "
573
+ "including localhost. And &#8220;ZZ&#8221; is for unknown IP address (i.e. "
574
+ "not in the geolocation databases). Please use &#8220;YY&#8221; if you need "
575
+ "the code that does not correspond to any of the countries.\">Whitelist of "
576
+ "country code</dfn>"
577
msgstr ""
578
"<dfn title=\"空欄の場合、「国コードで遮断」はバイパスされます。特別なコード"
579
"「XX」は、localhost&thinsp;を含むプライベート・アドレスに割り当てられ、また"
581
"いことが必要な場合には、「YY」を指定してください。\">国コードのホワイトリスト"
582
"</dfn>"
583
584
+ #: admin/includes/tab-settings.php:111
585
msgid ""
586
"<dfn title=\"&#8220;Block by country&#8221; will be bypassed in case of "
587
"empty. The special code &#8220;XX&#8221; is assigned as private IP address "
588
+ "including localhost. And &#8220;ZZ&#8221; is for unknown IP address (i.e. "
589
+ "not in the geolocation databases). Please use &#8220;YY&#8221; if you need "
590
+ "the code that does not correspond to any of the countries.\">Blacklist of "
591
+ "country code</dfn>"
592
msgstr ""
593
"<dfn title=\"空欄の場合、「国コードで遮断」はバイパスされます。特別なコード"
594
"「XX」は、localhost&thinsp;を含むプライベート・アドレスに割り当てられ、また"
596
"いことが必要な場合には、「YY」を指定してください。\">国コードのブラックリスト"
597
"</dfn>"
598
599
+ #: admin/includes/tab-settings.php:115
600
msgid "(comma separated)"
601
msgstr "(カンマ区切り)"
602
603
+ #: admin/includes/tab-settings.php:116
604
msgid "(comma or RET separated)"
605
msgstr "(カンマ、改行区切り)"
606
607
+ #: admin/includes/tab-settings.php:117
608
msgid "Toggle selection"
609
msgstr "選択を切り替える"
610
611
+ #: admin/includes/tab-settings.php:118
612
msgid "Find blocked requests in &#8220;Logs&#8220;"
613
msgstr "ログから遮断されたリクエストを検索する"
614
615
+ #: admin/includes/tab-settings.php:119
616
msgid ""
617
"Before adding as &#8220;Exception&#8221;, please click on &#8220;<a class="
618
"\"ip-geo-block-icon ip-geo-block-icon-alert\" title=\"This button is just a "
624
"す。\"><span></span></a>&#8221;(もしあれば)をクリックし、遮断されたリクエス"
625
"トに悪意のないことを確認して下さい。"
626
627
+ #: admin/includes/tab-settings.php:120
628
+ msgid "Open CIDR calculator for IPv4 / IPv6"
629
+ msgstr "IPv4/IPv6用CIDR変換プログラムを開きます"
630
+
631
+ #: admin/includes/tab-settings.php:127 admin/includes/tab-settings.php:793
632
msgid "Matching rule"
633
msgstr "マッチング規則"
634
660
661
#: admin/includes/tab-settings.php:197
662
#, php-format
663
+ msgid "Some useful tools to find ASN are introduced in &#8220;%s&#8221;."
664
msgstr "AS番号の検索に役立つツールを &#8220;%s&#8221; に紹介しています。"
665
666
#: admin/includes/tab-settings.php:206
667
msgid ""
668
"<dfn title=\"e.g. &#8220;192.0.64.0/18&#8221; for Jetpack server, "
669
+ "&#8220;69.46.36.0/27&#8221; for WordFence server or &#8220;AS32934&#8221; "
670
+ "for Facebook.\">Whitelist of extra IP addresses prior to country code</dfn>"
671
msgstr ""
672
"<dfn title=\"例)192.0.64.0/18(Jetpackサーバー)、69.46.36.0/27(WordFence"
673
"サーバー)、AS32934(Facebook)\">国コードに優先して検証するIPアドレスのホワイ"
674
"トリスト</dfn>"
675
676
+ #: admin/includes/tab-settings.php:227
677
msgid ""
678
"<dfn title=\"Server level access control is recommended (e.g. .htaccess)."
679
"\">Blacklist of extra IP addresses prior to country code</dfn>"
681
"<dfn title=\"サーバー・レベルのアクセス制御の使用をお勧めします(例:."
682
"htaccess)。\">国コードに優先して検証するIPアドレスのブラックリスト</dfn>"
683
684
+ #: admin/includes/tab-settings.php:249
685
msgid ""
686
"<dfn title=\"If your server is placed behind the proxy server or the load "
687
"balancing server, you need to put the appropriate key such as &#8220;"
695
"を指定してください。\">IPアドレスを追加抽出する&thinsp;$_SERVER&thinsp;のキー"
696
"</dfn>"
697
698
+ #: admin/includes/tab-settings.php:268
699
msgid ""
700
"<dfn title=\"It validates malicious signatures independently of &#8220;Block "
701
"by country&#8221; and &#8220;Prevent Zero-day Exploit&#8221; for the target "
712
"block-decode\" title=\"文字化けした場合、クリックして復元して下さ"
713
"い。\"><span></span></a>)</nobr>"
714
715
+ #: admin/includes/tab-settings.php:282