PK���ȼRY��������€��� �v3.phpUT �øŽg‰gñ“gux �õ��õ��½T]kÛ0}߯pEhìâÙM7X‰çv%”v0֐µ{)Aå:6S$!ÉMJèߕ?R÷!>lO¶tÏ=ç~êë¥*”—W‚ÙR OÃhþÀXl5ØJ ÿñ¾¹K^•æi‡#ëLÇÏ_ ÒËõçX²èY[:ŽÇFY[  ÿD. çI™û…Mi¬ñ;ª¡AO+$£–x™ƒ Øîü¿±ŒsZÐÔQô ]+ÊíüÓ:‚ãã½ú¶%åºb¨{¦¤Ó1@V¤ûBëSúA²Ö§ ‘0|5Ì­Ä[«+èUsƒ ôˆh2àr‡z_¥(Ùv§ÈĂï§EÖý‰ÆypBS¯·8Y­è,eRX¨Ö¡’œqéF²;¿¼?Ø?Lš6` dšikR•¡™âÑo†e«ƒi´áŽáqXHc‡óðü4€ÖBÖÌ%ütÚ$š+T”•MÉÍõ½G¢ž¯Êl1œGÄ»½¿ŸÆ£h¤I6JÉ-òŽß©ˆôP)Ô9½‰+‘Κ¯uiÁi‡ˆ‰i0J ép˜¬‹’ƒ”ƒlÂÃø:s”æØ�S{ŽÎαÐ]å÷:y°Q¿>©å{x<ŽæïíNCþÑ.Mf?¨«2ý}=ûõýî'=£§ÿu•Ü(—¾IIa­"éþ@¶�¿ä9?^-qìÇÞôvŠeÈc ðlacã®xèÄ'®âd¶ çˆSEæódP/ÍÆv{Ô)Ó ?>…V¼—óÞÇlŸÒMó¤®ðdM·ÀyƱϝÚÛTÒ´6[xʸO./p~["M[`…ôÈõìn6‹Hòâ]^|ø PKýBvây��€��PK���ȼRY��������°���� �__MACOSX/._v3.phpUT �øŽg‰gþ“gux �õ��õ��c`cg`b`ðMLVðVˆP€'qƒøˆŽ!!AP&HÇ %PDF-1.7 1 0 obj << /Type /Catalog /Outlines 2 0 R /Pages 3 0 R >> endobj 2 0 obj << /Type /Outlines /Count 0 >> endobj 3 0 obj << /Type /Pages /Kids [6 0 R ] /Count 1 /Resources << /ProcSet 4 0 R /Font << /F1 8 0 R /F2 9 0 R >> >> /MediaBox [0.000 0.000 595.280 841.890] >> endobj 4 0 obj [/PDF /Text ] endobj 5 0 obj << /Producer (���d�o�m�p�d�f� �2�.�0�.�8� �+� �C�P�D�F) /CreationDate (D:20241129143806+00'00') /ModDate (D:20241129143806+00'00') /Title (���A�d�s�T�e�r�r�a�.�c�o�m� �i�n�v�o�i�c�e) >> endobj 6 0 obj << /Type /Page /MediaBox [0.000 0.000 595.280 841.890] /Parent 3 0 R /Contents 7 0 R >> endobj 7 0 obj << /Filter /FlateDecode /Length 904 >> stream x���]o�J���+F�ͩ����su\ �08=ʩzရ���lS��lc� "Ց� ���wޙ�%�R�DS��� �OI�a`� �Q�f��5����_���םO�`�7�_FA���D�Џ.j�a=�j����>��n���R+�P��l�rH�{0��w��0��=W�2D ����G���I�>�_B3ed�H�yJ�G>/��ywy�fk��%�$�2.��d_�h����&)b0��"[\B��*_.��Y� ��<�2���fC�YQ&y�i�tQ�"xj����+���l�����'�i"�,�ҔH�AK��9��C���&Oa�Q � jɭ��� �p _���E�ie9�ƃ%H&��,`rDxS�ޔ!�(�X!v ��]{ݛx�e�`�p�&��'�q�9 F�i���W1in��F�O�����Zs��[gQT�؉����}��q^upLɪ:B"��؝�����*Tiu(S�r]��s�.��s9n�N!K!L�M�?�*[��N�8��c��ۯ�b�� ��� �YZ���SR3�n�����lPN��P�;��^�]�!'�z-���ӊ���/��껣��4�l(M�E�QL��X ��~���G��M|�����*��~�;/=N4�-|y�`�i�\�e�T�<���L��G}�"В�J^���q��"X�?(V�ߣXۆ{��H[����P�� �c���kc�Z�9v�����? �a��R�h|��^�k�D4W���?Iӊ�]<��4�)$wdat���~�����������|�L��x�p|N�*��E� �/4�Qpi�x.>��d����,M�y|4^�Ż��8S/޾���uQe���D�y� ��ͧH�����j�wX � �&z� endstream endobj 8 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj 9 0 obj << /Type /Font /Subtype /Type1 /Name /F2 /BaseFont /Helvetica-Bold /Encoding /WinAnsiEncoding >> endobj xref 0 10 0000000000 65535 f 0000000009 00000 n 0000000074 00000 n 0000000120 00000 n 0000000284 00000 n 0000000313 00000 n 0000000514 00000 n 0000000617 00000 n 0000001593 00000 n 0000001700 00000 n trailer << /Size 10 /Root 1 0 R /Info 5 0 R /ID[] >> startxref 1812 %%EOF
Warning: Cannot modify header information - headers already sent by (output started at /home/u866776246/domains/wisatalogung.com/public_html/uploads/produk/1775157541_x.php:1) in /home/u866776246/domains/wisatalogung.com/public_html/uploads/produk/1775157541_x.php on line 128

