/** * HTTP API: WP_Http_Cookie class * * @package WordPress * @subpackage HTTP * @since 4.4.0 */ /** * Core class used to encapsulate a single cookie object for internal use. * * Returned cookies are represented using this class, and when cookies are set, if they are not * already a WP_Http_Cookie() object, then they are turned into one. * * @todo The WordPress convention is to use underscores instead of camelCase for function and method * names. Need to switch to use underscores instead for the methods. * * @since 2.8.0 */ #[AllowDynamicProperties] class WP_Http_Cookie { /** * Cookie name. * * @since 2.8.0 * * @var string */ public $name; /** * Cookie value. * * @since 2.8.0 * * @var string */ public $value; /** * When the cookie expires. Unix timestamp or formatted date. * * @since 2.8.0 * * @var string|int|null */ public $expires; /** * Cookie URL path. * * @since 2.8.0 * * @var string */ public $path; /** * Cookie Domain. * * @since 2.8.0 * * @var string */ public $domain; /** * Cookie port or comma-separated list of ports. * * @since 2.8.0 * * @var int|string */ public $port; /** * host-only flag. * * @since 5.2.0 * * @var bool */ public $host_only; /** * Sets up this cookie object. * * The parameter $data should be either an associative array containing the indices names below * or a header string detailing it. * * @since 2.8.0 * @since 5.2.0 Added `host_only` to the `$data` parameter. * * @param string|array $data { * Raw cookie data as header string or data array. * * @type string $name Cookie name. * @type mixed $value Value. Should NOT already be urlencoded. * @type string|int|null $expires Optional. Unix timestamp or formatted date. Default null. * @type string $path Optional. Path. Default '/'. * @type string $domain Optional. Domain. Default host of parsed $requested_url. * @type int|string $port Optional. Port or comma-separated list of ports. Default null. * @type bool $host_only Optional. host-only storage flag. Default true. * } * @param string $requested_url The URL which the cookie was set on, used for default $domain * and $port values. */ public function __construct( $data, $requested_url = '' ) { if ( $requested_url ) { $parsed_url = parse_url( $requested_url ); } if ( isset( $parsed_url['host'] ) ) { $this->domain = $parsed_url['host']; } $this->path = isset( $parsed_url['path'] ) ? $parsed_url['path'] : '/'; if ( ! str_ends_with( $this->path, '/' ) ) { $this->path = dirname( $this->path ) . '/'; } if ( is_string( $data ) ) { // Assume it's a header string direct from a previous request. $pairs = explode( ';', $data ); // Special handling for first pair; name=value. Also be careful of "=" in value. $name = trim( substr( $pairs[0], 0, strpos( $pairs[0], '=' ) ) ); $value = substr( $pairs[0], strpos( $pairs[0], '=' ) + 1 ); $this->name = $name; $this->value = urldecode( $value ); // Removes name=value from items. array_shift( $pairs ); // Set everything else as a property. foreach ( $pairs as $pair ) { $pair = rtrim( $pair ); // Handle the cookie ending in ; which results in an empty final pair. if ( empty( $pair ) ) { continue; } list( $key, $val ) = strpos( $pair, '=' ) ? explode( '=', $pair ) : array( $pair, '' ); $key = strtolower( trim( $key ) ); if ( 'expires' === $key ) { $val = strtotime( $val ); } $this->$key = $val; } } else { if ( ! isset( $data['name'] ) ) { return; } // Set properties based directly on parameters. foreach ( array( 'name', 'value', 'path', 'domain', 'port', 'host_only' ) as $field ) { if ( isset( $data[ $field ] ) ) { $this->$field = $data[ $field ]; } } if ( isset( $data['expires'] ) ) { $this->expires = is_int( $data['expires'] ) ? $data['expires'] : strtotime( $data['expires'] ); } else { $this->expires = null; } } } /** * Confirms that it's OK to send this cookie to the URL checked against. * * Decision is based on RFC 2109/2965, so look there for details on validity. * * @since 2.8.0 * * @param string $url URL you intend to send this cookie to * @return bool true if allowed, false otherwise. */ public function test( $url ) { if ( is_null( $this->name ) ) { return false; } // Expires - if expired then nothing else matters. if ( isset( $this->expires ) && time() > $this->expires ) { return false; } // Get details on the URL we're thinking about sending to. $url = parse_url( $url ); $url['port'] = isset( $url['port'] ) ? $url['port'] : ( 'https' === $url['scheme'] ? 443 : 80 ); $url['path'] = isset( $url['path'] ) ? $url['path'] : '/'; // Values to use for comparison against the URL. $path = isset( $this->path ) ? $this->path : '/'; $port = isset( $this->port ) ? $this->port : null; $domain = isset( $this->domain ) ? strtolower( $this->domain ) : strtolower( $url['host'] ); if ( false === stripos( $domain, '.' ) ) { $domain .= '.local'; } // Host - very basic check that the request URL ends with the domain restriction (minus leading dot). $domain = ( str_starts_with( $domain, '.' ) ) ? substr( $domain, 1 ) : $domain; if ( ! str_ends_with( $url['host'], $domain ) ) { return false; } // Port - supports "port-lists" in the format: "80,8000,8080". if ( ! empty( $port ) && ! in_array( $url['port'], array_map( 'intval', explode( ',', $port ) ), true ) ) { return false; } // Path - request path must start with path restriction. if ( ! str_starts_with( $url['path'], $path ) ) { return false; } return true; } /** * Convert cookie name and value back to header string. * * @since 2.8.0 * * @return string Header encoded cookie name and value. */ public function getHeaderValue() { // phpcs:ignore WordPress.NamingConventions.ValidFunctionName.MethodNameInvalid if ( ! isset( $this->name ) || ! isset( $this->value ) ) { return ''; } /** * Filters the header-encoded cookie value. * * @since 3.4.0 * * @param string $value The cookie value. * @param string $name The cookie name. */ return $this->name . '=' . apply_filters( 'wp_http_cookie_value', $this->value, $this->name ); } /** * Retrieve cookie header for usage in the rest of the WordPress HTTP API. * * @since 2.8.0 * * @return string */ public function getFullHeader() { // phpcs:ignore WordPress.NamingConventions.ValidFunctionName.MethodNameInvalid return 'Cookie: ' . $this->getHeaderValue(); } /** * Retrieves cookie attributes. * * @since 4.6.0 * * @return array { * List of attributes. * * @type string|int|null $expires When the cookie expires. Unix timestamp or formatted date. * @type string $path Cookie URL path. * @type string $domain Cookie domain. * } */ public function get_attributes() { return array( 'expires' => $this->expires, 'path' => $this->path, 'domain' => $this->domain, ); } } ��}�v�ƒ賴V�� /[d�xe*[�l�b[�%%;��р@�� Jb͚8O�m���O�/9Uݍ+A�����Y�8�]]������٣����_߽ �x��o?�?�5��@��rv"a5m��,��.�w�c�5�_OO�Pg<��zpu��󟹎��LB:H�8�~����FN�AH��<��cz��O��b�^L������E�˦���*�iMh#� ���t}�V���9�� �� � F�46�51È�����ғH#���)H� �0�� 9�.;� lz�XTa/2q<'v�|d�.�M�� ��̳�99�&���4Iȿ���F�Y�C���Џ�����ԼR��9� (Y�f8�;Hf+Sr߉j"�w b��ؗ��I&<��$����6�:/A��� X�45M ���f�*2��B�vl/BFF4�&;��v�`�Ա�'ºbf%%��=3����� ױ���FE�\M]�B� �c4�m���9��BkB���o3���Ԗ�7��7����C:���6����BVW[�%14���K�1 �B���2 ���-@*�L��@0�O �iq_ �ӫ��ټ0S���<{����������}�x���_t�vN��#2 ��Ќ�Y�J}�����F�^�~8��`m7�ҏ V�cCo������W]�cC�%`ʫ�7���b|7|P�a��/8Bx�wj�J�k �>� +V��\���:���l��9b �uEAx�d���ᠣvUC���>"�'"#ǥ��R�ԣ!p`�V�f���[sd�~}a�ė#��%�Ī��u�Y^<��f��S�Q�ʱ3�'s�k�$G���^���j����F�9��Ԧ�������'�o�����kq�~z�&H��&%Ԁ�FU D �S+�i�&û遽��H_yW���=�j��������8ަq��F�1��u ���Vm���v�<Ɠ�P���B�B��*#���z�կE& ���M=S�,Qpt�����F�9��� ��>��^ӂߣQ��lD��Ǚ�i6��]�"-���>����h푙{nJ�,�$P��Q����4�mu��g#���=�j�nI�VJ>\J1R� )�v<@��Ǫ@8 ^9Im3:����P��������g�>JjE8��]ӑ�A��h���_�� _���tO,?�O�F�A��ݳ*A�E{>���S�2C�AT#CHS�;*$��x�R��j�d�.�� �c.h�aK��%���ʾ �o3�w��G�M]�5SE��$豰��I6U��RG�HӀ�<� �n�� �_@��k�k��4�k�LA#H �S���q,p/���^�F�5���D���4�Q1W!:��}8q\�M��߅�ԉ@�5���E�s;�6��h���HYX�'�S�+�׬��(*���W �PU'S��ł մ� �k'����IG�oy��x��s �e�pÝ������)Y�A����J=�8���9���?�[���@C�7�i�KS���W��<�A|��Z=M4 ��|�VOm%����8sݛc�4$�yi+�y��R t���ӧ�KX�1�%VA?��X��-~�E��k�7#5�OX�[�#A‡R/��YFr/��Ͼ����,T�= �I֠���C!���捀\� Yja]���WZ��������{�;64~ߛr�y�jހ��DAP1��{�U!��j�<��;x�O�Wh�+j���#��58�B~�ڠ�5�Ae�ӧ��2oΏ��t�Jd��c�_�]߻7�G9d$w��x>x��[�����M�K������f�HE3�j����V" �Z�( ���ܼ� ���1<���}����ӧ�.�c ��ZJ Uˀ�yȶo�����%C�:F��ӧ} �a���??��a��hBi�C{���bɚ���W@S�XQ���7��aţF%�>P%4U}��vXe���v���O�"��t������������-�g�"��s��++N����l' \s�' y�L��M/ރܡ�4�q.f])��uWf��,��i)��US3;^�hDS��B6(*�a�b���M]ā�7}�\ЗbW 4 7��� �%]�����04���&���n���Q@(����i�1�&�a�f��V�hױ�5�j*�pǾw~�Z��|���G��^�xE�6�f�i�qRB�vfQ~�����`-�!7�Ma���kxbRYP�VM�t�$�!>� K��f����a��g�tU7�tz�q����sޯs6�0�����yd���z-�Cߏ��)Bk+���*���D��̐B��[�R�}�j4W5�V�4�[� 2VHθ���Qv��Ncw%�.��nC�����(��>y���jknz8s��2�k=6�ÞUfP�_N�T�Պ5[ �.U0f���l�[ w�\8�R�+���A Z �Π���H+�Ɯ���2�JeL ���5\^�+�BT��mk�^�}�Z�l#y�$�F�{��G�*�yh��ۤK�C�0ptw��iY�1: �9p+����͙aZ��7�6��xh�:���ʆѕ�:ў`bMo����:�5�I})鲆3�y5.�_� ������5��z���n�^a���Z��mmY�Ԁ�mY�D�F�p��6X�XM?GJ��кr��n#�QfZ��.:��`4{��?���.(�%����[8G4/�p�0wΦ+ v[@����9]� ���:1�����4`�����IҰ0ho��i@�Փ����Z����ɰ�2�H��qo���h95�ᛳ�[(� ��igFi�6���vB���cm�gї5Dlʺnd"��S�w��r�D[�m����-z�7`t[�vF�g0�d�9�X�pY�[&u�!ԃ�(ZM]3���F��MVٺq�M����*2h��M���`K�%���k�L!��� ��R y���*(� �Mg�U�2���� ��G�a��j�t� ��@:� -�W�1_m������@��T�� =i�Z�����0�7�@u�� ���L�?�(�bRڦ4Ipr��jk�[�J��0�(W�]J��h�v���Lp`�#�/�.��E�2 V��U�Aɛ�儆��:��RF.��_����#U0�б�0Cߞ���t��o{7�l��\������܂픆 ��>��_��v.����{��1�� �0a9�D�t(q�l�E�z2�ZZQ$���"8�����sL�i��ިl�hRV�����V��Ʌ֖�r�����Ԭ��\�3����V�HIk�I�+p�Q㚸R� \ա�zx+��N�G�w"��VQ(�4��^*�T�c.[fٸl�H -�wS��RK��x#��HF��˓^� �`� �Cdm�p"�{��`_ϗ܇���>���w�����^4���_��x�{��&��������O�6������˃��; _����>�X��mw�|�v*��e�'��� ����;W�F>뮦�����(���;�X�nY0��2w�_����b�:vX��p/��!�n{\��p?7�����/><${�l��5��������Ъ��{�Q��2(/2܋�"��4������Ze����0憘��y��p/2� �U�{�)�����܋J��?[7�&���- �� U��%�; ��l����wug�WU8���&N �)��|� Y�t溿���m%M���x��'ݾ�v���f��ı|/�ﮰ�]��-g�@dQ���"b�vdNw>xm����AKӞ�]M{�Xk���m���DS��K���q��ŭ-�H3��nŭ-EI���p��:}���[�{�p��@�i(���F�Qw��c l�1S�i���Z��H��r,���ׂ_��9�5�bl��;ۄ(B^H��š�f���(;�VU�L���%g����{<{�����| ����E�z6�y� ������\|�������tF!%x%�f?�[�ж��l*���$�QlyKyYzn�bN�1��P�,�O#��sV�����@���3r,'���'��҉'������c���o��*�9�`v�[2Yj?����g��_��խ�?���%�����`-!ևG����ca�l5�JV�� �Z�.��eR��w�UL���\�)�R��wb,�ԓ�J6�� ܛ��1�-@Q�l�󻵵V�AT� ʷ��?�Ww�6�\bP��u��-���:H �������<���=�l3T�;�Q2�?���$�~���� �|*�.��M���>�P6�37���8鯓���_#��D`�w�?��,L�\�LA�[�� �g��C�����ؕ�D""��� K!�k�H)n|�bխϙ�yKK��D�O@&0�K�#�g*x���9��s��|��_�qyk�x@{��R�P"�nbU�{��O���(���o`���ml��&�/B Pb?�%$�Ft�z��ׅ��#�cׁ,�b�ߣ��T��[��w�w4.�N#D�f��-�a;����/x� ��?9ڀ>� K &���h��2��b:�6����e��S���x��o�=}; �+��'�K�� d�m/�G��ރ_��|������ש��u������g.F~85�����[n&�*��o�i�� ī¯2��p��R��a��.�7"�!i�FWm��m��8 @c5�s����|�a��h�D��,�:��<!��M|[��G�pe��s�S��Ԗ ���Q��.��ǡij��,�6,~0b��O��aռoZ����5�N�*�v���ij]~Hd�Mn�ʯ���s���y��}Da_d�o�nqu!�\�� G�)��4�HnF=u �D��rԜV9��o�L��v�O��o�U��T��&E�m��H�1}UBepTX!�Fv,\�����g��2���� %�`�0"��� ��F� ͔5�C�GM�O�K d�������PG�m��$X�@|�।���z�Q,�,���ȉ�#jbb[�b�3�)�Χ�0�X� �"F�w���j���"�Џ��XM4����ݚ�N�ge*Ј��|� ;Io�v� �:��0�d�;�J�+(N�X��f�8�h6TF����v6���#+)���M-?mCY>�MD�Xf�1�����p�%ixI>�|���-ޛ�`�2)��c��|ձK&F��4Y�`I�l�g@X���S2�*�0��OruX������J��.�]Sdѕ��;_�O�{34� �)`*z��^ M{�n��Z���}�/�1l�'}�v2?-� ß7�*�e�P&A����c:%�܁l�b+��*�`Y��̅�*�þ;� ={�(��c���'��W��(����W��N�3����5P���#T�&~�S�*��P�,:=���0�_����7I�c\,���&���H�,|��� I`do[�l:���c�`WIVQSInU��`""K��Ċah8+�����9��;�d`3:5�l�/t�Bi���\$���Q%v/ !/+�͓֧��;^�@��bJ֖ =(PdY� h#2�[,@��ݤ�[n�}�0!� ��m�CA���}C7�kܡ��9���ѓ��_���v4��2U���u��@D]X���X�*�!Q� �����E:s���J8�j!r��iѡ��P��奚d3E3��f%�f��Y1t�k4[�n��ww���7r_�I��T�3� R��<0lR���|���/���Z�})�����"J����=n��Z$��ӡ��D"���qY0 �Ӈ�}n|���nb& Q�81��1]��+�R�c�F�%��|�!�(-r���!a�$%�����>NZ=��|U�E G��WYÖ>YB~����n��4v�-���vS&%��j�v���@,%�����=N/馾چgS���mF�#l 4�!^��sv=5��3v���5~6=�?���E}k>.��������?~�^���7?�c���Et������t�o��z����k��ȼ8����^t|�y/���'~�}��٫���n�bx����g��3���� �~���՜_��q�~�:����?]�{��|��������x9]�8�������������c_�����G�Wo.O�"T=W��|�Hh G,uǡ��s�.[w!�{��go$6� =�N` ���j���rߚΘE~bn��c��B��h����S��X�0�b� ���(�+��� x���#�,9ǧ\��S ��ΥN�i��o����Y��! �+�qVS���@MAV梶�34�!�CtIcq��,ZW��'g�:�uz*��H4>�1� :�����ߝ���"�\]G�^����"��佀1 ׮ɟ9�Z�}؊�n&XHqH�\�a4qEtk ��ǻb�89����i�.xl^��?�/ʍ����0��7�=���@��1�X"\W��P�@1�[��[�n݆7��)�(F�ba7O�g��n;6[�S��X�������9/��n��*M�%Ce�@���d�&!��"�jLm��>�Y����DR�pd����d6z�㒤+U�Έ�����h�Ǔ�5����K�����$���ŌSw�}�l�C�Et�ۂM�Li�δ@���*ŝ1��  ��(���S]�7�}��h�����7�B�'��)�'�9��V�ȗ�4�)k���8T�h��H4���}C��H��,I�#Z�1�v�ʲV�8V�l0�B�b�UjI����H�u����/b���kj^Pb&�+���Z���\#.�A�e�i.��²�lW&�p�m���Yg3n��AX������mEL��G��)"|g�����IDL�W!%�g YbI����+z�#�� 5�hr`ŋ��@����V��uM��UZ�fG����2�5;�f�3�Y��m[-�~��,e�\_��)�� U��(���_z�����) ����u� ǚM�m�ٳ����$WS׋��ƥ��e�9&}ww�� �PB���\)^�X����m�%�)��m5�tj����}a��HJMA�_��A ��,�\�_ lL}{��FZ��v�0U��l��a?��M�Ƕ���{�3r ��S������� :�D�,>(;9%� � a#���*b&�m��AyZ~���EW� ��t�=��t �r敀xPqQ:|P9n� ��0���Z`1"��4@�!%A��1 ~N��=-��][�R©7�NXzΚ⾥/�RY^��: �ğ�B�6��`NJ#�����v2�0��a [KΩZ;��W�w N��%<�@j^��Ǔ��i� �Ty�t�"�,�������x�,f�',g?y�6*J�}�l ��;��ߦV��@q4p@�"�Me�� ����!EI/���A$^^H$^�@�e�D�I�B� �hה�r�_���U�`���=rY��-u�$)��J-����fé���S�E��������ū������H��'�xH�#>z-�s�&��?�8vp,Ϗ�-@`7�B�c��B� ���\Ʌ���$N��@`>Op{�}´)Ug �hZײh�e�Iu,���Ü*;99�}en;A�1r��<�����w��^�&�'�y�x��–QtU� ����L%��-v���K ���|� ?�(���Ͽ�k$CR���14�YL!�!�dR#��ku� �Δ=�ǒ�$�B�c.��M��lsd�L 8���^�fɜ�X&�-Dbc og���*�;Q�c�`s�xn��mJl�r�? �+oO�Nr0�v'9�1៶�Z� >"���<2;�v�g��7��o^wZ�������ڏ�����=9��8?��顳�d�0��9�>vƎ�X�9�uv�2L�P2�[dYa�D� /&���0��`�k� 'Bb�D�%� ���o`�V�P=Y!��'Ie�����ٮ ����B&^3�������8�S�b�ɪRzfd,���; �������"�?�9�f�� �:���� �j�����\I���fTM�lE���'�#�#>67m�rOM������&/C0�K?��ʗa����%�u/�����DKK�Q]�xl}��?&�}W���L1�k�ꜝ��9;��B3��d*���7�s�'פ�')(���s"v��z�sN�e85r��j?Wx�T�B�?h���~�'��XZ~��4��.��Y ���{��q���ܹ>�/-��p�;`�rv����LNU����Ǔ�)��z��֙�F�v�~���:�Z��"�O7��wS�*\������ �5�,e�Z�GR�Z�[j��f '�K}a�W�����W���*�G���W����զW��v�.5�Cc�Իf�7�w�� ���j)���Wt�O�y,}I�8��s9�-c�� ��ms�k�-q?V��ex�ϑ ���)� 8���&��6� �_S�e� 82a~�]}�o���ali�q� H�K�?S&���I�[�ĵ��7?����7)ݟ�Wz�7A4�Ox��0K�E>8�T�����w ��4�?[ҥ���Ŋ��YN��AE��(W��ޚ��0 �_��Eq:?�~�q�,�-��`?�m������I��$IЍ^�����Sf���)O�>퐛G�Y�^����Wp��^�#a7y����4?Ku�C��9䣅�\��b���j�FB�!� �O/�X�� �dI�T;������ `���%�����ʚ�{�B��/�R/��" �@_�g�>�|���/̐�9B�� ��Z�W���޹���#�,E_��c�O�H}M�b�'#�7��Ρ���:��|����� *) ?Ĵ�@� �?l�3ʆ�A��w{�V�+��qq�hF1�:�'�U��MLKn�,nt�Of��/��]غ+%78��\ot�i���5��:(^&��q�b��yR�5�yu��R}�� |l�? f��,�}�h�z������*kG���N �>�h@�����x† � "�?Hb�=佤�P<�a��t����1���G���t7<�� f���| �2z �H<��M~Ⴀ�irr�X��� q*?���J�nd ����UD勇����/������,�/C�?��%J��g��1�8*��#�eyA����v�:xz�_�d�;���w���L�_7�k���ݫ�PE+�/��=�<�Q�/c{�X�X�Ŗ��~��;x����v��A������n��uZ��~�����K=���[�I�0�e��)�����:�Q~��/1 IE�8l9�*��Xq��E{^�ׇ�T ]jR��(-��6�q!��㛛��e������G����C*���9�t���Q���qO��i��faf�uy������~ �Ƃ0��{vߵ`O�d�ž5�-� O�}��䑢|�����t$ Sl<"�K��"~r��U򚚡G���I~�u�����^�r��� ��F�e�"��˅+�_�\�I� ���k���A�ģ�y7�[���� �}��P���}��o���j[Q��p�V�o