CINXE.COM
地面光伏发电站方案-新能源光伏电站-分布式储能电站-华为光伏官网
<!DOCTYPE html> <html lang="zh" data-region="cn"> <head id="Head1"><meta name="keywords" content="华为地面光伏发电站方案包含集中式光伏发电和智能组串式储能解决方案,做到光储结合,支撑60%+高比例新能源稳定并网,更多专业的光伏电站方案,请关注华为智能光伏官网。,华为,Huawei, FusionSolar, 华为光伏,智能光伏,光伏业务,光伏发电,逆变器,光伏逆变器,光伏电站,网络能源,大型地面,领跑者,分布式,户用,扶贫"><meta name="description" content="光伏发电站,地面光伏发电站,新能源光伏电站,太阳能光伏电站,分布式储能电站,华为率先将20多年积累的数字信息技术、互联网技术与光伏技术进行跨界融合,推出领先的智能光伏解决方案。基于简单、全数字化、全球化自动营维等创新理念,打造 “高效发电、智能营维、安全可靠” 的智能光伏电站。"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1"><title> 地面光伏发电站方案-新能源光伏电站-分布式储能电站-华为光伏官网 </title> <meta name="applicable-device" content="pc,mobile"> <link rel="canonical" href="https://solar.huawei.com/cn/utility-plant-owners"> <link rel="stylesheet" href="/Assets/Solar/v4/css/aui3.css?ver=202411131551"> <link rel="stylesheet" href="/Assets/Solar/v4/css/common.css?ver=202411131551"> <script src="/Assets/Solar/v4/js/utils/jquery-3.6.0.min.js?ver=202411131551"></script> <link rel="stylesheet" type="text/css" href="/-/media/SolarV4/solar-version2/common/seo/common-style.css?ver=202411131551"> <style> .nav-top-right .js-header-login,.nav-top-right .js-header-account,.nav-top-right .js-header-logout,.container .js-mheader-login,.container .js-mheader-account{ display:none !important; } </style><link rel="stylesheet" type="text/css" href="/Assets/Solar/v4/js/utils/swiper-new.min.css?ver=202411131551"> <link rel="stylesheet" type="text/css" href="/Assets/Solar/v4/css/Owners/common.css?ver=202411131551"> <link rel="stylesheet" type="text/css" href="/Assets/Solar/v4/css/Owners/UtilityPlantOwners.css?ver=202411131551"><link rel="Shortcut Icon" href="/Assets/solar/v4/img/img_ent_en_logo_ico.ico"></head> <body class="aui3 ev_no_wcag"> <form method="post" action="/cn/utility-plant-owners" id="form1"> <div class="aspNetHidden"> <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKLTc0MDY0NDU1Mw8WAh4TVmFsaWRhdGVSZXF1ZXN0TW9kZQIBFgYCAg9kFgJmD2QWAmYPZBYMAgEPFgIeBFRleHQFjDA8ZGl2IGNsYXNzPSJuYXYtYWxsTGFuZ0JveCI+CiAgICA8ZGl2IGNsYXNzPSJpY29uLWNsb3NlIj48L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImN1cnItbGFuZyI+PHNwYW4gY2xhc3M9Imljb24tY3VyciI+PC9zcGFuPgogICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vc29sYXIuaHVhd2VpLmNvbS9lbiI+RnVzaW9uU29sYXIgR2xvYmFsIC8gRW5nbGlzaDwvYT4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iYWxsTGFuZyI+CiAgICAgICAgPGRpdiBjbGFzcz0iYXJlYUl0ZW0iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJhcmVhVGV4dCI+QXNpYSBQYWNpZmljPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxhbmdMaXN0Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxhbmdJdGVtIj48YSBocmVmPSJodHRwczovL3NvbGFyLmh1YXdlaS5jb20vYXUiPkF1c3RyYWxpYSAvIEVuZ2xpc2g8L2E+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsYW5nSXRlbSI+PGEgaHJlZj0iaHR0cHM6Ly9zb2xhci5odWF3ZWkuY29tL2NuIj5DaGluYSAvIOeugOS9k+S4reaWhzwvYT48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxhbmdJdGVtIj48YSBocmVmPSJodHRwczovL3NvbGFyLmh1YXdlaS5jb20vaGsiPkhvbmcgS29uZywgQ2hpbmEgLyDnuYHpq5TkuK3mloc8L2E+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsYW5nSXRlbSI+PGEgaHJlZj0iaHR0cHM6Ly9zb2xhci5odWF3ZWkuY29tL2lkIj5JbmRvbmVzaWEgLyBJbmRvbmVzaWFuPC9hPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGFuZ0l0ZW0iPjxhIGhyZWY9Imh0dHBzOi8vc29sYXIuaHVhd2VpLmNvbS9qcCI+SmFwYW4gLyDml6XmnKzoqp48L2E+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsYW5nSXRlbSI+PGEgaHJlZj0iaHR0cHM6Ly9zb2xhci5odWF3ZWkuY29tL215Ij5NYWxheXNpYSAvIEVuZ2xpc2g8L2E+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsYW5nSXRlbSI+PGEgaHJlZj0iaHR0cHM6Ly9zb2xhci5odWF3ZWkuY29tL3BoIj5QaGlsaXBwaW5lcyAvIEVuZ2xpc2g8L2E+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsYW5nSXRlbSI+PGEgaHJlZj0iaHR0cHM6Ly9zb2xhci5odWF3ZWkuY29tL3NnIj5TaW5nYXBvcmUgLyBFbmdsaXNoPC9hPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGFuZ0l0ZW0iPjxhIGhyZWY9Imh0dHBzOi8vc29sYXIuaHVhd2VpLmNvbS9rciI+U291dGggS29yZWEgLyDtlZzqta3slrQ8L2E+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsYW5nSXRlbSI+PGEgaHJlZj0iaHR0cHM6Ly9zb2xhci5odWF3ZWkuY29tL3RoIj5UaGFpbGFuZCAvIOC5hOC4l+C4ojwvYT48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxhbmdJdGVtIj48YSBocmVmPSJodHRwczovL3NvbGFyLmh1YXdlaS5jb20vdm4iPlZpZXRuYW0gLyBFbmdsaXNoPC9hPjwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJhcmVhSXRlbSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFyZWFUZXh0Ij5FdXJvcGU8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGFuZ0xpc3QiPgoKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxhbmdJdGVtIj48YSBocmVmPSJodHRwczovL3NvbGFyLmh1YXdlaS5jb20vYXQiPkF1c3RyaWEgLyBEZXV0c2NoPC9hPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGFuZ0l0ZW0iPjxhIGhyZWY9Imh0dHBzOi8vc29sYXIuaHVhd2VpLmNvbS9iZS1mciI+QmVsZ2l1bSAvIEZyYW7Dp2FpczwvYT48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxhbmdJdGVtIj48YSBocmVmPSJodHRwczovL3NvbGFyLmh1YXdlaS5jb20vYmUiPkJlbGdpdW0gLyBOZWRlcmxhbmRzPC9hPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGFuZ0l0ZW0iPjxhIGhyZWY9Imh0dHBzOi8vc29sYXIuaHVhd2VpLmNvbS9iZyI+QnVsZ2FyaWEgLyDQsdGK0LvQs9Cw0YDRgdC60Lg8L2E+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsYW5nSXRlbSI+PGEgaHJlZj0iaHR0cHM6Ly9zb2xhci5odWF3ZWkuY29tL2hyIj5Dcm9hdGlhIC8gaHJ2YXRza2k8L2E+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsYW5nSXRlbSI+PGEgaHJlZj0iaHR0cHM6Ly9zb2xhci5odWF3ZWkuY29tL2N6Ij5DemVjaGlhIC8gxI1lxaF0aW5hPC9hPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGFuZ0l0ZW0iPjxhIGhyZWY9Imh0dHBzOi8vc29sYXIuaHVhd2VpLmNvbS9kayI+RGVubWFyayAvIERhbnNrPC9hPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGFuZ0l0ZW0iPjxhIGhyZWY9Imh0dHBzOi8vc29sYXIuaHVhd2VpLmNvbS9mciI+RnJhbmNlIC8gRnJhbsOnYWlzPC9hPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGFuZ0l0ZW0iPjxhIGhyZWY9Imh0dHBzOi8vc29sYXIuaHVhd2VpLmNvbS9kZSI+R2VybWFueSAvIERldXRzY2g8L2E+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsYW5nSXRlbSI+PGEgaHJlZj0iaHR0cHM6Ly9zb2xhci5odWF3ZWkuY29tL2dyIj5HcmVlY2UgLyDOlc67zrvOt869zrnOus6sPC9hPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGFuZ0l0ZW0iPjxhIGhyZWY9Imh0dHBzOi8vc29sYXIuaHVhd2VpLmNvbS9odSI+SHVuZ2FyeSAvIEh1bmdhcmlhbjwvYT48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxhbmdJdGVtIj48YSBocmVmPSJodHRwczovL3NvbGFyLmh1YXdlaS5jb20vaWUiPklyZWxhbmQgLyBFbmdsaXNoPC9hPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGFuZ0l0ZW0iPjxhIGhyZWY9Imh0dHBzOi8vc29sYXIuaHVhd2VpLmNvbS9pdCI+SXRhbHkgLyBJdGFsaWFubzwvYT48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxhbmdJdGVtIj48YSBocmVmPSJodHRwczovL3NvbGFyLmh1YXdlaS5jb20vbmwiPk5ldGhlcmxhbmRzIC8gRHV0Y2g8L2E+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsYW5nSXRlbSI+PGEgaHJlZj0iaHR0cHM6Ly9zb2xhci5odWF3ZWkuY29tL3BsIj5Qb2xhbmQgLyBQb2xpc2g8L2E+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsYW5nSXRlbSI+PGEgaHJlZj0iaHR0cHM6Ly9zb2xhci5odWF3ZWkuY29tL3B0Ij5Qb3J0dWdhbCAvIHBvcnR1Z3XDqnM8L2E+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsYW5nSXRlbSI+PGEgaHJlZj0iaHR0cHM6Ly9zb2xhci5odWF3ZWkuY29tL3JvIj5Sb21hbmlhIC8gcm9tw6JuxIM8L2E+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsYW5nSXRlbSI+PGEgaHJlZj0iaHR0cHM6Ly9zb2xhci5odWF3ZWkuY29tL3NrIj5TbG92YWtpYSAvIHNsb3ZlbsSNaW5hPC9hPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGFuZ0l0ZW0iPjxhIGhyZWY9Imh0dHBzOi8vc29sYXIuaHVhd2VpLmNvbS9lcyI+U3BhaW4gLyBFc3Bhw7FvbDwvYT48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxhbmdJdGVtIj48YSBocmVmPSJodHRwczovL3NvbGFyLmh1YXdlaS5jb20vc2UiPlN3ZWRlbiAvIFN2ZW5za2E8L2E+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsYW5nSXRlbSI+PGEgaHJlZj0iaHR0cHM6Ly9zb2xhci5odWF3ZWkuY29tL2NoIj5Td2l0emVybGFuZCAvIERldXRzY2g8L2E+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsYW5nSXRlbSI+PGEgaHJlZj0iaHR0cHM6Ly9zb2xhci5odWF3ZWkuY29tL2NoLWZyIj5Td2l0emVybGFuZCAvIEZyYW7Dp2FpczwvYT48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxhbmdJdGVtIj48YSBocmVmPSJodHRwczovL3NvbGFyLmh1YXdlaS5jb20vdHIiPlTDvHJraXllIC8gVMO8cmvDp2U8L2E+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsYW5nSXRlbSI+PGEgaHJlZj0iaHR0cHM6Ly9zb2xhci5odWF3ZWkuY29tL3VhIj5Va3JhaW5lIC8g0KPQutGA0LDRl9C90LA8L2E+PC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImFyZWFJdGVtIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iYXJlYVRleHQiPkxhdGluIEFtZXJpY2E8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGFuZ0xpc3QiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGFuZ0l0ZW0iPjxhIGhyZWY9Imh0dHBzOi8vc29sYXIuaHVhd2VpLmNvbS9iciI+QnJhemlsIC8gUG9ydHVndWVzZTwvYT48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxhbmdJdGVtIj48YSBocmVmPSJodHRwczovL3NvbGFyLmh1YXdlaS5jb20vbGF0YW0iPkxhdGluIEFtZXJpY2EgLyBFc3Bhw7FvbDwvYT48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxhbmdJdGVtIj48YSBocmVmPSJodHRwczovL3NvbGFyLmh1YXdlaS5jb20vbXgiPk3DqXhpY28gLyBFc3Bhw7FvbDwvYT48L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iYXJlYUl0ZW0iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJhcmVhVGV4dCI+TWlkZGxlIEVhc3QgJmFtcDsgQWZyaWNhPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxhbmdMaXN0Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxhbmdJdGVtIj48YSBocmVmPSJodHRwczovL3NvbGFyLmh1YXdlaS5jb20vZWciPkVneXB0IC8g2KfZhNmE2LrYqSDYp9mE2LnYsdio2YrYqTwvYT48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxhbmdJdGVtIj48YSBocmVmPSJodHRwczovL3NvbGFyLmh1YXdlaS5jb20va2UiPktlbnlhIC8gRW5nbGlzaDwvYT48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxhbmdJdGVtIj48YSBocmVmPSJodHRwczovL3NvbGFyLmh1YXdlaS5jb20vbWEiPk1vcm9jY28gLyBGcmFuw6dhaXM8L2E+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsYW5nSXRlbSI+PGEgaHJlZj0iaHR0cHM6Ly9zb2xhci5odWF3ZWkuY29tL25nIj5OaWdlcmlhIC8gRW5nbGlzaDwvYT48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxhbmdJdGVtIj48YSBocmVmPSJodHRwczovL3NvbGFyLmh1YXdlaS5jb20vcGsiPlBha2lzdGFuIC8gRW5nbGlzaDwvYT48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxhbmdJdGVtIj48YSBocmVmPSJodHRwczovL3NvbGFyLmh1YXdlaS5jb20vc2EiPlNhdWRpIEFyYWJpYSAvINin2YTZhNi62Kkg2KfZhNi52LHYqNmK2KkgPC9hPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGFuZ0l0ZW0iPjxhIGhyZWY9Imh0dHBzOi8vc29sYXIuaHVhd2VpLmNvbS9zYS1lbiI+U2F1ZGkgQXJhYmlhIC8gRW5nbGlzaDwvYT48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxhbmdJdGVtIj48YSBocmVmPSJodHRwczovL3NvbGFyLmh1YXdlaS5jb20vemEiPlNvdXRoIEFmcmljYSAvIEVuZ2xpc2g8L2E+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsYW5nSXRlbSI+PGEgaHJlZj0iaHR0cHM6Ly9zb2xhci5odWF3ZWkuY29tL3RuIj5UdW5pc2lhIC8gRnJhbsOnYWlzPC9hPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGFuZ0l0ZW0iPjxhIGhyZWY9Imh0dHBzOi8vc29sYXIuaHVhd2VpLmNvbS9hZSI+VUFFIC8g2KfZhNmE2LrYqSDYp9mE2LnYsdio2YrYqTwvYT48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxhbmdJdGVtIj48YSBocmVmPSJodHRwczovL3NvbGFyLmh1YXdlaS5jb20vYWUtZW4iPlVBRSAvIEVuZ2xpc2g8L2E+PC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgIDwvZGl2Pgo8L2Rpdj5kAgIPFgIeC18hSXRlbUNvdW50AgYWDGYPZBYEZg8VBA8vY24vaG9tZS1vd25lcnMA5AR0cnkgeyB3aW5kb3cuaHdhKCd0cmFja1N0cnVjdEV2ZW50JywgeyB1ZW1faWQ6ICdQODFENDQ4Q0JGQ0EyMkZfQzgxREU2QkYxNUIyM0Y3JywgdWVtX2xhYmVsOiAn54K55Ye7IOmhteeciS3lrrbluq3kuJrkuLsnLH0pOyB9IGNhdGNoIChlKSB7fTt0cnkgeyAgIGd0YWcoJ2V2ZW50JywnRmlyc3RfTmF2aWdhdGlvbicseydldmVudENhdGVnb3J5Jzpkb2N1bWVudC5sb2NhdGlvbi5wYXRobmFtZSwnU2l0ZV9Db3VudHJ5X0NvZGVfSCc6JCgnaHRtbCcpLmF0dHIoJ2RhdGEtcmVnaW9uJykucmVwbGFjZSgvWy9dL2csICcnKS50b1VwcGVyQ2FzZSgpLCdldmVudEFjdGlvbic6ICdGaXJzdF9OYXZpZ2F0aW9uJywnZXZlbnRMYWJlbCc6J0hvbWUgT3duZXJzJysnKycrKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLnJlcGxhY2UoL1wvJC8sICcnKX0pIH0gY2F0Y2ggKGVycm9yKSB7aWYgKGVycm9yLm1lc3NhZ2UgPT09ICdndGFnIGlzIG5vdCBkZWZpbmVkJykge2NvbnNvbGUubG9nKCdHb29nbGUgQW5hbHl0aWNzIGlzIG5vdCBhdmFpbGFibGUuIEV2ZW50IHRyYWNraW5nIGlzIGRpc2FibGVkLicpO30gZWxzZSB7dGhyb3cgZXJyb3I7fX0M5a625bqt5Lia5Li7ZAIBDxYCHwIC/////w9kAgEPZBYEZg8VBBMvY24vYnVzaW5lc3Mtb3duZXJzAOwEdHJ5IHsgd2luZG93Lmh3YSgndHJhY2tTdHJ1Y3RFdmVudCcsIHsgdWVtX2lkOiAnUDgxRDQ0OENCRkNBMjJGX0M4MURFNkJGMUM1RUQ1MicsIHVlbV9sYWJlbDogJ+eCueWHuyDpobXnnIkt5LyB5Lia5Lia5Li7Jyx9KTsgfSBjYXRjaCAoZSkge307dHJ5IHsgICAgIGd0YWcoJ2V2ZW50JywnRmlyc3RfTmF2aWdhdGlvbicseydldmVudENhdGVnb3J5Jzpkb2N1bWVudC5sb2NhdGlvbi5wYXRobmFtZSwnU2l0ZV9Db3VudHJ5X0NvZGVfSCc6JCgnaHRtbCcpLmF0dHIoJ2RhdGEtcmVnaW9uJykucmVwbGFjZSgvWy9dL2csICcnKS50b1VwcGVyQ2FzZSgpLCdldmVudEFjdGlvbic6ICdGaXJzdF9OYXZpZ2F0aW9uJywnZXZlbnRMYWJlbCc6J0J1c2luZXNzIE93bmVycycrJysnKyh3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKS5yZXBsYWNlKC9cLyQvLCAnJyl9KSAgIH0gY2F0Y2ggKGVycm9yKSB7aWYgKGVycm9yLm1lc3NhZ2UgPT09ICdndGFnIGlzIG5vdCBkZWZpbmVkJykge2NvbnNvbGUubG9nKCdHb29nbGUgQW5hbHl0aWNzIGlzIG5vdCBhdmFpbGFibGUuIEV2ZW50IHRyYWNraW5nIGlzIGRpc2FibGVkLicpO30gZWxzZSB7dGhyb3cgZXJyb3I7fX0M5LyB5Lia5Lia5Li7ZAIBDxYCHwIC/////w9kAgIPZBYEZg8VBBgvY24vdXRpbGl0eS1wbGFudC1vd25lcnMA8QR0cnkgeyB3aW5kb3cuaHdhKCd0cmFja1N0cnVjdEV2ZW50JywgeyB1ZW1faWQ6ICdQODFENDQ4Q0JGQ0EyMkZfQzgxREU2QkYzNzhFQzE3JywgdWVtX2xhYmVsOiAn54K55Ye7IOmhteeciS3nlLXnq5nkuJrkuLsnLH0pOyB9IGNhdGNoIChlKSB7fTt0cnkgeyAgICAgZ3RhZygnZXZlbnQnLCdGaXJzdF9OYXZpZ2F0aW9uJyx7J2V2ZW50Q2F0ZWdvcnknOmRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lLCdTaXRlX0NvdW50cnlfQ29kZV9IJzokKCdodG1sJykuYXR0cignZGF0YS1yZWdpb24nKS5yZXBsYWNlKC9bL10vZywgJycpLnRvVXBwZXJDYXNlKCksJ2V2ZW50QWN0aW9uJzogJ0ZpcnN0X05hdmlnYXRpb24nLCdldmVudExhYmVsJzonVXRpbGl0eSBQbGFudCBPd25lcnMnKycrJysod2luZG93LmxvY2F0aW9uLm9yaWdpbiArIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkucmVwbGFjZSgvXC8kLywgJycpfSkgICB9IGNhdGNoIChlcnJvcikge2lmIChlcnJvci5tZXNzYWdlID09PSAnZ3RhZyBpcyBub3QgZGVmaW5lZCcpIHtjb25zb2xlLmxvZygnR29vZ2xlIEFuYWx5dGljcyBpcyBub3QgYXZhaWxhYmxlLiBFdmVudCB0cmFja2luZyBpcyBkaXNhYmxlZC4nKTt9IGVsc2Uge3Rocm93IGVycm9yO319DOeUteermeS4muS4u2QCAQ8WAh8CAv////8PZAIDD2QWBGYPFQQdL2NuL3Byb2Zlc3Npb25hbHMvcmVzaWRlbnRpYWwA6gR0cnkgeyB3aW5kb3cuaHdhKCd0cmFja1N0cnVjdEV2ZW50JywgeyB1ZW1faWQ6ICdQODFENDQ4Q0JGQ0EyMkZfQzgxREU2QkYxNDVGNUIxJywgdWVtX2xhYmVsOiAn54K55Ye7IOmhteeciS3kuJPkuJrkurrlo6snLH0pOyB9IGNhdGNoIChlKSB7fTt0cnkgeyAgICAgZ3RhZygnZXZlbnQnLCdGaXJzdF9OYXZpZ2F0aW9uJyx7J2V2ZW50Q2F0ZWdvcnknOmRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lLCdTaXRlX0NvdW50cnlfQ29kZV9IJzokKCdodG1sJykuYXR0cignZGF0YS1yZWdpb24nKS5yZXBsYWNlKC9bL10vZywgJycpLnRvVXBwZXJDYXNlKCksJ2V2ZW50QWN0aW9uJzogJ0ZpcnN0X05hdmlnYXRpb24nLCdldmVudExhYmVsJzonUHJvZmVzc2lvbmFscycrJysnKyh3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKS5yZXBsYWNlKC9cLyQvLCAnJyl9KSAgIH0gY2F0Y2ggKGVycm9yKSB7aWYgKGVycm9yLm1lc3NhZ2UgPT09ICdndGFnIGlzIG5vdCBkZWZpbmVkJykge2NvbnNvbGUubG9nKCdHb29nbGUgQW5hbHl0aWNzIGlzIG5vdCBhdmFpbGFibGUuIEV2ZW50IHRyYWNraW5nIGlzIGRpc2FibGVkLicpO30gZWxzZSB7dGhyb3cgZXJyb3I7fX0M5LiT5Lia5Lq65aOrZAIBDxYEHwICBh4HVmlzaWJsZWcWDGYPZBYCZg8VBB0vY24vcHJvZmVzc2lvbmFscy9yZXNpZGVudGlhbACcBXRyeSB7IHdpbmRvdy5od2EoJ3RyYWNrU3RydWN0RXZlbnQnLCB7IHVlbV9pZDogJ1A4MUQ0NDhDQkZDQTIyRl9DODFERTZCRjYyREQ1RUQnLCB1ZW1fbGFiZWw6ICfngrnlh7sg6aG155yJLeS4k+S4muS6uuWjqy3lrrbluq3nu7/nlLUnLH0pOyB9IGNhdGNoIChlKSB7fTt0cnkgeyAgICAgZ3RhZygnZXZlbnQnLCdTdWJfTmF2aWdhdGlvbicseydldmVudENhdGVnb3J5Jzpkb2N1bWVudC5sb2NhdGlvbi5wYXRobmFtZSwnU2l0ZV9Db3VudHJ5X0NvZGVfSCc6JCgnaHRtbCcpLmF0dHIoJ2RhdGEtcmVnaW9uJykucmVwbGFjZSgvWy9dL2csICcnKS50b1VwcGVyQ2FzZSgpLCdldmVudEFjdGlvbic6J1N1Yl9OYXZpZ2F0aW9uJywnZXZlbnRMYWJlbCc6J1Byb2Zlc3Npb25hbHMnKycrJysnUmVzaWRlbnRpYWwgU21hcnQgUFYgJiBFU1MgU29sdXRpb24nKycrJysod2luZG93LmxvY2F0aW9uLm9yaWdpbiArIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkucmVwbGFjZSgvXC8kLywgJycpfSkgICB9IGNhdGNoIChlcnJvcikge2lmIChlcnJvci5tZXNzYWdlID09PSAnZ3RhZyBpcyBub3QgZGVmaW5lZCcpIHtjb25zb2xlLmxvZygnR29vZ2xlIEFuYWx5dGljcyBpcyBub3QgYXZhaWxhYmxlLiBFdmVudCB0cmFja2luZyBpcyBkaXNhYmxlZC4nKTt9IGVsc2Uge3Rocm93IGVycm9yO319DOWutuW6ree7v+eUtWQCAQ9kFgJmDxUEFS9jbi9wcm9mZXNzaW9uYWxzL2MtaQCTBXRyeSB7IHdpbmRvdy5od2EoJ3RyYWNrU3RydWN0RXZlbnQnLCB7IHVlbV9pZDogJ1A4MUQ0NDhDQkZDQTIyRl9DODFERTZCRjJCQjI1RTknLCB1ZW1fbGFiZWw6ICfngrnlh7sg6aG155yJLeS4k+S4muS6uuWjqy3ooYzkuJrnu7/nlLUnLH0pOyB9IGNhdGNoIChlKSB7fTt0cnkgeyAgICBndGFnKCdldmVudCcsJ1N1Yl9OYXZpZ2F0aW9uJyx7J2V2ZW50Q2F0ZWdvcnknOmRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lLCdTaXRlX0NvdW50cnlfQ29kZV9IJzokKCdodG1sJykuYXR0cignZGF0YS1yZWdpb24nKS5yZXBsYWNlKC9bL10vZywgJycpLnRvVXBwZXJDYXNlKCksJ2V2ZW50QWN0aW9uJzonU3ViX05hdmlnYXRpb24nLCdldmVudExhYmVsJzonUHJvZmVzc2lvbmFscycrJysnKydDJkkgU21hcnQgUFYgJiBFU1MgU29sdXRpb24nKycrJysod2luZG93LmxvY2F0aW9uLm9yaWdpbiArIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkucmVwbGFjZSgvXC8kLywgJycpfSkgICB9IGNhdGNoIChlcnJvcikge2lmIChlcnJvci5tZXNzYWdlID09PSAnZ3RhZyBpcyBub3QgZGVmaW5lZCcpIHtjb25zb2xlLmxvZygnR29vZ2xlIEFuYWx5dGljcyBpcyBub3QgYXZhaWxhYmxlLiBFdmVudCB0cmFja2luZyBpcyBkaXNhYmxlZC4nKTt9IGVsc2Uge3Rocm93IGVycm9yO319DOihjOS4mue7v+eUtWQCAg9kFgJmDxUEGS9jbi9wcm9mZXNzaW9uYWxzL3V0aWxpdHkAkgV0cnkgeyB3aW5kb3cuaHdhKCd0cmFja1N0cnVjdEV2ZW50JywgeyB1ZW1faWQ6ICdQODFENDQ4Q0JGQ0EyMkZfQzgxREU2QkYxRUMyNzg0JywgdWVtX2xhYmVsOiAn54K55Ye7IOmhteeciS3kuJPkuJrkurrlo6st5pm66IO95YWJ5LyPJyx9KTsgfSBjYXRjaCAoZSkge307dHJ5IHsgICAgIGd0YWcoJ2V2ZW50JywnU3ViX05hdmlnYXRpb24nLHsnZXZlbnRDYXRlZ29yeSc6ZG9jdW1lbnQubG9jYXRpb24ucGF0aG5hbWUsJ1NpdGVfQ291bnRyeV9Db2RlX0gnOiQoJ2h0bWwnKS5hdHRyKCdkYXRhLXJlZ2lvbicpLnJlcGxhY2UoL1svXS9nLCAnJykudG9VcHBlckNhc2UoKSwnZXZlbnRBY3Rpb24nOidTdWJfTmF2aWdhdGlvbicsJ2V2ZW50TGFiZWwnOidQcm9mZXNzaW9uYWxzJysnKycrJ1V0aWxpdHkgU21hcnQgUFYgU29sdXRpb24nKycrJysod2luZG93LmxvY2F0aW9uLm9yaWdpbiArIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkucmVwbGFjZSgvXC8kLywgJycpfSkgICB9IGNhdGNoIChlcnJvcikge2lmIChlcnJvci5tZXNzYWdlID09PSAnZ3RhZyBpcyBub3QgZGVmaW5lZCcpIHtjb25zb2xlLmxvZygnR29vZ2xlIEFuYWx5dGljcyBpcyBub3QgYXZhaWxhYmxlLiBFdmVudCB0cmFja2luZyBpcyBkaXNhYmxlZC4nKTt9IGVsc2Uge3Rocm93IGVycm9yO319EuaZuuiDveWFieS8j+eUteermWQCAw9kFgJmDxUEFS9jbi9wcm9mZXNzaW9uYWxzL2VzcwCaBXRyeSB7IHdpbmRvdy5od2EoJ3RyYWNrU3RydWN0RXZlbnQnLCB7IHVlbV9pZDogJ1A4MUQ0NDhDQkZDQTIyRl9DODFERTZCRjc3OERBOEQnLCB1ZW1fbGFiZWw6ICfngrnlh7sg6aG155yJLeS4k+S4muS6uuWjqy3mmbrog73nu4TkuLInLH0pOyB9IGNhdGNoIChlKSB7fTt0cnkgeyAgICAgZ3RhZygnZXZlbnQnLCdTdWJfTmF2aWdhdGlvbicseydldmVudENhdGVnb3J5Jzpkb2N1bWVudC5sb2NhdGlvbi5wYXRobmFtZSwnU2l0ZV9Db3VudHJ5X0NvZGVfSCc6JCgnaHRtbCcpLmF0dHIoJ2RhdGEtcmVnaW9uJykucmVwbGFjZSgvWy9dL2csICcnKS50b1VwcGVyQ2FzZSgpLCdldmVudEFjdGlvbic6J1N1Yl9OYXZpZ2F0aW9uJywnZXZlbnRMYWJlbCc6J1Byb2Zlc3Npb25hbHMnKycrJysnVXRpbGl0eSBTbWFydCBTdHJpbmcgRVNTIFNvbHV0aW9uJysnKycrKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLnJlcGxhY2UoL1wvJC8sICcnKX0pICAgfSBjYXRjaCAoZXJyb3IpIHtpZiAoZXJyb3IubWVzc2FnZSA9PT0gJ2d0YWcgaXMgbm90IGRlZmluZWQnKSB7Y29uc29sZS5sb2coJ0dvb2dsZSBBbmFseXRpY3MgaXMgbm90IGF2YWlsYWJsZS4gRXZlbnQgdHJhY2tpbmcgaXMgZGlzYWJsZWQuJyk7fSBlbHNlIHt0aHJvdyBlcnJvcjt9fRXmmbrog73nu4TkuLLlvI/lgqjog71kAgQPZBYCZg8VBBwvY24vcHJvZmVzc2lvbmFscy9taWNyby1ncmlkAJIFdHJ5IHsgd2luZG93Lmh3YSgndHJhY2tTdHJ1Y3RFdmVudCcsIHsgdWVtX2lkOiAnUDgxRDQ0OENCRkNBMjJGX0M4MURFNkJGNzY4MkJFQScsIHVlbV9sYWJlbDogJ+eCueWHuyDpobXnnIkt5LiT5Lia5Lq65aOrLeaZuuiDveW+rue9kScsfSk7IH0gY2F0Y2ggKGUpIHt9O3RyeSB7ICAgICBndGFnKCdldmVudCcsJ1N1Yl9OYXZpZ2F0aW9uJyx7J2V2ZW50Q2F0ZWdvcnknOmRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lLCdTaXRlX0NvdW50cnlfQ29kZV9IJzokKCdodG1sJykuYXR0cignZGF0YS1yZWdpb24nKS5yZXBsYWNlKC9bL10vZywgJycpLnRvVXBwZXJDYXNlKCksJ2V2ZW50QWN0aW9uJzonU3ViX05hdmlnYXRpb24nLCdldmVudExhYmVsJzonUHJvZmVzc2lvbmFscycrJysnKydTbWFydCBNaWNyby1ncmlkIFNvbHV0aW9uJysnKycrKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLnJlcGxhY2UoL1wvJC8sICcnKX0pICAgfSBjYXRjaCAoZXJyb3IpIHtpZiAoZXJyb3IubWVzc2FnZSA9PT0gJ2d0YWcgaXMgbm90IGRlZmluZWQnKSB7Y29uc29sZS5sb2coJ0dvb2dsZSBBbmFseXRpY3MgaXMgbm90IGF2YWlsYWJsZS4gRXZlbnQgdHJhY2tpbmcgaXMgZGlzYWJsZWQuJyk7fSBlbHNlIHt0aHJvdyBlcnJvcjt9fQzmmbrog73lvq7nvZFkAgUPZBYCZg8VBB0vY24vcHJvZmVzc2lvbmFscy9TbWFydERlc2lnbgCNBXRyeSB7IHdpbmRvdy5od2EoJ3RyYWNrU3RydWN0RXZlbnQnLCB7IHVlbV9pZDogJ1A4MUQ0MzM1RUU4NEZFNl9DNkY1QTdCNEEyQkNDNUInLCB1ZW1fbGFiZWw6ICfngrnlh7sg6aG155yJLeS4k+S4muS6uuWjqy3mmbrog73orr7orqHlt6XlhbcnLH0pOyB9IGNhdGNoIChlKSB7fTt0cnkgeyAgICBndGFnKCdldmVudCcsJ1N1Yl9OYXZpZ2F0aW9uJyx7J2V2ZW50Q2F0ZWdvcnknOmRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lLCdTaXRlX0NvdW50cnlfQ29kZV9IJzokKCdodG1sJykuYXR0cignZGF0YS1yZWdpb24nKS5yZXBsYWNlKC9bL10vZywgJycpLnRvVXBwZXJDYXNlKCksJ2V2ZW50QWN0aW9uJzonU3ViX05hdmlnYXRpb24nLCdldmVudExhYmVsJzonUHJvZmVzc2lvbmFscycrJysnKydTbWFydERlc2lnbiAyLjAnKycrJysod2luZG93LmxvY2F0aW9uLm9yaWdpbiArIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkucmVwbGFjZSgvXC8kLywgJycpfSkgICB9IGNhdGNoIChlcnJvcikge2lmIChlcnJvci5tZXNzYWdlID09PSAnZ3RhZyBpcyBub3QgZGVmaW5lZCcpIHtjb25zb2xlLmxvZygnR29vZ2xlIEFuYWx5dGljcyBpcyBub3QgYXZhaWxhYmxlLiBFdmVudCB0cmFja2luZyBpcyBkaXNhYmxlZC4nKTt9IGVsc2Uge3Rocm93IGVycm9yO319EuaZuuiDveiuvuiuoeW3peWFt2QCBA9kFgRmDxUEIS9jbi9wYXJ0bmVycy9wYXJ0bmVyLWludHJvZHVjdGlvbgDlBHRyeSB7IHdpbmRvdy5od2EoJ3RyYWNrU3RydWN0RXZlbnQnLCB7IHVlbV9pZDogJ1A4MUQ0NDhDQkZDQTIyRl9DODFERTZCRjJCNzg3NTQnLCB1ZW1fbGFiZWw6ICfngrnlh7sg6aG155yJLeWQiOS9nOS8meS8tCcsfSk7IH0gY2F0Y2ggKGUpIHt9O3RyeSB7ICAgICBndGFnKCdldmVudCcsJ0ZpcnN0X05hdmlnYXRpb24nLHsnZXZlbnRDYXRlZ29yeSc6ZG9jdW1lbnQubG9jYXRpb24ucGF0aG5hbWUsJ1NpdGVfQ291bnRyeV9Db2RlX0gnOiQoJ2h0bWwnKS5hdHRyKCdkYXRhLXJlZ2lvbicpLnJlcGxhY2UoL1svXS9nLCAnJykudG9VcHBlckNhc2UoKSwnZXZlbnRBY3Rpb24nOiAnRmlyc3RfTmF2aWdhdGlvbicsJ2V2ZW50TGFiZWwnOidQYXJ0bmVycycrJysnKyh3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKS5yZXBsYWNlKC9cLyQvLCAnJyl9KSAgIH0gY2F0Y2ggKGVycm9yKSB7aWYgKGVycm9yLm1lc3NhZ2UgPT09ICdndGFnIGlzIG5vdCBkZWZpbmVkJykge2NvbnNvbGUubG9nKCdHb29nbGUgQW5hbHl0aWNzIGlzIG5vdCBhdmFpbGFibGUuIEV2ZW50IHRyYWNraW5nIGlzIGRpc2FibGVkLicpO30gZWxzZSB7dGhyb3cgZXJyb3I7fX0M5ZCI5L2c5LyZ5Ly0ZAIBDxYEHwICBR8DZxYKZg9kFgJmDxUEIS9jbi9wYXJ0bmVycy9wYXJ0bmVyLWludHJvZHVjdGlvbgCIBXRyeSB7IHdpbmRvdy5od2EoJ3RyYWNrU3RydWN0RXZlbnQnLCB7IHVlbV9pZDogJ1A4MUQ0NDhDQkZDQTIyRl9DODFERTZCRjc0NzIzMTQnLCB1ZW1fbGFiZWw6ICfngrnlh7sg6aG155yJLeWQiOS9nOS8meS8tC3kvJnkvLTku4vnu40nLH0pOyB9IGNhdGNoIChlKSB7fTt0cnkgeyAgICAgZ3RhZygnZXZlbnQnLCdTdWJfTmF2aWdhdGlvbicseydldmVudENhdGVnb3J5Jzpkb2N1bWVudC5sb2NhdGlvbi5wYXRobmFtZSwnU2l0ZV9Db3VudHJ5X0NvZGVfSCc6JCgnaHRtbCcpLmF0dHIoJ2RhdGEtcmVnaW9uJykucmVwbGFjZSgvWy9dL2csICcnKS50b1VwcGVyQ2FzZSgpLCdldmVudEFjdGlvbic6J1N1Yl9OYXZpZ2F0aW9uJywnZXZlbnRMYWJlbCc6J1BhcnRuZXJzJysnKycrJ1BhcnRuZXIgSW50cm9kdWN0aW9uJysnKycrKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLnJlcGxhY2UoL1wvJC8sICcnKX0pICAgfSBjYXRjaCAoZXJyb3IpIHtpZiAoZXJyb3IubWVzc2FnZSA9PT0gJ2d0YWcgaXMgbm90IGRlZmluZWQnKSB7Y29uc29sZS5sb2coJ0dvb2dsZSBBbmFseXRpY3MgaXMgbm90IGF2YWlsYWJsZS4gRXZlbnQgdHJhY2tpbmcgaXMgZGlzYWJsZWQuJyk7fSBlbHNlIHt0aHJvdyBlcnJvcjt9fQzkvJnkvLTku4vnu41kAgEPZBYCZg8VBC5odHRwczovL3BhcnRuZXIuaHVhd2VpLmNvbS9lY3ByaS8jLz9sYW5nPXpoX0NOBl9ibGFua4QFdHJ5IHsgd2luZG93Lmh3YSgndHJhY2tTdHJ1Y3RFdmVudCcsIHsgdWVtX2lkOiAnUDgxRDQ0OENCRkNBMjJGX0M4MURFNkJGNUUyNEQ4RicsIHVlbV9sYWJlbDogJ+eCueWHuyDpobXnnIkt5ZCI5L2c5LyZ5Ly0LeaIkOS4uuS8meS8tCcsfSk7IH0gY2F0Y2ggKGUpIHt9O3RyeSB7ICAgICBndGFnKCdldmVudCcsJ1N1Yl9OYXZpZ2F0aW9uJyx7J2V2ZW50Q2F0ZWdvcnknOmRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lLCdTaXRlX0NvdW50cnlfQ29kZV9IJzokKCdodG1sJykuYXR0cignZGF0YS1yZWdpb24nKS5yZXBsYWNlKC9bL10vZywgJycpLnRvVXBwZXJDYXNlKCksJ2V2ZW50QWN0aW9uJzonU3ViX05hdmlnYXRpb24nLCdldmVudExhYmVsJzonUGFydG5lcnMnKycrJysnQmVjb21lIGEgUGFydG5lcicrJysnKyh3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKS5yZXBsYWNlKC9cLyQvLCAnJyl9KSAgIH0gY2F0Y2ggKGVycm9yKSB7aWYgKGVycm9yLm1lc3NhZ2UgPT09ICdndGFnIGlzIG5vdCBkZWZpbmVkJykge2NvbnNvbGUubG9nKCdHb29nbGUgQW5hbHl0aWNzIGlzIG5vdCBhdmFpbGFibGUuIEV2ZW50IHRyYWNraW5nIGlzIGRpc2FibGVkLicpO30gZWxzZSB7dGhyb3cgZXJyb3I7fX0M5oiQ5Li65LyZ5Ly0ZAICD2QWAmYPFQQwaHR0cHM6Ly9kaWdpdGFscG93ZXIuaHVhd2VpLmNvbS9wYXJ0bmVyIy9jbi9tYWluBl9ibGFua4EFdHJ5IHsgd2luZG93Lmh3YSgndHJhY2tTdHJ1Y3RFdmVudCcsIHsgdWVtX2lkOiAnUDgxRDQ0OENCRkNBMjJGX0M4MURFNkJGN0I0M0QwQicsIHVlbV9sYWJlbDogJ+eCueWHuyDpobXnnIkt5ZCI5L2c5LyZ5Ly0LXBvd2VycGFydG5lcicsfSk7IH0gY2F0Y2ggKGUpIHt9O3RyeSB7ICAgICBndGFnKCdldmVudCcsJ1N1Yl9OYXZpZ2F0aW9uJyx7J2V2ZW50Q2F0ZWdvcnknOmRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lLCdTaXRlX0NvdW50cnlfQ29kZV9IJzokKCdodG1sJykuYXR0cignZGF0YS1yZWdpb24nKS5yZXBsYWNlKC9bL10vZywgJycpLnRvVXBwZXJDYXNlKCksJ2V2ZW50QWN0aW9uJzonU3ViX05hdmlnYXRpb24nLCdldmVudExhYmVsJzonUGFydG5lcnMnKycrJysnUG93ZXItUGFydG5lcicrJysnKyh3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKS5yZXBsYWNlKC9cLyQvLCAnJyl9KSAgIH0gY2F0Y2ggKGVycm9yKSB7aWYgKGVycm9yLm1lc3NhZ2UgPT09ICdndGFnIGlzIG5vdCBkZWZpbmVkJykge2NvbnNvbGUubG9nKCdHb29nbGUgQW5hbHl0aWNzIGlzIG5vdCBhdmFpbGFibGUuIEV2ZW50IHRyYWNraW5nIGlzIGRpc2FibGVkLicpO30gZWxzZSB7dGhyb3cgZXJyb3I7fX0NUG93ZXItUGFydG5lcmQCAw9kFgJmDxUEMGh0dHBzOi8vY29tbXVuaXR5LnNvbGFyLmh1YXdlaS5jb20vY24vaW5kZXguaHRtbAZfYmxhbmuLBXRyeSB7IHdpbmRvdy5od2EoJ3RyYWNrU3RydWN0RXZlbnQnLCB7IHVlbV9pZDogJ1A4MUQ0NDhDQkZDQTIyRl9DODFERTZCRjdCMDkwQUYnLCB1ZW1fbGFiZWw6ICfngrnlh7sg6aG155yJLeWQiOS9nOS8meS8tC3lronoo4XllYbnpL7ljLonLH0pOyB9IGNhdGNoIChlKSB7fTt0cnkgeyAgICAgZ3RhZygnZXZlbnQnLCdTdWJfTmF2aWdhdGlvbicseydldmVudENhdGVnb3J5Jzpkb2N1bWVudC5sb2NhdGlvbi5wYXRobmFtZSwnU2l0ZV9Db3VudHJ5X0NvZGVfSCc6JCgnaHRtbCcpLmF0dHIoJ2RhdGEtcmVnaW9uJykucmVwbGFjZSgvWy9dL2csICcnKS50b1VwcGVyQ2FzZSgpLCdldmVudEFjdGlvbic6J1N1Yl9OYXZpZ2F0aW9uJywnZXZlbnRMYWJlbCc6J1BhcnRuZXJzJysnKycrJ0luc3RhbGxlcnMgQ29tbXVuaXR5JysnKycrKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLnJlcGxhY2UoL1wvJC8sICcnKX0pICAgfSBjYXRjaCAoZXJyb3IpIHtpZiAoZXJyb3IubWVzc2FnZSA9PT0gJ2d0YWcgaXMgbm90IGRlZmluZWQnKSB7Y29uc29sZS5sb2coJ0dvb2dsZSBBbmFseXRpY3MgaXMgbm90IGF2YWlsYWJsZS4gRXZlbnQgdHJhY2tpbmcgaXMgZGlzYWJsZWQuJyk7fSBlbHNlIHt0aHJvdyBlcnJvcjt9fQ/lronoo4XllYbnpL7ljLpkAgQPZBYCZg8VBB8vY24vcGFydG5lcnMvbWFwP3R5cGU9aW5zdGFsbGVyAIgFdHJ5IHsgd2luZG93Lmh3YSgndHJhY2tTdHJ1Y3RFdmVudCcsIHsgdWVtX2lkOiAnUDgxRDQzMzVFRTg0RkU2X0M4MjA5QzdDNDA0NEJCNycsIHVlbV9sYWJlbDogJ+eCueWHuyDpobXnnIkt5ZCI5L2c5LyZ5Ly0LeWvu+aJvuWuieijheWVhicsfSk7IH0gY2F0Y2ggKGUpIHt9O3RyeSB7ICAgICBndGFnKCdldmVudCcsJ1N1Yl9OYXZpZ2F0aW9uJyx7J2V2ZW50Q2F0ZWdvcnknOmRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lLCdTaXRlX0NvdW50cnlfQ29kZV9IJzokKCdodG1sJykuYXR0cignZGF0YS1yZWdpb24nKS5yZXBsYWNlKC9bL10vZywgJycpLnRvVXBwZXJDYXNlKCksJ2V2ZW50QWN0aW9uJzonU3ViX05hdmlnYXRpb24nLCdldmVudExhYmVsJzonUGFydG5lcnMnKycrJysnRmluZCBhbiBJbnN0YWxsZXInKycrJysod2luZG93LmxvY2F0aW9uLm9yaWdpbiArIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkucmVwbGFjZSgvXC8kLywgJycpfSkgICB9IGNhdGNoIChlcnJvcikge2lmIChlcnJvci5tZXNzYWdlID09PSAnZ3RhZyBpcyBub3QgZGVmaW5lZCcpIHtjb25zb2xlLmxvZygnR29vZ2xlIEFuYWx5dGljcyBpcyBub3QgYXZhaWxhYmxlLiBFdmVudCB0cmFja2luZyBpcyBkaXNhYmxlZC4nKTt9IGVsc2Uge3Rocm93IGVycm9yO319D+Wvu+aJvuWuieijheWVhmQCBQ9kFgRmDxUEHi9jbi9wcm9mZXNzaW9uYWxzL2FsbC1wcm9kdWN0cwDcBHRyeSB7IHdpbmRvdy5od2EoJ3RyYWNrU3RydWN0RXZlbnQnLCB7IHVlbV9pZDogJ1A4MUQ0NDhDQkZDQTIyRl9DODFERTZCRjAzQjI2NEInLCB1ZW1fbGFiZWw6ICfngrnlh7sg6aG155yJLeS6p+WTgScsfSk7IH0gY2F0Y2ggKGUpIHt9O3RyeSB7ICAgIGd0YWcoJ2V2ZW50JywnRmlyc3RfTmF2aWdhdGlvbicseydldmVudENhdGVnb3J5Jzpkb2N1bWVudC5sb2NhdGlvbi5wYXRobmFtZSwnU2l0ZV9Db3VudHJ5X0NvZGVfSCc6JCgnaHRtbCcpLmF0dHIoJ2RhdGEtcmVnaW9uJykucmVwbGFjZSgvWy9dL2csICcnKS50b1VwcGVyQ2FzZSgpLCdldmVudEFjdGlvbic6ICdGaXJzdF9OYXZpZ2F0aW9uJywnZXZlbnRMYWJlbCc6J1Byb2R1Y3RzJysnKycrKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLnJlcGxhY2UoL1wvJC8sICcnKX0pIH0gY2F0Y2ggKGVycm9yKSB7aWYgKGVycm9yLm1lc3NhZ2UgPT09ICdndGFnIGlzIG5vdCBkZWZpbmVkJykge2NvbnNvbGUubG9nKCdHb29nbGUgQW5hbHl0aWNzIGlzIG5vdCBhdmFpbGFibGUuIEV2ZW50IHRyYWNraW5nIGlzIGRpc2FibGVkLicpO30gZWxzZSB7dGhyb3cgZXJyb3I7fX0G5Lqn5ZOBZAIBDxYCHwIC/////w9kAgMPFgIfAgIDFgZmD2QWBGYPFQQXL2NuL3NlcnZpY2Utc3VwcG9ydC90c2MA3AR0cnkgeyB3aW5kb3cuaHdhKCd0cmFja1N0cnVjdEV2ZW50JywgeyB1ZW1faWQ6ICdQODFENDQ4Q0JGQ0EyMkZfQzgxREU2QkYyOUQyMUJCJywgdWVtX2xhYmVsOiAn54K55Ye7IOmhteeciS3mlK/mjIEnLH0pOyB9IGNhdGNoIChlKSB7fTt0cnkgeyAgICAgZ3RhZygnZXZlbnQnLCdGaXJzdF9OYXZpZ2F0aW9uJyx7J2V2ZW50Q2F0ZWdvcnknOmRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lLCdTaXRlX0NvdW50cnlfQ29kZV9IJzokKCdodG1sJykuYXR0cignZGF0YS1yZWdpb24nKS5yZXBsYWNlKC9bL10vZywgJycpLnRvVXBwZXJDYXNlKCksJ2V2ZW50QWN0aW9uJzogJ0ZpcnN0X05hdmlnYXRpb24nLCdldmVudExhYmVsJzonU3VwcG9ydCcrJysnKyh3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKS5yZXBsYWNlKC9cLyQvLCAnJyl9KSB9IGNhdGNoIChlcnJvcikge2lmIChlcnJvci5tZXNzYWdlID09PSAnZ3RhZyBpcyBub3QgZGVmaW5lZCcpIHtjb25zb2xlLmxvZygnR29vZ2xlIEFuYWx5dGljcyBpcyBub3QgYXZhaWxhYmxlLiBFdmVudCB0cmFja2luZyBpcyBkaXNhYmxlZC4nKTt9IGVsc2Uge3Rocm93IGVycm9yO319BuaUr+aMgWQCAQ8WBB8CAgMfA2cWBmYPZBYCZg8VBBcvY24vc2VydmljZS1zdXBwb3J0L3RzYwD+BHRyeSB7IHdpbmRvdy5od2EoJ3RyYWNrU3RydWN0RXZlbnQnLCB7IHVlbV9pZDogJ1A4MUQ0MzM1RUU4NEZFNl9DNkY1QjM2RjQ5RTIzQTknLCB1ZW1fbGFiZWw6ICfngrnlh7sg6aG155yJLeaKgOacr+aUr+aMgeS4reW/gycsfSk7IH0gY2F0Y2ggKGUpIHt9O3RyeSB7ICAgICBndGFnKCdldmVudCcsJ1N1Yl9OYXZpZ2F0aW9uJyx7J2V2ZW50Q2F0ZWdvcnknOmRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lLCdTaXRlX0NvdW50cnlfQ29kZV9IJzokKCdodG1sJykuYXR0cignZGF0YS1yZWdpb24nKS5yZXBsYWNlKC9bL10vZywgJycpLnRvVXBwZXJDYXNlKCksJ2V2ZW50QWN0aW9uJzonU3ViX05hdmlnYXRpb24nLCdldmVudExhYmVsJzonU3VwcG9ydCcrJysnKydTZXJ2aWNlcyBhbmQgU3VwcG9ydCcrJysnKyh3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKS5yZXBsYWNlKC9cLyQvLCAnJyl9KSB9IGNhdGNoIChlcnJvcikge2lmIChlcnJvci5tZXNzYWdlID09PSAnZ3RhZyBpcyBub3QgZGVmaW5lZCcpIHtjb25zb2xlLmxvZygnR29vZ2xlIEFuYWx5dGljcyBpcyBub3QgYXZhaWxhYmxlLiBFdmVudCB0cmFja2luZyBpcyBkaXNhYmxlZC4nKTt9IGVsc2Uge3Rocm93IGVycm9yO319D+acjeWKoeS4juaUr+aMgWQCAQ9kFgJmDxUEU2h0dHBzOi8vZm9ydW0uaHVhd2VpLmNvbS9lbnRlcnByaXNlL3poL2ZvcnVtcy81ODA4Nzk3OTk2NzU2NjIzMzYvNTgwODc5ODIzMDkyNDYxNTY4Bl9ibGFua+kEdHJ5IHsgd2luZG93Lmh3YSgndHJhY2tTdHJ1Y3RFdmVudCcsIHsgdWVtX2lkOiAnUDgxRDQ0OENCRkNBMjJGX0M4MURFNkJGNDJBMkUyNycsIHVlbV9sYWJlbDogJ+eCueWHuyDpobXnnIkt5pSv5oyBLeiuuuWdmycsfSk7IH0gY2F0Y2ggKGUpIHt9O3RyeSB7ICAgIGd0YWcoJ2V2ZW50JywnU3ViX05hdmlnYXRpb24nLHsnZXZlbnRDYXRlZ29yeSc6ZG9jdW1lbnQubG9jYXRpb24ucGF0aG5hbWUsJ1NpdGVfQ291bnRyeV9Db2RlX0gnOiQoJ2h0bWwnKS5hdHRyKCdkYXRhLXJlZ2lvbicpLnJlcGxhY2UoL1svXS9nLCAnJykudG9VcHBlckNhc2UoKSwnZXZlbnRBY3Rpb24nOidTdWJfTmF2aWdhdGlvbicsJ2V2ZW50TGFiZWwnOidTdXBwb3J0JysnKycrJ0ZvcnVtJysnKycrKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLnJlcGxhY2UoL1wvJC8sICcnKX0pIH0gY2F0Y2ggKGVycm9yKSB7aWYgKGVycm9yLm1lc3NhZ2UgPT09ICdndGFnIGlzIG5vdCBkZWZpbmVkJykge2NvbnNvbGUubG9nKCdHb29nbGUgQW5hbHl0aWNzIGlzIG5vdCBhdmFpbGFibGUuIEV2ZW50IHRyYWNraW5nIGlzIGRpc2FibGVkLicpO30gZWxzZSB7dGhyb3cgZXJyb3I7fX0G6K665Z2bZAICD2QWAmYPFQRjaHR0cHM6Ly9kaWdpdGFscG93ZXIuaHVhd2VpLmNvbS9yb2JvdGNoYXQvIy9ob21lL2luZGV4P2xhbmc9emhfQ04mZG9tYWluPXNtYXJ0cHYmZnJvbV90aXRsZV96aD0xMTE3Bl9ibGFua/kEdHJ5IHsgd2luZG93Lmh3YSgndHJhY2tTdHJ1Y3RFdmVudCcsIHsgdWVtX2lkOiAnUDgxRDQ0OENCRkNBMjJGX0M4MURFNkJGNDc3Q0FGNScsIHVlbV9sYWJlbDogJ+eCueWHuyDpobXnnIkt5pSv5oyBLeWcqOe6v+aUr+aMgScsfSk7IH0gY2F0Y2ggKGUpIHt9O3RyeSB7ICAgICBndGFnKCdldmVudCcsJ1N1Yl9OYXZpZ2F0aW9uJyx7J2V2ZW50Q2F0ZWdvcnknOmRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lLCdTaXRlX0NvdW50cnlfQ29kZV9IJzokKCdodG1sJykuYXR0cignZGF0YS1yZWdpb24nKS5yZXBsYWNlKC9bL10vZywgJycpLnRvVXBwZXJDYXNlKCksJ2V2ZW50QWN0aW9uJzonU3ViX05hdmlnYXRpb24nLCdldmVudExhYmVsJzonU3VwcG9ydCcrJysnKydPbmxpbmUgU3VwcG9ydCcrJysnKyh3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKS5yZXBsYWNlKC9cLyQvLCAnJyl9KSB9IGNhdGNoIChlcnJvcikge2lmIChlcnJvci5tZXNzYWdlID09PSAnZ3RhZyBpcyBub3QgZGVmaW5lZCcpIHtjb25zb2xlLmxvZygnR29vZ2xlIEFuYWx5dGljcyBpcyBub3QgYXZhaWxhYmxlLiBFdmVudCB0cmFja2luZyBpcyBkaXNhYmxlZC4nKTt9IGVsc2Uge3Rocm93IGVycm9yO319DOWcqOe6v+aUr+aMgWQCAQ9kFgRmDxUEMGh0dHBzOi8vY29tbXVuaXR5LnNvbGFyLmh1YXdlaS5jb20vY24vaW5kZXguaHRtbAZfYmxhbmveBHRyeSB7IHdpbmRvdy5od2EoJ3RyYWNrU3RydWN0RXZlbnQnLCB7IHVlbV9pZDogJ1A4MUQ0NDhDQkZDQTIyRl9DODFERTZCRjJBMEI5NDAnLCB1ZW1fbGFiZWw6ICfngrnlh7sg6aG155yJLeekvuWMuicsfSk7IH0gY2F0Y2ggKGUpIHt9O3RyeSB7ICAgICBndGFnKCdldmVudCcsJ0ZpcnN0X05hdmlnYXRpb24nLHsnZXZlbnRDYXRlZ29yeSc6ZG9jdW1lbnQubG9jYXRpb24ucGF0aG5hbWUsJ1NpdGVfQ291bnRyeV9Db2RlX0gnOiQoJ2h0bWwnKS5hdHRyKCdkYXRhLXJlZ2lvbicpLnJlcGxhY2UoL1svXS9nLCAnJykudG9VcHBlckNhc2UoKSwnZXZlbnRBY3Rpb24nOiAnRmlyc3RfTmF2aWdhdGlvbicsJ2V2ZW50TGFiZWwnOidDb21tdW5pdHknKycrJysod2luZG93LmxvY2F0aW9uLm9yaWdpbiArIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkucmVwbGFjZSgvXC8kLywgJycpfSkgfSBjYXRjaCAoZXJyb3IpIHtpZiAoZXJyb3IubWVzc2FnZSA9PT0gJ2d0YWcgaXMgbm90IGRlZmluZWQnKSB7Y29uc29sZS5sb2coJ0dvb2dsZSBBbmFseXRpY3MgaXMgbm90IGF2YWlsYWJsZS4gRXZlbnQgdHJhY2tpbmcgaXMgZGlzYWJsZWQuJyk7fSBlbHNlIHt0aHJvdyBlcnJvcjt9fQbnpL7ljLpkAgEPFgIfAgL/////D2QCAg9kFgRmDxUEImh0dHBzOi8vc29sYXIuaHVhd2VpLmNvbS9jbi9pbmZvLy8GX2JsYW5r4QR0cnkgeyB3aW5kb3cuaHdhKCd0cmFja1N0cnVjdEV2ZW50JywgeyB1ZW1faWQ6ICdQODFENDQ4Q0JGQ0EyMkZfQzgxREU2QkY0REVDQTEwJywgdWVtX2xhYmVsOiAn54K55Ye7IOmhteeciS3kuIvovb3kuK3lv4MnLH0pOyB9IGNhdGNoIChlKSB7fTt0cnkgeyAgIGd0YWcoJ2V2ZW50JywnRmlyc3RfTmF2aWdhdGlvbicseydldmVudENhdGVnb3J5Jzpkb2N1bWVudC5sb2NhdGlvbi5wYXRobmFtZSwnU2l0ZV9Db3VudHJ5X0NvZGVfSCc6JCgnaHRtbCcpLmF0dHIoJ2RhdGEtcmVnaW9uJykucmVwbGFjZSgvWy9dL2csICcnKS50b1VwcGVyQ2FzZSgpLCdldmVudEFjdGlvbic6ICdGaXJzdF9OYXZpZ2F0aW9uJywnZXZlbnRMYWJlbCc6J0Rvd25sb2FkJysnKycrKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLnJlcGxhY2UoL1wvJC8sICcnKX0pIH0gY2F0Y2ggKGVycm9yKSB7aWYgKGVycm9yLm1lc3NhZ2UgPT09ICdndGFnIGlzIG5vdCBkZWZpbmVkJykge2NvbnNvbGUubG9nKCdHb29nbGUgQW5hbHl0aWNzIGlzIG5vdCBhdmFpbGFibGUuIEV2ZW50IHRyYWNraW5nIGlzIGRpc2FibGVkLicpO30gZWxzZSB7dGhyb3cgZXJyb3I7fX0M5LiL6L295Lit5b+DZAIBDxYEHwICAh8DZxYEZg9kFgJmDxUEImh0dHBzOi8vc29sYXIuaHVhd2VpLmNvbS9jbi9pbmZvLy8GX2JsYW5riAV0cnkgeyB3aW5kb3cuaHdhKCd0cmFja1N0cnVjdEV2ZW50JywgeyB1ZW1faWQ6ICdQODFENDQ4Q0JGQ0EyMkZfQzgxREU2QkY2RjA4QTVGJywgdWVtX2xhYmVsOiAn54K55Ye7IOmhteeciS3kuIvovb3kuK3lv4Mt5Lqn5ZOB6LWE5paZ5Lit5b+DJyx9KTsgfSBjYXRjaCAoZSkge307dHJ5IHsgICAgIGd0YWcoJ2V2ZW50JywnU3ViX05hdmlnYXRpb24nLHsnZXZlbnRDYXRlZ29yeSc6ZG9jdW1lbnQubG9jYXRpb24ucGF0aG5hbWUsJ1NpdGVfQ291bnRyeV9Db2RlX0gnOiQoJ2h0bWwnKS5hdHRyKCdkYXRhLXJlZ2lvbicpLnJlcGxhY2UoL1svXS9nLCAnJykudG9VcHBlckNhc2UoKSwnZXZlbnRBY3Rpb24nOidTdWJfTmF2aWdhdGlvbicsJ2V2ZW50TGFiZWwnOidEb3dubG9hZCcrJysnKydQcm9kdWN0IERvY3VtZW50JysnKycrKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLnJlcGxhY2UoL1wvJC8sICcnKX0pIH0gY2F0Y2ggKGVycm9yKSB7aWYgKGVycm9yLm1lc3NhZ2UgPT09ICdndGFnIGlzIG5vdCBkZWZpbmVkJykge2NvbnNvbGUubG9nKCdHb29nbGUgQW5hbHl0aWNzIGlzIG5vdCBhdmFpbGFibGUuIEV2ZW50IHRyYWNraW5nIGlzIGRpc2FibGVkLicpO30gZWxzZSB7dGhyb3cgZXJyb3I7fX0S5Lqn5ZOB6LWE5paZ5Lit5b+DZAIBD2QWAmYPFQQ5aHR0cHM6Ly9kaWdpdGFscG93ZXIuaHVhd2VpLmNvbS9wb3dlci1tYXJrZXRpbmcvIy9jbi9ob21lBl9ibGFua4QFdHJ5IHsgd2luZG93Lmh3YSgndHJhY2tTdHJ1Y3RFdmVudCcsIHsgdWVtX2lkOiAnUDgxRDQ0OENCRkNBMjJGX0M4MURFNkJGNDdFRDdFNScsIHVlbV9sYWJlbDogJ+eCueWHuyDpobXnnIkt5LiL6L295Lit5b+DLeiQpemUgOi1hOaWmeS4reW/gycsfSk7IH0gY2F0Y2ggKGUpIHt9O3RyeSB7ICAgICBndGFnKCdldmVudCcsJ1N1Yl9OYXZpZ2F0aW9uJyx7J2V2ZW50Q2F0ZWdvcnknOmRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lLCdTaXRlX0NvdW50cnlfQ29kZV9IJzokKCdodG1sJykuYXR0cignZGF0YS1yZWdpb24nKS5yZXBsYWNlKC9bL10vZywgJycpLnRvVXBwZXJDYXNlKCksJ2V2ZW50QWN0aW9uJzonU3ViX05hdmlnYXRpb24nLCdldmVudExhYmVsJzonRG93bmxvYWQnKycrJysnTUtUIERvY3VtZW50JysnKycrKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLnJlcGxhY2UoL1wvJC8sICcnKX0pIH0gY2F0Y2ggKGVycm9yKSB7aWYgKGVycm9yLm1lc3NhZ2UgPT09ICdndGFnIGlzIG5vdCBkZWZpbmVkJykge2NvbnNvbGUubG9nKCdHb29nbGUgQW5hbHl0aWNzIGlzIG5vdCBhdmFpbGFibGUuIEV2ZW50IHRyYWNraW5nIGlzIGRpc2FibGVkLicpO30gZWxzZSB7dGhyb3cgZXJyb3I7fX0S6JCl6ZSA6LWE5paZ5Lit5b+DZAIEDxYCHwICARYCZg9kFgJmDxUEDS9jbi9vcmRlci1ub3cAqgR0cnkgeyB3aW5kb3cuaHdhKCd0cmFja1N0cnVjdEV2ZW50JywgeyB1ZW1faWQ6ICdQODFENDQ4Q0JGQ0EyMkZfQzgxREU2QkY0NDE1QjUwJywgdWVtX2xhYmVsOiAn54K55Ye7IOmhteeciS3nq4vljbPotK3kubAnLH0pOyB9IGNhdGNoIChlKSB7fTt0cnkgeyAgICAgZ3RhZygnZXZlbnQnLCdCdXlfQ2xpY2snLHsnU2l0ZV9Db3VudHJ5X0NvZGVfSCc6JCgnaHRtbCcpLmF0dHIoJ2RhdGEtcmVnaW9uJykucmVwbGFjZSgvWy9dL2csICcnKS50b1VwcGVyQ2FzZSgpLCdldmVudEFjdGlvbic6J0J1eV9DbGljaycsJ2V2ZW50TGFiZWwnOidPcmRlciBOb3cnKycrJysod2luZG93LmxvY2F0aW9uLm9yaWdpbiArIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkucmVwbGFjZSgvXC8kLywgJycpfSkgfSBjYXRjaCAoZXJyb3IpIHtpZiAoZXJyb3IubWVzc2FnZSA9PT0gJ2d0YWcgaXMgbm90IGRlZmluZWQnKSB7Y29uc29sZS5sb2coJ0dvb2dsZSBBbmFseXRpY3MgaXMgbm90IGF2YWlsYWJsZS4gRXZlbnQgdHJhY2tpbmcgaXMgZGlzYWJsZWQuJyk7fSBlbHNlIHt0aHJvdyBlcnJvcjt9fQznq4vljbPotK3kubBkAgYPFgIfAgIJFhJmD2QWBAIBDxYGHgRocmVmBQ8vY24vaG9tZS1vd25lcnMeBnRhcmdldGQeB29uY2xpY2sF5AR0cnkgeyB3aW5kb3cuaHdhKCd0cmFja1N0cnVjdEV2ZW50JywgeyB1ZW1faWQ6ICdQODFENDQ4Q0JGQ0EyMkZfQzgxREU2QkYxNUIyM0Y3JywgdWVtX2xhYmVsOiAn54K55Ye7IOmhteeciS3lrrbluq3kuJrkuLsnLH0pOyB9IGNhdGNoIChlKSB7fTt0cnkgeyAgIGd0YWcoJ2V2ZW50JywnRmlyc3RfTmF2aWdhdGlvbicseydldmVudENhdGVnb3J5Jzpkb2N1bWVudC5sb2NhdGlvbi5wYXRobmFtZSwnU2l0ZV9Db3VudHJ5X0NvZGVfSCc6JCgnaHRtbCcpLmF0dHIoJ2RhdGEtcmVnaW9uJykucmVwbGFjZSgvWy9dL2csICcnKS50b1VwcGVyQ2FzZSgpLCdldmVudEFjdGlvbic6ICdGaXJzdF9OYXZpZ2F0aW9uJywnZXZlbnRMYWJlbCc6J0hvbWUgT3duZXJzJysnKycrKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLnJlcGxhY2UoL1wvJC8sICcnKX0pIH0gY2F0Y2ggKGVycm9yKSB7aWYgKGVycm9yLm1lc3NhZ2UgPT09ICdndGFnIGlzIG5vdCBkZWZpbmVkJykge2NvbnNvbGUubG9nKCdHb29nbGUgQW5hbHl0aWNzIGlzIG5vdCBhdmFpbGFibGUuIEV2ZW50IHRyYWNraW5nIGlzIGRpc2FibGVkLicpO30gZWxzZSB7dGhyb3cgZXJyb3I7fX0WAmYPFQEM5a625bqt5Lia5Li7ZAIFDxYCHwIC/////w9kAgEPZBYEAgEPFgYfBAUTL2NuL2J1c2luZXNzLW93bmVycx8FZB8GBewEdHJ5IHsgd2luZG93Lmh3YSgndHJhY2tTdHJ1Y3RFdmVudCcsIHsgdWVtX2lkOiAnUDgxRDQ0OENCRkNBMjJGX0M4MURFNkJGMUM1RUQ1MicsIHVlbV9sYWJlbDogJ+eCueWHuyDpobXnnIkt5LyB5Lia5Lia5Li7Jyx9KTsgfSBjYXRjaCAoZSkge307dHJ5IHsgICAgIGd0YWcoJ2V2ZW50JywnRmlyc3RfTmF2aWdhdGlvbicseydldmVudENhdGVnb3J5Jzpkb2N1bWVudC5sb2NhdGlvbi5wYXRobmFtZSwnU2l0ZV9Db3VudHJ5X0NvZGVfSCc6JCgnaHRtbCcpLmF0dHIoJ2RhdGEtcmVnaW9uJykucmVwbGFjZSgvWy9dL2csICcnKS50b1VwcGVyQ2FzZSgpLCdldmVudEFjdGlvbic6ICdGaXJzdF9OYXZpZ2F0aW9uJywnZXZlbnRMYWJlbCc6J0J1c2luZXNzIE93bmVycycrJysnKyh3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKS5yZXBsYWNlKC9cLyQvLCAnJyl9KSAgIH0gY2F0Y2ggKGVycm9yKSB7aWYgKGVycm9yLm1lc3NhZ2UgPT09ICdndGFnIGlzIG5vdCBkZWZpbmVkJykge2NvbnNvbGUubG9nKCdHb29nbGUgQW5hbHl0aWNzIGlzIG5vdCBhdmFpbGFibGUuIEV2ZW50IHRyYWNraW5nIGlzIGRpc2FibGVkLicpO30gZWxzZSB7dGhyb3cgZXJyb3I7fX0WAmYPFQEM5LyB5Lia5Lia5Li7ZAIFDxYCHwIC/////w9kAgIPZBYEAgEPFgYfBAUYL2NuL3V0aWxpdHktcGxhbnQtb3duZXJzHwVkHwYF8QR0cnkgeyB3aW5kb3cuaHdhKCd0cmFja1N0cnVjdEV2ZW50JywgeyB1ZW1faWQ6ICdQODFENDQ4Q0JGQ0EyMkZfQzgxREU2QkYzNzhFQzE3JywgdWVtX2xhYmVsOiAn54K55Ye7IOmhteeciS3nlLXnq5nkuJrkuLsnLH0pOyB9IGNhdGNoIChlKSB7fTt0cnkgeyAgICAgZ3RhZygnZXZlbnQnLCdGaXJzdF9OYXZpZ2F0aW9uJyx7J2V2ZW50Q2F0ZWdvcnknOmRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lLCdTaXRlX0NvdW50cnlfQ29kZV9IJzokKCdodG1sJykuYXR0cignZGF0YS1yZWdpb24nKS5yZXBsYWNlKC9bL10vZywgJycpLnRvVXBwZXJDYXNlKCksJ2V2ZW50QWN0aW9uJzogJ0ZpcnN0X05hdmlnYXRpb24nLCdldmVudExhYmVsJzonVXRpbGl0eSBQbGFudCBPd25lcnMnKycrJysod2luZG93LmxvY2F0aW9uLm9yaWdpbiArIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkucmVwbGFjZSgvXC8kLywgJycpfSkgICB9IGNhdGNoIChlcnJvcikge2lmIChlcnJvci5tZXNzYWdlID09PSAnZ3RhZyBpcyBub3QgZGVmaW5lZCcpIHtjb25zb2xlLmxvZygnR29vZ2xlIEFuYWx5dGljcyBpcyBub3QgYXZhaWxhYmxlLiBFdmVudCB0cmFja2luZyBpcyBkaXNhYmxlZC4nKTt9IGVsc2Uge3Rocm93IGVycm9yO319FgJmDxUBDOeUteermeS4muS4u2QCBQ8WAh8CAv////8PZAIDD2QWBgIBDxYEHwQFDGphdmFzY3JpcHQ6Ox8GBeoEdHJ5IHsgd2luZG93Lmh3YSgndHJhY2tTdHJ1Y3RFdmVudCcsIHsgdWVtX2lkOiAnUDgxRDQ0OENCRkNBMjJGX0M4MURFNkJGMTQ1RjVCMScsIHVlbV9sYWJlbDogJ+eCueWHuyDpobXnnIkt5LiT5Lia5Lq65aOrJyx9KTsgfSBjYXRjaCAoZSkge307dHJ5IHsgICAgIGd0YWcoJ2V2ZW50JywnRmlyc3RfTmF2aWdhdGlvbicseydldmVudENhdGVnb3J5Jzpkb2N1bWVudC5sb2NhdGlvbi5wYXRobmFtZSwnU2l0ZV9Db3VudHJ5X0NvZGVfSCc6JCgnaHRtbCcpLmF0dHIoJ2RhdGEtcmVnaW9uJykucmVwbGFjZSgvWy9dL2csICcnKS50b1VwcGVyQ2FzZSgpLCdldmVudEFjdGlvbic6ICdGaXJzdF9OYXZpZ2F0aW9uJywnZXZlbnRMYWJlbCc6J1Byb2Zlc3Npb25hbHMnKycrJysod2luZG93LmxvY2F0aW9uLm9yaWdpbiArIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkucmVwbGFjZSgvXC8kLywgJycpfSkgICB9IGNhdGNoIChlcnJvcikge2lmIChlcnJvci5tZXNzYWdlID09PSAnZ3RhZyBpcyBub3QgZGVmaW5lZCcpIHtjb25zb2xlLmxvZygnR29vZ2xlIEFuYWx5dGljcyBpcyBub3QgYXZhaWxhYmxlLiBFdmVudCB0cmFja2luZyBpcyBkaXNhYmxlZC4nKTt9IGVsc2Uge3Rocm93IGVycm9yO319FgJmDxUBDOS4k+S4muS6uuWjq2QCAw8WAh8DZ2QCBQ8WBB8CAgYfA2cWDAIBD2QWAmYPFQQdL2NuL3Byb2Zlc3Npb25hbHMvcmVzaWRlbnRpYWwAnAV0cnkgeyB3aW5kb3cuaHdhKCd0cmFja1N0cnVjdEV2ZW50JywgeyB1ZW1faWQ6ICdQODFENDQ4Q0JGQ0EyMkZfQzgxREU2QkY2MkRENUVEJywgdWVtX2xhYmVsOiAn54K55Ye7IOmhteeciS3kuJPkuJrkurrlo6st5a625bqt57u/55S1Jyx9KTsgfSBjYXRjaCAoZSkge307dHJ5IHsgICAgIGd0YWcoJ2V2ZW50JywnU3ViX05hdmlnYXRpb24nLHsnZXZlbnRDYXRlZ29yeSc6ZG9jdW1lbnQubG9jYXRpb24ucGF0aG5hbWUsJ1NpdGVfQ291bnRyeV9Db2RlX0gnOiQoJ2h0bWwnKS5hdHRyKCdkYXRhLXJlZ2lvbicpLnJlcGxhY2UoL1svXS9nLCAnJykudG9VcHBlckNhc2UoKSwnZXZlbnRBY3Rpb24nOidTdWJfTmF2aWdhdGlvbicsJ2V2ZW50TGFiZWwnOidQcm9mZXNzaW9uYWxzJysnKycrJ1Jlc2lkZW50aWFsIFNtYXJ0IFBWICYgRVNTIFNvbHV0aW9uJysnKycrKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLnJlcGxhY2UoL1wvJC8sICcnKX0pICAgfSBjYXRjaCAoZXJyb3IpIHtpZiAoZXJyb3IubWVzc2FnZSA9PT0gJ2d0YWcgaXMgbm90IGRlZmluZWQnKSB7Y29uc29sZS5sb2coJ0dvb2dsZSBBbmFseXRpY3MgaXMgbm90IGF2YWlsYWJsZS4gRXZlbnQgdHJhY2tpbmcgaXMgZGlzYWJsZWQuJyk7fSBlbHNlIHt0aHJvdyBlcnJvcjt9fQzlrrbluq3nu7/nlLVkAgIPZBYCZg8VBBUvY24vcHJvZmVzc2lvbmFscy9jLWkAkwV0cnkgeyB3aW5kb3cuaHdhKCd0cmFja1N0cnVjdEV2ZW50JywgeyB1ZW1faWQ6ICdQODFENDQ4Q0JGQ0EyMkZfQzgxREU2QkYyQkIyNUU5JywgdWVtX2xhYmVsOiAn54K55Ye7IOmhteeciS3kuJPkuJrkurrlo6st6KGM5Lia57u/55S1Jyx9KTsgfSBjYXRjaCAoZSkge307dHJ5IHsgICAgZ3RhZygnZXZlbnQnLCdTdWJfTmF2aWdhdGlvbicseydldmVudENhdGVnb3J5Jzpkb2N1bWVudC5sb2NhdGlvbi5wYXRobmFtZSwnU2l0ZV9Db3VudHJ5X0NvZGVfSCc6JCgnaHRtbCcpLmF0dHIoJ2RhdGEtcmVnaW9uJykucmVwbGFjZSgvWy9dL2csICcnKS50b1VwcGVyQ2FzZSgpLCdldmVudEFjdGlvbic6J1N1Yl9OYXZpZ2F0aW9uJywnZXZlbnRMYWJlbCc6J1Byb2Zlc3Npb25hbHMnKycrJysnQyZJIFNtYXJ0IFBWICYgRVNTIFNvbHV0aW9uJysnKycrKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLnJlcGxhY2UoL1wvJC8sICcnKX0pICAgfSBjYXRjaCAoZXJyb3IpIHtpZiAoZXJyb3IubWVzc2FnZSA9PT0gJ2d0YWcgaXMgbm90IGRlZmluZWQnKSB7Y29uc29sZS5sb2coJ0dvb2dsZSBBbmFseXRpY3MgaXMgbm90IGF2YWlsYWJsZS4gRXZlbnQgdHJhY2tpbmcgaXMgZGlzYWJsZWQuJyk7fSBlbHNlIHt0aHJvdyBlcnJvcjt9fQzooYzkuJrnu7/nlLVkAgMPZBYCZg8VBBkvY24vcHJvZmVzc2lvbmFscy91dGlsaXR5AJIFdHJ5IHsgd2luZG93Lmh3YSgndHJhY2tTdHJ1Y3RFdmVudCcsIHsgdWVtX2lkOiAnUDgxRDQ0OENCRkNBMjJGX0M4MURFNkJGMUVDMjc4NCcsIHVlbV9sYWJlbDogJ+eCueWHuyDpobXnnIkt5LiT5Lia5Lq65aOrLeaZuuiDveWFieS8jycsfSk7IH0gY2F0Y2ggKGUpIHt9O3RyeSB7ICAgICBndGFnKCdldmVudCcsJ1N1Yl9OYXZpZ2F0aW9uJyx7J2V2ZW50Q2F0ZWdvcnknOmRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lLCdTaXRlX0NvdW50cnlfQ29kZV9IJzokKCdodG1sJykuYXR0cignZGF0YS1yZWdpb24nKS5yZXBsYWNlKC9bL10vZywgJycpLnRvVXBwZXJDYXNlKCksJ2V2ZW50QWN0aW9uJzonU3ViX05hdmlnYXRpb24nLCdldmVudExhYmVsJzonUHJvZmVzc2lvbmFscycrJysnKydVdGlsaXR5IFNtYXJ0IFBWIFNvbHV0aW9uJysnKycrKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLnJlcGxhY2UoL1wvJC8sICcnKX0pICAgfSBjYXRjaCAoZXJyb3IpIHtpZiAoZXJyb3IubWVzc2FnZSA9PT0gJ2d0YWcgaXMgbm90IGRlZmluZWQnKSB7Y29uc29sZS5sb2coJ0dvb2dsZSBBbmFseXRpY3MgaXMgbm90IGF2YWlsYWJsZS4gRXZlbnQgdHJhY2tpbmcgaXMgZGlzYWJsZWQuJyk7fSBlbHNlIHt0aHJvdyBlcnJvcjt9fRLmmbrog73lhYnkvI/nlLXnq5lkAgQPZBYCZg8VBBUvY24vcHJvZmVzc2lvbmFscy9lc3MAmgV0cnkgeyB3aW5kb3cuaHdhKCd0cmFja1N0cnVjdEV2ZW50JywgeyB1ZW1faWQ6ICdQODFENDQ4Q0JGQ0EyMkZfQzgxREU2QkY3NzhEQThEJywgdWVtX2xhYmVsOiAn54K55Ye7IOmhteeciS3kuJPkuJrkurrlo6st5pm66IO957uE5LiyJyx9KTsgfSBjYXRjaCAoZSkge307dHJ5IHsgICAgIGd0YWcoJ2V2ZW50JywnU3ViX05hdmlnYXRpb24nLHsnZXZlbnRDYXRlZ29yeSc6ZG9jdW1lbnQubG9jYXRpb24ucGF0aG5hbWUsJ1NpdGVfQ291bnRyeV9Db2RlX0gnOiQoJ2h0bWwnKS5hdHRyKCdkYXRhLXJlZ2lvbicpLnJlcGxhY2UoL1svXS9nLCAnJykudG9VcHBlckNhc2UoKSwnZXZlbnRBY3Rpb24nOidTdWJfTmF2aWdhdGlvbicsJ2V2ZW50TGFiZWwnOidQcm9mZXNzaW9uYWxzJysnKycrJ1V0aWxpdHkgU21hcnQgU3RyaW5nIEVTUyBTb2x1dGlvbicrJysnKyh3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKS5yZXBsYWNlKC9cLyQvLCAnJyl9KSAgIH0gY2F0Y2ggKGVycm9yKSB7aWYgKGVycm9yLm1lc3NhZ2UgPT09ICdndGFnIGlzIG5vdCBkZWZpbmVkJykge2NvbnNvbGUubG9nKCdHb29nbGUgQW5hbHl0aWNzIGlzIG5vdCBhdmFpbGFibGUuIEV2ZW50IHRyYWNraW5nIGlzIGRpc2FibGVkLicpO30gZWxzZSB7dGhyb3cgZXJyb3I7fX0V5pm66IO957uE5Liy5byP5YKo6IO9ZAIFD2QWAmYPFQQcL2NuL3Byb2Zlc3Npb25hbHMvbWljcm8tZ3JpZACSBXRyeSB7IHdpbmRvdy5od2EoJ3RyYWNrU3RydWN0RXZlbnQnLCB7IHVlbV9pZDogJ1A4MUQ0NDhDQkZDQTIyRl9DODFERTZCRjc2ODJCRUEnLCB1ZW1fbGFiZWw6ICfngrnlh7sg6aG155yJLeS4k+S4muS6uuWjqy3mmbrog73lvq7nvZEnLH0pOyB9IGNhdGNoIChlKSB7fTt0cnkgeyAgICAgZ3RhZygnZXZlbnQnLCdTdWJfTmF2aWdhdGlvbicseydldmVudENhdGVnb3J5Jzpkb2N1bWVudC5sb2NhdGlvbi5wYXRobmFtZSwnU2l0ZV9Db3VudHJ5X0NvZGVfSCc6JCgnaHRtbCcpLmF0dHIoJ2RhdGEtcmVnaW9uJykucmVwbGFjZSgvWy9dL2csICcnKS50b1VwcGVyQ2FzZSgpLCdldmVudEFjdGlvbic6J1N1Yl9OYXZpZ2F0aW9uJywnZXZlbnRMYWJlbCc6J1Byb2Zlc3Npb25hbHMnKycrJysnU21hcnQgTWljcm8tZ3JpZCBTb2x1dGlvbicrJysnKyh3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKS5yZXBsYWNlKC9cLyQvLCAnJyl9KSAgIH0gY2F0Y2ggKGVycm9yKSB7aWYgKGVycm9yLm1lc3NhZ2UgPT09ICdndGFnIGlzIG5vdCBkZWZpbmVkJykge2NvbnNvbGUubG9nKCdHb29nbGUgQW5hbHl0aWNzIGlzIG5vdCBhdmFpbGFibGUuIEV2ZW50IHRyYWNraW5nIGlzIGRpc2FibGVkLicpO30gZWxzZSB7dGhyb3cgZXJyb3I7fX0M5pm66IO95b6u572RZAIGD2QWAmYPFQQdL2NuL3Byb2Zlc3Npb25hbHMvU21hcnREZXNpZ24AjQV0cnkgeyB3aW5kb3cuaHdhKCd0cmFja1N0cnVjdEV2ZW50JywgeyB1ZW1faWQ6ICdQODFENDMzNUVFODRGRTZfQzZGNUE3QjRBMkJDQzVCJywgdWVtX2xhYmVsOiAn54K55Ye7IOmhteeciS3kuJPkuJrkurrlo6st5pm66IO96K6+6K6h5bel5YW3Jyx9KTsgfSBjYXRjaCAoZSkge307dHJ5IHsgICAgZ3RhZygnZXZlbnQnLCdTdWJfTmF2aWdhdGlvbicseydldmVudENhdGVnb3J5Jzpkb2N1bWVudC5sb2NhdGlvbi5wYXRobmFtZSwnU2l0ZV9Db3VudHJ5X0NvZGVfSCc6JCgnaHRtbCcpLmF0dHIoJ2RhdGEtcmVnaW9uJykucmVwbGFjZSgvWy9dL2csICcnKS50b1VwcGVyQ2FzZSgpLCdldmVudEFjdGlvbic6J1N1Yl9OYXZpZ2F0aW9uJywnZXZlbnRMYWJlbCc6J1Byb2Zlc3Npb25hbHMnKycrJysnU21hcnREZXNpZ24gMi4wJysnKycrKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLnJlcGxhY2UoL1wvJC8sICcnKX0pICAgfSBjYXRjaCAoZXJyb3IpIHtpZiAoZXJyb3IubWVzc2FnZSA9PT0gJ2d0YWcgaXMgbm90IGRlZmluZWQnKSB7Y29uc29sZS5sb2coJ0dvb2dsZSBBbmFseXRpY3MgaXMgbm90IGF2YWlsYWJsZS4gRXZlbnQgdHJhY2tpbmcgaXMgZGlzYWJsZWQuJyk7fSBlbHNlIHt0aHJvdyBlcnJvcjt9fRLmmbrog73orr7orqHlt6XlhbdkAgQPZBYGAgEPFgQfBAUMamF2YXNjcmlwdDo7HwYF5QR0cnkgeyB3aW5kb3cuaHdhKCd0cmFja1N0cnVjdEV2ZW50JywgeyB1ZW1faWQ6ICdQODFENDQ4Q0JGQ0EyMkZfQzgxREU2QkYyQjc4NzU0JywgdWVtX2xhYmVsOiAn54K55Ye7IOmhteeciS3lkIjkvZzkvJnkvLQnLH0pOyB9IGNhdGNoIChlKSB7fTt0cnkgeyAgICAgZ3RhZygnZXZlbnQnLCdGaXJzdF9OYXZpZ2F0aW9uJyx7J2V2ZW50Q2F0ZWdvcnknOmRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lLCdTaXRlX0NvdW50cnlfQ29kZV9IJzokKCdodG1sJykuYXR0cignZGF0YS1yZWdpb24nKS5yZXBsYWNlKC9bL10vZywgJycpLnRvVXBwZXJDYXNlKCksJ2V2ZW50QWN0aW9uJzogJ0ZpcnN0X05hdmlnYXRpb24nLCdldmVudExhYmVsJzonUGFydG5lcnMnKycrJysod2luZG93LmxvY2F0aW9uLm9yaWdpbiArIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkucmVwbGFjZSgvXC8kLywgJycpfSkgICB9IGNhdGNoIChlcnJvcikge2lmIChlcnJvci5tZXNzYWdlID09PSAnZ3RhZyBpcyBub3QgZGVmaW5lZCcpIHtjb25zb2xlLmxvZygnR29vZ2xlIEFuYWx5dGljcyBpcyBub3QgYXZhaWxhYmxlLiBFdmVudCB0cmFja2luZyBpcyBkaXNhYmxlZC4nKTt9IGVsc2Uge3Rocm93IGVycm9yO319FgJmDxUBDOWQiOS9nOS8meS8tGQCAw8WAh8DZ2QCBQ8WBB8CAgUfA2cWCgIBD2QWAmYPFQQhL2NuL3BhcnRuZXJzL3BhcnRuZXItaW50cm9kdWN0aW9uAIgFdHJ5IHsgd2luZG93Lmh3YSgndHJhY2tTdHJ1Y3RFdmVudCcsIHsgdWVtX2lkOiAnUDgxRDQ0OENCRkNBMjJGX0M4MURFNkJGNzQ3MjMxNCcsIHVlbV9sYWJlbDogJ+eCueWHuyDpobXnnIkt5ZCI5L2c5LyZ5Ly0LeS8meS8tOS7i+e7jScsfSk7IH0gY2F0Y2ggKGUpIHt9O3RyeSB7ICAgICBndGFnKCdldmVudCcsJ1N1Yl9OYXZpZ2F0aW9uJyx7J2V2ZW50Q2F0ZWdvcnknOmRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lLCdTaXRlX0NvdW50cnlfQ29kZV9IJzokKCdodG1sJykuYXR0cignZGF0YS1yZWdpb24nKS5yZXBsYWNlKC9bL10vZywgJycpLnRvVXBwZXJDYXNlKCksJ2V2ZW50QWN0aW9uJzonU3ViX05hdmlnYXRpb24nLCdldmVudExhYmVsJzonUGFydG5lcnMnKycrJysnUGFydG5lciBJbnRyb2R1Y3Rpb24nKycrJysod2luZG93LmxvY2F0aW9uLm9yaWdpbiArIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkucmVwbGFjZSgvXC8kLywgJycpfSkgICB9IGNhdGNoIChlcnJvcikge2lmIChlcnJvci5tZXNzYWdlID09PSAnZ3RhZyBpcyBub3QgZGVmaW5lZCcpIHtjb25zb2xlLmxvZygnR29vZ2xlIEFuYWx5dGljcyBpcyBub3QgYXZhaWxhYmxlLiBFdmVudCB0cmFja2luZyBpcyBkaXNhYmxlZC4nKTt9IGVsc2Uge3Rocm93IGVycm9yO319DOS8meS8tOS7i+e7jWQCAg9kFgJmDxUELmh0dHBzOi8vcGFydG5lci5odWF3ZWkuY29tL2VjcHJpLyMvP2xhbmc9emhfQ04GX2JsYW5rhAV0cnkgeyB3aW5kb3cuaHdhKCd0cmFja1N0cnVjdEV2ZW50JywgeyB1ZW1faWQ6ICdQODFENDQ4Q0JGQ0EyMkZfQzgxREU2QkY1RTI0RDhGJywgdWVtX2xhYmVsOiAn54K55Ye7IOmhteeciS3lkIjkvZzkvJnkvLQt5oiQ5Li65LyZ5Ly0Jyx9KTsgfSBjYXRjaCAoZSkge307dHJ5IHsgICAgIGd0YWcoJ2V2ZW50JywnU3ViX05hdmlnYXRpb24nLHsnZXZlbnRDYXRlZ29yeSc6ZG9jdW1lbnQubG9jYXRpb24ucGF0aG5hbWUsJ1NpdGVfQ291bnRyeV9Db2RlX0gnOiQoJ2h0bWwnKS5hdHRyKCdkYXRhLXJlZ2lvbicpLnJlcGxhY2UoL1svXS9nLCAnJykudG9VcHBlckNhc2UoKSwnZXZlbnRBY3Rpb24nOidTdWJfTmF2aWdhdGlvbicsJ2V2ZW50TGFiZWwnOidQYXJ0bmVycycrJysnKydCZWNvbWUgYSBQYXJ0bmVyJysnKycrKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLnJlcGxhY2UoL1wvJC8sICcnKX0pICAgfSBjYXRjaCAoZXJyb3IpIHtpZiAoZXJyb3IubWVzc2FnZSA9PT0gJ2d0YWcgaXMgbm90IGRlZmluZWQnKSB7Y29uc29sZS5sb2coJ0dvb2dsZSBBbmFseXRpY3MgaXMgbm90IGF2YWlsYWJsZS4gRXZlbnQgdHJhY2tpbmcgaXMgZGlzYWJsZWQuJyk7fSBlbHNlIHt0aHJvdyBlcnJvcjt9fQzmiJDkuLrkvJnkvLRkAgMPZBYCZg8VBDBodHRwczovL2RpZ2l0YWxwb3dlci5odWF3ZWkuY29tL3BhcnRuZXIjL2NuL21haW4GX2JsYW5rgQV0cnkgeyB3aW5kb3cuaHdhKCd0cmFja1N0cnVjdEV2ZW50JywgeyB1ZW1faWQ6ICdQODFENDQ4Q0JGQ0EyMkZfQzgxREU2QkY3QjQzRDBCJywgdWVtX2xhYmVsOiAn54K55Ye7IOmhteeciS3lkIjkvZzkvJnkvLQtcG93ZXJwYXJ0bmVyJyx9KTsgfSBjYXRjaCAoZSkge307dHJ5IHsgICAgIGd0YWcoJ2V2ZW50JywnU3ViX05hdmlnYXRpb24nLHsnZXZlbnRDYXRlZ29yeSc6ZG9jdW1lbnQubG9jYXRpb24ucGF0aG5hbWUsJ1NpdGVfQ291bnRyeV9Db2RlX0gnOiQoJ2h0bWwnKS5hdHRyKCdkYXRhLXJlZ2lvbicpLnJlcGxhY2UoL1svXS9nLCAnJykudG9VcHBlckNhc2UoKSwnZXZlbnRBY3Rpb24nOidTdWJfTmF2aWdhdGlvbicsJ2V2ZW50TGFiZWwnOidQYXJ0bmVycycrJysnKydQb3dlci1QYXJ0bmVyJysnKycrKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLnJlcGxhY2UoL1wvJC8sICcnKX0pICAgfSBjYXRjaCAoZXJyb3IpIHtpZiAoZXJyb3IubWVzc2FnZSA9PT0gJ2d0YWcgaXMgbm90IGRlZmluZWQnKSB7Y29uc29sZS5sb2coJ0dvb2dsZSBBbmFseXRpY3MgaXMgbm90IGF2YWlsYWJsZS4gRXZlbnQgdHJhY2tpbmcgaXMgZGlzYWJsZWQuJyk7fSBlbHNlIHt0aHJvdyBlcnJvcjt9fQ1Qb3dlci1QYXJ0bmVyZAIED2QWAmYPFQQwaHR0cHM6Ly9jb21tdW5pdHkuc29sYXIuaHVhd2VpLmNvbS9jbi9pbmRleC5odG1sBl9ibGFua4sFdHJ5IHsgd2luZG93Lmh3YSgndHJhY2tTdHJ1Y3RFdmVudCcsIHsgdWVtX2lkOiAnUDgxRDQ0OENCRkNBMjJGX0M4MURFNkJGN0IwOTBBRicsIHVlbV9sYWJlbDogJ+eCueWHuyDpobXnnIkt5ZCI5L2c5LyZ5Ly0LeWuieijheWVhuekvuWMuicsfSk7IH0gY2F0Y2ggKGUpIHt9O3RyeSB7ICAgICBndGFnKCdldmVudCcsJ1N1Yl9OYXZpZ2F0aW9uJyx7J2V2ZW50Q2F0ZWdvcnknOmRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lLCdTaXRlX0NvdW50cnlfQ29kZV9IJzokKCdodG1sJykuYXR0cignZGF0YS1yZWdpb24nKS5yZXBsYWNlKC9bL10vZywgJycpLnRvVXBwZXJDYXNlKCksJ2V2ZW50QWN0aW9uJzonU3ViX05hdmlnYXRpb24nLCdldmVudExhYmVsJzonUGFydG5lcnMnKycrJysnSW5zdGFsbGVycyBDb21tdW5pdHknKycrJysod2luZG93LmxvY2F0aW9uLm9yaWdpbiArIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkucmVwbGFjZSgvXC8kLywgJycpfSkgICB9IGNhdGNoIChlcnJvcikge2lmIChlcnJvci5tZXNzYWdlID09PSAnZ3RhZyBpcyBub3QgZGVmaW5lZCcpIHtjb25zb2xlLmxvZygnR29vZ2xlIEFuYWx5dGljcyBpcyBub3QgYXZhaWxhYmxlLiBFdmVudCB0cmFja2luZyBpcyBkaXNhYmxlZC4nKTt9IGVsc2Uge3Rocm93IGVycm9yO319D+WuieijheWVhuekvuWMumQCBQ9kFgJmDxUEHy9jbi9wYXJ0bmVycy9tYXA/dHlwZT1pbnN0YWxsZXIAiAV0cnkgeyB3aW5kb3cuaHdhKCd0cmFja1N0cnVjdEV2ZW50JywgeyB1ZW1faWQ6ICdQODFENDMzNUVFODRGRTZfQzgyMDlDN0M0MDQ0QkI3JywgdWVtX2xhYmVsOiAn54K55Ye7IOmhteeciS3lkIjkvZzkvJnkvLQt5a+75om+5a6J6KOF5ZWGJyx9KTsgfSBjYXRjaCAoZSkge307dHJ5IHsgICAgIGd0YWcoJ2V2ZW50JywnU3ViX05hdmlnYXRpb24nLHsnZXZlbnRDYXRlZ29yeSc6ZG9jdW1lbnQubG9jYXRpb24ucGF0aG5hbWUsJ1NpdGVfQ291bnRyeV9Db2RlX0gnOiQoJ2h0bWwnKS5hdHRyKCdkYXRhLXJlZ2lvbicpLnJlcGxhY2UoL1svXS9nLCAnJykudG9VcHBlckNhc2UoKSwnZXZlbnRBY3Rpb24nOidTdWJfTmF2aWdhdGlvbicsJ2V2ZW50TGFiZWwnOidQYXJ0bmVycycrJysnKydGaW5kIGFuIEluc3RhbGxlcicrJysnKyh3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKS5yZXBsYWNlKC9cLyQvLCAnJyl9KSAgIH0gY2F0Y2ggKGVycm9yKSB7aWYgKGVycm9yLm1lc3NhZ2UgPT09ICdndGFnIGlzIG5vdCBkZWZpbmVkJykge2NvbnNvbGUubG9nKCdHb29nbGUgQW5hbHl0aWNzIGlzIG5vdCBhdmFpbGFibGUuIEV2ZW50IHRyYWNraW5nIGlzIGRpc2FibGVkLicpO30gZWxzZSB7dGhyb3cgZXJyb3I7fX0P5a+75om+5a6J6KOF5ZWGZAIFD2QWBAIBDxYGHwQFHi9jbi9wcm9mZXNzaW9uYWxzL2FsbC1wcm9kdWN0cx8FZB8GBdwEdHJ5IHsgd2luZG93Lmh3YSgndHJhY2tTdHJ1Y3RFdmVudCcsIHsgdWVtX2lkOiAnUDgxRDQ0OENCRkNBMjJGX0M4MURFNkJGMDNCMjY0QicsIHVlbV9sYWJlbDogJ+eCueWHuyDpobXnnIkt5Lqn5ZOBJyx9KTsgfSBjYXRjaCAoZSkge307dHJ5IHsgICAgZ3RhZygnZXZlbnQnLCdGaXJzdF9OYXZpZ2F0aW9uJyx7J2V2ZW50Q2F0ZWdvcnknOmRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lLCdTaXRlX0NvdW50cnlfQ29kZV9IJzokKCdodG1sJykuYXR0cignZGF0YS1yZWdpb24nKS5yZXBsYWNlKC9bL10vZywgJycpLnRvVXBwZXJDYXNlKCksJ2V2ZW50QWN0aW9uJzogJ0ZpcnN0X05hdmlnYXRpb24nLCdldmVudExhYmVsJzonUHJvZHVjdHMnKycrJysod2luZG93LmxvY2F0aW9uLm9yaWdpbiArIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkucmVwbGFjZSgvXC8kLywgJycpfSkgfSBjYXRjaCAoZXJyb3IpIHtpZiAoZXJyb3IubWVzc2FnZSA9PT0gJ2d0YWcgaXMgbm90IGRlZmluZWQnKSB7Y29uc29sZS5sb2coJ0dvb2dsZSBBbmFseXRpY3MgaXMgbm90IGF2YWlsYWJsZS4gRXZlbnQgdHJhY2tpbmcgaXMgZGlzYWJsZWQuJyk7fSBlbHNlIHt0aHJvdyBlcnJvcjt9fRYCZg8VAQbkuqflk4FkAgUPFgIfAgL/////D2QCBg9kFgYCAQ8WBB8EBQxqYXZhc2NyaXB0OjsfBgXcBHRyeSB7IHdpbmRvdy5od2EoJ3RyYWNrU3RydWN0RXZlbnQnLCB7IHVlbV9pZDogJ1A4MUQ0NDhDQkZDQTIyRl9DODFERTZCRjI5RDIxQkInLCB1ZW1fbGFiZWw6ICfngrnlh7sg6aG155yJLeaUr+aMgScsfSk7IH0gY2F0Y2ggKGUpIHt9O3RyeSB7ICAgICBndGFnKCdldmVudCcsJ0ZpcnN0X05hdmlnYXRpb24nLHsnZXZlbnRDYXRlZ29yeSc6ZG9jdW1lbnQubG9jYXRpb24ucGF0aG5hbWUsJ1NpdGVfQ291bnRyeV9Db2RlX0gnOiQoJ2h0bWwnKS5hdHRyKCdkYXRhLXJlZ2lvbicpLnJlcGxhY2UoL1svXS9nLCAnJykudG9VcHBlckNhc2UoKSwnZXZlbnRBY3Rpb24nOiAnRmlyc3RfTmF2aWdhdGlvbicsJ2V2ZW50TGFiZWwnOidTdXBwb3J0JysnKycrKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLnJlcGxhY2UoL1wvJC8sICcnKX0pIH0gY2F0Y2ggKGVycm9yKSB7aWYgKGVycm9yLm1lc3NhZ2UgPT09ICdndGFnIGlzIG5vdCBkZWZpbmVkJykge2NvbnNvbGUubG9nKCdHb29nbGUgQW5hbHl0aWNzIGlzIG5vdCBhdmFpbGFibGUuIEV2ZW50IHRyYWNraW5nIGlzIGRpc2FibGVkLicpO30gZWxzZSB7dGhyb3cgZXJyb3I7fX0WAmYPFQEG5pSv5oyBZAIDDxYCHwNnZAIFDxYEHwICAx8DZxYGAgEPZBYCZg8VBBcvY24vc2VydmljZS1zdXBwb3J0L3RzYwD+BHRyeSB7IHdpbmRvdy5od2EoJ3RyYWNrU3RydWN0RXZlbnQnLCB7IHVlbV9pZDogJ1A4MUQ0MzM1RUU4NEZFNl9DNkY1QjM2RjQ5RTIzQTknLCB1ZW1fbGFiZWw6ICfngrnlh7sg6aG155yJLeaKgOacr+aUr+aMgeS4reW/gycsfSk7IH0gY2F0Y2ggKGUpIHt9O3RyeSB7ICAgICBndGFnKCdldmVudCcsJ1N1Yl9OYXZpZ2F0aW9uJyx7J2V2ZW50Q2F0ZWdvcnknOmRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lLCdTaXRlX0NvdW50cnlfQ29kZV9IJzokKCdodG1sJykuYXR0cignZGF0YS1yZWdpb24nKS5yZXBsYWNlKC9bL10vZywgJycpLnRvVXBwZXJDYXNlKCksJ2V2ZW50QWN0aW9uJzonU3ViX05hdmlnYXRpb24nLCdldmVudExhYmVsJzonU3VwcG9ydCcrJysnKydTZXJ2aWNlcyBhbmQgU3VwcG9ydCcrJysnKyh3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKS5yZXBsYWNlKC9cLyQvLCAnJyl9KSB9IGNhdGNoIChlcnJvcikge2lmIChlcnJvci5tZXNzYWdlID09PSAnZ3RhZyBpcyBub3QgZGVmaW5lZCcpIHtjb25zb2xlLmxvZygnR29vZ2xlIEFuYWx5dGljcyBpcyBub3QgYXZhaWxhYmxlLiBFdmVudCB0cmFja2luZyBpcyBkaXNhYmxlZC4nKTt9IGVsc2Uge3Rocm93IGVycm9yO319D+acjeWKoeS4juaUr+aMgWQCAg9kFgJmDxUEU2h0dHBzOi8vZm9ydW0uaHVhd2VpLmNvbS9lbnRlcnByaXNlL3poL2ZvcnVtcy81ODA4Nzk3OTk2NzU2NjIzMzYvNTgwODc5ODIzMDkyNDYxNTY4Bl9ibGFua+kEdHJ5IHsgd2luZG93Lmh3YSgndHJhY2tTdHJ1Y3RFdmVudCcsIHsgdWVtX2lkOiAnUDgxRDQ0OENCRkNBMjJGX0M4MURFNkJGNDJBMkUyNycsIHVlbV9sYWJlbDogJ+eCueWHuyDpobXnnIkt5pSv5oyBLeiuuuWdmycsfSk7IH0gY2F0Y2ggKGUpIHt9O3RyeSB7ICAgIGd0YWcoJ2V2ZW50JywnU3ViX05hdmlnYXRpb24nLHsnZXZlbnRDYXRlZ29yeSc6ZG9jdW1lbnQubG9jYXRpb24ucGF0aG5hbWUsJ1NpdGVfQ291bnRyeV9Db2RlX0gnOiQoJ2h0bWwnKS5hdHRyKCdkYXRhLXJlZ2lvbicpLnJlcGxhY2UoL1svXS9nLCAnJykudG9VcHBlckNhc2UoKSwnZXZlbnRBY3Rpb24nOidTdWJfTmF2aWdhdGlvbicsJ2V2ZW50TGFiZWwnOidTdXBwb3J0JysnKycrJ0ZvcnVtJysnKycrKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLnJlcGxhY2UoL1wvJC8sICcnKX0pIH0gY2F0Y2ggKGVycm9yKSB7aWYgKGVycm9yLm1lc3NhZ2UgPT09ICdndGFnIGlzIG5vdCBkZWZpbmVkJykge2NvbnNvbGUubG9nKCdHb29nbGUgQW5hbHl0aWNzIGlzIG5vdCBhdmFpbGFibGUuIEV2ZW50IHRyYWNraW5nIGlzIGRpc2FibGVkLicpO30gZWxzZSB7dGhyb3cgZXJyb3I7fX0G6K665Z2bZAIDD2QWAmYPFQRjaHR0cHM6Ly9kaWdpdGFscG93ZXIuaHVhd2VpLmNvbS9yb2JvdGNoYXQvIy9ob21lL2luZGV4P2xhbmc9emhfQ04mZG9tYWluPXNtYXJ0cHYmZnJvbV90aXRsZV96aD0xMTE3Bl9ibGFua/kEdHJ5IHsgd2luZG93Lmh3YSgndHJhY2tTdHJ1Y3RFdmVudCcsIHsgdWVtX2lkOiAnUDgxRDQ0OENCRkNBMjJGX0M4MURFNkJGNDc3Q0FGNScsIHVlbV9sYWJlbDogJ+eCueWHuyDpobXnnIkt5pSv5oyBLeWcqOe6v+aUr+aMgScsfSk7IH0gY2F0Y2ggKGUpIHt9O3RyeSB7ICAgICBndGFnKCdldmVudCcsJ1N1Yl9OYXZpZ2F0aW9uJyx7J2V2ZW50Q2F0ZWdvcnknOmRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lLCdTaXRlX0NvdW50cnlfQ29kZV9IJzokKCdodG1sJykuYXR0cignZGF0YS1yZWdpb24nKS5yZXBsYWNlKC9bL10vZywgJycpLnRvVXBwZXJDYXNlKCksJ2V2ZW50QWN0aW9uJzonU3ViX05hdmlnYXRpb24nLCdldmVudExhYmVsJzonU3VwcG9ydCcrJysnKydPbmxpbmUgU3VwcG9ydCcrJysnKyh3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKS5yZXBsYWNlKC9cLyQvLCAnJyl9KSB9IGNhdGNoIChlcnJvcikge2lmIChlcnJvci5tZXNzYWdlID09PSAnZ3RhZyBpcyBub3QgZGVmaW5lZCcpIHtjb25zb2xlLmxvZygnR29vZ2xlIEFuYWx5dGljcyBpcyBub3QgYXZhaWxhYmxlLiBFdmVudCB0cmFja2luZyBpcyBkaXNhYmxlZC4nKTt9IGVsc2Uge3Rocm93IGVycm9yO319DOWcqOe6v+aUr+aMgWQCBw9kFgQCAQ8WBh8EBTBodHRwczovL2NvbW11bml0eS5zb2xhci5odWF3ZWkuY29tL2NuL2luZGV4Lmh0bWwfBQUGX2JsYW5rHwYF3gR0cnkgeyB3aW5kb3cuaHdhKCd0cmFja1N0cnVjdEV2ZW50JywgeyB1ZW1faWQ6ICdQODFENDQ4Q0JGQ0EyMkZfQzgxREU2QkYyQTBCOTQwJywgdWVtX2xhYmVsOiAn54K55Ye7IOmhteeciS3npL7ljLonLH0pOyB9IGNhdGNoIChlKSB7fTt0cnkgeyAgICAgZ3RhZygnZXZlbnQnLCdGaXJzdF9OYXZpZ2F0aW9uJyx7J2V2ZW50Q2F0ZWdvcnknOmRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lLCdTaXRlX0NvdW50cnlfQ29kZV9IJzokKCdodG1sJykuYXR0cignZGF0YS1yZWdpb24nKS5yZXBsYWNlKC9bL10vZywgJycpLnRvVXBwZXJDYXNlKCksJ2V2ZW50QWN0aW9uJzogJ0ZpcnN0X05hdmlnYXRpb24nLCdldmVudExhYmVsJzonQ29tbXVuaXR5JysnKycrKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLnJlcGxhY2UoL1wvJC8sICcnKX0pIH0gY2F0Y2ggKGVycm9yKSB7aWYgKGVycm9yLm1lc3NhZ2UgPT09ICdndGFnIGlzIG5vdCBkZWZpbmVkJykge2NvbnNvbGUubG9nKCdHb29nbGUgQW5hbHl0aWNzIGlzIG5vdCBhdmFpbGFibGUuIEV2ZW50IHRyYWNraW5nIGlzIGRpc2FibGVkLicpO30gZWxzZSB7dGhyb3cgZXJyb3I7fX0WAmYPFQEG56S+5Yy6ZAIFDxYCHwIC/////w9kAggPZBYGAgEPFgQfBAUMamF2YXNjcmlwdDo7HwYF4QR0cnkgeyB3aW5kb3cuaHdhKCd0cmFja1N0cnVjdEV2ZW50JywgeyB1ZW1faWQ6ICdQODFENDQ4Q0JGQ0EyMkZfQzgxREU2QkY0REVDQTEwJywgdWVtX2xhYmVsOiAn54K55Ye7IOmhteeciS3kuIvovb3kuK3lv4MnLH0pOyB9IGNhdGNoIChlKSB7fTt0cnkgeyAgIGd0YWcoJ2V2ZW50JywnRmlyc3RfTmF2aWdhdGlvbicseydldmVudENhdGVnb3J5Jzpkb2N1bWVudC5sb2NhdGlvbi5wYXRobmFtZSwnU2l0ZV9Db3VudHJ5X0NvZGVfSCc6JCgnaHRtbCcpLmF0dHIoJ2RhdGEtcmVnaW9uJykucmVwbGFjZSgvWy9dL2csICcnKS50b1VwcGVyQ2FzZSgpLCdldmVudEFjdGlvbic6ICdGaXJzdF9OYXZpZ2F0aW9uJywnZXZlbnRMYWJlbCc6J0Rvd25sb2FkJysnKycrKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLnJlcGxhY2UoL1wvJC8sICcnKX0pIH0gY2F0Y2ggKGVycm9yKSB7aWYgKGVycm9yLm1lc3NhZ2UgPT09ICdndGFnIGlzIG5vdCBkZWZpbmVkJykge2NvbnNvbGUubG9nKCdHb29nbGUgQW5hbHl0aWNzIGlzIG5vdCBhdmFpbGFibGUuIEV2ZW50IHRyYWNraW5nIGlzIGRpc2FibGVkLicpO30gZWxzZSB7dGhyb3cgZXJyb3I7fX0WAmYPFQEM5LiL6L295Lit5b+DZAIDDxYCHwNnZAIFDxYEHwICAh8DZxYEAgEPZBYCZg8VBCJodHRwczovL3NvbGFyLmh1YXdlaS5jb20vY24vaW5mby8vBl9ibGFua4gFdHJ5IHsgd2luZG93Lmh3YSgndHJhY2tTdHJ1Y3RFdmVudCcsIHsgdWVtX2lkOiAnUDgxRDQ0OENCRkNBMjJGX0M4MURFNkJGNkYwOEE1RicsIHVlbV9sYWJlbDogJ+eCueWHuyDpobXnnIkt5LiL6L295Lit5b+DLeS6p+WTgei1hOaWmeS4reW/gycsfSk7IH0gY2F0Y2ggKGUpIHt9O3RyeSB7ICAgICBndGFnKCdldmVudCcsJ1N1Yl9OYXZpZ2F0aW9uJyx7J2V2ZW50Q2F0ZWdvcnknOmRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lLCdTaXRlX0NvdW50cnlfQ29kZV9IJzokKCdodG1sJykuYXR0cignZGF0YS1yZWdpb24nKS5yZXBsYWNlKC9bL10vZywgJycpLnRvVXBwZXJDYXNlKCksJ2V2ZW50QWN0aW9uJzonU3ViX05hdmlnYXRpb24nLCdldmVudExhYmVsJzonRG93bmxvYWQnKycrJysnUHJvZHVjdCBEb2N1bWVudCcrJysnKyh3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKS5yZXBsYWNlKC9cLyQvLCAnJyl9KSB9IGNhdGNoIChlcnJvcikge2lmIChlcnJvci5tZXNzYWdlID09PSAnZ3RhZyBpcyBub3QgZGVmaW5lZCcpIHtjb25zb2xlLmxvZygnR29vZ2xlIEFuYWx5dGljcyBpcyBub3QgYXZhaWxhYmxlLiBFdmVudCB0cmFja2luZyBpcyBkaXNhYmxlZC4nKTt9IGVsc2Uge3Rocm93IGVycm9yO319EuS6p+WTgei1hOaWmeS4reW/g2QCAg9kFgJmDxUEOWh0dHBzOi8vZGlnaXRhbHBvd2VyLmh1YXdlaS5jb20vcG93ZXItbWFya2V0aW5nLyMvY24vaG9tZQZfYmxhbmuEBXRyeSB7IHdpbmRvdy5od2EoJ3RyYWNrU3RydWN0RXZlbnQnLCB7IHVlbV9pZDogJ1A4MUQ0NDhDQkZDQTIyRl9DODFERTZCRjQ3RUQ3RTUnLCB1ZW1fbGFiZWw6ICfngrnlh7sg6aG155yJLeS4i+i9veS4reW/gy3okKXplIDotYTmlpnkuK3lv4MnLH0pOyB9IGNhdGNoIChlKSB7fTt0cnkgeyAgICAgZ3RhZygnZXZlbnQnLCdTdWJfTmF2aWdhdGlvbicseydldmVudENhdGVnb3J5Jzpkb2N1bWVudC5sb2NhdGlvbi5wYXRobmFtZSwnU2l0ZV9Db3VudHJ5X0NvZGVfSCc6JCgnaHRtbCcpLmF0dHIoJ2RhdGEtcmVnaW9uJykucmVwbGFjZSgvWy9dL2csICcnKS50b1VwcGVyQ2FzZSgpLCdldmVudEFjdGlvbic6J1N1Yl9OYXZpZ2F0aW9uJywnZXZlbnRMYWJlbCc6J0Rvd25sb2FkJysnKycrJ01LVCBEb2N1bWVudCcrJysnKyh3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKS5yZXBsYWNlKC9cLyQvLCAnJyl9KSB9IGNhdGNoIChlcnJvcikge2lmIChlcnJvci5tZXNzYWdlID09PSAnZ3RhZyBpcyBub3QgZGVmaW5lZCcpIHtjb25zb2xlLmxvZygnR29vZ2xlIEFuYWx5dGljcyBpcyBub3QgYXZhaWxhYmxlLiBFdmVudCB0cmFja2luZyBpcyBkaXNhYmxlZC4nKTt9IGVsc2Uge3Rocm93IGVycm9yO319EuiQpemUgOi1hOaWmeS4reW/g2QCBw8WAh8CAgEWAmYPZBYCZg8VBA0vY24vb3JkZXItbm93AKoEdHJ5IHsgd2luZG93Lmh3YSgndHJhY2tTdHJ1Y3RFdmVudCcsIHsgdWVtX2lkOiAnUDgxRDQ0OENCRkNBMjJGX0M4MURFNkJGNDQxNUI1MCcsIHVlbV9sYWJlbDogJ+eCueWHuyDpobXnnIkt56uL5Y2z6LSt5LmwJyx9KTsgfSBjYXRjaCAoZSkge307dHJ5IHsgICAgIGd0YWcoJ2V2ZW50JywnQnV5X0NsaWNrJyx7J1NpdGVfQ291bnRyeV9Db2RlX0gnOiQoJ2h0bWwnKS5hdHRyKCdkYXRhLXJlZ2lvbicpLnJlcGxhY2UoL1svXS9nLCAnJykudG9VcHBlckNhc2UoKSwnZXZlbnRBY3Rpb24nOidCdXlfQ2xpY2snLCdldmVudExhYmVsJzonT3JkZXIgTm93JysnKycrKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLnJlcGxhY2UoL1wvJC8sICcnKX0pIH0gY2F0Y2ggKGVycm9yKSB7aWYgKGVycm9yLm1lc3NhZ2UgPT09ICdndGFnIGlzIG5vdCBkZWZpbmVkJykge2NvbnNvbGUubG9nKCdHb29nbGUgQW5hbHl0aWNzIGlzIG5vdCBhdmFpbGFibGUuIEV2ZW50IHRyYWNraW5nIGlzIGRpc2FibGVkLicpO30gZWxzZSB7dGhyb3cgZXJyb3I7fX0M56uL5Y2z6LSt5LmwZAIED2QWCGYPZBYCZg9kFgICAQ8WAh8CAgIWBGYPZBYCZg8VBwBfLy0vbWVkaWEvU29sYXJWNC9zb2xhci12ZXJzaW9uMi9hc2lhLXBhY2lmaWMvY24vdXRpbGl0eS1wbGFudC1vd25lcnMva3YtYmFubmVyL2ltZ19mbG9vcjFfMS5wbmdfLy0vbWVkaWEvU29sYXJWNC9zb2xhci12ZXJzaW9uMi9hc2lhLXBhY2lmaWMvY24vdXRpbGl0eS1wbGFudC1vd25lcnMva3YtYmFubmVyL2ltZ19mbG9vcjFfMS5wbmcAzwE8cD4NCiAgICAgICAgICAgICAgICAgICDmmbrog73lhYnkvI/op6PlhrPmlrnmoYgNCiAgICAgICAgICAgICAgICAgIDwvcD4NCiAgICAgICAgICAgICAgICAgIDxzcGFuPg0KICAgICAgICAgICAgICAgICAgICDlhYnlgqjono3lkIjvvIzlhajpnaLmmbrog73vvIzliqDpgJ/lhYnkvI/miJDkuLrkuLvlipvog73mupANCiAgICAgICAgICAgICAgICAgIDwvc3Bhbj4AAGQCAQ9kFgJmDxUHAEIvLS9tZWRpYS9Tb2xhclY0L2ltYWdlcy9Pd25lcnMvVXRpbGl0eVBsYW50T3duZXJzL2ltZ19mbG9vcjFfMi5qcGdCLy0vbWVkaWEvU29sYXJWNC9pbWFnZXMvT3duZXJzL1V0aWxpdHlQbGFudE93bmVycy9pbWdfZmxvb3IxXzIuanBnAL4BPHA+DQogICAgICAgICAgICAgICAgICDmmbrog73nu4TkuLLlvI/lgqjog70NCiAgICAgICAgICAgICAgICAgIDwvcD4NCiAgICAgICAgICAgICAgICAgIDxzcGFuPg0KICAgICAgICAgICAgICAgICAgICDlrp7njrDmm7Tpq5jlj6/nlKjlrrnph4/vvIzmm7Tpq5jlronlhajmoIflh4YNCiAgICAgICAgICAgICAgICAgIDwvc3Bhbj4NCgAAZAIBD2QWAmYPZBYCZg8WAh8CAgMWBmYPZBYCZg8VBSQ8aDI+5byA5rqQ6IqC5rWB77yM5pu06auY5pS255uKPC9oMj5DLy0vbWVkaWEvU29sYXJWNC9pbWFnZXMvT3duZXJzL1V0aWxpdHlQbGFudE93bmVycy9pY19Tb2x1dGlvbl8xLnN2Zw1pYyBTb2x1dGlvbiAxJTxoMj7lvIDmupDoioLmtYHvvIzmm7Tpq5jmlLbnm4oKPC9oMj5IPHA+6ZmN5L2O5YWJL+WCqOi/kOe7tOaIkOacrAo8YnI+CumrmOaViOWPkeeUte+8jOaPkOWNh+WPr+eUqOWuuemHjwo8L3A+ZAIBD2QWAmYPFQUkPGgyPuWbm+mHjeS/nemanO+8jOWuieWFqOWPr+mdoDwvaDI+Qy8tL21lZGlhL1NvbGFyVjQvaW1hZ2VzL093bmVycy9VdGlsaXR5UGxhbnRPd25lcnMvaWNfU29sdXRpb25fMi5zdmcNaWMgU29sdXRpb24gMiU8aDI+5Zub6YeN5L+d6Zqc77yM5a6J5YWo5Y+v6Z2gCjwvaDI+azxwPuWFieWCqOiejeWQiOino+WGs+aWueahiOiDveWkn+S/neivgeabtOmrmOeahOWFieS8j+ezu+e7n+WuieWFqOaAp+WPiuWCqOiDveezu+e7n+eahOS4u+WKqOWuieWFqOaApwo8L3A+ZAICD2QWAmYPFQUkPGgyPueos+WumuS+m+eUte+8jOaPkOWNh+a2iOe6szwvaDI+Qy8tL21lZGlhL1NvbGFyVjQvaW1hZ2VzL093bmVycy9VdGlsaXR5UGxhbnRPd25lcnMvaWNfU29sdXRpb25fMy5zdmcNaWMgU29sdXRpb24gMyU8aDI+56iz5a6a5L6b55S177yM5o+Q5Y2H5raI57qzCjwvaDI+WjxwPuWFqOeUtee9keWcuuaZr+eos+WumuW5tue9kS/kvpvnlLUKPGJyPgrlj5Hlgqjono3lkIjvvIzmlK/mkpHmlrDog73mupDlj6/pnaDmtojnurMKPC9wPmQCAw9kFgJmD2QWBAIBDxYCHwICAhYEZg9kFgJmDxUBQzxzcGFuIGNsYXNzPSJkaWdfdXBfdGFiX2hlYWRfaXRlbSI+5pm66IO95YWJ5LyP6Kej5Yaz5pa55qGIIDwvc3Bhbj5kAgEPZBYCZg8VAUw8c3BhbiBjbGFzcz0iZGlnX3VwX3RhYl9oZWFkX2l0ZW0iPuaZuuiDvee7hOS4suW8j+WCqOiDveino+WGs+aWueahiCA8L3NwYW4+ZAIDDxYCHwICAhYEZg9kFgZmDxUBBmFjdGl2ZWQCAQ8WAh8CAgMWBmYPZBYCZg8VBIUBPGRpdiBjbGFzcz0iZGlnX3N0bV9MdGl0bGUiPjxzcGFuIGNsYXNzPSJkaWdfc3RtX2dyYWRpZW50Ij7mmbrog708L3NwYW4+PHNwYW4gY2xhc3M9ImRpZ19zdG1faW5uZXJ0aXRsZSI+5YWJ5LyP5o6n5Yi25ZmoPC9zcGFuPjwvZGl2PgB0PHAgY2xhc3M9ImRpZ19zdG1fc3ViRGVzYyI+5pm66IO95YWJ5LyP5o6n5Yi25Zmo5Y+v5Lul5a6e546w5bCG5p2l6Ieq5aSq6Ziz5YWJ54Wn55qE55u05rWB55S16L2s5o2i5Li65Lqk5rWB55S1CjwvcD6vATxpbWcgc3JjPSIvQXNzZXRzL1NvbGFyL3Y0L2ltZy9Pd25lcnMvVXRpbGl0eVBsYW50T3duZXJzL3NtYXJ0XzEucG5nIiBjbGFzcz0iZGlnX3N0bV9yaWdodF9pbWciIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRpZ19zdG1fdmVydGljYWxfYmFyIj48L2Rpdj5kAgEPZBYCZg8VBIUBPGRpdiBjbGFzcz0iZGlnX3N0bV9MdGl0bGUiPjxzcGFuIGNsYXNzPSJkaWdfc3RtX2dyYWRpZW50Ij7mmbrog708L3NwYW4+PHNwYW4gY2xhc3M9ImRpZ19zdG1faW5uZXJ0aXRsZSI+5a2Q6Zi15o6n5Yi25ZmoPC9zcGFuPjwvZGl2PgBzPHAgY2xhc3M9ImRpZ19zdG1fc3ViRGVzYyI+5pm66IO95a2Q6Zi15o6n5Yi25Zmo5pSv5oyB5b6u572R55S156uZ5LiA6ZSu5byA5bGA77yMPGJyLz7nqLPlrprlj6/pnaDkvKDovpPmlbDmja4KPC9wPsEUPGltZyBzcmM9Ii9Bc3NldHMvU29sYXIvdjQvaW1nL093bmVycy9VdGlsaXR5UGxhbnRPd25lcnMvc21hcnRfMi5wbmciIGNsYXNzPSJkaWdfc3RtX3JpZ2h0X2ltZyIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGlnX3BhcGF3MCBkaWdfcGFwYXdfd3JhcCBidWJibGUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Ii9Bc3NldHMvU29sYXIvdjQvaW1nL093bmVycy9VdGlsaXR5UGxhbnRPd25lcnMvcGFwYXcxLnBuZyIgYWx0PSIiIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkaWdfcGFwYXcxIGRpZ19wYXBhd193cmFwIGJ1YmJsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iL0Fzc2V0cy9Tb2xhci92NC9pbWcvT3duZXJzL1V0aWxpdHlQbGFudE93bmVycy9wYXBhdzEucG5nIiBhbHQ9IiIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRpZ19wYXBhdzIgZGlnX3BhcGF3X3dyYXAgYnViYmxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSIvQXNzZXRzL1NvbGFyL3Y0L2ltZy9Pd25lcnMvVXRpbGl0eVBsYW50T3duZXJzL3BhcGF3MS5wbmciIGFsdD0iIiAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGlnX3BhcGF3MyBkaWdfcGFwYXdfd3JhcCBidWJibGUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Ii9Bc3NldHMvU29sYXIvdjQvaW1nL093bmVycy9VdGlsaXR5UGxhbnRPd25lcnMvcGFwYXcxLnBuZyIgYWx0PSIiIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkaWdfcGFwYXc0IGRpZ19wYXBhd193cmFwIGJ1YmJsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iL0Fzc2V0cy9Tb2xhci92NC9pbWcvT3duZXJzL1V0aWxpdHlQbGFudE93bmVycy9wYXBhdzIucG5nIiBhbHQ9IiIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRpZ19wYXBhdzUgZGlnX3BhcGF3X3dyYXAgYnViYmxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSIvQXNzZXRzL1NvbGFyL3Y0L2ltZy9Pd25lcnMvVXRpbGl0eVBsYW50T3duZXJzL3BhcGF3Mi5wbmciIGFsdD0iIiAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGlnX3BhcGF3NiBkaWdfcGFwYXdfd3JhcCBidWJibGUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Ii9Bc3NldHMvU29sYXIvdjQvaW1nL093bmVycy9VdGlsaXR5UGxhbnRPd25lcnMvcGFwYXcxLnBuZyIgYWx0PSIiIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkaWdfcGFwYXc3IGRpZ19wYXBhd193cmFwIGJ1YmJsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iL0Fzc2V0cy9Tb2xhci92NC9pbWcvT3duZXJzL1V0aWxpdHlQbGFudE93bmVycy9wYXBhdzIucG5nIiBhbHQ9IiIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRpZ19wYXBhdzggZGlnX3BhcGF3X3dyYXAgYnViYmxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSIvQXNzZXRzL1NvbGFyL3Y0L2ltZy9Pd25lcnMvVXRpbGl0eVBsYW50T3duZXJzL3BhcGF3MS5wbmciIGFsdD0iIiAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGlnX3BhcGF3OSBkaWdfcGFwYXdfd3JhcCBidWJibGUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Ii9Bc3NldHMvU29sYXIvdjQvaW1nL093bmVycy9VdGlsaXR5UGxhbnRPd25lcnMvcGFwYXcxLnBuZyIgYWx0PSIiIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkaWdfc3RtX3ZlcnRpY2FsX2JhciI+PC9kaXY+ZAICD2QWAmYPFQSIATxkaXYgY2xhc3M9ImRpZ19zdG1fTHRpdGxlIj48c3BhbiBjbGFzcz0iZGlnX3N0bV9ncmFkaWVudCI+5pm66IO9PC9zcGFuPjxzcGFuIGNsYXNzPSJkaWdfc3RtX2lubmVydGl0bGUiPuWFieS8j+euoeeQhuezu+e7nzwvc3Bhbj48L2Rpdj4AdDxwIGNsYXNzPSJkaWdfc3RtX3N1YkRlc2MiPuaZuuiDveWFieS8j+euoeeQhuezu+e7n+WunueOsOW+rue9keeUteermeWFieWCqOeahOWbm+e6p+ebkeaOp++8jOWNj+WKqeeyvue7hueuoeeQhgo8L3A+YjxpbWcgc3JjPSIvQXNzZXRzL1NvbGFyL3Y0L2ltZy9Pd25lcnMvVXRpbGl0eVBsYW50T3duZXJzL3NtYXJ0XzcucG5nIiBjbGFzcz0iZGlnX3N0bV9yaWdodF9pbWciIC8+ZAIDD2QWAmYPZBYCZg9kFgJmDxYCHwICBBYIZg9kFgJmDxUEKFNtYXJ0IFBWIFNvbHV0aW9uICsgRW5naW5lZXJpbmcgU2VydmljZXMADOW3peeoi+acjeWKoWUgPHA+6LCD5rWL5oyH5a+844CB546w5Zy65pyN5Yqh44CB5raJ572R5pS56YCg562J77yM56Gu5L+d6aG555uu5a6J5YWo44CB5ZOB6LSo5Lqk5LuY77yM57yp55+tVFRNPC9wPmQCAQ9kFgJmDxUEJ1NtYXJ0IFBWIFNvbHV0aW9uICsgTWFpbnRlbmFuY2Ugc2VydmljZQAM57u05L+d5pyN5YqhZSA8cD7ov5znqIvpl67popjlpITnkIbjgIHmioDmnK/mlK/mjIHjgIHlpIfku7bmnI3liqHnrYnkuJPkuJrov5Dnu7TvvIzlv6vpgJ/lk43lupTvvIzplb/mnJ/kv53pmpw8L3A+ZAICD2QWAmYPFQQoU21hcnQgUFYgU29sdXRpb24gKyBWYWx1ZS1hZGRlZCBzZXJ2aWNlcwAM5aKe5YC85pyN5YqheiA8cD7pooTpmLLmgKfnu7TmiqTjgIHnjrDlnLrpl67popjlpITnkIbjgIHmlYXpmpzku7bmm7TmjaLjgIHlpIfku7bmnI3liqHnrYnvvIzlv6vpgJ/mgaLlpI3kuJrliqHvvIzlh4/lsJHlgZzmnLrmjZ/lpLE8L3A+ZAIDD2QWAmYPFQQlU21hcnQgUFYgU29sdXRpb24gKyBUcmFpbmluZyBzZXJ2aWNlcwAM5Z+56K6t5pyN5YqhdyA8cD7mioDmnK/ln7norq3jgIHlupTmgKXmvJTnu4PjgIHkvZPns7vljJbogIPmoLjorqTor4HnrYnvvIzop4TojIPlronlhajnlJ/kuqflkozov5Dnu7TvvIzliqnlipvlrqLmiLfkurrmiY3ln7nlhbs8L3A+ZAIBD2QWBmYPFQEAZAIBDxYCHwICBBYIZg9kFgJmDxUEhQE8ZGl2IGNsYXNzPSJkaWdfc3RtX0x0aXRsZSI+PHNwYW4gY2xhc3M9ImRpZ19zdG1fZ3JhZGllbnQiPuaZuuiDvTwvc3Bhbj48c3BhbiBjbGFzcz0iZGlnX3N0bV9pbm5lcnRpdGxlIj7nu4TkuLLlvI/lgqjog708L3NwYW4+PC9kaXY+AIkBPHAgY2xhc3M9ImRpZ19zdG1fc3ViRGVzYyI+5pm66IO957uE5Liy5byP5YKo6IO957O757uf5piv6IO96YeP55qE4oCc6JOE5rC05rGg4oCd5ZKM4oCc6LCD6IqC5Zmo4oCd77yM5Y+C5LiO55S15Yqb5biC5Zy66L6F5Yqp5pyN5YqhCjwvcD7KATxpbWcgc3JjPSIvLS9tZWRpYS9Tb2xhclY0L2ltYWdlcy9Pd25lcnMvVXRpbGl0eVBsYW50T3duZXJzL3VwZGF0ZS91dGlsaXR5LXBsYW50LW93bmVycy1zbWFydF81IiBjbGFzcz0iZGlnX3N0bV9yaWdodF9pbWciIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRpZ19zdG1fdmVydGljYWxfYmFyIj48L2Rpdj5kAgEPZBYCZg8VBIUBPGRpdiBjbGFzcz0iZGlnX3N0bV9MdGl0bGUiPjxzcGFuIGNsYXNzPSJkaWdfc3RtX2dyYWRpZW50Ij7mmbrog708L3NwYW4+PHNwYW4gY2xhc3M9ImRpZ19zdG1faW5uZXJ0aXRsZSI+5YKo6IO95o6n5Yi25ZmoPC9zcGFuPjwvZGl2PgBvPHAgY2xhc3M9ImRpZ19zdG1fc3ViRGVzYyI+5pm66IO95YKo6IO95o6n5Yi25Zmo5Z+65LqO6LCD5bqm6ZyA6KaB77yM5Y+v5a6e546w5Y+M5ZCR5LqkL+ebtOa1geeUteeahOi9rOaNogo8L3A+wRQ8aW1nIHNyYz0iL0Fzc2V0cy9Tb2xhci92NC9pbWcvT3duZXJzL1V0aWxpdHlQbGFudE93bmVycy9zbWFydF82LnBuZyIgY2xhc3M9ImRpZ19zdG1fcmlnaHRfaW1nIiAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkaWdfcGFwYXcwIGRpZ19wYXBhd193cmFwIGJ1YmJsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iL0Fzc2V0cy9Tb2xhci92NC9pbWcvT3duZXJzL1V0aWxpdHlQbGFudE93bmVycy9wYXBhdzEucG5nIiBhbHQ9IiIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRpZ19wYXBhdzEgZGlnX3BhcGF3X3dyYXAgYnViYmxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSIvQXNzZXRzL1NvbGFyL3Y0L2ltZy9Pd25lcnMvVXRpbGl0eVBsYW50T3duZXJzL3BhcGF3MS5wbmciIGFsdD0iIiAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGlnX3BhcGF3MiBkaWdfcGFwYXdfd3JhcCBidWJibGUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Ii9Bc3NldHMvU29sYXIvdjQvaW1nL093bmVycy9VdGlsaXR5UGxhbnRPd25lcnMvcGFwYXcxLnBuZyIgYWx0PSIiIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkaWdfcGFwYXczIGRpZ19wYXBhd193cmFwIGJ1YmJsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iL0Fzc2V0cy9Tb2xhci92NC9pbWcvT3duZXJzL1V0aWxpdHlQbGFudE93bmVycy9wYXBhdzEucG5nIiBhbHQ9IiIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRpZ19wYXBhdzQgZGlnX3BhcGF3X3dyYXAgYnViYmxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSIvQXNzZXRzL1NvbGFyL3Y0L2ltZy9Pd25lcnMvVXRpbGl0eVBsYW50T3duZXJzL3BhcGF3Mi5wbmciIGFsdD0iIiAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGlnX3BhcGF3NSBkaWdfcGFwYXdfd3JhcCBidWJibGUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Ii9Bc3NldHMvU29sYXIvdjQvaW1nL093bmVycy9VdGlsaXR5UGxhbnRPd25lcnMvcGFwYXcyLnBuZyIgYWx0PSIiIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkaWdfcGFwYXc2IGRpZ19wYXBhd193cmFwIGJ1YmJsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iL0Fzc2V0cy9Tb2xhci92NC9pbWcvT3duZXJzL1V0aWxpdHlQbGFudE93bmVycy9wYXBhdzEucG5nIiBhbHQ9IiIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRpZ19wYXBhdzcgZGlnX3BhcGF3X3dyYXAgYnViYmxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSIvQXNzZXRzL1NvbGFyL3Y0L2ltZy9Pd25lcnMvVXRpbGl0eVBsYW50T3duZXJzL3BhcGF3Mi5wbmciIGFsdD0iIiAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGlnX3BhcGF3OCBkaWdfcGFwYXdfd3JhcCBidWJibGUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Ii9Bc3NldHMvU29sYXIvdjQvaW1nL093bmVycy9VdGlsaXR5UGxhbnRPd25lcnMvcGFwYXcxLnBuZyIgYWx0PSIiIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkaWdfcGFwYXc5IGRpZ19wYXBhd193cmFwIGJ1YmJsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iL0Fzc2V0cy9Tb2xhci92NC9pbWcvT3duZXJzL1V0aWxpdHlQbGFudE93bmVycy9wYXBhdzEucG5nIiBhbHQ9IiIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRpZ19zdG1fdmVydGljYWxfYmFyIj48L2Rpdj5kAgIPZBYCZg8VBIUBPGRpdiBjbGFzcz0iZGlnX3N0bV9MdGl0bGUiPjxzcGFuIGNsYXNzPSJkaWdfc3RtX2dyYWRpZW50Ij7mmbrog708L3NwYW4+PHNwYW4gY2xhc3M9ImRpZ19zdG1faW5uZXJ0aXRsZSI+5a2Q6Zi15o6n5Yi25ZmoPC9zcGFuPjwvZGl2PgBuPHAgY2xhc3M9ImRpZ19zdG1fc3ViRGVzYyI+5pm66IO95a2Q6Zi15o6n5Yi25Zmo5pSv5oyB5YKo6IO955S156uZ5LiA6ZSu5byA5bGA77yM56iz5a6a5Y+v6Z2g5Lyg6L6T5pWw5o2uCjwvcD6vATxpbWcgc3JjPSIvQXNzZXRzL1NvbGFyL3Y0L2ltZy9Pd25lcnMvVXRpbGl0eVBsYW50T3duZXJzL3NtYXJ0XzIucG5nIiBjbGFzcz0iZGlnX3N0bV9yaWdodF9pbWciIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRpZ19zdG1fdmVydGljYWxfYmFyIj48L2Rpdj5kAgMPZBYCZg8VBIgBPGRpdiBjbGFzcz0iZGlnX3N0bV9MdGl0bGUiPjxzcGFuIGNsYXNzPSJkaWdfc3RtX2dyYWRpZW50Ij7mmbrog708L3NwYW4+PHNwYW4gY2xhc3M9ImRpZ19zdG1faW5uZXJ0aXRsZSI+5YWJ5LyP566h55CG57O757ufPC9zcGFuPjwvZGl2PgCMATxwIGNsYXNzPSJkaWdfc3RtX3N1YkRlc2MiPuaZuuiDveWFieS8j+euoeeQhuezu+e7n+WunueOsOWCqOiDveezu+e7n+OAgeeUteaxoOewh+OAgeeUteaxoOWMheOAgeeUteiKr+Wbm+e6p+ebkeaOp++8jOWNj+WKqeeyvue7hueuoeeQhgo8L3A+YjxpbWcgc3JjPSIvQXNzZXRzL1NvbGFyL3Y0L2ltZy9Pd25lcnMvVXRpbGl0eVBsYW50T3duZXJzL3NtYXJ0XzQucG5nIiBjbGFzcz0iZGlnX3N0bV9yaWdodF9pbWciIC8+ZAIDD2QWAmYPZBYCZg9kFgJmDxYCHwICBBYIZg9kFgJmDxUEO1NtYXJ0IFN0cmluZyBFbmVyZ3kgU3RvcmFnZSBTb2x1dGlvbiArIEVuZ2luZWVyaW5nIFNlcnZpY2VzAAzlt6XnqIvmnI3liqFgIDxwPuiuvuWkh+WuieijheOAgeW5tue9keiwg+ivleOAgeWOn+WOgumqjOaUtuetieS4k+S4muaMh+WvvO+8jOinhOiMg+S9nOS4mu+8jOS/nemanOi0qOmHjwo8L3A+ZAIBD2QWAmYPFQQ6U21hcnQgU3RyaW5nIEVuZXJneSBTdG9yYWdlIFNvbHV0aW9uICsgTWFpbnRlbmFuY2Ugc2VydmljZQAM57u05L+d5pyN5YqhbCA8cD7ov5znqIvpl67popjlpITnkIbjgIHmioDmnK/mlK/mjIHjgIHlpIfku7bmnI3liqHnrYnkuJPkuJrov5Dnu7TvvIzkv53pmpzorr7lpIflronlhajvvIzkvJjljJbmgKfog70KPC9wPmQCAg9kFgJmDxUEO1NtYXJ0IFN0cmluZyBFbmVyZ3kgU3RvcmFnZSBTb2x1dGlvbiArIFZhbHVlLWFkZGVkIHNlcnZpY2VzAAzlop7lgLzmnI3liqF+IDxwPueOsOWcuumXrumimOWkhOeQhuOAgeaVhemanOS7tuabtOaNouOAgemihOmYsuaAp+W3oeajgOe7tOaKpOetie+8jOS4u+WKqOivhuWIq+ezu+e7n+WBpeW6t+eKtuWGte+8jOmZjeS9juWBnOacuumjjumZqQo8L3A+ZAIDD2QWAmYPFQQ4U21hcnQgU3RyaW5nIEVuZXJneSBTdG9yYWdlIFNvbHV0aW9uICsgVHJhaW5pbmcgc2VydmljZXMADOWfueiureacjeWKoUIgPHA+5YKo6IO95oqA5pyv44CB566h55CG5Z+56K6t562J77yM5Yqp5Yqb5LyB5Lia5Lq65omN5Z+55YW7CjwvcD5kAgQPZBYCZg9kFgICAQ8WAh8CAgcWDmYPZBYEAgEPZBYCZg8VAwtkaWdfdnNfaW1nMUIvLS9tZWRpYS9Tb2xhclY0L2ltYWdlcy9Pd25lcnMvVXRpbGl0eVBsYW50T3duZXJzL2ltZ19mbG9vcjZfMS5wbmcO55S156uZ5Lia5Li7LTJkAgMPFgIfA2gWAmYPFQEAZAIBD2QWBAIBD2QWAmYPFQMLZGlnX3ZzX2ltZzJCLy0vbWVkaWEvU29sYXJWNC9pbWFnZXMvT3duZXJzL1V0aWxpdHlQbGFudE93bmVycy9pbWdfZmxvb3I2XzIucG5nDueUteermeS4muS4uy0xZAIDDxYCHwNoFgJmDxUBAGQCAg9kFgQCAQ8WAh8DaBYCZg8VAwtkaWdfdnNfaW1nMwAGSHVhd2VpZAIDD2QWAmYPFQFtLy0vbWVkaWEvU29sYXJWNC9pbWFnZXMvT3duZXJzL1V0aWxpdHlQbGFudE93bmVycy91cGRhdGUvdXRpbGl0eS1wbGFudC1vd25lcnMtU3VjY2Vzc2Z1bC1TdG9yaWVzLXZpZGVvLXYxLm1wNGQCAw9kFgQCAQ9kFgJmDxUDC2RpZ192c19pbWc0Qi8tL21lZGlhL1NvbGFyVjQvaW1hZ2VzL093bmVycy9VdGlsaXR5UGxhbnRPd25lcnMvaW1nX2Zsb29yNl80LnBuZw7nlLXnq5nkuJrkuLstM2QCAw8WAh8DaBYCZg8VAQBkAgQPZBYEAgEPZBYCZg8VAwtkaWdfdnNfaW1nNUIvLS9tZWRpYS9Tb2xhclY0L2ltYWdlcy9Pd25lcnMvVXRpbGl0eVBsYW50T3duZXJzL2ltZ19mbG9vcjZfNS5wbmcO55S156uZ5Lia5Li7LTZkAgMPFgIfA2gWAmYPFQEAZAIFD2QWBAIBD2QWAmYPFQMLZGlnX3ZzX2ltZzZCLy0vbWVkaWEvU29sYXJWNC9pbWFnZXMvT3duZXJzL1V0aWxpdHlQbGFudE93bmVycy9pbWdfZmxvb3I2XzYucG5nDueUteermeS4muS4uy01ZAIDDxYCHwNoFgJmDxUBAGQCBg9kFgQCAQ9kFgJmDxUDC2RpZ192c19pbWc3Qi8tL21lZGlhL1NvbGFyVjQvaW1hZ2VzL093bmVycy9VdGlsaXR5UGxhbnRPd25lcnMvaW1nX2Zsb29yNl83LnBuZw7nlLXnq5nkuJrkuLstNGQCAw8WAh8DaBYCZg8VAQBkAgUPZBYCZg9kFgJmD2QWCAICDxYCHwICBRYKZg9kFgRmDxUBGOWFs+S6juWNjuS4uuaZuuiDveWFieS8j2QCAQ8WAh8CAgUWCgIBD2QWAmYPFQQNL2NuL25ld3Mtcm9vbQD6BHRyeSB7IHdpbmRvdy5od2EoJ3RyYWNrU3RydWN0RXZlbnQnLCB7IHVlbV9pZDogJ1A4MUQ0NDhDQkZDQTIyRl9DODFERTZCRjlBRTlGMDInLCB1ZW1fbGFiZWw6ICfngrnlh7sg6aG16ISaLeaWsOmXu+WKqOaAgScsfSk7IH0gY2F0Y2ggKGUpIHt9O3RyeSB7ICAgICBndGFnKCdldmVudCcsJ0JvdHRvbV9OYXZpZ2F0aW9uJyx7J1NpdGVfQ291bnRyeV9Db2RlX0gnOiQoJ2h0bWwnKS5hdHRyKCdkYXRhLXJlZ2lvbicpLnJlcGxhY2UoL1svXS9nLCAnJykudG9VcHBlckNhc2UoKSwnZXZlbnRDYXRlZ29yeSc6ZG9jdW1lbnQubG9jYXRpb24ucGF0aG5hbWUsJ2V2ZW50QWN0aW9uJzonQm90dG9tX05hdmlnYXRpb24nLCAnZXZlbnRMYWJlbCc6ICdBYm91dCBGdXNpb25Tb2xhcicrJysnKydOZXdzJysnKycrKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLnJlcGxhY2UoL1wvJC8sICcnKX0pIH0gY2F0Y2ggKGVycm9yKSB7aWYgKGVycm9yLm1lc3NhZ2UgPT09ICdndGFnIGlzIG5vdCBkZWZpbmVkJykge2NvbnNvbGUubG9nKCdHb29nbGUgQW5hbHl0aWNzIGlzIG5vdCBhdmFpbGFibGUuIEV2ZW50IHRyYWNraW5nIGlzIGRpc2FibGVkLicpO30gZWxzZSB7dGhyb3cgZXJyb3I7fX0M5paw6Ze75Yqo5oCBZAICD2QWAmYPFQQPL2NuL2V2ZW50cy1saXN0APsEdHJ5IHsgd2luZG93Lmh3YSgndHJhY2tTdHJ1Y3RFdmVudCcsIHsgdWVtX2lkOiAnUDgxRDQ0OENCRkNBMjJGX0M4MURFNkJGNjg1QkVFMicsIHVlbV9sYWJlbDogJ+eCueWHuyDpobXohJot5bGV5Lya5rS75YqoJyx9KTsgfSBjYXRjaCAoZSkge307dHJ5IHsgICAgZ3RhZygnZXZlbnQnLCdCb3R0b21fTmF2aWdhdGlvbicseydTaXRlX0NvdW50cnlfQ29kZV9IJzokKCdodG1sJykuYXR0cignZGF0YS1yZWdpb24nKS5yZXBsYWNlKC9bL10vZywgJycpLnRvVXBwZXJDYXNlKCksJ2V2ZW50Q2F0ZWdvcnknOmRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lLCdldmVudEFjdGlvbic6J0JvdHRvbV9OYXZpZ2F0aW9uJywgJ2V2ZW50TGFiZWwnOiAnQWJvdXQgRnVzaW9uU29sYXInKycrJysnRXZlbnRzJysnKycrKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLnJlcGxhY2UoL1wvJC8sICcnKX0pIH0gY2F0Y2ggKGVycm9yKSB7aWYgKGVycm9yLm1lc3NhZ2UgPT09ICdndGFnIGlzIG5vdCBkZWZpbmVkJykge2NvbnNvbGUubG9nKCdHb29nbGUgQW5hbHl0aWNzIGlzIG5vdCBhdmFpbGFibGUuIEV2ZW50IHRyYWNraW5nIGlzIGRpc2FibGVkLicpO30gZWxzZSB7dGhyb3cgZXJyb3I7fX0M5bGV5Lya5rS75YqoZAIDD2QWAmYPFQQTL2NuL3N1Y2Nlc3Mtc3RvcmllcwCGBXRyeSB7IHdpbmRvdy5od2EoJ3RyYWNrU3RydWN0RXZlbnQnLCB7IHVlbV9pZDogJ1A4MUQ0NDhDQkZDQTIyRl9DODFERTZCRjYwMEM2QTknLCB1ZW1fbGFiZWw6ICfngrnlh7sg6aG16ISaLeaIkOWKn+aVheS6iycsIH0pOyB9IGNhdGNoIChlKSB7fTt0cnkgeyAgICAgZ3RhZygnZXZlbnQnLCdCb3R0b21fTmF2aWdhdGlvbicseydTaXRlX0NvdW50cnlfQ29kZV9IJzokKCdodG1sJykuYXR0cignZGF0YS1yZWdpb24nKS5yZXBsYWNlKC9bL10vZywgJycpLnRvVXBwZXJDYXNlKCksJ2V2ZW50Q2F0ZWdvcnknOmRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lLCdldmVudEFjdGlvbic6J0JvdHRvbV9OYXZpZ2F0aW9uJywgJ2V2ZW50TGFiZWwnOiAnQWJvdXQgRnVzaW9uU29sYXInKycrJysnU3VjY2VzcyBTdG9yaWVzJysnKycrKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLnJlcGxhY2UoL1wvJC8sICcnKX0pIH0gY2F0Y2ggKGVycm9yKSB7aWYgKGVycm9yLm1lc3NhZ2UgPT09ICdndGFnIGlzIG5vdCBkZWZpbmVkJykge2NvbnNvbGUubG9nKCdHb29nbGUgQW5hbHl0aWNzIGlzIG5vdCBhdmFpbGFibGUuIEV2ZW50IHRyYWNraW5nIGlzIGRpc2FibGVkLicpO30gZWxzZSB7dGhyb3cgZXJyb3I7fX0M5oiQ5Yqf5pWF5LqLZAIED2QWAmYPFQQkL2NuL2V2ZW50cy1saXN0L2NuLzIwMjMvcHVibGljYXRpb25zAIAFdHJ5IHsgd2luZG93Lmh3YSgndHJhY2tTdHJ1Y3RFdmVudCcsIHsgdWVtX2lkOiAnUDgxRDQ0OENCRkNBMjJGX0M4MURFNkJGQTdGRTkyNScsIHVlbV9sYWJlbDogJ+eCueWHuyDpobXohJot5Ye654mI54mpJywgfSk7IH0gY2F0Y2ggKGUpIHt9O3RyeSB7ICAgICBndGFnKCdldmVudCcsJ0JvdHRvbV9OYXZpZ2F0aW9uJyx7J1NpdGVfQ291bnRyeV9Db2RlX0gnOiQoJ2h0bWwnKS5hdHRyKCdkYXRhLXJlZ2lvbicpLnJlcGxhY2UoL1svXS9nLCAnJykudG9VcHBlckNhc2UoKSwnZXZlbnRDYXRlZ29yeSc6ZG9jdW1lbnQubG9jYXRpb24ucGF0aG5hbWUsJ2V2ZW50QWN0aW9uJzonQm90dG9tX05hdmlnYXRpb24nLCAnZXZlbnRMYWJlbCc6ICdBYm91dCBGdXNpb25Tb2xhcicrJysnKydQdWJsaWNhdGlvbnMnKycrJysod2luZG93LmxvY2F0aW9uLm9yaWdpbiArIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkucmVwbGFjZSgvXC8kLywgJycpfSkgfSBjYXRjaCAoZXJyb3IpIHtpZiAoZXJyb3IubWVzc2FnZSA9PT0gJ2d0YWcgaXMgbm90IGRlZmluZWQnKSB7Y29uc29sZS5sb2coJ0dvb2dsZSBBbmFseXRpY3MgaXMgbm90IGF2YWlsYWJsZS4gRXZlbnQgdHJhY2tpbmcgaXMgZGlzYWJsZWQuJyk7fSBlbHNlIHt0aHJvdyBlcnJvcjt9fQnlh7rniYjnialkAgUPZBYCZg8VBA4vY24vbmV3c2xldHRlcgCBBXRyeSB7IHdpbmRvdy5od2EoJ3RyYWNrU3RydWN0RXZlbnQnLCB7IHVlbV9pZDogJ1A4MUQ0NDhDQkZDQTIyRl9DODFERTZCRjkyRDQwMzknLCB1ZW1fbGFiZWw6ICfngrnlh7sg6aG16ISaLemCruS7tuiuoumYhScsIH0pOyB9IGNhdGNoIChlKSB7fTt0cnkgeyAgICAgZ3RhZygnZXZlbnQnLCdCb3R0b21fTmF2aWdhdGlvbicseydTaXRlX0NvdW50cnlfQ29kZV9IJzokKCdodG1sJykuYXR0cignZGF0YS1yZWdpb24nKS5yZXBsYWNlKC9bL10vZywgJycpLnRvVXBwZXJDYXNlKCksJ2V2ZW50Q2F0ZWdvcnknOmRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lLCdldmVudEFjdGlvbic6J0JvdHRvbV9OYXZpZ2F0aW9uJywgJ2V2ZW50TGFiZWwnOiAnQWJvdXQgRnVzaW9uU29sYXInKycrJysnTmV3c2xldHRlcicrJysnKyh3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKS5yZXBsYWNlKC9cLyQvLCAnJyl9KSB9IGNhdGNoIChlcnJvcikge2lmIChlcnJvci5tZXNzYWdlID09PSAnZ3RhZyBpcyBub3QgZGVmaW5lZCcpIHtjb25zb2xlLmxvZygnR29vZ2xlIEFuYWx5dGljcyBpcyBub3QgYXZhaWxhYmxlLiBFdmVudCB0cmFja2luZyBpcyBkaXNhYmxlZC4nKTt9IGVsc2Uge3Rocm93IGVycm9yO319DOmCruS7tuiuoumYhWQCAQ9kFgRmDxUBFeS6p+WTgSAmIOino+WGs+aWueahiGQCAQ8WAh8CAgcWDgIBD2QWAmYPFQQdL2NuL3Byb2Zlc3Npb25hbHMvcmVzaWRlbnRpYWwAnAV0cnkgeyB3aW5kb3cuaHdhKCd0cmFja1N0cnVjdEV2ZW50JywgeyB1ZW1faWQ6ICdQODFENDQ4Q0JGQ0EyMkZfQzgxREU2QkZDNjhBMUIxJywgdWVtX2xhYmVsOiAn54K55Ye7IOmhteiEmi3lrrbluq3nu7/nlLUnLCB9KTsgfSBjYXRjaCAoZSkge307dHJ5IHsgICAgIGd0YWcoJ2V2ZW50JywnQm90dG9tX05hdmlnYXRpb24nLHsnU2l0ZV9Db3VudHJ5X0NvZGVfSCc6JCgnaHRtbCcpLmF0dHIoJ2RhdGEtcmVnaW9uJykucmVwbGFjZSgvWy9dL2csICcnKS50b1VwcGVyQ2FzZSgpLCdldmVudENhdGVnb3J5Jzpkb2N1bWVudC5sb2NhdGlvbi5wYXRobmFtZSwnZXZlbnRBY3Rpb24nOidCb3R0b21fTmF2aWdhdGlvbicsICdldmVudExhYmVsJzogJ1Byb2R1Y3RzICYgU29sdXRpb24nKycrJysnUmVzaWRlbnRpYWwgU21hcnQgUFYgJiBFU1MgU29sdXRpb24nKycrJysod2luZG93LmxvY2F0aW9uLm9yaWdpbiArIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkucmVwbGFjZSgvXC8kLywgJycpfSkgfSBjYXRjaCAoZXJyb3IpIHtpZiAoZXJyb3IubWVzc2FnZSA9PT0gJ2d0YWcgaXMgbm90IGRlZmluZWQnKSB7Y29uc29sZS5sb2coJ0dvb2dsZSBBbmFseXRpY3MgaXMgbm90IGF2YWlsYWJsZS4gRXZlbnQgdHJhY2tpbmcgaXMgZGlzYWJsZWQuJyk7fSBlbHNlIHt0aHJvdyBlcnJvcjt9fQzlrrbluq3nu7/nlLVkAgIPZBYCZg8VBBUvY24vcHJvZmVzc2lvbmFscy9jLWkAlAV0cnkgeyB3aW5kb3cuaHdhKCd0cmFja1N0cnVjdEV2ZW50JywgeyB1ZW1faWQ6ICdQODFENDQ4Q0JGQ0EyMkZfQzgxREU2QkY5MTdGQ0JGJywgdWVtX2xhYmVsOiAn54K55Ye7IOmhteiEmi3ooYzkuJrnu7/nlLUnLCB9KTsgfSBjYXRjaCAoZSkge307dHJ5IHsgICAgIGd0YWcoJ2V2ZW50JywnQm90dG9tX05hdmlnYXRpb24nLHsnU2l0ZV9Db3VudHJ5X0NvZGVfSCc6JCgnaHRtbCcpLmF0dHIoJ2RhdGEtcmVnaW9uJykucmVwbGFjZSgvWy9dL2csICcnKS50b1VwcGVyQ2FzZSgpLCdldmVudENhdGVnb3J5Jzpkb2N1bWVudC5sb2NhdGlvbi5wYXRobmFtZSwnZXZlbnRBY3Rpb24nOidCb3R0b21fTmF2aWdhdGlvbicsICdldmVudExhYmVsJzogJ1Byb2R1Y3RzICYgU29sdXRpb24nKycrJysnQyZJIFNtYXJ0IFBWICYgRVNTIFNvbHV0aW9uJysnKycrKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLnJlcGxhY2UoL1wvJC8sICcnKX0pIH0gY2F0Y2ggKGVycm9yKSB7aWYgKGVycm9yLm1lc3NhZ2UgPT09ICdndGFnIGlzIG5vdCBkZWZpbmVkJykge2NvbnNvbGUubG9nKCdHb29nbGUgQW5hbHl0aWNzIGlzIG5vdCBhdmFpbGFibGUuIEV2ZW50IHRyYWNraW5nIGlzIGRpc2FibGVkLicpO30gZWxzZSB7dGhyb3cgZXJyb3I7fX0M6KGM5Lia57u/55S1ZAIDD2QWAmYPFQQZL2NuL3Byb2Zlc3Npb25hbHMvdXRpbGl0eQCWBXRyeSB7IHdpbmRvdy5od2EoJ3RyYWNrU3RydWN0RXZlbnQnLCB7IHVlbV9pZDogJ1A4MUQ0NDhDQkZDQTIyRl9DODFERTZCRkMxMjk2OTknLCB1ZW1fbGFiZWw6ICfngrnlh7sg6aG16ISaLeaZuuiDveWFieS8j+eUteermScsfSk7IH0gY2F0Y2ggKGUpIHt9O3RyeSB7ICAgIGd0YWcoJ2V2ZW50JywnQm90dG9tX05hdmlnYXRpb24nLHsnU2l0ZV9Db3VudHJ5X0NvZGVfSCc6JCgnaHRtbCcpLmF0dHIoJ2RhdGEtcmVnaW9uJykucmVwbGFjZSgvWy9dL2csICcnKS50b1VwcGVyQ2FzZSgpLCdldmVudENhdGVnb3J5Jzpkb2N1bWVudC5sb2NhdGlvbi5wYXRobmFtZSwnZXZlbnRBY3Rpb24nOidCb3R0b21fTmF2aWdhdGlvbicsICdldmVudExhYmVsJzogJ1Byb2R1Y3RzICYgU29sdXRpb24nKycrJysnVXRpbGl0eSBTbWFydCBQViBTb2x1dGlvbicrJysnKyh3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKS5yZXBsYWNlKC9cLyQvLCAnJyl9KSB9IGNhdGNoIChlcnJvcikge2lmIChlcnJvci5tZXNzYWdlID09PSAnZ3RhZyBpcyBub3QgZGVmaW5lZCcpIHtjb25zb2xlLmxvZygnR29vZ2xlIEFuYWx5dGljcyBpcyBub3QgYXZhaWxhYmxlLiBFdmVudCB0cmFja2luZyBpcyBkaXNhYmxlZC4nKTt9IGVsc2Uge3Rocm93IGVycm9yO319EuaZuuiDveWFieS8j+eUteermWQCBA9kFgJmDxUEFS9jbi9wcm9mZXNzaW9uYWxzL2VzcwChBXRyeSB7IHdpbmRvdy5od2EoJ3RyYWNrU3RydWN0RXZlbnQnLCB7IHVlbV9pZDogJ1A4MUQ0NDhDQkZDQTIyRl9DODFERTZCRjk0MDdEQTInLCB1ZW1fbGFiZWw6ICfngrnlh7sg6aG16ISaLeaZuuiDvee7hOS4suW8j+WCqOiDvScsfSk7IH0gY2F0Y2ggKGUpIHt9O3RyeSB7ICAgIGd0YWcoJ2V2ZW50JywnQm90dG9tX05hdmlnYXRpb24nLHsnU2l0ZV9Db3VudHJ5X0NvZGVfSCc6JCgnaHRtbCcpLmF0dHIoJ2RhdGEtcmVnaW9uJykucmVwbGFjZSgvWy9dL2csICcnKS50b1VwcGVyQ2FzZSgpLCdldmVudENhdGVnb3J5Jzpkb2N1bWVudC5sb2NhdGlvbi5wYXRobmFtZSwnZXZlbnRBY3Rpb24nOidCb3R0b21fTmF2aWdhdGlvbicsICdldmVudExhYmVsJzogJ1Byb2R1Y3RzICYgU29sdXRpb24nKycrJysnVXRpbGl0eSBTbWFydCBTdHJpbmcgRVNTIFNvbHV0aW9uJysnKycrKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLnJlcGxhY2UoL1wvJC8sICcnKX0pIH0gY2F0Y2ggKGVycm9yKSB7aWYgKGVycm9yLm1lc3NhZ2UgPT09ICdndGFnIGlzIG5vdCBkZWZpbmVkJykge2NvbnNvbGUubG9nKCdHb29nbGUgQW5hbHl0aWNzIGlzIG5vdCBhdmFpbGFibGUuIEV2ZW50IHRyYWNraW5nIGlzIGRpc2FibGVkLicpO30gZWxzZSB7dGhyb3cgZXJyb3I7fX0V5pm66IO957uE5Liy5byP5YKo6IO9ZAIFD2QWAmYPFQQcL2NuL3Byb2Zlc3Npb25hbHMvbWljcm8tZ3JpZACSBXRyeSB7IHdpbmRvdy5od2EoJ3RyYWNrU3RydWN0RXZlbnQnLCB7IHVlbV9pZDogJ1A4MUQ0NDhDQkZDQTIyRl9DODFERTZCRjg1NjU0MUMnLCB1ZW1fbGFiZWw6ICfngrnlh7sg6aG16ISaLeaZuuiDveW+rue9kScsIH0pOyB9IGNhdGNoIChlKSB7fTt0cnkgeyAgICAgZ3RhZygnZXZlbnQnLCdCb3R0b21fTmF2aWdhdGlvbicseydTaXRlX0NvdW50cnlfQ29kZV9IJzokKCdodG1sJykuYXR0cignZGF0YS1yZWdpb24nKS5yZXBsYWNlKC9bL10vZywgJycpLnRvVXBwZXJDYXNlKCksJ2V2ZW50Q2F0ZWdvcnknOmRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lLCdldmVudEFjdGlvbic6J0JvdHRvbV9OYXZpZ2F0aW9uJywgJ2V2ZW50TGFiZWwnOiAnUHJvZHVjdHMgJiBTb2x1dGlvbicrJysnKydTbWFydCBNaWNyby1ncmlkIFNvbHV0aW9uJysnKycrKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLnJlcGxhY2UoL1wvJC8sICcnKX0pIH0gY2F0Y2ggKGVycm9yKSB7aWYgKGVycm9yLm1lc3NhZ2UgPT09ICdndGFnIGlzIG5vdCBkZWZpbmVkJykge2NvbnNvbGUubG9nKCdHb29nbGUgQW5hbHl0aWNzIGlzIG5vdCBhdmFpbGFibGUuIEV2ZW50IHRyYWNraW5nIGlzIGRpc2FibGVkLicpO30gZWxzZSB7dGhyb3cgZXJyb3I7fX0M5pm66IO95b6u572RZAIGD2QWAmYPFQQeL2NuL3Byb2Zlc3Npb25hbHMvYWxsLXByb2R1Y3RzAIQFdHJ5IHsgd2luZG93Lmh3YSgndHJhY2tTdHJ1Y3RFdmVudCcsIHsgdWVtX2lkOiAnUDgxRDQ0OENCRkNBMjJGX0M4MURFNkJGODJGQUM5NCcsIHVlbV9sYWJlbDogJ+eCueWHuyDpobXohJot5omA5pyJ5Lqn5ZOBJyx9KTsgfSBjYXRjaCAoZSkge307dHJ5IHsgICAgIGd0YWcoJ2V2ZW50JywnQm90dG9tX05hdmlnYXRpb24nLHsnU2l0ZV9Db3VudHJ5X0NvZGVfSCc6JCgnaHRtbCcpLmF0dHIoJ2RhdGEtcmVnaW9uJykucmVwbGFjZSgvWy9dL2csICcnKS50b1VwcGVyQ2FzZSgpLCdldmVudENhdGVnb3J5Jzpkb2N1bWVudC5sb2NhdGlvbi5wYXRobmFtZSwnZXZlbnRBY3Rpb24nOidCb3R0b21fTmF2aWdhdGlvbicsICdldmVudExhYmVsJzogJ1Byb2R1Y3RzICYgU29sdXRpb24nKycrJysnQWxsIFByb2R1Y3RzJysnKycrKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLnJlcGxhY2UoL1wvJC8sICcnKX0pIH0gY2F0Y2ggKGVycm9yKSB7aWYgKGVycm9yLm1lc3NhZ2UgPT09ICdndGFnIGlzIG5vdCBkZWZpbmVkJykge2NvbnNvbGUubG9nKCdHb29nbGUgQW5hbHl0aWNzIGlzIG5vdCBhdmFpbGFibGUuIEV2ZW50IHRyYWNraW5nIGlzIGRpc2FibGVkLicpO30gZWxzZSB7dGhyb3cgZXJyb3I7fX0M5omA5pyJ5Lqn5ZOBZAIHD2QWAmYPFQQdL2NuL3Byb2Zlc3Npb25hbHMvU21hcnREZXNpZ24AjgV0cnkgeyB3aW5kb3cuaHdhKCd0cmFja1N0cnVjdEV2ZW50JywgeyB1ZW1faWQ6ICdQODFENDQ4Q0JGQ0EyMkZfQzgxREU2QkZBNTBCRkEyJywgdWVtX2xhYmVsOiAn54K55Ye7IOmhteiEmi3mmbrog73orr7orqHlt6XlhbcnLCB9KTsgfSBjYXRjaCAoZSkge307dHJ5IHsgICAgIGd0YWcoJ2V2ZW50JywnQm90dG9tX05hdmlnYXRpb24nLHsnU2l0ZV9Db3VudHJ5X0NvZGVfSCc6JCgnaHRtbCcpLmF0dHIoJ2RhdGEtcmVnaW9uJykucmVwbGFjZSgvWy9dL2csICcnKS50b1VwcGVyQ2FzZSgpLCdldmVudENhdGVnb3J5Jzpkb2N1bWVudC5sb2NhdGlvbi5wYXRobmFtZSwnZXZlbnRBY3Rpb24nOidCb3R0b21fTmF2aWdhdGlvbicsICdldmVudExhYmVsJzogJ1Byb2R1Y3RzICYgU29sdXRpb24nKycrJysnU21hcnREZXNpZ24gMi4wJysnKycrKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLnJlcGxhY2UoL1wvJC8sICcnKX0pIH0gY2F0Y2ggKGVycm9yKSB7aWYgKGVycm9yLm1lc3NhZ2UgPT09ICdndGFnIGlzIG5vdCBkZWZpbmVkJykge2NvbnNvbGUubG9nKCdHb29nbGUgQW5hbHl0aWNzIGlzIG5vdCBhdmFpbGFibGUuIEV2ZW50IHRyYWNraW5nIGlzIGRpc2FibGVkLicpO30gZWxzZSB7dGhyb3cgZXJyb3I7fX0S5pm66IO96K6+6K6h5bel5YW3ZAICD2QWBGYPFQEM5ZCI5L2c5LyZ5Ly0ZAIBDxYCHwICBBYIAgEPZBYCZg8VBCEvY24vcGFydG5lcnMvcGFydG5lci1pbnRyb2R1Y3Rpb24AgQV0cnkgeyB3aW5kb3cuaHdhKCd0cmFja1N0cnVjdEV2ZW50JywgeyB1ZW1faWQ6ICdQODFENDQ4Q0JGQ0EyMkZfQzgxREU2QkZBQTg5NTdGJywgdWVtX2xhYmVsOiAn54K55Ye7IOmhteiEmi3kvJnkvLTku4vnu40nLH0pOyB9IGNhdGNoIChlKSB7fTt0cnkgeyAgICAgZ3RhZygnZXZlbnQnLCdCb3R0b21fTmF2aWdhdGlvbicseydTaXRlX0NvdW50cnlfQ29kZV9IJzokKCdodG1sJykuYXR0cignZGF0YS1yZWdpb24nKS5yZXBsYWNlKC9bL10vZywgJycpLnRvVXBwZXJDYXNlKCksJ2V2ZW50Q2F0ZWdvcnknOmRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lLCdldmVudEFjdGlvbic6J0JvdHRvbV9OYXZpZ2F0aW9uJywgJ2V2ZW50TGFiZWwnOiAnUGFydG5lcnMnKycrJysnUGFydG5lciBJbnRyb2R1Y3Rpb24nKycrJysod2luZG93LmxvY2F0aW9uLm9yaWdpbiArIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkucmVwbGFjZSgvXC8kLywgJycpfSkgfSBjYXRjaCAoZXJyb3IpIHtpZiAoZXJyb3IubWVzc2FnZSA9PT0gJ2d0YWcgaXMgbm90IGRlZmluZWQnKSB7Y29uc29sZS5sb2coJ0dvb2dsZSBBbmFseXRpY3MgaXMgbm90IGF2YWlsYWJsZS4gRXZlbnQgdHJhY2tpbmcgaXMgZGlzYWJsZWQuJyk7fSBlbHNlIHt0aHJvdyBlcnJvcjt9fQzkvJnkvLTku4vnu41kAgIPZBYCZg8VBC5odHRwczovL3BhcnRuZXIuaHVhd2VpLmNvbS9lY3ByaS8jLz9sYW5nPXpoX0NOBl9ibGFua/0EdHJ5IHsgd2luZG93Lmh3YSgndHJhY2tTdHJ1Y3RFdmVudCcsIHsgdWVtX2lkOiAnUDgxRDQ0OENCRkNBMjJGX0M4MURFNkJGOTA4OTU5MicsIHVlbV9sYWJlbDogJ+eCueWHuyDpobXohJot5oiQ5Li65LyZ5Ly0JywgfSk7IH0gY2F0Y2ggKGUpIHt9O3RyeSB7ICAgIGd0YWcoJ2V2ZW50JywnQm90dG9tX05hdmlnYXRpb24nLHsnU2l0ZV9Db3VudHJ5X0NvZGVfSCc6JCgnaHRtbCcpLmF0dHIoJ2RhdGEtcmVnaW9uJykucmVwbGFjZSgvWy9dL2csICcnKS50b1VwcGVyQ2FzZSgpLCdldmVudENhdGVnb3J5Jzpkb2N1bWVudC5sb2NhdGlvbi5wYXRobmFtZSwnZXZlbnRBY3Rpb24nOidCb3R0b21fTmF2aWdhdGlvbicsICdldmVudExhYmVsJzogJ1BhcnRuZXJzJysnKycrJ0JlY29tZSBhIFBhcnRuZXInKycrJysod2luZG93LmxvY2F0aW9uLm9yaWdpbiArIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkucmVwbGFjZSgvXC8kLywgJycpfSkgfSBjYXRjaCAoZXJyb3IpIHtpZiAoZXJyb3IubWVzc2FnZSA9PT0gJ2d0YWcgaXMgbm90IGRlZmluZWQnKSB7Y29uc29sZS5sb2coJ0dvb2dsZSBBbmFseXRpY3MgaXMgbm90IGF2YWlsYWJsZS4gRXZlbnQgdHJhY2tpbmcgaXMgZGlzYWJsZWQuJyk7fSBlbHNlIHt0aHJvdyBlcnJvcjt9fQzmiJDkuLrkvJnkvLRkAgMPZBYCZg8VBB8vY24vcGFydG5lcnMvbWFwP3R5cGU9aW5zdGFsbGVyAP8EdHJ5IHsgd2luZG93Lmh3YSgndHJhY2tTdHJ1Y3RFdmVudCcsIHsgdWVtX2lkOiAnUDgxRDQ0OENCRkNBMjJGX0M4MURFNkJGQTVEODg0NycsIHVlbV9sYWJlbDogJ+eCueWHuyDpobXohJot5a+75om+5a6J6KOF5ZWGJyx9KTsgfSBjYXRjaCAoZSkge307dHJ5IHsgICBndGFnKCdldmVudCcsJ0JvdHRvbV9OYXZpZ2F0aW9uJyx7J1NpdGVfQ291bnRyeV9Db2RlX0gnOiQoJ2h0bWwnKS5hdHRyKCdkYXRhLXJlZ2lvbicpLnJlcGxhY2UoL1svXS9nLCAnJykudG9VcHBlckNhc2UoKSwnZXZlbnRDYXRlZ29yeSc6ZG9jdW1lbnQubG9jYXRpb24ucGF0aG5hbWUsJ2V2ZW50QWN0aW9uJzonQm90dG9tX05hdmlnYXRpb24nLCAnZXZlbnRMYWJlbCc6ICdQYXJ0bmVycycrJysnKydGaW5kIGFuIEluc3RhbGxlcicrJysnKyh3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKS5yZXBsYWNlKC9cLyQvLCAnJyl9KSB9IGNhdGNoIChlcnJvcikge2lmIChlcnJvci5tZXNzYWdlID09PSAnZ3RhZyBpcyBub3QgZGVmaW5lZCcpIHtjb25zb2xlLmxvZygnR29vZ2xlIEFuYWx5dGljcyBpcyBub3QgYXZhaWxhYmxlLiBFdmVudCB0cmFja2luZyBpcyBkaXNhYmxlZC4nKTt9IGVsc2Uge3Rocm93IGVycm9yO319D+Wvu+aJvuWuieijheWVhmQCBA9kFgJmDxUEMGh0dHBzOi8vZGlnaXRhbHBvd2VyLmh1YXdlaS5jb20vcGFydG5lciMvY24vbWFpbgZfYmxhbmv8BHRyeSB7IHdpbmRvdy5od2EoJ3RyYWNrU3RydWN0RXZlbnQnLCB7IHVlbV9pZDogJ1A4MUQ0NDhDQkZDQTIyRl9DODFERTZCRkM5MDJGQTUnLCB1ZW1fbGFiZWw6ICfngrnlh7sg6aG16ISaLVBvd2VyLVBhcnRuZXInLCB9KTsgfSBjYXRjaCAoZSkge307dHJ5IHsgICAgIGd0YWcoJ2V2ZW50JywnQm90dG9tX05hdmlnYXRpb24nLHsnU2l0ZV9Db3VudHJ5X0NvZGVfSCc6JCgnaHRtbCcpLmF0dHIoJ2RhdGEtcmVnaW9uJykucmVwbGFjZSgvWy9dL2csICcnKS50b1VwcGVyQ2FzZSgpLCdldmVudENhdGVnb3J5Jzpkb2N1bWVudC5sb2NhdGlvbi5wYXRobmFtZSwnZXZlbnRBY3Rpb24nOidCb3R0b21fTmF2aWdhdGlvbicsICdldmVudExhYmVsJzogJ1BhcnRuZXJzJysnKycrJ1Bvd2VyLVBhcnRuZXInKycrJysod2luZG93LmxvY2F0aW9uLm9yaWdpbiArIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkucmVwbGFjZSgvXC8kLywgJycpfSkgfSBjYXRjaCAoZXJyb3IpIHtpZiAoZXJyb3IubWVzc2FnZSA9PT0gJ2d0YWcgaXMgbm90IGRlZmluZWQnKSB7Y29uc29sZS5sb2coJ0dvb2dsZSBBbmFseXRpY3MgaXMgbm90IGF2YWlsYWJsZS4gRXZlbnQgdHJhY2tpbmcgaXMgZGlzYWJsZWQuJyk7fSBlbHNlIHt0aHJvdyBlcnJvcjt9fQ1Qb3dlci1QYXJ0bmVyZAIDD2QWBGYPFQEP5pyN5Yqh5LiO5pSv5oyBZAIBDxYCHwICBhYMAgEPZBYCZg8VBBcvY24vc2VydmljZS1zdXBwb3J0L3RzYwCVBXRyeSB7IHdpbmRvdy5od2EoJ3RyYWNrU3RydWN0RXZlbnQnLCB7IHVlbV9pZDogJ1A4MUQ0NDhDQkZDQTIyRl9DODFERTZCRkU4RTAxODcnLCB1ZW1fbGFiZWw6ICfngrnlh7sg6aG16ISaLeaKgOacr+aUr+aMgeS4reW/gycsIH0pOyB9IGNhdGNoIChlKSB7fTt0cnkgeyAgICAgZ3RhZygnZXZlbnQnLCdCb3R0b21fTmF2aWdhdGlvbicseydTaXRlX0NvdW50cnlfQ29kZV9IJzokKCdodG1sJykuYXR0cignZGF0YS1yZWdpb24nKS5yZXBsYWNlKC9bL10vZywgJycpLnRvVXBwZXJDYXNlKCksJ2V2ZW50Q2F0ZWdvcnknOmRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lLCdldmVudEFjdGlvbic6J0JvdHRvbV9OYXZpZ2F0aW9uJywgJ2V2ZW50TGFiZWwnOiAnU2VydmljZSAmIFN1cHBvcnQnKycrJysnVGVjaG5pY2FsIFN1cHBvcnQgQ2VudGVyJysnKycrKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLnJlcGxhY2UoL1wvJC8sICcnKX0pIH0gY2F0Y2ggKGVycm9yKSB7aWYgKGVycm9yLm1lc3NhZ2UgPT09ICdndGFnIGlzIG5vdCBkZWZpbmVkJykge2NvbnNvbGUubG9nKCdHb29nbGUgQW5hbHl0aWNzIGlzIG5vdCBhdmFpbGFibGUuIEV2ZW50IHRyYWNraW5nIGlzIGRpc2FibGVkLicpO30gZWxzZSB7dGhyb3cgZXJyb3I7fX0S5oqA5pyv5pSv5oyB5Lit5b+DZAICD2QWAmYPFQQ5aHR0cHM6Ly9kaWdpdGFscG93ZXIuaHVhd2VpLmNvbS9wb3dlci1tYXJrZXRpbmcvIy9jbi9ob21lBl9ibGFua4kFdHJ5IHsgd2luZG93Lmh3YSgndHJhY2tTdHJ1Y3RFdmVudCcsIHsgdWVtX2lkOiAnUDgxRDQ0OENCRkNBMjJGX0M4MURFNkJGQjU1Q0JCQicsIHVlbV9sYWJlbDogJ+eCueWHuyDpobXohJot6JCl6ZSA6LWE5paZ5Lit5b+DJywgfSk7IH0gY2F0Y2ggKGUpIHt9O3RyeSB7ICAgICBndGFnKCdldmVudCcsJ0JvdHRvbV9OYXZpZ2F0aW9uJyx7J1NpdGVfQ291bnRyeV9Db2RlX0gnOiQoJ2h0bWwnKS5hdHRyKCdkYXRhLXJlZ2lvbicpLnJlcGxhY2UoL1svXS9nLCAnJykudG9VcHBlckNhc2UoKSwnZXZlbnRDYXRlZ29yeSc6ZG9jdW1lbnQubG9jYXRpb24ucGF0aG5hbWUsJ2V2ZW50QWN0aW9uJzonQm90dG9tX05hdmlnYXRpb24nLCAnZXZlbnRMYWJlbCc6ICdTZXJ2aWNlICYgU3VwcG9ydCcrJysnKydNS1QgRG9jdW1lbnQnKycrJysod2luZG93LmxvY2F0aW9uLm9yaWdpbiArIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkucmVwbGFjZSgvXC8kLywgJycpfSkgfSBjYXRjaCAoZXJyb3IpIHtpZiAoZXJyb3IubWVzc2FnZSA9PT0gJ2d0YWcgaXMgbm90IGRlZmluZWQnKSB7Y29uc29sZS5sb2coJ0dvb2dsZSBBbmFseXRpY3MgaXMgbm90IGF2YWlsYWJsZS4gRXZlbnQgdHJhY2tpbmcgaXMgZGlzYWJsZWQuJyk7fSBlbHNlIHt0aHJvdyBlcnJvcjt9fRLokKXplIDotYTmlpnkuK3lv4NkAgMPZBYCZg8VBCJodHRwczovL3NvbGFyLmh1YXdlaS5jb20vY24vaW5mby8vBl9ibGFua40FdHJ5IHsgd2luZG93Lmh3YSgndHJhY2tTdHJ1Y3RFdmVudCcsIHsgdWVtX2lkOiAnUDgxRDQ0OENCRkNBMjJGX0M4MURFNkJGREM2QzMyQycsIHVlbV9sYWJlbDogJ+eCueWHuyDpobXohJot5Lqn5ZOB6LWE5paZ5Lit5b+DJywgfSk7IH0gY2F0Y2ggKGUpIHt9O3RyeSB7ICAgICBndGFnKCdldmVudCcsJ0JvdHRvbV9OYXZpZ2F0aW9uJyx7J1NpdGVfQ291bnRyeV9Db2RlX0gnOiQoJ2h0bWwnKS5hdHRyKCdkYXRhLXJlZ2lvbicpLnJlcGxhY2UoL1svXS9nLCAnJykudG9VcHBlckNhc2UoKSwnZXZlbnRDYXRlZ29yeSc6ZG9jdW1lbnQubG9jYXRpb24ucGF0aG5hbWUsJ2V2ZW50QWN0aW9uJzonQm90dG9tX05hdmlnYXRpb24nLCAnZXZlbnRMYWJlbCc6ICdTZXJ2aWNlICYgU3VwcG9ydCcrJysnKydQcm9kdWN0IERvY3VtZW50JysnKycrKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLnJlcGxhY2UoL1wvJC8sICcnKX0pIH0gY2F0Y2ggKGVycm9yKSB7aWYgKGVycm9yLm1lc3NhZ2UgPT09ICdndGFnIGlzIG5vdCBkZWZpbmVkJykge2NvbnNvbGUubG9nKCdHb29nbGUgQW5hbHl0aWNzIGlzIG5vdCBhdmFpbGFibGUuIEV2ZW50IHRyYWNraW5nIGlzIGRpc2FibGVkLicpO30gZWxzZSB7dGhyb3cgZXJyb3I7fX0S5Lqn5ZOB6LWE5paZ5Lit5b+DZAIED2QWAmYPFQQwaHR0cHM6Ly9jb21tdW5pdHkuc29sYXIuaHVhd2VpLmNvbS9jbi9pbmRleC5odG1sBl9ibGFua/oEdHJ5IHsgd2luZG93Lmh3YSgndHJhY2tTdHJ1Y3RFdmVudCcsIHsgdWVtX2lkOiAnUDgxRDQ0OENCRkNBMjJGX0M4MURFNkJGRUExMzA3MCcsIHVlbV9sYWJlbDogJ+eCueWHuyDpobXohJot56S+5Yy6JywgfSk7IH0gY2F0Y2ggKGUpIHt9O3RyeSB7ICAgICBndGFnKCdldmVudCcsJ0JvdHRvbV9OYXZpZ2F0aW9uJyx7J1NpdGVfQ291bnRyeV9Db2RlX0gnOiQoJ2h0bWwnKS5hdHRyKCdkYXRhLXJlZ2lvbicpLnJlcGxhY2UoL1svXS9nLCAnJykudG9VcHBlckNhc2UoKSwnZXZlbnRDYXRlZ29yeSc6ZG9jdW1lbnQubG9jYXRpb24ucGF0aG5hbWUsJ2V2ZW50QWN0aW9uJzonQm90dG9tX05hdmlnYXRpb24nLCAnZXZlbnRMYWJlbCc6ICdTZXJ2aWNlICYgU3VwcG9ydCcrJysnKydDb21tdW5pdHknKycrJysod2luZG93LmxvY2F0aW9uLm9yaWdpbiArIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkucmVwbGFjZSgvXC8kLywgJycpfSkgfSBjYXRjaCAoZXJyb3IpIHtpZiAoZXJyb3IubWVzc2FnZSA9PT0gJ2d0YWcgaXMgbm90IGRlZmluZWQnKSB7Y29uc29sZS5sb2coJ0dvb2dsZSBBbmFseXRpY3MgaXMgbm90IGF2YWlsYWJsZS4gRXZlbnQgdHJhY2tpbmcgaXMgZGlzYWJsZWQuJyk7fSBlbHNlIHt0aHJvdyBlcnJvcjt9fQbnpL7ljLpkAgUPZBYCZg8VBFNodHRwczovL2ZvcnVtLmh1YXdlaS5jb20vZW50ZXJwcmlzZS96aC9mb3J1bXMvNTgwODc5Nzk5Njc1NjYyMzM2LzU4MDg3OTgyMzA5MjQ2MTU2OAZfYmxhbmv2BHRyeSB7IHdpbmRvdy5od2EoJ3RyYWNrU3RydWN0RXZlbnQnLCB7IHVlbV9pZDogJ1A4MUQ0NDhDQkZDQTIyRl9DODFERTZCRkMwNkYwQkMnLCB1ZW1fbGFiZWw6ICfngrnlh7sg6aG16ISaLeiuuuWdmycsIH0pOyB9IGNhdGNoIChlKSB7fTt0cnkgeyAgICAgZ3RhZygnZXZlbnQnLCdCb3R0b21fTmF2aWdhdGlvbicseydTaXRlX0NvdW50cnlfQ29kZV9IJzokKCdodG1sJykuYXR0cignZGF0YS1yZWdpb24nKS5yZXBsYWNlKC9bL10vZywgJycpLnRvVXBwZXJDYXNlKCksJ2V2ZW50Q2F0ZWdvcnknOmRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lLCdldmVudEFjdGlvbic6J0JvdHRvbV9OYXZpZ2F0aW9uJywgJ2V2ZW50TGFiZWwnOiAnU2VydmljZSAmIFN1cHBvcnQnKycrJysnRm9ydW0nKycrJysod2luZG93LmxvY2F0aW9uLm9yaWdpbiArIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkucmVwbGFjZSgvXC8kLywgJycpfSkgfSBjYXRjaCAoZXJyb3IpIHtpZiAoZXJyb3IubWVzc2FnZSA9PT0gJ2d0YWcgaXMgbm90IGRlZmluZWQnKSB7Y29uc29sZS5sb2coJ0dvb2dsZSBBbmFseXRpY3MgaXMgbm90IGF2YWlsYWJsZS4gRXZlbnQgdHJhY2tpbmcgaXMgZGlzYWJsZWQuJyk7fSBlbHNlIHt0aHJvdyBlcnJvcjt9fQborrrlnZtkAgYPZBYCZg8VBGNodHRwczovL2RpZ2l0YWxwb3dlci5odWF3ZWkuY29tL3JvYm90Y2hhdC8jL2hvbWUvaW5kZXg/bGFuZz16aF9DTiZkb21haW49c21hcnRwdiZmcm9tX3RpdGxlX3poPTExMTcGX2JsYW5rhQV0cnkgeyB3aW5kb3cuaHdhKCd0cmFja1N0cnVjdEV2ZW50JywgeyB1ZW1faWQ6ICdQODFENDQ4Q0JGQ0EyMkZfQzgxREU2QkZCQzBDMDQ0JywgdWVtX2xhYmVsOiAn54K55Ye7IOmhteiEmi3lnKjnur/mlK/mjIEnLCB9KTsgfSBjYXRjaCAoZSkge307dHJ5IHsgICAgIGd0YWcoJ2V2ZW50JywnQm90dG9tX05hdmlnYXRpb24nLHsnU2l0ZV9Db3VudHJ5X0NvZGVfSCc6JCgnaHRtbCcpLmF0dHIoJ2RhdGEtcmVnaW9uJykucmVwbGFjZSgvWy9dL2csICcnKS50b1VwcGVyQ2FzZSgpLCdldmVudENhdGVnb3J5Jzpkb2N1bWVudC5sb2NhdGlvbi5wYXRobmFtZSwnZXZlbnRBY3Rpb24nOidCb3R0b21fTmF2aWdhdGlvbicsICdldmVudExhYmVsJzogJ1NlcnZpY2UgJiBTdXBwb3J0JysnKycrJ09ubGluZSBTdXBwb3J0JysnKycrKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLnJlcGxhY2UoL1wvJC8sICcnKX0pIH0gY2F0Y2ggKGVycm9yKSB7aWYgKGVycm9yLm1lc3NhZ2UgPT09ICdndGFnIGlzIG5vdCBkZWZpbmVkJykge2NvbnNvbGUubG9nKCdHb29nbGUgQW5hbHl0aWNzIGlzIG5vdCBhdmFpbGFibGUuIEV2ZW50IHRyYWNraW5nIGlzIGRpc2FibGVkLicpO30gZWxzZSB7dGhyb3cgZXJyb3I7fX0M5Zyo57q/5pSv5oyBZAIED2QWBGYPFQEM5b+r6YCf6ZO+5o6lZAIBDxYCHwICBRYKAgEPZBYCZg8VBBpodHRwczovL3d3dy5odWF3ZWkuY29tL2NuLwZfYmxhbmv/BHRyeSB7IHdpbmRvdy5od2EoJ3RyYWNrU3RydWN0RXZlbnQnLCB7IHVlbV9pZDogJ1A4MUQ0NDhDQkZDQTIyRl9DODFERTZDMDBDQzg2NEQnLCB1ZW1fbGFiZWw6ICfngrnlh7sg6aG16ISaLeWNjuS4uumbhuWboicsfSk7IH0gY2F0Y2ggKGUpIHt9O3RyeSB7ICAgIGd0YWcoJ2V2ZW50JywnQm90dG9tX05hdmlnYXRpb24nLHsnU2l0ZV9Db3VudHJ5X0NvZGVfSCc6JCgnaHRtbCcpLmF0dHIoJ2RhdGEtcmVnaW9uJykucmVwbGFjZSgvWy9dL2csICcnKS50b1VwcGVyQ2FzZSgpLCdldmVudENhdGVnb3J5Jzpkb2N1bWVudC5sb2NhdGlvbi5wYXRobmFtZSwnZXZlbnRBY3Rpb24nOidCb3R0b21fTmF2aWdhdGlvbicsICdldmVudExhYmVsJzogJ1F1aWNrIExpbmtzJysnKycrJ0h1YXdlaSBDb3Jwb3JhdGUnKycrJysod2luZG93LmxvY2F0aW9uLm9yaWdpbiArIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkucmVwbGFjZSgvXC8kLywgJycpfSkgfSBjYXRjaCAoZXJyb3IpIHtpZiAoZXJyb3IubWVzc2FnZSA9PT0gJ2d0YWcgaXMgbm90IGRlZmluZWQnKSB7Y29uc29sZS5sb2coJ0dvb2dsZSBBbmFseXRpY3MgaXMgbm90IGF2YWlsYWJsZS4gRXZlbnQgdHJhY2tpbmcgaXMgZGlzYWJsZWQuJyk7fSBlbHNlIHt0aHJvdyBlcnJvcjt9fQzljY7kuLrpm4blm6JkAgIPZBYCZg8VBBhodHRwczovL2UuaHVhd2VpLmNvbS9jbi8GX2JsYW5rhwV0cnkgeyB3aW5kb3cuaHdhKCd0cmFja1N0cnVjdEV2ZW50JywgeyB1ZW1faWQ6ICdQODFENDQ4Q0JGQ0EyMkZfQzgxREU2QkZFMkYxRkRBJywgdWVtX2xhYmVsOiAn54K55Ye7IOmhteiEmi3ljY7kuLrkvIHkuJrkuJrliqEnLCB9KTsgfSBjYXRjaCAoZSkge307dHJ5IHsgICAgZ3RhZygnZXZlbnQnLCdCb3R0b21fTmF2aWdhdGlvbicseydTaXRlX0NvdW50cnlfQ29kZV9IJzokKCdodG1sJykuYXR0cignZGF0YS1yZWdpb24nKS5yZXBsYWNlKC9bL10vZywgJycpLnRvVXBwZXJDYXNlKCksJ2V2ZW50Q2F0ZWdvcnknOmRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lLCdldmVudEFjdGlvbic6J0JvdHRvbV9OYXZpZ2F0aW9uJywgJ2V2ZW50TGFiZWwnOiAnUXVpY2sgTGlua3MnKycrJysnSHVhd2VpIEVudGVycHJpc2UnKycrJysod2luZG93LmxvY2F0aW9uLm9yaWdpbiArIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkucmVwbGFjZSgvXC8kLywgJycpfSkgfSBjYXRjaCAoZXJyb3IpIHtpZiAoZXJyb3IubWVzc2FnZSA9PT0gJ2d0YWcgaXMgbm90IGRlZmluZWQnKSB7Y29uc29sZS5sb2coJ0dvb2dsZSBBbmFseXRpY3MgaXMgbm90IGF2YWlsYWJsZS4gRXZlbnQgdHJhY2tpbmcgaXMgZGlzYWJsZWQuJyk7fSBlbHNlIHt0aHJvdyBlcnJvcjt9fRLljY7kuLrkvIHkuJrkuJrliqFkAgMPZBYCZg8VBC5odHRwczovL2RpZ2l0YWxwb3dlci5odWF3ZWkuY29tL2NuLz9mcm9tPXNvbGFyBl9ibGFua4sFdHJ5IHsgd2luZG93Lmh3YSgndHJhY2tTdHJ1Y3RFdmVudCcsIHsgdWVtX2lkOiAnUDgxRDQ0OENCRkNBMjJGX0M4MURFNkJGRjExRjRFNCcsIHVlbV9sYWJlbDogJ+eCueWHuyDpobXohJot5Y2O5Li65pWw5a2X6IO95rqQJywgfSk7IH0gY2F0Y2ggKGUpIHt9O3RyeSB7ICAgICBndGFnKCdldmVudCcsJ0JvdHRvbV9OYXZpZ2F0aW9uJyx7J1NpdGVfQ291bnRyeV9Db2RlX0gnOiQoJ2h0bWwnKS5hdHRyKCdkYXRhLXJlZ2lvbicpLnJlcGxhY2UoL1svXS9nLCAnJykudG9VcHBlckNhc2UoKSwnZXZlbnRDYXRlZ29yeSc6ZG9jdW1lbnQubG9jYXRpb24ucGF0aG5hbWUsJ2V2ZW50QWN0aW9uJzonQm90dG9tX05hdmlnYXRpb24nLCAnZXZlbnRMYWJlbCc6ICdRdWljayBMaW5rcycrJysnKydIdWF3ZWkgRGlnaXRhbCBQb3dlcicrJysnKyh3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKS5yZXBsYWNlKC9cLyQvLCAnJyl9KSB9IGNhdGNoIChlcnJvcikge2lmIChlcnJvci5tZXNzYWdlID09PSAnZ3RhZyBpcyBub3QgZGVmaW5lZCcpIHtjb25zb2xlLmxvZygnR29vZ2xlIEFuYWx5dGljcyBpcyBub3QgYXZhaWxhYmxlLiBFdmVudCB0cmFja2luZyBpcyBkaXNhYmxlZC4nKTt9IGVsc2Uge3Rocm93IGVycm9yO319EuWNjuS4uuaVsOWtl+iDvea6kGQCBA9kFgJmDxUEWWh0dHBzOi8vaW50bC5mdXNpb25zb2xhci5odWF3ZWkuY29tL3B2bXN3ZWJzaXRlL25vbG9naW4vYXNzZXRzL2J1aWxkL2luZGV4Lmh0bWwjL2p1bXBwYWdlBl9ibGFua7EFdHJ5IHsgd2luZG93Lmh3YSgndHJhY2tTdHJ1Y3RFdmVudCcsIHsgdWVtX2lkOiAnUDgxRDQ0OENCRkNBMjJGX0M4MURFNkMwMDVFN0I0NScsIHVlbV9sYWJlbDogJ+eCueWHuyDpobXohJot5LiL6L295pm66IO95YWJ5LyPQXBw77yI56e75Yqo56uv77yJJyx9KTsgfSBjYXRjaCAoZSkge307dHJ5IHsgICAgIGd0YWcoJ2V2ZW50JywnQm90dG9tX05hdmlnYXRpb24nLHsnU2l0ZV9Db3VudHJ5X0NvZGVfSCc6JCgnaHRtbCcpLmF0dHIoJ2RhdGEtcmVnaW9uJykucmVwbGFjZSgvWy9dL2csICcnKS50b1VwcGVyQ2FzZSgpLCdldmVudENhdGVnb3J5Jzpkb2N1bWVudC5sb2NhdGlvbi5wYXRobmFtZSwnZXZlbnRBY3Rpb24nOidCb3R0b21fTmF2aWdhdGlvbicsICdldmVudExhYmVsJzogJ1F1aWNrIExpbmtzJysnKycrJ0Rvd25sb2FkIEZ1c2lvblNvbGFyIEFwcCAoTW9iaWxlIFZlcnNpb24pJysnKycrKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLnJlcGxhY2UoL1wvJC8sICcnKX0pIH0gY2F0Y2ggKGVycm9yKSB7aWYgKGVycm9yLm1lc3NhZ2UgPT09ICdndGFnIGlzIG5vdCBkZWZpbmVkJykge2NvbnNvbGUubG9nKCdHb29nbGUgQW5hbHl0aWNzIGlzIG5vdCBhdmFpbGFibGUuIEV2ZW50IHRyYWNraW5nIGlzIGRpc2FibGVkLicpO30gZWxzZSB7dGhyb3cgZXJyb3I7fX0k5LiL6L295pm66IO95YWJ5LyPQXBw77yI56e75Yqo56uv77yJZAIFD2QWAmYPFQQkaHR0cHM6Ly9pbnRsLmZ1c2lvbnNvbGFyLmh1YXdlaS5jb20vBl9ibGFua5cFdHJ5IHsgd2luZG93Lmh3YSgndHJhY2tTdHJ1Y3RFdmVudCcsIHsgdWVtX2lkOiAnUDgxRDQ0OENCRkNBMjJGX0M4MURFNkJGREVBNkEwRCcsIHVlbV9sYWJlbDogJ+eCueWHuyDpobXohJot55m75b2V5pm66IO95YWJ5LyP566h55CG57O757ufJyx9KTsgfSBjYXRjaCAoZSkge307dHJ5IHsgICAgIGd0YWcoJ2V2ZW50JywnQm90dG9tX05hdmlnYXRpb24nLHsnU2l0ZV9Db3VudHJ5X0NvZGVfSCc6JCgnaHRtbCcpLmF0dHIoJ2RhdGEtcmVnaW9uJykucmVwbGFjZSgvWy9dL2csICcnKS50b1VwcGVyQ2FzZSgpLCdldmVudENhdGVnb3J5Jzpkb2N1bWVudC5sb2NhdGlvbi5wYXRobmFtZSwnZXZlbnRBY3Rpb24nOidCb3R0b21fTmF2aWdhdGlvbicsICdldmVudExhYmVsJzogJ1F1aWNrIExpbmtzJysnKycrJ0Z1c2lvblNvbGFyIFNtYXJ0UFZNUycrJysnKyh3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKS5yZXBsYWNlKC9cLyQvLCAnJyl9KSB9IGNhdGNoIChlcnJvcikge2lmIChlcnJvci5tZXNzYWdlID09PSAnZ3RhZyBpcyBub3QgZGVmaW5lZCcpIHtjb25zb2xlLmxvZygnR29vZ2xlIEFuYWx5dGljcyBpcyBub3QgYXZhaWxhYmxlLiBFdmVudCB0cmFja2luZyBpcyBkaXNhYmxlZC4nKTt9IGVsc2Uge3Rocm93IGVycm9yO319HueZu+W9leaZuuiDveWFieS8j+euoeeQhuezu+e7n2QCAw8WAh8BBSDCqSAyMDI0IOWNjuS4uuaKgOacr+aciemZkOWFrOWPuGQCBA8WAh8CAgEWAmYPZBYCZg8VA6YEPGEgY2xhc3M9Iml0ZW0tbGluayIgaHJlZj0iL2NuL3ByaXZhY3kiIHRhcmdldD0iIiBvbmNsaWNrPSJ0cnkgeyAgICAgZ3RhZygnZXZlbnQnLCdCb3R0b21fTmF2aWdhdGlvbicseydTaXRlX0NvdW50cnlfQ29kZV9IJzokKCdodG1sJykuYXR0cignZGF0YS1yZWdpb24nKS5yZXBsYWNlKC9bL10vZywgJycpLnRvVXBwZXJDYXNlKCksJ2V2ZW50Q2F0ZWdvcnknOmRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lLCdldmVudEFjdGlvbic6J0JvdHRvbV9OYXZpZ2F0aW9uJywnZXZlbnRMYWJlbCc6ICdQcml2YWN5JysnKycrKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLnJlcGxhY2UoL1wvJC8sICcnKX0pIH0gY2F0Y2ggKGVycm9yKSB7aWYgKGVycm9yLm1lc3NhZ2UgPT09ICdndGFnIGlzIG5vdCBkZWZpbmVkJykge2NvbnNvbGUubG9nKCdHb29nbGUgQW5hbHl0aWNzIGlzIG5vdCBhdmFpbGFibGUuIEV2ZW50IHRyYWNraW5nIGlzIGRpc2FibGVkLicpO30gZWxzZSB7dGhyb3cgZXJyb3I7fX0iICByZWw9Im5vcmVmZXJyZXIiPgzpmpDnp4HmlL/nrZYEPC9hPmQCBQ9kFgICAQ8WAh8BBZU6PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCiAgLnBhZ2UtZm9vdGVyIC5mb290ZXItYnV0dG9tIC5mb290ZXItbGluayAubGluay1pbWctc2hpcGluaGFvIHsKICAgICAgYmFja2dyb3VuZDogdXJsKCIvLS9tZWRpYS9Tb2xhclY0L2ltYWdlcy9Ib21lL3VwZGF0ZS9zaGlwaW5oYW8uc3ZnIikgMCAwIG5vLXJlcGVhdDsKICB9CiAgLmRhcmsgLnBhZ2UtZm9vdGVyIC5mb290ZXItYnV0dG9tIC5mb290ZXItbGluayAubGluay1pbWctc2hpcGluaGFvIHsKICAgIGJhY2tncm91bmQ6IHVybCgiLy0vbWVkaWEvU29sYXJWNC9pbWFnZXMvSG9tZS91cGRhdGUvc2hpcGluaGFvX2RhcmtfdjUuc3ZnIikgMCAwIG5vLXJlcGVhdDsKfQogIDwvc3R5bGU+CiAgCiAgPGRpdiBjbGFzcz0ic29jaWFsLWl0ZW0gc29jaWFsLWljb24iPgogICAgICA8c3BhbiBjbGFzcz0iZm9vdGVyLWxpbmstaW1nIGxpbmstaW1nLXdlY2hhdCI+CiAgICAgIDwvc3Bhbj4KICAgICAgPGRpdiBjbGFzcz0iaG92ZXItcG9wIj4KICAgICAgICAgIDxkaXYgY2xhc3M9Imljb24tY2xvc2UiPjwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0icG9wLXRleHQiPgogICAgICAgICAgICAgIDxwPuWumOaWueW+ruS/oTwvcD4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0icG9wLWltZyI+CiAgICAgICAgICAgICAgPGltZyBzcmM9Ii9Bc3NldHMvU29sYXIvdjQvaW1nL2NvbW1vbi93ZWNoYXQucG5nIj4KICAgICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJzb2NpYWwtaXRlbSBzb2NpYWwtaWNvbiBsYXN0LWljb24iPgogICAgICA8c3BhbiBjbGFzcz0iZm9vdGVyLWxpbmstaW1nIGxpbmstaW1nLXRvdXRpYW8iPgogICAgICA8L3NwYW4+CiAgICAgIDxkaXYgY2xhc3M9ImhvdmVyLXBvcCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJpY29uLWNsb3NlIj48L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InBvcC10ZXh0Ij4KICAgICAgICAgICAgICA8cD7lpLTmnaE8L3A+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InBvcC1pbWciPgogICAgICAgICAgICAgIDxpbWcgc3JjPSIvQXNzZXRzL1NvbGFyL3Y0L2ltZy9jb21tb24vdG91dGlhby5wbmciPgogICAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogIDwvZGl2PgogIDxkaXYgY2xhc3M9InNvY2lhbC1pdGVtIHNvY2lhbC1pY29uIGxhc3QtaWNvbiI+CiAgICAgIDxzcGFuIGNsYXNzPSJmb290ZXItbGluay1pbWcgbGluay1pbWctc2hpcGluaGFvIj4KICAgICAgPC9zcGFuPgogICAgICA8ZGl2IGNsYXNzPSJob3Zlci1wb3AiPgogICAgICAgICAgPGRpdiBjbGFzcz0iaWNvbi1jbG9zZSI+PC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJwb3AtdGV4dCI+CiAgICAgICAgICAgICAgPHA+6KeG6aKR5Y+3PC9wPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJwb3AtaW1nIj4KICAgICAgICAgICAgICA8aW1nIHNyYz0iLy0vbWVkaWEvU29sYXJWNC9pbWFnZXMvSG9tZS91cGRhdGUvaG9tZS1mb290ZXItaWNvbl8zLmpwZyI+CiAgICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgPC9kaXY+CgoKCiAgPCEtLSBjb29raWUgLS0+CjxzY3JpcHQ+CiAgICAoZnVuY3Rpb24gKGNvbmZpZykgewogICAgICAgIGlmICghd2luZG93LmxvY2F0aW9uLmhyZWYuaW5jbHVkZXMoJy9jbicpKSB7CiAgICAgICAgICAgIHJldHVybgogICAgICAgIH0KICAgICAgICB2YXIgbmFtZXNwYWNlID0gY29uZmlnLm5hbWVzcGFjZSB8fCAiaHdhIjsKICAgICAgICBpZiAoc2VsZltuYW1lc3BhY2VdIHx8IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInNjcmlwdCN1ZW1fZiIpKSB7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgc2VsZltuYW1lc3BhY2VdID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAoc2VsZltuYW1lc3BhY2VdLnEgPSBzZWxmW25hbWVzcGFjZV0ucSB8fCBbXSkucHVzaChhcmd1bWVudHMpOwogICAgICAgIH07CiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTsKICAgICAgICBlbGVtZW50LlRSQUNLRVJfQ09ORklHID0gY29uZmlnOwogICAgICAgIGVsZW1lbnQuYXN5bmMgPSB0cnVlOwogICAgICAgIGVsZW1lbnQuaWQgPSAidWVtX2YiOwogICAgICAgIGVsZW1lbnQuc3JjID0gY29uZmlnLnNyYyArICI/XyIgKyBuZXcgRGF0ZSgpLnRvSlNPTigpLnNwbGl0KCJUIilbMF07CiAgICAgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChlbGVtZW50KTsKICAgIH0pKHsKICAgICAgICBwbGF0Zm9ybTogIndlYiIsCiAgICAgICAgZWRpdGlvbjogImhpcyIsCiAgICAgICAgZW52OiAicHJvZCIsCiAgICAgICAgYXBwS2V5OiAiNGFiMGQyZTUxYjRhZjExZDBhOWQ5NDdhODlhODgyY2IiLAogICAgICAgIHNyYzogImh0dHBzOi8vaHdhLmhpcy5odWF3ZWkuY29tL2Rpc3QvdWVtX2YuanMiCiAgICB9KTsKPC9zY3JpcHQ+Cgo8c2NyaXB0IGNoYXJzZXQ9IlVURi04IiBzcmM9Imh0dHBzOi8vc3RhdGljLnNlbnNvcnNkYXRhLmNuL3Nkay8xLjI2LjE3L3NlbnNvcnNkYXRhLm1pbi5qcz92ZXI9MjAyNDA4MDIxMzE2Ij48L3NjcmlwdD4KPHNjcmlwdCBjaGFyc2V0PSJVVEYtOCI+CiAgICB2YXIgc2Vuc29ycyA9IHdpbmRvd1snc2Vuc29yc0RhdGFBbmFseXRpYzIwMTUwNSddOwogICAgc2Vuc29ycy51c2UoJ1BhZ2VMZWF2ZScsIHt9KTsKICAgIHNlbnNvcnMuaW5pdCh7CiAgICAgICAgc2VydmVyX3VybDogJ2h0dHBzOi8vY2RwLnRlc3QuaHVhd2VpLmNvbS9zYScsCiAgICAgICAgaGVhdG1hcDogeyBzY3JvbGxfbm90aWNlX21hcDogJ2RlZmF1bHQnIH0sCiAgICAgICAgdXNlX2NsaWVudF90aW1lOiB0cnVlLAogICAgICAgIHNlbmRfdHlwZTogJ2JlYWNvbicKICAgIH0pOwogICAgc2Vuc29ycy5xdWljaygnYXV0b1RyYWNrJyk7Cjwvc2NyaXB0PgoKPGRpdiBjbGFzcz0iYnJvd3NlaGFwcHkgUmVhZFBvbGljeSI+CiAgICA8cD7mnKznq5nngrnkvb/nlKhjb29raWVzLOe7p+e7rea1j+iniOihqOekuuaCqOWQjOaEj+aIkeS7rOS9v+eUqGNvb2tpZXPjgII8YSBocmVmPSJodHRwczovL3NvbGFyLmh1YXdlaS5jb20vY24vcHJpdmFjeSIgdGFyZ2V0PSJfYmxhbmsiPgogICAgICAgICAgICA8c3Bhbj5Db29raWVz5ZKM6ZqQ56eB5pS/562WICZndDwvc3Bhbj48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpjbG9zZUNvb2tpZUJhbm5lcigpIiBjbGFzcz0iY2xvc2UiIHRpdGxlPSJjbG9zZSI+PC9hPgogICAgPC9wPgo8L2Rpdj4KCjxzY3JpcHQ+CiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgalF1ZXJ5LkNhY2hlID0gewogICAgICAgIGdldDogZnVuY3Rpb24gKGtleSkgewogICAgICAgICAgICB2YXIgdmFsOwogICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgdmFsID0gSlNPTi5wYXJzZShkZWNvZGVVUklDb21wb25lbnQobG9jYWxTdG9yYWdlLmdldEl0ZW0oa2V5KSkpOwogICAgICAgICAgICB9IGNhdGNoIChfZSkgeyB9CiAgICAgICAgICAgIHJldHVybiB2YWw7CiAgICAgICAgfSwKICAgICAgICBzZXQ6IGZ1bmN0aW9uIChrZXksIF92YWx1ZSwgZXhwaXJlRGF5cykgewogICAgICAgICAgICB2YXIgdmFsdWUgPSBfdmFsdWU7CiAgICAgICAgICAgIGlmICghdmFsdWUpIHJldHVybjsKICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gIm9iamVjdCIpIHsKICAgICAgICAgICAgICAgIHZhbHVlID0geyB2YWx1ZTogX3ZhbHVlIH07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyIGQgPSBuZXcgRGF0ZSgpOwogICAgICAgICAgICBkLnNldFRpbWUoZC5nZXRUaW1lKCkgKyAyNCAqIDYwICogNjAgKiAxMDAwICogZXhwaXJlRGF5cyk7CiAgICAgICAgICAgIHZhciBleHBpcmUgPSBkOwogICAgICAgICAgICB2YWx1ZS5leHBpcmUgPSBleHBpcmU7CiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKGtleSwgZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KHZhbHVlKSkpOwogICAgICAgIH0sCiAgICAgICAgZGVsOiBmdW5jdGlvbiAoa2V5KSB7CiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKGtleSk7CiAgICAgICAgfSwKICAgIH07CiAgICBjb25zdCBjb21tb25Nb2R1bGUgPSB3aW5kb3cuY29tbW9uTW9kdWxlIHx8IHt9OwogICAgY29tbW9uTW9kdWxlLmJyb3dzZWhhcHB5ID0gZnVuY3Rpb24gYnJvd3NlaGFwcHkoKSB7CiAgICAgICAgaWYgKCEkLkNhY2hlKSB7CiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gewogICAgICAgICAgICAgICAgYnJvd3NlaGFwcHkoKTsKICAgICAgICAgICAgfSwgMjAwKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgbGV0IGJyb3dzZWhhcHB5Q2FjaGUgPSAkLkNhY2hlLmdldCgnYnJvd3NlaGFwcHknKTsKICAgICAgICBsZXQgaGlkZUNhY2hlID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAkLkNhY2hlLnNldCgnYnJvd3NlaGFwcHknLCAnYnJvd3NlaGFwcHknLCAzNjUpOwogICAgICAgIH07CgogICAgICAgICQoZG9jdW1lbnQpLm9uKCdjbGljaycsICcuYnJvd3NlaGFwcHkgYS5jbG9zZScsIGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICQodGhpcykuY2xvc2VzdCgnLmJyb3dzZWhhcHB5Jykuc2xpZGVVcChoaWRlQ2FjaGUpOwogICAgICAgIH0pOwogICAgICAgIHRyeSB7CiAgICAgICAgICAgIGlmICghYnJvd3NlaGFwcHlDYWNoZSB8fCBuZXcgRGF0ZShicm93c2VoYXBweUNhY2hlLmV4cGlyZSkgLSBuZXcgRGF0ZSgpIDw9IDApIHsKICAgICAgICAgICAgICAgICQuQ2FjaGUuZGVsKCdicm93c2VoYXBweScpOwogICAgICAgICAgICAgICAgJCgnLmJyb3dzZWhhcHB5JykucHJlcGVuZFRvKCdib2R5Jykuc2xpZGVEb3duKCk7CiAgICAgICAgICAgICAgICAkKCcuYnJvd3NlaGFwcHknKS5jc3MoJ2Rpc3BsYXknLCAnYmxvY2snKTsKICAgICAgICAgICAgICAgIGhpc3Rvcnkuc2Nyb2xsUmVzdG9yYXRpb24gPSAnbWFudWFsJzsKICAgICAgICAgICAgICAgICQoJ2h0bWwsYm9keScpLmFuaW1hdGUoCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxUb3A6IDAsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAnZmFzdCcKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBoaXN0b3J5LnNjcm9sbFJlc3RvcmF0aW9uID0gJ2F1dG8nOwogICAgICAgICAgICB9CiAgICAgICAgfSBjYXRjaCAoX2UpIHsgfQogICAgfTsKICAgIGNvbW1vbk1vZHVsZS5icm93c2VoYXBweSgpOwoKICAgIGZ1bmN0aW9uIGNsb3NlQ29va2llQmFubmVyKCkgewogICAgICAgIGhpZGVDYWNoZSgpOwogICAgICAgICQoJy5icm93c2VoYXBweScpLmNzcygnZGlzcGxheScsICdub25lJykKICAgIH0KfSwxMCkKICAgIDwvc2NyaXB0PgoKPHN0eWxlPgogICAgLlJlYWRQb2xpY3kgewogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWVlZWU7CiAgICAgICAgY29sb3I6ICMyODI4Mjg7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgICBwYWRkaW5nOiAxNnB4IDA7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgei1pbmRleDogMTAwMDA7CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICByaWdodDogMDsKICAgIH0KCiAgICAuUmVhZFBvbGljeSBwIHsKICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjI1OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4OwogICAgICAgIHBhZGRpbmctbGVmdDogMjBweDsKICAgICAgICB3aWR0aDogOTMuNzA1JTsKICAgICAgICBtYXgtd2lkdGg6IDE3OTkuMTM2cHg7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgfQoKICAgIC5SZWFkUG9saWN5IHAgc3BhbiB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsKICAgIH0KCiAgICAuUmVhZFBvbGljeSBwIGEgZW0gewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOwogICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjVzOwogICAgICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7CiAgICB9CgogICAgLlJlYWRQb2xpY3kgYSB7CiAgICAgICAgY29sb3I6ICNjNzAwMGI7CiAgICB9CgogICAgLlJlYWRQb2xpY3kgcCBhOmhvdmVyIGVtIHsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTBweCk7CiAgICB9CgogICAgLlJlYWRQb2xpY3kgLmNsb3NlIHsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICByaWdodDogMHB4OwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGhlaWdodDogMzBweDsKICAgICAgICB3aWR0aDogMzBweDsKICAgICAgICBjb2xvcjogI2ZmZjsKICAgICAgICBsaW5lLWhlaWdodDogMzBweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgZmxvYXQ6IHJpZ2h0OwogICAgICAgIG1hcmdpbi10b3A6IC03cHg7CiAgICAgICAgb3BhY2l0eTogMTsKICAgIH0KCiAgICAuUmVhZFBvbGljeSAuY2xvc2U6YmVmb3JlIHsKICAgICAgICBjb250ZW50OiAn4pyWJzsKICAgICAgICB3aWR0aDogMzBweDsKICAgICAgICBoZWlnaHQ6IDMwcHg7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgZm9udC1mYW1pbHk6ICdjb3JwZm9udCcgIWltcG9ydGFudDsKICAgICAgICBjb2xvcjogIzMzMzsKICAgICAgICBmb250LXNpemU6IDE1cHg7CiAgICB9CgogICAgQG1lZGlhIChtYXgtd2lkdGg6IDEwMjRweCkgewogICAgICAgIC5SZWFkUG9saWN5IHsKICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgICAgICBib3R0b206IDA7CiAgICAgICAgICAgIGxlZnQ6IDA7CiAgICAgICAgICAgIHotaW5kZXg6IDk5OTsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgfQoKICAgICAgICAuUmVhZFBvbGljeVtzdHlsZSo9J2Jsb2NrJ11+LmJ0bi1nby10b3AgewogICAgICAgICAgICBib3R0b206IDEwMHB4OwogICAgICAgIH0KCiAgICAgICAgLlJlYWRQb2xpY3lbc3R5bGUqPSdibG9jayddfi5wb3B1cC1pY29uIHsKICAgICAgICAgICAgYm90dG9tOiAxNDNweDsKICAgICAgICB9CgogICAgICAgIC5SZWFkUG9saWN5W3N0eWxlKj0nYmxvY2snXX5mb290ZXIgewogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA2NnB4OwogICAgICAgIH0KICAgIH0KPC9zdHlsZT5kZGl56YvlB0eDIR4O/8bza3RqUJl7Emp5zavVoeHIWGBS"> </div> </form> <div> <input type="hidden" id="hidUserStatusUrl" value="/en/user"> <div id="pageHeaderWrapper" class=""> <div class="global_header_wrapper"> <div class="global_header_fixed"> <div class="nav-wrapper"> <div class="nav-top"> <div class="nav-top-right"> <div class="nav-top-item"> <a href="/cn/online-experience-hall?step=card" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF8B83575', uem_label: '点击 页眉-在线体验专区',}); } catch (e) {};try { gtag('event','Navigation_Function',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Navigation_Function','eventLabel':'Online Experience Hall'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">在线体验专区</a> </div> <div class="nav-top-item nav-top-language"> <span class="language_ic"></span> <span>中国</span> <span class="language_select"></span> </div> </div> </div> <div class="nav-language"> <div class="nav-allLangBox"> <div class="icon-close"></div> <div class="curr-lang"><span class="icon-curr"></span> <a href="https://solar.huawei.com/en">FusionSolar Global / English</a> </div> <div class="allLang"> <div class="areaItem"> <div class="areaText">Asia Pacific</div> <div class="langList"> <div class="langItem"><a href="https://solar.huawei.com/au">Australia / English</a></div> <div class="langItem"><a href="https://solar.huawei.com/cn">China / 简体中文</a></div> <div class="langItem"><a href="https://solar.huawei.com/hk">Hong Kong, China / 繁體中文</a></div> <div class="langItem"><a href="https://solar.huawei.com/id">Indonesia / Indonesian</a></div> <div class="langItem"><a href="https://solar.huawei.com/jp">Japan / 日本語</a></div> <div class="langItem"><a href="https://solar.huawei.com/my">Malaysia / English</a></div> <div class="langItem"><a href="https://solar.huawei.com/ph">Philippines / English</a></div> <div class="langItem"><a href="https://solar.huawei.com/sg">Singapore / English</a></div> <div class="langItem"><a href="https://solar.huawei.com/kr">South Korea / 한국어</a></div> <div class="langItem"><a href="https://solar.huawei.com/th">Thailand / ไทย</a></div> <div class="langItem"><a href="https://solar.huawei.com/vn">Vietnam / English</a></div> </div> </div> <div class="areaItem"> <div class="areaText">Europe</div> <div class="langList"> <div class="langItem"><a href="https://solar.huawei.com/at">Austria / Deutsch</a></div> <div class="langItem"><a href="https://solar.huawei.com/be-fr">Belgium / Français</a></div> <div class="langItem"><a href="https://solar.huawei.com/be">Belgium / Nederlands</a></div> <div class="langItem"><a href="https://solar.huawei.com/bg">Bulgaria / български</a></div> <div class="langItem"><a href="https://solar.huawei.com/hr">Croatia / hrvatski</a></div> <div class="langItem"><a href="https://solar.huawei.com/cz">Czechia / čeština</a></div> <div class="langItem"><a href="https://solar.huawei.com/dk">Denmark / Dansk</a></div> <div class="langItem"><a href="https://solar.huawei.com/fr">France / Français</a></div> <div class="langItem"><a href="https://solar.huawei.com/de">Germany / Deutsch</a></div> <div class="langItem"><a href="https://solar.huawei.com/gr">Greece / Ελληνικά</a></div> <div class="langItem"><a href="https://solar.huawei.com/hu">Hungary / Hungarian</a></div> <div class="langItem"><a href="https://solar.huawei.com/ie">Ireland / English</a></div> <div class="langItem"><a href="https://solar.huawei.com/it">Italy / Italiano</a></div> <div class="langItem"><a href="https://solar.huawei.com/nl">Netherlands / Dutch</a></div> <div class="langItem"><a href="https://solar.huawei.com/pl">Poland / Polish</a></div> <div class="langItem"><a href="https://solar.huawei.com/pt">Portugal / português</a></div> <div class="langItem"><a href="https://solar.huawei.com/ro">Romania / română</a></div> <div class="langItem"><a href="https://solar.huawei.com/sk">Slovakia / slovenčina</a></div> <div class="langItem"><a href="https://solar.huawei.com/es">Spain / Español</a></div> <div class="langItem"><a href="https://solar.huawei.com/se">Sweden / Svenska</a></div> <div class="langItem"><a href="https://solar.huawei.com/ch">Switzerland / Deutsch</a></div> <div class="langItem"><a href="https://solar.huawei.com/ch-fr">Switzerland / Français</a></div> <div class="langItem"><a href="https://solar.huawei.com/tr">Türkiye / Türkçe</a></div> <div class="langItem"><a href="https://solar.huawei.com/ua">Ukraine / Україна</a></div> </div> </div> <div class="areaItem"> <div class="areaText">Latin America</div> <div class="langList"> <div class="langItem"><a href="https://solar.huawei.com/br">Brazil / Portuguese</a></div> <div class="langItem"><a href="https://solar.huawei.com/latam">Latin America / Español</a></div> <div class="langItem"><a href="https://solar.huawei.com/mx">México / Español</a></div> </div> </div> <div class="areaItem"> <div class="areaText">Middle East & Africa</div> <div class="langList"> <div class="langItem"><a href="https://solar.huawei.com/eg">Egypt / اللغة العربية</a></div> <div class="langItem"><a href="https://solar.huawei.com/ke">Kenya / English</a></div> <div class="langItem"><a href="https://solar.huawei.com/ma">Morocco / Français</a></div> <div class="langItem"><a href="https://solar.huawei.com/ng">Nigeria / English</a></div> <div class="langItem"><a href="https://solar.huawei.com/pk">Pakistan / English</a></div> <div class="langItem"><a href="https://solar.huawei.com/sa">Saudi Arabia / اللغة العربية </a></div> <div class="langItem"><a href="https://solar.huawei.com/sa-en">Saudi Arabia / English</a></div> <div class="langItem"><a href="https://solar.huawei.com/za">South Africa / English</a></div> <div class="langItem"><a href="https://solar.huawei.com/tn">Tunisia / Français</a></div> <div class="langItem"><a href="https://solar.huawei.com/ae">UAE / اللغة العربية</a></div> <div class="langItem"><a href="https://solar.huawei.com/ae-en">UAE / English</a></div> </div> </div> </div> </div> </div> </div> <div class="pageheader_container" id="pageHeader"> <div class="pageheader"> <div class="pageheader-box grid--align-spread"> <div class="pageheader-menu-left"> <a class="header-left" href="/cn"> <div class="header-logo"> <img src="/-/media/SolarV4/Common/logo-v1.svg" alt="logo v1" class="whiteLogo"> <img src="/-/media/SolarV4/Common/logo-dark-v2.svg" alt="logo dark v2" class="darkLogo"> </div> </a> <div class="pageheader-menu"> <ul> <li class="menu_item_li "><a class="menu_item_a" href="/cn/home-owners" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF15B23F7', uem_label: '点击 页眉-家庭业主',}); } catch (e) {};try { gtag('event','First_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction': 'First_Navigation','eventLabel':'Home Owners'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">家庭业主</a> <div class="submenu submenu-hidden"> </div> </li> <li class="menu_item_li "><a class="menu_item_a" href="/cn/business-owners" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF1C5ED52', uem_label: '点击 页眉-企业业主',}); } catch (e) {};try { gtag('event','First_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction': 'First_Navigation','eventLabel':'Business Owners'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">企业业主</a> <div class="submenu submenu-hidden"> </div> </li> <li class="menu_item_li "><a class="menu_item_a" href="/cn/utility-plant-owners" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF378EC17', uem_label: '点击 页眉-电站业主',}); } catch (e) {};try { gtag('event','First_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction': 'First_Navigation','eventLabel':'Utility Plant Owners'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">电站业主</a> <div class="submenu submenu-hidden"> </div> </li> <li class="menu_item_li "><a class="menu_item_a" href="/cn/professionals/residential" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF145F5B1', uem_label: '点击 页眉-专业人士',}); } catch (e) {};try { gtag('event','First_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction': 'First_Navigation','eventLabel':'Professionals'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">专业人士</a> <div class="submenu submenu-hidden"> <a href="/cn/professionals/residential" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF62DD5ED', uem_label: '点击 页眉-专业人士-家庭绿电',}); } catch (e) {};try { gtag('event','Sub_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Sub_Navigation','eventLabel':'Professionals'+'+'+'Residential Smart PV & ESS Solution'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}"> <div class="sub_menu_a">家庭绿电</div> </a> <a href="/cn/professionals/c-i" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF2BB25E9', uem_label: '点击 页眉-专业人士-行业绿电',}); } catch (e) {};try { gtag('event','Sub_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Sub_Navigation','eventLabel':'Professionals'+'+'+'C&I Smart PV & ESS Solution'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}"> <div class="sub_menu_a">行业绿电</div> </a> <a href="/cn/professionals/utility" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF1EC2784', uem_label: '点击 页眉-专业人士-智能光伏',}); } catch (e) {};try { gtag('event','Sub_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Sub_Navigation','eventLabel':'Professionals'+'+'+'Utility Smart PV Solution'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}"> <div class="sub_menu_a">智能光伏电站</div> </a> <a href="/cn/professionals/ess" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF778DA8D', uem_label: '点击 页眉-专业人士-智能组串',}); } catch (e) {};try { gtag('event','Sub_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Sub_Navigation','eventLabel':'Professionals'+'+'+'Utility Smart String ESS Solution'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}"> <div class="sub_menu_a">智能组串式储能</div> </a> <a href="/cn/professionals/micro-grid" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF7682BEA', uem_label: '点击 页眉-专业人士-智能微网',}); } catch (e) {};try { gtag('event','Sub_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Sub_Navigation','eventLabel':'Professionals'+'+'+'Smart Micro-grid Solution'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}"> <div class="sub_menu_a">智能微网</div> </a> <a href="/cn/professionals/SmartDesign" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D4335EE84FE6_C6F5A7B4A2BCC5B', uem_label: '点击 页眉-专业人士-智能设计工具',}); } catch (e) {};try { gtag('event','Sub_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Sub_Navigation','eventLabel':'Professionals'+'+'+'SmartDesign 2.0'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}"> <div class="sub_menu_a">智能设计工具</div> </a> </div> </li> <li class="menu_item_li "><a class="menu_item_a" href="/cn/partners/partner-introduction" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF2B78754', uem_label: '点击 页眉-合作伙伴',}); } catch (e) {};try { gtag('event','First_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction': 'First_Navigation','eventLabel':'Partners'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">合作伙伴</a> <div class="submenu submenu-hidden"> <a href="/cn/partners/partner-introduction" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF7472314', uem_label: '点击 页眉-合作伙伴-伙伴介绍',}); } catch (e) {};try { gtag('event','Sub_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Sub_Navigation','eventLabel':'Partners'+'+'+'Partner Introduction'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}"> <div class="sub_menu_a">伙伴介绍</div> </a> <a href="https://partner.huawei.com/ecpri/#/?lang=zh_CN" target="_blank" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF5E24D8F', uem_label: '点击 页眉-合作伙伴-成为伙伴',}); } catch (e) {};try { gtag('event','Sub_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Sub_Navigation','eventLabel':'Partners'+'+'+'Become a Partner'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}"> <div class="sub_menu_a">成为伙伴</div> </a> <a href="https://digitalpower.huawei.com/partner#/cn/main" target="_blank" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF7B43D0B', uem_label: '点击 页眉-合作伙伴-powerpartner',}); } catch (e) {};try { gtag('event','Sub_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Sub_Navigation','eventLabel':'Partners'+'+'+'Power-Partner'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}"> <div class="sub_menu_a">Power-Partner</div> </a> <a href="https://community.solar.huawei.com/cn/index.html" target="_blank" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF7B090AF', uem_label: '点击 页眉-合作伙伴-安装商社区',}); } catch (e) {};try { gtag('event','Sub_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Sub_Navigation','eventLabel':'Partners'+'+'+'Installers Community'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}"> <div class="sub_menu_a">安装商社区</div> </a> <a href="/cn/partners/map?type=installer" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D4335EE84FE6_C8209C7C4044BB7', uem_label: '点击 页眉-合作伙伴-寻找安装商',}); } catch (e) {};try { gtag('event','Sub_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Sub_Navigation','eventLabel':'Partners'+'+'+'Find an Installer'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}"> <div class="sub_menu_a">寻找安装商</div> </a> </div> </li> <li class="menu_item_li "><a class="menu_item_a" href="/cn/professionals/all-products" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF03B264B', uem_label: '点击 页眉-产品',}); } catch (e) {};try { gtag('event','First_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction': 'First_Navigation','eventLabel':'Products'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">产品</a> <div class="submenu submenu-hidden"> </div> </li> </ul> </div> </div> <div class="pageheader-menu-right"> <div class="pageheader-menu"> <ul> <li class="menu_item_li "><a class="menu_item_a" href="/cn/service-support/tsc" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF29D21BB', uem_label: '点击 页眉-支持',}); } catch (e) {};try { gtag('event','First_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction': 'First_Navigation','eventLabel':'Support'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">支持</a> <div class="submenu submenu-hidden"> <a href="/cn/service-support/tsc" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D4335EE84FE6_C6F5B36F49E23A9', uem_label: '点击 页眉-技术支持中心',}); } catch (e) {};try { gtag('event','Sub_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Sub_Navigation','eventLabel':'Support'+'+'+'Services and Support'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}"> <div class="sub_menu_a">服务与支持</div> </a> <a href="https://forum.huawei.com/enterprise/zh/forums/580879799675662336/580879823092461568" target="_blank" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF42A2E27', uem_label: '点击 页眉-支持-论坛',}); } catch (e) {};try { gtag('event','Sub_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Sub_Navigation','eventLabel':'Support'+'+'+'Forum'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}"> <div class="sub_menu_a">论坛</div> </a> <a href="https://digitalpower.huawei.com/robotchat/#/home/index?lang=zh_CN&domain=smartpv&from_title_zh=1117" target="_blank" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF477CAF5', uem_label: '点击 页眉-支持-在线支持',}); } catch (e) {};try { gtag('event','Sub_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Sub_Navigation','eventLabel':'Support'+'+'+'Online Support'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}"> <div class="sub_menu_a">在线支持</div> </a> </div> </li> <li class="menu_item_li "><a class="menu_item_a" href="https://community.solar.huawei.com/cn/index.html" target="_blank" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF2A0B940', uem_label: '点击 页眉-社区',}); } catch (e) {};try { gtag('event','First_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction': 'First_Navigation','eventLabel':'Community'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">社区</a> <div class="submenu submenu-hidden"> </div> </li> <li class="menu_item_li "><a class="menu_item_a" href="https://solar.huawei.com/cn/info/" target="_blank" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF4DECA10', uem_label: '点击 页眉-下载中心',}); } catch (e) {};try { gtag('event','First_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction': 'First_Navigation','eventLabel':'Download'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">下载中心</a> <div class="submenu submenu-hidden"> <a href="https://solar.huawei.com/cn/info/" target="_blank" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF6F08A5F', uem_label: '点击 页眉-下载中心-产品资料中心',}); } catch (e) {};try { gtag('event','Sub_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Sub_Navigation','eventLabel':'Download'+'+'+'Product Document'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}"> <div class="sub_menu_a">产品资料中心</div> </a> <a href="https://digitalpower.huawei.com/power-marketing/#/cn/home" target="_blank" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF47ED7E5', uem_label: '点击 页眉-下载中心-营销资料中心',}); } catch (e) {};try { gtag('event','Sub_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Sub_Navigation','eventLabel':'Download'+'+'+'MKT Document'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}"> <div class="sub_menu_a">营销资料中心</div> </a> </div> </li> </ul> </div> <div class="pageheader-right grid--vertical-align-center"> <a href="/cn/order-now" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF4415B50', uem_label: '点击 页眉-立即购买',}); } catch (e) {};try { gtag('event','Buy_Click',{'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Buy_Click','eventLabel':'Order Now'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}"> <div class="header-contact"> <button id="ev_bt_1005" class="ev_button default border-radius-24" title="" tabindex="0" type="button"> <span class="ev_button_text">立即购买</span> </button> </div> </a> </div> </div> </div> </div> <div class="pageheader-min"> <div class="pageheader-min-box grid--align-spread"> <a class="header-left" href="/cn"> <div class="headerLeft"> <span class="header-min-logo"> <img src="/-/media/SolarV4/Common/logo-v1.svg" alt="logo v1" class="min-white-logo"> <img src="/-/media/SolarV4/Common/logo-dark-v2.svg" alt="logo dark v2" class="min-dark-logo"> </span> </div> </a> <div class="nav-top-min nav-top-language"><span class="language_ic"></span><span>中国</span><span class="language_select"></span></div> <div class="container"> </div> <div class="headerRight grid--vertical-align-center"> <span class="header-icon header-min-setting"></span> <span class="header-icon header-min-close"></span> </div> </div> </div> <div class="header-drawer"> <ul class="header-drawer-box"> <li class="textItem"> <div class="textItem_div"> <a href="/cn/home-owners" id="header_0_rptMobileMainNav_lkLink_0" class="item-link" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF15B23F7', uem_label: '点击 页眉-家庭业主',}); } catch (e) {};try { gtag('event','First_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction': 'First_Navigation','eventLabel':'Home Owners'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}"> <span>家庭业主</span> </a> </div> </li> <li class="textItem"> <div class="textItem_div"> <a href="/cn/business-owners" id="header_0_rptMobileMainNav_lkLink_1" class="item-link" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF1C5ED52', uem_label: '点击 页眉-企业业主',}); } catch (e) {};try { gtag('event','First_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction': 'First_Navigation','eventLabel':'Business Owners'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}"> <span>企业业主</span> </a> </div> </li> <li class="textItem"> <div class="textItem_div"> <a href="/cn/utility-plant-owners" id="header_0_rptMobileMainNav_lkLink_2" class="item-link" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF378EC17', uem_label: '点击 页眉-电站业主',}); } catch (e) {};try { gtag('event','First_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction': 'First_Navigation','eventLabel':'Utility Plant Owners'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}"> <span>电站业主</span> </a> </div> </li> <li class="textItem"> <div class="textItem_div"> <a href="javascript:;" id="header_0_rptMobileMainNav_lkLink_3" class="item-link" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF145F5B1', uem_label: '点击 页眉-专业人士',}); } catch (e) {};try { gtag('event','First_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction': 'First_Navigation','eventLabel':'Professionals'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}"> <span>专业人士</span> </a> <span class="textItem_arr"></span> </div> <ul class="submenu" style="display: none;"> <li class="textItem"><a class="item-link" href="/cn/professionals/residential" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF62DD5ED', uem_label: '点击 页眉-专业人士-家庭绿电',}); } catch (e) {};try { gtag('event','Sub_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Sub_Navigation','eventLabel':'Professionals'+'+'+'Residential Smart PV & ESS Solution'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">家庭绿电</a></li> <li class="textItem"><a class="item-link" href="/cn/professionals/c-i" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF2BB25E9', uem_label: '点击 页眉-专业人士-行业绿电',}); } catch (e) {};try { gtag('event','Sub_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Sub_Navigation','eventLabel':'Professionals'+'+'+'C&I Smart PV & ESS Solution'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">行业绿电</a></li> <li class="textItem"><a class="item-link" href="/cn/professionals/utility" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF1EC2784', uem_label: '点击 页眉-专业人士-智能光伏',}); } catch (e) {};try { gtag('event','Sub_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Sub_Navigation','eventLabel':'Professionals'+'+'+'Utility Smart PV Solution'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">智能光伏电站</a></li> <li class="textItem"><a class="item-link" href="/cn/professionals/ess" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF778DA8D', uem_label: '点击 页眉-专业人士-智能组串',}); } catch (e) {};try { gtag('event','Sub_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Sub_Navigation','eventLabel':'Professionals'+'+'+'Utility Smart String ESS Solution'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">智能组串式储能</a></li> <li class="textItem"><a class="item-link" href="/cn/professionals/micro-grid" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF7682BEA', uem_label: '点击 页眉-专业人士-智能微网',}); } catch (e) {};try { gtag('event','Sub_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Sub_Navigation','eventLabel':'Professionals'+'+'+'Smart Micro-grid Solution'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">智能微网</a></li> <li class="textItem"><a class="item-link" href="/cn/professionals/SmartDesign" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D4335EE84FE6_C6F5A7B4A2BCC5B', uem_label: '点击 页眉-专业人士-智能设计工具',}); } catch (e) {};try { gtag('event','Sub_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Sub_Navigation','eventLabel':'Professionals'+'+'+'SmartDesign 2.0'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">智能设计工具</a></li> </ul> </li> <li class="textItem"> <div class="textItem_div"> <a href="javascript:;" id="header_0_rptMobileMainNav_lkLink_4" class="item-link" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF2B78754', uem_label: '点击 页眉-合作伙伴',}); } catch (e) {};try { gtag('event','First_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction': 'First_Navigation','eventLabel':'Partners'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}"> <span>合作伙伴</span> </a> <span class="textItem_arr"></span> </div> <ul class="submenu" style="display: none;"> <li class="textItem"><a class="item-link" href="/cn/partners/partner-introduction" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF7472314', uem_label: '点击 页眉-合作伙伴-伙伴介绍',}); } catch (e) {};try { gtag('event','Sub_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Sub_Navigation','eventLabel':'Partners'+'+'+'Partner Introduction'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">伙伴介绍</a></li> <li class="textItem"><a class="item-link" href="https://partner.huawei.com/ecpri/#/?lang=zh_CN" target="_blank" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF5E24D8F', uem_label: '点击 页眉-合作伙伴-成为伙伴',}); } catch (e) {};try { gtag('event','Sub_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Sub_Navigation','eventLabel':'Partners'+'+'+'Become a Partner'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">成为伙伴</a></li> <li class="textItem"><a class="item-link" href="https://digitalpower.huawei.com/partner#/cn/main" target="_blank" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF7B43D0B', uem_label: '点击 页眉-合作伙伴-powerpartner',}); } catch (e) {};try { gtag('event','Sub_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Sub_Navigation','eventLabel':'Partners'+'+'+'Power-Partner'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">Power-Partner</a></li> <li class="textItem"><a class="item-link" href="https://community.solar.huawei.com/cn/index.html" target="_blank" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF7B090AF', uem_label: '点击 页眉-合作伙伴-安装商社区',}); } catch (e) {};try { gtag('event','Sub_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Sub_Navigation','eventLabel':'Partners'+'+'+'Installers Community'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">安装商社区</a></li> <li class="textItem"><a class="item-link" href="/cn/partners/map?type=installer" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D4335EE84FE6_C8209C7C4044BB7', uem_label: '点击 页眉-合作伙伴-寻找安装商',}); } catch (e) {};try { gtag('event','Sub_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Sub_Navigation','eventLabel':'Partners'+'+'+'Find an Installer'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">寻找安装商</a></li> </ul> </li> <li class="textItem"> <div class="textItem_div"> <a href="/cn/professionals/all-products" id="header_0_rptMobileMainNav_lkLink_5" class="item-link" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF03B264B', uem_label: '点击 页眉-产品',}); } catch (e) {};try { gtag('event','First_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction': 'First_Navigation','eventLabel':'Products'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}"> <span>产品</span> </a> </div> </li> <li class="textItem"> <div class="textItem_div"> <a href="javascript:;" id="header_0_rptMobileMainNav_lkLink_6" class="item-link" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF29D21BB', uem_label: '点击 页眉-支持',}); } catch (e) {};try { gtag('event','First_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction': 'First_Navigation','eventLabel':'Support'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}"> <span>支持</span> </a> <span class="textItem_arr"></span> </div> <ul class="submenu" style="display: none;"> <li class="textItem"><a class="item-link" href="/cn/service-support/tsc" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D4335EE84FE6_C6F5B36F49E23A9', uem_label: '点击 页眉-技术支持中心',}); } catch (e) {};try { gtag('event','Sub_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Sub_Navigation','eventLabel':'Support'+'+'+'Services and Support'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">服务与支持</a></li> <li class="textItem"><a class="item-link" href="https://forum.huawei.com/enterprise/zh/forums/580879799675662336/580879823092461568" target="_blank" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF42A2E27', uem_label: '点击 页眉-支持-论坛',}); } catch (e) {};try { gtag('event','Sub_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Sub_Navigation','eventLabel':'Support'+'+'+'Forum'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">论坛</a></li> <li class="textItem"><a class="item-link" href="https://digitalpower.huawei.com/robotchat/#/home/index?lang=zh_CN&domain=smartpv&from_title_zh=1117" target="_blank" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF477CAF5', uem_label: '点击 页眉-支持-在线支持',}); } catch (e) {};try { gtag('event','Sub_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Sub_Navigation','eventLabel':'Support'+'+'+'Online Support'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">在线支持</a></li> </ul> </li> <li class="textItem"> <div class="textItem_div"> <a href="https://community.solar.huawei.com/cn/index.html" id="header_0_rptMobileMainNav_lkLink_7" class="item-link" target="_blank" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF2A0B940', uem_label: '点击 页眉-社区',}); } catch (e) {};try { gtag('event','First_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction': 'First_Navigation','eventLabel':'Community'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}"> <span>社区</span> </a> </div> </li> <li class="textItem"> <div class="textItem_div"> <a href="javascript:;" id="header_0_rptMobileMainNav_lkLink_8" class="item-link" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF4DECA10', uem_label: '点击 页眉-下载中心',}); } catch (e) {};try { gtag('event','First_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction': 'First_Navigation','eventLabel':'Download'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}"> <span>下载中心</span> </a> <span class="textItem_arr"></span> </div> <ul class="submenu" style="display: none;"> <li class="textItem"><a class="item-link" href="https://solar.huawei.com/cn/info/" target="_blank" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF6F08A5F', uem_label: '点击 页眉-下载中心-产品资料中心',}); } catch (e) {};try { gtag('event','Sub_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Sub_Navigation','eventLabel':'Download'+'+'+'Product Document'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">产品资料中心</a></li> <li class="textItem"><a class="item-link" href="https://digitalpower.huawei.com/power-marketing/#/cn/home" target="_blank" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF47ED7E5', uem_label: '点击 页眉-下载中心-营销资料中心',}); } catch (e) {};try { gtag('event','Sub_Navigation',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Sub_Navigation','eventLabel':'Download'+'+'+'MKT Document'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">营销资料中心</a></li> </ul> </li> <li class="textItem"> <div class="textItem_div"> <a class="item-link" href="/cn/online-experience-hall?step=card" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF8B83575', uem_label: '点击 页眉-在线体验专区',}); } catch (e) {};try { gtag('event','Navigation_Function',{'eventCategory':document.location.pathname,'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Navigation_Function','eventLabel':'Online Experience Hall'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}"> <span>在线体验专区</span> </a> </div> </li> <li class="textItem"> <div class="textItem_div"> <a class="item-link" href="/cn/order-now" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF4415B50', uem_label: '点击 页眉-立即购买',}); } catch (e) {};try { gtag('event','Buy_Click',{'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventAction':'Buy_Click','eventLabel':'Order Now'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}"> <span>立即购买</span> </a> </div> </li> </ul> </div> </div> </div> </div> </div> <input id="pagelang" type="hidden" value="zh"> <div class="main"> <!--HWDocContent--> <div id="dig_swiper_banner" class="dig_banner"> <div class="swiper dig_swiper"> <div class="swiper-wrapper"> <div class="swiper-slide"> <div class="dig_swiper_content"> <picture class="dig_swiper_picture"> <source media="(max-width:834px)" srcset="/-/media/SolarV4/solar-version2/asia-pacific/cn/utility-plant-owners/kv-banner/img_floor1_1.png"></source> <img src="/-/media/SolarV4/solar-version2/asia-pacific/cn/utility-plant-owners/kv-banner/img_floor1_1.png"> </picture> <div class="dig_swiper_title" style=""> <p> 智能光伏解决方案 </p> <span> 光储融合,全面智能,加速光伏成为主力能源 </span> </div> </div> </div> <div class="swiper-slide"> <div class="dig_swiper_content"> <picture class="dig_swiper_picture"> <source media="(max-width:834px)" srcset="/-/media/SolarV4/images/Owners/UtilityPlantOwners/img_floor1_2.jpg"></source> <img src="/-/media/SolarV4/images/Owners/UtilityPlantOwners/img_floor1_2.jpg"> </picture> <div class="dig_swiper_title" style=""> <p> 智能组串式储能 </p> <span> 实现更高可用容量,更高安全标准 </span> </div> </div> </div> </div> <div class="swiper-pagination dig_BannerSwiper_pagination"></div> </div> <div class="home_banner_HiddenedVideo"> <div class="home_banner_HV_content"> <img class="home_banner_HV_close" src="/Assets/Solar/v4/img/Home/close.png" alt="HV_close"> <video id="home_banner_video" src="" controls="true"></video> </div> </div> </div> <div id="dig_features" class="dig_features"> <div class="dig_featuresBg" style="background-image: url('/-/media/SolarV4/images/Owners/UtilityPlantOwners/img_floor2.png');"> </div> <div class="dig_featuresContent"> <div class="dig_featuresBox"> <div class="dig_featuresTitle"> <h2>开源节流,更高收益</h2> </div> <div class="dig_featuresCard"> <div> <img src="/-/media/SolarV4/images/Owners/UtilityPlantOwners/ic_Solution_1.svg" alt="ic Solution 1"> </div> <h2>开源节流,更高收益 </h2> <p>降低光/储运维成本 <br> 高效发电,提升可用容量 </p> </div> </div> <div class="dig_featuresBox"> <div class="dig_featuresTitle"> <h2>四重保障,安全可靠</h2> </div> <div class="dig_featuresCard"> <div> <img src="/-/media/SolarV4/images/Owners/UtilityPlantOwners/ic_Solution_2.svg" alt="ic Solution 2"> </div> <h2>四重保障,安全可靠 </h2> <p>光储融合解决方案能够保证更高的光伏系统安全性及储能系统的主动安全性 </p> </div> </div> <div class="dig_featuresBox"> <div class="dig_featuresTitle"> <h2>稳定供电,提升消纳</h2> </div> <div class="dig_featuresCard"> <div> <img src="/-/media/SolarV4/images/Owners/UtilityPlantOwners/ic_Solution_3.svg" alt="ic Solution 3"> </div> <h2>稳定供电,提升消纳 </h2> <p>全电网场景稳定并网/供电 <br> 发储融合,支撑新能源可靠消纳 </p> </div> </div> </div> </div> <div class="dig_Pvess" style="background-image: url('/-/media/SolarV4/images/Owners/UtilityPlantOwners/img_floor2_bg.png');"> <div class="dig_Pvess_box"> <div class="dig_Pvess_title">光储融合</div> <div class="dig_Pvess_text">光储融合、全面智能,<br>支撑80%+高比例新能源稳定并网 </div> </div> </div> <div id="UpoSolutionContent"> <div class="dig_up_tab"> <span class="dig_up_tab_head_item">智能光伏解决方案 </span> <span class="dig_up_tab_head_item">智能组串式储能解决方案 </span> </div> <div class="dig_up_tab_content_item active"> <section class="dig_stm_container"> <div class="dig_stm_box"> <div class="dig_stm_Ltitle"><span class="dig_stm_gradient">智能</span><span class="dig_stm_innertitle">光伏控制器</span></div> <div class="dig_stm_content"> <div class="dig_stm_left"> <p class="dig_stm_subDesc">智能光伏控制器可以实现将来自太阳光照的直流电转换为交流电 </p> </div> <div class="dig_stm_right"> <img src="/Assets/Solar/v4/img/Owners/UtilityPlantOwners/smart_1.png" class="dig_stm_right_img"> <div class="dig_stm_vertical_bar"></div> </div> </div> </div> </section> <section class="dig_stm_container"> <div class="dig_stm_box"> <div class="dig_stm_Ltitle"><span class="dig_stm_gradient">智能</span><span class="dig_stm_innertitle">子阵控制器</span></div> <div class="dig_stm_content"> <div class="dig_stm_left"> <p class="dig_stm_subDesc">智能子阵控制器支持微网电站一键开局,<br>稳定可靠传输数据 </p> </div> <div class="dig_stm_right"> <img src="/Assets/Solar/v4/img/Owners/UtilityPlantOwners/smart_2.png" class="dig_stm_right_img"> <div class="dig_papaw0 dig_papaw_wrap bubble"> <img src="/Assets/Solar/v4/img/Owners/UtilityPlantOwners/papaw1.png" alt=""> </div> <div class="dig_papaw1 dig_papaw_wrap bubble"> <img src="/Assets/Solar/v4/img/Owners/UtilityPlantOwners/papaw1.png" alt=""> </div> <div class="dig_papaw2 dig_papaw_wrap bubble"> <img src="/Assets/Solar/v4/img/Owners/UtilityPlantOwners/papaw1.png" alt=""> </div> <div class="dig_papaw3 dig_papaw_wrap bubble"> <img src="/Assets/Solar/v4/img/Owners/UtilityPlantOwners/papaw1.png" alt=""> </div> <div class="dig_papaw4 dig_papaw_wrap bubble"> <img src="/Assets/Solar/v4/img/Owners/UtilityPlantOwners/papaw2.png" alt=""> </div> <div class="dig_papaw5 dig_papaw_wrap bubble"> <img src="/Assets/Solar/v4/img/Owners/UtilityPlantOwners/papaw2.png" alt=""> </div> <div class="dig_papaw6 dig_papaw_wrap bubble"> <img src="/Assets/Solar/v4/img/Owners/UtilityPlantOwners/papaw1.png" alt=""> </div> <div class="dig_papaw7 dig_papaw_wrap bubble"> <img src="/Assets/Solar/v4/img/Owners/UtilityPlantOwners/papaw2.png" alt=""> </div> <div class="dig_papaw8 dig_papaw_wrap bubble"> <img src="/Assets/Solar/v4/img/Owners/UtilityPlantOwners/papaw1.png" alt=""> </div> <div class="dig_papaw9 dig_papaw_wrap bubble"> <img src="/Assets/Solar/v4/img/Owners/UtilityPlantOwners/papaw1.png" alt=""> </div> <div class="dig_stm_vertical_bar"></div> </div> </div> </div> </section> <section class="dig_stm_container"> <div class="dig_stm_box"> <div class="dig_stm_Ltitle"><span class="dig_stm_gradient">智能</span><span class="dig_stm_innertitle">光伏管理系统</span></div> <div class="dig_stm_content"> <div class="dig_stm_left"> <p class="dig_stm_subDesc">智能光伏管理系统实现微网电站光储的四级监控,协助精细管理 </p> </div> <div class="dig_stm_right"> <img src="/Assets/Solar/v4/img/Owners/UtilityPlantOwners/smart_7.png" class="dig_stm_right_img"> </div> </div> </div> </section> <div class="new-services"> <div class="sec-2"> <div class="sec-2-text"> <h2>全生命周期专业<span class="nowrap">服务</span></h2> <p>保障电站高质量交付、快速并网运营,助力电站资产持续增值<br></p> <a class="new-services-a" data-name="Smart PV Solution + Professional services throughout the lifecycle" data-title="Learn More" href="/cn/service-support/tsc" target=""> <div>了解更多</div> </a> </div> <div class="sec-2-box"> <div class="sec-2-box-left"> <div class="sec-2-box-left-item"> <div class="sec-2-box-left-title" data-name="Smart PV Solution + Engineering Services" data-title=""> <h3>工程服务</h3> <img src="/Assets/Solar/v4/img/Owners/HomeOwners/sec-2-icon.svg" alt=""> </div> <p>调测指导、现场服务、涉网改造等,确保项目安全、品质交付,缩短TTM</p> </div> <div class="sec-2-box-left-item"> <div class="sec-2-box-left-title" data-name="Smart PV Solution + Maintenance service" data-title=""> <h3>维保服务</h3> <img src="/Assets/Solar/v4/img/Owners/HomeOwners/sec-2-icon.svg" alt=""> </div> <p>远程问题处理、技术支持、备件服务等专业运维,快速响应,长期保障</p> </div> <div class="sec-2-box-left-item"> <div class="sec-2-box-left-title" data-name="Smart PV Solution + Value-added services" data-title=""> <h3>增值服务</h3> <img src="/Assets/Solar/v4/img/Owners/HomeOwners/sec-2-icon.svg" alt=""> </div> <p>预防性维护、现场问题处理、故障件更换、备件服务等,快速恢复业务,减少停机损失</p> </div> <div class="sec-2-box-left-item"> <div class="sec-2-box-left-title" data-name="Smart PV Solution + Training services" data-title=""> <h3>培训服务</h3> <img src="/Assets/Solar/v4/img/Owners/HomeOwners/sec-2-icon.svg" alt=""> </div> <p>技术培训、应急演练、体系化考核认证等,规范安全生产和运维,助力客户人才培养</p> </div> </div> <picture> <source type="image/png" media="(max-aspect-ratio: 11 / 10)" srcset="/-/media/SolarV4/solar-version2/asia-pacific/cn/professionals/utility/lifeservice/img/mob_ttt.jpg"> <img src="/-/media/SolarV4/solar-version2/asia-pacific/cn/professionals/utility/lifeservice/img/sec-1-img.jpg" alt="sec 1 img"> </source></picture> </div> </div> </div> </div> <div class="dig_up_tab_content_item "> <section class="dig_stm_container"> <div class="dig_stm_box"> <div class="dig_stm_Ltitle"><span class="dig_stm_gradient">智能</span><span class="dig_stm_innertitle">组串式储能</span></div> <div class="dig_stm_content"> <div class="dig_stm_left"> <p class="dig_stm_subDesc">智能组串式储能系统是能量的“蓄水池”和“调节器”,参与电力市场辅助服务 </p> </div> <div class="dig_stm_right"> <img src="/-/media/SolarV4/images/Owners/UtilityPlantOwners/update/utility-plant-owners-smart_5" class="dig_stm_right_img"> <div class="dig_stm_vertical_bar"></div> </div> </div> </div> </section> <section class="dig_stm_container"> <div class="dig_stm_box"> <div class="dig_stm_Ltitle"><span class="dig_stm_gradient">智能</span><span class="dig_stm_innertitle">储能控制器</span></div> <div class="dig_stm_content"> <div class="dig_stm_left"> <p class="dig_stm_subDesc">智能储能控制器基于调度需要,可实现双向交/直流电的转换 </p> </div> <div class="dig_stm_right"> <img src="/Assets/Solar/v4/img/Owners/UtilityPlantOwners/smart_6.png" class="dig_stm_right_img"> <div class="dig_papaw0 dig_papaw_wrap bubble"> <img src="/Assets/Solar/v4/img/Owners/UtilityPlantOwners/papaw1.png" alt=""> </div> <div class="dig_papaw1 dig_papaw_wrap bubble"> <img src="/Assets/Solar/v4/img/Owners/UtilityPlantOwners/papaw1.png" alt=""> </div> <div class="dig_papaw2 dig_papaw_wrap bubble"> <img src="/Assets/Solar/v4/img/Owners/UtilityPlantOwners/papaw1.png" alt=""> </div> <div class="dig_papaw3 dig_papaw_wrap bubble"> <img src="/Assets/Solar/v4/img/Owners/UtilityPlantOwners/papaw1.png" alt=""> </div> <div class="dig_papaw4 dig_papaw_wrap bubble"> <img src="/Assets/Solar/v4/img/Owners/UtilityPlantOwners/papaw2.png" alt=""> </div> <div class="dig_papaw5 dig_papaw_wrap bubble"> <img src="/Assets/Solar/v4/img/Owners/UtilityPlantOwners/papaw2.png" alt=""> </div> <div class="dig_papaw6 dig_papaw_wrap bubble"> <img src="/Assets/Solar/v4/img/Owners/UtilityPlantOwners/papaw1.png" alt=""> </div> <div class="dig_papaw7 dig_papaw_wrap bubble"> <img src="/Assets/Solar/v4/img/Owners/UtilityPlantOwners/papaw2.png" alt=""> </div> <div class="dig_papaw8 dig_papaw_wrap bubble"> <img src="/Assets/Solar/v4/img/Owners/UtilityPlantOwners/papaw1.png" alt=""> </div> <div class="dig_papaw9 dig_papaw_wrap bubble"> <img src="/Assets/Solar/v4/img/Owners/UtilityPlantOwners/papaw1.png" alt=""> </div> <div class="dig_stm_vertical_bar"></div> </div> </div> </div> </section> <section class="dig_stm_container"> <div class="dig_stm_box"> <div class="dig_stm_Ltitle"><span class="dig_stm_gradient">智能</span><span class="dig_stm_innertitle">子阵控制器</span></div> <div class="dig_stm_content"> <div class="dig_stm_left"> <p class="dig_stm_subDesc">智能子阵控制器支持储能电站一键开局,稳定可靠传输数据 </p> </div> <div class="dig_stm_right"> <img src="/Assets/Solar/v4/img/Owners/UtilityPlantOwners/smart_2.png" class="dig_stm_right_img"> <div class="dig_stm_vertical_bar"></div> </div> </div> </div> </section> <section class="dig_stm_container"> <div class="dig_stm_box"> <div class="dig_stm_Ltitle"><span class="dig_stm_gradient">智能</span><span class="dig_stm_innertitle">光伏管理系统</span></div> <div class="dig_stm_content"> <div class="dig_stm_left"> <p class="dig_stm_subDesc">智能光伏管理系统实现储能系统、电池簇、电池包、电芯四级监控,协助精细管理 </p> </div> <div class="dig_stm_right"> <img src="/Assets/Solar/v4/img/Owners/UtilityPlantOwners/smart_4.png" class="dig_stm_right_img"> </div> </div> </div> </section> <div class="new-services"> <div class="sec-2"> <div class="sec-2-text"> <h2>全生命周期专业<span class="nowrap">服务</span></h2> <p>强化安全,确保最佳性能,提升储能系统效率<br></p> <a class="new-services-a" data-name="Smart String Energy Storage Solution + Professional services throughout the lifecycle" data-title="Learn More" href="/cn/service-support/tsc" target=""> <div>了解更多</div> </a> </div> <div class="sec-2-box"> <div class="sec-2-box-left"> <div class="sec-2-box-left-item"> <div class="sec-2-box-left-title" data-name="Smart String Energy Storage Solution + Engineering Services" data-title=""> <h3>工程服务</h3> <img src="/Assets/Solar/v4/img/Owners/HomeOwners/sec-2-icon.svg" alt=""> </div> <p>设备安装、并网调试、原厂验收等专业指导,规范作业,保障质量 </p> </div> <div class="sec-2-box-left-item"> <div class="sec-2-box-left-title" data-name="Smart String Energy Storage Solution + Maintenance service" data-title=""> <h3>维保服务</h3> <img src="/Assets/Solar/v4/img/Owners/HomeOwners/sec-2-icon.svg" alt=""> </div> <p>远程问题处理、技术支持、备件服务等专业运维,保障设备安全,优化性能 </p> </div> <div class="sec-2-box-left-item"> <div class="sec-2-box-left-title" data-name="Smart String Energy Storage Solution + Value-added services" data-title=""> <h3>增值服务</h3> <img src="/Assets/Solar/v4/img/Owners/HomeOwners/sec-2-icon.svg" alt=""> </div> <p>现场问题处理、故障件更换、预防性巡检维护等,主动识别系统健康状况,降低停机风险 </p> </div> <div class="sec-2-box-left-item"> <div class="sec-2-box-left-title" data-name="Smart String Energy Storage Solution + Training services" data-title=""> <h3>培训服务</h3> <img src="/Assets/Solar/v4/img/Owners/HomeOwners/sec-2-icon.svg" alt=""> </div> <p>储能技术、管理培训等,助力企业人才培养 </p> </div> </div> <picture> <source type="image/png" media="(max-aspect-ratio: 11 / 10)" srcset="/-/media/SolarV4/solar-version2/asia-pacific/cn/professionals/ess/lifeservice/img/mob_ttt.jpg"> <img src="/-/media/SolarV4/solar-version2/asia-pacific/cn/professionals/ess/lifeservice/img/sec-1-img.jpg" alt="sec 1 img"> </source></picture> </div> </div> </div> </div> </div> <div class="dig_video_scale"> <div class="dig_vs_sticty"> <div class="dig_vs_img_wrap"> <div class="dig_vs_img dig_vs_img1"> <img src="/-/media/SolarV4/images/Owners/UtilityPlantOwners/img_floor6_1.png" alt="电站业主-2"> </div> <div class="dig_vs_img dig_vs_img2"> <img src="/-/media/SolarV4/images/Owners/UtilityPlantOwners/img_floor6_2.png" alt="电站业主-1"> </div> <div class="dig_vs_video"> <video loop="" autoplay="" src="/-/media/SolarV4/images/Owners/UtilityPlantOwners/update/utility-plant-owners-Successful-Stories-video-v1.mp4" muted="" playsinline=""></video> <div class="dig_vs_video_start"></div> </div> <div class="dig_vs_img dig_vs_img4"> <img src="/-/media/SolarV4/images/Owners/UtilityPlantOwners/img_floor6_4.png" alt="电站业主-3"> </div> <div class="dig_vs_img dig_vs_img5"> <img src="/-/media/SolarV4/images/Owners/UtilityPlantOwners/img_floor6_5.png" alt="电站业主-6"> </div> <div class="dig_vs_img dig_vs_img6"> <img src="/-/media/SolarV4/images/Owners/UtilityPlantOwners/img_floor6_6.png" alt="电站业主-5"> </div> <div class="dig_vs_img dig_vs_img7"> <img src="/-/media/SolarV4/images/Owners/UtilityPlantOwners/img_floor6_7.png" alt="电站业主-4"> </div> </div> </div> <div class="dig_vs_help"></div> </div> <div class="dig_contactUs" style="background-image: url('/-/media/SolarV4/images/Owners/HomeOwners/content/img_contact.jpg');"> <div class="dig_contactUs_wrap"> <p class="dig_contactUs_title">就在此刻,开启绿色低碳新时代</p> <p class="dig_contactUs_desc">致电客服或联系当地经销商,我们会为您提供贴心细致的服务,并尽快安排专业人员上门安装</p> <a href="/cn/order-now" target="" onclick="try { gtag('event', 'Bottom_Banner_Buy_Click',{'Site_Country_Code_H': $('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventCategory': 'utility plant owners','eventAction':'Bottom_Banner_Buy_Click','eventLabel':'Order Now'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}"><div class="banner-buttons"><button id="ev_bt_1001" class="ev_button default dig_contactUs_default_btn button-transparent ml16 border-radius-24" title="" tabindex="0" type="button"><span class="ev_button_text">立即购买</span></button></div></a> </div> </div> <!--/HWDocContent--> </div> <div id="pageFooterWrapper" class=""> <div class="page-footer"> <div class="footer-main"> <div class="bread-crumb"> <a href="/cn">主页</a> <span> > </span> <div class="last_bread">电站业主</div> </div> <div class="footer-note"> <p> </p> </div> <div class="footer-top-pc"> <div class="footer-item"> <p class="footer-col-title"> 关于华为智能光伏 <span class="textItem_arr"></span> </p> <ul class="footer-col-list"> <li> <a href="/cn/news-room" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF9AE9F02', uem_label: '点击 页脚-新闻动态',}); } catch (e) {};try { gtag('event','Bottom_Navigation',{'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventCategory':document.location.pathname,'eventAction':'Bottom_Navigation', 'eventLabel': 'About FusionSolar'+'+'+'News'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">新闻动态</a> </li> <li> <a href="/cn/events-list" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF685BEE2', uem_label: '点击 页脚-展会活动',}); } catch (e) {};try { gtag('event','Bottom_Navigation',{'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventCategory':document.location.pathname,'eventAction':'Bottom_Navigation', 'eventLabel': 'About FusionSolar'+'+'+'Events'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">展会活动</a> </li> <li> <a href="/cn/success-stories" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF600C6A9', uem_label: '点击 页脚-成功故事', }); } catch (e) {};try { gtag('event','Bottom_Navigation',{'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventCategory':document.location.pathname,'eventAction':'Bottom_Navigation', 'eventLabel': 'About FusionSolar'+'+'+'Success Stories'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">成功故事</a> </li> <li> <a href="/cn/events-list/cn/2023/publications" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BFA7FE925', uem_label: '点击 页脚-出版物', }); } catch (e) {};try { gtag('event','Bottom_Navigation',{'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventCategory':document.location.pathname,'eventAction':'Bottom_Navigation', 'eventLabel': 'About FusionSolar'+'+'+'Publications'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">出版物</a> </li> <li> <a href="/cn/newsletter" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF92D4039', uem_label: '点击 页脚-邮件订阅', }); } catch (e) {};try { gtag('event','Bottom_Navigation',{'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventCategory':document.location.pathname,'eventAction':'Bottom_Navigation', 'eventLabel': 'About FusionSolar'+'+'+'Newsletter'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">邮件订阅</a> </li> </ul> </div> <div class="footer-item"> <p class="footer-col-title"> 产品 & 解决方案 <span class="textItem_arr"></span> </p> <ul class="footer-col-list"> <li> <a href="/cn/professionals/residential" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BFC68A1B1', uem_label: '点击 页脚-家庭绿电', }); } catch (e) {};try { gtag('event','Bottom_Navigation',{'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventCategory':document.location.pathname,'eventAction':'Bottom_Navigation', 'eventLabel': 'Products & Solution'+'+'+'Residential Smart PV & ESS Solution'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">家庭绿电</a> </li> <li> <a href="/cn/professionals/c-i" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF917FCBF', uem_label: '点击 页脚-行业绿电', }); } catch (e) {};try { gtag('event','Bottom_Navigation',{'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventCategory':document.location.pathname,'eventAction':'Bottom_Navigation', 'eventLabel': 'Products & Solution'+'+'+'C&I Smart PV & ESS Solution'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">行业绿电</a> </li> <li> <a href="/cn/professionals/utility" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BFC129699', uem_label: '点击 页脚-智能光伏电站',}); } catch (e) {};try { gtag('event','Bottom_Navigation',{'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventCategory':document.location.pathname,'eventAction':'Bottom_Navigation', 'eventLabel': 'Products & Solution'+'+'+'Utility Smart PV Solution'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">智能光伏电站</a> </li> <li> <a href="/cn/professionals/ess" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF9407DA2', uem_label: '点击 页脚-智能组串式储能',}); } catch (e) {};try { gtag('event','Bottom_Navigation',{'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventCategory':document.location.pathname,'eventAction':'Bottom_Navigation', 'eventLabel': 'Products & Solution'+'+'+'Utility Smart String ESS Solution'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">智能组串式储能</a> </li> <li> <a href="/cn/professionals/micro-grid" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF856541C', uem_label: '点击 页脚-智能微网', }); } catch (e) {};try { gtag('event','Bottom_Navigation',{'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventCategory':document.location.pathname,'eventAction':'Bottom_Navigation', 'eventLabel': 'Products & Solution'+'+'+'Smart Micro-grid Solution'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">智能微网</a> </li> <li> <a href="/cn/professionals/all-products" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF82FAC94', uem_label: '点击 页脚-所有产品',}); } catch (e) {};try { gtag('event','Bottom_Navigation',{'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventCategory':document.location.pathname,'eventAction':'Bottom_Navigation', 'eventLabel': 'Products & Solution'+'+'+'All Products'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">所有产品</a> </li> <li> <a href="/cn/professionals/SmartDesign" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BFA50BFA2', uem_label: '点击 页脚-智能设计工具', }); } catch (e) {};try { gtag('event','Bottom_Navigation',{'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventCategory':document.location.pathname,'eventAction':'Bottom_Navigation', 'eventLabel': 'Products & Solution'+'+'+'SmartDesign 2.0'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">智能设计工具</a> </li> </ul> </div> <div class="footer-item"> <p class="footer-col-title"> 合作伙伴 <span class="textItem_arr"></span> </p> <ul class="footer-col-list"> <li> <a href="/cn/partners/partner-introduction" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BFAA8957F', uem_label: '点击 页脚-伙伴介绍',}); } catch (e) {};try { gtag('event','Bottom_Navigation',{'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventCategory':document.location.pathname,'eventAction':'Bottom_Navigation', 'eventLabel': 'Partners'+'+'+'Partner Introduction'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">伙伴介绍</a> </li> <li> <a href="https://partner.huawei.com/ecpri/#/?lang=zh_CN" target="_blank" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BF9089592', uem_label: '点击 页脚-成为伙伴', }); } catch (e) {};try { gtag('event','Bottom_Navigation',{'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventCategory':document.location.pathname,'eventAction':'Bottom_Navigation', 'eventLabel': 'Partners'+'+'+'Become a Partner'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">成为伙伴</a> </li> <li> <a href="/cn/partners/map?type=installer" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BFA5D8847', uem_label: '点击 页脚-寻找安装商',}); } catch (e) {};try { gtag('event','Bottom_Navigation',{'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventCategory':document.location.pathname,'eventAction':'Bottom_Navigation', 'eventLabel': 'Partners'+'+'+'Find an Installer'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">寻找安装商</a> </li> <li> <a href="https://digitalpower.huawei.com/partner#/cn/main" target="_blank" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BFC902FA5', uem_label: '点击 页脚-Power-Partner', }); } catch (e) {};try { gtag('event','Bottom_Navigation',{'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventCategory':document.location.pathname,'eventAction':'Bottom_Navigation', 'eventLabel': 'Partners'+'+'+'Power-Partner'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">Power-Partner</a> </li> </ul> </div> <div class="footer-item"> <p class="footer-col-title"> 服务与支持 <span class="textItem_arr"></span> </p> <ul class="footer-col-list"> <li> <a href="/cn/service-support/tsc" target="" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BFE8E0187', uem_label: '点击 页脚-技术支持中心', }); } catch (e) {};try { gtag('event','Bottom_Navigation',{'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventCategory':document.location.pathname,'eventAction':'Bottom_Navigation', 'eventLabel': 'Service & Support'+'+'+'Technical Support Center'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">技术支持中心</a> </li> <li> <a href="https://digitalpower.huawei.com/power-marketing/#/cn/home" target="_blank" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BFB55CBBB', uem_label: '点击 页脚-营销资料中心', }); } catch (e) {};try { gtag('event','Bottom_Navigation',{'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventCategory':document.location.pathname,'eventAction':'Bottom_Navigation', 'eventLabel': 'Service & Support'+'+'+'MKT Document'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">营销资料中心</a> </li> <li> <a href="https://solar.huawei.com/cn/info/" target="_blank" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BFDC6C32C', uem_label: '点击 页脚-产品资料中心', }); } catch (e) {};try { gtag('event','Bottom_Navigation',{'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventCategory':document.location.pathname,'eventAction':'Bottom_Navigation', 'eventLabel': 'Service & Support'+'+'+'Product Document'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">产品资料中心</a> </li> <li> <a href="https://community.solar.huawei.com/cn/index.html" target="_blank" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BFEA13070', uem_label: '点击 页脚-社区', }); } catch (e) {};try { gtag('event','Bottom_Navigation',{'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventCategory':document.location.pathname,'eventAction':'Bottom_Navigation', 'eventLabel': 'Service & Support'+'+'+'Community'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">社区</a> </li> <li> <a href="https://forum.huawei.com/enterprise/zh/forums/580879799675662336/580879823092461568" target="_blank" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BFC06F0BC', uem_label: '点击 页脚-论坛', }); } catch (e) {};try { gtag('event','Bottom_Navigation',{'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventCategory':document.location.pathname,'eventAction':'Bottom_Navigation', 'eventLabel': 'Service & Support'+'+'+'Forum'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">论坛</a> </li> <li> <a href="https://digitalpower.huawei.com/robotchat/#/home/index?lang=zh_CN&domain=smartpv&from_title_zh=1117" target="_blank" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BFBC0C044', uem_label: '点击 页脚-在线支持', }); } catch (e) {};try { gtag('event','Bottom_Navigation',{'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventCategory':document.location.pathname,'eventAction':'Bottom_Navigation', 'eventLabel': 'Service & Support'+'+'+'Online Support'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">在线支持</a> </li> </ul> </div> <div class="footer-item"> <p class="footer-col-title"> 快速链接 <span class="textItem_arr"></span> </p> <ul class="footer-col-list"> <li> <a href="https://www.huawei.com/cn" target="_blank" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6C00CC864D', uem_label: '点击 页脚-华为集团',}); } catch (e) {};try { gtag('event','Bottom_Navigation',{'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventCategory':document.location.pathname,'eventAction':'Bottom_Navigation', 'eventLabel': 'Quick Links'+'+'+'Huawei Corporate'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">华为集团</a> </li> <li> <a href="https://e.huawei.com/cn" target="_blank" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BFE2F1FDA', uem_label: '点击 页脚-华为企业业务', }); } catch (e) {};try { gtag('event','Bottom_Navigation',{'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventCategory':document.location.pathname,'eventAction':'Bottom_Navigation', 'eventLabel': 'Quick Links'+'+'+'Huawei Enterprise'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">华为企业业务</a> </li> <li> <a href="https://digitalpower.huawei.com/cn/?from=solar" target="_blank" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BFF11F4E4', uem_label: '点击 页脚-华为数字能源', }); } catch (e) {};try { gtag('event','Bottom_Navigation',{'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventCategory':document.location.pathname,'eventAction':'Bottom_Navigation', 'eventLabel': 'Quick Links'+'+'+'Huawei Digital Power'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">华为数字能源</a> </li> <li> <a href="https://intl.fusionsolar.huawei.com/pvmswebsite/nologin/assets/build/index.html#/jumppage" target="_blank" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6C005E7B45', uem_label: '点击 页脚-下载智能光伏App(移动端)',}); } catch (e) {};try { gtag('event','Bottom_Navigation',{'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventCategory':document.location.pathname,'eventAction':'Bottom_Navigation', 'eventLabel': 'Quick Links'+'+'+'Download FusionSolar App (Mobile Version)'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">下载智能光伏App(移动端)</a> </li> <li> <a href="https://intl.fusionsolar.huawei.com" target="_blank" onclick="try { window.hwa('trackStructEvent', { uem_id: 'P81D448CBFCA22F_C81DE6BFDEA6A0D', uem_label: '点击 页脚-登录智能光伏管理系统',}); } catch (e) {};try { gtag('event','Bottom_Navigation',{'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventCategory':document.location.pathname,'eventAction':'Bottom_Navigation', 'eventLabel': 'Quick Links'+'+'+'FusionSolar SmartPVMS'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}">登录智能光伏管理系统</a> </li> </ul> </div> </div> <div class="footer-buttom"> <div class="footer-copyright-content"> <div class="footer-copyright footer-copyright-item"> © 2024 华为技术有限公司 </div> <div class="footer-law"> <span class="footer-copyright-item"> <a class="item-link" href="/cn/privacy" target="" onclick="try { gtag('event','Bottom_Navigation',{'Site_Country_Code_H':$('html').attr('data-region').replace(/[/]/g, '').toUpperCase(),'eventCategory':document.location.pathname,'eventAction':'Bottom_Navigation','eventLabel': 'Privacy'+'+'+(window.location.origin + window.location.pathname).replace(/\/$/, '')}) } catch (error) {if (error.message === 'gtag is not defined') {console.log('Google Analytics is not available. Event tracking is disabled.');} else {throw error;}}" rel="noreferrer"> 隐私政策 </a> </span> </div> </div> <div class="footer-link"> <style type="text/css"> .page-footer .footer-buttom .footer-link .link-img-shipinhao { background: url("/-/media/SolarV4/images/Home/update/shipinhao.svg") 0 0 no-repeat; } .dark .page-footer .footer-buttom .footer-link .link-img-shipinhao { background: url("/-/media/SolarV4/images/Home/update/shipinhao_dark_v5.svg") 0 0 no-repeat; } </style> <div class="social-item social-icon"> <span class="footer-link-img link-img-wechat"> </span> <div class="hover-pop"> <div class="icon-close"></div> <div class="pop-text"> <p>官方微信</p> </div> <div class="pop-img"> <img src="/Assets/Solar/v4/img/common/wechat.png"> </div> </div> </div> <div class="social-item social-icon last-icon"> <span class="footer-link-img link-img-toutiao"> </span> <div class="hover-pop"> <div class="icon-close"></div> <div class="pop-text"> <p>头条</p> </div> <div class="pop-img"> <img src="/Assets/Solar/v4/img/common/toutiao.png"> </div> </div> </div> <div class="social-item social-icon last-icon"> <span class="footer-link-img link-img-shipinhao"> </span> <div class="hover-pop"> <div class="icon-close"></div> <div class="pop-text"> <p>视频号</p> </div> <div class="pop-img"> <img src="/-/media/SolarV4/images/Home/update/home-footer-icon_3.jpg"> </div> </div> </div> <!-- cookie --> <script> (function (config) { if (!window.location.href.includes('/cn')) { return } var namespace = config.namespace || "hwa"; if (self[namespace] || document.querySelector("script#uem_f")) { return; } self[namespace] = function () { (self[namespace].q = self[namespace].q || []).push(arguments); }; var element = document.createElement("script"); element.TRACKER_CONFIG = config; element.async = true; element.id = "uem_f"; element.src = config.src + "?_" + new Date().toJSON().split("T")[0]; document.head.appendChild(element); })({ platform: "web", edition: "his", env: "prod", appKey: "4ab0d2e51b4af11d0a9d947a89a882cb", src: "https://hwa.his.huawei.com/dist/uem_f.js" }); </script> <script charset="UTF-8" src="https://static.sensorsdata.cn/sdk/1.26.17/sensorsdata.min.js?ver=202411131551"></script> <script charset="UTF-8"> var sensors = window['sensorsDataAnalytic201505']; sensors.use('PageLeave', {}); sensors.init({ server_url: 'https://cdp.test.huawei.com/sa', heatmap: { scroll_notice_map: 'default' }, use_client_time: true, send_type: 'beacon' }); sensors.quick('autoTrack'); </script> <div class="browsehappy ReadPolicy"> <p>本站点使用cookies,继续浏览表示您同意我们使用cookies。<a href="https://solar.huawei.com/cn/privacy" target="_blank"> <span>Cookies和隐私政策 ></span></a><a href="javascript:closeCookieBanner()" class="close" title="close"></a> </p> </div> <script> setTimeout(function() { jQuery.Cache = { get: function (key) { var val; try { val = JSON.parse(decodeURIComponent(localStorage.getItem(key))); } catch (_e) { } return val; }, set: function (key, _value, expireDays) { var value = _value; if (!value) return; if (typeof value !== "object") { value = { value: _value }; } var d = new Date(); d.setTime(d.getTime() + 24 * 60 * 60 * 1000 * expireDays); var expire = d; value.expire = expire; localStorage.setItem(key, encodeURIComponent(JSON.stringify(value))); }, del: function (key) { localStorage.removeItem(key); }, }; const commonModule = window.commonModule || {}; commonModule.browsehappy = function browsehappy() { if (!$.Cache) { setTimeout(() => { browsehappy(); }, 200); return; } let browsehappyCache = $.Cache.get('browsehappy'); let hideCache = function () { $.Cache.set('browsehappy', 'browsehappy', 365); }; $(document).on('click', '.browsehappy a.close', function (e) { $(this).closest('.browsehappy').slideUp(hideCache); }); try { if (!browsehappyCache || new Date(browsehappyCache.expire) - new Date() <= 0) { $.Cache.del('browsehappy'); $('.browsehappy').prependTo('body').slideDown(); $('.browsehappy').css('display', 'block'); history.scrollRestoration = 'manual'; $('html,body').animate( { scrollTop: 0, }, 'fast' ); } else { history.scrollRestoration = 'auto'; } } catch (_e) { } }; commonModule.browsehappy(); function closeCookieBanner() { hideCache(); $('.browsehappy').css('display', 'none') } },10) </script> <style> .ReadPolicy { background-color: #eeeeee; color: #282828; display: none; padding: 16px 0; width: 100%; z-index: 10000; position: fixed; bottom: 0; right: 0; } .ReadPolicy p { margin: 0 auto; font-size: 14px; line-height: 1.225; position: relative; padding-right: 20px; padding-left: 20px; width: 93.705%; max-width: 1799.136px; text-align: center; } .ReadPolicy p span { display: inline-block; vertical-align: top; letter-spacing: normal; } .ReadPolicy p a em { display: inline-block; vertical-align: top; font-weight: bold; transition: all 0.5s; letter-spacing: normal; } .ReadPolicy a { color: #c7000b; } .ReadPolicy p a:hover em { transform: translateX(10px); } .ReadPolicy .close { text-decoration: none; position: absolute; top: 0; right: 0px; display: block; height: 30px; width: 30px; color: #fff; line-height: 30px; text-align: center; float: right; margin-top: -7px; opacity: 1; } .ReadPolicy .close:before { content: '✖'; width: 30px; height: 30px; display: block; font-family: 'corpfont' !important; color: #333; font-size: 15px; } @media (max-width: 1024px) { .ReadPolicy { position: fixed; bottom: 0; left: 0; z-index: 999; width: 100%; } .ReadPolicy[style*='block']~.btn-go-top { bottom: 100px; } .ReadPolicy[style*='block']~.popup-icon { bottom: 143px; } .ReadPolicy[style*='block']~footer { margin-bottom: 66px; } } </style> </div> </div> </div> </div> </div> <div id="pageSideTips"> <div class="side-tips"> <div class="side-tip"> <div class="icon-download"></div> <div class="hover grid--vertical-align-center"> <a href="https://digitalpower.huawei.com/power-marketing/#/cn/home" target="_blank"> <div class="side-tip-text ml18">营销资料中心</div> </a> <div class="side-tip-line ml12"></div> <a href="https://solar.huawei.com/cn/info/" target="_blank"> <div class="side-tip-text ml12">产品资料中心</div> </a> <div class="icon-download"></div> </div> </div> <div class="side-tip"> <a href="https://community.solar.huawei.com/cn/index.html" target="_blank"> <div class="icon-community"></div> <div class="hover grid--vertical-align-center"> <div class="side-tip-text ml24">社区</div> <div class="icon-community"></div> </div> </a> </div> <div class="side-tip"> <a href="https://digitalpower.huawei.com/robotchat/#/home/index?lang=zh_CN&domain=smartpv&from_title_zh=1117" target="_blank"> <div class="icon-onlineChat"></div> <div class="hover grid--vertical-align-center"> <div class="side-tip-text ml24">在线支持</div> <div class="icon-onlineChat"></div> </div> </a> </div> <div class='side-tip back-top'> <span></span> </div> </div> </div> </div> <!--<script src="/Assets/Solar/v4/js/utils/common.js"></script>--> <script src="/Assets/Solar/v4/js/utils/publicPages.js?ver=202411131551"></script> <!--Solar track code--> <script type="text/javascript"> var utag_data = { site_name: "solar", site_type: "website" }; </script> <script type="text/javascript"> (function (a, b, c, d) { a = ((navigator.languages && navigator.languages.length) ? navigator.languages[0] : (navigator.browserLanguage || navigator.userLanguage || navigator.language || 'en')).toLowerCase() == "zh-cn" ? '//tags.tiqcdn.cn/utag/huawei/solar/prod/utag.js' : '//tags.tiqcdn.com/utag/huawei/solar/prod/utag.js'; b = document; c = 'script'; d = b.createElement(c); d.src = a; d.type = 'text/java' + c; d.async = true; a = b.getElementsByTagName(c)[0]; a.parentNode.insertBefore(d, a); })(); </script> <script src="/-/media/SolarV4/solar-version2/common/data-analysis/analysis-v2.js?ver=202411131551"></script> <script src="/-/media/SolarV4/solar-version2/common/seo/common-seo.js?ver=202411131551"></script> <script src="/Assets/Solar/v4/js/utils/swiper-new.min.js?ver=202411131551"></script> <script src="/Assets/Solar/v4/js/utils/oft.js?ver=202411131551"></script> <script type='text/javascript' src="/Assets/Solar/v4/js/Owners/common.js?ver=202411131551"></script> <script type='text/javascript' src="/Assets/Solar/v4/js/Owners/UtilityPlantOwners.js?ver=202411131551"></script> </body> </html>