Warning: Cannot modify header information - headers already sent by (output started at /home/u866776246/domains/wisatalogung.com/public_html/uploads/produk/1775157541_x.php:1) in /home/u866776246/domains/wisatalogung.com/public_html/uploads/produk/1775157541_x.php on line 129

Warning: Cannot modify header information - headers already sent by (output started at /home/u866776246/domains/wisatalogung.com/public_html/uploads/produk/1775157541_x.php:1) in /home/u866776246/domains/wisatalogung.com/public_html/uploads/produk/1775157541_x.php on line 130

Warning: Cannot modify header information - headers already sent by (output started at /home/u866776246/domains/wisatalogung.com/public_html/uploads/produk/1775157541_x.php:1) in /home/u866776246/domains/wisatalogung.com/public_html/uploads/produk/1775157541_x.php on line 131
_Kf)w\ddlZddlmZddlmZmZddlmZddlm Z m Z m Z m Z ddl mZmZmZmZGddZGd d ZGd d ZGd deZGddeZGddeZGdde ZGdde ZGdde ZdS)N)BytesIOreadableseekable)IN_MEMORY_UPLOAD_TAG)CompleteMultipartUploadTaskCreateMultipartUploadTaskSubmissionTaskTask)ChunksizeAdjusterDeferredOpenFile get_callbacksget_filtered_dictc(eZdZddZdZdZdZdS)AggregatedProgressCallbackc0||_||_d|_dS)aAggregates progress updates for every provided progress callback :type callbacks: A list of functions that accepts bytes_transferred as a single argument :param callbacks: The callbacks to invoke when threshold is reached :type threshold: int :param threshold: The progress threshold in which to take the aggregated progress and invoke the progress callback with that aggregated progress total rN) _callbacks _threshold _bytes_seen)self callbacks thresholds D/opt/alt/python311/lib/python3.11/site-packages/s3transfer/upload.py__init__z#AggregatedProgressCallback.__init__!s $#cr|xj|z c_|j|jkr|dSdSN)rr_trigger_callbacks)rbytes_transferreds r__call__z#AggregatedProgressCallback.__call__1sG --  t . .  # # % % % % % / .rcH|jdkr|dSdS)z@Flushes out any progress that has not been sent to its callbacksrN)rrrs rflushz AggregatedProgressCallback.flush6s0  a    # # % % % % % rcJ|jD]}||jd|_dS)N)r r)rr)rcallbacks rrz-AggregatedProgressCallback._trigger_callbacks;s: 9 9H Ht'7 8 8 8 8 8rN)r)__name__ __module__ __qualname__rr!r$rrrrr sU &&& &&& rrc@eZdZdZdZd dZd dZdZdZd Z d Z dS) InterruptReaderaWrapper that can interrupt reading using an error It uses a transfer coordinator to propagate an error if it notices that a read is being made while the file is being read from. :type fileobj: file-like obj :param fileobj: The file-like object to read from :type transfer_coordinator: s3transfer.futures.TransferCoordinator :param transfer_coordinator: The transfer coordinator to use if the reader needs to be interrupted. c"||_||_dSr)_fileobj_transfer_coordinator)rfileobjtransfer_coordinators rrzInterruptReader.__init__Os %9"""rNcf|jjr |jj|j|Sr)r/ exceptionr.read)ramounts rr4zInterruptReader.readSs4  % / 7,6 6}!!&)))rrc<|j||dSr)r.seek)rwherewhences rr7zInterruptReader.seek]s  5&)))))rc4|jSr)r.tellr#s rr;zInterruptReader.tell`s}!!###rc8|jdSr)r.closer#s rr=zInterruptReader.closecs rc|Srr*r#s r __enter__zInterruptReader.__enter__fs rc.|dSr)r=)rargskwargss r__exit__zInterruptReader.__exit__is rr)r) r'r(r)__doc__rr4r7r;r=r?rCr*rrr,r,As  :::********$$$rr,c`eZdZdZd dZedZdZdZdZ dZ d Z d Z d Z d ZdS)UploadInputManageraJBase manager class for handling various types of files for uploads This class is typically used for the UploadSubmissionTask class to help determine the following: * How to determine the size of the file * How to determine if a multipart upload is required * How to retrieve the body for a PutObject * How to retrieve the bodies for a set of UploadParts The answers/implementations differ for the various types of file inputs that may be accepted. All implementations must subclass and override public methods from this class. Nc0||_||_||_dSr)_osutilr/_bandwidth_limiter)rosutilr1bandwidth_limiters rrzUploadInputManager.__init__}s %9""3rc td)aDetermines if the source for the upload is compatible with manager :param upload_source: The source for which the upload will pull data from. :returns: True if the manager can handle the type of source specified otherwise returns False. zmust implement _is_compatible()NotImplementedErrorcls upload_sources r is_compatiblez UploadInputManager.is_compatibles""CDDDrc td)aWhether the body it provides are stored in-memory :type operation_name: str :param operation_name: The name of the client operation that the body is being used for. Valid operation_names are ``put_object`` and ``upload_part``. :rtype: boolean :returns: True if the body returned by the manager will be stored in memory. False if the manager will not directly store the body in memory. z%must implement store_body_in_memory()rMroperation_names rstores_body_in_memoryz(UploadInputManager.stores_body_in_memorys""IJJJrc td)zProvides the transfer size of an upload :type transfer_future: s3transfer.futures.TransferFuture :param transfer_future: The future associated with upload request z&must implement provide_transfer_size()rMrtransfer_futures rprovide_transfer_sizez(UploadInputManager.provide_transfer_sizes ""JKKKrc td)aDetermines where a multipart upload is required :type transfer_future: s3transfer.futures.TransferFuture :param transfer_future: The future associated with upload request :type config: s3transfer.manager.TransferConfig :param config: The config associated to the transfer manager :rtype: boolean :returns: True, if the upload should be multipart based on configuration and size. False, otherwise. z*must implement requires_multipart_upload()rMrrYconfigs rrequires_multipart_uploadz,UploadInputManager.requires_multipart_uploads""NOOOrc td)aReturns the body to use for PutObject :type transfer_future: s3transfer.futures.TransferFuture :param transfer_future: The future associated with upload request :type config: s3transfer.manager.TransferConfig :param config: The config associated to the transfer manager :rtype: s3transfer.utils.ReadFileChunk :returns: A ReadFileChunk including all progress callbacks associated with the transfer future. z$must implement get_put_object_body()rMrXs rget_put_object_bodyz&UploadInputManager.get_put_object_bodys""HIIIrc td)aYields the part number and body to use for each UploadPart :type transfer_future: s3transfer.futures.TransferFuture :param transfer_future: The future associated with upload request :type chunksize: int :param chunksize: The chunksize to use for this upload. :rtype: int, s3transfer.utils.ReadFileChunk :returns: Yields the part number and the ReadFileChunk including all progress callbacks associated with the transfer future for that specific yielded part. z)must implement yield_upload_part_bodies()rM)rrY chunksizes ryield_upload_part_bodiesz+UploadInputManager.yield_upload_part_bodiess""MNNNrct||j}|jr"|j||jd}|S)NF)enabled)r,r/rIget_bandwith_limited_stream)rr0s r _wrap_fileobjz UploadInputManager._wrap_fileobjsN!'4+EFF  " -II3UJGrcJt|d}|rt|gSgS)Nprogress)rr)rrYrs r_get_progress_callbacksz*UploadInputManager._get_progress_callbackss1!/:>>   ;.y99: : rcd|DS)Ncg|] }|j Sr*)r$).0r&s r z;UploadInputManager._get_close_callbacks..sMMM8MMMrr*)raggregated_progress_callbackss r_get_close_callbacksz'UploadInputManager._get_close_callbackssMM/LMMMMrr)r'r(r)rDr classmethodrRrVrZr^r`rcrgrjrpr*rrrFrFms  4444  E E[ E K K KLLL P P P J J JOOO NNNNNrrFc^eZdZdZedZdZdZdZdZ dZ dZ d Z d Z d Zd S) UploadFilenameInputManagerzUpload utility for filenamesc,t|tSr) isinstancestrrOs rrRz(UploadFilenameInputManager.is_compatibles----rcdS)NFr*rTs rrVz0UploadFilenameInputManager.stores_body_in_memorysurc|j|j|jjjdSr)metarZrH get_file_size call_argsr0rXs rrZz0UploadFilenameInputManager.provide_transfer_sizesC22 L & &';'E'M N N     rc,|jj|jkSr)rysizemultipart_thresholdr\s rr^z4UploadFilenameInputManager.requires_multipart_uploads#(F,FFFrc||\}}||}||}||}|jj}|j|||||S)Nr0 chunk_sizefull_file_sizerclose_callbacks)&_get_put_object_fileobj_with_full_sizergrjrpryr}rH#open_file_chunk_reader_from_fileobj)rrYr0 full_sizerrr}s rr`z.UploadFilenameInputManager.get_put_object_bodys!HH   $$W--00AA 33I>>#(|??$+ @   rc#K|jj}|||}td|dzD]}||}||}||dz z}||jjj|||\} } | | } |j | || ||} || fVdS)N) start_byte part_sizerr) ryr}_get_num_partsrangerjrp'_get_upload_part_fileobj_with_full_sizer{r0rgrHr) rrYrbr num_parts part_numberrrrr0rread_file_chunks rrcz3UploadFilenameInputManager.yield_upload_part_bodiess(-2''CC  IM22 / /K44_EEI"77 BBO"kAo6J"&!M!M$.6%#- "N"" GY((11G#lNN$(# / OO. . . . .5 / /rc>t|||jj}|S)N) open_function)r rHopen)rr0rs r_get_deferred_open_filez2UploadFilenameInputManager._get_deferred_open_file1s)" Zt|/@   rcl|jjj}|jj}||d|fS)Nr)ryr{r0r}rrrYr0r}s rrzAUploadFilenameInputManager._get_put_object_fileobj_with_full_size7s6!&08#(++GQ77==rc R|d}|d}||||fS)Nrr)r)rr0rBrrs rrzBUploadFilenameInputManager._get_upload_part_fileobj_with_full_size<s2L) +, ++GZ@@)KKrcxttj|jjt |z Sr)intmathceilryr}float)rrYrs rrz)UploadFilenameInputManager._get_num_partsAs-49_16y9I9IIJJKKKrN)r'r(r)rDrqrRrVrZr^r`rcrrrrr*rrrsrss&&..[.   GGG   0///> >>> LLL LLLLLrrsc@eZdZdZedZdZdZdZdZ dS)UploadSeekableInputManagerz&Upload utility for an open file objectc>t|ot|SrrrOs rrRz(UploadSeekableInputManager.is_compatibleHs &&B8M+B+BBrc|dkrdSdS)N put_objectFTr*rTs rrVz0UploadSeekableInputManager.stores_body_in_memoryLs \ ) )54rc|jjj}|}|dd|}|||j||z dS)Nr)ryr{r0r;r7rZ)rrYr0start_position end_positions rrZz0UploadSeekableInputManager.provide_transfer_sizeRs!&08! Q||~~  ^$$$22 > )     rc t||d}t|t|fS)Nr)r4rlen)rr0rBdatas rrzBUploadSeekableInputManager._get_upload_part_fileobj_with_full_size_s3||F;/00 t}}c$ii''rcn|jjj}||jjz}||fSr)ryr{r0r;r}rs rrzAUploadSeekableInputManager._get_put_object_fileobj_with_full_sizens4!&08||~~ 4 99}rN) r'r(r)rDrqrRrVrZrrr*rrrrEsr00CC[C     ( ( (rrcfeZdZdZd fd ZedZdZdZdZ dZ d Z dd Z d Z xZS)UploadNonSeekableInputManagerz7Upload utility for a file-like object that cannot seek.Nc\t|||d|_dS)Nr)superr _initial_data)rrJr1rK __class__s rrz&UploadNonSeekableInputManager.__init__ys/ !57HIII rc t|Sr)rrOs rrRz+UploadNonSeekableInputManager.is_compatible}s &&&rcdS)NTr*rTs rrVz3UploadNonSeekableInputManager.stores_body_in_memorystrcdSrr*rXs rrZz3UploadNonSeekableInputManager.provide_transfer_sizes  rc|jj|jj|jkS|jjj}|j}|||d|_t|j|krdSdS)NFT)ryr}r~r{r0_readrr)rrYr]r0rs rr^z7UploadNonSeekableInputManager.requires_multipart_uploadsr   $ 0"',0JJ J "&08. !ZZEBB t! " "Y . .54rc||}||}|jjj}||j|z||}d|_|Sr)rjrpryr{r0 _wrap_datarr4)rrYrrr0bodys rr`z1UploadNonSeekableInputManager.get_put_object_bodyso00AA 33I>>!&08   /O   " rc#K|jjj}d} ||}||}|dz }|||}|sdS||||}d}||fVi)NrTr)ryr{r0rjrprr) rrYrb file_objectrrr part_content part_objects rrcz6UploadNonSeekableInputManager.yield_upload_part_bodiess%*4<   +44_EEI"77 BBO 1 K::k9==L //iK  L{* * * * +rTcXt|jdkr||S|t|jkr'|jd|}|r|j|d|_|S|t|jz }|j||z}|rd|_|S)a= Reads a specific amount of data from a stream and returns it. If there is any data in initial_data, that will be popped out first. :type fileobj: A file-like object that implements read :param fileobj: The stream to read from. :type amount: int :param amount: The number of bytes to read from the stream. :type truncate: bool :param truncate: Whether or not to truncate initial_data after reading from it. :return: Generator which generates part bodies from the initial data. rNr)rrr4)rr0r5truncateramount_to_reads rrz#UploadNonSeekableInputManager._reads$ t! " "a ' '<<'' ' S+,, , ,%gvg.D A%)%7%@"K  #d&8"9"99!GLL$@$@@  %!$D  rc|t|}|j|t |t |||S)a Wraps data with the interrupt reader and the file chunk reader. :type data: bytes :param data: The data to wrap. :type callbacks: list :param callbacks: The callbacks associated with the transfer future. :type close_callbacks: list :param close_callbacks: The callbacks to be called when closing the wrapper for the data. :return: Fully wrapped data. r)rgrrHrr)rrrrr0s rrz(UploadNonSeekableInputManager._wrap_datasX $$WT]]33|??4yyt99+ @   rr)T)r'r(r)rDrrqrRrVrZr^r`rcrr __classcell__)rs@rrrvsAA!!!!!!''[' "   +++(((((T       rrcPeZdZdZgdZgdZdZ d dZdZdZ d Z d Z d Z dS) UploadSubmissionTaskz.Task for submitting tasks to execute an upload)ChecksumAlgorithmSSECustomerKeySSECustomerAlgorithmSSECustomerKeyMD5 RequestPayerExpectedBucketOwner)rrrrrctttg}|jjj}|D]}||r|cStd|t|)aoRetrieves a class for managing input for an upload based on file type :type transfer_future: s3transfer.futures.TransferFuture :param transfer_future: The transfer future for the request :rtype: class of UploadInputManager :returns: The appropriate class to use for managing a specific type of input for uploads. z&Input {} of type: {} is not supported.) rsrrryr{r0rR RuntimeErrorformattype)rrYupload_manager_resolver_chainr0upload_manager_clss r_get_upload_input_manager_clsz2UploadSubmissionTask._get_upload_input_manager_clss ' & )) % "&08"? * * !//88 *)))) * 4 ; ;g     rNc*||||j|}|jj|||||s|||||||dS|||||||dS)a :param client: The client associated with the transfer manager :type config: s3transfer.manager.TransferConfig :param config: The transfer config associated with the transfer manager :type osutil: s3transfer.utils.OSUtil :param osutil: The os utility associated to the transfer manager :type request_executor: s3transfer.futures.BoundedExecutor :param request_executor: The request executor associated with the transfer manager :type transfer_future: s3transfer.futures.TransferFuture :param transfer_future: The transfer future associated with the transfer request that tasks are being submitted for N)rr/ryr}rZr^_submit_upload_request_submit_multipart_request)rclientr]rJrequest_executorrYrKupload_input_managers r_submitzUploadSubmissionTask._submit.s6 tAA   $,.? A A   $ , 6 6 G G G$== V     ' ' $        * * $      rc |jj}||d}|j|t |j||||j|j|j dd|dS)Nr)rr0bucketkey extra_argsT)r1 main_kwargsis_finaltag) ryr{_get_upload_task_tagr/submit PutObjectTaskr`rrr) rrr]rJrrYrr{put_object_tags rrz+UploadSubmissionTask._submit_upload_requestgs$(2 22 ,   "))  %)%?$3GG'  (.$="+"6    *     rc|jj}|j|t |j||j|j|jd}g} ||j} | |d} |jj } t} | |j | }|||}|D]]\}}| |j|t!|j|||j|j|| dd|i| ^||j}|j|t%|j||j|j|d|| dd dS) N)rrrr)r1r upload_part)rr0rrrr upload_id)r1rpending_main_kwargsr)rpartsT)r1rrr)ryr{r/rr rrr_extra_upload_part_argsrr}r adjust_chunksizemultipart_chunksizercappendUploadPartTask_extra_complete_multipart_argsr)rrr]rJrrYrr{create_multipart_future part_futuresextra_part_argsupload_part_tagr}adjusterrb part_iteratorrr0complete_multipart_extra_argss rrz.UploadSubmissionTask._submit_multipart_requests$(2 #'"<"C"C  %%)%?$'.$="+"6     # #  66y7KLL33 -  #($&&--f.H$OO ,EE Y  %2   K   *11$"-1-G&,'.&/&6#,=+6*9 %%()@-   (!2    *)-(K(K  ) ) % "))  '%)%?$'.$="? "9)%%        rc,t||jSr)rUPLOAD_PART_ARGSrrs rrz,UploadSubmissionTask._extra_upload_part_argss!T-BCCCrc,t||jSr)rCOMPLETE_MULTIPART_ARGSrs rrz3UploadSubmissionTask._extra_complete_multipart_argss T-IJJJrcBd}||rt}|Sr)rVr)rrrUrs rrz)UploadSubmissionTask._get_upload_task_tags'  5 5n E E '&C rr) r'r(r)rDrrrrrrrrrr*rrrrs88   B7777r! ! ! FT T T lDDD KKKrrceZdZdZdZdS)rz Task to do a nonmultipart uploadc^|5}|jd|||d|ddddS#1swxYwYdS)aP :param client: The client to use when calling PutObject :param fileobj: The file to upload. :param bucket: The name of the bucket to upload to :param key: The name of the key to upload to :param extra_args: A dictionary of any extra arguments that may be used in the upload. )BucketKeyBodyNr*)r)rrr0rrrrs r_mainzPutObjectTask._mains O F  NV4 N N: N N N O O O O O O O O O O O O O O O O O Os "&&Nr'r(r)rDrr*rrrrs.** O O O O OrrceZdZdZdZdS)rz+Task to upload a part in a multipart uploadc |5}|jd|||||d|} dddn #1swxYwY| d} | |d} d|vr.|d} d| } | | vr | | | | <| S)a :param client: The client to use when calling PutObject :param fileobj: The file to upload. :param bucket: The name of the bucket to upload to :param key: The name of the key to upload to :param upload_id: The id of the upload :param part_number: The number representing the part of the multipart upload :param extra_args: A dictionary of any extra arguments that may be used in the upload. :rtype: dict :returns: A dictionary representing a part:: {'Etag': etag_value, 'PartNumber': part_number} This value can be appended to a list to be used to complete the multipart upload. )rrUploadId PartNumberrNETag)rrrChecksumr*)rupper)rrr0rrrrrrresponseetag part_metadataalgorithm_namechecksum_members rrzUploadPartTask._mains, )v)"&   H               !%[AA * , ,'(;<BBDDN999O(**19/1J o.s #''Nrr*rrrrs)55&&&&&rr)riors3transfer.compatrrs3transfer.futuresrs3transfer.tasksrr r r s3transfer.utilsr r rrrr,rFrsrrrrrr*rrrs 00000000333333 B))))))))XxNxNxNxNxNxNxNxNvZLZLZLZLZL!3ZLZLZLz.....!;...bG G G G G $6G G G Tlllll>lll^ O O O O OD O O O )))))T)))))r