summaryrefslogtreecommitdiff
path: root/Postman/Postman-Connectivity-Test
diff options
context:
space:
mode:
Diffstat (limited to 'Postman/Postman-Connectivity-Test')
-rw-r--r--Postman/Postman-Connectivity-Test/Postman-PortTest.php286
-rw-r--r--Postman/Postman-Connectivity-Test/PostmanConnectivityTestController.php336
-rw-r--r--Postman/Postman-Connectivity-Test/postman_port_test.js336
-rw-r--r--Postman/Postman-Connectivity-Test/registered-domain-libs-master/PHP/effectiveTLDs.inc.php6484
-rw-r--r--Postman/Postman-Connectivity-Test/registered-domain-libs-master/PHP/regDomain.class.php120
-rw-r--r--Postman/Postman-Connectivity-Test/registered-domain-libs-master/PHP/regDomain.inc.php62
-rw-r--r--Postman/Postman-Connectivity-Test/registered-domain-libs-master/PHP/test-regDomain.php51
-rw-r--r--Postman/Postman-Connectivity-Test/registered-domain-libs-master/README.txt56
-rw-r--r--Postman/Postman-Connectivity-Test/registered-domain-libs-master/generateEffectiveTLDs.php213
9 files changed, 0 insertions, 7944 deletions
diff --git a/Postman/Postman-Connectivity-Test/Postman-PortTest.php b/Postman/Postman-Connectivity-Test/Postman-PortTest.php
deleted file mode 100644
index adbe530..0000000
--- a/Postman/Postman-Connectivity-Test/Postman-PortTest.php
+++ /dev/null
@@ -1,286 +0,0 @@
-<?php
-if ( ! defined( 'ABSPATH' ) ) {
- exit; // Exit if accessed directly
-}
-
-require_once ("registered-domain-libs-master/PHP/effectiveTLDs.inc.php");
-require_once ("registered-domain-libs-master/PHP/regDomain.inc.php");
-
-/**
- *
- * @author jasonhendriks
- *
- */
-class PostmanPortTest {
- private $errstr;
- private $logger;
- private $hostname;
- public $hostnameDomainOnly;
- private $port;
- private $connectionTimeout;
- private $readTimeout;
- public $reportedHostname;
- public $reportedHostnameDomainOnly;
- public $protocol;
- public $secure;
- public $mitm;
- public $http;
- public $https;
- public $smtp;
- public $smtps;
- public $startTls;
- public $checkStartTls;
- public $authLogin;
- public $authPlain;
- public $authCrammd5;
- public $authXoauth;
- public $authNone;
- public $trySmtps;
-
- //
- const SMTPS_PROTOCOL = 'SMTPS';
-
- /**
- */
- public function __construct($hostname, $port) {
- $this->logger = new PostmanLogger ( get_class ( $this ) );
- $this->hostname = $hostname;
- $this->hostnameDomainOnly = $this->getRegisteredDomain ( $hostname );
- $this->port = $port;
- $this->connectionTimeout = 10;
- $this->readTimeout = 10;
- }
-
- /**
- * Wrap the regDomain/getRegisteredDomain function
- *
- * @param mixed $domain
- * @return mixed
- */
- private function getRegisteredDomain($hostname) {
- $registeredDomain = getRegisteredDomain ( $hostname );
- if ($registeredDomain === NULL) {
- return $hostname;
- }
- return $registeredDomain;
- }
- public function setConnectionTimeout($timeout) {
- $this->connectionTimeout = $timeout;
- $this->logger->trace ( $this->connectionTimeout );
- }
- public function setReadTimeout($timeout) {
- $this->readTimeout = $timeout;
- $this->logger->trace ( $this->readTimeout );
- }
- private function createStream($connectionString) {
- $stream = @stream_socket_client ( $connectionString, $errno, $errstr, $this->connectionTimeout );
- if ($stream) {
- $this->trace ( sprintf ( 'connected to %s', $connectionString ) );
- } else {
- $this->trace ( sprintf ( 'Could not connect to %s because %s [%s]', $connectionString, $errstr, $errno ) );
- }
- return $stream;
- }
-
- /**
- *
- * @param number $timeout
- * @return boolean
- */
- public function genericConnectionTest() {
- $this->logger->trace ( 'testCustomConnection()' );
- // test if the port is open
- $connectionString = sprintf ( '%s:%s', $this->hostname, $this->port );
- $stream = $this->createStream ( $connectionString, $this->connectionTimeout );
- return null != $stream;
- }
-
- /**
- * Given a hostname, test if it has open ports
- *
- * @param string $hostname
- */
- public function testHttpPorts() {
- $this->trace ( 'testHttpPorts()' );
- $connectionString = sprintf ( "https://%s:%s", $this->hostname, $this->port );
- try {
- $response = PostmanUtils::remotePost ( $connectionString );
- $this->trace ( 'wp_remote_retrieve_headers:' );
- $this->logger->trace ( wp_remote_retrieve_headers ( $response ) );
- $this->trace ( wp_remote_retrieve_response_code ( $response ) );
- $this->protocol = 'HTTPS';
- $this->http = true;
- $this->https = true;
- $this->secure = true;
- $this->reportedHostname = $this->hostname;
- $this->reportedHostnameDomainOnly = $this->getRegisteredDomain ( $this->hostname );
- return true;
- } catch ( Exception $e ) {
- $this->debug ( 'return false' );
- }
- }
-
- /**
- * Given a hostname, test if it has open ports
- *
- * @param string $hostname
- */
- public function testSmtpPorts() {
- $this->logger->trace ( 'testSmtpPorts()' );
- if ($this->port == 8025) {
- $this->debug ( 'Executing test code for port 8025' );
- $this->protocol = 'SMTP';
- $this->smtp = true;
- $this->authNone = 'true';
- return true;
- }
- $connectionString = sprintf ( "%s:%s", $this->hostname, $this->port );
- $success = $this->talkToMailServer ( $connectionString, $this->connectionTimeout, $this->readTimeout );
- if ($success) {
- $this->protocol = 'SMTP';
- if (! ($this->authCrammd5 || $this->authLogin || $this->authPlain || $this->authXoauth)) {
- $this->authNone = true;
- }
- } else {
- $this->trySmtps = true;
- }
- return $success;
- }
-
- /**
- * Given a hostname, test if it has open ports
- *
- * @param string $hostname
- */
- public function testSmtpsPorts() {
- $this->logger->trace ( 'testSmtpsPorts()' );
- $connectionString = sprintf ( "ssl://%s:%s", $this->hostname, $this->port );
- $success = $this->talkToMailServer ( $connectionString, $this->connectionTimeout, $this->readTimeout );
- if ($success) {
- if (! ($this->authCrammd5 || $this->authLogin || $this->authPlain || $this->authXoauth)) {
- $this->authNone = true;
- }
- $this->protocol = self::SMTPS_PROTOCOL;
- $this->smtps = true;
- $this->secure = true;
- }
- return $success;
- }
-
- /**
- * Given a hostname, test if it has open ports
- *
- * @param string $hostname
- */
- private function talkToMailServer($connectionString) {
- $this->logger->trace ( 'talkToMailServer()' );
- $stream = $this->createStream ( $connectionString, $this->connectionTimeout );
- if ($stream) {
- $serverName = PostmanUtils::postmanGetServerName ();
- @stream_set_timeout ( $stream, $this->readTimeout );
- // see http://php.net/manual/en/transports.inet.php#113244
- // see http://php.net/stream_socket_enable_crypto
- $result = $this->readSmtpResponse ( $stream );
- if ($result) {
- $this->reportedHostname = $result;
- $this->reportedHostnameDomainOnly = $this->getRegisteredDomain ( $this->reportedHostname );
- $this->logger->trace ( sprintf ( 'comparing %s with %s', $this->reportedHostnameDomainOnly, $this->hostnameDomainOnly ) );
- $this->mitm = true;
- // MITM exceptions
- if ($this->reportedHostnameDomainOnly == 'google.com' && $this->hostnameDomainOnly == 'gmail.com') {
- $this->mitm = false;
- } elseif ($this->reportedHostnameDomainOnly == 'hotmail.com' && $this->hostnameDomainOnly == 'live.com') {
- $this->mitm = false;
- } elseif ($this->reportedHostnameDomainOnly == $this->hostnameDomainOnly) {
- $this->mitm = false;
- }
- $this->debug ( sprintf ( 'domain name: %s (%s)', $this->reportedHostname, $this->reportedHostnameDomainOnly ) );
- $this->sendSmtpCommand ( $stream, sprintf ( 'EHLO %s', $serverName ) );
- $this->readSmtpResponse ( $stream );
- if ($this->checkStartTls) {
- $this->sendSmtpCommand ( $stream, 'STARTTLS' );
- $this->readSmtpResponse ( $stream );
- $starttlsSuccess = @stream_socket_enable_crypto ( $stream, true, STREAM_CRYPTO_METHOD_TLS_CLIENT );
- if ($starttlsSuccess) {
- $this->startTls = true;
- $this->secure = true;
- $this->sendSmtpCommand ( $stream, sprintf ( 'EHLO %s', $serverName ) );
- $this->readSmtpResponse ( $stream );
- } else {
- $this->error ( 'starttls failed' );
- }
- }
- fclose ( $stream );
- $this->debug ( 'return true' );
- return true;
- } else {
- fclose ( $stream );
- $this->debug ( 'return false' );
- return false;
- }
- } else {
- return false;
- }
- }
- private function sendSmtpCommand($stream, $message) {
- $this->trace ( 'tx: ' . $message );
- fputs ( $stream, $message . "\r\n" );
- }
- private function readSmtpResponse($stream) {
- $result = '';
- while ( ($line = fgets ( $stream )) !== false ) {
- $this->trace ( 'rx: ' . $line );
- if (preg_match ( '/^250.AUTH/', $line )) {
- // $this->debug ( '250-AUTH' );
- if (preg_match ( '/\\sLOGIN\\s/', $line )) {
- $this->authLogin = true;
- $this->debug ( 'authLogin' );
- }
- if (preg_match ( '/\\sPLAIN\\s/', $line )) {
- $this->authPlain = true;
- $this->debug ( 'authPlain' );
- }
- if (preg_match ( '/\\sCRAM-MD5\\s/', $line )) {
- $this->authCrammd5 = true;
- $this->debug ( 'authCrammd5' );
- }
- if (preg_match ( '/\\sXOAUTH.\\s/', $line )) {
- $this->authXoauth = true;
- $this->debug ( 'authXoauth' );
- }
- if (preg_match ( '/\\sANONYMOUS\\s/', $line )) {
- // Postman treats ANONYMOUS login as no authentication.
- $this->authNone = true;
- $this->debug ( 'authAnonymous => authNone' );
- }
- // done
- $result = 'auth';
- } elseif (preg_match ( '/STARTTLS/', $line )) {
- $result = 'starttls';
- $this->checkStartTls = true;
- $this->debug ( 'starttls' );
- } elseif (preg_match ( '/^220.(.*?)\\s/', $line, $matches )) {
- if (empty ( $result ))
- $result = $matches [1];
- }
- if (preg_match ( '/^\d\d\d\\s/', $line )) {
- // always exist on last server response line
- // $this->debug ( 'exit' );
- return $result;
- }
- }
- return false;
- }
- public function getErrorMessage() {
- return $this->errstr;
- }
- private function trace($message) {
- $this->logger->trace ( sprintf ( '%s:%s => %s', $this->hostname, $this->port, $message ) );
- }
- private function debug($message) {
- $this->logger->debug ( sprintf ( '%s:%s => %s', $this->hostname, $this->port, $message ) );
- }
- private function error($message) {
- $this->logger->error ( sprintf ( '%s:%s => %s', $this->hostname, $this->port, $message ) );
- }
-}
diff --git a/Postman/Postman-Connectivity-Test/PostmanConnectivityTestController.php b/Postman/Postman-Connectivity-Test/PostmanConnectivityTestController.php
deleted file mode 100644
index 6ff5a69..0000000
--- a/Postman/Postman-Connectivity-Test/PostmanConnectivityTestController.php
+++ /dev/null
@@ -1,336 +0,0 @@
-<?php
-if ( ! defined( 'ABSPATH' ) ) {
- exit; // Exit if accessed directly
-}
-
-class PostmanConnectivityTestController {
-
- const PORT_TEST_SLUG = 'postman/port_test';
-
- // logging
- private $logger;
-
- // Holds the values to be used in the fields callbacks
- private $rootPluginFilenameAndPath;
-
- /**
- * Constructor
- *
- * @param mixed $rootPluginFilenameAndPath
- */
- public function __construct( $rootPluginFilenameAndPath ) {
- assert( ! empty( $rootPluginFilenameAndPath ) );
- assert( PostmanUtils::isAdmin() );
- assert( is_admin() );
-
- $this->logger = new PostmanLogger( get_class( $this ) );
- $this->rootPluginFilenameAndPath = $rootPluginFilenameAndPath;
-
- PostmanUtils::registerAdminMenu( $this, 'addPortTestSubmenu' );
-
- // hook on the init event
- add_action( 'init', array(
- $this,
- 'on_init',
- ) );
-
- // initialize the scripts, stylesheets and form fields
- add_action( 'admin_init', array(
- $this,
- 'on_admin_init',
- ) );
- }
-
- /**
- * Functions to execute on the init event
- *
- * "Typically used by plugins to initialize. The current user is already authenticated by this time."
- * ref: http://codex.wordpress.org/Plugin_API/Action_Reference#Actions_Run_During_a_Typical_Request
- */
- public function on_init() {
- // register Ajax handlers
- new PostmanPortTestAjaxController();
- }
-
- /**
- * Fires on the admin_init method
- */
- public function on_admin_init() {
- $this->registerStylesAndScripts();
- }
-
- /**
- * Register and add settings
- */
- private function registerStylesAndScripts() {
- if ( $this->logger->isTrace() ) {
- $this->logger->trace( 'registerStylesAndScripts()' );
- }
- // register the stylesheet and javascript external resources
- $pluginData = apply_filters( 'postman_get_plugin_metadata', null );
- wp_register_script( 'postman_port_test_script', plugins_url( 'Postman/Postman-Connectivity-Test/postman_port_test.js', $this->rootPluginFilenameAndPath ), array(
- PostmanViewController::JQUERY_SCRIPT,
- 'jquery_validation',
- PostmanViewController::POSTMAN_SCRIPT,
- 'sprintf',
- ), $pluginData ['version'] );
- }
-
- /**
- * Register the Email Test screen
- */
- public function addPortTestSubmenu() {
- $page = add_submenu_page( null, sprintf( __( '%s Setup', 'post-smtp' ), __( 'Postman SMTP', 'post-smtp' ) ), __( 'Postman SMTP', 'post-smtp' ), Postman::MANAGE_POSTMAN_CAPABILITY_NAME, PostmanConnectivityTestController::PORT_TEST_SLUG, array(
- $this,
- 'outputPortTestContent',
- ) );
- // When the plugin options page is loaded, also load the stylesheet
- add_action( 'admin_print_styles-' . $page, array(
- $this,
- 'enqueuePortTestResources',
- ) );
- }
-
- /**
- */
- function enqueuePortTestResources() {
- wp_enqueue_style( PostmanViewController::POSTMAN_STYLE );
- wp_enqueue_script( 'postman_port_test_script' );
- $warning = __( 'Warning', 'post-smtp' );
- wp_localize_script( PostmanViewController::POSTMAN_SCRIPT, 'postman_hostname_element_name', '#input_' . PostmanOptions::HOSTNAME );
- wp_localize_script( PostmanViewController::POSTMAN_SCRIPT, 'postman_email_test', array(
- 'recipient' => '#' . PostmanSendTestEmailController::RECIPIENT_EMAIL_FIELD_NAME,
- 'not_started' => _x( 'In Outbox', 'Email Test Status', 'post-smtp' ),
- 'sending' => _x( 'Sending...', 'Email Test Status', 'post-smtp' ),
- 'success' => _x( 'Success', 'Email Test Status', 'post-smtp' ),
- 'failed' => _x( 'Failed', 'Email Test Status', 'post-smtp' ),
- 'ajax_error' => __( 'Ajax Error', 'post-smtp' ),
- ) );
- PostmanConnectivityTestController::addLocalizeScriptForPortTest();
- }
- static function addLocalizeScriptForPortTest() {
- wp_localize_script( PostmanViewController::POSTMAN_SCRIPT, 'postman_port_test', array(
- 'in_progress' => _x( 'Checking..', 'The "please wait" message', 'post-smtp' ),
- 'open' => _x( 'Open', 'The port is open', 'post-smtp' ),
- 'closed' => _x( 'Closed', 'The port is closed', 'post-smtp' ),
- 'yes' => __( 'Yes', 'post-smtp' ),
- 'no' => __( 'No', 'post-smtp' ),
- /* translators: where %d is a port number */
- 'blocked' => __( 'No outbound route between this site and the Internet on Port %d.', 'post-smtp' ),
- /* translators: where %d is a port number and %s is a hostname */
- 'try_dif_smtp' => __( 'Port %d is open, but not to %s.', 'post-smtp' ),
- /* translators: where %d is the port number and %s is the hostname */
- 'success' => __( 'Port %d can be used for SMTP to %s.', 'post-smtp' ),
- 'mitm' => sprintf( '%s: %s', __( 'Warning', 'post-smtp' ), __( 'connected to %1$s instead of %2$s.', 'post-smtp' ) ),
- /* translators: where %d is a port number and %s is the URL for the Postman Gmail Extension */
- 'https_success' => __( 'Port %d can be used with the %s.', 'post-smtp' ),
- ) );
- }
-
- /**
- * Get the settings option array and print one of its values
- */
- public function port_test_hostname_callback() {
- $hostname = PostmanTransportRegistry::getInstance()->getSelectedTransport()->getHostname();
- if ( empty( $hostname ) ) {
- $hostname = PostmanTransportRegistry::getInstance()->getActiveTransport()->getHostname();
- }
- printf( '<input type="text" id="input_hostname" name="postman_options[hostname]" value="%s" size="40" class="required"/>', $hostname );
- }
-
- /**
- */
- public function outputPortTestContent() {
- print '<div class="wrap">';
-
- wp_nonce_field('post-smtp', 'security');
-
- PostmanViewController::outputChildPageHeader( __( 'Connectivity Test', 'post-smtp' ) );
-
- print '<p>';
- print __( 'This test determines which well-known ports are available for Postman to use.', 'post-smtp' );
- print '<form id="port_test_form_id" method="post">';
-
- wp_nonce_field('post-smtp', 'security' );
-
- printf( '<label for="hostname">%s</label>', __( 'Outgoing Mail Server Hostname', 'post-smtp' ) );
- $this->port_test_hostname_callback();
- submit_button( _x( 'Begin Test', 'Button Label', 'post-smtp' ), 'primary', 'begin-port-test', true );
- print '</form>';
- print '<table id="connectivity_test_table">';
- print sprintf( '<tr><th rowspan="2">%s</th><th rowspan="2">%s</th><th rowspan="2">%s</th><th rowspan="2">%s</th><th rowspan="2">%s</th><th colspan="5">%s</th></tr>', __( 'Transport', 'post-smtp' ), _x( 'Socket', 'A socket is the network term for host and port together', 'post-smtp' ), __( 'Status', 'post-smtp' ) . '<sup>*</sup>', __( 'Service Available', 'post-smtp' ), __( 'Server ID', 'post-smtp' ), __( 'Authentication', 'post-smtp' ) );
- print sprintf( '<tr><th>%s</th><th>%s</th><th>%s</th><th>%s</th><th>%s</th></tr>', 'None', 'Login', 'Plain', 'CRAM-MD5', 'OAuth 2.0' );
- $sockets = PostmanTransportRegistry::getInstance()->getSocketsForSetupWizardToProbe();
- foreach ( $sockets as $socket ) {
- if ( $socket ['smtp'] ) {
- print sprintf( '<tr id="%s"><th class="name">%s</th><td class="socket">%s:%s</td><td class="firewall resettable">-</td><td class="service resettable">-</td><td class="reported_id resettable">-</td><td class="auth_none resettable">-</td><td class="auth_login resettable">-</td><td class="auth_plain resettable">-</td><td class="auth_crammd5 resettable">-</td><td class="auth_xoauth2 resettable">-</td></tr>', $socket ['id'], $socket ['transport_name'], $socket ['host'], $socket ['port'] );
- } else {
- print sprintf( '<tr id="%s"><th class="name">%s</th><td class="socket">%s:%s</td><td class="firewall resettable">-</td><td class="service resettable">-</td><td class="reported_id resettable">-</td><td colspan="5">%s</td></tr>', $socket ['id'], $socket ['transport_name'], $socket ['host'], $socket ['port'], __( 'n/a', 'post-smtp' ) );
- }
- }
- print '</table>';
- /* Translators: Where %s is the name of the service providing Internet connectivity test */
- printf( '<p class="portquiz" style="display:none; font-size:0.8em">* %s</p>', sprintf( __( 'According to %s', 'post-smtp' ), '<a target="_blank" href="https://downor.me/portquiz.net">portquiz.net</a>' ) );
- printf( '<p class="ajax-loader" style="display:none"><img src="%s"/></p>', plugins_url( 'post-smtp/style/ajax-loader.gif' ) );
- print '<section id="conclusion" style="display:none">';
- print sprintf( '<h3>%s:</h3>', __( 'Summary', 'post-smtp' ) );
- print '<ol class="conclusion">';
- print '</ol>';
- print '</section>';
- print '<section id="blocked-port-help" style="display:none">';
- print sprintf( '<p><b>%s</b></p>', __( 'A test with <span style="color:red">"No"</span> Service Available indicates one or more of these issues:', 'post-smtp' ) );
- print '<ol>';
- printf( '<li>%s</li>', __( 'Your web host has placed a firewall between this site and the Internet', 'post-smtp' ) );
- printf( '<li>%s</li>', __( 'The SMTP hostname is wrong or the mail server does not provide service on this port', 'post-smtp' ) );
- /* translators: where (1) is the URL and (2) is the system */
- $systemBlockMessage = __( 'Your <a href="%1$s">%2$s configuration</a> is preventing outbound connections', 'post-smtp' );
- printf( '<li>%s</li>', sprintf( $systemBlockMessage, 'http://php.net/manual/en/filesystem.configuration.php#ini.allow-url-fopen', 'PHP' ) );
- printf( '<li>%s</li>', sprintf( $systemBlockMessage, 'http://wp-mix.com/disable-external-url-requests/', 'WordPress' ) );
- print '</ol></p>';
- print sprintf( '<p><b>%s</b></p>', __( 'If the issues above can not be resolved, your last option is to configure Postman to use an email account managed by your web host with an SMTP server managed by your web host.', 'post-smtp' ) );
- print '</section>';
- print '</div>';
- }
-}
-
-/**
- *
- * @author jasonhendriks
- */
-class PostmanPortTestAjaxController {
- private $logger;
- /**
- * Constructor
- *
- * @param PostmanOptions $options
- */
- function __construct() {
- $this->logger = new PostmanLogger( get_class( $this ) );
- PostmanUtils::registerAjaxHandler( 'postman_get_hosts_to_test', $this, 'getPortsToTestViaAjax' );
- PostmanUtils::registerAjaxHandler( 'postman_wizard_port_test', $this, 'runSmtpTest' );
- PostmanUtils::registerAjaxHandler( 'postman_wizard_port_test_smtps', $this, 'runSmtpsTest' );
- PostmanUtils::registerAjaxHandler( 'postman_port_quiz_test', $this, 'runPortQuizTest' );
- PostmanUtils::registerAjaxHandler( 'postman_test_port', $this, 'runSmtpTest' );
- PostmanUtils::registerAjaxHandler( 'postman_test_smtps', $this, 'runSmtpsTest' );
- }
-
- /**
- * This Ajax function determines which hosts/ports to test in both the Wizard Connectivity Test and direct Connectivity Test
- *
- * Given a single outgoing smtp server hostname, return an array of host/port
- * combinations to run the connectivity test on
- */
- function getPortsToTestViaAjax() {
-
- check_admin_referer('post-smtp', 'security');
-
- $queryHostname = PostmanUtils::getRequestParameter( 'hostname' );
- // originalSmtpServer is what SmtpDiscovery thinks the SMTP server should be, given an email address
- $originalSmtpServer = PostmanUtils::getRequestParameter( 'original_smtp_server' );
- if ( $this->logger->isDebug() ) {
- $this->logger->debug( 'Probing available transports for sockets against hostname ' . $queryHostname );
- }
- $sockets = PostmanTransportRegistry::getInstance()->getSocketsForSetupWizardToProbe( $queryHostname, $originalSmtpServer );
- $response = array(
- 'hosts' => $sockets,
- );
- wp_send_json_success( $response );
- }
-
- /**
- * This Ajax function retrieves whether a TCP port is open or not
- */
- function runPortQuizTest() {
-
- check_admin_referer('post-smtp', 'security');
-
- $hostname = 'portquiz.net';
- $port = intval( PostmanUtils::getRequestParameter( 'port' ) );
- $this->logger->debug( 'testing TCP port: hostname ' . $hostname . ' port ' . $port );
- $portTest = new PostmanPortTest( $hostname, $port );
- $success = $portTest->genericConnectionTest();
- $this->buildResponse( $hostname, $port, $portTest, $success );
- }
-
- /**
- * This Ajax function retrieves whether a TCP port is open or not.
- * This is called by both the Wizard and Port Test
- */
- function runSmtpTest() {
-
- check_admin_referer('post-smtp', 'security');
-
- $hostname = trim( PostmanUtils::getRequestParameter( 'hostname' ) );
- $port = intval( PostmanUtils::getRequestParameter( 'port' ) );
- $transport = trim( PostmanUtils::getRequestParameter( 'transport' ) );
- $timeout = PostmanUtils::getRequestParameter( 'timeout' );
- $this->logger->trace( $timeout );
- $portTest = new PostmanPortTest( $hostname, $port );
- if ( isset( $timeout ) ) {
- $portTest->setConnectionTimeout( intval( $timeout ) );
- $portTest->setReadTimeout( intval( $timeout ) );
- }
- if ( $port != 443 ) {
- $this->logger->debug( sprintf( 'testing SMTP socket %s:%s (%s)', $hostname, $port, $transport ) );
- $success = $portTest->testSmtpPorts();
- } else {
- $this->logger->debug( sprintf( 'testing HTTPS socket %s:%s (%s)', $hostname, $port, $transport ) );
- $success = $portTest->testHttpPorts();
- }
- $this->buildResponse( $hostname, $port, $portTest, $success, $transport );
- }
- /**
- * This Ajax function retrieves whether a TCP port is open or not
- */
- function runSmtpsTest() {
-
- check_admin_referer('post-smtp', 'security');
-
- $hostname = trim( PostmanUtils::getRequestParameter( 'hostname' ) );
- $port = intval( PostmanUtils::getRequestParameter( 'port' ) );
- $transport = trim( PostmanUtils::getRequestParameter( 'transport' ) );
- $transportName = trim( PostmanUtils::getRequestParameter( 'transport_name' ) );
- $this->logger->debug( sprintf( 'testing SMTPS socket %s:%s (%s)', $hostname, $port, $transport ) );
- $portTest = new PostmanPortTest( $hostname, $port );
- $portTest->transportName = $transportName;
- $success = $portTest->testSmtpsPorts();
- $this->buildResponse( $hostname, $port, $portTest, $success, $transport );
- }
-
- /**
- *
- * @param mixed $hostname
- * @param mixed $port
- * @param mixed $success
- */
- private function buildResponse( $hostname, $port, PostmanPortTest $portTest, $success, $transport = '' ) {
- $this->logger->debug( sprintf( 'testing port result for %s:%s success=%s', $hostname, $port, $success ) );
- $response = array(
- 'hostname' => $hostname,
- 'hostname_domain_only' => $portTest->hostnameDomainOnly,
- 'port' => $port,
- 'protocol' => $portTest->protocol,
- 'secure' => ($portTest->secure),
- 'mitm' => ($portTest->mitm),
- 'reported_hostname' => $portTest->reportedHostname,
- 'reported_hostname_domain_only' => $portTest->reportedHostnameDomainOnly,
- 'message' => $portTest->getErrorMessage(),
- 'start_tls' => $portTest->startTls,
- 'auth_plain' => $portTest->authPlain,
- 'auth_login' => $portTest->authLogin,
- 'auth_crammd5' => $portTest->authCrammd5,
- 'auth_xoauth' => $portTest->authXoauth,
- 'auth_none' => $portTest->authNone,
- 'try_smtps' => $portTest->trySmtps,
- 'success' => $success,
- 'transport' => $transport,
- );
- $this->logger->trace( 'Ajax response:' );
- $this->logger->trace( $response );
- if ( $success ) {
- wp_send_json_success( $response );
- } else {
- wp_send_json_error( $response );
- }
- }
-}
diff --git a/Postman/Postman-Connectivity-Test/postman_port_test.js b/Postman/Postman-Connectivity-Test/postman_port_test.js
deleted file mode 100644
index 8667c06..0000000
--- a/Postman/Postman-Connectivity-Test/postman_port_test.js
+++ /dev/null
@@ -1,336 +0,0 @@
-postman_begin_test_button_id = 'input#begin-port-test';
-
-jQuery(document).ready(function() {
- var elHostname = jQuery(postman_begin_test_button_id);
- jQuery(postman_hostname_element_name).focus();
- elHostname.click(function() {
- valid = jQuery('#port_test_form_id').valid();
- if (!valid) {
- return false;
- }
-
- // initialize the view for a new test
- elHostname.attr('disabled', 'disabled');
- hide('#conclusion');
- hide('#blocked-port-help');
- jQuery('ol.conclusion').html('');
- showLoaderIcon();
-
- var $elTestingTable = jQuery('#connectivity_test_table');
- $elTestingTable.show();
- show('.portquiz');
-
- var hostname = jQuery(postman_hostname_element_name).val();
- var data = {
- 'action' : 'postman_get_hosts_to_test',
- 'hostname' : hostname,
- 'security' : jQuery('#security').val(),
- };
-
- totalPortsTested = 0;
- portsToBeTested = 0;
-
- jQuery.post(ajaxurl, data, function(response) {
- if (postmanValidateAjaxResponseWithPopup(response)) {
- handleHostsToCheckResponse(response.data);
- }
- }).fail(function(response) {
- ajaxFailed(response);
- });
-
- //
- return false;
- });
-});
-
-/**
- * Handles the response from the server of the list of sockets to check.
- *
- * @param hostname
- * @param response
- */
-function handleHostsToCheckResponse(response) {
- for ( var x in response.hosts) {
- var id = response.hosts[x].id;
- var transportSlug = response.hosts[x].transport_id;
- var hostname = response.hosts[x].host;
- var port = response.hosts[x].port
- var cell = 'tr#' + id + " td.socket";
- var testEl = jQuery(cell);
- testEl.html('<span>' + hostname + ':' + port + '</span>');
- portQuizTest(response.hosts[x], hostname, port);
- }
-}
-
-function portQuizTest(socket, hostname, port) {
- resetView(socket.id);
- portsToBeTested += 1;
- var cell = 'tr#' + socket.id + " td.firewall";
- var testEl = jQuery(cell);
- testEl.html('<span style="color:blue">' + postman_port_test.in_progress
- + '</span>');
- var data = {
- 'action' : 'postman_port_quiz_test',
- 'hostname' : hostname,
- 'port' : port,
- 'security' : jQuery('#security').val(),
- };
- jQuery.post(
- ajaxurl,
- data,
- function(response) {
- if (postmanValidateAjaxResponseWithPopup(response)) {
- if (response.success) {
- testEl.html('<span style="color:green">'
- + postman_port_test.open + '</span>');
- // start the next test
- } else {
- testEl.html('<span style="color:red">'
- + postman_port_test.closed + '</span>');
- }
- firstServiceTest(socket, hostname, port, response.success);
- }
- }).fail(
- function(response) {
- totalPortsTested += 1;
- testEl.html('<span style="color:red">'
- + postman_email_test.ajax_error + "</span>");
- enableButtonCheck();
- });
-}
-function firstServiceTest(socket, hostname, port, open) {
- var cell = 'tr#' + socket.id + " td.service";
- var testEl = jQuery(cell);
- testEl.html('<span style="color:blue">' + postman_port_test.in_progress
- + '</span>');
- var data = {
- 'action' : 'postman_test_port',
- 'hostname' : hostname,
- 'port' : port,
- 'security' : jQuery('#security').val(),
- };
- jQuery
- .post(
- ajaxurl,
- data,
- function(response) {
- if (postmanValidateAjaxResponseWithPopup(response)) {
- if (response.success) {
- totalPortsTested += 1;
- if (port == 443) {
- // API test
- testEl
- .html('<span style="color:green">&#x1f512; '
- + response.data.protocol
- + '</span>');
- var cell = 'tr#' + socket.id
- + " td.reported_id";
- var p443El = jQuery(cell);
- if (response.data.reported_hostname_domain_only) {
- p443El
- .html('<span>'
- + response.data.reported_hostname_domain_only
- + '</span>');
- }
- addConclusion(sprintf(
- postman_port_test.https_success,
- response.data.port,
- socket.transport_name), true,
- response.data.secure);
- } else {
- // SMTP test
- testEl.html('<span style="color:green">'
- + response.data.protocol
- + '</span>');
- inspectResponse(socket.id, response.data,
- port);
- var message = sprintf(postman_port_test.success,
- port, hostname);
- if (response.data.mitm) {
- message += ' <span style="background-color:yellow">'
- + sprintf(
- postman_port_test.mitm,
- response.data.reported_hostname_domain_only,
- response.data.hostname_domain_only)
- + '</span>';
- }
- addConclusion(message, true,
- response.data.secure);
- }
- } else {
- if (port == 443) {
- // API test
- testEl.html('<span style="color:red">'
- + postman_port_test.no + '</span>');
- totalPortsTested += 1;
- var p443El = jQuery(cell);
- addConclusion(sprintf(postman_port_test.try_dif_smtp,
- port, hostname), false,
- response.data.secure);
- } else {
- if (response.data.try_smtps) {
- // start the SMTPS test
- portTest3(socket, hostname, port, open);
- } else {
- testEl.html('<span style="color:red">'
- + postman_port_test.no + '</span>');
- totalPortsTested += 1;
- addConclusion(sprintf(
- postman_port_test.blocked, port),
- false, response.data.secure);
- show('#blocked-port-help');
- }
- }
- }
- enableButtonCheck();
- }
- }).fail(
- function(response) {
- totalPortsTested += 1;
- testEl.html('<span style="color:red">'
- + postman_email_test.ajax_error + "</span>");
- enableButtonCheck();
- });
-}
-function portTest3(socket, hostname, port, open) {
- var cell = 'tr#' + socket.id + " td.service";
- var testEl = jQuery(cell);
- testEl.html('<span style="color:blue">' + postman_port_test.in_progress
- + '</span>');
- var data = {
- 'action' : 'postman_test_smtps',
- 'hostname' : hostname,
- 'port' : port,
- 'security' : jQuery('#security').val(),
- };
- jQuery
- .post(
- ajaxurl,
- data,
- function(response) {
- if (postmanValidateAjaxResponseWithPopup(response)) {
- if (response.success) {
- if (response.data.protocol == 'SMTPS') {
- testEl
- .html('<span style="color:green">&#x1f512; '
- + response.data.protocol
- + '</span>');
- } else {
-
- testEl.html('<span style="color:green">'
- + response.data.protocol
- + '</span>');
- }
- inspectResponse(socket.id, response.data, port);
- var message = sprintf(postman_port_test.success,
- port, hostname);
- if (response.data.mitm) {
- message += ' <span style="background-color:yellow">'
- + sprintf(
- postman_port_test.mitm,
- response.data.reported_hostname_domain_only,
- response.data.hostname_domain_only
- + '</span>');
- }
- addConclusion(message, true,
- response.data.secure);
- } else {
- testEl.html('<span style="color:red">'
- + postman_port_test.no + '</span>');
- show('#blocked-port-help');
- if (open) {
- addConclusion(sprintf(postman_port_test.try_dif_smtp,
- port, hostname), false,
- response.data.secure);
- } else {
- addConclusion(sprintf(postman_port_test.blocked,
- port), false, response.data.secure);
- }
- }
- totalPortsTested += 1;
- enableButtonCheck();
- }
- }).fail(
- function(response) {
- totalPortsTested += 1;
- testEl.html('<span style="color:red">'
- + postman_email_test.ajax_error + "</span>");
- enableButtonCheck();
- });
-}
-function enableButtonCheck() {
- if (totalPortsTested >= portsToBeTested) {
- enable(postman_begin_test_button_id);
- hideLoaderIcon();
- jQuery(postman_hostname_element_name).focus();
- }
-}
-function inspectResponse(id, response, port) {
- var cell = 'tr#' + id + " td.reported_id";
- var testEl = jQuery(cell);
- if (response.reported_hostname_domain_only) {
- testEl.html('<span>' + response.reported_hostname_domain_only
- + '</span>');
- }
- var cell = 'tr#' + id + " td.service";
- var testEl = jQuery(cell);
- if (response.protocol == 'SMTPS') {
- testEl.html('<span style="color:green">&#x1f512; SMTPS</span>');
- } else if (response.start_tls) {
- testEl.html('<span style="color:green">&#x1f512; SMTP-STARTTLS</span>');
- } else {
- testEl.html('<span style="color:green">SMTP</span>');
- }
- var cell = 'tr#' + id + " td.auth_none";
- var testEl = jQuery(cell);
- if (response.auth_none) {
- testEl.html('<span style="color:green">' + postman_port_test.yes + '</span>');
- } else {
- testEl.html('<span>' + postman_port_test.no + '</span>');
- }
- var cell = 'tr#' + id + " td.auth_plain";
- var testEl = jQuery(cell);
- if (response.auth_plain) {
- testEl.html('<span style="color:green">' + postman_port_test.yes + '</span>');
- } else {
- testEl.html('<span>' + postman_port_test.no + '</span>');
- }
- var cell = 'tr#' + id + " td.auth_login";
- var testEl = jQuery(cell);
- if (response.auth_login) {
- testEl.html('<span style="color:green">' + postman_port_test.yes + '</span>');
- } else {
- testEl.html('<span>' + postman_port_test.no + '</span>');
- }
- var cell = 'tr#' + id + " td.auth_crammd5";
- var testEl = jQuery(cell);
- if (response.auth_crammd5) {
- testEl.html('<span style="color:green">' + postman_port_test.yes + '</span>');
- } else {
- testEl.html('<span>' + postman_port_test.no + '</span>');
- }
- var cell = 'tr#' + id + " td.auth_xoauth2";
- var testEl = jQuery(cell);
- if (response.auth_xoauth) {
- testEl.html('<span style="color:green">' + postman_port_test.yes + '</span>');
- } else {
- testEl.html('<span>' + postman_port_test.no + '</span>');
- }
-}
-function resetView(id) {
- var testEl = jQuery('tr#' + id + ' td.resettable');
- testEl.html('-');
-}
-function addConclusion(message, success, isSecure) {
- show('#conclusion');
- var secureIcon = '';
- if (isSecure) {
- secureIcon = '&#x1f512; ';
- }
- if (success) {
- message = '&#9989; ' + secureIcon + message;
- } else {
- message = '&#10060; ' + secureIcon + message;
- }
- jQuery('ol.conclusion').append('<li>' + message + '</li>');
-} \ No newline at end of file
diff --git a/Postman/Postman-Connectivity-Test/registered-domain-libs-master/PHP/effectiveTLDs.inc.php b/Postman/Postman-Connectivity-Test/registered-domain-libs-master/PHP/effectiveTLDs.inc.php
deleted file mode 100644
index 8f353c8..0000000
--- a/Postman/Postman-Connectivity-Test/registered-domain-libs-master/PHP/effectiveTLDs.inc.php
+++ /dev/null
@@ -1,6484 +0,0 @@
-<?php
-// This Source Code Form is subject to the terms of the Mozilla Public
-// License, v. 2.0. If a copy of the MPL was not distributed with this
-// file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-$tldTree = array('ac' => array('com' => array(),
-'edu' => array(),
-'gov' => array(),
-'net' => array(),
-'mil' => array(),
-'org' => array()),
-'ad' => array('nom' => array()),
-'ae' => array('co' => array(),
-'net' => array(),
-'org' => array(),
-'sch' => array(),
-'ac' => array(),
-'gov' => array(),
-'mil' => array()),
-'aero' => array('accident-investigation' => array(),
-'accident-prevention' => array(),
-'aerobatic' => array(),
-'aeroclub' => array(),
-'aerodrome' => array(),
-'agents' => array(),
-'aircraft' => array(),
-'airline' => array(),
-'airport' => array(),
-'air-surveillance' => array(),
-'airtraffic' => array(),
-'air-traffic-control' => array(),
-'ambulance' => array(),
-'amusement' => array(),
-'association' => array(),
-'author' => array(),
-'ballooning' => array(),
-'broker' => array(),
-'caa' => array(),
-'cargo' => array(),
-'catering' => array(),
-'certification' => array(),
-'championship' => array(),
-'charter' => array(),
-'civilaviation' => array(),
-'club' => array(),
-'conference' => array(),
-'consultant' => array(),
-'consulting' => array(),
-'control' => array(),
-'council' => array(),
-'crew' => array(),
-'design' => array(),
-'dgca' => array(),
-'educator' => array(),
-'emergency' => array(),
-'engine' => array(),
-'engineer' => array(),
-'entertainment' => array(),
-'equipment' => array(),
-'exchange' => array(),
-'express' => array(),
-'federation' => array(),
-'flight' => array(),
-'freight' => array(),
-'fuel' => array(),
-'gliding' => array(),
-'government' => array(),
-'groundhandling' => array(),
-'group' => array(),
-'hanggliding' => array(),
-'homebuilt' => array(),
-'insurance' => array(),
-'journal' => array(),
-'journalist' => array(),
-'leasing' => array(),
-'logistics' => array(),
-'magazine' => array(),
-'maintenance' => array(),
-'marketplace' => array(),
-'media' => array(),
-'microlight' => array(),
-'modelling' => array(),
-'navigation' => array(),
-'parachuting' => array(),
-'paragliding' => array(),
-'passenger-association' => array(),
-'pilot' => array(),
-'press' => array(),
-'production' => array(),
-'recreation' => array(),
-'repbody' => array(),
-'res' => array(),
-'research' => array(),
-'rotorcraft' => array(),
-'safety' => array(),
-'scientist' => array(),
-'services' => array(),
-'show' => array(),
-'skydiving' => array(),
-'software' => array(),
-'student' => array(),
-'taxi' => array(),
-'trader' => array(),
-'trading' => array(),
-'trainer' => array(),
-'union' => array(),
-'workinggroup' => array(),
-'works' => array()),
-'af' => array('gov' => array(),
-'com' => array(),
-'org' => array(),
-'net' => array(),
-'edu' => array()),
-'ag' => array('com' => array(),
-'org' => array(),
-'net' => array(),
-'co' => array(),
-'nom' => array()),
-'ai' => array('off' => array(),
-'com' => array(),
-'net' => array(),
-'org' => array()),
-'al' => array('com' => array(),
-'edu' => array(),
-'gov' => array(),
-'mil' => array(),
-'net' => array(),
-'org' => array()),
-'am' => array(),
-'an' => array('com' => array(),
-'net' => array(),
-'org' => array(),
-'edu' => array()),
-'ao' => array('ed' => array(),
-'gv' => array(),
-'og' => array(),
-'co' => array(),
-'pb' => array(),
-'it' => array()),
-'aq' => array(),
-'ar' => array('com' => array('blogspot' => array()),
-'edu' => array(),
-'gob' => array(),
-'gov' => array(),
-'int' => array(),
-'mil' => array(),
-'net' => array(),
-'org' => array(),
-'tur' => array()),
-'arpa' => array('e164' => array(),
-'in-addr' => array(),
-'ip6' => array(),
-'iris' => array(),
-'uri' => array(),
-'urn' => array()),
-'as' => array('gov' => array()),
-'asia' => array(),
-'at' => array('ac' => array(),
-'co' => array('blogspot' => array()),
-'gv' => array(),
-'or' => array(),
-'biz' => array(),
-'info' => array(),
-'priv' => array()),
-'au' => array('com' => array('blogspot' => array()),
-'net' => array(),
-'org' => array(),
-'edu' => array('act' => array(),
-'nsw' => array(),
-'nt' => array(),
-'qld' => array(),
-'sa' => array(),
-'tas' => array(),
-'vic' => array(),
-'wa' => array()),
-'gov' => array('qld' => array(),
-'sa' => array(),
-'tas' => array(),
-'vic' => array(),
-'wa' => array()),
-'asn' => array(),
-'id' => array(),
-'info' => array(),
-'conf' => array(),
-'oz' => array(),
-'act' => array(),
-'nsw' => array(),
-'nt' => array(),
-'qld' => array(),
-'sa' => array(),
-'tas' => array(),
-'vic' => array(),
-'wa' => array()),
-'aw' => array('com' => array()),
-'ax' => array(),
-'az' => array('com' => array(),
-'net' => array(),
-'int' => array(),
-'gov' => array(),
-'org' => array(),
-'edu' => array(),
-'info' => array(),
-'pp' => array(),
-'mil' => array(),
-'name' => array(),
-'pro' => array(),
-'biz' => array()),
-'ba' => array('org' => array(),
-'net' => array(),
-'edu' => array(),
-'gov' => array(),
-'mil' => array(),
-'unsa' => array(),
-'unbi' => array(),
-'co' => array(),
-'com' => array(),
-'rs' => array()),
-'bb' => array('biz' => array(),
-'co' => array(),
-'com' => array(),
-'edu' => array(),
-'gov' => array(),
-'info' => array(),
-'net' => array(),
-'org' => array(),
-'store' => array(),
-'tv' => array()),
-'bd' => array('*' => array()),
-'be' => array('ac' => array(),
-'blogspot' => array()),
-'bf' => array('gov' => array()),
-'bg' => array('a' => array(),
-'b' => array(),
-'c' => array(),
-'d' => array(),
-'e' => array(),
-'f' => array(),
-'g' => array(),
-'h' => array(),
-'i' => array(),
-'j' => array(),
-'k' => array(),
-'l' => array(),
-'m' => array(),
-'n' => array(),
-'o' => array(),
-'p' => array(),
-'q' => array(),
-'r' => array(),
-'s' => array(),
-'t' => array(),
-'u' => array(),
-'v' => array(),
-'w' => array(),
-'x' => array(),
-'y' => array(),
-'z' => array(),
-'0' => array(),
-'1' => array(),
-'2' => array(),
-'3' => array(),
-'4' => array(),
-'5' => array(),
-'6' => array(),
-'7' => array(),
-'8' => array(),
-'9' => array()),
-'bh' => array('com' => array(),
-'edu' => array(),
-'net' => array(),
-'org' => array(),
-'gov' => array()),
-'bi' => array('co' => array(),
-'com' => array(),
-'edu' => array(),
-'or' => array(),
-'org' => array()),
-'biz' => array('dyndns' => array(),
-'for-better' => array(),
-'for-more' => array(),
-'for-some' => array(),
-'for-the' => array(),
-'selfip' => array(),
-'webhop' => array()),
-'bj' => array('asso' => array(),
-'barreau' => array(),
-'gouv' => array(),
-'blogspot' => array()),
-'bm' => array('com' => array(),
-'edu' => array(),
-'gov' => array(),
-'net' => array(),
-'org' => array()),
-'bn' => array('*' => array()),
-'bo' => array('com' => array(),
-'edu' => array(),
-'gov' => array(),
-'gob' => array(),
-'int' => array(),
-'org' => array(),
-'net' => array(),
-'mil' => array(),
-'tv' => array()),
-'br' => array('adm' => array(),
-'adv' => array(),
-'agr' => array(),
-'am' => array(),
-'arq' => array(),
-'art' => array(),
-'ato' => array(),
-'b' => array(),
-'bio' => array(),
-'blog' => array(),
-'bmd' => array(),
-'cim' => array(),
-'cng' => array(),
-'cnt' => array(),
-'com' => array('blogspot' => array()),
-'coop' => array(),
-'ecn' => array(),
-'eco' => array(),
-'edu' => array(),
-'emp' => array(),
-'eng' => array(),
-'esp' => array(),
-'etc' => array(),
-'eti' => array(),
-'far' => array(),
-'flog' => array(),
-'fm' => array(),
-'fnd' => array(),
-'fot' => array(),
-'fst' => array(),
-'g12' => array(),
-'ggf' => array(),
-'gov' => array(),
-'imb' => array(),
-'ind' => array(),
-'inf' => array(),
-'jor' => array(),
-'jus' => array(),
-'leg' => array(),
-'lel' => array(),
-'mat' => array(),
-'med' => array(),
-'mil' => array(),
-'mp' => array(),
-'mus' => array(),
-'net' => array(),
-'nom' => array('*' => array()),
-'not' => array(),
-'ntr' => array(),
-'odo' => array(),
-'org' => array(),
-'ppg' => array(),
-'pro' => array(),
-'psc' => array(),
-'psi' => array(),
-'qsl' => array(),
-'radio' => array(),
-'rec' => array(),
-'slg' => array(),
-'srv' => array(),
-'taxi' => array(),
-'teo' => array(),
-'tmp' => array(),
-'trd' => array(),
-'tur' => array(),
-'tv' => array(),
-'vet' => array(),
-'vlog' => array(),
-'wiki' => array(),
-'zlg' => array()),
-'bs' => array('com' => array(),
-'net' => array(),
-'org' => array(),
-'edu' => array(),
-'gov' => array()),
-'bt' => array('com' => array(),
-'edu' => array(),
-'gov' => array(),
-'net' => array(),
-'org' => array()),
-'bv' => array(),
-'bw' => array('co' => array(),
-'org' => array()),
-'by' => array('gov' => array(),
-'mil' => array(),
-'com' => array(),
-'of' => array()),
-'bz' => array('com' => array(),
-'net' => array(),
-'org' => array(),
-'edu' => array(),
-'gov' => array(),
-'za' => array()),
-'ca' => array('ab' => array(),
-'bc' => array(),
-'mb' => array(),
-'nb' => array(),
-'nf' => array(),
-'nl' => array(),
-'ns' => array(),
-'nt' => array(),
-'nu' => array(),
-'on' => array(),
-'pe' => array(),
-'qc' => array(),
-'sk' => array(),
-'yk' => array(),
-'gc' => array(),
-'co' => array(),
-'blogspot' => array()),
-'cat' => array(),
-'cc' => array('ftpaccess' => array(),
-'game-server' => array(),
-'myphotos' => array(),
-'scrapping' => array()),
-'cd' => array('gov' => array()),
-'cf' => array('blogspot' => array()),
-'cg' => array(),
-'ch' => array('blogspot' => array()),
-'ci' => array('org' => array(),
-'or' => array(),
-'com' => array(),
-'co' => array(),
-'edu' => array(),
-'ed' => array(),
-'ac' => array(),
-'net' => array(),
-'go' => array(),
-'asso' => array(),
-'aéroport' => array(),
-'int' => array(),
-'presse' => array(),
-'md' => array(),
-'gouv' => array()),
-'ck' => array('*' => array(),
-'www' => array('!' => '')),
-'cl' => array('gov' => array(),
-'gob' => array(),
-'co' => array(),
-'mil' => array()),
-'cm' => array('co' => array(),
-'com' => array(),
-'gov' => array(),
-'net' => array()),
-'cn' => array('ac' => array(),
-'com' => array(),
-'edu' => array(),
-'gov' => array(),
-'net' => array(),
-'org' => array(),
-'mil' => array(),
-'公司' => array(),
-'网络' => array(),
-'網絡' => array(),
-'ah' => array(),
-'bj' => array(),
-'cq' => array(),
-'fj' => array(),
-'gd' => array(),
-'gs' => array(),
-'gz' => array(),
-'gx' => array(),
-'ha' => array(),
-'hb' => array(),
-'he' => array(),
-'hi' => array(),
-'hl' => array(),
-'hn' => array(),
-'jl' => array(),
-'js' => array(),
-'jx' => array(),
-'ln' => array(),
-'nm' => array(),
-'nx' => array(),
-'qh' => array(),
-'sc' => array(),
-'sd' => array(),
-'sh' => array(),
-'sn' => array(),
-'sx' => array(),
-'tj' => array(),
-'xj' => array(),
-'xz' => array(),
-'yn' => array(),
-'zj' => array(),
-'hk' => array(),
-'mo' => array(),
-'tw' => array(),
-'amazonaws' => array('compute' => array('cn-north-1' => array()))),
-'co' => array('arts' => array(),
-'com' => array(),
-'edu' => array(),
-'firm' => array(),
-'gov' => array(),
-'info' => array(),
-'int' => array(),
-'mil' => array(),
-'net' => array(),
-'nom' => array(),
-'org' => array(),
-'rec' => array(),
-'web' => array()),
-'com' => array('amazonaws' => array('compute' => array('ap-northeast-1' => array(),
-'ap-southeast-1' => array(),
-'ap-southeast-2' => array(),
-'eu-west-1' => array(),
-'sa-east-1' => array(),
-'us-gov-west-1' => array(),
-'us-west-1' => array(),
-'us-west-2' => array()),
-'compute-1' => array('z-1' => array(),
-'z-2' => array()),
-'us-east-1' => array(),
-'elb' => array(),
-'s3' => array(),
-'s3-us-west-2' => array(),
-'s3-us-west-1' => array(),
-'s3-eu-west-1' => array(),
-'s3-ap-southeast-1' => array(),
-'s3-ap-southeast-2' => array(),
-'s3-ap-northeast-1' => array(),
-'s3-sa-east-1' => array(),
-'s3-us-gov-west-1' => array(),
-'s3-fips-us-gov-west-1' => array(),
-'s3-website-us-east-1' => array(),
-'s3-website-us-west-2' => array(),
-'s3-website-us-west-1' => array(),
-'s3-website-eu-west-1' => array(),
-'s3-website-ap-southeast-1' => array(),
-'s3-website-ap-southeast-2' => array(),
-'s3-website-ap-northeast-1' => array(),
-'s3-website-sa-east-1' => array(),
-'s3-website-us-gov-west-1' => array()),
-'elasticbeanstalk' => array(),
-'betainabox' => array(),
-'ar' => array(),
-'br' => array(),
-'cn' => array(),
-'de' => array(),
-'eu' => array(),
-'gb' => array(),
-'hu' => array(),
-'jpn' => array(),
-'kr' => array(),
-'mex' => array(),
-'no' => array(),
-'qc' => array(),
-'ru' => array(),
-'sa' => array(),
-'se' => array(),
-'uk' => array(),
-'us' => array(),
-'uy' => array(),
-'za' => array(),
-'africa' => array(),
-'gr' => array(),
-'co' => array(),
-'cloudcontrolled' => array(),
-'cloudcontrolapp' => array(),
-'dreamhosters' => array(),
-'dyndns-at-home' => array(),
-'dyndns-at-work' => array(),
-'dyndns-blog' => array(),
-'dyndns-free' => array(),
-'dyndns-home' => array(),
-'dyndns-ip' => array(),
-'dyndns-mail' => array(),
-'dyndns-office' => array(),
-'dyndns-pics' => array(),
-'dyndns-remote' => array(),
-'dyndns-server' => array(),
-'dyndns-web' => array(),
-'dyndns-wiki' => array(),
-'dyndns-work' => array(),
-'blogdns' => array(),
-'cechire' => array(),
-'dnsalias' => array(),
-'dnsdojo' => array(),
-'doesntexist' => array(),
-'dontexist' => array(),
-'doomdns' => array(),
-'dyn-o-saur' => array(),
-'dynalias' => array(),
-'est-a-la-maison' => array(),
-'est-a-la-masion' => array(),
-'est-le-patron' => array(),
-'est-mon-blogueur' => array(),
-'from-ak' => array(),
-'from-al' => array(),
-'from-ar' => array(),
-'from-ca' => array(),
-'from-ct' => array(),
-'from-dc' => array(),
-'from-de' => array(),
-'from-fl' => array(),
-'from-ga' => array(),
-'from-hi' => array(),
-'from-ia' => array(),
-'from-id' => array(),
-'from-il' => array(),
-'from-in' => array(),
-'from-ks' => array(),
-'from-ky' => array(),
-'from-ma' => array(),
-'from-md' => array(),
-'from-mi' => array(),
-'from-mn' => array(),
-'from-mo' => array(),
-'from-ms' => array(),
-'from-mt' => array(),
-'from-nc' => array(),
-'from-nd' => array(),
-'from-ne' => array(),
-'from-nh' => array(),
-'from-nj' => array(),
-'from-nm' => array(),
-'from-nv' => array(),
-'from-oh' => array(),
-'from-ok' => array(),
-'from-or' => array(),
-'from-pa' => array(),
-'from-pr' => array(),
-'from-ri' => array(),
-'from-sc' => array(),
-'from-sd' => array(),
-'from-tn' => array(),
-'from-tx' => array(),
-'from-ut' => array(),
-'from-va' => array(),
-'from-vt' => array(),
-'from-wa' => array(),
-'from-wi' => array(),
-'from-wv' => array(),
-'from-wy' => array(),
-'getmyip' => array(),
-'gotdns' => array(),
-'hobby-site' => array(),
-'homelinux' => array(),
-'homeunix' => array(),
-'iamallama' => array(),
-'is-a-anarchist' => array(),
-'is-a-blogger' => array(),
-'is-a-bookkeeper' => array(),
-'is-a-bulls-fan' => array(),
-'is-a-caterer' => array(),
-'is-a-chef' => array(),
-'is-a-conservative' => array(),
-'is-a-cpa' => array(),
-'is-a-cubicle-slave' => array(),
-'is-a-democrat' => array(),
-'is-a-designer' => array(),
-'is-a-doctor' => array(),
-'is-a-financialadvisor' => array(),
-'is-a-geek' => array(),
-'is-a-green' => array(),
-'is-a-guru' => array(),
-'is-a-hard-worker' => array(),
-'is-a-hunter' => array(),
-'is-a-landscaper' => array(),
-'is-a-lawyer' => array(),
-'is-a-liberal' => array(),
-'is-a-libertarian' => array(),
-'is-a-llama' => array(),
-'is-a-musician' => array(),
-'is-a-nascarfan' => array(),
-'is-a-nurse' => array(),
-'is-a-painter' => array(),
-'is-a-personaltrainer' => array(),
-'is-a-photographer' => array(),
-'is-a-player' => array(),
-'is-a-republican' => array(),
-'is-a-rockstar' => array(),
-'is-a-socialist' => array(),
-'is-a-student' => array(),
-'is-a-teacher' => array(),
-'is-a-techie' => array(),
-'is-a-therapist' => array(),
-'is-an-accountant' => array(),
-'is-an-actor' => array(),
-'is-an-actress' => array(),
-'is-an-anarchist' => array(),
-'is-an-artist' => array(),
-'is-an-engineer' => array(),
-'is-an-entertainer' => array(),
-'is-certified' => array(),
-'is-gone' => array(),
-'is-into-anime' => array(),
-'is-into-cars' => array(),
-'is-into-cartoons' => array(),
-'is-into-games' => array(),
-'is-leet' => array(),
-'is-not-certified' => array(),
-'is-slick' => array(),
-'is-uberleet' => array(),
-'is-with-theband' => array(),
-'isa-geek' => array(),
-'isa-hockeynut' => array(),
-'issmarterthanyou' => array(),
-'likes-pie' => array(),
-'likescandy' => array(),
-'neat-url' => array(),
-'saves-the-whales' => array(),
-'selfip' => array(),
-'sells-for-less' => array(),
-'sells-for-u' => array(),
-'servebbs' => array(),
-'simple-url' => array(),
-'space-to-rent' => array(),
-'teaches-yoga' => array(),
-'writesthisblog' => array(),
-'firebaseapp' => array(),
-'flynnhub' => array(),
-'githubusercontent' => array(),
-'ro' => array(),
-'appspot' => array(),
-'blogspot' => array(),
-'codespot' => array(),
-'googleapis' => array(),
-'googlecode' => array(),
-'withgoogle' => array(),
-'herokuapp' => array(),
-'herokussl' => array(),
-'nfshost' => array(),
-'operaunite' => array(),
-'outsystemscloud' => array(),
-'rhcloud' => array(),
-'yolasite' => array()),
-'coop' => array(),
-'cr' => array('ac' => array(),
-'co' => array(),
-'ed' => array(),
-'fi' => array(),
-'go' => array(),
-'or' => array(),
-'sa' => array()),
-'cu' => array('com' => array(),
-'edu' => array(),
-'org' => array(),
-'net' => array(),
-'gov' => array(),
-'inf' => array()),
-'cv' => array('blogspot' => array()),
-'cw' => array('com' => array(),
-'edu' => array(),
-'net' => array(),
-'org' => array()),
-'cx' => array('gov' => array(),
-'ath' => array()),
-'cy' => array('*' => array()),
-'cz' => array('blogspot' => array()),
-'de' => array('com' => array(),
-'fuettertdasnetz' => array(),
-'isteingeek' => array(),
-'istmein' => array(),
-'lebtimnetz' => array(),
-'leitungsen' => array(),
-'traeumtgerade' => array(),
-'blogspot' => array()),
-'dj' => array(),
-'dk' => array('blogspot' => array()),
-'dm' => array('com' => array(),
-'net' => array(),
-'org' => array(),
-'edu' => array(),
-'gov' => array()),
-'do' => array('art' => array(),
-'com' => array(),
-'edu' => array(),
-'gob' => array(),
-'gov' => array(),
-'mil' => array(),
-'net' => array(),
-'org' => array(),
-'sld' => array(),
-'web' => array()),
-'dz' => array('com' => array(),
-'org' => array(),
-'net' => array(),
-'gov' => array(),
-'edu' => array(),
-'asso' => array(),
-'pol' => array(),
-'art' => array()),
-'ec' => array('com' => array(),
-'info' => array(),
-'net' => array(),
-'fin' => array(),
-'k12' => array(),
-'med' => array(),
-'pro' => array(),
-'org' => array(),
-'edu' => array(),
-'gov' => array(),
-'gob' => array(),
-'mil' => array()),
-'edu' => array(),
-'ee' => array('edu' => array(),
-'gov' => array(),
-'riik' => array(),
-'lib' => array(),
-'med' => array(),
-'com' => array(),
-'pri' => array(),
-'aip' => array(),
-'org' => array(),
-'fie' => array()),
-'eg' => array('com' => array(),
-'edu' => array(),
-'eun' => array(),
-'gov' => array(),
-'mil' => array(),
-'name' => array(),
-'net' => array(),
-'org' => array(),
-'sci' => array()),
-'er' => array('*' => array()),
-'es' => array('com' => array('blogspot' => array()),
-'nom' => array(),
-'org' => array(),
-'gob' => array(),
-'edu' => array()),
-'et' => array('com' => array(),
-'gov' => array(),
-'org' => array(),
-'edu' => array(),
-'biz' => array(),
-'name' => array(),
-'info' => array()),
-'eu' => array(),
-'fi' => array('aland' => array(),
-'blogspot' => array(),
-'iki' => array()),
-'fj' => array('*' => array()),
-'fk' => array('*' => array()),
-'fm' => array(),
-'fo' => array(),
-'fr' => array('com' => array(),
-'asso' => array(),
-'nom' => array(),
-'prd' => array(),
-'presse' => array(),
-'tm' => array(),
-'aeroport' => array(),
-'assedic' => array(),
-'avocat' => array(),
-'avoues' => array(),
-'cci' => array(),
-'chambagri' => array(),
-'chirurgiens-dentistes' => array(),
-'experts-comptables' => array(),
-'geometre-expert' => array(),
-'gouv' => array(),
-'greta' => array(),
-'huissier-justice' => array(),
-'medecin' => array(),
-'notaires' => array(),
-'pharmacien' => array(),
-'port' => array(),
-'veterinaire' => array(),
-'blogspot' => array()),
-'ga' => array(),
-'gb' => array(),
-'gd' => array(),
-'ge' => array('com' => array(),
-'edu' => array(),
-'gov' => array(),
-'org' => array(),
-'mil' => array(),
-'net' => array(),
-'pvt' => array()),
-'gf' => array(),
-'gg' => array('co' => array(),
-'net' => array(),
-'org' => array()),
-'gh' => array('com' => array(),
-'edu' => array(),
-'gov' => array(),
-'org' => array(),
-'mil' => array()),
-'gi' => array('com' => array(),
-'ltd' => array(),
-'gov' => array(),
-'mod' => array(),
-'edu' => array(),
-'org' => array()),
-'gl' => array(),
-'gm' => array(),
-'gn' => array('ac' => array(),
-'com' => array(),
-'edu' => array(),
-'gov' => array(),
-'org' => array(),
-'net' => array()),
-'gov' => array(),
-'gp' => array('com' => array(),
-'net' => array(),
-'mobi' => array(),
-'edu' => array(),
-'org' => array(),
-'asso' => array()),
-'gq' => array(),
-'gr' => array('com' => array(),
-'edu' => array(),
-'net' => array(),
-'org' => array(),
-'gov' => array(),
-'blogspot' => array()),
-'gs' => array(),
-'gt' => array('com' => array(),
-'edu' => array(),
-'gob' => array(),
-'ind' => array(),
-'mil' => array(),
-'net' => array(),
-'org' => array()),
-'gu' => array('*' => array()),
-'gw' => array(),
-'gy' => array('co' => array(),
-'com' => array(),
-'net' => array()),
-'hk' => array('com' => array(),
-'edu' => array(),
-'gov' => array(),
-'idv' => array(),
-'net' => array(),
-'org' => array(),
-'公司' => array(),
-'教育' => array(),
-'敎育' => array(),
-'政府' => array(),
-'個人' => array(),
-'个人' => array(),
-'箇人' => array(),
-'網络' => array(),
-'网络' => array(),
-'组織' => array(),
-'網絡' => array(),
-'网絡' => array(),
-'组织' => array(),
-'組織' => array(),
-'組织' => array(),
-'blogspot' => array()),
-'hm' => array(),
-'hn' => array('com' => array(),
-'edu' => array(),
-'org' => array(),
-'net' => array(),
-'mil' => array(),
-'gob' => array()),
-'hr' => array('iz' => array(),
-'from' => array(),
-'name' => array(),
-'com' => array()),
-'ht' => array('com' => array(),
-'shop' => array(),
-'firm' => array(),
-'info' => array(),
-'adult' => array(),
-'net' => array(),
-'pro' => array(),
-'org' => array(),
-'med' => array(),
-'art' => array(),
-'coop' => array(),
-'pol' => array(),
-'asso' => array(),
-'edu' => array(),
-'rel' => array(),
-'gouv' => array(),
-'perso' => array()),
-'hu' => array('co' => array(),
-'info' => array(),
-'org' => array(),
-'priv' => array(),
-'sport' => array(),
-'tm' => array(),
-'2000' => array(),
-'agrar' => array(),
-'bolt' => array(),
-'casino' => array(),
-'city' => array(),
-'erotica' => array(),
-'erotika' => array(),
-'film' => array(),
-'forum' => array(),
-'games' => array(),
-'hotel' => array(),
-'ingatlan' => array(),
-'jogasz' => array(),
-'konyvelo' => array(),
-'lakas' => array(),
-'media' => array(),
-'news' => array(),
-'reklam' => array(),
-'sex' => array(),
-'shop' => array(),
-'suli' => array(),
-'szex' => array(),
-'tozsde' => array(),
-'utazas' => array(),
-'video' => array(),
-'blogspot' => array()),
-'id' => array('ac' => array(),
-'biz' => array(),
-'co' => array(),
-'desa' => array(),
-'go' => array(),
-'mil' => array(),
-'my' => array(),
-'net' => array(),
-'or' => array(),
-'sch' => array(),
-'web' => array()),
-'ie' => array('gov' => array(),
-'blogspot' => array()),
-'il' => array('*' => array(),
-'co' => array('blogspot' => array())),
-'im' => array('ac' => array(),
-'co' => array('ltd' => array(),
-'plc' => array()),
-'com' => array(),
-'net' => array(),
-'org' => array(),
-'tt' => array(),
-'tv' => array()),
-'in' => array('co' => array(),
-'firm' => array(),
-'net' => array(),
-'org' => array(),
-'gen' => array(),
-'ind' => array(),
-'nic' => array(),
-'ac' => array(),
-'edu' => array(),
-'res' => array(),
-'gov' => array(),
-'mil' => array(),
-'blogspot' => array()),
-'info' => array('dyndns' => array(),
-'barrel-of-knowledge' => array(),
-'barrell-of-knowledge' => array(),
-'for-our' => array(),
-'groks-the' => array(),
-'groks-this' => array(),
-'here-for-more' => array(),
-'knowsitall' => array(),
-'selfip' => array(),
-'webhop' => array()),
-'int' => array('eu' => array()),
-'io' => array('com' => array(),
-'github' => array(),
-'nid' => array()),
-'iq' => array('gov' => array(),
-'edu' => array(),
-'mil' => array(),
-'com' => array(),
-'org' => array(),
-'net' => array()),
-'ir' => array('ac' => array(),
-'co' => array(),
-'gov' => array(),
-'id' => array(),
-'net' => array(),
-'org' => array(),
-'sch' => array(),
-'ایران' => array(),
-'ايران' => array()),
-'is' => array('net' => array(),
-'com' => array(),
-'edu' => array(),
-'gov' => array(),
-'org' => array(),
-'int' => array(),
-'cupcake' => array()),
-'it' => array('gov' => array(),
-'edu' => array(),
-'abr' => array(),
-'abruzzo' => array(),
-'aosta-valley' => array(),
-'aostavalley' => array(),
-'bas' => array(),
-'basilicata' => array(),
-'cal' => array(),
-'calabria' => array(),
-'cam' => array(),
-'campania' => array(),
-'emilia-romagna' => array(),
-'emiliaromagna' => array(),
-'emr' => array(),
-'friuli-v-giulia' => array(),
-'friuli-ve-giulia' => array(),
-'friuli-vegiulia' => array(),
-'friuli-venezia-giulia' => array(),
-'friuli-veneziagiulia' => array(),
-'friuli-vgiulia' => array(),
-'friuliv-giulia' => array(),
-'friulive-giulia' => array(),
-'friulivegiulia' => array(),
-'friulivenezia-giulia' => array(),
-'friuliveneziagiulia' => array(),
-'friulivgiulia' => array(),
-'fvg' => array(),
-'laz' => array(),
-'lazio' => array(),
-'lig' => array(),
-'liguria' => array(),
-'lom' => array(),
-'lombardia' => array(),
-'lombardy' => array(),
-'lucania' => array(),
-'mar' => array(),
-'marche' => array(),
-'mol' => array(),
-'molise' => array(),
-'piedmont' => array(),
-'piemonte' => array(),
-'pmn' => array(),
-'pug' => array(),
-'puglia' => array(),
-'sar' => array(),
-'sardegna' => array(),
-'sardinia' => array(),
-'sic' => array(),
-'sicilia' => array(),
-'sicily' => array(),
-'taa' => array(),
-'tos' => array(),
-'toscana' => array(),
-'trentino-a-adige' => array(),
-'trentino-aadige' => array(),
-'trentino-alto-adige' => array(),
-'trentino-altoadige' => array(),
-'trentino-s-tirol' => array(),
-'trentino-stirol' => array(),
-'trentino-sud-tirol' => array(),
-'trentino-sudtirol' => array(),
-'trentino-sued-tirol' => array(),
-'trentino-suedtirol' => array(),
-'trentinoa-adige' => array(),
-'trentinoaadige' => array(),
-'trentinoalto-adige' => array(),
-'trentinoaltoadige' => array(),
-'trentinos-tirol' => array(),
-'trentinostirol' => array(),
-'trentinosud-tirol' => array(),
-'trentinosudtirol' => array(),
-'trentinosued-tirol' => array(),
-'trentinosuedtirol' => array(),
-'tuscany' => array(),
-'umb' => array(),
-'umbria' => array(),
-'val-d-aosta' => array(),
-'val-daosta' => array(),
-'vald-aosta' => array(),
-'valdaosta' => array(),
-'valle-aosta' => array(),
-'valle-d-aosta' => array(),
-'valle-daosta' => array(),
-'valleaosta' => array(),
-'valled-aosta' => array(),
-'valledaosta' => array(),
-'vallee-aoste' => array(),
-'valleeaoste' => array(),
-'vao' => array(),
-'vda' => array(),
-'ven' => array(),
-'veneto' => array(),
-'ag' => array(),
-'agrigento' => array(),
-'al' => array(),
-'alessandria' => array(),
-'alto-adige' => array(),
-'altoadige' => array(),
-'an' => array(),
-'ancona' => array(),
-'andria-barletta-trani' => array(),
-'andria-trani-barletta' => array(),
-'andriabarlettatrani' => array(),
-'andriatranibarletta' => array(),
-'ao' => array(),
-'aosta' => array(),
-'aoste' => array(),
-'ap' => array(),
-'aq' => array(),
-'aquila' => array(),
-'ar' => array(),
-'arezzo' => array(),
-'ascoli-piceno' => array(),
-'ascolipiceno' => array(),
-'asti' => array(),
-'at' => array(),
-'av' => array(),
-'avellino' => array(),
-'ba' => array(),
-'balsan' => array(),
-'bari' => array(),
-'barletta-trani-andria' => array(),
-'barlettatraniandria' => array(),
-'belluno' => array(),
-'benevento' => array(),
-'bergamo' => array(),
-'bg' => array(),
-'bi' => array(),
-'biella' => array(),
-'bl' => array(),
-'bn' => array(),
-'bo' => array(),
-'bologna' => array(),
-'bolzano' => array(),
-'bozen' => array(),
-'br' => array(),
-'brescia' => array(),
-'brindisi' => array(),
-'bs' => array(),
-'bt' => array(),
-'bz' => array(),
-'ca' => array(),
-'cagliari' => array(),
-'caltanissetta' => array(),
-'campidano-medio' => array(),
-'campidanomedio' => array(),
-'campobasso' => array(),
-'carbonia-iglesias' => array(),
-'carboniaiglesias' => array(),
-'carrara-massa' => array(),
-'carraramassa' => array(),
-'caserta' => array(),
-'catania' => array(),
-'catanzaro' => array(),
-'cb' => array(),
-'ce' => array(),
-'cesena-forli' => array(),
-'cesenaforli' => array(),
-'ch' => array(),
-'chieti' => array(),
-'ci' => array(),
-'cl' => array(),
-'cn' => array(),
-'co' => array(),
-'como' => array(),
-'cosenza' => array(),
-'cr' => array(),
-'cremona' => array(),
-'crotone' => array(),
-'cs' => array(),
-'ct' => array(),
-'cuneo' => array(),
-'cz' => array(),
-'dell-ogliastra' => array(),
-'dellogliastra' => array(),
-'en' => array(),
-'enna' => array(),
-'fc' => array(),
-'fe' => array(),
-'fermo' => array(),
-'ferrara' => array(),
-'fg' => array(),
-'fi' => array(),
-'firenze' => array(),
-'florence' => array(),
-'fm' => array(),
-'foggia' => array(),
-'forli-cesena' => array(),
-'forlicesena' => array(),
-'fr' => array(),
-'frosinone' => array(),
-'ge' => array(),
-'genoa' => array(),
-'genova' => array(),
-'go' => array(),
-'gorizia' => array(),
-'gr' => array(),
-'grosseto' => array(),
-'iglesias-carbonia' => array(),
-'iglesiascarbonia' => array(),
-'im' => array(),
-'imperia' => array(),
-'is' => array(),
-'isernia' => array(),
-'kr' => array(),
-'la-spezia' => array(),
-'laquila' => array(),
-'laspezia' => array(),
-'latina' => array(),
-'lc' => array(),
-'le' => array(),
-'lecce' => array(),
-'lecco' => array(),
-'li' => array(),
-'livorno' => array(),
-'lo' => array(),
-'lodi' => array(),
-'lt' => array(),
-'lu' => array(),
-'lucca' => array(),
-'macerata' => array(),
-'mantova' => array(),
-'massa-carrara' => array(),
-'massacarrara' => array(),
-'matera' => array(),
-'mb' => array(),
-'mc' => array(),
-'me' => array(),
-'medio-campidano' => array(),
-'mediocampidano' => array(),
-'messina' => array(),
-'mi' => array(),
-'milan' => array(),
-'milano' => array(),
-'mn' => array(),
-'mo' => array(),
-'modena' => array(),
-'monza-brianza' => array(),
-'monza-e-della-brianza' => array(),
-'monza' => array(),
-'monzabrianza' => array(),
-'monzaebrianza' => array(),
-'monzaedellabrianza' => array(),
-'ms' => array(),
-'mt' => array(),
-'na' => array(),
-'naples' => array(),
-'napoli' => array(),
-'no' => array(),
-'novara' => array(),
-'nu' => array(),
-'nuoro' => array(),
-'og' => array(),
-'ogliastra' => array(),
-'olbia-tempio' => array(),
-'olbiatempio' => array(),
-'or' => array(),
-'oristano' => array(),
-'ot' => array(),
-'pa' => array(),
-'padova' => array(),
-'padua' => array(),
-'palermo' => array(),
-'parma' => array(),
-'pavia' => array(),
-'pc' => array(),
-'pd' => array(),
-'pe' => array(),
-'perugia' => array(),
-'pesaro-urbino' => array(),
-'pesarourbino' => array(),
-'pescara' => array(),
-'pg' => array(),
-'pi' => array(),
-'piacenza' => array(),
-'pisa' => array(),
-'pistoia' => array(),
-'pn' => array(),
-'po' => array(),
-'pordenone' => array(),
-'potenza' => array(),
-'pr' => array(),
-'prato' => array(),
-'pt' => array(),
-'pu' => array(),
-'pv' => array(),
-'pz' => array(),
-'ra' => array(),
-'ragusa' => array(),
-'ravenna' => array(),
-'rc' => array(),
-'re' => array(),
-'reggio-calabria' => array(),
-'reggio-emilia' => array(),
-'reggiocalabria' => array(),
-'reggioemilia' => array(),
-'rg' => array(),
-'ri' => array(),
-'rieti' => array(),
-'rimini' => array(),
-'rm' => array(),
-'rn' => array(),
-'ro' => array(),
-'roma' => array(),
-'rome' => array(),
-'rovigo' => array(),
-'sa' => array(),
-'salerno' => array(),
-'sassari' => array(),
-'savona' => array(),
-'si' => array(),
-'siena' => array(),
-'siracusa' => array(),
-'so' => array(),
-'sondrio' => array(),
-'sp' => array(),
-'sr' => array(),
-'ss' => array(),
-'suedtirol' => array(),
-'sv' => array(),
-'ta' => array(),
-'taranto' => array(),
-'te' => array(),
-'tempio-olbia' => array(),
-'tempioolbia' => array(),
-'teramo' => array(),
-'terni' => array(),
-'tn' => array(),
-'to' => array(),
-'torino' => array(),
-'tp' => array(),
-'tr' => array(),
-'trani-andria-barletta' => array(),
-'trani-barletta-andria' => array(),
-'traniandriabarletta' => array(),
-'tranibarlettaandria' => array(),
-'trapani' => array(),
-'trentino' => array(),
-'trento' => array(),
-'treviso' => array(),
-'trieste' => array(),
-'ts' => array(),
-'turin' => array(),
-'tv' => array(),
-'ud' => array(),
-'udine' => array(),
-'urbino-pesaro' => array(),
-'urbinopesaro' => array(),
-'va' => array(),
-'varese' => array(),
-'vb' => array(),
-'vc' => array(),
-'ve' => array(),
-'venezia' => array(),
-'venice' => array(),
-'verbania' => array(),
-'vercelli' => array(),
-'verona' => array(),
-'vi' => array(),
-'vibo-valentia' => array(),
-'vibovalentia' => array(),
-'vicenza' => array(),
-'viterbo' => array(),
-'vr' => array(),
-'vs' => array(),
-'vt' => array(),
-'vv' => array(),
-'blogspot' => array()),
-'je' => array('co' => array(),
-'net' => array(),
-'org' => array()),
-'jm' => array('*' => array()),
-'jo' => array('com' => array(),
-'org' => array(),
-'net' => array(),
-'edu' => array(),
-'sch' => array(),
-'gov' => array(),
-'mil' => array(),
-'name' => array()),
-'jobs' => array(),
-'jp' => array('ac' => array(),
-'ad' => array(),
-'co' => array(),
-'ed' => array(),
-'go' => array(),
-'gr' => array(),
-'lg' => array(),
-'ne' => array(),
-'or' => array(),
-'aichi' => array('aisai' => array(),
-'ama' => array(),
-'anjo' => array(),
-'asuke' => array(),
-'chiryu' => array(),
-'chita' => array(),
-'fuso' => array(),
-'gamagori' => array(),
-'handa' => array(),
-'hazu' => array(),
-'hekinan' => array(),
-'higashiura' => array(),
-'ichinomiya' => array(),
-'inazawa' => array(),
-'inuyama' => array(),
-'isshiki' => array(),
-'iwakura' => array(),
-'kanie' => array(),
-'kariya' => array(),
-'kasugai' => array(),
-'kira' => array(),
-'kiyosu' => array(),
-'komaki' => array(),
-'konan' => array(),
-'kota' => array(),
-'mihama' => array(),
-'miyoshi' => array(),
-'nishio' => array(),
-'nisshin' => array(),
-'obu' => array(),
-'oguchi' => array(),
-'oharu' => array(),
-'okazaki' => array(),
-'owariasahi' => array(),
-'seto' => array(),
-'shikatsu' => array(),
-'shinshiro' => array(),
-'shitara' => array(),
-'tahara' => array(),
-'takahama' => array(),
-'tobishima' => array(),
-'toei' => array(),
-'togo' => array(),
-'tokai' => array(),
-'tokoname' => array(),
-'toyoake' => array(),
-'toyohashi' => array(),
-'toyokawa' => array(),
-'toyone' => array(),
-'toyota' => array(),
-'tsushima' => array(),
-'yatomi' => array()),
-'akita' => array('akita' => array(),
-'daisen' => array(),
-'fujisato' => array(),
-'gojome' => array(),
-'hachirogata' => array(),
-'happou' => array(),
-'higashinaruse' => array(),
-'honjo' => array(),
-'honjyo' => array(),
-'ikawa' => array(),
-'kamikoani' => array(),
-'kamioka' => array(),
-'katagami' => array(),
-'kazuno' => array(),
-'kitaakita' => array(),
-'kosaka' => array(),
-'kyowa' => array(),
-'misato' => array(),
-'mitane' => array(),
-'moriyoshi' => array(),
-'nikaho' => array(),
-'noshiro' => array(),
-'odate' => array(),
-'oga' => array(),
-'ogata' => array(),
-'semboku' => array(),
-'yokote' => array(),
-'yurihonjo' => array()),
-'aomori' => array('aomori' => array(),
-'gonohe' => array(),
-'hachinohe' => array(),
-'hashikami' => array(),
-'hiranai' => array(),
-'hirosaki' => array(),
-'itayanagi' => array(),
-'kuroishi' => array(),
-'misawa' => array(),
-'mutsu' => array(),
-'nakadomari' => array(),
-'noheji' => array(),
-'oirase' => array(),
-'owani' => array(),
-'rokunohe' => array(),
-'sannohe' => array(),
-'shichinohe' => array(),
-'shingo' => array(),
-'takko' => array(),
-'towada' => array(),
-'tsugaru' => array(),
-'tsuruta' => array()),
-'chiba' => array('abiko' => array(),
-'asahi' => array(),
-'chonan' => array(),
-'chosei' => array(),
-'choshi' => array(),
-'chuo' => array(),
-'funabashi' => array(),
-'futtsu' => array(),
-'hanamigawa' => array(),
-'ichihara' => array(),
-'ichikawa' => array(),
-'ichinomiya' => array(),
-'inzai' => array(),
-'isumi' => array(),
-'kamagaya' => array(),
-'kamogawa' => array(),
-'kashiwa' => array(),
-'katori' => array(),
-'katsuura' => array(),
-'kimitsu' => array(),
-'kisarazu' => array(),
-'kozaki' => array(),
-'kujukuri' => array(),
-'kyonan' => array(),
-'matsudo' => array(),
-'midori' => array(),
-'mihama' => array(),
-'minamiboso' => array(),
-'mobara' => array(),
-'mutsuzawa' => array(),
-'nagara' => array(),
-'nagareyama' => array(),
-'narashino' => array(),
-'narita' => array(),
-'noda' => array(),
-'oamishirasato' => array(),
-'omigawa' => array(),
-'onjuku' => array(),
-'otaki' => array(),
-'sakae' => array(),
-'sakura' => array(),
-'shimofusa' => array(),
-'shirako' => array(),
-'shiroi' => array(),
-'shisui' => array(),
-'sodegaura' => array(),
-'sosa' => array(),
-'tako' => array(),
-'tateyama' => array(),
-'togane' => array(),
-'tohnosho' => array(),
-'tomisato' => array(),
-'urayasu' => array(),
-'yachimata' => array(),
-'yachiyo' => array(),
-'yokaichiba' => array(),
-'yokoshibahikari' => array(),
-'yotsukaido' => array()),
-'ehime' => array('ainan' => array(),
-'honai' => array(),
-'ikata' => array(),
-'imabari' => array(),
-'iyo' => array(),
-'kamijima' => array(),
-'kihoku' => array(),
-'kumakogen' => array(),
-'masaki' => array(),
-'matsuno' => array(),
-'matsuyama' => array(),
-'namikata' => array(),
-'niihama' => array(),
-'ozu' => array(),
-'saijo' => array(),
-'seiyo' => array(),
-'shikokuchuo' => array(),
-'tobe' => array(),
-'toon' => array(),
-'uchiko' => array(),
-'uwajima' => array(),
-'yawatahama' => array()),
-'fukui' => array('echizen' => array(),
-'eiheiji' => array(),
-'fukui' => array(),
-'ikeda' => array(),
-'katsuyama' => array(),
-'mihama' => array(),
-'minamiechizen' => array(),
-'obama' => array(),
-'ohi' => array(),
-'ono' => array(),
-'sabae' => array(),
-'sakai' => array(),
-'takahama' => array(),
-'tsuruga' => array(),
-'wakasa' => array()),
-'fukuoka' => array('ashiya' => array(),
-'buzen' => array(),
-'chikugo' => array(),
-'chikuho' => array(),
-'chikujo' => array(),
-'chikushino' => array(),
-'chikuzen' => array(),
-'chuo' => array(),
-'dazaifu' => array(),
-'fukuchi' => array(),
-'hakata' => array(),
-'higashi' => array(),
-'hirokawa' => array(),
-'hisayama' => array(),
-'iizuka' => array(),
-'inatsuki' => array(),
-'kaho' => array(),
-'kasuga' => array(),
-'kasuya' => array(),
-'kawara' => array(),
-'keisen' => array(),
-'koga' => array(),
-'kurate' => array(),
-'kurogi' => array(),
-'kurume' => array(),
-'minami' => array(),
-'miyako' => array(),
-'miyama' => array(),
-'miyawaka' => array(),
-'mizumaki' => array(),
-'munakata' => array(),
-'nakagawa' => array(),
-'nakama' => array(),
-'nishi' => array(),
-'nogata' => array(),
-'ogori' => array(),
-'okagaki' => array(),
-'okawa' => array(),
-'oki' => array(),
-'omuta' => array(),
-'onga' => array(),
-'onojo' => array(),
-'oto' => array(),
-'saigawa' => array(),
-'sasaguri' => array(),
-'shingu' => array(),
-'shinyoshitomi' => array(),
-'shonai' => array(),
-'soeda' => array(),
-'sue' => array(),
-'tachiarai' => array(),
-'tagawa' => array(),
-'takata' => array(),
-'toho' => array(),
-'toyotsu' => array(),
-'tsuiki' => array(),
-'ukiha' => array(),
-'umi' => array(),
-'usui' => array(),
-'yamada' => array(),
-'yame' => array(),
-'yanagawa' => array(),
-'yukuhashi' => array()),
-'fukushima' => array('aizubange' => array(),
-'aizumisato' => array(),
-'aizuwakamatsu' => array(),
-'asakawa' => array(),
-'bandai' => array(),
-'date' => array(),
-'fukushima' => array(),
-'furudono' => array(),
-'futaba' => array(),
-'hanawa' => array(),
-'higashi' => array(),
-'hirata' => array(),
-'hirono' => array(),
-'iitate' => array(),
-'inawashiro' => array(),
-'ishikawa' => array(),
-'iwaki' => array(),
-'izumizaki' => array(),
-'kagamiishi' => array(),
-'kaneyama' => array(),
-'kawamata' => array(),
-'kitakata' => array(),
-'kitashiobara' => array(),
-'koori' => array(),
-'koriyama' => array(),
-'kunimi' => array(),
-'miharu' => array(),
-'mishima' => array(),
-'namie' => array(),
-'nango' => array(),
-'nishiaizu' => array(),
-'nishigo' => array(),
-'okuma' => array(),
-'omotego' => array(),
-'ono' => array(),
-'otama' => array(),
-'samegawa' => array(),
-'shimogo' => array(),
-'shirakawa' => array(),
-'showa' => array(),
-'soma' => array(),
-'sukagawa' => array(),
-'taishin' => array(),
-'tamakawa' => array(),
-'tanagura' => array(),
-'tenei' => array(),
-'yabuki' => array(),
-'yamato' => array(),
-'yamatsuri' => array(),
-'yanaizu' => array(),
-'yugawa' => array()),
-'gifu' => array('anpachi' => array(),
-'ena' => array(),
-'gifu' => array(),
-'ginan' => array(),
-'godo' => array(),
-'gujo' => array(),
-'hashima' => array(),
-'hichiso' => array(),
-'hida' => array(),
-'higashishirakawa' => array(),
-'ibigawa' => array(),
-'ikeda' => array(),
-'kakamigahara' => array(),
-'kani' => array(),
-'kasahara' => array(),
-'kasamatsu' => array(),
-'kawaue' => array(),
-'kitagata' => array(),
-'mino' => array(),
-'minokamo' => array(),
-'mitake' => array(),
-'mizunami' => array(),
-'motosu' => array(),
-'nakatsugawa' => array(),
-'ogaki' => array(),
-'sakahogi' => array(),
-'seki' => array(),
-'sekigahara' => array(),
-'shirakawa' => array(),
-'tajimi' => array(),
-'takayama' => array(),
-'tarui' => array(),
-'toki' => array(),
-'tomika' => array(),
-'wanouchi' => array(),
-'yamagata' => array(),
-'yaotsu' => array(),
-'yoro' => array()),
-'gunma' => array('annaka' => array(),
-'chiyoda' => array(),
-'fujioka' => array(),
-'higashiagatsuma' => array(),
-'isesaki' => array(),
-'itakura' => array(),
-'kanna' => array(),
-'kanra' => array(),
-'katashina' => array(),
-'kawaba' => array(),
-'kiryu' => array(),
-'kusatsu' => array(),
-'maebashi' => array(),
-'meiwa' => array(),
-'midori' => array(),
-'minakami' => array(),
-'naganohara' => array(),
-'nakanojo' => array(),
-'nanmoku' => array(),
-'numata' => array(),
-'oizumi' => array(),
-'ora' => array(),
-'ota' => array(),
-'shibukawa' => array(),
-'shimonita' => array(),
-'shinto' => array(),
-'showa' => array(),
-'takasaki' => array(),
-'takayama' => array(),
-'tamamura' => array(),
-'tatebayashi' => array(),
-'tomioka' => array(),
-'tsukiyono' => array(),
-'tsumagoi' => array(),
-'ueno' => array(),
-'yoshioka' => array()),
-'hiroshima' => array('asaminami' => array(),
-'daiwa' => array(),
-'etajima' => array(),
-'fuchu' => array(),
-'fukuyama' => array(),
-'hatsukaichi' => array(),
-'higashihiroshima' => array(),
-'hongo' => array(),
-'jinsekikogen' => array(),
-'kaita' => array(),
-'kui' => array(),
-'kumano' => array(),
-'kure' => array(),
-'mihara' => array(),
-'miyoshi' => array(),
-'naka' => array(),
-'onomichi' => array(),
-'osakikamijima' => array(),
-'otake' => array(),
-'saka' => array(),
-'sera' => array(),
-'seranishi' => array(),
-'shinichi' => array(),
-'shobara' => array(),
-'takehara' => array()),
-'hokkaido' => array('abashiri' => array(),
-'abira' => array(),
-'aibetsu' => array(),
-'akabira' => array(),
-'akkeshi' => array(),
-'asahikawa' => array(),
-'ashibetsu' => array(),
-'ashoro' => array(),
-'assabu' => array(),
-'atsuma' => array(),
-'bibai' => array(),
-'biei' => array(),
-'bifuka' => array(),
-'bihoro' => array(),
-'biratori' => array(),
-'chippubetsu' => array(),
-'chitose' => array(),
-'date' => array(),
-'ebetsu' => array(),
-'embetsu' => array(),
-'eniwa' => array(),
-'erimo' => array(),
-'esan' => array(),
-'esashi' => array(),
-'fukagawa' => array(),
-'fukushima' => array(),
-'furano' => array(),
-'furubira' => array(),
-'haboro' => array(),
-'hakodate' => array(),
-'hamatonbetsu' => array(),
-'hidaka' => array(),
-'higashikagura' => array(),
-'higashikawa' => array(),
-'hiroo' => array(),
-'hokuryu' => array(),
-'hokuto' => array(),
-'honbetsu' => array(),
-'horokanai' => array(),
-'horonobe' => array(),
-'ikeda' => array(),
-'imakane' => array(),
-'ishikari' => array(),
-'iwamizawa' => array(),
-'iwanai' => array(),
-'kamifurano' => array(),
-'kamikawa' => array(),
-'kamishihoro' => array(),
-'kamisunagawa' => array(),
-'kamoenai' => array(),
-'kayabe' => array(),
-'kembuchi' => array(),
-'kikonai' => array(),
-'kimobetsu' => array(),
-'kitahiroshima' => array(),
-'kitami' => array(),
-'kiyosato' => array(),
-'koshimizu' => array(),
-'kunneppu' => array(),
-'kuriyama' => array(),
-'kuromatsunai' => array(),
-'kushiro' => array(),
-'kutchan' => array(),
-'kyowa' => array(),
-'mashike' => array(),
-'matsumae' => array(),
-'mikasa' => array(),
-'minamifurano' => array(),
-'mombetsu' => array(),
-'moseushi' => array(),
-'mukawa' => array(),
-'muroran' => array(),
-'naie' => array(),
-'nakagawa' => array(),
-'nakasatsunai' => array(),
-'nakatombetsu' => array(),
-'nanae' => array(),
-'nanporo' => array(),
-'nayoro' => array(),
-'nemuro' => array(),
-'niikappu' => array(),
-'niki' => array(),
-'nishiokoppe' => array(),
-'noboribetsu' => array(),
-'numata' => array(),
-'obihiro' => array(),
-'obira' => array(),
-'oketo' => array(),
-'okoppe' => array(),
-'otaru' => array(),
-'otobe' => array(),
-'otofuke' => array(),
-'otoineppu' => array(),
-'oumu' => array(),
-'ozora' => array(),
-'pippu' => array(),
-'rankoshi' => array(),
-'rebun' => array(),
-'rikubetsu' => array(),
-'rishiri' => array(),
-'rishirifuji' => array(),
-'saroma' => array(),
-'sarufutsu' => array(),
-'shakotan' => array(),
-'shari' => array(),
-'shibecha' => array(),
-'shibetsu' => array(),
-'shikabe' => array(),
-'shikaoi' => array(),
-'shimamaki' => array(),
-'shimizu' => array(),
-'shimokawa' => array(),
-'shinshinotsu' => array(),
-'shintoku' => array(),
-'shiranuka' => array(),
-'shiraoi' => array(),
-'shiriuchi' => array(),
-'sobetsu' => array(),
-'sunagawa' => array(),
-'taiki' => array(),
-'takasu' => array(),
-'takikawa' => array(),
-'takinoue' => array(),
-'teshikaga' => array(),
-'tobetsu' => array(),
-'tohma' => array(),
-'tomakomai' => array(),
-'tomari' => array(),
-'toya' => array(),
-'toyako' => array(),
-'toyotomi' => array(),
-'toyoura' => array(),
-'tsubetsu' => array(),
-'tsukigata' => array(),
-'urakawa' => array(),
-'urausu' => array(),
-'uryu' => array(),
-'utashinai' => array(),
-'wakkanai' => array(),
-'wassamu' => array(),
-'yakumo' => array(),
-'yoichi' => array()),
-'hyogo' => array('aioi' => array(),
-'akashi' => array(),
-'ako' => array(),
-'amagasaki' => array(),
-'aogaki' => array(),
-'asago' => array(),
-'ashiya' => array(),
-'awaji' => array(),
-'fukusaki' => array(),
-'goshiki' => array(),
-'harima' => array(),
-'himeji' => array(),
-'ichikawa' => array(),
-'inagawa' => array(),
-'itami' => array(),
-'kakogawa' => array(),
-'kamigori' => array(),
-'kamikawa' => array(),
-'kasai' => array(),
-'kasuga' => array(),
-'kawanishi' => array(),
-'miki' => array(),
-'minamiawaji' => array(),
-'nishinomiya' => array(),
-'nishiwaki' => array(),
-'ono' => array(),
-'sanda' => array(),
-'sannan' => array(),
-'sasayama' => array(),
-'sayo' => array(),
-'shingu' => array(),
-'shinonsen' => array(),
-'shiso' => array(),
-'sumoto' => array(),
-'taishi' => array(),
-'taka' => array(),
-'takarazuka' => array(),
-'takasago' => array(),
-'takino' => array(),
-'tamba' => array(),
-'tatsuno' => array(),
-'toyooka' => array(),
-'yabu' => array(),
-'yashiro' => array(),
-'yoka' => array(),
-'yokawa' => array()),
-'ibaraki' => array('ami' => array(),
-'asahi' => array(),
-'bando' => array(),
-'chikusei' => array(),
-'daigo' => array(),
-'fujishiro' => array(),
-'hitachi' => array(),
-'hitachinaka' => array(),
-'hitachiomiya' => array(),
-'hitachiota' => array(),
-'ibaraki' => array(),
-'ina' => array(),
-'inashiki' => array(),
-'itako' => array(),
-'iwama' => array(),
-'joso' => array(),
-'kamisu' => array(),
-'kasama' => array(),
-'kashima' => array(),
-'kasumigaura' => array(),
-'koga' => array(),
-'miho' => array(),
-'mito' => array(),
-'moriya' => array(),
-'naka' => array(),
-'namegata' => array(),
-'oarai' => array(),
-'ogawa' => array(),
-'omitama' => array(),
-'ryugasaki' => array(),
-'sakai' => array(),
-'sakuragawa' => array(),
-'shimodate' => array(),
-'shimotsuma' => array(),
-'shirosato' => array(),
-'sowa' => array(),
-'suifu' => array(),
-'takahagi' => array(),
-'tamatsukuri' => array(),
-'tokai' => array(),
-'tomobe' => array(),
-'tone' => array(),
-'toride' => array(),
-'tsuchiura' => array(),
-'tsukuba' => array(),
-'uchihara' => array(),
-'ushiku' => array(),
-'yachiyo' => array(),
-'yamagata' => array(),
-'yawara' => array(),
-'yuki' => array()),
-'ishikawa' => array('anamizu' => array(),
-'hakui' => array(),
-'hakusan' => array(),
-'kaga' => array(),
-'kahoku' => array(),
-'kanazawa' => array(),
-'kawakita' => array(),
-'komatsu' => array(),
-'nakanoto' => array(),
-'nanao' => array(),
-'nomi' => array(),
-'nonoichi' => array(),
-'noto' => array(),
-'shika' => array(),
-'suzu' => array(),
-'tsubata' => array(),
-'tsurugi' => array(),
-'uchinada' => array(),
-'wajima' => array()),
-'iwate' => array('fudai' => array(),
-'fujisawa' => array(),
-'hanamaki' => array(),
-'hiraizumi' => array(),
-'hirono' => array(),
-'ichinohe' => array(),
-'ichinoseki' => array(),
-'iwaizumi' => array(),
-'iwate' => array(),
-'joboji' => array(),
-'kamaishi' => array(),
-'kanegasaki' => array(),
-'karumai' => array(),
-'kawai' => array(),
-'kitakami' => array(),
-'kuji' => array(),
-'kunohe' => array(),
-'kuzumaki' => array(),
-'miyako' => array(),
-'mizusawa' => array(),
-'morioka' => array(),
-'ninohe' => array(),
-'noda' => array(),
-'ofunato' => array(),
-'oshu' => array(),
-'otsuchi' => array(),
-'rikuzentakata' => array(),
-'shiwa' => array(),
-'shizukuishi' => array(),
-'sumita' => array(),
-'tanohata' => array(),
-'tono' => array(),
-'yahaba' => array(),
-'yamada' => array()),
-'kagawa' => array('ayagawa' => array(),
-'higashikagawa' => array(),
-'kanonji' => array(),
-'kotohira' => array(),
-'manno' => array(),
-'marugame' => array(),
-'mitoyo' => array(),
-'naoshima' => array(),
-'sanuki' => array(),
-'tadotsu' => array(),
-'takamatsu' => array(),
-'tonosho' => array(),
-'uchinomi' => array(),
-'utazu' => array(),
-'zentsuji' => array()),
-'kagoshima' => array('akune' => array(),
-'amami' => array(),
-'hioki' => array(),
-'isa' => array(),
-'isen' => array(),
-'izumi' => array(),
-'kagoshima' => array(),
-'kanoya' => array(),
-'kawanabe' => array(),
-'kinko' => array(),
-'kouyama' => array(),
-'makurazaki' => array(),
-'matsumoto' => array(),
-'minamitane' => array(),
-'nakatane' => array(),
-'nishinoomote' => array(),
-'satsumasendai' => array(),
-'soo' => array(),
-'tarumizu' => array(),
-'yusui' => array()),
-'kanagawa' => array('aikawa' => array(),
-'atsugi' => array(),
-'ayase' => array(),
-'chigasaki' => array(),
-'ebina' => array(),
-'fujisawa' => array(),
-'hadano' => array(),
-'hakone' => array(),
-'hiratsuka' => array(),
-'isehara' => array(),
-'kaisei' => array(),
-'kamakura' => array(),
-'kiyokawa' => array(),
-'matsuda' => array(),
-'minamiashigara' => array(),
-'miura' => array(),
-'nakai' => array(),
-'ninomiya' => array(),
-'odawara' => array(),
-'oi' => array(),
-'oiso' => array(),
-'sagamihara' => array(),
-'samukawa' => array(),
-'tsukui' => array(),
-'yamakita' => array(),
-'yamato' => array(),
-'yokosuka' => array(),
-'yugawara' => array(),
-'zama' => array(),
-'zushi' => array()),
-'kochi' => array('aki' => array(),
-'geisei' => array(),
-'hidaka' => array(),
-'higashitsuno' => array(),
-'ino' => array(),
-'kagami' => array(),
-'kami' => array(),
-'kitagawa' => array(),
-'kochi' => array(),
-'mihara' => array(),
-'motoyama' => array(),
-'muroto' => array(),
-'nahari' => array(),
-'nakamura' => array(),
-'nankoku' => array(),
-'nishitosa' => array(),
-'niyodogawa' => array(),
-'ochi' => array(),
-'okawa' => array(),
-'otoyo' => array(),
-'otsuki' => array(),
-'sakawa' => array(),
-'sukumo' => array(),
-'susaki' => array(),
-'tosa' => array(),
-'tosashimizu' => array(),
-'toyo' => array(),
-'tsuno' => array(),
-'umaji' => array(),
-'yasuda' => array(),
-'yusuhara' => array()),
-'kumamoto' => array('amakusa' => array(),
-'arao' => array(),
-'aso' => array(),
-'choyo' => array(),
-'gyokuto' => array(),
-'hitoyoshi' => array(),
-'kamiamakusa' => array(),
-'kashima' => array(),
-'kikuchi' => array(),
-'kosa' => array(),
-'kumamoto' => array(),
-'mashiki' => array(),
-'mifune' => array(),
-'minamata' => array(),
-'minamioguni' => array(),
-'nagasu' => array(),
-'nishihara' => array(),
-'oguni' => array(),
-'ozu' => array(),
-'sumoto' => array(),
-'takamori' => array(),
-'uki' => array(),
-'uto' => array(),
-'yamaga' => array(),
-'yamato' => array(),
-'yatsushiro' => array()),
-'kyoto' => array('ayabe' => array(),
-'fukuchiyama' => array(),
-'higashiyama' => array(),
-'ide' => array(),
-'ine' => array(),
-'joyo' => array(),
-'kameoka' => array(),
-'kamo' => array(),
-'kita' => array(),
-'kizu' => array(),
-'kumiyama' => array(),
-'kyotamba' => array(),
-'kyotanabe' => array(),
-'kyotango' => array(),
-'maizuru' => array(),
-'minami' => array(),
-'minamiyamashiro' => array(),
-'miyazu' => array(),
-'muko' => array(),
-'nagaokakyo' => array(),
-'nakagyo' => array(),
-'nantan' => array(),
-'oyamazaki' => array(),
-'sakyo' => array(),
-'seika' => array(),
-'tanabe' => array(),
-'uji' => array(),
-'ujitawara' => array(),
-'wazuka' => array(),
-'yamashina' => array(),
-'yawata' => array()),
-'mie' => array('asahi' => array(),
-'inabe' => array(),
-'ise' => array(),
-'kameyama' => array(),
-'kawagoe' => array(),
-'kiho' => array(),
-'kisosaki' => array(),
-'kiwa' => array(),
-'komono' => array(),
-'kumano' => array(),
-'kuwana' => array(),
-'matsusaka' => array(),
-'meiwa' => array(),
-'mihama' => array(),
-'minamiise' => array(),
-'misugi' => array(),
-'miyama' => array(),
-'nabari' => array(),
-'shima' => array(),
-'suzuka' => array(),
-'tado' => array(),
-'taiki' => array(),
-'taki' => array(),
-'tamaki' => array(),
-'toba' => array(),
-'tsu' => array(),
-'udono' => array(),
-'ureshino' => array(),
-'watarai' => array(),
-'yokkaichi' => array()),
-'miyagi' => array('furukawa' => array(),
-'higashimatsushima' => array(),
-'ishinomaki' => array(),
-'iwanuma' => array(),
-'kakuda' => array(),
-'kami' => array(),
-'kawasaki' => array(),
-'kesennuma' => array(),
-'marumori' => array(),
-'matsushima' => array(),
-'minamisanriku' => array(),
-'misato' => array(),
-'murata' => array(),
-'natori' => array(),
-'ogawara' => array(),
-'ohira' => array(),
-'onagawa' => array(),
-'osaki' => array(),
-'rifu' => array(),
-'semine' => array(),
-'shibata' => array(),
-'shichikashuku' => array(),
-'shikama' => array(),
-'shiogama' => array(),
-'shiroishi' => array(),
-'tagajo' => array(),
-'taiwa' => array(),
-'tome' => array(),
-'tomiya' => array(),
-'wakuya' => array(),
-'watari' => array(),
-'yamamoto' => array(),
-'zao' => array()),
-'miyazaki' => array('aya' => array(),
-'ebino' => array(),
-'gokase' => array(),
-'hyuga' => array(),
-'kadogawa' => array(),
-'kawaminami' => array(),
-'kijo' => array(),
-'kitagawa' => array(),
-'kitakata' => array(),
-'kitaura' => array(),
-'kobayashi' => array(),
-'kunitomi' => array(),
-'kushima' => array(),
-'mimata' => array(),
-'miyakonojo' => array(),
-'miyazaki' => array(),
-'morotsuka' => array(),
-'nichinan' => array(),
-'nishimera' => array(),
-'nobeoka' => array(),
-'saito' => array(),
-'shiiba' => array(),
-'shintomi' => array(),
-'takaharu' => array(),
-'takanabe' => array(),
-'takazaki' => array(),
-'tsuno' => array()),
-'nagano' => array('achi' => array(),
-'agematsu' => array(),
-'anan' => array(),
-'aoki' => array(),
-'asahi' => array(),
-'azumino' => array(),
-'chikuhoku' => array(),
-'chikuma' => array(),
-'chino' => array(),
-'fujimi' => array(),
-'hakuba' => array(),
-'hara' => array(),
-'hiraya' => array(),
-'iida' => array(),
-'iijima' => array(),
-'iiyama' => array(),
-'iizuna' => array(),
-'ikeda' => array(),
-'ikusaka' => array(),
-'ina' => array(),
-'karuizawa' => array(),
-'kawakami' => array(),
-'kiso' => array(),
-'kisofukushima' => array(),
-'kitaaiki' => array(),
-'komagane' => array(),
-'komoro' => array(),
-'matsukawa' => array(),
-'matsumoto' => array(),
-'miasa' => array(),
-'minamiaiki' => array(),
-'minamimaki' => array(),
-'minamiminowa' => array(),
-'minowa' => array(),
-'miyada' => array(),
-'miyota' => array(),
-'mochizuki' => array(),
-'nagano' => array(),
-'nagawa' => array(),
-'nagiso' => array(),
-'nakagawa' => array(),
-'nakano' => array(),
-'nozawaonsen' => array(),
-'obuse' => array(),
-'ogawa' => array(),
-'okaya' => array(),
-'omachi' => array(),
-'omi' => array(),
-'ookuwa' => array(),
-'ooshika' => array(),
-'otaki' => array(),
-'otari' => array(),
-'sakae' => array(),
-'sakaki' => array(),
-'saku' => array(),
-'sakuho' => array(),
-'shimosuwa' => array(),
-'shinanomachi' => array(),
-'shiojiri' => array(),
-'suwa' => array(),
-'suzaka' => array(),
-'takagi' => array(),
-'takamori' => array(),
-'takayama' => array(),
-'tateshina' => array(),
-'tatsuno' => array(),
-'togakushi' => array(),
-'togura' => array(),
-'tomi' => array(),
-'ueda' => array(),
-'wada' => array(),
-'yamagata' => array(),
-'yamanouchi' => array(),
-'yasaka' => array(),
-'yasuoka' => array()),
-'nagasaki' => array('chijiwa' => array(),
-'futsu' => array(),
-'goto' => array(),
-'hasami' => array(),
-'hirado' => array(),
-'iki' => array(),
-'isahaya' => array(),
-'kawatana' => array(),
-'kuchinotsu' => array(),
-'matsuura' => array(),
-'nagasaki' => array(),
-'obama' => array(),
-'omura' => array(),
-'oseto' => array(),
-'saikai' => array(),
-'sasebo' => array(),
-'seihi' => array(),
-'shimabara' => array(),
-'shinkamigoto' => array(),
-'togitsu' => array(),
-'tsushima' => array(),
-'unzen' => array()),
-'nara' => array('ando' => array(),
-'gose' => array(),
-'heguri' => array(),
-'higashiyoshino' => array(),
-'ikaruga' => array(),
-'ikoma' => array(),
-'kamikitayama' => array(),
-'kanmaki' => array(),
-'kashiba' => array(),
-'kashihara' => array(),
-'katsuragi' => array(),
-'kawai' => array(),
-'kawakami' => array(),
-'kawanishi' => array(),
-'koryo' => array(),
-'kurotaki' => array(),
-'mitsue' => array(),
-'miyake' => array(),
-'nara' => array(),
-'nosegawa' => array(),
-'oji' => array(),
-'ouda' => array(),
-'oyodo' => array(),
-'sakurai' => array(),
-'sango' => array(),
-'shimoichi' => array(),
-'shimokitayama' => array(),
-'shinjo' => array(),
-'soni' => array(),
-'takatori' => array(),
-'tawaramoto' => array(),
-'tenkawa' => array(),
-'tenri' => array(),
-'uda' => array(),
-'yamatokoriyama' => array(),
-'yamatotakada' => array(),
-'yamazoe' => array(),
-'yoshino' => array()),
-'niigata' => array('aga' => array(),
-'agano' => array(),
-'gosen' => array(),
-'itoigawa' => array(),
-'izumozaki' => array(),
-'joetsu' => array(),
-'kamo' => array(),
-'kariwa' => array(),
-'kashiwazaki' => array(),
-'minamiuonuma' => array(),
-'mitsuke' => array(),
-'muika' => array(),
-'murakami' => array(),
-'myoko' => array(),
-'nagaoka' => array(),
-'niigata' => array(),
-'ojiya' => array(),
-'omi' => array(),
-'sado' => array(),
-'sanjo' => array(),
-'seiro' => array(),
-'seirou' => array(),
-'sekikawa' => array(),
-'shibata' => array(),
-'tagami' => array(),
-'tainai' => array(),
-'tochio' => array(),
-'tokamachi' => array(),
-'tsubame' => array(),
-'tsunan' => array(),
-'uonuma' => array(),
-'yahiko' => array(),
-'yoita' => array(),
-'yuzawa' => array()),
-'oita' => array('beppu' => array(),
-'bungoono' => array(),
-'bungotakada' => array(),
-'hasama' => array(),
-'hiji' => array(),
-'himeshima' => array(),
-'hita' => array(),
-'kamitsue' => array(),
-'kokonoe' => array(),
-'kuju' => array(),
-'kunisaki' => array(),
-'kusu' => array(),
-'oita' => array(),
-'saiki' => array(),
-'taketa' => array(),
-'tsukumi' => array(),
-'usa' => array(),
-'usuki' => array(),
-'yufu' => array()),
-'okayama' => array('akaiwa' => array(),
-'asakuchi' => array(),
-'bizen' => array(),
-'hayashima' => array(),
-'ibara' => array(),
-'kagamino' => array(),
-'kasaoka' => array(),
-'kibichuo' => array(),
-'kumenan' => array(),
-'kurashiki' => array(),
-'maniwa' => array(),
-'misaki' => array(),
-'nagi' => array(),
-'niimi' => array(),
-'nishiawakura' => array(),
-'okayama' => array(),
-'satosho' => array(),
-'setouchi' => array(),
-'shinjo' => array(),
-'shoo' => array(),
-'soja' => array(),
-'takahashi' => array(),
-'tamano' => array(),
-'tsuyama' => array(),
-'wake' => array(),
-'yakage' => array()),
-'okinawa' => array('aguni' => array(),
-'ginowan' => array(),
-'ginoza' => array(),
-'gushikami' => array(),
-'haebaru' => array(),
-'higashi' => array(),
-'hirara' => array(),
-'iheya' => array(),
-'ishigaki' => array(),
-'ishikawa' => array(),
-'itoman' => array(),
-'izena' => array(),
-'kadena' => array(),
-'kin' => array(),
-'kitadaito' => array(),
-'kitanakagusuku' => array(),
-'kumejima' => array(),
-'kunigami' => array(),
-'minamidaito' => array(),
-'motobu' => array(),
-'nago' => array(),
-'naha' => array(),
-'nakagusuku' => array(),
-'nakijin' => array(),
-'nanjo' => array(),
-'nishihara' => array(),
-'ogimi' => array(),
-'okinawa' => array(),
-'onna' => array(),
-'shimoji' => array(),
-'taketomi' => array(),
-'tarama' => array(),
-'tokashiki' => array(),
-'tomigusuku' => array(),
-'tonaki' => array(),
-'urasoe' => array(),
-'uruma' => array(),
-'yaese' => array(),
-'yomitan' => array(),
-'yonabaru' => array(),
-'yonaguni' => array(),
-'zamami' => array()),
-'osaka' => array('abeno' => array(),
-'chihayaakasaka' => array(),
-'chuo' => array(),
-'daito' => array(),
-'fujiidera' => array(),
-'habikino' => array(),
-'hannan' => array(),
-'higashiosaka' => array(),
-'higashisumiyoshi' => array(),
-'higashiyodogawa' => array(),
-'hirakata' => array(),
-'ibaraki' => array(),
-'ikeda' => array(),
-'izumi' => array(),
-'izumiotsu' => array(),
-'izumisano' => array(),
-'kadoma' => array(),
-'kaizuka' => array(),
-'kanan' => array(),
-'kashiwara' => array(),
-'katano' => array(),
-'kawachinagano' => array(),
-'kishiwada' => array(),
-'kita' => array(),
-'kumatori' => array(),
-'matsubara' => array(),
-'minato' => array(),
-'minoh' => array(),
-'misaki' => array(),
-'moriguchi' => array(),
-'neyagawa' => array(),
-'nishi' => array(),
-'nose' => array(),
-'osakasayama' => array(),
-'sakai' => array(),
-'sayama' => array(),
-'sennan' => array(),
-'settsu' => array(),
-'shijonawate' => array(),
-'shimamoto' => array(),
-'suita' => array(),
-'tadaoka' => array(),
-'taishi' => array(),
-'tajiri' => array(),
-'takaishi' => array(),
-'takatsuki' => array(),
-'tondabayashi' => array(),
-'toyonaka' => array(),
-'toyono' => array(),
-'yao' => array()),
-'saga' => array('ariake' => array(),
-'arita' => array(),
-'fukudomi' => array(),
-'genkai' => array(),
-'hamatama' => array(),
-'hizen' => array(),
-'imari' => array(),
-'kamimine' => array(),
-'kanzaki' => array(),
-'karatsu' => array(),
-'kashima' => array(),
-'kitagata' => array(),
-'kitahata' => array(),
-'kiyama' => array(),
-'kouhoku' => array(),
-'kyuragi' => array(),
-'nishiarita' => array(),
-'ogi' => array(),
-'omachi' => array(),
-'ouchi' => array(),
-'saga' => array(),
-'shiroishi' => array(),
-'taku' => array(),
-'tara' => array(),
-'tosu' => array(),
-'yoshinogari' => array()),
-'saitama' => array('arakawa' => array(),
-'asaka' => array(),
-'chichibu' => array(),
-'fujimi' => array(),
-'fujimino' => array(),
-'fukaya' => array(),
-'hanno' => array(),
-'hanyu' => array(),
-'hasuda' => array(),
-'hatogaya' => array(),
-'hatoyama' => array(),
-'hidaka' => array(),
-'higashichichibu' => array(),
-'higashimatsuyama' => array(),
-'honjo' => array(),
-'ina' => array(),
-'iruma' => array(),
-'iwatsuki' => array(),
-'kamiizumi' => array(),
-'kamikawa' => array(),
-'kamisato' => array(),
-'kasukabe' => array(),
-'kawagoe' => array(),
-'kawaguchi' => array(),
-'kawajima' => array(),
-'kazo' => array(),
-'kitamoto' => array(),
-'koshigaya' => array(),
-'kounosu' => array(),
-'kuki' => array(),
-'kumagaya' => array(),
-'matsubushi' => array(),
-'minano' => array(),
-'misato' => array(),
-'miyashiro' => array(),
-'miyoshi' => array(),
-'moroyama' => array(),
-'nagatoro' => array(),
-'namegawa' => array(),
-'niiza' => array(),
-'ogano' => array(),
-'ogawa' => array(),
-'ogose' => array(),
-'okegawa' => array(),
-'omiya' => array(),
-'otaki' => array(),
-'ranzan' => array(),
-'ryokami' => array(),
-'saitama' => array(),
-'sakado' => array(),
-'satte' => array(),
-'sayama' => array(),
-'shiki' => array(),
-'shiraoka' => array(),
-'soka' => array(),
-'sugito' => array(),
-'toda' => array(),
-'tokigawa' => array(),
-'tokorozawa' => array(),
-'tsurugashima' => array(),
-'urawa' => array(),
-'warabi' => array(),
-'yashio' => array(),
-'yokoze' => array(),
-'yono' => array(),
-'yorii' => array(),
-'yoshida' => array(),
-'yoshikawa' => array(),
-'yoshimi' => array()),
-'shiga' => array('aisho' => array(),
-'gamo' => array(),
-'higashiomi' => array(),
-'hikone' => array(),
-'koka' => array(),
-'konan' => array(),
-'kosei' => array(),
-'koto' => array(),
-'kusatsu' => array(),
-'maibara' => array(),
-'moriyama' => array(),
-'nagahama' => array(),
-'nishiazai' => array(),
-'notogawa' => array(),
-'omihachiman' => array(),
-'otsu' => array(),
-'ritto' => array(),
-'ryuoh' => array(),
-'takashima' => array(),
-'takatsuki' => array(),
-'torahime' => array(),
-'toyosato' => array(),
-'yasu' => array()),
-'shimane' => array('akagi' => array(),
-'ama' => array(),
-'gotsu' => array(),
-'hamada' => array(),
-'higashiizumo' => array(),
-'hikawa' => array(),
-'hikimi' => array(),
-'izumo' => array(),
-'kakinoki' => array(),
-'masuda' => array(),
-'matsue' => array(),
-'misato' => array(),
-'nishinoshima' => array(),
-'ohda' => array(),
-'okinoshima' => array(),
-'okuizumo' => array(),
-'shimane' => array(),
-'tamayu' => array(),
-'tsuwano' => array(),
-'unnan' => array(),
-'yakumo' => array(),
-'yasugi' => array(),
-'yatsuka' => array()),
-'shizuoka' => array('arai' => array(),
-'atami' => array(),
-'fuji' => array(),
-'fujieda' => array(),
-'fujikawa' => array(),
-'fujinomiya' => array(),
-'fukuroi' => array(),
-'gotemba' => array(),
-'haibara' => array(),
-'hamamatsu' => array(),
-'higashiizu' => array(),
-'ito' => array(),
-'iwata' => array(),
-'izu' => array(),
-'izunokuni' => array(),
-'kakegawa' => array(),
-'kannami' => array(),
-'kawanehon' => array(),
-'kawazu' => array(),
-'kikugawa' => array(),
-'kosai' => array(),
-'makinohara' => array(),
-'matsuzaki' => array(),
-'minamiizu' => array(),
-'mishima' => array(),
-'morimachi' => array(),
-'nishiizu' => array(),
-'numazu' => array(),
-'omaezaki' => array(),
-'shimada' => array(),
-'shimizu' => array(),
-'shimoda' => array(),
-'shizuoka' => array(),
-'susono' => array(),
-'yaizu' => array(),
-'yoshida' => array()),
-'tochigi' => array('ashikaga' => array(),
-'bato' => array(),
-'haga' => array(),
-'ichikai' => array(),
-'iwafune' => array(),
-'kaminokawa' => array(),
-'kanuma' => array(),
-'karasuyama' => array(),
-'kuroiso' => array(),
-'mashiko' => array(),
-'mibu' => array(),
-'moka' => array(),
-'motegi' => array(),
-'nasu' => array(),
-'nasushiobara' => array(),
-'nikko' => array(),
-'nishikata' => array(),
-'nogi' => array(),
-'ohira' => array(),
-'ohtawara' => array(),
-'oyama' => array(),
-'sakura' => array(),
-'sano' => array(),
-'shimotsuke' => array(),
-'shioya' => array(),
-'takanezawa' => array(),
-'tochigi' => array(),
-'tsuga' => array(),
-'ujiie' => array(),
-'utsunomiya' => array(),
-'yaita' => array()),
-'tokushima' => array('aizumi' => array(),
-'anan' => array(),
-'ichiba' => array(),
-'itano' => array(),
-'kainan' => array(),
-'komatsushima' => array(),
-'matsushige' => array(),
-'mima' => array(),
-'minami' => array(),
-'miyoshi' => array(),
-'mugi' => array(),
-'nakagawa' => array(),
-'naruto' => array(),
-'sanagochi' => array(),
-'shishikui' => array(),
-'tokushima' => array(),
-'wajiki' => array()),
-'tokyo' => array('adachi' => array(),
-'akiruno' => array(),
-'akishima' => array(),
-'aogashima' => array(),
-'arakawa' => array(),
-'bunkyo' => array(),
-'chiyoda' => array(),
-'chofu' => array(),
-'chuo' => array(),
-'edogawa' => array(),
-'fuchu' => array(),
-'fussa' => array(),
-'hachijo' => array(),
-'hachioji' => array(),
-'hamura' => array(),
-'higashikurume' => array(),
-'higashimurayama' => array(),
-'higashiyamato' => array(),
-'hino' => array(),
-'hinode' => array(),
-'hinohara' => array(),
-'inagi' => array(),
-'itabashi' => array(),
-'katsushika' => array(),
-'kita' => array(),
-'kiyose' => array(),
-'kodaira' => array(),
-'koganei' => array(),
-'kokubunji' => array(),
-'komae' => array(),
-'koto' => array(),
-'kouzushima' => array(),
-'kunitachi' => array(),
-'machida' => array(),
-'meguro' => array(),
-'minato' => array(),
-'mitaka' => array(),
-'mizuho' => array(),
-'musashimurayama' => array(),
-'musashino' => array(),
-'nakano' => array(),
-'nerima' => array(),
-'ogasawara' => array(),
-'okutama' => array(),
-'ome' => array(),
-'oshima' => array(),
-'ota' => array(),
-'setagaya' => array(),
-'shibuya' => array(),
-'shinagawa' => array(),
-'shinjuku' => array(),
-'suginami' => array(),
-'sumida' => array(),
-'tachikawa' => array(),
-'taito' => array(),
-'tama' => array(),
-'toshima' => array()),
-'tottori' => array('chizu' => array(),
-'hino' => array(),
-'kawahara' => array(),
-'koge' => array(),
-'kotoura' => array(),
-'misasa' => array(),
-'nanbu' => array(),
-'nichinan' => array(),
-'sakaiminato' => array(),
-'tottori' => array(),
-'wakasa' => array(),
-'yazu' => array(),
-'yonago' => array()),
-'toyama' => array('asahi' => array(),
-'fuchu' => array(),
-'fukumitsu' => array(),
-'funahashi' => array(),
-'himi' => array(),
-'imizu' => array(),
-'inami' => array(),
-'johana' => array(),
-'kamiichi' => array(),
-'kurobe' => array(),
-'nakaniikawa' => array(),
-'namerikawa' => array(),
-'nanto' => array(),
-'nyuzen' => array(),
-'oyabe' => array(),
-'taira' => array(),
-'takaoka' => array(),
-'tateyama' => array(),
-'toga' => array(),
-'tonami' => array(),
-'toyama' => array(),
-'unazuki' => array(),
-'uozu' => array(),
-'yamada' => array()),
-'wakayama' => array('arida' => array(),
-'aridagawa' => array(),
-'gobo' => array(),
-'hashimoto' => array(),
-'hidaka' => array(),
-'hirogawa' => array(),
-'inami' => array(),
-'iwade' => array(),
-'kainan' => array(),
-'kamitonda' => array(),
-'katsuragi' => array(),
-'kimino' => array(),
-'kinokawa' => array(),
-'kitayama' => array(),
-'koya' => array(),
-'koza' => array(),
-'kozagawa' => array(),
-'kudoyama' => array(),
-'kushimoto' => array(),
-'mihama' => array(),
-'misato' => array(),
-'nachikatsuura' => array(),
-'shingu' => array(),
-'shirahama' => array(),
-'taiji' => array(),
-'tanabe' => array(),
-'wakayama' => array(),
-'yuasa' => array(),
-'yura' => array()),
-'yamagata' => array('asahi' => array(),
-'funagata' => array(),
-'higashine' => array(),
-'iide' => array(),
-'kahoku' => array(),
-'kaminoyama' => array(),
-'kaneyama' => array(),
-'kawanishi' => array(),
-'mamurogawa' => array(),
-'mikawa' => array(),
-'murayama' => array(),
-'nagai' => array(),
-'nakayama' => array(),
-'nanyo' => array(),
-'nishikawa' => array(),
-'obanazawa' => array(),
-'oe' => array(),
-'oguni' => array(),
-'ohkura' => array(),
-'oishida' => array(),
-'sagae' => array(),
-'sakata' => array(),
-'sakegawa' => array(),
-'shinjo' => array(),
-'shirataka' => array(),
-'shonai' => array(),
-'takahata' => array(),
-'tendo' => array(),
-'tozawa' => array(),
-'tsuruoka' => array(),
-'yamagata' => array(),
-'yamanobe' => array(),
-'yonezawa' => array(),
-'yuza' => array()),
-'yamaguchi' => array('abu' => array(),
-'hagi' => array(),
-'hikari' => array(),
-'hofu' => array(),
-'iwakuni' => array(),
-'kudamatsu' => array(),
-'mitou' => array(),
-'nagato' => array(),
-'oshima' => array(),
-'shimonoseki' => array(),
-'shunan' => array(),
-'tabuse' => array(),
-'tokuyama' => array(),
-'toyota' => array(),
-'ube' => array(),
-'yuu' => array()),
-'yamanashi' => array('chuo' => array(),
-'doshi' => array(),
-'fuefuki' => array(),
-'fujikawa' => array(),
-'fujikawaguchiko' => array(),
-'fujiyoshida' => array(),
-'hayakawa' => array(),
-'hokuto' => array(),
-'ichikawamisato' => array(),
-'kai' => array(),
-'kofu' => array(),
-'koshu' => array(),
-'kosuge' => array(),
-'minami-alps' => array(),
-'minobu' => array(),
-'nakamichi' => array(),
-'nanbu' => array(),
-'narusawa' => array(),
-'nirasaki' => array(),
-'nishikatsura' => array(),
-'oshino' => array(),
-'otsuki' => array(),
-'showa' => array(),
-'tabayama' => array(),
-'tsuru' => array(),
-'uenohara' => array(),
-'yamanakako' => array(),
-'yamanashi' => array()),
-'kawasaki' => array('*' => array(),
-'city' => array('!' => '')),
-'kitakyushu' => array('*' => array(),
-'city' => array('!' => '')),
-'kobe' => array('*' => array(),
-'city' => array('!' => '')),
-'nagoya' => array('*' => array(),
-'city' => array('!' => '')),
-'sapporo' => array('*' => array(),
-'city' => array('!' => '')),
-'sendai' => array('*' => array(),
-'city' => array('!' => '')),
-'yokohama' => array('*' => array(),
-'city' => array('!' => '')),
-'blogspot' => array()),
-'ke' => array('*' => array()),
-'kg' => array('org' => array(),
-'net' => array(),
-'com' => array(),
-'edu' => array(),
-'gov' => array(),
-'mil' => array()),
-'kh' => array('*' => array()),
-'ki' => array('edu' => array(),
-'biz' => array(),
-'net' => array(),
-'org' => array(),
-'gov' => array(),
-'info' => array(),
-'com' => array()),
-'km' => array('org' => array(),
-'nom' => array(),
-'gov' => array(),
-'prd' => array(),
-'tm' => array(),
-'edu' => array(),
-'mil' => array(),
-'ass' => array(),
-'com' => array(),
-'coop' => array(),
-'asso' => array(),
-'presse' => array(),
-'medecin' => array(),
-'notaires' => array(),
-'pharmaciens' => array(),
-'veterinaire' => array(),
-'gouv' => array()),
-'kn' => array('net' => array(),
-'org' => array(),
-'edu' => array(),
-'gov' => array()),
-'kp' => array('com' => array(),
-'edu' => array(),
-'gov' => array(),
-'org' => array(),
-'rep' => array(),
-'tra' => array()),
-'kr' => array('ac' => array(),
-'co' => array(),
-'es' => array(),
-'go' => array(),
-'hs' => array(),
-'kg' => array(),
-'mil' => array(),
-'ms' => array(),
-'ne' => array(),
-'or' => array(),
-'pe' => array(),
-'re' => array(),
-'sc' => array(),
-'busan' => array(),
-'chungbuk' => array(),
-'chungnam' => array(),
-'daegu' => array(),
-'daejeon' => array(),
-'gangwon' => array(),
-'gwangju' => array(),
-'gyeongbuk' => array(),
-'gyeonggi' => array(),
-'gyeongnam' => array(),
-'incheon' => array(),
-'jeju' => array(),
-'jeonbuk' => array(),
-'jeonnam' => array(),
-'seoul' => array(),
-'ulsan' => array(),
-'blogspot' => array()),
-'kw' => array('*' => array()),
-'ky' => array('edu' => array(),
-'gov' => array(),
-'com' => array(),
-'org' => array(),
-'net' => array()),
-'kz' => array('org' => array(),
-'edu' => array(),
-'net' => array(),
-'gov' => array(),
-'mil' => array(),
-'com' => array()),
-'la' => array('int' => array(),
-'net' => array(),
-'info' => array(),
-'edu' => array(),
-'gov' => array(),
-'per' => array(),
-'com' => array(),
-'org' => array(),
-'c' => array()),
-'lb' => array('com' => array(),
-'edu' => array(),
-'gov' => array(),
-'net' => array(),
-'org' => array()),
-'lc' => array('com' => array(),
-'net' => array(),
-'co' => array(),
-'org' => array(),
-'edu' => array(),
-'gov' => array()),
-'li' => array(),
-'lk' => array('gov' => array(),
-'sch' => array(),
-'net' => array(),
-'int' => array(),
-'com' => array(),
-'org' => array(),
-'edu' => array(),
-'ngo' => array(),
-'soc' => array(),
-'web' => array(),
-'ltd' => array(),
-'assn' => array(),
-'grp' => array(),
-'hotel' => array()),
-'lr' => array('com' => array(),
-'edu' => array(),
-'gov' => array(),
-'org' => array(),
-'net' => array()),
-'ls' => array('co' => array(),
-'org' => array()),
-'lt' => array('gov' => array()),
-'lu' => array(),
-'lv' => array('com' => array(),
-'edu' => array(),
-'gov' => array(),
-'org' => array(),
-'mil' => array(),
-'id' => array(),
-'net' => array(),
-'asn' => array(),
-'conf' => array()),
-'ly' => array('com' => array(),
-'net' => array(),
-'gov' => array(),
-'plc' => array(),
-'edu' => array(),
-'sch' => array(),
-'med' => array(),
-'org' => array(),
-'id' => array()),
-'ma' => array('co' => array(),
-'net' => array(),
-'gov' => array(),
-'org' => array(),
-'ac' => array(),
-'press' => array()),
-'mc' => array('tm' => array(),
-'asso' => array()),
-'md' => array(),
-'me' => array('co' => array(),
-'net' => array(),
-'org' => array(),
-'edu' => array(),
-'ac' => array(),
-'gov' => array(),
-'its' => array(),
-'priv' => array()),
-'mg' => array('org' => array(),
-'nom' => array(),
-'gov' => array(),
-'prd' => array(),
-'tm' => array(),
-'edu' => array(),
-'mil' => array(),
-'com' => array()),
-'mh' => array(),
-'mil' => array(),
-'mk' => array('com' => array(),
-'org' => array(),
-'net' => array(),
-'edu' => array(),
-'gov' => array(),
-'inf' => array(),
-'name' => array()),
-'ml' => array('com' => array(),
-'edu' => array(),
-'gouv' => array(),
-'gov' => array(),
-'net' => array(),
-'org' => array(),
-'presse' => array()),
-'mm' => array('*' => array()),
-'mn' => array('gov' => array(),
-'edu' => array(),
-'org' => array(),
-'nyc' => array()),
-'mo' => array('com' => array(),
-'net' => array(),
-'org' => array(),
-'edu' => array(),
-'gov' => array()),
-'mobi' => array(),
-'mp' => array(),
-'mq' => array(),
-'mr' => array('gov' => array(),
-'blogspot' => array()),
-'ms' => array('com' => array(),
-'edu' => array(),
-'gov' => array(),
-'net' => array(),
-'org' => array()),
-'mt' => array('com' => array(),
-'edu' => array(),
-'net' => array(),
-'org' => array()),
-'mu' => array('com' => array(),
-'net' => array(),
-'org' => array(),
-'gov' => array(),
-'ac' => array(),
-'co' => array(),
-'or' => array()),
-'museum' => array('academy' => array(),
-'agriculture' => array(),
-'air' => array(),
-'airguard' => array(),
-'alabama' => array(),
-'alaska' => array(),
-'amber' => array(),
-'ambulance' => array(),
-'american' => array(),
-'americana' => array(),
-'americanantiques' => array(),
-'americanart' => array(),
-'amsterdam' => array(),
-'and' => array(),
-'annefrank' => array(),
-'anthro' => array(),
-'anthropology' => array(),
-'antiques' => array(),
-'aquarium' => array(),
-'arboretum' => array(),
-'archaeological' => array(),
-'archaeology' => array(),
-'architecture' => array(),
-'art' => array(),
-'artanddesign' => array(),
-'artcenter' => array(),
-'artdeco' => array(),
-'arteducation' => array(),
-'artgallery' => array(),
-'arts' => array(),
-'artsandcrafts' => array(),
-'asmatart' => array(),
-'assassination' => array(),
-'assisi' => array(),
-'association' => array(),
-'astronomy' => array(),
-'atlanta' => array(),
-'austin' => array(),
-'australia' => array(),
-'automotive' => array(),
-'aviation' => array(),
-'axis' => array(),
-'badajoz' => array(),
-'baghdad' => array(),
-'bahn' => array(),
-'bale' => array(),
-'baltimore' => array(),
-'barcelona' => array(),
-'baseball' => array(),
-'basel' => array(),
-'baths' => array(),
-'bauern' => array(),
-'beauxarts' => array(),
-'beeldengeluid' => array(),
-'bellevue' => array(),
-'bergbau' => array(),
-'berkeley' => array(),
-'berlin' => array(),
-'bern' => array(),
-'bible' => array(),
-'bilbao' => array(),
-'bill' => array(),
-'birdart' => array(),
-'birthplace' => array(),
-'bonn' => array(),
-'boston' => array(),
-'botanical' => array(),
-'botanicalgarden' => array(),
-'botanicgarden' => array(),
-'botany' => array(),
-'brandywinevalley' => array(),
-'brasil' => array(),
-'bristol' => array(),
-'british' => array(),
-'britishcolumbia' => array(),
-'broadcast' => array(),
-'brunel' => array(),
-'brussel' => array(),
-'brussels' => array(),
-'bruxelles' => array(),
-'building' => array(),
-'burghof' => array(),
-'bus' => array(),
-'bushey' => array(),
-'cadaques' => array(),
-'california' => array(),
-'cambridge' => array(),
-'can' => array(),
-'canada' => array(),
-'capebreton' => array(),
-'carrier' => array(),
-'cartoonart' => array(),
-'casadelamoneda' => array(),
-'castle' => array(),
-'castres' => array(),
-'celtic' => array(),
-'center' => array(),
-'chattanooga' => array(),
-'cheltenham' => array(),
-'chesapeakebay' => array(),
-'chicago' => array(),
-'children' => array(),
-'childrens' => array(),
-'childrensgarden' => array(),
-'chiropractic' => array(),
-'chocolate' => array(),
-'christiansburg' => array(),
-'cincinnati' => array(),
-'cinema' => array(),
-'circus' => array(),
-'civilisation' => array(),
-'civilization' => array(),
-'civilwar' => array(),
-'clinton' => array(),
-'clock' => array(),
-'coal' => array(),
-'coastaldefence' => array(),
-'cody' => array(),
-'coldwar' => array(),
-'collection' => array(),
-'colonialwilliamsburg' => array(),
-'coloradoplateau' => array(),
-'columbia' => array(),
-'columbus' => array(),
-'communication' => array(),
-'communications' => array(),
-'community' => array(),
-'computer' => array(),
-'computerhistory' => array(),
-'comunicações' => array(),
-'contemporary' => array(),
-'contemporaryart' => array(),
-'convent' => array(),
-'copenhagen' => array(),
-'corporation' => array(),
-'correios-e-telecomunicações' => array(),
-'corvette' => array(),
-'costume' => array(),
-'countryestate' => array(),
-'county' => array(),
-'crafts' => array(),
-'cranbrook' => array(),
-'creation' => array(),
-'cultural' => array(),
-'culturalcenter' => array(),
-'culture' => array(),
-'cyber' => array(),
-'cymru' => array(),
-'dali' => array(),
-'dallas' => array(),
-'database' => array(),
-'ddr' => array(),
-'decorativearts' => array(),
-'delaware' => array(),
-'delmenhorst' => array(),
-'denmark' => array(),
-'depot' => array(),
-'design' => array(),
-'detroit' => array(),
-'dinosaur' => array(),
-'discovery' => array(),
-'dolls' => array(),
-'donostia' => array(),
-'durham' => array(),
-'eastafrica' => array(),
-'eastcoast' => array(),
-'education' => array(),
-'educational' => array(),
-'egyptian' => array(),
-'eisenbahn' => array(),
-'elburg' => array(),
-'elvendrell' => array(),
-'embroidery' => array(),
-'encyclopedic' => array(),
-'england' => array(),
-'entomology' => array(),
-'environment' => array(),
-'environmentalconservation' => array(),
-'epilepsy' => array(),
-'essex' => array(),
-'estate' => array(),
-'ethnology' => array(),
-'exeter' => array(),
-'exhibition' => array(),
-'family' => array(),
-'farm' => array(),
-'farmequipment' => array(),
-'farmers' => array(),
-'farmstead' => array(),
-'field' => array(),
-'figueres' => array(),
-'filatelia' => array(),
-'film' => array(),
-'fineart' => array(),
-'finearts' => array(),
-'finland' => array(),
-'flanders' => array(),
-'florida' => array(),
-'force' => array(),
-'fortmissoula' => array(),
-'fortworth' => array(),
-'foundation' => array(),
-'francaise' => array(),
-'frankfurt' => array(),
-'franziskaner' => array(),
-'freemasonry' => array(),
-'freiburg' => array(),
-'fribourg' => array(),
-'frog' => array(),
-'fundacio' => array(),
-'furniture' => array(),
-'gallery' => array(),
-'garden' => array(),
-'gateway' => array(),
-'geelvinck' => array(),
-'gemological' => array(),
-'geology' => array(),
-'georgia' => array(),
-'giessen' => array(),
-'glas' => array(),
-'glass' => array(),
-'gorge' => array(),
-'grandrapids' => array(),
-'graz' => array(),
-'guernsey' => array(),
-'halloffame' => array(),
-'hamburg' => array(),
-'handson' => array(),
-'harvestcelebration' => array(),
-'hawaii' => array(),
-'health' => array(),
-'heimatunduhren' => array(),
-'hellas' => array(),
-'helsinki' => array(),
-'hembygdsforbund' => array(),
-'heritage' => array(),
-'histoire' => array(),
-'historical' => array(),
-'historicalsociety' => array(),
-'historichouses' => array(),
-'historisch' => array(),
-'historisches' => array(),
-'history' => array(),
-'historyofscience' => array(),
-'horology' => array(),
-'house' => array(),
-'humanities' => array(),
-'illustration' => array(),
-'imageandsound' => array(),
-'indian' => array(),
-'indiana' => array(),
-'indianapolis' => array(),
-'indianmarket' => array(),
-'intelligence' => array(),
-'interactive' => array(),
-'iraq' => array(),
-'iron' => array(),
-'isleofman' => array(),
-'jamison' => array(),
-'jefferson' => array(),
-'jerusalem' => array(),
-'jewelry' => array(),
-'jewish' => array(),
-'jewishart' => array(),
-'jfk' => array(),
-'journalism' => array(),
-'judaica' => array(),
-'judygarland' => array(),
-'juedisches' => array(),
-'juif' => array(),
-'karate' => array(),
-'karikatur' => array(),
-'kids' => array(),
-'koebenhavn' => array(),
-'koeln' => array(),
-'kunst' => array(),
-'kunstsammlung' => array(),
-'kunstunddesign' => array(),
-'labor' => array(),
-'labour' => array(),
-'lajolla' => array(),
-'lancashire' => array(),
-'landes' => array(),
-'lans' => array(),
-'läns' => array(),
-'larsson' => array(),
-'lewismiller' => array(),
-'lincoln' => array(),
-'linz' => array(),
-'living' => array(),
-'livinghistory' => array(),
-'localhistory' => array(),
-'london' => array(),
-'losangeles' => array(),
-'louvre' => array(),
-'loyalist' => array(),
-'lucerne' => array(),
-'luxembourg' => array(),
-'luzern' => array(),
-'mad' => array(),
-'madrid' => array(),
-'mallorca' => array(),
-'manchester' => array(),
-'mansion' => array(),
-'mansions' => array(),
-'manx' => array(),
-'marburg' => array(),
-'maritime' => array(),
-'maritimo' => array(),
-'maryland' => array(),
-'marylhurst' => array(),
-'media' => array(),
-'medical' => array(),
-'medizinhistorisches' => array(),
-'meeres' => array(),
-'memorial' => array(),
-'mesaverde' => array(),
-'michigan' => array(),
-'midatlantic' => array(),
-'military' => array(),
-'mill' => array(),
-'miners' => array(),
-'mining' => array(),
-'minnesota' => array(),
-'missile' => array(),
-'missoula' => array(),
-'modern' => array(),
-'moma' => array(),
-'money' => array(),
-'monmouth' => array(),
-'monticello' => array(),
-'montreal' => array(),
-'moscow' => array(),
-'motorcycle' => array(),
-'muenchen' => array(),
-'muenster' => array(),
-'mulhouse' => array(),
-'muncie' => array(),
-'museet' => array(),
-'museumcenter' => array(),
-'museumvereniging' => array(),
-'music' => array(),
-'national' => array(),
-'nationalfirearms' => array(),
-'nationalheritage' => array(),
-'nativeamerican' => array(),
-'naturalhistory' => array(),
-'naturalhistorymuseum' => array(),
-'naturalsciences' => array(),
-'nature' => array(),
-'naturhistorisches' => array(),
-'natuurwetenschappen' => array(),
-'naumburg' => array(),
-'naval' => array(),
-'nebraska' => array(),
-'neues' => array(),
-'newhampshire' => array(),
-'newjersey' => array(),
-'newmexico' => array(),
-'newport' => array(),
-'newspaper' => array(),
-'newyork' => array(),
-'niepce' => array(),
-'norfolk' => array(),
-'north' => array(),
-'nrw' => array(),
-'nuernberg' => array(),
-'nuremberg' => array(),
-'nyc' => array(),
-'nyny' => array(),
-'oceanographic' => array(),
-'oceanographique' => array(),
-'omaha' => array(),
-'online' => array(),
-'ontario' => array(),
-'openair' => array(),
-'oregon' => array(),
-'oregontrail' => array(),
-'otago' => array(),
-'oxford' => array(),
-'pacific' => array(),
-'paderborn' => array(),
-'palace' => array(),
-'paleo' => array(),
-'palmsprings' => array(),
-'panama' => array(),
-'paris' => array(),
-'pasadena' => array(),
-'pharmacy' => array(),
-'philadelphia' => array(),
-'philadelphiaarea' => array(),
-'philately' => array(),
-'phoenix' => array(),
-'photography' => array(),
-'pilots' => array(),
-'pittsburgh' => array(),
-'planetarium' => array(),
-'plantation' => array(),
-'plants' => array(),
-'plaza' => array(),
-'portal' => array(),
-'portland' => array(),
-'portlligat' => array(),
-'posts-and-telecommunications' => array(),
-'preservation' => array(),
-'presidio' => array(),
-'press' => array(),
-'project' => array(),
-'public' => array(),
-'pubol' => array(),
-'quebec' => array(),
-'railroad' => array(),
-'railway' => array(),
-'research' => array(),
-'resistance' => array(),
-'riodejaneiro' => array(),
-'rochester' => array(),
-'rockart' => array(),
-'roma' => array(),
-'russia' => array(),
-'saintlouis' => array(),
-'salem' => array(),
-'salvadordali' => array(),
-'salzburg' => array(),
-'sandiego' => array(),
-'sanfrancisco' => array(),
-'santabarbara' => array(),
-'santacruz' => array(),
-'santafe' => array(),
-'saskatchewan' => array(),
-'satx' => array(),
-'savannahga' => array(),
-'schlesisches' => array(),
-'schoenbrunn' => array(),
-'schokoladen' => array(),
-'school' => array(),
-'schweiz' => array(),
-'science' => array(),
-'scienceandhistory' => array(),
-'scienceandindustry' => array(),
-'sciencecenter' => array(),
-'sciencecenters' => array(),
-'science-fiction' => array(),
-'sciencehistory' => array(),
-'sciences' => array(),
-'sciencesnaturelles' => array(),
-'scotland' => array(),
-'seaport' => array(),
-'settlement' => array(),
-'settlers' => array(),
-'shell' => array(),
-'sherbrooke' => array(),
-'sibenik' => array(),
-'silk' => array(),
-'ski' => array(),
-'skole' => array(),
-'society' => array(),
-'sologne' => array(),
-'soundandvision' => array(),
-'southcarolina' => array(),
-'southwest' => array(),
-'space' => array(),
-'spy' => array(),
-'square' => array(),
-'stadt' => array(),
-'stalbans' => array(),
-'starnberg' => array(),
-'state' => array(),
-'stateofdelaware' => array(),
-'station' => array(),
-'steam' => array(),
-'steiermark' => array(),
-'stjohn' => array(),
-'stockholm' => array(),
-'stpetersburg' => array(),
-'stuttgart' => array(),
-'suisse' => array(),
-'surgeonshall' => array(),
-'surrey' => array(),
-'svizzera' => array(),
-'sweden' => array(),
-'sydney' => array(),
-'tank' => array(),
-'tcm' => array(),
-'technology' => array(),
-'telekommunikation' => array(),
-'television' => array(),
-'texas' => array(),
-'textile' => array(),
-'theater' => array(),
-'time' => array(),
-'timekeeping' => array(),
-'topology' => array(),
-'torino' => array(),
-'touch' => array(),
-'town' => array(),
-'transport' => array(),
-'tree' => array(),
-'trolley' => array(),
-'trust' => array(),
-'trustee' => array(),
-'uhren' => array(),
-'ulm' => array(),
-'undersea' => array(),
-'university' => array(),
-'usa' => array(),
-'usantiques' => array(),
-'usarts' => array(),
-'uscountryestate' => array(),
-'usculture' => array(),
-'usdecorativearts' => array(),
-'usgarden' => array(),
-'ushistory' => array(),
-'ushuaia' => array(),
-'uslivinghistory' => array(),
-'utah' => array(),
-'uvic' => array(),
-'valley' => array(),
-'vantaa' => array(),
-'versailles' => array(),
-'viking' => array(),
-'village' => array(),
-'virginia' => array(),
-'virtual' => array(),
-'virtuel' => array(),
-'vlaanderen' => array(),
-'volkenkunde' => array(),
-'wales' => array(),
-'wallonie' => array(),
-'war' => array(),
-'washingtondc' => array(),
-'watchandclock' => array(),
-'watch-and-clock' => array(),
-'western' => array(),
-'westfalen' => array(),
-'whaling' => array(),
-'wildlife' => array(),
-'williamsburg' => array(),
-'windmill' => array(),
-'workshop' => array(),
-'york' => array(),
-'yorkshire' => array(),
-'yosemite' => array(),
-'youth' => array(),
-'zoological' => array(),
-'zoology' => array(),
-'ירושלים' => array(),
-'иком' => array()),
-'mv' => array('aero' => array(),
-'biz' => array(),
-'com' => array(),
-'coop' => array(),
-'edu' => array(),
-'gov' => array(),
-'info' => array(),
-'int' => array(),
-'mil' => array(),
-'museum' => array(),
-'name' => array(),
-'net' => array(),
-'org' => array(),
-'pro' => array()),
-'mw' => array('ac' => array(),
-'biz' => array(),
-'co' => array(),
-'com' => array(),
-'coop' => array(),
-'edu' => array(),
-'gov' => array(),
-'int' => array(),
-'museum' => array(),
-'net' => array(),
-'org' => array()),
-'mx' => array('com' => array(),
-'org' => array(),
-'gob' => array(),
-'edu' => array(),
-'net' => array(),
-'blogspot' => array()),
-'my' => array('com' => array(),
-'net' => array(),
-'org' => array(),
-'gov' => array(),
-'edu' => array(),
-'mil' => array(),
-'name' => array()),
-'mz' => array('*' => array(),
-'teledata' => array('!' => '')),
-'na' => array('info' => array(),
-'pro' => array(),
-'name' => array(),
-'school' => array(),
-'or' => array(),
-'dr' => array(),
-'us' => array(),
-'mx' => array(),
-'ca' => array(),
-'in' => array(),
-'cc' => array(),
-'tv' => array(),
-'ws' => array(),
-'mobi' => array(),
-'co' => array(),
-'com' => array(),
-'org' => array()),
-'name' => array('her' => array('forgot' => array()),
-'his' => array('forgot' => array())),
-'nc' => array('asso' => array()),
-'ne' => array(),
-'net' => array('cloudfront' => array(),
-'gb' => array(),
-'hu' => array(),
-'jp' => array(),
-'se' => array(),
-'uk' => array(),
-'in' => array(),
-'at-band-camp' => array(),
-'blogdns' => array(),
-'broke-it' => array(),
-'buyshouses' => array(),
-'dnsalias' => array(),
-'dnsdojo' => array(),
-'does-it' => array(),
-'dontexist' => array(),
-'dynalias' => array(),
-'dynathome' => array(),
-'endofinternet' => array(),
-'from-az' => array(),
-'from-co' => array(),
-'from-la' => array(),
-'from-ny' => array(),
-'gets-it' => array(),
-'ham-radio-op' => array(),
-'homeftp' => array(),
-'homeip' => array(),
-'homelinux' => array(),
-'homeunix' => array(),
-'in-the-band' => array(),
-'is-a-chef' => array(),
-'is-a-geek' => array(),
-'isa-geek' => array(),
-'kicks-ass' => array(),
-'office-on-the' => array(),
-'podzone' => array(),
-'scrapper-site' => array(),
-'selfip' => array(),
-'sells-it' => array(),
-'servebbs' => array(),
-'serveftp' => array(),
-'thruhere' => array(),
-'webhop' => array(),
-'fastly' => array('ssl' => array('a' => array(),
-'b' => array(),
-'global' => array()),
-'prod' => array('a' => array(),
-'global' => array())),
-'azurewebsites' => array(),
-'azure-mobile' => array(),
-'cloudapp' => array(),
-'za' => array()),
-'nf' => array('com' => array(),
-'net' => array(),
-'per' => array(),
-'rec' => array(),
-'web' => array(),
-'arts' => array(),
-'firm' => array(),
-'info' => array(),
-'other' => array(),
-'store' => array()),
-'ng' => array('com' => array(),
-'edu' => array(),
-'name' => array(),
-'net' => array(),
-'org' => array(),
-'sch' => array(),
-'gov' => array(),
-'mil' => array(),
-'mobi' => array()),
-'ni' => array('*' => array()),
-'nl' => array('bv' => array(),
-'co' => array(),
-'blogspot' => array()),
-'no' => array('fhs' => array(),
-'vgs' => array(),
-'fylkesbibl' => array(),
-'folkebibl' => array(),
-'museum' => array(),
-'idrett' => array(),
-'priv' => array(),
-'mil' => array(),
-'stat' => array(),
-'dep' => array(),
-'kommune' => array(),
-'herad' => array(),
-'aa' => array('gs' => array()),
-'ah' => array('gs' => array()),
-'bu' => array('gs' => array()),
-'fm' => array('gs' => array()),
-'hl' => array('gs' => array()),
-'hm' => array('gs' => array()),
-'jan-mayen' => array('gs' => array()),
-'mr' => array('gs' => array()),
-'nl' => array('gs' => array()),
-'nt' => array('gs' => array()),
-'of' => array('gs' => array()),
-'ol' => array('gs' => array()),
-'oslo' => array('gs' => array()),
-'rl' => array('gs' => array()),
-'sf' => array('gs' => array()),
-'st' => array('gs' => array()),
-'svalbard' => array('gs' => array()),
-'tm' => array('gs' => array()),
-'tr' => array('gs' => array()),
-'va' => array('gs' => array()),
-'vf' => array('gs' => array()),
-'akrehamn' => array(),
-'åkrehamn' => array(),
-'algard' => array(),
-'ålgård' => array(),
-'arna' => array(),
-'brumunddal' => array(),
-'bryne' => array(),
-'bronnoysund' => array(),
-'brønnøysund' => array(),
-'drobak' => array(),
-'drøbak' => array(),
-'egersund' => array(),
-'fetsund' => array(),
-'floro' => array(),
-'florø' => array(),
-'fredrikstad' => array(),
-'hokksund' => array(),
-'honefoss' => array(),
-'hønefoss' => array(),
-'jessheim' => array(),
-'jorpeland' => array(),
-'jørpeland' => array(),
-'kirkenes' => array(),
-'kopervik' => array(),
-'krokstadelva' => array(),
-'langevag' => array(),
-'langevåg' => array(),
-'leirvik' => array(),
-'mjondalen' => array(),
-'mjøndalen' => array(),
-'mo-i-rana' => array(),
-'mosjoen' => array(),
-'mosjøen' => array(),
-'nesoddtangen' => array(),
-'orkanger' => array(),
-'osoyro' => array(),
-'osøyro' => array(),
-'raholt' => array(),
-'råholt' => array(),
-'sandnessjoen' => array(),
-'sandnessjøen' => array(),
-'skedsmokorset' => array(),
-'slattum' => array(),
-'spjelkavik' => array(),
-'stathelle' => array(),
-'stavern' => array(),
-'stjordalshalsen' => array(),
-'stjørdalshalsen' => array(),
-'tananger' => array(),
-'tranby' => array(),
-'vossevangen' => array(),
-'afjord' => array(),
-'åfjord' => array(),
-'agdenes' => array(),
-'al' => array(),
-'ål' => array(),
-'alesund' => array(),
-'ålesund' => array(),
-'alstahaug' => array(),
-'alta' => array(),
-'áltá' => array(),
-'alaheadju' => array(),
-'álaheadju' => array(),
-'alvdal' => array(),
-'amli' => array(),
-'åmli' => array(),
-'amot' => array(),
-'åmot' => array(),
-'andebu' => array(),
-'andoy' => array(),
-'andøy' => array(),
-'andasuolo' => array(),
-'ardal' => array(),
-'årdal' => array(),
-'aremark' => array(),
-'arendal' => array(),
-'ås' => array(),
-'aseral' => array(),
-'åseral' => array(),
-'asker' => array(),
-'askim' => array(),
-'askvoll' => array(),
-'askoy' => array(),
-'askøy' => array(),
-'asnes' => array(),
-'åsnes' => array(),
-'audnedaln' => array(),
-'aukra' => array(),
-'aure' => array(),
-'aurland' => array(),
-'aurskog-holand' => array(),
-'aurskog-høland' => array(),
-'austevoll' => array(),
-'austrheim' => array(),
-'averoy' => array(),
-'averøy' => array(),
-'balestrand' => array(),
-'ballangen' => array(),
-'balat' => array(),
-'bálát' => array(),
-'balsfjord' => array(),
-'bahccavuotna' => array(),
-'báhccavuotna' => array(),
-'bamble' => array(),
-'bardu' => array(),
-'beardu' => array(),
-'beiarn' => array(),
-'bajddar' => array(),
-'bájddar' => array(),
-'baidar' => array(),
-'báidár' => array(),
-'berg' => array(),
-'bergen' => array(),
-'berlevag' => array(),
-'berlevåg' => array(),
-'bearalvahki' => array(),
-'bearalváhki' => array(),
-'bindal' => array(),
-'birkenes' => array(),
-'bjarkoy' => array(),
-'bjarkøy' => array(),
-'bjerkreim' => array(),
-'bjugn' => array(),
-'bodo' => array(),
-'bodø' => array(),
-'badaddja' => array(),
-'bådåddjå' => array(),
-'budejju' => array(),
-'bokn' => array(),
-'bremanger' => array(),
-'bronnoy' => array(),
-'brønnøy' => array(),
-'bygland' => array(),
-'bykle' => array(),
-'barum' => array(),
-'bærum' => array(),
-'telemark' => array('bo' => array(),
-'bø' => array()),
-'nordland' => array('bo' => array(),
-'bø' => array(),
-'heroy' => array(),
-'herøy' => array()),
-'bievat' => array(),
-'bievát' => array(),
-'bomlo' => array(),
-'bømlo' => array(),
-'batsfjord' => array(),
-'båtsfjord' => array(),
-'bahcavuotna' => array(),
-'báhcavuotna' => array(),
-'dovre' => array(),
-'drammen' => array(),
-'drangedal' => array(),
-'dyroy' => array(),
-'dyrøy' => array(),
-'donna' => array(),
-'dønna' => array(),
-'eid' => array(),
-'eidfjord' => array(),
-'eidsberg' => array(),
-'eidskog' => array(),
-'eidsvoll' => array(),
-'eigersund' => array(),
-'elverum' => array(),
-'enebakk' => array(),
-'engerdal' => array(),
-'etne' => array(),
-'etnedal' => array(),
-'evenes' => array(),
-'evenassi' => array(),
-'evenášši' => array(),
-'evje-og-hornnes' => array(),
-'farsund' => array(),
-'fauske' => array(),
-'fuossko' => array(),
-'fuoisku' => array(),
-'fedje' => array(),
-'fet' => array(),
-'finnoy' => array(),
-'finnøy' => array(),
-'fitjar' => array(),
-'fjaler' => array(),
-'fjell' => array(),
-'flakstad' => array(),
-'flatanger' => array(),
-'flekkefjord' => array(),
-'flesberg' => array(),
-'flora' => array(),
-'fla' => array(),
-'flå' => array(),
-'folldal' => array(),
-'forsand' => array(),
-'fosnes' => array(),
-'frei' => array(),
-'frogn' => array(),
-'froland' => array(),
-'frosta' => array(),
-'frana' => array(),
-'fræna' => array(),
-'froya' => array(),
-'frøya' => array(),
-'fusa' => array(),
-'fyresdal' => array(),
-'forde' => array(),
-'førde' => array(),
-'gamvik' => array(),
-'gangaviika' => array(),
-'gáŋgaviika' => array(),
-'gaular' => array(),
-'gausdal' => array(),
-'gildeskal' => array(),
-'gildeskål' => array(),
-'giske' => array(),
-'gjemnes' => array(),
-'gjerdrum' => array(),
-'gjerstad' => array(),
-'gjesdal' => array(),
-'gjovik' => array(),
-'gjøvik' => array(),
-'gloppen' => array(),
-'gol' => array(),
-'gran' => array(),
-'grane' => array(),
-'granvin' => array(),
-'gratangen' => array(),
-'grimstad' => array(),
-'grong' => array(),
-'kraanghke' => array(),
-'kråanghke' => array(),
-'grue' => array(),
-'gulen' => array(),
-'hadsel' => array(),
-'halden' => array(),
-'halsa' => array(),
-'hamar' => array(),
-'hamaroy' => array(),
-'habmer' => array(),
-'hábmer' => array(),
-'hapmir' => array(),
-'hápmir' => array(),
-'hammerfest' => array(),
-'hammarfeasta' => array(),
-'hámmárfeasta' => array(),
-'haram' => array(),
-'hareid' => array(),
-'harstad' => array(),
-'hasvik' => array(),
-'aknoluokta' => array(),
-'ákŋoluokta' => array(),
-'hattfjelldal' => array(),
-'aarborte' => array(),
-'haugesund' => array(),
-'hemne' => array(),
-'hemnes' => array(),
-'hemsedal' => array(),
-'more-og-romsdal' => array('heroy' => array(),
-'sande' => array()),
-'møre-og-romsdal' => array('herøy' => array(),
-'sande' => array()),
-'hitra' => array(),
-'hjartdal' => array(),
-'hjelmeland' => array(),
-'hobol' => array(),
-'hobøl' => array(),
-'hof' => array(),
-'hol' => array(),
-'hole' => array(),
-'holmestrand' => array(),
-'holtalen' => array(),
-'holtålen' => array(),
-'hornindal' => array(),
-'horten' => array(),
-'hurdal' => array(),
-'hurum' => array(),
-'hvaler' => array(),
-'hyllestad' => array(),
-'hagebostad' => array(),
-'hægebostad' => array(),
-'hoyanger' => array(),
-'høyanger' => array(),
-'hoylandet' => array(),
-'høylandet' => array(),
-'ha' => array(),
-'hå' => array(),
-'ibestad' => array(),
-'inderoy' => array(),
-'inderøy' => array(),
-'iveland' => array(),
-'jevnaker' => array(),
-'jondal' => array(),
-'jolster' => array(),
-'jølster' => array(),
-'karasjok' => array(),
-'karasjohka' => array(),
-'kárášjohka' => array(),
-'karlsoy' => array(),
-'galsa' => array(),
-'gálsá' => array(),
-'karmoy' => array(),
-'karmøy' => array(),
-'kautokeino' => array(),
-'guovdageaidnu' => array(),
-'klepp' => array(),
-'klabu' => array(),
-'klæbu' => array(),
-'kongsberg' => array(),
-'kongsvinger' => array(),
-'kragero' => array(),
-'kragerø' => array(),
-'kristiansand' => array(),
-'kristiansund' => array(),
-'krodsherad' => array(),
-'krødsherad' => array(),
-'kvalsund' => array(),
-'rahkkeravju' => array(),
-'ráhkkerávju' => array(),
-'kvam' => array(),
-'kvinesdal' => array(),
-'kvinnherad' => array(),
-'kviteseid' => array(),
-'kvitsoy' => array(),
-'kvitsøy' => array(),
-'kvafjord' => array(),
-'kvæfjord' => array(),
-'giehtavuoatna' => array(),
-'kvanangen' => array(),
-'kvænangen' => array(),
-'navuotna' => array(),
-'návuotna' => array(),
-'kafjord' => array(),
-'kåfjord' => array(),
-'gaivuotna' => array(),
-'gáivuotna' => array(),
-'larvik' => array(),
-'lavangen' => array(),
-'lavagis' => array(),
-'loabat' => array(),
-'loabát' => array(),
-'lebesby' => array(),
-'davvesiida' => array(),
-'leikanger' => array(),
-'leirfjord' => array(),
-'leka' => array(),
-'leksvik' => array(),
-'lenvik' => array(),
-'leangaviika' => array(),
-'leaŋgaviika' => array(),
-'lesja' => array(),
-'levanger' => array(),
-'lier' => array(),
-'lierne' => array(),
-'lillehammer' => array(),
-'lillesand' => array(),
-'lindesnes' => array(),
-'lindas' => array(),
-'lindås' => array(),
-'lom' => array(),
-'loppa' => array(),
-'lahppi' => array(),
-'láhppi' => array(),
-'lund' => array(),
-'lunner' => array(),
-'luroy' => array(),
-'lurøy' => array(),
-'luster' => array(),
-'lyngdal' => array(),
-'lyngen' => array(),
-'ivgu' => array(),
-'lardal' => array(),
-'lerdal' => array(),
-'lærdal' => array(),
-'lodingen' => array(),
-'lødingen' => array(),
-'lorenskog' => array(),
-'lørenskog' => array(),
-'loten' => array(),
-'løten' => array(),
-'malvik' => array(),
-'masoy' => array(),
-'måsøy' => array(),
-'muosat' => array(),
-'muosát' => array(),
-'mandal' => array(),
-'marker' => array(),
-'marnardal' => array(),
-'masfjorden' => array(),
-'meland' => array(),
-'meldal' => array(),
-'melhus' => array(),
-'meloy' => array(),
-'meløy' => array(),
-'meraker' => array(),
-'meråker' => array(),
-'moareke' => array(),
-'moåreke' => array(),
-'midsund' => array(),
-'midtre-gauldal' => array(),
-'modalen' => array(),
-'modum' => array(),
-'molde' => array(),
-'moskenes' => array(),
-'moss' => array(),
-'mosvik' => array(),
-'malselv' => array(),
-'målselv' => array(),
-'malatvuopmi' => array(),
-'málatvuopmi' => array(),
-'namdalseid' => array(),
-'aejrie' => array(),
-'namsos' => array(),
-'namsskogan' => array(),
-'naamesjevuemie' => array(),
-'nååmesjevuemie' => array(),
-'laakesvuemie' => array(),
-'nannestad' => array(),
-'narvik' => array(),
-'narviika' => array(),
-'naustdal' => array(),
-'nedre-eiker' => array(),
-'akershus' => array('nes' => array()),
-'buskerud' => array('nes' => array()),
-'nesna' => array(),
-'nesodden' => array(),
-'nesseby' => array(),
-'unjarga' => array(),
-'unjárga' => array(),
-'nesset' => array(),
-'nissedal' => array(),
-'nittedal' => array(),
-'nord-aurdal' => array(),
-'nord-fron' => array(),
-'nord-odal' => array(),
-'norddal' => array(),
-'nordkapp' => array(),
-'davvenjarga' => array(),
-'davvenjárga' => array(),
-'nordre-land' => array(),
-'nordreisa' => array(),
-'raisa' => array(),
-'ráisa' => array(),
-'nore-og-uvdal' => array(),
-'notodden' => array(),
-'naroy' => array(),
-'nærøy' => array(),
-'notteroy' => array(),
-'nøtterøy' => array(),
-'odda' => array(),
-'oksnes' => array(),
-'øksnes' => array(),
-'oppdal' => array(),
-'oppegard' => array(),
-'oppegård' => array(),
-'orkdal' => array(),
-'orland' => array(),
-'ørland' => array(),
-'orskog' => array(),
-'ørskog' => array(),
-'orsta' => array(),
-'ørsta' => array(),
-'hedmark' => array('os' => array(),
-'valer' => array(),
-'våler' => array()),
-'hordaland' => array('os' => array()),
-'osen' => array(),
-'osteroy' => array(),
-'osterøy' => array(),
-'ostre-toten' => array(),
-'østre-toten' => array(),
-'overhalla' => array(),
-'ovre-eiker' => array(),
-'øvre-eiker' => array(),
-'oyer' => array(),
-'øyer' => array(),
-'oygarden' => array(),
-'øygarden' => array(),
-'oystre-slidre' => array(),
-'øystre-slidre' => array(),
-'porsanger' => array(),
-'porsangu' => array(),
-'porsáŋgu' => array(),
-'porsgrunn' => array(),
-'radoy' => array(),
-'radøy' => array(),
-'rakkestad' => array(),
-'rana' => array(),
-'ruovat' => array(),
-'randaberg' => array(),
-'rauma' => array(),
-'rendalen' => array(),
-'rennebu' => array(),
-'rennesoy' => array(),
-'rennesøy' => array(),
-'rindal' => array(),
-'ringebu' => array(),
-'ringerike' => array(),
-'ringsaker' => array(),
-'rissa' => array(),
-'risor' => array(),
-'risør' => array(),
-'roan' => array(),
-'rollag' => array(),
-'rygge' => array(),
-'ralingen' => array(),
-'rælingen' => array(),
-'rodoy' => array(),
-'rødøy' => array(),
-'romskog' => array(),
-'rømskog' => array(),
-'roros' => array(),
-'røros' => array(),
-'rost' => array(),
-'røst' => array(),
-'royken' => array(),
-'røyken' => array(),
-'royrvik' => array(),
-'røyrvik' => array(),
-'rade' => array(),
-'råde' => array(),
-'salangen' => array(),
-'siellak' => array(),
-'saltdal' => array(),
-'salat' => array(),
-'sálát' => array(),
-'sálat' => array(),
-'samnanger' => array(),
-'vestfold' => array('sande' => array()),
-'sandefjord' => array(),
-'sandnes' => array(),
-'sandoy' => array(),
-'sandøy' => array(),
-'sarpsborg' => array(),
-'sauda' => array(),
-'sauherad' => array(),
-'sel' => array(),
-'selbu' => array(),
-'selje' => array(),
-'seljord' => array(),
-'sigdal' => array(),
-'siljan' => array(),
-'sirdal' => array(),
-'skaun' => array(),
-'skedsmo' => array(),
-'ski' => array(),
-'skien' => array(),
-'skiptvet' => array(),
-'skjervoy' => array(),
-'skjervøy' => array(),
-'skierva' => array(),
-'skiervá' => array(),
-'skjak' => array(),
-'skjåk' => array(),
-'skodje' => array(),
-'skanland' => array(),
-'skånland' => array(),
-'skanit' => array(),
-'skánit' => array(),
-'smola' => array(),
-'smøla' => array(),
-'snillfjord' => array(),
-'snasa' => array(),
-'snåsa' => array(),
-'snoasa' => array(),
-'snaase' => array(),
-'snåase' => array(),
-'sogndal' => array(),
-'sokndal' => array(),
-'sola' => array(),
-'solund' => array(),
-'songdalen' => array(),
-'sortland' => array(),
-'spydeberg' => array(),
-'stange' => array(),
-'stavanger' => array(),
-'steigen' => array(),
-'steinkjer' => array(),
-'stjordal' => array(),
-'stjørdal' => array(),
-'stokke' => array(),
-'stor-elvdal' => array(),
-'stord' => array(),
-'stordal' => array(),
-'storfjord' => array(),
-'omasvuotna' => array(),
-'strand' => array(),
-'stranda' => array(),
-'stryn' => array(),
-'sula' => array(),
-'suldal' => array(),
-'sund' => array(),
-'sunndal' => array(),
-'surnadal' => array(),
-'sveio' => array(),
-'svelvik' => array(),
-'sykkylven' => array(),
-'sogne' => array(),
-'søgne' => array(),
-'somna' => array(),
-'sømna' => array(),
-'sondre-land' => array(),
-'søndre-land' => array(),
-'sor-aurdal' => array(),
-'sør-aurdal' => array(),
-'sor-fron' => array(),
-'sør-fron' => array(),
-'sor-odal' => array(),
-'sør-odal' => array(),
-'sor-varanger' => array(),
-'sør-varanger' => array(),
-'matta-varjjat' => array(),
-'mátta-várjjat' => array(),
-'sorfold' => array(),
-'sørfold' => array(),
-'sorreisa' => array(),
-'sørreisa' => array(),
-'sorum' => array(),
-'sørum' => array(),
-'tana' => array(),
-'deatnu' => array(),
-'time' => array(),
-'tingvoll' => array(),
-'tinn' => array(),
-'tjeldsund' => array(),
-'dielddanuorri' => array(),
-'tjome' => array(),
-'tjøme' => array(),
-'tokke' => array(),
-'tolga' => array(),
-'torsken' => array(),
-'tranoy' => array(),
-'tranøy' => array(),
-'tromso' => array(),
-'tromsø' => array(),
-'tromsa' => array(),
-'romsa' => array(),
-'trondheim' => array(),
-'troandin' => array(),
-'trysil' => array(),
-'trana' => array(),
-'træna' => array(),
-'trogstad' => array(),
-'trøgstad' => array(),
-'tvedestrand' => array(),
-'tydal' => array(),
-'tynset' => array(),
-'tysfjord' => array(),
-'divtasvuodna' => array(),
-'divttasvuotna' => array(),
-'tysnes' => array(),
-'tysvar' => array(),
-'tysvær' => array(),
-'tonsberg' => array(),
-'tønsberg' => array(),
-'ullensaker' => array(),
-'ullensvang' => array(),
-'ulvik' => array(),
-'utsira' => array(),
-'vadso' => array(),
-'vadsø' => array(),
-'cahcesuolo' => array(),
-'čáhcesuolo' => array(),
-'vaksdal' => array(),
-'valle' => array(),
-'vang' => array(),
-'vanylven' => array(),
-'vardo' => array(),
-'vardø' => array(),
-'varggat' => array(),
-'várggát' => array(),
-'vefsn' => array(),
-'vaapste' => array(),
-'vega' => array(),
-'vegarshei' => array(),
-'vegårshei' => array(),
-'vennesla' => array(),
-'verdal' => array(),
-'verran' => array(),
-'vestby' => array(),
-'vestnes' => array(),
-'vestre-slidre' => array(),
-'vestre-toten' => array(),
-'vestvagoy' => array(),
-'vestvågøy' => array(),
-'vevelstad' => array(),
-'vik' => array(),
-'vikna' => array(),
-'vindafjord' => array(),
-'volda' => array(),
-'voss' => array(),
-'varoy' => array(),
-'værøy' => array(),
-'vagan' => array(),
-'vågan' => array(),
-'voagat' => array(),
-'vagsoy' => array(),
-'vågsøy' => array(),
-'vaga' => array(),
-'vågå' => array(),
-'ostfold' => array('valer' => array()),
-'østfold' => array('våler' => array()),
-'co' => array(),
-'blogspot' => array()),
-'np' => array('*' => array()),
-'nr' => array('biz' => array(),
-'info' => array(),
-'gov' => array(),
-'edu' => array(),
-'org' => array(),
-'net' => array(),
-'com' => array()),
-'nu' => array('merseine' => array(),
-'mine' => array(),
-'shacknet' => array()),
-'nz' => array('ac' => array(),
-'co' => array('blogspot' => array()),
-'cri' => array(),
-'geek' => array(),
-'gen' => array(),
-'govt' => array(),
-'health' => array(),
-'iwi' => array(),
-'kiwi' => array(),
-'maori' => array(),
-'mil' => array(),
-'māori' => array(),
-'net' => array(),
-'org' => array(),
-'parliament' => array(),
-'school' => array()),
-'om' => array('co' => array(),
-'com' => array(),
-'edu' => array(),
-'gov' => array(),
-'med' => array(),
-'museum' => array(),
-'net' => array(),
-'org' => array(),
-'pro' => array()),
-'org' => array('ae' => array(),
-'us' => array(),
-'dyndns' => array('go' => array(),
-'home' => array()),
-'blogdns' => array(),
-'blogsite' => array(),
-'boldlygoingnowhere' => array(),
-'dnsalias' => array(),
-'dnsdojo' => array(),
-'doesntexist' => array(),
-'dontexist' => array(),
-'doomdns' => array(),
-'dvrdns' => array(),
-'dynalias' => array(),
-'endofinternet' => array(),
-'endoftheinternet' => array(),
-'from-me' => array(),
-'game-host' => array(),
-'gotdns' => array(),
-'hobby-site' => array(),
-'homedns' => array(),
-'homeftp' => array(),
-'homelinux' => array(),
-'homeunix' => array(),
-'is-a-bruinsfan' => array(),
-'is-a-candidate' => array(),
-'is-a-celticsfan' => array(),
-'is-a-chef' => array(),
-'is-a-geek' => array(),
-'is-a-knight' => array(),
-'is-a-linux-user' => array(),
-'is-a-patsfan' => array(),
-'is-a-soxfan' => array(),
-'is-found' => array(),
-'is-lost' => array(),
-'is-saved' => array(),
-'is-very-bad' => array(),
-'is-very-evil' => array(),
-'is-very-good' => array(),
-'is-very-nice' => array(),
-'is-very-sweet' => array(),
-'isa-geek' => array(),
-'kicks-ass' => array(),
-'misconfused' => array(),
-'podzone' => array(),
-'readmyblog' => array(),
-'selfip' => array(),
-'sellsyourhome' => array(),
-'servebbs' => array(),
-'serveftp' => array(),
-'servegame' => array(),
-'stuff-4-sale' => array(),
-'webhop' => array(),
-'za' => array()),
-'pa' => array('ac' => array(),
-'gob' => array(),
-'com' => array(),
-'org' => array(),
-'sld' => array(),
-'edu' => array(),
-'net' => array(),
-'ing' => array(),
-'abo' => array(),
-'med' => array(),
-'nom' => array()),
-'pe' => array('edu' => array(),
-'gob' => array(),
-'nom' => array(),
-'mil' => array(),
-'org' => array(),
-'com' => array(),
-'net' => array()),
-'pf' => array('com' => array(),
-'org' => array(),
-'edu' => array()),
-'pg' => array('*' => array()),
-'ph' => array('com' => array(),
-'net' => array(),
-'org' => array(),
-'gov' => array(),
-'edu' => array(),
-'ngo' => array(),
-'mil' => array(),
-'i' => array()),
-'pk' => array('com' => array(),
-'net' => array(),
-'edu' => array(),
-'org' => array(),
-'fam' => array(),
-'biz' => array(),
-'web' => array(),
-'gov' => array(),
-'gob' => array(),
-'gok' => array(),
-'gon' => array(),
-'gop' => array(),
-'gos' => array(),
-'info' => array()),
-'pl' => array('aid' => array(),
-'agro' => array(),
-'atm' => array(),
-'auto' => array(),
-'biz' => array(),
-'com' => array(),
-'edu' => array(),
-'gmina' => array(),
-'gsm' => array(),
-'info' => array(),
-'mail' => array(),
-'miasta' => array(),
-'media' => array(),
-'mil' => array(),
-'net' => array(),
-'nieruchomosci' => array(),
-'nom' => array(),
-'org' => array(),
-'pc' => array(),
-'powiat' => array(),
-'priv' => array(),
-'realestate' => array(),
-'rel' => array(),
-'sex' => array(),
-'shop' => array(),
-'sklep' => array(),
-'sos' => array(),
-'szkola' => array(),
-'targi' => array(),
-'tm' => array(),
-'tourism' => array(),
-'travel' => array(),
-'turystyka' => array(),
-'6bone' => array(),
-'art' => array(),
-'mbone' => array(),
-'gov' => array('uw' => array(),
-'um' => array(),
-'ug' => array(),
-'upow' => array(),
-'starostwo' => array(),
-'so' => array(),
-'sr' => array(),
-'po' => array(),
-'pa' => array()),
-'ngo' => array(),
-'irc' => array(),
-'usenet' => array(),
-'augustow' => array(),
-'babia-gora' => array(),
-'bedzin' => array(),
-'beskidy' => array(),
-'bialowieza' => array(),
-'bialystok' => array(),
-'bielawa' => array(),
-'bieszczady' => array(),
-'boleslawiec' => array(),
-'bydgoszcz' => array(),
-'bytom' => array(),
-'cieszyn' => array(),
-'czeladz' => array(),
-'czest' => array(),
-'dlugoleka' => array(),
-'elblag' => array(),
-'elk' => array(),
-'glogow' => array(),
-'gniezno' => array(),
-'gorlice' => array(),
-'grajewo' => array(),
-'ilawa' => array(),
-'jaworzno' => array(),
-'jelenia-gora' => array(),
-'jgora' => array(),
-'kalisz' => array(),
-'kazimierz-dolny' => array(),
-'karpacz' => array(),
-'kartuzy' => array(),
-'kaszuby' => array(),
-'katowice' => array(),
-'kepno' => array(),
-'ketrzyn' => array(),
-'klodzko' => array(),
-'kobierzyce' => array(),
-'kolobrzeg' => array(),
-'konin' => array(),
-'konskowola' => array(),
-'kutno' => array(),
-'lapy' => array(),
-'lebork' => array(),
-'legnica' => array(),
-'lezajsk' => array(),
-'limanowa' => array(),
-'lomza' => array(),
-'lowicz' => array(),
-'lubin' => array(),
-'lukow' => array(),
-'malbork' => array(),
-'malopolska' => array(),
-'mazowsze' => array(),
-'mazury' => array(),
-'mielec' => array(),
-'mielno' => array(),
-'mragowo' => array(),
-'naklo' => array(),
-'nowaruda' => array(),
-'nysa' => array(),
-'olawa' => array(),
-'olecko' => array(),
-'olkusz' => array(),
-'olsztyn' => array(),
-'opoczno' => array(),
-'opole' => array(),
-'ostroda' => array(),
-'ostroleka' => array(),
-'ostrowiec' => array(),
-'ostrowwlkp' => array(),
-'pila' => array(),
-'pisz' => array(),
-'podhale' => array(),
-'podlasie' => array(),
-'polkowice' => array(),
-'pomorze' => array(),
-'pomorskie' => array(),
-'prochowice' => array(),
-'pruszkow' => array(),
-'przeworsk' => array(),
-'pulawy' => array(),
-'radom' => array(),
-'rawa-maz' => array(),
-'rybnik' => array(),
-'rzeszow' => array(),
-'sanok' => array(),
-'sejny' => array(),
-'siedlce' => array(),
-'slask' => array(),
-'slupsk' => array(),
-'sosnowiec' => array(),
-'stalowa-wola' => array(),
-'skoczow' => array(),
-'starachowice' => array(),
-'stargard' => array(),
-'suwalki' => array(),
-'swidnica' => array(),
-'swiebodzin' => array(),
-'swinoujscie' => array(),
-'szczecin' => array(),
-'szczytno' => array(),
-'tarnobrzeg' => array(),
-'tgory' => array(),
-'turek' => array(),
-'tychy' => array(),
-'ustka' => array(),
-'walbrzych' => array(),
-'warmia' => array(),
-'warszawa' => array(),
-'waw' => array(),
-'wegrow' => array(),
-'wielun' => array(),
-'wlocl' => array(),
-'wloclawek' => array(),
-'wodzislaw' => array(),
-'wolomin' => array(),
-'wroclaw' => array(),
-'zachpomor' => array(),
-'zagan' => array(),
-'zarow' => array(),
-'zgora' => array(),
-'zgorzelec' => array(),
-'gda' => array(),
-'gdansk' => array(),
-'gdynia' => array(),
-'med' => array(),
-'sopot' => array(),
-'gliwice' => array(),
-'krakow' => array(),
-'poznan' => array(),
-'wroc' => array(),
-'zakopane' => array(),
-'co' => array()),
-'pm' => array(),
-'pn' => array('gov' => array(),
-'co' => array(),
-'org' => array(),
-'edu' => array(),
-'net' => array()),
-'post' => array(),
-'pr' => array('com' => array(),
-'net' => array(),
-'org' => array(),
-'gov' => array(),
-'edu' => array(),
-'isla' => array(),
-'pro' => array(),
-'biz' => array(),
-'info' => array(),
-'name' => array(),
-'est' => array(),
-'prof' => array(),
-'ac' => array()),
-'pro' => array('aca' => array(),
-'bar' => array(),
-'cpa' => array(),
-'jur' => array(),
-'law' => array(),
-'med' => array(),
-'eng' => array()),
-'ps' => array('edu' => array(),
-'gov' => array(),
-'sec' => array(),
-'plo' => array(),
-'com' => array(),
-'org' => array(),
-'net' => array()),
-'pt' => array('net' => array(),
-'gov' => array(),
-'org' => array(),
-'edu' => array(),
-'int' => array(),
-'publ' => array(),
-'com' => array(),
-'nome' => array(),
-'blogspot' => array()),
-'pw' => array('co' => array(),
-'ne' => array(),
-'or' => array(),
-'ed' => array(),
-'go' => array(),
-'belau' => array()),
-'py' => array('com' => array(),
-'coop' => array(),
-'edu' => array(),
-'gov' => array(),
-'mil' => array(),
-'net' => array(),
-'org' => array()),
-'qa' => array('com' => array(),
-'edu' => array(),
-'gov' => array(),
-'mil' => array(),
-'name' => array(),
-'net' => array(),
-'org' => array(),
-'sch' => array()),
-'re' => array('com' => array(),
-'asso' => array(),
-'nom' => array(),
-'blogspot' => array()),
-'ro' => array('com' => array(),
-'org' => array(),
-'tm' => array(),
-'nt' => array(),
-'nom' => array(),
-'info' => array(),
-'rec' => array(),
-'arts' => array(),
-'firm' => array(),
-'store' => array(),
-'www' => array(),
-'blogspot' => array()),
-'rs' => array('co' => array(),
-'org' => array(),
-'edu' => array(),
-'ac' => array(),
-'gov' => array(),
-'in' => array()),
-'ru' => array('ac' => array(),
-'com' => array(),
-'edu' => array(),
-'int' => array(),
-'net' => array(),
-'org' => array(),
-'pp' => array(),
-'adygeya' => array(),
-'altai' => array(),
-'amur' => array(),
-'arkhangelsk' => array(),
-'astrakhan' => array(),
-'bashkiria' => array(),
-'belgorod' => array(),
-'bir' => array(),
-'bryansk' => array(),
-'buryatia' => array(),
-'cbg' => array(),
-'chel' => array(),
-'chelyabinsk' => array(),
-'chita' => array(),
-'chukotka' => array(),
-'chuvashia' => array(),
-'dagestan' => array(),
-'dudinka' => array(),
-'e-burg' => array(),
-'grozny' => array(),
-'irkutsk' => array(),
-'ivanovo' => array(),
-'izhevsk' => array(),
-'jar' => array(),
-'joshkar-ola' => array(),
-'kalmykia' => array(),
-'kaluga' => array(),
-'kamchatka' => array(),
-'karelia' => array(),
-'kazan' => array(),
-'kchr' => array(),
-'kemerovo' => array(),
-'khabarovsk' => array(),
-'khakassia' => array(),
-'khv' => array(),
-'kirov' => array(),
-'koenig' => array(),
-'komi' => array(),
-'kostroma' => array(),
-'krasnoyarsk' => array(),
-'kuban' => array(),
-'kurgan' => array(),
-'kursk' => array(),
-'lipetsk' => array(),
-'magadan' => array(),
-'mari' => array(),
-'mari-el' => array(),
-'marine' => array(),
-'mordovia' => array(),
-'mosreg' => array(),
-'msk' => array(),
-'murmansk' => array(),
-'nalchik' => array(),
-'nnov' => array(),
-'nov' => array(),
-'novosibirsk' => array(),
-'nsk' => array(),
-'omsk' => array(),
-'orenburg' => array(),
-'oryol' => array(),
-'palana' => array(),
-'penza' => array(),
-'perm' => array(),
-'ptz' => array(),
-'rnd' => array(),
-'ryazan' => array(),
-'sakhalin' => array(),
-'samara' => array(),
-'saratov' => array(),
-'simbirsk' => array(),
-'smolensk' => array(),
-'spb' => array(),
-'stavropol' => array(),
-'stv' => array(),
-'surgut' => array(),
-'tambov' => array(),
-'tatarstan' => array(),
-'tom' => array(),
-'tomsk' => array(),
-'tsaritsyn' => array(),
-'tsk' => array(),
-'tula' => array(),
-'tuva' => array(),
-'tver' => array(),
-'tyumen' => array(),
-'udm' => array(),
-'udmurtia' => array(),
-'ulan-ude' => array(),
-'vladikavkaz' => array(),
-'vladimir' => array(),
-'vladivostok' => array(),
-'volgograd' => array(),
-'vologda' => array(),
-'voronezh' => array(),
-'vrn' => array(),
-'vyatka' => array(),
-'yakutia' => array(),
-'yamal' => array(),
-'yaroslavl' => array(),
-'yekaterinburg' => array(),
-'yuzhno-sakhalinsk' => array(),
-'amursk' => array(),
-'baikal' => array(),
-'cmw' => array(),
-'fareast' => array(),
-'jamal' => array(),
-'kms' => array(),
-'k-uralsk' => array(),
-'kustanai' => array(),
-'kuzbass' => array(),
-'magnitka' => array(),
-'mytis' => array(),
-'nakhodka' => array(),
-'nkz' => array(),
-'norilsk' => array(),
-'oskol' => array(),
-'pyatigorsk' => array(),
-'rubtsovsk' => array(),
-'snz' => array(),
-'syzran' => array(),
-'vdonsk' => array(),
-'zgrad' => array(),
-'gov' => array(),
-'mil' => array(),
-'test' => array()),
-'rw' => array('gov' => array(),
-'net' => array(),
-'edu' => array(),
-'ac' => array(),
-'com' => array(),
-'co' => array(),
-'int' => array(),
-'mil' => array(),
-'gouv' => array()),
-'sa' => array('com' => array(),
-'net' => array(),
-'org' => array(),
-'gov' => array(),
-'med' => array(),
-'pub' => array(),
-'edu' => array(),
-'sch' => array()),
-'sb' => array('com' => array(),
-'edu' => array(),
-'gov' => array(),
-'net' => array(),
-'org' => array()),
-'sc' => array('com' => array(),
-'gov' => array(),
-'net' => array(),
-'org' => array(),
-'edu' => array()),
-'sd' => array('com' => array(),
-'net' => array(),
-'org' => array(),
-'edu' => array(),
-'med' => array(),
-'tv' => array(),
-'gov' => array(),
-'info' => array()),
-'se' => array('a' => array(),
-'ac' => array(),
-'b' => array(),
-'bd' => array(),
-'brand' => array(),
-'c' => array(),
-'d' => array(),
-'e' => array(),
-'f' => array(),
-'fh' => array(),
-'fhsk' => array(),
-'fhv' => array(),
-'g' => array(),
-'h' => array(),
-'i' => array(),
-'k' => array(),
-'komforb' => array(),
-'kommunalforbund' => array(),
-'komvux' => array(),
-'l' => array(),
-'lanbib' => array(),
-'m' => array(),
-'n' => array(),
-'naturbruksgymn' => array(),
-'o' => array(),
-'org' => array(),
-'p' => array(),
-'parti' => array(),
-'pp' => array(),
-'press' => array(),
-'r' => array(),
-'s' => array(),
-'t' => array(),
-'tm' => array(),
-'u' => array(),
-'w' => array(),
-'x' => array(),
-'y' => array(),
-'z' => array(),
-'com' => array(),
-'blogspot' => array()),
-'sg' => array('com' => array(),
-'net' => array(),
-'org' => array(),
-'gov' => array(),
-'edu' => array(),
-'per' => array(),
-'blogspot' => array()),
-'sh' => array('com' => array(),
-'net' => array(),
-'gov' => array(),
-'org' => array(),
-'mil' => array()),
-'si' => array(),
-'sj' => array(),
-'sk' => array('blogspot' => array()),
-'sl' => array('com' => array(),
-'net' => array(),
-'edu' => array(),
-'gov' => array(),
-'org' => array()),
-'sm' => array(),
-'sn' => array('art' => array(),
-'com' => array(),
-'edu' => array(),
-'gouv' => array(),
-'org' => array(),
-'perso' => array(),
-'univ' => array()),
-'so' => array('com' => array(),
-'net' => array(),
-'org' => array()),
-'sr' => array(),
-'st' => array('co' => array(),
-'com' => array(),
-'consulado' => array(),
-'edu' => array(),
-'embaixada' => array(),
-'gov' => array(),
-'mil' => array(),
-'net' => array(),
-'org' => array(),
-'principe' => array(),
-'saotome' => array(),
-'store' => array()),
-'su' => array(),
-'sv' => array('com' => array(),
-'edu' => array(),
-'gob' => array(),
-'org' => array(),
-'red' => array()),
-'sx' => array('gov' => array()),
-'sy' => array('edu' => array(),
-'gov' => array(),
-'net' => array(),
-'mil' => array(),
-'com' => array(),
-'org' => array()),
-'sz' => array('co' => array(),
-'ac' => array(),
-'org' => array()),
-'tc' => array(),
-'td' => array('blogspot' => array()),
-'tel' => array(),
-'tf' => array(),
-'tg' => array(),
-'th' => array('ac' => array(),
-'co' => array(),
-'go' => array(),
-'in' => array(),
-'mi' => array(),
-'net' => array(),
-'or' => array()),
-'tj' => array('ac' => array(),
-'biz' => array(),
-'co' => array(),
-'com' => array(),
-'edu' => array(),
-'go' => array(),
-'gov' => array(),
-'int' => array(),
-'mil' => array(),
-'name' => array(),
-'net' => array(),
-'nic' => array(),
-'org' => array(),
-'test' => array(),
-'web' => array()),
-'tk' => array(),
-'tl' => array('gov' => array()),
-'tm' => array('com' => array(),
-'co' => array(),
-'org' => array(),
-'net' => array(),
-'nom' => array(),
-'gov' => array(),
-'mil' => array(),
-'edu' => array()),
-'tn' => array('com' => array(),
-'ens' => array(),
-'fin' => array(),
-'gov' => array(),
-'ind' => array(),
-'intl' => array(),
-'nat' => array(),
-'net' => array(),
-'org' => array(),
-'info' => array(),
-'perso' => array(),
-'tourism' => array(),
-'edunet' => array(),
-'rnrt' => array(),
-'rns' => array(),
-'rnu' => array(),
-'mincom' => array(),
-'agrinet' => array(),
-'defense' => array(),
-'turen' => array()),
-'to' => array('com' => array(),
-'gov' => array(),
-'net' => array(),
-'org' => array(),
-'edu' => array(),
-'mil' => array()),
-'tp' => array(),
-'tr' => array('com' => array(),
-'info' => array(),
-'biz' => array(),
-'net' => array(),
-'org' => array(),
-'web' => array(),
-'gen' => array(),
-'tv' => array(),
-'av' => array(),
-'dr' => array(),
-'bbs' => array(),
-'name' => array(),
-'tel' => array(),
-'gov' => array(),
-'bel' => array(),
-'pol' => array(),
-'mil' => array(),
-'k12' => array(),
-'edu' => array(),
-'kep' => array(),
-'nc' => array('gov' => array())),
-'travel' => array(),
-'tt' => array('co' => array(),
-'com' => array(),
-'org' => array(),
-'net' => array(),
-'biz' => array(),
-'info' => array(),
-'pro' => array(),
-'int' => array(),
-'coop' => array(),
-'jobs' => array(),
-'mobi' => array(),
-'travel' => array(),
-'museum' => array(),
-'aero' => array(),
-'name' => array(),
-'gov' => array(),
-'edu' => array()),
-'tv' => array('dyndns' => array(),
-'better-than' => array(),
-'on-the-web' => array(),
-'worse-than' => array()),
-'tw' => array('edu' => array(),
-'gov' => array(),
-'mil' => array(),
-'com' => array(),
-'net' => array(),
-'org' => array(),
-'idv' => array(),
-'game' => array(),
-'ebiz' => array(),
-'club' => array(),
-'網路' => array(),
-'組織' => array(),
-'商業' => array(),
-'blogspot' => array()),
-'tz' => array('ac' => array(),
-'co' => array(),
-'go' => array(),
-'hotel' => array(),
-'info' => array(),
-'me' => array(),
-'mil' => array(),
-'mobi' => array(),
-'ne' => array(),
-'or' => array(),
-'sc' => array(),
-'tv' => array()),
-'ua' => array('com' => array(),
-'edu' => array(),
-'gov' => array(),
-'in' => array(),
-'net' => array(),
-'org' => array(),
-'cherkassy' => array(),
-'cherkasy' => array(),
-'chernigov' => array(),
-'chernihiv' => array(),
-'chernivtsi' => array(),
-'chernovtsy' => array(),
-'ck' => array(),
-'cn' => array(),
-'cr' => array(),
-'crimea' => array(),
-'cv' => array(),
-'dn' => array(),
-'dnepropetrovsk' => array(),
-'dnipropetrovsk' => array(),
-'dominic' => array(),
-'donetsk' => array(),
-'dp' => array(),
-'if' => array(),
-'ivano-frankivsk' => array(),
-'kh' => array(),
-'kharkiv' => array(),
-'kharkov' => array(),
-'kherson' => array(),
-'khmelnitskiy' => array(),
-'khmelnytskyi' => array(),
-'kiev' => array(),
-'kirovograd' => array(),
-'km' => array(),
-'kr' => array(),
-'krym' => array(),
-'ks' => array(),
-'kv' => array(),
-'kyiv' => array(),
-'lg' => array(),
-'lt' => array(),
-'lugansk' => array(),
-'lutsk' => array(),
-'lv' => array(),
-'lviv' => array(),
-'mk' => array(),
-'mykolaiv' => array(),
-'nikolaev' => array(),
-'od' => array(),
-'odesa' => array(),
-'odessa' => array(),
-'pl' => array(),
-'poltava' => array(),
-'rivne' => array(),
-'rovno' => array(),
-'rv' => array(),
-'sb' => array(),
-'sebastopol' => array(),
-'sevastopol' => array(),
-'sm' => array(),
-'sumy' => array(),
-'te' => array(),
-'ternopil' => array(),
-'uz' => array(),
-'uzhgorod' => array(),
-'vinnica' => array(),
-'vinnytsia' => array(),
-'vn' => array(),
-'volyn' => array(),
-'yalta' => array(),
-'zaporizhzhe' => array(),
-'zaporizhzhia' => array(),
-'zhitomir' => array(),
-'zhytomyr' => array(),
-'zp' => array(),
-'zt' => array(),
-'co' => array(),
-'pp' => array()),
-'ug' => array('co' => array(),
-'or' => array(),
-'ac' => array(),
-'sc' => array(),
-'go' => array(),
-'ne' => array(),
-'com' => array(),
-'org' => array()),
-'uk' => array('ac' => array(),
-'co' => array('blogspot' => array()),
-'gov' => array('service' => array()),
-'ltd' => array(),
-'me' => array(),
-'net' => array(),
-'nhs' => array(),
-'org' => array(),
-'plc' => array(),
-'police' => array(),
-'sch' => array('*' => array())),
-'us' => array('dni' => array(),
-'fed' => array(),
-'isa' => array(),
-'kids' => array(),
-'nsn' => array(),
-'ak' => array('k12' => array(),
-'cc' => array(),
-'lib' => array()),
-'al' => array('k12' => array(),
-'cc' => array(),
-'lib' => array()),
-'ar' => array('k12' => array(),
-'cc' => array(),
-'lib' => array()),
-'as' => array('k12' => array(),
-'cc' => array(),
-'lib' => array()),
-'az' => array('k12' => array(),
-'cc' => array(),
-'lib' => array()),
-'ca' => array('k12' => array(),
-'cc' => array(),
-'lib' => array()),
-'co' => array('k12' => array(),
-'cc' => array(),
-'lib' => array()),
-'ct' => array('k12' => array(),
-'cc' => array(),
-'lib' => array()),
-'dc' => array('k12' => array(),
-'cc' => array(),
-'lib' => array()),
-'de' => array('k12' => array(),
-'cc' => array(),
-'lib' => array()),
-'fl' => array('k12' => array(),
-'cc' => array(),
-'lib' => array()),
-'ga' => array('k12' => array(),
-'cc' => array(),
-'lib' => array()),
-'gu' => array('k12' => array(),
-'cc' => array(),
-'lib' => array()),
-'hi' => array('cc' => array(),
-'lib' => array()),
-'ia' => array('k12' => array(),
-'cc' => array(),
-'lib' => array()),
-'id' => array('k12' => array(),
-'cc' => array(),
-'lib' => array()),
-'il' => array('k12' => array(),
-'cc' => array(),
-'lib' => array()),
-'in' => array('k12' => array(),
-'cc' => array(),
-'lib' => array()),
-'ks' => array('k12' => array(),
-'cc' => array(),
-'lib' => array()),
-'ky' => array('k12' => array(),
-'cc' => array(),
-'lib' => array()),
-'la' => array('k12' => array(),
-'cc' => array(),
-'lib' => array()),
-'ma' => array('k12' => array('pvt' => array(),
-'chtr' => array(),
-'paroch' => array()),
-'cc' => array(),
-'lib' => array()),
-'md' => array('k12' => array(),
-'cc' => array(),
-'lib' => array()),
-'me' => array('k12' => array(),
-'cc' => array(),
-'lib' => array()),
-'mi' => array('k12' => array(),
-'cc' => array(),
-'lib' => array()),
-'mn' => array('k12' => array(),
-'cc' => array(),
-'lib' => array()),
-'mo' => array('k12' => array(),
-'cc' => array(),
-'lib' => array()),
-'ms' => array('k12' => array(),
-'cc' => array(),
-'lib' => array()),
-'mt' => array('k12' => array(),
-'cc' => array(),
-'lib' => array()),
-'nc' => array('k12' => array(),
-'cc' => array(),
-'lib' => array()),
-'nd' => array('cc' => array(),
-'lib' => array()),
-'ne' => array('k12' => array(),
-'cc' => array(),
-'lib' => array()),
-'nh' => array('k12' => array(),
-'cc' => array(),
-'lib' => array()),
-'nj' => array('k12' => array(),
-'cc' => array(),
-'lib' => array()),
-'nm' => array('k12' => array(),
-'cc' => array(),
-'lib' => array()),
-'nv' => array('k12' => array(),
-'cc' => array(),
-'lib' => array()),
-'ny' => array('k12' => array(),
-'cc' => array(),
-'lib' => array()),
-'oh' => array('k12' => array(),
-'cc' => array(),
-'lib' => array()),
-'ok' => array('k12' => array(),
-'cc' => array(),
-'lib' => array()),
-'or' => array('k12' => array(),
-'cc' => array(),
-'lib' => array()),
-'pa' => array('k12' => array(),
-'cc' => array(),
-'lib' => array()),
-'pr' => array('k12' => array(),
-'cc' => array(),
-'lib' => array()),
-'ri' => array('k12' => array(),
-'cc' => array(),
-'lib' => array()),
-'sc' => array('k12' => array(),
-'cc' => array(),
-'lib' => array()),
-'sd' => array('cc' => array(),
-'lib' => array()),
-'tn' => array('k12' => array(),
-'cc' => array(),
-'lib' => array()),
-'tx' => array('k12' => array(),
-'cc' => array(),
-'lib' => array()),
-'ut' => array('k12' => array(),
-'cc' => array(),
-'lib' => array()),
-'vi' => array('k12' => array(),
-'cc' => array(),
-'lib' => array()),
-'vt' => array('k12' => array(),
-'cc' => array(),
-'lib' => array()),
-'va' => array('k12' => array(),
-'cc' => array(),
-'lib' => array()),
-'wa' => array('k12' => array(),
-'cc' => array(),
-'lib' => array()),
-'wi' => array('k12' => array(),
-'cc' => array(),
-'lib' => array()),
-'wv' => array('cc' => array()),
-'wy' => array('k12' => array(),
-'cc' => array(),
-'lib' => array()),
-'is-by' => array(),
-'land-4-sale' => array(),
-'stuff-4-sale' => array()),
-'uy' => array('com' => array(),
-'edu' => array(),
-'gub' => array(),
-'mil' => array(),
-'net' => array(),
-'org' => array()),
-'uz' => array('co' => array(),
-'com' => array(),
-'net' => array(),
-'org' => array()),
-'va' => array(),
-'vc' => array('com' => array(),
-'net' => array(),
-'org' => array(),
-'gov' => array(),
-'mil' => array(),
-'edu' => array()),
-'ve' => array('arts' => array(),
-'co' => array(),
-'com' => array(),
-'e12' => array(),
-'edu' => array(),
-'firm' => array(),
-'gob' => array(),
-'gov' => array(),
-'info' => array(),
-'int' => array(),
-'mil' => array(),
-'net' => array(),
-'org' => array(),
-'rec' => array(),
-'store' => array(),
-'tec' => array(),
-'web' => array()),
-'vg' => array(),
-'vi' => array('co' => array(),
-'com' => array(),
-'k12' => array(),
-'net' => array(),
-'org' => array()),
-'vn' => array('com' => array(),
-'net' => array(),
-'org' => array(),
-'edu' => array(),
-'gov' => array(),
-'int' => array(),
-'ac' => array(),
-'biz' => array(),
-'info' => array(),
-'name' => array(),
-'pro' => array(),
-'health' => array()),
-'vu' => array('com' => array(),
-'edu' => array(),
-'net' => array(),
-'org' => array()),
-'wf' => array(),
-'ws' => array('com' => array(),
-'net' => array(),
-'org' => array(),
-'gov' => array(),
-'edu' => array(),
-'dyndns' => array(),
-'mypets' => array()),
-'yt' => array(),
-'امارات' => array(),
-'বাংলা' => array(),
-'中国' => array(),
-'中國' => array(),
-'الجزائر' => array(),
-'مصر' => array(),
-'გე' => array(),
-'香港' => array(),
-'भारत' => array(),
-'بھارت' => array(),
-'భారత్' => array(),
-'ભારત' => array(),
-'ਭਾਰਤ' => array(),
-'ভারত' => array(),
-'இந்தியா' => array(),
-'ایران' => array(),
-'ايران' => array(),
-'الاردن' => array(),
-'한국' => array(),
-'қаз' => array(),
-'ලංකා' => array(),
-'இலங்கை' => array(),
-'المغرب' => array(),
-'мон' => array(),
-'مليسيا' => array(),
-'عمان' => array(),
-'فلسطين' => array(),
-'срб' => array('пр' => array(),
-'орг' => array(),
-'обр' => array(),
-'од' => array(),
-'упр' => array(),
-'ак' => array()),
-'рф' => array(),
-'قطر' => array(),
-'السعودية' => array(),
-'السعودیة' => array(),
-'السعودیۃ' => array(),
-'السعوديه' => array(),
-'سورية' => array(),
-'سوريا' => array(),
-'新加坡' => array(),
-'சிங்கப்பூர்' => array(),
-'ไทย' => array(),
-'تونس' => array(),
-'台灣' => array(),
-'台湾' => array(),
-'臺灣' => array(),
-'укр' => array(),
-'اليمن' => array(),
-'xxx' => array(),
-'ye' => array('*' => array()),
-'za' => array('*' => array()),
-'zm' => array('*' => array()),
-'zw' => array('*' => array()),
-'abbott' => array(),
-'abogado' => array(),
-'academy' => array(),
-'accenture' => array(),
-'accountants' => array(),
-'active' => array(),
-'actor' => array(),
-'africa' => array(),
-'agency' => array(),
-'airforce' => array(),
-'allfinanz' => array(),
-'alsace' => array(),
-'amsterdam' => array(),
-'android' => array(),
-'aquarelle' => array(),
-'archi' => array(),
-'army' => array(),
-'associates' => array(),
-'attorney' => array(),
-'auction' => array(),
-'audio' => array(),
-'autos' => array(),
-'axa' => array(),
-'band' => array(),
-'bar' => array(),
-'barcelona' => array(),
-'bargains' => array(),
-'bauhaus' => array(),
-'bayern' => array(),
-'bcn' => array(),
-'beer' => array(),
-'berlin' => array(),
-'best' => array(),
-'bharti' => array(),
-'bible' => array(),
-'bid' => array(),
-'bike' => array(),
-'bio' => array(),
-'black' => array(),
-'blackfriday' => array(),
-'bloomberg' => array(),
-'blue' => array(),
-'bmw' => array(),
-'bnl' => array(),
-'bnpparibas' => array(),
-'bond' => array(),
-'boo' => array(),
-'boutique' => array(),
-'brussels' => array(),
-'budapest' => array(),
-'build' => array(),
-'builders' => array(),
-'business' => array(),
-'buzz' => array(),
-'bzh' => array(),
-'cab' => array(),
-'cal' => array(),
-'camera' => array(),
-'camp' => array(),
-'cancerresearch' => array(),
-'capetown' => array(),
-'capital' => array(),
-'caravan' => array(),
-'cards' => array(),
-'care' => array(),
-'career' => array(),
-'careers' => array(),
-'cartier' => array(),
-'casa' => array(),
-'cash' => array(),
-'catering' => array(),
-'cba' => array(),
-'cbn' => array(),
-'center' => array(),
-'ceo' => array(),
-'cern' => array(),
-'cfa' => array(),
-'channel' => array(),
-'cheap' => array(),
-'christmas' => array(),
-'chrome' => array(),
-'church' => array(),
-'citic' => array(),
-'city' => array(),
-'claims' => array(),
-'cleaning' => array(),
-'click' => array(),
-'clinic' => array(),
-'clothing' => array(),
-'club' => array(),
-'codes' => array(),
-'coffee' => array(),
-'college' => array(),
-'cologne' => array(),
-'commbank' => array(),
-'community' => array(),
-'company' => array(),
-'computer' => array(),
-'condos' => array(),
-'construction' => array(),
-'consulting' => array(),
-'contractors' => array(),
-'cooking' => array(),
-'cool' => array(),
-'country' => array(),
-'credit' => array(),
-'creditcard' => array(),
-'crs' => array(),
-'cruises' => array(),
-'cuisinella' => array(),
-'cymru' => array(),
-'dabur' => array(),
-'dad' => array(),
-'dance' => array(),
-'dating' => array(),
-'datsun' => array(),
-'day' => array(),
-'deals' => array(),
-'degree' => array(),
-'democrat' => array(),
-'dental' => array(),
-'dentist' => array(),
-'desi' => array(),
-'diamonds' => array(),
-'diet' => array(),
-'digital' => array(),
-'direct' => array(),
-'directory' => array(),
-'discount' => array(),
-'dnp' => array(),
-'domains' => array(),
-'doosan' => array(),
-'durban' => array(),
-'dvag' => array(),
-'eat' => array(),
-'education' => array(),
-'email' => array(),
-'emerck' => array(),
-'engineer' => array(),
-'engineering' => array(),
-'enterprises' => array(),
-'equipment' => array(),
-'erni' => array(),
-'esq' => array(),
-'estate' => array(),
-'eurovision' => array(),
-'eus' => array(),
-'events' => array(),
-'everbank' => array(),
-'exchange' => array(),
-'expert' => array(),
-'exposed' => array(),
-'fail' => array(),
-'fan' => array(),
-'farm' => array(),
-'fashion' => array(),
-'feedback' => array(),
-'finance' => array(),
-'financial' => array(),
-'firmdale' => array(),
-'fish' => array(),
-'fishing' => array(),
-'fitness' => array(),
-'flights' => array(),
-'florist' => array(),
-'flsmidth' => array(),
-'fly' => array(),
-'foo' => array(),
-'forsale' => array(),
-'foundation' => array(),
-'frl' => array(),
-'frogans' => array(),
-'fund' => array(),
-'furniture' => array(),
-'futbol' => array(),
-'gal' => array(),
-'gallery' => array(),
-'garden' => array(),
-'gbiz' => array(),
-'gdn' => array(),
-'gent' => array(),
-'ggee' => array(),
-'gift' => array(),
-'gifts' => array(),
-'gives' => array(),
-'glass' => array(),
-'gle' => array(),
-'global' => array(),
-'globo' => array(),
-'gmail' => array(),
-'gmo' => array(),
-'gmx' => array(),
-'google' => array(),
-'gop' => array(),
-'graphics' => array(),
-'gratis' => array(),
-'green' => array(),
-'gripe' => array(),
-'group' => array(),
-'guge' => array(),
-'guide' => array(),
-'guitars' => array(),
-'guru' => array(),
-'hamburg' => array(),
-'haus' => array(),
-'healthcare' => array(),
-'help' => array(),
-'here' => array(),
-'hermes' => array(),
-'hiphop' => array(),
-'hiv' => array(),
-'holdings' => array(),
-'holiday' => array(),
-'homes' => array(),
-'horse' => array(),
-'host' => array(),
-'hosting' => array(),
-'house' => array(),
-'how' => array(),
-'ibm' => array(),
-'ifm' => array(),
-'iinet' => array(),
-'immo' => array(),
-'immobilien' => array(),
-'industries' => array(),
-'infiniti' => array(),
-'ing' => array(),
-'ink' => array(),
-'institute' => array(),
-'insure' => array(),
-'international' => array(),
-'investments' => array(),
-'ipiranga' => array(),
-'irish' => array(),
-'ist' => array(),
-'istanbul' => array(),
-'iwc' => array(),
-'java' => array(),
-'jetzt' => array(),
-'joburg' => array(),
-'juegos' => array(),
-'kaufen' => array(),
-'kim' => array(),
-'kitchen' => array(),
-'kiwi' => array(),
-'koeln' => array(),
-'krd' => array(),
-'kred' => array(),
-'lacaixa' => array(),
-'land' => array(),
-'latrobe' => array(),
-'lawyer' => array(),
-'lds' => array(),
-'lease' => array(),
-'leclerc' => array(),
-'lgbt' => array(),
-'life' => array(),
-'lighting' => array(),
-'limited' => array(),
-'limo' => array(),
-'link' => array(),
-'loans' => array(),
-'london' => array(),
-'lotto' => array(),
-'ltda' => array(),
-'luxe' => array(),
-'luxury' => array(),
-'madrid' => array(),
-'maison' => array(),
-'management' => array(),
-'mango' => array(),
-'market' => array(),
-'marketing' => array(),
-'media' => array(),
-'meet' => array(),
-'melbourne' => array(),
-'meme' => array(),
-'menu' => array(),
-'miami' => array(),
-'mini' => array(),
-'moda' => array(),
-'moe' => array(),
-'monash' => array(),
-'montblanc' => array(),
-'mormon' => array(),
-'mortgage' => array(),
-'moscow' => array(),
-'motorcycles' => array(),
-'mov' => array(),
-'nagoya' => array(),
-'navy' => array(),
-'netbank' => array(),
-'network' => array(),
-'neustar' => array(),
-'new' => array(),
-'nexus' => array(),
-'ngo' => array(),
-'nhk' => array(),
-'ninja' => array(),
-'nissan' => array(),
-'nra' => array(),
-'nrw' => array(),
-'nyc' => array(),
-'okinawa' => array(),
-'ong' => array(),
-'onl' => array(),
-'ooo' => array(),
-'oracle' => array(),
-'organic' => array(),
-'otsuka' => array(),
-'ovh' => array(),
-'paris' => array(),
-'partners' => array(),
-'parts' => array(),
-'pharmacy' => array(),
-'photo' => array(),
-'photography' => array(),
-'photos' => array(),
-'physio' => array(),
-'pics' => array(),
-'pictet' => array(),
-'pictures' => array(),
-'pink' => array(),
-'pizza' => array(),
-'place' => array(),
-'plumbing' => array(),
-'pohl' => array(),
-'poker' => array(),
-'praxi' => array(),
-'press' => array(),
-'prod' => array(),
-'productions' => array(),
-'prof' => array(),
-'properties' => array(),
-'property' => array(),
-'pub' => array(),
-'qpon' => array(),
-'quebec' => array(),
-'realtor' => array(),
-'recipes' => array(),
-'red' => array(),
-'rehab' => array(),
-'reise' => array(),
-'reisen' => array(),
-'ren' => array(),
-'rentals' => array(),
-'repair' => array(),
-'report' => array(),
-'republican' => array(),
-'rest' => array(),
-'restaurant' => array(),
-'reviews' => array(),
-'rich' => array(),
-'rio' => array(),
-'rip' => array(),
-'rocks' => array(),
-'rodeo' => array(),
-'rsvp' => array(),
-'ruhr' => array(),
-'ryukyu' => array(),
-'saarland' => array(),
-'samsung' => array(),
-'sap' => array(),
-'sarl' => array(),
-'sca' => array(),
-'scb' => array(),
-'schmidt' => array(),
-'scholarships' => array(),
-'schule' => array(),
-'scot' => array(),
-'seat' => array(),
-'services' => array(),
-'sew' => array(),
-'sexy' => array(),
-'sharp' => array(),
-'shiksha' => array(),
-'shoes' => array(),
-'shriram' => array(),
-'singles' => array(),
-'sky' => array(),
-'social' => array(),
-'software' => array(),
-'sohu' => array(),
-'solar' => array(),
-'solutions' => array(),
-'soy' => array(),
-'space' => array(),
-'spiegel' => array(),
-'supplies' => array(),
-'supply' => array(),
-'support' => array(),
-'surf' => array(),
-'surgery' => array(),
-'suzuki' => array(),
-'systems' => array(),
-'taipei' => array(),
-'tatar' => array(),
-'tattoo' => array(),
-'tax' => array(),
-'technology' => array(),
-'temasek' => array(),
-'tienda' => array(),
-'tips' => array(),
-'tirol' => array(),
-'today' => array(),
-'tokyo' => array(),
-'tools' => array(),
-'top' => array(),
-'toshiba' => array(),
-'town' => array(),
-'toys' => array(),
-'trade' => array(),
-'training' => array(),
-'tui' => array(),
-'university' => array(),
-'uno' => array(),
-'uol' => array(),
-'vacations' => array(),
-'vegas' => array(),
-'ventures' => array(),
-'versicherung' => array(),
-'vet' => array(),
-'viajes' => array(),
-'villas' => array(),
-'vision' => array(),
-'vlaanderen' => array(),
-'vodka' => array(),
-'vote' => array(),
-'voting' => array(),
-'voto' => array(),
-'voyage' => array(),
-'wales' => array(),
-'wang' => array(),
-'watch' => array(),
-'webcam' => array(),
-'website' => array(),
-'wed' => array(),
-'wedding' => array(),
-'whoswho' => array(),
-'wien' => array(),
-'wiki' => array(),
-'williamhill' => array(),
-'wme' => array(),
-'work' => array(),
-'works' => array(),
-'world' => array(),
-'wtc' => array(),
-'wtf' => array(),
-'佛山' => array(),
-'慈善' => array(),
-'集团' => array(),
-'在线' => array(),
-'八卦' => array(),
-'موقع' => array(),
-'公益' => array(),
-'公司' => array(),
-'移动' => array(),
-'我爱你' => array(),
-'москва' => array(),
-'онлайн' => array(),
-'сайт' => array(),
-'时尚' => array(),
-'淡马锡' => array(),
-'орг' => array(),
-'삼성' => array(),
-'商标' => array(),
-'商店' => array(),
-'商城' => array(),
-'дети' => array(),
-'新闻' => array(),
-'中文网' => array(),
-'中信' => array(),
-'娱乐' => array(),
-'谷歌' => array(),
-'网店' => array(),
-'संगठन' => array(),
-'网络' => array(),
-'手机' => array(),
-'بازار' => array(),
-'政府' => array(),
-'شبكة' => array(),
-'机构' => array(),
-'组织机构' => array(),
-'рус' => array(),
-'みんな' => array(),
-'グーグル' => array(),
-'世界' => array(),
-'网址' => array(),
-'游戏' => array(),
-'vermögensberater' => array(),
-'vermögensberatung' => array(),
-'企业' => array(),
-'广东' => array(),
-'政务' => array(),
-'xyz' => array(),
-'yachts' => array(),
-'yandex' => array(),
-'yoga' => array(),
-'yokohama' => array(),
-'youtube' => array(),
-'zip' => array(),
-'zone' => array());
diff --git a/Postman/Postman-Connectivity-Test/registered-domain-libs-master/PHP/regDomain.class.php b/Postman/Postman-Connectivity-Test/registered-domain-libs-master/PHP/regDomain.class.php
deleted file mode 100644
index ffe492e..0000000
--- a/Postman/Postman-Connectivity-Test/registered-domain-libs-master/PHP/regDomain.class.php
+++ /dev/null
@@ -1,120 +0,0 @@
-<?php
-
-/*
- * Calculate the effective registered domain of a fully qualified domain name.
- *
- * <@LICENSE>
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to you under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at:
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * </@LICENSE>
- *
- * Florian Sager, 25.07.2008, sager@agitos.de, http://www.agitos.de
- */
-
-/*
- * Remove subdomains from a signing domain to get the registered domain.
- *
- * dkim-reputation.org blocks signing domains on the level of registered domains
- * to rate senders who use e.g. a.spamdomain.tld, b.spamdomain.tld, ... under
- * the most common identifier - the registered domain - finally.
- *
- * This function returns NULL if $signingDomain is TLD itself
- *
- * $signingDomain has to be provided lowercase (!)
- */
-
-class regDomain {
- /* tld tree */
- protected $tldTree = array();
-
- /* main function */
- public function getRegisteredDomain($signingDomain, $fallback = TRUE) {
- $signingDomainParts = explode('.', $signingDomain);
-
- $result = $this->findRegisteredDomain($signingDomainParts, $this->tldTree);
-
- if ($result===NULL || $result=="") {
- // this is an invalid domain name
- return NULL;
- }
-
- // assure there is at least 1 TLD in the stripped signing domain
- if (!strpos($result, '.')) {
- if ($fallback===FALSE) {
- return NULL;
- }
- $cnt = count($signingDomainParts);
- if ($cnt==1 || $signingDomainParts[$cnt-2]=="") return NULL;
- if (!$this->validDomainPart($signingDomainParts[$cnt-2]) || !$this->validDomainPart($signingDomainParts[$cnt-1])) return NULL;
- return $signingDomainParts[$cnt-2].'.'.$signingDomainParts[$cnt-1];
- }
- return $result;
- }
-
- /* validate parts */
- public function validDomainPart($domPart) {
- // see http://www.register.com/domain-extension-rules.rcmx
- $len = strlen($domPart);
-
- // not more than 63 characters
- if ($len>63) return FALSE;
-
- // not less than 1 characters --> there are TLD-specific rules that could be considered additionally
- if ($len<1) return FALSE;
-
- // Use only letters, numbers, or hyphen ("-")
- // not beginning or ending with a hypen (this is TLD specific, be aware!)
- if (!preg_match("/^([a-z0-9])(([a-z0-9-])*([a-z0-9]))*$/", $domPart)) return FALSE;
-
- return TRUE;
- }
-
- /* recursive helper method */
- public function findRegisteredDomain($remainingSigningDomainParts, &$treeNode) {
- $sub = array_pop($remainingSigningDomainParts);
-
- $result = NULL;
- if (isset($treeNode['!'])) {
- return '#';
- }
-
- if (!$this->validDomainPart($sub)) {
- return NULL;
- }
-
- if (is_array($treeNode) && array_key_exists($sub, $treeNode)) {
- $result = $this->findRegisteredDomain($remainingSigningDomainParts, $treeNode[$sub]);
- } else if (is_array($treeNode) && array_key_exists('*', $treeNode)) {
- $result = $this->findRegisteredDomain($remainingSigningDomainParts, $treeNode['*']);
- } else {
- return $sub;
- }
-
- // this is a hack 'cause PHP interpretes '' as NULL
- if ($result == '#') {
- return $sub;
- } else if (strlen($result)>0) {
- return $result.'.'.$sub;
- }
- return NULL;
- }
-
- /* load tld tree into object */
- function __construct() {
- /* include tld tree data */
- include(dirname(__FILE__) . '/effectiveTLDs.inc.php');
- }
-
-}
diff --git a/Postman/Postman-Connectivity-Test/registered-domain-libs-master/PHP/regDomain.inc.php b/Postman/Postman-Connectivity-Test/registered-domain-libs-master/PHP/regDomain.inc.php
deleted file mode 100644
index e6b7a2a..0000000
--- a/Postman/Postman-Connectivity-Test/registered-domain-libs-master/PHP/regDomain.inc.php
+++ /dev/null
@@ -1,62 +0,0 @@
-<?php
-
-/*
- * Calculate the effective registered domain of a fully qualified domain name.
- *
- * <@LICENSE>
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to you under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at:
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * </@LICENSE>
- *
- * Florian Sager, 25.07.2008, sager@agitos.de, http://www.agitos.de
- */
-
-/*
- * Remove subdomains from a signing domain to get the registered domain.
- *
- * dkim-reputation.org blocks signing domains on the level of registered domains
- * to rate senders who use e.g. a.spamdomain.tld, b.spamdomain.tld, ... under
- * the most common identifier - the registered domain - finally.
- *
- * This function returns NULL if $signingDomain is TLD itself
- *
- * $signingDomain has to be provided lowercase (!)
- */
-
-/* pull in class */
-require_once (dirname ( __FILE__ ) . '/regDomain.class.php');
-
-/* create global object */
-;
-function getRegisteredDomain($signingDomain, $fallback = TRUE) {
- /* pull in object */
- $regDomainObj = new regDomain ();
- /* return object method */
- return $regDomainObj->getRegisteredDomain ( $signingDomain, $fallback );
-}
-function validDomainPart($domPart) {
- /* pull in object */
- $regDomainObj = new regDomain ();
- /* return object method */
- return $regDomainObj->validDomainPart ( $domPart );
-}
-
-// recursive helper method
-function findRegisteredDomain($remainingSigningDomainParts, &$treeNode) {
- /* pull in object */
- $regDomainObj = new regDomain ();
- /* return object method */
- return $regDomainObj->findRegisteredDomain ( $remainingSigningDomainParts, $treeNode );
-}
diff --git a/Postman/Postman-Connectivity-Test/registered-domain-libs-master/PHP/test-regDomain.php b/Postman/Postman-Connectivity-Test/registered-domain-libs-master/PHP/test-regDomain.php
deleted file mode 100644
index d1cc47c..0000000
--- a/Postman/Postman-Connectivity-Test/registered-domain-libs-master/PHP/test-regDomain.php
+++ /dev/null
@@ -1,51 +0,0 @@
-<?php
-
-/*
- * Calculate the effective registered domain of a fully qualified domain name.
- *
- * <@LICENSE>
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to you under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at:
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * </@LICENSE>
- *
- * Florian Sager, 25.07.2008, sager@agitos.de, http://www.agitos.de
- */
-
-require_once("effectiveTLDs.inc.php");
-require_once("regDomain.inc.php");
-
-if ($_SERVER["argc"]<2) {
- print("test-regDomain.php <(fully-qualified-domain-name )+>\n");
- exit;
-}
-
-// strip subdomains from every signing domain
-// char dom[] = "sub2.sub.registered.nom.ad";
-
-$argc = $_SERVER["argc"];
-$argv = $_SERVER["argv"];
-
-for ($i=1; $i<$argc; $i++) {
-
- $registeredDomain = getRegisteredDomain($argv[$i], $tldTree);
-
- if ( $registeredDomain === NULL ) {
- printf("error: %s\n", $argv[$i]);
- } else {
- printf("%s\n", $registeredDomain);
- }
-}
-
-?>
diff --git a/Postman/Postman-Connectivity-Test/registered-domain-libs-master/README.txt b/Postman/Postman-Connectivity-Test/registered-domain-libs-master/README.txt
deleted file mode 100644
index 9199c9f..0000000
--- a/Postman/Postman-Connectivity-Test/registered-domain-libs-master/README.txt
+++ /dev/null
@@ -1,56 +0,0 @@
-===============================================
-Detection of registered domains by reg-dom libs
-===============================================
-
-The reg-dom libs are available in C, Perl and PHP so far.
-
-They include recent representations of the effective TLD list available at
-http://mxr.mozilla.org/mozilla-central/source/netwerk/dns/effective_tld_names.dat?raw=1
-and help to convert an arbitrary domain name to the registered domain name.
-
-Sample use:
-dkim-reputation.org blocks signing domains on the level of registered domains
-to rate senders who use e.g. a.spamdomain.tld, b.spamdomain.tld, ... under
-the most common identifier - the registered domain - finally.
-Project page: http://www.dkim-reputation.org/regdom-libs/
-
-Pseudo code:
-registeredDomain = getRegisteredDomain(ingoingDomain);
-
-Return values:
-1) NULL if ingoingDomain is a TLD
-2) the registered domain name if TLD is known
-3) just <domain>.<tld> if <tld> is unknown
- This case was added to support new TLDs in outdated reg-dom libs
- by a certain likelihood. This fallback method is implemented in the
- last conversion step and can be simply commented out.
-
----
-
-If you like to regenerate the effective TLD tree structure by yourself
-you can use the script generateEffectiveTLDs.php with the following parameters:
-
-php generateEffectiveTLDs.php php > PHP/effectiveTLDs.inc.php
-php generateEffectiveTLDs.php perl > Perl/effectiveTLDs.pm
-php generateEffectiveTLDs.php c > C/tld-canon.h
-
-
-
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to you under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-# </@LICENSE>
-
-
-Florian Sager, 2009-02-05, sager@agitos.de, http://www.agitos.de
diff --git a/Postman/Postman-Connectivity-Test/registered-domain-libs-master/generateEffectiveTLDs.php b/Postman/Postman-Connectivity-Test/registered-domain-libs-master/generateEffectiveTLDs.php
deleted file mode 100644
index 63acb79..0000000
--- a/Postman/Postman-Connectivity-Test/registered-domain-libs-master/generateEffectiveTLDs.php
+++ /dev/null
@@ -1,213 +0,0 @@
-<?php
-
-/*
- * Florian Sager, 06.08.2008, sager@agitos.de, http://www.agitos.de
- *
- * Auto-Generate PHP array tree that contains all TLDs from the URL (see below);
- * The output has to be copied to reputation-libs/effectiveTLDs.inc.php
- *
- *
- */
-
-header('Content-Type: text/html; charset=utf-8');
-
-DEFINE('URL', 'http://mxr.mozilla.org/mozilla-central/source/netwerk/dns/effective_tld_names.dat?raw=1');
-
-$format = "php";
-if ($_SERVER['argc']>1) {
- if ($_SERVER['argv'][1] == "perl") {
- $format = "perl";
- } else if ($_SERVER['argv'][1] == "c") {
- $format = "c";
- }
-}
-
-/*
- * Does $search start with $startstring?
- */
-function startsWith($search, $startstring) {
- return (substr($search, 0, strlen($startstring))==$startstring);
-}
-
-/*
- * Does $search end with $endstring?
- */
-function endsWith($search, $endstring) {
- return (substr($search, -strlen($endstring))==$endstring);
-}
-
-
-function buildSubdomain(&$node, $tldParts) {
-
- $dom = trim(array_pop($tldParts));
-
- $isNotDomain = FALSE;
- if (startsWith($dom, "!")) {
- $dom = substr($dom, 1);
- $isNotDomain = TRUE;
- }
-
- if (!array_key_exists($dom, $node)) {
- if ($isNotDomain) {
- $node[$dom] = array("!" => "");
- } else {
- $node[$dom] = array();
- }
- }
-
- if (!$isNotDomain && count($tldParts)>0) {
- buildSubdomain($node[$dom], $tldParts);
- }
-}
-
-function printNode($key, $valueTree, $isAssignment = false) {
-
- global $format;
-
- if ($isAssignment) {
- if ($format == "perl") {
- echo "$key = {";
- } else {
- echo "$key = array(";
- }
- } else {
- if (strcmp($key, "!")==0) {
- if ($format == "perl") {
- echo "'!' => {}";
- } else {
- echo "'!' => ''";
- }
- return;
- } else {
- if ($format == "perl") {
- echo "'$key' => {";
- } else {
- echo "'$key' => array(";
- }
- }
- }
-
- $keys = array_keys($valueTree);
-
- for ($i=0; $i<count($keys); $i++) {
-
- $key = $keys[$i];
-
- printNode($key, $valueTree[$key]);
-
- if ($i+1 != count($valueTree)) {
- echo ",\n";
- } else {
- "\n";
- }
- }
-
- if ($format == "perl") {
- echo '}';
- } else {
- echo ')';
- }
-}
-
-// sample: root(3:ac(5:com,edu,gov,net,ad(3:nom,co!,*)),de,com)
-
-function printNode_C($key, $valueTree) {
-
- echo "$key";
-
- $keys = array_keys($valueTree);
-
- if (count($keys)>0) {
-
- if (strcmp($keys['!'], "!")==0) {
- echo "!";
- } else {
-
- echo "(".count($keys).":";
-
- for ($i=0; $i<count($keys); $i++) {
-
- $key = $keys[$i];
-
- // if (count($valueTree[$key])>0) {
- printNode_C($key, $valueTree[$key]);
- // }
-
- if ($i+1 != count($valueTree)) {
- echo ",";
- }
- }
-
- echo ')';
- }
- }
-}
-
-// --- main ---
-
-error_reporting(E_ERROR);
-
-$tldTree = array();
-$list = file_get_contents(URL);
-// $list = "bg\na.bg\n0.bg\n!c.bg\n";
-$lines = explode("\n", $list);
-$licence = TRUE;
-
-if ($format == "php") echo "<?php\n";
-
-foreach ($lines as $line) {
- $line = trim($line);
- if ($line == "") {
- if ($licence) {
- $licence = FALSE;
- echo "\n";
- }
- continue;
- }
- if (startsWith($line, "//")) {
- if ($licence) {
- if ($format == "perl") {
- echo "# ".substr($line, 2)."\n";
- } else {
- echo $line."\n";
- }
- }
- continue;
- }
-
- // this must be a TLD
- $tldParts = preg_split('\.', $line);
- buildSubdomain($tldTree, $tldParts);
-}
-
-// print_r($tldTree);
-
-/*
-$tldTree = array(
- 'de' => array(), // test.agitos.de --> agitos.de
- 'uk' => array(
- 'co' => array(), // test.agitos.co.uk --> agitos.co.uk
- 'xy' => array('!'), // test.agitos.xy.uk --> xy.uk
- '*' => array() // test.agitos.ab.uk --> agitos.ab.uk
- )
-);
-*/
-
-if ($format == "c") {
-
- echo "static const char tldString[] = \"";
- printNode_C("root", $tldTree);
- echo "\";\n\n";
-
-} else {
-
- if ($format == "perl") {
- print "package effectiveTLDs;\n\n";
- }
- printNode("\$tldTree", $tldTree, TRUE);
- echo ";\n";
- if ($format == "php") echo '?>' . "\n";
-
-}
-
-?>