{"version":3,"names":[],"mappings":"","sources":["breadcrumb.js"],"sourcesContent":["(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i\\n
\\n
\\n \\n
\\n \\n \\n {{isEnglish ? \\'Share\\' : \\'Compartilhe\\'}}\\n \\n \\n
\\n
\\n \\n {{ isEnglish ? \\'Back to Home\\' : \\'Voltar \\xE0 Home\\' }} \\n \\n
\\n
\\n
\\n \\n ',\n mixins: [translateMixin],\n created: function created() {\n var listUrl = this.getListUrl();\n var itemId = $pnp.util.getUrlParamByName('ID');\n\n Promise.all([this.getBiblioteca(listUrl), this.getPagina(listUrl, itemId)]).then(this.applyGetData, this.threatError.bind(this, 'erro ao obter informações da lista ' + this.listName + ''));\n\n $(window).click(function () {\n $('.content-share').hide();\n });\n },\n mounted: function mounted() {\n var title = $('.share-title').text() || document.title;\n var content = $('.share-text').text() || $(\"[class*='ExternalClass']\").text() || document.title;\n $('.content-share').shareSX({\n showLabels: true,\n showIcons: true,\n title: title,\n url: window.location.href,\n content: content,\n types: ['facebook', 'twitter', 'linkedin', 'whatsapp', 'email']\n });\n },\n\n methods: {\n getList: function getList(url) {\n var currentSite = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n var web = currentSite ? $pnp.sp.web : new $pnp.Web(_spPageContextInfo.siteAbsoluteUrl);\n if (url) return web.getList(url);else return $pnp.sp.web.lists.getById(_spPageContextInfo.pageListId);\n },\n\n getBiblioteca: function getBiblioteca(listUrl) {\n var _this = this;\n\n return this.getList(listUrl, false).get().then(function (item) {\n if (_this.isArea()) {\n item.Url = '/paginas/areas-atuacao.aspx';\n } else if (_this.isSetor()) {\n item.Url = '/paginas/setores-atuacao.aspx';\n }\n\n if (_this.isEnglish) {\n item.Title = 'Pages';\n }\n _this.$set(_this, 'breadCrumbList', item);\n\n // verificando se está em uma \"Disp\" e montando a sessão anterior a disp.\n if (_spPageContextInfo.serverRequestPath.match(/detalhes-area/i)) {\n _this.currentSection = _this.isEnglish ? 'Practices Area' : 'Áreas de Atuação';\n _this.dispTitle = $('.title.text-secondary').text();\n } else if (_spPageContextInfo.serverRequestPath.match(/noticia/i)) {\n _this.currentSection = _this.isEnglish ? 'News and Publications' : 'Notícias e Publicações';\n _this.dispTitle = $('.title.text-secondary').text();\n } else if (_spPageContextInfo.serverRequestPath.match(/detalhe-profissional/i)) {\n _this.currentSection = _this.isEnglish ? 'Professionals' : 'Profissionais';\n _this.dispTitle = $('.title.text-secondary').text();\n }\n });\n },\n getPagina: function getPagina(listUrl, id) {\n var _this2 = this;\n\n return this.getList(listUrl).items.getById(id || _spPageContextInfo.pageItemId).get().then(function (results) {\n _this2.$set(_this2, 'breadCrumbItem', results);\n });\n },\n getListUrl: function getListUrl() {\n if (this.isArea()) {\n return _spPageContextInfo.siteServerRelativeUrl + 'lists/areasAtuacao';\n } else if (this.isSetor()) {\n return _spPageContextInfo.siteServerRelativeUrl + 'lists/Setores';\n }\n return null;\n },\n isArea: function isArea() {\n return window.location.href.match(/area-atuacao/i);\n },\n isSetor: function isSetor() {\n return window.location.href.match(/setores/i);\n },\n\n threatError: function threatError(msg, data) {\n console.error('error - ' + msg + ' - ' + data);\n },\n openShare: function openShare(event) {\n event.stopPropagation();\n $('.content-share').show();\n }\n },\n data: function data() {\n var listName = 'Paginas';\n return {\n listName: listName,\n listUrl: _spPageContextInfo.webServerRelativeUrl + '/lists/' + listName + '',\n breadCrumbList: {},\n breadCrumbItem: {},\n currentSection: null,\n dispTitle: null\n };\n }\n});\n\nvar app = new Vue({\n el: '#breadcrumb',\n template: ''\n});\n\n},{\"../../mixins/translate\":3,\"../shareSX\":2}],2:[function(require,module,exports){\n'use strict';\n\n//Plugin de compartilhamento nas redes sociais\nvar ie = window.navigator.userAgent.toString().indexOf('MSIE 9.0') > -1 || window.navigator.userAgent.toString().indexOf('MSIE 10.0') > -1;\njQuery.fn.extend({\n shareSX: function shareSX(option) {\n //if(!option.types.length || !option.url){return false;}\n var isEnglish = CurrentLanguageLCID == 'en-US';\n var html = '\\n ';\n //apendando o html no seletor\n\n $(this).html(html);\n\n //montando url's das redes;\n function getShareLink(type) {\n var link = \"\";\n var emailHref = \"\";\n\n //verificando se o link é externo ou relativo;\n if ((option.url || '').indexOf('http') > -1) {\n option.url = option.url;\n } else {\n option.url = _spPageContextInfo.webAbsoluteUrl + option.url;\n }\n\n if (type.toLowerCase() == \"facebook\") {\n if (isMobile) {\n link = 'https://m.facebook.com/sharer/sharer.php?u=' + option.url;\n } else {\n link = 'https://facebook.com/sharer/sharer.php?u=' + option.url;\n }\n } else if (type.toLowerCase() == \"twitter\") {\n if (isMobile) {\n link = 'http://twitter.com/intent/tweet?text=Bichara - ' + option.title + ': ' + option.url;\n } else {\n\n link = 'http://twitter.com/home?status=Bichara - ' + option.title.replace(/&/gim, '%26') + ': ' + option.url.replace(/&/gim, '%26');\n }\n } else if (type.toLowerCase() == \"linkedin\") link = 'https://www.linkedin.com/shareArticle?url=' + option.url.replace(/&/gim, '%26').replace(/=/g, '/') + '&title=' + option.title.replace(/&/gim, '%26');else if (type.toLowerCase() == \"google-plus\") link = 'https://plusone.google.com/_/+1/confirm?hl=pt&url=' + option.url + '&title=' + option.title;else if (type.toLowerCase() == \"whatsapp\") {\n if (isMobile) {\n link = 'whatsapp://send?text=' + encodeURIComponent('Bichara Advogados - ' + decodeURIComponent(option.title) + ': ' + option.url);\n } else {\n link = 'https://web.whatsapp.com/send?text=' + encodeURIComponent('Bichara Advogados - ' + decodeURIComponent(option.title) + ': ' + option.url);\n }\n //Share via Whatsapp web\n\n } else if (type.toLowerCase() == \"email\") {\n link = getMailToUrl(option.content, titleEmail, encodeURIComponent(option.url));\n }\n return link;\n }\n }\n});\n\n//função para abrir a modal e passar lagura e altura para centralizar\nwindow.PopupCenterDual = function (url, title, w, h, element) {\n if (ie) {\n element.removeAttr('href');\n }\n // Fixes dual-screen position Most browsers Firefox\n var dualScreenLeft = window.screenLeft != undefined ? window.screenLeft : screen.left;\n var dualScreenTop = window.screenTop != undefined ? window.screenTop : screen.top;\n var width = window.innerWidth ? window.innerWidth : document.documentElement.clientWidth ? document.documentElement.clientWidth : screen.width;\n var height = window.innerHeight ? window.innerHeight : document.documentElement.clientHeight ? document.documentElement.clientHeight : screen.height;\n\n var left = width / 2 - w / 2 + dualScreenLeft;\n var top = height / 2 - h / 2 + dualScreenTop;\n var newWindow = window.open(url, title, 'scrollbars=yes, width=' + w + ', height=' + h + ', top=' + top + ', left=' + left + 'toolbar=no, scrollbars=no, resizable=no, location=no, status=no');\n\n // Puts focus on the newWindow\n /*if (window.focus) {\r\n newWindow.focus();\r\n }*/\n return false;\n};\n\nfunction getMailToUrl(conteudo, titulo, urlShare) {\n var url = \"\";\n var body = '';\n var encodedLineBreak = \"%0A%0A\";\n conteudo = conteudo || titulo;\n titulo = titulo.replace(/[&]/g, '%26');\n\n body = getEmailBody(parseMailBodyContent(conteudo)) + makeUrlAbsolute(urlShare).replace(/&/gim, '%26').replace(/\"/gim, '%22');\n\n return \"mailto:?subject=\" + titulo + \"&body=\" + body;\n}\n\nfunction makeUrlAbsolute(url) {\n if (!url) return window.location.href;\n\n if (url.indexOf('http') > -1) {\n return url;\n } else {\n return _spPageContextInfo.webAbsoluteUrl + encodeURI(url);\n }\n}\n\nfunction parseMailBodyContent(bodyContent) {\n bodyContent = '
' + bodyContent + '
';\n\n var domConteudo = $(bodyContent.replace(/
/g, '\\n
'));\n\n domConteudo.find(\"p\").each(function () {\n var htmlSemQuebra = $(this).html().replace(/\\n/g, '').replace(/
/g, '\\n');\n $(this).html(htmlSemQuebra);\n });\n\n bodyContent = domConteudo.text().replace(/\\n\\n/g, \"\\n\");\n bodyContent = $.trim(domConteudo.text());\n return bodyContent;\n}\n\nfunction getEmailBody(conteudo) {\n var encodedLineBreak = \"%0A%0A\";\n var textoInicio = \"Um conteúdo do site Bichara Advogados foi enviado para você:\";\n var textoLink = \"Clique para ler o conteúdo na íntegra: \";\n var body = '';\n conteudo = conteudo;\n\n if (CurrentLanguageLCID == \"en-US\") {\n textoLink = \"Please click here to access full content: \";\n textoInicio = \"A content from the Bichara Law website has been sent to you:\";\n }\n\n conteudo = conteudo.replace(/[&]/g, '%26').replace(/\"/gim, '%22');\n body = textoInicio + encodedLineBreak + truncateText(conteudo, 335) + encodedLineBreak + textoLink;\n\n return body;\n}\n\nfunction truncateText(text, length) {\n if (text.length > length) {\n return text.substring(0, length - 3) + \"...\";\n } else {\n return text;\n }\n}\n\n},{}],3:[function(require,module,exports){\n\"use strict\";\n\nwindow.translateMixin = {\n methods: {\n changeLanguage: function changeLanguage(value) {\n if (CurrentLanguageDecimal == value) {\n return null;\n }\n\n var today = new Date();\n var oneYear = new Date(today.getTime() + 365 * 24 * 60 * 60 * 1000);\n var url = window.location.href;\n document.cookie = \"lcid=\" + value + \";path=/;expires=\" + oneYear.toGMTString();\n location.href = url;\n location.reload();\n }\n },\n data: function data() {\n return {\n isEnglish: CurrentLanguageDecimal == 1033,\n currentLang: CurrentLanguageDecimal\n };\n }\n};\n\n},{}]},{},[1])\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJzcmMvanMvY29tcG9uZW50cy9wYWdpbmFzL2JyZWFkY3J1bWIuanMiLCJzcmMvanMvY29tcG9uZW50cy9zaGFyZVNYLmpzIiwic3JjL2pzL21peGlucy90cmFuc2xhdGUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztBQ0FBLFFBQVEsd0JBQVI7QUFDQSxRQUFRLFlBQVI7O0FBRUEsS0FBSyxLQUFMLENBQVc7QUFDUCxhQUFTO0FBQ0wsa0JBQVU7QUFETDtBQURGLENBQVg7O0FBTUEsSUFBSSxTQUFKLENBQWMsWUFBZCxFQUE0QjtBQUN4Qix3OEJBZW1ELG1CQUFtQixRQWZ0RSxtOERBRHdCO0FBbUR4QixZQUFRLENBQUMsY0FBRCxDQW5EZ0I7QUFvRHhCLGFBQVMsbUJBQVc7QUFDaEIsWUFBSSxVQUFVLEtBQUssVUFBTCxFQUFkO0FBQ0EsWUFBSSxTQUFTLEtBQUssSUFBTCxDQUFVLGlCQUFWLENBQTRCLElBQTVCLENBQWI7O0FBRUEsZ0JBQVEsR0FBUixDQUFZLENBQ1IsS0FBSyxhQUFMLENBQW1CLE9BQW5CLENBRFEsRUFFUixLQUFLLFNBQUwsQ0FBZSxPQUFmLEVBQXdCLE1BQXhCLENBRlEsQ0FBWixFQUdHLElBSEgsQ0FHUSxLQUFLLFlBSGIsRUFHMkIsS0FBSyxXQUFMLENBQWlCLElBQWpCLENBQXNCLElBQXRCLEVBQTRCLHdDQUF3QyxLQUFLLFFBQTdDLEdBQXdELEVBQXBGLENBSDNCOztBQUtBLFVBQUUsTUFBRixFQUFVLEtBQVYsQ0FBZ0IsWUFBVztBQUN4QixjQUFFLGdCQUFGLEVBQW9CLElBQXBCO0FBQ0YsU0FGRDtBQUdILEtBaEV1QjtBQWlFeEIsV0FqRXdCLHFCQWlFZDtBQUNOLFlBQUksUUFBUSxFQUFFLGNBQUYsRUFBa0IsSUFBbEIsTUFBNEIsU0FBUyxLQUFqRDtBQUNBLFlBQUksVUFBVSxFQUFFLGFBQUYsRUFBaUIsSUFBakIsTUFBMkIsRUFB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aEMsUUFBSSxLQUFLLE1BQUwsR0FBYyxNQUFsQixFQUEwQjtBQUN0QixlQUFPLEtBQUssU0FBTCxDQUFlLENBQWYsRUFBa0IsU0FBUyxDQUEzQixJQUFnQyxLQUF2QztBQUNILEtBRkQsTUFHSztBQUNELGVBQU8sSUFBUDtBQUNIO0FBQ0o7Ozs7O0FDbE1ELE9BQU8sY0FBUCxHQUF3QjtBQUNwQixhQUFTO0FBQ0wsc0JBREssMEJBQ1UsS0FEVixFQUNpQjtBQUNsQixnQkFBSSwwQkFBMEIsS0FBOUIsRUFBcUM7QUFDakMsdUJBQU8sSUFBUDtBQUNIOztBQUVELGdCQUFJLFFBQVEsSUFBSSxJQUFKLEVBQVo7QUFDQSxnQkFBSSxVQUFVLElBQUksSUFBSixDQUFTLE1BQU0sT0FBTixLQUFrQixNQUFNLEVBQU4sR0FBVyxFQUFYLEdBQWdCLEVBQWhCLEdBQXFCLElBQWhELENBQWQ7QUFDQSxnQkFBSSxNQUFNLE9BQU8sUUFBUCxDQUFnQixJQUExQjtBQUNBLHFCQUFTLE1BQVQsR0FBa0IsVUFBVSxLQUFWLEdBQWtCLGtCQUFsQixHQUF1QyxRQUFRLFdBQVIsRUFBekQ7QUFDQSxxQkFBUyxJQUFULEdBQWdCLEdBQWhCO0FBQ0EscUJBQVMsTUFBVDtBQUNIO0FBWkksS0FEVztBQWVwQixRQWZvQixrQkFlYjtBQUNILGVBQU87QUFDSCx1QkFBVywwQkFBMEIsSUFEbEM7QUFFSCx5QkFBYTtBQUZWLFNBQVA7QUFJSDtBQXBCbUIsQ0FBeEIiLCJmaWxlIjoiZ2VuZXJhdGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbigpe2Z1bmN0aW9uIHIoZSxuLHQpe2Z1bmN0aW9uIG8oaSxmKXtpZighbltpXSl7aWYoIWVbaV0pe3ZhciBjPVwiZnVuY3Rpb25cIj09dHlwZW9mIHJlcXVpcmUmJnJlcXVpcmU7aWYoIWYmJmMpcmV0dXJuIGMoaSwhMCk7aWYodSlyZXR1cm4gdShpLCEwKTt2YXIgYT1uZXcgRXJyb3IoXCJDYW5ub3QgZmluZCBtb2R1bGUgJ1wiK2krXCInXCIpO3Rocm93IGEuY29kZT1cIk1PRFVMRV9OT1RfRk9VTkRcIixhfXZhciBwPW5baV09e2V4cG9ydHM6e319O2VbaV1bMF0uY2FsbChwLmV4cG9ydHMsZnVuY3Rpb24ocil7dmFyIG49ZVtpXVsxXVtyXTtyZXR1cm4gbyhufHxyKX0scCxwLmV4cG9ydHMscixlLG4sdCl9cmV0dXJuIG5baV0uZXhwb3J0c31mb3IodmFyIHU9XCJmdW5jdGlvblwiPT10eXBlb2YgcmVxdWlyZSYmcmVxdWlyZSxpPTA7aTx0Lmxlbmd0aDtpKyspbyh0W2ldKTtyZXR1cm4gb31yZXR1cm4gcn0pKCkiLCJyZXF1aXJlKCcuLi8uLi9taXhpbnMvdHJhbnNsYXRlJyk7XHJcbnJlcXVpcmUoJy4uL3NoYXJlU1gnKTtcclxuXHJcbiRwbnAuc2V0dXAoe1xyXG4gICAgaGVhZGVyczoge1xyXG4gICAgICAgIFwiQWNjZXB0XCI6IFwiYXBwbGljYXRpb24vanNvbjsgb2RhdGE9dmVyYm9zZVwiXHJcbiAgICB9XHJcbn0pO1xyXG5cclxuVnVlLmNvbXBvbmVudCgnYnJlYWRjcnVtYicsIHtcclxuICAgIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2IGNsYXNzPVwiYmctc2Vjb25kYXJ5IGN1c3RvbS1icmVhZGNydW1iXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICA8bmF2IGNsYXNzPVwiY29sLXNtLTggXCIgYXJpYS1sYWJlbD1cImJyZWFkY3J1bWJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8b2wgY2xhc3M9XCJicmVhZGNydW1iIHJvdW5kZWQtMCBiZy10cmFuc3BhcmVudCBtYi0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS08bGkgY2xhc3M9XCJicmVhZGNydW1iLWl0ZW0gbG9jYWwgdGV4dC13aGl0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1tYXAtbWFya2VyLWFsdCB0ZXh0LXRlcnRpYXJ5XCI+PC9pPiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtdm9jZVwiPnt7IGlzRW5nbGlzaCA/ICdZb3XigJlyZSBhdDonIDogJ1ZvY8OqIGVzdMOhIGVtJyB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1jaGV2cm9uLXJpZ2h0IHRleHQtd2hpdGVcIj48L2k+IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPi0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJicmVhZGNydW1iLWl0ZW0gbG9jYWwgdGV4dC13aGl0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1tYXAtbWFya2VyLWFsdCB0ZXh0LXRlcnRpYXJ5XCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXdoaXRlXCI+JHtfc3BQYWdlQ29udGV4dEluZm8ud2ViVGl0bGV9PC9zcGFuPiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLWNoZXZyb24tcmlnaHQgdGV4dC13aGl0ZVwiPjwvaT4gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSB2LXNob3c9XCJjdXJyZW50U2VjdGlvblwiIGNsYXNzPVwiYnJlYWRjcnVtYi1pdGVtIHRleHQtd2hpdGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC10ZXJ0aWFyeVwiPnt7IGN1cnJlbnRTZWN0aW9uIH19PC9zcGFuPiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLWNoZXZyb24tcmlnaHQgdGV4dC13aGl0ZVwiPjwvaT4gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSByZWw9XCJjdXJyZW50UGFnZVwiIGNsYXNzPVwiYnJlYWRjcnVtYi1pdGVtIGN1cnJlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC10ZXJ0aWFyeVwiPiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGVtcGxhdGUgdi1pZj1cImN1cnJlbnRTZWN0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGRpc3BUaXRsZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRlbXBsYXRlIHYtZWxzZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgIWlzRW5nbGlzaCA/IGJyZWFkQ3J1bWJJdGVtLlRpdGxlIDogKGJyZWFkQ3J1bWJJdGVtLlRpdGxlRU4gfHwgYnJlYWRDcnVtYkl0ZW0uVGl0bGUpIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICA8L29sPlxyXG4gICAgICAgICAgICAgICAgPC9uYXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTQgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtZW5kIHNoYXJlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXdoaXRlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXItMyB0ZXh0LXdoaXRlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2lzRW5nbGlzaCA/ICdTaGFyZScgOiAnQ29tcGFydGlsaGUnfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJ0LXNoYXJlXCIgQGNsaWNrPVwib3BlblNoYXJlKCRldmVudClcIj48aSBjbGFzcz1cImZhcyBmYS1zaGFyZS1hbHQgdGV4dC13aGl0ZVwiPjwvaT48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50LXNoYXJlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC13aGl0ZSBtbC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwidGV4dC13aGl0ZSBiYWNrLWhvbWVcIiA6aHJlZj1cIl9zcFBhZ2VDb250ZXh0SW5mby53ZWJTZXJ2ZXJSZWxhdGl2ZVVybFwiIDp0aXRsZT1cImlzRW5nbGlzaCA/ICdCYWNrIHRvIEhvbWUnIDogJ1ZvbHRhciDDoCBIb21lJ1wiPnt7IGlzRW5nbGlzaCA/ICdCYWNrIHRvIEhvbWUnIDogJ1ZvbHRhciDDoCBIb21lJyB9fSA8aSBjbGFzcz1cIm1sLTIgZmFzIGZhLWhvbWVcIj48L2k+PC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgYCxcclxuICAgIG1peGluczogW3RyYW5zbGF0ZU1peGluXSxcclxuICAgIGNyZWF0ZWQ6IGZ1bmN0aW9uKCkge1xyXG4gICAgICAgIHZhciBsaXN0VXJsID0gdGhpcy5nZXRMaXN0VXJsKCk7XHJcbiAgICAgICAgdmFyIGl0ZW1JZCA9ICRwbnAudXRpbC5nZXRVcmxQYXJhbUJ5TmFtZSgnSUQnKTtcclxuXHJcbiAgICAgICAgUHJvbWlzZS5hbGwoW1xyXG4gICAgICAgICAgICB0aGlzLmdldEJpYmxpb3RlY2EobGlzdFVybCksXHJcbiAgICAgICAgICAgIHRoaXMuZ2V0UGFnaW5hKGxpc3RVcmwsIGl0ZW1JZClcclxuICAgICAgICBdKS50aGVuKHRoaXMuYXBwbHlHZXREYXRhLCB0aGlzLnRocmVhdEVycm9yLmJpbmQodGhpcywgJ2Vycm8gYW8gb2J0ZXIgaW5mb3JtYcOnw7VlcyBkYSBsaXN0YSAnICsgdGhpcy5saXN0TmFtZSArICcnKSk7XHJcblxyXG4gICAgICAgICQod2luZG93KS5jbGljayhmdW5jdGlvbigpIHtcclxuICAgICAgICAgICAkKCcuY29udGVudC1zaGFyZScpLmhpZGUoKTtcclxuICAgICAgICB9KTtcclxuICAgIH0sXHJcbiAgICBtb3VudGVkKCkge1xyXG4gICAgICAgIHZhciB0aXRsZSA9ICQoJy5zaGFyZS10aXRsZScpLnRleHQoKSB8fCBkb2N1bWVudC50aXRsZVxyXG4gICAgICAgIHZhciBjb250ZW50ID0gJCgnLnNoYXJlLXRleHQnKS50ZXh0KCkgfHwgJChcIltjbGFzcyo9J0V4dGVybmFsQ2xhc3MnXVwiKS50ZXh0KCkgfHwgZG9jdW1lbnQudGl0bGVcclxuICAgICAgICAkKCcuY29udGVudC1zaGFyZScpLnNoYXJlU1goe1xyXG4gICAgICAgICAgICBzaG93TGFiZWxzOiB0cnVlLFxyXG4gICAgICAgICAgICBzaG93SWNvbnM6IHRydWUsXHJcbiAgICAgICAgICAgIHRpdGxlOiB0aXRsZSxcclxuICAgICAgICAgICAgdXJsOiB3aW5kb3cubG9jYXRpb24uaHJlZixcclxuICAgICAgICAgICAgY29udGVudDogY29udGVudCxcclxuICAgICAgICAgICAgdHlwZXM6IFsnZmFjZWJvb2snLCAndHdpdHRlcicsICdsaW5rZWRpbicsICd3aGF0c2FwcCcsICdlbWFpbCddXHJcbiAgICAgICAgfSlcclxuICAgIH0sXHJcbiAgICBtZXRob2RzOiB7XHJcbiAgICAgICAgZ2V0TGlzdCh1cmwsIGN1cnJlbnRTaXRlID0gdHJ1ZSkge1xyXG4gICAgICAgICAgICB2YXIgd2ViID0gY3VycmVudFNpdGUgPyAkcG5wLnNwLndlYiA6IG5ldyAkcG5wLldlYihfc3BQYWdlQ29udGV4dEluZm8uc2l0ZUFic29sdXRlVXJsKTtcclxuICAgICAgICAgICAgaWYgKHVybClcclxuICAgICAgICAgICAgICAgIHJldHVybiB3ZWIuZ2V0TGlzdCh1cmwpXHJcbiAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgICAgIHJldHVybiAkcG5wLnNwLndlYi5saXN0cy5nZXRCeUlkKF9zcFBhZ2VDb250ZXh0SW5mby5wYWdlTGlzdElkKVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZ2V0QmlibGlvdGVjYTogZnVuY3Rpb24obGlzdFVybCkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRMaXN0KGxpc3RVcmwsIGZhbHNlKVxyXG4gICAgICAgICAgICAgICAgLmdldCgpLnRoZW4oKGl0ZW0pID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pc0FyZWEoKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLlVybCA9ICcvcGFnaW5hcy9hcmVhcy1hdHVhY2FvLmFzcHgnO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5pc1NldG9yKCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5VcmwgPSAnL3BhZ2luYXMvc2V0b3Jlcy1hdHVhY2FvLmFzcHgnO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNFbmdsaXNoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uVGl0bGUgPSAnUGFnZXMnO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLiRzZXQodGhpcywgJ2JyZWFkQ3J1bWJMaXN0JywgaXRlbSk7XHJcbiAgICAgICAgICAgICAgICAgICAgXHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC8vIHZlcmlmaWNhbmRvIHNlIGVzdMOhIGVtIHVtYSBcIkRpc3BcIiBlIG1vbnRhbmRvIGEgc2Vzc8OjbyBhbnRlcmlvciBhIGRpc3AuXHJcbiAgICAgICAgICAgICAgICAgICAgaWYoX3NwUGFnZUNvbnRleHRJbmZvLnNlcnZlclJlcXVlc3RQYXRoLm1hdGNoKC9kZXRhbGhlcy1hcmVhL2kpKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50U2VjdGlvbiA9IHRoaXMuaXNFbmdsaXNoID8gJ1ByYWN0aWNlcyBBcmVhJyA6ICfDgXJlYXMgZGUgQXR1YcOnw6NvJztcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kaXNwVGl0bGUgPSAkKCcudGl0bGUudGV4dC1zZWNvbmRhcnknKS50ZXh0KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfWVsc2UgaWYoX3NwUGFnZUNvbnRleHRJbmZvLnNlcnZlclJlcXVlc3RQYXRoLm1hdGNoKC9ub3RpY2lhL2kpKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50U2VjdGlvbiA9IHRoaXMuaXNFbmdsaXNoID8gJ05ld3MgYW5kIFB1YmxpY2F0aW9ucycgOiAnTm90w61jaWFzIGUgUHVibGljYcOnw7Vlcyc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGlzcFRpdGxlID0gJCgnLnRpdGxlLnRleHQtc2Vjb25kYXJ5JykudGV4dCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1lbHNlIGlmKF9zcFBhZ2VDb250ZXh0SW5mby5zZXJ2ZXJSZXF1ZXN0UGF0aC5tYXRjaCgvZGV0YWxoZS1wcm9maXNzaW9uYWwvaSkpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRTZWN0aW9uID0gdGhpcy5pc0VuZ2xpc2ggPyAnUHJvZmVzc2lvbmFscycgOiAnUHJvZmlzc2lvbmFpcyc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGlzcFRpdGxlID0gJCgnLnRpdGxlLnRleHQtc2Vjb25kYXJ5JykudGV4dCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgfSxcclxuICAgICAgICBnZXRQYWdpbmE6IGZ1bmN0aW9uKGxpc3RVcmwsIGlkKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldExpc3QobGlzdFVybClcclxuICAgICAgICAgICAgICAgIC5pdGVtc1xyXG4gICAgICAgICAgICAgICAgLmdldEJ5SWQoaWQgfHwgX3NwUGFnZUNvbnRleHRJbmZvLnBhZ2VJdGVtSWQpXHJcbiAgICAgICAgICAgICAgICAuZ2V0KCkudGhlbigocmVzdWx0cykgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuJHNldCh0aGlzLCAnYnJlYWRDcnVtYkl0ZW0nLCByZXN1bHRzKVxyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICB9LFxyXG4gICAgICAgIGdldExpc3RVcmw6IGZ1bmN0aW9uKCkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5pc0FyZWEoKSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuYCR7X3NwUGFnZUNvbnRleHRJbmZvLnNpdGVTZXJ2ZXJSZWxhdGl2ZVVybH1saXN0cy9hcmVhc0F0dWFjYW9gXHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmlzU2V0b3IoKSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGAke19zcFBhZ2VDb250ZXh0SW5mby5zaXRlU2VydmVyUmVsYXRpdmVVcmx9bGlzdHMvU2V0b3Jlc2BcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGlzQXJlYSgpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5ocmVmLm1hdGNoKC9hcmVhLWF0dWFjYW8vaSlcclxuICAgICAgICB9LFxyXG4gICAgICAgIGlzU2V0b3IoKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB3aW5kb3cubG9jYXRpb24uaHJlZi5tYXRjaCgvc2V0b3Jlcy9pKVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdGhyZWF0RXJyb3I6IGZ1bmN0aW9uKG1zZywgZGF0YSkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdlcnJvciAtICcgKyBtc2cgKyAnIC0gJyArIGRhdGEpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgb3BlblNoYXJlKGV2ZW50KXtcclxuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgICAgICQoJy5jb250ZW50LXNoYXJlJykuc2hvdygpO1xyXG4gICAgICAgIH1cclxuICAgIH0sXHJcbiAgICBkYXRhOiBmdW5jdGlvbigpIHtcclxuICAgICAgICB2YXIgbGlzdE5hbWUgPSAnUGFnaW5hcydcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBsaXN0TmFtZTogbGlzdE5hbWUsXHJcbiAgICAgICAgICAgIGxpc3RVcmw6IF9zcFBhZ2VDb250ZXh0SW5mby53ZWJTZXJ2ZXJSZWxhdGl2ZVVybCArICcvbGlzdHMvJyArIGxpc3ROYW1lICsgJycsXHJcbiAgICAgICAgICAgIGJyZWFkQ3J1bWJMaXN0OiB7fSxcclxuICAgICAgICAgICAgYnJlYWRDcnVtYkl0ZW06IHt9LFxyXG4gICAgICAgICAgICBjdXJyZW50U2VjdGlvbjogbnVsbCxcclxuICAgICAgICAgICAgZGlzcFRpdGxlOiBudWxsXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59KVxyXG5cclxudmFyIGFwcCA9IG5ldyBWdWUoe1xyXG4gICAgZWw6ICcjYnJlYWRjcnVtYicsXHJcbiAgICB0ZW1wbGF0ZTogJzxicmVhZGNydW1iLz4nXHJcbn0pIiwiLy9QbHVnaW4gZGUgY29tcGFydGlsaGFtZW50byBuYXMgcmVkZXMgc29jaWFpc1xyXG52YXIgaWUgPSAod2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQudG9TdHJpbmcoKS5pbmRleE9mKCdNU0lFIDkuMCcpID4gLTEgfHwgd2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQudG9TdHJpbmcoKS5pbmRleE9mKCdNU0lFIDEwLjAnKSA+IC0xKTtcclxualF1ZXJ5LmZuLmV4dGVuZCh7XHJcbiAgICBzaGFyZVNYOiBmdW5jdGlvbiAob3B0aW9uKSB7XHJcbiAgICAgICAgLy9pZighb3B0aW9uLnR5cGVzLmxlbmd0aCB8fCAhb3B0aW9uLnVybCl7cmV0dXJuIGZhbHNlO31cclxuICAgICAgICB2YXIgaXNFbmdsaXNoID0gKEN1cnJlbnRMYW5ndWFnZUxDSUQgPT0gJ2VuLVVTJyk7XHJcbiAgICAgICAgdmFyIGh0bWwgPSBgXHJcbiAgICAgICAgICAgIDx1bCBjbGFzcz1cInNoYXJlLXNvY2lhbHMgbWItMCBwLTAgbmF2IGp1c3RpZnktY29udGVudC1lbmRcIj5gLFxyXG4gICAgICAgICAgICBpc01vYmlsZSA9IHdpbmRvdy5pbm5lcldpZHRoIDw9IDczNSxcclxuICAgICAgICAgICAgdGl0bGVQb3B1cCA9ICcnLFxyXG4gICAgICAgICAgICB0aXRsZUVtYWlsID0gb3B0aW9uLnRpdGxlXHJcblxyXG4gICAgICAgIGlmIChpZSkge1xyXG4gICAgICAgICAgICB0aXRsZVBvcHVwID0gb3B0aW9uLnRpdGxlID0gb3B0aW9uLnRpdGxlLnJlcGxhY2UoL1vDocOgw6LDo10vZywgJ2EnKS5yZXBsYWNlKC9bw6nDqMOqXS9nLCAnZScpLnJlcGxhY2UoL1vDs8Oyw7TDtV0vZywgJ28nKS5yZXBsYWNlKC9bw7rDucO7XS9nLCAndScpLnJlcGxhY2UoL1vDp10vZywgJ2MnKS5yZXBsYWNlKC9cXHMvZywgJ18nKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aXRsZVBvcHVwID0gb3B0aW9uLnRpdGxlID0gZW5jb2RlVVJJKG9wdGlvbi50aXRsZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIG9wdGlvbi5jb250ZW50ID0gb3B0aW9uLmNvbnRlbnQgfHwgJyc7XHJcblxyXG4gICAgICAgIG9wdGlvbi50eXBlcy5mb3JFYWNoKGZ1bmN0aW9uICh0eXBlKSB7XHJcbiAgICAgICAgICAgIHZhciBvbmNsaWNrID0gJ1BvcHVwQ2VudGVyRHVhbChcXCcnICsgZ2V0U2hhcmVMaW5rKHR5cGUpICsgJ1xcJyxcXCcnICsgb3B0aW9uLnRpdGxlICsgJ1xcJyw2MDAsNTAwLCQodGhpcykpJyxcclxuICAgICAgICAgICAgICAgIGhyZWYgPSAnamF2YXNjcmlwdDonLFxyXG4gICAgICAgICAgICAgICAgZHluYW1pY0NsYXNzZXMgPSAnJztcclxuICAgICAgICAgICAgaWYgKGllKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgaHJlZiA9ICcnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChvcHRpb24uZGlzcGxheVRleHQgPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgICAgb3B0aW9uLmRpc3BsYXlUZXh0ID0gb3B0aW9uLnRpdGxlXHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmICh0eXBlLnRvTG93ZXJDYXNlKCkgPT0gJ3doYXRzYXBwJyB8fCB0eXBlLnRvTG93ZXJDYXNlKCkgPT0gJ2VtYWlsJykge1xyXG4gICAgICAgICAgICAgICAgb25jbGljayA9ICcnO1xyXG4gICAgICAgICAgICAgICAgLy9vcHRpb24udGl0bGUgPSBlbmNvZGVVUkkob3B0aW9uLnRpdGxlKTtcclxuICAgICAgICAgICAgICAgIGhyZWYgPSBnZXRTaGFyZUxpbmsodHlwZSlcclxuICAgICAgICAgICAgfVxyXG5cclxuXHJcbiAgICAgICAgICAgIG9wdGlvbi5zaG93TGFiZWxzID0gb3B0aW9uLnNob3dMYWJlbHMgPT0gdW5kZWZpbmVkID8gdHJ1ZSA6IG9wdGlvbi5zaG93TGFiZWxzO1xyXG4gICAgICAgICAgICBvcHRpb24uc2hvd0ljb25zID0gb3B0aW9uLnNob3dJY29ucyA9PSB1bmRlZmluZWQgPyB0cnVlIDogb3B0aW9uLnNob3dJY29ucztcclxuXHJcbiAgICAgICAgICAgIGlmIChvcHRpb24uc2hvd0xhYmVscykge1xyXG4gICAgICAgICAgICAgICAgZHluYW1pY0NsYXNzZXMgPSAndGV4dC1hY3RpdmUnXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdmFyIGljb25DbGFzc2VzID0gdHlwZSA9PSAnZW1haWwnID8gJ2ZhcyBmYS1lbnZlbG9wZScgOiBgZmFiIGZhLSR7dHlwZX1gXHJcblxyXG4gICAgICAgICAgICBkeW5hbWljQ2xhc3NlcyA9IGBpY29uLWFjdGl2ZSAke2ljb25DbGFzc2VzfSAkeyhvcHRpb24uc2hvd0xhYmVscyA/ICcgdGV4dC1hY3RpdmUnIDogJycpfWA7XHJcblxyXG4gICAgICAgICAgICBpZiAodHlwZS50b0xvd2VyQ2FzZSgpID09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2VcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGh0bWwgKz1cclxuICAgICAgICAgICAgICAgIGA8bGkgY2xhc3M9XCJuYXYtaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxhIG9uY2xpY2s9XCIke29uY2xpY2t9XCIgaHJlZj1cIiR7aHJlZn1cIiBkYXRhLWljb249XCIke3R5cGUudG9Mb3dlckNhc2UoKX1cIiBjbGFzcz1cIm5hdi1saW5rIHRleHQtd2l0ZVwiIHRhcmdldD1cIl9ibGFua1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cIiR7ZHluYW1pY0NsYXNzZXN9IHRleHQtd2l0ZVwiPjwvaT4gJHsob3B0aW9uLnNob3dMYWJlbHMgPyB0eXBlIDogXCJcIil9XHJcblx0XHRcdFx0XHQ8L2E+XHJcblx0XHRcdFx0PC9saT5gO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGh0bWwgKz0gJzwvdWw+JztcclxuICAgICAgICAvL2FwZW5kYW5kbyBvIGh0bWwgbm8gc2VsZXRvclxyXG5cclxuICAgICAgICAkKHRoaXMpLmh0bWwoaHRtbCk7XHJcblxyXG4gICAgICAgIC8vbW9udGFuZG8gdXJsJ3MgZGFzIHJlZGVzO1xyXG4gICAgICAgIGZ1bmN0aW9uIGdldFNoYXJlTGluayh0eXBlKSB7XHJcbiAgICAgICAgICAgIHZhciBsaW5rID0gXCJcIlxyXG4gICAgICAgICAgICB2YXIgZW1haWxIcmVmID0gXCJcIlxyXG5cclxuICAgICAgICAgICAgLy92ZXJpZmljYW5kbyBzZSBvIGxpbmsgw6kgZXh0ZXJubyBvdSByZWxhdGl2bztcclxuICAgICAgICAgICAgaWYgKChvcHRpb24udXJsIHx8ICcnKS5pbmRleE9mKCdodHRwJykgPiAtMSkge1xyXG4gICAgICAgICAgICAgICAgb3B0aW9uLnVybCA9IG9wdGlvbi51cmxcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIG9wdGlvbi51cmwgPSBfc3BQYWdlQ29udGV4dEluZm8ud2ViQWJzb2x1dGVVcmwgKyBvcHRpb24udXJsXHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmICh0eXBlLnRvTG93ZXJDYXNlKCkgPT0gXCJmYWNlYm9va1wiKVxyXG4gICAgICAgICAgICAgICAgaWYgKGlzTW9iaWxlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGluayA9ICdodHRwczovL20uZmFjZWJvb2suY29tL3NoYXJlci9zaGFyZXIucGhwP3U9JyArIG9wdGlvbi51cmw7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGxpbmsgPSAnaHR0cHM6Ly9mYWNlYm9vay5jb20vc2hhcmVyL3NoYXJlci5waHA/dT0nICsgb3B0aW9uLnVybDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAodHlwZS50b0xvd2VyQ2FzZSgpID09IFwidHdpdHRlclwiKVxyXG4gICAgICAgICAgICAgICAgaWYgKGlzTW9iaWxlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGluayA9ICdodHRwOi8vdHdpdHRlci5jb20vaW50ZW50L3R3ZWV0P3RleHQ9QmljaGFyYSAtICcgKyBvcHRpb24udGl0bGUgKyAnOiAnICsgb3B0aW9uLnVybDtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGxpbmsgPSAnaHR0cDovL3R3aXR0ZXIuY29tL2hvbWU/c3RhdHVzPUJpY2hhcmEgLSAnICsgb3B0aW9uLnRpdGxlLnJlcGxhY2UoLyYvZ2ltLCAnJTI2JykgKyAnOiAnICsgb3B0aW9uLnVybC5yZXBsYWNlKC8mL2dpbSwgJyUyNicpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmICh0eXBlLnRvTG93ZXJDYXNlKCkgPT0gXCJsaW5rZWRpblwiKVxyXG4gICAgICAgICAgICAgICAgbGluayA9ICdodHRwczovL3d3dy5saW5rZWRpbi5jb20vc2hhcmVBcnRpY2xlP3VybD0nICsgb3B0aW9uLnVybC5yZXBsYWNlKC8mL2dpbSwgJyUyNicpLnJlcGxhY2UoLz0vZywgJy8nKSArICcmdGl0bGU9JyArIG9wdGlvbi50aXRsZS5yZXBsYWNlKC8mL2dpbSwgJyUyNicpXHJcbiAgICAgICAgICAgIGVsc2UgaWYgKHR5cGUudG9Mb3dlckNhc2UoKSA9PSBcImdvb2dsZS1wbHVzXCIpXHJcbiAgICAgICAgICAgICAgICBsaW5rID0gJ2h0dHBzOi8vcGx1c29uZS5nb29nbGUuY29tL18vKzEvY29uZmlybT9obD1wdCZ1cmw9JyArIG9wdGlvbi51cmwgKyAnJnRpdGxlPScgKyBvcHRpb24udGl0bGU7XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKHR5cGUudG9Mb3dlckNhc2UoKSA9PSBcIndoYXRzYXBwXCIpXHJcbiAgICAgICAgICAgICAgICBpZiAoaXNNb2JpbGUpIHtcclxuICAgICAgICAgICAgICAgICAgICBsaW5rID0gJ3doYXRzYXBwOi8vc2VuZD90ZXh0PScgKyBlbmNvZGVVUklDb21wb25lbnQoJ0JpY2hhcmEgQWR2b2dhZG9zIC0gJyArIGRlY29kZVVSSUNvbXBvbmVudChvcHRpb24udGl0bGUpICsgJzogJyArIG9wdGlvbi51cmwpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBsaW5rID0gJ2h0dHBzOi8vd2ViLndoYXRzYXBwLmNvbS9zZW5kP3RleHQ9JyArIGVuY29kZVVSSUNvbXBvbmVudCgnQmljaGFyYSBBZHZvZ2Fkb3MgLSAnICsgZGVjb2RlVVJJQ29tcG9uZW50KG9wdGlvbi50aXRsZSkgKyAnOiAnICsgb3B0aW9uLnVybCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAvLzxhIGhyZWY9XCJcIiBkYXRhLWFjdGlvbj1cInNoYXJlL3doYXRzYXBwL3NoYXJlXCI+U2hhcmUgdmlhIFdoYXRzYXBwIHdlYjwvYT5cclxuICAgICAgICAgICAgZWxzZSBpZiAodHlwZS50b0xvd2VyQ2FzZSgpID09IFwiZW1haWxcIikge1xyXG4gICAgICAgICAgICAgICAgbGluayA9IGdldE1haWxUb1VybChvcHRpb24uY29udGVudCwgdGl0bGVFbWFpbCwgZW5jb2RlVVJJQ29tcG9uZW50KG9wdGlvbi51cmwpKTtcclxuICAgICAgICAgICAgfSAgXHJcbiAgICAgICAgICAgIHJldHVybiBsaW5rO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufSk7XHJcblxyXG4vL2Z1bsOnw6NvIHBhcmEgYWJyaXIgYSBtb2RhbCBlIHBhc3NhciBsYWd1cmEgZSBhbHR1cmEgcGFyYSBjZW50cmFsaXphclxyXG53aW5kb3cuUG9wdXBDZW50ZXJEdWFsID0gZnVuY3Rpb24gKHVybCwgdGl0bGUsIHcsIGgsIGVsZW1lbnQpIHtcclxuICAgIGlmIChpZSkge1xyXG4gICAgICAgIGVsZW1lbnQucmVtb3ZlQXR0cignaHJlZicpO1xyXG4gICAgfVxyXG4gICAgLy8gRml4ZXMgZHVhbC1zY3JlZW4gcG9zaXRpb24gTW9zdCBicm93c2VycyBGaXJlZm94XHJcbiAgICB2YXIgZHVhbFNjcmVlbkxlZnQgPSB3aW5kb3cuc2NyZWVuTGVmdCAhPSB1bmRlZmluZWQgPyB3aW5kb3cuc2NyZWVuTGVmdCA6IHNjcmVlbi5sZWZ0O1xyXG4gICAgdmFyIGR1YWxTY3JlZW5Ub3AgPSB3aW5kb3cuc2NyZWVuVG9wICE9IHVuZGVmaW5lZCA/IHdpbmRvdy5zY3JlZW5Ub3AgOiBzY3JlZW4udG9wO1xyXG4gICAgdmFyIHdpZHRoID0gd2luZG93LmlubmVyV2lkdGggPyB3aW5kb3cuaW5uZXJXaWR0aCA6IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCA/IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCA6IHNjcmVlbi53aWR0aDtcclxuICAgIHZhciBoZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQgPyB3aW5kb3cuaW5uZXJIZWlnaHQgOiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0ID8gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCA6IHNjcmVlbi5oZWlnaHQ7XHJcblxyXG4gICAgdmFyIGxlZnQgPSAoKHdpZHRoIC8gMikgLSAodyAvIDIpKSArIGR1YWxTY3JlZW5MZWZ0O1xyXG4gICAgdmFyIHRvcCA9ICgoaGVpZ2h0IC8gMikgLSAoaCAvIDIpKSArIGR1YWxTY3JlZW5Ub3A7XHJcbiAgICB2YXIgbmV3V2luZG93ID0gd2luZG93Lm9wZW4odXJsLCB0aXRsZSwgJ3Njcm9sbGJhcnM9eWVzLCB3aWR0aD0nICsgdyArICcsIGhlaWdodD0nICsgaCArICcsIHRvcD0nICsgdG9wICsgJywgbGVmdD0nICsgbGVmdCArICd0b29sYmFyPW5vLCBzY3JvbGxiYXJzPW5vLCByZXNpemFibGU9bm8sIGxvY2F0aW9uPW5vLCBzdGF0dXM9bm8nKTtcclxuXHJcbiAgICAvLyBQdXRzIGZvY3VzIG9uIHRoZSBuZXdXaW5kb3dcclxuXHQvKmlmICh3aW5kb3cuZm9jdXMpIHtcclxuXHRuZXdXaW5kb3cuZm9jdXMoKTtcclxuXHR9Ki9cclxuICAgIHJldHVybiBmYWxzZTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0TWFpbFRvVXJsKGNvbnRldWRvLCB0aXR1bG8sIHVybFNoYXJlKSB7XHJcbiAgICB2YXIgdXJsID0gXCJcIjtcclxuICAgIHZhciBib2R5ID0gJyc7XHJcbiAgICB2YXIgZW5jb2RlZExpbmVCcmVhayA9IFwiJTBBJTBBXCI7XHJcbiAgICBjb250ZXVkbyA9IGNvbnRldWRvIHx8IHRpdHVsbztcclxuICAgIHRpdHVsbyA9IHRpdHVsby5yZXBsYWNlKC9bJl0vZywgJyUyNicpXHJcblxyXG4gICAgYm9keSA9IGdldEVtYWlsQm9keShwYXJzZU1haWxCb2R5Q29udGVudChjb250ZXVkbykpICsgbWFrZVVybEFic29sdXRlKHVybFNoYXJlKS5yZXBsYWNlKC8mL2dpbSwgJyUyNicpLnJlcGxhY2UoL1wiL2dpbSwgJyUyMicpO1xyXG5cclxuXHJcbiAgICByZXR1cm4gXCJtYWlsdG86P3N1YmplY3Q9XCIgKyB0aXR1bG8gKyBcIiZib2R5PVwiICsgYm9keTtcclxufVxyXG5cclxuZnVuY3Rpb24gbWFrZVVybEFic29sdXRlKHVybCkge1xyXG4gICAgaWYgKCF1cmwpIHJldHVybiB3aW5kb3cubG9jYXRpb24uaHJlZjtcclxuXHJcbiAgICBpZiAodXJsLmluZGV4T2YoJ2h0dHAnKSA+IC0xKSB7XHJcbiAgICAgICAgcmV0dXJuIHVybDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIF9zcFBhZ2VDb250ZXh0SW5mby53ZWJBYnNvbHV0ZVVybCArIGVuY29kZVVSSSh1cmwpXHJcbiAgICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHBhcnNlTWFpbEJvZHlDb250ZW50KGJvZHlDb250ZW50KSB7XHJcbiAgICBib2R5Q29udGVudCA9ICc8ZGl2PicgKyBib2R5Q29udGVudCArICc8L2Rpdj4nO1xyXG5cclxuICAgIHZhciBkb21Db250ZXVkbyA9ICQoYm9keUNvbnRlbnQucmVwbGFjZSgvPGRpdj4vZywgJ1xcbjxkaXY+JykpO1xyXG5cclxuICAgIGRvbUNvbnRldWRvLmZpbmQoXCJwXCIpLmVhY2goZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHZhciBodG1sU2VtUXVlYnJhID0gJCh0aGlzKS5odG1sKCkucmVwbGFjZSgvXFxuL2csICcnKS5yZXBsYWNlKC88YnI+L2csICdcXG4nKTtcclxuICAgICAgICAkKHRoaXMpLmh0bWwoaHRtbFNlbVF1ZWJyYSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBib2R5Q29udGVudCA9IGRvbUNvbnRldWRvLnRleHQoKS5yZXBsYWNlKC9cXG5cXG4vZywgXCJcXG5cIik7XHJcbiAgICBib2R5Q29udGVudCA9ICQudHJpbShkb21Db250ZXVkby50ZXh0KCkpO1xyXG4gICAgcmV0dXJuIGJvZHlDb250ZW50O1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRFbWFpbEJvZHkoY29udGV1ZG8pIHtcclxuICAgIHZhciBlbmNvZGVkTGluZUJyZWFrID0gXCIlMEElMEFcIjtcclxuICAgIHZhciB0ZXh0b0luaWNpbyA9IFwiVW0gY29udGXDumRvIGRvIHNpdGUgQmljaGFyYSBBZHZvZ2Fkb3MgZm9pIGVudmlhZG8gcGFyYSB2b2PDqjpcIjtcclxuICAgIHZhciB0ZXh0b0xpbmsgPSBcIkNsaXF1ZSBwYXJhIGxlciBvIGNvbnRlw7pkbyBuYSDDrW50ZWdyYTogXCI7XHJcbiAgICB2YXIgYm9keSA9ICcnO1xyXG4gICAgY29udGV1ZG8gPSBjb250ZXVkb1xyXG5cclxuICAgIGlmIChDdXJyZW50TGFuZ3VhZ2VMQ0lEID09IFwiZW4tVVNcIikge1xyXG4gICAgICAgIHRleHRvTGluayA9IFwiUGxlYXNlIGNsaWNrIGhlcmUgdG8gYWNjZXNzIGZ1bGwgY29udGVudDogXCI7XHJcbiAgICAgICAgdGV4dG9JbmljaW8gPSBcIkEgY29udGVudCBmcm9tIHRoZSBCaWNoYXJhIExhdyB3ZWJzaXRlIGhhcyBiZWVuIHNlbnQgdG8geW91OlwiO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnRldWRvID0gY29udGV1ZG8ucmVwbGFjZSgvWyZdL2csICclMjYnKS5yZXBsYWNlKC9cIi9naW0sICclMjInKTtcclxuICAgIGJvZHkgPSB0ZXh0b0luaWNpbyArIGVuY29kZWRMaW5lQnJlYWsgKyB0cnVuY2F0ZVRleHQoY29udGV1ZG8sIDMzNSkgKyBlbmNvZGVkTGluZUJyZWFrICsgdGV4dG9MaW5rO1xyXG5cclxuICAgIHJldHVybiBib2R5O1xyXG59XHJcblxyXG5mdW5jdGlvbiB0cnVuY2F0ZVRleHQodGV4dCwgbGVuZ3RoKSB7XHJcbiAgICBpZiAodGV4dC5sZW5ndGggPiBsZW5ndGgpIHtcclxuICAgICAgICByZXR1cm4gdGV4dC5zdWJzdHJpbmcoMCwgbGVuZ3RoIC0gMykgKyBcIi4uLlwiO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIHRleHQ7XHJcbiAgICB9XHJcbn0gIiwid2luZG93LnRyYW5zbGF0ZU1peGluID0ge1xyXG4gICAgbWV0aG9kczoge1xyXG4gICAgICAgIGNoYW5nZUxhbmd1YWdlKHZhbHVlKSB7XHJcbiAgICAgICAgICAgIGlmIChDdXJyZW50TGFuZ3VhZ2VEZWNpbWFsID09IHZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdmFyIHRvZGF5ID0gbmV3IERhdGUoKTtcclxuICAgICAgICAgICAgdmFyIG9uZVllYXIgPSBuZXcgRGF0ZSh0b2RheS5nZXRUaW1lKCkgKyAzNjUgKiAyNCAqIDYwICogNjAgKiAxMDAwKTtcclxuICAgICAgICAgICAgdmFyIHVybCA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmO1xyXG4gICAgICAgICAgICBkb2N1bWVudC5jb29raWUgPSBcImxjaWQ9XCIgKyB2YWx1ZSArIFwiO3BhdGg9LztleHBpcmVzPVwiICsgb25lWWVhci50b0dNVFN0cmluZygpO1xyXG4gICAgICAgICAgICBsb2NhdGlvbi5ocmVmID0gdXJsO1xyXG4gICAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTtcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgZGF0YSgpIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBpc0VuZ2xpc2g6IEN1cnJlbnRMYW5ndWFnZURlY2ltYWwgPT0gMTAzMyxcclxuICAgICAgICAgICAgY3VycmVudExhbmc6IEN1cnJlbnRMYW5ndWFnZURlY2ltYWxcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG59Il19\n"],"file":"breadcrumb.js"}