HEX
Server: Apache/2.4.46 (Win64) OpenSSL/1.1.1j PHP/8.4.25
System: Windows NT DESKTOP-4TAV2RJ 10.0 build 19045 (Windows 10) AMD64
User: fred (0)
PHP: 8.4.25
Disabled: NONE
Upload Files
File: C:/Users/fred/anaconda3/Library/qml/QtQuick3D/Materials/qtquick3dmaterialplugin.dll
MZ����@��	�!�L�!This program cannot be run in DOS mode.

$�":��CT��CT��CT��;Ǖ�CT��6U��CT��(U��CT��6Q��CT��6P��CT��6W��CT�&6U��CT��CU��CT�&6Q��CT�&6T��CT�&6���CT�&6V��CT�Rich�CT�PEd����d�" �!��`0#��#�p`P����(@80�.text
 `.rdata,0 @@.data(@&@�.pdata�P*@@.qtmetads`.@P.rsrc`p0@@.reloc��4@BH��!H�"0��H��(L�
�$�L���H���H�
�H��(���������������@SH�� 3�H���!H�$H�H�v$H�CH�� [�����H�\$H�t$WH��0A��H��H������2����~H�
$!�� H�L$HH��� H�������|H�Iu��QH�L$H��H��H�L$H��H�Ȳ*��H�����H�L$HD�B�i����H�L$H�؉2�5 ���t��H��H�\$@H�t$PH��0_H�%�H�� L�7�H�D$(���DʉL$ D�J�H�tH��kH�\$@H�t$PH��0_������������H�\$H�L$UVWATAUAVAWH�l$�H��PH�
 M��E��D���H��H�����H�À<u��C�D$D��0~Hc�� �L$D�L$@�
H�D$P�D$@0Hc�H��L��H�D$HH���4H�D$HLc��*H�D$HA�D�C�E��@~Hc�) �MH��H�E�M�H�U�E@H�U�!L����!�BH��H�MH����H�E3�A�D>D�G��CHc�H�E�H�L$0H�T$H�}��C�q0�����H�
���H���H��oH�����@8|H�Iu��QH�����H��H�����H�Ȳ*��H�����H���D�B�3����H����؉�/��H�L$0���t
����.H�ZL�H�D$(H�_A��D$ �KH�L$0�E���H�UH�L$8A������HA�@H�|$(L���D$ H�H�L$8��H�L$8�E��^H�G����E��H�M�H�E���H���H�U�H�E�3�H��H�E�D�m�D�e�L�}�H�}�H�}��E�H�E����H�}�H�}�H�}�}��&H�M���jH�MH�EH;�t��H�L$HH�D$PH;�t����H��$�H��PA_A^A]A\_^]��H������H���w�������H�\$WH�� H���H�H��H��H�A��H��
@��t&H��@��u�qH��H�\$0H�� _ú��H��H�\$0H�� _����H�\$WH�� ��H���C��t
�H���)H�\$0H��H�� _������������H��tH�H�H����H��t"H��JIB A J0I0�3�H�H�AH�AH�AH�A H�A(H�A0H�A8H���������������������H�IH�y(tH�%�H�*�������H�%����������L��L��H��u3��L��)I��M+�D�B�+�uH����u��uI���I��I��H�%H��������@SH�� H��L�
��H��D�B
����H��D�BH�� [H�%��������H��(eH�%X�

-�H�ȋ
9[,��H�>,H��t�@��t
H�=2,um�H�\$ �E3�H��H���H��H��H�H��H�C��H�
�+H��+H�\$ H��+H��t���������u�#H��+H��t�@��tH��+H��(�3�H��(�H�
�+���=�+��7���H�
��PH�
y+�T�������������������H�H�%*�%�%�%�%��%��%��%��%j�%T�%��%��%��%��%��%��%��%��%���@SH�� H���H���'��tH���H��t�H�� [�H���t��
���
�����������H��(���t!eH�%0H�H�H;�t3��H�
�*u�2�H��(��H��(�s��t�
��[�����t2����H��(�H��(3��=����H��(����H��(���u2�����u���H��(�H��(�w�r�H��(����H�\$H�l$H�t$WH�� I��I���H������u��uL��3�H��H��RH�T$X�L$PH�\$0H�l$8H�t$@H�� _��H��(���tH�
�)H��(������u��H��(�H��(3���H��(��@SH�� �?)�ɻDÈ/)�~	���u2�����u	3�����H�� [����@SH�� �=�(��ug��wj��
��t(��u$H�
�(���uH�
�(���t.2��3fo�H����(H��(��(H��(��(�H�� [ù�
��H��L���MZf9�uxHc
4�H���Hʁ9PEu_�f9AuTL+��AH�QH��AH��L��H�$I;�t�JL;�r
�B�L;�rH��(��3�H��u2���z$}2��
��2��2�H���@SH�� ����	3҅�t��uH��'H�� [�@SH�� �=�'��t��u�
���
�H�� [����@SH�� H�=�'�H��u���H��H�
p'�3҅�HD�H��H�� [���H��(���H������H��(��H�\$WH�� ��H�
j'��H�
���H��H��uH�
���
H��H��tH��H���H��H��H����H��tH��tH�=.'H�/'�E3�E3�3�A�Q��H��&H��t$3������tH�
�0���H�\$03�H�� _ù�}�H��(H�
�&��H�
�&H��t��H��(�@SH�� H��H�
x&�r�(#H�
e&��&���#�eH�%XA�L�Ћ�"C��*H�� [�h@SH�� H��H�
&��;u���4�d���;�t�eH�%X�
 &A�H�ȋ�"A�H�
�%H�� [H�%��H��(H��%H��tH�
�%H��(H�%�H�
�%�yH�
�%H��(H�%_���@SH�� H��%��H��tD��H�^%H�
G%H�� [H�%�H�
D%�6H�
/%E3���H�
%%H�� [H�%�@SH�� H���H��H���t
����H��H�� [��H��(��t9��t(��t��t
�H��(��v�����G�����H��(�I��H��(�M����H��(�H�\$H�t$H�|$ AVH�� H��L��3���������m����؈D$@@��=$����#�����tO�w�"�IH��H�
��L	��u)�U�����t H��H�
w�&	��#@2�������@��u?�H��H�8t$H��������tL�ƺI��H�L�
A���#��3�H�\$0H�t$8H�|$HH�� A^ù�T����H�\$WH��0@����#��
3�H�\$@H��0_�ȉ�#�S����؈D$ �=�"u7�g����2��%�"������3�@��������ۃ��i�����뢹�����H��H�X L�@�PH�HVWAVH��@I��L���u9#3����B���wEH���H��u
�D$0����؉D$0����L�Ƌ�I������؉D$0����L�Ƌ�I���5�؉D$0��u6��u2L��3�I���H��������H�#�H��tL��3�I�����t��u@L�Ƌ�I���.����؉D$0��t)H���H��u	�X�\$0�L�Ƌ�I��E�؉D$0�3ۉ\$0��H�\$xH��@A^_^����H�\$H�t$WH�� I����H��u��L�Nj�H��H�\$0H�t$8H�� _������@SH�� H��H��H�
i�W�H�H�SH�H�'H�|�H�H��H�� [�H�aH�t�H�AH�Y�H�H�����@SH�� H��H��H�

�W�H�H�SH�H��H�H�H�H��H�� [�H�aH�@�H�AH�%�H�H�����@SH�� H��H��H�
��W�H�H�SH�H�oH��H�� [���H���H�H���W�H�\$WH�� H�k�H��H���H���4��t
�H���P���H�\$0H��H�� _���H��HH�L$ ���H��H�L$ ��H��HH�L$ �&���H�3�H�L$ ���H�yH���HEA���H�\$H�t$WH��3�3��D��E3�D��A��ntelA��GenuD�ҋ�3�A�CE��A��ineI�$Eʉ\$���L$�T$uPH�
[�%�?�=�t(=`t!=pt������ w$H�H��sD��A��D���D���D�H�;�|&3���$D�ۉ\$�L$�T$��	s
E�D�Q��D�
�����D�
������sy��ss3��H�� H�H�T$ H�D$ "�:�uW�z���i�gA�� t8�� �P�N��D#�D;�uH�D$ $�<�u
�
/@�%H�\$(3�H�t$0H��_���̸���3�9(��Ã%y�H�\$UH��$@���H���ٹ��
��t���)�����3�H�M�A����H�M��
H���H���H��E3��{
H��t<H�d$8H���H���L��H�L$0L��H���H�L$(H�M�H�L$ 3�2
H���H�L$PH���3�H���A��H��H����.H���H�D$`�D$P@�D$T��	��H�D$PH�D$@H�E���H�D$H3��	H�L$@��	��u��u�H���H��$�H��]��H�\$ UH��H�� H��H�2��-�+H;�utH�eH�M�	H�EH�E�	��H1E�	��H�M H1E�	�E H�MH�� H3E H3EH3�H�������H#�H�3��-�+H;�HD�H�1H�\$HH��H�H�� ]�H��(��uH�=�u���H��(��H�
iH�%	��H�
Y��H�]�H�]�H��(���H�$���H�H��(��H�A�H�\$WH�� H�_�H�=X��H�H��t��
H��H;�r�H�\$0H�� _�H�\$WH�� H�3�H�=,��H�H��t��
H��H;�r�H�\$0H�� _���������%�	�%�	�%�	�%�	�%�	�%�	�%�	�%�	�%�	�%�	�%>
�%�	�%�	�%�	�%�	�%�	�%�	�%�	�%�	�%
���3���������ff�����������������������ff��%�	@UH��H�3Ɂ8�����]��@UH�� H��M@H�� ]�@��@UH�� H��M �.�H�� ]��@UH�� H��H�� ]���@UH��0H��H��H�L$(�T$ L�
,���L�Ep�UhH�M`����H��0]����������H�
yH��t���������uH�
_H�����������H��(�k���L�

��L���H���H��(�A�b02�1�1�1�1�1|1`1L1811
1�0�0�0�0�0�0�0J020$022h,�,�,�,�,-�-�-.0,~.�.�./</p/�/�/�/N,,�+N.�+v+:+�*�*�*^***�)�)F))�(�(V(�'�'�'�'H'V2`2x2�2�2�2�2�233,3F3h3�3�3�3�3�3�33�����(�)�)���(����0� �P�6�<�B��*�$�0��������CustomMaterialQQmlListProperty<������6�<�B��*�$�0������h���������x��ے�6�P�<�-���4;��²�)a7I��[Mdˑ�%���9��4�ɭ��GG�~�'_�ӱ�d$��⛭!ިK�O�.���fz
+*��.�~+�/d�e䵁�(���L�aƆ�������n��0}.��,�<�2��-�$��M�2D�H��,Lp����^����t��MG�b�br?{��ES>���,yF�h�a���&[)�K����=��IHݓ��R��Pߗ*���Ȏ�-��*�l?��X�bC%y���,dhvT1"U�Pa�����L�{���	�DX�Ay�2q�NqcX\�ff���)�q��M��JE
�;��T�ƈ�~�L��5���Ds��T��
��8�*���ُ9�}Cp�P�B6�x���ɓ�2a1S`�t
���n��U�5C�I〩�!���[6�,�Ҩ�8�x 2�R��Z]�.(����40\�-��o��\���� ���"�0(D;r�[�i�~�������0cT�� Z۪��C����i`c�"%�O7��!�V��FAi�9�9rR�̦K�$ y�Xn�cT�Cʕ
H
A,R�D�Q
6qڗj3�m2�$�E���5����x~�'�3�r�A�3�]����c���=�H�rEE�����h$gu�H#�=�/D�#���E�)��|A��B�'�
i��RR� _.lh���T�
1�HU��k�YWhh�B5Q@<̯R�W����xU�Ʀ�S�^,&����l�z������av���[L�ӻ������t~���z˝�Y�'�%�>ނ�0 ���B��y��[��B�&IM~ ��K¦�R]1��J}�I���@����/�|C�����!H�$Rۺy��7 �*=�<^u��9iA���|�ӻ$k��*�(��j逾���%T~�R0�c�[C!!�0T�}��a��u!P� �;G�%&Jή>�z~�ql�"��$�����!wK(� EU�\͊w��Q���^aU�>\z��Ґb��pn9�|��_�V����޶��mi�V���(Y:���؄�"<*�ن����Y"�����v��[Ip
�iC�1�fh�c�Bv�!��+ ��b}��fi�۰�iC��."^���8~�JƘ�G�"�+R�����
#��DH���04�@h�鬥%Y��g>�k3�%�GB*�3v!�:�u08B�a� ��Cwq�a�i�E|���O{�W��d`��A�68ՙ��G��#c�@(^���c�U�����g=����	¨u�9~�|��S��<�?�X;|"]��2��W���i]����K��v�X;OZ�Q���2q]2��~T�"O��_.g�;�9ck�m�����8��^�.�|�pUBpʭ2�0�C�H�(��5�,Q�w�D�-�^਀9�����d4��u��r:�@>���ǾM~~Yot.�/��z�/0! �k��6׫����s@�b��
k�awο�ca�/�C`��l��[З��4�������u���9뢜�rp���T��J�R�*�.-�o��]�g�û ~$���nu�p7�P\X���b�c������{ԵUIΫt�!��?��gM���!��}]�O��r{����W���}��Z�e�W0��8��l�����b�·�b�p�pz�N�
z�s0�ϭS���:o
��(h�h$���jI����˅N�,�����L��a�%i='z� `�]X�R<�qU�8G��`����bv-���3��Ϡ�y�\���nd.��jԠ䋠�zNm������h/T�J����¦��J����I�zI�*�Zf�e��ؾ���+�����Wm��$��.F<g�^V�"f�p'owT�ͺW-t�J���ܮ���a]��h�O'�[�V�������/��R�"���êzP�?3�Y*����p��|�ʢs��^޷2p�Y��!��2�x��X�o����bzɇU���-#(��]���XJr�!�]J"����r-���;C�[���\+�.9��or��+~:��*�i���λ�f8:������gt�43BE�Vʿ�|���0f��M�QF���-l������v��b�B
��y��h=���7"����?fڀZϣ��4���|?_���&���|<���^�]�t�k_0	ז=�	[s��x%�L��r
sZ!Q�v��zSj�J,�9l���<����[k�C��z
r�2S+�e���=`�p!�\�z(�U҄	�B@E��2u`��1<�H\r��8�S)�(h���JC���kYEF�sU��,���q[�U��ED+�C+~�)��`��mF�:Mr'_M?���FP��%����:p���yKN�H���
�T��v\'d�:<T�Ԡb2��!������Q�rg��b����R�.�7�(�`�$=���ċ�۵E����Pg�܇�B���,��G��L+�(f��lM�,Z}����њ?�u씔j��M��y�y�!5�%�d�A,%qB���Q
�Q�Wz=�1�c���?�oL(�)?�^�	��
�Ϡ��Z����X�y� T�Z0o��0��4���7���=�%�[��/YWx�A��ɦ�ڎ�Bk�y�O��,�_X*M�����t��N�zY��+��B�׋��j��9�j�:�p������6�Nb�h|��v}잃~I�O����)&��fW7�g��Ň�Ê�ՙO�������d>�� �����<�Lo�oN�q��"�:��1��ヲ�S�����b��
��H6�ʓJM���aI�a���ɚ�"0�S�P����F��=�0Z�{F�����o fG���|��h�-ҽ���οQd�z�+��*�Y�q%ݖ�+���P�ԗW|SjSq�I?�X�^�ۨ9�E%3#"Sr���s�4O0(�UǰDW�[z�
g�@���x����C�1M]�t�&�G'��
���ي���Zm�!�f��ؙ�No��Ĩ�6l-��)���_v���Z��ӧ���٢��M��E�U/�V��0�;��H�fQB��y`�V�>'rig>��,�����F�v&ů<��m[�3�3��nX�F��
[�Z(j�f������|��HH� 힯$�͞��R)	��|�f�pz]�.e<X1��r��“�65�Rc�����k�ރa�~��sQ�}.�X��V�úW�K
���j:j�5�1:���b��,�3�'���l��Kl&q+ +^�U�V�_aq���dz����SA�?��')��Z�x�r�ӛ��!�Tba�Zĉ�spJP
0� P	�\A�?� u)�b�d.�k�f+lI���t��k(��j�X.������m(t^`�UkHPu)#����0	s�������OV5E�e�h�S(�(�QЉLRZw*�U`�־}J�g*
�q����A�5=��@�R�UO[7/��o��Oz�5�k*��C�A�^
X��R>)��x�}�_��>
���:
�����������<��M���8�u*���)��{d�G��A,����R��f3ٛ��ߧ��C�0��j�w0�w�_Ѫ�r�@�����䜘لi�ڳ�ͮ{ʼn$oHG=��nђ:~���O�
~����S�ZS~��-�y�3z`�X��w��mPϞ���+��^E���*�?����|��SO2+�Cz��Ö��VE�_��Y�l���l�����^sh��l=�YVv�d��	Q�Zn�)4�y��(���wԕS]�_,B�qp�5�׸.�v�S����<����şuB�����Q�H�-`���uN'E�Vړw���@���yX�}��o�[����w@���4|W�u���U3�:�6��Q��B	#�	�j��!��G�N�`��;X+*��׬b�̽�ʢ}J�����/O;]v|����.Xoc����š_�S�����{�F�l%��z�*	�\iR0)x��X�۸��䃝*~���"(���3��ݬ��@q0h����D��츇��o�ԃ�廤M���%�p�yp���o���/���A��֐�U��
Gr�av=��J���ˤ����2��%Nir w&�9CC�l�I��`��?�>��C�h�l��Ŗk���M�2D�Q��Mq����[,/�������jz?���}�{���1S!���Y��tÐ�/0M�RD����	�=��YL1=���ʪ��0�*�I�Ȟ�-Й/"�O�F1�ĐT��XT����\�=U�H*S	��c���V%�kP����搽�ư�Ӹbf�`� 3B���>�����;�VT�`$�8kP�D�r��؜�u��D�Rx��*����ǜѡ!H!Դ��9^f���{r����l���\*ފ���dIĔ� $ހ|��]Ŏ)��!@�&������pAA\�g�K1Ҡpu�
�v=%7��F��~l4�,����]o�f�����2O*	6N��Q��lAn�v^}(���E(���eJi�3��.B�V�<
F�i�v��8)��g3�F�<S����}ʸ�	�!��@I��5��&�Rm&�M*^������/��uQ����:����(ﲘDl
5�;���e"�T�[J��E��F2�/�,扭߳:!��y���^�t
��l���x��j̕��E�R��qL�pC3a<an]�%U�4���f���!�n�@�Z�ЗRP�����oWcS�r�)y���‹˻���ۧ||x��^>>�g���	���S�����ۋ; w��@~�(��B�	y	���-_�`#��!zK�S�̤��Tw8!k�t%�T�e�h���`��V�),��C���;/n,�AA���	�W_��	��(8eA�I����n%��T�ev޲��Y���|�Z�%�0���-��k�$�ڶ�6A��]�h�f��Sيe��8
�q�P���
�s�Jb�t|ީ+���y�4\u�qZ�p3�oF�k^�y�c�������C�p���~���z�6�_<\e��-�0T�Vqi(y��p�:M~Tr�N�/���O�m���0���ș6.��%��E��4=�5Mv\���W�ۈ1�\Ӑ���MG�=�[!�>�����}̺�-M�<.��ȶ��!xU�c�����م����"��J�򻍱�k��y��/��5<O��)(֐�����WR
�]���nϖ�+�.YS�zJ��*�^h���o�<��\k�{��K����^!E��bM����#�Ւ��!��^`�\sU���R[�Y,��y�0�sޏr�gOA�D�
�0����v�\��r��bv���c�'~S��i�I����7�w^ʵ���˦����/�D���m��g�=ln&�uk԰UA�^�T͢���֐L�&��`�:�j���1J;�>J%�G���h�%��-���6􅺼�!�#�m�x��t�T���O>��������_��I�)��~��_�|U��-�Q{��x*�����g.�'r�k�p�N�D�Fн{	�m_�a���_Q�}{Ŧ�ń
�����d���������}���
�j+�h��5���!�v�kRN�ń��8��5���Xu�x�l����h���Ai�H��"��L�[�3�����%�f�rX�-Z�H/�*��y�p���?�?ͥ�O���l���(�z�Ѐ�x���|�{c}7?����9���W9��Ӳ������y�t7�4������k��y�������i��|t�C����-9, ��$��}�o��ɣc��#�}YJx8�����)ޢ侌Wk�gr��'���h�?�{�U��I�a����)����ފ���]�{WF�"�=oVc�C���\�=�-(�*׵m��r��6����(��6L܆�0�죅��k�<���t^~�>JWZ)R�o�	F�j��(?]�����K8�a�
��l�;	�8���y)���P������o>
+e�x��X[��6~��P�<@J��^�;��²�)a7I��[Meˑ�ei����H��Iә\Z�[��\�sѱ�/��dz_2��N�ƐΰK�NN/���fr
�JE
����Ylyk��4ّ�	s���\��1���ۭ��\�X�y����I�#�Re��P�
��,���_�],��d��N���|t9���p�☩�SA�V<#�4]3��L��!�%�T��P����H�MeU�bhH�$`d���."�O�Z1�ĐT�G��dG)s�-U�H�#T�����]�*�X�*�' .7�l7�%5�+f�Vv2#4	�b�[�H���kE%Fr��&UK�,����I�2&*�“H���J�sF� �P�"6�x��"���;2f	S�}�{Cz��
o�PH�$d�� $ހ|��]�#S=8���X*"St�K0�q��/�H����*��fDn!$��+\��h�Y�)@!�Q����(�۽e�Tl�@�
�ق���|(�s�@d��˔��w��]�-��F�i�9�:qR���I��L��c*�1��&��$%ALb��
�I�K����שxu��zɏf7E��p�_���~��0ﲘ�,���swAb��%醒��E��Fr�\Y�[�gMBL�x��孢�24Nk��bdSmWc��T,,ȕ�5�c���	S��\RU�斵Z�j2t@��(	ԥ�h�c^�koS�r�<o��1��z0-߽?��S>�=Lo��w��br7;´���>FLfwo��@���@�A�{��PaB ���B��3y����Bf&͌P��`�P
����Fe��"(ŭ@�y��e �}C�����
;'�Զo^�&k�h��<^y��B��;�����.�
<�*n,�A�Z9�o̚b
���2�����HH�)L�|�lX�ǿځ���n��g����+�	���:���+Ϛ
�s�[nГAMݻZ����a����`ۅ��
_ť����`r�|��'_+FۨeA���&	k��� �Ӆ���Vv�a	f��Ƃ�@va/��"��J���Ƹe���1�?a����v
�dxP>�l��:�m\����.#����(y�J&X�G�b(р���涍#���XH�w�84�Dh��VR
��,�r�C]�kK�US�DT��ׅ��<[V0B3a�`�)Rws�ad�ۋ�rҳ_�-�H7��Rl�l?��n�$x<�^y/0�7\U+x�7r�(�iou�2��c�An��/QyLG��s5��p'����d6m=�تȏ���O^��~��v�s� �^�۶��N�^��^
��=�a�*~�O�.v$so�lUX��:E����A�Φ)/I�]9�H��Dx/u��q�v��?h�V��ӻ~$�cg�[�?�
F�*���=#[�9�k�K���.�GC[�t/x��6����imygkkl(���U$>��^#���1���P�_�J�
�9�s� g[����KRN��hqڳ_-�t�p�fx���ihf6(���sng��|�{Gc�%��xv�
,�g�����V{V޻q��:K-�g�t�|�m�p�c�w9���^�|��_��U��e���E@��-<9Oj�{G3xgSE�;E�0�m�jt�ͷ_/��w]�=�Z��侓���xYQZ�l��K~6O����y��U�^�n[����;���^gu�w	�{�A�(j<v޽�U��P����Ů�֫^���j��Wh�*�E��u��n�(�8��Cmҕ��D�3��'���XV�n�ܼ��Ѓ~�9���R��t
��ط+���`�ӺS�R�rw���
�
;�F�x��X�o����bzɇU���G4FP�!�Bmٱ���C P��Dw���ZV���o�ܧ��] �]A�%��̓C��|�O�~�\%-�+�y�0�4���N�fF���J�7��8|08%,��	s�ذ����1I���_�׽_LO���S/����J����'LP�yt��B�r�������h<��Ǔừ���N\q&�ڲ��1eKNs�Oa�d�r�IBP�AaN+$��2\o*�bbÂ@����0+��u�z`K�y�c�V"�aIN\&ja�LsP�&
�1����G9�B�&JQ*bd��k-��qM✛5Ǒ�ʀ��ozp�4��;��UL`ġ ?��P�x�R����E�QEM\D�P:����ǝҁ�fZ��o��p��#\�k�.����.=mW���7�$?�,��!�AE/�ߊi�uJ���C�K
*!��@.�+�,|	y�7V�?/�p�.!�/j���z��2
��N�ӕ]L�h�][�I��	�q��}-Dm��ӡ��p�|�,��b��̖�ʂ��Ճ;�����k�NI��H��R�5�4/@܇��dBۀL1��$N蓈oU�e���^�L��D�=�
z+�z��E¿v�_���t�}`a��e�|�9�v^��1��ɢ�A������ZiӇ�t�b5c2Y�'7���q]ce�e��V�-&{�zT/Y���L�{7.��{7����:PR�d�gs�1��s�A�L��E"7{�����t�:����	���{�%����g�k���0�\aܜ�]g?
j�g>��__��n'���v��h:�qz�o�l4���9���Ϋ<��4���K�*e��Xo)S)�n)7���'��$3�Ò���5'e`�Fg���+�Ӎ`Y{�a����g����v��A�R[�O���%j4�vFN:��Ȃ�<
�7JT����B*�5'W�ˏ�$i.���Ҧ檓~7�H��ɩ�Qs��+fFĦ�By�\�i�bP��a��(u�$����
��5?z��c	pmP�ك:�(98�8��0\���X��<A���7$�RW�P�F����y��О�]FFU��I�k�q��Vs��Ts�6�G��>��@N���Ě�)m�%2mdZ��ȥ}�L��t�*�#D��0�ʉ���F<�p����<t�aIU(��j�Hi�?�\\����m���|�☷��6�'�����k���	M�B���ٙ+%����Մ�P�k��&q��b�w\�R&g�_jlȊpZ��Z��`��/t.��%��5ã>�Jq~��wIa{!t5B�Hc '��n�Nd��v8����{?b�;L�ȊWb�(��W�Z\�c:_��6{T%����
o�d�V������gjq4s�·=1���
��&TL<WZ|8�
�>d.�2l��%�n���|�-��?�n�-%uB�*6�˃]��j!k
�W�b�Tg����o9���³ǭ�>n���ɺ�ȴ*��.��5*�t"ӟ���J��ڷ�)�BE�%�`?|�Nh(}O���i�������YO��rC�B�Ao`?h֛RkV�g�8�`���i���虺�����ۿo�n͐��͋��T�8aN�c޴��}��A�%�G�y����~�pY�!��~0��ނ�>G�*���UK��i�C��V�����w��$���&L�֞��v�;(�!=���eK�Q|�<bo�;(+�N�;[�{OC�.dQ2�O+�{c��b�p�����&�;�_�����S㥵	���W�����|���{V�`�ɬ�K�v�r�_LU����"^�4��o|��N+[O���B9����Ž���-����|���u��#�ߺ��V���wt�^qف���gD�~��5޽���Q����_q:���~˭��$��y�����n����&�*�j��{ؽ��pU���$���l{�ԫzw�ܭn��k5w��^�����YMg����Q�+"Fس��	�C�R�f��~Ix[isg�k�n���^BYv��Ai�R���VVc;]����JUkx�b�f���5��#&Ca%��ޣ�,_�h��5���`�,)x��Xms9�ί���x'�c�6�ԕ�1K��!�}�Čt�M$
,����ZҼ����n�(ʀ�ꗧ�n��w�
_-����$[�5�o:�~	�O���5��LH��H�^�a���A�N��t��&�~k�3����n��/��D�������^a�f
b�)�gF���0�y�D�|�a�G��b2�Ng÷���Kg.I��0��)|TdE�^�@���.lg��4�B��� ��*5jH
�4��ez�����8d%)Mh�!�b�"U�F�L�zK$! \S�"��w��A�D�)����p��iMӆ�%�[�+;�I���t�NH��wz��Ԁ�F��YB�ɚ�~U�9mq.�Ei��42�\)���P���=j�W�*�<�~�M�DP�%�{���}��T��-��A�FT6DR��ߚ��P�L� h�ˈ����:`�	�+�,|��4\���Sb��腫���e��n���=lt��lœZ���D��![��
�(�.��E���r�
e$����)B�V8%��F�N��\lQ�0�Zz�KZ�x
AI��LZB*$1�F�$��`��]!W���*�.���Z'�Y���mY�/��{�Z�^Haty���T���Ec̋P`Y2d]�-��
�#8JD,�I�,^W2*$X�r!i��N�hGK�����C���V%�a6!�׃�p��S�q���qr�x������	�����S������[/
��wX%��$+C�r���s���⮨�&�NE��\��k+���.�U�!�e(�4�†��_[`�]@&��ZW�&�
=Z�G+���oh�T���"�r�K}���H��V��J�z0ބj�uMs���r�S�r�u����c��M{������M��Hޛ6�O
h-�H�q:1���)���ķ�SȽH$�߼�mfTr�NS޳��A�ds�N����iJ7U���mQ�qn��B½�5if��C?$_r�w����E�Z#'�O���1 ?���=�NI
�
�"5�rB��	z��MX(ELB���;/��q��b&�O�D,��}t��=%#�S�'�ɍ�_
���;ߊ���[]�b��6Ą�U�"j�ly⤅��!6���0aJ�pp�ȷ��7tJ-|���0msMZ+���xP�榄n��W�E��P�X8Vg5�p�18M$���ǠX"� �6L/X��VoFx�~���#����i>��g��I������r��k��]������B� ���eY){_o���{��؛=Ӟ��T;���2	���\��޴�?��Y���!��
*��9y��i��3m5��K��!o�ѦNWOe����"�xx���\*]�w���m�r�(?� G~�?	�)Ncg��]jOp�k�q�Nr�(�4���#��}����F�}�5��m�4��w��2~J�_g�?���B�:�7��W���\�j�Y��7{�-T3a9���m����>3r�����W��h�ڤ�G�6x�6�ǫY�0x�A'�*�v�4��]\��7.��Ñ�}��� Xb��ز/��
\��گ��DN��:~��\�(�k#�*���x�dT	��~��O$��F�/K��>?S�FT�n��gk��)8t��ྠ��_����.��_������;]�Z�	��wV-Ɓ�u�Jo�*Ζ�b�B�2����?!�d�H���ħ��S�֪گ�������#Y]��@H����9BS���+�"o��˝C�����mR(x��Xms7�ί�&�.�}i<���1eJ�cH�o�����t�t���to���3y�`w��J�쳫=�'_��po�d��re��k����%��o��8���*��j����G���[�0ӌ-�XY����f��|���R<6"^v���+a`!$�N���d��&6
��d��^Og7��p<
{��b�0z旋"��$��yo[r��J�ׅ5�"������]�RĶ��|[�*&3,�Yp���q^5���ԜG<��h�!u�2Q�a���m`�r#�k.�m\�vԉ.����eہ�����
G�V���p/6�S
�]g*&0�PP�
 T5Qs��K5om�jܢ&+"^(9�d�q����5f3��Ƀ<����FP�9�0�׻������9�B�\WDR�
�w��/��ڐ h�K
*!�Z@���z��"�ηn�?o�p�!!����珋F�2�C���f�&�-���<)-�8�b�i
�����Y:t0.|,���+N)a�{��Y��<H��i�ׂo�9%�ڠ�~H��y�y�15��
�i��R�%�I���2N;J/�9&�e"�_tN;+�j�Ƿy�?���6�.�0D��B��3���L�0��L��H�Ӄ�Yl"a��ؤR�P�T�fL&+V1��,dyŜ�4��{F"�QD��B��,��EIŶj����I#���<̇��,��oX*��{��K�+ּ���m�ד�Cx}3��޼=��WG��?�ng���tx?>�4�5�>6x3�?���p�i��Ѵ��BJ��A�w��H)�O\�
�`V�*�Jm��~av���I=%��*8b�NKI��K�(l]�
�������o�
�aB]�e1n*��Oh>7�[%�@�)��|F9�[��DW~�r�Y�c��@��7�9~ťE+bKsRa�R�<t���Ew�P�0�#�%h�y���Um�X{�\��J�&��^j��^Qy��S�e�Ӓ��9>��՜�֜Վ~H��֍L)U�G�.WtS�ű��a�y��~ŒcZ�x-����G��d��D�Ղ��Ln��4����2f{L����:V��bU��Jo�bԩ�����n��D:]z��Դ��tSR��r��7�W+
���l�+%�0ݨ	5f͖K�MX0��W��h�����`ٜ��H�m��\�o�Y�]|��$��&��Z/�=iwvT�I���<[d����L�azC+��ݛ��v��T�qN�Խܞ�+�~t�rT����Վ�ڍG̼�v��>|�4("���A_4cj�d���T�n�.%�P�2��{�=�$�T`�rV�3�
�ۙ��;l��+%�=��ï7�i��t8 +]}������-Ş���v�!$��n�n�if�i֮ Q ���k:/�;��]W��
�O��QI/DQuKÏ9З��_�n�����(O+_��^3�Ni>(Ӯx\�^��A��^9��S�X�;��� �=<���='���������t����!?�=�Ųrd���ޗ�XYI��}d�/}�+�S�O��G����(_ѫ�t��y�3Ԑ��M��n�(��c�[����M��E�앭�A�:vA������i�l'�ɦ�Z/��t؜7�X+��R�c�We�eZg�]��#��f�Ib'B��9�
s�����Tޗp��V1UB}���2��6Ͳt�tZ�����.T}�ji�>?og��`��!Q�?,����^��Uʶ+\o�[�*���=�<��Xf��ޛ�H6���>t�H���Y6��%�a~�җh��*+mWʓ7�t��4�p�oL3�.#`� j���
1/****************************************************************************
**
** Copyright (C) 2014 NVIDIA Corporation.
** Copyright (C) 2019 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of Qt 3D Studio.
**
** $QT_BEGIN_LICENSE:GPL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3 or (at your option) any later version
** approved by the KDE Free Qt Foundation. The licenses are as published by
** the Free Software Foundation and appearing in the file LICENSE.GPL3
** included in the packaging of this file. Please review the following
** information to ensure the GNU General Public License requirements will
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
**
** $QT_END_LICENSE$
**
****************************************************************************/

#define QSSG_ENABLE_UV0 1
#define QSSG_ENABLE_WORLD_POSITION 1
#define QSSG_ENABLE_TEXTAN 1

vec3 texCoord0;
out vec4 fragColor;

uniform sampler2D BlurBuffer;
uniform sampler2D OriginBuffer;

void main()
{
    vec2 texSize = vec2( textureSize( BlurBuffer, 0 ) );
    texSize = vec2(1.0) / texSize;
    texCoord0.z = 0.0;
    texCoord0.xy = vec2(gl_FragCoord.xy * texSize);

    float sigma = clamp(blur_size * 0.5, 0.5, 100.0);
    int smpCount = int(ceil( sigma ));
    vec4 value = texture(BlurBuffer, texCoord0.xy);

    float wtsum = 1.0;
    for (int i = 1; i <= smpCount; ++i)
    {
        // Base 2 Gaussian blur
        float wt = float(i) / (sigma * 0.5);
        wt = exp2( -wt*wt );
        vec2 texOfs = vec2(0, i) * texSize;
        vec4 posValue = texture(BlurBuffer, texCoord0.xy+texOfs);
        vec4 negValue = texture(BlurBuffer, texCoord0.xy-texOfs);
        posValue = posValue.a * posValue + (1.0 - posValue.a) * texture(OriginBuffer, texCoord0.xy+texOfs);
        negValue = negValue.a * negValue + (1.0 - negValue.a) * texture(OriginBuffer, texCoord0.xy-texOfs);

        value += wt * posValue;
        value += wt * negValue;
        wtsum += wt * 2.0;
    }

    fragColor = (value / wtsum);
    fragColor.a = 1.0;

}
A/****************************************************************************
**
** Copyright (C) 2014 NVIDIA Corporation.
** Copyright (C) 2019 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of Qt 3D Studio.
**
** $QT_BEGIN_LICENSE:GPL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3 or (at your option) any later version
** approved by the KDE Free Qt Foundation. The licenses are as published by
** the Free Software Foundation and appearing in the file LICENSE.GPL3
** included in the packaging of this file. Please review the following
** information to ensure the GNU General Public License requirements will
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
**
** $QT_END_LICENSE$
**
****************************************************************************/

// add enum defines
#define QSSG_ENABLE_UV0 1
#define QSSG_ENABLE_WORLD_POSITION 1
#define QSSG_ENABLE_TEXTAN 1

vec3 texCoord0;

void main()
{

    // This is a bit silly, but the thing is that a buffer blit takes place on this
    // pass, and if you do a buffer blit on a pass that outputs to lower-resolution,
    // it only blits a smaller portion of the backbuffer that occupies that number of
    // pixels.  So we need a dummy no-op pass that is full-res in order to blit everything.
}
N/****************************************************************************
**
** Copyright (C) 2014 NVIDIA Corporation.
** Copyright (C) 2019 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of Qt 3D Studio.
**
** $QT_BEGIN_LICENSE:GPL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3 or (at your option) any later version
** approved by the KDE Free Qt Foundation. The licenses are as published by
** the Free Software Foundation and appearing in the file LICENSE.GPL3
** included in the packaging of this file. Please review the following
** information to ensure the GNU General Public License requirements will
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
**
** $QT_END_LICENSE$
**
****************************************************************************/

// add enum defines
#define scatter_reflect 0
#define scatter_transmit 1
#define scatter_reflect_transmit 2

#define QSSG_ENABLE_UV0 1
#define QSSG_ENABLE_WORLD_POSITION 1
#define QSSG_ENABLE_TEXTAN 1
#define QSSG_ENABLE_BINORMAL 0

#include "vertexFragmentBase.glsllib"

// set shader output
out vec4 fragColor;

// add structure defines
struct layer_result
{
  vec4 base;
  vec4 layer;
  mat3 tanFrame;
};


// temporary declarations
 vec4 tmpShadowTerm;

layer_result layer;

#include "SSAOCustomMaterial.glsllib"
#include "sampleLight.glsllib"
#include "sampleProbe.glsllib"
#include "sampleArea.glsllib"
#include "square.glsllib"
#include "calculateRoughness.glsllib"
#include "evalBakedShadowMap.glsllib"
#include "evalEnvironmentMap.glsllib"
#include "luminance.glsllib"
#include "microfacetBSDF.glsllib"
#include "physGlossyBSDF.glsllib"
#include "simpleGlossyBSDF.glsllib"
#include "fresnelLayer.glsllib"

bool evalTwoSided()
{
  return( false );
}

vec3 computeFrontMaterialEmissive()
{
  return( vec3( 0, 0, 0 ) );
}

void computeFrontLayerColor( in vec3 normal, in vec3 lightDir, in vec3 viewDir, in vec3 lightDiffuse, in vec3 lightSpecular, in float materialIOR, float aoFactor )
{
#if QSSG_ENABLE_CG_LIGHTING
  layer.base += tmpShadowTerm * vec4( 0.0f, 0.0f, 0.0f, 1.0f );
  layer.layer += tmpShadowTerm * microfacetBSDF( layer.tanFrame, lightDir, viewDir, lightSpecular, materialIOR, roughness, roughness, scatter_reflect );
#endif
}

void computeFrontAreaColor( in int lightIdx, in vec4 lightDiffuse, in vec4 lightSpecular )
{
#if QSSG_ENABLE_CG_LIGHTING
  layer.base += tmpShadowTerm * vec4( 0.0f, 0.0f, 0.0f, 1.0f );
  layer.layer += tmpShadowTerm * lightSpecular * sampleAreaGlossy( layer.tanFrame, varWorldPos, lightIdx, viewDir, roughness, roughness );
#endif
}

void computeFrontLayerEnvironment( in vec3 normal, in vec3 viewDir, float aoFactor )
{
#if !QSSG_ENABLE_LIGHT_PROBE
  layer.base += tmpShadowTerm * vec4( 0.0f, 0.0f, 0.0f, 1.0f );
  layer.layer += tmpShadowTerm * microfacetSampledBSDF( layer.tanFrame, viewDir, roughness, roughness, scatter_reflect );
#else
  layer.base += tmpShadowTerm * vec4( 0.0f, 0.0f, 0.0f, 1.0f );
  layer.layer += tmpShadowTerm * sampleGlossy( layer.tanFrame, viewDir, roughness);
#endif
}

vec3 computeBackMaterialEmissive()
{
  return( vec3(0, 0, 0) );
}

void computeBackLayerColor( in vec3 normal, in vec3 lightDir, in vec3 viewDir, in vec3 lightDiffuse, in vec3 lightSpecular, in float materialIOR, float aoFactor )
{
#if QSSG_ENABLE_CG_LIGHTING
  layer.base += vec4( 0.0, 0.0, 0.0, 1.0 );
  layer.layer += vec4( 0.0, 0.0, 0.0, 1.0 );
#endif
}

void computeBackAreaColor( in int lightIdx, in vec4 lightDiffuse, in vec4 lightSpecular )
{
#if QSSG_ENABLE_CG_LIGHTING
  layer.base += vec4( 0.0, 0.0, 0.0, 1.0 );
  layer.layer += vec4( 0.0, 0.0, 0.0, 1.0 );
#endif
}

void computeBackLayerEnvironment( in vec3 normal, in vec3 viewDir, float aoFactor )
{
#if !QSSG_ENABLE_LIGHT_PROBE
  layer.base += vec4( 0.0, 0.0, 0.0, 1.0 );
  layer.layer += vec4( 0.0, 0.0, 0.0, 1.0 );
#else
  layer.base += vec4( 0.0, 0.0, 0.0, 1.0 );
  layer.layer += vec4( 0.0, 0.0, 0.0, 1.0 );
#endif
}

float computeIOR()
{
  return( false ? 1.0f : luminance( vec3( 1, 1, 1 ) ) );
}

float evalCutout()
{
  return( 1.000000 );
}

vec3 computeNormal()
{
  return( normal );
}

void computeTemporaries()
{
     tmpShadowTerm = evalBakedShadowMap( texCoord0 );
}

vec4 computeLayerWeights( in float alpha )
{
  vec4 color;
  color = fresnelLayer( normal, vec3( 25.65, 25.65, 25.65 ), 1.000000, vec4( metal_color, 1.0).rgb, layer.layer, layer.base, alpha );
  return color;
}


void initializeLayerVariables(void)
{
  // clear layers
  layer.base = vec4(0.0, 0.0, 0.0, 1.0);
  layer.layer = vec4(0.0, 0.0, 0.0, 1.0);
  layer.tanFrame = orthoNormalize( mat3( tangent, cross(normal, tangent), normal ) );
}
�&�x��Z�s۸��9>P����t6o�z�؎�8���HP�$�����p��D�N���-�d���ϖ�GNy��t�Hp�!���>�y�:�:�QpAU��^+�O�a��g;YA�%�V���
�G2S�����b��z	�I�r��Ӿ��0K$����[P������2Jx����0>9���__��ߌ�?^�]�7Ⲍ�0�)����"��]`��x�\2�i��>ŒV@��%)Ἢ�ʑ

C."���,5�}泰�	�
�2�+R>O"U��e�c���.������;g�rZ�M&A84Ɂ�U�,D��=��V��$4�Vb�#\����f��3�(�8K�j���ީ�����@.Is�i�X�1�t���Z�Z��R� _�|!�,g�zWN@��7W�
�7a(?"e1�y@�_���.b΄D� @$�������DxJ�����+0� p���vvN. $�Z���ѨP���v�.g�0���l�����cT`�-H�Ͷ�Ѓt�3��2�X�D
��)��N��ꑻ�Q0Z�y��OS��Ր*N@�R0��M�{�
H	 NS�1��J5��e��i��?-ҝ�ޠ7SY��͙K��f����om���FXWf$b1��zg>���|L�bF�`eh$��rZfI��w���ѧ$	{��B�b�4+<�zQ0��X��,���Z�bO
"39�ظ�/<�-.���B�'��З#C
G�q�;��%h.���}�PM��U�|�.!��'���/�﴿��l|w;�z����@�p����M�'W7�����A�w6I�[�$X�DО@F�L�d�V�C2E�b5�*J����$�C�<��‘T�ѕ��
��v�,S���1& ��}�$�
�n�(��Rl��
�-�u��H��.݇n�O��q��27"W8�Jr�G�啦�e88�%h	7#��ڠ#QY18|nwx��EƆ������H>�h���}P���������g���C/��_SIHӔ]��y�N�	ۼ},m�^B�o�	�v~�B�v�6&�$��l=�m��Y�`��FYղ�M���9k�����B�
洊w��\i�< y�?�B�����4��ݮ8�
Kl��� �d��~c���'Zl�:���9��
TY
Ӑ����EkLfKy�r)��(d�z��N&��&L\�޷���*�	YY��$j����q���e���$��=#�l�dABN8O	��a�G86]iL�	HLS.:Pa�L���
��]�����,�خ�E�����8.�\*.�,]������[}O��%�^�ѩ�`I��Е�Q�{�ؖM�:��k�(���V�K�F;��Y�򗇫�K�P�����Y��6i/�Ԯ�t=c*#V�lh'\�4>n��,��q����ΆVbd_EO�i����o�o;��m�Ե�dۺ��T|���ˮ�t��6?��
�=��lF`%fX���^��ߞ��ZF�Q;h�5�E8@�����F��_q�WN����`KC[e@����
`��~
{�����/�#}�g����?!7�@��2�?�4c��`��}����#�FKל�K0M������4��m�j�FN����؊�aufm\������Y��D�g�"	��X�#�2�Z
'��mr�6t�զ�F��-]O���+_�L��%o�I.a~��͑��߁�Q;��.�W��uzԮu�@Vj����%�ڳSWE��	-�jH�}g[K9~�˄IDB�}t2��r�Ȧ�C�J_GeGZ-X���U$���I�)�V�<�A%����`T�&�|޶�9U�|�#�j�[��j\�1pY/�Y�t&>¬1�%c�5�8��HՋ(��˒y��c��2W��1숬_�=o֥uߥ�n�_vs�s�yzک�x��y1@�כ�m��
�|Z9S��I�kjB�'
&��F�#�:I�2஑��0e0Wh!��	mo[omkm�5�nDb.Ԍ�V�yz;���Q�:�US��M�yt�Ʈ~R���6|�L�ժ-g�P3R�Lr� fh���Δ�H_T�;�M�e�Ea8r_�SM<N��*8�6j��ߴ���f'��q�p��TVs�3B�:ėp�М�=>~[����:@&^$HT2|�
�d/OSfޒ]�kv�e���%��`�8�G�_k�f��O7��=ϼ��?�&3��L*VV�0�Ƞ;8���>q��A�Zo�"T,-Q���}�����^D���҅�l�t5a��"EM��|w,�g�_]�1p%*��e�:�B¦�>V����oP�s&�����6�������Ruj�\F��w�]};ʚ�FWy�1t�!pD����e�`o��݃a�s>����rn��>àk�wj��~cOr%�NwB�h����Q
�>صb����Cfb��S:3�hP:�@a��n+�	;��/<ptGc�"v+����@*��X�z'���'�IՔ��9k�ꠡ~�Y���Q[T�#�#F�ZT^a�橴�|����h���u�'����%;��i��(r|T�!,��_�*<9�eЃ)h�}�c���i���2�Z�%��l ����uY����ꬱ]�v��t^�ks��Z\��ހ���Y|�7v�۞.��`sD�:d�g|�Mr}�$��%sw��/|9=����
�������|h�vhRB���""�q����bUb(we�M�#=~�=o����
w��~�	U�ֲ��;!v��>�o���Be�(-��eTv򚃎#���j��Z
�������>7������`l�"$��̮m�]�y.��0���]R�a�?:w5RcM���&+��5�=bsZW�,y
|>�
�]�坵9	�����[��/****************************************************************************
**
** Copyright (C) 2014 NVIDIA Corporation.
** Copyright (C) 2019 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of Qt 3D Studio.
**
** $QT_BEGIN_LICENSE:GPL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3 or (at your option) any later version
** approved by the KDE Free Qt Foundation. The licenses are as published by
** the Free Software Foundation and appearing in the file LICENSE.GPL3
** included in the packaging of this file. Please review the following
** information to ensure the GNU General Public License requirements will
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
**
** $QT_END_LICENSE$
**
****************************************************************************/

// add enum defines
#define scatter_reflect 0
#define scatter_transmit 1
#define scatter_reflect_transmit 2

#define QSSG_ENABLE_UV0 1
#define QSSG_ENABLE_WORLD_POSITION 1
#define QSSG_ENABLE_TEXTAN 1
#define QSSG_ENABLE_BINORMAL 0

#include "vertexFragmentBase.glsllib"

// set shader output
out vec4 fragColor;

// add structure defines
struct layer_result
{
  vec4 base;
  vec4 layer;
  mat3 tanFrame;
};


// temporary declarations
vec3 ftmp0;
 vec4 tmpShadowTerm;

layer_result layer;

#include "SSAOCustomMaterial.glsllib"
#include "sampleLight.glsllib"
#include "sampleProbe.glsllib"
#include "sampleArea.glsllib"
#include "square.glsllib"
#include "calculateRoughness.glsllib"
#include "evalBakedShadowMap.glsllib"
#include "evalEnvironmentMap.glsllib"
#include "luminance.glsllib"
#include "microfacetBSDF.glsllib"
#include "physGlossyBSDF.glsllib"
#include "simpleGlossyBSDF.glsllib"
#include "abbeNumberIOR.glsllib"
#include "fresnelLayer.glsllib"
#include "refraction.glsllib"

bool evalTwoSided()
{
  return( true );
}

vec3 computeFrontMaterialEmissive()
{
  return( vec3( 0, 0, 0 ) );
}

void computeFrontLayerColor( in vec3 normal, in vec3 lightDir, in vec3 viewDir, in vec3 lightDiffuse, in vec3 lightSpecular, in float materialIOR, float aoFactor )
{
#if QSSG_ENABLE_CG_LIGHTING
  layer.base += tmpShadowTerm * microfacetBSDF( layer.tanFrame, lightDir, viewDir, lightSpecular, materialIOR, 0.000000, 0.000000, scatter_reflect_transmit );
#endif
}

void computeFrontAreaColor( in int lightIdx, in vec4 lightDiffuse, in vec4 lightSpecular )
{
#if QSSG_ENABLE_CG_LIGHTING
  layer.base += tmpShadowTerm * lightSpecular * sampleAreaGlossy( layer.tanFrame, varWorldPos, lightIdx, viewDir, 0.000000, 0.000000 );
#endif
}

void computeFrontLayerEnvironment( in vec3 normal, in vec3 viewDir, float aoFactor )
{
#if !QSSG_ENABLE_LIGHT_PROBE
  layer.base += tmpShadowTerm * microfacetSampledBSDF( layer.tanFrame, viewDir, 0.000000, 0.000000, scatter_reflect_transmit );
#else
  layer.base += tmpShadowTerm * sampleGlossy( layer.tanFrame, viewDir, 0.000000);
#endif
}

vec3 computeBackMaterialEmissive()
{
  return( vec3(0, 0, 0) );
}

void computeBackLayerColor( in vec3 normal, in vec3 lightDir, in vec3 viewDir, in vec3 lightDiffuse, in vec3 lightSpecular, in float materialIOR, float aoFactor )
{
#if QSSG_ENABLE_CG_LIGHTING
  layer.base += vec4( 0.0, 0.0, 0.0, 1.0 );
  layer.layer += vec4( 0.0, 0.0, 0.0, 1.0 );
#endif
}

void computeBackAreaColor( in int lightIdx, in vec4 lightDiffuse, in vec4 lightSpecular )
{
#if QSSG_ENABLE_CG_LIGHTING
  layer.base += vec4( 0.0, 0.0, 0.0, 1.0 );
  layer.layer += vec4( 0.0, 0.0, 0.0, 1.0 );
#endif
}

void computeBackLayerEnvironment( in vec3 normal, in vec3 viewDir, float aoFactor )
{
#if !QSSG_ENABLE_LIGHT_PROBE
  layer.base += vec4( 0.0, 0.0, 0.0, 1.0 );
  layer.layer += vec4( 0.0, 0.0, 0.0, 1.0 );
#else
  layer.base += vec4( 0.0, 0.0, 0.0, 1.0 );
  layer.layer += vec4( 0.0, 0.0, 0.0, 1.0 );
#endif
}

float computeIOR()
{
  return( true ? 1.0f : luminance( vec3( abbeNumberIOR(glass_ior, 0.000000 ) ) ) );
}

float evalCutout()
{
  return( 1.000000 );
}

vec3 computeNormal()
{
  return( normal );
}

void computeTemporaries()
{
     ftmp0 = vec3( reflectivity_amount );
     tmpShadowTerm = evalBakedShadowMap( texCoord0 );
}

vec4 computeLayerWeights( in float alpha )
{
  vec4 color;
  color = layer.base * vec4( ftmp0, 1.0);
  return color;
}


void initializeLayerVariables(void)
{
  // clear layers
  layer.base = vec4(0.0, 0.0, 0.0, 1.0);
  layer.layer = vec4(0.0, 0.0, 0.0, 1.0);
  layer.tanFrame = orthoNormalize( tangentFrame( normal, varWorldPos ) );
}

vec4 computeGlass(in vec3 normal, in float materialIOR, in float alpha, in vec4 color)
{
  vec4 rgba = color;
  float ratio = simpleFresnel( normal, materialIOR, uFresnelPower );
  vec3 absorb_color = ( log( glass_color )/-1.000000 );
  // prevent log(0) -> inf number issue
  if ( isinf(absorb_color.r) ) absorb_color.r = 1.0;
  if ( isinf(absorb_color.g) ) absorb_color.g = 1.0;
  if ( isinf(absorb_color.b) ) absorb_color.b = 1.0;
  rgba.rgb = mix(vec3(1.0) - absorb_color, rgba.rgb * (vec3(1.0) - absorb_color), ratio);
  rgba.a = mix(uMinOpacity, alpha, ratio);
  return rgba;
}
�/****************************************************************************
**
** Copyright (C) 2014 NVIDIA Corporation.
** Copyright (C) 2019 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of Qt 3D Studio.
**
** $QT_BEGIN_LICENSE:GPL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3 or (at your option) any later version
** approved by the KDE Free Qt Foundation. The licenses are as published by
** the Free Software Foundation and appearing in the file LICENSE.GPL3
** included in the packaging of this file. Please review the following
** information to ensure the GNU General Public License requirements will
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
**
** $QT_END_LICENSE$
**
****************************************************************************/

#define QSSG_ENABLE_UV0 1
#define QSSG_ENABLE_WORLD_POSITION 1
#define QSSG_ENABLE_TEXTAN 1

vec3 texCoord0;
out vec4 fragColor;

uniform sampler2D BlurBuffer;

void main()
{
    vec2 texSize = vec2( textureSize( BlurBuffer, 0 ) );
    texSize = vec2(1.0) / texSize;
    texCoord0.z = 0.0;
    texCoord0.xy = vec2(gl_FragCoord.xy * texSize);

    float sigma = clamp(blur_size * 0.5, 0.5, 100.0);
    int smpCount = int(ceil( sigma ));
    vec4 value = texture(BlurBuffer, texCoord0.xy);
    float wtsum = 1.0;
    for (int i = 1; i <= smpCount; ++i)
    {
        // Base 2 Gaussian blur
        float wt = float(i) / (sigma * 0.5);
        wt = exp2( -wt*wt );
        vec2 texOfs = vec2(i, 0) * texSize;
        value += wt * texture(BlurBuffer, texCoord0.xy+texOfs);
        value += wt * texture(BlurBuffer, texCoord0.xy-texOfs);
        wtsum += wt * 2.0;
    }

    fragColor = value / wtsum;
    fragColor.a = 1.0;
}
�x��X[sۺ~ׯ؞�reI���˖UMٱ��o��$���R�N�{w�$Q�Ϝ��z<��
��~X�w�Z�nd�U�re��i�y��&_Ʒ�k�Q�T�D2�6J�	f+���)K�po�\21,0�aeL��z�ͦ��t#�Q�%�^���4,"���L��yqS�����o?���h<�ߏo������s�\po�s��ْ�^��5���/���B*t�B��m!C}SE��R�,	8l"��}^7��[*�c�H�\G!Kq�2��a��T`�p� �k.����eb���(Asy8�Q�1<�y��p\��X��wRA���kM%FF�g
UC֬�i%�-2�!*�%�b[+9~��`��l.q��"ɣ�g�+�1�1�Ô^�W����s�B��\�Ģ�/hߺiv��J�	.0A�aȈ��ұ�@.�+�,|)e�[��o�C�Ô�w�p�c�QV��j'�ze���[ݲN*6O�3E��j!i{���.��B[+V(e��lIZ��.<
��Њ�#�q�r���)50�L��c*�-��-H�E,Yœ�|�
�I֕j�+0�-Sqz��wW&��Nn����O����!�.�!��1�z�>`�|7x�y �-#�8>���?'��J�p����-�K0�e5W|!h��cKt���=�J�U�|�NG��~8���_Ӯ�|}x���?>Ldz����l�����x����#o���~�.���)��r`�u�B��X�57�W��Tf&�L�ao��@�)��*3�����L�[���Zt&L�_-p|twU|�"�
�K0����
�
	��(<]@*�%ūb�/���`e�\�YV�%�A%�TB"�2�N�B5<�;Ym1�@0w;�֑ ��i��ݳ����p�-�8Ŵ�����.���y:�~�ɴ��G"G��4WR�ũ�4>�~T��Ƿ�gM�A֬���ݻ�͔+%�F�� �ә��I�6Q�M	oc0��d�H\؏Ӏ�F�*QS���fH�e�9 �dtQ=�l��R�MR����.�YzLj��#%j�#R"�1ڤ9�8
�\�������V���z{LBG���e���I�\����p�x!��dz�=�pqO-Иb����"�,���JX��B!�.|a;�R
 �g9���k[Bp��	�]�H-װ8|"c�;L�)�nGZ��=]���߱��.�H7�V�,�z49X/	M�S~Կ���Vhv�Y�E�V�)��t�9��c�:��w�`t�7�b禹�00��l<�	-u���vyN`��\�`�N�0�!��܉Nݴ���5�&��80/�&.��F�w�����F(/wc�� �Z;��i]�¶f�+
9�RwjA�6����j<s�K7G��u ,
�ǧ���7T��B6ͳ�|���_�e�(���������pCN
M�@&��	�K�,��u�t�B�}I���	�����������j�h��9jX���_��{(ǥ�n�]��`Z�#zG��������|Ѱp�|d��uV�L��\��+4\�鋵�׳��q�N���]����/�Ix���.�򉤔8�m����;�/Bm��Y�hq���>�2���y�{et��J@�V����;�����)�~�)(����1�C�2� �ud�s�,1���U<zx������X_9���+��tŠ]�#�p�Q�&N�ƷQ�
��G��~]	FId��|�*d��B�ݢ� )�:ѻ����!�0�k$�i��2+����7v�+	�6�U�UtD��5�~�]�wu�Y�j૥�0�2Nɾ�e��w���@w<e���� 0��m�T��H*�Pr�cU����Y�&'U|M��IG��?�PH,+�N�#x�aAi���^���yw=���g��J˗��%�R"L��N�ضϨ0�tG�����I�l���s"{5�F�?s����j��V�^�7y���)���n�:s{��|T�k�A�O���굽G߽z8�2W��� �bb�nV/****************************************************************************
**
** Copyright (C) 2014 NVIDIA Corporation.
** Copyright (C) 2019 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of Qt 3D Studio.
**
** $QT_BEGIN_LICENSE:GPL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3 or (at your option) any later version
** approved by the KDE Free Qt Foundation. The licenses are as published by
** the Free Software Foundation and appearing in the file LICENSE.GPL3
** included in the packaging of this file. Please review the following
** information to ensure the GNU General Public License requirements will
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
**
** $QT_END_LICENSE$
**
****************************************************************************/

#define QSSG_ENABLE_UV0 1
#define QSSG_ENABLE_WORLD_POSITION 1
#define QSSG_ENABLE_TEXTAN 1

vec3 texCoord0;
out vec4 fragColor;

uniform sampler2D OriginBuffer;

void main()
{
    vec2 texSize = vec2( textureSize( OriginBuffer, 0 ) );
    texSize = vec2(1.0) / texSize;
    texCoord0.z = 0.0;
    texCoord0.xy = vec2(gl_FragCoord.xy * 2.0 * texSize);

    float wtSum = 0.0;
    vec4 totSum = vec4(0.0);
    for (int ix = -1; ix <= 1; ++ix)
    {
       for (int iy = -1; iy <= 1; ++iy)
       {
        float wt = float(ix*ix + iy*iy) * 4.0;
        wt = exp2( -wt );
        vec2 texOfs = vec2(ix, iy) * texSize;
        totSum += wt * texture( OriginBuffer, texCoord0.xy + texOfs );
        wtSum += wt;
       }
    }

    totSum /= wtSum;
    fragColor = totSum;
}
�zx��X[s9~�Wh'y/;vvk�Jm�jvI���jЎ�Ց�fk���#�E@��3���b4�ѹ~�"�g��ղ�d(ӽ��!�a��>��"�O���
�T*j�Lz��?�ņ�v�&{25aN���dcL����ݮ�����D�d���/6\��F�3��!��[27Y�e/'|�a��Ɠ�r:�f�������L�
2������^��4�H�\����$�΀0��tO28o*�dC�@��&#;n6��|�yB׊��%��Jny�’��edvT1"U�Pa�J��[&�]�S+hb
���<v�:d��1,�$���1X�ˌ�$<�M��IEJ�;��U��HB�q�\U5K��"sܢL��
��$�*�X�ǜҁ!�C��a�S��t���#��)p�C�}OCzs�*T�C�!ɒ�)σ*����z[�4Zp	"mP|��LѬA�
�
:�#
W{+���������$h���F�DB��Q������۳%N*6N �Q��� �5;O��å�E ��b��4����uB�y��ъm9�9vR���I@�L�‰MT�Kƕ��� &1;��$�I��>�S��w�ۘX�)?��	��-�W���	
C�.�I�"�1�z�9_
ؼ$�%ıe�ݑ�vR��\<E"W�`��KP�e�T,�s~�cMt̍��PER�e"�T��t��`�&��]Y*b�9bӯ<]��;E�e h�z��bR_S�s��ba�]	X�8�K�B3����<R�qs�Z�W��\�0��*7��h��ӹG��|���.����~�@��}qӴ9�����La��"O4�x�|.E� �zk���,�43Do(V$��43-��*\�
���Ģ6*4% �J�0I[�ldvIR�m}�.M֠�2;Y�^��"ւ�-�4Ġ�wEV`�u�Œ�7�	���C6����GR)fxb�h$$�!���
�q�P{0��rBM��qr��*|=��@��7��L��B
��
DE���Mq�i�~Pr�o�u�AV
�3���7o�6S��3�u�Yo{����9���,��"��Hc��@ra�������z�|�h�B�5Ȱi>�l�,�:*3ـ��B�4m�%[�d�i�@Uְ�͘JF4`f0�����f��Bj�o���4MȣƐGW���M�@9ab�H�URe��	���F��V�	��4��ݺ��9N���Y��mQ=���j�<������"�F1�f���H�&��n��!g��{oÌap5��6a��L��A9<�Lk�\�27��3��O:��E��B�`D<M�6iJ�B��޹}uk�*�ϣ�(�N�H�jC��e��y��Op0� x�qq(�q���G_r���e��94Hw�*�`lF�U}�f��.���rU���y�����9Z��K�#�I��c7_��n0�#_��{�0J�ZLfc@�m=�q���;
�6�ۥM�-�ʝ뒯}�c|X��9y�O}Υw��?0[����x��`�dp}�j��ݬ
�ۊ��_� \Ն��P�����Z��|��[[�>�� u�T�<'����\m�,/Lu��-�ۼ�Zs��b��'����ˇ���!�@�B�����B����urX��'لi�P�i�m�~�1�Y#FNl8��Fp1N��\]�E����mS]�
zUm?E\�g��U��}�
�
��K��ӜŹ������칷��B�Sl1V��㇣�03p�?�W
Z'���刾�����k���C��g^���K�o���߼쬎GV`�2���Gb����/8�g칪��_��˓���O��"�)�3�^���9��zcz𫂩���ˈnW�.ש~l	ܯ@�=� �nX�`炢�.9�5�3����u�_=�^u���w���w
s����%fu�X�B�p
�_�����t%������I ��<+U�}�ɧ�|��ϡ,��;"��H�u��u���M�d�u��n��9�ɿ�@�O5/****************************************************************************
**
** Copyright (C) 2014 NVIDIA Corporation.
** Copyright (C) 2019 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of Qt 3D Studio.
**
** $QT_BEGIN_LICENSE:GPL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3 or (at your option) any later version
** approved by the KDE Free Qt Foundation. The licenses are as published by
** the Free Software Foundation and appearing in the file LICENSE.GPL3
** included in the packaging of this file. Please review the following
** information to ensure the GNU General Public License requirements will
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
**
** $QT_END_LICENSE$
**
****************************************************************************/

// add enum defines
#define scatter_reflect 0
#define scatter_transmit 1
#define scatter_reflect_transmit 2

#define QSSG_ENABLE_UV0 1
#define QSSG_ENABLE_WORLD_POSITION 1
#define QSSG_ENABLE_TEXTAN 1
#define QSSG_ENABLE_BINORMAL 0

#include "vertexFragmentBase.glsllib"

// set shader output
out vec4 fragColor;

// add structure defines
struct layer_result
{
  vec4 base;
  vec4 layer;
  mat3 tanFrame;
};


// temporary declarations
vec3 ftmp0;
 vec4 tmpShadowTerm;

layer_result layer;

#include "SSAOCustomMaterial.glsllib"
#include "sampleLight.glsllib"
#include "sampleProbe.glsllib"
#include "sampleArea.glsllib"
#include "square.glsllib"
#include "calculateRoughness.glsllib"
#include "evalBakedShadowMap.glsllib"
#include "evalEnvironmentMap.glsllib"
#include "luminance.glsllib"
#include "microfacetBSDF.glsllib"
#include "physGlossyBSDF.glsllib"
#include "simpleGlossyBSDF.glsllib"
#include "abbeNumberIOR.glsllib"
#include "fresnelLayer.glsllib"
#include "refraction.glsllib"

uniform sampler2D refractiveTexture;

bool evalTwoSided()
{
  return( false );
}

vec3 computeFrontMaterialEmissive()
{
  return( vec3( 0, 0, 0 ) );
}

void computeFrontLayerColor( in vec3 normal, in vec3 lightDir, in vec3 viewDir, in vec3 lightDiffuse, in vec3 lightSpecular, in float materialIOR, float aoFactor )
{
#if QSSG_ENABLE_CG_LIGHTING
  layer.base += tmpShadowTerm * microfacetBSDF( layer.tanFrame, lightDir, viewDir, lightSpecular, materialIOR, roughness, roughness, scatter_reflect_transmit );

#endif
}

void computeFrontAreaColor( in int lightIdx, in vec4 lightDiffuse, in vec4 lightSpecular )
{
#if QSSG_ENABLE_CG_LIGHTING
  layer.base += tmpShadowTerm * lightSpecular * sampleAreaGlossy( layer.tanFrame, varWorldPos, lightIdx, viewDir, roughness, roughness );

#endif
}

void computeFrontLayerEnvironment( in vec3 normal, in vec3 viewDir, float aoFactor )
{
#if !QSSG_ENABLE_LIGHT_PROBE
  layer.base += tmpShadowTerm * microfacetSampledBSDF( layer.tanFrame, viewDir, roughness, roughness, scatter_reflect_transmit );

#else
  layer.base += tmpShadowTerm * sampleGlossy( layer.tanFrame, viewDir, roughness);

#endif
}

vec3 computeBackMaterialEmissive()
{
  return( vec3(0, 0, 0) );
}

void computeBackLayerColor( in vec3 normal, in vec3 lightDir, in vec3 viewDir, in vec3 lightDiffuse, in vec3 lightSpecular, in float materialIOR, float aoFactor )
{
#if QSSG_ENABLE_CG_LIGHTING
  layer.base += vec4( 0.0, 0.0, 0.0, 1.0 );
  layer.layer += vec4( 0.0, 0.0, 0.0, 1.0 );
#endif
}

void computeBackAreaColor( in int lightIdx, in vec4 lightDiffuse, in vec4 lightSpecular )
{
#if QSSG_ENABLE_CG_LIGHTING
  layer.base += vec4( 0.0, 0.0, 0.0, 1.0 );
  layer.layer += vec4( 0.0, 0.0, 0.0, 1.0 );
#endif
}

void computeBackLayerEnvironment( in vec3 normal, in vec3 viewDir, float aoFactor )
{
#if !QSSG_ENABLE_LIGHT_PROBE
  layer.base += vec4( 0.0, 0.0, 0.0, 1.0 );
  layer.layer += vec4( 0.0, 0.0, 0.0, 1.0 );
#else
  layer.base += vec4( 0.0, 0.0, 0.0, 1.0 );
  layer.layer += vec4( 0.0, 0.0, 0.0, 1.0 );
#endif
}

float computeIOR()
{
  return( false ? 1.0 : luminance( vec3( abbeNumberIOR(glass_ior, 0.000000 ) ) ) );
}

float evalCutout()
{
  return( 1.000000 );
}

vec3 computeNormal()
{
  return( normal );
}

void computeTemporaries()
{
     ftmp0 = vec3( reflectivity_amount );
     tmpShadowTerm = evalBakedShadowMap( texCoord0 );
}

vec4 computeLayerWeights( in float alpha )
{
  vec4 color;
  color = layer.base * vec4( ftmp0, 1.0);
  return color;
}


void initializeLayerVariables(void)
{
  // clear layers
  layer.base = vec4(0.0, 0.0, 0.0, 1.0);
  layer.layer = vec4(0.0, 0.0, 0.0, 1.0);
  layer.tanFrame = orthoNormalize( tangentFrame( normal, varWorldPos ) );
}

vec4 computeGlass(in vec3 normal, in float materialIOR, in float alpha, in vec4 color)
{
  vec4 rgba = color;
  float ratio = simpleFresnel( normal, materialIOR, uFresnelPower );
  vec3 absorb_color = ( log( glass_color )/-1.000000 );
  // prevent log(0) -> inf number issue
  if ( isinf(absorb_color.r) ) absorb_color.r = 1.0;
  if ( isinf(absorb_color.g) ) absorb_color.g = 1.0;
  if ( isinf(absorb_color.b) ) absorb_color.b = 1.0;
  rgba.rgb *= (vec3(1.0) - absorb_color);
  vec3 refractColor = refraction( refractiveTexture, materialIOR ) * (vec3(1.0) - absorb_color);
  rgba = vec4(mix(refractColor, rgba.rgb, ratio), 1.0);
  return rgba;
}

7x��W[��6~�W�&y�ԁ��t3��²�)a7I��#l4�-G�!���s$�֤�L.S�eA:��|�H�=����{�@e[-�+�A�NN/`�n|=���)ͬPi�Q���8����d,���F�djYh/aemf.{��f�h�B��yjD����+a ��Ϙ��b�y~
3�GBu�go���h<}����lx9��<��P0	g��[Ö���n`�d�~aͤ� ��3
%l9��]T)�aa�t�Ґ�F���B�Rs���B��ZD<����L�v�4�`�r�"�k.��it�2�AW�H�\l����5�n7W�*�F���P���:S)��F��l�j���~����\c����4V:q\)��>����
f��)�<���O�FP�����W���JE�[p�A�F\�DR����4�Xsm(�s,�1d�R��(��%Cs���/�J����9��z7X��Fa�\5*������S&[��t+��,�:�3�4��B�.������#�'���[���@�w�3LZ��oNI�6(yXR�#�5/A<���s�!
�XJ��5I��4X�yW�e�Ĥ�����IweYo���l�g~��z�V�,�0�<����c���2�1��y,9��ю�,5��pzLi'r֪d��f#L�?>�}wRӮ_��\?���������|����f<��}5��[OZ�d��n4[R��ȁ�R)����pfŨTn�ܶ�r>���J*��B�X����Q��W�U��K����ݽ,8��4;�R*���<ٷ<�Ho�v(�?�L�+�$�a�j3�G����r-����v������8�wY�K2�'t�߾�j��o_i�w?���M;!�aN��^��bh��8�\}��G>��,;&5L�B���{DJ�H�i�LD�U�Bn���&�l�5#����0����L��J��P�j\(%�ҘoԌ��v��Gs�Yچ�I�4�I��L8��Y�o0e[w�c�8�%�6��
�Ҋ�7�ʊ��MS�yIiʠ�-�$�B�Vh��-"q�G��,�Tr/K��MR�>���%�n�|�È�x*���p0�~���#��1�K�?��ox�:��R���i��(u�g��>څxٮA
�
���R�%���u/�G�X!j�]�Dj��q�������~,���<�����5�ѝ2A-�
�&l�
JG���8N���v�TG�A�pw�~/z�~Q3K?��1������-���jY}��}��+�_��#������9��!�~�����a��jj�o�ϸ@
9�xA���]Bu�*o��{���Ao��<���e���q��;���@�W�����}ZpS��k"�����6^�?
��Q-��Ҩc�{N�6�]K3��tv7��?7�����׿vE/���YP�A'���Pi������"��2�q (CyYATƂ�x|D*,����B�Q�]�>������e�O��8�y�c_"Y�Vڮ�/2�vJmzRZbo��1��b+���0or/****************************************************************************
**
** Copyright (C) 2014 NVIDIA Corporation.
** Copyright (C) 2019 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of Qt 3D Studio.
**
** $QT_BEGIN_LICENSE:GPL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3 or (at your option) any later version
** approved by the KDE Free Qt Foundation. The licenses are as published by
** the Free Software Foundation and appearing in the file LICENSE.GPL3
** included in the packaging of this file. Please review the following
** information to ensure the GNU General Public License requirements will
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
**
** $QT_END_LICENSE$
**
****************************************************************************/

// add enum defines
#define scatter_reflect 0
#define scatter_transmit 1
#define scatter_reflect_transmit 2

#define QSSG_ENABLE_UV0 1
#define QSSG_ENABLE_WORLD_POSITION 1
#define QSSG_ENABLE_TEXTAN 1
#define QSSG_ENABLE_BINORMAL 0

#include "vertexFragmentBase.glsllib"

// set shader output
out vec4 fragColor;

// add structure defines
struct layer_result
{
  vec4 base;
  vec4 layer;
  mat3 tanFrame;
};


// temporary declarations
vec4 tmpShadowTerm;

layer_result layer;

#include "SSAOCustomMaterial.glsllib"
#include "sampleLight.glsllib"
#include "sampleProbe.glsllib"
#include "sampleArea.glsllib"
#include "square.glsllib"
#include "calculateRoughness.glsllib"
#include "evalBakedShadowMap.glsllib"
#include "evalEnvironmentMap.glsllib"
#include "luminance.glsllib"
#include "microfacetBSDF.glsllib"
#include "physGlossyBSDF.glsllib"
#include "simpleGlossyBSDF.glsllib"
#include "diffuseReflectionBSDF.glsllib"
#include "fresnelLayer.glsllib"

bool evalTwoSided()
{
  return( false );
}

vec3 computeFrontMaterialEmissive()
{
  return( vec3( 0, 0, 0 ) );
}

void computeFrontLayerColor( in vec3 normal, in vec3 lightDir, in vec3 viewDir, in vec3 lightDiffuse, in vec3 lightSpecular, in float materialIOR, float aoFactor )
{
#if QSSG_ENABLE_CG_LIGHTING
  layer.base += tmpShadowTerm * diffuseReflectionBSDF( normal, lightDir, lightDiffuse);
  layer.layer += tmpShadowTerm * microfacetBSDF( layer.tanFrame, lightDir, viewDir, lightSpecular, materialIOR, roughness, roughness, scatter_reflect );
#endif
}

void computeFrontAreaColor( in int lightIdx, in vec4 lightDiffuse, in vec4 lightSpecular )
{
#if QSSG_ENABLE_CG_LIGHTING
  layer.base += tmpShadowTerm * lightDiffuse * sampleAreaDiffuse( layer.tanFrame, varWorldPos, lightIdx );
  layer.layer += tmpShadowTerm * lightSpecular * sampleAreaGlossy( layer.tanFrame, varWorldPos, lightIdx, viewDir, roughness, roughness );
#endif
}

void computeFrontLayerEnvironment( in vec3 normal, in vec3 viewDir, float aoFactor )
{
#if !QSSG_ENABLE_LIGHT_PROBE
  layer.base += tmpShadowTerm * diffuseReflectionBSDFEnvironment( normal, 0.000000 ) * aoFactor;
  layer.layer += tmpShadowTerm * microfacetSampledBSDF( layer.tanFrame, viewDir, roughness, roughness, scatter_reflect );

#else
  layer.base += tmpShadowTerm * sampleDiffuse( layer.tanFrame ) * aoFactor;
  layer.layer += tmpShadowTerm * sampleGlossy( layer.tanFrame, viewDir, roughness);
#endif
}

vec3 computeBackMaterialEmissive()
{
  return( vec3(0, 0, 0) );
}

void computeBackLayerColor( in vec3 normal, in vec3 lightDir, in vec3 viewDir, in vec3 lightDiffuse, in vec3 lightSpecular, in float materialIOR, float aoFactor )
{
#if QSSG_ENABLE_CG_LIGHTING
  layer.base += vec4( 0.0, 0.0, 0.0, 1.0 );
  layer.layer += vec4( 0.0, 0.0, 0.0, 1.0 );
#endif
}

void computeBackAreaColor( in int lightIdx, in vec4 lightDiffuse, in vec4 lightSpecular )
{
#if QSSG_ENABLE_CG_LIGHTING
  layer.base += vec4( 0.0, 0.0, 0.0, 1.0 );
  layer.layer += vec4( 0.0, 0.0, 0.0, 1.0 );
#endif
}

void computeBackLayerEnvironment( in vec3 normal, in vec3 viewDir, float aoFactor )
{
#if !QSSG_ENABLE_LIGHT_PROBE
  layer.base += vec4( 0.0, 0.0, 0.0, 1.0 );
  layer.layer += vec4( 0.0, 0.0, 0.0, 1.0 );
#else
  layer.base += vec4( 0.0, 0.0, 0.0, 1.0 );
  layer.layer += vec4( 0.0, 0.0, 0.0, 1.0 );
#endif
}

float computeIOR()
{
  return( false ? 1.0f : luminance( vec3( 1, 1, 1 ) ) );
}

float evalCutout()
{
  return( 1.000000 );
}

vec3 computeNormal()
{
  return( normal );
}

void computeTemporaries()
{
     tmpShadowTerm = evalBakedShadowMap( texCoord0 );
}

vec4 computeLayerWeights( in float alpha )
{
  vec4 color;
  color = fresnelLayer( normal, vec3( material_ior ), glossy_weight, vec4( vec3( 1, 1, 1 ), 1.0).rgb, layer.layer, layer.base * vec4( porcelain_color, 1.0), alpha );
  return color;
}


void initializeLayerVariables(void)
{
  // clear layers
  layer.base = vec4(0.0, 0.0, 0.0, 1.0);
  layer.layer = vec4(0.0, 0.0, 0.0, 1.0);
  layer.tanFrame = orthoNormalize( mat3( tangent, cross(normal, tangent), normal ) );
}
��x��X[��8~�Wh'y��З��M��VC����4$�7J��F�I��S���W0�lU2�uQؖ���;�������L�o#C���\ސ����fT*5\&~+�?�2b䭁�8�Ɂ�L�S&��5��I��~����e_�%�'�~.qM6\0��*C�y^ߓ��B.������j8�L��t4�/Ư'O��N\3p*�̲g䝦[�s��$�"�dGIP�aN+ ��d��TZ%Ȇ�T!MF��D0��,�nc1KI���%9rYȍ�SňT��0��;&�i4�Q(O�]��+nKj����dFh��'R�}�ײJ�$��gM��Y�W������O6R�6Vr��S:0g5-ls�W�.�<��#�0�>ek�ԥwM�*W����$KB�jBP��b�E��h�58�tAe�R��Y=�.(�+�,|)z�V�����\��?H���Fe����.F^�ޮ-��`��U�>���f���C:\;_"m�X����-�� �h��I0
F+��l��I!�(�]j$�3�
�!��nj+��X�>��Q5�&�/ն_`�ߦ�յ?�#�zʏ�E¿t�_��w:�>�a�e1	�rLw^��D��H#JG���9,��'6��1��c�p]�MW��qZ�m'�k;s��ba1]	��8�+x��05fn\�#U5nnX���C�����:�b�(���:ZT�\uJ����\x7��W��j��3�g�����t9}��!Z����;79������`��"O�xɰO�*�!D��Z���z^3CtD�R�̤��
�;�!X4�B��2F�QY`0	�@q#Pa>��*�P�![a�t~�dvMR�mݼ-M���*;��v~�kAa
�-�ݐ5Xr[�X|�\�|�ޘ5�*��R����ҍ�S��:0ٰ�us!P]#�;g�%&N/o;��^����H����З�%�h�Z7�0������q�i#�7X�a߭�YQiH)�fا��~Rr��O�)F�f�n�D�FM֪��a�K�_�M ,���62%���Ʌ}\T��t�*�S�U�!b,�!����cF�g@� �}�Yf��F�Q1hˆ�W��xC�sT�dǕL0��P�<PrCf����6�4:艐Z�Qh���F�YK)j����xݞ�(�\]��v�dR�c�E�-��6E�c�5t0Gk��K���^�E����b�d�Swy+%��Zx�@��sU��>��I6h��F)C�9�<�O��|���ߠYB+^�M�&�&�qO~YN���泏����s3�Ʌ�`��f���(����Mws�z5$J�ll���ݮ�����5�A#�i����1P^��i�������J�Ц*���.!N!�Q�A*>I��,.�c�G��e���طG����Y�VOϏ����[���؜�7�(�Vi���m�z�Z��Q�K*\^������/o��+>Gܞ&��*4�iߡ|E��R���,�Q��mmB�i׽&e�ZtPo�F����5��1��WK_3�N9��lw�kx^�ݨG��e��q���+����b`/�&��s��ы�֖j��t8ӹp���iO�%�:�+u;}�-�*�~����.���v���G@��
�����R��k���G��O^�W��h����۹��e���ii��M�8_v��ʄ�+��_�s��\XL��Y�5b��������m��	%���7μ���X�� r��X5�W�_��܊�.�&�grz��%IU�n�ķ�{��ݪp��z���}"�5N�]�a^^�cf�XYJkb�W۵W/�^mw�
i�e�,ā��L�hL����Rѵ�b��N�~�?�Yκ��[��r��|	e��T&����r]��[�"h���{v>�;.��H��	�sshaders��aluminumEmissive.frag��7paperOffice.fragZ�WsteelMilledConcentric.frag
�Ywaluminum.frag�|�paperArtistic.frag�wplasticStructuredRed.fragb$�aluminumAnodizedEmissive.frag>vfrostedThinGlassBlurY.frag	/
7frostedThinGlassNoop.frag��copper.frag�wfrostedThinGlass.frag)�wsimpleGlass.fragvfrostedThinGlassBlurX.frag{�7frostedThinGlassSp.frag	,	WfrostedThinGlassPreBlur.frag!	���plasticStructuredRedEmissive.frag���simpleGlassRefractive.frag
݋�aluminumAnodized.fragAWporcelain.fragWh�aluminumBrushed.fragD�ui/���ui/�$g�ui/���ui/�ui/�J}dui/�f6>ui/���Xui/��'�ui/���ui/�&.�ui/���wui/��@sui/����ui/�x�ui/��ui/��G�ui/��\
ui/�jui/�>��ui/�����������������api-ms-win-core-synch-l1-2-0.dllkernel32.dllSleepConditionVariableCSWakeAllConditionVariable�����#��#�Unknown exception��#��#�bad allocation�#��#�bad array new length���d
x��8�@��2�3����2�3�3��C�h �p ��C�X3�0 A���@��� A����@�PA����@h�@����A����@����A����@ 8Px�A����@ �A����@��x�A����@� A��B@X��(���B����@@`B����@���(����B����@Ph(����B����@������B����@0@�B����@B@hC����C����@��@0HX�@����@0�@����X�@����@��@(@`�X�@����@(��� ���W�g��)��)]P.text$diP�.text$mn�(6.text$mn$00)�.text$x�)].text$yd0�.idata$5�2(.00cfg3.CRT$XCA 3.CRT$XCU03.CRT$XCZ83.CRT$XIA@3.CRT$XICH3.CRT$XIZP3.CRT$XLAX3.CRT$XLZ`3.CRT$XPAh3.CRT$XPZp3.CRT$XTAx3.CRT$XTZ�3�.rdata�(.rdata$T��.rdata$r�H.rdata$voltmd�|.rdata$zzzdbgH .rtc$IAAP .rtc$IZZX .rtc$TAA` .rtc$TZZh .tlsl .tls$p .tls$ZZZx �.xdata@"�.xdata$x0#�.edata�#�.idata$2@$.idata$3X$�.idata$4H'�.idata$6@�.data�@�.data$r A.data$rs0C�.bssP�.pdata`s.qtmetadatap`.rsrc$01`p.rsrc$02�20

4
2p!!43!*����
p`PB!4�
� !�
� d
4Rp	"f(�})}PdT42pt	d42�f(D�.) ! .)2P

4
Rpf([ z E)P � ^)� � E)� � ^)	4r�p`f(� �!r)�!RPd42p�d4p4��P

4	
2P#`"x"�"�@����"�@�����"#�"#x"�"�@����x"����l#X#`#h#���#�#qtquick3dmaterialplugin.dllqt_plugin_instanceqt_plugin_query_metadata0&�)�1�%�+�1 %0�0X$H20�&�282�&�3x2�&
4�2b02�1�1�1�1�1|1`1L1811
1�0�0�0�0�0�0�0J020$022h,�,�,�,�,-�-�-.0,~.�.�./</p/�/�/�/N,,�+N.�+v+:+�*�*�*^***�)�)F))�(�(V(�'�'�'�'H'V2`2x2�2�2�2�2�233,3F3h3�3�3�3�3�3�33??0QQuick3DCustomMaterial@@QEAA@PEAVQQuick3DObject@@@Z6??1QQuick3DCustomMaterial@@UEAA@XZ?classBegin@QQuick3DObject@@MEAAXXZ(?componentComplete@QQuick3DObject@@MEAAXXZ�?itemChange@QQuick3DMaterial@@MEAAXW4ItemChange@QQuick3DObject@@AEBUItemChangeData@3@@Z?markAllDirty@QQuick3DCustomMaterial@@MEAAXXZ&?metaObject@QQuick3DCustomMaterial@@UEBAPEBUQMetaObject@@XZ�?qt_metacall@QQuick3DCustomMaterial@@UEAAHW4Call@QMetaObject@@HPEAPEAX@Z�?qt_metacast@QQuick3DCustomMaterial@@UEAAPEAXPEBD@Z4?updateSpatialNode@QQuick3DCustomMaterial@@MEAAPEAUQSSGRenderGraphObject@@PEAU2@@Z�?staticMetaObject@QQuick3DCustomMaterial@@2UQMetaObject@@BQt5Quick3D_conda.dll�?staticMetaObject@QQmlExtensionPlugin@@2UQMetaObject@@Bc?qt_metacast@QQmlExtensionPlugin@@UEAAPEAXPEBD@Z??qt_metacall@QQmlExtensionPlugin@@UEAAHW4Call@QMetaObject@@HPEAPEAX@Z??0QQmlExtensionPlugin@@QEAA@PEAVQObject@@@Z`??1QQmlExtensionPlugin@@UEAA@XZ�?qdeclarativeelement_destructor@QQmlPrivate@@YAXPEAVQObject@@@Z#?qmlregister@QQmlPrivate@@YAHW4RegistrationType@1@PEAX@Z	?qmlRegisterModule@@YAXPEBDHH@Z�?initializeEngine@QQmlExtensionPlugin@@UEAAXPEAVQQmlEngine@@PEBD@ZQt5Qml_conda.dll�	?className@QMetaObject@@QEBAPEBDXZe??0QByteArray@@QEAA@XZc??0QByteArray@@QEAA@PEBDH@Z�??1QByteArray@@QEAA@XZO?reserve@QByteArray@@QEAAXH@ZQ?append@QByteArray@@QEAAAEAV1@D@ZS?append@QByteArray@@QEAAAEAV1@PEBD@Z
??0QString@@QEAA@XZa??1QString@@QEAA@XZt?registerNormalizedType@QMetaType@@SAHAEBVQByteArray@@P6AXPEAX@ZP6APEAX1PEBX@ZHV?$QFlags@W4TypeFlag@QMetaType@@@@PEBUQMetaObject@@@Zv?registerNormalizedTypedef@QMetaType@@SAHAEBVQByteArray@@H@Z�?dynamicMetaObject@QObjectData@@QEBAPEAUQMetaObject@@XZ?getAndRef@ExternalRefCountData@QtSharedPointer@@SAPEAU12@PEBVQObject@@@Z�	?childEvent@QObject@@MEAAXPEAVQChildEvent@@@Z{
?connectNotify@QObject@@MEAAXAEBVQMetaMethod@@@Zz?customEvent@QObject@@MEAAXPEAVQEvent@@@Z�?disconnectNotify@QObject@@MEAAXAEBVQMetaMethod@@@Z�
?event@QObject@@UEAA_NPEAVQEvent@@@Z�
?eventFilter@QObject@@UEAA_NPEAV1@PEAVQEvent@@@Z�?timerEvent@QObject@@MEAAXPEAVQTimerEvent@@@Z�?qRegisterResourceData@@YA_NHPEBE00@Z�?qUnregisterResourceData@@YA_NHPEBE00@Z�?qResourceFeatureZlib@@YAEXZQt5Core_conda.dll�CloseHandle8EnterCriticalSection�LeaveCriticalSectionkInitializeCriticalSectionAndSpinCountDeleteCriticalSection&SetEvent�ResetEvent�WaitForSingleObjectEx�CreateEventW�GetModuleHandleW�GetProcAddress�RtlCaptureContext�RtlLookupFunctionEntry�RtlVirtualUnwind�IsDebuggerPresent�UnhandledExceptionFilterSetUnhandledExceptionFilter�IsProcessorFeaturePresentRQueryPerformanceCounter!GetCurrentProcessId%GetCurrentThreadId�GetSystemTimeAsFileTime%DisableThreadLibraryCallsoInitializeSListHeadKERNEL32.dll<memcpy__C_specific_handler!__std_exception_copy"__std_exception_destroy_CxxThrowException>memset%__std_type_info_destroy_listVCRUNTIME140.dllfreemalloc_callnewh?_seh_filter_dll_configure_narrow_argv3_initialize_narrow_environment4_initialize_onexit_table<_register_onexit_function"_execute_onexit_table_crt_atexit_cexit6_initterm7_initterm_eapi-ms-win-crt-heap-l1-1-0.dllapi-ms-win-crt-runtime-l1-1-0.dll����QtQuick3DMaterialPlugin@��3��������/ ��] �f��2��-�+��.?AVbad_alloc@std@@��.?AVexception@std@@��.?AVbad_array_new_length@std@@��.?AVQtQuick3DMaterialPlugin@@��.?AVQQmlExtensionPlugin@@��.?AVQObject@@��.?AVQQmlExtensionInterface@@��.?AVQQmlTypesExtensionInterface@@��.?AV?$QQmlElement@VQQuick3DCustomMaterial@@@QQmlPrivate@@��.?AVQQuick3DCustomMaterial@@��.?AVQQuick3DMaterial@@��.?AVQQuick3DObject@@��.?AVQQmlParserStatus@@��.?AVtype_info@@C� P|x ��� ��� �M� P�� ��x �
� 
b� b�� \�x ��� �� -� 0X� Xm� p�!�� � ]x `�x ��� ��x ��x �x '� (�� � �  �x ��x �)� ,�x ��x �� "  !$ � d!� �!�!�!"�!"X"x x"�"x �"#x #^#� `#�#�!�#�#�!�#U%"t%�&"�&l' "l'�'� �'�'� �'(� (X(� �(�(0"))8").)!.)E)\!E)^)\!^)r)\!r)�)�!�)
*� QTMETADATA !�x,org.qt-project.Qt.QQmlExtensionInterface/1.0wQtQuick3DMaterialPlugincuri�sQtQuick3D.Materials��0�	H`p4VS_VERSION_INFO��?^StringFileInfo:040904b0HCompanyNameThe Qt Company Ltd.t&FileDescriptionC++ Application Development Framework2	FileVersion5.15.2.0r'LegalCopyrightCopyright (C) 2020 The Qt Company Ltd.`OriginalFilenameqtquick3dmaterialplugin.dll(ProductNameQt56	ProductVersion5.15.2.0DVarFileInfo$Translation	�0`���� �(�@���ȣУأ������� �(�0�8�h�p�x�������������������ȤФؤ���8x�����������ȣУ��������@�X�`�h�p���������@,8�@�H������ �P�����С�`�������