{"id":72484,"date":"2026-02-18T14:04:08","date_gmt":"2026-02-18T22:04:08","guid":{"rendered":"https:\/\/nalandabodhi.org\/?p=72484"},"modified":"2026-03-30T10:17:25","modified_gmt":"2026-03-30T17:17:25","slug":"ponlop-rinpoche-losar-address-2026","status":"publish","type":"post","link":"https:\/\/nalandabodhi.org\/nl\/2026\/02\/18\/ponlop-rinpoche-losar-address-2026\/","title":{"rendered":"Ponlop Rinpoche Losar Address 2026"},"content":{"rendered":"<!-- v.1.3 2025\/01\/17 -->\r\n<!-- Added support for separate audio URLs -->\r\n <!-- Added support for custom titles -->\r\n<div class=\"ev-lang-menu-wrapper\">\r\n<\/div>\r\n<div class=\"ev-video-wrapper\" style=\"margin-bottom: 50px;\">\r\n<\/div>\r\n<script>(function() {\r\n\tvar scripts = document.getElementsByTagName( 'script' );\r\n\tvar current_script = scripts[ scripts.length - 1 ];\r\n\tvar video_wrapper = jQuery(current_script).prev();\r\n\t\t\r\n\tvar is_menu_builder = ev_build_lang_menu(); \/\/ Create wrapper for language menu, if no other exists, needs to happen fast\r\n\tvar is_main_worker = is_menu_builder;\r\n\tvar $_GET=ev_get_url_variables();\r\n\t\t\r\n\t\/\/ We probably don't need is_menu_builder, is_main_worker and ev_is_first. Find a way to add them together\r\n\tvar ev_is_first = false;\r\n\tif(typeof ev_initialized === 'undefined') {\r\n\t\twindow.ev_initialized = true;\r\n\t\tev_is_first = true;\r\n\t}\r\n\t\t\r\n\tconst url_map = {\r\n\t\t\"en\": \"https:\/\/org-nalandabodhi-linuxserver0.s3.amazonaws.com\/NBI_media\/NBIOnlineEvents2025\/Losar%202026\/Dzogchen-Ponlop-Rinpoche_Losar-Address-2026_EN.mp4\",\r\n\t\t\"pt\": \"\",\r\n\t\t\"es\": \"\",\r\n\t\t\"fr\": \"\",\r\n\t\t\"zh\": \"\",\r\n\t\t\"de\": \"\"\r\n\t};\r\n\t\r\n\tconst audiourl_map = {\r\n\t\t\"en\": \"\",\r\n\t\t\"pt\": \"\",\r\n\t\t\"es\": \"\",\r\n\t\t\"fr\": \"\",\r\n\t\t\"zh\": \"\",\r\n\t\t\"de\": \"\"\r\n\t};\r\n\t\r\n\tconst title_map = {\r\n\t\t\"en\": \"\",\r\n        \"pt\": \"\",\r\n\t\t\"es\": \"\",\r\n\t\t\"fr\": \"\",\r\n\t\t\"zh\": \"\",\r\n\t\t\"de\": \"\"\r\n\t};\r\n\t\r\n\t\/\/ Automatically convert all http:\/\/ links to https:\/\/ because http:\/\/ links give issues in some browsers\r\n\tObject.keys(url_map).forEach(function(key) {\r\n\t\tif(url_map[key] == \"1\") {\r\n\t\t\turl_map[key] = url_map[\"en\"].replace(\/EN(?=[^EN]*$)\/, key.toUpperCase());\r\n\t\t}\r\n\t\turl_map[key] = url_map[key].replace(\/^http:\\\/\\\/\/i, 'https:\/\/');\r\n\t});\r\n\t \r\n\t\/\/ Shortcode parameters\r\n\tvar include_audio = \"1\";\r\n\tvar audio_url = \"\"; \/\/ for custom audio URL\r\n\tvar use_topic_picker = \"0\" === \"1\" && !(\"inc\" in $_GET);\r\n\tvar has_download_access = \"\";\r\n\tvar can_download_if_unlimited_access = has_download_access === \"1\" && $_GET[\"download\"] === \"1\";\r\n\tvar expired = \"0\";\r\n\tvar uploadDateStr = \"\"; \/\/ format: YYYYMMDD\r\n\tvar expiresInDays = \"\";\r\n\tvar uaHash = \"\";\r\n\tvar eaHash = \"\";\r\n\tvar eaEndDate = \"\";\r\n\tvar hide_post_elements = 1;\/\/ previously: %hide_post_elements:0%\r\n\t\t\t\t\t\t\r\n\tvar uaCheck = \"\";\r\n\tvar eaCheck = \"\";\r\n\t\t\r\n\tif(uaHash !== \"\") uaCheck = nb_md5_hash(uaHash);\r\n\tif(eaHash !== \"\") eaCheck = nb_md5_hash(eaHash);\r\n\t\r\n\tif(is_menu_builder) {\r\n\t\t\/\/ Create a topic map that gets supplemented with video titles every time a video is rendered on the page, \r\n\t\t\/\/ thus ending with a full list of all titles displayed on the page. \r\n\t\t\/\/ This is then used to create the topic picker if it's used\r\n\t\twindow.ev_add_topic_map = (raw_topic) => ev_add_topic(raw_topic);\r\n\t\twindow.ev_global_reload_topic_picker = () => ev_reload_topic_picker();\r\n\t\t\r\n\t\tev_expand_lang_menu(); \/\/ Part two of building the menu. Needs more data to be initialized and doesn't need to happen fast. \r\n\t\t\r\n\t\tjQuery(function() {\r\n\t\t\tev_build_no_recordings_notification(); \/\/ Creating a notification to show in case no recordings can be shown do to filters\r\n\t\t});\r\n\t}\r\n\t\t\r\n\tif(!ev_is_filtered_out_by_get_parameters() && typeof ev_no_recordings_notification_hidden === 'undefined') {\r\n\t\twindow.ev_no_recordings_notification_hidden = true;\r\n\t\t\r\n\t\tev_hide_no_recordings_notification();\r\n\t}\r\n\t\r\n\tvar ev_localized_lang_map = {\r\n\t\t\"en\": { full_name: \"English\", abbr: \"en-US\" },\r\n\t\t\"pt\": { full_name: \"Portugu\u00eas\", abbr: \"pt-PT\" },\r\n\t\t\"es\": { full_name: \"Espa\u00f1ol\", abbr: \"es-ES\" },\r\n\t\t\"fr\": { full_name: \"Fran\u00e7ais\", abbr: \"fr-FR\" },\r\n\t\t\"zh\": { full_name: \"\u4e2d\u6587\", abbr: \"zh-CN\" },\r\n\t\t\"de\": { full_name: \"Deutsch\", abbr: \"de-DE\" }\r\n\t}\r\n\t\t\r\n\t\/\/ List of available topics on page\r\n\tif (typeof ev_topic_map === 'undefined') {\r\n\t\twindow.ev_topic_map = [];\r\n\t}\r\n\t\t\r\n\t\/\/ List of available dates on page\r\n\tif( typeof ev_date_map === 'undefined') {\r\n\t\twindow.ev_date_map = [];\r\n\t}\r\n\t\t\r\n\t\/\/ List of already created language buttons\r\n\tif (typeof ev_created_lang_buttons === 'undefined') {\r\n\t\twindow.ev_created_lang_buttons = [];\r\n\t}\r\n\t\t\r\n\t\/\/ A list of all containers that have video's in them.\r\n\tif (typeof ev_language_media_containers === 'undefined') {\r\n\t\twindow.ev_language_media_containers = [];\r\n\t}\r\n\t\t\r\n\t\/\/ A list of eventhandlers to be fired when a language button is clicked\t\r\n\tif (typeof ev_language_menu_eventhandler === 'undefined') {\r\n\t\twindow.ev_language_menu_eventhandler = [];\r\n\t}\r\n\t\t\r\n\t\/\/ Get the current date on the server\r\n\tif (typeof ev_current_server_date === 'undefined') {\r\n\t\tvar date = \"2026\/10\/28\";\r\n\t\twindow.ev_current_server_date = ev_get_date_map(date);\r\n\t}\r\n\t\r\n\tev_language_menu_eventhandler.push(function(lang) { ev_render_video(lang) });\r\n\tev_language_media_containers.push(video_wrapper);\r\n\t\r\n\tlet def = \"\";\r\n\tlet default_language = \"\";\r\n\tlet languages = 0;\r\n\t\r\n\t\/\/ Hook up language buttons\r\n\t\/\/ Set the default language (the first available video in the url map)\r\n\tif(!ev_is_filtered_out_by_get_parameters() &&  !use_topic_picker) {\r\n\t\tfor (let key in url_map) {\r\n\t\t\tif (url_map.hasOwnProperty(key)) {           \r\n\t\t\t\tif(url_map[key] == \"\") {\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\t\t\t\tev_hook_button(key); \/\/ Create button if exists. Buttons are all hooked up automatically with the new event system.\r\n\t\t\t\tif(def == \"\") { \/\/ Set defaults to be used later on\r\n\t\t\t\t\tdef = url_map[key];\r\n\t\t\t\t\tdefault_language = key;\r\n\t\t\t\t}\r\n\t\t\t\tlanguages++;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t\r\n\t\/\/ Do not show the language menu if only one language is available\r\n\t\/\/ Pretty sure this does not work anymore\r\n\/\/ \tif(languages <= 1) {\r\n\/\/ \t\tjQuery(document).ready(function() {\r\n\/\/ \t\t\tjQuery(\"#ev-lang-menu-%\/%id:1%%\").hide();\r\n\/\/ \t\t});\r\n\/\/ \t}\r\n\t\r\n\t\/\/ Render language found in the url, or just the default video\r\n\tif(\"ev_lang\" in $_GET) {\r\n\t\tev_render_video($_GET[\"ev_lang\"]);\r\n\t} else {\r\n\t\tev_render_video(\"en\");\r\n\t}\r\n\t\t\r\n\t\/\/ For the scenario that we do not want a language menu appearing\r\n\tif(\"ev_singlepage\" in $_GET && $_GET[\"ev_singlepage\"] == \"1\") {\r\n\t\tjQuery(\".ev-lang-menu-wrapper\").hide();\r\n\t}\r\n\t\t\r\n\t\/\/ If the topic picker is enabled, call it once to give a notification that no recordings are available yet\r\n\tif(ev_is_first && use_topic_picker) {\r\n\t\tev_reload_topic_picker();\r\n\t}\r\n\t\t\r\n\/\/ \tfunction ev_add_safari_notification(lang) {\r\n\/\/ \t\tjQuery(video_wrapper).prepend(\"<div class='ev-safari-warning'>\" + ev__(\"The Safari browser is known to have some issues displaying recordings. Please use another browser if this happens to you.\", lang) + \"<\/div>\");\r\n\/\/ \t}\r\n\t\t\r\n\tfunction ev_add_topic(raw_title) {\r\n\t\tlet titleParts = raw_title.split(\" - \");\r\n\t\t\t\r\n\t\tlet topicFound = false;\r\n\t\tlet lastElement = '';\r\n\t\tlet elementDate = '';\r\n\t\t\r\n\t\tconst dateRegex = \/^[\\d]{8}$\/g;\r\n\t\tconst sessionRegex = \/^(session|class)\\s*\\d+$\/gi\r\n\t\t\r\n\t\tfor (let i = titleParts.length - 1; i >= 0; i--) {\r\n\t\t\t\/\/ Never go past the date part\r\n\t\t\tif(titleParts[i].match(dateRegex)) {\r\n\t\t\t\telementDate = nb_datestr_todate(titleParts[i]);\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tif(!topicFound) {\r\n\t\t\t\tlastElement = titleParts[i];\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t\/\/ If the part is a class\/session indicator, see if there's a more fitting part before it.\r\n\t\t\tif(!lastElement.match(sessionRegex)) {\r\n\t\t\t\ttopicFound = true;\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\tlet reloadRequired = false;\r\n\t\t\r\n\t\tlet topics = lastElement.split(\" & \");\r\n\t\t\r\n\t\t\/\/ Add to the topic map\r\n\t\tlet mainTopic = false;\r\n\t\tfor(var topic of topics) {\r\n\t\t\tif(mainTopic === false && ev_topic_map.filter(function(e) { return e.filter === topic; }).length <= 0) {\r\n\t\t\t\tmainTopic = {\r\n\t\t\t\t\t\"filter\": topic,\r\n\t\t\t\t\t\"subtopics\": []\r\n\t\t\t\t};\r\n\t\t\t\tev_topic_map.push(mainTopic);\r\n\t\t\t\t\r\n\t\t\t\treloadRequired = true;\r\n\t\t\t} else if(mainTopic !== false && !mainTopic.subtopics.includes(topic)) {\r\n\t\t\t\t\/\/ Subtopics are now treated as main topics to avoid confusion\r\n\t\t\t\tlet t = {\r\n\t\t\t\t\t\"filter\": topic,\r\n\t\t\t\t\t\"subtopics\": []\r\n\t\t\t\t};\r\n\t\t\t\t\r\n\t\t\t\tev_topic_map.push(t);\r\n\t\t\t\t\r\n\t\t\t\t\/\/ Add subtopic logic\r\n\t\t\t\t\/\/ mainTopic.subtopics.push(topic);\r\n\t\t\t\t\r\n\t\t\t\treloadRequired = true;\r\n\t\t\t} else if(mainTopic === false) {\r\n\t\t\t\tmainTopic = ev_topic_map.filter(function(e) { return e.filter === topic; })[0];\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\t\/\/ Add to the date map\r\n\t\tif(elementDate) {\r\n\t\t\tif(ev_date_map.filter(function(e) { return nb_date_todatestr(e.date) == nb_date_todatestr(elementDate); }).length <= 0) {\r\n\t\t\t\tlet dateEntry = {\r\n\t\t\t\t\t\"date\": elementDate,\r\n\t\t\t\t};\r\n\t\t\t\tev_date_map.push(dateEntry);\r\n\t\t\t\t\r\n\t\t\t\treloadRequired = true;\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\tif(use_topic_picker && reloadRequired) {\r\n\t\t\tev_reload_topic_picker();\r\n\t\t}\r\n\t}\r\n\t\t\r\n\tfunction ev_reload_topic_picker() {\r\n\t\tlet lang = \"ev_lang\" in $_GET ? $_GET[\"ev_lang\"] : \"en\";\r\n\t\t\t\t\r\n\t\tif(ev_topic_map.length <= 0) {\r\n\t\t\tev_build_no_recordings_notification(false);\r\n\t\t\treturn;\r\n\t\t}\r\n\t\t\r\n\t\tlet content = \"<div class='ev-topic-picker'>\";\r\n\t\tcontent += `<h2 class='topics'><strong>${ev__(\"Choose a topic below\", lang)}<\/strong><\/h2>`;\r\n\t\tfor(let topicData of ev_topic_map)\r\n\t\t{\r\n\t\t\tlet href = ev_get_current_url_with_parameter(\"inc\", topicData.filter);\r\n\t\t\tcontent += `<a href='${href}'>${topicData.filter}`\r\n\t\t\tif(topicData.subtopics.length > 0) {\r\n\t\t\t\tcontent += ` <span class=\"ev-subtopics\">(${topicData.subtopics.join(\" & \")})<\/span>`\r\n\t\t\t}\r\n\t\t\tcontent += '<\/a>';\r\n\t\t}\r\n\t\tif(ev_date_map.length > 1) {\r\n\t\t\tcontent += `<h2 class='dates'><strong>${ev__(\"Or choose a date below\", lang)}<\/strong><\/h2>`;\r\n\t\t\tfor(let dateData of ev_date_map) {\r\n\t\t\t\tlet date = nb_date_todatestr(dateData.date);\r\n\t\t\t\tlet href = ev_get_current_url_with_parameter(\"inc\", date);\r\n\t\t\t\tcontent += `<a href='${href}'>${ev_format_date(date, lang)}<\/a>`\r\n\t\t\t}\r\n\t\t}\r\n\t\tcontent += \"<\/div>\";\r\n\t\tjQuery(video_wrapper).empty();\r\n\t\tjQuery(video_wrapper).append(content);\r\n\t}\r\n\t\r\n\t\/\/If the video to be rendered exists, render it. Otherwise display video missing message\r\n\tfunction ev_render_video(lang) {\r\n\t\t\/\/ Change the url of the page to have the URL GET varialb set correctly\r\n\t\tev_change_url_lang(lang);\r\n\t\t\r\n\t\t\/\/ First add the title to the topic map\r\n\t\tif(url_map[lang] != \"\") {\r\n\t\t\tvar title = ev_get_default_video_title();\r\n\t\t\tif(title !== false) {\r\n\t\t\t\tev_add_topic_map(title);\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\tif(ev_is_filtered_out_by_get_parameters() || use_topic_picker) {\r\n\t\t\t\/\/ If filters are used in the url parameters, and this video is filtered out, cancel rendering of video element\r\n\t\t\treturn;\r\n\t\t} \r\n\t\t\r\n\t\tlet isUa = \"uah\" in $_GET && uaHash !== \"\" && nb_md5_hash($_GET[\"uah\"]) === uaHash && nb_md5_hash(uaHash) === uaCheck;\r\n\t\tlet isEa = \"eah\" in $_GET && eaHash !== \"\" && nb_md5_hash($_GET[\"eah\"]) === eaHash && nb_md5_hash(eaHash) === eaCheck;\r\n\t\t\t\t\r\n\t\tif(isUa && ev_is_first) console.log(\"UA Enabled\");\r\n\t\r\n\t\tlet uploadDate = nb_datestr_todate(uploadDateStr);\r\n\t\t\/\/ Determine if the recordings has been expired because of the \"expire in days\" setting\r\n\t\tlet uploadExpiresInDays = !isNaN(parseInt(expiresInDays)) ? parseInt(expiresInDays) : null;\r\n\t\tlet currentDate = new Date(2026, 10 - 1, 28);\r\n\t\t\r\n\t\tlet videoValidUntil = uploadDate != null && uploadExpiresInDays != null ? new Date(uploadDate.getTime() + uploadExpiresInDays * 24 * 60 * 60 * 1000) : null;\r\n\t\tif(isEa) {\r\n\t\t\tlet eaEndDateDateObject = nb_datestr_todate(eaEndDate);\r\n\t\t\tif(eaEndDateDateObject > videoValidUntil) {\r\n\t\t\t\tvideoValidUntil = nb_datestr_todate(eaEndDate);\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tif(ev_is_first) {\r\n\t\t\t\tconsole.log(\"EA Enabled\");\r\n\t\t\t\tconsole.log(\"Using EA end date:\", videoValidUntil, \"from date\", eaEndDate);\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\tlet videoExpiredByExpirationDate = videoValidUntil != null ? currentDate > videoValidUntil : null;\r\n\t\tlet canDownloadAllVideos = isUa && can_download_if_unlimited_access;\r\n\t\t\r\n\t\tif(!isUa && (expired === \"1\" || videoExpiredByExpirationDate === true)) {\r\n\t\t\tev_set_video_expired(lang);\r\n\t\t\tif(videoValidUntil !== null) {\r\n\t\t\t\tev_create_video_expiration_date(videoValidUntil, lang, true);\r\n\t\t\t}\r\n\t\t}\t\t\r\n\t\telse if(url_map[lang] != \"\") {\t\r\n\t\t\tev_set_video(url_map[lang], lang, !isUa ? videoValidUntil : null, canDownloadAllVideos);\r\n\t\t\tjQuery(document).ready(function() {\r\n\t\t\t\tjQuery(\".ev-language-button\").removeClass(\"selected\");\r\n\t\t\t\tjQuery(\"#lang-menu-btn-\" + lang).addClass(\"selected\");\r\n\t\t\t});\r\n\t\t}\r\n\t\telse {\r\n\t\t\tev_set_video_missing(lang); \/\/ Display missing video message\r\n\t\t}\r\n\t}\r\n\t\t\r\n\tfunction ev_is_filtered_out_by_get_parameters() {\r\n\t\tvar title = ev_get_default_video_title();\r\n\t\t\r\n\t\tif(title === false) return false;\r\n\t\t\r\n\t\tif(\"exc\" in $_GET) {\r\n\t\t\tlet query = $_GET[\"exc\"];\r\n\t\t\tif(title.toLowerCase().includes(query.toLowerCase())) {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\tif(\"inc\" in $_GET) {\r\n\t\t\tlet query = $_GET[\"inc\"];\r\n\t\t\tif(!title.toLowerCase().includes(query.toLowerCase())) {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\treturn false;\r\n\t}\r\n\t\r\n\t\/\/ Create video, distinguish between zoom recording links and all other links (all other are expected to be .mp4 or other video file links)\r\n\tfunction ev_set_video(src, lang, validUntilDate = null, canDownloadAllVideos = false) {\r\n\t\tjQuery(document).ready(function() {\r\n\t\t\tev_set_title(src, lang);\r\n\t\t\tev_create_video_element(src, canDownloadAllVideos);\r\n\t\t\tif(validUntilDate !== null) {\r\n\t\t\t\tev_create_video_expiration_date(validUntilDate, lang, false);\r\n\t\t\t}\r\n\t\t\tev_create_audio_element_if_exists(src, lang); \/\/ Add audio if include audio is set to 1\t\r\n\t\t\tif(canDownloadAllVideos) {\r\n\t\t\t\tev_create_download_button(src, lang, canDownloadAllVideos);\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t\r\n\/\/ \t\t\tif(ev_get_domain(src).toLowerCase() != \"us02web.zoom.us\") {\r\n\t\t\t\t\r\n\/\/ \t\t\t} else { \/\/ Legacy directly from zoom link. Can probably be removed in the future\r\n\/\/ \t\t\t\tvar zoom_pass = \"%zoom_password%\";\r\n\/\/ \t\t\t\tev_create_link_element(\"Click here to watch the video\", src);\r\n\/\/ \t\t\t\tif(zoom_pass !== \"\") {\r\n\/\/ \t\t\t\t\tev_create_text_element(ev__(\"Password\", lang) + \": \" + zoom_pass);\r\n\/\/ \t\t\t\t}\r\n\/\/ \t\t\t}\r\n\t\t});\r\n\t}\r\n\t\t\r\n\t\/\/ Render video title. For zoom recordings use the special shortcode field, for all others, interpret the filename in the URL\r\n\tfunction ev_set_title(src, lang) {\r\n\/\/ \t\tif(ev_get_domain(src).toLowerCase() != \"us02web.zoom.us\") {\r\n\t\t\tvar title = ev_get_video_title(src, lang);\r\n\t\t\tev_create_title_element(title);\r\n\/\/ \t\t} else {\r\n\/\/ \t\t\tvar zoom_date = ev_interpret_shortcode_date(\"%zoom_recording_date__year_month_day%\");\r\n\/\/ \t\t\tvar title = ev_get_video_title(zoom_date + \"_\".replace(\"Private: \", \"\").replace(\"Protected: \", \"\"), lang);\r\n\/\/ \t\t\tev_create_title_element(title);\r\n\/\/ \t\t}\r\n\t}\r\n\t\t\r\n\t\/\/ Render the video title along with a message that the video is not available\r\n\tfunction ev_set_video_missing(actual_lang) {\r\n\t\tconst lang = default_language;\r\n\t\tconst src = url_map[lang];\r\n\t\t\r\n\t\tjQuery(document).ready(function() {\r\n\t\t\tev_set_title(src, actual_lang);\r\n\t\t\tev_create_text_element(ev__(\"No recordings available (yet)\", actual_lang), true);\r\n\t\t});\r\n\t}\r\n\t\t\r\n\t\/\/ Render the video title along with a message explaining access to this video has been denied\r\n\tfunction ev_set_video_expired(actual_lang) {\r\n\t\tconst lang = default_language;\r\n\t\tconst src = url_map[lang];\r\n\t\t\r\n\t\t\/\/ jQuery(document).ready(function() {\r\n\t\t\tev_set_title(src, actual_lang);\r\n\t\t\tev_create_text_element(ev__(\"You no longer have access to this recording\", actual_lang), true, \"ev-expired-msg\");\r\n\t\t\/\/ });\r\n\t}\r\n\t\r\n\t\/\/ Create h2 element and append to page title section\r\n\tfunction ev_create_title_element(title) {\r\n\t\tconst elem = document.createElement(\"h2\");\r\n\t\telem.setAttribute(\"class\", \"ev-title-element\");\r\n\t\telem.innerHTML = title;\r\n\r\n\t\tjQuery(video_wrapper).append(elem);\r\n\t}\r\n\t\t\r\n\tfunction ev_create_video_expiration_date(expirationDate, lang, expired = false) {\r\n\t\tlet message = expired ? \"Video expired after date (Pacific Time): \" : \"Video expires after date (Pacific Time): \";\r\n\t\tev_create_text_element(ev__(message, lang) + \" \" + ev_format_date(toNormalizedDateString(expirationDate), lang), false, \"ev-expiration-msg\");\r\n\t}\r\n\t\r\n\t\/\/ create p element, append to page title section\r\n\tfunction ev_create_text_element(text, bold=false, extraClass=\"\") {\r\n\t\tconst elem = document.createElement(\"p\");\r\n\t\telem.innerHTML = text;\r\n\t\tif(bold) {\r\n\t\t\telem.setAttribute(\"class\", \"ev-text-element ev-text-element-bold \" + extraClass);\r\n\t\t} else {\r\n\t\t\telem.setAttribute(\"class\", \"ev-text-element \" + extraClass);\r\n\t\t}\r\n\r\n\t\tjQuery(video_wrapper).append(elem);\r\n\t}\r\n\t\r\n\t\/\/ create link element, append to page title section\r\n\tfunction ev_create_link_element(text, href) {\r\n\t\tconst elem = document.createElement(\"a\");\r\n\t\telem.innerHTML = text;\r\n\t\telem.setAttribute(\"class\", \"ev-link-element\");\r\n\t\telem.setAttribute(\"href\", href);\r\n\r\n\t\tjQuery(video_wrapper).append(elem);\r\n\t}\r\n\t\r\n\t\/\/ create video element, append to page title section\r\n\tfunction ev_create_video_element(src, allowDownload = false) {\r\n\t\tconst elem = document.createElement(\"video\");\r\n\t\telem.src = src;\r\n\t\telem.setAttribute(\"class\", \"elementor-video ev-media\");\r\n\t\telem.setAttribute(\"controls\", \"\");\r\n\t\tif(!allowDownload) {\r\n\t\t\telem.setAttribute(\"controlslist\", \"nodownload\");\r\n\t\t}\r\n\t\t\r\n\t\tif(ev_get_file_extension(src).toLowerCase() == \"mp3\") {\r\n\t\t\telem.setAttribute(\"class\", \"elementor-video ev-media ev-audio ev-audio-loading\");\r\n\t\t\telem.setAttribute(\"onerror\", \"jQuery(this).remove()\");\r\n\t\t\telem.setAttribute(\"oncanplay\", \"jQuery(this).removeClass('ev-audio-loading')\");\r\n\t\t} else {\r\n\t\t\telem.setAttribute(\"preload\", \"none\");\r\n\t\t\telem.setAttribute(\"poster\", \"https:\/\/nalandabodhi.org\/wp-content\/uploads\/2022\/04\/Click-to-play.jpg\");\r\n\t\t\telem.onclick = function () {\r\n    \t\t\telem.play();\r\n\t\t\t};\r\n\t\t}\r\n\t\t\r\n\t\tjQuery(video_wrapper).append(elem);\r\n\t\tjQuery(elem).contextmenu(function() { return false; });\r\n\t}\r\n\r\n\tfunction ev_create_download_button(src, lang, isDownloadAuthorized) {\r\n\t\tif(src === \"\" || ev_get_file_extension(src).toLowerCase() === \"mp3\") {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst elem = document.createElement(\"a\");\r\n\t\telem.innerHTML = ev__(\"Open downloadable version\", lang);\r\n\t\telem.setAttribute(\"class\", \"ev-link-element ev-download-link-element\");\r\n\t\telem.setAttribute(\"href\", \"#\");\r\n\r\n\t\tjQuery(elem).click(function(e) {\r\n\t\t\te.preventDefault();\r\n\t\t\tif(!isDownloadAuthorized) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\twindow.open(src, \"_blank\", \"noopener\");\r\n\t\t});\r\n\r\n\t\tjQuery(video_wrapper).append(elem);\r\n\t}\r\n\t\r\n\t\/\/ Create audio element, this hides itself automatically if the url is not correct\r\n\tfunction ev_create_audio_element_if_exists(video_src, lang) {\r\n        const audio_url = audiourl_map[lang];\r\n\t\tif(include_audio !== \"1\" && !audio_url) return;\r\n\t\tlet src;\r\n\t\tif (audio_url) {\r\n\t\t\tsrc = audio_url;\r\n\t\t} else {\r\n\t\t\tconst ext = ev_get_file_extension(video_src).toLowerCase();\r\n\t\t\tif (ext != \"mp4\") {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tsrc = ev_get_filename_without_extension(video_src) + \".mp3\";\r\n\t\t}\r\n\t\tjQuery(video_wrapper).append(\"<p style='margin-bottom: 10px;'><strong>\" + ev__(\"Audio\", lang) +  \"<\/strong><\/p>\")\r\n\t\tev_create_video_element(src);\r\n\t}\r\n\t\t\r\n\t\/\/ Check if filename part should be part of the displayed filename\r\n\tfunction ev_should_display_title_part(part, parts) {\r\n\t\tvar dont_display_matches = [\r\n\t\t\t\/^[a-zA-Z]{2}$\/g, \/\/ Language Code\r\n\t\t\t\/^\\d{3,4}p$\/g, \/\/ Resolution of file\r\n\t\t\t\/^\\d{3,4}x\\d{3,4}$\/g, \/\/ Resolution NNNxNNN\r\n\t\t\t\/^\\d+of\\d+$\/g, \/\/ Talk Number\r\n\t\t\t\/online\/gi,\r\n\t\t\t\/sangha retreat\/gi\r\n\t\t];\r\n\t\tfor(var match of dont_display_matches) {\r\n\t\t\tif(match.exec(part) !== null) return false;\r\n\t\t}\r\n\t\treturn true;\r\n\t}\r\n\t\t\r\n\tfunction ev_get_default_video_title() {\r\n\t\tconst src = url_map[\"en\"];\r\n\t\t\r\n\t\tif(src == \"\") return false;\r\n\t\t\r\n\t\treturn ev_get_video_title(src, \"en\", false);\r\n\t}\r\n\t\r\n\t\/\/ Parse the video title inside the URL.\r\n    \/\/ Title can be customized via title_map[].\r\n    \/\/ Date part is parsed even with title_map[].\r\n\tfunction ev_get_video_title(src, lang, convertDate = true) {\r\n        let bCustomTitle = false;\r\n        let title = \"\";\r\n        let datePart = \"\";\r\n        if (title_map[lang]) {\r\n            bCustomTitle = true;\r\n            title = title_map[lang];\r\n        }\r\n\t\tlet filename = src.substring(src.lastIndexOf('\/')+1);\r\n\t\tfilename = decodeURI(filename);\r\n\t\tfilename = filename.replaceAll(\"-\", \" \").replace(\".mp4\", \"\").replace(\".mp3\", \"\");\r\n\t\tfilename = filename.replaceAll(\"DPR\", \"Dzogchen Ponlop Rinpoche\").replaceAll(\"ALTG\", \"Acharya Lama Tenpa Gyaltsen\");\r\n\t\tconst parts = filename.split(\"_\");\r\n\t\tfilename = \"\";\r\n\t\tfor(let i = 0; i < parts.length; i++) {\r\n\t\t\tlet part = parts[i];\r\n\t\t\t\r\n\t\t\tif(!ev_should_display_title_part(part, parts)) continue;\r\n\t\t\t\r\n\t\t\tconst dateRegex = \/^[\\d]{8}$\/g;\r\n\t\t\tif(convertDate && part.match(dateRegex)) {\r\n\t\t\t\tdatePart = \"<span class='ev-title-date-part'>\" + ev_format_date(part, lang) + \"<\/span><br \/> \";\r\n                continue;\r\n\t\t\t};\r\n\t\t\t\r\n            if (bCustomTitle) continue;\r\n\r\n\t\t\tif(filename != \"\") {\r\n\t\t\t\tfilename += \" - \";\r\n\t\t\t}\r\n\t\t\tfilename += decodeURIComponent(part).replaceAll(\"+\", \" & \");\r\n\t\t}\r\n        if (!bCustomTitle) {\r\n            const words = filename.split(\/\\s+\/);\r\n            for (let i = 0; i < words.length; i++) {\r\n                let w = words[i];\r\n                if (w.length > 2) {\r\n                    w = w[0].toUpperCase() + w.substr(1);\r\n                }\r\n                words[i] = w;\r\n            }\r\n            title = words.join(\" \");\r\n        }\r\n\t\treturn datePart + title;\r\n\t}\r\n\t\r\n\t\/\/ Format the URL date part\r\n\tfunction ev_format_date(dateStr, lang) {\r\n\t\tvar year = dateStr.substring(0, 4);\r\n\t\tvar month = dateStr.substring(4,6);\r\n\t\tvar day = dateStr.substring(6,8);\r\n\t\t\/\/ var dayInt = parseInt(day);\r\n\t\t\r\n\t\tvar options = { year: 'numeric', month: 'long', day: 'numeric', timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone };\r\n\t\tvar date = new Date(year + \"-\" + month + \"-\" + day);\r\n\t\t\t\t\r\n\t\tdate.setYear(parseInt(year));\r\n\t\tdate.setMonth(parseInt(month) - 1);\r\n\t\tdate.setDate(parseInt(day));\r\n\t\t\r\n\t\treturn date.toLocaleDateString(ev_localized_lang_map[lang].abbr, options)\r\n\t}\r\n\t\t\r\n\tfunction toNormalizedDateString(date) {\r\n\t\tconst year = date.getFullYear();\r\n\t\tconst month = String(date.getMonth() + 1).padStart(2, '0');\r\n\t\tconst day = String(date.getDate()).padStart(2, '0');\r\n\t\treturn `${year}${month}${day}`;\r\n\t}\r\n\t\r\n\t\/\/ Legacy Code\r\n\tfunction ev_disable_language_btn(lang) {\r\n\t\t\/\/ jQuery(\"#lang-menu-btn-%\/%id:1%%-\" + lang).addClass(\"disabled\");\r\n\t\t\/\/ jQuery(\"#lang-menu-btn-%\/%id:1%%-\" + lang).closest(\".elementor-column\").hide();\r\n\t}\r\n\t\r\n\t\/\/  Create language button if it doesn't already exist. No need to hook them up because of the new eventhandler system.\r\n\tfunction ev_hook_button(lang, create_if_not_exists = true) {\r\n\t\tif(!ev_created_lang_buttons.includes(lang) && create_if_not_exists) {\r\n\t\t\tev_created_lang_buttons.push(lang);\r\n\t\t\tconst elem = document.createElement(\"a\");\r\n\t\t\telem.innerHTML = ev_localized_lang_map[lang].full_name;\r\n\t\t\telem.setAttribute(\"class\", \"ev-language-button\");\r\n\t\t\telem.setAttribute(\"id\", \"lang-menu-btn-\" + lang);\r\n\t\t\t\r\n\t\t\t\/\/ Add the button to their own container div if it exists (used to guarantee a language button to have a certain position within the button group)\r\n\t\t\t\/\/ Otherwise just add the button to the wrapper div\r\n\t\t\tvar btn_container = jQuery(`#ev-lang-button-container-${lang}`);\r\n\t\t\tif(btn_container.length > 0) {\r\n\t\t\t\tbtn_container.css(\"display\", \"inline-block\");\r\n\t\t\t\tbtn_container.append(elem);\r\n\t\t\t} else {\r\n\t\t\t\tdocument.getElementById(\"ev-lang-button-group\").appendChild(elem);\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tjQuery(elem).click(function(e) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tfor(const container_id of ev_language_media_containers) {\r\n\t\t\t\t\tjQuery(container_id).empty();\r\n\t\t\t\t}\r\n\t\t\t\tfor(const eventhandler of ev_language_menu_eventhandler) {\r\n\t\t\t\t\teventhandler(lang);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\t\r\n\t\t\t\/\/ If there is only one single language, Do not show the language menu\r\n\t\t\tif(ev_created_lang_buttons.length <= 1) {\r\n\t\t\t\tjQuery(\"#ev-lang-button-group\").hide();\r\n\t\t\t} else {\r\n\t\t\t\tjQuery(\"#ev-lang-button-group\").show();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t\t\r\n\t\/\/ Build the wrapper for the language menu buttons. No buttons are created here yet.\r\n\tfunction ev_build_lang_menu() {\r\n\t\tif(jQuery('#ev-lang-button-group').length > 0) return false;\r\n\t\tconst lang_menu = document.createElement(\"div\");\r\n\t\tlang_menu.setAttribute(\"id\", \"ev-lang-button-group\");\r\n\t\t\r\n\t\tif(jQuery(\".ev-lang-menu-wrapper\").length > 0) {\r\n\t\t\tjQuery(\".ev-lang-menu-wrapper\").first().append(lang_menu);\r\n\t\t}\r\n\t\t\r\n\t\treturn true;\r\n\t}\r\n\t\t\r\n\t\/\/ Add a block for showing \"No recordings available (yet)\" if the given filter filters out everything\r\n\tfunction ev_build_no_recordings_notification(canHide=true) {\r\n\t\tlet actual_lang = \"en\"\r\n\t\tif(\"ev_lang\" in $_GET) {\r\n\t\t\tactual_lang = $_GET[\"ev_lang\"];\r\n\t\t}\r\n\t\t\t\t\r\n\t\tif(jQuery(\".ev-video-wrapper\").length > 0) {\r\n\t\t\tlet notificationClass = canHide ? \"no-recordings-available-msg\" : \"\";\r\n\t\t\t\r\n\t\t\tjQuery(\".ev-video-wrapper\").first().append(`<div class='no-recordings-available-msg-wrapper'><span class='${notificationClass}'>${ev__(\"No recordings available (yet)\", actual_lang)}<\/span><\/div>`);\r\n\t\t} else {\r\n\t\t\tconsole.log(\"Cannot find .ev-video-wrapper to add no recordings found message\");\r\n\t\t}\r\n\t}\r\n\t\t\r\n\tfunction ev_hide_no_recordings_notification() {\r\n\t\tvar styles = `.no-recordings-available-msg { display: none !important; }`;\r\n\r\n\t\tvar styleSheet = document.createElement(\"style\");\r\n\t\tstyleSheet.innerText = styles;\r\n\t\tdocument.head.appendChild(styleSheet);\r\n\t}\r\n\t\t\r\n\tfunction ev_expand_lang_menu() {\r\n\t\tfor(var key in url_map) {\r\n\t\t\tev_build_lang_menu_button_container(key);\r\n\t\t}\r\n\t}\r\n\t\t\r\n\tfunction ev_build_lang_menu_button_container(lang) {\r\n\t\tconst elem = document.createElement(\"div\");\r\n\t\telem.setAttribute(\"id\", `ev-lang-button-container-${lang}`);\r\n\t\telem.className = \"ev-lang-button-container\";\r\n\t\tjQuery(elem).css(\"display\", \"none\");\r\n\t\tjQuery(\"#ev-lang-button-group\").append(elem);\r\n\t}\r\n\t\t\r\n\tfunction ev_get_file_extension(filename) {\r\n\t\tvar fileParts = filename.split(\".\");\r\n\t\treturn fileParts[fileParts.length - 1];\r\n\t}\r\n\t\t\r\n\tfunction ev_get_filename_without_extension(filename) {\r\n\t\tvar fileParts = filename.split(\".\");\r\n\t\tvar file = \"\";\r\n\t\tfor(var i = 0; i < fileParts.length - 1; i++) {\r\n\t\t\tif(file !== \"\") file += \".\";\r\n\t\t\tfile += fileParts[i];\r\n\t\t}\r\n\t\treturn file;\r\n\t}\r\n\t\t\r\n\tfunction ev_get_domain(filename) {\r\n\t\tvar domain = (new URL(filename));\r\n\t\treturn domain.hostname;\r\n\t}\r\n\t\t\r\n\tfunction ev_change_url_lang(lang) {\r\n\t\tif(!ev_is_first) return;\r\n\t\t\r\n\t\tconsole.log(\"Changing video language to: \" + lang);\r\n\t\t\r\n\t\tvar $_GET = ev_get_url_variables();\r\n\t\tif(typeof $_GET === 'undefined' || $_GET.constructor != Object) return;\r\n\t\tif(\"ev_lang\" in $_GET && $_GET[\"ev_lang\"] == lang) return;\r\n\t\t$_GET[\"ev_lang\"] = lang;\r\n\t\t\r\n\t\tvar url = location.pathname;\r\n\t\tvar params = '';\r\n\t\tfor(var param_key in $_GET) {\r\n\t\t\tif(params != '') params += '&';\r\n\t\t\tparams += encodeURIComponent(param_key) + \"=\" + encodeURIComponent($_GET[param_key]);\r\n\t\t}\r\n\t\t\r\n\t\twindow.history.pushState(\"\", \"\", url + \"?\" + params);\r\n\t}\r\n\t\t\r\n\tfunction ev_get_current_url_with_parameter(key, value) {\r\n\t\tvar $_GET = ev_get_url_variables();\r\n\t\t\r\n\t\tif(typeof $_GET === 'undefined' || $_GET.constructor != Object) return;\r\n\t\t\r\n\t\t$_GET[key] = value;\r\n\t\t\r\n\t\tvar url = location.pathname;\r\n\t\tvar params = '';\r\n\t\tfor(var param_key in $_GET) {\r\n\t\t\tif(params != '') params += '&';\r\n\t\t\tparams += encodeURIComponent(param_key) + \"=\" + encodeURIComponent($_GET[param_key]);\r\n\t\t}\r\n\t\t\r\n\t\treturn url + \"?\" + params\r\n\t}\r\n\t\t\r\n\tfunction ev_get_url_variables() {\r\n\t\tvar $_GET = {};\r\n\t\tif(document.location.toString().indexOf('?') !== -1) {\r\n\t\t\tvar query = document.location\r\n\t\t\t\t\t\t   .toString()\r\n\t\t\t\t\t\t   \/\/ get the query string\r\n\t\t\t\t\t\t   .replace(\/^.*?\\?\/, '')\r\n\t\t\t\t\t\t   \/\/ and remove any existing hash string\r\n\t\t\t\t\t\t   .replace(\/#.*$\/, '')\r\n\t\t\t\t\t\t   .split('&');\r\n\r\n\t\t\tfor(var i=0, l=query.length; i<l; i++) {\r\n\t\t\t   var aux = decodeURIComponent(query[i]).split('=');\r\n\t\t\t   $_GET[aux[0]] = aux[1];\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn $_GET;\r\n\t}\r\n\t\t\r\n\tif(hide_post_elements == 1 && typeof ev_post_elements_hidden === 'undefined') {\r\n\t\twindow.ev_post_elements_hidden = true;\r\n\t\t\/\/ Your CSS as text\r\n\t\tvar styles = `\r\n\t\t\t.elementor-post-info__item, .elementor-widget-theme-post-featured-image\r\n\t\t\t{ \r\n\t\t\t\tdisplay: none !important;\r\n\t\t\t}\r\n\t\t\tbody > .post > .elementor-section-wrap > .elementor-top-section {\r\n\t\t\t\tpadding-bottom: 20px !important;\r\n\t\t\t}\r\n\t\t\th1.elementor-heading-title {\r\n\t\t\t\tcolor: #003871 !important;\r\n    \t\t\ttext-shadow: 0px 2px 8px #fff !important;\r\n\t\t\t}\r\n\t\t\tbody.dont-use > .post > .elementor-section-wrap > .elementor-top-section {\r\n    \t\t\tbackground-image: url('https:\/\/nalandabodhi.org\/wp-content\/uploads\/2021\/07\/9.png') !important;\r\n\t\t\t}\r\n\t\t\tsection[data-settings*='\"shape_divider_top\":\"mountains\"'] {\r\n\t\t\t\tdisplay: none !important;\r\n\t\t\t}\r\n\t\t`;\r\n\r\n\t\tvar styleSheet = document.createElement(\"style\");\r\n\t\tstyleSheet.innerText = styles;\r\n\t\tdocument.head.appendChild(styleSheet);\r\n\t\tif(jQuery(\".elementor-heading-title\").length > 0) {\r\n\t\t\tvar i = 0;\r\n\t\t\tjQuery(\".elementor-heading-title\").each(function() {\r\n\t\t\t\tif(i > 0) return;\r\n\t\t\t\ti++;\r\n\t\t\t\t\r\n\t\t\t\tjQuery(this).text(jQuery(this).text().replace(\"Protected: \", \"\"));\r\n\t\t\t});\r\n\t\t}\r\n\t\t\r\n\t\tjQuery(jQuery(jQuery(jQuery(\"body\").children()[1]).children()[0]).children()[0]).css(\"background-image\", \"url('https:\/\/nalandabodhi.org\/wp-content\/uploads\/2021\/07\/9.png')\");\r\n\t}\r\n\t\t\r\n\tfunction ev_interpret_shortcode_date(date) {\r\n\t\tif(date == \"\") return \"\";\r\n\t\tvar parts = date.split(\/[-\\\/\\\\]\/);\r\n\t\tif(parts.length != 3) return \"\";\r\n\t\tvar year = parts[0];\r\n\t\tvar month = parts[1];\r\n\t\tvar day = parts[2];\r\n\t\t\r\n\t\tif(month.length == 1) month = \"0\" + month;\r\n\t\tif(day.length == 1) day = \"0\" + day;\r\n\t\treturn year + month +  day;\r\n\t}\r\n\t\t\r\n\tfunction ev_get_date_map (date) {\r\n\t\tvar d = ev_interpret_shortcode_date(date);\r\n\t\tif(d === \"\") return null;\r\n\t\t\r\n\t\tvar year = d.substring(0, 4);\r\n\t\tvar month = d.substring(4,6);\r\n\t\tvar day = d.substring(6,8);\r\n\t\t\r\n\t\treturn { year: year, month: month, day: day };\r\n\t}\r\n\t\t\r\n\tfunction ev__(local_string, lang) {\r\n\t\tfor(var s in get_ev_localize_map()) {\r\n\t\t\tif(s.toLowerCase() == local_string.toLowerCase()) {\r\n\t\t\t\tfor(var l in get_ev_localize_map()[s]) {\r\n\t\t\t\t\tif(l.toLowerCase() == lang.toLowerCase()) {\r\n\t\t\t\t\t\treturn get_ev_localize_map()[s][l];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn local_string;\r\n\t}\r\n\t\t\r\n\tfunction get_ev_localize_map() {\r\n\t\treturn {\r\n\t\t\t\"The Safari browser is known to have some issues displaying recordings. Please use another browser if this happens to you.\": {\r\n\t\t\t\t\"es\": \"Se sabe que el navegador Safari tiene algunos problemas para mostrar las grabaciones. Por favor, utilice otro navegador si esto le ocurre.\",\r\n\t\t\t\t\"pt\": \"Sabe-se que o browser Safari tem alguns problemas com a visualiza\u00e7\u00e3o das grava\u00e7\u00f5es. Se isto acontecer, utilize outro browser.\",\r\n\t\t\t\t\"zh\": \"Safari \u6d4f\u89c8\u5668\u5728\u663e\u793a\u5f55\u97f3\u65f6\u53ef\u80fd\u4f1a\u51fa\u73b0\u4e00\u4e9b\u95ee\u9898\u3002\u5982\u679c\u51fa\u73b0\u8fd9\u79cd\u60c5\u51b5\uff0c\u8bf7\u4f7f\u7528\u5176\u4ed6\u6d4f\u89c8\u5668\",\r\n\t\t\t\t\"de\": \"Der Safari-Browser ist daf\u00fcr bekannt, dass er Probleme bei der Anzeige von Aufnahmen hat. Bitte verwenden Sie einen anderen Browser, wenn dies bei Ihnen der Fall ist.\",\r\n\t\t\t\t\"fr\": \"Le navigateur Safari est connu pour avoir des probl\u00e8mes d'affichage des enregistrements. Veuillez utiliser un autre navigateur si vous rencontrez ce probl\u00e8me.\"\r\n\t\t\t},\r\n\t\t\t\"No recordings available (yet)\": {\r\n\t\t\t\t\"es\": \"No hay grabaciones disponibles (todav\u00eda)\",\r\n\t\t\t\t\"pt\": \"N\u00e3o h\u00e1 grava\u00e7\u00f5es dispon\u00edveis (ainda)\",\r\n\t\t\t\t\"zh\": \"\u6ca1\u6709\u5f55\u97f3\uff08\u5c1a\u672a\uff09\u3002\",\r\n\t\t\t\t\"de\": \"(Noch) keine Aufnahmen verf\u00fcgbar\",\r\n\t\t\t\t\"fr\": \"Aucun enregistrement disponible (pour l'instant)\"\r\n\t\t\t},\r\n\t\t\t\"You no longer have access to this recording\": {\r\n\t\t\t\t\"es\": \"Ya no tiene acceso a esta grabaci\u00f3n\",\r\n\t\t\t\t\"pt\": \"J\u00e1 n\u00e3o tem acesso a esta grava\u00e7\u00e3o\",\r\n\t\t\t\t\"zh\": \"\u4f60\u4e0d\u518d\u6709\u673a\u4f1a\u63a5\u89e6\u5230\u8fd9\u4e2a\u5f55\u97f3\",\r\n\t\t\t\t\"de\": \"Sie haben keinen Zugriff mehr auf diese Aufzeichnung\",\r\n\t\t\t\t\"fr\": \"Vous n'avez plus acc\u00e8s \u00e0 cet enregistrement\"\r\n\t\t\t},\r\n\t\t\t\"Password\": {\r\n\t\t\t\t\"es\": \"contrase\u00f1a\",\r\n\t\t\t\t\"pt\": \"palavra-passe\",\r\n\t\t\t\t\"zh\": \"\u5bc6\u7801\",\r\n\t\t\t\t\"de\": \"Passwort\",\r\n\t\t\t\t\"fr\": \"mot de passe\"\r\n\t\t\t},\r\n\t\t\t\"Audio\": {\r\n\t\t\t\t\"es\": \"Audio\",\r\n\t\t\t\t\"pt\": \"\u00c1udio\",\r\n\t\t\t\t\"zh\": \"\u97f3\u9891\",\r\n\t\t\t\t\"de\": \"Audio\",\r\n\t\t\t\t\"fr\": \"Audio\"\r\n\t\t\t},\r\n\t\t\t\"Choose a topic below\": {\r\n\t\t\t\t\"es\": \"Elija un tema\",\r\n\t\t\t\t\"pt\": \"Escolha um tema abaixo\",\r\n\t\t\t\t\"zh\": \"\u8bf7\u9009\u62e9\u4ee5\u4e0b\u4e3b\u9898\",\r\n\t\t\t\t\"de\": \"W\u00e4hlen Sie unten ein Thema\",\r\n\t\t\t\t\"fr\": \"Choisissez un sujet ci-dessous\"\r\n\t\t\t},\r\n\t\t\t\"Or choose a date below\": {\r\n\t\t\t\t\"es\": \"O elige una fecha a continuaci\u00f3n\",\r\n\t\t\t\t\"pt\": \"Ou escolha uma data abaixo\",\r\n\t\t\t\t\"zh\": \"\u6216\u8005\u5728\u4e0b\u9762\u9009\u62e9\u4e00\u4e2a\u65e5\u671f\",\r\n\t\t\t\t\"de\": \"Oder w\u00e4hle unten ein Datum\",\r\n\t\t\t\t\"fr\": \"Ou choisis une date ci-dessous\"\r\n\t\t\t},\r\n\t\t\t\"Video expires after date (Pacific Time): \": {\r\n\t\t\t\t\"es\": \"El v\u00eddeo caduca despu\u00e9s de la fecha (hora del Pac\u00edfico):\",\r\n\t\t\t\t\"pt\": \"O v\u00eddeo expira ap\u00f3s a data (hora do Pac\u00edfico):\",\r\n\t\t\t\t\"zh\": \"\u89c6\u9891\u5728\u65e5\u671f\uff08\u592a\u5e73\u6d0b\u65f6\u95f4\uff09\u4e4b\u540e\u5931\u6548\uff1a\",\r\n\t\t\t\t\"de\": \"Das Video l\u00e4uft nach dem Datum ab (Pacific Time):\",\r\n\t\t\t\t\"fr\": \"La vid\u00e9o expire apr\u00e8s la date (heure du Pacifique) :\"\r\n\t\t\t}, \r\n\t\t\t\"Video expired after date (Pacific Time): \": {\r\n\t\t\t\t\"es\": \"V\u00eddeo caducado despu\u00e9s de la fecha (hora del Pac\u00edfico):\",\r\n\t\t\t\t\"pt\": \"O v\u00eddeo expirou ap\u00f3s a data (hora do Pac\u00edfico):\",\r\n\t\t\t\t\"zh\": \"\u89c6\u9891\u5df2\u8fc7\u671f\uff08\u592a\u5e73\u6d0b\u65f6\u95f4\uff09\uff1a\",\r\n\t\t\t\t\"de\": \"Das Video ist nach dem Datum abgelaufen (Pacific Time):\",\r\n\t\t\t\t\"fr\": \"La vid\u00e9o a expir\u00e9 apr\u00e8s la date (heure du Pacifique) :\"\r\n\t\t\t},\r\n\t\t\t\"Open downloadable version\": {\r\n\t\t\t\t\"es\": \"Abrir versi\u00f3n descargable\",\r\n\t\t\t\t\"pt\": \"Abrir vers\u00e3o descarreg\u00e1vel\",\r\n\t\t\t\t\"zh\": \"\u6253\u5f00\u53ef\u4e0b\u8f7d\u7248\u672c\",\r\n\t\t\t\t\"de\": \"Herunterladbare Version \u00f6ffnen\",\r\n\t\t\t\t\"fr\": \"Ouvrir la version t\u00e9l\u00e9chargeable\"\r\n\t\t\t}, \r\n\t\t};\r\n\t}\r\n})();\r\n\t\r\nfunction nb_datestr_todate(input) {\r\n\tif(input.length === 8 && \/^\\d+$\/.test(input)) {\r\n\t\treturn new Date(parseInt(input.substring(0,4)), parseInt(input.substring(4,6)) - 1, parseInt(input.substring(6,8)));\r\n\t}\r\n\tif(input !== \"\") {\r\n\t\tconsole.log(\"Cannot convert string to date: \", input);\r\n\t}\r\n\treturn null;\r\n}\r\n\t\r\nfunction nb_date_todatestr(date) {\r\n\t\/\/ getFullYear() gives the year\r\n\tconst year = date.getFullYear();\r\n\r\n\t\/\/ getMonth() gives the month (0-11), so we add 1 and pad with leading zero\r\n\tconst month = String(date.getMonth() + 1).padStart(2, '0');\r\n\r\n\t\/\/ getDate() gives the day (1-31), so we pad with leading zero\r\n\tconst day = String(date.getDate()).padStart(2, '0');\r\n\r\n\t\/\/ Combine them\r\n\treturn `${year}${month}${day}`;\r\n}\r\n\t\r\nfunction nb_md5_hash(inputString) {\r\n    var hc=\"0123456789abcdef\";\r\n    function rh(n) {var j,s=\"\";for(j=0;j<=3;j++) s+=hc.charAt((n>>(j*8+4))&0x0F)+hc.charAt((n>>(j*8))&0x0F);return s;}\r\n    function ad(x,y) {var l=(x&0xFFFF)+(y&0xFFFF);var m=(x>>16)+(y>>16)+(l>>16);return (m<<16)|(l&0xFFFF);}\r\n    function rl(n,c)            {return (n<<c)|(n>>>(32-c));}\r\n    function cm(q,a,b,x,s,t)    {return ad(rl(ad(ad(a,q),ad(x,t)),s),b);}\r\n    function ff(a,b,c,d,x,s,t)  {return cm((b&c)|((~b)&d),a,b,x,s,t);}\r\n    function gg(a,b,c,d,x,s,t)  {return cm((b&d)|(c&(~d)),a,b,x,s,t);}\r\n    function hh(a,b,c,d,x,s,t)  {return cm(b^c^d,a,b,x,s,t);}\r\n    function ii(a,b,c,d,x,s,t)  {return cm(c^(b|(~d)),a,b,x,s,t);}\r\n    function sb(x) {\r\n        var i;var nblk=((x.length+8)>>6)+1;var blks=new Array(nblk*16);for(i=0;i<nblk*16;i++) blks[i]=0;\r\n        for(i=0;i<x.length;i++) blks[i>>2]|=x.charCodeAt(i)<<((i%4)*8);\r\n        blks[i>>2]|=0x80<<((i%4)*8);blks[nblk*16-2]=x.length*8;return blks;\r\n    }\r\n    var i,x=sb(\"\"+inputString),a=1732584193,b=-271733879,c=-1732584194,d=271733878,olda,oldb,oldc,oldd;\r\n    for(i=0;i<x.length;i+=16) {olda=a;oldb=b;oldc=c;oldd=d;\r\n        a=ff(a,b,c,d,x[i+ 0], 7, -680876936);d=ff(d,a,b,c,x[i+ 1],12, -389564586);c=ff(c,d,a,b,x[i+ 2],17,  606105819);\r\n        b=ff(b,c,d,a,x[i+ 3],22,-1044525330);a=ff(a,b,c,d,x[i+ 4], 7, -176418897);d=ff(d,a,b,c,x[i+ 5],12, 1200080426);\r\n        c=ff(c,d,a,b,x[i+ 6],17,-1473231341);b=ff(b,c,d,a,x[i+ 7],22,  -45705983);a=ff(a,b,c,d,x[i+ 8], 7, 1770035416);\r\n        d=ff(d,a,b,c,x[i+ 9],12,-1958414417);c=ff(c,d,a,b,x[i+10],17,     -42063);b=ff(b,c,d,a,x[i+11],22,-1990404162);\r\n        a=ff(a,b,c,d,x[i+12], 7, 1804603682);d=ff(d,a,b,c,x[i+13],12,  -40341101);c=ff(c,d,a,b,x[i+14],17,-1502002290);\r\n        b=ff(b,c,d,a,x[i+15],22, 1236535329);a=gg(a,b,c,d,x[i+ 1], 5, -165796510);d=gg(d,a,b,c,x[i+ 6], 9,-1069501632);\r\n        c=gg(c,d,a,b,x[i+11],14,  643717713);b=gg(b,c,d,a,x[i+ 0],20, -373897302);a=gg(a,b,c,d,x[i+ 5], 5, -701558691);\r\n        d=gg(d,a,b,c,x[i+10], 9,   38016083);c=gg(c,d,a,b,x[i+15],14, -660478335);b=gg(b,c,d,a,x[i+ 4],20, -405537848);\r\n        a=gg(a,b,c,d,x[i+ 9], 5,  568446438);d=gg(d,a,b,c,x[i+14], 9,-1019803690);c=gg(c,d,a,b,x[i+ 3],14, -187363961);\r\n        b=gg(b,c,d,a,x[i+ 8],20, 1163531501);a=gg(a,b,c,d,x[i+13], 5,-1444681467);d=gg(d,a,b,c,x[i+ 2], 9,  -51403784);\r\n        c=gg(c,d,a,b,x[i+ 7],14, 1735328473);b=gg(b,c,d,a,x[i+12],20,-1926607734);a=hh(a,b,c,d,x[i+ 5], 4,    -378558);\r\n        d=hh(d,a,b,c,x[i+ 8],11,-2022574463);c=hh(c,d,a,b,x[i+11],16, 1839030562);b=hh(b,c,d,a,x[i+14],23,  -35309556);\r\n        a=hh(a,b,c,d,x[i+ 1], 4,-1530992060);d=hh(d,a,b,c,x[i+ 4],11, 1272893353);c=hh(c,d,a,b,x[i+ 7],16, -155497632);\r\n        b=hh(b,c,d,a,x[i+10],23,-1094730640);a=hh(a,b,c,d,x[i+13], 4,  681279174);d=hh(d,a,b,c,x[i+ 0],11, -358537222);\r\n        c=hh(c,d,a,b,x[i+ 3],16, -722521979);b=hh(b,c,d,a,x[i+ 6],23,   76029189);a=hh(a,b,c,d,x[i+ 9], 4, -640364487);\r\n        d=hh(d,a,b,c,x[i+12],11, -421815835);c=hh(c,d,a,b,x[i+15],16,  530742520);b=hh(b,c,d,a,x[i+ 2],23, -995338651);\r\n        a=ii(a,b,c,d,x[i+ 0], 6, -198630844);d=ii(d,a,b,c,x[i+ 7],10, 1126891415);c=ii(c,d,a,b,x[i+14],15,-1416354905);\r\n        b=ii(b,c,d,a,x[i+ 5],21,  -57434055);a=ii(a,b,c,d,x[i+12], 6, 1700485571);d=ii(d,a,b,c,x[i+ 3],10,-1894986606);\r\n        c=ii(c,d,a,b,x[i+10],15,   -1051523);b=ii(b,c,d,a,x[i+ 1],21,-2054922799);a=ii(a,b,c,d,x[i+ 8], 6, 1873313359);\r\n        d=ii(d,a,b,c,x[i+15],10,  -30611744);c=ii(c,d,a,b,x[i+ 6],15,-1560198380);b=ii(b,c,d,a,x[i+13],21, 1309151649);\r\n        a=ii(a,b,c,d,x[i+ 4], 6, -145523070);d=ii(d,a,b,c,x[i+11],10,-1120210379);c=ii(c,d,a,b,x[i+ 2],15,  718787259);\r\n        b=ii(b,c,d,a,x[i+ 9],21, -343485551);a=ad(a,olda);b=ad(b,oldb);c=ad(c,oldc);d=ad(d,oldd);\r\n    }\r\n    return rh(a)+rh(b)+rh(c)+rh(d);\r\n}\r\n<\/script>\r\n<script>\r\n(function($) {\r\n$(function(){\r\n\t$('video').contextmenu(function() { return false; });\r\n\t$('audio').contextmenu(function() { return false; });\r\n\t\/\/ Elementor dynamically generates an audio player, so watch for this\r\n\tvar MutationObserver = window.MutationObserver || window.WebKitMutationObserver;\r\n\tvar myObserver = new MutationObserver(mutationHandler);\r\n\tvar obsConfig = { childList: true, subtree: true };\r\n\tvar targetNodes = $(\".elementor-widget-wp-widget-media_audio\");\r\n\t\/\/ Add target nodes to the observer. Can only add one node at a time.\r\n\ttargetNodes.each (function () {\r\n\t\tmyObserver.observe (this, obsConfig);\r\n\t});\r\n\tfunction mutationHandler(mutationRecords) {\r\n\t\t\/\/ instead of trying to figure out mutation records, just reapply event handler\r\n\t\t$('.wp-audio-shortcode').unbind('contextmenu.norc').bind('contextmenu.norc',function() { return false; });\r\n\t}\r\n});\r\n})(jQuery);\r\n<\/script>\r\n<style>\r\n\t.ev-language-button,\r\n\t.ev-link-element {\r\n\t\tdisplay: inline-block;\r\n\t\tpadding: 5px 50px;\r\n\t\tbackground-color: #59c9e6;\r\n\t\tcursor: pointer;\r\n\t\tmargin: 5px;\r\n\t\tcolor: #FFF !important;\r\n\t\tfont-weight: bold;\r\n\t\tborder-radius: 10px;\r\n\t\ttext-align: center;\r\n\t}\r\n\t\r\n\t.ev-language-button {\r\n\t\twidth: 180px;\r\n\t}\r\n\t\r\n\t.ev-language-button.selected {\r\n\t\tpointer-events: none;\r\n  \t\tbackground-color: gray;\r\n\t}\r\n\t\r\n\t#ev-lang-button-group {\r\n\t\tmargin-bottom: 50px;\r\n\t}\r\n\t\r\n\t.ev-audio {\r\n\t\theight: 50px !important;\r\n\t\tmargin-top: 10px;\r\n\t}\r\n\t\r\n\t.ev-audio-loading {\r\n\t\theight: 1px !important;\r\n\t\twidth: 1px !important;\r\n\t}\r\n\t\r\n\t.ev-media {\r\n\t\twidth: 100%;\r\n\t}\r\n\t\r\n\t.ev-text-element-bold {\r\n\t\tfont-weight: bold;\r\n\t}\r\n\t\r\n\t.ev-title-element {\r\n\t\tfont-weight: 400;\r\n\t}\r\n\t\r\n\t.ev-title-date-part {\r\n\t\tfont-weight: bold;\r\n\t}\r\n\t\r\n\t.ev-lang-button-container {\r\n\t\tdisplay: inline-block;\r\n\t}\r\n\t\r\n\t.no-recordings-available-msg {\r\n\t  \tfont-weight: bold;\r\n\t  \tfont-size: 24px;\r\n\t  \tmargin: 0 auto;\r\n\t}\r\n\r\n\t.no-recordings-available-msg-wrapper {\r\n\t  \ttext-align: center;\r\n\t}\r\n\t\r\n\t.ev-topic-picker a {\r\n\t\tdisplay: block;\r\n\t}\r\n\t\r\n\t.ev-topic-picker {\r\n\t\ttext-align: center;\r\n\t}\r\n\t\r\n\t.ev-topic-picker h2 strong {\r\n\t\tcolor: #342E37;\r\n\t}\r\n\t\r\n\t.ev-safari-warning {\r\n\t\tborder: 1px solid #f5c132; \/* Yellow border *\/\r\n\t\tbackground-color: #fff3cd; \/* Light yellow background *\/\r\n\t\tcolor: #856404; \/* Dark yellow text *\/\r\n\t\tpadding: 20px;\r\n\t\tposition: relative;\r\n\t\tmargin-bottom: 1em;\r\n\t}\r\n\r\n\t.ev-safari-warning::before {\r\n\t\tcontent: \"i\";\r\n\t\tdisplay: inline-block;\r\n\t\twidth: 24px;\r\n\t\theight: 24px;\r\n\t\tline-height: 24px;\r\n\t\tborder-radius: 50%;\r\n\t\tborder: 2px solid #856404;\r\n\t\ttext-align: center;\r\n\t\tcolor: #856404;\r\n\t\tfont-weight: bold;\r\n\t\tmargin-right: 10px;\r\n\t}\r\n\t\r\n\t.ev-expired-msg {\r\n\t\tmargin-bottom: 0px;\r\n\t}\r\n\t\r\n\t.ev-expiration-msg {\r\n\t\tposition: relative;\r\n\t\tfont-size: 14px;\r\n\t\tmargin: 0;\r\n\t\tcolor: #0074D9;\r\n\t\tmargin-bottom: 25px;\r\n\t}\r\n\r\n\t.ev-expiration-msg::before {\r\n\t\tcontent: \"\u2139\"; \/* Unicode character for the info icon *\/\r\n\t\tfont-size: 16px;\r\n\t\tcolor: #0074D9; \/* Customize icon color *\/\r\n\t\tmargin-right: 5px; \/* Add spacing between icon and text *\/\r\n\t}\r\n\t\r\n\t@media only screen and (max-width: 646px) and (min-width: 440px) {\r\n\t\t.ev-lang-button-container {\r\n\t\t\twidth: calc(50% - 10px);\r\n\t\t}\r\n\t\t.ev-language-button {\r\n\t\t\twidth: 100%;\r\n\t\t}\r\n\t\t.ev-link-element {\r\n\t\t\twidth: 100%;\r\n\t\t}\r\n\t}\r\n\t\r\n\t@media only screen and (max-width: 440px) {\r\n\t\t.ev-language-button, .ev-lang-button-container {\r\n\t\t\twidth: 100%;\r\n\t\t}\r\n\t\t.ev-link-element {\r\n\t\t\twidth: 100%;\r\n\t\t}\r\n\t}\r\n<\/style>","protected":false},"excerpt":{"rendered":"<p>Losar address by Dzogchen Ponlop Rinpoche<\/p>","protected":false},"author":98,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_links_to":"","_links_to_target":""},"categories":[24],"tags":[],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Ponlop Rinpoche Losar Address 2026 - Nalandabodhi International<\/title>\n<meta name=\"description\" content=\"Losar address by Dzogchen Ponlop Rinpoche\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/nalandabodhi.org\/nl\/2026\/02\/18\/ponlop-rinpoche-losar-address-2026\/\" \/>\n<meta property=\"og:locale\" content=\"nl_NL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Ponlop Rinpoche Losar Address 2026 - Nalandabodhi International\" \/>\n<meta property=\"og:description\" content=\"Losar address by Dzogchen Ponlop Rinpoche\" \/>\n<meta property=\"og:url\" content=\"https:\/\/nalandabodhi.org\/nl\/2026\/02\/18\/ponlop-rinpoche-losar-address-2026\/\" \/>\n<meta property=\"og:site_name\" content=\"Nalandabodhi International\" \/>\n<meta property=\"article:published_time\" content=\"2026-02-18T22:04:08+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-03-30T17:17:25+00:00\" \/>\n<meta name=\"author\" content=\"maurice\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Geschreven door\" \/>\n\t<meta name=\"twitter:data1\" content=\"maurice\" \/>\n\t<meta name=\"twitter:label2\" content=\"Geschatte leestijd\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minuut\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/nalandabodhi.org\/2026\/02\/18\/ponlop-rinpoche-losar-address-2026\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/nalandabodhi.org\/2026\/02\/18\/ponlop-rinpoche-losar-address-2026\/\"},\"author\":{\"name\":\"maurice\",\"@id\":\"https:\/\/nalandabodhi.org\/fr\/#\/schema\/person\/741b513a75293e7a9cbb1c1346c2f4d5\"},\"headline\":\"Ponlop Rinpoche Losar Address 2026\",\"datePublished\":\"2026-02-18T22:04:08+00:00\",\"dateModified\":\"2026-03-30T17:17:25+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/nalandabodhi.org\/2026\/02\/18\/ponlop-rinpoche-losar-address-2026\/\"},\"wordCount\":24,\"publisher\":{\"@id\":\"https:\/\/nalandabodhi.org\/fr\/#organization\"},\"articleSection\":[\"General\"],\"inLanguage\":\"nl\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/nalandabodhi.org\/2026\/02\/18\/ponlop-rinpoche-losar-address-2026\/\",\"url\":\"https:\/\/nalandabodhi.org\/2026\/02\/18\/ponlop-rinpoche-losar-address-2026\/\",\"name\":\"Ponlop Rinpoche Losar Address 2026 - Nalandabodhi International\",\"isPartOf\":{\"@id\":\"https:\/\/nalandabodhi.org\/fr\/#website\"},\"datePublished\":\"2026-02-18T22:04:08+00:00\",\"dateModified\":\"2026-03-30T17:17:25+00:00\",\"description\":\"Losar address by Dzogchen Ponlop Rinpoche\",\"breadcrumb\":{\"@id\":\"https:\/\/nalandabodhi.org\/2026\/02\/18\/ponlop-rinpoche-losar-address-2026\/#breadcrumb\"},\"inLanguage\":\"nl\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/nalandabodhi.org\/2026\/02\/18\/ponlop-rinpoche-losar-address-2026\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/nalandabodhi.org\/2026\/02\/18\/ponlop-rinpoche-losar-address-2026\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/nalandabodhi.org\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Ponlop Rinpoche Losar Address 2026\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/nalandabodhi.org\/fr\/#website\",\"url\":\"https:\/\/nalandabodhi.org\/fr\/\",\"name\":\"Nalandabodhi International\",\"description\":\"Be Wise, GoKind, Live Fully\",\"publisher\":{\"@id\":\"https:\/\/nalandabodhi.org\/fr\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/nalandabodhi.org\/fr\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"nl\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/nalandabodhi.org\/fr\/#organization\",\"name\":\"Nalandabodhi\",\"url\":\"https:\/\/nalandabodhi.org\/fr\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"nl\",\"@id\":\"https:\/\/nalandabodhi.org\/fr\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/nalandabodhi.org\/wp-content\/uploads\/2020\/05\/NBLogo.png\",\"contentUrl\":\"https:\/\/nalandabodhi.org\/wp-content\/uploads\/2020\/05\/NBLogo.png\",\"width\":785,\"height\":785,\"caption\":\"Nalandabodhi\"},\"image\":{\"@id\":\"https:\/\/nalandabodhi.org\/fr\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/nalandabodhi.org\/fr\/#\/schema\/person\/741b513a75293e7a9cbb1c1346c2f4d5\",\"name\":\"maurice\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"nl\",\"@id\":\"https:\/\/nalandabodhi.org\/fr\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/1fbfa12a721efa3dae2c0b7f59af88b5?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/1fbfa12a721efa3dae2c0b7f59af88b5?s=96&d=mm&r=g\",\"caption\":\"maurice\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Ponlop Rinpoche Losar Address 2026 - Nalandabodhi International","description":"Losar address by Dzogchen Ponlop Rinpoche","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:\/\/nalandabodhi.org\/nl\/2026\/02\/18\/ponlop-rinpoche-losar-address-2026\/","og_locale":"nl_NL","og_type":"article","og_title":"Ponlop Rinpoche Losar Address 2026 - Nalandabodhi International","og_description":"Losar address by Dzogchen Ponlop Rinpoche","og_url":"https:\/\/nalandabodhi.org\/nl\/2026\/02\/18\/ponlop-rinpoche-losar-address-2026\/","og_site_name":"Nalandabodhi International","article_published_time":"2026-02-18T22:04:08+00:00","article_modified_time":"2026-03-30T17:17:25+00:00","author":"maurice","twitter_card":"summary_large_image","twitter_misc":{"Geschreven door":"maurice","Geschatte leestijd":"1 minuut"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/nalandabodhi.org\/2026\/02\/18\/ponlop-rinpoche-losar-address-2026\/#article","isPartOf":{"@id":"https:\/\/nalandabodhi.org\/2026\/02\/18\/ponlop-rinpoche-losar-address-2026\/"},"author":{"name":"maurice","@id":"https:\/\/nalandabodhi.org\/fr\/#\/schema\/person\/741b513a75293e7a9cbb1c1346c2f4d5"},"headline":"Ponlop Rinpoche Losar Address 2026","datePublished":"2026-02-18T22:04:08+00:00","dateModified":"2026-03-30T17:17:25+00:00","mainEntityOfPage":{"@id":"https:\/\/nalandabodhi.org\/2026\/02\/18\/ponlop-rinpoche-losar-address-2026\/"},"wordCount":24,"publisher":{"@id":"https:\/\/nalandabodhi.org\/fr\/#organization"},"articleSection":["General"],"inLanguage":"nl"},{"@type":"WebPage","@id":"https:\/\/nalandabodhi.org\/2026\/02\/18\/ponlop-rinpoche-losar-address-2026\/","url":"https:\/\/nalandabodhi.org\/2026\/02\/18\/ponlop-rinpoche-losar-address-2026\/","name":"Ponlop Rinpoche Losar Address 2026 - Nalandabodhi International","isPartOf":{"@id":"https:\/\/nalandabodhi.org\/fr\/#website"},"datePublished":"2026-02-18T22:04:08+00:00","dateModified":"2026-03-30T17:17:25+00:00","description":"Losar address by Dzogchen Ponlop Rinpoche","breadcrumb":{"@id":"https:\/\/nalandabodhi.org\/2026\/02\/18\/ponlop-rinpoche-losar-address-2026\/#breadcrumb"},"inLanguage":"nl","potentialAction":[{"@type":"ReadAction","target":["https:\/\/nalandabodhi.org\/2026\/02\/18\/ponlop-rinpoche-losar-address-2026\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/nalandabodhi.org\/2026\/02\/18\/ponlop-rinpoche-losar-address-2026\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/nalandabodhi.org\/"},{"@type":"ListItem","position":2,"name":"Ponlop Rinpoche Losar Address 2026"}]},{"@type":"WebSite","@id":"https:\/\/nalandabodhi.org\/fr\/#website","url":"https:\/\/nalandabodhi.org\/fr\/","name":"Nalandabodhi International","description":"Be Wise, GoKind, Live Fully","publisher":{"@id":"https:\/\/nalandabodhi.org\/fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/nalandabodhi.org\/fr\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"nl"},{"@type":"Organization","@id":"https:\/\/nalandabodhi.org\/fr\/#organization","name":"Nalandabodhi","url":"https:\/\/nalandabodhi.org\/fr\/","logo":{"@type":"ImageObject","inLanguage":"nl","@id":"https:\/\/nalandabodhi.org\/fr\/#\/schema\/logo\/image\/","url":"https:\/\/nalandabodhi.org\/wp-content\/uploads\/2020\/05\/NBLogo.png","contentUrl":"https:\/\/nalandabodhi.org\/wp-content\/uploads\/2020\/05\/NBLogo.png","width":785,"height":785,"caption":"Nalandabodhi"},"image":{"@id":"https:\/\/nalandabodhi.org\/fr\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/nalandabodhi.org\/fr\/#\/schema\/person\/741b513a75293e7a9cbb1c1346c2f4d5","name":"maurice","image":{"@type":"ImageObject","inLanguage":"nl","@id":"https:\/\/nalandabodhi.org\/fr\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/1fbfa12a721efa3dae2c0b7f59af88b5?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1fbfa12a721efa3dae2c0b7f59af88b5?s=96&d=mm&r=g","caption":"maurice"}}]}},"_links":{"self":[{"href":"https:\/\/nalandabodhi.org\/nl\/wp-json\/wp\/v2\/posts\/72484"}],"collection":[{"href":"https:\/\/nalandabodhi.org\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nalandabodhi.org\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nalandabodhi.org\/nl\/wp-json\/wp\/v2\/users\/98"}],"replies":[{"embeddable":true,"href":"https:\/\/nalandabodhi.org\/nl\/wp-json\/wp\/v2\/comments?post=72484"}],"version-history":[{"count":2,"href":"https:\/\/nalandabodhi.org\/nl\/wp-json\/wp\/v2\/posts\/72484\/revisions"}],"predecessor-version":[{"id":74295,"href":"https:\/\/nalandabodhi.org\/nl\/wp-json\/wp\/v2\/posts\/72484\/revisions\/74295"}],"wp:attachment":[{"href":"https:\/\/nalandabodhi.org\/nl\/wp-json\/wp\/v2\/media?parent=72484"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nalandabodhi.org\/nl\/wp-json\/wp\/v2\/categories?post=72484"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nalandabodhi.org\/nl\/wp-json\/wp\/v2\/tags?post=72484"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}