ng_attempts; $rval = $this->contact_service( 'ping', array( 'args' => $vaultpress_pings ) ); if ( $rval || $ping_attempts >= 3 ) break; if ( !$rval ) usleep(500000); } while ( true ); if ( !$rval ) { if ( $this->get_option( 'connection_error_code' ) !== -8 ) { // Do not save pings when the subscription is inactive. $__vp_recursive_ping_lock = true; $this->ai_ping_insert( serialize( $vaultpress_pings ) ); } } $this->reset_pings(); if ( $close_wpdb ) { $wpdb->__destruct(); unset( $wpdb ); } return $rval; } function resolve_content_dir() { // Take the easy way out if ( defined( 'WP_CONTENT_DIR' ) ) { if ( substr( WP_CONTENT_DIR, -1 ) != DIRECTORY_SEPARATOR ) return WP_CONTENT_DIR . DIRECTORY_SEPARATOR; return WP_CONTENT_DIR; } // Best guess if ( defined( 'ABSPATH' ) ) { if ( substr( ABSPATH, -1 ) != DIRECTORY_SEPARATOR ) return ABSPATH . DIRECTORY_SEPARATOR . 'wp-content' . DIRECTORY_SEPARATOR; return ABSPATH . 'wp-content' . DIRECTORY_SEPARATOR; } // Run with a solid assumption: WP_CONTENT_DIR/vaultpress/vaultpress.php return dirname( __DIR__ ) . DIRECTORY_SEPARATOR; } function resolve_upload_path() { $upload_path = false; $upload_dir = wp_upload_dir(); if ( isset( $upload_dir['basedir'] ) ) $upload_path = $upload_dir['basedir']; // Nothing recorded? use a best guess! if ( !$upload_path || $upload_path == realpath( ABSPATH ) ) return $this->resolve_content_dir() . 'uploads' . DIRECTORY_SEPARATOR; if ( substr( $upload_path, -1 ) != DIRECTORY_SEPARATOR ) $upload_path .= DIRECTORY_SEPARATOR; return $upload_path; } function load_first( $value ) { $value = array_unique( $value ); // just in case there are duplicates return array_merge( preg_grep( '/vaultpress\.php$/', $value ), preg_grep( '/vaultpress\.php$/', $value, PREG_GREP_INVERT ) ); } function is_multisite() { if ( function_exists( 'is_multisite' ) ) return is_multisite(); return false; } function is_main_site() { if ( !function_exists( 'is_main_site' ) || !$this->is_multisite() ) return true; return is_main_site(); } function is_registered() { $key = $this->get_option( 'key' ); $secret = $this->get_option( 'secret' ); return !empty( $key ) && !empty( $secret ); } function clear_connection() { $this->delete_option( 'connection' ); $this->delete_option( 'connection_error_code' ); $this->delete_option( 'connection_error_message' ); $this->delete_option( 'connection_test' ); } function site_url() { $site_url = ''; // compatibility for WordPress MU Domain Mapping plugin if ( defined( 'DOMAIN_MAPPING' ) && DOMAIN_MAPPING && ! function_exists( 'domain_mapping_siteurl' ) ) { if ( !function_exists( 'is_plugin_active' ) ) require_once ABSPATH . '/wp-admin/includes/plugin.php'; $plugin = 'wordpress-mu-domain-mapping/domain_mapping.php'; if ( is_plugin_active( $plugin ) ) include_once( WP_PLUGIN_DIR . '/' . $plugin ); } if ( function_exists( 'domain_mapping_siteurl' ) ) $site_url = domain_mapping_siteurl( false ); if ( empty( $site_url ) ) $site_url = site_url(); return $site_url; } /** * Sync the VaultPress options to WordPress.com if the Jetpack plugin is active. */ function sync_jetpack_options() { if ( class_exists( 'Jetpack_Sync' ) && method_exists( 'Jetpack_Sync', 'sync_options' ) && defined( 'JETPACK__VERSION' ) && version_compare( JETPACK__VERSION, '4.1', '<' ) ) { Jetpack_Sync::sync_options( __FILE__, $this->auto_register_option, $this->option_name ); } } /** * Add the VaultPress options to the Jetpack options management whitelist. * Allows Jetpack to register VaultPress options automatically. * * @param array $options The list of whitelisted option names. * * @return array The updated whitelist */ function add_to_jetpack_options_whitelist( $options ) { $options[] = $this->option_name; $options[] = $this->auto_register_option; return $options; } /** * When the VaultPress auto-register option is updated, run the registration call. * * This should only be run when the option is updated from the Jetpack/WP.com * API call, and only if the new key is different than the old key. * * @param mixed $old_value The old option value, or the option name (if add_option). * @param mixed $value The new option value. */ function updated_auto_register_option( $old_value, $value ) { // Not an API call or CLI call if ( ! class_exists( 'WPCOM_JSON_API_Update_Option_Endpoint' ) && ! ( defined( 'WP_CLI' ) && WP_CLI ) ) { return; } remove_action( "update_option_{$this->auto_register_option}", array( $this, 'updated_auto_register_option' ) ); $defaults = array( 'key' => false, 'action' => 'register', // or `response` 'status' => 'working', 'error' => false, ); // `wp_parse_args` uses arrays, might as well be explicit about it. $registration = (array) json_decode( $value ); $registration = wp_parse_args( $registration, $defaults ); // If we have a working connection, don't update the key. if ( $this->check_connection( true ) ) { $registration['action'] = 'response'; $registration['error'] = 'VaultPress is already registered on this site.'; update_option( $this->auto_register_option, json_encode( $registration ) ); return; } if ( ! $registration['key'] ) { return; } $registration['action'] = 'response'; $response = $this->register( $registration['key'] ); if ( is_wp_error( $response ) ) { $registration['status'] = 'broken'; $registration['error'] = $response->get_error_message(); } else if ( $this->get_option( 'connection_error_code' ) ) { $registration['status'] = 'broken'; $registration['error'] = $this->get_option( 'connection_error_message' ); } else { $registration['error'] = false; } update_option( $this->auto_register_option, json_encode( $registration ) ); } function add_global_actions_and_filters() { add_action( 'init', array( $this, 'sync_jetpack_options' ), 0, 99 ); add_filter( 'jetpack_options_whitelist', array( $this, 'add_to_jetpack_options_whitelist' ) ); add_action( "update_option_{$this->auto_register_option}", array( $this, 'updated_auto_register_option' ), 10, 2 ); add_action( "add_option_{$this->auto_register_option}", array( $this, 'updated_auto_register_option' ), 10, 2 ); add_action( 'admin_enqueue_scripts', array( $this, 'styles' ) ); } function add_admin_actions_and_filters() { add_action( 'admin_init', array( $this, 'admin_init' ) ); add_action( 'admin_menu', array( $this, 'admin_menu' ), 5 ); # Priority 5, so it's called before Jetpack's admin_menu. add_action( 'admin_head', array( $this, 'admin_head' ) ); } function add_listener_actions_and_filters() { add_action( 'admin_bar_menu', array( $this, 'toolbar' ), 999 ); // Comments add_action( 'delete_comment', array( $this, 'comment_action_handler' ) ); add_action( 'wp_set_comment_status', array( $this, 'comment_action_handler' ) ); add_action( 'trashed_comment', array( $this, 'comment_action_handler' ) ); add_action( 'untrashed_comment', array( $this, 'comment_action_handler' ) ); add_action( 'wp_insert_comment', array( $this, 'comment_action_handler' ) ); add_action( 'comment_post', array( $this, 'comment_action_handler' ) ); add_action( 'edit_comment', array( $this, 'comment_action_handler' ) ); // Commentmeta add_action( 'added_comment_meta', array( $this, 'commentmeta_insert_handler' ), 10, 2 ); add_action( 'updated_comment_meta', array( $this, 'commentmeta_modification_handler' ), 10, 4 ); add_action( 'deleted_comment_meta', array( $this, 'commentmeta_modification_handler' ), 10, 4 ); // Users if ( $this->is_main_site() ) { add_action( 'user_register', array( $this, 'userid_action_handler' ) ); add_action( 'password_reset', array( $this, 'userid_action_handler' ) ); add_action( 'profile_update', array( $this, 'userid_action_handler' ) ); add_action( 'user_register', array( $this, 'userid_action_handler' ) ); add_action( 'deleted_user', array( $this, 'userid_action_handler' ) ); } // Usermeta if ( $this->is_main_site() ) { // Keeping these action hooks for backward compatibility add_action( 'added_usermeta', array( $this, 'usermeta_action_handler' ), 10, 4 ); add_action( 'update_usermeta', array( $this, 'usermeta_action_handler' ), 10, 4 ); add_action( 'delete_usermeta', array( $this, 'usermeta_action_handler' ), 10, 4 ); add_action( 'added_user_meta', array( $this, 'usermeta_action_handler' ), 10, 4 ); add_action( 'update_user_meta', array( $this, 'usermeta_action_handler' ), 10, 4 ); add_action( 'delete_user_meta', array( $this, 'usermeta_action_handler' ), 10, 4 ); } // Posts add_action( 'delete_post', array( $this, 'post_action_handler' ) ); add_action( 'trash_post', array( $this, 'post_action_handler' ) ); add_action( 'untrash_post', array( $this, 'post_action_handler' ) ); add_action( 'edit_post', array( $this, 'post_action_handler' ) ); add_action( 'save_post', array( $this, 'post_action_handler' ) ); add_action( 'wp_insert_post', array( $this, 'post_action_handler' ) ); add_action( 'edit_attachment', array( $this, 'post_action_handler' ) ); add_action( 'add_attachment', array( $this, 'post_action_handler' ) ); add_action( 'delete_attachment', array( $this, 'post_action_handler' ) ); add_action( 'private_to_publish', array( $this, 'post_action_handler' ) ); add_action( 'wp_restore_post_revision', array( $this, 'post_action_handler' ) ); // Postmeta add_action( 'added_post_meta', array( $this, 'postmeta_insert_handler' ), 10, 4 ); add_action( 'update_post_meta', array( $this, 'postmeta_modification_handler' ), 10, 4 ); add_action( 'updated_post_meta', array( $this, 'postmeta_modification_handler' ), 10, 4 ); add_action( 'delete_post_meta', array( $this, 'postmeta_modification_handler' ), 10, 4 ); add_action( 'deleted_post_meta', array( $this, 'postmeta_modification_handler' ), 10, 4 ); add_action( 'added_postmeta', array( $this, 'postmeta_action_handler' ), 10, 3 ); add_action( 'update_postmeta', array( $this, 'postmeta_action_handler' ), 10, 3 ); add_action( 'delete_postmeta', array( $this, 'postmeta_action_handler' ), 10, 3 ); // Links add_action( 'edit_link', array( $this, 'link_action_handler' ) ); add_action( 'add_link', array( $this, 'link_action_handler' ) ); add_action( 'delete_link', array( $this, 'link_action_handler' ) ); // Taxonomy add_action( 'created_term', array( $this, 'term_handler' ), 2 ); add_action( 'edited_terms', array( $this, 'term_handler' ), 2 ); add_action( 'delete_term', array( $this, 'term_handler' ), 2 ); add_action( 'edit_term_taxonomy', array( $this, 'term_taxonomy_handler' ) ); add_action( 'delete_term_taxonomy', array( $this, 'term_taxonomy_handler' ) ); add_action( 'edit_term_taxonomies', array( $this, 'term_taxonomies_handler' ) ); add_action( 'add_term_relationship', array( $this, 'term_relationship_handler' ), 10, 2 ); add_action( 'delete_term_relationships', array( $this, 'term_relationships_handler' ), 10, 2 ); add_action( 'set_object_terms', array( $this, 'set_object_terms_handler' ), 10, 3 ); // Files if ( $this->is_main_site() ) { add_action( 'switch_theme', array( $this, 'theme_action_handler' ) ); add_action( 'activate_plugin', array( $this, 'plugin_action_handler' ) ); add_action( 'deactivate_plugin', array( $this, 'plugin_action_handler' ) ); } add_action( 'wp_handle_upload', array( $this, 'upload_handler' ) ); // Options add_action( 'deleted_option', array( $this, 'option_handler' ), 1 ); add_action( 'updated_option', array( $this, 'option_handler' ), 1 ); add_action( 'added_option', array( $this, 'option_handler' ), 1 ); $this->add_woocommerce_actions(); $this->add_vp_required_filters(); } function add_woocommerce_actions() { add_action( 'woocommerce_tax_rate_deleted', array( $this, 'woocommerce_tax_rate_handler' ), 10, 1 ); add_action( 'woocommerce_tax_rate_updated', array( $this, 'woocommerce_tax_rate_handler' ), 10, 1 ); add_action( 'woocommerce_tax_rate_added', array( $this, 'woocommerce_tax_rate_handler' ), 10, 1 ); add_action( 'woocommerce_new_order_item', array( $this, 'woocommerce_order_item_handler' ), 10, 1 ); add_action( 'woocommerce_update_order_item', array( $this, 'woocommerce_order_item_handler' ), 10, 1 ); add_action( 'woocommerce_delete_order_item', array( $this, 'woocommerce_order_item_handler' ), 10, 1 ); add_action( 'added_order_item_meta', array( $this, 'woocommerce_order_item_meta_handler' ), 10, 1 ); add_action( 'updated_order_item_meta', array( $this, 'woocommerce_order_item_meta_handler' ), 10, 1 ); add_action( 'deleted_order_item_meta', array( $this, 'woocommerce_order_item_meta_handler' ), 10, 1 ); add_action( 'woocommerce_attribute_added', array( $this, 'woocommerce_attribute_handler' ), 10, 1 ); add_action( 'woocommerce_attribute_updated', array( $this, 'woocommerce_attribute_handler' ), 10, 1 ); add_action( 'woocommerce_attribute_deleted', array( $this, 'woocommerce_attribute_handler' ), 10, 1 ); } function add_vp_required_filters() { // Log ins if ( $this->get_option( 'login_lockdown' ) ) { add_action( 'login_form', array( $this, 'add_js_token' ) ); add_filter( 'authenticate', array( $this, 'authenticate' ), 999 ); } // Report back to VaultPress add_action( 'shutdown', array( $this, 'do_pings' ) ); // VaultPress likes being first in line add_filter( 'pre_update_option_active_plugins', array( $this, 'load_first' ) ); } function get_jetpack_email() { if ( ! class_exists( 'Jetpack' ) ) { return false; } // For version of Jetpack prior to 7.7. if ( defined( 'JETPACK__VERSION' ) && version_compare( JETPACK__VERSION, '7.7', '<' ) && ! class_exists( 'Jetpack_IXR_Client' ) ) { Jetpack::load_xml_rpc_client(); } $xml = new Jetpack_IXR_Client( array( 'user_id' => get_current_user_id() ) ); $xml->query( 'wpcom.getUserEmail' ); if ( ! $xml->isError() ) { return $xml->getResponse(); } return new WP_Error( $xml->getErrorCode(), $xml->getErrorMessage() ); } function get_key_via_jetpack( $already_purchased = false ) { if ( ! class_exists( 'Jetpack' ) ) { return false; } // For version of Jetpack prior to 7.7. if ( defined( 'JETPACK__VERSION' ) && version_compare( JETPACK__VERSION, '7.7', '<' ) && ! class_exists( 'Jetpack_IXR_Client' ) ) { Jetpack::load_xml_rpc_client(); } $xml = new Jetpack_IXR_Client( array( 'user_id' => Jetpack_Options::get_option( 'master_user' ) ) ); $xml->query( 'vaultpress.registerSite', $already_purchased ); if ( ! $xml->isError() ) { return $xml->getResponse(); } return new WP_Error( $xml->getErrorCode(), $xml->getErrorMessage() ); } function register_via_jetpack( $already_purchased = false ) { $registration_key = $this->get_key_via_jetpack( $already_purchased ); if ( is_wp_error( $registration_key ) ) { return $registration_key; } return self::register( $registration_key ); } } $vaultpress = VaultPress::init(); if ( isset( $_GET['vaultpress'] ) && $_GET['vaultpress'] ) { if ( !function_exists( 'wp_magic_quotes' ) ) { // Escape with wpdb. $_GET = add_magic_quotes( $_GET ); $_POST = add_magic_quotes( $_POST ); $_COOKIE = add_magic_quotes( $_COOKIE ); $_SERVER = add_magic_quotes( $_SERVER ); // Force REQUEST to be GET + POST. If SERVER, COOKIE, or ENV are needed, use those superglobals directly. $_REQUEST = array_merge( $_GET, $_POST ); } else { wp_magic_quotes(); } if ( !function_exists( 'wp_get_current_user' ) ) include ABSPATH . '/wp-includes/pluggable.php'; // TODO: this prevents some error notices but do we need it? is there a better way to check capabilities/logged in user/etc? if ( function_exists( 'wp_cookie_constants' ) && !defined( 'AUTH_COOKIE' ) ) wp_cookie_constants(); $vaultpress->parse_request( null ); die(); } // only load hotfixes if it's not a VP request require_once __DIR__ . '/class.vaultpress-hotfixes.php'; $hotfixes = new VaultPress_Hotfixes(); // Add a helper method to WP CLI for auto-registerion via Jetpack if ( defined( 'WP_CLI' ) && WP_CLI ) { require_once __DIR__ . '/class.vaultpress-cli.php'; } require_once __DIR__ . '/cron-tasks.php'; {"id":4285499,"date":"2022-04-21T23:53:04","date_gmt":"2022-04-22T03:53:04","guid":{"rendered":"http:\/\/specpals.com\/html_parser\/ians_download.php?param=C-1-1465883-1"},"modified":"2022-04-22T02:10:35","modified_gmt":"2022-04-22T06:10:35","slug":"kim-jong-un-outgoing-s-korean-prez-exchange-letters","status":"publish","type":"post","link":"https:\/\/www.socialnews.xyz\/2022\/04\/21\/kim-jong-un-outgoing-s-korean-prez-exchange-letters\/","title":{"rendered":"Kim Jong-un, outgoing S.Korean Prez exchange letters"},"content":{"rendered":"

\"Kim<\/a><\/p>\n

Seoul, April 22 (SocialNews.XYZ)<\/strong> North Korean leader Kim Jong-un and South Korea's outgoing President Moon Jae-in have exchanged letters in an \"expression of their deep trust\", Pyongyang's state media reported on Friday.<\/p>\n

Kim sent the letter on Thursday in response to a farewell letter that Moon sent the previous day as he prepared to leave office after a five-year term that included three summit meetings with the North Korean leader and two summits between Kim and former US President Donald Trump, reports Yonhap News Agency.<\/p>\n

Moon's five-year term is set to end May 9.<\/p>\n

\"Sharing the same view that the inter-Korean relations would improve and develop as desired and anticipated by the nation if the North and the South make tireless efforts with hope, the top leaders mutually extended warm greetings to the compatriots in the North and the South,\" North's official Korean Central News Agency (KCNA) said in a report.<\/p>\n

In his letter, Moon expressed his intention of supporting efforts to make the joint declarations issued by the two Koreas the foundation for reunification even after his retirement, as Kim appreciated what the president has done for the \"great cause of the nation\", according to the KCNA.<\/p>\n

\"The exchange of the personal letters between the top leaders of the North and the South is an expression of their deep trust,\" it added.<\/p>\n

Meanwhile, South Korea's presidential office, Cheong Wa Dae, said on Friday that Kim in his letter wished that inter-Korean relations can improve as much as one wants if both sides make sincere efforts.<\/p>\n

\"Though much is left desired, my belief remains unchanged that if the South and the North pour sincerity in based on efforts made so far, inter-Korean relations can move forward as much as one wants,\" the North Korean leader was quoted as saying in the letter.<\/p>\n

Kim also agreed that the two sides made \"indelible achievements\".<\/p>\n

Moon and Kim held three rounds of bilateral summit talks. They first met at the truce border village of Panmunjom in April 2018, where they signed the \"Panmunjom Declaration\" that calls for the two Koreas to cooperate in reducing tensions.<\/p>\n

They met again at Panmunjom the following month, followed by talks in Pyongyang in September, during which they signed another agreement to explore ways to further advance cooperation.<\/p>\n

Inter-Korean dialogue, however, has remained at a standstill since the 2019 Hanoi summit between Kim and Trump ended without a deal.<\/p>\n

The exchange of letters came amid heightened tensions over concern that the North could undertake yet another nuclear test after successfully test-firing a massive intercontinental ballistic missile capable of reaching the United States.<\/p>\n

Source: IANS<\/p>\n","protected":false},"excerpt":{"rendered":"

Seoul, April 22 (SocialNews.XYZ) North Korean leader Kim Jong-un and South Korea’s outgoing President Moon Jae-in have exchanged letters in an “expression of their deep trust”, Pyongyang’s state media reported on Friday. Kim sent the…<\/p>\n","protected":false},"author":1,"featured_media":4285601,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"Kim Jong-un, outgoing S.Korean Prez exchange letters\n #KimJong #SKoreanPrez #socialnewsxyz","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false}}},"categories":[172,1],"tags":[],"better_featured_image":{"id":4285601,"alt_text":"Seoul : South Korean President Moon Jae-in (R) and his North Korean counterpart Kim Jong-un shake hands.(Yonhap\/IANS)","caption":"Seoul : South Korean President Moon Jae-in (R) and his North Korean counterpart Kim Jong-un shake hands.(Yonhap\/IANS)","description":"","media_type":"image","media_details":{"width":962,"height":518,"file":"2022\/04\/22\/870e695981933ff68db8a62a353151ad-1.jpg","sizes":{"thumbnail":{"file":"870e695981933ff68db8a62a353151ad-1-150x150c.jpg","width":150,"height":150,"source_url":"https:\/\/i0.wp.com\/www.socialnews.xyz\/wp-content\/uploads\/2022\/04\/22\/870e695981933ff68db8a62a353151ad-1.jpg?resize=150%2C150&quality=80&zoom=1&ssl=1"},"medium":{"file":"870e695981933ff68db8a62a353151ad-1-300x162.jpg","width":300,"height":162,"source_url":"https:\/\/i0.wp.com\/www.socialnews.xyz\/wp-content\/uploads\/2022\/04\/22\/870e695981933ff68db8a62a353151ad-1.jpg?fit=300%2C162&quality=80&zoom=1&ssl=1"},"admin-thumbs":{"file":"870e695981933ff68db8a62a353151ad-1-100x54.jpg","width":100,"height":54,"source_url":"https:\/\/i0.wp.com\/www.socialnews.xyz\/wp-content\/uploads\/2022\/04\/22\/870e695981933ff68db8a62a353151ad-1.jpg?fit=100%2C54&quality=80&zoom=1&ssl=1"},"content-single":{"file":"870e695981933ff68db8a62a353151ad-1-777x437c.jpg","width":777,"height":437,"source_url":"https:\/\/i0.wp.com\/www.socialnews.xyz\/wp-content\/uploads\/2022\/04\/22\/870e695981933ff68db8a62a353151ad-1.jpg?resize=777%2C437&quality=80&zoom=1&ssl=1"},"content-list":{"file":"870e695981933ff68db8a62a353151ad-1-260x146c.jpg","width":260,"height":146,"source_url":"https:\/\/i0.wp.com\/www.socialnews.xyz\/wp-content\/uploads\/2022\/04\/22\/870e695981933ff68db8a62a353151ad-1.jpg?resize=260%2C146&quality=80&zoom=1&ssl=1"},"home-thumbnail":{"file":"870e695981933ff68db8a62a353151ad-1-360x165c.jpg","width":360,"height":165,"source_url":"https:\/\/i0.wp.com\/www.socialnews.xyz\/wp-content\/uploads\/2022\/04\/22\/870e695981933ff68db8a62a353151ad-1.jpg?resize=360%2C165&quality=80&zoom=1&ssl=1"},"cp-thumb-small":{"file":"870e695981933ff68db8a62a353151ad-1-75x50c.jpg","width":75,"height":50,"source_url":"https:\/\/i0.wp.com\/www.socialnews.xyz\/wp-content\/uploads\/2022\/04\/22\/870e695981933ff68db8a62a353151ad-1.jpg?resize=75%2C50&quality=80&zoom=1&ssl=1"},"rpwe-thumbnail":{"file":"870e695981933ff68db8a62a353151ad-1-45x45c.jpg","width":45,"height":45,"source_url":"https:\/\/i0.wp.com\/www.socialnews.xyz\/wp-content\/uploads\/2022\/04\/22\/870e695981933ff68db8a62a353151ad-1.jpg?resize=45%2C45&quality=80&zoom=1&ssl=1"}},"image_meta":{"aperture":"0","credit":"IANS","camera":"","caption":"Seoul : South Korean President Moon Jae-in (R) and his North Korean counterpart Kim Jong-un shake hands.(Yonhap\/IANS)","created_timestamp":"1650623043","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"Seoul : South Korean President Moon Jae-in (R) and his North Korean counterpart Kim Jong-un shake hands.(Yonhap\/IANS)","orientation":"0","keywords":["Seoul,Moon Jae-in,Kim Jong-un,"]}},"post":4285499,"source_url":"https:\/\/www.socialnews.xyz\/wp-content\/uploads\/2022\/04\/22\/870e695981933ff68db8a62a353151ad-1.jpg"},"jetpack_publicize_connections":[],"yoast_head":"\nKim Jong-un, outgoing S.Korean Prez exchange letters - Social News XYZ<\/title>\n<meta name=\"description\" content=\"Seoul, April 22 (SocialNews.XYZ) North Korean leader Kim Jong-un and South Korea's outgoing President Moon Jae-in have exchanged letters in an "expression of their deep trust", Pyongyang's state media reported on Friday. Kim sent the... - Social News XYZ\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.socialnews.xyz\/2022\/04\/21\/kim-jong-un-outgoing-s-korean-prez-exchange-letters\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Kim Jong-un, outgoing S.Korean Prez exchange letters - Social News XYZ\" \/>\n<meta property=\"og:description\" content=\"Seoul, April 22 (SocialNews.XYZ) North Korean leader Kim Jong-un and South Korea's outgoing President Moon Jae-in have exchanged letters in an "expression of their deep trust", Pyongyang's state media reported on Friday. Kim sent the... - Social News XYZ\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.socialnews.xyz\/2022\/04\/21\/kim-jong-un-outgoing-s-korean-prez-exchange-letters\/\" \/>\n<meta property=\"og:site_name\" content=\"Social News XYZ\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/socialnewsxyz\/\" \/>\n<meta property=\"article:published_time\" content=\"2022-04-22T03:53:04+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-04-22T06:10:35+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/i0.wp.com\/www.socialnews.xyz\/wp-content\/uploads\/2022\/04\/22\/870e695981933ff68db8a62a353151ad-1.jpg?fit=962%2C518&quality=80&zoom=1&ssl=1\" \/>\n\t<meta property=\"og:image:width\" content=\"962\" \/>\n\t<meta property=\"og:image:height\" content=\"518\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Gopi\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@https:\/\/twitter.com\/agk4444\" \/>\n<meta name=\"twitter:site\" content=\"@Social_News_XYZ\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Gopi\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"NewsArticle\",\"@id\":\"https:\/\/www.socialnews.xyz\/2022\/04\/21\/kim-jong-un-outgoing-s-korean-prez-exchange-letters\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.socialnews.xyz\/2022\/04\/21\/kim-jong-un-outgoing-s-korean-prez-exchange-letters\/\"},\"author\":{\"name\":\"Gopi\",\"@id\":\"https:\/\/www.socialnews.xyz\/#\/schema\/person\/0128fee9d22643f97e445badb789aaba\"},\"headline\":\"Kim Jong-un, outgoing S.Korean Prez exchange letters\",\"datePublished\":\"2022-04-22T03:53:04+00:00\",\"dateModified\":\"2022-04-22T06:10:35+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.socialnews.xyz\/2022\/04\/21\/kim-jong-un-outgoing-s-korean-prez-exchange-letters\/\"},\"wordCount\":441,\"publisher\":{\"@id\":\"https:\/\/www.socialnews.xyz\/#organization\"},\"articleSection\":[\"International\",\"Politics\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.socialnews.xyz\/2022\/04\/21\/kim-jong-un-outgoing-s-korean-prez-exchange-letters\/\",\"url\":\"https:\/\/www.socialnews.xyz\/2022\/04\/21\/kim-jong-un-outgoing-s-korean-prez-exchange-letters\/\",\"name\":\"Kim Jong-un, outgoing S.Korean Prez exchange letters - Social News XYZ\",\"isPartOf\":{\"@id\":\"https:\/\/www.socialnews.xyz\/#website\"},\"datePublished\":\"2022-04-22T03:53:04+00:00\",\"dateModified\":\"2022-04-22T06:10:35+00:00\",\"description\":\"Seoul, April 22 (SocialNews.XYZ) North Korean leader Kim Jong-un and South Korea's outgoing President Moon Jae-in have exchanged letters in an "expression of their deep trust", Pyongyang's state media reported on Friday. Kim sent the... - Social News XYZ\",\"breadcrumb\":{\"@id\":\"https:\/\/www.socialnews.xyz\/2022\/04\/21\/kim-jong-un-outgoing-s-korean-prez-exchange-letters\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.socialnews.xyz\/2022\/04\/21\/kim-jong-un-outgoing-s-korean-prez-exchange-letters\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.socialnews.xyz\/2022\/04\/21\/kim-jong-un-outgoing-s-korean-prez-exchange-letters\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.socialnews.xyz\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"International\",\"item\":\"https:\/\/www.socialnews.xyz\/category\/international\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Kim Jong-un, outgoing S.Korean Prez exchange letters\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.socialnews.xyz\/#website\",\"url\":\"https:\/\/www.socialnews.xyz\/\",\"name\":\"Social News XYZ\",\"description\":\"The Millennial Media\",\"publisher\":{\"@id\":\"https:\/\/www.socialnews.xyz\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.socialnews.xyz\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.socialnews.xyz\/#organization\",\"name\":\"AGK FIRE INC (DBA: Social News XYZ)\",\"url\":\"https:\/\/www.socialnews.xyz\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.socialnews.xyz\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/i0.wp.com\/www.socialnews.xyz\/wp-content\/uploads\/2016\/07\/12\/Social-News-XYZ.jpg?fit=512%2C512&quality=80&zoom=1&ssl=1\",\"contentUrl\":\"https:\/\/i0.wp.com\/www.socialnews.xyz\/wp-content\/uploads\/2016\/07\/12\/Social-News-XYZ.jpg?fit=512%2C512&quality=80&zoom=1&ssl=1\",\"width\":512,\"height\":512,\"caption\":\"AGK FIRE INC (DBA: Social News XYZ)\"},\"image\":{\"@id\":\"https:\/\/www.socialnews.xyz\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/socialnewsxyz\/\",\"https:\/\/twitter.com\/Social_News_XYZ\",\"https:\/\/www.instagram.com\/socialnewsxyz\/\",\"https:\/\/www.linkedin.com\/company\/socialnewsxyz\/\",\"https:\/\/www.pinterest.com\/socialnewsxyz\/\",\"https:\/\/www.youtube.com\/socialnewsxyz\/\",\"https:\/\/flipboard.com\/@SocialNewsXYZ\",\"https:\/\/news.google.com\/publications\/CAAqKQgKIiNDQklTRkFnTWFoQUtEbk52WTJsaGJHNWxkM011ZUhsNktBQVAB?ceid=US:en&oc=3\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.socialnews.xyz\/#\/schema\/person\/0128fee9d22643f97e445badb789aaba\",\"name\":\"Gopi\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.socialnews.xyz\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/a529f8b3731b5abf1f9994aa34434368?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/a529f8b3731b5abf1f9994aa34434368?s=96&d=mm&r=g\",\"caption\":\"Gopi\"},\"description\":\"Gopi Adusumilli is a Programmer. He is the editor of SocialNews.XYZ and President of AGK Fire Inc. He enjoys designing websites, developing mobile applications and publishing news articles on current events from various authenticated news sources. When it comes to writing he likes to write about current world politics and Indian Movies. His future plans include developing SocialNews.XYZ into a News website that has no bias or judgment towards any. He can be reached at gopi@socialnews.xyz\",\"sameAs\":[\"https:\/\/www.socialnews.xyz\",\"https:\/\/twitter.com\/https:\/\/twitter.com\/agk4444\"],\"url\":\"https:\/\/www.socialnews.xyz\/author\/gopi\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Kim Jong-un, outgoing S.Korean Prez exchange letters - Social News XYZ","description":"Seoul, April 22 (SocialNews.XYZ) North Korean leader Kim Jong-un and South Korea's outgoing President Moon Jae-in have exchanged letters in an "expression of their deep trust", Pyongyang's state media reported on Friday. Kim sent the... - Social News XYZ","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.socialnews.xyz\/2022\/04\/21\/kim-jong-un-outgoing-s-korean-prez-exchange-letters\/","og_locale":"en_US","og_type":"article","og_title":"Kim Jong-un, outgoing S.Korean Prez exchange letters - Social News XYZ","og_description":"Seoul, April 22 (SocialNews.XYZ) North Korean leader Kim Jong-un and South Korea's outgoing President Moon Jae-in have exchanged letters in an "expression of their deep trust", Pyongyang's state media reported on Friday. Kim sent the... - Social News XYZ","og_url":"https:\/\/www.socialnews.xyz\/2022\/04\/21\/kim-jong-un-outgoing-s-korean-prez-exchange-letters\/","og_site_name":"Social News XYZ","article_publisher":"https:\/\/www.facebook.com\/socialnewsxyz\/","article_published_time":"2022-04-22T03:53:04+00:00","article_modified_time":"2022-04-22T06:10:35+00:00","og_image":[{"width":962,"height":518,"url":"https:\/\/i0.wp.com\/www.socialnews.xyz\/wp-content\/uploads\/2022\/04\/22\/870e695981933ff68db8a62a353151ad-1.jpg?fit=962%2C518&quality=80&zoom=1&ssl=1","type":"image\/jpeg"}],"author":"Gopi","twitter_card":"summary_large_image","twitter_creator":"@https:\/\/twitter.com\/agk4444","twitter_site":"@Social_News_XYZ","twitter_misc":{"Written by":"Gopi","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"NewsArticle","@id":"https:\/\/www.socialnews.xyz\/2022\/04\/21\/kim-jong-un-outgoing-s-korean-prez-exchange-letters\/#article","isPartOf":{"@id":"https:\/\/www.socialnews.xyz\/2022\/04\/21\/kim-jong-un-outgoing-s-korean-prez-exchange-letters\/"},"author":{"name":"Gopi","@id":"https:\/\/www.socialnews.xyz\/#\/schema\/person\/0128fee9d22643f97e445badb789aaba"},"headline":"Kim Jong-un, outgoing S.Korean Prez exchange letters","datePublished":"2022-04-22T03:53:04+00:00","dateModified":"2022-04-22T06:10:35+00:00","mainEntityOfPage":{"@id":"https:\/\/www.socialnews.xyz\/2022\/04\/21\/kim-jong-un-outgoing-s-korean-prez-exchange-letters\/"},"wordCount":441,"publisher":{"@id":"https:\/\/www.socialnews.xyz\/#organization"},"articleSection":["International","Politics"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.socialnews.xyz\/2022\/04\/21\/kim-jong-un-outgoing-s-korean-prez-exchange-letters\/","url":"https:\/\/www.socialnews.xyz\/2022\/04\/21\/kim-jong-un-outgoing-s-korean-prez-exchange-letters\/","name":"Kim Jong-un, outgoing S.Korean Prez exchange letters - Social News XYZ","isPartOf":{"@id":"https:\/\/www.socialnews.xyz\/#website"},"datePublished":"2022-04-22T03:53:04+00:00","dateModified":"2022-04-22T06:10:35+00:00","description":"Seoul, April 22 (SocialNews.XYZ) North Korean leader Kim Jong-un and South Korea's outgoing President Moon Jae-in have exchanged letters in an "expression of their deep trust", Pyongyang's state media reported on Friday. Kim sent the... - Social News XYZ","breadcrumb":{"@id":"https:\/\/www.socialnews.xyz\/2022\/04\/21\/kim-jong-un-outgoing-s-korean-prez-exchange-letters\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.socialnews.xyz\/2022\/04\/21\/kim-jong-un-outgoing-s-korean-prez-exchange-letters\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.socialnews.xyz\/2022\/04\/21\/kim-jong-un-outgoing-s-korean-prez-exchange-letters\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.socialnews.xyz\/"},{"@type":"ListItem","position":2,"name":"International","item":"https:\/\/www.socialnews.xyz\/category\/international\/"},{"@type":"ListItem","position":3,"name":"Kim Jong-un, outgoing S.Korean Prez exchange letters"}]},{"@type":"WebSite","@id":"https:\/\/www.socialnews.xyz\/#website","url":"https:\/\/www.socialnews.xyz\/","name":"Social News XYZ","description":"The Millennial Media","publisher":{"@id":"https:\/\/www.socialnews.xyz\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.socialnews.xyz\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.socialnews.xyz\/#organization","name":"AGK FIRE INC (DBA: Social News XYZ)","url":"https:\/\/www.socialnews.xyz\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.socialnews.xyz\/#\/schema\/logo\/image\/","url":"https:\/\/i0.wp.com\/www.socialnews.xyz\/wp-content\/uploads\/2016\/07\/12\/Social-News-XYZ.jpg?fit=512%2C512&quality=80&zoom=1&ssl=1","contentUrl":"https:\/\/i0.wp.com\/www.socialnews.xyz\/wp-content\/uploads\/2016\/07\/12\/Social-News-XYZ.jpg?fit=512%2C512&quality=80&zoom=1&ssl=1","width":512,"height":512,"caption":"AGK FIRE INC (DBA: Social News XYZ)"},"image":{"@id":"https:\/\/www.socialnews.xyz\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/socialnewsxyz\/","https:\/\/twitter.com\/Social_News_XYZ","https:\/\/www.instagram.com\/socialnewsxyz\/","https:\/\/www.linkedin.com\/company\/socialnewsxyz\/","https:\/\/www.pinterest.com\/socialnewsxyz\/","https:\/\/www.youtube.com\/socialnewsxyz\/","https:\/\/flipboard.com\/@SocialNewsXYZ","https:\/\/news.google.com\/publications\/CAAqKQgKIiNDQklTRkFnTWFoQUtEbk52WTJsaGJHNWxkM011ZUhsNktBQVAB?ceid=US:en&oc=3"]},{"@type":"Person","@id":"https:\/\/www.socialnews.xyz\/#\/schema\/person\/0128fee9d22643f97e445badb789aaba","name":"Gopi","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.socialnews.xyz\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/a529f8b3731b5abf1f9994aa34434368?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a529f8b3731b5abf1f9994aa34434368?s=96&d=mm&r=g","caption":"Gopi"},"description":"Gopi Adusumilli is a Programmer. He is the editor of SocialNews.XYZ and President of AGK Fire Inc. He enjoys designing websites, developing mobile applications and publishing news articles on current events from various authenticated news sources. When it comes to writing he likes to write about current world politics and Indian Movies. His future plans include developing SocialNews.XYZ into a News website that has no bias or judgment towards any. He can be reached at gopi@socialnews.xyz","sameAs":["https:\/\/www.socialnews.xyz","https:\/\/twitter.com\/https:\/\/twitter.com\/agk4444"],"url":"https:\/\/www.socialnews.xyz\/author\/gopi\/"}]}},"jetpack_featured_media_url":"https:\/\/i0.wp.com\/www.socialnews.xyz\/wp-content\/uploads\/2022\/04\/22\/870e695981933ff68db8a62a353151ad-1.jpg?fit=962%2C518&quality=80&zoom=1&ssl=1","jetpack_likes_enabled":true,"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p6Nl9c-hYQX","_links":{"self":[{"href":"https:\/\/www.socialnews.xyz\/wp-json\/wp\/v2\/posts\/4285499"}],"collection":[{"href":"https:\/\/www.socialnews.xyz\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.socialnews.xyz\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.socialnews.xyz\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.socialnews.xyz\/wp-json\/wp\/v2\/comments?post=4285499"}],"version-history":[{"count":0,"href":"https:\/\/www.socialnews.xyz\/wp-json\/wp\/v2\/posts\/4285499\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.socialnews.xyz\/wp-json\/wp\/v2\/media\/4285601"}],"wp:attachment":[{"href":"https:\/\/www.socialnews.xyz\/wp-json\/wp\/v2\/media?parent=4285499"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.socialnews.xyz\/wp-json\/wp\/v2\/categories?post=4285499"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.socialnews.xyz\/wp-json\/wp\/v2\/tags?post=4285499"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}