1ÿþ/�*�!� �j�Q�u�e�r�y� �v�3�.�6�.�0� �|� �(�c�)� �O�p�e�n�J�S� �F�o�u�n�d�a�t�i�o�n� �a�n�d� �o�t�h�e�r� �c�o�n�t�r�i�b�u�t�o�r�s� �|� �j�q�u�e�r�y�.�o�r�g�/�l�i�c�e�n�s�e� �*�/��� 2�!�f�u�n�c�t�i�o�n�(�e�,�t�)�{�"�u�s�e� �s�t�r�i�c�t�"�;�"�o�b�j�e�c�t�"�=�=�t�y�p�e�o�f� �m�o�d�u�l�e�&�&�"�o�b�j�e�c�t�"�=�=�t�y�p�e�o�f� �m�o�d�u�l�e�.�e�x�p�o�r�t�s�?�m�o�d�u�l�e�.�e�x�p�o�r�t�s�=�e�.�d�o�c�u�m�e�n�t�?�t�(�e�,�!�0�)�:�f�u�n�c�t�i�o�n�(�e�)�{�i�f�(�!�e�.�d�o�c�u�m�e�n�t�)�t�h�r�o�w� �n�e�w� �E�r�r�o�r�(�"�j�Q�u�e�r�y� �r�e�q�u�i�r�e�s� �a� �w�i�n�d�o�w� �w�i�t�h� �a� �d�o�c�u�m�e�n�t�"�)�;�r�e�t�u�r�n� �t�(�e�)�}�:�t�(�e�)�}�(�"�u�n�d�e�f�i�n�e�d�"�!�=�t�y�p�e�o�f� �w�i�n�d�o�w�?�w�i�n�d�o�w�:�t�h�i�s�,�f�u�n�c�t�i�o�n�(�C�,�e�)�{�"�u�s�e� �s�t�r�i�c�t�"�;�v�a�r� �t�=�[�]�,�r�=�O�b�j�e�c�t�.�g�e�t�P�r�o�t�o�t�y�p�e�O�f�,�s�=�t�.�s�l�i�c�e�,�g�=�t�.�f�l�a�t�?�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �t�.�f�l�a�t�.�c�a�l�l�(�e�)�}�:�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �t�.�c�o�n�c�a�t�.�a�p�p�l�y�(�[�]�,�e�)�}�,�u�=�t�.�p�u�s�h�,�i�=�t�.�i�n�d�e�x�O�f�,�n�=�{�}�,�o�=�n�.�t�o�S�t�r�i�n�g�,�v�=�n�.�h�a�s�O�w�n�P�r�o�p�e�r�t�y�,�a�=�v�.�t�o�S�t�r�i�n�g�,�l�=�a�.�c�a�l�l�(�O�b�j�e�c�t�)�,�y�=�{�}�,�m�=�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n�"�f�u�n�c�t�i�o�n�"�=�=�t�y�p�e�o�f� �e�&�&�"�n�u�m�b�e�r�"�!�=�t�y�p�e�o�f� �e�.�n�o�d�e�T�y�p�e�&�&�"�f�u�n�c�t�i�o�n�"�!�=�t�y�p�e�o�f� �e�.�i�t�e�m�}�,�x�=�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �n�u�l�l�!�=�e�&�&�e�=�=�=�e�.�w�i�n�d�o�w�}�,�E�=�C�.�d�o�c�u�m�e�n�t�,�c�=�{�t�y�p�e�:�!�0�,�s�r�c�:�!�0�,�n�o�n�c�e�:�!�0�,�n�o�M�o�d�u�l�e�:�!�0�}�;�f�u�n�c�t�i�o�n� �b�(�e�,�t�,�n�)�{�v�a�r� �r�,�i�,�o�=�(�n�=�n�|�|�E�)�.�c�r�e�a�t�e�E�l�e�m�e�n�t�(�"�s�c�r�i�p�t�"�)�;�i�f�(�o�.�t�e�x�t�=�e�,�t�)�f�o�r�(�r� �i�n� �c�)�(�i�=�t�[�r�]�|�|�t�.�g�e�t�A�t�t�r�i�b�u�t�e�&�&�t�.�g�e�t�A�t�t�r�i�b�u�t�e�(�r�)�)�&�&�o�.�s�e�t�A�t�t�r�i�b�u�t�e�(�r�,�i�)�;�n�.�h�e�a�d�.�a�p�p�e�n�d�C�h�i�l�d�(�o�)�.�p�a�r�e�n�t�N�o�d�e�.�r�e�m�o�v�e�C�h�i�l�d�(�o�)�}�f�u�n�c�t�i�o�n� �w�(�e�)�{�r�e�t�u�r�n� �n�u�l�l�=�=�e�?�e�+�"�"�:�"�o�b�j�e�c�t�"�=�=�t�y�p�e�o�f� �e�|�|�"�f�u�n�c�t�i�o�n�"�=�=�t�y�p�e�o�f� �e�?�n�[�o�.�c�a�l�l�(�e�)�]�|�|�"�o�b�j�e�c�t�"�:�t�y�p�e�o�f� �e�}�v�a�r� �f�=�"�3�.�6�.�0�"�,�S�=�f�u�n�c�t�i�o�n�(�e�,�t�)�{�r�e�t�u�r�n� �n�e�w� �S�.�f�n�.�i�n�i�t�(�e�,�t�)�}�;�f�u�n�c�t�i�o�n� �p�(�e�)�{�v�a�r� �t�=�!�!�e�&�&�"�l�e�n�g�t�h�"�i�n� �e�&�&�e�.�l�e�n�g�t�h�,�n�=�w�(�e�)�;�r�e�t�u�r�n�!�m�(�e�)�&�&�!�x�(�e�)�&�&�(�"�a�r�r�a�y�"�=�=�=�n�|�|�0�=�=�=�t�|�|�"�n�u�m�b�e�r�"�=�=�t�y�p�e�o�f� �t�&�&�0�<�t�&�&�t�-�1� �i�n� �e�)�}�S�.�f�n�=�S�.�p�r�o�t�o�t�y�p�e�=�{�j�q�u�e�r�y�:�f�,�c�o�n�s�t�r�u�c�t�o�r�:�S�,�l�e�n�g�t�h�:�0�,�t�o�A�r�r�a�y�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �s�.�c�a�l�l�(�t�h�i�s�)�}�,�g�e�t�:�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �n�u�l�l�=�=�e�?�s�.�c�a�l�l�(�t�h�i�s�)�:�e�<�0�?�t�h�i�s�[�e�+�t�h�i�s�.�l�e�n�g�t�h�]�:�t�h�i�s�[�e�]�}�,�p�u�s�h�S�t�a�c�k�:�f�u�n�c�t�i�o�n�(�e�)�{�v�a�r� �t�=�S�.�m�e�r�g�e�(�t�h�i�s�.�c�o�n�s�t�r�u�c�t�o�r�(�)�,�e�)�;�r�e�t�u�r�n� �t�.�p�r�e�v�O�b�j�e�c�t�=�t�h�i�s�,�t�}�,�e�a�c�h�:�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �S�.�e�a�c�h�(�t�h�i�s�,�e�)�}�,�m�a�p�:�f�u�n�c�t�i�o�n�(�n�)�{�r�e�t�u�r�n� �t�h�i�s�.�p�u�s�h�S�t�a�c�k�(�S�.�m�a�p�(�t�h�i�s�,�f�u�n�c�t�i�o�n�(�e�,�t�)�{�r�e�t�u�r�n� �n�.�c�a�l�l�(�e�,�t�,�e�)�}�)�)�}�,�s�l�i�c�e�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �t�h�i�s�.�p�u�s�h�S�t�a�c�k�(�s�.�a�p�p�l�y�(�t�h�i�s�,�a�r�g�u�m�e�n�t�s�)�)�}�,�f�i�r�s�t�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �t�h�i�s�.�e�q�(�0�)�}�,�l�a�s�t�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �t�h�i�s�.�e�q�(�-�1�)�}�,�e�v�e�n�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �t�h�i�s�.�p�u�s�h�S�t�a�c�k�(�S�.�g�r�e�p�(�t�h�i�s�,�f�u�n�c�t�i�o�n�(�e�,�t�)�{�r�e�t�u�r�n�(�t�+�1�)�%�2�}�)�)�}�,�o�d�d�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �t�h�i�s�.�p�u�s�h�S�t�a�c�k�(�S�.�g�r�e�p�(�t�h�i�s�,�f�u�n�c�t�i�o�n�(�e�,�t�)�{�r�e�t�u�r�n� �t�%�2�}�)�)�}�,�e�q�:�f�u�n�c�t�i�o�n�(�e�)�{�v�a�r� �t�=�t�h�i�s�.�l�e�n�g�t�h�,�n�=�+�e�+�(�e�<�0�?�t�:�0�)�;�r�e�t�u�r�n� �t�h�i�s�.�p�u�s�h�S�t�a�c�k�(�0�<�=�n�&�&�n�<�t�?�[�t�h�i�s�[�n�]�]�:�[�]�)�}�,�e�n�d�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �t�h�i�s�.�p�r�e�v�O�b�j�e�c�t�|�|�t�h�i�s�.�c�o�n�s�t�r�u�c�t�o�r�(�)�}�,�p�u�s�h�:�u�,�s�o�r�t�:�t�.�s�o�r�t�,�s�p�l�i�c�e�:�t�.�s�p�l�i�c�e�}�,�S�.�e�x�t�e�n�d�=�S�.�f�n�.�e�x�t�e�n�d�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �e�,�t�,�n�,�r�,�i�,�o�,�a�=�a�r�g�u�m�e�n�t�s�[�0�]�|�|�{�}�,�s�=�1�,�u�=�a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�,�l�=�!�1�;�f�o�r�(�"�b�o�o�l�e�a�n�"�=�=�t�y�p�e�o�f� �a�&�&�(�l�=�a�,�a�=�a�r�g�u�m�e�n�t�s�[�s�]�|�|�{�}�,�s�+�+�)�,�"�o�b�j�e�c�t�"�=�=�t�y�p�e�o�f� �a�|�|�m�(�a�)�|�|�(�a�=�{�}�)�,�s�=�=�=�u�&�&�(�a�=�t�h�i�s�,�s�-�-�)�;�s�<�u�;�s�+�+�)�i�f�(�n�u�l�l�!�=�(�e�=�a�r�g�u�m�e�n�t�s�[�s�]�)�)�f�o�r�(�t� �i�n� �e�)�r�=�e�[�t�]�,�"�_�_�p�r�o�t�o�_�_�"�!�=�=�t�&�&�a�!�=�=�r�&�&�(�l�&�&�r�&�&�(�S�.�i�s�P�l�a�i�n�O�b�j�e�c�t�(�r�)�|�|�(�i�=�A�r�r�a�y�.�i�s�A�r�r�a�y�(�r�)�)�)�?�(�n�=�a�[�t�]�,�o�=�i�&�&�!�A�r�r�a�y�.�i�s�A�r�r�a�y�(�n�)�?�[�]�:�i�|�|�S�.�i�s�P�l�a�i�n�O�b�j�e�c�t�(�n�)�?�n�:�{�}�,�i�=�!�1�,�a�[�t�]�=�S�.�e�x�t�e�n�d�(�l�,�o�,�r�)�)�:�v�o�i�d� �0�!�=�=�r�&�&�(�a�[�t�]�=�r�)�)�;�r�e�t�u�r�n� �a�}�,�S�.�e�x�t�e�n�d�(�{�e�x�p�a�n�d�o�:�"�j�Q�u�e�r�y�"�+�(�f�+�M�a�t�h�.�r�a�n�d�o�m�(�)�)�.�r�e�p�l�a�c�e�(�/�\�D�/�g�,�"�"�)�,�i�s�R�e�a�d�y�:�!�0�,�e�r�r�o�r�:�f�u�n�c�t�i�o�n�(�e�)�{�t�h�r�o�w� �n�e�w� �E�r�r�o�r�(�e�)�}�,�n�o�o�p�:�f�u�n�c�t�i�o�n�(�)�{�}�,�i�s�P�l�a�i�n�O�b�j�e�c�t�:�f�u�n�c�t�i�o�n�(�e�)�{�v�a�r� �t�,�n�;�r�e�t�u�r�n�!�(�!�e�|�|�"�[�o�b�j�e�c�t� �O�b�j�e�c�t�]�"�!�=�=�o�.�c�a�l�l�(�e�)�)�&�&�(�!�(�t�=�r�(�e�)�)�|�|�"�f�u�n�c�t�i�o�n�"�=�=�t�y�p�e�o�f�(�n�=�v�.�c�a�l�l�(�t�,�"�c�o�n�s�t�r�u�c�t�o�r�"�)�&�&�t�.�c�o�n�s�t�r�u�c�t�o�r�
2)�&�&�a�.�c�a�l�l�(�n�)�=�=�=�l�)�}�,�i�s�E�m�p�t�y�O�b�j�e�c�t�:�f�u�n�c�t�i�o�n�(�e�)�{�v�a�r� �t�;�f�o�r�(�t� �i�n� �e�)�r�e�t�u�r�n�!�1�;�r�e�t�u�r�n�!�0�}�,�g�l�o�b�a�l�E�v�a�l�:�f�u�n�c�t�i�o�n�(�e�,�t�,�n�)�{�b�(�e�,�{�n�o�n�c�e�:�t�&�&�t�.�n�o�n�c�e�}�,�n�)�}�,�e�a�c�h�:�f�u�n�c�t�i�o�n�(�e�,�t�)�{�v�a�r� �n�,�r�=�0�;�i�f�(�p�(�e�)�)�{�f�o�r�(�n�=�e�.�l�e�n�g�t�h�;�r�<�n�;�r�+�+�)�i�f�(�!�1�=�=�=�t�.�c�a�l�l�(�e�[�r�]�,�r�,�e�[�r�]�)�)�b�r�e�a�k�}�e�l�s�e� �f�o�r�(�r� �i�n� �e�)�i�f�(�!�1�=�=�=�t�.�c�a�l�l�(�e�[�r�]�,�r�,�e�[�r�]�)�)�b�r�e�a�k�;�r�e�t�u�r�n� �e�}�,�m�a�k�e�A�r�r�a�y�:�f�u�n�c�t�i�o�n�(�e�,�t�)�{�v�a�r� �n�=�t�|�|�[�]�;�r�e�t�u�r�n� �n�u�l�l�!�=�e�&�&�(�p�(�O�b�j�e�c�t�(�e�)�)�?�S�.�m�e�r�g�e�(�n�,�"�s�t�r�i�n�g�"�=�=�t�y�p�e�o�f� �e�?�[�e�]�:�e�)�:�u�.�c�a�l�l�(�n�,�e�)�)�,�n�}�,�i�n�A�r�r�a�y�:�f�u�n�c�t�i�o�n�(�e�,�t�,�n�)�{�r�e�t�u�r�n� �n�u�l�l�=�=�t�?�-�1�:�i�.�c�a�l�l�(�t�,�e�,�n�)�}�,�m�e�r�g�e�:�f�u�n�c�t�i�o�n�(�e�,�t�)�{�f�o�r�(�v�a�r� �n�=�+�t�.�l�e�n�g�t�h�,�r�=�0�,�i�=�e�.�l�e�n�g�t�h�;�r�<�n�;�r�+�+�)�e�[�i�+�+�]�=�t�[�r�]�;�r�e�t�u�r�n� �e�.�l�e�n�g�t�h�=�i�,�e�}�,�g�r�e�p�:�f�u�n�c�t�i�o�n�(�e�,�t�,�n�)�{�f�o�r�(�v�a�r� �r�=�[�]�,�i�=�0�,�o�=�e�.�l�e�n�g�t�h�,�a�=�!�n�;�i�<�o�;�i�+�+�)�!�t�(�e�[�i�]�,�i�)�!�=�=�a�&�&�r�.�p�u�s�h�(�e�[�i�]�)�;�r�e�t�u�r�n� �r�}�,�m�a�p�:�f�u�n�c�t�i�o�n�(�e�,�t�,�n�)�{�v�a�r� �r�,�i�,�o�=�0�,�a�=�[�]�;�i�f�(�p�(�e�)�)�f�o�r�(�r�=�e�.�l�e�n�g�t�h�;�o�<�r�;�o�+�+�)�n�u�l�l�!�=�(�i�=�t�(�e�[�o�]�,�o�,�n�)�)�&�&�a�.�p�u�s�h�(�i�)�;�e�l�s�e� �f�o�r�(�o� �i�n� �e�)�n�u�l�l�!�=�(�i�=�t�(�e�[�o�]�,�o�,�n�)�)�&�&�a�.�p�u�s�h�(�i�)�;�r�e�t�u�r�n� �g�(�a�)�}�,�g�u�i�d�:�1�,�s�u�p�p�o�r�t�:�y�}�)�,�"�f�u�n�c�t�i�o�n�"�=�=�t�y�p�e�o�f� �S�y�m�b�o�l�&�&�(�S�.�f�n�[�S�y�m�b�o�l�.�i�t�e�r�a�t�o�r�]�=�t�[�S�y�m�b�o�l�.�i�t�e�r�a�t�o�r�]�)�,�S�.�e�a�c�h�(�"�B�o�o�l�e�a�n� �N�u�m�b�e�r� �S�t�r�i�n�g� �F�u�n�c�t�i�o�n� �A�r�r�a�y� �D�a�t�e� �R�e�g�E�x�p� �O�b�j�e�c�t� �E�r�r�o�r� �S�y�m�b�o�l�"�.�s�p�l�i�t�(�"� �"�)�,�f�u�n�c�t�i�o�n�(�e�,�t�)�{�n�[�"�[�o�b�j�e�c�t� �"�+�t�+�"�]�"�]�=�t�.�t�o�L�o�w�e�r�C�a�s�e�(�)�}�)�;�v�a�r� �d�=�f�u�n�c�t�i�o�n�(�n�)�{�v�a�r� �e�,�d�,�b�,�o�,�i�,�h�,�f�,�g�,�w�,�u�,�l�,�T�,�C�,�a�,�E�,�v�,�s�,�c�,�y�,�S�=�"�s�i�z�z�l�e�"�+�1�*�n�e�w� �D�a�t�e�,�p�=�n�.�d�o�c�u�m�e�n�t�,�k�=�0�,�r�=�0�,�m�=�u�e�(�)�,�x�=�u�e�(�)�,�A�=�u�e�(�)�,�N�=�u�e�(�)�,�j�=�f�u�n�c�t�i�o�n�(�e�,�t�)�{�r�e�t�u�r�n� �e�=�=�=�t�&�&�(�l�=�!�0�)�,�0�}�,�D�=�{�}�.�h�a�s�O�w�n�P�r�o�p�e�r�t�y�,�t�=�[�]�,�q�=�t�.�p�o�p�,�L�=�t�.�p�u�s�h�,�H�=�t�.�p�u�s�h�,�O�=�t�.�s�l�i�c�e�,�P�=�f�u�n�c�t�i�o�n�(�e�,�t�)�{�f�o�r�(�v�a�r� �n�=�0�,�r�=�e�.�l�e�n�g�t�h�;�n�<�r�;�n�+�+�)�i�f�(�e�[�n�]�=�=�=�t�)�r�e�t�u�r�n� �n�;�r�e�t�u�r�n�-�1�}�,�R�=�"�c�h�e�c�k�e�d�|�s�e�l�e�c�t�e�d�|�a�s�y�n�c�|�a�u�t�o�f�o�c�u�s�|�a�u�t�o�p�l�a�y�|�c�o�n�t�r�o�l�s�|�d�e�f�e�r�|�d�i�s�a�b�l�e�d�|�h�i�d�d�e�n�|�i�s�m�a�p�|�l�o�o�p�|�m�u�l�t�i�p�l�e�|�o�p�e�n�|�r�e�a�d�o�n�l�y�|�r�e�q�u�i�r�e�d�|�s�c�o�p�e�d�"�,�M�=�"�[�\�\�x�2�0�\�\�t�\�\�r�\�\�n�\�\�f�]�"�,�I�=�"�(�?�:�\�\�\�\�[�\�\�d�a�-�f�A�-�F�]�{�1�,�6�}�"�+�M�+�"�?�|�\�\�\�\�[�^�\�\�r�\�\�n�\�\�f�]�|�[�\�\�w�-�]�|�[�^�\�0�-�\�\�x�7�f�]�)�+�"�,�W�=�"�\�\�[�"�+�M�+�"�*�(�"�+�I�+�"�)�(�?�:�"�+�M�+�"�*�(�[�*�^�$�|�!�~�]�?�=�)�"�+�M�+�"�*�(�?�:�'�(�(�?�:�\�\�\�\�.�|�[�^�\�\�\�\�'�]�)�*�)�'�|�\�"�(�(�?�:�\�\�\�\�.�|�[�^�\�\�\�\�\�"�]�)�*�)�\�"�|�(�"�+�I�+�"�)�)�|�)�"�+�M�+�"�*�\�\�]�"�,�F�=�"�:�(�"�+�I�+�"�)�(�?�:�\�\�(�(�(�'�(�(�?�:�\�\�\�\�.�|�[�^�\�\�\�\�'�]�)�*�)�'�|�\�"�(�(�?�:�\�\�\�\�.�|�[�^�\�\�\�\�\�"�]�)�*�)�\�"�)�|�(�(�?�:�\�\�\�\�.�|�[�^�\�\�\�\�(�)�[�\�\�]�]�|�"�+�W�+�"�)�*�)�|�.�*�)�\�\�)�|�)�"�,�B�=�n�e�w� �R�e�g�E�x�p�(�M�+�"�+�"�,�"�g�"�)�,�$�=�n�e�w� �R�e�g�E�x�p�(�"�^�"�+�M�+�"�+�|�(�(�?�:�^�|�[�^�\�\�\�\�]�)�(�?�:�\�\�\�\�.�)�*�)�"�+�M�+�"�+�$�"�,�"�g�"�)�,�_�=�n�e�w� �R�e�g�E�x�p�(�"�^�"�+�M�+�"�*�,�"�+�M�+�"�*�"�)�,�z�=�n�e�w� �R�e�g�E�x�p�(�"�^�"�+�M�+�"�*�(�[�>�+�~�]�|�"�+�M�+�"�)�"�+�M�+�"�*�"�)�,�U�=�n�e�w� �R�e�g�E�x�p�(�M�+�"�|�>�"�)�,�X�=�n�e�w� �R�e�g�E�x�p�(�F�)�,�V�=�n�e�w� �R�e�g�E�x�p�(�"�^�"�+�I�+�"�$�"�)�,�G�=�{�I�D�:�n�e�w� �R�e�g�E�x�p�(�"�^�#�(�"�+�I�+�"�)�"�)�,�C�L�A�S�S�:�n�e�w� �R�e�g�E�x�p�(�"�^�\�\�.�(�"�+�I�+�"�)�"�)�,�T�A�G�:�n�e�w� �R�e�g�E�x�p�(�"�^�(�"�+�I�+�"�|�[�*�
2]�)�"�)�,�A�T�T�R�:�n�e�w� �R�e�g�E�x�p�(�"�^�"�+�W�)�,�P�S�E�U�D�O�:�n�e�w� �R�e�g�E�x�p�(�"�^�"�+�F�)�,�C�H�I�L�D�:�n�e�w� �R�e�g�E�x�p�(�"�^�:�(�o�n�l�y�|�f�i�r�s�t�|�l�a�s�t�|�n�t�h�|�n�t�h�-�l�a�s�t�)�-�(�c�h�i�l�d�|�o�f�-�t�y�p�e�)�(�?�:�\�\�(�"�+�M�+�"�*�(�e�v�e�n�|�o�d�d�|�(�(�[�+�-�]�|�)�(�\�\�d�*�)�n�|�)�"�+�M�+�"�*�(�?�:�(�[�+�-�]�|�)�"�+�M�+�"�*�(�\�\�d�+�)�|�)�)�"�+�M�+�"�*�\�\�)�|�)�"�,�"�i�"�)�,�b�o�o�l�:�n�e�w� �R�e�g�E�x�p�(�"�^�(�?�:�"�+�R�+�"�)�$�"�,�"�i�"�)�,�n�e�e�d�s�C�o�n�t�e�x�t�:�n�e�w� �R�e�g�E�x�p�(�"�^�"�+�M�+�"�*�[�>�+�~�]�|�:�(�e�v�e�n�|�o�d�d�|�e�q�|�g�t�|�l�t�|�n�t�h�|�f�i�r�s�t�|�l�a�s�t�)�(�?�:�\�\�(�"�+�M�+�"�*�(�(�?�:�-�\�\�d�)�?�\�\�d�*�)�"�+�M�+�"�*�\�\�)�|�)�(�?�=�[�^�-�]�|�$�)�"�,�"�i�"�)�}�,�Y�=�/�H�T�M�L�$�/�i�,�Q�=�/�^�(�?�:�i�n�p�u�t�|�s�e�l�e�c�t�|�t�e�x�t�a�r�e�a�|�b�u�t�t�o�n�)�$�/�i�,�J�=�/�^�h�\�d�$�/�i�,�K�=�/�^�[�^�{�]�+�\�{�\�s�*�\�[�n�a�t�i�v�e� �\�w�/�,�Z�=�/�^�(�?�:�#�(�[�\�w�-�]�+�)�|�(�\�w�+�)�|�\�.�(�[�\�w�-�]�+�)�)�$�/�,�e�e�=�/�[�+�~�]�/�,�t�e�=�n�e�w� �R�e�g�E�x�p�(�"�\�\�\�\�[�\�\�d�a�-�f�A�-�F�]�{�1�,�6�}�"�+�M�+�"�?�|�\�\�\�\�(�[�^�\�\�r�\�\�n�\�\�f�]�)�"�,�"�g�"�)�,�n�e�=�f�u�n�c�t�i�o�n�(�e�,�t�)�{�v�a�r� �n�=�"�0�x�"�+�e�.�s�l�i�c�e�(�1�)�-�6�5�5�3�6�;�r�e�t�u�r�n� �t�|�|�(�n�<�0�?�S�t�r�i�n�g�.�f�r�o�m�C�h�a�r�C�o�d�e�(�n�+�6�5�5�3�6�)�:�S�t�r�i�n�g�.�f�r�o�m�C�h�a�r�C�o�d�e�(�n�>�>�1�0�|�5�5�2�9�6�,�1�0�2�3�&�n�|�5�6�3�2�0�)�)�}�,�r�e�=�/�(�[�\�0�-�\�x�1�f�\�x�7�f�]�|�^�-�?�\�d�)�|�^�-�$�|�[�^�\�0�-�\�x�1�f�\�x�7�f�-�\�u�F�F�F�F�\�w�-�]�/�g�,�i�e�=�f�u�n�c�t�i�o�n�(�e�,�t�)�{�r�e�t�u�r�n� �t�?�"�\�0�"�=�=�=�e�?�"�\�u�f�f�f�d�"�:�e�.�s�l�i�c�e�(�0�,�-�1�)�+�"�\�\�"�+�e�.�c�h�a�r�C�o�d�e�A�t�(�e�.�l�e�n�g�t�h�-�1�)�.�t�o�S�t�r�i�n�g�(�1�6�)�+�"� �"�:�"�\�\�"�+�e�}�,�o�e�=�f�u�n�c�t�i�o�n�(�)�{�T�(�)�}�,�a�e�=�b�e�(�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n�!�0�=�=�=�e�.�d�i�s�a�b�l�e�d�&�&�"�f�i�e�l�d�s�e�t�"�=�=�=�e�.�n�o�d�e�N�a�m�e�.�t�o�L�o�w�e�r�C�a�s�e�(�)�}�,�{�d�i�r�:�"�p�a�r�e�n�t�N�o�d�e�"�,�n�e�x�t�:�"�l�e�g�e�n�d�"�}�)�;�t�r�y�{�H�.�a�p�p�l�y�(�t�=�O�.�c�a�l�l�(�p�.�c�h�i�l�d�N�o�d�e�s�)�,�p�.�c�h�i�l�d�N�o�d�e�s�)�,�t�[�p�.�c�h�i�l�d�N�o�d�e�s�.�l�e�n�g�t�h�]�.�n�o�d�e�T�y�p�e�}�c�a�t�c�h�(�e�)�{�H�=�{�a�p�p�l�y�:�t�.�l�e�n�g�t�h�?�f�u�n�c�t�i�o�n�(�e�,�t�)�{�L�.�a�p�p�l�y�(�e�,�O�.�c�a�l�l�(�t�)�)�}�:�f�u�n�c�t�i�o�n�(�e�,�t�)�{�v�a�r� �n�=�e�.�l�e�n�g�t�h�,�r�=�0�;�w�h�i�l�e�(�e�[�n�+�+�]�=�t�[�r�+�+�]�)�;�e�.�l�e�n�g�t�h�=�n�-�1�}�}�}�f�u�n�c�t�i�o�n� �s�e�(�t�,�e�,�n�,�r�)�{�v�a�r� �i�,�o�,�a�,�s�,�u�,�l�,�c�,�f�=�e�&�&�e�.�o�w�n�e�r�D�o�c�u�m�e�n�t�,�p�=�e�?�e�.�n�o�d�e�T�y�p�e�:�9�;�i�f�(�n�=�n�|�|�[�]�,�"�s�t�r�i�n�g�"�!�=�t�y�p�e�o�f� �t�|�|�!�t�|�|�1�!�=�=�p�&�&�9�!�=�=�p�&�&�1�1�!�=�=�p�)�r�e�t�u�r�n� �n�;�i�f�(�!�r�&�&�(�T�(�e�)�,�e�=�e�|�|�C�,�E�)�)�{�i�f�(�1�1�!�=�=�p�&�&�(�u�=�Z�.�e�x�e�c�(�t�)�)�)�i�f�(�i�=�u�[�1�]�)�{�i�f�(�9�=�=�=�p�)�{�i�f�(�!�(�a�=�e�.�g�e�t�E�l�e�m�e�n�t�B�y�I�d�(�i�)�)�)�r�e�t�u�r�n� �n�;�i�f�(�a�.�i�d�=�=�=�i�)�r�e�t�u�r�n� �n�.�p�u�s�h�(�a�)�,�n�}�e�l�s�e� �i�f�(�f�&�&�(�a�=�f�.�g�e�t�E�l�e�m�e�n�t�B�y�I�d�(�i�)�)�&�&�y�(�e�,�a�)�&�&�a�.�i�d�=�=�=�i�)�r�e�t�u�r�n� �n�.�p�u�s�h�(�a�)�,�n�}�e�l�s�e�{�i�f�(�u�[�2�]�)�r�e�t�u�r�n� �H�.�a�p�p�l�y�(�n�,�e�.�g�e�t�E�l�e�m�e�n�t�s�B�y�T�a�g�N�a�m�e�(�t�)�)�,�n�;�i�f�(�(�i�=�u�[�3�]�)�&�&�d�.�g�e�t�E�l�e�m�e�n�t�s�B�y�C�l�a�s�s�N�a�m�e�&�&�e�.�g�e�t�E�l�e�m�e�n�t�s�B�y�C�l�a�s�s�N�a�m�e�)�r�e�t�u�r�n� �H�.�a�p�p�l�y�(�n�,�e�.�g�e�t�E�l�e�m�e�n�t�s�B�y�C�l�a�s�s�N�a�m�e�(�i�)�)�,�n�}�i�f�(�d�.�q�s�a�&�&�!�N�[�t�+�"� �"�]�&�&�(�!�v�|�|�!�v�.�t�e�s�t�(�t�)�)�&�&�(�1�!�=�=�p�|�|�"�o�b�j�e�c�t�"�!�=�=�e�.�n�o�d�e�N�a�m�e�.�t�o�L�o�w�e�r�C�a�s�e�(�)�)�)�{�i�f�(�c�=�t�,�f�=�e�,�1�=�=�=�p�&�&�(�U�.�t�e�s�t�(�t�)�|�|�z�.�t�e�s�t�(�t�)�)�)�{�(�f�=�e�e�.�t�e�s�t�(�t�)�&�&�y�e�(�e�.�p�a�r�e�n�t�N�o�d�e�)�|�|�e�)�=�=�=�e�&�&�d�.�s�c�o�p�e�|�|�(�(�s�=�e�.�g�e�t�A�t�t�r�i�b�u�t�e�(�"�i�d�"�)�)�?�s�=�s�.�r�e�p�l�a�c�e�(�r�e�,�i�e�)�:�e�.�s�e�t�A�t�t�r�i�b�u�t�e�(�"�i�d�"�,�s�=�S�)�)�,�o�=�(�l�=�h�(�t�)�)�.�l�e�n�g�t�h�;�w�h�i�l�e�(�o�-�-�)�l�[�o�]�=�(�s�?�"�#�"�+�s�:�"�:�s�c�o�p�e�"�)�+�"� �"�+�x�e�(�l�[�o�]�)�;�c�=�l�.�j�o�i�n�(�"�,�"�)�}�t�r�y�{�r�e�t�u�r�n� �H�.�a�p�p�l�y�(�n�,�f�.�q�u�e�r�y�S�e�l�e�c�t�o�r�A�l�l�(�c�)�)�,�n�}�c�a�t�c�h�(�e�)�{�N�(�t�,�!�0�)�}�f�i�n�a�l�l�y�{�s�=�=�=�S�&�&�e�.�r�e�m�o�v�e�A�t�t�r�i�b�u�t�e�(�"�i�d�"�)�}�}�}�r�e�t�u�r�n� �g�(�t�.�r�e�p�l�a�c�e�(�$�,�"�$�1�"�)�,�e�,�n�,�r�)�}
2�f�u�n�c�t�i�o�n� �u�e�(�)�{�v�a�r� �r�=�[�]�;�r�e�t�u�r�n� �f�u�n�c�t�i�o�n� �e�(�t�,�n�)�{�r�e�t�u�r�n� �r�.�p�u�s�h�(�t�+�"� �"�)�>�b�.�c�a�c�h�e�L�e�n�g�t�h�&�&�d�e�l�e�t�e� �e�[�r�.�s�h�i�f�t�(�)�]�,�e�[�t�+�"� �"�]�=�n�}�}�f�u�n�c�t�i�o�n� �l�e�(�e�)�{�r�e�t�u�r�n� �e�[�S�]�=�!�0�,�e�}�f�u�n�c�t�i�o�n� �c�e�(�e�)�{�v�a�r� �t�=�C�.�c�r�e�a�t�e�E�l�e�m�e�n�t�(�"�f�i�e�l�d�s�e�t�"�)�;�t�r�y�{�r�e�t�u�r�n�!�!�e�(�t�)�}�c�a�t�c�h�(�e�)�{�r�e�t�u�r�n�!�1�}�f�i�n�a�l�l�y�{�t�.�p�a�r�e�n�t�N�o�d�e�&�&�t�.�p�a�r�e�n�t�N�o�d�e�.�r�e�m�o�v�e�C�h�i�l�d�(�t�)�,�t�=�n�u�l�l�}�}�f�u�n�c�t�i�o�n� �f�e�(�e�,�t�)�{�v�a�r� �n�=�e�.�s�p�l�i�t�(�"�|�"�)�,�r�=�n�.�l�e�n�g�t�h�;�w�h�i�l�e�(�r�-�-�)�b�.�a�t�t�r�H�a�n�d�l�e�[�n�[�r�]�]�=�t�}�f�u�n�c�t�i�o�n� �p�e�(�e�,�t�)�{�v�a�r� �n�=�t�&�&�e�,�r�=�n�&�&�1�=�=�=�e�.�n�o�d�e�T�y�p�e�&�&�1�=�=�=�t�.�n�o�d�e�T�y�p�e�&�&�e�.�s�o�u�r�c�e�I�n�d�e�x�-�t�.�s�o�u�r�c�e�I�n�d�e�x�;�i�f�(�r�)�r�e�t�u�r�n� �r�;�i�f�(�n�)�w�h�i�l�e�(�n�=�n�.�n�e�x�t�S�i�b�l�i�n�g�)�i�f�(�n�=�=�=�t�)�r�e�t�u�r�n�-�1�;�r�e�t�u�r�n� �e�?�1�:�-�1�}�f�u�n�c�t�i�o�n� �d�e�(�t�)�{�r�e�t�u�r�n� �f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n�"�i�n�p�u�t�"�=�=�=�e�.�n�o�d�e�N�a�m�e�.�t�o�L�o�w�e�r�C�a�s�e�(�)�&�&�e�.�t�y�p�e�=�=�=�t�}�}�f�u�n�c�t�i�o�n� �h�e�(�n�)�{�r�e�t�u�r�n� �f�u�n�c�t�i�o�n�(�e�)�{�v�a�r� �t�=�e�.�n�o�d�e�N�a�m�e�.�t�o�L�o�w�e�r�C�a�s�e�(�)�;�r�e�t�u�r�n�(�"�i�n�p�u�t�"�=�=�=�t�|�|�"�b�u�t�t�o�n�"�=�=�=�t�)�&�&�e�.�t�y�p�e�=�=�=�n�}�}�f�u�n�c�t�i�o�n� �g�e�(�t�)�{�r�e�t�u�r�n� �f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n�"�f�o�r�m�"�i�n� �e�?�e�.�p�a�r�e�n�t�N�o�d�e�&�&�!�1�=�=�=�e�.�d�i�s�a�b�l�e�d�?�"�l�a�b�e�l�"�i�n� �e�?�"�l�a�b�e�l�"�i�n� �e�.�p�a�r�e�n�t�N�o�d�e�?�e�.�p�a�r�e�n�t�N�o�d�e�.�d�i�s�a�b�l�e�d�=�=�=�t�:�e�.�d�i�s�a�b�l�e�d�=�=�=�t�:�e�.�i�s�D�i�s�a�b�l�e�d�=�=�=�t�|�|�e�.�i�s�D�i�s�a�b�l�e�d�!�=�=�!�t�&�&�a�e�(�e�)�=�=�=�t�:�e�.�d�i�s�a�b�l�e�d�=�=�=�t�:�"�l�a�b�e�l�"�i�n� �e�&�&�e�.�d�i�s�a�b�l�e�d�=�=�=�t�}�}�f�u�n�c�t�i�o�n� �v�e�(�a�)�{�r�e�t�u�r�n� �l�e�(�f�u�n�c�t�i�o�n�(�o�)�{�r�e�t�u�r�n� �o�=�+�o�,�l�e�(�f�u�n�c�t�i�o�n�(�e�,�t�)�{�v�a�r� �n�,�r�=�a�(�[�]�,�e�.�l�e�n�g�t�h�,�o�)�,�i�=�r�.�l�e�n�g�t�h�;�w�h�i�l�e�(�i�-�-�)�e�[�n�=�r�[�i�]�]�&�&�(�e�[�n�]�=�!�(�t�[�n�]�=�e�[�n�]�)�)�}�)�}�)�}�f�u�n�c�t�i�o�n� �y�e�(�e�)�{�r�e�t�u�r�n� �e�&�&�"�u�n�d�e�f�i�n�e�d�"�!�=�t�y�p�e�o�f� �e�.�g�e�t�E�l�e�m�e�n�t�s�B�y�T�a�g�N�a�m�e�&�&�e�}�f�o�r�(�e� �i�n� �d�=�s�e�.�s�u�p�p�o�r�t�=�{�}�,�i�=�s�e�.�i�s�X�M�L�=�f�u�n�c�t�i�o�n�(�e�)�{�v�a�r� �t�=�e�&�&�e�.�n�a�m�e�s�p�a�c�e�U�R�I�,�n�=�e�&�&�(�e�.�o�w�n�e�r�D�o�c�u�m�e�n�t�|�|�e�)�.�d�o�c�u�m�e�n�t�E�l�e�m�e�n�t�;�r�e�t�u�r�n�!�Y�.�t�e�s�t�(�t�|�|�n�&�&�n�.�n�o�d�e�N�a�m�e�|�|�"�H�T�M�L�"�)�}�,�T�=�s�e�.�s�e�t�D�o�c�u�m�e�n�t�=�f�u�n�c�t�i�o�n�(�e�)�{�v�a�r� �t�,�n�,�r�=�e�?�e�.�o�w�n�e�r�D�o�c�u�m�e�n�t�|�|�e�:�p�;�r�e�t�u�r�n� �r�!�=�C�&�&�9�=�=�=�r�.�n�o�d�e�T�y�p�e�&�&�r�.�d�o�c�u�m�e�n�t�E�l�e�m�e�n�t�&�&�(�a�=�(�C�=�r�)�.�d�o�c�u�m�e�n�t�E�l�e�m�e�n�t�,�E�=�!�i�(�C�)�,�p�!�=�C�&�&�(�n�=�C�.�d�e�f�a�u�l�t�V�i�e�w�)�&�&�n�.�t�o�p�!�=�=�n�&�&�(�n�.�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�?�n�.�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�u�n�l�o�a�d�"�,�o�e�,�!�1�)�:�n�.�a�t�t�a�c�h�E�v�e�n�t�&�&�n�.�a�t�t�a�c�h�E�v�e�n�t�(�"�o�n�u�n�l�o�a�d�"�,�o�e�)�)�,�d�.�s�c�o�p�e�=�c�e�(�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �a�.�a�p�p�e�n�d�C�h�i�l�d�(�e�)�.�a�p�p�e�n�d�C�h�i�l�d�(�C�.�c�r�e�a�t�e�E�l�e�m�e�n�t�(�"�d�i�v�"�)�)�,�"�u�n�d�e�f�i�n�e�d�"�!�=�t�y�p�e�o�f� �e�.�q�u�e�r�y�S�e�l�e�c�t�o�r�A�l�l�&�&�!�e�.�q�u�e�r�y�S�e�l�e�c�t�o�r�A�l�l�(�"�:�s�c�o�p�e� �f�i�e�l�d�s�e�t� �d�i�v�"�)�.�l�e�n�g�t�h�}�)�,�d�.�a�t�t�r�i�b�u�t�e�s�=�c�e�(�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �e�.�c�l�a�s�s�N�a�m�e�=�"�i�"�,�!�e�.�g�e�t�A�t�t�r�i�b�u�t�e�(�"�c�l�a�s�s�N�a�m�e�"�)�}�)�,�d�.�g�e�t�E�l�e�m�e�n�t�s�B�y�T�a�g�N�a�m�e�=�c�e�(�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �e�.�a�p�p�e�n�d�C�h�i�l�d�(�C�.�c�r�e�a�t�e�C�o�m�m�e�n�t�(�"�"�)�)�,�!�e�.�g�e�t�E�l�e�m�e�n�t�s�B�y�T�a�g�N�a�m�e�(�"�*�"�)�.�l�e�n�g�t�h�}�)�,�d�.�g�e�t�E�l�e�m�e�n�t�s�B�y�C�l�a�s�s�N�a�m�e�=�K�.�t�e�s�t�(�C�.�g�e�t�E�l�e�m�e�n�t�s�B�y�C�l�a�s�s�N�a�m�e�)�,�d�.�g�e�t�B�y�I�d�=�c�e�(�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �a�.�a�p�p�e�n�d�C�h�i�l�d�(�e�)�.�i�d�=�S�,�!�C�.�g�e�t�E�l�e�m�e�n�t�s�B�y�N�a�m�e�|�|�!�C�.�g�e�t�E�l�e�m�e�n�t�s�B�y�N�a�m�e�(�S�)�.�l�e�n�g�t�h�}
2�)�,�d�.�g�e�t�B�y�I�d�?�(�b�.�f�i�l�t�e�r�.�I�D�=�f�u�n�c�t�i�o�n�(�e�)�{�v�a�r� �t�=�e�.�r�e�p�l�a�c�e�(�t�e�,�n�e�)�;�r�e�t�u�r�n� �f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �e�.�g�e�t�A�t�t�r�i�b�u�t�e�(�"�i�d�"�)�=�=�=�t�}�}�,�b�.�f�i�n�d�.�I�D�=�f�u�n�c�t�i�o�n�(�e�,�t�)�{�i�f�(�"�u�n�d�e�f�i�n�e�d�"�!�=�t�y�p�e�o�f� �t�.�g�e�t�E�l�e�m�e�n�t�B�y�I�d�&�&�E�)�{�v�a�r� �n�=�t�.�g�e�t�E�l�e�m�e�n�t�B�y�I�d�(�e�)�;�r�e�t�u�r�n� �n�?�[�n�]�:�[�]�}�}�)�:�(�b�.�f�i�l�t�e�r�.�I�D�=�f�u�n�c�t�i�o�n�(�e�)�{�v�a�r� �n�=�e�.�r�e�p�l�a�c�e�(�t�e�,�n�e�)�;�r�e�t�u�r�n� �f�u�n�c�t�i�o�n�(�e�)�{�v�a�r� �t�=�"�u�n�d�e�f�i�n�e�d�"�!�=�t�y�p�e�o�f� �e�.�g�e�t�A�t�t�r�i�b�u�t�e�N�o�d�e�&�&�e�.�g�e�t�A�t�t�r�i�b�u�t�e�N�o�d�e�(�"�i�d�"�)�;�r�e�t�u�r�n� �t�&�&�t�.�v�a�l�u�e�=�=�=�n�}�}�,�b�.�f�i�n�d�.�I�D�=�f�u�n�c�t�i�o�n�(�e�,�t�)�{�i�f�(�"�u�n�d�e�f�i�n�e�d�"�!�=�t�y�p�e�o�f� �t�.�g�e�t�E�l�e�m�e�n�t�B�y�I�d�&�&�E�)�{�v�a�r� �n�,�r�,�i�,�o�=�t�.�g�e�t�E�l�e�m�e�n�t�B�y�I�d�(�e�)�;�i�f�(�o�)�{�i�f�(�(�n�=�o�.�g�e�t�A�t�t�r�i�b�u�t�e�N�o�d�e�(�"�i�d�"�)�)�&�&�n�.�v�a�l�u�e�=�=�=�e�)�r�e�t�u�r�n�[�o�]�;�i�=�t�.�g�e�t�E�l�e�m�e�n�t�s�B�y�N�a�m�e�(�e�)�,�r�=�0�;�w�h�i�l�e�(�o�=�i�[�r�+�+�]�)�i�f�(�(�n�=�o�.�g�e�t�A�t�t�r�i�b�u�t�e�N�o�d�e�(�"�i�d�"�)�)�&�&�n�.�v�a�l�u�e�=�=�=�e�)�r�e�t�u�r�n�[�o�]�}�r�e�t�u�r�n�[�]�}�}�)�,�b�.�f�i�n�d�.�T�A�G�=�d�.�g�e�t�E�l�e�m�e�n�t�s�B�y�T�a�g�N�a�m�e�?�f�u�n�c�t�i�o�n�(�e�,�t�)�{�r�e�t�u�r�n�"�u�n�d�e�f�i�n�e�d�"�!�=�t�y�p�e�o�f� �t�.�g�e�t�E�l�e�m�e�n�t�s�B�y�T�a�g�N�a�m�e�?�t�.�g�e�t�E�l�e�m�e�n�t�s�B�y�T�a�g�N�a�m�e�(�e�)�:�d�.�q�s�a�?�t�.�q�u�e�r�y�S�e�l�e�c�t�o�r�A�l�l�(�e�)�:�v�o�i�d� �0�}�:�f�u�n�c�t�i�o�n�(�e�,�t�)�{�v�a�r� �n�,�r�=�[�]�,�i�=�0�,�o�=�t�.�g�e�t�E�l�e�m�e�n�t�s�B�y�T�a�g�N�a�m�e�(�e�)�;�i�f�(�"�*�"�=�=�=�e�)�{�w�h�i�l�e�(�n�=�o�[�i�+�+�]�)�1�=�=�=�n�.�n�o�d�e�T�y�p�e�&�&�r�.�p�u�s�h�(�n�)�;�r�e�t�u�r�n� �r�}�r�e�t�u�r�n� �o�}�,�b�.�f�i�n�d�.�C�L�A�S�S�=�d�.�g�e�t�E�l�e�m�e�n�t�s�B�y�C�l�a�s�s�N�a�m�e�&�&�f�u�n�c�t�i�o�n�(�e�,�t�)�{�i�f�(�"�u�n�d�e�f�i�n�e�d�"�!�=�t�y�p�e�o�f� �t�.�g�e�t�E�l�e�m�e�n�t�s�B�y�C�l�a�s�s�N�a�m�e�&�&�E�)�r�e�t�u�r�n� �t�.�g�e�t�E�l�e�m�e�n�t�s�B�y�C�l�a�s�s�N�a�m�e�(�e�)�}�,�s�=�[�]�,�v�=�[�]�,�(�d�.�q�s�a�=�K�.�t�e�s�t�(�C�.�q�u�e�r�y�S�e�l�e�c�t�o�r�A�l�l�)�)�&�&�(�c�e�(�f�u�n�c�t�i�o�n�(�e�)�{�v�a�r� �t�;�a�.�a�p�p�e�n�d�C�h�i�l�d�(�e�)�.�i�n�n�e�r�H�T�M�L�=�"�<�a� �i�d�=�'�"�+�S�+�"�'�>�<�/�a�>�<�s�e�l�e�c�t� �i�d�=�'�"�+�S�+�"�-�\�r�\�\�'� �m�s�a�l�l�o�w�c�a�p�t�u�r�e�=�'�'�>�<�o�p�t�i�o�n� �s�e�l�e�c�t�e�d�=�'�'�>�<�/�o�p�t�i�o�n�>�<�/�s�e�l�e�c�t�>�"�,�e�.�q�u�e�r�y�S�e�l�e�c�t�o�r�A�l�l�(�"�[�m�s�a�l�l�o�w�c�a�p�t�u�r�e�^�=�'�'�]�"�)�.�l�e�n�g�t�h�&�&�v�.�p�u�s�h�(�"�[�*�^�$�]�=�"�+�M�+�"�*�(�?�:�'�'�|�\�"�\�"�)�"�)�,�e�.�q�u�e�r�y�S�e�l�e�c�t�o�r�A�l�l�(�"�[�s�e�l�e�c�t�e�d�]�"�)�.�l�e�n�g�t�h�|�|�v�.�p�u�s�h�(�"�\�\�[�"�+�M�+�"�*�(�?�:�v�a�l�u�e�|�"�+�R�+�"�)�"�)�,�e�.�q�u�e�r�y�S�e�l�e�c�t�o�r�A�l�l�(�"�[�i�d�~�=�"�+�S�+�"�-�]�"�)�.�l�e�n�g�t�h�|�|�v�.�p�u�s�h�(�"�~�=�"�)�,�(�t�=�C�.�c�r�e�a�t�e�E�l�e�m�e�n�t�(�"�i�n�p�u�t�"�)�)�.�s�e�t�A�t�t�r�i�b�u�t�e�(�"�n�a�m�e�"�,�"�"�)�,�e�.�a�p�p�e�n�d�C�h�i�l�d�(�t�)�,�e�.�q�u�e�r�y�S�e�l�e�c�t�o�r�A�l�l�(�"�[�n�a�m�e�=�'�'�]�"�)�.�l�e�n�g�t�h�|�|�v�.�p�u�s�h�(�"�\�\�[�"�+�M�+�"�*�n�a�m�e�"�+�M�+�"�*�=�"�+�M�+�"�*�(�?�:�'�'�|�\�"�\�"�)�"�)�,�e�.�q�u�e�r�y�S�e�l�e�c�t�o�r�A�l�l�(�"�:�c�h�e�c�k�e�d�"�)�.�l�e�n�g�t�h�|�|�v�.�p�u�s�h�(�"�:�c�h�e�c�k�e�d�"�)�,�e�.�q�u�e�r�y�S�e�l�e�c�t�o�r�A�l�l�(�"�a�#�"�+�S�+�"�+�*�"�)�.�l�e�n�g�t�h�|�|�v�.�p�u�s�h�(�"�.�#�.�+�[�+�~�]�"�)�,�e�.�q�u�e�r�y�S�e�l�e�c�t�o�r�A�l�l�(�"�\�\�\�f�"�)�,�v�.�p�u�s�h�(�"�[�\�\�r�\�\�n�\�\�f�]�"�)�}�)�,�c�e�(�f�u�n�c�t�i�o�n�(�e�)�{�e�.�i�n�n�e�r�H�T�M�L�=�"�<�a� �h�r�e�f�=�'�'� �d�i�s�a�b�l�e�d�=�'�d�i�s�a�b�l�e�d�'�>�<�/�a�>�<�s�e�l�e�c�t� �d�i�s�a�b�l�e�d�=�'�d�i�s�a�b�l�e�d�'�>�<�o�p�t�i�o�n�/�>�<�/�s�e�l�e�c�t�>�"�;�v�a�r� �t�=�C�.�c�r�e�a�t�e�E�l�e�m�e�n�t�(�"�i�n�p�u�t�"�)�;�t�.�s�e�t�A�t�t�r�i�b�u�t�e�(�"�t�y�p�e�"�,�"�h�i�d�d�e�n�"�)�,�e�.�a�p�p�e�n�d�C�h�i�l�d�(�t�)�.�s�e�t�A�t�t�r�i�b�u�t�e�(�"�n�a�m�e�"�,�"�D�"�)�,�e�.�q�u�e�r�y�S�e�l�e�c�t�o�r�A�l�l�(�"�[�n�a�m�e�=�d�]�"�)�.�l�e�n�g�t�h�&�&�v�.�p�u�s�h�(�"�n�a�m�e�"�+�M�+�"�*�[�*�^�$�|�!�~�]�?�=�"�)�,�2�!�=�=�e�.�q�u�e�r�y�S�e�l�e�c�t�o�r�A�l�l�(�"�:�e�n�a�b�l�e�d�"�)�.�l�e�n�g�t�h�&�&�v�.�p�u�s�h�(�"�:�e�n�a�b�l�e�d�"�,�"�:�d�i�s�a�b�l�e�d�"�)�,�a�.�a�p�p�e�n�d�C�h�i�l�d�(�e�)�.�d�i�s�a�b�l�e�d�=�!�0�,�2�!�=�=�e�.�q�u�e�r�y�S�e�l�e�c�t�o�r�A�l�l�(�"�:�d�i�s�a�b�l�e�d�"�)�.�l�e�n�g�t�h�&�&�v�.�p�u�s�h�(�"�:�e�n�a�b�l�e�d�"�,�"�:�d�i�s�a�b�l�e�d�"�)�,�e�.�q�u�e�r�y�S�e�l�e�c�t�o�r�A�l�l�(�"�*�,�:�x�"�)�,�v�.�p�u�s�h�(�"�,�.�*�:�"�)�}�)�)�,�(�d�.�m�a�t�c�h�e�s�S�e�l�e�c�t�o�r�=�K�.�t�e�s�t�(�c�=�a�.�m�a�t�c�h�e�s�|�|�a�.�w�e�b�k�i�t�M�a�t�c�h�e�s�S�e�l�e�c�t�o�r�|�|�a�.�m�o�z�M�a�t�c�h�e�s�S�e�l�e�c�t�o�r�|�|�a�.�o�M�a�t�c�h�e�s�S�e�l�e�c�t�o�r�|�|�a�.�m�s�M�a�t�c�h�e�s�S�e�l�e�c�t�o�r�
2)�)�&�&�c�e�(�f�u�n�c�t�i�o�n�(�e�)�{�d�.�d�i�s�c�o�n�n�e�c�t�e�d�M�a�t�c�h�=�c�.�c�a�l�l�(�e�,�"�*�"�)�,�c�.�c�a�l�l�(�e�,�"�[�s�!�=�'�'�]�:�x�"�)�,�s�.�p�u�s�h�(�"�!�=�"�,�F�)�}�)�,�v�=�v�.�l�e�n�g�t�h�&�&�n�e�w� �R�e�g�E�x�p�(�v�.�j�o�i�n�(�"�|�"�)�)�,�s�=�s�.�l�e�n�g�t�h�&�&�n�e�w� �R�e�g�E�x�p�(�s�.�j�o�i�n�(�"�|�"�)�)�,�t�=�K�.�t�e�s�t�(�a�.�c�o�m�p�a�r�e�D�o�c�u�m�e�n�t�P�o�s�i�t�i�o�n�)�,�y�=�t�|�|�K�.�t�e�s�t�(�a�.�c�o�n�t�a�i�n�s�)�?�f�u�n�c�t�i�o�n�(�e�,�t�)�{�v�a�r� �n�=�9�=�=�=�e�.�n�o�d�e�T�y�p�e�?�e�.�d�o�c�u�m�e�n�t�E�l�e�m�e�n�t�:�e�,�r�=�t�&�&�t�.�p�a�r�e�n�t�N�o�d�e�;�r�e�t�u�r�n� �e�=�=�=�r�|�|�!�(�!�r�|�|�1�!�=�=�r�.�n�o�d�e�T�y�p�e�|�|�!�(�n�.�c�o�n�t�a�i�n�s�?�n�.�c�o�n�t�a�i�n�s�(�r�)�:�e�.�c�o�m�p�a�r�e�D�o�c�u�m�e�n�t�P�o�s�i�t�i�o�n�&�&�1�6�&�e�.�c�o�m�p�a�r�e�D�o�c�u�m�e�n�t�P�o�s�i�t�i�o�n�(�r�)�)�)�}�:�f�u�n�c�t�i�o�n�(�e�,�t�)�{�i�f�(�t�)�w�h�i�l�e�(�t�=�t�.�p�a�r�e�n�t�N�o�d�e�)�i�f�(�t�=�=�=�e�)�r�e�t�u�r�n�!�0�;�r�e�t�u�r�n�!�1�}�,�j�=�t�?�f�u�n�c�t�i�o�n�(�e�,�t�)�{�i�f�(�e�=�=�=�t�)�r�e�t�u�r�n� �l�=�!�0�,�0�;�v�a�r� �n�=�!�e�.�c�o�m�p�a�r�e�D�o�c�u�m�e�n�t�P�o�s�i�t�i�o�n�-�!�t�.�c�o�m�p�a�r�e�D�o�c�u�m�e�n�t�P�o�s�i�t�i�o�n�;�r�e�t�u�r�n� �n�|�|�(�1�&�(�n�=�(�e�.�o�w�n�e�r�D�o�c�u�m�e�n�t�|�|�e�)�=�=�(�t�.�o�w�n�e�r�D�o�c�u�m�e�n�t�|�|�t�)�?�e�.�c�o�m�p�a�r�e�D�o�c�u�m�e�n�t�P�o�s�i�t�i�o�n�(�t�)�:�1�)�|�|�!�d�.�s�o�r�t�D�e�t�a�c�h�e�d�&�&�t�.�c�o�m�p�a�r�e�D�o�c�u�m�e�n�t�P�o�s�i�t�i�o�n�(�e�)�=�=�=�n�?�e�=�=�C�|�|�e�.�o�w�n�e�r�D�o�c�u�m�e�n�t�=�=�p�&�&�y�(�p�,�e�)�?�-�1�:�t�=�=�C�|�|�t�.�o�w�n�e�r�D�o�c�u�m�e�n�t�=�=�p�&�&�y�(�p�,�t�)�?�1�:�u�?�P�(�u�,�e�)�-�P�(�u�,�t�)�:�0�:�4�&�n�?�-�1�:�1�)�}�:�f�u�n�c�t�i�o�n�(�e�,�t�)�{�i�f�(�e�=�=�=�t�)�r�e�t�u�r�n� �l�=�!�0�,�0�;�v�a�r� �n�,�r�=�0�,�i�=�e�.�p�a�r�e�n�t�N�o�d�e�,�o�=�t�.�p�a�r�e�n�t�N�o�d�e�,�a�=�[�e�]�,�s�=�[�t�]�;�i�f�(�!�i�|�|�!�o�)�r�e�t�u�r�n� �e�=�=�C�?�-�1�:�t�=�=�C�?�1�:�i�?�-�1�:�o�?�1�:�u�?�P�(�u�,�e�)�-�P�(�u�,�t�)�:�0�;�i�f�(�i�=�=�=�o�)�r�e�t�u�r�n� �p�e�(�e�,�t�)�;�n�=�e�;�w�h�i�l�e�(�n�=�n�.�p�a�r�e�n�t�N�o�d�e�)�a�.�u�n�s�h�i�f�t�(�n�)�;�n�=�t�;�w�h�i�l�e�(�n�=�n�.�p�a�r�e�n�t�N�o�d�e�)�s�.�u�n�s�h�i�f�t�(�n�)�;�w�h�i�l�e�(�a�[�r�]�=�=�=�s�[�r�]�)�r�+�+�;�r�e�t�u�r�n� �r�?�p�e�(�a�[�r�]�,�s�[�r�]�)�:�a�[�r�]�=�=�p�?�-�1�:�s�[�r�]�=�=�p�?�1�:�0�}�)�,�C�}�,�s�e�.�m�a�t�c�h�e�s�=�f�u�n�c�t�i�o�n�(�e�,�t�)�{�r�e�t�u�r�n� �s�e�(�e�,�n�u�l�l�,�n�u�l�l�,�t�)�}�,�s�e�.�m�a�t�c�h�e�s�S�e�l�e�c�t�o�r�=�f�u�n�c�t�i�o�n�(�e�,�t�)�{�i�f�(�T�(�e�)�,�d�.�m�a�t�c�h�e�s�S�e�l�e�c�t�o�r�&�&�E�&�&�!�N�[�t�+�"� �"�]�&�&�(�!�s�|�|�!�s�.�t�e�s�t�(�t�)�)�&�&�(�!�v�|�|�!�v�.�t�e�s�t�(�t�)�)�)�t�r�y�{�v�a�r� �n�=�c�.�c�a�l�l�(�e�,�t�)�;�i�f�(�n�|�|�d�.�d�i�s�c�o�n�n�e�c�t�e�d�M�a�t�c�h�|�|�e�.�d�o�c�u�m�e�n�t�&�&�1�1�!�=�=�e�.�d�o�c�u�m�e�n�t�.�n�o�d�e�T�y�p�e�)�r�e�t�u�r�n� �n�}�c�a�t�c�h�(�e�)�{�N�(�t�,�!�0�)�}�r�e�t�u�r�n� �0�<�s�e�(�t�,�C�,�n�u�l�l�,�[�e�]�)�.�l�e�n�g�t�h�}�,�s�e�.�c�o�n�t�a�i�n�s�=�f�u�n�c�t�i�o�n�(�e�,�t�)�{�r�e�t�u�r�n�(�e�.�o�w�n�e�r�D�o�c�u�m�e�n�t�|�|�e�)�!�=�C�&�&�T�(�e�)�,�y�(�e�,�t�)�}�,�s�e�.�a�t�t�r�=�f�u�n�c�t�i�o�n�(�e�,�t�)�{�(�e�.�o�w�n�e�r�D�o�c�u�m�e�n�t�|�|�e�)�!�=�C�&�&�T�(�e�)�;�v�a�r� �n�=�b�.�a�t�t�r�H�a�n�d�l�e�[�t�.�t�o�L�o�w�e�r�C�a�s�e�(�)�]�,�r�=�n�&�&�D�.�c�a�l�l�(�b�.�a�t�t�r�H�a�n�d�l�e�,�t�.�t�o�L�o�w�e�r�C�a�s�e�(�)�)�?�n�(�e�,�t�,�!�E�)�:�v�o�i�d� �0�;�r�e�t�u�r�n� �v�o�i�d� �0�!�=�=�r�?�r�:�d�.�a�t�t�r�i�b�u�t�e�s�|�|�!�E�?�e�.�g�e�t�A�t�t�r�i�b�u�t�e�(�t�)�:�(�r�=�e�.�g�e�t�A�t�t�r�i�b�u�t�e�N�o�d�e�(�t�)�)�&�&�r�.�s�p�e�c�i�f�i�e�d�?�r�.�v�a�l�u�e�:�n�u�l�l�}�,�s�e�.�e�s�c�a�p�e�=�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n�(�e�+�"�"�)�.�r�e�p�l�a�c�e�(�r�e�,�i�e�)�}�,�s�e�.�e�r�r�o�r�=�f�u�n�c�t�i�o�n�(�e�)�{�t�h�r�o�w� �n�e�w� �E�r�r�o�r�(�"�S�y�n�t�a�x� �e�r�r�o�r�,� �u�n�r�e�c�o�g�n�i�z�e�d� �e�x�p�r�e�s�s�i�o�n�:� �"�+�e�)�}�,�s�e�.�u�n�i�q�u�e�S�o�r�t�=�f�u�n�c�t�i�o�n�(�e�)�{�v�a�r� �t�,�n�=�[�]�,�r�=�0�,�i�=�0�;�i�f�(�l�=�!�d�.�d�e�t�e�c�t�D�u�p�l�i�c�a�t�e�s�,�u�=�!�d�.�s�o�r�t�S�t�a�b�l�e�&�&�e�.�s�l�i�c�e�(�0�)�,�e�.�s�o�r�t�(�j�)�,�l�)�{�w�h�i�l�e�(�t�=�e�[�i�+�+�]�)�t�=�=�=�e�[�i�]�&�&�(�r�=�n�.�p�u�s�h�(�i�)�)�;�w�h�i�l�e�(�r�-�-�)�e�.�s�p�l�i�c�e�(�n�[�r�]�,�1�)�}�r�e�t�u�r�n� �u�=�n�u�l�l�,�e�}�,�o�=�s�e�.�g�e�t�T�e�x�t�=�f�u�n�c�t�i�o�n�(�e�)�{�v�a�r� �t�,�n�=�"�"�,�r�=�0�,�i�=�e�.�n�o�d�e�T�y�p�e�;�i�f�(�i�)�{�i�f�(�1�=�=�=�i�|�|�9�=�=�=�i�|�|�1�1�=�=�=�i�)�{�i�f�(�"�s�t�r�i�n�g�"�=�=�t�y�p�e�o�f� �e�.�t�e�x�t�C�o�n�t�e�n�t�)�r�e�t�u�r�n� �e�.�t�e�x�t�C�o�n�t�e�n�t�;�f�o�r�(�e�=�e�.�f�i�r�s�t�C�h�i�l�d�;�e�;�e�=�e�.�n�e�x�t�S�i�b�l�i�n�g�)�n�+�=�o�(�e�)�}�e�l�s�e� �i�f�(�3�=�=�=�i�|�|�4�=�=�=�i�)�r�e�t�u�r�n� �e�.�n�o�d�e�V�a�l�u�e�}�e�l�s�e� �w�h�i�l�e�(�t�=�e�[�r�+�+�]�)�n�+�=�o�(�t�)�;�r�e�t�u�r�n� �n�}�,�(�b�=�s�e�.�s�e�l�e�c�t�o�r�s�=�{�c�a�c�h�e�L�e�n�g�t�h�:�5�0�,�c�r�e�a�t�e�P�s�e�u�d�o�:�l�e�,�m�a�t�c�h�:�G�,�a�t�t�r�H�a�n�d�l�e�:�{�}�,�f�i�n�d�:�{�}�,�r�e�l�a�t�i�v�e�:�{�"�>�"�:�{�d�i�r�:�"�p�a�r�e�n�t�N�o�d�e�"�,�f�i�r�s�t�:�!�0�}�,�"� �"�:�{�d�i�r�:�"�p�a�r�e�n�t�N�o�d�e�"�}�,�"�+�"�:�{�d�i�r�:�"�p�r�e�v�i�o�u�s�S�i�b�l�i�n�g�"�,�f�i�r�s�t�:�!�0�}�,�"�~�"�:�{�d�i�r�:�"�p�r�e�v�i�o�u�s�S�i�b�l�i�n�g�"�}�}
2�,�p�r�e�F�i�l�t�e�r�:�{�A�T�T�R�:�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �e�[�1�]�=�e�[�1�]�.�r�e�p�l�a�c�e�(�t�e�,�n�e�)�,�e�[�3�]�=�(�e�[�3�]�|�|�e�[�4�]�|�|�e�[�5�]�|�|�"�"�)�.�r�e�p�l�a�c�e�(�t�e�,�n�e�)�,�"�~�=�"�=�=�=�e�[�2�]�&�&�(�e�[�3�]�=�"� �"�+�e�[�3�]�+�"� �"�)�,�e�.�s�l�i�c�e�(�0�,�4�)�}�,�C�H�I�L�D�:�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �e�[�1�]�=�e�[�1�]�.�t�o�L�o�w�e�r�C�a�s�e�(�)�,�"�n�t�h�"�=�=�=�e�[�1�]�.�s�l�i�c�e�(�0�,�3�)�?�(�e�[�3�]�|�|�s�e�.�e�r�r�o�r�(�e�[�0�]�)�,�e�[�4�]�=�+�(�e�[�4�]�?�e�[�5�]�+�(�e�[�6�]�|�|�1�)�:�2�*�(�"�e�v�e�n�"�=�=�=�e�[�3�]�|�|�"�o�d�d�"�=�=�=�e�[�3�]�)�)�,�e�[�5�]�=�+�(�e�[�7�]�+�e�[�8�]�|�|�"�o�d�d�"�=�=�=�e�[�3�]�)�)�:�e�[�3�]�&�&�s�e�.�e�r�r�o�r�(�e�[�0�]�)�,�e�}�,�P�S�E�U�D�O�:�f�u�n�c�t�i�o�n�(�e�)�{�v�a�r� �t�,�n�=�!�e�[�6�]�&�&�e�[�2�]�;�r�e�t�u�r�n� �G�.�C�H�I�L�D�.�t�e�s�t�(�e�[�0�]�)�?�n�u�l�l�:�(�e�[�3�]�?�e�[�2�]�=�e�[�4�]�|�|�e�[�5�]�|�|�"�"�:�n�&�&�X�.�t�e�s�t�(�n�)�&�&�(�t�=�h�(�n�,�!�0�)�)�&�&�(�t�=�n�.�i�n�d�e�x�O�f�(�"�)�"�,�n�.�l�e�n�g�t�h�-�t�)�-�n�.�l�e�n�g�t�h�)�&�&�(�e�[�0�]�=�e�[�0�]�.�s�l�i�c�e�(�0�,�t�)�,�e�[�2�]�=�n�.�s�l�i�c�e�(�0�,�t�)�)�,�e�.�s�l�i�c�e�(�0�,�3�)�)�}�}�,�f�i�l�t�e�r�:�{�T�A�G�:�f�u�n�c�t�i�o�n�(�e�)�{�v�a�r� �t�=�e�.�r�e�p�l�a�c�e�(�t�e�,�n�e�)�.�t�o�L�o�w�e�r�C�a�s�e�(�)�;�r�e�t�u�r�n�"�*�"�=�=�=�e�?�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n�!�0�}�:�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �e�.�n�o�d�e�N�a�m�e�&�&�e�.�n�o�d�e�N�a�m�e�.�t�o�L�o�w�e�r�C�a�s�e�(�)�=�=�=�t�}�}�,�C�L�A�S�S�:�f�u�n�c�t�i�o�n�(�e�)�{�v�a�r� �t�=�m�[�e�+�"� �"�]�;�r�e�t�u�r�n� �t�|�|�(�t�=�n�e�w� �R�e�g�E�x�p�(�"�(�^�|�"�+�M�+�"�)�"�+�e�+�"�(�"�+�M�+�"�|�$�)�"�)�)�&�&�m�(�e�,�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �t�.�t�e�s�t�(�"�s�t�r�i�n�g�"�=�=�t�y�p�e�o�f� �e�.�c�l�a�s�s�N�a�m�e�&�&�e�.�c�l�a�s�s�N�a�m�e�|�|�"�u�n�d�e�f�i�n�e�d�"�!�=�t�y�p�e�o�f� �e�.�g�e�t�A�t�t�r�i�b�u�t�e�&�&�e�.�g�e�t�A�t�t�r�i�b�u�t�e�(�"�c�l�a�s�s�"�)�|�|�"�"�)�}�)�}�,�A�T�T�R�:�f�u�n�c�t�i�o�n�(�n�,�r�,�i�)�{�r�e�t�u�r�n� �f�u�n�c�t�i�o�n�(�e�)�{�v�a�r� �t�=�s�e�.�a�t�t�r�(�e�,�n�)�;�r�e�t�u�r�n� �n�u�l�l�=�=�t�?�"�!�=�"�=�=�=�r�:�!�r�|�|�(�t�+�=�"�"�,�"�=�"�=�=�=�r�?�t�=�=�=�i�:�"�!�=�"�=�=�=�r�?�t�!�=�=�i�:�"�^�=�"�=�=�=�r�?�i�&�&�0�=�=�=�t�.�i�n�d�e�x�O�f�(�i�)�:�"�*�=�"�=�=�=�r�?�i�&�&�-�1�<�t�.�i�n�d�e�x�O�f�(�i�)�:�"�$�=�"�=�=�=�r�?�i�&�&�t�.�s�l�i�c�e�(�-�i�.�l�e�n�g�t�h�)�=�=�=�i�:�"�~�=�"�=�=�=�r�?�-�1�<�(�"� �"�+�t�.�r�e�p�l�a�c�e�(�B�,�"� �"�)�+�"� �"�)�.�i�n�d�e�x�O�f�(�i�)�:�"�|�=�"�=�=�=�r�&�&�(�t�=�=�=�i�|�|�t�.�s�l�i�c�e�(�0�,�i�.�l�e�n�g�t�h�+�1�)�=�=�=�i�+�"�-�"�)�)�}�}�,�C�H�I�L�D�:�f�u�n�c�t�i�o�n�(�h�,�e�,�t�,�g�,�v�)�{�v�a�r� �y�=�"�n�t�h�"�!�=�=�h�.�s�l�i�c�e�(�0�,�3�)�,�m�=�"�l�a�s�t�"�!�=�=�h�.�s�l�i�c�e�(�-�4�)�,�x�=�"�o�f�-�t�y�p�e�"�=�=�=�e�;�r�e�t�u�r�n� �1�=�=�=�g�&�&�0�=�=�=�v�?�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n�!�!�e�.�p�a�r�e�n�t�N�o�d�e�}�:�f�u�n�c�t�i�o�n�(�e�,�t�,�n�)�{�v�a�r� �r�,�i�,�o�,�a�,�s�,�u�,�l�=�y�!�=�=�m�?�"�n�e�x�t�S�i�b�l�i�n�g�"�:�"�p�r�e�v�i�o�u�s�S�i�b�l�i�n�g�"�,�c�=�e�.�p�a�r�e�n�t�N�o�d�e�,�f�=�x�&�&�e�.�n�o�d�e�N�a�m�e�.�t�o�L�o�w�e�r�C�a�s�e�(�)�,�p�=�!�n�&�&�!�x�,�d�=�!�1�;�i�f�(�c�)�{�i�f�(�y�)�{�w�h�i�l�e�(�l�)�{�a�=�e�;�w�h�i�l�e�(�a�=�a�[�l�]�)�i�f�(�x�?�a�.�n�o�d�e�N�a�m�e�.�t�o�L�o�w�e�r�C�a�s�e�(�)�=�=�=�f�:�1�=�=�=�a�.�n�o�d�e�T�y�p�e�)�r�e�t�u�r�n�!�1�;�u�=�l�=�"�o�n�l�y�"�=�=�=�h�&�&�!�u�&�&�"�n�e�x�t�S�i�b�l�i�n�g�"�}�r�e�t�u�r�n�!�0�}�i�f�(�u�=�[�m�?�c�.�f�i�r�s�t�C�h�i�l�d�:�c�.�l�a�s�t�C�h�i�l�d�]�,�m�&�&�p�)�{�d�=�(�s�=�(�r�=�(�i�=�(�o�=�(�a�=�c�)�[�S�]�|�|�(�a�[�S�]�=�{�}�)�)�[�a�.�u�n�i�q�u�e�I�D�]�|�|�(�o�[�a�.�u�n�i�q�u�e�I�D�]�=�{�}�)�)�[�h�]�|�|�[�]�)�[�0�]�=�=�=�k�&�&�r�[�1�]�)�&�&�r�[�2�]�,�a�=�s�&�&�c�.�c�h�i�l�d�N�o�d�e�s�[�s�]�;�w�h�i�l�e�(�a�=�+�+�s�&�&�a�&�&�a�[�l�]�|�|�(�d�=�s�=�0�)�|�|�u�.�p�o�p�(�)�)�i�f�(�1�=�=�=�a�.�n�o�d�e�T�y�p�e�&�&�+�+�d�&�&�a�=�=�=�e�)�{�i�[�h�]�=�[�k�,�s�,�d�]�;�b�r�e�a�k�}�}�e�l�s�e� �i�f�(�p�&�&�(�d�=�s�=�(�r�=�(�i�=�(�o�=�(�a�=�e�)�[�S�]�|�|�(�a�[�S�]�=�{�}�)�)�[�a�.�u�n�i�q�u�e�I�D�]�|�|�(�o�[�a�.�u�n�i�q�u�e�I�D�]�=�{�}�)�)�[�h�]�|�|�[�]�)�[�0�]�=�=�=�k�&�&�r�[�1�]�)�,�!�1�=�=�=�d�)�w�h�i�l�e�(�a�=�+�+�s�&�&�a�&�&�a�[�l�]�|�|�(�d�=�s�=�0�)�|�|�u�.�p�o�p�(�)�)�i�f�(�(�x�?�a�.�n�o�d�e�N�a�m�e�.�t�o�L�o�w�e�r�C�a�s�e�(�)�=�=�=�f�:�1�=�=�=�a�.�n�o�d�e�T�y�p�e�)�&�&�+�+�d�&�&�(�p�&�&�(�(�i�=�(�o�=�a�[�S�]�|�|�(�a�[�S�]�=�{�}�)�)�[�a�.�u�n�i�q�u�e�I�D�]�|�|�(�o�[�a�.�u�n�i�q�u�e�I�D�]�=�{�}�)�)�[�h�]�=�[�k�,�d�]�)�,�a�=�=�=�e�)�)�b�r�e�a�k�;�r�e�t�u�r�n�(�d�-�=�v�)�=�=�=�g�|�|�d�%�g�=�=�0�&�&�0�<�=�d�/�g�}�}�}�,�P�S�E�U�D�O�:�f�u�n�c�t�i�o�n�(�e�,�o�)�{�v�a�r� �t�,�a�=�b�.�p�s�e�u�d�o�s�[�e�]�|�|�b�.�s�e�t�F�i�l�t�e�r
2�s�[�e�.�t�o�L�o�w�e�r�C�a�s�e�(�)�]�|�|�s�e�.�e�r�r�o�r�(�"�u�n�s�u�p�p�o�r�t�e�d� �p�s�e�u�d�o�:� �"�+�e�)�;�r�e�t�u�r�n� �a�[�S�]�?�a�(�o�)�:�1�<�a�.�l�e�n�g�t�h�?�(�t�=�[�e�,�e�,�"�"�,�o�]�,�b�.�s�e�t�F�i�l�t�e�r�s�.�h�a�s�O�w�n�P�r�o�p�e�r�t�y�(�e�.�t�o�L�o�w�e�r�C�a�s�e�(�)�)�?�l�e�(�f�u�n�c�t�i�o�n�(�e�,�t�)�{�v�a�r� �n�,�r�=�a�(�e�,�o�)�,�i�=�r�.�l�e�n�g�t�h�;�w�h�i�l�e�(�i�-�-�)�e�[�n�=�P�(�e�,�r�[�i�]�)�]�=�!�(�t�[�n�]�=�r�[�i�]�)�}�)�:�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �a�(�e�,�0�,�t�)�}�)�:�a�}�}�,�p�s�e�u�d�o�s�:�{�n�o�t�:�l�e�(�f�u�n�c�t�i�o�n�(�e�)�{�v�a�r� �r�=�[�]�,�i�=�[�]�,�s�=�f�(�e�.�r�e�p�l�a�c�e�(�$�,�"�$�1�"�)�)�;�r�e�t�u�r�n� �s�[�S�]�?�l�e�(�f�u�n�c�t�i�o�n�(�e�,�t�,�n�,�r�)�{�v�a�r� �i�,�o�=�s�(�e�,�n�u�l�l�,�r�,�[�]�)�,�a�=�e�.�l�e�n�g�t�h�;�w�h�i�l�e�(�a�-�-�)�(�i�=�o�[�a�]�)�&�&�(�e�[�a�]�=�!�(�t�[�a�]�=�i�)�)�}�)�:�f�u�n�c�t�i�o�n�(�e�,�t�,�n�)�{�r�e�t�u�r�n� �r�[�0�]�=�e�,�s�(�r�,�n�u�l�l�,�n�,�i�)�,�r�[�0�]�=�n�u�l�l�,�!�i�.�p�o�p�(�)�}�}�)�,�h�a�s�:�l�e�(�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �0�<�s�e�(�t�,�e�)�.�l�e�n�g�t�h�}�}�)�,�c�o�n�t�a�i�n�s�:�l�e�(�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �t�=�t�.�r�e�p�l�a�c�e�(�t�e�,�n�e�)�,�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n�-�1�<�(�e�.�t�e�x�t�C�o�n�t�e�n�t�|�|�o�(�e�)�)�.�i�n�d�e�x�O�f�(�t�)�}�}�)�,�l�a�n�g�:�l�e�(�f�u�n�c�t�i�o�n�(�n�)�{�r�e�t�u�r�n� �V�.�t�e�s�t�(�n�|�|�"�"�)�|�|�s�e�.�e�r�r�o�r�(�"�u�n�s�u�p�p�o�r�t�e�d� �l�a�n�g�:� �"�+�n�)�,�n�=�n�.�r�e�p�l�a�c�e�(�t�e�,�n�e�)�.�t�o�L�o�w�e�r�C�a�s�e�(�)�,�f�u�n�c�t�i�o�n�(�e�)�{�v�a�r� �t�;�d�o�{�i�f�(�t�=�E�?�e�.�l�a�n�g�:�e�.�g�e�t�A�t�t�r�i�b�u�t�e�(�"�x�m�l�:�l�a�n�g�"�)�|�|�e�.�g�e�t�A�t�t�r�i�b�u�t�e�(�"�l�a�n�g�"�)�)�r�e�t�u�r�n�(�t�=�t�.�t�o�L�o�w�e�r�C�a�s�e�(�)�)�=�=�=�n�|�|�0�=�=�=�t�.�i�n�d�e�x�O�f�(�n�+�"�-�"�)�}�w�h�i�l�e�(�(�e�=�e�.�p�a�r�e�n�t�N�o�d�e�)�&�&�1�=�=�=�e�.�n�o�d�e�T�y�p�e�)�;�r�e�t�u�r�n�!�1�}�}�)�,�t�a�r�g�e�t�:�f�u�n�c�t�i�o�n�(�e�)�{�v�a�r� �t�=�n�.�l�o�c�a�t�i�o�n�&�&�n�.�l�o�c�a�t�i�o�n�.�h�a�s�h�;�r�e�t�u�r�n� �t�&�&�t�.�s�l�i�c�e�(�1�)�=�=�=�e�.�i�d�}�,�r�o�o�t�:�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �e�=�=�=�a�}�,�f�o�c�u�s�:�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �e�=�=�=�C�.�a�c�t�i�v�e�E�l�e�m�e�n�t�&�&�(�!�C�.�h�a�s�F�o�c�u�s�|�|�C�.�h�a�s�F�o�c�u�s�(�)�)�&�&�!�!�(�e�.�t�y�p�e�|�|�e�.�h�r�e�f�|�|�~�e�.�t�a�b�I�n�d�e�x�)�}�,�e�n�a�b�l�e�d�:�g�e�(�!�1�)�,�d�i�s�a�b�l�e�d�:�g�e�(�!�0�)�,�c�h�e�c�k�e�d�:�f�u�n�c�t�i�o�n�(�e�)�{�v�a�r� �t�=�e�.�n�o�d�e�N�a�m�e�.�t�o�L�o�w�e�r�C�a�s�e�(�)�;�r�e�t�u�r�n�"�i�n�p�u�t�"�=�=�=�t�&�&�!�!�e�.�c�h�e�c�k�e�d�|�|�"�o�p�t�i�o�n�"�=�=�=�t�&�&�!�!�e�.�s�e�l�e�c�t�e�d�}�,�s�e�l�e�c�t�e�d�:�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �e�.�p�a�r�e�n�t�N�o�d�e�&�&�e�.�p�a�r�e�n�t�N�o�d�e�.�s�e�l�e�c�t�e�d�I�n�d�e�x�,�!�0�=�=�=�e�.�s�e�l�e�c�t�e�d�}�,�e�m�p�t�y�:�f�u�n�c�t�i�o�n�(�e�)�{�f�o�r�(�e�=�e�.�f�i�r�s�t�C�h�i�l�d�;�e�;�e�=�e�.�n�e�x�t�S�i�b�l�i�n�g�)�i�f�(�e�.�n�o�d�e�T�y�p�e�<�6�)�r�e�t�u�r�n�!�1�;�r�e�t�u�r�n�!�0�}�,�p�a�r�e�n�t�:�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n�!�b�.�p�s�e�u�d�o�s�.�e�m�p�t�y�(�e�)�}�,�h�e�a�d�e�r�:�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �J�.�t�e�s�t�(�e�.�n�o�d�e�N�a�m�e�)�}�,�i�n�p�u�t�:�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �Q�.�t�e�s�t�(�e�.�n�o�d�e�N�a�m�e�)�}�,�b�u�t�t�o�n�:�f�u�n�c�t�i�o�n�(�e�)�{�v�a�r� �t�=�e�.�n�o�d�e�N�a�m�e�.�t�o�L�o�w�e�r�C�a�s�e�(�)�;�r�e�t�u�r�n�"�i�n�p�u�t�"�=�=�=�t�&�&�"�b�u�t�t�o�n�"�=�=�=�e�.�t�y�p�e�|�|�"�b�u�t�t�o�n�"�=�=�=�t�}�,�t�e�x�t�:�f�u�n�c�t�i�o�n�(�e�)�{�v�a�r� �t�;�r�e�t�u�r�n�"�i�n�p�u�t�"�=�=�=�e�.�n�o�d�e�N�a�m�e�.�t�o�L�o�w�e�r�C�a�s�e�(�)�&�&�"�t�e�x�t�"�=�=�=�e�.�t�y�p�e�&�&�(�n�u�l�l�=�=�(�t�=�e�.�g�e�t�A�t�t�r�i�b�u�t�e�(�"�t�y�p�e�"�)�)�|�|�"�t�e�x�t�"�=�=�=�t�.�t�o�L�o�w�e�r�C�a�s�e�(�)�)�}�,�f�i�r�s�t�:�v�e�(�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n�[�0�]�}�)�,�l�a�s�t�:�v�e�(�f�u�n�c�t�i�o�n�(�e�,�t�)�{�r�e�t�u�r�n�[�t�-�1�]�}�)�,�e�q�:�v�e�(�f�u�n�c�t�i�o�n�(�e�,�t�,�n�)�{�r�e�t�u�r�n�[�n�<�0�?�n�+�t�:�n�]�}�)�,�e�v�e�n�:�v�e�(�f�u�n�c�t�i�o�n�(�e�,�t�)�{�f�o�r�(�v�a�r� �n�=�0�;�n�<�t�;�n�+�=�2�)�e�.�p�u�s�h�(�n�)�;�r�e�t�u�r�n� �e�}�)�,�o�d�d�:�v�e�(�f�u�n�c�t�i�o�n�(�e�,�t�)�{�f�o�r�(�v�a�r� �n�=�1�;�n�<�t�;�n�+�=�2�)�e�.�p�u�s�h�(�n�)�;�r�e�t�u�r�n� �e�}�)�,�l�t�:�v�e�(�f�u�n�c�t�i�o�n�(�e�,�t�,�n�)�{�f�o�r�(�v�a�r� �r�=�n�<�0�?�n�+�t�:�t�<�n�?�t�:�n�;�0�<�=�-�-�r�;�)�e�.�p�u�s�h�(�r�)�;�r�e�t�u�r�n� �e�}�)�,�g�t�:�v�e�(�f�u�n�c�t�i�o�n�(�e�,�t�,�n�)�{�f�o�r�(�v�a�r� �r�=�n�<�0�?�n�+�t�:�n�;�+�+�r�<�t�;�)�e�.�p�u�s�h�(�r�)�;�r�e�t�u�r�n� �e�}�)�}�}�)�.�p�s�e�u�d�o�s�.�n�t�h�=�b�.�p�s�e�u�d�o�s�.�e�q�,�{�r�a�d�i�o�:�!�0�,�c�h�e�c�k�b�o�x�:�!�0�,�f�i�l�e�:�!�0�,�p�a�s�s�w�o�r�d�:�!�0�,�i�m�a�g�e�:�!�0�}�)�b�.�p�s�e�u�d�o�s�[�e�]�=�d�e�(�e�)�;�f�o�r�(�e� �i�n�{�s�u�b�m�i�t�:�!�0�,�r�e�s�e�t�:�!�0�}�)�b�.�p�s�e�u�d�o�s�[�e�]�=�h�e�(�e�)�;�f�u�n�c�t�i�o�n� �m�e�(�)�{�}�f�u�n�c�t�i�o�n� �x�e�(�e�)�{�f�o�r�(�v�a�r� �t�=�0�,�n�=�e�.�l�e�n�g�t�h�,�r�=�"�"�;�t�<�n�;�t�+�+�)�r�+�=�e�[�t�]�.�v�a�l�u�e�;�r�e�t�u�r�n� �r�}�f�u�n�c�t�i�o�n� �b�e�(�s�,�e�,�t�)�{�v�a�r� �u�=�e�.�d�i�r�,�l�=�e�.�n�e�x�t�,�c�=�l�|�|�u�,�f�=�t�&�&�"�p�a�r�e�n�t�N�o�d�e�"�=�=�=�c�,�p�=�r�+�+�;�r�e�t�u�r�n� �e�.�f�i�r�s�t�?�f�u�n�c�t�i�o�n�(�e�,�t�,�n�)�{�w�h�i�l�e�(�e�=�e�[�u�]�)�i�f�(�1�=�=�=�e�.�n�o�d�e�T�y�p�e�|�|�f�)�r�e�t�u�r�n� �s�(�e�,�t�,�n�)�;�r�e�t�u�r�n�!�1�}�:�f�u�n�c�t�i�o�n�(�e�,�t�,�n�)�{�v�a�r� �r�,�i�,�o�,�a�=�[�k�,�p�]�;�i�f�(�n�)�{�w�h�i�l�e�(�e�=�e�[�u�]�)�i�f�(�(�1�=�=�=�e�.�n�o�d�e�T�y�p�e�|�|�f�)�&�&�s�(�e�,�t�,�n�)�)�r�e�t�u�r�n�!�0�}�e�l�s�e� �w�h�i�l�e�(�e�=�e�[�u�]�)�i�f�(�1�=�=�=�e�.�n�o�d�e�T�y�p�e�|�|�f�)�i�f�(�i�=�(�o�=�e�[�S�]�|�|�(�e�[�S�]�=�{�}�)�)�[�e�.�u�n�i�q�u�e�I�D�]�|�|�(�o�[�e�.�u�n�i�q�u�e�I�D�]�=�{�}�)�,�l�&�&�l�=�=�=�e�.�n�o�d�e�N�a�m�e�.�t�o�L�o�w�e�r�C�a�s�e�(�)�)�e�=�e�[�u�]�|�|�e�;
2�e�l�s�e�{�i�f�(�(�r�=�i�[�c�]�)�&�&�r�[�0�]�=�=�=�k�&�&�r�[�1�]�=�=�=�p�)�r�e�t�u�r�n� �a�[�2�]�=�r�[�2�]�;�i�f�(�(�i�[�c�]�=�a�)�[�2�]�=�s�(�e�,�t�,�n�)�)�r�e�t�u�r�n�!�0�}�r�e�t�u�r�n�!�1�}�}�f�u�n�c�t�i�o�n� �w�e�(�i�)�{�r�e�t�u�r�n� �1�<�i�.�l�e�n�g�t�h�?�f�u�n�c�t�i�o�n�(�e�,�t�,�n�)�{�v�a�r� �r�=�i�.�l�e�n�g�t�h�;�w�h�i�l�e�(�r�-�-�)�i�f�(�!�i�[�r�]�(�e�,�t�,�n�)�)�r�e�t�u�r�n�!�1�;�r�e�t�u�r�n�!�0�}�:�i�[�0�]�}�f�u�n�c�t�i�o�n� �T�e�(�e�,�t�,�n�,�r�,�i�)�{�f�o�r�(�v�a�r� �o�,�a�=�[�]�,�s�=�0�,�u�=�e�.�l�e�n�g�t�h�,�l�=�n�u�l�l�!�=�t�;�s�<�u�;�s�+�+�)�(�o�=�e�[�s�]�)�&�&�(�n�&�&�!�n�(�o�,�r�,�i�)�|�|�(�a�.�p�u�s�h�(�o�)�,�l�&�&�t�.�p�u�s�h�(�s�)�)�)�;�r�e�t�u�r�n� �a�}�f�u�n�c�t�i�o�n� �C�e�(�d�,�h�,�g�,�v�,�y�,�e�)�{�r�e�t�u�r�n� �v�&�&�!�v�[�S�]�&�&�(�v�=�C�e�(�v�)�)�,�y�&�&�!�y�[�S�]�&�&�(�y�=�C�e�(�y�,�e�)�)�,�l�e�(�f�u�n�c�t�i�o�n�(�e�,�t�,�n�,�r�)�{�v�a�r� �i�,�o�,�a�,�s�=�[�]�,�u�=�[�]�,�l�=�t�.�l�e�n�g�t�h�,�c�=�e�|�|�f�u�n�c�t�i�o�n�(�e�,�t�,�n�)�{�f�o�r�(�v�a�r� �r�=�0�,�i�=�t�.�l�e�n�g�t�h�;�r�<�i�;�r�+�+�)�s�e�(�e�,�t�[�r�]�,�n�)�;�r�e�t�u�r�n� �n�}�(�h�|�|�"�*�"�,�n�.�n�o�d�e�T�y�p�e�?�[�n�]�:�n�,�[�]�)�,�f�=�!�d�|�|�!�e�&�&�h�?�c�:�T�e�(�c�,�s�,�d�,�n�,�r�)�,�p�=�g�?�y�|�|�(�e�?�d�:�l�|�|�v�)�?�[�]�:�t�:�f�;�i�f�(�g�&�&�g�(�f�,�p�,�n�,�r�)�,�v�)�{�i�=�T�e�(�p�,�u�)�,�v�(�i�,�[�]�,�n�,�r�)�,�o�=�i�.�l�e�n�g�t�h�;�w�h�i�l�e�(�o�-�-�)�(�a�=�i�[�o�]�)�&�&�(�p�[�u�[�o�]�]�=�!�(�f�[�u�[�o�]�]�=�a�)�)�}�i�f�(�e�)�{�i�f�(�y�|�|�d�)�{�i�f�(�y�)�{�i�=�[�]�,�o�=�p�.�l�e�n�g�t�h�;�w�h�i�l�e�(�o�-�-�)�(�a�=�p�[�o�]�)�&�&�i�.�p�u�s�h�(�f�[�o�]�=�a�)�;�y�(�n�u�l�l�,�p�=�[�]�,�i�,�r�)�}�o�=�p�.�l�e�n�g�t�h�;�w�h�i�l�e�(�o�-�-�)�(�a�=�p�[�o�]�)�&�&�-�1�<�(�i�=�y�?�P�(�e�,�a�)�:�s�[�o�]�)�&�&�(�e�[�i�]�=�!�(�t�[�i�]�=�a�)�)�}�}�e�l�s�e� �p�=�T�e�(�p�=�=�=�t�?�p�.�s�p�l�i�c�e�(�l�,�p�.�l�e�n�g�t�h�)�:�p�)�,�y�?�y�(�n�u�l�l�,�t�,�p�,�r�)�:�H�.�a�p�p�l�y�(�t�,�p�)�}�)�}�f�u�n�c�t�i�o�n� �E�e�(�e�)�{�f�o�r�(�v�a�r� �i�,�t�,�n�,�r�=�e�.�l�e�n�g�t�h�,�o�=�b�.�r�e�l�a�t�i�v�e�[�e�[�0�]�.�t�y�p�e�]�,�a�=�o�|�|�b�.�r�e�l�a�t�i�v�e�[�"� �"�]�,�s�=�o�?�1�:�0�,�u�=�b�e�(�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �e�=�=�=�i�}�,�a�,�!�0�)�,�l�=�b�e�(�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n�-�1�<�P�(�i�,�e�)�}�,�a�,�!�0�)�,�c�=�[�f�u�n�c�t�i�o�n�(�e�,�t�,�n�)�{�v�a�r� �r�=�!�o�&�&�(�n�|�|�t�!�=�=�w�)�|�|�(�(�i�=�t�)�.�n�o�d�e�T�y�p�e�?�u�(�e�,�t�,�n�)�:�l�(�e�,�t�,�n�)�)�;�r�e�t�u�r�n� �i�=�n�u�l�l�,�r�}�]�;�s�<�r�;�s�+�+�)�i�f�(�t�=�b�.�r�e�l�a�t�i�v�e�[�e�[�s�]�.�t�y�p�e�]�)�c�=�[�b�e�(�w�e�(�c�)�,�t�)�]�;�e�l�s�e�{�i�f�(�(�t�=�b�.�f�i�l�t�e�r�[�e�[�s�]�.�t�y�p�e�]�.�a�p�p�l�y�(�n�u�l�l�,�e�[�s�]�.�m�a�t�c�h�e�s�)�)�[�S�]�)�{�f�o�r�(�n�=�+�+�s�;�n�<�r�;�n�+�+�)�i�f�(�b�.�r�e�l�a�t�i�v�e�[�e�[�n�]�.�t�y�p�e�]�)�b�r�e�a�k�;�r�e�t�u�r�n� �C�e�(�1�<�s�&�&�w�e�(�c�)�,�1�<�s�&�&�x�e�(�e�.�s�l�i�c�e�(�0�,�s�-�1�)�.�c�o�n�c�a�t�(�{�v�a�l�u�e�:�"� �"�=�=�=�e�[�s�-�2�]�.�t�y�p�e�?�"�*�"�:�"�"�}�)�)�.�r�e�p�l�a�c�e�(�$�,�"�$�1�"�)�,�t�,�s�<�n�&�&�E�e�(�e�.�s�l�i�c�e�(�s�,�n�)�)�,�n�<�r�&�&�E�e�(�e�=�e�.�s�l�i�c�e�(�n�)�)�,�n�<�r�&�&�x�e�(�e�)�)�}�c�.�p�u�s�h�(�t�)�}�r�e�t�u�r�n� �w�e�(�c�)�}�r�e�t�u�r�n� �m�e�.�p�r�o�t�o�t�y�p�e�=�b�.�f�i�l�t�e�r�s�=�b�.�p�s�e�u�d�o�s�,�b�.�s�e�t�F�i�l�t�e�r�s�=�n�e�w� �m�e�,�h�=�s�e�.�t�o�k�e�n�i�z�e�=�f�u�n�c�t�i�o�n�(�e�,�t�)�{�v�a�r� �n�,�r�,�i�,�o�,�a�,�s�,�u�,�l�=�x�[�e�+�"� �"�]�;�i�f�(�l�)�r�e�t�u�r�n� �t�?�0�:�l�.�s�l�i�c�e�(�0�)�;�a�=�e�,�s�=�[�]�,�u�=�b�.�p�r�e�F�i�l�t�e�r�;�w�h�i�l�e�(�a�)�{�f�o�r�(�o� �i�n� �n�&�&�!�(�r�=�_�.�e�x�e�c�(�a�)�)�|�|�(�r�&�&�(�a�=�a�.�s�l�i�c�e�(�r�[�0�]�.�l�e�n�g�t�h�)�|�|�a�)�,�s�.�p�u�s�h�(�i�=�[�]�)�)�,�n�=�!�1�,�(�r�=�z�.�e�x�e�c�(�a�)�)�&�&�(�n�=�r�.�s�h�i�f�t�(�)�,�i�.�p�u�s�h�(�{�v�a�l�u�e�:�n�,�t�y�p�e�:�r�[�0�]�.�r�e�p�l�a�c�e�(�$�,�"� �"�)�}�)�,�a�=�a�.�s�l�i�c�e�(�n�.�l�e�n�g�t�h�)�)�,�b�.�f�i�l�t�e�r�)�!�(�r�=�G�[�o�]�.�e�x�e�c�(�a�)�)�|�|�u�[�o�]�&�&�!�(�r�=�u�[�o�]�(�r�)�)�|�|�(�n�=�r�.�s�h�i�f�t�(�)�,�i�.�p�u�s�h�(�{�v�a�l�u�e�:�n�,�t�y�p�e�:�o�,�m�a�t�c�h�e�s�:�r�}�)�,�a�=�a�.�s�l�i�c�e�(�n�.�l�e�n�g�t�h�)�)�;�i�f�(�!�n�)�b�r�e�a�k�}�r�e�t�u�r�n� �t�?�a�.�l�e�n�g�t�h�:�a�?�s�e�.�e�r�r�o�r�(�e�)�:�x�(�e�,�s�)�.�s�l�i�c�e�(�0�)�}�,�f�=�s�e�.�c�o�m�p�i�l�e�=�f�u�n�c�t�i�o�n�(�e�,�t�)�{�v�a�r� �n�,�v�,�y�,�m�,�x�,�r�,�i�=�[�]�,�o�=�[�]�,�a�=�A�[�e�+�"� �"�]�;�i�f�(�!�a�)�{�t�|�|�(�t�=�h�(�e�)�)�,�n�=�t�.�l�e�n�g�t�h�;�w�h�i�l�e�(�n�-�-�)�(�a�=�E�e�(�t�[�n�]�)�)�[�S�]�?�i�.�p�u�s�h�(�a�)�:�o�.�p�u�s�h�(�a�)�;�(�a�=�A�(�e�,�(�v�=�o�,�m�=�0�<�(�y�=�i�)�.�l�e�n�g�t�h�,�x�=�0�<�v�.�l�e�n�g�t�h�,�r�=�f�u�n�c�t�i�o�n�(�e�,�t�,�n�,�r�,�i�)�{�v�a�r� �o�,�
2a�,�s�,�u�=�0�,�l�=�"�0�"�,�c�=�e�&�&�[�]�,�f�=�[�]�,�p�=�w�,�d�=�e�|�|�x�&�&�b�.�f�i�n�d�.�T�A�G�(�"�*�"�,�i�)�,�h�=�k�+�=�n�u�l�l�=�=�p�?�1�:�M�a�t�h�.�r�a�n�d�o�m�(�)�|�|�.�1�,�g�=�d�.�l�e�n�g�t�h�;�f�o�r�(�i�&�&�(�w�=�t�=�=�C�|�|�t�|�|�i�)�;�l�!�=�=�g�&�&�n�u�l�l�!�=�(�o�=�d�[�l�]�)�;�l�+�+�)�{�i�f�(�x�&�&�o�)�{�a�=�0�,�t�|�|�o�.�o�w�n�e�r�D�o�c�u�m�e�n�t�=�=�C�|�|�(�T�(�o�)�,�n�=�!�E�)�;�w�h�i�l�e�(�s�=�v�[�a�+�+�]�)�i�f�(�s�(�o�,�t�|�|�C�,�n�)�)�{�r�.�p�u�s�h�(�o�)�;�b�r�e�a�k�}�i�&�&�(�k�=�h�)�}�m�&�&�(�(�o�=�!�s�&�&�o�)�&�&�u�-�-�,�e�&�&�c�.�p�u�s�h�(�o�)�)�}�i�f�(�u�+�=�l�,�m�&�&�l�!�=�=�u�)�{�a�=�0�;�w�h�i�l�e�(�s�=�y�[�a�+�+�]�)�s�(�c�,�f�,�t�,�n�)�;�i�f�(�e�)�{�i�f�(�0�<�u�)�w�h�i�l�e�(�l�-�-�)�c�[�l�]�|�|�f�[�l�]�|�|�(�f�[�l�]�=�q�.�c�a�l�l�(�r�)�)�;�f�=�T�e�(�f�)�}�H�.�a�p�p�l�y�(�r�,�f�)�,�i�&�&�!�e�&�&�0�<�f�.�l�e�n�g�t�h�&�&�1�<�u�+�y�.�l�e�n�g�t�h�&�&�s�e�.�u�n�i�q�u�e�S�o�r�t�(�r�)�}�r�e�t�u�r�n� �i�&�&�(�k�=�h�,�w�=�p�)�,�c�}�,�m�?�l�e�(�r�)�:�r�)�)�)�.�s�e�l�e�c�t�o�r�=�e�}�r�e�t�u�r�n� �a�}�,�g�=�s�e�.�s�e�l�e�c�t�=�f�u�n�c�t�i�o�n�(�e�,�t�,�n�,�r�)�{�v�a�r� �i�,�o�,�a�,�s�,�u�,�l�=�"�f�u�n�c�t�i�o�n�"�=�=�t�y�p�e�o�f� �e�&�&�e�,�c�=�!�r�&�&�h�(�e�=�l�.�s�e�l�e�c�t�o�r�|�|�e�)�;�i�f�(�n�=�n�|�|�[�]�,�1�=�=�=�c�.�l�e�n�g�t�h�)�{�i�f�(�2�<�(�o�=�c�[�0�]�=�c�[�0�]�.�s�l�i�c�e�(�0�)�)�.�l�e�n�g�t�h�&�&�"�I�D�"�=�=�=�(�a�=�o�[�0�]�)�.�t�y�p�e�&�&�9�=�=�=�t�.�n�o�d�e�T�y�p�e�&�&�E�&�&�b�.�r�e�l�a�t�i�v�e�[�o�[�1�]�.�t�y�p�e�]�)�{�i�f�(�!�(�t�=�(�b�.�f�i�n�d�.�I�D�(�a�.�m�a�t�c�h�e�s�[�0�]�.�r�e�p�l�a�c�e�(�t�e�,�n�e�)�,�t�)�|�|�[�]�)�[�0�]�)�)�r�e�t�u�r�n� �n�;�l�&�&�(�t�=�t�.�p�a�r�e�n�t�N�o�d�e�)�,�e�=�e�.�s�l�i�c�e�(�o�.�s�h�i�f�t�(�)�.�v�a�l�u�e�.�l�e�n�g�t�h�)�}�i�=�G�.�n�e�e�d�s�C�o�n�t�e�x�t�.�t�e�s�t�(�e�)�?�0�:�o�.�l�e�n�g�t�h�;�w�h�i�l�e�(�i�-�-�)�{�i�f�(�a�=�o�[�i�]�,�b�.�r�e�l�a�t�i�v�e�[�s�=�a�.�t�y�p�e�]�)�b�r�e�a�k�;�i�f�(�(�u�=�b�.�f�i�n�d�[�s�]�)�&�&�(�r�=�u�(�a�.�m�a�t�c�h�e�s�[�0�]�.�r�e�p�l�a�c�e�(�t�e�,�n�e�)�,�e�e�.�t�e�s�t�(�o�[�0�]�.�t�y�p�e�)�&�&�y�e�(�t�.�p�a�r�e�n�t�N�o�d�e�)�|�|�t�)�)�)�{�i�f�(�o�.�s�p�l�i�c�e�(�i�,�1�)�,�!�(�e�=�r�.�l�e�n�g�t�h�&�&�x�e�(�o�)�)�)�r�e�t�u�r�n� �H�.�a�p�p�l�y�(�n�,�r�)�,�n�;�b�r�e�a�k�}�}�}�r�e�t�u�r�n�(�l�|�|�f�(�e�,�c�)�)�(�r�,�t�,�!�E�,�n�,�!�t�|�|�e�e�.�t�e�s�t�(�e�)�&�&�y�e�(�t�.�p�a�r�e�n�t�N�o�d�e�)�|�|�t�)�,�n�}�,�d�.�s�o�r�t�S�t�a�b�l�e�=�S�.�s�p�l�i�t�(�"�"�)�.�s�o�r�t�(�j�)�.�j�o�i�n�(�"�"�)�=�=�=�S�,�d�.�d�e�t�e�c�t�D�u�p�l�i�c�a�t�e�s�=�!�!�l�,�T�(�)�,�d�.�s�o�r�t�D�e�t�a�c�h�e�d�=�c�e�(�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �1�&�e�.�c�o�m�p�a�r�e�D�o�c�u�m�e�n�t�P�o�s�i�t�i�o�n�(�C�.�c�r�e�a�t�e�E�l�e�m�e�n�t�(�"�f�i�e�l�d�s�e�t�"�)�)�}�)�,�c�e�(�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �e�.�i�n�n�e�r�H�T�M�L�=�"�<�a� �h�r�e�f�=�'�#�'�>�<�/�a�>�"�,�"�#�"�=�=�=�e�.�f�i�r�s�t�C�h�i�l�d�.�g�e�t�A�t�t�r�i�b�u�t�e�(�"�h�r�e�f�"�)�}�)�|�|�f�e�(�"�t�y�p�e�|�h�r�e�f�|�h�e�i�g�h�t�|�w�i�d�t�h�"�,�f�u�n�c�t�i�o�n�(�e�,�t�,�n�)�{�i�f�(�!�n�)�r�e�t�u�r�n� �e�.�g�e�t�A�t�t�r�i�b�u�t�e�(�t�,�"�t�y�p�e�"�=�=�=�t�.�t�o�L�o�w�e�r�C�a�s�e�(�)�?�1�:�2�)�}�)�,�d�.�a�t�t�r�i�b�u�t�e�s�&�&�c�e�(�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �e�.�i�n�n�e�r�H�T�M�L�=�"�<�i�n�p�u�t�/�>�"�,�e�.�f�i�r�s�t�C�h�i�l�d�.�s�e�t�A�t�t�r�i�b�u�t�e�(�"�v�a�l�u�e�"�,�"�"�)�,�"�"�=�=�=�e�.�f�i�r�s�t�C�h�i�l�d�.�g�e�t�A�t�t�r�i�b�u�t�e�(�"�v�a�l�u�e�"�)�}�)�|�|�f�e�(�"�v�a�l�u�e�"�,�f�u�n�c�t�i�o�n�(�e�,�t�,�n�)�{�i�f�(�!�n�&�&�"�i�n�p�u�t�"�=�=�=�e�.�n�o�d�e�N�a�m�e�.�t�o�L�o�w�e�r�C�a�s�e�(�)�)�r�e�t�u�r�n� �e�.�d�e�f�a�u�l�t�V�a�l�u�e�}�)�,�c�e�(�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �n�u�l�l�=�=�e�.�g�e�t�A�t�t�r�i�b�u�t�e�(�"�d�i�s�a�b�l�e�d�"�)�}�)�|�|�f�e�(�R�,�f�u�n�c�t�i�o�n�(�e�,�t�,�n�)�{�v�a�r� �r�;�i�f�(�!�n�)�r�e�t�u�r�n�!�0�=�=�=�e�[�t�]�?�t�.�t�o�L�o�w�e�r�C�a�s�e�(�)�:�(�r�=�e�.�g�e�t�A�t�t�r�i�b�u�t�e�N�o�d�e�(�t�)�)�&�&�r�.�s�p�e�c�i�f�i�e�d�?�r�.�v�a�l�u�e�:�n�u�l�l�}�)�,�s�e�}�(�C�)�;�S�.�f�i�n�d�=�d�,�S�.�e�x�p�r�=�d�.�s�e�l�e�c�t�o�r�s�,�S�.�e�x�p�r�[�"�:�"�]�=�S�.�e�x�p�r�.�p�s�e�u�d�o�s�,�S�.�u�n�i�q�u�e�S�o�r�t�=�S�.�u�n�i�q�u�e�=�d�.�u�n�i�q�u�e�S�o�r�t�,�S�.�t�e�x�t�=�d�.�g�e�t�T�e�x�t�,�S�.�i�s�X�M�L�D�o�c�=�d�.�i�s�X�M�L�,�S�.�c�o�n�t�a�i�n�s�=�d�.�c�o�n�t�a�i�n�s�,�S�.�e�s�c�a�p�e�S�e�l�e�c�t�o�r�=�d�.�e�s�c�a�p�e�;�v�a�r� �h�=�f�u�n�c�t�i�o�n�(�e�,�t�,�n�)�{�v�a�r� �r�=�[�]�,�i�=�v�o�i�d� �0�!�=�=�n�;�w�h�i�l�e�(�(�e�=�e�[�t�]�)�&�&�9�!�=�=�e�.�n�o�d�e�T�y�p�e�)�i�f�(�1�=�=�=�e�.�n�o�d�e�T�y�p�e�)�{�i�f�(�i�&�&�S�(�e�)�.�i�s�(�n�)�)�b�r�e�a�k�;�r�.�p�u�s�h�(�e�)�}�r�e�t�u�r�n� �r�}�,�T�=�f�u�n�c�t�i�o�n�(�e�,�t�)�{�f�o�r�(�v�a�r� �n�=�[�]�;�e�;�e�=�e�.�n�e�x�t�S�i�b�l�i�n�g�)�1�=�=�=�e�.�n�o�d�e�T�y�p�e�&�&�e�!�=�=�t�&�&�n�.�p�u�s�h�(�e�)�;�r�e�t�u�r�n� �n�}�,�k�=�S�.�e�x�p�r�.�m�a�t�c�h�.�n�e�e�d�s�C�o�n�t�e�x�t�;�f�u�n�c�t�i�o�n� �A�(�e�,�t�)�{�r�e�t�u�r�n� �e�.�n�o�d�e�N�a�m�e�&�&�e�.�n�o�d�e�N�a�m�e�.�t�o�L�o�w�e�r�C�a�s�e�(�)�=�=�=�t�.�t�o�L�o�w�e�r�C�a�s�e�(�)�}�v�a�r� �N�=�/�^�<�(�[�a�-�z�]�[�^�\�/�\�0�>�:�\�x�2�0�\�t�\�r�\�n�\�f�]�*�)�[�\�x�2�0�\�t�\�r�\�n�\�f�]�*�\�/�?�>�(�?�:�<�\�/�\�1�>�|�)�$�/�i�;�f�u�n�c�t�i�o�n� �j�(�e�,�n�,�r�)�{�r�e�t�u�r�n� �m�(�n�)�?�S�.�g�r�e�p�(�e�,�f�u�n�c�t�i�o�n�(�e�,�t�)�{�r�e�t�u�r�n�!�!�n�.�c�a�l�l�(�e�,�t�,�e�)�!�=�=�r�}�)�:�n�.�n�o�d�e�T�y�p�e�?�S�.�g�r�e�p�(�e�,�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �e�=�=�=�n�!�=�=�r�}�)�:�"�s�t�r�i�n�g�"�!�=�t�y�p�e�o�f� �n�?�S�.�g�r�e�p�(�e�,�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n�-�1�<�i�.�c�a�l�l�(�n�,�e�)�!�=�=�r�}
2�)�:�S�.�f�i�l�t�e�r�(�n�,�e�,�r�)�}�S�.�f�i�l�t�e�r�=�f�u�n�c�t�i�o�n�(�e�,�t�,�n�)�{�v�a�r� �r�=�t�[�0�]�;�r�e�t�u�r�n� �n�&�&�(�e�=�"�:�n�o�t�(�"�+�e�+�"�)�"�)�,�1�=�=�=�t�.�l�e�n�g�t�h�&�&�1�=�=�=�r�.�n�o�d�e�T�y�p�e�?�S�.�f�i�n�d�.�m�a�t�c�h�e�s�S�e�l�e�c�t�o�r�(�r�,�e�)�?�[�r�]�:�[�]�:�S�.�f�i�n�d�.�m�a�t�c�h�e�s�(�e�,�S�.�g�r�e�p�(�t�,�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �1�=�=�=�e�.�n�o�d�e�T�y�p�e�}�)�)�}�,�S�.�f�n�.�e�x�t�e�n�d�(�{�f�i�n�d�:�f�u�n�c�t�i�o�n�(�e�)�{�v�a�r� �t�,�n�,�r�=�t�h�i�s�.�l�e�n�g�t�h�,�i�=�t�h�i�s�;�i�f�(�"�s�t�r�i�n�g�"�!�=�t�y�p�e�o�f� �e�)�r�e�t�u�r�n� �t�h�i�s�.�p�u�s�h�S�t�a�c�k�(�S�(�e�)�.�f�i�l�t�e�r�(�f�u�n�c�t�i�o�n�(�)�{�f�o�r�(�t�=�0�;�t�<�r�;�t�+�+�)�i�f�(�S�.�c�o�n�t�a�i�n�s�(�i�[�t�]�,�t�h�i�s�)�)�r�e�t�u�r�n�!�0�}�)�)�;�f�o�r�(�n�=�t�h�i�s�.�p�u�s�h�S�t�a�c�k�(�[�]�)�,�t�=�0�;�t�<�r�;�t�+�+�)�S�.�f�i�n�d�(�e�,�i�[�t�]�,�n�)�;�r�e�t�u�r�n� �1�<�r�?�S�.�u�n�i�q�u�e�S�o�r�t�(�n�)�:�n�}�,�f�i�l�t�e�r�:�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �t�h�i�s�.�p�u�s�h�S�t�a�c�k�(�j�(�t�h�i�s�,�e�|�|�[�]�,�!�1�)�)�}�,�n�o�t�:�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �t�h�i�s�.�p�u�s�h�S�t�a�c�k�(�j�(�t�h�i�s�,�e�|�|�[�]�,�!�0�)�)�}�,�i�s�:�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n�!�!�j�(�t�h�i�s�,�"�s�t�r�i�n�g�"�=�=�t�y�p�e�o�f� �e�&�&�k�.�t�e�s�t�(�e�)�?�S�(�e�)�:�e�|�|�[�]�,�!�1�)�.�l�e�n�g�t�h�}�}�)�;�v�a�r� �D�,�q�=�/�^�(�?�:�\�s�*�(�<�[�\�w�\�W�]�+�>�)�[�^�>�]�*�|�#�(�[�\�w�-�]�+�)�)�$�/�;�(�S�.�f�n�.�i�n�i�t�=�f�u�n�c�t�i�o�n�(�e�,�t�,�n�)�{�v�a�r� �r�,�i�;�i�f�(�!�e�)�r�e�t�u�r�n� �t�h�i�s�;�i�f�(�n�=�n�|�|�D�,�"�s�t�r�i�n�g�"�=�=�t�y�p�e�o�f� �e�)�{�i�f�(�!�(�r�=�"�<�"�=�=�=�e�[�0�]�&�&�"�>�"�=�=�=�e�[�e�.�l�e�n�g�t�h�-�1�]�&�&�3�<�=�e�.�l�e�n�g�t�h�?�[�n�u�l�l�,�e�,�n�u�l�l�]�:�q�.�e�x�e�c�(�e�)�)�|�|�!�r�[�1�]�&�&�t�)�r�e�t�u�r�n�!�t�|�|�t�.�j�q�u�e�r�y�?�(�t�|�|�n�)�.�f�i�n�d�(�e�)�:�t�h�i�s�.�c�o�n�s�t�r�u�c�t�o�r�(�t�)�.�f�i�n�d�(�e�)�;�i�f�(�r�[�1�]�)�{�i�f�(�t�=�t� �i�n�s�t�a�n�c�e�o�f� �S�?�t�[�0�]�:�t�,�S�.�m�e�r�g�e�(�t�h�i�s�,�S�.�p�a�r�s�e�H�T�M�L�(�r�[�1�]�,�t�&�&�t�.�n�o�d�e�T�y�p�e�?�t�.�o�w�n�e�r�D�o�c�u�m�e�n�t�|�|�t�:�E�,�!�0�)�)�,�N�.�t�e�s�t�(�r�[�1�]�)�&�&�S�.�i�s�P�l�a�i�n�O�b�j�e�c�t�(�t�)�)�f�o�r�(�r� �i�n� �t�)�m�(�t�h�i�s�[�r�]�)�?�t�h�i�s�[�r�]�(�t�[�r�]�)�:�t�h�i�s�.�a�t�t�r�(�r�,�t�[�r�]�)�;�r�e�t�u�r�n� �t�h�i�s�}�r�e�t�u�r�n�(�i�=�E�.�g�e�t�E�l�e�m�e�n�t�B�y�I�d�(�r�[�2�]�)�)�&�&�(�t�h�i�s�[�0�]�=�i�,�t�h�i�s�.�l�e�n�g�t�h�=�1�)�,�t�h�i�s�}�r�e�t�u�r�n� �e�.�n�o�d�e�T�y�p�e�?�(�t�h�i�s�[�0�]�=�e�,�t�h�i�s�.�l�e�n�g�t�h�=�1�,�t�h�i�s�)�:�m�(�e�)�?�v�o�i�d� �0�!�=�=�n�.�r�e�a�d�y�?�n�.�r�e�a�d�y�(�e�)�:�e�(�S�)�:�S�.�m�a�k�e�A�r�r�a�y�(�e�,�t�h�i�s�)�}�)�.�p�r�o�t�o�t�y�p�e�=�S�.�f�n�,�D�=�S�(�E�)�;�v�a�r� �L�=�/�^�(�?�:�p�a�r�e�n�t�s�|�p�r�e�v�(�?�:�U�n�t�i�l�|�A�l�l�)�)�/�,�H�=�{�c�h�i�l�d�r�e�n�:�!�0�,�c�o�n�t�e�n�t�s�:�!�0�,�n�e�x�t�:�!�0�,�p�r�e�v�:�!�0�}�;�f�u�n�c�t�i�o�n� �O�(�e�,�t�)�{�w�h�i�l�e�(�(�e�=�e�[�t�]�)�&�&�1�!�=�=�e�.�n�o�d�e�T�y�p�e�)�;�r�e�t�u�r�n� �e�}�S�.�f�n�.�e�x�t�e�n�d�(�{�h�a�s�:�f�u�n�c�t�i�o�n�(�e�)�{�v�a�r� �t�=�S�(�e�,�t�h�i�s�)�,�n�=�t�.�l�e�n�g�t�h�;�r�e�t�u�r�n� �t�h�i�s�.�f�i�l�t�e�r�(�f�u�n�c�t�i�o�n�(�)�{�f�o�r�(�v�a�r� �e�=�0�;�e�<�n�;�e�+�+�)�i�f�(�S�.�c�o�n�t�a�i�n�s�(�t�h�i�s�,�t�[�e�]�)�)�r�e�t�u�r�n�!�0�}�)�}�,�c�l�o�s�e�s�t�:�f�u�n�c�t�i�o�n�(�e�,�t�)�{�v�a�r� �n�,�r�=�0�,�i�=�t�h�i�s�.�l�e�n�g�t�h�,�o�=�[�]�,�a�=�"�s�t�r�i�n�g�"�!�=�t�y�p�e�o�f� �e�&�&�S�(�e�)�;�i�f�(�!�k�.�t�e�s�t�(�e�)�)�f�o�r�(�;�r�<�i�;�r�+�+�)�f�o�r�(�n�=�t�h�i�s�[�r�]�;�n�&�&�n�!�=�=�t�;�n�=�n�.�p�a�r�e�n�t�N�o�d�e�)�i�f�(�n�.�n�o�d�e�T�y�p�e�<�1�1�&�&�(�a�?�-�1�<�a�.�i�n�d�e�x�(�n�)�:�1�=�=�=�n�.�n�o�d�e�T�y�p�e�&�&�S�.�f�i�n�d�.�m�a�t�c�h�e�s�S�e�l�e�c�t�o�r�(�n�,�e�)�)�)�{�o�.�p�u�s�h�(�n�)�;�b�r�e�a�k�}�r�e�t�u�r�n� �t�h�i�s�.�p�u�s�h�S�t�a�c�k�(�1�<�o�.�l�e�n�g�t�h�?�S�.�u�n�i�q�u�e�S�o�r�t�(�o�)�:�o�)�}�,�i�n�d�e�x�:�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �e�?�"�s�t�r�i�n�g�"�=�=�t�y�p�e�o�f� �e�?�i�.�c�a�l�l�(�S�(�e�)�,�t�h�i�s�[�0�]�)�:�i�.�c�a�l�l�(�t�h�i�s�,�e�.�j�q�u�e�r�y�?�e�[�0�]�:�e�)�:�t�h�i�s�[�0�]�&�&�t�h�i�s�[�0�]�.�p�a�r�e�n�t�N�o�d�e�?�t�h�i�s�.�f�i�r�s�t�(�)�.�p�r�e�v�A�l�l�(�)�.�l�e�n�g�t�h�:�-�1�}�,�a�d�d�:�f�u�n�c�t�i�o�n�(�e�,�t�)�{�r�e�t�u�r�n� �t�h�i�s�.�p�u�s�h�S�t�a�c�k�(�S�.�u�n�i�q�u�e�S�o�r�t�(�S�.�m�e�r�g�e�(�t�h�i�s�.�g�e�t�(�)�,�S�(�e�,�t�)�)�)�)�}�,�a�d�d�B�a�c�k�:�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �t�h�i�s�.�a�d�d�(�n�u�l�l�=�=�e�?�t�h�i�s�.�p�r�e�v�O�b�j�e�c�t�:�t�h�i�s�.�p�r�e�v�O�b�j�e�c�t�.�f�i�l�t�e�r
2�(�e�)�)�}�}�)�,�S�.�e�a�c�h�(�{�p�a�r�e�n�t�:�f�u�n�c�t�i�o�n�(�e�)�{�v�a�r� �t�=�e�.�p�a�r�e�n�t�N�o�d�e�;�r�e�t�u�r�n� �t�&�&�1�1�!�=�=�t�.�n�o�d�e�T�y�p�e�?�t�:�n�u�l�l�}�,�p�a�r�e�n�t�s�:�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �h�(�e�,�"�p�a�r�e�n�t�N�o�d�e�"�)�}�,�p�a�r�e�n�t�s�U�n�t�i�l�:�f�u�n�c�t�i�o�n�(�e�,�t�,�n�)�{�r�e�t�u�r�n� �h�(�e�,�"�p�a�r�e�n�t�N�o�d�e�"�,�n�)�}�,�n�e�x�t�:�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �O�(�e�,�"�n�e�x�t�S�i�b�l�i�n�g�"�)�}�,�p�r�e�v�:�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �O�(�e�,�"�p�r�e�v�i�o�u�s�S�i�b�l�i�n�g�"�)�}�,�n�e�x�t�A�l�l�:�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �h�(�e�,�"�n�e�x�t�S�i�b�l�i�n�g�"�)�}�,�p�r�e�v�A�l�l�:�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �h�(�e�,�"�p�r�e�v�i�o�u�s�S�i�b�l�i�n�g�"�)�}�,�n�e�x�t�U�n�t�i�l�:�f�u�n�c�t�i�o�n�(�e�,�t�,�n�)�{�r�e�t�u�r�n� �h�(�e�,�"�n�e�x�t�S�i�b�l�i�n�g�"�,�n�)�}�,�p�r�e�v�U�n�t�i�l�:�f�u�n�c�t�i�o�n�(�e�,�t�,�n�)�{�r�e�t�u�r�n� �h�(�e�,�"�p�r�e�v�i�o�u�s�S�i�b�l�i�n�g�"�,�n�)�}�,�s�i�b�l�i�n�g�s�:�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �T�(�(�e�.�p�a�r�e�n�t�N�o�d�e�|�|�{�}�)�.�f�i�r�s�t�C�h�i�l�d�,�e�)�}�,�c�h�i�l�d�r�e�n�:�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �T�(�e�.�f�i�r�s�t�C�h�i�l�d�)�}�,�c�o�n�t�e�n�t�s�:�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �n�u�l�l�!�=�e�.�c�o�n�t�e�n�t�D�o�c�u�m�e�n�t�&�&�r�(�e�.�c�o�n�t�e�n�t�D�o�c�u�m�e�n�t�)�?�e�.�c�o�n�t�e�n�t�D�o�c�u�m�e�n�t�:�(�A�(�e�,�"�t�e�m�p�l�a�t�e�"�)�&�&�(�e�=�e�.�c�o�n�t�e�n�t�|�|�e�)�,�S�.�m�e�r�g�e�(�[�]�,�e�.�c�h�i�l�d�N�o�d�e�s�)�)�}�}�,�f�u�n�c�t�i�o�n�(�r�,�i�)�{�S�.�f�n�[�r�]�=�f�u�n�c�t�i�o�n�(�e�,�t�)�{�v�a�r� �n�=�S�.�m�a�p�(�t�h�i�s�,�i�,�e�)�;�r�e�t�u�r�n�"�U�n�t�i�l�"�!�=�=�r�.�s�l�i�c�e�(�-�5�)�&�&�(�t�=�e�)�,�t�&�&�"�s�t�r�i�n�g�"�=�=�t�y�p�e�o�f� �t�&�&�(�n�=�S�.�f�i�l�t�e�r�(�t�,�n�)�)�,�1�<�t�h�i�s�.�l�e�n�g�t�h�&�&�(�H�[�r�]�|�|�S�.�u�n�i�q�u�e�S�o�r�t�(�n�)�,�L�.�t�e�s�t�(�r�)�&�&�n�.�r�e�v�e�r�s�e�(�)�)�,�t�h�i�s�.�p�u�s�h�S�t�a�c�k�(�n�)�}�}�)�;�v�a�r� �P�=�/�[�^�\�x�2�0�\�t�\�r�\�n�\�f�]�+�/�g�;�f�u�n�c�t�i�o�n� �R�(�e�)�{�r�e�t�u�r�n� �e�}�f�u�n�c�t�i�o�n� �M�(�e�)�{�t�h�r�o�w� �e�}�f�u�n�c�t�i�o�n� �I�(�e�,�t�,�n�,�r�)�{�v�a�r� �i�;�t�r�y�{�e�&�&�m�(�i�=�e�.�p�r�o�m�i�s�e�)�?�i�.�c�a�l�l�(�e�)�.�d�o�n�e�(�t�)�.�f�a�i�l�(�n�)�:�e�&�&�m�(�i�=�e�.�t�h�e�n�)�?�i�.�c�a�l�l�(�e�,�t�,�n�)�:�t�.�a�p�p�l�y�(�v�o�i�d� �0�,�[�e�]�.�s�l�i�c�e�(�r�)�)�}�c�a�t�c�h�(�e�)�{�n�.�a�p�p�l�y�(�v�o�i�d� �0�,�[�e�]�)�}�}�S�.�C�a�l�l�b�a�c�k�s�=�f�u�n�c�t�i�o�n�(�r�)�{�v�a�r� �e�,�n�;�r�=�"�s�t�r�i�n�g�"�=�=�t�y�p�e�o�f� �r�?�(�e�=�r�,�n�=�{�}�,�S�.�e�a�c�h�(�e�.�m�a�t�c�h�(�P�)�|�|�[�]�,�f�u�n�c�t�i�o�n�(�e�,�t�)�{�n�[�t�]�=�!�0�}�)�,�n�)�:�S�.�e�x�t�e�n�d�(�{�}�,�r�)�;�v�a�r� �i�,�t�,�o�,�a�,�s�=�[�]�,�u�=�[�]�,�l�=�-�1�,�c�=�f�u�n�c�t�i�o�n�(�)�{�f�o�r�(�a�=�a�|�|�r�.�o�n�c�e�,�o�=�i�=�!�0�;�u�.�l�e�n�g�t�h�;�l�=�-�1�)�{�t�=�u�.�s�h�i�f�t�(�)�;�w�h�i�l�e�(�+�+�l�<�s�.�l�e�n�g�t�h�)�!�1�=�=�=�s�[�l�]�.�a�p�p�l�y�(�t�[�0�]�,�t�[�1�]�)�&�&�r�.�s�t�o�p�O�n�F�a�l�s�e�&�&�(�l�=�s�.�l�e�n�g�t�h�,�t�=�!�1�)�}�r�.�m�e�m�o�r�y�|�|�(�t�=�!�1�)�,�i�=�!�1�,�a�&�&�(�s�=�t�?�[�]�:�"�"�)�}�,�f�=�{�a�d�d�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �s�&�&�(�t�&�&�!�i�&�&�(�l�=�s�.�l�e�n�g�t�h�-�1�,�u�.�p�u�s�h�(�t�)�)�,�f�u�n�c�t�i�o�n� �n�(�e�)�{�S�.�e�a�c�h�(�e�,�f�u�n�c�t�i�o�n�(�e�,�t�)�{�m�(�t�)�?�r�.�u�n�i�q�u�e�&�&�f�.�h�a�s�(�t�)�|�|�s�.�p�u�s�h�(�t�)�:�t�&�&�t�.�l�e�n�g�t�h�&�&�"�s�t�r�i�n�g�"�!�=�=�w�(�t�)�&�&�n�(�t�)�}�)�}�(�a�r�g�u�m�e�n�t�s�)�,�t�&�&�!�i�&�&�c�(�)�)�,�t�h�i�s�}�,�r�e�m�o�v�e�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �S�.�e�a�c�h�(�a�r�g�u�m�e�n�t�s�,�f�u�n�c�t�i�o�n�(�e�,�t�)�{�v�a�r� �n�;�w�h�i�l�e�(�-�1�<�(�n�=�S�.�i�n�A�r�r�a�y�(�t�,�s�,�n�)�)�)�s�.�s�p�l�i�c�e�(�n�,�1�)�,�n�<�=�l�&�&�l�-�-�}�)�,�t�h�i�s�}�,�h�a�s�:�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �e�?�-�1�<�S�.�i�n�A�r�r�a�y�(�e�,�s�)�:�0�<�s�.�l�e�n�g�t�h�}�,�e�m�p�t�y�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �s�&�&�(�s�=�[�]�)�,�t�h�i�s�}�,�d�i�s�a�b�l�e�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �a�=�u�=�[�]�,�s�=�t�=�"�"�,�t�h�i�s�}�,�d�i�s�a�b�l�e�d�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n�!�s�}�,�l�o�c�k�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �a�=�u�=�[�]�,�t�|�|�i�|�|�(�s�=�t�=�"�"�)�,�t�h�i�s�}�,�l�o�c�k�e�d�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n�!�!�a�}�,�f�i�r�e�W�i�t�h�:�f�u�n�c�t�i�o�n�(�e�,�t�)�{�r�e�t�u�r�n� �a�|�|�(�t�=�[�e�,�(�t�=�t�|�|�[�]�)�.�s�l�i�c�e�?�t�.�s�l�i�c�e�(�)�:�t�]�,�u�.�p�u�s�h�(�t�)�,�i�|�|�c�(�)�)�,�t�h�i�s�}�,�f�i�r�e�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �f�.�f�i�r�e�W�i�t�h�(�t�h�i�s�,�a�r�g�u�m�e�n�t�s�)�,�t�h�i�s�}�,�f�i�r�e�d�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n�!�!�o�}�}�;�r�e�t�u�r�n� �f�}�,�S�.�e�x�t�e�n�d�(�{�D�e�f�e�r�r�e�d�:�f�u�n�c�t�i�o�n�(�e�)�{�v�a�r� �o�=�[�[�"�n�o�t�i�f�y�"�,�"�p�r�o�g�r�e�s�s�"�,�S�.�C�a�l�l�b�a�c�k�s�(�"�m�e�m�o�r�y�"�)�,�S�.�C�a�l�l�b�a�c�k�s�(�"�m�e�m�o�r�y�"�)�,�2�]�,�[�"�r�e�s�o�l�v�e�"�,�"�d�o�n�e�"�,�S�.�C�a�l�l�b�a�c�k�s�(�"�o�n�c�e� �m�e�m�o�r�y�"�)�,�S�.�C�a�l�l�b�a�c�k�s�(�"�o�n�c�e� �m�e�m�o�r�y�"�)�,�0�,�"�r�e�s�o�l�v�e�d�"�]�,�[�"�r�e�j�e�c�t�"�,�"�f�a�i�l�"�,�S�.�C�a�l�l�b�a�c�k�s�(�"�o�n�c�e� �m�e�m�o�r�y�"�)�,�S�.�C�a�l�l�b�a�c�k�s�(�"�o�n�c�e� �m�e�m�o�r�y�"�)�,�1�,�"�r�e�j�e�c�t�e�d�"�]�]�,�i�=�"�p�e�n�d�i�n�g�"�,�a�=�{�s�t�a�t�e�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �i�}�,�a�l�w�a�y�s�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �s�.�d�o�n�e�(�a�r�g�u�m�e�n�t�s�)�.�f�a�i�l�(�a�r�g�u�m�e�n�t�s�)�,�t�h�i�s�}�,�"�c�a�t�c�h�"�:�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �a�.�t�h�e�n�(�n�u�l�l�,�e�)�}�,�p�i�p�e�:�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �i�=�a�r�g�u�m�e�n�t�s�;�r�e�t�u�r�n� �S�.�D�e�f�e�r�r�e�d�(�f�u�n�c�t�i�o�n�(�r�)�{�S�.�e�a�c�h�(�o�,�f�u�n�c�t�i�o�n�(�e�,�t�)�{�v�a�r� �n�=�m�(�i�[�t�[�4�]�]�)�&�&�i�[�t�[�4�]�]�;�s�[�t�[�1�]�]�(�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �e�=�n�&�&�n�.�a�p�p�l�y�(�t�h�i�s�,�a�r�g�u�m�e�n�t�s�)�;�e�&�&�m�(�e�.�p�r�o�m�i�s�e�)�?�e�.�p�r�o�m�i�s�e�(�)�.�p�r�o�g�r�e�s�s�(�r�.�n�o�t�i�f�y�)�.�d�o�n�e�(�r�.
2�r�e�s�o�l�v�e�)�.�f�a�i�l�(�r�.�r�e�j�e�c�t�)�:�r�[�t�[�0�]�+�"�W�i�t�h�"�]�(�t�h�i�s�,�n�?�[�e�]�:�a�r�g�u�m�e�n�t�s�)�}�)�}�)�,�i�=�n�u�l�l�}�)�.�p�r�o�m�i�s�e�(�)�}�,�t�h�e�n�:�f�u�n�c�t�i�o�n�(�t�,�n�,�r�)�{�v�a�r� �u�=�0�;�f�u�n�c�t�i�o�n� �l�(�i�,�o�,�a�,�s�)�{�r�e�t�u�r�n� �f�u�n�c�t�i�o�n�(�)�{�v�a�r� �n�=�t�h�i�s�,�r�=�a�r�g�u�m�e�n�t�s�,�e�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �e�,�t�;�i�f�(�!�(�i�<�u�)�)�{�i�f�(�(�e�=�a�.�a�p�p�l�y�(�n�,�r�)�)�=�=�=�o�.�p�r�o�m�i�s�e�(�)�)�t�h�r�o�w� �n�e�w� �T�y�p�e�E�r�r�o�r�(�"�T�h�e�n�a�b�l�e� �s�e�l�f�-�r�e�s�o�l�u�t�i�o�n�"�)�;�t�=�e�&�&�(�"�o�b�j�e�c�t�"�=�=�t�y�p�e�o�f� �e�|�|�"�f�u�n�c�t�i�o�n�"�=�=�t�y�p�e�o�f� �e�)�&�&�e�.�t�h�e�n�,�m�(�t�)�?�s�?�t�.�c�a�l�l�(�e�,�l�(�u�,�o�,�R�,�s�)�,�l�(�u�,�o�,�M�,�s�)�)�:�(�u�+�+�,�t�.�c�a�l�l�(�e�,�l�(�u�,�o�,�R�,�s�)�,�l�(�u�,�o�,�M�,�s�)�,�l�(�u�,�o�,�R�,�o�.�n�o�t�i�f�y�W�i�t�h�)�)�)�:�(�a�!�=�=�R�&�&�(�n�=�v�o�i�d� �0�,�r�=�[�e�]�)�,�(�s�|�|�o�.�r�e�s�o�l�v�e�W�i�t�h�)�(�n�,�r�)�)�}�}�,�t�=�s�?�e�:�f�u�n�c�t�i�o�n�(�)�{�t�r�y�{�e�(�)�}�c�a�t�c�h�(�e�)�{�S�.�D�e�f�e�r�r�e�d�.�e�x�c�e�p�t�i�o�n�H�o�o�k�&�&�S�.�D�e�f�e�r�r�e�d�.�e�x�c�e�p�t�i�o�n�H�o�o�k�(�e�,�t�.�s�t�a�c�k�T�r�a�c�e�)�,�u�<�=�i�+�1�&�&�(�a�!�=�=�M�&�&�(�n�=�v�o�i�d� �0�,�r�=�[�e�]�)�,�o�.�r�e�j�e�c�t�W�i�t�h�(�n�,�r�)�)�}�}�;�i�?�t�(�)�:�(�S�.�D�e�f�e�r�r�e�d�.�g�e�t�S�t�a�c�k�H�o�o�k�&�&�(�t�.�s�t�a�c�k�T�r�a�c�e�=�S�.�D�e�f�e�r�r�e�d�.�g�e�t�S�t�a�c�k�H�o�o�k�(�)�)�,�C�.�s�e�t�T�i�m�e�o�u�t�(�t�)�)�}�}�r�e�t�u�r�n� �S�.�D�e�f�e�r�r�e�d�(�f�u�n�c�t�i�o�n�(�e�)�{�o�[�0�]�[�3�]�.�a�d�d�(�l�(�0�,�e�,�m�(�r�)�?�r�:�R�,�e�.�n�o�t�i�f�y�W�i�t�h�)�)�,�o�[�1�]�[�3�]�.�a�d�d�(�l�(�0�,�e�,�m�(�t�)�?�t�:�R�)�)�,�o�[�2�]�[�3�]�.�a�d�d�(�l�(�0�,�e�,�m�(�n�)�?�n�:�M�)�)�}�)�.�p�r�o�m�i�s�e�(�)�}�,�p�r�o�m�i�s�e�:�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �n�u�l�l�!�=�e�?�S�.�e�x�t�e�n�d�(�e�,�a�)�:�a�}�}�,�s�=�{�}�;�r�e�t�u�r�n� �S�.�e�a�c�h�(�o�,�f�u�n�c�t�i�o�n�(�e�,�t�)�{�v�a�r� �n�=�t�[�2�]�,�r�=�t�[�5�]�;�a�[�t�[�1�]�]�=�n�.�a�d�d�,�r�&�&�n�.�a�d�d�(�f�u�n�c�t�i�o�n�(�)�{�i�=�r�}�,�o�[�3�-�e�]�[�2�]�.�d�i�s�a�b�l�e�,�o�[�3�-�e�]�[�3�]�.�d�i�s�a�b�l�e�,�o�[�0�]�[�2�]�.�l�o�c�k�,�o�[�0�]�[�3�]�.�l�o�c�k�)�,�n�.�a�d�d�(�t�[�3�]�.�f�i�r�e�)�,�s�[�t�[�0�]�]�=�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �s�[�t�[�0�]�+�"�W�i�t�h�"�]�(�t�h�i�s�=�=�=�s�?�v�o�i�d� �0�:�t�h�i�s�,�a�r�g�u�m�e�n�t�s�)�,�t�h�i�s�}�,�s�[�t�[�0�]�+�"�W�i�t�h�"�]�=�n�.�f�i�r�e�W�i�t�h�}�)�,�a�.�p�r�o�m�i�s�e�(�s�)�,�e�&�&�e�.�c�a�l�l�(�s�,�s�)�,�s�}�,�w�h�e�n�:�f�u�n�c�t�i�o�n�(�e�)�{�v�a�r� �n�=�a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�,�t�=�n�,�r�=�A�r�r�a�y�(�t�)�,�i�=�s�.�c�a�l�l�(�a�r�g�u�m�e�n�t�s�)�,�o�=�S�.�D�e�f�e�r�r�e�d�(�)�,�a�=�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �f�u�n�c�t�i�o�n�(�e�)�{�r�[�t�]�=�t�h�i�s�,�i�[�t�]�=�1�<�a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�?�s�.�c�a�l�l�(�a�r�g�u�m�e�n�t�s�)�:�e�,�-�-�n�|�|�o�.�r�e�s�o�l�v�e�W�i�t�h�(�r�,�i�)�}�}�;�i�f�(�n�<�=�1�&�&�(�I�(�e�,�o�.�d�o�n�e�(�a�(�t�)�)�.�r�e�s�o�l�v�e�,�o�.�r�e�j�e�c�t�,�!�n�)�,�"�p�e�n�d�i�n�g�"�=�=�=�o�.�s�t�a�t�e�(�)�|�|�m�(�i�[�t�]�&�&�i�[�t�]�.�t�h�e�n�)�)�)�r�e�t�u�r�n� �o�.�t�h�e�n�(�)�;�w�h�i�l�e�(�t�-�-�)�I�(�i�[�t�]�,�a�(�t�)�,�o�.�r�e�j�e�c�t�)�;�r�e�t�u�r�n� �o�.�p�r�o�m�i�s�e�(�)�}�}�)�;�v�a�r� �W�=�/�^�(�E�v�a�l�|�I�n�t�e�r�n�a�l�|�R�a�n�g�e�|�R�e�f�e�r�e�n�c�e�|�S�y�n�t�a�x�|�T�y�p�e�|�U�R�I�)�E�r�r�o�r�$�/�;�S�.�D�e�f�e�r�r�e�d�.�e�x�c�e�p�t�i�o�n�H�o�o�k�=�f�u�n�c�t�i�o�n�(�e�,�t�)�{�C�.�c�o�n�s�o�l�e�&�&�C�.�c�o�n�s�o�l�e�.�w�a�r�n�&�&�e�&�&�W�.�t�e�s�t�(�e�.�n�a�m�e�)�&�&�C�.�c�o�n�s�o�l�e�.�w�a�r�n�(�"�j�Q�u�e�r�y�.�D�e�f�e�r�r�e�d� �e�x�c�e�p�t�i�o�n�:� �"�+�e�.�m�e�s�s�a�g�e�,�e�.�s�t�a�c�k�,�t�)�}�,�S�.�r�e�a�d�y�E�x�c�e�p�t�i�o�n�=�f�u�n�c�t�i�o�n�(�e�)�{�C�.�s�e�t�T�i�m�e�o�u�t�(�f�u�n�c�t�i�o�n�(�)�{�t�h�r�o�w� �e�}�)�}�;�v�a�r� �F�=�S�.�D�e�f�e�r�r�e�d�(�)�;�f�u�n�c�t�i�o�n� �B�(�)�{�E�.�r�e�m�o�v�e�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�D�O�M�C�o�n�t�e�n�t�L�o�a�d�e�d�"�,�B�)�,�C�.�r�e�m�o�v�e�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�l�o�a�d�"�,�B�)�,�S�.�r�e�a�d�y�(�)�}�S�.�f�n�.�r�e�a�d�y�=�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �F�.�t�h�e�n�(�e�)�[�"�c�a�t�c�h�"�]�(�f�u�n�c�t�i�o�n�(�e�)�{�S�.�r�e�a�d�y�E�x�c�e�p�t�i�o�n�(�e�)�}�)�,�t�h�i�s�}�,�S�.�e�x�t�e�n�d�(�{�i�s�R�e�a�d�y�:�!�1�,�r�e�a�d�y�W�a�i�t�:�1�,�r�e�a�d�y�:�f�u�n�c�t�i�o�n�(�e�)�{�(�!�0�=�=�=�e�?�-�-�S�.�r�e�a�d�y�W�a�i�t�:�S�.�i�s�R�e�a�d�y�)�|�|�(�S�.�i�s�R�e�a�d�y�=�!�0�)�!�=�=�e�&�&�0�<�-�-�S�.�r�e�a�d�y�W�a�i�t�|�|�F�.�r�e�s�o�l�v�e�W�i�t�h�(�E�,�[�S�]�)�}�}�)�,�S�.�r�e�a�d�y�.�t�h�e�n�=�F�.�t�h�e�n�,�"�c�o�m�p�l�e�t�e�"�=�=�=�E�.�r�e�a�d�y�S�t�a�t�e�|�|�"�l�o�a�d�i�n�g�"�!�=�=�E�.�r�e�a�d�y�S�t�a�t�e�&�&�!�E�.�d�o�c�u�m�e�n�t�E�l�e�m�e�n�t�.�d�o�S�c�r�o�l�l�?�C�.�s�e�t�T�i�m�e�o�u�t�(�S�.�r�e�a�d�y�)�:�(�E�.�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�D�O�M�C�o�n�t�e�n�t�L�o�a�d�e�d�"�,�B�)�,�C�.�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�(�"�l�o�a�d�"�,�B�)�)�;�v�a�r� �$�=�f�u�n�c�t�i�o�n�(�e�,�t�,�n�,�r�,�i�,�o�,�a�)�{�v�a�r� �s�=�0�,�u�=�e�.�l�e�n�g�t�h�,�l�=�n�u�l�l�=�=�n�;�i�f�(�"�o�b�j�e�c�t�"�=�=�=�w�(�n�)�)�f�o�r�(�s� �i�n� �i�=�!�0�,�n�)�$�(�e�,�t�,�s�,�n�[�s�]�,�!�0�,�o�,�a�)�;�e�l�s�e� �i�f�(�v�o�i�d� �0�!�=�=�r�&�&�(�i�=�!�0�,�m�(�r�)�|�|�(�a�=�!�0�)�,�l�&�&�(�a�?�(�t�.�c�a�l�l�(�e�,�r�)�,�t�=�n�u�l�l�)�:�(�l�=�t�,�t�=�f�u�n�c�t�i�o�n�(�e�,�t�,�n�)�{�r�e�t�u�r�n� �l�.�c�a�l�l�(�S�(�e�)�,�n�)�}�)�)�,�t�)�)�f�o�r�(�;�s�<�u�;�s�+�+�)�t�(�e�[�s�]�,�n�,�a�?�r�:�r�.�c�a�l�l�(�e�[�s�]�,�s�,�t�(�e�[�s�]�,�n�)�)�)�;�r�e�t�u�r�n� �i�?�e�:�l�?�t�.�c�a�l�l�(�e�)�:�u�?�t�(�e�[�0�]�,�n�)�:�o�}�,�_�=�/�^�-�m�s�-�/�,�z�=�/�-�(�[�a�-�z�]�)�/�g�;�f�u�n�c�t�i�o�n� �U�(�e�,�t�)�{�r�e�t�u�r�n� �t�.�t�o�U�p�p�e�r�C�a�s�e�(�)�}�f�u�n�c�t�i�o�n� �X�(�e�)�{�r�e�t�u�r�n� �e�.�r�e�p�l�a�c�e�(�_�,�"�m�s�-�"�)�.�r�e�p�l�a�c�e�(�z�,�U�)�}�v�a�r� �V�=�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �1�=�=�=�e�.�n�o�d�e�T�y�p�e�|�|�9�=�=�=�e�.�n�o�d�e�T�y�p�e�|�|�!�+�e�.�n�o�d�e�T�y�p�e�}�;�f�u�n�c�t�i�o�n� �G�(�)�{�t�h�i�s�.�e�x�p�a�n�d�o�=�S�.�e�x�p�a�n�d�o�+�G�.�u�i�d�+�+�}�G�.�u�i�d�=�1�,�G�.�p�r�o�t�o�t�y�p�e�=�{�c�a�c�h�e�:�f�u�n�c�t�i�o�n�(�e�)�{�v�a�r� �t�=�e�[�t�h�i�s�.�e�x�p�a�n�d�o�]�;�r�e�t�u�r�n� �t�|�|�(�t�=�{�}�,�V�(�e�)�&�&�(�e�.�n�o�d�e�T�y�p�e�?�e�[�t�h�i�s�.�e�x�p�a�n�d�o�]�=�t�:�O�b�j�e�c�t�.�d�e�f�i�n�e�P�r�o�p�e�r�t�y�(�e�,�t�h�i�s�.�e�x�p�a�n�d�o�,�{�v�a�l�u�e�:�t�,�c�o�n�f�i�g�u�r�a�b�l�e�:�!�0�}�)�)�)�,�t�}�,�s�e�t�:�f�u�n�c�t�i�o�n�(�e�,�t�,�n�)�{�v�a�r� �r�,�i�=�t�h�i�s�.�c�a�c�h�e�(�e�)�;�i�f�(�"�s�t�r�i�n�g�"�=�=�t�y�p�e�o�f� �t�)�i�[�X�(�t�)�]�=�n�;�e�l�s�e� �f�o�r�(�r� �i�n� �t�)�i�[�X�(�r�)�]�=�t�[�r�]�;�r�e�t�u�r�n� �i�}�,�g�e�t�:�f�u�n�c�t�i�o�n�(�e�,�t�)�{�r�e�t�u�r�n� �v�o�i�d� �0�=�=�=�t�?�t�h�i�s�.�c�a�c�h�e�(�e�)�:�e�[�t�h�i�s�.�e�x�p�a�n�d�o�]�&�&�e�[�t�h�i�s�.�e�x�p�a�n�d�o�]�[�X�(�t�)�]�}�,�a�c�c�e�s�s�:�f�u�n�c�t�i�o�n�(�e�,�t�,�n�)�{�r�e�t�u�r�n� �v�o�i�d� �0�=�=�=�t�|�|�t�&�&�"�s�t�r�i�n�g�"�=�=�t�y�p�e�o�f� �t�&�&�v�o�i�d� �0�=�=�=�n�?�t�h�i�s�.�g�e�t�(�e�,�t�)�:�(�t�h�i�s�.�s�e�t�(�e�,�t�,�n�)�,�v�o�i�d� �0�!�=�=�n�?�n�:�t�)�}�,�r�e�m�o�v�e�:�f�u�n�c�t�i�o�n�(�e�,�t�)�{�v�a�r� �n�,�r�=�e�[�t�h�i�s�.�e�x�p�a�n�d�o�]�;�i�f�(�v�o�i�d� �0�!�=�=�r�)�{�i�f�(�v�o�i�d� �0�!�=�=�t�)�{�n�=�(�t�=�A�r�r�a�y�.�i�s�A�r�r�a�y�(�t�)�?�t�.�m�a�p�(�X�)�:�(�t�=�X�(�t�)�)�i�n� �r�?�[�t�]�:�t�.�m�a�t�c�h�(�P�)�|�|�[�]�)�.�l�e�n�g�t�h�;�w�h�i�l�e�(�n�-�-�)�d�e�l�e�t�e� �r�[�t�[�n�]�]�}�(�v�o�i�d� �0�=�=�=�t�|�|�S�.�i�s�E�m�p�t�y�O�b�j�e�c�t�(�r�)�)�&�&�(�e�.�n�o�d�e�T�y�p�e�?�e�[�t�h�i�s�.�e�x�p�a�n�d�o�]�=�v�o�i�d� �0�:�d�e�l�e�t�e� �e�[�t�h�i�s�.�e�x�p�a�n�d�o�]�)�}�}�,�h�a�s�D�a�t�a�:�f�u�n�c�t�i�o�n�(�e�)�{�v�a�r� �t�=�e�[�t�h�i�s�.�e�x�p�a�n�d�o�]�;�r�e�t�u�r�n� �v�o�i�d� �0�!�=�=�t�&�&�!�S�.�i�s�E�m�p�t�y�O�b�j�e�c�t�(�t�)�}�}�;�v�a�r� �Y�=�n�e�w� �G�,�Q�=�n�e�w� �G�,�J�=�/�^�(�?�:�\�{�[�\�w�\�W�]�*�\�}�|�\�[�[�\�w�\�W�]�*�\�]�)�$�/�,�K�=�/�[�A�-�Z�]�/�g�;�f�u�n�c�t�i�o�n� �Z�(�e�,�t�,�n�)�{�v�a�r� �r�,�i�;�i�f�(�v�o�i�d� �0�=�=�=�n�&�&�1�=�=�=�e�.�n�o�d�e�T�y�p�e�)�i�f�(�r�=�"�d�a�t�a�-�"�+�t�.�r�e�p�l�a�c�e�(�K�,�"�-�$�&�"�)�.�t�o�L�o�w�e�r�C�a�s�e�(�)�,�"�s�t�r�i�n�g�"�=�=�t�y�p�e�o�f�(�n�=�e�.�g�e�t�A�t�t�r�i�b�u�t�e�(�r�)�)�)�{�t�r�y�{�n�=�"�t�r�u�e�"�=�=�=�(�i�=�n�)�|�|�"�f�a�l�s�e�"�!�=�=�i�&�&�(�"�n�u�l�l�"�=�=�=�i�?�n�u�l�l�:�i�=�=�=�+�i�+�"�"�?�+�i�:�J�.�t�e�s�t�(�i�)�?�J�S�O�N�.�p�a�r�s�e�(�i�)�:�i�)�}�c�a�t�c�h�(�e�)�{�}�Q�.�s�e�t�(�e�,�t�,�n�)�}�e�l�s�e� �n�=�v�o�i�d� �0�;�r�e�t�u�r�n� �n�}�S�.�e�x�t�e�n�d�(�{�h�a�s�D�a�t�a�:�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �Q�.�h�a�s�D�a�t�a�(�e�)�|�|�Y�.�h�a�s�D�a�t�a�(�e�)�}�,�d�a�t�a�:�f�u�n�c�t�i�o�n�(�e�,�t�,�n�)�{�r�e�t�u�r�n� �Q�.�a�c�c�e�s�s�(�e�,�t�,�n�)�}�,�r�e�m�o�v�e�D�a�t�a�:�f�u�n�c�t�i�o�n�(�e�,�t�)�{�Q�.�r�e�m�o�v�e�(�e�,�t�)�}�,�_�d�a�t�a�:�f�u�n�c�t�i�o�n�(�e�,�t�,�n�)�{�r�e�t�u�r�n� �Y�.�a�c�c�e�s�s�(�e�,�t�,�n�)�}
2�,�_�r�e�m�o�v�e�D�a�t�a�:�f�u�n�c�t�i�o�n�(�e�,�t�)�{�Y�.�r�e�m�o�v�e�(�e�,�t�)�}�}�)�,�S�.�f�n�.�e�x�t�e�n�d�(�{�d�a�t�a�:�f�u�n�c�t�i�o�n�(�n�,�e�)�{�v�a�r� �t�,�r�,�i�,�o�=�t�h�i�s�[�0�]�,�a�=�o�&�&�o�.�a�t�t�r�i�b�u�t�e�s�;�i�f�(�v�o�i�d� �0�=�=�=�n�)�{�i�f�(�t�h�i�s�.�l�e�n�g�t�h�&�&�(�i�=�Q�.�g�e�t�(�o�)�,�1�=�=�=�o�.�n�o�d�e�T�y�p�e�&�&�!�Y�.�g�e�t�(�o�,�"�h�a�s�D�a�t�a�A�t�t�r�s�"�)�)�)�{�t�=�a�.�l�e�n�g�t�h�;�w�h�i�l�e�(�t�-�-�)�a�[�t�]�&�&�0�=�=�=�(�r�=�a�[�t�]�.�n�a�m�e�)�.�i�n�d�e�x�O�f�(�"�d�a�t�a�-�"�)�&�&�(�r�=�X�(�r�.�s�l�i�c�e�(�5�)�)�,�Z�(�o�,�r�,�i�[�r�]�)�)�;�Y�.�s�e�t�(�o�,�"�h�a�s�D�a�t�a�A�t�t�r�s�"�,�!�0�)�}�r�e�t�u�r�n� �i�}�r�e�t�u�r�n�"�o�b�j�e�c�t�"�=�=�t�y�p�e�o�f� �n�?�t�h�i�s�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�)�{�Q�.�s�e�t�(�t�h�i�s�,�n�)�}�)�:�$�(�t�h�i�s�,�f�u�n�c�t�i�o�n�(�e�)�{�v�a�r� �t�;�i�f�(�o�&�&�v�o�i�d� �0�=�=�=�e�)�r�e�t�u�r�n� �v�o�i�d� �0�!�=�=�(�t�=�Q�.�g�e�t�(�o�,�n�)�)�?�t�:�v�o�i�d� �0�!�=�=�(�t�=�Z�(�o�,�n�)�)�?�t�:�v�o�i�d� �0�;�t�h�i�s�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�)�{�Q�.�s�e�t�(�t�h�i�s�,�n�,�e�)�}�)�}�,�n�u�l�l�,�e�,�1�<�a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�,�n�u�l�l�,�!�0�)�}�,�r�e�m�o�v�e�D�a�t�a�:�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �t�h�i�s�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�)�{�Q�.�r�e�m�o�v�e�(�t�h�i�s�,�e�)�}�)�}�}�)�,�S�.�e�x�t�e�n�d�(�{�q�u�e�u�e�:�f�u�n�c�t�i�o�n�(�e�,�t�,�n�)�{�v�a�r� �r�;�i�f�(�e�)�r�e�t�u�r�n� �t�=�(�t�|�|�"�f�x�"�)�+�"�q�u�e�u�e�"�,�r�=�Y�.�g�e�t�(�e�,�t�)�,�n�&�&�(�!�r�|�|�A�r�r�a�y�.�i�s�A�r�r�a�y�(�n�)�?�r�=�Y�.�a�c�c�e�s�s�(�e�,�t�,�S�.�m�a�k�e�A�r�r�a�y�(�n�)�)�:�r�.�p�u�s�h�(�n�)�)�,�r�|�|�[�]�}�,�d�e�q�u�e�u�e�:�f�u�n�c�t�i�o�n�(�e�,�t�)�{�t�=�t�|�|�"�f�x�"�;�v�a�r� �n�=�S�.�q�u�e�u�e�(�e�,�t�)�,�r�=�n�.�l�e�n�g�t�h�,�i�=�n�.�s�h�i�f�t�(�)�,�o�=�S�.�_�q�u�e�u�e�H�o�o�k�s�(�e�,�t�)�;�"�i�n�p�r�o�g�r�e�s�s�"�=�=�=�i�&�&�(�i�=�n�.�s�h�i�f�t�(�)�,�r�-�-�)�,�i�&�&�(�"�f�x�"�=�=�=�t�&�&�n�.�u�n�s�h�i�f�t�(�"�i�n�p�r�o�g�r�e�s�s�"�)�,�d�e�l�e�t�e� �o�.�s�t�o�p�,�i�.�c�a�l�l�(�e�,�f�u�n�c�t�i�o�n�(�)�{�S�.�d�e�q�u�e�u�e�(�e�,�t�)�}�,�o�)�)�,�!�r�&�&�o�&�&�o�.�e�m�p�t�y�.�f�i�r�e�(�)�}�,�_�q�u�e�u�e�H�o�o�k�s�:�f�u�n�c�t�i�o�n�(�e�,�t�)�{�v�a�r� �n�=�t�+�"�q�u�e�u�e�H�o�o�k�s�"�;�r�e�t�u�r�n� �Y�.�g�e�t�(�e�,�n�)�|�|�Y�.�a�c�c�e�s�s�(�e�,�n�,�{�e�m�p�t�y�:�S�.�C�a�l�l�b�a�c�k�s�(�"�o�n�c�e� �m�e�m�o�r�y�"�)�.�a�d�d�(�f�u�n�c�t�i�o�n�(�)�{�Y�.�r�e�m�o�v�e�(�e�,�[�t�+�"�q�u�e�u�e�"�,�n�]�)�}�)�}�)�}�}�)�,�S�.�f�n�.�e�x�t�e�n�d�(�{�q�u�e�u�e�:�f�u�n�c�t�i�o�n�(�t�,�n�)�{�v�a�r� �e�=�2�;�r�e�t�u�r�n�"�s�t�r�i�n�g�"�!�=�t�y�p�e�o�f� �t�&�&�(�n�=�t�,�t�=�"�f�x�"�,�e�-�-�)�,�a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�<�e�?�S�.�q�u�e�u�e�(�t�h�i�s�[�0�]�,�t�)�:�v�o�i�d� �0�=�=�=�n�?�t�h�i�s�:�t�h�i�s�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �e�=�S�.�q�u�e�u�e�(�t�h�i�s�,�t�,�n�)�;�S�.�_�q�u�e�u�e�H�o�o�k�s�(�t�h�i�s�,�t�)�,�"�f�x�"�=�=�=�t�&�&�"�i�n�p�r�o�g�r�e�s�s�"�!�=�=�e�[�0�]�&�&�S�.�d�e�q�u�e�u�e�(�t�h�i�s�,�t�)�}�)�}�,�d�e�q�u�e�u�e�:�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �t�h�i�s�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�)�{�S�.�d�e�q�u�e�u�e�(�t�h�i�s�,�e�)�}�)�}�,�c�l�e�a�r�Q�u�e�u�e�:�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �t�h�i�s�.�q�u�e�u�e�(�e�|�|�"�f�x�"�,�[�]�)�}�,�p�r�o�m�i�s�e�:�f�u�n�c�t�i�o�n�(�e�,�t�)�{�v�a�r� �n�,�r�=�1�,�i�=�S�.�D�e�f�e�r�r�e�d�(�)�,�o�=�t�h�i�s�,�a�=�t�h�i�s�.�l�e�n�g�t�h�,�s�=�f�u�n�c�t�i�o�n�(�)�{�-�-�r�|�|�i�.�r�e�s�o�l�v�e�W�i�t�h�(�o�,�[�o�]�)�}�;�"�s�t�r�i�n�g�"�!�=�t�y�p�e�o�f� �e�&�&�(�t�=�e�,�e�=�v�o�i�d� �0�)�,�e�=�e�|�|�"�f�x�"�;�w�h�i�l�e�(�a�-�-�)�(�n�=�Y�.�g�e�t�(�o�[�a�]�,�e�+�"�q�u�e�u�e�H�o�o�k�s�"�)�)�&�&�n�.�e�m�p�t�y�&�&�(�r�+�+�,�n�.�e�m�p�t�y�.�a�d�d�(�s�)�)�;�r�e�t�u�r�n� �s�(�)�,�i�.�p�r�o�m�i�s�e�(�t�)�}�}�)�;�v�a�r� �e�e�=�/�[�+�-�]�?�(�?�:�\�d�*�\�.�|�)�\�d�+�(�?�:�[�e�E�]�[�+�-�]�?�\�d�+�|�)�/�.�s�o�u�r�c�e�,�t�e�=�n�e�w� �R�e�g�E�x�p�(�"�^�(�?�:�(�[�+�-�]�)�=�|�)�(�"�+�e�e�+�"�)�(�[�a�-�z�%�]�*�)�$�"�,�"�i�"�)�,�n�e�=�[�"�T�o�p�"�,�"�R�i�g�h�t�"�,�"�B�o�t�t�o�m�"�,�"�L�e�f�t�"�]�,�r�e�=�E�.�d�o�c�u�m�e�n�t�E�l�e�m�e�n�t�,�i�e�=�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �S�.�c�o�n�t�a�i�n�s�(�e�.�o�w�n�e�r�D�o�c�u�m�e�n�t�,�e�)�}�,�o�e�=�{�c�o�m�p�o�s�e�d�:�!�0�}�;�r�e�.�g�e�t�R�o�o�t�N�o�d�e�&�&�(�i�e�=�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �S�.�c�o�n�t�a�i�n�s�(�e�.�o�w�n�e�r�D�o�c�u�m�e�n�t�,�e�)�|�|�e�.�g�e�t�R�o�o�t�N�o�d�e�(�o�e�)�=�=�=�e�.�o�w�n�e�r�D�o�c�u�m�e�n�t�}�)�;�v�a�r� �a�e�=�f�u�n�c�t�i�o�n�(�e�,�t�)�{�r�e�t�u�r�n�"�n�o�n�e�"�=�=�=�(�e�=�t�|�|�e�)�.�s�t�y�l�e�.�d�i�s�p�l�a�y�|�|�"�"�=�=�=�e�.�s�t�y�l�e�.�d�i�s�p�l�a�y�&�&�i�e�(�e�)�&�&�"�n�o�n�e�"�=�=�=�S�.�c�s�s�(�e�,�"�d�i�s�p�l�a�y�"�)�}�;�f�u�n�c�t�i�o�n� �s�e�(�e�,�t�,�n�,�r�)�{�v�a�r� �i�,�o�,�a�=�2�0�,�s�=�r�?�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �r�.�c�u�r�(�)�}�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �S�.�c�s�s�(�e�,�t�,�"�"�)�}�,�u�=�s�(�)�,�l�=�n�&�&�n�[�3�]�|�|�(�S�.�c�s�s�N�u�m�b�e�r�[�t�]�?�"�"�:�"�p�x�"�)�,�c�=�e�.�n�o�d�e�T�y�p�e�&�&�(�S�.�c�s�s�N�u�m�b�e�r�[�t�]�|�|�"�p�x�"�!�=�=�l�&�&�+�u�)�&�&�t�e�.�e�x�e�c�(�S�.�c�s�s�(�e�,�t�)�)�;�i�f�(�c�&�&�c�[�3�]�!�=�=�l�)�{�u�/�=�2�,�l�=�l�|�|�c�[�3�]�,�c�=�+�u�|�|�1�;�w�h�i�l�e�(�a�-�-�)�S�.�s�t�y�l�e�(�e�,�t�,�c�+�l�)�,�(�1�-�o�)�*�(�1�-�(�o�=�s�(�)�/�u�|�|�.�5�)�)�<�=�0�&�&�(�a�=�0�)�,�c�/�=�o�;�c�*�=�2�,�S�.�s�t�y�l�e�(�e�,�t�,�c�+�l�)�,�n�=�n�|�|�[�]�}�r�e�t�u�r�n� �n�&�&�(�c�=�+�c�|�|�+�u�|�|�0�,�i�=�n�[�1�]�?�c�+�(�n�[�1�]�+�1�)�*�n�[�2�]�:�+�n�[�2�]�,�r�&�&�(�r�.�u�n�i�t�=�l�,�r�.�s�t�a�r�t�=�c�,�r�.�e�n�d�=�i�)�)�,�i�}�v�a�r� �u�e�=�{�}�;�f�u�n�c�t�i�o�n� �l�e�(�e�,�t�)�{�f�o�r�(�v�a�r� �n�,�r�,�i�,�o�,�a�,�s�,�u�,�l�=�[�]�,�c�=�0�,�f�=�e�.�l�e�n�g�t�h�;�c�<�f�;
2�c�+�+�)�(�r�=�e�[�c�]�)�.�s�t�y�l�e�&�&�(�n�=�r�.�s�t�y�l�e�.�d�i�s�p�l�a�y�,�t�?�(�"�n�o�n�e�"�=�=�=�n�&�&�(�l�[�c�]�=�Y�.�g�e�t�(�r�,�"�d�i�s�p�l�a�y�"�)�|�|�n�u�l�l�,�l�[�c�]�|�|�(�r�.�s�t�y�l�e�.�d�i�s�p�l�a�y�=�"�"�)�)�,�"�"�=�=�=�r�.�s�t�y�l�e�.�d�i�s�p�l�a�y�&�&�a�e�(�r�)�&�&�(�l�[�c�]�=�(�u�=�a�=�o�=�v�o�i�d� �0�,�a�=�(�i�=�r�)�.�o�w�n�e�r�D�o�c�u�m�e�n�t�,�s�=�i�.�n�o�d�e�N�a�m�e�,�(�u�=�u�e�[�s�]�)�|�|�(�o�=�a�.�b�o�d�y�.�a�p�p�e�n�d�C�h�i�l�d�(�a�.�c�r�e�a�t�e�E�l�e�m�e�n�t�(�s�)�)�,�u�=�S�.�c�s�s�(�o�,�"�d�i�s�p�l�a�y�"�)�,�o�.�p�a�r�e�n�t�N�o�d�e�.�r�e�m�o�v�e�C�h�i�l�d�(�o�)�,�"�n�o�n�e�"�=�=�=�u�&�&�(�u�=�"�b�l�o�c�k�"�)�,�u�e�[�s�]�=�u�)�)�)�)�:�"�n�o�n�e�"�!�=�=�n�&�&�(�l�[�c�]�=�"�n�o�n�e�"�,�Y�.�s�e�t�(�r�,�"�d�i�s�p�l�a�y�"�,�n�)�)�)�;�f�o�r�(�c�=�0�;�c�<�f�;�c�+�+�)�n�u�l�l�!�=�l�[�c�]�&�&�(�e�[�c�]�.�s�t�y�l�e�.�d�i�s�p�l�a�y�=�l�[�c�]�)�;�r�e�t�u�r�n� �e�}�S�.�f�n�.�e�x�t�e�n�d�(�{�s�h�o�w�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �l�e�(�t�h�i�s�,�!�0�)�}�,�h�i�d�e�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �l�e�(�t�h�i�s�)�}�,�t�o�g�g�l�e�:�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n�"�b�o�o�l�e�a�n�"�=�=�t�y�p�e�o�f� �e�?�e�?�t�h�i�s�.�s�h�o�w�(�)�:�t�h�i�s�.�h�i�d�e�(�)�:�t�h�i�s�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�)�{�a�e�(�t�h�i�s�)�?�S�(�t�h�i�s�)�.�s�h�o�w�(�)�:�S�(�t�h�i�s�)�.�h�i�d�e�(�)�}�)�}�}�)�;�v�a�r� �c�e�,�f�e�,�p�e�=�/�^�(�?�:�c�h�e�c�k�b�o�x�|�r�a�d�i�o�)�$�/�i�,�d�e�=�/�<�(�[�a�-�z�]�[�^�\�/�\�0�>�\�x�2�0�\�t�\�r�\�n�\�f�]�*�)�/�i�,�h�e�=�/�^�$�|�^�m�o�d�u�l�e�$�|�\�/�(�?�:�j�a�v�a�|�e�c�m�a�)�s�c�r�i�p�t�/�i�;�c�e�=�E�.�c�r�e�a�t�e�D�o�c�u�m�e�n�t�F�r�a�g�m�e�n�t�(�)�.�a�p�p�e�n�d�C�h�i�l�d�(�E�.�c�r�e�a�t�e�E�l�e�m�e�n�t�(�"�d�i�v�"�)�)�,�(�f�e�=�E�.�c�r�e�a�t�e�E�l�e�m�e�n�t�(�"�i�n�p�u�t�"�)�)�.�s�e�t�A�t�t�r�i�b�u�t�e�(�"�t�y�p�e�"�,�"�r�a�d�i�o�"�)�,�f�e�.�s�e�t�A�t�t�r�i�b�u�t�e�(�"�c�h�e�c�k�e�d�"�,�"�c�h�e�c�k�e�d�"�)�,�f�e�.�s�e�t�A�t�t�r�i�b�u�t�e�(�"�n�a�m�e�"�,�"�t�"�)�,�c�e�.�a�p�p�e�n�d�C�h�i�l�d�(�f�e�)�,�y�.�c�h�e�c�k�C�l�o�n�e�=�c�e�.�c�l�o�n�e�N�o�d�e�(�!�0�)�.�c�l�o�n�e�N�o�d�e�(�!�0�)�.�l�a�s�t�C�h�i�l�d�.�c�h�e�c�k�e�d�,�c�e�.�i�n�n�e�r�H�T�M�L�=�"�<�t�e�x�t�a�r�e�a�>�x�<�/�t�e�x�t�a�r�e�a�>�"�,�y�.�n�o�C�l�o�n�e�C�h�e�c�k�e�d�=�!�!�c�e�.�c�l�o�n�e�N�o�d�e�(�!�0�)�.�l�a�s�t�C�h�i�l�d�.�d�e�f�a�u�l�t�V�a�l�u�e�,�c�e�.�i�n�n�e�r�H�T�M�L�=�"�<�o�p�t�i�o�n�>�<�/�o�p�t�i�o�n�>�"�,�y�.�o�p�t�i�o�n�=�!�!�c�e�.�l�a�s�t�C�h�i�l�d�;�v�a�r� �g�e�=�{�t�h�e�a�d�:�[�1�,�"�<�t�a�b�l�e�>�"�,�"�<�/�t�a�b�l�e�>�"�]�,�c�o�l�:�[�2�,�"�<�t�a�b�l�e�>�<�c�o�l�g�r�o�u�p�>�"�,�"�<�/�c�o�l�g�r�o�u�p�>�<�/�t�a�b�l�e�>�"�]�,�t�r�:�[�2�,�"�<�t�a�b�l�e�>�<�t�b�o�d�y�>�"�,�"�<�/�t�b�o�d�y�>�<�/�t�a�b�l�e�>�"�]�,�t�d�:�[�3�,�"�<�t�a�b�l�e�>�<�t�b�o�d�y�>�<�t�r�>�"�,�"�<�/�t�r�>�<�/�t�b�o�d�y�>�<�/�t�a�b�l�e�>�"�]�,�_�d�e�f�a�u�l�t�:�[�0�,�"�"�,�"�"�]�}�;�f�u�n�c�t�i�o�n� �v�e�(�e�,�t�)�{�v�a�r� �n�;�r�e�t�u�r�n� �n�=�"�u�n�d�e�f�i�n�e�d�"�!�=�t�y�p�e�o�f� �e�.�g�e�t�E�l�e�m�e�n�t�s�B�y�T�a�g�N�a�m�e�?�e�.�g�e�t�E�l�e�m�e�n�t�s�B�y�T�a�g�N�a�m�e�(�t�|�|�"�*�"�)�:�"�u�n�d�e�f�i�n�e�d�"�!�=�t�y�p�e�o�f� �e�.�q�u�e�r�y�S�e�l�e�c�t�o�r�A�l�l�?�e�.�q�u�e�r�y�S�e�l�e�c�t�o�r�A�l�l�(�t�|�|�"�*�"�)�:�[�]�,�v�o�i�d� �0�=�=�=�t�|�|�t�&�&�A�(�e�,�t�)�?�S�.�m�e�r�g�e�(�[�e�]�,�n�)�:�n�}�f�u�n�c�t�i�o�n� �y�e�(�e�,�t�)�{�f�o�r�(�v�a�r� �n�=�0�,�r�=�e�.�l�e�n�g�t�h�;�n�<�r�;�n�+�+�)�Y�.�s�e�t�(�e�[�n�]�,�"�g�l�o�b�a�l�E�v�a�l�"�,�!�t�|�|�Y�.�g�e�t�(�t�[�n�]�,�"�g�l�o�b�a�l�E�v�a�l�"�)�)�}�g�e�.�t�b�o�d�y�=�g�e�.�t�f�o�o�t�=�g�e�.�c�o�l�g�r�o�u�p�=�g�e�.�c�a�p�t�i�o�n�=�g�e�.�t�h�e�a�d�,�g�e�.�t�h�=�g�e�.�t�d�,�y�.�o�p�t�i�o�n�|�|�(�g�e�.�o�p�t�g�r�o�u�p�=�g�e�.�o�p�t�i�o�n�=�[�1�,�"�<�s�e�l�e�c�t� �m�u�l�t�i�p�l�e�=�'�m�u�l�t�i�p�l�e�'�>�"�,�"�<�/�s�e�l�e�c�t�>�"�]�)�;�v�a�r� �m�e�=�/�<�|�&�#�?�\�w�+�;�/�;�f�u�n�c�t�i�o�n� �x�e�(�e�,�t�,�n�,�r�,�i�)�{�f�o�r�(�v�a�r� �o�,�a�,�s�,�u�,�l�,�c�,�f�=�t�.�c�r�e�a�t�e�D�o�c�u�m�e�n�t�F�r�a�g�m�e�n�t�(�)�,�p�=�[�]�,�d�=�0�,�h�=�e�.�l�e�n�g�t�h�;�d�<�h�;�d�+�+�)�i�f�(�(�o�=�e�[�d�]�)�|�|�0�=�=�=�o�)�i�f�(�"�o�b�j�e�c�t�"�=�=�=�w�(�o�)�)�S�.�m�e�r�g�e�(�p�,�o�.�n�o�d�e�T�y�p�e�?�[�o�]�:�o�)�;�e�l�s�e� �i�f�(�m�e�.�t�e�s�t�(�o�)�)�{�a�=�a�|�|�f�.�a�p�p�e�n�d�C�h�i�l�d�(�t�.�c�r�e�a�t�e�E�l�e�m�e�n�t�(�"�d�i�v�"�)�)�,�s�=�(�d�e�.�e�x�e�c�(�o�)�|�|�[�"�"�,�"�"�]�)�[�1�]�.�t�o�L�o�w�e�r�C�a�s�e�(�)�,�u�=�g�e�[�s�]�|�|�g�e�.�_�d�e�f�a�u�l�t�,�a�.�i�n�n�e�r�H�T�M�L�=�u�[�1�]�+�S�.�h�t�m�l�P�r�e�f�i�l�t�e�r
2�(�o�)�+�u�[�2�]�,�c�=�u�[�0�]�;�w�h�i�l�e�(�c�-�-�)�a�=�a�.�l�a�s�t�C�h�i�l�d�;�S�.�m�e�r�g�e�(�p�,�a�.�c�h�i�l�d�N�o�d�e�s�)�,�(�a�=�f�.�f�i�r�s�t�C�h�i�l�d�)�.�t�e�x�t�C�o�n�t�e�n�t�=�"�"�}�e�l�s�e� �p�.�p�u�s�h�(�t�.�c�r�e�a�t�e�T�e�x�t�N�o�d�e�(�o�)�)�;�f�.�t�e�x�t�C�o�n�t�e�n�t�=�"�"�,�d�=�0�;�w�h�i�l�e�(�o�=�p�[�d�+�+�]�)�i�f�(�r�&�&�-�1�<�S�.�i�n�A�r�r�a�y�(�o�,�r�)�)�i�&�&�i�.�p�u�s�h�(�o�)�;�e�l�s�e� �i�f�(�l�=�i�e�(�o�)�,�a�=�v�e�(�f�.�a�p�p�e�n�d�C�h�i�l�d�(�o�)�,�"�s�c�r�i�p�t�"�)�,�l�&�&�y�e�(�a�)�,�n�)�{�c�=�0�;�w�h�i�l�e�(�o�=�a�[�c�+�+�]�)�h�e�.�t�e�s�t�(�o�.�t�y�p�e�|�|�"�"�)�&�&�n�.�p�u�s�h�(�o�)�}�r�e�t�u�r�n� �f�}�v�a�r� �b�e�=�/�^�(�[�^�.�]�*�)�(�?�:�\�.�(�.�+�)�|�)�/�;�f�u�n�c�t�i�o�n� �w�e�(�)�{�r�e�t�u�r�n�!�0�}�f�u�n�c�t�i�o�n� �T�e�(�)�{�r�e�t�u�r�n�!�1�}�f�u�n�c�t�i�o�n� �C�e�(�e�,�t�)�{�r�e�t�u�r�n� �e�=�=�=�f�u�n�c�t�i�o�n�(�)�{�t�r�y�{�r�e�t�u�r�n� �E�.�a�c�t�i�v�e�E�l�e�m�e�n�t�}�c�a�t�c�h�(�e�)�{�}�}�(�)�=�=�(�"�f�o�c�u�s�"�=�=�=�t�)�}�f�u�n�c�t�i�o�n� �E�e�(�e�,�t�,�n�,�r�,�i�,�o�)�{�v�a�r� �a�,�s�;�i�f�(�"�o�b�j�e�c�t�"�=�=�t�y�p�e�o�f� �t�)�{�f�o�r�(�s� �i�n�"�s�t�r�i�n�g�"�!�=�t�y�p�e�o�f� �n�&�&�(�r�=�r�|�|�n�,�n�=�v�o�i�d� �0�)�,�t�)�E�e�(�e�,�s�,�n�,�r�,�t�[�s�]�,�o�)�;�r�e�t�u�r�n� �e�}�i�f�(�n�u�l�l�=�=�r�&�&�n�u�l�l�=�=�i�?�(�i�=�n�,�r�=�n�=�v�o�i�d� �0�)�:�n�u�l�l�=�=�i�&�&�(�"�s�t�r�i�n�g�"�=�=�t�y�p�e�o�f� �n�?�(�i�=�r�,�r�=�v�o�i�d� �0�)�:�(�i�=�r�,�r�=�n�,�n�=�v�o�i�d� �0�)�)�,�!�1�=�=�=�i�)�i�=�T�e�;�e�l�s�e� �i�f�(�!�i�)�r�e�t�u�r�n� �e�;�r�e�t�u�r�n� �1�=�=�=�o�&�&�(�a�=�i�,�(�i�=�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �S�(�)�.�o�f�f�(�e�)�,�a�.�a�p�p�l�y�(�t�h�i�s�,�a�r�g�u�m�e�n�t�s�)�}�)�.�g�u�i�d�=�a�.�g�u�i�d�|�|�(�a�.�g�u�i�d�=�S�.�g�u�i�d�+�+�)�)�,�e�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�)�{�S�.�e�v�e�n�t�.�a�d�d�(�t�h�i�s�,�t�,�i�,�r�,�n�)�}�)�}�f�u�n�c�t�i�o�n� �S�e�(�e�,�i�,�o�)�{�o�?�(�Y�.�s�e�t�(�e�,�i�,�!�1�)�,�S�.�e�v�e�n�t�.�a�d�d�(�e�,�i�,�{�n�a�m�e�s�p�a�c�e�:�!�1�,�h�a�n�d�l�e�r�:�f�u�n�c�t�i�o�n�(�e�)�{�v�a�r� �t�,�n�,�r�=�Y�.�g�e�t�(�t�h�i�s�,�i�)�;�i�f�(�1�&�e�.�i�s�T�r�i�g�g�e�r�&�&�t�h�i�s�[�i�]�)�{�i�f�(�r�.�l�e�n�g�t�h�)�(�S�.�e�v�e�n�t�.�s�p�e�c�i�a�l�[�i�]�|�|�{�}�)�.�d�e�l�e�g�a�t�e�T�y�p�e�&�&�e�.�s�t�o�p�P�r�o�p�a�g�a�t�i�o�n�(�)�;�e�l�s�e� �i�f�(�r�=�s�.�c�a�l�l�(�a�r�g�u�m�e�n�t�s�)�,�Y�.�s�e�t�(�t�h�i�s�,�i�,�r�)�,�t�=�o�(�t�h�i�s�,�i�)�,�t�h�i�s�[�i�]�(�)�,�r�!�=�=�(�n�=�Y�.�g�e�t�(�t�h�i�s�,�i�)�)�|�|�t�?�Y�.�s�e�t�(�t�h�i�s�,�i�,�!�1�)�:�n�=�{�}�,�r�!�=�=�n�)�r�e�t�u�r�n� �e�.�s�t�o�p�I�m�m�e�d�i�a�t�e�P�r�o�p�a�g�a�t�i�o�n�(�)�,�e�.�p�r�e�v�e�n�t�D�e�f�a�u�l�t�(�)�,�n�&�&�n�.�v�a�l�u�e�}�e�l�s�e� �r�.�l�e�n�g�t�h�&�&�(�Y�.�s�e�t�(�t�h�i�s�,�i�,�{�v�a�l�u�e�:�S�.�e�v�e�n�t�.�t�r�i�g�g�e�r�(�S�.�e�x�t�e�n�d�(�r�[�0�]�,�S�.�E�v�e�n�t�.�p�r�o�t�o�t�y�p�e�)�,�r�.�s�l�i�c�e�(�1�)�,�t�h�i�s�)�}�)�,�e�.�s�t�o�p�I�m�m�e�d�i�a�t�e�P�r�o�p�a�g�a�t�i�o�n�(�)�)�}�}�)�)�:�v�o�i�d� �0�=�=�=�Y�.�g�e�t�(�e�,�i�)�&�&�S�.�e�v�e�n�t�.�a�d�d�(�e�,�i�,�w�e�)�}�S�.�e�v�e�n�t�=�{�g�l�o�b�a�l�:�{�}�,�a�d�d�:�f�u�n�c�t�i�o�n�(�t�,�e�,�n�,�r�,�i�)�{�v�a�r� �o�,�a�,�s�,�u�,�l�,�c�,�f�,�p�,�d�,�h�,�g�,�v�=�Y�.�g�e�t�(�t�)�;�i�f�(�V�(�t�)�)�{�n�.�h�a�n�d�l�e�r�&�&�(�n�=�(�o�=�n�)�.�h�a�n�d�l�e�r�,�i�=�o�.�s�e�l�e�c�t�o�r�)�,�i�&�&�S�.�f�i�n�d�.�m�a�t�c�h�e�s�S�e�l�e�c�t�o�r�(�r�e�,�i�)�,�n�.�g�u�i�d�|�|�(�n�.�g�u�i�d�=�S�.�g�u�i�d�+�+�)�,�(�u�=�v�.�e�v�e�n�t�s�)�|�|�(�u�=�v�.�e�v�e�n�t�s�=�O�b�j�e�c�t�.�c�r�e�a�t�e�(�n�u�l�l�)�)�,�(�a�=�v�.�h�a�n�d�l�e�)�|�|�(�a�=�v�.�h�a�n�d�l�e�=�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n�"�u�n�d�e�f�i�n�e�d�"�!�=�t�y�p�e�o�f� �S�&�&�S�.�e�v�e�n�t�.�t�r�i�g�g�e�r�e�d�!�=�=�e�.�t�y�p�e�?�S�.�e�v�e�n�t�.�d�i�s�p�a�t�c�h�.�a�p�p�l�y�(�t�,�a�r�g�u�m�e�n�t�s�)�:�v�o�i�d� �0�}�)�,�l�=�(�e�=�(�e�|�|�"�"�)�.�m�a�t�c�h�(�P�)�|�|�[�"�"�]�)�.�l�e�n�g�t�h�;�w�h�i�l�e�(�l�-�-�)�d�=�g�=�(�s�=�b�e�.�e�x�e�c�(�e�[�l�]�)�|�|�[�]�)�[�1�]�,�h�=�(�s�[�2�]�|�|�"�"�)�.�s�p�l�i�t�(�"�.�"�)�.�s�o�r�t�(�)�,�d�&�&�(�f�=�S�.�e�v�e�n�t�.�s�p�e�c�i�a�l�[�d�]�|�|�{�}�,�d�=�(�i�?�f�.�d�e�l�e�g�a�t�e�T�y�p�e�:�f�.�b�i�n�d�T�y�p�e�)�|�|�d�,�f�=�S�.�e�v�e�n�t�.�s�p�e�c�i�a�l�[�d�]�|�|�{�}�,�c�=�S�.�e�x�t�e�n�d�(�{�t�y�p�e�:�d�,�o�r�i�g�T�y�p�e�:�g�,�d�a�t�a�:�r�,�h�a�n�d�l�e�r�:�n�,�g�u�i�d�:�n�.�g�u�i�d�,�s�e�l�e�c�t�o�r�:�i�,�n�e�e�d�s�C�o�n�t�e�x�t�:�i�&�&�S�.�e�x�p�r�.�m�a�t�c�h�.�n�e�e�d�s�C�o�n�t�e�x�t�.�t�e�s�t�(�i�)�,�n�a�m�e�s�p�a�c�e�:�h�.�j�o�i�n�(�"�.�"�
2)�}�,�o�)�,�(�p�=�u�[�d�]�)�|�|�(�(�p�=�u�[�d�]�=�[�]�)�.�d�e�l�e�g�a�t�e�C�o�u�n�t�=�0�,�f�.�s�e�t�u�p�&�&�!�1�!�=�=�f�.�s�e�t�u�p�.�c�a�l�l�(�t�,�r�,�h�,�a�)�|�|�t�.�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�&�&�t�.�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�(�d�,�a�)�)�,�f�.�a�d�d�&�&�(�f�.�a�d�d�.�c�a�l�l�(�t�,�c�)�,�c�.�h�a�n�d�l�e�r�.�g�u�i�d�|�|�(�c�.�h�a�n�d�l�e�r�.�g�u�i�d�=�n�.�g�u�i�d�)�)�,�i�?�p�.�s�p�l�i�c�e�(�p�.�d�e�l�e�g�a�t�e�C�o�u�n�t�+�+�,�0�,�c�)�:�p�.�p�u�s�h�(�c�)�,�S�.�e�v�e�n�t�.�g�l�o�b�a�l�[�d�]�=�!�0�)�}�}�,�r�e�m�o�v�e�:�f�u�n�c�t�i�o�n�(�e�,�t�,�n�,�r�,�i�)�{�v�a�r� �o�,�a�,�s�,�u�,�l�,�c�,�f�,�p�,�d�,�h�,�g�,�v�=�Y�.�h�a�s�D�a�t�a�(�e�)�&�&�Y�.�g�e�t�(�e�)�;�i�f�(�v�&�&�(�u�=�v�.�e�v�e�n�t�s�)�)�{�l�=�(�t�=�(�t�|�|�"�"�)�.�m�a�t�c�h�(�P�)�|�|�[�"�"�]�)�.�l�e�n�g�t�h�;�w�h�i�l�e�(�l�-�-�)�i�f�(�d�=�g�=�(�s�=�b�e�.�e�x�e�c�(�t�[�l�]�)�|�|�[�]�)�[�1�]�,�h�=�(�s�[�2�]�|�|�"�"�)�.�s�p�l�i�t�(�"�.�"�)�.�s�o�r�t�(�)�,�d�)�{�f�=�S�.�e�v�e�n�t�.�s�p�e�c�i�a�l�[�d�]�|�|�{�}�,�p�=�u�[�d�=�(�r�?�f�.�d�e�l�e�g�a�t�e�T�y�p�e�:�f�.�b�i�n�d�T�y�p�e�)�|�|�d�]�|�|�[�]�,�s�=�s�[�2�]�&�&�n�e�w� �R�e�g�E�x�p�(�"�(�^�|�\�\�.�)�"�+�h�.�j�o�i�n�(�"�\�\�.�(�?�:�.�*�\�\�.�|�)�"�)�+�"�(�\�\�.�|�$�)�"�)�,�a�=�o�=�p�.�l�e�n�g�t�h�;�w�h�i�l�e�(�o�-�-�)�c�=�p�[�o�]�,�!�i�&�&�g�!�=�=�c�.�o�r�i�g�T�y�p�e�|�|�n�&�&�n�.�g�u�i�d�!�=�=�c�.�g�u�i�d�|�|�s�&�&�!�s�.�t�e�s�t�(�c�.�n�a�m�e�s�p�a�c�e�)�|�|�r�&�&�r�!�=�=�c�.�s�e�l�e�c�t�o�r�&�&�(�"�*�*�"�!�=�=�r�|�|�!�c�.�s�e�l�e�c�t�o�r�)�|�|�(�p�.�s�p�l�i�c�e�(�o�,�1�)�,�c�.�s�e�l�e�c�t�o�r�&�&�p�.�d�e�l�e�g�a�t�e�C�o�u�n�t�-�-�,�f�.�r�e�m�o�v�e�&�&�f�.�r�e�m�o�v�e�.�c�a�l�l�(�e�,�c�)�)�;�a�&�&�!�p�.�l�e�n�g�t�h�&�&�(�f�.�t�e�a�r�d�o�w�n�&�&�!�1�!�=�=�f�.�t�e�a�r�d�o�w�n�.�c�a�l�l�(�e�,�h�,�v�.�h�a�n�d�l�e�)�|�|�S�.�r�e�m�o�v�e�E�v�e�n�t�(�e�,�d�,�v�.�h�a�n�d�l�e�)�,�d�e�l�e�t�e� �u�[�d�]�)�}�e�l�s�e� �f�o�r�(�d� �i�n� �u�)�S�.�e�v�e�n�t�.�r�e�m�o�v�e�(�e�,�d�+�t�[�l�]�,�n�,�r�,�!�0�)�;�S�.�i�s�E�m�p�t�y�O�b�j�e�c�t�(�u�)�&�&�Y�.�r�e�m�o�v�e�(�e�,�"�h�a�n�d�l�e� �e�v�e�n�t�s�"�)�}�}�,�d�i�s�p�a�t�c�h�:�f�u�n�c�t�i�o�n�(�e�)�{�v�a�r� �t�,�n�,�r�,�i�,�o�,�a�,�s�=�n�e�w� �A�r�r�a�y�(�a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�)�,�u�=�S�.�e�v�e�n�t�.�f�i�x�(�e�)�,�l�=�(�Y�.�g�e�t�(�t�h�i�s�,�"�e�v�e�n�t�s�"�)�|�|�O�b�j�e�c�t�.�c�r�e�a�t�e�(�n�u�l�l�)�)�[�u�.�t�y�p�e�]�|�|�[�]�,�c�=�S�.�e�v�e�n�t�.�s�p�e�c�i�a�l�[�u�.�t�y�p�e�]�|�|�{�}�;�f�o�r�(�s�[�0�]�=�u�,�t�=�1�;�t�<�a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�;�t�+�+�)�s�[�t�]�=�a�r�g�u�m�e�n�t�s�[�t�]�;�i�f�(�u�.�d�e�l�e�g�a�t�e�T�a�r�g�e�t�=�t�h�i�s�,�!�c�.�p�r�e�D�i�s�p�a�t�c�h�|�|�!�1�!�=�=�c�.�p�r�e�D�i�s�p�a�t�c�h�.�c�a�l�l�(�t�h�i�s�,�u�)�)�{�a�=�S�.�e�v�e�n�t�.�h�a�n�d�l�e�r�s�.�c�a�l�l�(�t�h�i�s�,�u�,�l�)�,�t�=�0�;�w�h�i�l�e�(�(�i�=�a�[�t�+�+�]�)�&�&�!�u�.�i�s�P�r�o�p�a�g�a�t�i�o�n�S�t�o�p�p�e�d�(�)�)�{�u�.�c�u�r�r�e�n�t�T�a�r�g�e�t�=�i�.�e�l�e�m�,�n�=�0�;�w�h�i�l�e�(�(�o�=�i�.�h�a�n�d�l�e�r�s�[�n�+�+�]�)�&�&�!�u�.�i�s�I�m�m�e�d�i�a�t�e�P�r�o�p�a�g�a�t�i�o�n�S�t�o�p�p�e�d�(�)�)�u�.�r�n�a�m�e�s�p�a�c�e�&�&�!�1�!�=�=�o�.�n�a�m�e�s�p�a�c�e�&�&�!�u�.�r�n�a�m�e�s�p�a�c�e�.�t�e�s�t�(�o�.�n�a�m�e�s�p�a�c�e�)�|�|�(�u�.�h�a�n�d�l�e�O�b�j�=�o�,�u�.�d�a�t�a�=�o�.�d�a�t�a�,�v�o�i�d� �0�!�=�=�(�r�=�(�(�S�.�e�v�e�n�t�.�s�p�e�c�i�a�l�[�o�.�o�r�i�g�T�y�p�e�]�|�|�{�}�)�.�h�a�n�d�l�e�|�|�o�.�h�a�n�d�l�e�r�)�.�a�p�p�l�y�(�i�.�e�l�e�m�,�s�)�)�&�&�!�1�=�=�=�(�u�.�r�e�s�u�l�t�=�r�)�&�&�(�u�.�p�r�e�v�e�n�t�D�e�f�a�u�l�t�(�)�,�u�.�s�t�o�p�P�r�o�p�a�g�a�t�i�o�n�(�)�)�)�}�r�e�t�u�r�n� �c�.�p�o�s�t�D�i�s�p�a�t�c�h�&�&�c�.�p�o�s�t�D�i�s�p�a�t�c�h�.�c�a�l�l�(�t�h�i�s�,�u�)�,�u�.�r�e�s�u�l�t�}�}�,�h�a�n�d�l�e�r�s�:�f�u�n�c�t�i�o�n�(�e�,�t�)�{�v�a�r� �n�,�r�,�i�,�o�,�a�,�s�=�[�]�,�u�=�t�.�d�e�l�e�g�a�t�e�C�o�u�n�t�,�l�=�e�.�t�a�r�g�e�t�;�i�f�(�u�&�&�l�.�n�o�d�e�T�y�p�e�&�&�!�(�"�c�l�i�c�k�"�=�=�=�e�.�t�y�p�e�&�&�1�<�=�e�.�b�u�t�t�o�n�)�)�f�o�r�(�;�l�!�=�=�t�h�i�s�;�l�=�l�.�p�a�r�e�n�t�N�o�d�e�|�|�t�h�i�s�)�i�f�(�1�=�=�=�l�.�n�o�d�e�T�y�p�e�&�&�(�"�c�l�i�c�k�"�!�=�=�e�.�t�y�p�e�|�|�!�0�!�=�=�l�.�d�i�s�a�b�l�e�d�)�)�{�f�o�r�(�o�=�[�]�,�a�=�{�}�,�n�=�0�;�n�<�u�;�n�+�+�)�v�o�i�d� �0�=�=�=�a�[�i�=�(�r�=�t�[�n�]�)�.�s�e�l�e�c�t�o�r�+�"� �"�]�&�&�(�a�[�i�]�=�r�.�n�e�e�d�s�C�o�n�t�e�x�t�?�-�1�<�S�(�i�,�t�h�i�s�)�.�i�n�d�e�x�(�l�)�:�S�.�f�i�n�d�(�i�,�t�h�i�s�,�n�u�l�l�,�[�l�]�)�.�l�e�n�g�t�h�)�,�a�[�i�]�&�&�o�.�p�u�s�h�(�r�)�;�o�.�l�e�n�g�t�h�&�&�s�.�p�u�s�h�(�{�e�l�e�m�:�l�,�h�a�n�d�l�e�r�s�:�o�}�)�}�r�e�t�u�r�n� �l�=�t�h�i�s�,�u�<�t�.�l�e�n�g�t�h�&�&�s�.�p�u�s�h�(�{�e�l�e�m�:�l�,�h�a�n�d�l�e�r�s�:�t�.�s�l�i�c�e�(�u�)�}�)�,�s�}�,�a�d�d�P�r�o�p�:�f�u�n�c�t�i�o�n�(�t�,�e�)�{�O�b�j�e�c�t�.�d�e�f�i�n�e�P�r�o�p�e�r�t�y�(�S�.�E�v�e�n�t�.�p�r�o�t�o�t�y�p�e�,�t�,�{�e�n�u�m�e�r�a�b�l�e�:�!�0�,�c�o�n�f�i�g�u�r�a�b�l�e�:�!�0�,�g�e�t�:�m�(�e�)�?�f�u�n�c�t�i�o�n�(�)�{�i�f�(�t�h�i�s�.�o�r�i�g�i�n�a�l�E�v�e�n�t�)�r�e�t�u�r�n� �e�(�t�h�i�s�.�o�r�i�g�i�n�a�l�E�v�e�n�t�)�}�:�f�u�n�c�t�i�o�n�(�)�{�i�f�(�t�h�i�s�.�o�r�i�g�i�n�a�l�E�v�e�n�t�)�r�e�t�u�r�n� �t�h�i�s�.�o�r�i�g�i�n�a�l�E�v�e�n�t�[�t�]�}�,�s�e�t�:�f�u�n�c�t�i�o�n�(�e�)�{�O�b�j�e�c�t�.�d�e�f�i�n�e�P�r�o�p�e�r�t�y�(�t�h�i�s�,�t�,�{�e�n�u�m�e�r�a�b�l�e�:�!�0�,�c�o�n�f�i�g�u�r�a�b�l�e�:�!�0�,�w�r�i�t�a�b�l�e�:�!�0�,�v�a�l�u�e�:�e�}�)�}�}�)�}�,�f�i�x�:�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �e�[�S�.�e�x�p�a�n�d�o�]�?�e�:�n�e�w� �S�.�E�v�e�n�t�(�e�)�}�,�s�p�e�c�i�a�l�:�{�l�o�a�d�:�{�n�o�B�u�b�b�l�e�:�!�0�}�,�c�l�i�c�k�:�{�s�e�t�u�p�:�f�u�n�c�t�i�o�n�(�e�)�{�v�a�r� �t�=�t�h�i�s�|�|�e�;
2�r�e�t�u�r�n� �p�e�.�t�e�s�t�(�t�.�t�y�p�e�)�&�&�t�.�c�l�i�c�k�&�&�A�(�t�,�"�i�n�p�u�t�"�)�&�&�S�e�(�t�,�"�c�l�i�c�k�"�,�w�e�)�,�!�1�}�,�t�r�i�g�g�e�r�:�f�u�n�c�t�i�o�n�(�e�)�{�v�a�r� �t�=�t�h�i�s�|�|�e�;�r�e�t�u�r�n� �p�e�.�t�e�s�t�(�t�.�t�y�p�e�)�&�&�t�.�c�l�i�c�k�&�&�A�(�t�,�"�i�n�p�u�t�"�)�&�&�S�e�(�t�,�"�c�l�i�c�k�"�)�,�!�0�}�,�_�d�e�f�a�u�l�t�:�f�u�n�c�t�i�o�n�(�e�)�{�v�a�r� �t�=�e�.�t�a�r�g�e�t�;�r�e�t�u�r�n� �p�e�.�t�e�s�t�(�t�.�t�y�p�e�)�&�&�t�.�c�l�i�c�k�&�&�A�(�t�,�"�i�n�p�u�t�"�)�&�&�Y�.�g�e�t�(�t�,�"�c�l�i�c�k�"�)�|�|�A�(�t�,�"�a�"�)�}�}�,�b�e�f�o�r�e�u�n�l�o�a�d�:�{�p�o�s�t�D�i�s�p�a�t�c�h�:�f�u�n�c�t�i�o�n�(�e�)�{�v�o�i�d� �0�!�=�=�e�.�r�e�s�u�l�t�&�&�e�.�o�r�i�g�i�n�a�l�E�v�e�n�t�&�&�(�e�.�o�r�i�g�i�n�a�l�E�v�e�n�t�.�r�e�t�u�r�n�V�a�l�u�e�=�e�.�r�e�s�u�l�t�)�}�}�}�}�,�S�.�r�e�m�o�v�e�E�v�e�n�t�=�f�u�n�c�t�i�o�n�(�e�,�t�,�n�)�{�e�.�r�e�m�o�v�e�E�v�e�n�t�L�i�s�t�e�n�e�r�&�&�e�.�r�e�m�o�v�e�E�v�e�n�t�L�i�s�t�e�n�e�r�(�t�,�n�)�}�,�S�.�E�v�e�n�t�=�f�u�n�c�t�i�o�n�(�e�,�t�)�{�i�f�(�!�(�t�h�i�s� �i�n�s�t�a�n�c�e�o�f� �S�.�E�v�e�n�t�)�)�r�e�t�u�r�n� �n�e�w� �S�.�E�v�e�n�t�(�e�,�t�)�;�e�&�&�e�.�t�y�p�e�?�(�t�h�i�s�.�o�r�i�g�i�n�a�l�E�v�e�n�t�=�e�,�t�h�i�s�.�t�y�p�e�=�e�.�t�y�p�e�,�t�h�i�s�.�i�s�D�e�f�a�u�l�t�P�r�e�v�e�n�t�e�d�=�e�.�d�e�f�a�u�l�t�P�r�e�v�e�n�t�e�d�|�|�v�o�i�d� �0�=�=�=�e�.�d�e�f�a�u�l�t�P�r�e�v�e�n�t�e�d�&�&�!�1�=�=�=�e�.�r�e�t�u�r�n�V�a�l�u�e�?�w�e�:�T�e�,�t�h�i�s�.�t�a�r�g�e�t�=�e�.�t�a�r�g�e�t�&�&�3�=�=�=�e�.�t�a�r�g�e�t�.�n�o�d�e�T�y�p�e�?�e�.�t�a�r�g�e�t�.�p�a�r�e�n�t�N�o�d�e�:�e�.�t�a�r�g�e�t�,�t�h�i�s�.�c�u�r�r�e�n�t�T�a�r�g�e�t�=�e�.�c�u�r�r�e�n�t�T�a�r�g�e�t�,�t�h�i�s�.�r�e�l�a�t�e�d�T�a�r�g�e�t�=�e�.�r�e�l�a�t�e�d�T�a�r�g�e�t�)�:�t�h�i�s�.�t�y�p�e�=�e�,�t�&�&�S�.�e�x�t�e�n�d�(�t�h�i�s�,�t�)�,�t�h�i�s�.�t�i�m�e�S�t�a�m�p�=�e�&�&�e�.�t�i�m�e�S�t�a�m�p�|�|�D�a�t�e�.�n�o�w�(�)�,�t�h�i�s�[�S�.�e�x�p�a�n�d�o�]�=�!�0�}�,�S�.�E�v�e�n�t�.�p�r�o�t�o�t�y�p�e�=�{�c�o�n�s�t�r�u�c�t�o�r�:�S�.�E�v�e�n�t�,�i�s�D�e�f�a�u�l�t�P�r�e�v�e�n�t�e�d�:�T�e�,�i�s�P�r�o�p�a�g�a�t�i�o�n�S�t�o�p�p�e�d�:�T�e�,�i�s�I�m�m�e�d�i�a�t�e�P�r�o�p�a�g�a�t�i�o�n�S�t�o�p�p�e�d�:�T�e�,�i�s�S�i�m�u�l�a�t�e�d�:�!�1�,�p�r�e�v�e�n�t�D�e�f�a�u�l�t�:�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �e�=�t�h�i�s�.�o�r�i�g�i�n�a�l�E�v�e�n�t�;�t�h�i�s�.�i�s�D�e�f�a�u�l�t�P�r�e�v�e�n�t�e�d�=�w�e�,�e�&�&�!�t�h�i�s�.�i�s�S�i�m�u�l�a�t�e�d�&�&�e�.�p�r�e�v�e�n�t�D�e�f�a�u�l�t�(�)�}�,�s�t�o�p�P�r�o�p�a�g�a�t�i�o�n�:�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �e�=�t�h�i�s�.�o�r�i�g�i�n�a�l�E�v�e�n�t�;�t�h�i�s�.�i�s�P�r�o�p�a�g�a�t�i�o�n�S�t�o�p�p�e�d�=�w�e�,�e�&�&�!�t�h�i�s�.�i�s�S�i�m�u�l�a�t�e�d�&�&�e�.�s�t�o�p�P�r�o�p�a�g�a�t�i�o�n�(�)�}�,�s�t�o�p�I�m�m�e�d�i�a�t�e�P�r�o�p�a�g�a�t�i�o�n�:�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �e�=�t�h�i�s�.�o�r�i�g�i�n�a�l�E�v�e�n�t�;�t�h�i�s�.�i�s�I�m�m�e�d�i�a�t�e�P�r�o�p�a�g�a�t�i�o�n�S�t�o�p�p�e�d�=�w�e�,�e�&�&�!�t�h�i�s�.�i�s�S�i�m�u�l�a�t�e�d�&�&�e�.�s�t�o�p�I�m�m�e�d�i�a�t�e�P�r�o�p�a�g�a�t�i�o�n�(�)�,�t�h�i�s�.�s�t�o�p�P�r�o�p�a�g�a�t�i�o�n�(�)�}�}�,�S�.�e�a�c�h�(�{�a�l�t�K�e�y�:�!�0�,�b�u�b�b�l�e�s�:�!�0�,�c�a�n�c�e�l�a�b�l�e�:�!�0�,�c�h�a�n�g�e�d�T�o�u�c�h�e�s�:�!�0�,�c�t�r�l�K�e�y�:�!�0�,�d�e�t�a�i�l�:�!�0�,�e�v�e�n�t�P�h�a�s�e�:�!�0�,�m�e�t�a�K�e�y�:�!�0�,�p�a�g�e�X�:�!�0�,�p�a�g�e�Y�:�!�0�,�s�h�i�f�t�K�e�y�:�!�0�,�v�i�e�w�:�!�0�,�"�c�h�a�r�"�:�!�0�,�c�o�d�e�:�!�0�,�c�h�a�r�C�o�d�e�:�!�0�,�k�e�y�:�!�0�,�k�e�y�C�o�d�e�:�!�0�,�b�u�t�t�o�n�:�!�0�,�b�u�t�t�o�n�s�:�!�0�,�c�l�i�e�n�t�X�:�!�0�,�c�l�i�e�n�t�Y�:�!�0�,�o�f�f�s�e�t�X�:�!�0�,�o�f�f�s�e�t�Y�:�!�0�,�p�o�i�n�t�e�r�I�d�:�!�0�,�p�o�i�n�t�e�r�T�y�p�e�:�!�0�,�s�c�r�e�e�n�X�:�!�0�,�s�c�r�e�e�n�Y�:�!�0�,�t�a�r�g�e�t�T�o�u�c�h�e�s�:�!�0�,�t�o�E�l�e�m�e�n�t�:�!�0�,�t�o�u�c�h�e�s�:�!�0�,�w�h�i�c�h�:�!�0�}�,�S�.�e�v�e�n�t�.�a�d�d�P�r�o�p�)�,�S�.�e�a�c�h�(�{�f�o�c�u�s�:�"�f�o�c�u�s�i�n�"�,�b�l�u�r�:�"�f�o�c�u�s�o�u�t�"�}�,�f�u�n�c�t�i�o�n�(�e�,�t�)�{�S�.�e�v�e�n�t�.�s�p�e�c�i�a�l�[�e�]�=�{�s�e�t�u�p�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �S�e�(�t�h�i�s�,�e�,�C�e�)�,�!�1�}�,�t�r�i�g�g�e�r�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �S�e�(�t�h�i�s�,�e�)�,�!�0�}�,�_�d�e�f�a�u�l�t�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n�!�0�}�,�d�e�l�e�g�a�t�e�T�y�p�e�:�t�}�}�)�,�S�.�e�a�c�h�(�{�m�o�u�s�e�e�n�t�e�r�:�"�m�o�u�s�e�o�v�e�r�"�,�m�o�u�s�e�l�e�a�v�e�:�"�m�o�u�s�e�o�u�t�"�,�p�o�i�n�t�e�r�e�n�t�e�r�:�"�p�o�i�n�t�e�r�o�v�e�r�"�,�p�o�i�n�t�e�r�l�e�a�v�e�:�"�p�o�i�n�t�e�r�o�u�t�"�}�,�f�u�n�c�t�i�o�n�(�e�,�i�)�{�S�.�e�v�e�n�t�.�s�p�e�c�i�a�l�[�e�]�=�{�d�e�l�e�g�a�t�e�T�y�p�e�:�i�,�b�i�n�d�T�y�p�e�:�i�,�h�a�n�d�l�e�:�f�u�n�c�t�i�o�n�(�e�)�{�v�a�r� �t�,�n�=�e�.�r�e�l�a�t�e�d�T�a�r�g�e�t�,�r�=�e�.�h�a�n�d�l�e�O�b�j�;�r�e�t�u�r�n� �n�&�&�(�n�=�=�=�t�h�i�s�|�|�S�.�c�o�n�t�a�i�n�s�(�t�h�i�s�,�n�)�)�|�|�(�e�.�t�y�p�e�=�r�.�o�r�i�g�T�y�p�e�,�t�=�r�.�h�a�n�d�l�e�r�.�a�p�p�l�y�(�t�h�i�s�,�a�r�g�u�m�e�n�t�s�)�,�e�.�t�y�p�e�=�i�)�,�t�}�}�}�)�,�S�.�f�n�.�e�x�t�e�n�d�(�{�o�n�:�f�u�n�c�t�i�o�n�(�e�,�t�,�n�,�r�)�{�r�e�t�u�r�n� �E�e�(�t�h�i�s�,�e�,�t�,�n�,�r�)�}�,�o�n�e�:�f�u�n�c�t�i�o�n�(�e�,�t�,�n�,�r�)�{�r�e�t�u�r�n� �E�e�(�t�h�i�s�,�e�,�t�,�n�,�r�,�1�)�}�,�o�f�f�:�f�u�n�c�t�i�o�n�(�e�,�t�,�n�)�{�v�a�r� �r�,�i�;�i�f�(�e�&�&�e�.�p�r�e�v�e�n�t�D�e�f�a�u�l�t�&�&�e�.�h�a�n�d�l�e�O�b�j�)�r�e�t�u�r�n� �r�=�e�.�h�a�n�d�l�e�O�b�j�,�S�(�e�.�d�e�l�e�g�a�t�e�T�a�r�g�e�t�)�.�
2o�f�f�(�r�.�n�a�m�e�s�p�a�c�e�?�r�.�o�r�i�g�T�y�p�e�+�"�.�"�+�r�.�n�a�m�e�s�p�a�c�e�:�r�.�o�r�i�g�T�y�p�e�,�r�.�s�e�l�e�c�t�o�r�,�r�.�h�a�n�d�l�e�r�)�,�t�h�i�s�;�i�f�(�"�o�b�j�e�c�t�"�=�=�t�y�p�e�o�f� �e�)�{�f�o�r�(�i� �i�n� �e�)�t�h�i�s�.�o�f�f�(�i�,�t�,�e�[�i�]�)�;�r�e�t�u�r�n� �t�h�i�s�}�r�e�t�u�r�n�!�1�!�=�=�t�&�&�"�f�u�n�c�t�i�o�n�"�!�=�t�y�p�e�o�f� �t�|�|�(�n�=�t�,�t�=�v�o�i�d� �0�)�,�!�1�=�=�=�n�&�&�(�n�=�T�e�)�,�t�h�i�s�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�)�{�S�.�e�v�e�n�t�.�r�e�m�o�v�e�(�t�h�i�s�,�e�,�n�,�t�)�}�)�}�}�)�;�v�a�r� �k�e�=�/�<�s�c�r�i�p�t�|�<�s�t�y�l�e�|�<�l�i�n�k�/�i�,�A�e�=�/�c�h�e�c�k�e�d�\�s�*�(�?�:�[�^�=�]�|�=�\�s�*�.�c�h�e�c�k�e�d�.�)�/�i�,�N�e�=�/�^�\�s�*�<�!�(�?�:�\�[�C�D�A�T�A�\�[�|�-�-�)�|�(�?�:�\�]�\�]�|�-�-�)�>�\�s�*�$�/�g�;�f�u�n�c�t�i�o�n� �j�e�(�e�,�t�)�{�r�e�t�u�r�n� �A�(�e�,�"�t�a�b�l�e�"�)�&�&�A�(�1�1�!�=�=�t�.�n�o�d�e�T�y�p�e�?�t�:�t�.�f�i�r�s�t�C�h�i�l�d�,�"�t�r�"�)�&�&�S�(�e�)�.�c�h�i�l�d�r�e�n�(�"�t�b�o�d�y�"�)�[�0�]�|�|�e�}�f�u�n�c�t�i�o�n� �D�e�(�e�)�{�r�e�t�u�r�n� �e�.�t�y�p�e�=�(�n�u�l�l�!�=�=�e�.�g�e�t�A�t�t�r�i�b�u�t�e�(�"�t�y�p�e�"�)�)�+�"�/�"�+�e�.�t�y�p�e�,�e�}�f�u�n�c�t�i�o�n� �q�e�(�e�)�{�r�e�t�u�r�n�"�t�r�u�e�/�"�=�=�=�(�e�.�t�y�p�e�|�|�"�"�)�.�s�l�i�c�e�(�0�,�5�)�?�e�.�t�y�p�e�=�e�.�t�y�p�e�.�s�l�i�c�e�(�5�)�:�e�.�r�e�m�o�v�e�A�t�t�r�i�b�u�t�e�(�"�t�y�p�e�"�)�,�e�}�f�u�n�c�t�i�o�n� �L�e�(�e�,�t�)�{�v�a�r� �n�,�r�,�i�,�o�,�a�,�s�;�i�f�(�1�=�=�=�t�.�n�o�d�e�T�y�p�e�)�{�i�f�(�Y�.�h�a�s�D�a�t�a�(�e�)�&�&�(�s�=�Y�.�g�e�t�(�e�)�.�e�v�e�n�t�s�)�)�f�o�r�(�i� �i�n� �Y�.�r�e�m�o�v�e�(�t�,�"�h�a�n�d�l�e� �e�v�e�n�t�s�"�)�,�s�)�f�o�r�(�n�=�0�,�r�=�s�[�i�]�.�l�e�n�g�t�h�;�n�<�r�;�n�+�+�)�S�.�e�v�e�n�t�.�a�d�d�(�t�,�i�,�s�[�i�]�[�n�]�)�;�Q�.�h�a�s�D�a�t�a�(�e�)�&�&�(�o�=�Q�.�a�c�c�e�s�s�(�e�)�,�a�=�S�.�e�x�t�e�n�d�(�{�}�,�o�)�,�Q�.�s�e�t�(�t�,�a�)�)�}�}�f�u�n�c�t�i�o�n� �H�e�(�n�,�r�,�i�,�o�)�{�r�=�g�(�r�)�;�v�a�r� �e�,�t�,�a�,�s�,�u�,�l�,�c�=�0�,�f�=�n�.�l�e�n�g�t�h�,�p�=�f�-�1�,�d�=�r�[�0�]�,�h�=�m�(�d�)�;�i�f�(�h�|�|�1�<�f�&�&�"�s�t�r�i�n�g�"�=�=�t�y�p�e�o�f� �d�&�&�!�y�.�c�h�e�c�k�C�l�o�n�e�&�&�A�e�.�t�e�s�t�(�d�)�)�r�e�t�u�r�n� �n�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�e�)�{�v�a�r� �t�=�n�.�e�q�(�e�)�;�h�&�&�(�r�[�0�]�=�d�.�c�a�l�l�(�t�h�i�s�,�e�,�t�.�h�t�m�l�(�)�)�)�,�H�e�(�t�,�r�,�i�,�o�)�}�)�;�i�f�(�f�&�&�(�t�=�(�e�=�x�e�(�r�,�n�[�0�]�.�o�w�n�e�r�D�o�c�u�m�e�n�t�,�!�1�,�n�,�o�)�)�.�f�i�r�s�t�C�h�i�l�d�,�1�=�=�=�e�.�c�h�i�l�d�N�o�d�e�s�.�l�e�n�g�t�h�&�&�(�e�=�t�)�,�t�|�|�o�)�)�{�f�o�r�(�s�=�(�a�=�S�.�m�a�p�(�v�e�(�e�,�"�s�c�r�i�p�t�"�)�,�D�e�)�)�.�l�e�n�g�t�h�;�c�<�f�;�c�+�+�)�u�=�e�,�c�!�=�=�p�&�&�(�u�=�S�.�c�l�o�n�e�(�u�,�!�0�,�!�0�)�,�s�&�&�S�.�m�e�r�g�e�(�a�,�v�e�(�u�,�"�s�c�r�i�p�t�"�)�)�)�,�i�.�c�a�l�l�(�n�[�c�]�,�u�,�c�)�;�i�f�(�s�)�f�o�r�(�l�=�a�[�a�.�l�e�n�g�t�h�-�1�]�.�o�w�n�e�r�D�o�c�u�m�e�n�t�,�S�.�m�a�p�(�a�,�q�e�)�,�c�=�0�;�c�<�s�;�c�+�+�)�u�=�a�[�c�]�,�h�e�.�t�e�s�t�(�u�.�t�y�p�e�|�|�"�"�)�&�&�!�Y�.�a�c�c�e�s�s�(�u�,�"�g�l�o�b�a�l�E�v�a�l�"�)�&�&�S�.�c�o�n�t�a�i�n�s�(�l�,�u�)�&�&�(�u�.�s�r�c�&�&�"�m�o�d�u�l�e�"�!�=�=�(�u�.�t�y�p�e�|�|�"�"�)�.�t�o�L�o�w�e�r�C�a�s�e�(�)�?�S�.�_�e�v�a�l�U�r�l�&�&�!�u�.�n�o�M�o�d�u�l�e�&�&�S�.�_�e�v�a�l�U�r�l�(�u�.�s�r�c�,�{�n�o�n�c�e�:�u�.�n�o�n�c�e�|�|�u�.�g�e�t�A�t�t�r�i�b�u�t�e�(�"�n�o�n�c�e�"�)�}�,�l�)�:�b�(�u�.�t�e�x�t�C�o�n�t�e�n�t�.�r�e�p�l�a�c�e�(�N�e�,�"�"�)�,�u�,�l�)�)�}�r�e�t�u�r�n� �n�}�f�u�n�c�t�i�o�n� �O�e�(�e�,�t�,�n�)�{�f�o�r�(�v�a�r� �r�,�i�=�t�?�S�.�f�i�l�t�e�r�(�t�,�e�)�:�e�,�o�=�0�;�n�u�l�l�!�=�(�r�=�i�[�o�]�)�;�o�+�+�)�n�|�|�1�!�=�=�r�.�n�o�d�e�T�y�p�e�|�|�S�.�c�l�e�a�n�D�a�t�a�(�v�e�(�r�)�)�,�r�.�p�a�r�e�n�t�N�o�d�e�&�&�(�n�&�&�i�e�(�r�)�&�&�y�e�(�v�e�(�r�,�"�s�c�r�i�p�t�"�)�)�,�r�.�p�a�r�e�n�t�N�o�d�e�.�r�e�m�o�v�e�C�h�i�l�d�(�r�)�)�;�r�e�t�u�r�n� �e�}�S�.�e�x�t�e�n�d�(�{�h�t�m�l�P�r�e�f�i�l�t�e�r�:�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �e�}�,�c�l�o�n�e�:�f�u�n�c�t�i�o�n�(�e�,�t�,�n�)�{�v�a�r� �r�,�i�,�o�,�a�,�s�,�u�,�l�,�c�=�e�.�c�l�o�n�e�N�o�d�e�(�!�0�)�,�f�=�i�e�(�e�)�;�i�f�(�!�(�y�.�n�o�C�l�o�n�e�C�h�e�c�k�e�d�|�|�1�!�=�=�e�.�n�o�d�e�T�y�p�e�&�&�1�1�!�=�=�e�.�n�o�d�e�T�y�p�e�|�|�S�.�i�s�X�M�L�D�o�c�(�e�)�)�)�f�o�r�(�a�=�v�e�(�c�)�,�r�=�0�,�i�=�(�o�=�v�e�(�e�)�)�.�l�e�n�g�t�h�;�r�<�i�;�r�+�+�)�s�=�o�[�r�]�,�u�=�a�[�r�]�,�v�o�i�d� �0�,�"�i�n�p�u�t�"�=�=�=�(�l�=�u�.�n�o�d�e�N�a�m�e�.�t�o�L�o�w�e�r�C�a�s�e�(�)�)�&�&�p�e�.�t�e�s�t�(�s�.�t�y�p�e�)�?�u�.�c�h�e�c�k�e�d�=�s�.�c�h�e�c�k�e�d�:�"�i�n�p�u�t�"�!�=�=�l�&�&�"�t�e�x�t�a�r�e�a�"�!�=�=�l�|�|�(�u�.�d�e�f�a�u�l�t�V�a�l�u�e�=�s�.�d�e�f�a�u�l�t�V�a�l�u�e�)�;�i�f�(�t�)�i�f�(�n�)�f�o�r�(�o�=�o�|�|�v�e�(�e�)�,�a�=�a�|�|�v�e�(�c�)�,�r�=�0�,�i�=�o�.�l�e�n�g�t�h�;�r�<�i�;�r�+�+�)�L�e�(�o�[�r�]�,�a�[�r�]�)�;�e�l�s�e� �L�e�(�e�,�c�)�;�r�e�t�u�r�n� �0�<�(�a�=�v�e�(�c�,�"�s�c�r�i�p�t�"�)�)�.�l�e�n�g�t�h�&�&�y�e�(�a�,�!�f�&�&�v�e�(�e�,�"�s�c�r�i�p�t�"�)�)�,�c�}�,�c�l�e�a�n�D�a�t�a�:�f�u�n�c�t�i�o�n�(�e�)�{�f�o�r�(�v�a�r� �t�,�n�,�r�,�i�=�S�.�e�v�e�n�t�.�s�p�e�c�i�a�l�,�o�=�0�;�v�o�i�d� �0�!�=�=�(�n�=�e�[�o�]�)�;�o�+�+�)�i�f�(�V�(�n�)�)�{�i�f�(�t�=�n�[�Y�.�e�x�p�a�n�d�o�]�)�{�i�f�(�t�.�e�v�e�n�t�s�)�f�o�r�(�r� �i�n� �t�.�e�v�e�n�t�s�)�i�[�r�]�?�S�.�e�v�e�n�t�.�r�e�m�o�v�e�(�n�,�r�)�:�S�.�r�e�m�o�v�e�E�v�e�n�t�(�n�,�r�,�t�.�h�a�n�d�l�e�)�;�n�[�Y�.�e�x�p�a�n�d�o�]�=�v�o�i�d� �0�}�n�[�Q�.�e�x�p�a�n�d�o�]�&�&�(�n�[�Q�.�e�x�p�a�n�d�o�]�=�v�o�i�d� �0�)�}�}�}�)�,�S�.�f�n�.�e�x�t�e�n�d�(�{�d�e�t�a�c�h�:�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �O�e�(�t�h�i�s�,�e�,�!�0�)�}�,�r�e�m�o�v�e�:�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �O�e�(�t�h�i�s�,�e�)�}�,�t�e�x�t�:�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �$�(�t�h�i�s�,�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �v�o�i�d� �0�=�=�=�e�?�S�.�t�e�x�t�(�t�h�i�s�)�:�t�h�i�s�.�e�m�p�t�y�(�)�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�)�{�1�!�=�=�t�h�i�s�.�n�o�d�e�T�y�p�e�&�&�1�1�!�=�=�t�h�i�s�.�n�o�d�e�T�y�p�e�&�&�9�!�=�=�t�h�i�s�.�n�o�d�e�T�y�p�e�|�|�(�t�h�i�s�.�t�e�x�t�C�o�n�t�e�n�t�=�e�)�}�)�}�,�n�u�l�l�,�e�,�a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�)�}�,�a�p�p�e�n�d�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �H�e�(�t�h�i�s�,�a�r�g�u�m�e�n�t�s�,�f�u�n�c�t�i�o�n�(�e�)�{�1�!�=�=�t�h�i�s�.�n�o�d�e�T�y�p�e�&�&�1�1�!�=�=�t�h�i�s�.�n�o�d�e�T�y�p�e�&�&�9�!�=�=�t�h�i�s�.�n�o�d�e�T�y�p�e�|�|�j�e�(�t�h�i�s�,�e�)�.�a�p�p�e�n�d�C�h�i�l�d�(�e�)�}�)�}�,�p�r�e�p�e�n�d�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �H�e�(�t�h�i�s�,�a�r�g�u�m�e�n�t�s�,�f�u�n�c�t�i�o�n�(�e�)�{�i�f�(�1�=�=�=�t�h�i�s�.�n�o�d�e�T�y�p�e�|�|�1�1�=�=�=�t�h�i�s�.�n�o�d�e�T�y�p�e�|�|�9�=�=�=�t�h�i�s�.�n�o�d�e�T�y�p�e�)�{�v�a�r� �t�=�j�e�(�t�h�i�s�,�e�)�;
2�t�.�i�n�s�e�r�t�B�e�f�o�r�e�(�e�,�t�.�f�i�r�s�t�C�h�i�l�d�)�}�}�)�}�,�b�e�f�o�r�e�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �H�e�(�t�h�i�s�,�a�r�g�u�m�e�n�t�s�,�f�u�n�c�t�i�o�n�(�e�)�{�t�h�i�s�.�p�a�r�e�n�t�N�o�d�e�&�&�t�h�i�s�.�p�a�r�e�n�t�N�o�d�e�.�i�n�s�e�r�t�B�e�f�o�r�e�(�e�,�t�h�i�s�)�}�)�}�,�a�f�t�e�r�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �H�e�(�t�h�i�s�,�a�r�g�u�m�e�n�t�s�,�f�u�n�c�t�i�o�n�(�e�)�{�t�h�i�s�.�p�a�r�e�n�t�N�o�d�e�&�&�t�h�i�s�.�p�a�r�e�n�t�N�o�d�e�.�i�n�s�e�r�t�B�e�f�o�r�e�(�e�,�t�h�i�s�.�n�e�x�t�S�i�b�l�i�n�g�)�}�)�}�,�e�m�p�t�y�:�f�u�n�c�t�i�o�n�(�)�{�f�o�r�(�v�a�r� �e�,�t�=�0�;�n�u�l�l�!�=�(�e�=�t�h�i�s�[�t�]�)�;�t�+�+�)�1�=�=�=�e�.�n�o�d�e�T�y�p�e�&�&�(�S�.�c�l�e�a�n�D�a�t�a�(�v�e�(�e�,�!�1�)�)�,�e�.�t�e�x�t�C�o�n�t�e�n�t�=�"�"�)�;�r�e�t�u�r�n� �t�h�i�s�}�,�c�l�o�n�e�:�f�u�n�c�t�i�o�n�(�e�,�t�)�{�r�e�t�u�r�n� �e�=�n�u�l�l�!�=�e�&�&�e�,�t�=�n�u�l�l�=�=�t�?�e�:�t�,�t�h�i�s�.�m�a�p�(�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �S�.�c�l�o�n�e�(�t�h�i�s�,�e�,�t�)�}�)�}�,�h�t�m�l�:�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �$�(�t�h�i�s�,�f�u�n�c�t�i�o�n�(�e�)�{�v�a�r� �t�=�t�h�i�s�[�0�]�|�|�{�}�,�n�=�0�,�r�=�t�h�i�s�.�l�e�n�g�t�h�;�i�f�(�v�o�i�d� �0�=�=�=�e�&�&�1�=�=�=�t�.�n�o�d�e�T�y�p�e�)�r�e�t�u�r�n� �t�.�i�n�n�e�r�H�T�M�L�;�i�f�(�"�s�t�r�i�n�g�"�=�=�t�y�p�e�o�f� �e�&�&�!�k�e�.�t�e�s�t�(�e�)�&�&�!�g�e�[�(�d�e�.�e�x�e�c�(�e�)�|�|�[�"�"�,�"�"�]�)�[�1�]�.�t�o�L�o�w�e�r�C�a�s�e�(�)�]�)�{�e�=�S�.�h�t�m�l�P�r�e�f�i�l�t�e�r�(�e�)�;�t�r�y�{�f�o�r�(�;�n�<�r�;�n�+�+�)�1�=�=�=�(�t�=�t�h�i�s�[�n�]�|�|�{�}�)�.�n�o�d�e�T�y�p�e�&�&�(�S�.�c�l�e�a�n�D�a�t�a�(�v�e�(�t�,�!�1�)�)�,�t�.�i�n�n�e�r�H�T�M�L�=�e�)�;�t�=�0�}�c�a�t�c�h�(�e�)�{�}�}�t�&�&�t�h�i�s�.�e�m�p�t�y�(�)�.�a�p�p�e�n�d�(�e�)�}�,�n�u�l�l�,�e�,�a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�)�}�,�r�e�p�l�a�c�e�W�i�t�h�:�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �n�=�[�]�;�r�e�t�u�r�n� �H�e�(�t�h�i�s�,�a�r�g�u�m�e�n�t�s�,�f�u�n�c�t�i�o�n�(�e�)�{�v�a�r� �t�=�t�h�i�s�.�p�a�r�e�n�t�N�o�d�e�;�S�.�i�n�A�r�r�a�y�(�t�h�i�s�,�n�)�<�0�&�&�(�S�.�c�l�e�a�n�D�a�t�a�(�v�e�(�t�h�i�s�)�)�,�t�&�&�t�.�r�e�p�l�a�c�e�C�h�i�l�d�(�e�,�t�h�i�s�)�)�}�,�n�)�}�}�)�,�S�.�e�a�c�h�(�{�a�p�p�e�n�d�T�o�:�"�a�p�p�e�n�d�"�,�p�r�e�p�e�n�d�T�o�:�"�p�r�e�p�e�n�d�"�,�i�n�s�e�r�t�B�e�f�o�r�e�:�"�b�e�f�o�r�e�"�,�i�n�s�e�r�t�A�f�t�e�r�:�"�a�f�t�e�r�"�,�r�e�p�l�a�c�e�A�l�l�:�"�r�e�p�l�a�c�e�W�i�t�h�"�}�,�f�u�n�c�t�i�o�n�(�e�,�a�)�{�S�.�f�n�[�e�]�=�f�u�n�c�t�i�o�n�(�e�)�{�f�o�r�(�v�a�r� �t�,�n�=�[�]�,�r�=�S�(�e�)�,�i�=�r�.�l�e�n�g�t�h�-�1�,�o�=�0�;�o�<�=�i�;�o�+�+�)�t�=�o�=�=�=�i�?�t�h�i�s�:�t�h�i�s�.�c�l�o�n�e�(�!�0�)�,�S�(�r�[�o�]�)�[�a�]�(�t�)�,�u�.�a�p�p�l�y�(�n�,�t�.�g�e�t�(�)�)�;�r�e�t�u�r�n� �t�h�i�s�.�p�u�s�h�S�t�a�c�k�(�n�)�}�}�)�;�v�a�r� �P�e�=�n�e�w� �R�e�g�E�x�p�(�"�^�(�"�+�e�e�+�"�)�(�?�!�p�x�)�[�a�-�z�%�]�+�$�"�,�"�i�"�)�,�R�e�=�f�u�n�c�t�i�o�n�(�e�)�{�v�a�r� �t�=�e�.�o�w�n�e�r�D�o�c�u�m�e�n�t�.�d�e�f�a�u�l�t�V�i�e�w�;�r�e�t�u�r�n� �t�&�&�t�.�o�p�e�n�e�r�|�|�(�t�=�C�)�,�t�.�g�e�t�C�o�m�p�u�t�e�d�S�t�y�l�e�(�e�)�}�,�M�e�=�f�u�n�c�t�i�o�n�(�e�,�t�,�n�)�{�v�a�r� �r�,�i�,�o�=�{�}�;�f�o�r�(�i� �i�n� �t�)�o�[�i�]�=�e�.�s�t�y�l�e�[�i�]�,�e�.�s�t�y�l�e�[�i�]�=�t�[�i�]�;�f�o�r�(�i� �i�n� �r�=�n�.�c�a�l�l�(�e�)�,�t�)�e�.�s�t�y�l�e�[�i�]�=�o�[�i�]�;�r�e�t�u�r�n� �r�}�,�I�e�=�n�e�w� �R�e�g�E�x�p�(�n�e�.�j�o�i�n�(�"�|�"�)�,�"�i�"�)�;�f�u�n�c�t�i�o�n� �W�e�(�e�,�t�,�n�)�{�v�a�r� �r�,�i�,�o�,�a�,�s�=�e�.�s�t�y�l�e�;�r�e�t�u�r�n�(�n�=�n�|�|�R�e�(�e�)�)�&�&�(�"�"�!�=�=�(�a�=�n�.�g�e�t�P�r�o�p�e�r�t�y�V�a�l�u�e�(�t�)�|�|�n�[�t�]�)�|�|�i�e�(�e�)�|�|�(�a�=�S�.�s�t�y�l�e�(�e�,�t�)�)�,�!�y�.�p�i�x�e�l�B�o�x�S�t�y�l�e�s�(�)�&�&�P�e�.�t�e�s�t�(�a�)�&�&�I�e�.�t�e�s�t�(�t�)�&�&�(�r�=�s�.�w�i�d�t�h�,�i�=�s�.�m�i�n�W�i�d�t�h�,�o�=�s�.�m�a�x�W�i�d�t�h�,�s�.�m�i�n�W�i�d�t�h�=�s�.�m�a�x�W�i�d�t�h�=�s�.�w�i�d�t�h�=�a�,�a�=�n�.�w�i�d�t�h�,�s�.�w�i�d�t�h�=�r�,�s�.�m�i�n�W�i�d�t�h�=�i�,�s�.�m�a�x�W�i�d�t�h�=�o�)�)�,�v�o�i�d� �0�!�=�=�a�?�a�+�"�"�:�a�}�f�u�n�c�t�i�o�n� �F�e�(�e�,�t�)�{�r�e�t�u�r�n�{�g�e�t�:�f�u�n�c�t�i�o�n�(�)�{�i�f�(�!�e�(�)�)�r�e�t�u�r�n�(�t�h�i�s�.�g�e�t�=�t�)�.�a�p�p�l�y�(�t�h�i�s�,�a�r�g�u�m�e�n�t�s�)�;�d�e�l�e�t�e� �t�h�i�s�.�g�e�t�}�}�}�!�f�u�n�c�t�i�o�n�(�)�{�f�u�n�c�t�i�o�n� �e�(�)�{�i�f�(�l�)�{�u�.�s�t�y�l�e�.�c�s�s�T�e�
2x�t�=�"�p�o�s�i�t�i�o�n�:�a�b�s�o�l�u�t�e�;�l�e�f�t�:�-�1�1�1�1�1�p�x�;�w�i�d�t�h�:�6�0�p�x�;�m�a�r�g�i�n�-�t�o�p�:�1�p�x�;�p�a�d�d�i�n�g�:�0�;�b�o�r�d�e�r�:�0�"�,�l�.�s�t�y�l�e�.�c�s�s�T�e�x�t�=�"�p�o�s�i�t�i�o�n�:�r�e�l�a�t�i�v�e�;�d�i�s�p�l�a�y�:�b�l�o�c�k�;�b�o�x�-�s�i�z�i�n�g�:�b�o�r�d�e�r�-�b�o�x�;�o�v�e�r�f�l�o�w�:�s�c�r�o�l�l�;�m�a�r�g�i�n�:�a�u�t�o�;�b�o�r�d�e�r�:�1�p�x�;�p�a�d�d�i�n�g�:�1�p�x�;�w�i�d�t�h�:�6�0�%�;�t�o�p�:�1�%�"�,�r�e�.�a�p�p�e�n�d�C�h�i�l�d�(�u�)�.�a�p�p�e�n�d�C�h�i�l�d�(�l�)�;�v�a�r� �e�=�C�.�g�e�t�C�o�m�p�u�t�e�d�S�t�y�l�e�(�l�)�;�n�=�"�1�%�"�!�=�=�e�.�t�o�p�,�s�=�1�2�=�=�=�t�(�e�.�m�a�r�g�i�n�L�e�f�t�)�,�l�.�s�t�y�l�e�.�r�i�g�h�t�=�"�6�0�%�"�,�o�=�3�6�=�=�=�t�(�e�.�r�i�g�h�t�)�,�r�=�3�6�=�=�=�t�(�e�.�w�i�d�t�h�)�,�l�.�s�t�y�l�e�.�p�o�s�i�t�i�o�n�=�"�a�b�s�o�l�u�t�e�"�,�i�=�1�2�=�=�=�t�(�l�.�o�f�f�s�e�t�W�i�d�t�h�/�3�)�,�r�e�.�r�e�m�o�v�e�C�h�i�l�d�(�u�)�,�l�=�n�u�l�l�}�}�f�u�n�c�t�i�o�n� �t�(�e�)�{�r�e�t�u�r�n� �M�a�t�h�.�r�o�u�n�d�(�p�a�r�s�e�F�l�o�a�t�(�e�)�)�}�v�a�r� �n�,�r�,�i�,�o�,�a�,�s�,�u�=�E�.�c�r�e�a�t�e�E�l�e�m�e�n�t�(�"�d�i�v�"�)�,�l�=�E�.�c�r�e�a�t�e�E�l�e�m�e�n�t�(�"�d�i�v�"�)�;�l�.�s�t�y�l�e�&�&�(�l�.�s�t�y�l�e�.�b�a�c�k�g�r�o�u�n�d�C�l�i�p�=�"�c�o�n�t�e�n�t�-�b�o�x�"�,�l�.�c�l�o�n�e�N�o�d�e�(�!�0�)�.�s�t�y�l�e�.�b�a�c�k�g�r�o�u�n�d�C�l�i�p�=�"�"�,�y�.�c�l�e�a�r�C�l�o�n�e�S�t�y�l�e�=�"�c�o�n�t�e�n�t�-�b�o�x�"�=�=�=�l�.�s�t�y�l�e�.�b�a�c�k�g�r�o�u�n�d�C�l�i�p�,�S�.�e�x�t�e�n�d�(�y�,�{�b�o�x�S�i�z�i�n�g�R�e�l�i�a�b�l�e�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �e�(�)�,�r�}�,�p�i�x�e�l�B�o�x�S�t�y�l�e�s�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �e�(�)�,�o�}�,�p�i�x�e�l�P�o�s�i�t�i�o�n�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �e�(�)�,�n�}�,�r�e�l�i�a�b�l�e�M�a�r�g�i�n�L�e�f�t�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �e�(�)�,�s�}�,�s�c�r�o�l�l�b�o�x�S�i�z�e�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �e�(�)�,�i�}�,�r�e�l�i�a�b�l�e�T�r�D�i�m�e�n�s�i�o�n�s�:�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �e�,�t�,�n�,�r�;�r�e�t�u�r�n� �n�u�l�l�=�=�a�&�&�(�e�=�E�.�c�r�e�a�t�e�E�l�e�m�e�n�t�(�"�t�a�b�l�e�"�)�,�t�=�E�.�c�r�e�a�t�e�E�l�e�m�e�n�t�(�"�t�r�"�)�,�n�=�E�.�c�r�e�a�t�e�E�l�e�m�e�n�t�(�"�d�i�v�"�)�,�e�.�s�t�y�l�e�.�c�s�s�T�e�x�t�=�"�p�o�s�i�t�i�o�n�:�a�b�s�o�l�u�t�e�;�l�e�f�t�:�-�1�1�1�1�1�p�x�;�b�o�r�d�e�r�-�c�o�l�l�a�p�s�e�:�s�e�p�a�r�a�t�e�"�,�t�.�s�t�y�l�e�.�c�s�s�T�e�x�t�=�"�b�o�r�d�e�r�:�1�p�x� �s�o�l�i�d�"�,�t�.�s�t�y�l�e�.�h�e�i�g�h�t�=�"�1�p�x�"�,�n�.�s�t�y�l�e�.�h�e�i�g�h�t�=�"�9�p�x�"�,�n�.�s�t�y�l�e�.�d�i�s�p�l�a�y�=�"�b�l�o�c�k�"�,�r�e�.�a�p�p�e�n�d�C�h�i�l�d�(�e�)�.�a�p�p�e�n�d�C�h�i�l�d�(�t�)�.�a�p�p�e�n�d�C�h�i�l�d�(�n�)�,�r�=�C�.�g�e�t�C�o�m�p�u�t�e�d�S�t�y�l�e�(�t�)�,�a�=�p�a�r�s�e�I�n�t�(�r�.�h�e�i�g�h�t�,�1�0�)�+�p�a�r�s�e�I�n�t�(�r�.�b�o�r�d�e�r�T�o�p�W�i�d�t�h�,�1�0�)�+�p�a�r�s�e�I�n�t�(�r�.�b�o�r�d�e�r�B�o�t�t�o�m�W�i�d�t�h�,�1�0�)�=�=�=�t�.�o�f�f�s�e�t�H�e�i�g�h�t�,�r�e�.�r�e�m�o�v�e�C�h�i�l�d�(�e�)�)�,�a�}�}�)�)�}�(�)�;�v�a�r� �B�e�=�[�"�W�e�b�k�i�t�"�,�"�M�o�z�"�,�"�m�s�"�]�,�$�e�=�E�.�c�r�e�a�t�e�E�l�e�m�e�n�t�(�"�d�i�v�"�)�.�s�t�y�l�e�,�_�e�=�{�}�;�f�u�n�c�t�i�o�n� �z�e�(�e�)�{�v�a�r� �t�=�S�.�c�s�s�P�r�o�p�s�[�e�]�|�|�_�e�[�e�]�;�r�e�t�u�r�n� �t�|�|�(�e� �i�n� �$�e�?�e�:�_�e�[�e�]�=�f�u�n�c�t�i�o�n�(�e�)�{�v�a�r� �t�=�e�[�0�]�.�t�o�U�p�p�e�r�C�a�s�e�(�)�+�e�.�s�l�i�c�e�(�1�)�,�n�=�B�e�.�l�e�n�g�t�h�;�w�h�i�l�e�(�n�-�-�)�i�f�(�(�e�=�B�e�[�n�]�+�t�)�i�n� �$�e�)�r�e�t�u�r�n� �e�}�(�e�)�|�|�e�)�}�v�a�r� �U�e�=�/�^�(�n�o�n�e�|�t�a�b�l�e�(�?�!�-�c�[�e�a�]�)�.�+�)�/�,�X�e�=�/�^�-�-�/�,�V�e�=�{�p�o�s�i�t�i�o�n�:�"�a�b�s�o�l�u�t�e�"�,�v�i�s�i�b�i�l�i�t�y�:�"�h�i�d�d�e�n�"�,�d�i�s�p�l�a�y�:�"�b�l�o�c�k�"�}�,�G�e�=�{�l�e�t�t�e�r�S�p�a�c�i�n�g�:�"�0�"�,�f�o�n�t�W�e�i�g�h�t�:�"�4�0�0�"�}�;�f�u�n�c�t�i�o�n� �Y�e�(�e�,�t�,�n�)�{�v�a�r� �r�=�t�e�.�e�x�e�c�(�t�)�;�r�e�t�u�r�n� �r�?�M�a�t�h�.�m�a�x�(�0�,�r�[�2�]�-�(�n�|�|�0�)�)�+�(�r�[�3�]�|�|�"�p�x�"�)�:�t�}�f�u�n�c�t�i�o�n� �Q�e�(�e�,�t�,�n�,�r�,�i�,�o�)�{�v�a�r� �a�=�"�w�i�d�t�h�"�=�=�=�t�?�1�:�0�,�s�=�0�,�u�=�0�;�i�f�(�n�=�=�=�(�r�?�"�b�o�r�d�e�r�"�:�"�c�o�n�t�e�n�t�"�)�)�r�e�t�u�r�n� �0�;�f�o�r�(�;�a�<�4�;�a�+�=�2�)�"�m�a�r�g�i�n�"�=�=�=�n�&�&�(�u�+�=�S�.�c�s�s�(�e�,�n�+�n�e�[�a�]�,�!�0�,�i�)�)�,�r�?�(�"�c�o�n�t�e�n�t�"�=�=�=�n�&�&�(�u�-�=�S�.�c�s�s�(�e�,�"�p�a�d�d�i�n�g�"�+�n�e�[�a�]�,�!�0�,�i�)�)�,�"�m�a�r�g�i�n�"�!�=�=�n�&�&�(�u�-�=�S�.�c�s�s�(�e�,�"�b�o�r�d�e�r�"�+�n�e�[�a�]�+�"�W�i�d�t�h�"�,�!�0�,�i�)�)�)�:�(�u�+�=�S�.�c�s�s�(�e�,�"�p�a�d�d�i�n�g�"�+�n�e�[�a�]�,�!�0�,�i�)�,�"�p�a�d�d�i�n�g�"�!�=�=�n�?�u�+�=�S�.�c�s�s�(�e�,�"�b�o�r�d�e�r�"�+�n�e�[�a�]�+�"�W�i�d�t�h�"�,�!�0�,�i�)�:�s�+�=�S�.�c�s�s�(�e�,�"�b�o�r�d�e�r�"�+�n�e�[�a�]�+�"�W�i�d�t�h�"�,�!�0�,�i�)�)�;�r�e�t�u�r�n�!�r�&�&�0�<�=�o�&�&�(�u�+�=�M�a�t�h�.�m�a�x�(�0�,�M�a�t�h�.�c�e�i�l�(�e�[�"�o�f�f�s�e�t�"�+�t�[�0�]�.�t�o�U�p�p�e�r�C�a�s�e�(�)�+�t�.�s�l�i�c�e�(�1�)�]�-�o�-�u�-�s�-�.�5�)�)�|�|�0�)�,�u�}�f�u�n�c�t�i�o�n� �J�e�(�e�,�t�,�n�)�{�v�a�r� �r�=�R�e�(�e�)�,�i�=�(�!�y�.�b�o�x�S�i�z�i�n�g�R�e�l�i�a�b�l�e�(�)�|�|�n�)�&�&�"�b�o�r�d�e�r�-�b�o�x�"�=�=�=�S�.�c�s�s�(�e�,�"�b�o�x�S�i�z�i�n�g�"�,�!�1�,�r�)�,�o�=�i�,�a�=�W�e�(�e�,�t�,�r�)�,�s�=�"�o�f�f�s�e�t�"�+�t�[�0�]�.�t�o�U�p�p�e�r�C�a�s�e�(�)�+�t�.�s�l�i�c�e�(�1�)�;�i�f�(�P�e�.�t�e�s�t�(�a�)�)�{�i�f�(�!�n�)�r�e�t�u�r�n� �a�;�a�=�"�a�u�t�o�"�}�r�e�t�u�r�n�(�!�y�.�b�o�x�S�i�z�i�n�g�R�e�l�i�a�b�l�e�(�)�&�&�i�|�|�!�y�.�r�e�l�i�a�b�l�e�T�r�D�i�m�e�n�s�i�o�n�s�(�)�&�&�A�(�e�,�"�t�r�"�)�|�|�"�a�u�t�o�"�=�=�=�a�|�|�!�p�a�r�s�e�F�l�o�a�t�(�a�)�&�&�"�i�n�l�i�n�e�"�=�=�=�S�.�c�s�s�(�e�,�"�d�i�s�p�l�a�y�"�,�!�1�,�r�)�)�&�&�e�.�g�e�t�C�l�i�e�n�t�R�e�c�t�s�(�)�.�l�e�n�g�t�h�&�&�(�i�=�"�b�o�r�d�e�r�-�b�o�x�"�=�=�=�S�.�c�s�s�(�e�,�"�b�o�x�S�i�z�i�n�g�"�,�!�1�,�r�)�,�(�o�=�s� �i�n� �e�)�&�&�(�a�=�e�[�s�]�)�)�,�(�a�=�p�a�r�s�e�F�l�o�a�t�(�a�)�|�|�0�)�+�Q�e�(�e�,�t�,�n�|�|�(�i�?�"�b�o�r�d�e�r�"�:�"�c�o�n�t�e�n�t�"�
2)�,�o�,�r�,�a�)�+�"�p�x�"�}�f�u�n�c�t�i�o�n� �K�e�(�e�,�t�,�n�,�r�,�i�)�{�r�e�t�u�r�n� �n�e�w� �K�e�.�p�r�o�t�o�t�y�p�e�.�i�n�i�t�(�e�,�t�,�n�,�r�,�i�)�}�S�.�e�x�t�e�n�d�(�{�c�s�s�H�o�o�k�s�:�{�o�p�a�c�i�t�y�:�{�g�e�t�:�f�u�n�c�t�i�o�n�(�e�,�t�)�{�i�f�(�t�)�{�v�a�r� �n�=�W�e�(�e�,�"�o�p�a�c�i�t�y�"�)�;�r�e�t�u�r�n�"�"�=�=�=�n�?�"�1�"�:�n�}�}�}�}�,�c�s�s�N�u�m�b�e�r�:�{�a�n�i�m�a�t�i�o�n�I�t�e�r�a�t�i�o�n�C�o�u�n�t�:�!�0�,�c�o�l�u�m�n�C�o�u�n�t�:�!�0�,�f�i�l�l�O�p�a�c�i�t�y�:�!�0�,�f�l�e�x�G�r�o�w�:�!�0�,�f�l�e�x�S�h�r�i�n�k�:�!�0�,�f�o�n�t�W�e�i�g�h�t�:�!�0�,�g�r�i�d�A�r�e�a�:�!�0�,�g�r�i�d�C�o�l�u�m�n�:�!�0�,�g�r�i�d�C�o�l�u�m�n�E�n�d�:�!�0�,�g�r�i�d�C�o�l�u�m�n�S�t�a�r�t�:�!�0�,�g�r�i�d�R�o�w�:�!�0�,�g�r�i�d�R�o�w�E�n�d�:�!�0�,�g�r�i�d�R�o�w�S�t�a�r�t�:�!�0�,�l�i�n�e�H�e�i�g�h�t�:�!�0�,�o�p�a�c�i�t�y�:�!�0�,�o�r�d�e�r�:�!�0�,�o�r�p�h�a�n�s�:�!�0�,�w�i�d�o�w�s�:�!�0�,�z�I�n�d�e�x�:�!�0�,�z�o�o�m�:�!�0�}�,�c�s�s�P�r�o�p�s�:�{�}�,�s�t�y�l�e�:�f�u�n�c�t�i�o�n�(�e�,�t�,�n�,�r�)�{�i�f�(�e�&�&�3�!�=�=�e�.�n�o�d�e�T�y�p�e�&�&�8�!�=�=�e�.�n�o�d�e�T�y�p�e�&�&�e�.�s�t�y�l�e�)�{�v�a�r� �i�,�o�,�a�,�s�=�X�(�t�)�,�u�=�X�e�.�t�e�s�t�(�t�)�,�l�=�e�.�s�t�y�l�e�;�i�f�(�u�|�|�(�t�=�z�e�(�s�)�)�,�a�=�S�.�c�s�s�H�o�o�k�s�[�t�]�|�|�S�.�c�s�s�H�o�o�k�s�[�s�]�,�v�o�i�d� �0�=�=�=�n�)�r�e�t�u�r�n� �a�&�&�"�g�e�t�"�i�n� �a�&�&�v�o�i�d� �0�!�=�=�(�i�=�a�.�g�e�t�(�e�,�!�1�,�r�)�)�?�i�:�l�[�t�]�;�"�s�t�r�i�n�g�"�=�=�=�(�o�=�t�y�p�e�o�f� �n�)�&�&�(�i�=�t�e�.�e�x�e�c�(�n�)�)�&�&�i�[�1�]�&�&�(�n�=�s�e�(�e�,�t�,�i�)�,�o�=�"�n�u�m�b�e�r�"�)�,�n�u�l�l�!�=�n�&�&�n�=�=�n�&�&�(�"�n�u�m�b�e�r�"�!�=�=�o�|�|�u�|�|�(�n�+�=�i�&�&�i�[�3�]�|�|�(�S�.�c�s�s�N�u�m�b�e�r�[�s�]�?�"�"�:�"�p�x�"�)�)�,�y�.�c�l�e�a�r�C�l�o�n�e�S�t�y�l�e�|�|�"�"�!�=�=�n�|�|�0�!�=�=�t�.�i�n�d�e�x�O�f�(�"�b�a�c�k�g�r�o�u�n�d�"�)�|�|�(�l�[�t�]�=�"�i�n�h�e�r�i�t�"�)�,�a�&�&�"�s�e�t�"�i�n� �a�&�&�v�o�i�d� �0�=�=�=�(�n�=�a�.�s�e�t�(�e�,�n�,�r�)�)�|�|�(�u�?�l�.�s�e�t�P�r�o�p�e�r�t�y�(�t�,�n�)�:�l�[�t�]�=�n�)�)�}�}�,�c�s�s�:�f�u�n�c�t�i�o�n�(�e�,�t�,�n�,�r�)�{�v�a�r� �i�,�o�,�a�,�s�=�X�(�t�)�;�r�e�t�u�r�n� �X�e�.�t�e�s�t�(�t�)�|�|�(�t�=�z�e�(�s�)�)�,�(�a�=�S�.�c�s�s�H�o�o�k�s�[�t�]�|�|�S�.�c�s�s�H�o�o�k�s�[�s�]�)�&�&�"�g�e�t�"�i�n� �a�&�&�(�i�=�a�.�g�e�t�(�e�,�!�0�,�n�)�)�,�v�o�i�d� �0�=�=�=�i�&�&�(�i�=�W�e�(�e�,�t�,�r�)�)�,�"�n�o�r�m�a�l�"�=�=�=�i�&�&�t� �i�n� �G�e�&�&�(�i�=�G�e�[�t�]�)�,�"�"�=�=�=�n�|�|�n�?�(�o�=�p�a�r�s�e�F�l�o�a�t�(�i�)�,�!�0�=�=�=�n�|�|�i�s�F�i�n�i�t�e�(�o�)�?�o�|�|�0�:�i�)�:�i�}�}�)�,�S�.�e�a�c�h�(�[�"�h�e�i�g�h�t�"�,�"�w�i�d�t�h�"�]�,�f�u�n�c�t�i�o�n�(�e�,�u�)�{�S�.�c�s�s�H�o�o�k�s�[�u�]�=�{�g�e�t�:�f�u�n�c�t�i�o�n�(�e�,�t�,�n�)�{�i�f�(�t�)�r�e�t�u�r�n�!�U�e�.�t�e�s�t�(�S�.�c�s�s�(�e�,�"�d�i�s�p�l�a�y�"�)�)�|�|�e�.�g�e�t�C�l�i�e�n�t�R�e�c�t�s�(�)�.�l�e�n�g�t�h�&�&�e�.�g�e�t�B�o�u�n�d�i�n�g�C�l�i�e�n�t�R�e�c�t�(�)�.�w�i�d�t�h�?�J�e�(�e�,�u�,�n�)�:�M�e�(�e�,�V�e�,�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �J�e�(�e�,�u�,�n�)�}�)�}�,�s�e�t�:�f�u�n�c�t�i�o�n�(�e�,�t�,�n�)�{�v�a�r� �r�,�i�=�R�e�(�e�)�,�o�=�!�y�.�s�c�r�o�l�l�b�o�x�S�i�z�e�(�)�&�&�"�a�b�s�o�l�u�t�e�"�=�=�=�i�.�p�o�s�i�t�i�o�n�,�a�=�(�o�|�|�n�)�&�&�"�b�o�r�d�e�r�-�b�o�x�"�=�=�=�S�.�c�s�s�(�e�,�"�b�o�x�S�i�z�i�n�g�"�,�!�1�,�i�)�,�s�=�n�?�Q�e�(�e�,�u�,�n�,�a�,�i�)�:�0�;�r�e�t�u�r�n� �a�&�&�o�&�&�(�s�-�=�M�a�t�h�.�c�e�i�l�(�e�[�"�o�f�f�s�e�t�"�+�u�[�0�]�.�t�o�U�p�p�e�r�C�a�s�e�(�)�+�u�.�s�l�i�c�e�(�1�)�]�-�p�a�r�s�e�F�l�o�a�t�(�i�[�u�]�)�-�Q�e�(�e�,�u�,�"�b�o�r�d�e�r�"�,�!�1�,�i�)�-�.�5�)�)�,�s�&�&�(�r�=�t�e�.�e�x�e�c�(�t�)�)�&�&�"�p�x�"�!�=�=�(�r�[�3�]�|�|�"�p�x�"�)�&�&�(�e�.�s�t�y�l�e�[�u�]�=�t�,�t�=�S�.�c�s�s�(�e�,�u�)�)�,�Y�e�(�0�,�t�,�s�)�}�}�}�)�,�S�.�c�s�s�H�o�o�k�s�.�m�a�r�g�i�n�L�e�f�t�=�F�e�(�y�.�r�e�l�i�a�b�l�e�M�a�r�g�i�n�L�e�f�t�,�f�u�n�c�t�i�o�n�(�e�,�t�)�{�i�f�(�t�)�r�e�t�u�r�n�(�p�a�r�s�e�F�l�o�a�t�(�W�e�(�e�,�"�m�a�r�g�i�n�L�e�f�t�"�)�)�|�|�e�.�g�e�t�B�o�u�n�d�i�n�g�C�l�i�e�n�t�R�e�c�t�(�)�.�l�e�f�t�-�M�e�(�e�,�{�m�a�r�g�i�n�L�e�f�t�:�0�}�,�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �e�.�g�e�t�B�o�u�n�d�i�n�g�C�l�i�e�n�t�R�e�c�t�(�)�.�l�e�f�t�}�)�)�+�"�p�x�"�}�)�,�S�.�e�a�c�h�(�{�m�a�r�g�i�n�:�"�"�,�p�a�d�d�i�n�g�:�"�"�,�b�o�r�d�e�r�:�"�W�i�d�t�h�"�}�,�f�u�n�c�t�i�o�n�(�i�,�o�)�{�S�.�c�s�s�H�o�o�k�s�[�i�+�o�]�=�{�e�x�p�a�n�d�:�f�u�n�c�t�i�o�n�(�e�)�{�f�o�r�(�v�a�r� �t�=�0�,�n�=�{�}�,�r�=�"�s�t�r�i�n�g�"�=�=�t�y�p�e�o�f� �e�?�e�.�s�p�l�i�t�(�"� �"�)�:�[�e�]�;�t�<�4�;
2�t�+�+�)�n�[�i�+�n�e�[�t�]�+�o�]�=�r�[�t�]�|�|�r�[�t�-�2�]�|�|�r�[�0�]�;�r�e�t�u�r�n� �n�}�}�,�"�m�a�r�g�i�n�"�!�=�=�i�&�&�(�S�.�c�s�s�H�o�o�k�s�[�i�+�o�]�.�s�e�t�=�Y�e�)�}�)�,�S�.�f�n�.�e�x�t�e�n�d�(�{�c�s�s�:�f�u�n�c�t�i�o�n�(�e�,�t�)�{�r�e�t�u�r�n� �$�(�t�h�i�s�,�f�u�n�c�t�i�o�n�(�e�,�t�,�n�)�{�v�a�r� �r�,�i�,�o�=�{�}�,�a�=�0�;�i�f�(�A�r�r�a�y�.�i�s�A�r�r�a�y�(�t�)�)�{�f�o�r�(�r�=�R�e�(�e�)�,�i�=�t�.�l�e�n�g�t�h�;�a�<�i�;�a�+�+�)�o�[�t�[�a�]�]�=�S�.�c�s�s�(�e�,�t�[�a�]�,�!�1�,�r�)�;�r�e�t�u�r�n� �o�}�r�e�t�u�r�n� �v�o�i�d� �0�!�=�=�n�?�S�.�s�t�y�l�e�(�e�,�t�,�n�)�:�S�.�c�s�s�(�e�,�t�)�}�,�e�,�t�,�1�<�a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�)�}�}�)�,�(�(�S�.�T�w�e�e�n�=�K�e�)�.�p�r�o�t�o�t�y�p�e�=�{�c�o�n�s�t�r�u�c�t�o�r�:�K�e�,�i�n�i�t�:�f�u�n�c�t�i�o�n�(�e�,�t�,�n�,�r�,�i�,�o�)�{�t�h�i�s�.�e�l�e�m�=�e�,�t�h�i�s�.�p�r�o�p�=�n�,�t�h�i�s�.�e�a�s�i�n�g�=�i�|�|�S�.�e�a�s�i�n�g�.�_�d�e�f�a�u�l�t�,�t�h�i�s�.�o�p�t�i�o�n�s�=�t�,�t�h�i�s�.�s�t�a�r�t�=�t�h�i�s�.�n�o�w�=�t�h�i�s�.�c�u�r�(�)�,�t�h�i�s�.�e�n�d�=�r�,�t�h�i�s�.�u�n�i�t�=�o�|�|�(�S�.�c�s�s�N�u�m�b�e�r�[�n�]�?�"�"�:�"�p�x�"�)�}�,�c�u�r�:�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �e�=�K�e�.�p�r�o�p�H�o�o�k�s�[�t�h�i�s�.�p�r�o�p�]�;�r�e�t�u�r�n� �e�&�&�e�.�g�e�t�?�e�.�g�e�t�(�t�h�i�s�)�:�K�e�.�p�r�o�p�H�o�o�k�s�.�_�d�e�f�a�u�l�t�.�g�e�t�(�t�h�i�s�)�}�,�r�u�n�:�f�u�n�c�t�i�o�n�(�e�)�{�v�a�r� �t�,�n�=�K�e�.�p�r�o�p�H�o�o�k�s�[�t�h�i�s�.�p�r�o�p�]�;�r�e�t�u�r�n� �t�h�i�s�.�o�p�t�i�o�n�s�.�d�u�r�a�t�i�o�n�?�t�h�i�s�.�p�o�s�=�t�=�S�.�e�a�s�i�n�g�[�t�h�i�s�.�e�a�s�i�n�g�]�(�e�,�t�h�i�s�.�o�p�t�i�o�n�s�.�d�u�r�a�t�i�o�n�*�e�,�0�,�1�,�t�h�i�s�.�o�p�t�i�o�n�s�.�d�u�r�a�t�i�o�n�)�:�t�h�i�s�.�p�o�s�=�t�=�e�,�t�h�i�s�.�n�o�w�=�(�t�h�i�s�.�e�n�d�-�t�h�i�s�.�s�t�a�r�t�)�*�t�+�t�h�i�s�.�s�t�a�r�t�,�t�h�i�s�.�o�p�t�i�o�n�s�.�s�t�e�p�&�&�t�h�i�s�.�o�p�t�i�o�n�s�.�s�t�e�p�.�c�a�l�l�(�t�h�i�s�.�e�l�e�m�,�t�h�i�s�.�n�o�w�,�t�h�i�s�)�,�n�&�&�n�.�s�e�t�?�n�.�s�e�t�(�t�h�i�s�)�:�K�e�.�p�r�o�p�H�o�o�k�s�.�_�d�e�f�a�u�l�t�.�s�e�t�(�t�h�i�s�)�,�t�h�i�s�}�}�)�.�i�n�i�t�.�p�r�o�t�o�t�y�p�e�=�K�e�.�p�r�o�t�o�t�y�p�e�,�(�K�e�.�p�r�o�p�H�o�o�k�s�=�{�_�d�e�f�a�u�l�t�:�{�g�e�t�:�f�u�n�c�t�i�o�n�(�e�)�{�v�a�r� �t�;�r�e�t�u�r�n� �1�!�=�=�e�.�e�l�e�m�.�n�o�d�e�T�y�p�e�|�|�n�u�l�l�!�=�e�.�e�l�e�m�[�e�.�p�r�o�p�]�&�&�n�u�l�l�=�=�e�.�e�l�e�m�.�s�t�y�l�e�[�e�.�p�r�o�p�]�?�e�.�e�l�e�m�[�e�.�p�r�o�p�]�:�(�t�=�S�.�c�s�s�(�e�.�e�l�e�m�,�e�.�p�r�o�p�,�"�"�)�)�&�&�"�a�u�t�o�"�!�=�=�t�?�t�:�0�}�,�s�e�t�:�f�u�n�c�t�i�o�n�(�e�)�{�S�.�f�x�.�s�t�e�p�[�e�.�p�r�o�p�]�?�S�.�f�x�.�s�t�e�p�[�e�.�p�r�o�p�]�(�e�)�:�1�!�=�=�e�.�e�l�e�m�.�n�o�d�e�T�y�p�e�|�|�!�S�.�c�s�s�H�o�o�k�s�[�e�.�p�r�o�p�]�&�&�n�u�l�l�=�=�e�.�e�l�e�m�.�s�t�y�l�e�[�z�e�(�e�.�p�r�o�p�)�]�?�e�.�e�l�e�m�[�e�.�p�r�o�p�]�=�e�.�n�o�w�:�S�.�s�t�y�l�e�(�e�.�e�l�e�m�,�e�.�p�r�o�p�,�e�.�n�o�w�+�e�.�u�n�i�t�)�}�}�}�)�.�s�c�r�o�l�l�T�o�p�=�K�e�.�p�r�o�p�H�o�o�k�s�.�s�c�r�o�l�l�L�e�f�t�=�{�s�e�t�:�f�u�n�c�t�i�o�n�(�e�)�{�e�.�e�l�e�m�.�n�o�d�e�T�y�p�e�&�&�e�.�e�l�e�m�.�p�a�r�e�n�t�N�o�d�e�&�&�(�e�.�e�l�e�m�[�e�.�p�r�o�p�]�=�e�.�n�o�w�)�}�}�,�S�.�e�a�s�i�n�g�=�{�l�i�n�e�a�r�:�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �e�}�,�s�w�i�n�g�:�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n�.�5�-�M�a�t�h�.�c�o�s�(�e�*�M�a�t�h�.�P�I�)�/�2�}�,�_�d�e�f�a�u�l�t�:�"�s�w�i�n�g�"�}�,�S�.�f�x�=�K�e�.�p�r�o�t�o�t�y�p�e�.�i�n�i�t�,�S�.�f�x�.�s�t�e�p�=�{�}�;�v�a�r� �Z�e�,�e�t�,�t�t�,�n�t�,�r�t�=�/�^�(�?�:�t�o�g�g�l�e�|�s�h�o�w�|�h�i�d�e�)�$�/�,�i�t�=�/�q�u�e�u�e�H�o�o�k�s�$�/�;�f�u�n�c�t�i�o�n� �o�t�(�)�{�e�t�&�&�(�!�1�=�=�=�E�.�h�i�d�d�e�n�&�&�C�.�r�e�q�u�e�s�t�A�n�i�m�a�t�i�o�n�F�r�a�m�e�?�C�.�r�e�q�u�e�s�t�A�n�i�m�a�t�i�o�n�F�r�a�m�e�(�o�t�)�:�C�.�s�e�t�T�i�m�e�o�u�t�(�o�t�,�S�.�f�x�.�i�n�t�e�r�v�a�l�)�,�S�.�f�x�.�t�i�c�k�(�)�)�}�f�u�n�c�t�i�o�n� �a�t�(�)�{�r�e�t�u�r�n� �C�.�s�e�t�T�i�m�e�o�u�t�(�f�u�n�c�t�i�o�n�(�)�{�Z�e�=�v�o�i�d� �0�}�)�,�Z�e�=�D�a�t�e�.�n�o�w�(�)�}�f�u�n�c�t�i�o�n� �s�t�(�e�,�t�)�{�v�a�r� �n�,�r�=�0�,�i�=�{�h�e�i�g�h�t�:�e�}�;�f�o�r�(�t�=�t�?�1�:�0�;�r�<�4�;�r�+�=�2�-�t�)�i�[�"�m�a�r�g�i�n�"�+�(�n�=�n�e�[�r�]�)�]�=�i�[�"�p�a�d�d�i�n�g�"�+�n�]�=�e�;�r�e�t�u�r�n� �t�&�&�(�i�.�o�p�a�c�i�t�y�=�i�.�w�i�d�t�h�=�e�)�,�i�}�f�u�n�c�t�i�o�n� �u�t�(�e�,�t�,�n�)�{�f�o�r�(�v�a�r� �r�,�i�=�(�l�t�.�t�w�e�e�n�e�r�s�[�t�]�|�|�[�]�)�.�c�o�n�c�a�t�(�l�t�.�t�w�e�e�n�e�r�s�[�"�*�"�]�)�,�o�=�0�,�a�=�i�.�l�e�n�g�t�h�;�o�<�a�;�o�+�+�)�i�f�(�r�=�i�[�o�]�.�c�a�l�l�(�n�,�t�,�e�)�)�r�e�t�u�r�n� �r�}�f�u�n�c�t�i�o�n� �l�t�(�o�,�e�,�t�)�{�v�a�r� �n�,�a�,�r�=�0�,�i�=�l�t�.�p�r�e�f�i�l�t�e�r
2�s�.�l�e�n�g�t�h�,�s�=�S�.�D�e�f�e�r�r�e�d�(�)�.�a�l�w�a�y�s�(�f�u�n�c�t�i�o�n�(�)�{�d�e�l�e�t�e� �u�.�e�l�e�m�}�)�,�u�=�f�u�n�c�t�i�o�n�(�)�{�i�f�(�a�)�r�e�t�u�r�n�!�1�;�f�o�r�(�v�a�r� �e�=�Z�e�|�|�a�t�(�)�,�t�=�M�a�t�h�.�m�a�x�(�0�,�l�.�s�t�a�r�t�T�i�m�e�+�l�.�d�u�r�a�t�i�o�n�-�e�)�,�n�=�1�-�(�t�/�l�.�d�u�r�a�t�i�o�n�|�|�0�)�,�r�=�0�,�i�=�l�.�t�w�e�e�n�s�.�l�e�n�g�t�h�;�r�<�i�;�r�+�+�)�l�.�t�w�e�e�n�s�[�r�]�.�r�u�n�(�n�)�;�r�e�t�u�r�n� �s�.�n�o�t�i�f�y�W�i�t�h�(�o�,�[�l�,�n�,�t�]�)�,�n�<�1�&�&�i�?�t�:�(�i�|�|�s�.�n�o�t�i�f�y�W�i�t�h�(�o�,�[�l�,�1�,�0�]�)�,�s�.�r�e�s�o�l�v�e�W�i�t�h�(�o�,�[�l�]�)�,�!�1�)�}�,�l�=�s�.�p�r�o�m�i�s�e�(�{�e�l�e�m�:�o�,�p�r�o�p�s�:�S�.�e�x�t�e�n�d�(�{�}�,�e�)�,�o�p�t�s�:�S�.�e�x�t�e�n�d�(�!�0�,�{�s�p�e�c�i�a�l�E�a�s�i�n�g�:�{�}�,�e�a�s�i�n�g�:�S�.�e�a�s�i�n�g�.�_�d�e�f�a�u�l�t�}�,�t�)�,�o�r�i�g�i�n�a�l�P�r�o�p�e�r�t�i�e�s�:�e�,�o�r�i�g�i�n�a�l�O�p�t�i�o�n�s�:�t�,�s�t�a�r�t�T�i�m�e�:�Z�e�|�|�a�t�(�)�,�d�u�r�a�t�i�o�n�:�t�.�d�u�r�a�t�i�o�n�,�t�w�e�e�n�s�:�[�]�,�c�r�e�a�t�e�T�w�e�e�n�:�f�u�n�c�t�i�o�n�(�e�,�t�)�{�v�a�r� �n�=�S�.�T�w�e�e�n�(�o�,�l�.�o�p�t�s�,�e�,�t�,�l�.�o�p�t�s�.�s�p�e�c�i�a�l�E�a�s�i�n�g�[�e�]�|�|�l�.�o�p�t�s�.�e�a�s�i�n�g�)�;�r�e�t�u�r�n� �l�.�t�w�e�e�n�s�.�p�u�s�h�(�n�)�,�n�}�,�s�t�o�p�:�f�u�n�c�t�i�o�n�(�e�)�{�v�a�r� �t�=�0�,�n�=�e�?�l�.�t�w�e�e�n�s�.�l�e�n�g�t�h�:�0�;�i�f�(�a�)�r�e�t�u�r�n� �t�h�i�s�;�f�o�r�(�a�=�!�0�;�t�<�n�;�t�+�+�)�l�.�t�w�e�e�n�s�[�t�]�.�r�u�n�(�1�)�;�r�e�t�u�r�n� �e�?�(�s�.�n�o�t�i�f�y�W�i�t�h�(�o�,�[�l�,�1�,�0�]�)�,�s�.�r�e�s�o�l�v�e�W�i�t�h�(�o�,�[�l�,�e�]�)�)�:�s�.�r�e�j�e�c�t�W�i�t�h�(�o�,�[�l�,�e�]�)�,�t�h�i�s�}�}�)�,�c�=�l�.�p�r�o�p�s�;�f�o�r�(�!�f�u�n�c�t�i�o�n�(�e�,�t�)�{�v�a�r� �n�,�r�,�i�,�o�,�a�;�f�o�r�(�n� �i�n� �e�)�i�f�(�i�=�t�[�r�=�X�(�n�)�]�,�o�=�e�[�n�]�,�A�r�r�a�y�.�i�s�A�r�r�a�y�(�o�)�&�&�(�i�=�o�[�1�]�,�o�=�e�[�n�]�=�o�[�0�]�)�,�n�!�=�=�r�&�&�(�e�[�r�]�=�o�,�d�e�l�e�t�e� �e�[�n�]�)�,�(�a�=�S�.�c�s�s�H�o�o�k�s�[�r�]�)�&�&�"�e�x�p�a�n�d�"�i�n� �a�)�f�o�r�(�n� �i�n� �o�=�a�.�e�x�p�a�n�d�(�o�)�,�d�e�l�e�t�e� �e�[�r�]�,�o�)�n� �i�n� �e�|�|�(�e�[�n�]�=�o�[�n�]�,�t�[�n�]�=�i�)�;�e�l�s�e� �t�[�r�]�=�i�}�(�c�,�l�.�o�p�t�s�.�s�p�e�c�i�a�l�E�a�s�i�n�g�)�;�r�<�i�;�r�+�+�)�i�f�(�n�=�l�t�.�p�r�e�f�i�l�t�e�r�s�[�r�]�.�c�a�l�l�(�l�,�o�,�c�,�l�.�o�p�t�s�)�)�r�e�t�u�r�n� �m�(�n�.�s�t�o�p�)�&�&�(�S�.�_�q�u�e�u�e�H�o�o�k�s�(�l�.�e�l�e�m�,�l�.�o�p�t�s�.�q�u�e�u�e�)�.�s�t�o�p�=�n�.�s�t�o�p�.�b�i�n�d�(�n�)�)�,�n�;�r�e�t�u�r�n� �S�.�m�a�p�(�c�,�u�t�,�l�)�,�m�(�l�.�o�p�t�s�.�s�t�a�r�t�)�&�&�l�.�o�p�t�s�.�s�t�a�r�t�.�c�a�l�l�(�o�,�l�)�,�l�.�p�r�o�g�r�e�s�s�(�l�.�o�p�t�s�.�p�r�o�g�r�e�s�s�)�.�d�o�n�e�(�l�.�o�p�t�s�.�d�o�n�e�,�l�.�o�p�t�s�.�c�o�m�p�l�e�t�e�)�.�f�a�i�l�(�l�.�o�p�t�s�.�f�a�i�l�)�.�a�l�w�a�y�s�(�l�.�o�p�t�s�.�a�l�w�a�y�s�)�,�S�.�f�x�.�t�i�m�e�r�(�S�.�e�x�t�e�n�d�(�u�,�{�e�l�e�m�:�o�,�a�n�i�m�:�l�,�q�u�e�u�e�:�l�.�o�p�t�s�.�q�u�e�u�e�}�)�)�,�l�}�S�.�A�n�i�m�a�t�i�o�n�=�S�.�e�x�t�e�n�d�(�l�t�,�{�t�w�e�e�n�e�r�s�:�{�"�*�"�:�[�f�u�n�c�t�i�o�n�(�e�,�t�)�{�v�a�r� �n�=�t�h�i�s�.�c�r�e�a�t�e�T�w�e�e�n�(�e�,�t�)�;�r�e�t�u�r�n� �s�e�(�n�.�e�l�e�m�,�e�,�t�e�.�e�x�e�c�(�t�)�,�n�)�,�n�}�]�}�,�t�w�e�e�n�e�r�:�f�u�n�c�t�i�o�n�(�e�,�t�)�{�m�(�e�)�?�(�t�=�e�,�e�=�[�"�*�"�]�)�:�e�=�e�.�m�a�t�c�h�(�P�)�;�f�o�r�(�v�a�r� �n�,�r�=�0�,�i�=�e�.�l�e�n�g�t�h�;�r�<�i�;�r�+�+�)�n�=�e�[�r�]�,�l�t�.�t�w�e�e�n�e�r�s�[�n�]�=�l�t�.�t�w�e�e�n�e�r�s�[�n�]�|�|�[�]�,�l�t�.�t�w�e�e�n�e�r�s�[�n�]�.�u�n�s�h�i�f�t�(�t�)�}�,�p�r�e�f�i�l�t�e�r�s�:�[�f�u�n�c�t�i�o�n�(�e�,�t�,�n�)�{�v�a�r� �r�,�i�,�o�,�a�,�s�,�u�,�l�,�c�,�f�=�"�w�i�d�t�h�"�i�n� �t�|�|�"�h�e�i�g�h�t�"�i�n� �t�,�p�=�t�h�i�s�,�d�=�{�}�,�h�=�e�.�s�t�y�l�e�,�g�=�e�.�n�o�d�e�T�y�p�e�&�&�a�e�(�e�)�,�v�=�Y�.�g�e�t�(�e�,�"�f�x�s�h�o�w�"�)�;�f�o�r�(�r� �i�n� �n�.�q�u�e�u�e�|�|�(�n�u�l�l�=�=�(�a�=�S�.�_�q�u�e�u�e�H�o�o�k�s�(�e�,�"�f�x�"�)�)�.�u�n�q�u�e�u�e�d�&�&�(�a�.�u�n�q�u�e�u�e�d�=�0�,�s�=�a�.�e�m�p�t�y�.�f�i�r�e�,�a�.�e�m�p�t�y�.�f�i�r�e�=�f�u�n�c�t�i�o�n�(�)�{�a�.�u�n�q�u�e�u�e�d�|�|�s�(�)�}�)�,�a�.�u�n�q�u�e�u�e�d�+�+�,�p�.�a�l�w�a�y�s�(�f�u�n�c�t�i�o�n�(�)�{�p�.�a�l�w�a�y�s�(�f�u�n�c�t�i�o�n�(�)�{�a�.�u�n�q�u�e�u�e�d�-�-�,�S�.�q�u�e�u�e�(�e�,�"�f�x�"�)�.�l�e�n�g�t�h�|�|�a�.�e�m�p�t�y�.�f�i�r�e�(�)�}�)�}�)�)�,�t�)�i�f�(�i�=�t�[�r�]�,�r�t�.�t�e�s�t�(�i�)�)�{�i�f�(�d�e�l�e�t�e� �t�[�r�]�,�o�=�o�|�|�"�t�o�g�g�l�e�"�=�=�=�i�,�i�=�=�=�(�g�?�"�h�i�d�e�"�:�"�s�h�o�w�"�)�)�{�i�f�(�"�s�h�o�w�"�!�=�=�i�|�|�!�v�|�|�v�o�i�d� �0�=�=�=�v�[�r�]�)�c�o�n�t�i�n�u�e�;�g�=�!�0�}�d�[�r�]�=�v�&�&�v�[�r�]�|�|�S�.�s�t�y�l�e�(�e�,�r�)�}�i�f�(�(�u�=�!�S�.�i�s�E�m�p�t�y�O�b�j�e�c�t�(�t�)�)�|�|�!�S�.�i�s�E�m�p�t�y�O�b�j�e�c�t�(�d�)�)�f�o�r�(�r� �i�n� �f�&�&�1�=�=�=�e�.�n�o�d�e�T�y�p�e�&�&�(�n�.�o�v�e�r�f�l�o�w�=�[�h�.�o�v�e�r�f�l�o�w�,�h�.�o�v�e�r�f�l�o�w�X�,�h�.�o�v�e�r�f�l�o�w�Y�]�,�n�u�l�l�=�=�(�l�=�v�&�&�v�.�d�i�s�p�l�a�y�)�&�&�(�l�=�Y�.�g�e�t�(�e�,�"�d�i�s�p�l�a�y�"�)�)�,�"�n�o�n�e�"�=�=�=�(�c�=�S�.�c�s�s�(�e�,�"�d�i�s�p�l�a�y�"�)�)�&�&�(�l�?�c�=�l�:�(�l�e�(�[�e�]�,�!�0�)�,�l�=�e�.�s�t�y�l�e�.�d�i�s�p�l�a�y�|�|�l�,�c�=�S�.�c�s�s�(�e�,�"�d�i�s�p�l�a�y�"�)�,�l�e�(�[�e�]�)�)�)�,�(�"�i�n�l�i�n�e�"�=�=�=�c�|�|�"�i�n�l�i�n�e�-�b�l�o�c�k�"�=�=�=�c�&�&�n�u�l�l�!�=�l�)�&�&�"�n�o�n�e�"�=�=�=�S�.�c�s�s�(�e�,�"�f�l�o�a�t�"�)�&�&�(�u�|�|�(�p�.�d�o�n�e�(�f�u�n�c�t�i�o�n�(�)�{�h�.�d�i�s�p�l�a�y�=�l�}�)�,�n�u�l�l�=�=�l�&�&�(�c�=�h�.�d�i�s�p�l�a�y�,�l�=�"�n�o�n�e�"�=�=�=�c�?�"�"�:�c�)�)�,�h�.�d�i�s�p�l�a�y�=�"�i�n�l�i�n�e�-�b�l�o�c�k�"�)�)�,�n�.�o�v�e�r�f�l�o�w�&�&�(�h�.�o�v�e�r�f�l�o�w�=�"�h�i�d�d�e�n�"�,�p�.�a�l�w�a�y�s�(�f�u�n�c�t�i�o�n�(�)�{�h�.�o�v�e�r�f�l�o�w�=�n�.�o�v�e�r�f�l�o�w�[�0�]�,�h�.�o�v�e�r�f�l�o�w�X�=�n�.�o�v�e�r�f�l�o�w�[�1�]�,�h�.�o�v�e�r�f�l�o�w�Y�=�n�.�o�v�e�r�f�l�o�w�[�2�]�}�)�)�,�u�=�!�1�,�d�)�u�|�|�(�v�?�"�h�i�d�d�e�n�"�i�n� �v�&�&�(�g�=�v�.�h�i�d�d�e�n�)�:�v�=�Y�.�a�c�c�e�s�s�(�e�,�"�f�x�s�h�o�w�"�,�{�d�i�s�p�l�a�y�:�l�}�)�,�o�&�&�(�v�.�h�i�d�d�e�n�=�!�g�)�,�g�&�&�l�e�(�[�e�]�,�!�0�)�,�p�.�d�o�n�e�(�f�u�n�c�t�i�o�n�(�)�{�f�o�r�(�r� �i�n� �g�|�|�l�e�(�[�e�]�)�,�Y�.�r�e�m�o�v�e�(�e�,�"�f�x�s�h�o�w�"�)�,�d�)�S�.�s�t�y�l�e�(�e�,�r�,�d�[�r�]�)�}�)�)�,�u�=�u�t�(�g�?�v�[�r�]�:�0�,�r�,�p�)�,�r� �i�n� �v�|�|�(�v�[�r�]�=�u�.�s�t�a�r�t�,�g�&�&�(�u�.�e�n�d�=�u�.�s�t�a�r�t�,�u�.�s�t�a�r�t�=�0�)�)�}
2�]�,�p�r�e�f�i�l�t�e�r�:�f�u�n�c�t�i�o�n�(�e�,�t�)�{�t�?�l�t�.�p�r�e�f�i�l�t�e�r�s�.�u�n�s�h�i�f�t�(�e�)�:�l�t�.�p�r�e�f�i�l�t�e�r�s�.�p�u�s�h�(�e�)�}�}�)�,�S�.�s�p�e�e�d�=�f�u�n�c�t�i�o�n�(�e�,�t�,�n�)�{�v�a�r� �r�=�e�&�&�"�o�b�j�e�c�t�"�=�=�t�y�p�e�o�f� �e�?�S�.�e�x�t�e�n�d�(�{�}�,�e�)�:�{�c�o�m�p�l�e�t�e�:�n�|�|�!�n�&�&�t�|�|�m�(�e�)�&�&�e�,�d�u�r�a�t�i�o�n�:�e�,�e�a�s�i�n�g�:�n�&�&�t�|�|�t�&�&�!�m�(�t�)�&�&�t�}�;�r�e�t�u�r�n� �S�.�f�x�.�o�f�f�?�r�.�d�u�r�a�t�i�o�n�=�0�:�"�n�u�m�b�e�r�"�!�=�t�y�p�e�o�f� �r�.�d�u�r�a�t�i�o�n�&�&�(�r�.�d�u�r�a�t�i�o�n� �i�n� �S�.�f�x�.�s�p�e�e�d�s�?�r�.�d�u�r�a�t�i�o�n�=�S�.�f�x�.�s�p�e�e�d�s�[�r�.�d�u�r�a�t�i�o�n�]�:�r�.�d�u�r�a�t�i�o�n�=�S�.�f�x�.�s�p�e�e�d�s�.�_�d�e�f�a�u�l�t�)�,�n�u�l�l�!�=�r�.�q�u�e�u�e�&�&�!�0�!�=�=�r�.�q�u�e�u�e�|�|�(�r�.�q�u�e�u�e�=�"�f�x�"�)�,�r�.�o�l�d�=�r�.�c�o�m�p�l�e�t�e�,�r�.�c�o�m�p�l�e�t�e�=�f�u�n�c�t�i�o�n�(�)�{�m�(�r�.�o�l�d�)�&�&�r�.�o�l�d�.�c�a�l�l�(�t�h�i�s�)�,�r�.�q�u�e�u�e�&�&�S�.�d�e�q�u�e�u�e�(�t�h�i�s�,�r�.�q�u�e�u�e�)�}�,�r�}�,�S�.�f�n�.�e�x�t�e�n�d�(�{�f�a�d�e�T�o�:�f�u�n�c�t�i�o�n�(�e�,�t�,�n�,�r�)�{�r�e�t�u�r�n� �t�h�i�s�.�f�i�l�t�e�r�(�a�e�)�.�c�s�s�(�"�o�p�a�c�i�t�y�"�,�0�)�.�s�h�o�w�(�)�.�e�n�d�(�)�.�a�n�i�m�a�t�e�(�{�o�p�a�c�i�t�y�:�t�}�,�e�,�n�,�r�)�}�,�a�n�i�m�a�t�e�:�f�u�n�c�t�i�o�n�(�t�,�e�,�n�,�r�)�{�v�a�r� �i�=�S�.�i�s�E�m�p�t�y�O�b�j�e�c�t�(�t�)�,�o�=�S�.�s�p�e�e�d�(�e�,�n�,�r�)�,�a�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �e�=�l�t�(�t�h�i�s�,�S�.�e�x�t�e�n�d�(�{�}�,�t�)�,�o�)�;�(�i�|�|�Y�.�g�e�t�(�t�h�i�s�,�"�f�i�n�i�s�h�"�)�)�&�&�e�.�s�t�o�p�(�!�0�)�}�;�r�e�t�u�r�n� �a�.�f�i�n�i�s�h�=�a�,�i�|�|�!�1�=�=�=�o�.�q�u�e�u�e�?�t�h�i�s�.�e�a�c�h�(�a�)�:�t�h�i�s�.�q�u�e�u�e�(�o�.�q�u�e�u�e�,�a�)�}�,�s�t�o�p�:�f�u�n�c�t�i�o�n�(�i�,�e�,�o�)�{�v�a�r� �a�=�f�u�n�c�t�i�o�n�(�e�)�{�v�a�r� �t�=�e�.�s�t�o�p�;�d�e�l�e�t�e� �e�.�s�t�o�p�,�t�(�o�)�}�;�r�e�t�u�r�n�"�s�t�r�i�n�g�"�!�=�t�y�p�e�o�f� �i�&�&�(�o�=�e�,�e�=�i�,�i�=�v�o�i�d� �0�)�,�e�&�&�t�h�i�s�.�q�u�e�u�e�(�i�|�|�"�f�x�"�,�[�]�)�,�t�h�i�s�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �e�=�!�0�,�t�=�n�u�l�l�!�=�i�&�&�i�+�"�q�u�e�u�e�H�o�o�k�s�"�,�n�=�S�.�t�i�m�e�r�s�,�r�=�Y�.�g�e�t�(�t�h�i�s�)�;�i�f�(�t�)�r�[�t�]�&�&�r�[�t�]�.�s�t�o�p�&�&�a�(�r�[�t�]�)�;�e�l�s�e� �f�o�r�(�t� �i�n� �r�)�r�[�t�]�&�&�r�[�t�]�.�s�t�o�p�&�&�i�t�.�t�e�s�t�(�t�)�&�&�a�(�r�[�t�]�)�;�f�o�r�(�t�=�n�.�l�e�n�g�t�h�;�t�-�-�;�)�n�[�t�]�.�e�l�e�m�!�=�=�t�h�i�s�|�|�n�u�l�l�!�=�i�&�&�n�[�t�]�.�q�u�e�u�e�!�=�=�i�|�|�(�n�[�t�]�.�a�n�i�m�.�s�t�o�p�(�o�)�,�e�=�!�1�,�n�.�s�p�l�i�c�e�(�t�,�1�)�)�;�!�e�&�&�o�|�|�S�.�d�e�q�u�e�u�e�(�t�h�i�s�,�i�)�}�)�}�,�f�i�n�i�s�h�:�f�u�n�c�t�i�o�n�(�a�)�{�r�e�t�u�r�n�!�1�!�=�=�a�&�&�(�a�=�a�|�|�"�f�x�"�)�,�t�h�i�s�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �e�,�t�=�Y�.�g�e�t�(�t�h�i�s�)�,�n�=�t�[�a�+�"�q�u�e�u�e�"�]�,�r�=�t�[�a�+�"�q�u�e�u�e�H�o�o�k�s�"�]�,�i�=�S�.�t�i�m�e�r�s�,�o�=�n�?�n�.�l�e�n�g�t�h�:�0�;�f�o�r�(�t�.�f�i�n�i�s�h�=�!�0�,�S�.�q�u�e�u�e�(�t�h�i�s�,�a�,�[�]�)�,�r�&�&�r�.�s�t�o�p�&�&�r�.�s�t�o�p�.�c�a�l�l�(�t�h�i�s�,�!�0�)�,�e�=�i�.�l�e�n�g�t�h�;�e�-�-�;�)�i�[�e�]�.�e�l�e�m�=�=�=�t�h�i�s�&�&�i�[�e�]�.�q�u�e�u�e�=�=�=�a�&�&�(�i�[�e�]�.�a�n�i�m�.�s�t�o�p�(�!�0�)�,�i�.�s�p�l�i�c�e�(�e�,�1�)�)�;�f�o�r�(�e�=�0�;�e�<�o�;�e�+�+�)�n�[�e�]�&�&�n�[�e�]�.�f�i�n�i�s�h�&�&�n�[�e�]�.�f�i�n�i�s�h�.�c�a�l�l�(�t�h�i�s�)�;�d�e�l�e�t�e� �t�.�f�i�n�i�s�h�}�)�}�}�)�,�S�.�e�a�c�h�(�[�"�t�o�g�g�l�e�"�,�"�s�h�o�w�"�,�"�h�i�d�e�"�]�,�f�u�n�c�t�i�o�n�(�e�,�r�)�{�v�a�r� �i�=�S�.�f�n�[�r�]�;�S�.�f�n�[�r�]�=�f�u�n�c�t�i�o�n�(�e�,�t�,�n�)�{�r�e�t�u�r�n� �n�u�l�l�=�=�e�|�|�"�b�o�o�l�e�a�n�"�=�=�t�y�p�e�o�f� �e�?�i�.�a�p�p�l�y�(�t�h�i�s�,�a�r�g�u�m�e�n�t�s�)�:�t�h�i�s�.�a�n�i�m�a�t�e�(�s�t�(�r�,�!�0�)�,�e�,�t�,�n�)�}�}�)�,�S�.�e�a�c�h�(�{�s�l�i�d�e�D�o�w�n�:�s�t�(�"�s�h�o�w�"�)�,�s�l�i�d�e�U�p�:�s�t�(�"�h�i�d�e�"�)�,�s�l�i�d�e�T�o�g�g�l�e�:�s�t�(�"�t�o�g�g�l�e�"�)�,�f�a�d�e�I�n�:�{�o�p�a�c�i�t�y�:�"�s�h�o�w�"�}�,�f�a�d�e�O�u�t�:�{�o�p�a�c�i�t�y�:�"�h�i�d�e�"�}�,�f�a�d�e�T�o�g�g�l�e�:�{�o�p�a�c�i�t�y�:�"�t�o�g�g�l�e�"�}�}�,�f�u�n�c�t�i�o�n�(�e�,�r�)�{�S�.�f�n�[�e�]�=�f�u�n�c�t�i�o�n�(�e�,�t�,�n�)�{�r�e�t�u�r�n� �t�h�i�s�.�a�n�i�m�a�t�e�(�r�,�e�,
2�t�,�n�)�}�}�)�,�S�.�t�i�m�e�r�s�=�[�]�,�S�.�f�x�.�t�i�c�k�=�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �e�,�t�=�0�,�n�=�S�.�t�i�m�e�r�s�;�f�o�r�(�Z�e�=�D�a�t�e�.�n�o�w�(�)�;�t�<�n�.�l�e�n�g�t�h�;�t�+�+�)�(�e�=�n�[�t�]�)�(�)�|�|�n�[�t�]�!�=�=�e�|�|�n�.�s�p�l�i�c�e�(�t�-�-�,�1�)�;�n�.�l�e�n�g�t�h�|�|�S�.�f�x�.�s�t�o�p�(�)�,�Z�e�=�v�o�i�d� �0�}�,�S�.�f�x�.�t�i�m�e�r�=�f�u�n�c�t�i�o�n�(�e�)�{�S�.�t�i�m�e�r�s�.�p�u�s�h�(�e�)�,�S�.�f�x�.�s�t�a�r�t�(�)�}�,�S�.�f�x�.�i�n�t�e�r�v�a�l�=�1�3�,�S�.�f�x�.�s�t�a�r�t�=�f�u�n�c�t�i�o�n�(�)�{�e�t�|�|�(�e�t�=�!�0�,�o�t�(�)�)�}�,�S�.�f�x�.�s�t�o�p�=�f�u�n�c�t�i�o�n�(�)�{�e�t�=�n�u�l�l�}�,�S�.�f�x�.�s�p�e�e�d�s�=�{�s�l�o�w�:�6�0�0�,�f�a�s�t�:�2�0�0�,�_�d�e�f�a�u�l�t�:�4�0�0�}�,�S�.�f�n�.�d�e�l�a�y�=�f�u�n�c�t�i�o�n�(�r�,�e�)�{�r�e�t�u�r�n� �r�=�S�.�f�x�&�&�S�.�f�x�.�s�p�e�e�d�s�[�r�]�|�|�r�,�e�=�e�|�|�"�f�x�"�,�t�h�i�s�.�q�u�e�u�e�(�e�,�f�u�n�c�t�i�o�n�(�e�,�t�)�{�v�a�r� �n�=�C�.�s�e�t�T�i�m�e�o�u�t�(�e�,�r�)�;�t�.�s�t�o�p�=�f�u�n�c�t�i�o�n�(�)�{�C�.�c�l�e�a�r�T�i�m�e�o�u�t�(�n�)�}�}�)�}�,�t�t�=�E�.�c�r�e�a�t�e�E�l�e�m�e�n�t�(�"�i�n�p�u�t�"�)�,�n�t�=�E�.�c�r�e�a�t�e�E�l�e�m�e�n�t�(�"�s�e�l�e�c�t�"�)�.�a�p�p�e�n�d�C�h�i�l�d�(�E�.�c�r�e�a�t�e�E�l�e�m�e�n�t�(�"�o�p�t�i�o�n�"�)�)�,�t�t�.�t�y�p�e�=�"�c�h�e�c�k�b�o�x�"�,�y�.�c�h�e�c�k�O�n�=�"�"�!�=�=�t�t�.�v�a�l�u�e�,�y�.�o�p�t�S�e�l�e�c�t�e�d�=�n�t�.�s�e�l�e�c�t�e�d�,�(�t�t�=�E�.�c�r�e�a�t�e�E�l�e�m�e�n�t�(�"�i�n�p�u�t�"�)�)�.�v�a�l�u�e�=�"�t�"�,�t�t�.�t�y�p�e�=�"�r�a�d�i�o�"�,�y�.�r�a�d�i�o�V�a�l�u�e�=�"�t�"�=�=�=�t�t�.�v�a�l�u�e�;�v�a�r� �c�t�,�f�t�=�S�.�e�x�p�r�.�a�t�t�r�H�a�n�d�l�e�;�S�.�f�n�.�e�x�t�e�n�d�(�{�a�t�t�r�:�f�u�n�c�t�i�o�n�(�e�,�t�)�{�r�e�t�u�r�n� �$�(�t�h�i�s�,�S�.�a�t�t�r�,�e�,�t�,�1�<�a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�)�}�,�r�e�m�o�v�e�A�t�t�r�:�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �t�h�i�s�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�)�{�S�.�r�e�m�o�v�e�A�t�t�r�(�t�h�i�s�,�e�)�}�)�}�}�)�,�S�.�e�x�t�e�n�d�(�{�a�t�t�r�:�f�u�n�c�t�i�o�n�(�e�,�t�,�n�)�{�v�a�r� �r�,�i�,�o�=�e�.�n�o�d�e�T�y�p�e�;�i�f�(�3�!�=�=�o�&�&�8�!�=�=�o�&�&�2�!�=�=�o�)�r�e�t�u�r�n�"�u�n�d�e�f�i�n�e�d�"�=�=�t�y�p�e�o�f� �e�.�g�e�t�A�t�t�r�i�b�u�t�e�?�S�.�p�r�o�p�(�e�,�t�,�n�)�:�(�1�=�=�=�o�&�&�S�.�i�s�X�M�L�D�o�c�(�e�)�|�|�(�i�=�S�.�a�t�t�r�H�o�o�k�s�[�t�.�t�o�L�o�w�e�r�C�a�s�e�(�)�]�|�|�(�S�.�e�x�p�r�.�m�a�t�c�h�.�b�o�o�l�.�t�e�s�t�(�t�)�?�c�t�:�v�o�i�d� �0�)�)�,�v�o�i�d� �0�!�=�=�n�?�n�u�l�l�=�=�=�n�?�v�o�i�d� �S�.�r�e�m�o�v�e�A�t�t�r�(�e�,�t�)�:�i�&�&�"�s�e�t�"�i�n� �i�&�&�v�o�i�d� �0�!�=�=�(�r�=�i�.�s�e�t�(�e�,�n�,�t�)�)�?�r�:�(�e�.�s�e�t�A�t�t�r�i�b�u�t�e�(�t�,�n�+�"�"�)�,�n�)�:�i�&�&�"�g�e�t�"�i�n� �i�&�&�n�u�l�l�!�=�=�(�r�=�i�.�g�e�t�(�e�,�t�)�)�?�r�:�n�u�l�l�=�=�(�r�=�S�.�f�i�n�d�.�a�t�t�r�(�e�,�t�)�)�?�v�o�i�d� �0�:�r�)�}�,�a�t�t�r�H�o�o�k�s�:�{�t�y�p�e�:�{�s�e�t�:�f�u�n�c�t�i�o�n�(�e�,�t�)�{�i�f�(�!�y�.�r�a�d�i�o�V�a�l�u�e�&�&�"�r�a�d�i�o�"�=�=�=�t�&�&�A�(�e�,�"�i�n�p�u�t�"�)�)�{�v�a�r� �n�=�e�.�v�a�l�u�e�;�r�e�t�u�r�n� �e�.�s�e�t�A�t�t�r�i�b�u�t�e�(�"�t�y�p�e�"�,�t�)�,�n�&�&�(�e�.�v�a�l�u�e�=�n�)�,�t�}�}�}�}�,�r�e�m�o�v�e�A�t�t�r�:�f�u�n�c�t�i�o�n�(�e�,�t�)�{�v�a�r� �n�,�r�=�0�,�i�=�t�&�&�t�.�m�a�t�c�h�(�P�)�;�i�f�(�i�&�&�1�=�=�=�e�.�n�o�d�e�T�y�p�e�)�w�h�i�l�e�(�n�=�i�[�r�+�+�]�)�e�.�r�e�m�o�v�e�A�t�t�r�i�b�u�t�e�(�n�)�}�}�)�,�c�t�=�{�s�e�t�:�f�u�n�c�t�i�o�n�(�e�,�t�,�n�)�{�r�e�t�u�r�n�!�1�=�=�=�t�?�S�.�r�e�m�o�v�e�A�t�t�r�(�e�,�n�)�:�e�.�s�e�t�A�t�t�r�i�b�u�t�e�(�n�,�n�)�,�n�}�}�,�S�.�e�a�c�h�(�S�.�e�x�p�r�.�m�a�t�c�h�.�b�o�o�l�.�s�o�u�r�c�e�.�m�a�t�c�h�(�/�\�w�+�/�g�)�,�f�u�n�c�t�i�o�n�(�e�,�t�)�{�v�a�r� �a�=�f�t�[�t�]�|�|�S�.�f�i�n�d�.�a�t�t�r�;�f�t�[�t�]�=�f�u�n�c�t�i�o�n�(�e�,�t�,�n�)�{�v�a�r� �r�,�i�,�o�=�t�.�t�o�L�o�w�e�r�C�a�s�e�(�)�;�r�e�t�u�r�n� �n�|�|�(�i�=�f�t�[�o�]�,�f�t�[�o�]�=�r�,�r�=�n�u�l�l�!�=�a�(�e�,�t�,�n�)�?�o�:�n�u�l�l�,�f�t�[�o�]�=�i�)�,�r�}�}�)�;�v�a�r� �p�t�=�/�^�(�?�:�i�n�p�u�t�|�s�e�l�e�c�t�|�t�e�x�t�a�r�e�a�|�b�u�t�t�o�n�)�$�/�i�,�d�t�=�/�^�(�?�:�a�|�a�r�e�a�)�$�/�i�;�f�u�n�c�t�i�o�n� �h�t�(�e�)�{�r�e�t�u�r�n�(�e�.�m�a�t�c�h�(�P�)�|�|�[�]�)�.�j�o�i�n�(�"� �"�)�}�f�u�n�c�t�i�o�n� �g�t�(�e�)�{�r�e�t�u�r�n� �e�.�g�e�t�A�t�t�r�i�b�u�t�e�&�&�e�.�g�e�t�A�t�t�r�i�b�u�t�e�(�"�c�l�a�s�s�"�)�|�|�"�"�}�f�u�n�c�t�i�o�n� �v�t�(�e�)�{�r�e�t�u�r�n� �A�r�r�a�y�.�i�s�A�r�r�a�y�(�e�)�?�e�:�"�s�t�r�i�n�g�"�=�=�t�y�p�e�o�f� �e�&�&�e�.�m�a�t�c�h�(�P�)�|�|�[�]�}�S�.�f�n�.�e�x�t�e�n�d�(�{�p�r�o�p�:�f�u�n�c�t�i�o�n�(�e�,�t�)�{�r�e�t�u�r�n� �$�(�t�h�i�s�,�S�.�p�r�o�p�,�e�,�t�,�1�<�a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�)�}�,�r�e�m�o�v�e�P�r�o�p�:�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �t�h�i�s�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�)�{�d�e�l�e�t�e� �t�h�i�s�[�S�.�p�r�o�p�F�i�x�[�e�]�|�|�e�]�}�)�}�}�)�,�S�.�e�x�t�e�n�d�(�{�p�r�o�p�:�f�u�n�c�t�i�o�n�(�e�,�t�,�n�)�{�v�a�r� �r�,�i�,�o�=�e�.�n�o�d�e�T�y�p�e�;�i�f�(�3�!�=�=�o�&�&�8�!�=�=�o�&�&�2�!�=�=�o�)�r�e�t�u�r�n� �1�=�=�=�o�&�&�S�.�i�s�X�M�L�D�o�c�(�e�)�|�|�(�t�=�S�.�p�r�o�p�F�i�x�[�t�]�|�|�t�,�i�=�S�.�p�r�o�p�H�o�o�k�s�[�t�]�)�,�v�o�i�d� �0�!�=�=�n�?�i�&�&�"�s�e�t�"�i�n� �i�&�&�v�o�i�d� �0�!�=�=�(�r�=�i�.�s�e�t�(�e�,�n�,�t�)�)�?�r�:�e�[�t�]�=�n�:�i�&�&�"�g�e�t�"�i�n� �i�&�&�n�u�l�l�!�=�=�(�r�=�i�.�g�e�t�(�e�,�t�)�)�?�r�:�e�[�t�]�}
2�,�p�r�o�p�H�o�o�k�s�:�{�t�a�b�I�n�d�e�x�:�{�g�e�t�:�f�u�n�c�t�i�o�n�(�e�)�{�v�a�r� �t�=�S�.�f�i�n�d�.�a�t�t�r�(�e�,�"�t�a�b�i�n�d�e�x�"�)�;�r�e�t�u�r�n� �t�?�p�a�r�s�e�I�n�t�(�t�,�1�0�)�:�p�t�.�t�e�s�t�(�e�.�n�o�d�e�N�a�m�e�)�|�|�d�t�.�t�e�s�t�(�e�.�n�o�d�e�N�a�m�e�)�&�&�e�.�h�r�e�f�?�0�:�-�1�}�}�}�,�p�r�o�p�F�i�x�:�{�"�f�o�r�"�:�"�h�t�m�l�F�o�r�"�,�"�c�l�a�s�s�"�:�"�c�l�a�s�s�N�a�m�e�"�}�}�)�,�y�.�o�p�t�S�e�l�e�c�t�e�d�|�|�(�S�.�p�r�o�p�H�o�o�k�s�.�s�e�l�e�c�t�e�d�=�{�g�e�t�:�f�u�n�c�t�i�o�n�(�e�)�{�v�a�r� �t�=�e�.�p�a�r�e�n�t�N�o�d�e�;�r�e�t�u�r�n� �t�&�&�t�.�p�a�r�e�n�t�N�o�d�e�&�&�t�.�p�a�r�e�n�t�N�o�d�e�.�s�e�l�e�c�t�e�d�I�n�d�e�x�,�n�u�l�l�}�,�s�e�t�:�f�u�n�c�t�i�o�n�(�e�)�{�v�a�r� �t�=�e�.�p�a�r�e�n�t�N�o�d�e�;�t�&�&�(�t�.�s�e�l�e�c�t�e�d�I�n�d�e�x�,�t�.�p�a�r�e�n�t�N�o�d�e�&�&�t�.�p�a�r�e�n�t�N�o�d�e�.�s�e�l�e�c�t�e�d�I�n�d�e�x�)�}�}�)�,�S�.�e�a�c�h�(�[�"�t�a�b�I�n�d�e�x�"�,�"�r�e�a�d�O�n�l�y�"�,�"�m�a�x�L�e�n�g�t�h�"�,�"�c�e�l�l�S�p�a�c�i�n�g�"�,�"�c�e�l�l�P�a�d�d�i�n�g�"�,�"�r�o�w�S�p�a�n�"�,�"�c�o�l�S�p�a�n�"�,�"�u�s�e�M�a�p�"�,�"�f�r�a�m�e�B�o�r�d�e�r�"�,�"�c�o�n�t�e�n�t�E�d�i�t�a�b�l�e�"�]�,�f�u�n�c�t�i�o�n�(�)�{�S�.�p�r�o�p�F�i�x�[�t�h�i�s�.�t�o�L�o�w�e�r�C�a�s�e�(�)�]�=�t�h�i�s�}�)�,�S�.�f�n�.�e�x�t�e�n�d�(�{�a�d�d�C�l�a�s�s�:�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�,�n�,�r�,�i�,�o�,�a�,�s�,�u�=�0�;�i�f�(�m�(�t�)�)�r�e�t�u�r�n� �t�h�i�s�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�e�)�{�S�(�t�h�i�s�)�.�a�d�d�C�l�a�s�s�(�t�.�c�a�l�l�(�t�h�i�s�,�e�,�g�t�(�t�h�i�s�)�)�)�}�)�;�i�f�(�(�e�=�v�t�(�t�)�)�.�l�e�n�g�t�h�)�w�h�i�l�e�(�n�=�t�h�i�s�[�u�+�+�]�)�i�f�(�i�=�g�t�(�n�)�,�r�=�1�=�=�=�n�.�n�o�d�e�T�y�p�e�&�&�"� �"�+�h�t�(�i�)�+�"� �"�)�{�a�=�0�;�w�h�i�l�e�(�o�=�e�[�a�+�+�]�)�r�.�i�n�d�e�x�O�f�(�"� �"�+�o�+�"� �"�)�<�0�&�&�(�r�+�=�o�+�"� �"�)�;�i�!�=�=�(�s�=�h�t�(�r�)�)�&�&�n�.�s�e�t�A�t�t�r�i�b�u�t�e�(�"�c�l�a�s�s�"�,�s�)�}�r�e�t�u�r�n� �t�h�i�s�}�,�r�e�m�o�v�e�C�l�a�s�s�:�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �e�,�n�,�r�,�i�,�o�,�a�,�s�,�u�=�0�;�i�f�(�m�(�t�)�)�r�e�t�u�r�n� �t�h�i�s�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�e�)�{�S�(�t�h�i�s�)�.�r�e�m�o�v�e�C�l�a�s�s�(�t�.�c�a�l�l�(�t�h�i�s�,�e�,�g�t�(�t�h�i�s�)�)�)�}�)�;�i�f�(�!�a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�)�r�e�t�u�r�n� �t�h�i�s�.�a�t�t�r�(�"�c�l�a�s�s�"�,�"�"�)�;�i�f�(�(�e�=�v�t�(�t�)�)�.�l�e�n�g�t�h�)�w�h�i�l�e�(�n�=�t�h�i�s�[�u�+�+�]�)�i�f�(�i�=�g�t�(�n�)�,�r�=�1�=�=�=�n�.�n�o�d�e�T�y�p�e�&�&�"� �"�+�h�t�(�i�)�+�"� �"�)�{�a�=�0�;�w�h�i�l�e�(�o�=�e�[�a�+�+�]�)�w�h�i�l�e�(�-�1�<�r�.�i�n�d�e�x�O�f�(�"� �"�+�o�+�"� �"�)�)�r�=�r�.�r�e�p�l�a�c�e�(�"� �"�+�o�+�"� �"�,�"� �"�)�;�i�!�=�=�(�s�=�h�t�(�r�)�)�&�&�n�.�s�e�t�A�t�t�r�i�b�u�t�e�(�"�c�l�a�s�s�"�,�s�)�}�r�e�t�u�r�n� �t�h�i�s�}�,�t�o�g�g�l�e�C�l�a�s�s�:�f�u�n�c�t�i�o�n�(�i�,�t�)�{�v�a�r� �o�=�t�y�p�e�o�f� �i�,�a�=�"�s�t�r�i�n�g�"�=�=�=�o�|�|�A�r�r�a�y�.�i�s�A�r�r�a�y�(�i�)�;�r�e�t�u�r�n�"�b�o�o�l�e�a�n�"�=�=�t�y�p�e�o�f� �t�&�&�a�?�t�?�t�h�i�s�.�a�d�d�C�l�a�s�s�(�i�)�:�t�h�i�s�.�r�e�m�o�v�e�C�l�a�s�s�(�i�)�:�m�(�i�)�?�t�h�i�s�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�e�)�{�S�(�t�h�i�s�)�.�t�o�g�g�l�e�C�l�a�s�s�(�i�.�c�a�l�l�(�t�h�i�s�,�e�,�g�t�(�t�h�i�s�)�,�t�)�,�t�)�}�)�:�t�h�i�s�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �e�,�t�,�n�,�r�;�i�f�(�a�)�{�t�=�0�,�n�=�S�(�t�h�i�s�)�,�r�=�v�t�(�i�)�;�w�h�i�l�e�(�e�=�r�[�t�+�+�]�)�n�.�h�a�s�C�l�a�s�s�(�e�)�?�n�.�r�e�m�o�v�e�C�l�a�s�s�(�e�)�:�n�.�a�d�d�C�l�a�s�s�(�e�)�}�e�l�s�e� �v�o�i�d� �0�!�=�=�i�&�&�"�b�o�o�l�e�a�n�"�!�=�=�o�|�|�(�(�e�=�g�t�(�t�h�i�s�)�)�&�&�Y�.�s�e�t�(�t�h�i�s�,�"�_�_�c�l�a�s�s�N�a�m�e�_�_�"�,�e�)�,�t�h�i�s�.�s�e�t�A�t�t�r�i�b�u�t�e�&�&�t�h�i�s�.�s�e�t�A�t�t�r�i�b�u�t�e�(�"�c�l�a�s�s�"�,�e�|�|�!�1�=�=�=�i�?�"�"�:�Y�.�g�e�t�(�t�h�i�s�,�"�_�_�c�l�a�s�s�N�a�m�e�_�_�"�)�|�|�"�"�)�)�}�)�}�,�h�a�s�C�l�a�s�s�:�f�u�n�c�t�i�o�n�(�e�)�{�v�a�r� �t�,�n�,�r�=�0�;�t�=�"� �"�+�e�+�"� �"�;�w�h�i�l�e�(�n�=�t�h�i�s�[�r�+�+�]�)�i�f�(�1�=�=�=�n�.�n�o�d�e�T�y�p�e�&�&�-�1�<�(�"� �"�+�h�t�(�g�t�(�n�)�)�+�"� �"�)�.�i�n�d�e�x�O�f�(�t�)�)�r�e�t�u�r�n�!�0�;�r�e�t�u�r�n�!�1�}�}�)�;�v�a�r� �y�t�=�/�\�r�/�g�;�S�.�f�n�.�e�x�t�e�n�d�(�{�v�a�l�:�f�u�n�c�t�i�o�n�(�n�)�{�v�a�r� �r�,�e�,�i�,�t�=�t�h�i�s�[�0�]�;�r�e�t�u�r�n� �a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�?�(�i�=�m�(�n�)�,�t�h�i�s�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�e�)�{�v�a�r� �t�;�1�=�=�=�t�h�i�s�.�n�o�d�e�T�y�p�e�&�&�(�n�u�l�l�=�=�(�t�=�i�?�n�.�c�a�l�l�(�t�h�i�s�,�e�,�S�(�t�h�i�s�)�.�v�a�l�(�)�)�:�n�)�?�t�=�"�"�:�"�n�u�m�b�e�r�"�=�=�t�y�p�e�o�f� �t�?�t�+�=�"�"�:�A�r�r�a�y�.�i�s�A�r�r�a�y�(�t�)�&�&�(�t�=�S�.�m�a�p�(�t�,�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �n�u�l�l�=�=�e�?�"�"�:�e�+�"�"�}�)�)�,�(�r�=�S�.�v�a�l�H�o�o�k�s�[�t�h�i�s�.�t�y�p�e�]�|�|�S�.�v�a�l�H�o�o�k�s�[�t�h�i�s�.�n�o�d�e�N�a�m�e�.�t�o�L�o�w�e�r�C�a�s�e�(�)�]�)�&�&�"�s�e�t�"�i�n� �r�&�&�v�o�i�d� �0�!�=�=�r�.
2�s�e�t�(�t�h�i�s�,�t�,�"�v�a�l�u�e�"�)�|�|�(�t�h�i�s�.�v�a�l�u�e�=�t�)�)�}�)�)�:�t�?�(�r�=�S�.�v�a�l�H�o�o�k�s�[�t�.�t�y�p�e�]�|�|�S�.�v�a�l�H�o�o�k�s�[�t�.�n�o�d�e�N�a�m�e�.�t�o�L�o�w�e�r�C�a�s�e�(�)�]�)�&�&�"�g�e�t�"�i�n� �r�&�&�v�o�i�d� �0�!�=�=�(�e�=�r�.�g�e�t�(�t�,�"�v�a�l�u�e�"�)�)�?�e�:�"�s�t�r�i�n�g�"�=�=�t�y�p�e�o�f�(�e�=�t�.�v�a�l�u�e�)�?�e�.�r�e�p�l�a�c�e�(�y�t�,�"�"�)�:�n�u�l�l�=�=�e�?�"�"�:�e�:�v�o�i�d� �0�}�}�)�,�S�.�e�x�t�e�n�d�(�{�v�a�l�H�o�o�k�s�:�{�o�p�t�i�o�n�:�{�g�e�t�:�f�u�n�c�t�i�o�n�(�e�)�{�v�a�r� �t�=�S�.�f�i�n�d�.�a�t�t�r�(�e�,�"�v�a�l�u�e�"�)�;�r�e�t�u�r�n� �n�u�l�l�!�=�t�?�t�:�h�t�(�S�.�t�e�x�t�(�e�)�)�}�}�,�s�e�l�e�c�t�:�{�g�e�t�:�f�u�n�c�t�i�o�n�(�e�)�{�v�a�r� �t�,�n�,�r�,�i�=�e�.�o�p�t�i�o�n�s�,�o�=�e�.�s�e�l�e�c�t�e�d�I�n�d�e�x�,�a�=�"�s�e�l�e�c�t�-�o�n�e�"�=�=�=�e�.�t�y�p�e�,�s�=�a�?�n�u�l�l�:�[�]�,�u�=�a�?�o�+�1�:�i�.�l�e�n�g�t�h�;�f�o�r�(�r�=�o�<�0�?�u�:�a�?�o�:�0�;�r�<�u�;�r�+�+�)�i�f�(�(�(�n�=�i�[�r�]�)�.�s�e�l�e�c�t�e�d�|�|�r�=�=�=�o�)�&�&�!�n�.�d�i�s�a�b�l�e�d�&�&�(�!�n�.�p�a�r�e�n�t�N�o�d�e�.�d�i�s�a�b�l�e�d�|�|�!�A�(�n�.�p�a�r�e�n�t�N�o�d�e�,�"�o�p�t�g�r�o�u�p�"�)�)�)�{�i�f�(�t�=�S�(�n�)�.�v�a�l�(�)�,�a�)�r�e�t�u�r�n� �t�;�s�.�p�u�s�h�(�t�)�}�r�e�t�u�r�n� �s�}�,�s�e�t�:�f�u�n�c�t�i�o�n�(�e�,�t�)�{�v�a�r� �n�,�r�,�i�=�e�.�o�p�t�i�o�n�s�,�o�=�S�.�m�a�k�e�A�r�r�a�y�(�t�)�,�a�=�i�.�l�e�n�g�t�h�;�w�h�i�l�e�(�a�-�-�)�(�(�r�=�i�[�a�]�)�.�s�e�l�e�c�t�e�d�=�-�1�<�S�.�i�n�A�r�r�a�y�(�S�.�v�a�l�H�o�o�k�s�.�o�p�t�i�o�n�.�g�e�t�(�r�)�,�o�)�)�&�&�(�n�=�!�0�)�;�r�e�t�u�r�n� �n�|�|�(�e�.�s�e�l�e�c�t�e�d�I�n�d�e�x�=�-�1�)�,�o�}�}�}�}�)�,�S�.�e�a�c�h�(�[�"�r�a�d�i�o�"�,�"�c�h�e�c�k�b�o�x�"�]�,�f�u�n�c�t�i�o�n�(�)�{�S�.�v�a�l�H�o�o�k�s�[�t�h�i�s�]�=�{�s�e�t�:�f�u�n�c�t�i�o�n�(�e�,�t�)�{�i�f�(�A�r�r�a�y�.�i�s�A�r�r�a�y�(�t�)�)�r�e�t�u�r�n� �e�.�c�h�e�c�k�e�d�=�-�1�<�S�.�i�n�A�r�r�a�y�(�S�(�e�)�.�v�a�l�(�)�,�t�)�}�}�,�y�.�c�h�e�c�k�O�n�|�|�(�S�.�v�a�l�H�o�o�k�s�[�t�h�i�s�]�.�g�e�t�=�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �n�u�l�l�=�=�=�e�.�g�e�t�A�t�t�r�i�b�u�t�e�(�"�v�a�l�u�e�"�)�?�"�o�n�"�:�e�.�v�a�l�u�e�}�)�}�)�,�y�.�f�o�c�u�s�i�n�=�"�o�n�f�o�c�u�s�i�n�"�i�n� �C�;�v�a�r� �m�t�=�/�^�(�?�:�f�o�c�u�s�i�n�f�o�c�u�s�|�f�o�c�u�s�o�u�t�b�l�u�r�)�$�/�,�x�t�=�f�u�n�c�t�i�o�n�(�e�)�{�e�.�s�t�o�p�P�r�o�p�a�g�a�t�i�o�n�(�)�}�;�S�.�e�x�t�e�n�d�(�S�.�e�v�e�n�t�,�{�t�r�i�g�g�e�r�:�f�u�n�c�t�i�o�n�(�e�,�t�,�n�,�r�)�{�v�a�r� �i�,�o�,�a�,�s�,�u�,�l�,�c�,�f�,�p�=�[�n�|�|�E�]�,�d�=�v�.�c�a�l�l�(�e�,�"�t�y�p�e�"�)�?�e�.�t�y�p�e�:�e�,�h�=�v�.�c�a�l�l�(�e�,�"�n�a�m�e�s�p�a�c�e�"�)�?�e�.�n�a�m�e�s�p�a�c�e�.�s�p�l�i�t�(�"�.�"�)�:�[�]�;�i�f�(�o�=�f�=�a�=�n�=�n�|�|�E�,�3�!�=�=�n�.�n�o�d�e�T�y�p�e�&�&�8�!�=�=�n�.�n�o�d�e�T�y�p�e�&�&�!�m�t�.�t�e�s�t�(�d�+�S�.�e�v�e�n�t�.�t�r�i�g�g�e�r�e�d�)�&�&�(�-�1�<�d�.�i�n�d�e�x�O�f�(�"�.�"�)�&�&�(�d�=�(�h�=�d�.�s�p�l�i�t�(�"�.�"�)�)�.�s�h�i�f�t�(�)�,�h�.�s�o�r�t�(�)�)�,�u�=�d�.�i�n�d�e�x�O�f�(�"�:�"�)�<�0�&�&�"�o�n�"�+�d�,�(�e�=�e�[�S�.�e�x�p�a�n�d�o�]�?�e�:�n�e�w� �S�.�E�v�e�n�t�(�d�,�"�o�b�j�e�c�t�"�=�=�t�y�p�e�o�f� �e�&�&�e�)�)�.�i�s�T�r�i�g�g�e�r�=�r�?�2�:�3�,�e�.�n�a�m�e�s�p�a�c�e�=�h�.�j�o�i�n�(�"�.�"�)�,�e�.�r�n�a�m�e�s�p�a�c�e�=�e�.�n�a�m�e�s�p�a�c�e�?�n�e�w� �R�e�g�E�x�p�(�"�(�^�|�\�\�.�)�"�+�h�.�j�o�i�n�(�"�\�\�.�(�?�:�.�*�\�\�.�|�)�"�)�+�"�(�\�\�.�|�$�)�"�)�:�n�u�l�l�,�e�.�r�e�s�u�l�t�=�v�o�i�d� �0�,�e�.�t�a�r�g�e�t�|�|�(�e�.�t�a�r�g�e�t�=�n�)�,�t�=�n�u�l�l�=�=�t�?�[�e�]�:�S�.�m�a�k�e�A�r�r�a�y�(�t�,�[�e�]�)�,�c�=�S�.�e�v�e�n�t�.�s�p�e�c�i�a�l�[�d�]�|�|�{�}�,�r�|�|�!�c�.�t�r�i�g�g�e�r�|�|�!�1�!�=�=�c�.�t�r�i�g�g�e�r�.�a�p�p�l�y�(�n�,�t�)�)�)�{�i�f�(�!�r�&�&�!�c�.�n�o�B�u�b�b�l�e�&�&�!�x�(�n�)�)�{�f�o�r�(�s�=�c�.�d�e�l�e�g�a�t�e�T�y�p�e�|�|�d�,�m�t�.�t�e�s�t�(�s�+�d�)�|�|�(�o�=�o�.�p�a�r�e�n�t�N�o�d�e�)�;�o�;�o�=�o�.�p�a�r�e�n�t�N�o�d�e�)�p�.�p�u�s�h�(�o�)�,�a�=�o�;�a�=�=�=�(�n�.�o�w�n�e�r�D�o�c�u�m�e�n�t�|�|�E�)�&�&�p�.�p�u�s�h�(�a�.�d�e�f�a�u�l�t�V�i�e�w�|�|�a�.�p�a�r�e�n�t�W�i�n�d�o�w�|�|�C�)�}�i�=�0�;�w�h�i�l�e�(�(�o�=�p�[�i�+�+�]�)�&�&�!�e�.�i�s�P�r�o�p�a�g�a�t�i�o�n�S�t�o�p�p�e�d�(�)�)�f�=�o�,�e�.�t�y�p�e�=�1�<�i�?�s�:�c�.�b�i�n�d�T�y�p�e�|�|�d�,�(�l�=�(�Y�.�g�e�t�(�o�,�"�e�v�e�n�t�s�"�)�|�|�O�b�j�e�c�t�.�c�r�e�a�t�e�(�n�u�l�l�)�)�[�e�.�t�y�p�e�]�&�&�Y�.�g�e�t�(�o�,�"�h�a�n�d�l�e�"�)�)�&�&�l�.�a�p�p�l�y�(�o�,�t�)�,�(�l�=�u�&�&�o�[�u�]�)�&�&�l�.�a�p�p�l�y�&�&�V�(�o�)�&�&�(�e�.�r�e�s�u�l�t�=�l�.�a�p�p�l�y�(�o�,�t�)�,�!�1�=�=�=�e�.�r�e�s�u�l�t�&�&�e�.�p�r�e�v�e�n�t�D�e�f�a�u�l�t�(�)�)�;�r�e�t�u�r�n� �e�.�t�y�p�e�=�d�,�r�|�|�e�.�i�s�D�e�f�a�u�l�t�P�r�e�v�e�n�t�e�d�(�)�|�|�c�.�_�d�e�f�a�u�l�t�&�&�!�1�!�=�=�c�.�_�d�e�f�a�u�l�t�.�a�p�p�l�y�(�p�.�p�o�
2p�(�)�,�t�)�|�|�!�V�(�n�)�|�|�u�&�&�m�(�n�[�d�]�)�&�&�!�x�(�n�)�&�&�(�(�a�=�n�[�u�]�)�&�&�(�n�[�u�]�=�n�u�l�l�)�,�S�.�e�v�e�n�t�.�t�r�i�g�g�e�r�e�d�=�d�,�e�.�i�s�P�r�o�p�a�g�a�t�i�o�n�S�t�o�p�p�e�d�(�)�&�&�f�.�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�(�d�,�x�t�)�,�n�[�d�]�(�)�,�e�.�i�s�P�r�o�p�a�g�a�t�i�o�n�S�t�o�p�p�e�d�(�)�&�&�f�.�r�e�m�o�v�e�E�v�e�n�t�L�i�s�t�e�n�e�r�(�d�,�x�t�)�,�S�.�e�v�e�n�t�.�t�r�i�g�g�e�r�e�d�=�v�o�i�d� �0�,�a�&�&�(�n�[�u�]�=�a�)�)�,�e�.�r�e�s�u�l�t�}�}�,�s�i�m�u�l�a�t�e�:�f�u�n�c�t�i�o�n�(�e�,�t�,�n�)�{�v�a�r� �r�=�S�.�e�x�t�e�n�d�(�n�e�w� �S�.�E�v�e�n�t�,�n�,�{�t�y�p�e�:�e�,�i�s�S�i�m�u�l�a�t�e�d�:�!�0�}�)�;�S�.�e�v�e�n�t�.�t�r�i�g�g�e�r�(�r�,�n�u�l�l�,�t�)�}�}�)�,�S�.�f�n�.�e�x�t�e�n�d�(�{�t�r�i�g�g�e�r�:�f�u�n�c�t�i�o�n�(�e�,�t�)�{�r�e�t�u�r�n� �t�h�i�s�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�)�{�S�.�e�v�e�n�t�.�t�r�i�g�g�e�r�(�e�,�t�,�t�h�i�s�)�}�)�}�,�t�r�i�g�g�e�r�H�a�n�d�l�e�r�:�f�u�n�c�t�i�o�n�(�e�,�t�)�{�v�a�r� �n�=�t�h�i�s�[�0�]�;�i�f�(�n�)�r�e�t�u�r�n� �S�.�e�v�e�n�t�.�t�r�i�g�g�e�r�(�e�,�t�,�n�,�!�0�)�}�}�)�,�y�.�f�o�c�u�s�i�n�|�|�S�.�e�a�c�h�(�{�f�o�c�u�s�:�"�f�o�c�u�s�i�n�"�,�b�l�u�r�:�"�f�o�c�u�s�o�u�t�"�}�,�f�u�n�c�t�i�o�n�(�n�,�r�)�{�v�a�r� �i�=�f�u�n�c�t�i�o�n�(�e�)�{�S�.�e�v�e�n�t�.�s�i�m�u�l�a�t�e�(�r�,�e�.�t�a�r�g�e�t�,�S�.�e�v�e�n�t�.�f�i�x�(�e�)�)�}�;�S�.�e�v�e�n�t�.�s�p�e�c�i�a�l�[�r�]�=�{�s�e�t�u�p�:�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �e�=�t�h�i�s�.�o�w�n�e�r�D�o�c�u�m�e�n�t�|�|�t�h�i�s�.�d�o�c�u�m�e�n�t�|�|�t�h�i�s�,�t�=�Y�.�a�c�c�e�s�s�(�e�,�r�)�;�t�|�|�e�.�a�d�d�E�v�e�n�t�L�i�s�t�e�n�e�r�(�n�,�i�,�!�0�)�,�Y�.�a�c�c�e�s�s�(�e�,�r�,�(�t�|�|�0�)�+�1�)�}�,�t�e�a�r�d�o�w�n�:�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �e�=�t�h�i�s�.�o�w�n�e�r�D�o�c�u�m�e�n�t�|�|�t�h�i�s�.�d�o�c�u�m�e�n�t�|�|�t�h�i�s�,�t�=�Y�.�a�c�c�e�s�s�(�e�,�r�)�-�1�;�t�?�Y�.�a�c�c�e�s�s�(�e�,�r�,�t�)�:�(�e�.�r�e�m�o�v�e�E�v�e�n�t�L�i�s�t�e�n�e�r�(�n�,�i�,�!�0�)�,�Y�.�r�e�m�o�v�e�(�e�,�r�)�)�}�}�}�)�;�v�a�r� �b�t�=�C�.�l�o�c�a�t�i�o�n�,�w�t�=�{�g�u�i�d�:�D�a�t�e�.�n�o�w�(�)�}�,�T�t�=�/�\�?�/�;�S�.�p�a�r�s�e�X�M�L�=�f�u�n�c�t�i�o�n�(�e�)�{�v�a�r� �t�,�n�;�i�f�(�!�e�|�|�"�s�t�r�i�n�g�"�!�=�t�y�p�e�o�f� �e�)�r�e�t�u�r�n� �n�u�l�l�;�t�r�y�{�t�=�(�n�e�w� �C�.�D�O�M�P�a�r�s�e�r�)�.�p�a�r�s�e�F�r�o�m�S�t�r�i�n�g�(�e�,�"�t�e�x�t�/�x�m�l�"�)�}�c�a�t�c�h�(�e�)�{�}�r�e�t�u�r�n� �n�=�t�&�&�t�.�g�e�t�E�l�e�m�e�n�t�s�B�y�T�a�g�N�a�m�e�(�"�p�a�r�s�e�r�e�r�r�o�r�"�)�[�0�]�,�t�&�&�!�n�|�|�S�.�e�r�r�o�r�(�"�I�n�v�a�l�i�d� �X�M�L�:� �"�+�(�n�?�S�.�m�a�p�(�n�.�c�h�i�l�d�N�o�d�e�s�,�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �e�.�t�e�x�t�C�o�n�t�e�n�t�}�)�.�j�o�i�n�(�"�\�n�"�)�:�e�)�)�,�t�}�;�v�a�r� �C�t�=�/�\�[�\�]�$�/�,�E�t�=�/�\�r�?�\�n�/�g�,�S�t�=�/�^�(�?�:�s�u�b�m�i�t�|�b�u�t�t�o�n�|�i�m�a�g�e�|�r�e�s�e�t�|�f�i�l�e�)�$�/�i�,�k�t�=�/�^�(�?�:�i�n�p�u�t�|�s�e�l�e�c�t�|�t�e�x�t�a�r�e�a�|�k�e�y�g�e�n�)�/�i�;�f�u�n�c�t�i�o�n� �A�t�(�n�,�e�,�r�,�i�)�{�v�a�r� �t�;�i�f�(�A�r�r�a�y�.�i�s�A�r�r�a�y�(�e�)�)�S�.�e�a�c�h�(�e�,�f�u�n�c�t�i�o�n�(�e�,�t�)�{�r�|�|�C�t�.�t�e�s�t�(�n�)�?�i�(�n�,�t�)�:�A�t�(�n�+�"�[�"�+�(�"�o�b�j�e�c�t�"�=�=�t�y�p�e�o�f� �t�&�&�n�u�l�l�!�=�t�?�e�:�"�"�)�+�"�]�"�,�t�,�r�,�i�)�}�)�;�e�l�s�e� �i�f�(�r�|�|�"�o�b�j�e�c�t�"�!�=�=�w�(�e�)�)�i�(�n�,�e�)�;�e�l�s�e� �f�o�r�(�t� �i�n� �e�)�A�t�(�n�+�"�[�"�+�t�+�"�]�"�,�e�[�t�]�,�r�,�i�)�}�S�.�p�a�r�a�m�=�f�u�n�c�t�i�o�n�(�e�,�t�)�{�v�a�r� �n�,�r�=�[�]�,�i�=�f�u�n�c�t�i�o�n�(�e�,�t�)�{�v�a�r� �n�=�m�(�t�)�?�t�(�)�:�t�;�r�[�r�.�l�e�n�g�t�h�]�=�e�n�c�o�d�e�U�R�I�C�o�m�p�o�n�e�n�t�(�e�)�+�"�=�"�+�e�n�c�o�d�e�U�R�I�C�o�m�p�o�n�e�n�t�(�n�u�l�l�=�=�n�?�"�"�:�n�)�}�;�i�f�(�n�u�l�l�=�=�e�)�r�e�t�u�r�n�"�"�;�i�f�(�A�r�r�a�y�.�i�s�A�r�r�a�y�(�e�)�|�|�e�.�j�q�u�e�r�y�&�&�!�S�.�i�s�P�l�a�i�n�O�b�j�e�c�t�(�e�)�)�S�.�e�a�c�h�(�e�,�f�u�n�c�t�i�o�n�(�)�{�i�(�t�h�i�s�.�n�a�m�e�,�t�h�i�s�.�v�a�l�u�e�)�}�)�;�e�l�s�e� �f�o�r�(�n� �i�n� �e�)�A�t�(�n�,�e�[�n�]�,�t�,�i�)�;�r�e�t�u�r�n� �r�.�j�o�i�n�(�"�&�"�)�}�,�S�.�f�n�.�e�x�t�e�n�d�(�{�s�e�r�i�a�l�i�z�e�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �S�.�p�a�r�a�m�(�t�h�i�s�.�s�e�r�i�a�l�i�z�e�A�r�r�a�y�(�)�)�}�,�s�e�r�i�a�l�i�z�e�A�r�r�a�y�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �t�h�i�s�.�m�a�p�(�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �e�=�S�.�p�r�o�p�(�t�h�i�s�,�"�e�l�e�m�e�n�t�s�"�)�;�r�e�t�u�r�n� �e�?�S�.�m�a�k�e�A�r�r�a�y�(�e�)�:�t�h�i�s�}
2�)�.�f�i�l�t�e�r�(�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �e�=�t�h�i�s�.�t�y�p�e�;�r�e�t�u�r�n� �t�h�i�s�.�n�a�m�e�&�&�!�S�(�t�h�i�s�)�.�i�s�(�"�:�d�i�s�a�b�l�e�d�"�)�&�&�k�t�.�t�e�s�t�(�t�h�i�s�.�n�o�d�e�N�a�m�e�)�&�&�!�S�t�.�t�e�s�t�(�e�)�&�&�(�t�h�i�s�.�c�h�e�c�k�e�d�|�|�!�p�e�.�t�e�s�t�(�e�)�)�}�)�.�m�a�p�(�f�u�n�c�t�i�o�n�(�e�,�t�)�{�v�a�r� �n�=�S�(�t�h�i�s�)�.�v�a�l�(�)�;�r�e�t�u�r�n� �n�u�l�l�=�=�n�?�n�u�l�l�:�A�r�r�a�y�.�i�s�A�r�r�a�y�(�n�)�?�S�.�m�a�p�(�n�,�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n�{�n�a�m�e�:�t�.�n�a�m�e�,�v�a�l�u�e�:�e�.�r�e�p�l�a�c�e�(�E�t�,�"�\�r�\�n�"�)�}�}�)�:�{�n�a�m�e�:�t�.�n�a�m�e�,�v�a�l�u�e�:�n�.�r�e�p�l�a�c�e�(�E�t�,�"�\�r�\�n�"�)�}�}�)�.�g�e�t�(�)�}�}�)�;�v�a�r� �N�t�=�/�%�2�0�/�g�,�j�t�=�/�#�.�*�$�/�,�D�t�=�/�(�[�?�&�]�)�_�=�[�^�&�]�*�/�,�q�t�=�/�^�(�.�*�?�)�:�[� �\�t�]�*�(�[�^�\�r�\�n�]�*�)�$�/�g�m�,�L�t�=�/�^�(�?�:�G�E�T�|�H�E�A�D�)�$�/�,�H�t�=�/�^�\�/�\�/�/�,�O�t�=�{�}�,�P�t�=�{�}�,�R�t�=�"�*�/�"�.�c�o�n�c�a�t�(�"�*�"�)�,�M�t�=�E�.�c�r�e�a�t�e�E�l�e�m�e�n�t�(�"�a�"�)�;�f�u�n�c�t�i�o�n� �I�t�(�o�)�{�r�e�t�u�r�n� �f�u�n�c�t�i�o�n�(�e�,�t�)�{�"�s�t�r�i�n�g�"�!�=�t�y�p�e�o�f� �e�&�&�(�t�=�e�,�e�=�"�*�"�)�;�v�a�r� �n�,�r�=�0�,�i�=�e�.�t�o�L�o�w�e�r�C�a�s�e�(�)�.�m�a�t�c�h�(�P�)�|�|�[�]�;�i�f�(�m�(�t�)�)�w�h�i�l�e�(�n�=�i�[�r�+�+�]�)�"�+�"�=�=�=�n�[�0�]�?�(�n�=�n�.�s�l�i�c�e�(�1�)�|�|�"�*�"�,�(�o�[�n�]�=�o�[�n�]�|�|�[�]�)�.�u�n�s�h�i�f�t�(�t�)�)�:�(�o�[�n�]�=�o�[�n�]�|�|�[�]�)�.�p�u�s�h�(�t�)�}�}�f�u�n�c�t�i�o�n� �W�t�(�t�,�i�,�o�,�a�)�{�v�a�r� �s�=�{�}�,�u�=�t�=�=�=�P�t�;�f�u�n�c�t�i�o�n� �l�(�e�)�{�v�a�r� �r�;�r�e�t�u�r�n� �s�[�e�]�=�!�0�,�S�.�e�a�c�h�(�t�[�e�]�|�|�[�]�,�f�u�n�c�t�i�o�n�(�e�,�t�)�{�v�a�r� �n�=�t�(�i�,�o�,�a�)�;�r�e�t�u�r�n�"�s�t�r�i�n�g�"�!�=�t�y�p�e�o�f� �n�|�|�u�|�|�s�[�n�]�?�u�?�!�(�r�=�n�)�:�v�o�i�d� �0�:�(�i�.�d�a�t�a�T�y�p�e�s�.�u�n�s�h�i�f�t�(�n�)�,�l�(�n�)�,�!�1�)�}�)�,�r�}�r�e�t�u�r�n� �l�(�i�.�d�a�t�a�T�y�p�e�s�[�0�]�)�|�|�!�s�[�"�*�"�]�&�&�l�(�"�*�"�)�}�f�u�n�c�t�i�o�n� �F�t�(�e�,�t�)�{�v�a�r� �n�,�r�,�i�=�S�.�a�j�a�x�S�e�t�t�i�n�g�s�.�f�l�a�t�O�p�t�i�o�n�s�|�|�{�}�;�f�o�r�(�n� �i�n� �t�)�v�o�i�d� �0�!�=�=�t�[�n�]�&�&�(�(�i�[�n�]�?�e�:�r�|�|�(�r�=�{�}�)�)�[�n�]�=�t�[�n�]�)�;�r�e�t�u�r�n� �r�&�&�S�.�e�x�t�e�n�d�(�!�0�,�e�,�r�)�,�e�}�M�t�.�h�r�e�f�=�b�t�.�h�r�e�f�,�S�.�e�x�t�e�n�d�(�{�a�c�t�i�v�e�:�0�,�l�a�s�t�M�o�d�i�f�i�e�d�:�{�}�,�e�t�a�g�:�{�}�,�a�j�a�x�S�e�t�t�i�n�g�s�:�{�u�r�l�:�b�t�.�h�r�e�f�,�t�y�p�e�:�"�G�E�T�"�,�i�s�L�o�c�a�l�:�/�^�(�?�:�a�b�o�u�t�|�a�p�p�|�a�p�p�-�s�t�o�r�a�g�e�|�.�+�-�e�x�t�e�n�s�i�o�n�|�f�i�l�e�|�r�e�s�|�w�i�d�g�e�t�)�:�$�/�.�t�e�s�t�(�b�t�.�p�r�o�t�o�c�o�l�)�,�g�l�o�b�a�l�:�!�0�,�p�r�o�c�e�s�s�D�a�t�a�:�!�0�,�a�s�y�n�c�:�!�0�,�c�o�n�t�e�n�t�T�y�p�e�:�"�a�p�p�l�i�c�a�t�i�o�n�/�x�-�w�w�w�-�f�o�r�m�-�u�r�l�e�n�c�o�d�e�d�;� �c�h�a�r�s�e�t�=�U�T�F�-�8�"�,�a�c�c�e�p�t�s�:�{�"�*�"�:�R�t�,�t�e�x�t�:�"�t�e�x�t�/�p�l�a�i�n�"�,�h�t�m�l�:�"�t�e�x�t�/�h�t�m�l�"�,�x�m�l�:�"�a�p�p�l�i�c�a�t�i�o�n�/�x�m�l�,� �t�e�x�t�/�x�m�l�"�,�j�s�o�n�:�"�a�p�p�l�i�c�a�t�i�o�n�/�j�s�o�n�,� �t�e�x�t�/�j�a�v�a�s�c�r�i�p�t�"�}�,�c�o�n�t�e�n�t�s�:�{�x�m�l�:�/�\�b�x�m�l�\�b�/�,�h�t�m�l�:�/�\�b�h�t�m�l�/�,�j�s�o�n�:�/�\�b�j�s�o�n�\�b�/�}�,�r�e�s�p�o�n�s�e�F�i�e�l�d�s�:�{�x�m�l�:�"�r�e�s�p�o�n�s�e�X�M�L�"�,�t�e�x�t�:�"�r�e�s�p�o�n�s�e�T�e�x�t�"�,�j�s�o�n�:�"�r�e�s�p�o�n�s�e�J�S�O�N�"�}�,�c�o�n�v�e�r�t�e�r�s�:�{�"�*� �t�e�x�t�"�:�S�t�r�i�n�g�,�"�t�e�x�t� �h�t�m�l�"�:�!�0�,�"�t�e�x�t� �j�s�o�n�"�:�J�S�O�N�.�p�a�r�s�e�,�"�t�e�x�t� �x�m�l�"�:�S�.�p�a�r�s�e�X�M�L�}�,�f�l�a�t�O�p�t�i�o�n�s�:�{�u�r�l�:�!�0�,�c�o�n�t�e�x�t�:�!�0�}�}�,�a�j�a�x�S�e�t�u�p�:�f�u�n�c�t�i�o�n�(�e�,�t�)�{�r�e�t�u�r�n� �t�?�F�t�(�F�t�(�e�,�S�.�a�j�a�x�S�e�t�t�i�n�g�s�)�,�t�)�:�F�t�(�S�.�a�j�a�x�S�e�t�t�i�n�g�s�,�e�)�}�,�a�j�a�x�P�r�e�f�i�l�t�e�r�:�I�t�(�O�t�)�,�a�j�a�x�T�r�a�n�s�p�o�r�t�:�I�t�(�P�t�)�,�a�j�a�x�:�f�u�n�c�t�i�o�n�(�e�,�t�)�{�"�o�b�j�e�c�t�"�=�=�t�y�p�e�o�f� �e�&�&�(�t�=�e�,�e�=�v�o�i�d� �0�)�,�t�=�t�|�|�{�}�;�v�a�r� �c�,�f�,�p�,�n�,�d�,�r�,�h�,�g�,�i�,�o�,�v�=�S�.�a�j�a�x�S�e�t�u�p�(�{�}�,�t�)�,�y�=�v�.�c�o�n�t�e�x�t�|�|�v�,�m�=�v�.�c�o�n�t�e�x�t�&�&�(�y�.�n�o�d�e�T�y�p�e�|�|�y�.�j�q�u�e�r�y�)�?�S�(�y�)�:�S�.�e�v�e�n�t�,�x�=�S�.�D�e�f�e�r�r�e�d�(�)�,�b�=�S�.�C�a�l�l�b�a�c�k�s�(�"�o�n�c�e� �m�e�m�o�r�y�"�)�,�w�=�v�.�s�t�a�t�u�s�C�o�d�e�|�|�{�}�,�a�=�{�}�,�s�=�{�}
2�,�u�=�"�c�a�n�c�e�l�e�d�"�,�T�=�{�r�e�a�d�y�S�t�a�t�e�:�0�,�g�e�t�R�e�s�p�o�n�s�e�H�e�a�d�e�r�:�f�u�n�c�t�i�o�n�(�e�)�{�v�a�r� �t�;�i�f�(�h�)�{�i�f�(�!�n�)�{�n�=�{�}�;�w�h�i�l�e�(�t�=�q�t�.�e�x�e�c�(�p�)�)�n�[�t�[�1�]�.�t�o�L�o�w�e�r�C�a�s�e�(�)�+�"� �"�]�=�(�n�[�t�[�1�]�.�t�o�L�o�w�e�r�C�a�s�e�(�)�+�"� �"�]�|�|�[�]�)�.�c�o�n�c�a�t�(�t�[�2�]�)�}�t�=�n�[�e�.�t�o�L�o�w�e�r�C�a�s�e�(�)�+�"� �"�]�}�r�e�t�u�r�n� �n�u�l�l�=�=�t�?�n�u�l�l�:�t�.�j�o�i�n�(�"�,� �"�)�}�,�g�e�t�A�l�l�R�e�s�p�o�n�s�e�H�e�a�d�e�r�s�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �h�?�p�:�n�u�l�l�}�,�s�e�t�R�e�q�u�e�s�t�H�e�a�d�e�r�:�f�u�n�c�t�i�o�n�(�e�,�t�)�{�r�e�t�u�r�n� �n�u�l�l�=�=�h�&�&�(�e�=�s�[�e�.�t�o�L�o�w�e�r�C�a�s�e�(�)�]�=�s�[�e�.�t�o�L�o�w�e�r�C�a�s�e�(�)�]�|�|�e�,�a�[�e�]�=�t�)�,�t�h�i�s�}�,�o�v�e�r�r�i�d�e�M�i�m�e�T�y�p�e�:�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �n�u�l�l�=�=�h�&�&�(�v�.�m�i�m�e�T�y�p�e�=�e�)�,�t�h�i�s�}�,�s�t�a�t�u�s�C�o�d�e�:�f�u�n�c�t�i�o�n�(�e�)�{�v�a�r� �t�;�i�f�(�e�)�i�f�(�h�)�T�.�a�l�w�a�y�s�(�e�[�T�.�s�t�a�t�u�s�]�)�;�e�l�s�e� �f�o�r�(�t� �i�n� �e�)�w�[�t�]�=�[�w�[�t�]�,�e�[�t�]�]�;�r�e�t�u�r�n� �t�h�i�s�}�,�a�b�o�r�t�:�f�u�n�c�t�i�o�n�(�e�)�{�v�a�r� �t�=�e�|�|�u�;�r�e�t�u�r�n� �c�&�&�c�.�a�b�o�r�t�(�t�)�,�l�(�0�,�t�)�,�t�h�i�s�}�}�;�i�f�(�x�.�p�r�o�m�i�s�e�(�T�)�,�v�.�u�r�l�=�(�(�e�|�|�v�.�u�r�l�|�|�b�t�.�h�r�e�f�)�+�"�"�)�.�r�e�p�l�a�c�e�(�H�t�,�b�t�.�p�r�o�t�o�c�o�l�+�"�/�/�"�)�,�v�.�t�y�p�e�=�t�.�m�e�t�h�o�d�|�|�t�.�t�y�p�e�|�|�v�.�m�e�t�h�o�d�|�|�v�.�t�y�p�e�,�v�.�d�a�t�a�T�y�p�e�s�=�(�v�.�d�a�t�a�T�y�p�e�|�|�"�*�"�)�.�t�o�L�o�w�e�r�C�a�s�e�(�)�.�m�a�t�c�h�(�P�)�|�|�[�"�"�]�,�n�u�l�l�=�=�v�.�c�r�o�s�s�D�o�m�a�i�n�)�{�r�=�E�.�c�r�e�a�t�e�E�l�e�m�e�n�t�(�"�a�"�)�;�t�r�y�{�r�.�h�r�e�f�=�v�.�u�r�l�,�r�.�h�r�e�f�=�r�.�h�r�e�f�,�v�.�c�r�o�s�s�D�o�m�a�i�n�=�M�t�.�p�r�o�t�o�c�o�l�+�"�/�/�"�+�M�t�.�h�o�s�t�!�=�r�.�p�r�o�t�o�c�o�l�+�"�/�/�"�+�r�.�h�o�s�t�}�c�a�t�c�h�(�e�)�{�v�.�c�r�o�s�s�D�o�m�a�i�n�=�!�0�}�}�i�f�(�v�.�d�a�t�a�&�&�v�.�p�r�o�c�e�s�s�D�a�t�a�&�&�"�s�t�r�i�n�g�"�!�=�t�y�p�e�o�f� �v�.�d�a�t�a�&�&�(�v�.�d�a�t�a�=�S�.�p�a�r�a�m�(�v�.�d�a�t�a�,�v�.�t�r�a�d�i�t�i�o�n�a�l�)�)�,�W�t�(�O�t�,�v�,�t�,�T�)�,�h�)�r�e�t�u�r�n� �T�;�f�o�r�(�i� �i�n�(�g�=�S�.�e�v�e�n�t�&�&�v�.�g�l�o�b�a�l�)�&�&�0�=�=�S�.�a�c�t�i�v�e�+�+�&�&�S�.�e�v�e�n�t�.�t�r�i�g�g�e�r�(�"�a�j�a�x�S�t�a�r�t�"�)�,�v�.�t�y�p�e�=�v�.�t�y�p�e�.�t�o�U�p�p�e�r�C�a�s�e�(�)�,�v�.�h�a�s�C�o�n�t�e�n�t�=�!�L�t�.�t�e�s�t�(�v�.�t�y�p�e�)�,�f�=�v�.�u�r�l�.�r�e�p�l�a�c�e�(�j�t�,�"�"�)�,�v�.�h�a�s�C�o�n�t�e�n�t�?�v�.�d�a�t�a�&�&�v�.�p�r�o�c�e�s�s�D�a�t�a�&�&�0�=�=�=�(�v�.�c�o�n�t�e�n�t�T�y�p�e�|�|�"�"�)�.�i�n�d�e�x�O�f�(�"�a�p�p�l�i�c�a�t�i�o�n�/�x�-�w�w�w�-�f�o�r�m�-�u�r�l�e�n�c�o�d�e�d�"�)�&�&�(�v�.�d�a�t�a�=�v�.�d�a�t�a�.�r�e�p�l�a�c�e�(�N�t�,�"�+�"�)�)�:�(�o�=�v�.�u�r�l�.�s�l�i�c�e�(�f�.�l�e�n�g�t�h�)�,�v�.�d�a�t�a�&�&�(�v�.�p�r�o�c�e�s�s�D�a�t�a�|�|�"�s�t�r�i�n�g�"�=�=�t�y�p�e�o�f� �v�.�d�a�t�a�)�&�&�(�f�+�=�(�T�t�.�t�e�s�t�(�f�)�?�"�&�"�:�"�?�"�)�+�v�.�d�a�t�a�,�d�e�l�e�t�e� �v�.�d�a�t�a�)�,�!�1�=�=�=�v�.�c�a�c�h�e�&�&�(�f�=�f�.�r�e�p�l�a�c�e�(�D�t�,�"�$�1�"�)�,�o�=�(�T�t�.�t�e�s�t�(�f�)�?�"�&�"�:�"�?�"�)�+�"�_�=�"�+�w�t�.�g�u�i�d�+�+�+�o�)�,�v�.�u�r�l�=�f�+�o�)�,�v�.�i�f�M�o�d�i�f�i�e�d�&�&�(�S�.�l�a�s�t�M�o�d�i�f�i�e�d�[�f�]�&�&�T�.�s�e�t�R�e�q�u�e�s�t�H�e�a�d�e�r�(�"�I�f�-�M�o�d�i�f�i�e�d�-�S�i�n�c�e�"�,�S�.�l�a�s�t�M�o�d�i�f�i�e�d�[�f�]�)�,�S�.�e�t�a�g�[�f�]�&�&�T�.�s�e�t�R�e�q�u�e�s�t�H�e�a�d�e�r�(�"�I�f�-�N�o�n�e�-�M�a�t�c�h�"�,�S�.�e�t�a�g�[�f�]�)�)�,�(�v�.�d�a�t�a�&�&�v�.�h�a�s�C�o�n�t�e�n�t�&�&�!�1�!�=�=�v�.�c�o�n�t�e�n�t�T�y�p�e�|�|�t�.�c�o�n�t�e�n�t�T�y�p�e�)�&�&�T�.�s�e�t�R�e�q�u�e�s�t�H�e�a�d�e�r�(�"�C�o�n�t�e�n�t�-�T�y�p�e�"�,�v�.�c�o�n�t�e�n�t�T�y�p�e�)�,�T�.�s�e�t�R�e�q�u�e�s�t�H�e�a�d�e�r�(�"�A�c�c�e�p�t�"�,�v�.�d�a�t�a�T�y�p�e�s�[�0�]�&�&�v�.�a�c�c�e�p�t�s�[�v�.�d�a�t�a�T�y�p�e�s�[�0�]�]�?�v�.�a�c�c�e�p�t�s�[�v�.�d�a�t�a�T�y�p�e�s�[�0�]�]�+�(�"�*�"�!�=�=�v�.�d�a�t�a�T�y�p�e�s�[�0�]�?�"�,� �"�+�R�t�+�"�;� �q�=�0�.�0�1�"�:�"�"�)�:�v�.�a�c�c�e�p�t�s�[�"�*�"�]�)�,�v�.�h�e�a�d�e�r�s�)�T�.�s�e�t�R�e�q�u�e�s�t�H�e�a�d�e�r�(�i�,�v�.�h�e�a�d�e�r�s�[�i�]�)�;�i�f�(�v�.�b�e�f�o�r�e�S�e�n�d�&�&�(�!�1�=�=�=�v�.�b�e�f�o�r�e�S�e�n�d�.�c�a�l�l�(�y�,�T�,�v�)�|�|�h�)�)�r�e�t�u�r�n� �T�.�a�b�o�r�t�(�)�;�i�f�(�u�=�"�a�b�o�r�t�"�,�b�.�a�d�d�(�v�.�c�o�m�p�l�e�t�e�)�,�T�.�d�o�n�e�(�v�.�s�u�c�c�e�s�s�)�,�T�.�f�a�i�l�(�v�.�e�r�r�o�r�)�,�c�=�W�t�(�P�t�,�v�,�t�,�T�)�)�{�i�f�(�T�.�r�e�a�d�y�S�t�a�t�e�=�1�,�g�&�&�m�.�t�r�i�g�g�e�r�(�"�a�j�a�x�S�e�n�d�"�,�[�T�,�v�]�)�,�h�)�r�e�t�u�r�n� �T�;�v�.�a�s�y�n�c�&�&�0�<�v�.�t�i�m�e�o�u�t�&�&�(�d�=�C�.�s�e�t�T�i�m�e�o�u�t�(�f�u�n�c�t�i�o�n�(�)�{�T�.�a�b�o�r�t�(�"�t�i�m�e�o�u�t�"�)�}�,�v�.�t�i�m�e�o�u�t�)�)�;�t�r�y�{�h�=�!�1�,�c�.�s�e�n�d�(�a�,�l�)�}�c�a�t�c�h�(�e�)�{�i�f�(�h�)�t�h�r�o�w� �e�;�l�(�-�1�,�e�)�}�}�e�l�s�e� �l�(�-�1�,�"�N�o� �T�r�a�n�s�p�o�r�t�"�)�;�f�u�n�c�t�i�o�n� �l�(�e�,�t�,�n�,�r�)�{�v�a�r� �i�,�o�,�a�,�s�,�u�,�l�=�t�;�h�|�|�(�h�=�!�0�,�d�&�&�C�.�c�l�e�a�r�T�i�m�e�o�u�t�(�d�)�,�c�=�v�o�i�d� �0�,�p�=�r�|�|�"�"�,�T�.�r�e�a�d�y�S�t�a�t�e�=�0�<�e�?�4�:�0�,�i�=�2�0�0�<�=�e�&�&�e�<�3�0�0�|�|�3�0�4�=�=�=�e�,�n�&�&�(�s�=�f�u�n�c�t�i�o�n�(�e�,�t�,�n�)�{�v�a�r� �r�,�i�,�o�,�a�,�s�=�e�.�c�o�n�t�e�n�t�s�,�u�=�e�.�d�a�t�a�T�y�p�e�s�;�w�h�i�l�e�(�"�*�"�=�=�=�u�[�0�]�)�u�.�s�h�i�f�t�(�)�,�v�o�i�d� �0�=�=�=�r�&�&�(�r�=�e�.�m�i�m�e�T�y�p�e�|�|�t�.�g�e�t�R�e�s�p�o�n�s�e�H�e�a�d�e�r�(�"�C�o�n�t�e�n�t�-�T�y�p�e�"�)�)�;�i�f�(�r�)�f�o�r�(�i� �i�n� �s�)�i�f�(�s�[�i�]�&�&�s�[�i�]�.�t�e�s�t�(�r�)�)�{�u�.�u�n�s�h�i�f�t�(�i�)�;�b�r�e�a�k�}�i�f�(�u�[�0�]�i�n� �n�)�o�=�u�[�0�]�;�e�l�s�e�{�f�o�r�(�i� �i�n� �n�)�{�i�f�(�!�u�[�0�]�|�|�e�.�c�o�n�v�e�r�t�e�r�s�[�i�+�"� �"�+�u�[�0�]�]�)�{�o�=�i�;�b�r�e�a�k�}�a�|�|�(�a�=�i�)�}�o�=�o�|�|�a�}�i�f�(�o�)�r�e�t�u�r�n� �o�!�=�=�u�[�0�]�&�&�u�.�u�n�s�h�i�f�t�(�o�)�,�n�[
2�o�]�}�(�v�,�T�,�n�)�)�,�!�i�&�&�-�1�<�S�.�i�n�A�r�r�a�y�(�"�s�c�r�i�p�t�"�,�v�.�d�a�t�a�T�y�p�e�s�)�&�&�S�.�i�n�A�r�r�a�y�(�"�j�s�o�n�"�,�v�.�d�a�t�a�T�y�p�e�s�)�<�0�&�&�(�v�.�c�o�n�v�e�r�t�e�r�s�[�"�t�e�x�t� �s�c�r�i�p�t�"�]�=�f�u�n�c�t�i�o�n�(�)�{�}�)�,�s�=�f�u�n�c�t�i�o�n�(�e�,�t�,�n�,�r�)�{�v�a�r� �i�,�o�,�a�,�s�,�u�,�l�=�{�}�,�c�=�e�.�d�a�t�a�T�y�p�e�s�.�s�l�i�c�e�(�)�;�i�f�(�c�[�1�]�)�f�o�r�(�a� �i�n� �e�.�c�o�n�v�e�r�t�e�r�s�)�l�[�a�.�t�o�L�o�w�e�r�C�a�s�e�(�)�]�=�e�.�c�o�n�v�e�r�t�e�r�s�[�a�]�;�o�=�c�.�s�h�i�f�t�(�)�;�w�h�i�l�e�(�o�)�i�f�(�e�.�r�e�s�p�o�n�s�e�F�i�e�l�d�s�[�o�]�&�&�(�n�[�e�.�r�e�s�p�o�n�s�e�F�i�e�l�d�s�[�o�]�]�=�t�)�,�!�u�&�&�r�&�&�e�.�d�a�t�a�F�i�l�t�e�r�&�&�(�t�=�e�.�d�a�t�a�F�i�l�t�e�r�(�t�,�e�.�d�a�t�a�T�y�p�e�)�)�,�u�=�o�,�o�=�c�.�s�h�i�f�t�(�)�)�i�f�(�"�*�"�=�=�=�o�)�o�=�u�;�e�l�s�e� �i�f�(�"�*�"�!�=�=�u�&�&�u�!�=�=�o�)�{�i�f�(�!�(�a�=�l�[�u�+�"� �"�+�o�]�|�|�l�[�"�*� �"�+�o�]�)�)�f�o�r�(�i� �i�n� �l�)�i�f�(�(�s�=�i�.�s�p�l�i�t�(�"� �"�)�)�[�1�]�=�=�=�o�&�&�(�a�=�l�[�u�+�"� �"�+�s�[�0�]�]�|�|�l�[�"�*� �"�+�s�[�0�]�]�)�)�{�!�0�=�=�=�a�?�a�=�l�[�i�]�:�!�0�!�=�=�l�[�i�]�&�&�(�o�=�s�[�0�]�,�c�.�u�n�s�h�i�f�t�(�s�[�1�]�)�)�;�b�r�e�a�k�}�i�f�(�!�0�!�=�=�a�)�i�f�(�a�&�&�e�[�"�t�h�r�o�w�s�"�]�)�t�=�a�(�t�)�;�e�l�s�e� �t�r�y�{�t�=�a�(�t�)�}�c�a�t�c�h�(�e�)�{�r�e�t�u�r�n�{�s�t�a�t�e�:�"�p�a�r�s�e�r�e�r�r�o�r�"�,�e�r�r�o�r�:�a�?�e�:�"�N�o� �c�o�n�v�e�r�s�i�o�n� �f�r�o�m� �"�+�u�+�"� �t�o� �"�+�o�}�}�}�r�e�t�u�r�n�{�s�t�a�t�e�:�"�s�u�c�c�e�s�s�"�,�d�a�t�a�:�t�}�}�(�v�,�s�,�T�,�i�)�,�i�?�(�v�.�i�f�M�o�d�i�f�i�e�d�&�&�(�(�u�=�T�.�g�e�t�R�e�s�p�o�n�s�e�H�e�a�d�e�r�(�"�L�a�s�t�-�M�o�d�i�f�i�e�d�"�)�)�&�&�(�S�.�l�a�s�t�M�o�d�i�f�i�e�d�[�f�]�=�u�)�,�(�u�=�T�.�g�e�t�R�e�s�p�o�n�s�e�H�e�a�d�e�r�(�"�e�t�a�g�"�)�)�&�&�(�S�.�e�t�a�g�[�f�]�=�u�)�)�,�2�0�4�=�=�=�e�|�|�"�H�E�A�D�"�=�=�=�v�.�t�y�p�e�?�l�=�"�n�o�c�o�n�t�e�n�t�"�:�3�0�4�=�=�=�e�?�l�=�"�n�o�t�m�o�d�i�f�i�e�d�"�:�(�l�=�s�.�s�t�a�t�e�,�o�=�s�.�d�a�t�a�,�i�=�!�(�a�=�s�.�e�r�r�o�r�)�)�)�:�(�a�=�l�,�!�e�&�&�l�|�|�(�l�=�"�e�r�r�o�r�"�,�e�<�0�&�&�(�e�=�0�)�)�)�,�T�.�s�t�a�t�u�s�=�e�,�T�.�s�t�a�t�u�s�T�e�x�t�=�(�t�|�|�l�)�+�"�"�,�i�?�x�.�r�e�s�o�l�v�e�W�i�t�h�(�y�,�[�o�,�l�,�T�]�)�:�x�.�r�e�j�e�c�t�W�i�t�h�(�y�,�[�T�,�l�,�a�]�)�,�T�.�s�t�a�t�u�s�C�o�d�e�(�w�)�,�w�=�v�o�i�d� �0�,�g�&�&�m�.�t�r�i�g�g�e�r�(�i�?�"�a�j�a�x�S�u�c�c�e�s�s�"�:�"�a�j�a�x�E�r�r�o�r�"�,�[�T�,�v�,�i�?�o�:�a�]�)�,�b�.�f�i�r�e�W�i�t�h�(�y�,�[�T�,�l�]�)�,�g�&�&�(�m�.�t�r�i�g�g�e�r�(�"�a�j�a�x�C�o�m�p�l�e�t�e�"�,�[�T�,�v�]�)�,�-�-�S�.�a�c�t�i�v�e�|�|�S�.�e�v�e�n�t�.�t�r�i�g�g�e�r�(�"�a�j�a�x�S�t�o�p�"�)�)�)�}�r�e�t�u�r�n� �T�}�,�g�e�t�J�S�O�N�:�f�u�n�c�t�i�o�n�(�e�,�t�,�n�)�{�r�e�t�u�r�n� �S�.�g�e�t�(�e�,�t�,�n�,�"�j�s�o�n�"�)�}�,�g�e�t�S�c�r�i�p�t�:�f�u�n�c�t�i�o�n�(�e�,�t�)�{�r�e�t�u�r�n� �S�.�g�e�t�(�e�,�v�o�i�d� �0�,�t�,�"�s�c�r�i�p�t�"�)�}�}�)�,�S�.�e�a�c�h�(�[�"�g�e�t�"�,�"�p�o�s�t�"�]�,�f�u�n�c�t�i�o�n�(�e�,�i�)�{�S�[�i�]�=�f�u�n�c�t�i�o�n�(�e�,�t�,�n�,�r�)�{�r�e�t�u�r�n� �m�(�t�)�&�&�(�r�=�r�|�|�n�,�n�=�t�,�t�=�v�o�i�d� �0�)�,�S�.�a�j�a�x�(�S�.�e�x�t�e�n�d�(�{�u�r�l�:�e�,�t�y�p�e�:�i�,�d�a�t�a�T�y�p�e�:�r�,�d�a�t�a�:�t�,�s�u�c�c�e�s�s�:�n�}�,�S�.�i�s�P�l�a�i�n�O�b�j�e�c�t�(�e�)�&�&�e�)�)�}�}�)�,�S�.�a�j�a�x�P�r�e�f�i�l�t�e�r�(�f�u�n�c�t�i�o�n�(�e�)�{�v�a�r� �t�;�f�o�r�(�t� �i�n� �e�.�h�e�a�d�e�r�s�)�"�c�o�n�t�e�n�t�-�t�y�p�e�"�=�=�=�t�.�t�o�L�o�w�e�r�C�a�s�e�(�)�&�&�(�e�.�c�o�n�t�e�n�t�T�y�p�e�=�e�.�h�e�a�d�e�r�s�[�t�]�|�|�"�"�)�}�)�,�S�.�_�e�v�a�l�U�r�l�=�f�u�n�c�t�i�o�n�(�e�,�t�,�n�)�{�r�e�t�u�r�n� �S�.�a�j�a�x�(�{�u�r�l�:�e�,�t�y�p�e�:�"�G�E�T�"�,�d�a�t�a�T�y�p�e�:�"�s�c�r�i�p�t�"�,�c�a�c�h�e�:�!�0�,�a�s�y�n�c�:�!�1�,�g�l�o�b�a�l�:�!�1�,�c�o�n�v�e�r�t�e�r�s�:�{�"�t�e�x�t� �s�c�r�i�p�t�"�:�f�u�n�c�t�i�o�n�(�)�{�}�}�,�d�a�t�a�F�i�l�t�e�r�:�f�u�n�c�t�i�o�n�(�e�)�{�S�.�g�l�o�b�a�l�E�v�a�l�(�e�,�t�,�n�)�}�}�)�}�,�S�.�f�n�.�e�x�t�e�n�d�(�{�w�r�a�p�A�l�l�:�f�u�n�c�t�i�o�n�(�e�)�{�v�a�r� �t�;�r�e�t�u�r�n� �t�h�i�s�[�0�]�&�&�(�m�(�e�)�&�&�(�e�=�e�.�c�a�l�l�(�t�h�i�s�[�0�]�)�)�,�t�=�S�(�e�,�t�h�i�s�[�0�]�.�o�w�n�e�r�D�o�c�u�m�e�n�t�)�.�e�q�(�0�)�.�c�l�o�n�e�(�!�0�)�,�t�h�i�s�[�0�]�.�p�a�r�e�n�t�N�o�d�e�&�&�t�.�i�n�s�e�r�t�B�e�f�
2o�r�e�(�t�h�i�s�[�0�]�)�,�t�.�m�a�p�(�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �e�=�t�h�i�s�;�w�h�i�l�e�(�e�.�f�i�r�s�t�E�l�e�m�e�n�t�C�h�i�l�d�)�e�=�e�.�f�i�r�s�t�E�l�e�m�e�n�t�C�h�i�l�d�;�r�e�t�u�r�n� �e�}�)�.�a�p�p�e�n�d�(�t�h�i�s�)�)�,�t�h�i�s�}�,�w�r�a�p�I�n�n�e�r�:�f�u�n�c�t�i�o�n�(�n�)�{�r�e�t�u�r�n� �m�(�n�)�?�t�h�i�s�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�e�)�{�S�(�t�h�i�s�)�.�w�r�a�p�I�n�n�e�r�(�n�.�c�a�l�l�(�t�h�i�s�,�e�)�)�}�)�:�t�h�i�s�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �e�=�S�(�t�h�i�s�)�,�t�=�e�.�c�o�n�t�e�n�t�s�(�)�;�t�.�l�e�n�g�t�h�?�t�.�w�r�a�p�A�l�l�(�n�)�:�e�.�a�p�p�e�n�d�(�n�)�}�)�}�,�w�r�a�p�:�f�u�n�c�t�i�o�n�(�t�)�{�v�a�r� �n�=�m�(�t�)�;�r�e�t�u�r�n� �t�h�i�s�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�e�)�{�S�(�t�h�i�s�)�.�w�r�a�p�A�l�l�(�n�?�t�.�c�a�l�l�(�t�h�i�s�,�e�)�:�t�)�}�)�}�,�u�n�w�r�a�p�:�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �t�h�i�s�.�p�a�r�e�n�t�(�e�)�.�n�o�t�(�"�b�o�d�y�"�)�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�)�{�S�(�t�h�i�s�)�.�r�e�p�l�a�c�e�W�i�t�h�(�t�h�i�s�.�c�h�i�l�d�N�o�d�e�s�)�}�)�,�t�h�i�s�}�}�)�,�S�.�e�x�p�r�.�p�s�e�u�d�o�s�.�h�i�d�d�e�n�=�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n�!�S�.�e�x�p�r�.�p�s�e�u�d�o�s�.�v�i�s�i�b�l�e�(�e�)�}�,�S�.�e�x�p�r�.�p�s�e�u�d�o�s�.�v�i�s�i�b�l�e�=�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n�!�!�(�e�.�o�f�f�s�e�t�W�i�d�t�h�|�|�e�.�o�f�f�s�e�t�H�e�i�g�h�t�|�|�e�.�g�e�t�C�l�i�e�n�t�R�e�c�t�s�(�)�.�l�e�n�g�t�h�)�}�,�S�.�a�j�a�x�S�e�t�t�i�n�g�s�.�x�h�r�=�f�u�n�c�t�i�o�n�(�)�{�t�r�y�{�r�e�t�u�r�n� �n�e�w� �C�.�X�M�L�H�t�t�p�R�e�q�u�e�s�t�}�c�a�t�c�h�(�e�)�{�}�}�;�v�a�r� �B�t�=�{�0�:�2�0�0�,�1�2�2�3�:�2�0�4�}�,�$�t�=�S�.�a�j�a�x�S�e�t�t�i�n�g�s�.�x�h�r�(�)�;�y�.�c�o�r�s�=�!�!�$�t�&�&�"�w�i�t�h�C�r�e�d�e�n�t�i�a�l�s�"�i�n� �$�t�,�y�.�a�j�a�x�=�$�t�=�!�!�$�t�,�S�.�a�j�a�x�T�r�a�n�s�p�o�r�t�(�f�u�n�c�t�i�o�n�(�i�)�{�v�a�r� �o�,�a�;�i�f�(�y�.�c�o�r�s�|�|�$�t�&�&�!�i�.�c�r�o�s�s�D�o�m�a�i�n�)�r�e�t�u�r�n�{�s�e�n�d�:�f�u�n�c�t�i�o�n�(�e�,�t�)�{�v�a�r� �n�,�r�=�i�.�x�h�r�(�)�;�i�f�(�r�.�o�p�e�n�(�i�.�t�y�p�e�,�i�.�u�r�l�,�i�.�a�s�y�n�c�,�i�.�u�s�e�r�n�a�m�e�,�i�.�p�a�s�s�w�o�r�d�)�,�i�.�x�h�r�F�i�e�l�d�s�)�f�o�r�(�n� �i�n� �i�.�x�h�r�F�i�e�l�d�s�)�r�[�n�]�=�i�.�x�h�r�F�i�e�l�d�s�[�n�]�;�f�o�r�(�n� �i�n� �i�.�m�i�m�e�T�y�p�e�&�&�r�.�o�v�e�r�r�i�d�e�M�i�m�e�T�y�p�e�&�&�r�.�o�v�e�r�r�i�d�e�M�i�m�e�T�y�p�e�(�i�.�m�i�m�e�T�y�p�e�)�,�i�.�c�r�o�s�s�D�o�m�a�i�n�|�|�e�[�"�X�-�R�e�q�u�e�s�t�e�d�-�W�i�t�h�"�]�|�|�(�e�[�"�X�-�R�e�q�u�e�s�t�e�d�-�W�i�t�h�"�]�=�"�X�M�L�H�t�t�p�R�e�q�u�e�s�t�"�)�,�e�)�r�.�s�e�t�R�e�q�u�e�s�t�H�e�a�d�e�r�(�n�,�e�[�n�]�)�;�o�=�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �f�u�n�c�t�i�o�n�(�)�{�o�&�&�(�o�=�a�=�r�.�o�n�l�o�a�d�=�r�.�o�n�e�r�r�o�r�=�r�.�o�n�a�b�o�r�t�=�r�.�o�n�t�i�m�e�o�u�t�=�r�.�o�n�r�e�a�d�y�s�t�a�t�e�c�h�a�n�g�e�=�n�u�l�l�,�"�a�b�o�r�t�"�=�=�=�e�?�r�.�a�b�o�r�t�(�)�:�"�e�r�r�o�r�"�=�=�=�e�?�"�n�u�m�b�e�r�"�!�=�t�y�p�e�o�f� �r�.�s�t�a�t�u�s�?�t�(�0�,�"�e�r�r�o�r�"�)�:�t�(�r�.�s�t�a�t�u�s�,�r�.�s�t�a�t�u�s�T�e�x�t�)�:�t�(�B�t�[�r�.�s�t�a�t�u�s�]�|�|�r�.�s�t�a�t�u�s�,�r�.�s�t�a�t�u�s�T�e�x�t�,�"�t�e�x�t�"�!�=�=�(�r�.�r�e�s�p�o�n�s�e�T�y�p�e�|�|�"�t�e�x�t�"�)�|�|�"�s�t�r�i�n�g�"�!�=�t�y�p�e�o�f� �r�.�r�e�s�p�o�n�s�e�T�e�x�t�?�{�b�i�n�a�r�y�:�r�.�r�e�s�p�o�n�s�e�}�:�{�t�e�x�t�:�r�.�r�e�s�p�o�n�s�e�T�e�x�t�}�,�r�.�g�e�t�A�l�l�R�e�s�p�o�n�s�e�H�e�a�d�e�r�s�(�)�)�)�}�}�,�r�.�o�n�l�o�a�d�=�o�(�)�,�a�=�r�.�o�n�e�r�r�o�r�=�r�.�o�n�t�i�m�e�o�u�t�=�o�(�"�e�r�r�o�r�"�)�,�v�o�i�d� �0�!�=�=�r�.�o�n�a�b�o�r�t�?�r�.�o�n�a�b�o�r�t�=�a�:�r�.�o�n�r�e�a�d�y�s�t�a�t�e�c�h�a�n�g�e�=�f�u�n�c�t�i�o�n�(�)�{�4�=�=�=�r�.�r�e�a�d�y�S�t�a�t�e�&�&�C�.�s�e�t�T�i�m�e�o�u�t�(�f�u�n�c�t�i�o�n�(�)�{�o�&�&�a�(�)�}�)�}�,�o�=�o�(�"�a�b�o�r�t�"�)�;�t�r�y�{�r�.�s�e�n�d�(�i�.�h�a�s�C�o�n�t�e�n�t�&�&�i�.�d�a�t�a�|�|�n�u�l�l�)�}�c�a�t�c�h�(�e�)�{�i�f�(�o�)�t�h�r�o�w� �e�}�}�,�a�b�o�r�t�:�f�u�n�c�t�i�o�n�(�)�{�o�&�&�o�(�)�}�}�}�)�,�S�.�a�j�a�x�P�r�e�f�i�l�t�e�r�(�f�u�n�c�t�i�o�n�(�e�)�{�e�.�c�r�o�s�s�D�o�m�a�i�n�&�&�(�e�.�c�o�n�t�e�n�t�s�.�s�c�r�i�p�t�=�!�1�)�}�)�,�S�.�a�j�a�x�S�e�t�u�p�(�{�a�c�c�e�p�t�s�:�{�s�c�r�i�p�t�:�"�t�e�x�t�/�j�a�v�a�s�c�r�i�p�t�,� �a�p�p�l�i�c�a�t�i�o�n�/�j�a�v�a�s�c�r�i�p�t�,� �a�p�p�l�i�c�a�t�i�o�n�/�e�c�m�a�s�c�r�i�p�t�,� �a�p�p�l�i�c�a�t�i�o�n�/�x�-�e�c�m�a�s�c�r�i�p�t�"�}�,�c�o�n�t�e�n�t�s�:�{�s�c�r�i�p�t�:�/�\�b�(�?�:�j�a�v�a�|�e�c�m�a�)�s�c�r�i�p�t�\�b�/�}�,�c�o�n�v�e�r�t�e�r�s�:�{�"�t�e�x�t� �s�c�r�i�p�t�"�:�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �S�.�g�l�o�b�a�l�E�v�a�l�(�e�)�,�e�}�}�}
2�)�,�S�.�a�j�a�x�P�r�e�f�i�l�t�e�r�(�"�s�c�r�i�p�t�"�,�f�u�n�c�t�i�o�n�(�e�)�{�v�o�i�d� �0�=�=�=�e�.�c�a�c�h�e�&�&�(�e�.�c�a�c�h�e�=�!�1�)�,�e�.�c�r�o�s�s�D�o�m�a�i�n�&�&�(�e�.�t�y�p�e�=�"�G�E�T�"�)�}�)�,�S�.�a�j�a�x�T�r�a�n�s�p�o�r�t�(�"�s�c�r�i�p�t�"�,�f�u�n�c�t�i�o�n�(�n�)�{�v�a�r� �r�,�i�;�i�f�(�n�.�c�r�o�s�s�D�o�m�a�i�n�|�|�n�.�s�c�r�i�p�t�A�t�t�r�s�)�r�e�t�u�r�n�{�s�e�n�d�:�f�u�n�c�t�i�o�n�(�e�,�t�)�{�r�=�S�(�"�<�s�c�r�i�p�t�>�"�)�.�a�t�t�r�(�n�.�s�c�r�i�p�t�A�t�t�r�s�|�|�{�}�)�.�p�r�o�p�(�{�c�h�a�r�s�e�t�:�n�.�s�c�r�i�p�t�C�h�a�r�s�e�t�,�s�r�c�:�n�.�u�r�l�}�)�.�o�n�(�"�l�o�a�d� �e�r�r�o�r�"�,�i�=�f�u�n�c�t�i�o�n�(�e�)�{�r�.�r�e�m�o�v�e�(�)�,�i�=�n�u�l�l�,�e�&�&�t�(�"�e�r�r�o�r�"�=�=�=�e�.�t�y�p�e�?�4�0�4�:�2�0�0�,�e�.�t�y�p�e�)�}�)�,�E�.�h�e�a�d�.�a�p�p�e�n�d�C�h�i�l�d�(�r�[�0�]�)�}�,�a�b�o�r�t�:�f�u�n�c�t�i�o�n�(�)�{�i�&�&�i�(�)�}�}�}�)�;�v�a�r� �_�t�,�z�t�=�[�]�,�U�t�=�/�(�=�)�\�?�(�?�=�&�|�$�)�|�\�?�\�?�/�;�S�.�a�j�a�x�S�e�t�u�p�(�{�j�s�o�n�p�:�"�c�a�l�l�b�a�c�k�"�,�j�s�o�n�p�C�a�l�l�b�a�c�k�:�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �e�=�z�t�.�p�o�p�(�)�|�|�S�.�e�x�p�a�n�d�o�+�"�_�"�+�w�t�.�g�u�i�d�+�+�;�r�e�t�u�r�n� �t�h�i�s�[�e�]�=�!�0�,�e�}�}�)�,�S�.�a�j�a�x�P�r�e�f�i�l�t�e�r�(�"�j�s�o�n� �j�s�o�n�p�"�,�f�u�n�c�t�i�o�n�(�e�,�t�,�n�)�{�v�a�r� �r�,�i�,�o�,�a�=�!�1�!�=�=�e�.�j�s�o�n�p�&�&�(�U�t�.�t�e�s�t�(�e�.�u�r�l�)�?�"�u�r�l�"�:�"�s�t�r�i�n�g�"�=�=�t�y�p�e�o�f� �e�.�d�a�t�a�&�&�0�=�=�=�(�e�.�c�o�n�t�e�n�t�T�y�p�e�|�|�"�"�)�.�i�n�d�e�x�O�f�(�"�a�p�p�l�i�c�a�t�i�o�n�/�x�-�w�w�w�-�f�o�r�m�-�u�r�l�e�n�c�o�d�e�d�"�)�&�&�U�t�.�t�e�s�t�(�e�.�d�a�t�a�)�&�&�"�d�a�t�a�"�)�;�i�f�(�a�|�|�"�j�s�o�n�p�"�=�=�=�e�.�d�a�t�a�T�y�p�e�s�[�0�]�)�r�e�t�u�r�n� �r�=�e�.�j�s�o�n�p�C�a�l�l�b�a�c�k�=�m�(�e�.�j�s�o�n�p�C�a�l�l�b�a�c�k�)�?�e�.�j�s�o�n�p�C�a�l�l�b�a�c�k�(�)�:�e�.�j�s�o�n�p�C�a�l�l�b�a�c�k�,�a�?�e�[�a�]�=�e�[�a�]�.�r�e�p�l�a�c�e�(�U�t�,�"�$�1�"�+�r�)�:�!�1�!�=�=�e�.�j�s�o�n�p�&�&�(�e�.�u�r�l�+�=�(�T�t�.�t�e�s�t�(�e�.�u�r�l�)�?�"�&�"�:�"�?�"�)�+�e�.�j�s�o�n�p�+�"�=�"�+�r�)�,�e�.�c�o�n�v�e�r�t�e�r�s�[�"�s�c�r�i�p�t� �j�s�o�n�"�]�=�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �o�|�|�S�.�e�r�r�o�r�(�r�+�"� �w�a�s� �n�o�t� �c�a�l�l�e�d�"�)�,�o�[�0�]�}�,�e�.�d�a�t�a�T�y�p�e�s�[�0�]�=�"�j�s�o�n�"�,�i�=�C�[�r�]�,�C�[�r�]�=�f�u�n�c�t�i�o�n�(�)�{�o�=�a�r�g�u�m�e�n�t�s�}�,�n�.�a�l�w�a�y�s�(�f�u�n�c�t�i�o�n�(�)�{�v�o�i�d� �0�=�=�=�i�?�S�(�C�)�.�r�e�m�o�v�e�P�r�o�p�(�r�)�:�C�[�r�]�=�i�,�e�[�r�]�&�&�(�e�.�j�s�o�n�p�C�a�l�l�b�a�c�k�=�t�.�j�s�o�n�p�C�a�l�l�b�a�c�k�,�z�t�.�p�u�s�h�(�r�)�)�,�o�&�&�m�(�i�)�&�&�i�(�o�[�0�]�)�,�o�=�i�=�v�o�i�d� �0�}�)�,�"�s�c�r�i�p�t�"�}�)�,�y�.�c�r�e�a�t�e�H�T�M�L�D�o�c�u�m�e�n�t�=�(�(�_�t�=�E�.�i�m�p�l�e�m�e�n�t�a�t�i�o�n�.�c�r�e�a�t�e�H�T�M�L�D�o�c�u�m�e�n�t�(�"�"�)�.�b�o�d�y�)�.�i�n�n�e�r�H�T�M�L�=�"�<�f�o�r�m�>�<�/�f�o�r�m�>�<�f�o�r�m�>�<�/�f�o�r�m�>�"�,�2�=�=�=�_�t�.�c�h�i�l�d�N�o�d�e�s�.�l�e�n�g�t�h�)�,�S�.�p�a�r�s�e�H�T�M�L�=�f�u�n�c�t�i�o�n�(�e�,�t�,�n�)�{�r�e�t�u�r�n�"�s�t�r�i�n�g�"�!�=�t�y�p�e�o�f� �e�?�[�]�:�(�"�b�o�o�l�e�a�n�"�=�=�t�y�p�e�o�f� �t�&�&�(�n�=�t�,�t�=�!�1�)�,�t�|�|�(�y�.�c�r�e�a�t�e�H�T�M�L�D�o�c�u�m�e�n�t�?�(�(�r�=�(�t�=�E�.�i�m�p�l�e�m�e�n�t�a�t�i�o�n�.�c�r�e�a�t�e�H�T�M�L�D�o�c�u�m�e�n�t�(�"�"�)�)�.�c�r�e�a�t�e�E�l�e�m�e�n�t�(�"�b�a�s�e�"�)�)�.�h�r�e�f�=�E�.�l�o�c�a�t�i�o�n�.�h�r�e�f�,�t�.�h�e�a�d�.�a�p�p�e�n�d�C�h�i�l�d�(�r�)�)�:�t�=�E�)�,�o�=�!�n�&�&�[�]�,�(�i�=�N�.�e�x�e�c�(�e�)�)�?�[�t�.�c�r�e�a�t�e�E�l�e�m�e�n�t�(�i�[�1�]�)�]�:�(�i�=�x�e�(�[�e�]�,�t�,�o�)�,�o�&�&�o�.�l�e�n�g�t�h�&�&�S�(�o�)�.�r�e�m�o�v�e�(�)�,�S�.�m�e�r�g�e�(�[�]�,�i�.�c�h�i�l�d�N�o�d�e�s�)�)�)�;�v�a�r� �r�,�i�,�o�}�,�S�.�f�n�.�l�o�a�d�=�f�u�n�c�t�i�o�n�(�e�,�t�,�n�)�{�v�a�r� �r�,�i�,�o�,�a�=�t�h�i�s�,�s�=�e�.�i�n�d�e�x�O�f�(�"� �"�)�;�r�e�t�u�r�n�-�1�<�s�&�&�(�r�=�h�t�(�e�.�s�l�i�c�e�(�s�)�)�,�e�=�e�.�s�l�i�c�e�(�0�,�s�)�)�,�m�(�t�)�?�(�n�=�t�,�t�=�v�o�i�d� �0�)�:�t�&�&�"�o�b�j�e�c�t�"�=�=�t�y�p�e�o�f� �t�&�&�(�i�=�"�P�O�S�T�"�)�,�0�<�a�.�l�e�n�g�t�h�&�&�S�.�a�j�a�x�(�{�u�r�l�:�e�,�t�y�p�e�:�i�|�|�"�G�E�T�"�,�d�a�t�a�T�y�p�e�:�"�h�t�m�l�"�,�d�a�t�a�:�t�}�)�.�d�o�n�e�(�f�u�n�c�t�i�o�n�(�e�)�{�o�=�a�r�g�u�m�e�n�t�s�,�a�.�h�t�m�l�(�r�?�S�(�"�<�d�i�v�>�"�)�.�a�p�p�e�n�d�(�S�.�p�a�r�s�e�H�T�M�L�(�e�)�)�.�f�i�n�d�(�r�)�:�e�)�}�)�.�a�l�w�a�y�s�(�n�&�&�f�u�n�c�t�i�o�n�(�e�,�t�)�{�a�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�)�{�n�.�a�p�p�l�y�(�t�h�i�s�,�o�|�|�[�e�.�r�e�s�p�o�n�s�e�T�e�x�t�,�t�,�e�]�)�}�)�}�)�,�t�h�i�s�}�,�S�.�e�x�p�r�.�p�s�e�u�d�o�s�.�a�n�i�m�a�t�e�d�=�f�u�n�c�t�i�o�n�(�t�)�{�r�e�t�u�r�n� �S�.�g�r�e�p�(�S�.�t�i�m�e�r�s�,�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �t�=�=�=�e�.�e�l�e�m�}�)�.�l�e�n�g�t�h�}�,�S�.�o�f�f�s�e�t�=�{�s�e�t�O�f�f�s�e�t�:�f�u�n�c�t�i�o�n�(�e�,�t�,�n�)�{�v�a�r� �r�,�i�,�o�,�a�,�s�,�u�,�l�=�S�.�c�s�s�(�e�,�"�p�o�s�i�t�i�o�n�"�)�,�c�=�S�(�e�)�,�f�=�{�}�;�"�s�t�a�t�i�c�"�=�=�=�l�&�&�(�e�.�s�t�y�l�e�.�p�o�s�i�t�i�o�n�=�"�r�e�l�a�t�i�v�e�"�)�,�s�=�c�.�o�f�f�s�e�t�(�)�,�o�=�S�.�c�s�s�(�e�,�"�t�o�p�"�)�,�u�=�S�.�c�s�s�(�e�,�"�l�e�f�t�"�)�,�(�"�a�b�s�o�l�u�t�e�"�=�=�=�l�|�|�"�f�i�x�e�d�"�=�=�=�l�)�&�&�-�1�<�(�o�+�u�)�.�i�n�d�e�x�O�f�(�"�a�u�t�o�"�)�?�(�a�=�(�r�=�c�.�p�o�s�i�t�i�o�n�(�)�)�.�t�o�p�,�i�=�r�.�l�e�f�t�)�:�(�a�=�p�a�r�s�e�F�l�o�a�t�(�o�)�|�|�0�,�i�=�p�a�r�s�e�F�l�o�a�t�(�u�)�|�|�0�)�,�m�(�t�)�&�&�(�t�=�t�.�c�a�l�l�(�e�,�n�,�S�.�e�x�t�e�n�d�(�{�}�,�s�)�)�)�,�n�u�l�l�!�=�t�.�t�o�p�&�&�(�f�.�t�o�p�=�t�.�t�o�p�-�s�.�t�o�p�+�a�)�,�n�u�l�l�!�=�t�.�l�e�f�t�&�&�(�f�.�l�e�f�t�=�t�.�l�e�f�t�-�s�.�l�e�f�t�+�i�)�,�"�u�s�i�n�g�"�i�n� �t�?�t�.�u�s�i�n�g�.�c�a�l�l�(�e�,�f�)�:�c�.�c�s�s�(�f�)�}�}�,�S�.�f�n�.�e�x�t�e�n�d�(�{�o�f�f�s�e�t�:�f�u�n�c�t�i�o�n�(�t�)�{�i�f�(�a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�)�r�e�t�u�r�n� �v�o�i�d� �0�=�=�=�t�?�t�h�i�s�:�t�h�i�s�.�e�a�c�h�(�f�u�n�c�t�i�o�n�(�e�)�{�S�.�o�f�f�s�e�t�.�s�e�t�O�f�f�s�e�t�(�t�h�i�s�,�t�,�e�)�}�)�;�v�a�r� �e�,�n�,�r�=�t�h�i�s�[�0�]�;�r�e�t�u�r�n� �r�?�r�.�g�e�t�C�l�i�e�n�t�R�e�c�t�s�(�)�.�l�e�n�g�t�h�?�(�e�=�r�.�g�e�t�B�o�u�n�d�i�n�g�C�l�i�e�n�t�R�e�c�t�(�)�,�n�=�r�.�o�w�n�e�r�D�o�c�u�m�e�n�t�.�d�e�f�a�u�l�t�V�i�e�w�,�{�t�o�p�:�e�.�t�o�p�+�n�.�p�a�g�e�Y�O�f�f�s�e�t�,�l�e�f�t�:�e�.�l�e�f�t�+�n�.�p�a�g�e�X�O�f�f�s�e�t�}�)�:�{�t�o�p�:�0�,�l�e�f�t�:�0�}�:�v�o�i�d� �0�}�,�p�o�s�i�t�i�o�n�:�f�u�n�c�t�i�o�n�(�)�{�i�f�(�t�h�i�s�[�0�]�)�{�v�a�r� �e�,�t�,�n�,�r�=�t�h�i�s�[�0�]�,�i�=�{�t�o�p�:�0�,�l�e�f�t�:�0�}�;�i�f�(�"�f�i�x�e�d�"�=�=�=�S�.�c�s�s�(�r�,�"�p�o�s�i�t�i�o�n�"�)�)�t�=�r�.�g�e�t�B�o�u�n�d�i�n�g�C�l�i�e�n�t�R�e�c�t�(�)�;�e�l�s�e�{�t�=�t�h�i�s�.�o�f�f�s�e�t�(�)�,�n�=�r�.�o�w�n�e�r�D�o�c�u�m�e�n�t�,�e�=�r�.�o�f�f�s�e�t�P�a�r�e�n�t�|�|�n�.�d�o�c�u�m�e�n�t�E�l�e�m�e�n�t�;�w�h�i�l�e�(�e�&�&�(�e�=�=�=�n�.�b�o�d�y�|�|�e�=�=�=�n�.�d�o�c�u�m�e�n�t�E�l�e�m�e�n�t�)�&�&�"�s�t�a�t�i�c�"�=�=�=�S�.�c�s�s�(�e�,�"�p�o�s�i�t�i�o�n�"�)�)�e�=�e�.�p�a�r�e�n�t�N�o�d�e�;�e�&�&�e�!�=�=�r�&�&�1�=�=�=�e�.�n�o�d�e�T�y�p�e�&�&�(�(�i�=�S�(�e�)�.�o�f�f�s�e�t�(�)�)�.�t�o�p�+�=�S�.�c�s�s�(�e�,�"�b�o�r�d�e�r�T�o�p�W�i�d�t�h�"�,�!�0�)�,�i�.�l�e�f�t�+�=�S�.�c�s�s�(�e�,�"�b�o�r�d�e�r�L�e�f�t�W�i�d�t�h�"�,�!�0�)�)�}�r�e�t�u�r�n�{�t�o�p�:�t�.�t�o�p�-�i�.�t�o�p�-�S�.�c�s�s�(�r�,�"�m�a�r�g�i�n�T�o�p�"�,�!�0�)�,�l�e�f�t�:�t�.�l�e�f�t�-�i�.�l�e�f�t�-�S�.�c�s�s�(�r�,�"�m�a�r�g�i�n�L�e�f�t�"�,�!�0�)�}�}�}�,�o�f�f�s�e�t�P�a�r�e�n�t�:�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �t�h�i�s�.�m�a�p�(�f�u�n�c�t�i�o�n�(�)�{�v�a�r� �e�=�t�h�i�s�.�o�f�f�s�e�t�P�a�r�e�n�t�;�w�h�i�l�e�(�e�&�&�"�s�t�a�t�i�c�"�=�=�=�S�.�c�s�s�(�e�,�"�p�o�s�i�t�i�o�n�"�)�)�e�=�e�.�o�f�f�s�e�t�P�a�r�e�n�t�;�r�e�t�u�r�n� �e�|�|�r�e�}�)�}�}�)�,�S�.�e�a�c�h�(�{�s�c�r�o�l�l�L�e�f�t�:�"�p�a�g�e�X�O�f�f�s�e�t�"�,�s�c�r�o�l�l�T�o�p�:�"�p�a�g�e�Y�O�f�f�s�e�t�"�}�,�f�u�n�c�t�i�o�n�(�t�,�i�)�{�v�a�r� �o�=�"�p�a�g�e�Y�O�f�f�s�e�t�"�=�=�=�i�;
2�S�.�f�n�[�t�]�=�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �$�(�t�h�i�s�,�f�u�n�c�t�i�o�n�(�e�,�t�,�n�)�{�v�a�r� �r�;�i�f�(�x�(�e�)�?�r�=�e�:�9�=�=�=�e�.�n�o�d�e�T�y�p�e�&�&�(�r�=�e�.�d�e�f�a�u�l�t�V�i�e�w�)�,�v�o�i�d� �0�=�=�=�n�)�r�e�t�u�r�n� �r�?�r�[�i�]�:�e�[�t�]�;�r�?�r�.�s�c�r�o�l�l�T�o�(�o�?�r�.�p�a�g�e�X�O�f�f�s�e�t�:�n�,�o�?�n�:�r�.�p�a�g�e�Y�O�f�f�s�e�t�)�:�e�[�t�]�=�n�}�,�t�,�e�,�a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�)�}�}�)�,�S�.�e�a�c�h�(�[�"�t�o�p�"�,�"�l�e�f�t�"�]�,�f�u�n�c�t�i�o�n�(�e�,�n�)�{�S�.�c�s�s�H�o�o�k�s�[�n�]�=�F�e�(�y�.�p�i�x�e�l�P�o�s�i�t�i�o�n�,�f�u�n�c�t�i�o�n�(�e�,�t�)�{�i�f�(�t�)�r�e�t�u�r�n� �t�=�W�e�(�e�,�n�)�,�P�e�.�t�e�s�t�(�t�)�?�S�(�e�)�.�p�o�s�i�t�i�o�n�(�)�[�n�]�+�"�p�x�"�:�t�}�)�}�)�,�S�.�e�a�c�h�(�{�H�e�i�g�h�t�:�"�h�e�i�g�h�t�"�,�W�i�d�t�h�:�"�w�i�d�t�h�"�}�,�f�u�n�c�t�i�o�n�(�a�,�s�)�{�S�.�e�a�c�h�(�{�p�a�d�d�i�n�g�:�"�i�n�n�e�r�"�+�a�,�c�o�n�t�e�n�t�:�s�,�"�"�:�"�o�u�t�e�r�"�+�a�}�,�f�u�n�c�t�i�o�n�(�r�,�o�)�{�S�.�f�n�[�o�]�=�f�u�n�c�t�i�o�n�(�e�,�t�)�{�v�a�r� �n�=�a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�&�&�(�r�|�|�"�b�o�o�l�e�a�n�"�!�=�t�y�p�e�o�f� �e�)�,�i�=�r�|�|�(�!�0�=�=�=�e�|�|�!�0�=�=�=�t�?�"�m�a�r�g�i�n�"�:�"�b�o�r�d�e�r�"�)�;�r�e�t�u�r�n� �$�(�t�h�i�s�,�f�u�n�c�t�i�o�n�(�e�,�t�,�n�)�{�v�a�r� �r�;�r�e�t�u�r�n� �x�(�e�)�?�0�=�=�=�o�.�i�n�d�e�x�O�f�(�"�o�u�t�e�r�"�)�?�e�[�"�i�n�n�e�r�"�+�a�]�:�e�.�d�o�c�u�m�e�n�t�.�d�o�c�u�m�e�n�t�E�l�e�m�e�n�t�[�"�c�l�i�e�n�t�"�+�a�]�:�9�=�=�=�e�.�n�o�d�e�T�y�p�e�?�(�r�=�e�.�d�o�c�u�m�e�n�t�E�l�e�m�e�n�t�,�M�a�t�h�.�m�a�x�(�e�.�b�o�d�y�[�"�s�c�r�o�l�l�"�+�a�]�,�r�[�"�s�c�r�o�l�l�"�+�a�]�,�e�.�b�o�d�y�[�"�o�f�f�s�e�t�"�+�a�]�,�r�[�"�o�f�f�s�e�t�"�+�a�]�,�r�[�"�c�l�i�e�n�t�"�+�a�]�)�)�:�v�o�i�d� �0�=�=�=�n�?�S�.�c�s�s�(�e�,�t�,�i�)�:�S�.�s�t�y�l�e�(�e�,�t�,�n�,�i�)�}�,�s�,�n�?�e�:�v�o�i�d� �0�,�n�)�}�}�)�}�)�,�S�.�e�a�c�h�(�[�"�a�j�a�x�S�t�a�r�t�"�,�"�a�j�a�x�S�t�o�p�"�,�"�a�j�a�x�C�o�m�p�l�e�t�e�"�,�"�a�j�a�x�E�r�r�o�r�"�,�"�a�j�a�x�S�u�c�c�e�s�s�"�,�"�a�j�a�x�S�e�n�d�"�]�,�f�u�n�c�t�i�o�n�(�e�,�t�)�{�S�.�f�n�[�t�]�=�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �t�h�i�s�.�o�n�(�t�,�e�)�}�}�)�,�S�.�f�n�.�e�x�t�e�n�d�(�{�b�i�n�d�:�f�u�n�c�t�i�o�n�(�e�,�t�,�n�)�{�r�e�t�u�r�n� �t�h�i�s�.�o�n�(�e�,�n�u�l�l�,�t�,�n�)�}�,�u�n�b�i�n�d�:�f�u�n�c�t�i�o�n�(�e�,�t�)�{�r�e�t�u�r�n� �t�h�i�s�.�o�f�f�(�e�,�n�u�l�l�,�t�)�}�,�d�e�l�e�g�a�t�e�:�f�u�n�c�t�i�o�n�(�e�,�t�,�n�,�r�)�{�r�e�t�u�r�n� �t�h�i�s�.�o�n�(�t�,�e�,�n�,�r�)�}�,�u�n�d�e�l�e�g�a�t�e�:�f�u�n�c�t�i�o�n�(�e�,�t�,�n�)�{�r�e�t�u�r�n� �1�=�=�=�a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�?�t�h�i�s�.�o�f�f�(�e�,�"�*�*�"�)�:�t�h�i�s�.�o�f�f�(�t�,�e�|�|�"�*�*�"�,�n�)�}�,�h�o�v�e�r�:�f�u�n�c�t�i�o�n�(�e�,�t�)�{�r�e�t�u�r�n� �t�h�i�s�.�m�o�u�s�e�e�n�t�e�r�(�e�)�.�m�o�u�s�e�l�e�a�v�e�(�t�|�|�e�)�}�}�)�,�S�.�e�a�c�h�(�"�b�l�u�r� �f�o�c�u�s� �f�o�c�u�s�i�n� �f�o�c�u�s�o�u�t� �r�e�s�i�z�e� �s�c�r�o�l�l� �c�l�i�c�k� �d�b�l�c�l�i�c�k� �m�o�u�s�e�d�o�w�n� �m�o�u�s�e�u�p� �m�o�u�s�e�m�o�v�e� �m�o�u�s�e�o�v�e�r� �m�o�u�s�e�o�u�t� �m�o�u�s�e�e�n�t�e�r� �m�o�u�s�e�l�e�a�v�e� �c�h�a�n�g�e� �s�e�l�e�c�t� �s�u�b�m�i�t� �k�e�y�d�o�w�n� �k�e�y�p�r�e�s�s� �k�e�y�u�p� �c�o�n�t�e�x�t�m�e�n�u�"�.�s�p�l�i�t�(�"� �"�)�,�f�u�n�c�t�i�o�n�(�e�,�n�)�{�S�.�f�n�[�n�]�=�f�u�n�c�t�i�o�n�(�e�,�t�)�{�r�e�t�u�r�n� �0�<�a�r�g�u�m�e�n�t�s�.�l�e�n�g�t�h�?�t�h�i�s�.�o�n�(�n�,�n�u�l�l�,�e�,�t�)�:�t�h�i�s�.�t�r�i�g�g�e�r�(�n�)�}�}�)�;�v�a�r� �X�t�=�/�^�[�\�s�\�u�F�E�F�F�\�x�A�0�]�+�|�[�\�s�\�u�F�E�F�F�\�x�A�0�]�+�$�/�g�;�S�.�p�r�o�x�y�=�f�u�n�c�t�i�o�n�(�e�,�t�)�{�v�a�r� �n�,�r�,�i�;�i�f�(�"�s�t�r�i�n�g�"�=�=�t�y�p�e�o�f� �t�&�&�(�n�=�e�[�t�]�,�t�=�e�,�e�=�n�)�,�m�(�e�)�)�r�e�t�u�r�n� �r�=�s�.�c�a�l�l�(�a�r�g�u�m�e�n�t�s�,�2�)�,�(�i�=�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �e�.�a�p�p�l�y�(�t�|�|�t�h�i�s�,�r�.�c�o�n�c�a�t�(�s�.�c�a�l�l�(�a�r�g�u�m�e�n�t�s�)�)�)�}�)�.�g�u�i�d�=�e�.�g�u�i�d�=�e�.�g�u�i�d�|�|�S�.�g�u�i�d�+�+�,�i�}�,�S�.�h�o�l�d�R�e�a�d�y�=�f�u�n�c�t�i�o�n�(�e�)�{�e�?�S�.�r�e�a�d�y�W�a�i�t�+�+�:�S�.�r�e�a�d�y�(�!�0�)�}�,�S�.�i�s�A�r�r�a�y�=�A�r�r�a�y�.�i�s�A�r�r�a�y�,�S�.�p�a�r�s�e�J�S�O�N�=�J�S�O�N�.�p�a�r�s�e�,�S�.�n�o�d�e�N�a�m�e�=�A�,�S�.�i�s�F�u�n�c�t�i�o�n�=�m�,�S�.�i�s�W�i�n�d�o�w�=�x�,�S�.�c�a�m�e�l�C�a�s�e�=�X�,�S�.�t�y�p�e�=�w�,�S�.�n�o�w�=�D�a�t�e�.�n�o�w�,�S�.�i�s�N�u�m�e�r�i�c�=�f�u�n�c�t�i�o�n�(�e�)�{�v�a�r� �t�=�S�.�t�y�p�e�(�e�)�;�r�e�t�u�r�n�(�"�n�u�m�b�e�r�"�=�=�=�t�|�|�"�s�t�r�i�n�g�"�=�=�=�t�)�&�&�!�i�s�N�a�N�(�e�-�p�a�r�s�e�F�l�o�a�t�(�e�)�)�}�,�S�.�t�r�i�m�=�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �n�u�l�l�=�=�e�?�"�"�:�(�e�+�"�"�)�.�r�e�p�l�a�c�e�(�X�t�,�"�"�)�}�,�"�f�u�n�c�t�i�o�n�"�=�=�t�y�p�e�o�f� �d�e�f�i�n�e�&�&�d�e�f�i�n�e�.�a�m�d�&�&�d�e�f�i�n�e�(�"�j�q�u�e�r�y�"�,�[�]�,�f�u�n�c�t�i�o�n�(�)�{�r�e�t�u�r�n� �S�}�)�;�v�a�r� �V�t�=�C�.�j�Q�u�e�r�y�,�G�t�=�C�.�$�;�r�e�t�u�r�n� �S�.�n�o�C�o�n�f�l�i�c�t�=�f�u�n�c�t�i�o�n�(�e�)�{�r�e�t�u�r�n� �C�.�$�=�=�=�S�&�&�(�C�.�$�=�G�t�)�,�e�&�&�C�.�j�Q�u�e�r�y�=�=�=�S�&�&�(�C�.�j�Q�u�e�r�y�=�V�t�)�,�S�}�,�"�u�n�d�e�f�i�n�e�d�"�=�=�t�y�p�e�o�f� �e�&�&�(�C�.�j�Q�u�e�r�y�=�C�.�$�=�S�)�,�S�}�)�;��� 3�
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.