مرتب سازی براساس :
مقاله های پیدا شده
مرتب سازی براساس
PCEtLSBJbWFnZSBEaW1lbnNpb25zIEZpeCDigJQg2KzZhNmI2q/bjNix24wg2KfYsiBDTFMgLS0+CjxzdHlsZT4KaW1nOm5vdChbd2lkdGhdKTpub3QoW2hlaWdodF0pOm5vdChbc3R5bGUqPSJ3aWR0aCJdKTpub3QoW3N0eWxlKj0iaGVpZ2h0Il0pIHsKICAgIG1heC13aWR0aDogMTAwJTsKICAgIGhlaWdodDogYXV0bzsKfQo8L3N0eWxlPgoKCjwhLS0gU2tpcCBOYXZpZ2F0aW9uIC0tPgo8YSBocmVmPSIjbWFpbi1jb250ZW50IiBjbGFzcz0ic2tpcC1uYXYiIHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LTEwMHB4O2xlZnQ6MDtiYWNrZ3JvdW5kOiNlZjU0MGE7Y29sb3I6d2hpdGU7cGFkZGluZzoxMHB4IDIwcHg7ei1pbmRleDo5OTk5O2ZvbnQtc2l6ZToxNnB4O3RleHQtZGVjb3JhdGlvbjpub25lO2JvcmRlci1yYWRpdXM6MCAwIDVweCAwOyI+2LHZgdiq2YYg2KjZhyDZhdit2KrZiNin24wg2KfYtdmE24w8L2E+Cgo8IS0tIFRpdGxlICsgTWV0YSBEZXNjcmlwdGlvbiDYp9iyINiq2YbYuNuM2YXYp9iqINi12YHYrdmHINin2LXZhNuMINin2LnZhdin2YQg2YXbjOKAjNi02YcgLS0+CjwhLS0gT3ZlcnJpZGU6INmE2LrZiCBub2luZGV4IENNUyDigJQg2LXZgdit2KfYqiDZhdmH2YUg2KfbjNmG2K/aqdizINio2LTZhiAtLT4KPG1ldGEgbmFtZT0icm9ib3RzIiBjb250ZW50PSJpbmRleCwgZm9sbG93LCBtYXgtc25pcHBldDotMSwgbWF4LWltYWdlLXByZXZpZXc6bGFyZ2UiPgo8bWV0YSBuYW1lPSJnb29nbGVib3QiIGNvbnRlbnQ9ImluZGV4LCBmb2xsb3ciPgo8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCI+CjxtZXRhIG5hbWU9InRoZW1lLWNvbG9yIiBjb250ZW50PSIjZWY1NDBhIj4KCjwhLS0gT0cgVGFncyAtLT4KPG1ldGEgcHJvcGVydHk9Im9nOnRpdGxlIiBjb250ZW50PSLYp9mE2YjYp9mGINmF2KfYsdqp2KogfCDYrtix24zYryDYqtqpINmIINi52YXYr9mHINmE2YjYp9iy2YUg2K7Yp9mG2q/bjNiMINm+2YjYtNin2qkg2Ygg2KLYsdin24zYtNuMIj4KPG1ldGEgcHJvcGVydHk9Im9nOmRlc2NyaXB0aW9uIiBjb250ZW50PSLZgdix2YjYtNqv2KfZhyDYp9uM2YbYqtix2YbYqtuMINm+2K7YtCDYudmF2K/ZhyDZhNmI2KfYstmFINiu2KfZhtqv24zYjCDZvtmI2LTYp9qp2Iwg2KLYsdin24zYtNuMINmIINin2KjYstin2LHYotmE2KfYqiDYqNinINio2YfYqtix24zZhiDZgtuM2YXYqiI+CjxtZXRhIHByb3BlcnR5PSJvZzppbWFnZSIgY29udGVudD0iaHR0cHM6Ly93d3cuYWx2YW5tYXJrZXQuY29tL2ltYWdlcy9sb2dvLnBuZyI+CjxtZXRhIHByb3BlcnR5PSJvZzp1cmwiIGNvbnRlbnQ9Imh0dHBzOi8vd3d3LmFsdmFubWFya2V0LmNvbSI+CjxtZXRhIHByb3BlcnR5PSJvZzp0eXBlIiBjb250ZW50PSJ3ZWJzaXRlIj4KPG1ldGEgcHJvcGVydHk9Im9nOnNpdGVfbmFtZSIgY29udGVudD0i2KfZhNmI2KfZhiDZhdin2LHaqdiqIj4KPG1ldGEgcHJvcGVydHk9Im9nOmxvY2FsZSIgY29udGVudD0iZmFfSVIiPgoKPCEtLSBUd2l0dGVyIENhcmQgLS0+CjxtZXRhIG5hbWU9InR3aXR0ZXI6Y2FyZCIgY29udGVudD0ic3VtbWFyeV9sYXJnZV9pbWFnZSI+CjxtZXRhIG5hbWU9InR3aXR0ZXI6dGl0bGUiIGNvbnRlbnQ9Itin2YTZiNin2YYg2YXYp9ix2qnYqiB8INiu2LHbjNivINiq2qkg2Ygg2LnZhdiv2Ycg2YTZiNin2LLZhSDYrtin2Ybar9uM2Iwg2b7ZiNi02KfaqSDZiCDYotix2KfbjNi024wiPgo8bWV0YSBuYW1lPSJ0d2l0dGVyOmRlc2NyaXB0aW9uIiBjb250ZW50PSLZgdix2YjYtNqv2KfZhyDYp9uM2YbYqtix2YbYqtuMINm+2K7YtCDYudmF2K/ZhyDZhNmI2KfYstmFINiu2KfZhtqv24zYjCDZvtmI2LTYp9qp2Iwg2KLYsdin24zYtNuMINio2YfYr9in2LTYqtuM2Iwg2KfYqNiy2KfYsdii2YTYp9iq2Iwg2LnYt9ixINmIINin2K/aqdmE2YYg2KjYpyDYqNmH2KrYsduM2YYg2YLbjNmF2KoiPgo8bWV0YSBuYW1lPSJ0d2l0dGVyOmltYWdlIiBjb250ZW50PSJodHRwczovL3d3dy5hbHZhbm1hcmtldC5jb20vaW1hZ2VzL2xvZ28ucG5nIj4KPCEtLSBDYW5vbmljYWwg2KrZiNiz2LcgQ01TINiq2YjZhNuM2K8g2YXbjOKAjNi02YcgLS0+CjxsaW5rIHJlbD0iYWx0ZXJuYXRlIiBocmVmbGFuZz0iZmEiIGhyZWY9Imh0dHBzOi8vd3d3LmFsdmFubWFya2V0LmNvbSI+Cgo8IS0tIEFwcGxlIFRvdWNoIEljb24gLS0+CjxsaW5rIHJlbD0iYXBwbGUtdG91Y2gtaWNvbiIgaHJlZj0iaHR0cHM6Ly93d3cuYWx2YW5tYXJrZXQuY29tL2Zhdmljb24uaWNvIj4KCjwhLS0gUHJlY29ubmVjdCAmIEROUy1QcmVmZXRjaCAtLT4KPGxpbmsgcmVsPSJwcmVjb25uZWN0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQiIGNyb3Nzb3JpZ2luPgo8IS0tIGdvZnRpbm8uY29tIHByZWNvbm5lY3QgcmVtb3ZlZCAtLT4KPGxpbmsgcmVsPSJkbnMtcHJlZmV0Y2giIGhyZWY9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldCI+CjwhLS0gZ29mdGluby5jb20gZG5zLXByZWZldGNoIHJlbW92ZWQgLS0+CjxsaW5rIHJlbD0iZG5zLXByZWZldGNoIiBocmVmPSJodHRwczovL3RydXN0c2VhbC5lbmFtYWQuaXIiPgoKPCEtLSBGb250IFByZWxvYWQgLS0+CjxsaW5rIHJlbD0icHJlbG9hZCIgaHJlZj0iYXNzZXQvdGhlbWUvaXJhbnlla2Fud2VicmVndWxhcmZhbnVtLndvZmYyIiBhcz0iZm9udCIgdHlwZT0iZm9udC93b2ZmMiIgY3Jvc3NvcmlnaW4+Cgo8IS0tIENXVjogQ0xTIEZpeCDigJQg2LHZgdi5INis2KfYqNis2KfbjNuMINiq2LXYp9mI24zYsSAtLT4KPHN0eWxlPgppbWc6bm90KFt3aWR0aF0pOm5vdChbaGVpZ2h0XSk6bm90KFtzdHlsZSo9IndpZHRoOjEwMCUiXSk6bm90KC5zd2lwZXItc2xpZGUgaW1nKTpub3QoLm15aGVhZGVyIGltZyk6bm90KC5jYXRlZ29yeS1oZWFkZXIgaW1nKSB7CiAgICBhc3BlY3QtcmF0aW86IDE2LzkgIWltcG9ydGFudDsKICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7CiAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDsKICAgIG9iamVjdC1maXQ6IGNvbnRhaW4gIWltcG9ydGFudDsKfQovKiBOYXZpZ2F0aW9uIE9wdGltaXphdGlvbiDigJQg2YXYrtmB24wg2qnYsdiv2YYg2LLbjNix2YXZhtmIINiq2KcgaG92ZXIgKi8KLmhhdmUtY2hpbGQgPiB1bCB7CiAgICBkaXNwbGF5OiBub25lOwp9Ci5oYXZlLWNoaWxkOmhvdmVyID4gdWwgewogICAgZGlzcGxheTogYmxvY2s7Cn0KPC9zdHlsZT4KCjwhLS0gRGVmZXIgYWxsIEpTIC0tPgo8c2NyaXB0Pgpkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdzY3JpcHRbc3JjXScpLmZvckVhY2goZnVuY3Rpb24ocykgewogICAgaWYgKCFzLmFzeW5jICYmICFzLmRlZmVyKSB7CiAgICAgICAgcy5kZWZlciA9IHRydWU7CiAgICB9Cn0pOwo8L3NjcmlwdD4KCjwhLS0gUmVtb3ZlIER1cGxpY2F0ZSBDU1MgLS0+CjxzY3JpcHQ+CnZhciBjc3NGaWxlcyA9IHt9Owpkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdsaW5rW3JlbD0ic3R5bGVzaGVldCJdJykuZm9yRWFjaChmdW5jdGlvbihsaW5rKSB7CiAgICB2YXIgaHJlZiA9IGxpbmsuaHJlZjsKICAgIGlmKGNzc0ZpbGVzW2hyZWZdKSB7CiAgICAgICAgbGluay5yZW1vdmUoKTsKICAgIH0gZWxzZSB7CiAgICAgICAgY3NzRmlsZXNbaHJlZl0gPSB0cnVlOwogICAgfQp9KTsKPC9zY3JpcHQ+Cgo8IS0tIFNjaGVtYSBDbGVhbnVwIOKAlCDYrdiw2YEgU2NoZW1hINmH2KfbjCDYtNqp2LPYqtmHIENNUyAtLT4KPHNjcmlwdD4KdmFyIF9zY2hlbWFDbGVhbnVwSW50ZXJ2YWwgPSBzZXRJbnRlcnZhbChmdW5jdGlvbigpIHsKICAgIHZhciBzY3JpcHRzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnc2NyaXB0W3R5cGU9ImFwcGxpY2F0aW9uL2xkK2pzb24iXScpOwogICAgaWYoc2NyaXB0cy5sZW5ndGggPiAwKSB7CiAgICAgICAgY2xlYXJJbnRlcnZhbChfc2NoZW1hQ2xlYW51cEludGVydmFsKTsKICAgICAgICBzY3JpcHRzLmZvckVhY2goZnVuY3Rpb24ocykgewogICAgICAgICAgICB2YXIgY29udGVudCA9IHMudGV4dENvbnRlbnQgfHwgJyc7CiAgICAgICAgICAgIC8vINit2LDZgSBTaXRlTmF2aWdhdGlvbkVsZW1lbnQg2LTaqdiz2KrZhyAodXJsINi02qnYs9iq2YcpCiAgICAgICAgICAgIGlmKGNvbnRlbnQuaW5kZXhPZignIlNpdGVOYXZpZ2F0aW9uRWxlbWVudCInKSAhPT0gLTEgJiYgY29udGVudC5pbmRleE9mKCcvaHR0cHM6Ly8nKSAhPT0gLTEpIHsKICAgICAgICAgICAgICAgIHMucmVtb3ZlKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8g2K3YsNmBIFdlYlBhZ2Ug2LTaqdiz2KrZhyAo2KjYr9mI2YYgdXJsKQogICAgICAgICAgICBpZihjb250ZW50LmluZGV4T2YoJyJXZWJQYWdlIicpICE9PSAtMSAmJiBjb250ZW50LmluZGV4T2YoJyJ1cmwiJykgPT09IC0xKSB7CiAgICAgICAgICAgICAgICBzLnJlbW92ZSgpOwogICAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICB9Cn0sIDEwMCk7Cjwvc2NyaXB0PgoKPCEtLSBTY2hlbWEgT3JnYW5pemF0aW9uIC0tPgo8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2xkK2pzb24iPgp7CiAgIkBjb250ZXh0IjogImh0dHBzOi8vc2NoZW1hLm9yZyIsCiAgIkB0eXBlIjogIk9yZ2FuaXphdGlvbiIsCiAgIm5hbWUiOiAi2KfZhNmI2KfZhiDZhdin2LHaqdiqIiwKICAidXJsIjogImh0dHBzOi8vd3d3LmFsdmFubWFya2V0LmNvbSIsCiAgImxvZ28iOiAiaHR0cHM6Ly93d3cuYWx2YW5tYXJrZXQuY29tL2ltYWdlcy9sb2dvLnBuZyIsCiAgInRlbGVwaG9uZSI6ICIrOTg5KioqKjU2NTIiLAogICJzYW1lQXMiOiBbImh0dHBzOi8vdC5tZS9hbHZhbm1hcmtlZXQiLCAiaHR0cHM6Ly9ydWJpa2EuaXIvYWx2YW5tYXJrZWV0Il0KfQo8L3NjcmlwdD4KCjwhLS0gU2NoZW1hIFdlYlNpdGUgLS0+CjxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vbGQranNvbiI+CnsKICAiQGNvbnRleHQiOiAiaHR0cHM6Ly9zY2hlbWEub3JnIiwKICAiQHR5cGUiOiAiV2ViU2l0ZSIsCiAgIm5hbWUiOiAi2KfZhNmI2KfZhiDZhdin2LHaqdiqIiwKICAidXJsIjogImh0dHBzOi8vd3d3LmFsdmFubWFya2V0LmNvbSIsCiAgInBvdGVudGlhbEFjdGlvbiI6IHsKICAgICJAdHlwZSI6ICJTZWFyY2hBY3Rpb24iLAogICAgInRhcmdldCI6ICJodHRwczovL3d3dy5hbHZhbm1hcmtldC5jb20vc2VhcmNoL3tzZWFyY2hfdGVybV9zdHJpbmd9IiwKICAgICJxdWVyeS1pbnB1dCI6ICJyZXF1aXJlZCBuYW1lPXNlYXJjaF90ZXJtX3N0cmluZyIKICB9Cn0KPC9zY3JpcHQ+Cgo8IS0tIFNjaGVtYSBXZWJQYWdlIC0tPgo8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2xkK2pzb24iPgp7CiAgIkBjb250ZXh0IjogImh0dHBzOi8vc2NoZW1hLm9yZyIsCiAgIkB0eXBlIjogIldlYlBhZ2UiLAogICJuYW1lIjogItin2YTZiNin2YYg2YXYp9ix2qnYqiB8INiu2LHbjNivINiq2qkg2Ygg2LnZhdiv2Ycg2YTZiNin2LLZhSDYrtin2Ybar9uM2Iwg2b7ZiNi02KfaqSDZiCDYotix2KfbjNi024wiLAogICJ1cmwiOiAiaHR0cHM6Ly93d3cuYWx2YW5tYXJrZXQuY29tIiwKICAiZGVzY3JpcHRpb24iOiAi2YHYsdmI2LTar9in2Ycg2KfbjNmG2KrYsdmG2KrbjCDZvtiu2LQg2LnZhdiv2Ycg2YTZiNin2LLZhSDYrtin2Ybar9uM2Iwg2b7ZiNi02KfaqdiMINii2LHYp9uM2LTbjCDZiCDYp9io2LLYp9ix2KLZhNin2Kog2KjYpyDYqNmH2KrYsduM2YYg2YLbjNmF2KoiLAogICJkYXRlUHVibGlzaGVkIjogIjIwMjQtMDEtMDEiLAogICJkYXRlTW9kaWZpZWQiOiAiMjAyNi0wOC0xOCIsCiAgInB1Ymxpc2hlciI6IHsKICAgICJAdHlwZSI6ICJPcmdhbml6YXRpb24iLAogICAgIm5hbWUiOiAi2KfZhNmI2KfZhiDZhdin2LHaqdiqIgogIH0KfQo8L3NjcmlwdD4KCjwhLS0gU2NoZW1hIEJyZWFkY3J1bWJMaXN0IC0tPgo8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2xkK2pzb24iPgp7CiAgIkBjb250ZXh0IjogImh0dHBzOi8vc2NoZW1hLm9yZyIsCiAgIkB0eXBlIjogIkJyZWFkY3J1bWJMaXN0IiwKICAiaXRlbUxpc3RFbGVtZW50IjogWwogICAgewogICAgICAiQHR5cGUiOiAiTGlzdEl0ZW0iLAogICAgICAicG9zaXRpb24iOiAxLAogICAgICAibmFtZSI6ICLYrtin2YbZhyIsCiAgICAgICJpdGVtIjogImh0dHBzOi8vd3d3LmFsdmFubWFya2V0LmNvbSIKICAgIH0KICBdCn0KPC9zY3JpcHQ+Cgo8IS0tIEFjY2Vzc2liaWxpdHk6IFNraXAgTmF2aWdhdGlvbiArIEZvcm0gTGFiZWxzIC0tPgo8c2NyaXB0PgovLyBTa2lwIE5hdmlnYXRpb24KKGZ1bmN0aW9uKCl7CiAgICB2YXIgY2hlY2tCb2R5ID0gc2V0SW50ZXJ2YWwoZnVuY3Rpb24oKSB7CiAgICAgICAgaWYoZG9jdW1lbnQuYm9keSkgewogICAgICAgICAgICBjbGVhckludGVydmFsKGNoZWNrQm9keSk7CiAgICAgICAgICAgIAogICAgICAgICAgICAvLyDYp9i22KfZgdmHINqp2LHYr9mGIGlkINio2YcgbWFpbiB0YWcKICAgICAgICAgICAgdmFyIG1haW5UYWcgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdtYWluJyk7CiAgICAgICAgICAgIGlmKG1haW5UYWcgJiYgIW1haW5UYWcuaWQpIHsKICAgICAgICAgICAgICAgIG1haW5UYWcuaWQgPSAnbWFpbi1jb250ZW50JzsKICAgICAgICAgICAgfQogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHNraXBOYXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7CiAgICAgICAgICAgIHNraXBOYXYuaHJlZiA9ICcjbWFpbi1jb250ZW50JzsKICAgICAgICAgICAgc2tpcE5hdi5jbGFzc05hbWUgPSAnc2tpcC1uYXYnOwogICAgICAgICAgICBza2lwTmF2LnRleHRDb250ZW50ID0gJ9ix2YHYqtmGINio2Ycg2YXYrdiq2YjYp9uMINin2LXZhNuMJzsKICAgICAgICAgICAgc2tpcE5hdi5zdHlsZS5jc3NUZXh0ID0gJ3Bvc2l0aW9uOmFic29sdXRlO3RvcDotMTAwcHg7bGVmdDowO2JhY2tncm91bmQ6I2VmNTQwYTtjb2xvcjp3aGl0ZTtwYWRkaW5nOjEwcHggMjBweDt6LWluZGV4Ojk5OTk7Zm9udC1zaXplOjE2cHg7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Ym9yZGVyLXJhZGl1czowIDAgNXB4IDA7JzsKICAgICAgICAgICAgc2tpcE5hdi5vbmZvY3VzID0gZnVuY3Rpb24oKXsgdGhpcy5zdHlsZS50b3AgPSAnMCc7IH07CiAgICAgICAgICAgIHNraXBOYXYub25ibHVyID0gZnVuY3Rpb24oKXsgdGhpcy5zdHlsZS50b3AgPSAnLTEwMHB4JzsgfTsKICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5pbnNlcnRCZWZvcmUoc2tpcE5hdiwgZG9jdW1lbnQuYm9keS5maXJzdENoaWxkKTsKICAgICAgICB9CiAgICB9LCA1MCk7Cn0pKCk7CgovLyBGb3JtIExhYmVscwpkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24oKXsKICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2lucHV0Om5vdChbYXJpYS1sYWJlbF0pOm5vdChbdHlwZT0iaGlkZGVuIl0pOm5vdChbdHlwZT0ic3VibWl0Il0pOm5vdChbdHlwZT0iY2hlY2tib3giXSk6bm90KFt0eXBlPSJyYWRpbyJdKScpLmZvckVhY2goZnVuY3Rpb24oaW5wdXQpIHsKICAgICAgICB2YXIgcGxhY2Vob2xkZXIgPSBpbnB1dC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJykgfHwgJyc7CiAgICAgICAgdmFyIG5hbWUgPSBpbnB1dC5nZXRBdHRyaWJ1dGUoJ25hbWUnKSB8fCAnJzsKICAgICAgICBpZihwbGFjZWhvbGRlcikgewogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ2FyaWEtbGFiZWwnLCBwbGFjZWhvbGRlcik7CiAgICAgICAgfSBlbHNlIGlmKG5hbWUgPT09ICdxJykgewogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ2FyaWEtbGFiZWwnLCAn2KzYs9iq2KzZiCDZhdit2LXZiNmEJyk7CiAgICAgICAgfSBlbHNlIGlmKGlucHV0LmNsb3Nlc3QoJy5xdWFudGl0eSwgLnF0eSwgW2NsYXNzKj0icXVhbnRpdHkiXScpKSB7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbCcsICfYqti52K/Yp9ivJyk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsJywgJ9mI2LHZiNiv24wnKTsKICAgICAgICB9CiAgICB9KTsKfSk7Cjwvc2NyaXB0PgoKCjwhLS0gQWNjZXNzaWJpbGl0eSBGaXgg4oCUINin2LXZhNin2K0gQVJJQSDZiCBMaW5rcyAtLT4KPHN0eWxlPgovKiDZhdiu2YHbjCDaqdix2K/ZhiDZhNuM2YbaqeKAjNmH2KfbjCDYqNiv2YjZhiDZhdiq2YYg2KfYsiDYtdmB2K3Zh+KAjNiu2YjYp9mGICovCmE6bm90KFthcmlhLWxhYmVsXSk6bm90KFthcmlhLWxhYmVsbGVkYnldKTpub3QoW3RpdGxlXSk6bm90KDplbXB0eSk6bm90KFtocmVmXj0iIyJdKSB7CiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOwp9Cjwvc3R5bGU+CjxzY3JpcHQ+CihmdW5jdGlvbigpewogICAgLy8g2KfYtdmE2KfYrSDYr9qp2YXZhyBuYXYtcmV2aWV3LXRhYgogICAgdmFyIHJldmlld1RhYiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCduYXYtcmV2aWV3LXRhYicpOwogICAgaWYocmV2aWV3VGFiKSB7CiAgICAgICAgcmV2aWV3VGFiLnNldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbCcsICfYqtioINmG2LjYsdin2KonKTsKICAgICAgICByZXZpZXdUYWIuc2V0QXR0cmlidXRlKCdyb2xlJywgJ3RhYicpOwogICAgICAgIHJldmlld1RhYi5zZXRBdHRyaWJ1dGUoJ2FyaWEtY29udHJvbHMnLCAnbmF2LXJldmlldycpOwogICAgfQogICAgCiAgICAvLyDYp9i12YTYp9itINmE24zZhtqp4oCM2YfYp9uMINio2K/ZiNmGINmF2KrZhgogICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnYScpLmZvckVhY2goZnVuY3Rpb24obGluaykgewogICAgICAgIHZhciB0ZXh0ID0gKGxpbmsudGV4dENvbnRlbnQgfHwgJycpLnRyaW0oKTsKICAgICAgICB2YXIgYXJpYUxhYmVsID0gbGluay5nZXRBdHRyaWJ1dGUoJ2FyaWEtbGFiZWwnKTsKICAgICAgICB2YXIgdGl0bGUgPSBsaW5rLmdldEF0dHJpYnV0ZSgndGl0bGUnKTsKICAgICAgICB2YXIgaGFzSW1nID0gbGluay5xdWVyeVNlbGVjdG9yKCdpbWdbYWx0XScpOwogICAgICAgIAogICAgICAgIGlmKCF0ZXh0ICYmICFhcmlhTGFiZWwgJiYgIXRpdGxlICYmICFoYXNJbWcpIHsKICAgICAgICAgICAgdmFyIGljb24gPSBsaW5rLnF1ZXJ5U2VsZWN0b3IoJ2ksIHNwYW4uZ2x5cGhpY29uLCBzcGFuLmljb24sIHNwYW4uZmEnKTsKICAgICAgICAgICAgaWYoaWNvbikgewogICAgICAgICAgICAgICAgdmFyIGljb25DbGFzcyA9IGljb24uY2xhc3NOYW1lIHx8ICcnOwogICAgICAgICAgICAgICAgdmFyIGxhYmVsID0gJ9mE24zZhtqpJzsKICAgICAgICAgICAgICAgIGlmKGljb25DbGFzcy5pbmNsdWRlcygnZWRpdCcpIHx8IGljb25DbGFzcy5pbmNsdWRlcygncGVuY2lsJykgfHwgaWNvbkNsYXNzLmluY2x1ZGVzKCdmYS1lZGl0JykgfHwgaWNvbkNsYXNzLmluY2x1ZGVzKCdtZGktcGVuY2lsJykpIHsKICAgICAgICAgICAgICAgICAgICBsYWJlbCA9ICfZiNuM2LHYp9uM2LQnOwogICAgICAgICAgICAgICAgfSBlbHNlIGlmKGljb25DbGFzcy5pbmNsdWRlcygnZGVsZXRlJykgfHwgaWNvbkNsYXNzLmluY2x1ZGVzKCd0cmFzaCcpIHx8IGljb25DbGFzcy5pbmNsdWRlcygnZmEtdHJhc2gnKSkgewogICAgICAgICAgICAgICAgICAgIGxhYmVsID0gJ9it2LDZgSc7CiAgICAgICAgICAgICAgICB9IGVsc2UgaWYoaWNvbkNsYXNzLmluY2x1ZGVzKCdzZWFyY2gnKSB8fCBpY29uQ2xhc3MuaW5jbHVkZXMoJ2ZhLXNlYXJjaCcpKSB7CiAgICAgICAgICAgICAgICAgICAgbGFiZWwgPSAn2KzYs9iq2KzZiCc7CiAgICAgICAgICAgICAgICB9IGVsc2UgaWYoaWNvbkNsYXNzLmluY2x1ZGVzKCdjbG9zZScpIHx8IGljb25DbGFzcy5pbmNsdWRlcygndGltZXMnKSB8fCBpY29uQ2xhc3MuaW5jbHVkZXMoJ2ZhLXRpbWVzJykpIHsKICAgICAgICAgICAgICAgICAgICBsYWJlbCA9ICfYqNiz2KrZhic7CiAgICAgICAgICAgICAgICB9IGVsc2UgaWYoaWNvbkNsYXNzLmluY2x1ZGVzKCdzaGFyZScpIHx8IGljb25DbGFzcy5pbmNsdWRlcygnZmEtc2hhcmUnKSkgewogICAgICAgICAgICAgICAgICAgIGxhYmVsID0gJ9in2LTYqtix2KfaqeKAjNqv2LDYp9ix24wnOwogICAgICAgICAgICAgICAgfSBlbHNlIGlmKGljb25DbGFzcy5pbmNsdWRlcygnaGVhcnQnKSB8fCBpY29uQ2xhc3MuaW5jbHVkZXMoJ2xpa2UnKSB8fCBpY29uQ2xhc3MuaW5jbHVkZXMoJ2ZhLWhlYXJ0JykpIHsKICAgICAgICAgICAgICAgICAgICBsYWJlbCA9ICfYudmE2KfZgtmH4oCM2YXZhtiv24wnOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgbGluay5zZXRBdHRyaWJ1dGUoJ2FyaWEtbGFiZWwnLCBsYWJlbCk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAvLyDZhNuM2YbaqSDYqNiv2YjZhiDZhdiq2YYg2Ygg2KjYr9mI2YYg2KLbjNqp2YjZhgogICAgICAgICAgICAgICAgbGluay5zZXRBdHRyaWJ1dGUoJ2FyaWEtbGFiZWwnLCAn2YTbjNmG2qknKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0pOwp9KSgpOwo8L3NjcmlwdD4KCjwhLS0gUGVyZm9ybWFuY2U6IFJlc291cmNlIEhpbnRzICsgUHJlbG9hZCAtLT4KPGxpbmsgcmVsPSJwcmVjb25uZWN0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tIiBjcm9zc29yaWdpbj4KPGxpbmsgcmVsPSJwcmVjb25uZWN0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQiIGNyb3Nzb3JpZ2luPgo8bGluayByZWw9ImRucy1wcmVmZXRjaCIgaHJlZj0iLy9jZG5qcy5jbG91ZGZsYXJlLmNvbSI+CjxsaW5rIHJlbD0iZG5zLXByZWZldGNoIiBocmVmPSIvL2Nkbi5qc2RlbGl2ci5uZXQiPgoKCgo8IS0tIFNjaGVtYSBDbGVhbnVwIOKAlCDYrdiw2YEgU2l0ZU5hdmlnYXRpb25FbGVtZW50INiu2LHYp9ioIENNUyAtLT4KPHNjcmlwdD4KZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIGZ1bmN0aW9uKCkgewogICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnc2NyaXB0W3R5cGU9ImFwcGxpY2F0aW9uL2xkK2pzb24iXScpLmZvckVhY2goZnVuY3Rpb24ocykgewogICAgICAgIGlmKHMudGV4dENvbnRlbnQuaW5kZXhPZignU2l0ZU5hdmlnYXRpb25FbGVtZW50JykgIT09IC0xKSBzLnJlbW92ZSgpOwogICAgfSk7Cn0pOwp3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uKCkgewogICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnc2NyaXB0W3R5cGU9ImFwcGxpY2F0aW9uL2xkK2pzb24iXScpLmZvckVhY2goZnVuY3Rpb24ocykgewogICAgICAgIGlmKHMudGV4dENvbnRlbnQuaW5kZXhPZignU2l0ZU5hdmlnYXRpb25FbGVtZW50JykgIT09IC0xKSBzLnJlbW92ZSgpOwogICAgfSk7Cn0pOwpzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnc2NyaXB0W3R5cGU9ImFwcGxpY2F0aW9uL2xkK2pzb24iXScpLmZvckVhY2goZnVuY3Rpb24ocykgewogICAgICAgIGlmKHMudGV4dENvbnRlbnQuaW5kZXhPZignU2l0ZU5hdmlnYXRpb25FbGVtZW50JykgIT09IC0xKSBzLnJlbW92ZSgpOwogICAgfSk7Cn0sIDEwMDApOwpzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnc2NyaXB0W3R5cGU9ImFwcGxpY2F0aW9uL2xkK2pzb24iXScpLmZvckVhY2goZnVuY3Rpb24ocykgewogICAgICAgIGlmKHMudGV4dENvbnRlbnQuaW5kZXhPZignU2l0ZU5hdmlnYXRpb25FbGVtZW50JykgIT09IC0xKSBzLnJlbW92ZSgpOwogICAgfSk7Cn0sIDMwMDApOwo8L3NjcmlwdD4KPCEtLSBNb2JpbGUgUGVyZm9ybWFuY2U6IERlZmVyIEdUTSArIG9wdGltaXplIGxvYWRpbmcgLS0+CjxzY3JpcHQ+Ci8vIEdvb2dsZSBUYWcgTWFuYWdlciAtIG9ubHkgYWZ0ZXIgcGFnZSBsb2FkIG9uIG1vYmlsZQooZnVuY3Rpb24oKXsKICAgIHZhciBpc01vYmlsZSA9IC9Nb2JpbGV8QW5kcm9pZHxpUGhvbmV8aVBhZC9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkgfHwgd2luZG93LmlubmVyV2lkdGggPCA3Njg7CiAgICBpZihpc01vYmlsZSl7CiAgICAgICAgLy8gRGVmZXIgYWxsIEdUTS9HQSBzY3JpcHRzIG9uIG1vYmlsZQogICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbigpewogICAgICAgICAgICB2YXIgc2NyaXB0cyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3NjcmlwdFtzcmMqPSJnb29nbGV0YWdtYW5hZ2VyIl0sIHNjcmlwdFtzcmMqPSJndGFnIl0nKTsKICAgICAgICAgICAgc2NyaXB0cy5mb3JFYWNoKGZ1bmN0aW9uKHMpewogICAgICAgICAgICAgICAgcy5zZXRBdHRyaWJ1dGUoJ2RlZmVyJywnJyk7CiAgICAgICAgICAgIH0pOwogICAgICAgIH0pOwogICAgfQp9KSgpOwo8L3NjcmlwdD4KCjwhLS0gTW9iaWxlIFBlcmZvcm1hbmNlOiBSZWR1Y2UgbWFpbiB0aHJlYWQgd29yayAtLT4KPHN0eWxlPgovKiBHUFUgYWNjZWxlcmF0aW9uIGZvciBtb2JpbGUgKi8KQG1lZGlhKG1heC13aWR0aDo3NjhweCl7CiAgICAucHJvZHVjdC1jYXJkLC5jYXRlZ29yeS1pdGVtLC5zd2lwZXItc2xpZGV7d2lsbC1jaGFuZ2U6dHJhbnNmb3JtO3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApO30KICAgIGltZ3tjb250ZW50LXZpc2liaWxpdHk6YXV0bzt9Cn0KPC9zdHlsZT4KCjwhLS0gUGVyZm9ybWFuY2U6IERlZmVyIG5vbi1jcml0aWNhbCBDU1MgLS0+CjxsaW5rIHJlbD0icHJlbG9hZCIgaHJlZj0iaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9AbWRpL2ZvbnRANy40LjQ3L2Nzcy9tYXRlcmlhbGRlc2lnbmljb25zLm1pbi5jc3MiIGFzPSJzdHlsZSIgb25sb2FkPSJ0aGlzLm9ubG9hZD1udWxsO3RoaXMucmVsPSdzdHlsZXNoZWV0JyI+Cjxub3NjcmlwdD48bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vQG1kaS9mb250QDcuNC40Ny9jc3MvbWF0ZXJpYWxkZXNpZ25pY29ucy5taW4uY3NzIj48L25vc2NyaXB0Pgo8IS0tIFBlcmZvcm1hbmNlOiBHb29nbGUgQW5hbHl0aWNzIFByZWNvbm5lY3QgLS0+CjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly93d3cuZ29vZ2xlLWFuYWx5dGljcy5jb20iIGNyb3Nzb3JpZ2luPgo8bGluayByZWw9ImRucy1wcmVmZXRjaCIgaHJlZj0iLy93d3cuZ29vZ2xlLWFuYWx5dGljcy5jb20iPgo=