3NAxHUEaM6RAG7rVDPL9L6DFZWkrqFtY98t · data · 2.7c767379.chunk.js?4?4?0
{
"2.7c767379.chunk.js?4?4?0": "base64:bihlKXtyZXR1cm4gdGhpcy5jbG9uZSgpLml1c2hybihlKX0sby5wcm90b3R5cGUudGVzdG49ZnVuY3Rpb24oZSl7bigibnVtYmVyIj09PXR5cGVvZiBlJiZlPj0wKTt2YXIgdD1lJTI2LHI9KGUtdCkvMjYsaT0xPDx0O3JldHVybiEodGhpcy5sZW5ndGg8PXIpJiYhISh0aGlzLndvcmRzW3JdJmkpfSxvLnByb3RvdHlwZS5pbWFza249ZnVuY3Rpb24oZSl7bigibnVtYmVyIj09PXR5cGVvZiBlJiZlPj0wKTt2YXIgdD1lJTI2LHI9KGUtdCkvMjY7aWYobigwPT09dGhpcy5uZWdhdGl2ZSwiaW1hc2tuIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZSBudW1iZXJzIiksdGhpcy5sZW5ndGg8PXIpcmV0dXJuIHRoaXM7aWYoMCE9PXQmJnIrKyx0aGlzLmxlbmd0aD1NYXRoLm1pbihyLHRoaXMubGVuZ3RoKSwwIT09dCl7dmFyIGk9NjcxMDg4NjNeNjcxMDg4NjM+Pj50PDx0O3RoaXMud29yZHNbdGhpcy5sZW5ndGgtMV0mPWl9cmV0dXJuIHRoaXMuc3RyaXAoKX0sby5wcm90b3R5cGUubWFza249ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbWFza24oZSl9LG8ucHJvdG90eXBlLmlhZGRuPWZ1bmN0aW9uKGUpe3JldHVybiBuKCJudW1iZXIiPT09dHlwZW9mIGUpLG4oZTw2NzEwODg2NCksZTwwP3RoaXMuaXN1Ym4oLWUpOjAhPT10aGlzLm5lZ2F0aXZlPzE9PT10aGlzLmxlbmd0aCYmKDB8dGhpcy53b3Jkc1swXSk8ZT8odGhpcy53b3Jkc1swXT1lLSgwfHRoaXMud29yZHNbMF0pLHRoaXMubmVnYXRpdmU9MCx0aGlzKToodGhpcy5uZWdhdGl2ZT0wLHRoaXMuaXN1Ym4oZSksdGhpcy5uZWdhdGl2ZT0xLHRoaXMpOnRoaXMuX2lhZGRuKGUpfSxvLnByb3RvdHlwZS5faWFkZG49ZnVuY3Rpb24oZSl7dGhpcy53b3Jkc1swXSs9ZTtmb3IodmFyIHQ9MDt0PHRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzW3RdPj02NzEwODg2NDt0KyspdGhpcy53b3Jkc1t0XS09NjcxMDg4NjQsdD09PXRoaXMubGVuZ3RoLTE/dGhpcy53b3Jkc1t0KzFdPTE6dGhpcy53b3Jkc1t0KzFdKys7cmV0dXJuIHRoaXMubGVuZ3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLHQrMSksdGhpc30sby5wcm90b3R5cGUuaXN1Ym49ZnVuY3Rpb24oZSl7aWYobigibnVtYmVyIj09PXR5cGVvZiBlKSxuKGU8NjcxMDg4NjQpLGU8MClyZXR1cm4gdGhpcy5pYWRkbigtZSk7aWYoMCE9PXRoaXMubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmlhZGRuKGUpLHRoaXMubmVnYXRpdmU9MSx0aGlzO2lmKHRoaXMud29yZHNbMF0tPWUsMT09PXRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzWzBdPDApdGhpcy53b3Jkc1swXT0tdGhpcy53b3Jkc1swXSx0aGlzLm5lZ2F0aXZlPTE7ZWxzZSBmb3IodmFyIHQ9MDt0PHRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzW3RdPDA7dCsrKXRoaXMud29yZHNbdF0rPTY3MTA4ODY0LHRoaXMud29yZHNbdCsxXS09MTtyZXR1cm4gdGhpcy5zdHJpcCgpfSxvLnByb3RvdHlwZS5hZGRuPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmNsb25lKCkuaWFkZG4oZSl9LG8ucHJvdG90eXBlLnN1Ym49ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc3VibihlKX0sby5wcm90b3R5cGUuaWFicz1mdW5jdGlvbigpe3JldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpc30sby5wcm90b3R5cGUuYWJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pYWJzKCl9LG8ucHJvdG90eXBlLl9pc2hsbnN1Ym11bD1mdW5jdGlvbihlLHQscil7dmFyIGksbyxhPWUubGVuZ3RoK3I7dGhpcy5fZXhwYW5kKGEpO3ZhciBzPTA7Zm9yKGk9MDtpPGUubGVuZ3RoO2krKyl7bz0oMHx0aGlzLndvcmRzW2krcl0pK3M7dmFyIHU9KDB8ZS53b3Jkc1tpXSkqdDtzPSgoby09NjcxMDg4NjMmdSk+PjI2KS0odS82NzEwODg2NHwwKSx0aGlzLndvcmRzW2krcl09NjcxMDg4NjMmb31mb3IoO2k8dGhpcy5sZW5ndGgtcjtpKyspcz0obz0oMHx0aGlzLndvcmRzW2krcl0pK3MpPj4yNix0aGlzLndvcmRzW2krcl09NjcxMDg4NjMmbztpZigwPT09cylyZXR1cm4gdGhpcy5zdHJpcCgpO2ZvcihuKC0xPT09cykscz0wLGk9MDtpPHRoaXMubGVuZ3RoO2krKylzPShvPS0oMHx0aGlzLndvcmRzW2ldKStzKT4+MjYsdGhpcy53b3Jkc1tpXT02NzEwODg2MyZvO3JldHVybiB0aGlzLm5lZ2F0aXZlPTEsdGhpcy5zdHJpcCgpfSxvLnByb3RvdHlwZS5fd29yZERpdj1mdW5jdGlvbihlLHQpe3ZhciByPSh0aGlzLmxlbmd0aCxlLmxlbmd0aCksbj10aGlzLmNsb25lKCksaT1lLGE9MHxpLndvcmRzW2kubGVuZ3RoLTFdOzAhPT0ocj0yNi10aGlzLl9jb3VudEJpdHMoYSkpJiYoaT1pLnVzaGxuKHIpLG4uaXVzaGxuKHIpLGE9MHxpLndvcmRzW2kubGVuZ3RoLTFdKTt2YXIgcyx1PW4ubGVuZ3RoLWkubGVuZ3RoO2lmKCJtb2QiIT09dCl7KHM9bmV3IG8obnVsbCkpLmxlbmd0aD11KzEscy53b3Jkcz1uZXcgQXJyYXkocy5sZW5ndGgpO2Zvcih2YXIgYz0wO2M8cy5sZW5ndGg7YysrKXMud29yZHNbY109MH12YXIgZj1uLmNsb25lKCkuX2lzaGxuc3VibXVsKGksMSx1KTswPT09Zi5uZWdhdGl2ZSYmKG49ZixzJiYocy53b3Jkc1t1XT0xKSk7Zm9yKHZhciBsPXUtMTtsPj0wO2wtLSl7dmFyIGg9NjcxMDg4NjQqKDB8bi53b3Jkc1tpLmxlbmd0aCtsXSkrKDB8bi53b3Jkc1tpLmxlbmd0aCtsLTFdKTtmb3IoaD1NYXRoLm1pbihoL2F8MCw2NzEwODg2Myksbi5faXNobG5zdWJtdWwoaSxoLGwpOzAhPT1uLm5lZ2F0aXZlOyloLS0sbi5uZWdhdGl2ZT0wLG4uX2lzaGxuc3VibXVsKGksMSxsKSxuLmlzWmVybygpfHwobi5uZWdhdGl2ZV49MSk7cyYmKHMud29yZHNbbF09aCl9cmV0dXJuIHMmJnMuc3RyaXAoKSxuLnN0cmlwKCksImRpdiIhPT10JiYwIT09ciYmbi5pdXNocm4ocikse2RpdjpzfHxudWxsLG1vZDpufX0sby5wcm90b3R5cGUuZGl2bW9kPWZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gbighZS5pc1plcm8oKSksdGhpcy5pc1plcm8oKT97ZGl2Om5ldyBvKDApLG1vZDpuZXcgbygwKX06MCE9PXRoaXMubmVnYXRpdmUmJjA9PT1lLm5lZ2F0aXZlPyhzPXRoaXMubmVnKCkuZGl2bW9kKGUsdCksIm1vZCIhPT10JiYoaT1zLmRpdi5uZWcoKSksImRpdiIhPT10JiYoYT1zLm1vZC5uZWcoKSxyJiYwIT09YS5uZWdhdGl2ZSYmYS5pYWRkKGUpKSx7ZGl2OmksbW9kOmF9KTowPT09dGhpcy5uZWdhdGl2ZSYmMCE9PWUubmVnYXRpdmU/KHM9dGhpcy5kaXZtb2QoZS5uZWcoKSx0KSwibW9kIiE9PXQmJihpPXMuZGl2Lm5lZygpKSx7ZGl2OmksbW9kOnMubW9kfSk6MCE9PSh0aGlzLm5lZ2F0aXZlJmUubmVnYXRpdmUpPyhzPXRoaXMubmVnKCkuZGl2bW9kKGUubmVnKCksdCksImRpdiIhPT10JiYoYT1zLm1vZC5uZWcoKSxyJiYwIT09YS5uZWdhdGl2ZSYmYS5pc3ViKGUpKSx7ZGl2OnMuZGl2LG1vZDphfSk6ZS5sZW5ndGg+dGhpcy5sZW5ndGh8fHRoaXMuY21wKGUpPDA/e2RpdjpuZXcgbygwKSxtb2Q6dGhpc306MT09PWUubGVuZ3RoPyJkaXYiPT09dD97ZGl2OnRoaXMuZGl2bihlLndvcmRzWzBdKSxtb2Q6bnVsbH06Im1vZCI9PT10P3tkaXY6bnVsbCxtb2Q6bmV3IG8odGhpcy5tb2RuKGUud29yZHNbMF0pKX06e2Rpdjp0aGlzLmRpdm4oZS53b3Jkc1swXSksbW9kOm5ldyBvKHRoaXMubW9kbihlLndvcmRzWzBdKSl9OnRoaXMuX3dvcmREaXYoZSx0KTt2YXIgaSxhLHN9LG8ucHJvdG90eXBlLmRpdj1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5kaXZtb2QoZSwiZGl2IiwhMSkuZGl2fSxvLnByb3RvdHlwZS5tb2Q9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuZGl2bW9kKGUsIm1vZCIsITEpLm1vZH0sby5wcm90b3R5cGUudW1vZD1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5kaXZtb2QoZSwibW9kIiwhMCkubW9kfSxvLnByb3RvdHlwZS5kaXZSb3VuZD1mdW5jdGlvbihlKXt2YXIgdD10aGlzLmRpdm1vZChlKTtpZih0Lm1vZC5pc1plcm8oKSlyZXR1cm4gdC5kaXY7dmFyIHI9MCE9PXQuZGl2Lm5lZ2F0aXZlP3QubW9kLmlzdWIoZSk6dC5tb2Qsbj1lLnVzaHJuKDEpLGk9ZS5hbmRsbigxKSxvPXIuY21wKG4pO3JldHVybiBvPDB8fDE9PT1pJiYwPT09bz90LmRpdjowIT09dC5kaXYubmVnYXRpdmU/dC5kaXYuaXN1Ym4oMSk6dC5kaXYuaWFkZG4oMSl9LG8ucHJvdG90eXBlLm1vZG49ZnVuY3Rpb24oZSl7bihlPD02NzEwODg2Myk7Zm9yKHZhciB0PSgxPDwyNiklZSxyPTAsaT10aGlzLmxlbmd0aC0xO2k+PTA7aS0tKXI9KHQqcisoMHx0aGlzLndvcmRzW2ldKSklZTtyZXR1cm4gcn0sby5wcm90b3R5cGUuaWRpdm49ZnVuY3Rpb24oZSl7bihlPD02NzEwODg2Myk7Zm9yKHZhciB0PTAscj10aGlzLmxlbmd0aC0xO3I+PTA7ci0tKXt2YXIgaT0oMHx0aGlzLndvcmRzW3JdKSs2NzEwODg2NCp0O3RoaXMud29yZHNbcl09aS9lfDAsdD1pJWV9cmV0dXJuIHRoaXMuc3RyaXAoKX0sby5wcm90b3R5cGUuZGl2bj1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlkaXZuKGUpfSxvLnByb3RvdHlwZS5lZ2NkPWZ1bmN0aW9uKGUpe24oMD09PWUubmVnYXRpdmUpLG4oIWUuaXNaZXJvKCkpO3ZhciB0PXRoaXMscj1lLmNsb25lKCk7dD0wIT09dC5uZWdhdGl2ZT90LnVtb2QoZSk6dC5jbG9uZSgpO2Zvcih2YXIgaT1uZXcgbygxKSxhPW5ldyBvKDApLHM9bmV3IG8oMCksdT1uZXcgbygxKSxjPTA7dC5pc0V2ZW4oKSYmci5pc0V2ZW4oKTspdC5pdXNocm4oMSksci5pdXNocm4oMSksKytjO2Zvcih2YXIgZj1yLmNsb25lKCksbD10LmNsb25lKCk7IXQuaXNaZXJvKCk7KXtmb3IodmFyIGg9MCxwPTE7MD09PSh0LndvcmRzWzBdJnApJiZoPDI2OysraCxwPDw9MSk7aWYoaD4wKWZvcih0Lml1c2hybihoKTtoLS0gPjA7KShpLmlzT2RkKCl8fGEuaXNPZGQoKSkmJihpLmlhZGQoZiksYS5pc3ViKGwpKSxpLml1c2hybigxKSxhLml1c2hybigxKTtmb3IodmFyIGQ9MCx5PTE7MD09PShyLndvcmRzWzBdJnkpJiZkPDI2OysrZCx5PDw9MSk7aWYoZD4wKWZvcihyLml1c2hybihkKTtkLS0gPjA7KShzLmlzT2RkKCl8fHUuaXNPZGQoKSkmJihzLmlhZGQoZiksdS5pc3ViKGwpKSxzLml1c2hybigxKSx1Lml1c2hybigxKTt0LmNtcChyKT49MD8odC5pc3ViKHIpLGkuaXN1YihzKSxhLmlzdWIodSkpOihyLmlzdWIodCkscy5pc3ViKGkpLHUuaXN1YihhKSl9cmV0dXJue2E6cyxiOnUsZ2NkOnIuaXVzaGxuKGMpfX0sby5wcm90b3R5cGUuX2ludm1wPWZ1bmN0aW9uKGUpe24oMD09PWUubmVnYXRpdmUpLG4oIWUuaXNaZXJvKCkpO3ZhciB0PXRoaXMscj1lLmNsb25lKCk7dD0wIT09dC5uZWdhdGl2ZT90LnVtb2QoZSk6dC5jbG9uZSgpO2Zvcih2YXIgaSxhPW5ldyBvKDEpLHM9bmV3IG8oMCksdT1yLmNsb25lKCk7dC5jbXBuKDEpPjAmJnIuY21wbigxKT4wOyl7Zm9yKHZhciBjPTAsZj0xOzA9PT0odC53b3Jkc1swXSZmKSYmYzwyNjsrK2MsZjw8PTEpO2lmKGM+MClmb3IodC5pdXNocm4oYyk7Yy0tID4wOylhLmlzT2RkKCkmJmEuaWFkZCh1KSxhLml1c2hybigxKTtmb3IodmFyIGw9MCxoPTE7MD09PShyLndvcmRzWzBdJmgpJiZsPDI2OysrbCxoPDw9MSk7aWYobD4wKWZvcihyLml1c2hybihsKTtsLS0gPjA7KXMuaXNPZGQoKSYmcy5pYWRkKHUpLHMuaXVzaHJuKDEpO3QuY21wKHIpPj0wPyh0LmlzdWIociksYS5pc3ViKHMpKTooci5pc3ViKHQpLHMuaXN1YihhKSl9cmV0dXJuKGk9MD09PXQuY21wbigxKT9hOnMpLmNtcG4oMCk8MCYmaS5pYWRkKGUpLGl9LG8ucHJvdG90eXBlLmdjZD1mdW5jdGlvbihlKXtpZih0aGlzLmlzWmVybygpKXJldHVybiBlLmFicygpO2lmKGUuaXNaZXJvKCkpcmV0dXJuIHRoaXMuYWJzKCk7dmFyIHQ9dGhpcy5jbG9uZSgpLHI9ZS5jbG9uZSgpO3QubmVnYXRpdmU9MCxyLm5lZ2F0aXZlPTA7Zm9yKHZhciBuPTA7dC5pc0V2ZW4oKSYmci5pc0V2ZW4oKTtuKyspdC5pdXNocm4oMSksci5pdXNocm4oMSk7Zm9yKDs7KXtmb3IoO3QuaXNFdmVuKCk7KXQuaXVzaHJuKDEpO2Zvcig7ci5pc0V2ZW4oKTspci5pdXNocm4oMSk7dmFyIGk9dC5jbXAocik7aWYoaTwwKXt2YXIgbz10O3Q9cixyPW99ZWxzZSBpZigwPT09aXx8MD09PXIuY21wbigxKSlicmVhazt0LmlzdWIocil9cmV0dXJuIHIuaXVzaGxuKG4pfSxvLnByb3RvdHlwZS5pbnZtPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmVnY2QoZSkuYS51bW9kKGUpfSxvLnByb3RvdHlwZS5pc0V2ZW49ZnVuY3Rpb24oKXtyZXR1cm4gMD09PSgxJnRoaXMud29yZHNbMF0pfSxvLnByb3RvdHlwZS5pc09kZD1mdW5jdGlvbigpe3JldHVybiAxPT09KDEmdGhpcy53b3Jkc1swXSl9LG8ucHJvdG90eXBlLmFuZGxuPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLndvcmRzWzBdJmV9LG8ucHJvdG90eXBlLmJpbmNuPWZ1bmN0aW9uKGUpe24oIm51bWJlciI9PT10eXBlb2YgZSk7dmFyIHQ9ZSUyNixyPShlLXQpLzI2LGk9MTw8dDtpZih0aGlzLmxlbmd0aDw9cilyZXR1cm4gdGhpcy5fZXhwYW5kKHIrMSksdGhpcy53b3Jkc1tyXXw9aSx0aGlzO2Zvcih2YXIgbz1pLGE9cjswIT09byYmYTx0aGlzLmxlbmd0aDthKyspe3ZhciBzPTB8dGhpcy53b3Jkc1thXTtvPShzKz1vKT4+PjI2LHMmPTY3MTA4ODYzLHRoaXMud29yZHNbYV09c31yZXR1cm4gMCE9PW8mJih0aGlzLndvcmRzW2FdPW8sdGhpcy5sZW5ndGgrKyksdGhpc30sby5wcm90b3R5cGUuaXNaZXJvPWZ1bmN0aW9uKCl7cmV0dXJuIDE9PT10aGlzLmxlbmd0aCYmMD09PXRoaXMud29yZHNbMF19LG8ucHJvdG90eXBlLmNtcG49ZnVuY3Rpb24oZSl7dmFyIHQscj1lPDA7aWYoMCE9PXRoaXMubmVnYXRpdmUmJiFyKXJldHVybi0xO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiZyKXJldHVybiAxO2lmKHRoaXMuc3RyaXAoKSx0aGlzLmxlbmd0aD4xKXQ9MTtlbHNle3ImJihlPS1lKSxuKGU8PTY3MTA4ODYzLCJOdW1iZXIgaXMgdG9vIGJpZyIpO3ZhciBpPTB8dGhpcy53b3Jkc1swXTt0PWk9PT1lPzA6aTxlPy0xOjF9cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlPzB8LXQ6dH0sby5wcm90b3R5cGUuY21wPWZ1bmN0aW9uKGUpe2lmKDAhPT10aGlzLm5lZ2F0aXZlJiYwPT09ZS5uZWdhdGl2ZSlyZXR1cm4tMTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmMCE9PWUubmVnYXRpdmUpcmV0dXJuIDE7dmFyIHQ9dGhpcy51Y21wKGUpO3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZT8wfC10OnR9LG8ucHJvdG90eXBlLnVjbXA9ZnVuY3Rpb24oZSl7aWYodGhpcy5sZW5ndGg+ZS5sZW5ndGgpcmV0dXJuIDE7aWYodGhpcy5sZW5ndGg8ZS5sZW5ndGgpcmV0dXJuLTE7Zm9yKHZhciB0PTAscj10aGlzLmxlbmd0aC0xO3I+PTA7ci0tKXt2YXIgbj0wfHRoaXMud29yZHNbcl0saT0wfGUud29yZHNbcl07aWYobiE9PWkpe248aT90PS0xOm4+aSYmKHQ9MSk7YnJlYWt9fXJldHVybiB0fSxvLnByb3RvdHlwZS5ndG49ZnVuY3Rpb24oZSl7cmV0dXJuIDE9PT10aGlzLmNtcG4oZSl9LG8ucHJvdG90eXBlLmd0PWZ1bmN0aW9uKGUpe3JldHVybiAxPT09dGhpcy5jbXAoZSl9LG8ucHJvdG90eXBlLmd0ZW49ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuY21wbihlKT49MH0sby5wcm90b3R5cGUuZ3RlPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmNtcChlKT49MH0sby5wcm90b3R5cGUubHRuPWZ1bmN0aW9uKGUpe3JldHVybi0xPT09dGhpcy5jbXBuKGUpfSxvLnByb3RvdHlwZS5sdD1mdW5jdGlvbihlKXtyZXR1cm4tMT09PXRoaXMuY21wKGUpfSxvLnByb3RvdHlwZS5sdGVuPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmNtcG4oZSk8PTB9LG8ucHJvdG90eXBlLmx0ZT1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5jbXAoZSk8PTB9LG8ucHJvdG90eXBlLmVxbj1mdW5jdGlvbihlKXtyZXR1cm4gMD09PXRoaXMuY21wbihlKX0sby5wcm90b3R5cGUuZXE9ZnVuY3Rpb24oZSl7cmV0dXJuIDA9PT10aGlzLmNtcChlKX0sby5yZWQ9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBFKGUpfSxvLnByb3RvdHlwZS50b1JlZD1mdW5jdGlvbihlKXtyZXR1cm4gbighdGhpcy5yZWQsIkFscmVhZHkgYSBudW1iZXIgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSxuKDA9PT10aGlzLm5lZ2F0aXZlLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLGUuY29udmVydFRvKHRoaXMpLl9mb3JjZVJlZChlKX0sby5wcm90b3R5cGUuZnJvbVJlZD1mdW5jdGlvbigpe3JldHVybiBuKHRoaXMucmVkLCJmcm9tUmVkIHdvcmtzIG9ubHkgd2l0aCBudW1iZXJzIGluIHJlZHVjdGlvbiBjb250ZXh0IiksdGhpcy5yZWQuY29udmVydEZyb20odGhpcyl9LG8ucHJvdG90eXBlLl9mb3JjZVJlZD1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5yZWQ9ZSx0aGlzfSxvLnByb3RvdHlwZS5mb3JjZVJlZD1mdW5jdGlvbihlKXtyZXR1cm4gbighdGhpcy5yZWQsIkFscmVhZHkgYSBudW1iZXIgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSx0aGlzLl9mb3JjZVJlZChlKX0sby5wcm90b3R5cGUucmVkQWRkPWZ1bmN0aW9uKGUpe3JldHVybiBuKHRoaXMucmVkLCJyZWRBZGQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuYWRkKHRoaXMsZSl9LG8ucHJvdG90eXBlLnJlZElBZGQ9ZnVuY3Rpb24oZSl7cmV0dXJuIG4odGhpcy5yZWQsInJlZElBZGQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuaWFkZCh0aGlzLGUpfSxvLnByb3RvdHlwZS5yZWRTdWI9ZnVuY3Rpb24oZSl7cmV0dXJuIG4odGhpcy5yZWQsInJlZFN1YiB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5zdWIodGhpcyxlKX0sby5wcm90b3R5cGUucmVkSVN1Yj1mdW5jdGlvbihlKXtyZXR1cm4gbih0aGlzLnJlZCwicmVkSVN1YiB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5pc3ViKHRoaXMsZSl9LG8ucHJvdG90eXBlLnJlZFNobD1mdW5jdGlvbihlKXtyZXR1cm4gbih0aGlzLnJlZCwicmVkU2hsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLnNobCh0aGlzLGUpfSxvLnByb3RvdHlwZS5yZWRNdWw9ZnVuY3Rpb24oZSl7cmV0dXJuIG4odGhpcy5yZWQsInJlZE11bCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5Mih0aGlzLGUpLHRoaXMucmVkLm11bCh0aGlzLGUpfSxvLnByb3RvdHlwZS5yZWRJTXVsPWZ1bmN0aW9uKGUpe3JldHVybiBuKHRoaXMucmVkLCJyZWRNdWwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTIodGhpcyxlKSx0aGlzLnJlZC5pbXVsKHRoaXMsZSl9LG8ucHJvdG90eXBlLnJlZFNxcj1mdW5jdGlvbigpe3JldHVybiBuKHRoaXMucmVkLCJyZWRTcXIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuc3FyKHRoaXMpfSxvLnByb3RvdHlwZS5yZWRJU3FyPWZ1bmN0aW9uKCl7cmV0dXJuIG4odGhpcy5yZWQsInJlZElTcXIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuaXNxcih0aGlzKX0sby5wcm90b3R5cGUucmVkU3FydD1mdW5jdGlvbigpe3JldHVybiBuKHRoaXMucmVkLCJyZWRTcXJ0IHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnNxcnQodGhpcyl9LG8ucHJvdG90eXBlLnJlZEludm09ZnVuY3Rpb24oKXtyZXR1cm4gbih0aGlzLnJlZCwicmVkSW52bSB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5pbnZtKHRoaXMpfSxvLnByb3RvdHlwZS5yZWROZWc9ZnVuY3Rpb24oKXtyZXR1cm4gbih0aGlzLnJlZCwicmVkTmVnIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLm5lZyh0aGlzKX0sby5wcm90b3R5cGUucmVkUG93PWZ1bmN0aW9uKGUpe3JldHVybiBuKHRoaXMucmVkJiYhZS5yZWQsInJlZFBvdyhub3JtYWxOdW0pIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQucG93KHRoaXMsZSl9O3ZhciBnPXtrMjU2Om51bGwscDIyNDpudWxsLHAxOTI6bnVsbCxwMjU1MTk6bnVsbH07ZnVuY3Rpb24gdihlLHQpe3RoaXMubmFtZT1lLHRoaXMucD1uZXcgbyh0LDE2KSx0aGlzLm49dGhpcy5wLmJpdExlbmd0aCgpLHRoaXMuaz1uZXcgbygxKS5pdXNobG4odGhpcy5uKS5pc3ViKHRoaXMucCksdGhpcy50bXA9dGhpcy5fdG1wKCl9ZnVuY3Rpb24gbSgpe3YuY2FsbCh0aGlzLCJrMjU2IiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZjMmYiKX1mdW5jdGlvbiBiKCl7di5jYWxsKHRoaXMsInAyMjQiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMSIpfWZ1bmN0aW9uIF8oKXt2LmNhbGwodGhpcywicDE5MiIsImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZmZmZmZmZmIGZmZmZmZmZmIil9ZnVuY3Rpb24gUygpe3YuY2FsbCh0aGlzLCIyNTUxOSIsIjdmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZWQiKX1mdW5jdGlvbiBFKGUpe2lmKCJzdHJpbmciPT09dHlwZW9mIGUpe3ZhciB0PW8uX3ByaW1lKGUpO3RoaXMubT10LnAsdGhpcy5wcmltZT10fWVsc2UgbihlLmd0bigxKSwibW9kdWx1cyBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAxIiksdGhpcy5tPWUsdGhpcy5wcmltZT1udWxsfWZ1bmN0aW9uIHcoZSl7RS5jYWxsKHRoaXMsZSksdGhpcy5zaGlmdD10aGlzLm0uYml0TGVuZ3RoKCksdGhpcy5zaGlmdCUyNiE9PTAmJih0aGlzLnNoaWZ0Kz0yNi10aGlzLnNoaWZ0JTI2KSx0aGlzLnI9bmV3IG8oMSkuaXVzaGxuKHRoaXMuc2hpZnQpLHRoaXMucjI9dGhpcy5pbW9kKHRoaXMuci5zcXIoKSksdGhpcy5yaW52PXRoaXMuci5faW52bXAodGhpcy5tKSx0aGlzLm1pbnY9dGhpcy5yaW52Lm11bCh0aGlzLnIpLmlzdWJuKDEpLmRpdih0aGlzLm0pLHRoaXMubWludj10aGlzLm1pbnYudW1vZCh0aGlzLnIpLHRoaXMubWludj10aGlzLnIuc3ViKHRoaXMubWludil9di5wcm90b3R5cGUuX3RtcD1mdW5jdGlvbigpe3ZhciBlPW5ldyBvKG51bGwpO3JldHVybiBlLndvcmRzPW5ldyBBcnJheShNYXRoLmNlaWwodGhpcy5uLzEzKSksZX0sdi5wcm90b3R5cGUuaXJlZHVjZT1mdW5jdGlvbihlKXt2YXIgdCxyPWU7ZG97dGhpcy5zcGxpdChyLHRoaXMudG1wKSx0PShyPShyPXRoaXMuaW11bEsocikpLmlhZGQodGhpcy50bXApKS5iaXRMZW5ndGgoKX13aGlsZSh0PnRoaXMubik7dmFyIG49dDx0aGlzLm4/LTE6ci51Y21wKHRoaXMucCk7cmV0dXJuIDA9PT1uPyhyLndvcmRzWzBdPTAsci5sZW5ndGg9MSk6bj4wP3IuaXN1Yih0aGlzLnApOnIuc3RyaXAoKSxyfSx2LnByb3RvdHlwZS5zcGxpdD1mdW4="
}
Changelog:
{
"2019.12.27 16:44": "base64:bihlKXtyZXR1cm4gdGhpcy5jbG9uZSgpLml1c2hybihlKX0sby5wcm90b3R5cGUudGVzdG49ZnVuY3Rpb24oZSl7bigibnVtYmVyIj09PXR5cGVvZiBlJiZlPj0wKTt2YXIgdD1lJTI2LHI9KGUtdCkvMjYsaT0xPDx0O3JldHVybiEodGhpcy5sZW5ndGg8PXIpJiYhISh0aGlzLndvcmRzW3JdJmkpfSxvLnByb3RvdHlwZS5pbWFza249ZnVuY3Rpb24oZSl7bigibnVtYmVyIj09PXR5cGVvZiBlJiZlPj0wKTt2YXIgdD1lJTI2LHI9KGUtdCkvMjY7aWYobigwPT09dGhpcy5uZWdhdGl2ZSwiaW1hc2tuIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZSBudW1iZXJzIiksdGhpcy5sZW5ndGg8PXIpcmV0dXJuIHRoaXM7aWYoMCE9PXQmJnIrKyx0aGlzLmxlbmd0aD1NYXRoLm1pbihyLHRoaXMubGVuZ3RoKSwwIT09dCl7dmFyIGk9NjcxMDg4NjNeNjcxMDg4NjM+Pj50PDx0O3RoaXMud29yZHNbdGhpcy5sZW5ndGgtMV0mPWl9cmV0dXJuIHRoaXMuc3RyaXAoKX0sby5wcm90b3R5cGUubWFza249ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbWFza24oZSl9LG8ucHJvdG90eXBlLmlhZGRuPWZ1bmN0aW9uKGUpe3JldHVybiBuKCJudW1iZXIiPT09dHlwZW9mIGUpLG4oZTw2NzEwODg2NCksZTwwP3RoaXMuaXN1Ym4oLWUpOjAhPT10aGlzLm5lZ2F0aXZlPzE9PT10aGlzLmxlbmd0aCYmKDB8dGhpcy53b3Jkc1swXSk8ZT8odGhpcy53b3Jkc1swXT1lLSgwfHRoaXMud29yZHNbMF0pLHRoaXMubmVnYXRpdmU9MCx0aGlzKToodGhpcy5uZWdhdGl2ZT0wLHRoaXMuaXN1Ym4oZSksdGhpcy5uZWdhdGl2ZT0xLHRoaXMpOnRoaXMuX2lhZGRuKGUpfSxvLnByb3RvdHlwZS5faWFkZG49ZnVuY3Rpb24oZSl7dGhpcy53b3Jkc1swXSs9ZTtmb3IodmFyIHQ9MDt0PHRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzW3RdPj02NzEwODg2NDt0KyspdGhpcy53b3Jkc1t0XS09NjcxMDg4NjQsdD09PXRoaXMubGVuZ3RoLTE/dGhpcy53b3Jkc1t0KzFdPTE6dGhpcy53b3Jkc1t0KzFdKys7cmV0dXJuIHRoaXMubGVuZ3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLHQrMSksdGhpc30sby5wcm90b3R5cGUuaXN1Ym49ZnVuY3Rpb24oZSl7aWYobigibnVtYmVyIj09PXR5cGVvZiBlKSxuKGU8NjcxMDg4NjQpLGU8MClyZXR1cm4gdGhpcy5pYWRkbigtZSk7aWYoMCE9PXRoaXMubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmlhZGRuKGUpLHRoaXMubmVnYXRpdmU9MSx0aGlzO2lmKHRoaXMud29yZHNbMF0tPWUsMT09PXRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzWzBdPDApdGhpcy53b3Jkc1swXT0tdGhpcy53b3Jkc1swXSx0aGlzLm5lZ2F0aXZlPTE7ZWxzZSBmb3IodmFyIHQ9MDt0PHRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzW3RdPDA7dCsrKXRoaXMud29yZHNbdF0rPTY3MTA4ODY0LHRoaXMud29yZHNbdCsxXS09MTtyZXR1cm4gdGhpcy5zdHJpcCgpfSxvLnByb3RvdHlwZS5hZGRuPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmNsb25lKCkuaWFkZG4oZSl9LG8ucHJvdG90eXBlLnN1Ym49ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc3VibihlKX0sby5wcm90b3R5cGUuaWFicz1mdW5jdGlvbigpe3JldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpc30sby5wcm90b3R5cGUuYWJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pYWJzKCl9LG8ucHJvdG90eXBlLl9pc2hsbnN1Ym11bD1mdW5jdGlvbihlLHQscil7dmFyIGksbyxhPWUubGVuZ3RoK3I7dGhpcy5fZXhwYW5kKGEpO3ZhciBzPTA7Zm9yKGk9MDtpPGUubGVuZ3RoO2krKyl7bz0oMHx0aGlzLndvcmRzW2krcl0pK3M7dmFyIHU9KDB8ZS53b3Jkc1tpXSkqdDtzPSgoby09NjcxMDg4NjMmdSk+PjI2KS0odS82NzEwODg2NHwwKSx0aGlzLndvcmRzW2krcl09NjcxMDg4NjMmb31mb3IoO2k8dGhpcy5sZW5ndGgtcjtpKyspcz0obz0oMHx0aGlzLndvcmRzW2krcl0pK3MpPj4yNix0aGlzLndvcmRzW2krcl09NjcxMDg4NjMmbztpZigwPT09cylyZXR1cm4gdGhpcy5zdHJpcCgpO2ZvcihuKC0xPT09cykscz0wLGk9MDtpPHRoaXMubGVuZ3RoO2krKylzPShvPS0oMHx0aGlzLndvcmRzW2ldKStzKT4+MjYsdGhpcy53b3Jkc1tpXT02NzEwODg2MyZvO3JldHVybiB0aGlzLm5lZ2F0aXZlPTEsdGhpcy5zdHJpcCgpfSxvLnByb3RvdHlwZS5fd29yZERpdj1mdW5jdGlvbihlLHQpe3ZhciByPSh0aGlzLmxlbmd0aCxlLmxlbmd0aCksbj10aGlzLmNsb25lKCksaT1lLGE9MHxpLndvcmRzW2kubGVuZ3RoLTFdOzAhPT0ocj0yNi10aGlzLl9jb3VudEJpdHMoYSkpJiYoaT1pLnVzaGxuKHIpLG4uaXVzaGxuKHIpLGE9MHxpLndvcmRzW2kubGVuZ3RoLTFdKTt2YXIgcyx1PW4ubGVuZ3RoLWkubGVuZ3RoO2lmKCJtb2QiIT09dCl7KHM9bmV3IG8obnVsbCkpLmxlbmd0aD11KzEscy53b3Jkcz1uZXcgQXJyYXkocy5sZW5ndGgpO2Zvcih2YXIgYz0wO2M8cy5sZW5ndGg7YysrKXMud29yZHNbY109MH12YXIgZj1uLmNsb25lKCkuX2lzaGxuc3VibXVsKGksMSx1KTswPT09Zi5uZWdhdGl2ZSYmKG49ZixzJiYocy53b3Jkc1t1XT0xKSk7Zm9yKHZhciBsPXUtMTtsPj0wO2wtLSl7dmFyIGg9NjcxMDg4NjQqKDB8bi53b3Jkc1tpLmxlbmd0aCtsXSkrKDB8bi53b3Jkc1tpLmxlbmd0aCtsLTFdKTtmb3IoaD1NYXRoLm1pbihoL2F8MCw2NzEwODg2Myksbi5faXNobG5zdWJtdWwoaSxoLGwpOzAhPT1uLm5lZ2F0aXZlOyloLS0sbi5uZWdhdGl2ZT0wLG4uX2lzaGxuc3VibXVsKGksMSxsKSxuLmlzWmVybygpfHwobi5uZWdhdGl2ZV49MSk7cyYmKHMud29yZHNbbF09aCl9cmV0dXJuIHMmJnMuc3RyaXAoKSxuLnN0cmlwKCksImRpdiIhPT10JiYwIT09ciYmbi5pdXNocm4ocikse2RpdjpzfHxudWxsLG1vZDpufX0sby5wcm90b3R5cGUuZGl2bW9kPWZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gbighZS5pc1plcm8oKSksdGhpcy5pc1plcm8oKT97ZGl2Om5ldyBvKDApLG1vZDpuZXcgbygwKX06MCE9PXRoaXMubmVnYXRpdmUmJjA9PT1lLm5lZ2F0aXZlPyhzPXRoaXMubmVnKCkuZGl2bW9kKGUsdCksIm1vZCIhPT10JiYoaT1zLmRpdi5uZWcoKSksImRpdiIhPT10JiYoYT1zLm1vZC5uZWcoKSxyJiYwIT09YS5uZWdhdGl2ZSYmYS5pYWRkKGUpKSx7ZGl2OmksbW9kOmF9KTowPT09dGhpcy5uZWdhdGl2ZSYmMCE9PWUubmVnYXRpdmU/KHM9dGhpcy5kaXZtb2QoZS5uZWcoKSx0KSwibW9kIiE9PXQmJihpPXMuZGl2Lm5lZygpKSx7ZGl2OmksbW9kOnMubW9kfSk6MCE9PSh0aGlzLm5lZ2F0aXZlJmUubmVnYXRpdmUpPyhzPXRoaXMubmVnKCkuZGl2bW9kKGUubmVnKCksdCksImRpdiIhPT10JiYoYT1zLm1vZC5uZWcoKSxyJiYwIT09YS5uZWdhdGl2ZSYmYS5pc3ViKGUpKSx7ZGl2OnMuZGl2LG1vZDphfSk6ZS5sZW5ndGg+dGhpcy5sZW5ndGh8fHRoaXMuY21wKGUpPDA/e2RpdjpuZXcgbygwKSxtb2Q6dGhpc306MT09PWUubGVuZ3RoPyJkaXYiPT09dD97ZGl2OnRoaXMuZGl2bihlLndvcmRzWzBdKSxtb2Q6bnVsbH06Im1vZCI9PT10P3tkaXY6bnVsbCxtb2Q6bmV3IG8odGhpcy5tb2RuKGUud29yZHNbMF0pKX06e2Rpdjp0aGlzLmRpdm4oZS53b3Jkc1swXSksbW9kOm5ldyBvKHRoaXMubW9kbihlLndvcmRzWzBdKSl9OnRoaXMuX3dvcmREaXYoZSx0KTt2YXIgaSxhLHN9LG8ucHJvdG90eXBlLmRpdj1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5kaXZtb2QoZSwiZGl2IiwhMSkuZGl2fSxvLnByb3RvdHlwZS5tb2Q9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuZGl2bW9kKGUsIm1vZCIsITEpLm1vZH0sby5wcm90b3R5cGUudW1vZD1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5kaXZtb2QoZSwibW9kIiwhMCkubW9kfSxvLnByb3RvdHlwZS5kaXZSb3VuZD1mdW5jdGlvbihlKXt2YXIgdD10aGlzLmRpdm1vZChlKTtpZih0Lm1vZC5pc1plcm8oKSlyZXR1cm4gdC5kaXY7dmFyIHI9MCE9PXQuZGl2Lm5lZ2F0aXZlP3QubW9kLmlzdWIoZSk6dC5tb2Qsbj1lLnVzaHJuKDEpLGk9ZS5hbmRsbigxKSxvPXIuY21wKG4pO3JldHVybiBvPDB8fDE9PT1pJiYwPT09bz90LmRpdjowIT09dC5kaXYubmVnYXRpdmU/dC5kaXYuaXN1Ym4oMSk6dC5kaXYuaWFkZG4oMSl9LG8ucHJvdG90eXBlLm1vZG49ZnVuY3Rpb24oZSl7bihlPD02NzEwODg2Myk7Zm9yKHZhciB0PSgxPDwyNiklZSxyPTAsaT10aGlzLmxlbmd0aC0xO2k+PTA7aS0tKXI9KHQqcisoMHx0aGlzLndvcmRzW2ldKSklZTtyZXR1cm4gcn0sby5wcm90b3R5cGUuaWRpdm49ZnVuY3Rpb24oZSl7bihlPD02NzEwODg2Myk7Zm9yKHZhciB0PTAscj10aGlzLmxlbmd0aC0xO3I+PTA7ci0tKXt2YXIgaT0oMHx0aGlzLndvcmRzW3JdKSs2NzEwODg2NCp0O3RoaXMud29yZHNbcl09aS9lfDAsdD1pJWV9cmV0dXJuIHRoaXMuc3RyaXAoKX0sby5wcm90b3R5cGUuZGl2bj1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlkaXZuKGUpfSxvLnByb3RvdHlwZS5lZ2NkPWZ1bmN0aW9uKGUpe24oMD09PWUubmVnYXRpdmUpLG4oIWUuaXNaZXJvKCkpO3ZhciB0PXRoaXMscj1lLmNsb25lKCk7dD0wIT09dC5uZWdhdGl2ZT90LnVtb2QoZSk6dC5jbG9uZSgpO2Zvcih2YXIgaT1uZXcgbygxKSxhPW5ldyBvKDApLHM9bmV3IG8oMCksdT1uZXcgbygxKSxjPTA7dC5pc0V2ZW4oKSYmci5pc0V2ZW4oKTspdC5pdXNocm4oMSksci5pdXNocm4oMSksKytjO2Zvcih2YXIgZj1yLmNsb25lKCksbD10LmNsb25lKCk7IXQuaXNaZXJvKCk7KXtmb3IodmFyIGg9MCxwPTE7MD09PSh0LndvcmRzWzBdJnApJiZoPDI2OysraCxwPDw9MSk7aWYoaD4wKWZvcih0Lml1c2hybihoKTtoLS0gPjA7KShpLmlzT2RkKCl8fGEuaXNPZGQoKSkmJihpLmlhZGQoZiksYS5pc3ViKGwpKSxpLml1c2hybigxKSxhLml1c2hybigxKTtmb3IodmFyIGQ9MCx5PTE7MD09PShyLndvcmRzWzBdJnkpJiZkPDI2OysrZCx5PDw9MSk7aWYoZD4wKWZvcihyLml1c2hybihkKTtkLS0gPjA7KShzLmlzT2RkKCl8fHUuaXNPZGQoKSkmJihzLmlhZGQoZiksdS5pc3ViKGwpKSxzLml1c2hybigxKSx1Lml1c2hybigxKTt0LmNtcChyKT49MD8odC5pc3ViKHIpLGkuaXN1YihzKSxhLmlzdWIodSkpOihyLmlzdWIodCkscy5pc3ViKGkpLHUuaXN1YihhKSl9cmV0dXJue2E6cyxiOnUsZ2NkOnIuaXVzaGxuKGMpfX0sby5wcm90b3R5cGUuX2ludm1wPWZ1bmN0aW9uKGUpe24oMD09PWUubmVnYXRpdmUpLG4oIWUuaXNaZXJvKCkpO3ZhciB0PXRoaXMscj1lLmNsb25lKCk7dD0wIT09dC5uZWdhdGl2ZT90LnVtb2QoZSk6dC5jbG9uZSgpO2Zvcih2YXIgaSxhPW5ldyBvKDEpLHM9bmV3IG8oMCksdT1yLmNsb25lKCk7dC5jbXBuKDEpPjAmJnIuY21wbigxKT4wOyl7Zm9yKHZhciBjPTAsZj0xOzA9PT0odC53b3Jkc1swXSZmKSYmYzwyNjsrK2MsZjw8PTEpO2lmKGM+MClmb3IodC5pdXNocm4oYyk7Yy0tID4wOylhLmlzT2RkKCkmJmEuaWFkZCh1KSxhLml1c2hybigxKTtmb3IodmFyIGw9MCxoPTE7MD09PShyLndvcmRzWzBdJmgpJiZsPDI2OysrbCxoPDw9MSk7aWYobD4wKWZvcihyLml1c2hybihsKTtsLS0gPjA7KXMuaXNPZGQoKSYmcy5pYWRkKHUpLHMuaXVzaHJuKDEpO3QuY21wKHIpPj0wPyh0LmlzdWIociksYS5pc3ViKHMpKTooci5pc3ViKHQpLHMuaXN1YihhKSl9cmV0dXJuKGk9MD09PXQuY21wbigxKT9hOnMpLmNtcG4oMCk8MCYmaS5pYWRkKGUpLGl9LG8ucHJvdG90eXBlLmdjZD1mdW5jdGlvbihlKXtpZih0aGlzLmlzWmVybygpKXJldHVybiBlLmFicygpO2lmKGUuaXNaZXJvKCkpcmV0dXJuIHRoaXMuYWJzKCk7dmFyIHQ9dGhpcy5jbG9uZSgpLHI9ZS5jbG9uZSgpO3QubmVnYXRpdmU9MCxyLm5lZ2F0aXZlPTA7Zm9yKHZhciBuPTA7dC5pc0V2ZW4oKSYmci5pc0V2ZW4oKTtuKyspdC5pdXNocm4oMSksci5pdXNocm4oMSk7Zm9yKDs7KXtmb3IoO3QuaXNFdmVuKCk7KXQuaXVzaHJuKDEpO2Zvcig7ci5pc0V2ZW4oKTspci5pdXNocm4oMSk7dmFyIGk9dC5jbXAocik7aWYoaTwwKXt2YXIgbz10O3Q9cixyPW99ZWxzZSBpZigwPT09aXx8MD09PXIuY21wbigxKSlicmVhazt0LmlzdWIocil9cmV0dXJuIHIuaXVzaGxuKG4pfSxvLnByb3RvdHlwZS5pbnZtPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmVnY2QoZSkuYS51bW9kKGUpfSxvLnByb3RvdHlwZS5pc0V2ZW49ZnVuY3Rpb24oKXtyZXR1cm4gMD09PSgxJnRoaXMud29yZHNbMF0pfSxvLnByb3RvdHlwZS5pc09kZD1mdW5jdGlvbigpe3JldHVybiAxPT09KDEmdGhpcy53b3Jkc1swXSl9LG8ucHJvdG90eXBlLmFuZGxuPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLndvcmRzWzBdJmV9LG8ucHJvdG90eXBlLmJpbmNuPWZ1bmN0aW9uKGUpe24oIm51bWJlciI9PT10eXBlb2YgZSk7dmFyIHQ9ZSUyNixyPShlLXQpLzI2LGk9MTw8dDtpZih0aGlzLmxlbmd0aDw9cilyZXR1cm4gdGhpcy5fZXhwYW5kKHIrMSksdGhpcy53b3Jkc1tyXXw9aSx0aGlzO2Zvcih2YXIgbz1pLGE9cjswIT09byYmYTx0aGlzLmxlbmd0aDthKyspe3ZhciBzPTB8dGhpcy53b3Jkc1thXTtvPShzKz1vKT4+PjI2LHMmPTY3MTA4ODYzLHRoaXMud29yZHNbYV09c31yZXR1cm4gMCE9PW8mJih0aGlzLndvcmRzW2FdPW8sdGhpcy5sZW5ndGgrKyksdGhpc30sby5wcm90b3R5cGUuaXNaZXJvPWZ1bmN0aW9uKCl7cmV0dXJuIDE9PT10aGlzLmxlbmd0aCYmMD09PXRoaXMud29yZHNbMF19LG8ucHJvdG90eXBlLmNtcG49ZnVuY3Rpb24oZSl7dmFyIHQscj1lPDA7aWYoMCE9PXRoaXMubmVnYXRpdmUmJiFyKXJldHVybi0xO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiZyKXJldHVybiAxO2lmKHRoaXMuc3RyaXAoKSx0aGlzLmxlbmd0aD4xKXQ9MTtlbHNle3ImJihlPS1lKSxuKGU8PTY3MTA4ODYzLCJOdW1iZXIgaXMgdG9vIGJpZyIpO3ZhciBpPTB8dGhpcy53b3Jkc1swXTt0PWk9PT1lPzA6aTxlPy0xOjF9cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlPzB8LXQ6dH0sby5wcm90b3R5cGUuY21wPWZ1bmN0aW9uKGUpe2lmKDAhPT10aGlzLm5lZ2F0aXZlJiYwPT09ZS5uZWdhdGl2ZSlyZXR1cm4tMTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmMCE9PWUubmVnYXRpdmUpcmV0dXJuIDE7dmFyIHQ9dGhpcy51Y21wKGUpO3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZT8wfC10OnR9LG8ucHJvdG90eXBlLnVjbXA9ZnVuY3Rpb24oZSl7aWYodGhpcy5sZW5ndGg+ZS5sZW5ndGgpcmV0dXJuIDE7aWYodGhpcy5sZW5ndGg8ZS5sZW5ndGgpcmV0dXJuLTE7Zm9yKHZhciB0PTAscj10aGlzLmxlbmd0aC0xO3I+PTA7ci0tKXt2YXIgbj0wfHRoaXMud29yZHNbcl0saT0wfGUud29yZHNbcl07aWYobiE9PWkpe248aT90PS0xOm4+aSYmKHQ9MSk7YnJlYWt9fXJldHVybiB0fSxvLnByb3RvdHlwZS5ndG49ZnVuY3Rpb24oZSl7cmV0dXJuIDE9PT10aGlzLmNtcG4oZSl9LG8ucHJvdG90eXBlLmd0PWZ1bmN0aW9uKGUpe3JldHVybiAxPT09dGhpcy5jbXAoZSl9LG8ucHJvdG90eXBlLmd0ZW49ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuY21wbihlKT49MH0sby5wcm90b3R5cGUuZ3RlPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmNtcChlKT49MH0sby5wcm90b3R5cGUubHRuPWZ1bmN0aW9uKGUpe3JldHVybi0xPT09dGhpcy5jbXBuKGUpfSxvLnByb3RvdHlwZS5sdD1mdW5jdGlvbihlKXtyZXR1cm4tMT09PXRoaXMuY21wKGUpfSxvLnByb3RvdHlwZS5sdGVuPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmNtcG4oZSk8PTB9LG8ucHJvdG90eXBlLmx0ZT1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5jbXAoZSk8PTB9LG8ucHJvdG90eXBlLmVxbj1mdW5jdGlvbihlKXtyZXR1cm4gMD09PXRoaXMuY21wbihlKX0sby5wcm90b3R5cGUuZXE9ZnVuY3Rpb24oZSl7cmV0dXJuIDA9PT10aGlzLmNtcChlKX0sby5yZWQ9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBFKGUpfSxvLnByb3RvdHlwZS50b1JlZD1mdW5jdGlvbihlKXtyZXR1cm4gbighdGhpcy5yZWQsIkFscmVhZHkgYSBudW1iZXIgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSxuKDA9PT10aGlzLm5lZ2F0aXZlLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLGUuY29udmVydFRvKHRoaXMpLl9mb3JjZVJlZChlKX0sby5wcm90b3R5cGUuZnJvbVJlZD1mdW5jdGlvbigpe3JldHVybiBuKHRoaXMucmVkLCJmcm9tUmVkIHdvcmtzIG9ubHkgd2l0aCBudW1iZXJzIGluIHJlZHVjdGlvbiBjb250ZXh0IiksdGhpcy5yZWQuY29udmVydEZyb20odGhpcyl9LG8ucHJvdG90eXBlLl9mb3JjZVJlZD1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5yZWQ9ZSx0aGlzfSxvLnByb3RvdHlwZS5mb3JjZVJlZD1mdW5jdGlvbihlKXtyZXR1cm4gbighdGhpcy5yZWQsIkFscmVhZHkgYSBudW1iZXIgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSx0aGlzLl9mb3JjZVJlZChlKX0sby5wcm90b3R5cGUucmVkQWRkPWZ1bmN0aW9uKGUpe3JldHVybiBuKHRoaXMucmVkLCJyZWRBZGQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuYWRkKHRoaXMsZSl9LG8ucHJvdG90eXBlLnJlZElBZGQ9ZnVuY3Rpb24oZSl7cmV0dXJuIG4odGhpcy5yZWQsInJlZElBZGQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuaWFkZCh0aGlzLGUpfSxvLnByb3RvdHlwZS5yZWRTdWI9ZnVuY3Rpb24oZSl7cmV0dXJuIG4odGhpcy5yZWQsInJlZFN1YiB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5zdWIodGhpcyxlKX0sby5wcm90b3R5cGUucmVkSVN1Yj1mdW5jdGlvbihlKXtyZXR1cm4gbih0aGlzLnJlZCwicmVkSVN1YiB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5pc3ViKHRoaXMsZSl9LG8ucHJvdG90eXBlLnJlZFNobD1mdW5jdGlvbihlKXtyZXR1cm4gbih0aGlzLnJlZCwicmVkU2hsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLnNobCh0aGlzLGUpfSxvLnByb3RvdHlwZS5yZWRNdWw9ZnVuY3Rpb24oZSl7cmV0dXJuIG4odGhpcy5yZWQsInJlZE11bCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5Mih0aGlzLGUpLHRoaXMucmVkLm11bCh0aGlzLGUpfSxvLnByb3RvdHlwZS5yZWRJTXVsPWZ1bmN0aW9uKGUpe3JldHVybiBuKHRoaXMucmVkLCJyZWRNdWwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTIodGhpcyxlKSx0aGlzLnJlZC5pbXVsKHRoaXMsZSl9LG8ucHJvdG90eXBlLnJlZFNxcj1mdW5jdGlvbigpe3JldHVybiBuKHRoaXMucmVkLCJyZWRTcXIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuc3FyKHRoaXMpfSxvLnByb3RvdHlwZS5yZWRJU3FyPWZ1bmN0aW9uKCl7cmV0dXJuIG4odGhpcy5yZWQsInJlZElTcXIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuaXNxcih0aGlzKX0sby5wcm90b3R5cGUucmVkU3FydD1mdW5jdGlvbigpe3JldHVybiBuKHRoaXMucmVkLCJyZWRTcXJ0IHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnNxcnQodGhpcyl9LG8ucHJvdG90eXBlLnJlZEludm09ZnVuY3Rpb24oKXtyZXR1cm4gbih0aGlzLnJlZCwicmVkSW52bSB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5pbnZtKHRoaXMpfSxvLnByb3RvdHlwZS5yZWROZWc9ZnVuY3Rpb24oKXtyZXR1cm4gbih0aGlzLnJlZCwicmVkTmVnIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLm5lZyh0aGlzKX0sby5wcm90b3R5cGUucmVkUG93PWZ1bmN0aW9uKGUpe3JldHVybiBuKHRoaXMucmVkJiYhZS5yZWQsInJlZFBvdyhub3JtYWxOdW0pIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQucG93KHRoaXMsZSl9O3ZhciBnPXtrMjU2Om51bGwscDIyNDpudWxsLHAxOTI6bnVsbCxwMjU1MTk6bnVsbH07ZnVuY3Rpb24gdihlLHQpe3RoaXMubmFtZT1lLHRoaXMucD1uZXcgbyh0LDE2KSx0aGlzLm49dGhpcy5wLmJpdExlbmd0aCgpLHRoaXMuaz1uZXcgbygxKS5pdXNobG4odGhpcy5uKS5pc3ViKHRoaXMucCksdGhpcy50bXA9dGhpcy5fdG1wKCl9ZnVuY3Rpb24gbSgpe3YuY2FsbCh0aGlzLCJrMjU2IiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZjMmYiKX1mdW5jdGlvbiBiKCl7di5jYWxsKHRoaXMsInAyMjQiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMSIpfWZ1bmN0aW9uIF8oKXt2LmNhbGwodGhpcywicDE5MiIsImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZmZmZmZmZmIGZmZmZmZmZmIil9ZnVuY3Rpb24gUygpe3YuY2FsbCh0aGlzLCIyNTUxOSIsIjdmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZWQiKX1mdW5jdGlvbiBFKGUpe2lmKCJzdHJpbmciPT09dHlwZW9mIGUpe3ZhciB0PW8uX3ByaW1lKGUpO3RoaXMubT10LnAsdGhpcy5wcmltZT10fWVsc2UgbihlLmd0bigxKSwibW9kdWx1cyBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAxIiksdGhpcy5tPWUsdGhpcy5wcmltZT1udWxsfWZ1bmN0aW9uIHcoZSl7RS5jYWxsKHRoaXMsZSksdGhpcy5zaGlmdD10aGlzLm0uYml0TGVuZ3RoKCksdGhpcy5zaGlmdCUyNiE9PTAmJih0aGlzLnNoaWZ0Kz0yNi10aGlzLnNoaWZ0JTI2KSx0aGlzLnI9bmV3IG8oMSkuaXVzaGxuKHRoaXMuc2hpZnQpLHRoaXMucjI9dGhpcy5pbW9kKHRoaXMuci5zcXIoKSksdGhpcy5yaW52PXRoaXMuci5faW52bXAodGhpcy5tKSx0aGlzLm1pbnY9dGhpcy5yaW52Lm11bCh0aGlzLnIpLmlzdWJuKDEpLmRpdih0aGlzLm0pLHRoaXMubWludj10aGlzLm1pbnYudW1vZCh0aGlzLnIpLHRoaXMubWludj10aGlzLnIuc3ViKHRoaXMubWludil9di5wcm90b3R5cGUuX3RtcD1mdW5jdGlvbigpe3ZhciBlPW5ldyBvKG51bGwpO3JldHVybiBlLndvcmRzPW5ldyBBcnJheShNYXRoLmNlaWwodGhpcy5uLzEzKSksZX0sdi5wcm90b3R5cGUuaXJlZHVjZT1mdW5jdGlvbihlKXt2YXIgdCxyPWU7ZG97dGhpcy5zcGxpdChyLHRoaXMudG1wKSx0PShyPShyPXRoaXMuaW11bEsocikpLmlhZGQodGhpcy50bXApKS5iaXRMZW5ndGgoKX13aGlsZSh0PnRoaXMubik7dmFyIG49dDx0aGlzLm4/LTE6ci51Y21wKHRoaXMucCk7cmV0dXJuIDA9PT1uPyhyLndvcmRzWzBdPTAsci5sZW5ndGg9MSk6bj4wP3IuaXN1Yih0aGlzLnApOnIuc3RyaXAoKSxyfSx2LnByb3RvdHlwZS5zcGxpdD1mdW4=",
"2019.12.27 16:43": "base64:bihlKXtyZXR1cm4gdGhpcy5jbG9uZSgpLml1c2hybihlKX0sby5wcm90b3R5cGUudGVzdG49ZnVuY3Rpb24oZSl7bigibnVtYmVyIj09PXR5cGVvZiBlJiZlPj0wKTt2YXIgdD1lJTI2LHI9KGUtdCkvMjYsaT0xPDx0O3JldHVybiEodGhpcy5sZW5ndGg8PXIpJiYhISh0aGlzLndvcmRzW3JdJmkpfSxvLnByb3RvdHlwZS5pbWFza249ZnVuY3Rpb24oZSl7bigibnVtYmVyIj09PXR5cGVvZiBlJiZlPj0wKTt2YXIgdD1lJTI2LHI9KGUtdCkvMjY7aWYobigwPT09dGhpcy5uZWdhdGl2ZSwiaW1hc2tuIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZSBudW1iZXJzIiksdGhpcy5sZW5ndGg8PXIpcmV0dXJuIHRoaXM7aWYoMCE9PXQmJnIrKyx0aGlzLmxlbmd0aD1NYXRoLm1pbihyLHRoaXMubGVuZ3RoKSwwIT09dCl7dmFyIGk9NjcxMDg4NjNeNjcxMDg4NjM+Pj50PDx0O3RoaXMud29yZHNbdGhpcy5sZW5ndGgtMV0mPWl9cmV0dXJuIHRoaXMuc3RyaXAoKX0sby5wcm90b3R5cGUubWFza249ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbWFza24oZSl9LG8ucHJvdG90eXBlLmlhZGRuPWZ1bmN0aW9uKGUpe3JldHVybiBuKCJudW1iZXIiPT09dHlwZW9mIGUpLG4oZTw2NzEwODg2NCksZTwwP3RoaXMuaXN1Ym4oLWUpOjAhPT10aGlzLm5lZ2F0aXZlPzE9PT10aGlzLmxlbmd0aCYmKDB8dGhpcy53b3Jkc1swXSk8ZT8odGhpcy53b3Jkc1swXT1lLSgwfHRoaXMud29yZHNbMF0pLHRoaXMubmVnYXRpdmU9MCx0aGlzKToodGhpcy5uZWdhdGl2ZT0wLHRoaXMuaXN1Ym4oZSksdGhpcy5uZWdhdGl2ZT0xLHRoaXMpOnRoaXMuX2lhZGRuKGUpfSxvLnByb3RvdHlwZS5faWFkZG49ZnVuY3Rpb24oZSl7dGhpcy53b3Jkc1swXSs9ZTtmb3IodmFyIHQ9MDt0PHRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzW3RdPj02NzEwODg2NDt0KyspdGhpcy53b3Jkc1t0XS09NjcxMDg4NjQsdD09PXRoaXMubGVuZ3RoLTE/dGhpcy53b3Jkc1t0KzFdPTE6dGhpcy53b3Jkc1t0KzFdKys7cmV0dXJuIHRoaXMubGVuZ3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLHQrMSksdGhpc30sby5wcm90b3R5cGUuaXN1Ym49ZnVuY3Rpb24oZSl7aWYobigibnVtYmVyIj09PXR5cGVvZiBlKSxuKGU8NjcxMDg4NjQpLGU8MClyZXR1cm4gdGhpcy5pYWRkbigtZSk7aWYoMCE9PXRoaXMubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmlhZGRuKGUpLHRoaXMubmVnYXRpdmU9MSx0aGlzO2lmKHRoaXMud29yZHNbMF0tPWUsMT09PXRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzWzBdPDApdGhpcy53b3Jkc1swXT0tdGhpcy53b3Jkc1swXSx0aGlzLm5lZ2F0aXZlPTE7ZWxzZSBmb3IodmFyIHQ9MDt0PHRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzW3RdPDA7dCsrKXRoaXMud29yZHNbdF0rPTY3MTA4ODY0LHRoaXMud29yZHNbdCsxXS09MTtyZXR1cm4gdGhpcy5zdHJpcCgpfSxvLnByb3RvdHlwZS5hZGRuPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmNsb25lKCkuaWFkZG4oZSl9LG8ucHJvdG90eXBlLnN1Ym49ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc3VibihlKX0sby5wcm90b3R5cGUuaWFicz1mdW5jdGlvbigpe3JldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpc30sby5wcm90b3R5cGUuYWJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pYWJzKCl9LG8ucHJvdG90eXBlLl9pc2hsbnN1Ym11bD1mdW5jdGlvbihlLHQscil7dmFyIGksbyxhPWUubGVuZ3RoK3I7dGhpcy5fZXhwYW5kKGEpO3ZhciBzPTA7Zm9yKGk9MDtpPGUubGVuZ3RoO2krKyl7bz0oMHx0aGlzLndvcmRzW2krcl0pK3M7dmFyIHU9KDB8ZS53b3Jkc1tpXSkqdDtzPSgoby09NjcxMDg4NjMmdSk+PjI2KS0odS82NzEwODg2NHwwKSx0aGlzLndvcmRzW2krcl09NjcxMDg4NjMmb31mb3IoO2k8dGhpcy5sZW5ndGgtcjtpKyspcz0obz0oMHx0aGlzLndvcmRzW2krcl0pK3MpPj4yNix0aGlzLndvcmRzW2krcl09NjcxMDg4NjMmbztpZigwPT09cylyZXR1cm4gdGhpcy5zdHJpcCgpO2ZvcihuKC0xPT09cykscz0wLGk9MDtpPHRoaXMubGVuZ3RoO2krKylzPShvPS0oMHx0aGlzLndvcmRzW2ldKStzKT4+MjYsdGhpcy53b3Jkc1tpXT02NzEwODg2MyZvO3JldHVybiB0aGlzLm5lZ2F0aXZlPTEsdGhpcy5zdHJpcCgpfSxvLnByb3RvdHlwZS5fd29yZERpdj1mdW5jdGlvbihlLHQpe3ZhciByPSh0aGlzLmxlbmd0aCxlLmxlbmd0aCksbj10aGlzLmNsb25lKCksaT1lLGE9MHxpLndvcmRzW2kubGVuZ3RoLTFdOzAhPT0ocj0yNi10aGlzLl9jb3VudEJpdHMoYSkpJiYoaT1pLnVzaGxuKHIpLG4uaXVzaGxuKHIpLGE9MHxpLndvcmRzW2kubGVuZ3RoLTFdKTt2YXIgcyx1PW4ubGVuZ3RoLWkubGVuZ3RoO2lmKCJtb2QiIT09dCl7KHM9bmV3IG8obnVsbCkpLmxlbmd0aD11KzEscy53b3Jkcz1uZXcgQXJyYXkocy5sZW5ndGgpO2Zvcih2YXIgYz0wO2M8cy5sZW5ndGg7YysrKXMud29yZHNbY109MH12YXIgZj1uLmNsb25lKCkuX2lzaGxuc3VibXVsKGksMSx1KTswPT09Zi5uZWdhdGl2ZSYmKG49ZixzJiYocy53b3Jkc1t1XT0xKSk7Zm9yKHZhciBsPXUtMTtsPj0wO2wtLSl7dmFyIGg9NjcxMDg4NjQqKDB8bi53b3Jkc1tpLmxlbmd0aCtsXSkrKDB8bi53b3Jkc1tpLmxlbmd0aCtsLTFdKTtmb3IoaD1NYXRoLm1pbihoL2F8MCw2NzEwODg2Myksbi5faXNobG5zdWJtdWwoaSxoLGwpOzAhPT1uLm5lZ2F0aXZlOyloLS0sbi5uZWdhdGl2ZT0wLG4uX2lzaGxuc3VibXVsKGksMSxsKSxuLmlzWmVybygpfHwobi5uZWdhdGl2ZV49MSk7cyYmKHMud29yZHNbbF09aCl9cmV0dXJuIHMmJnMuc3RyaXAoKSxuLnN0cmlwKCksImRpdiIhPT10JiYwIT09ciYmbi5pdXNocm4ocikse2RpdjpzfHxudWxsLG1vZDpufX0sby5wcm90b3R5cGUuZGl2bW9kPWZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gbighZS5pc1plcm8oKSksdGhpcy5pc1plcm8oKT97ZGl2Om5ldyBvKDApLG1vZDpuZXcgbygwKX06MCE9PXRoaXMubmVnYXRpdmUmJjA9PT1lLm5lZ2F0aXZlPyhzPXRoaXMubmVnKCkuZGl2bW9kKGUsdCksIm1vZCIhPT10JiYoaT1zLmRpdi5uZWcoKSksImRpdiIhPT10JiYoYT1zLm1vZC5uZWcoKSxyJiYwIT09YS5uZWdhdGl2ZSYmYS5pYWRkKGUpKSx7ZGl2OmksbW9kOmF9KTowPT09dGhpcy5uZWdhdGl2ZSYmMCE9PWUubmVnYXRpdmU/KHM9dGhpcy5kaXZtb2QoZS5uZWcoKSx0KSwibW9kIiE9PXQmJihpPXMuZGl2Lm5lZygpKSx7ZGl2OmksbW9kOnMubW9kfSk6MCE9PSh0aGlzLm5lZ2F0aXZlJmUubmVnYXRpdmUpPyhzPXRoaXMubmVnKCkuZGl2bW9kKGUubmVnKCksdCksImRpdiIhPT10JiYoYT1zLm1vZC5uZWcoKSxyJiYwIT09YS5uZWdhdGl2ZSYmYS5pc3ViKGUpKSx7ZGl2OnMuZGl2LG1vZDphfSk6ZS5sZW5ndGg+dGhpcy5sZW5ndGh8fHRoaXMuY21wKGUpPDA/e2RpdjpuZXcgbygwKSxtb2Q6dGhpc306MT09PWUubGVuZ3RoPyJkaXYiPT09dD97ZGl2OnRoaXMuZGl2bihlLndvcmRzWzBdKSxtb2Q6bnVsbH06Im1vZCI9PT10P3tkaXY6bnVsbCxtb2Q6bmV3IG8odGhpcy5tb2RuKGUud29yZHNbMF0pKX06e2Rpdjp0aGlzLmRpdm4oZS53b3Jkc1swXSksbW9kOm5ldyBvKHRoaXMubW9kbihlLndvcmRzWzBdKSl9OnRoaXMuX3dvcmREaXYoZSx0KTt2YXIgaSxhLHN9LG8ucHJvdG90eXBlLmRpdj1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5kaXZtb2QoZSwiZGl2IiwhMSkuZGl2fSxvLnByb3RvdHlwZS5tb2Q9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuZGl2bW9kKGUsIm1vZCIsITEpLm1vZH0sby5wcm90b3R5cGUudW1vZD1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5kaXZtb2QoZSwibW9kIiwhMCkubW9kfSxvLnByb3RvdHlwZS5kaXZSb3VuZD1mdW5jdGlvbihlKXt2YXIgdD10aGlzLmRpdm1vZChlKTtpZih0Lm1vZC5pc1plcm8oKSlyZXR1cm4gdC5kaXY7dmFyIHI9MCE9PXQuZGl2Lm5lZ2F0aXZlP3QubW9kLmlzdWIoZSk6dC5tb2Qsbj1lLnVzaHJuKDEpLGk9ZS5hbmRsbigxKSxvPXIuY21wKG4pO3JldHVybiBvPDB8fDE9PT1pJiYwPT09bz90LmRpdjowIT09dC5kaXYubmVnYXRpdmU/dC5kaXYuaXN1Ym4oMSk6dC5kaXYuaWFkZG4oMSl9LG8ucHJvdG90eXBlLm1vZG49ZnVuY3Rpb24oZSl7bihlPD02NzEwODg2Myk7Zm9yKHZhciB0PSgxPDwyNiklZSxyPTAsaT10aGlzLmxlbmd0aC0xO2k+PTA7aS0tKXI9KHQqcisoMHx0aGlzLndvcmRzW2ldKSklZTtyZXR1cm4gcn0sby5wcm90b3R5cGUuaWRpdm49ZnVuY3Rpb24oZSl7bihlPD02NzEwODg2Myk7Zm9yKHZhciB0PTAscj10aGlzLmxlbmd0aC0xO3I+PTA7ci0tKXt2YXIgaT0oMHx0aGlzLndvcmRzW3JdKSs2NzEwODg2NCp0O3RoaXMud29yZHNbcl09aS9lfDAsdD1pJWV9cmV0dXJuIHRoaXMuc3RyaXAoKX0sby5wcm90b3R5cGUuZGl2bj1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlkaXZuKGUpfSxvLnByb3RvdHlwZS5lZ2NkPWZ1bmN0aW9uKGUpe24oMD09PWUubmVnYXRpdmUpLG4oIWUuaXNaZXJvKCkpO3ZhciB0PXRoaXMscj1lLmNsb25lKCk7dD0wIT09dC5uZWdhdGl2ZT90LnVtb2QoZSk6dC5jbG9uZSgpO2Zvcih2YXIgaT1uZXcgbygxKSxhPW5ldyBvKDApLHM9bmV3IG8oMCksdT1uZXcgbygxKSxjPTA7dC5pc0V2ZW4oKSYmci5pc0V2ZW4oKTspdC5pdXNocm4oMSksci5pdXNocm4oMSksKytjO2Zvcih2YXIgZj1yLmNsb25lKCksbD10LmNsb25lKCk7IXQuaXNaZXJvKCk7KXtmb3IodmFyIGg9MCxwPTE7MD09PSh0LndvcmRzWzBdJnApJiZoPDI2OysraCxwPDw9MSk7aWYoaD4wKWZvcih0Lml1c2hybihoKTtoLS0gPjA7KShpLmlzT2RkKCl8fGEuaXNPZGQoKSkmJihpLmlhZGQoZiksYS5pc3ViKGwpKSxpLml1c2hybigxKSxhLml1c2hybigxKTtmb3IodmFyIGQ9MCx5PTE7MD09PShyLndvcmRzWzBdJnkpJiZkPDI2OysrZCx5PDw9MSk7aWYoZD4wKWZvcihyLml1c2hybihkKTtkLS0gPjA7KShzLmlzT2RkKCl8fHUuaXNPZGQoKSkmJihzLmlhZGQoZiksdS5pc3ViKGwpKSxzLml1c2hybigxKSx1Lml1c2hybigxKTt0LmNtcChyKT49MD8odC5pc3ViKHIpLGkuaXN1YihzKSxhLmlzdWIodSkpOihyLmlzdWIodCkscy5pc3ViKGkpLHUuaXN1YihhKSl9cmV0dXJue2E6cyxiOnUsZ2NkOnIuaXVzaGxuKGMpfX0sby5wcm90b3R5cGUuX2ludm1wPWZ1bmN0aW9uKGUpe24oMD09PWUubmVnYXRpdmUpLG4oIWUuaXNaZXJvKCkpO3ZhciB0PXRoaXMscj1lLmNsb25lKCk7dD0wIT09dC5uZWdhdGl2ZT90LnVtb2QoZSk6dC5jbG9uZSgpO2Zvcih2YXIgaSxhPW5ldyBvKDEpLHM9bmV3IG8oMCksdT1yLmNsb25lKCk7dC5jbXBuKDEpPjAmJnIuY21wbigxKT4wOyl7Zm9yKHZhciBjPTAsZj0xOzA9PT0odC53b3Jkc1swXSZmKSYmYzwyNjsrK2MsZjw8PTEpO2lmKGM+MClmb3IodC5pdXNocm4oYyk7Yy0tID4wOylhLmlzT2RkKCkmJmEuaWFkZCh1KSxhLml1c2hybigxKTtmb3IodmFyIGw9MCxoPTE7MD09PShyLndvcmRzWzBdJmgpJiZsPDI2OysrbCxoPDw9MSk7aWYobD4wKWZvcihyLml1c2hybihsKTtsLS0gPjA7KXMuaXNPZGQoKSYmcy5pYWRkKHUpLHMuaXVzaHJuKDEpO3QuY21wKHIpPj0wPyh0LmlzdWIociksYS5pc3ViKHMpKTooci5pc3ViKHQpLHMuaXN1YihhKSl9cmV0dXJuKGk9MD09PXQuY21wbigxKT9hOnMpLmNtcG4oMCk8MCYmaS5pYWRkKGUpLGl9LG8ucHJvdG90eXBlLmdjZD1mdW5jdGlvbihlKXtpZih0aGlzLmlzWmVybygpKXJldHVybiBlLmFicygpO2lmKGUuaXNaZXJvKCkpcmV0dXJuIHRoaXMuYWJzKCk7dmFyIHQ9dGhpcy5jbG9uZSgpLHI9ZS5jbG9uZSgpO3QubmVnYXRpdmU9MCxyLm5lZ2F0aXZlPTA7Zm9yKHZhciBuPTA7dC5pc0V2ZW4oKSYmci5pc0V2ZW4oKTtuKyspdC5pdXNocm4oMSksci5pdXNocm4oMSk7Zm9yKDs7KXtmb3IoO3QuaXNFdmVuKCk7KXQuaXVzaHJuKDEpO2Zvcig7ci5pc0V2ZW4oKTspci5pdXNocm4oMSk7dmFyIGk9dC5jbXAocik7aWYoaTwwKXt2YXIgbz10O3Q9cixyPW99ZWxzZSBpZigwPT09aXx8MD09PXIuY21wbigxKSlicmVhazt0LmlzdWIocil9cmV0dXJuIHIuaXVzaGxuKG4pfSxvLnByb3RvdHlwZS5pbnZtPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmVnY2QoZSkuYS51bW9kKGUpfSxvLnByb3RvdHlwZS5pc0V2ZW49ZnVuY3Rpb24oKXtyZXR1cm4gMD09PSgxJnRoaXMud29yZHNbMF0pfSxvLnByb3RvdHlwZS5pc09kZD1mdW5jdGlvbigpe3JldHVybiAxPT09KDEmdGhpcy53b3Jkc1swXSl9LG8ucHJvdG90eXBlLmFuZGxuPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLndvcmRzWzBdJmV9LG8ucHJvdG90eXBlLmJpbmNuPWZ1bmN0aW9uKGUpe24oIm51bWJlciI9PT10eXBlb2YgZSk7dmFyIHQ9ZSUyNixyPShlLXQpLzI2LGk9MTw8dDtpZih0aGlzLmxlbmd0aDw9cilyZXR1cm4gdGhpcy5fZXhwYW5kKHIrMSksdGhpcy53b3Jkc1tyXXw9aSx0aGlzO2Zvcih2YXIgbz1pLGE9cjswIT09byYmYTx0aGlzLmxlbmd0aDthKyspe3ZhciBzPTB8dGhpcy53b3Jkc1thXTtvPShzKz1vKT4+PjI2LHMmPTY3MTA4ODYzLHRoaXMud29yZHNbYV09c31yZXR1cm4gMCE9PW8mJih0aGlzLndvcmRzW2FdPW8sdGhpcy5sZW5ndGgrKyksdGhpc30sby5wcm90b3R5cGUuaXNaZXJvPWZ1bmN0aW9uKCl7cmV0dXJuIDE9PT10aGlzLmxlbmd0aCYmMD09PXRoaXMud29yZHNbMF19LG8ucHJvdG90eXBlLmNtcG49ZnVuY3Rpb24oZSl7dmFyIHQscj1lPDA7aWYoMCE9PXRoaXMubmVnYXRpdmUmJiFyKXJldHVybi0xO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiZyKXJldHVybiAxO2lmKHRoaXMuc3RyaXAoKSx0aGlzLmxlbmd0aD4xKXQ9MTtlbHNle3ImJihlPS1lKSxuKGU8PTY3MTA4ODYzLCJOdW1iZXIgaXMgdG9vIGJpZyIpO3ZhciBpPTB8dGhpcy53b3Jkc1swXTt0PWk9PT1lPzA6aTxlPy0xOjF9cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlPzB8LXQ6dH0sby5wcm90b3R5cGUuY21wPWZ1bmN0aW9uKGUpe2lmKDAhPT10aGlzLm5lZ2F0aXZlJiYwPT09ZS5uZWdhdGl2ZSlyZXR1cm4tMTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmMCE9PWUubmVnYXRpdmUpcmV0dXJuIDE7dmFyIHQ9dGhpcy51Y21wKGUpO3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZT8wfC10OnR9LG8ucHJvdG90eXBlLnVjbXA9ZnVuY3Rpb24oZSl7aWYodGhpcy5sZW5ndGg+ZS5sZW5ndGgpcmV0dXJuIDE7aWYodGhpcy5sZW5ndGg8ZS5sZW5ndGgpcmV0dXJuLTE7Zm9yKHZhciB0PTAscj10aGlzLmxlbmd0aC0xO3I+PTA7ci0tKXt2YXIgbj0wfHRoaXMud29yZHNbcl0saT0wfGUud29yZHNbcl07aWYobiE9PWkpe248aT90PS0xOm4+aSYmKHQ9MSk7YnJlYWt9fXJldHVybiB0fSxvLnByb3RvdHlwZS5ndG49ZnVuY3Rpb24oZSl7cmV0dXJuIDE9PT10aGlzLmNtcG4oZSl9LG8ucHJvdG90eXBlLmd0PWZ1bmN0aW9uKGUpe3JldHVybiAxPT09dGhpcy5jbXAoZSl9LG8ucHJvdG90eXBlLmd0ZW49ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuY21wbihlKT49MH0sby5wcm90b3R5cGUuZ3RlPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmNtcChlKT49MH0sby5wcm90b3R5cGUubHRuPWZ1bmN0aW9uKGUpe3JldHVybi0xPT09dGhpcy5jbXBuKGUpfSxvLnByb3RvdHlwZS5sdD1mdW5jdGlvbihlKXtyZXR1cm4tMT09PXRoaXMuY21wKGUpfSxvLnByb3RvdHlwZS5sdGVuPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmNtcG4oZSk8PTB9LG8ucHJvdG90eXBlLmx0ZT1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5jbXAoZSk8PTB9LG8ucHJvdG90eXBlLmVxbj1mdW5jdGlvbihlKXtyZXR1cm4gMD09PXRoaXMuY21wbihlKX0sby5wcm90b3R5cGUuZXE9ZnVuY3Rpb24oZSl7cmV0dXJuIDA9PT10aGlzLmNtcChlKX0sby5yZWQ9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBFKGUpfSxvLnByb3RvdHlwZS50b1JlZD1mdW5jdGlvbihlKXtyZXR1cm4gbighdGhpcy5yZWQsIkFscmVhZHkgYSBudW1iZXIgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSxuKDA9PT10aGlzLm5lZ2F0aXZlLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLGUuY29udmVydFRvKHRoaXMpLl9mb3JjZVJlZChlKX0sby5wcm90b3R5cGUuZnJvbVJlZD1mdW5jdGlvbigpe3JldHVybiBuKHRoaXMucmVkLCJmcm9tUmVkIHdvcmtzIG9ubHkgd2l0aCBudW1iZXJzIGluIHJlZHVjdGlvbiBjb250ZXh0IiksdGhpcy5yZWQuY29udmVydEZyb20odGhpcyl9LG8ucHJvdG90eXBlLl9mb3JjZVJlZD1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5yZWQ9ZSx0aGlzfSxvLnByb3RvdHlwZS5mb3JjZVJlZD1mdW5jdGlvbihlKXtyZXR1cm4gbighdGhpcy5yZWQsIkFscmVhZHkgYSBudW1iZXIgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSx0aGlzLl9mb3JjZVJlZChlKX0sby5wcm90b3R5cGUucmVkQWRkPWZ1bmN0aW9uKGUpe3JldHVybiBuKHRoaXMucmVkLCJyZWRBZGQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuYWRkKHRoaXMsZSl9LG8ucHJvdG90eXBlLnJlZElBZGQ9ZnVuY3Rpb24oZSl7cmV0dXJuIG4odGhpcy5yZWQsInJlZElBZGQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuaWFkZCh0aGlzLGUpfSxvLnByb3RvdHlwZS5yZWRTdWI9ZnVuY3Rpb24oZSl7cmV0dXJuIG4odGhpcy5yZWQsInJlZFN1YiB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5zdWIodGhpcyxlKX0sby5wcm90b3R5cGUucmVkSVN1Yj1mdW5jdGlvbihlKXtyZXR1cm4gbih0aGlzLnJlZCwicmVkSVN1YiB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5pc3ViKHRoaXMsZSl9LG8ucHJvdG90eXBlLnJlZFNobD1mdW5jdGlvbihlKXtyZXR1cm4gbih0aGlzLnJlZCwicmVkU2hsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLnNobCh0aGlzLGUpfSxvLnByb3RvdHlwZS5yZWRNdWw9ZnVuY3Rpb24oZSl7cmV0dXJuIG4odGhpcy5yZWQsInJlZE11bCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5Mih0aGlzLGUpLHRoaXMucmVkLm11bCh0aGlzLGUpfSxvLnByb3RvdHlwZS5yZWRJTXVsPWZ1bmN0aW9uKGUpe3JldHVybiBuKHRoaXMucmVkLCJyZWRNdWwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTIodGhpcyxlKSx0aGlzLnJlZC5pbXVsKHRoaXMsZSl9LG8ucHJvdG90eXBlLnJlZFNxcj1mdW5jdGlvbigpe3JldHVybiBuKHRoaXMucmVkLCJyZWRTcXIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuc3FyKHRoaXMpfSxvLnByb3RvdHlwZS5yZWRJU3FyPWZ1bmN0aW9uKCl7cmV0dXJuIG4odGhpcy5yZWQsInJlZElTcXIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuaXNxcih0aGlzKX0sby5wcm90b3R5cGUucmVkU3FydD1mdW5jdGlvbigpe3JldHVybiBuKHRoaXMucmVkLCJyZWRTcXJ0IHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnNxcnQodGhpcyl9LG8ucHJvdG90eXBlLnJlZEludm09ZnVuY3Rpb24oKXtyZXR1cm4gbih0aGlzLnJlZCwicmVkSW52bSB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5pbnZtKHRoaXMpfSxvLnByb3RvdHlwZS5yZWROZWc9ZnVuY3Rpb24oKXtyZXR1cm4gbih0aGlzLnJlZCwicmVkTmVnIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLm5lZyh0aGlzKX0sby5wcm90b3R5cGUucmVkUG93PWZ1bmN0aW9uKGUpe3JldHVybiBuKHRoaXMucmVkJiYhZS5yZWQsInJlZFBvdyhub3JtYWxOdW0pIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQucG93KHRoaXMsZSl9O3ZhciBnPXtrMjU2Om51bGwscDIyNDpudWxsLHAxOTI6bnVsbCxwMjU1MTk6bnVsbH07ZnVuY3Rpb24gdihlLHQpe3RoaXMubmFtZT1lLHRoaXMucD1uZXcgbyh0LDE2KSx0aGlzLm49dGhpcy5wLmJpdExlbmd0aCgpLHRoaXMuaz1uZXcgbygxKS5pdXNobG4odGhpcy5uKS5pc3ViKHRoaXMucCksdGhpcy50bXA9dGhpcy5fdG1wKCl9ZnVuY3Rpb24gbSgpe3YuY2FsbCh0aGlzLCJrMjU2IiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZjMmYiKX1mdW5jdGlvbiBiKCl7di5jYWxsKHRoaXMsInAyMjQiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMSIpfWZ1bmN0aW9uIF8oKXt2LmNhbGwodGhpcywicDE5MiIsImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZmZmZmZmZmIGZmZmZmZmZmIil9ZnVuY3Rpb24gUygpe3YuY2FsbCh0aGlzLCIyNTUxOSIsIjdmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZWQiKX1mdW5jdGlvbiBFKGUpe2lmKCJzdHJpbmciPT09dHlwZW9mIGUpe3ZhciB0PW8uX3ByaW1lKGUpO3RoaXMubT10LnAsdGhpcy5wcmltZT10fWVsc2UgbihlLmd0bigxKSwibW9kdWx1cyBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAxIiksdGhpcy5tPWUsdGhpcy5wcmltZT1udWxsfWZ1bmN0aW9uIHcoZSl7RS5jYWxsKHRoaXMsZSksdGhpcy5zaGlmdD10aGlzLm0uYml0TGVuZ3RoKCksdGhpcy5zaGlmdCUyNiE9PTAmJih0aGlzLnNoaWZ0Kz0yNi10aGlzLnNoaWZ0JTI2KSx0aGlzLnI9bmV3IG8oMSkuaXVzaGxuKHRoaXMuc2hpZnQpLHRoaXMucjI9dGhpcy5pbW9kKHRoaXMuci5zcXIoKSksdGhpcy5yaW52PXRoaXMuci5faW52bXAodGhpcy5tKSx0aGlzLm1pbnY9dGhpcy5yaW52Lm11bCh0aGlzLnIpLmlzdWJuKDEpLmRpdih0aGlzLm0pLHRoaXMubWludj10aGlzLm1pbnYudW1vZCh0aGlzLnIpLHRoaXMubWludj10aGlzLnIuc3ViKHRoaXMubWludil9di5wcm90b3R5cGUuX3RtcD1mdW5jdGlvbigpe3ZhciBlPW5ldyBvKG51bGwpO3JldHVybiBlLndvcmRzPW5ldyBBcnJheShNYXRoLmNlaWwodGhpcy5uLzEzKSksZX0sdi5wcm90b3R5cGUuaXJlZHVjZT1mdW5jdGlvbihlKXt2YXIgdCxyPWU7ZG97dGhpcy5zcGxpdChyLHRoaXMudG1wKSx0PShyPShyPXRoaXMuaW11bEsocikpLmlhZGQodGhpcy50bXApKS5iaXRMZW5ndGgoKX13aGlsZSh0PnRoaXMubik7dmFyIG49dDx0aGlzLm4/LTE6ci51Y21wKHRoaXMucCk7cmV0dXJuIDA9PT1uPyhyLndvcmRzWzBdPTAsci5sZW5ndGg9MSk6bj4wP3IuaXN1Yih0aGlzLnApOnIuc3RyaXAoKSxyfSx2LnByb3RvdHlwZS5zcGxpdD1mdW4=",
"2019.12.27 16:40": "base64:bihlKXtyZXR1cm4gdGhpcy5jbG9uZSgpLml1c2hybihlKX0sby5wcm90b3R5cGUudGVzdG49ZnVuY3Rpb24oZSl7bigibnVtYmVyIj09PXR5cGVvZiBlJiZlPj0wKTt2YXIgdD1lJTI2LHI9KGUtdCkvMjYsaT0xPDx0O3JldHVybiEodGhpcy5sZW5ndGg8PXIpJiYhISh0aGlzLndvcmRzW3JdJmkpfSxvLnByb3RvdHlwZS5pbWFza249ZnVuY3Rpb24oZSl7bigibnVtYmVyIj09PXR5cGVvZiBlJiZlPj0wKTt2YXIgdD1lJTI2LHI9KGUtdCkvMjY7aWYobigwPT09dGhpcy5uZWdhdGl2ZSwiaW1hc2tuIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZSBudW1iZXJzIiksdGhpcy5sZW5ndGg8PXIpcmV0dXJuIHRoaXM7aWYoMCE9PXQmJnIrKyx0aGlzLmxlbmd0aD1NYXRoLm1pbihyLHRoaXMubGVuZ3RoKSwwIT09dCl7dmFyIGk9NjcxMDg4NjNeNjcxMDg4NjM+Pj50PDx0O3RoaXMud29yZHNbdGhpcy5sZW5ndGgtMV0mPWl9cmV0dXJuIHRoaXMuc3RyaXAoKX0sby5wcm90b3R5cGUubWFza249ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbWFza24oZSl9LG8ucHJvdG90eXBlLmlhZGRuPWZ1bmN0aW9uKGUpe3JldHVybiBuKCJudW1iZXIiPT09dHlwZW9mIGUpLG4oZTw2NzEwODg2NCksZTwwP3RoaXMuaXN1Ym4oLWUpOjAhPT10aGlzLm5lZ2F0aXZlPzE9PT10aGlzLmxlbmd0aCYmKDB8dGhpcy53b3Jkc1swXSk8ZT8odGhpcy53b3Jkc1swXT1lLSgwfHRoaXMud29yZHNbMF0pLHRoaXMubmVnYXRpdmU9MCx0aGlzKToodGhpcy5uZWdhdGl2ZT0wLHRoaXMuaXN1Ym4oZSksdGhpcy5uZWdhdGl2ZT0xLHRoaXMpOnRoaXMuX2lhZGRuKGUpfSxvLnByb3RvdHlwZS5faWFkZG49ZnVuY3Rpb24oZSl7dGhpcy53b3Jkc1swXSs9ZTtmb3IodmFyIHQ9MDt0PHRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzW3RdPj02NzEwODg2NDt0KyspdGhpcy53b3Jkc1t0XS09NjcxMDg4NjQsdD09PXRoaXMubGVuZ3RoLTE/dGhpcy53b3Jkc1t0KzFdPTE6dGhpcy53b3Jkc1t0KzFdKys7cmV0dXJuIHRoaXMubGVuZ3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLHQrMSksdGhpc30sby5wcm90b3R5cGUuaXN1Ym49ZnVuY3Rpb24oZSl7aWYobigibnVtYmVyIj09PXR5cGVvZiBlKSxuKGU8NjcxMDg4NjQpLGU8MClyZXR1cm4gdGhpcy5pYWRkbigtZSk7aWYoMCE9PXRoaXMubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmlhZGRuKGUpLHRoaXMubmVnYXRpdmU9MSx0aGlzO2lmKHRoaXMud29yZHNbMF0tPWUsMT09PXRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzWzBdPDApdGhpcy53b3Jkc1swXT0tdGhpcy53b3Jkc1swXSx0aGlzLm5lZ2F0aXZlPTE7ZWxzZSBmb3IodmFyIHQ9MDt0PHRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzW3RdPDA7dCsrKXRoaXMud29yZHNbdF0rPTY3MTA4ODY0LHRoaXMud29yZHNbdCsxXS09MTtyZXR1cm4gdGhpcy5zdHJpcCgpfSxvLnByb3RvdHlwZS5hZGRuPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmNsb25lKCkuaWFkZG4oZSl9LG8ucHJvdG90eXBlLnN1Ym49ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc3VibihlKX0sby5wcm90b3R5cGUuaWFicz1mdW5jdGlvbigpe3JldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpc30sby5wcm90b3R5cGUuYWJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pYWJzKCl9LG8ucHJvdG90eXBlLl9pc2hsbnN1Ym11bD1mdW5jdGlvbihlLHQscil7dmFyIGksbyxhPWUubGVuZ3RoK3I7dGhpcy5fZXhwYW5kKGEpO3ZhciBzPTA7Zm9yKGk9MDtpPGUubGVuZ3RoO2krKyl7bz0oMHx0aGlzLndvcmRzW2krcl0pK3M7dmFyIHU9KDB8ZS53b3Jkc1tpXSkqdDtzPSgoby09NjcxMDg4NjMmdSk+PjI2KS0odS82NzEwODg2NHwwKSx0aGlzLndvcmRzW2krcl09NjcxMDg4NjMmb31mb3IoO2k8dGhpcy5sZW5ndGgtcjtpKyspcz0obz0oMHx0aGlzLndvcmRzW2krcl0pK3MpPj4yNix0aGlzLndvcmRzW2krcl09NjcxMDg4NjMmbztpZigwPT09cylyZXR1cm4gdGhpcy5zdHJpcCgpO2ZvcihuKC0xPT09cykscz0wLGk9MDtpPHRoaXMubGVuZ3RoO2krKylzPShvPS0oMHx0aGlzLndvcmRzW2ldKStzKT4+MjYsdGhpcy53b3Jkc1tpXT02NzEwODg2MyZvO3JldHVybiB0aGlzLm5lZ2F0aXZlPTEsdGhpcy5zdHJpcCgpfSxvLnByb3RvdHlwZS5fd29yZERpdj1mdW5jdGlvbihlLHQpe3ZhciByPSh0aGlzLmxlbmd0aCxlLmxlbmd0aCksbj10aGlzLmNsb25lKCksaT1lLGE9MHxpLndvcmRzW2kubGVuZ3RoLTFdOzAhPT0ocj0yNi10aGlzLl9jb3VudEJpdHMoYSkpJiYoaT1pLnVzaGxuKHIpLG4uaXVzaGxuKHIpLGE9MHxpLndvcmRzW2kubGVuZ3RoLTFdKTt2YXIgcyx1PW4ubGVuZ3RoLWkubGVuZ3RoO2lmKCJtb2QiIT09dCl7KHM9bmV3IG8obnVsbCkpLmxlbmd0aD11KzEscy53b3Jkcz1uZXcgQXJyYXkocy5sZW5ndGgpO2Zvcih2YXIgYz0wO2M8cy5sZW5ndGg7YysrKXMud29yZHNbY109MH12YXIgZj1uLmNsb25lKCkuX2lzaGxuc3VibXVsKGksMSx1KTswPT09Zi5uZWdhdGl2ZSYmKG49ZixzJiYocy53b3Jkc1t1XT0xKSk7Zm9yKHZhciBsPXUtMTtsPj0wO2wtLSl7dmFyIGg9NjcxMDg4NjQqKDB8bi53b3Jkc1tpLmxlbmd0aCtsXSkrKDB8bi53b3Jkc1tpLmxlbmd0aCtsLTFdKTtmb3IoaD1NYXRoLm1pbihoL2F8MCw2NzEwODg2Myksbi5faXNobG5zdWJtdWwoaSxoLGwpOzAhPT1uLm5lZ2F0aXZlOyloLS0sbi5uZWdhdGl2ZT0wLG4uX2lzaGxuc3VibXVsKGksMSxsKSxuLmlzWmVybygpfHwobi5uZWdhdGl2ZV49MSk7cyYmKHMud29yZHNbbF09aCl9cmV0dXJuIHMmJnMuc3RyaXAoKSxuLnN0cmlwKCksImRpdiIhPT10JiYwIT09ciYmbi5pdXNocm4ocikse2RpdjpzfHxudWxsLG1vZDpufX0sby5wcm90b3R5cGUuZGl2bW9kPWZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gbighZS5pc1plcm8oKSksdGhpcy5pc1plcm8oKT97ZGl2Om5ldyBvKDApLG1vZDpuZXcgbygwKX06MCE9PXRoaXMubmVnYXRpdmUmJjA9PT1lLm5lZ2F0aXZlPyhzPXRoaXMubmVnKCkuZGl2bW9kKGUsdCksIm1vZCIhPT10JiYoaT1zLmRpdi5uZWcoKSksImRpdiIhPT10JiYoYT1zLm1vZC5uZWcoKSxyJiYwIT09YS5uZWdhdGl2ZSYmYS5pYWRkKGUpKSx7ZGl2OmksbW9kOmF9KTowPT09dGhpcy5uZWdhdGl2ZSYmMCE9PWUubmVnYXRpdmU/KHM9dGhpcy5kaXZtb2QoZS5uZWcoKSx0KSwibW9kIiE9PXQmJihpPXMuZGl2Lm5lZygpKSx7ZGl2OmksbW9kOnMubW9kfSk6MCE9PSh0aGlzLm5lZ2F0aXZlJmUubmVnYXRpdmUpPyhzPXRoaXMubmVnKCkuZGl2bW9kKGUubmVnKCksdCksImRpdiIhPT10JiYoYT1zLm1vZC5uZWcoKSxyJiYwIT09YS5uZWdhdGl2ZSYmYS5pc3ViKGUpKSx7ZGl2OnMuZGl2LG1vZDphfSk6ZS5sZW5ndGg+dGhpcy5sZW5ndGh8fHRoaXMuY21wKGUpPDA/e2RpdjpuZXcgbygwKSxtb2Q6dGhpc306MT09PWUubGVuZ3RoPyJkaXYiPT09dD97ZGl2OnRoaXMuZGl2bihlLndvcmRzWzBdKSxtb2Q6bnVsbH06Im1vZCI9PT10P3tkaXY6bnVsbCxtb2Q6bmV3IG8odGhpcy5tb2RuKGUud29yZHNbMF0pKX06e2Rpdjp0aGlzLmRpdm4oZS53b3Jkc1swXSksbW9kOm5ldyBvKHRoaXMubW9kbihlLndvcmRzWzBdKSl9OnRoaXMuX3dvcmREaXYoZSx0KTt2YXIgaSxhLHN9LG8ucHJvdG90eXBlLmRpdj1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5kaXZtb2QoZSwiZGl2IiwhMSkuZGl2fSxvLnByb3RvdHlwZS5tb2Q9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuZGl2bW9kKGUsIm1vZCIsITEpLm1vZH0sby5wcm90b3R5cGUudW1vZD1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5kaXZtb2QoZSwibW9kIiwhMCkubW9kfSxvLnByb3RvdHlwZS5kaXZSb3VuZD1mdW5jdGlvbihlKXt2YXIgdD10aGlzLmRpdm1vZChlKTtpZih0Lm1vZC5pc1plcm8oKSlyZXR1cm4gdC5kaXY7dmFyIHI9MCE9PXQuZGl2Lm5lZ2F0aXZlP3QubW9kLmlzdWIoZSk6dC5tb2Qsbj1lLnVzaHJuKDEpLGk9ZS5hbmRsbigxKSxvPXIuY21wKG4pO3JldHVybiBvPDB8fDE9PT1pJiYwPT09bz90LmRpdjowIT09dC5kaXYubmVnYXRpdmU/dC5kaXYuaXN1Ym4oMSk6dC5kaXYuaWFkZG4oMSl9LG8ucHJvdG90eXBlLm1vZG49ZnVuY3Rpb24oZSl7bihlPD02NzEwODg2Myk7Zm9yKHZhciB0PSgxPDwyNiklZSxyPTAsaT10aGlzLmxlbmd0aC0xO2k+PTA7aS0tKXI9KHQqcisoMHx0aGlzLndvcmRzW2ldKSklZTtyZXR1cm4gcn0sby5wcm90b3R5cGUuaWRpdm49ZnVuY3Rpb24oZSl7bihlPD02NzEwODg2Myk7Zm9yKHZhciB0PTAscj10aGlzLmxlbmd0aC0xO3I+PTA7ci0tKXt2YXIgaT0oMHx0aGlzLndvcmRzW3JdKSs2NzEwODg2NCp0O3RoaXMud29yZHNbcl09aS9lfDAsdD1pJWV9cmV0dXJuIHRoaXMuc3RyaXAoKX0sby5wcm90b3R5cGUuZGl2bj1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlkaXZuKGUpfSxvLnByb3RvdHlwZS5lZ2NkPWZ1bmN0aW9uKGUpe24oMD09PWUubmVnYXRpdmUpLG4oIWUuaXNaZXJvKCkpO3ZhciB0PXRoaXMscj1lLmNsb25lKCk7dD0wIT09dC5uZWdhdGl2ZT90LnVtb2QoZSk6dC5jbG9uZSgpO2Zvcih2YXIgaT1uZXcgbygxKSxhPW5ldyBvKDApLHM9bmV3IG8oMCksdT1uZXcgbygxKSxjPTA7dC5pc0V2ZW4oKSYmci5pc0V2ZW4oKTspdC5pdXNocm4oMSksci5pdXNocm4oMSksKytjO2Zvcih2YXIgZj1yLmNsb25lKCksbD10LmNsb25lKCk7IXQuaXNaZXJvKCk7KXtmb3IodmFyIGg9MCxwPTE7MD09PSh0LndvcmRzWzBdJnApJiZoPDI2OysraCxwPDw9MSk7aWYoaD4wKWZvcih0Lml1c2hybihoKTtoLS0gPjA7KShpLmlzT2RkKCl8fGEuaXNPZGQoKSkmJihpLmlhZGQoZiksYS5pc3ViKGwpKSxpLml1c2hybigxKSxhLml1c2hybigxKTtmb3IodmFyIGQ9MCx5PTE7MD09PShyLndvcmRzWzBdJnkpJiZkPDI2OysrZCx5PDw9MSk7aWYoZD4wKWZvcihyLml1c2hybihkKTtkLS0gPjA7KShzLmlzT2RkKCl8fHUuaXNPZGQoKSkmJihzLmlhZGQoZiksdS5pc3ViKGwpKSxzLml1c2hybigxKSx1Lml1c2hybigxKTt0LmNtcChyKT49MD8odC5pc3ViKHIpLGkuaXN1YihzKSxhLmlzdWIodSkpOihyLmlzdWIodCkscy5pc3ViKGkpLHUuaXN1YihhKSl9cmV0dXJue2E6cyxiOnUsZ2NkOnIuaXVzaGxuKGMpfX0sby5wcm90b3R5cGUuX2ludm1wPWZ1bmN0aW9uKGUpe24oMD09PWUubmVnYXRpdmUpLG4oIWUuaXNaZXJvKCkpO3ZhciB0PXRoaXMscj1lLmNsb25lKCk7dD0wIT09dC5uZWdhdGl2ZT90LnVtb2QoZSk6dC5jbG9uZSgpO2Zvcih2YXIgaSxhPW5ldyBvKDEpLHM9bmV3IG8oMCksdT1yLmNsb25lKCk7dC5jbXBuKDEpPjAmJnIuY21wbigxKT4wOyl7Zm9yKHZhciBjPTAsZj0xOzA9PT0odC53b3Jkc1swXSZmKSYmYzwyNjsrK2MsZjw8PTEpO2lmKGM+MClmb3IodC5pdXNocm4oYyk7Yy0tID4wOylhLmlzT2RkKCkmJmEuaWFkZCh1KSxhLml1c2hybigxKTtmb3IodmFyIGw9MCxoPTE7MD09PShyLndvcmRzWzBdJmgpJiZsPDI2OysrbCxoPDw9MSk7aWYobD4wKWZvcihyLml1c2hybihsKTtsLS0gPjA7KXMuaXNPZGQoKSYmcy5pYWRkKHUpLHMuaXVzaHJuKDEpO3QuY21wKHIpPj0wPyh0LmlzdWIociksYS5pc3ViKHMpKTooci5pc3ViKHQpLHMuaXN1YihhKSl9cmV0dXJuKGk9MD09PXQuY21wbigxKT9hOnMpLmNtcG4oMCk8MCYmaS5pYWRkKGUpLGl9LG8ucHJvdG90eXBlLmdjZD1mdW5jdGlvbihlKXtpZih0aGlzLmlzWmVybygpKXJldHVybiBlLmFicygpO2lmKGUuaXNaZXJvKCkpcmV0dXJuIHRoaXMuYWJzKCk7dmFyIHQ9dGhpcy5jbG9uZSgpLHI9ZS5jbG9uZSgpO3QubmVnYXRpdmU9MCxyLm5lZ2F0aXZlPTA7Zm9yKHZhciBuPTA7dC5pc0V2ZW4oKSYmci5pc0V2ZW4oKTtuKyspdC5pdXNocm4oMSksci5pdXNocm4oMSk7Zm9yKDs7KXtmb3IoO3QuaXNFdmVuKCk7KXQuaXVzaHJuKDEpO2Zvcig7ci5pc0V2ZW4oKTspci5pdXNocm4oMSk7dmFyIGk9dC5jbXAocik7aWYoaTwwKXt2YXIgbz10O3Q9cixyPW99ZWxzZSBpZigwPT09aXx8MD09PXIuY21wbigxKSlicmVhazt0LmlzdWIocil9cmV0dXJuIHIuaXVzaGxuKG4pfSxvLnByb3RvdHlwZS5pbnZtPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmVnY2QoZSkuYS51bW9kKGUpfSxvLnByb3RvdHlwZS5pc0V2ZW49ZnVuY3Rpb24oKXtyZXR1cm4gMD09PSgxJnRoaXMud29yZHNbMF0pfSxvLnByb3RvdHlwZS5pc09kZD1mdW5jdGlvbigpe3JldHVybiAxPT09KDEmdGhpcy53b3Jkc1swXSl9LG8ucHJvdG90eXBlLmFuZGxuPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLndvcmRzWzBdJmV9LG8ucHJvdG90eXBlLmJpbmNuPWZ1bmN0aW9uKGUpe24oIm51bWJlciI9PT10eXBlb2YgZSk7dmFyIHQ9ZSUyNixyPShlLXQpLzI2LGk9MTw8dDtpZih0aGlzLmxlbmd0aDw9cilyZXR1cm4gdGhpcy5fZXhwYW5kKHIrMSksdGhpcy53b3Jkc1tyXXw9aSx0aGlzO2Zvcih2YXIgbz1pLGE9cjswIT09byYmYTx0aGlzLmxlbmd0aDthKyspe3ZhciBzPTB8dGhpcy53b3Jkc1thXTtvPShzKz1vKT4+PjI2LHMmPTY3MTA4ODYzLHRoaXMud29yZHNbYV09c31yZXR1cm4gMCE9PW8mJih0aGlzLndvcmRzW2FdPW8sdGhpcy5sZW5ndGgrKyksdGhpc30sby5wcm90b3R5cGUuaXNaZXJvPWZ1bmN0aW9uKCl7cmV0dXJuIDE9PT10aGlzLmxlbmd0aCYmMD09PXRoaXMud29yZHNbMF19LG8ucHJvdG90eXBlLmNtcG49ZnVuY3Rpb24oZSl7dmFyIHQscj1lPDA7aWYoMCE9PXRoaXMubmVnYXRpdmUmJiFyKXJldHVybi0xO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiZyKXJldHVybiAxO2lmKHRoaXMuc3RyaXAoKSx0aGlzLmxlbmd0aD4xKXQ9MTtlbHNle3ImJihlPS1lKSxuKGU8PTY3MTA4ODYzLCJOdW1iZXIgaXMgdG9vIGJpZyIpO3ZhciBpPTB8dGhpcy53b3Jkc1swXTt0PWk9PT1lPzA6aTxlPy0xOjF9cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlPzB8LXQ6dH0sby5wcm90b3R5cGUuY21wPWZ1bmN0aW9uKGUpe2lmKDAhPT10aGlzLm5lZ2F0aXZlJiYwPT09ZS5uZWdhdGl2ZSlyZXR1cm4tMTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmMCE9PWUubmVnYXRpdmUpcmV0dXJuIDE7dmFyIHQ9dGhpcy51Y21wKGUpO3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZT8wfC10OnR9LG8ucHJvdG90eXBlLnVjbXA9ZnVuY3Rpb24oZSl7aWYodGhpcy5sZW5ndGg+ZS5sZW5ndGgpcmV0dXJuIDE7aWYodGhpcy5sZW5ndGg8ZS5sZW5ndGgpcmV0dXJuLTE7Zm9yKHZhciB0PTAscj10aGlzLmxlbmd0aC0xO3I+PTA7ci0tKXt2YXIgbj0wfHRoaXMud29yZHNbcl0saT0wfGUud29yZHNbcl07aWYobiE9PWkpe248aT90PS0xOm4+aSYmKHQ9MSk7YnJlYWt9fXJldHVybiB0fSxvLnByb3RvdHlwZS5ndG49ZnVuY3Rpb24oZSl7cmV0dXJuIDE9PT10aGlzLmNtcG4oZSl9LG8ucHJvdG90eXBlLmd0PWZ1bmN0aW9uKGUpe3JldHVybiAxPT09dGhpcy5jbXAoZSl9LG8ucHJvdG90eXBlLmd0ZW49ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuY21wbihlKT49MH0sby5wcm90b3R5cGUuZ3RlPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmNtcChlKT49MH0sby5wcm90b3R5cGUubHRuPWZ1bmN0aW9uKGUpe3JldHVybi0xPT09dGhpcy5jbXBuKGUpfSxvLnByb3RvdHlwZS5sdD1mdW5jdGlvbihlKXtyZXR1cm4tMT09PXRoaXMuY21wKGUpfSxvLnByb3RvdHlwZS5sdGVuPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmNtcG4oZSk8PTB9LG8ucHJvdG90eXBlLmx0ZT1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5jbXAoZSk8PTB9LG8ucHJvdG90eXBlLmVxbj1mdW5jdGlvbihlKXtyZXR1cm4gMD09PXRoaXMuY21wbihlKX0sby5wcm90b3R5cGUuZXE9ZnVuY3Rpb24oZSl7cmV0dXJuIDA9PT10aGlzLmNtcChlKX0sby5yZWQ9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBFKGUpfSxvLnByb3RvdHlwZS50b1JlZD1mdW5jdGlvbihlKXtyZXR1cm4gbighdGhpcy5yZWQsIkFscmVhZHkgYSBudW1iZXIgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSxuKDA9PT10aGlzLm5lZ2F0aXZlLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLGUuY29udmVydFRvKHRoaXMpLl9mb3JjZVJlZChlKX0sby5wcm90b3R5cGUuZnJvbVJlZD1mdW5jdGlvbigpe3JldHVybiBuKHRoaXMucmVkLCJmcm9tUmVkIHdvcmtzIG9ubHkgd2l0aCBudW1iZXJzIGluIHJlZHVjdGlvbiBjb250ZXh0IiksdGhpcy5yZWQuY29udmVydEZyb20odGhpcyl9LG8ucHJvdG90eXBlLl9mb3JjZVJlZD1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5yZWQ9ZSx0aGlzfSxvLnByb3RvdHlwZS5mb3JjZVJlZD1mdW5jdGlvbihlKXtyZXR1cm4gbighdGhpcy5yZWQsIkFscmVhZHkgYSBudW1iZXIgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSx0aGlzLl9mb3JjZVJlZChlKX0sby5wcm90b3R5cGUucmVkQWRkPWZ1bmN0aW9uKGUpe3JldHVybiBuKHRoaXMucmVkLCJyZWRBZGQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuYWRkKHRoaXMsZSl9LG8ucHJvdG90eXBlLnJlZElBZGQ9ZnVuY3Rpb24oZSl7cmV0dXJuIG4odGhpcy5yZWQsInJlZElBZGQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuaWFkZCh0aGlzLGUpfSxvLnByb3RvdHlwZS5yZWRTdWI9ZnVuY3Rpb24oZSl7cmV0dXJuIG4odGhpcy5yZWQsInJlZFN1YiB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5zdWIodGhpcyxlKX0sby5wcm90b3R5cGUucmVkSVN1Yj1mdW5jdGlvbihlKXtyZXR1cm4gbih0aGlzLnJlZCwicmVkSVN1YiB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5pc3ViKHRoaXMsZSl9LG8ucHJvdG90eXBlLnJlZFNobD1mdW5jdGlvbihlKXtyZXR1cm4gbih0aGlzLnJlZCwicmVkU2hsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLnNobCh0aGlzLGUpfSxvLnByb3RvdHlwZS5yZWRNdWw9ZnVuY3Rpb24oZSl7cmV0dXJuIG4odGhpcy5yZWQsInJlZE11bCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5Mih0aGlzLGUpLHRoaXMucmVkLm11bCh0aGlzLGUpfSxvLnByb3RvdHlwZS5yZWRJTXVsPWZ1bmN0aW9uKGUpe3JldHVybiBuKHRoaXMucmVkLCJyZWRNdWwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTIodGhpcyxlKSx0aGlzLnJlZC5pbXVsKHRoaXMsZSl9LG8ucHJvdG90eXBlLnJlZFNxcj1mdW5jdGlvbigpe3JldHVybiBuKHRoaXMucmVkLCJyZWRTcXIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuc3FyKHRoaXMpfSxvLnByb3RvdHlwZS5yZWRJU3FyPWZ1bmN0aW9uKCl7cmV0dXJuIG4odGhpcy5yZWQsInJlZElTcXIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuaXNxcih0aGlzKX0sby5wcm90b3R5cGUucmVkU3FydD1mdW5jdGlvbigpe3JldHVybiBuKHRoaXMucmVkLCJyZWRTcXJ0IHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnNxcnQodGhpcyl9LG8ucHJvdG90eXBlLnJlZEludm09ZnVuY3Rpb24oKXtyZXR1cm4gbih0aGlzLnJlZCwicmVkSW52bSB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5pbnZtKHRoaXMpfSxvLnByb3RvdHlwZS5yZWROZWc9ZnVuY3Rpb24oKXtyZXR1cm4gbih0aGlzLnJlZCwicmVkTmVnIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLm5lZyh0aGlzKX0sby5wcm90b3R5cGUucmVkUG93PWZ1bmN0aW9uKGUpe3JldHVybiBuKHRoaXMucmVkJiYhZS5yZWQsInJlZFBvdyhub3JtYWxOdW0pIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQucG93KHRoaXMsZSl9O3ZhciBnPXtrMjU2Om51bGwscDIyNDpudWxsLHAxOTI6bnVsbCxwMjU1MTk6bnVsbH07ZnVuY3Rpb24gdihlLHQpe3RoaXMubmFtZT1lLHRoaXMucD1uZXcgbyh0LDE2KSx0aGlzLm49dGhpcy5wLmJpdExlbmd0aCgpLHRoaXMuaz1uZXcgbygxKS5pdXNobG4odGhpcy5uKS5pc3ViKHRoaXMucCksdGhpcy50bXA9dGhpcy5fdG1wKCl9ZnVuY3Rpb24gbSgpe3YuY2FsbCh0aGlzLCJrMjU2IiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZjMmYiKX1mdW5jdGlvbiBiKCl7di5jYWxsKHRoaXMsInAyMjQiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMSIpfWZ1bmN0aW9uIF8oKXt2LmNhbGwodGhpcywicDE5MiIsImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZmZmZmZmZmIGZmZmZmZmZmIil9ZnVuY3Rpb24gUygpe3YuY2FsbCh0aGlzLCIyNTUxOSIsIjdmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZWQiKX1mdW5jdGlvbiBFKGUpe2lmKCJzdHJpbmciPT09dHlwZW9mIGUpe3ZhciB0PW8uX3ByaW1lKGUpO3RoaXMubT10LnAsdGhpcy5wcmltZT10fWVsc2UgbihlLmd0bigxKSwibW9kdWx1cyBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAxIiksdGhpcy5tPWUsdGhpcy5wcmltZT1udWxsfWZ1bmN0aW9uIHcoZSl7RS5jYWxsKHRoaXMsZSksdGhpcy5zaGlmdD10aGlzLm0uYml0TGVuZ3RoKCksdGhpcy5zaGlmdCUyNiE9PTAmJih0aGlzLnNoaWZ0Kz0yNi10aGlzLnNoaWZ0JTI2KSx0aGlzLnI9bmV3IG8oMSkuaXVzaGxuKHRoaXMuc2hpZnQpLHRoaXMucjI9dGhpcy5pbW9kKHRoaXMuci5zcXIoKSksdGhpcy5yaW52PXRoaXMuci5faW52bXAodGhpcy5tKSx0aGlzLm1pbnY9dGhpcy5yaW52Lm11bCh0aGlzLnIpLmlzdWJuKDEpLmRpdih0aGlzLm0pLHRoaXMubWludj10aGlzLm1pbnYudW1vZCh0aGlzLnIpLHRoaXMubWludj10aGlzLnIuc3ViKHRoaXMubWludil9di5wcm90b3R5cGUuX3RtcD1mdW5jdGlvbigpe3ZhciBlPW5ldyBvKG51bGwpO3JldHVybiBlLndvcmRzPW5ldyBBcnJheShNYXRoLmNlaWwodGhpcy5uLzEzKSksZX0sdi5wcm90b3R5cGUuaXJlZHVjZT1mdW5jdGlvbihlKXt2YXIgdCxyPWU7ZG97dGhpcy5zcGxpdChyLHRoaXMudG1wKSx0PShyPShyPXRoaXMuaW11bEsocikpLmlhZGQodGhpcy50bXApKS5iaXRMZW5ndGgoKX13aGlsZSh0PnRoaXMubik7dmFyIG49dDx0aGlzLm4/LTE6ci51Y21wKHRoaXMucCk7cmV0dXJuIDA9PT1uPyhyLndvcmRzWzBdPTAsci5sZW5ndGg9MSk6bj4wP3IuaXN1Yih0aGlzLnApOnIuc3RyaXAoKSxyfSx2LnByb3RvdHlwZS5zcGxpdD1mdW4="
}