Ë
    Í[;jgæ  ã                  ól  — d Z ddlmZ g d¢ZddlZddlZddlZddlZddlZddl	m
Z
 ddlZddlZ	 ddlmZmZ ddlmZ ddlmZ dd	lmZ ddlmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z) e
r<ddl*Z*ddl+Z+ddl,m-Z-m.Z.m/Z/m0Z0m1Z1 ddl	m2Z2m3Z3 ddl4m5Z5m6Z6 ddl7m8Z8m9Z9 ddlm:Z: ddlm;Z;m<Z<  G d„ de«      Z= G d„ de=«      Z> G d„ de=«      Z?ddddœ	 	 	 	 	 	 	 	 	 	 	 d$d„Z@	 	 	 	 	 	 	 	 d%d„ZAd&d„ZBd'd„ZCd(d „ZD	 	 	 	 	 	 d)d!„ZEd*d"„ZF	 	 	 	 	 	 	 	 d+d#„ZGy# e$ rZd
ej0                  › d�Z ee«      e‚dZ[ww xY w),z%Zarr 3 TIFF and file sequence stores.é    )Úannotations)ÚZarrFileSequenceStoreÚ	ZarrStoreÚZarrTiffStoreN)ÚTYPE_CHECKING)ÚByteRequestÚStore)ÚNDBuffer)ÚRegularChunkGrid)ÚBasicIndexerzzarr z < 3 is not supportedé   )Ú	CHUNKMODEÚCOMPRESSIONÚ	FileCacheÚFileSequenceÚNullContextÚ	TiffFrameÚTiffPageÚTiffPageSeriesÚTiledSequenceÚcreate_outputÚenumargÚimreadÚjpeg_decode_colorspaceÚproduct)ÚAsyncIteratorÚCallableÚIterableÚIteratorÚSequence)ÚAnyÚTextIO)Ú	DTypeLikeÚNDArray)ÚBufferÚBufferPrototype)ÚBasicSelection)Ú	ByteOrderÚ
OutputTypec                  ó
  ‡ — e Zd ZU dZded<   ded<   ded<   ded	<   d
d
ddœ	 	 	 	 	 	 	 dˆ fd„Zdd„Zdd„Z	 	 	 	 	 	 dd„Ze	d d„«       Z
d!d„Zd!d„Ze	d d„«       Zd"d„Ze	d d„«       Zd#d„Zd$d„Zd$d„Ze	d d„«       Zd%d„Zˆ xZS )&r   a÷  Zarr 3 store base class.

    Parameters:
        fillvalue:
            Value to use for missing chunks of Zarr store.
            The default is 0.
        chunkmode:
            Specifies how to chunk data.
        read_only:
            Passed to :py:class:`zarr.abc.store.Store`.

    References:
        1. https://zarr.readthedocs.io/en/stable/api/zarr/abc/store/
        2. https://zarr.readthedocs.io/en/stable/spec/v2.html
        3. https://forum.image.sc/t/multiscale-arrays-v0-1/37930

    ÚboolÚ
_read_onlyúdict[str, Any]Ú_storeÚfloatÚ
_fillvalueÚintÚ
_chunkmodeNT©Ú	fillvalueÚ	chunkmodeÚ	read_onlyc              óš   •— t         ‰| �  |¬«       i | _        |€dn|| _        |€t	        d«      | _        y t        t        |«      | _        y )N)r6   r   )ÚsuperÚ__init__r.   r0   r   r2   r   )Úselfr4   r5   r6   Ú	__class__s       €úVG:\00. PROJECTS\API\Inventory\templateJSON\kerjaOCR\Lib\site-packages\tifffile/zarr.pyr9   zZarrStore.__init__u   sI   ø€ ô 	‰Ñ 9ÐÔ-àˆŒØ(Ð0™!°iˆŒØÐÜ'¨›lˆD�Oä%¤i°Ó;ˆD�Oó    c                óˆ   — t        t        | j                  j                  «       «      | j                  | j
                  f«      S ©N)ÚhashÚtupler.   Úitemsr0   r2   ©r:   s    r<   Ú__hash__zZarrStore.__hash__†   s3   € ÜÜ�4—;‘;×$Ñ$Ó&Ó'¨¯©¸$¿/¹/ÐJó
ð 	
r=   c                óÎ   — t        |t        | «      «      xrO | j                  |j                  k(  xr4 | j                  |j                  k(  xr | j                  |j                  k(  S )z!Return whether objects are equal.)Ú
isinstanceÚtyper.   r0   r2   )r:   Úothers     r<   Ú__eq__zZarrStore.__eq__‹   s\   € ô �uœd 4›jÓ)ò 4Ø—‘˜uŸ|™|Ñ+ò4à—‘ 5×#3Ñ#3Ñ3ò4ð —‘ 5×#3Ñ#3Ñ3ð		
r=   c           	   ƒ  óv   K  — |D ��cg c]   \  }}| j                  |||«      ƒ d{  –—† ‘Œ" c}}S 7 Œ
c c}}w ­w)z5Return possibly partial values from given key_ranges.N)Úget)r:   Ú	prototypeÚ
key_rangesÚkeyÚ
byte_ranges        r<   Úget_partial_valueszZarrStore.get_partial_values”   sG   è ø€ ñ $.ô
á#-‘��Zð —(‘(˜3 	¨:Ó6×6Ñ6Ø#-ò
ð 	
Ø6úó
ùs   ‚9ˆ3¦1§3­9±3³9c                ó   — | j                    S )zStore supports writes.)r,   rC   s    r<   Úsupports_writeszZarrStore.supports_writes    s   € ð —?‘?Ð"Ð"r=   c               ó   — t         ‚)úStore (key, value) pair.)ÚNotImplementedError©r:   rN   Úvalues      r<   Ú_setzZarrStore._set¥   s   € ä!Ð!r=   c              ƒ  ó0   K  — | j                  ||«       y­w)rT   N)rX   rV   s      r<   ÚsetzZarrStore.set©   s   è ø€ à�	‰	�#�uÕùs   ‚c                 ó   — y)zStore supports deletes.F© rC   s    r<   Úsupports_deleteszZarrStore.supports_deletes­   s   € ð r=   c              ƒ  ó$   K  — d}t        |«      ‚­w)zRemove key from store.z"ZarrStore does not support deletes)ÚPermissionError)r:   rN   Úmsgs      r<   ÚdeletezZarrStore.delete²   s   è ø€ à2ˆÜ˜cÓ"Ð"ùs   ‚c                 ó   — y)zStore supports listing.Tr\   rC   s    r<   Úsupports_listingzZarrStore.supports_listing·   s   € ð r=   c               ó8   K  — | j                   D ]  }|­–— Œ	 y­w)zReturn all keys in store.N)r.   )r:   rN   s     r<   ÚlistzZarrStore.list¼   s   è ø€ à—;”;ˆCØŒIñ ùó   ‚c               ón   K  — t        | j                  «      D ]  }|j                  |«      sŒ|­–— Œ y­w)zxReturn all keys in store that begin with prefix.

        Keys are returned relative to the root of the store.

        N)re   r.   Ú
startswith)r:   ÚprefixrN   s      r<   Úlist_prefixzZarrStore.list_prefixÁ   s,   è ø€ ô ˜Ÿ™Ö$ˆCØ�~‰~˜fÕ%Ø”	ñ %ùs   ‚*5­5c               óh  K  — |j                  d«      }|dk(  r,| j                  D �ch c]  }|j                  d«      d   ’Œ }}nV| j                  D �ch c]A  }|j                  |dz   «      r+||k7  r&|j	                  |dz   «      j                  d«      d   ’ŒC }}|D ]  }|­–— Œ	 yc c}w c c}w ­w)z�Return all keys and prefixes with prefix.

        Keys and prefixes do not contain the character "/" after the given
        prefix.

        Ú/Ú r   N)Úrstripr.   Úsplitrh   Úremoveprefix)r:   ri   ÚkÚkeys_uniquerN   s        r<   Úlist_dirzZarrStore.list_dirË   s¸   è ø€ ð —‘˜sÓ#ˆØ�RŠ<Ø48·K²KÓ@±K¨q˜1Ÿ7™7 3›<¨›?°KˆKÑ@ð  Ÿ;š;óá&�CØ—>‘> &¨3¡,Ô/°C¸6²Mð × Ñ  ¨#¡Ó.×4Ñ4°SÓ9¸!Ó<Ø&ð ð ó
 ˆCØŒIñ ùò Aùòùs   ‚%B2§B(ÁB2ÁAB-ÂB2c                ó>   — d| j                   j                  dd«      v S )z.Return whether ZarrStore contains multiscales.s   multiscalesú.zattrsr=   )r.   rK   rC   s    r<   Úis_multiscaleszZarrStore.is_multiscalesÞ   s   € ð  §¡§¡°¸CÓ!@Ð@Ð@r=   c                ó0   — | j                   j                  › S r?   )r;   Ú__name__rC   s    r<   Ú__repr__zZarrStore.__repr__ã   s   € Ø—.‘.×)Ñ)Ð*Ð+r=   )r4   úfloat | Noner5   úCHUNKMODE | int | str | Noner6   r+   ÚreturnÚNone)r|   r1   )rH   Úobjectr|   r+   )rL   r&   rM   z(Iterable[tuple[str, ByteRequest | None]]r|   zlist[Buffer | None])r|   r+   ©rN   ÚstrrW   r%   r|   r}   )rN   r€   r|   r}   )r|   úAsyncIterator[str])ri   r€   r|   r�   )r|   r€   )rx   Ú
__module__Ú__qualname__Ú__doc__Ú__annotations__r9   rD   rI   rP   ÚpropertyrR   rX   rZ   r]   ra   rc   re   rj   rs   rv   ry   Ú__classcell__©r;   s   @r<   r   r   ]   sù   ø… ñð$ ÓØÓØÓØƒOð #'Ø26Øñ<ð  ð	<ð
 0ð<ð ð<ð 
õ<ó"
ó

ð

à"ð

ð =ð

ð 
ó	

ð ò#ó ð#ó"óð òó ðó#ð
 òó ðóó
óð& òAó ðA÷,r=   r   c                  óf  ‡ — e Zd ZU dZded<   ded<   ded<   ded	<   d
ed<   ded<   ded<   ddddddddddddœ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dˆ fd„Z	 	 	 	 	 	 	 	 	 	 dd„Zd ˆ fd„Zddddddddddœ		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d!d„Z	 d"	 	 	 	 	 	 	 d#d„Z	d$d„Z
d%d„Zd&d„Zd'd„Zˆ xZS )(r   a3  Zarr 3 store interface to image array in TiffPage or TiffPageSeries.

    ZarrTiffStore is using a TiffFile instance for reading and decoding chunks.
    Therefore, ZarrTiffStore instances cannot be pickled.

    For writing, image data must be stored in uncompressed, unpredicted,
    and unpacked form. Sparse strips and tiles are not written.

    Parameters:
        arg:
            TIFF page or series to wrap as Zarr store.
        level:
            Pyramidal level to wrap. The default is 0.
        chunkmode:
            Use strips or tiles (0) or whole page data (2) as chunks.
            The default is 0.
        fillvalue:
            Value to use for missing chunks. The default is 0.
        zattrs:
            Additional attributes to store in `.zattrs`.
        multiscales:
            Create a multiscales-compatible Zarr group store.
            By default, create a Zarr array store for pages and non-pyramidal
            series.
        lock:
            Reentrant lock to synchronize seeks and reads from file.
            By default, the lock of the parent's file handle is used.
        squeeze:
            Remove length-1 dimensions from shape of TiffPageSeries.
        maxworkers:
            If `chunkmode=0`, asynchronously run chunk decode function
            in separate thread if greater than 1.
            If `chunkmode=2`, maximum number of threads to concurrently decode
            strips or tiles.
            If *None* or *0*, use up to :py:attr:`_TIFF.MAXWORKERS` or
            asyncio assigned threads.
        buffersize:
            Approximate number of bytes to read from file in one pass
            if `chunkmode=2`. The default is :py:attr:`_TIFF.BUFFERSIZE`.
        read_only:
            Passed to :py:class:`zarr.abc.store.Store`.
        _openfiles:
            Internal API.

    zlist[TiffPageSeries]Ú_datar   Ú
_filecachez-Callable[[NDArray[Any]], NDArray[Any]] | NoneÚ
_transformr1   Ú_maxworkersú
int | NoneÚ_buffersizeúbool | NoneÚ_squeezer+   Ú_multiscalesN)Úlevelr5   r4   ÚzattrsÚmultiscalesÚlockÚsqueezeÚ
maxworkersÚ
buffersizer6   Ú
_openfilesc              ó  •— |€t        d«      }nt        t         |«      }|dvr|›d�}t        |«      ‚|€d n
t        |«      | _        |
| _        t        |t        «      rL|j                  | _	        |j                  | _        |du rd}|�| j                  |   g| _	        |j                  }nt        |g«      g| _	        d | _        d}|	s/| j                  d   j                  j                  }	|	dk  r|dk(  rd}	|	| _        | j                  d   j                  j                   j"                  j$                  }|€|j'                  «        xs |dk7  }t(        ‰| �U  |||¬«       |€|j-                  d	«       |j.                  }t1        ||¬
«      | _        |€i n
t5        |«      }|d	u s|�€ot7        | j                  «      dkD  �rVd	| _        d|v r|j;                  d«      }n't=        | j                  d   j?                  |«      «      }tA        ddi«      | jB                  d<   tA        dd|tE        t7        | j                  «      «      D �cg c]  }dtG        |«      i‘Œ c}i dœgi|¥«      | jB                  d<   | j                  d   jI                  |«      }tK        | j                  «      D ]j  \  }}| jM                  ||› d�||«      \  }}tA        dtO        |||d	¬«      D ���cg c]  \  }}}||k7  r|› |› �n|‘Œ c}}}i«      | jB                  |› d�<   Œl y d| _        | j                  d   }d|vrt=        |j?                  |«      «      |d<   tA        |«      | jB                  d<   | jM                  |d||«       y c c}w c c}}}w )Nr   >   r   é   z not implementedFÚUnnamedé   r   r3   T)Úsizer–   Ú_ARRAY_DIMENSIONSÚzarr_formatrœ   ú.zgroupr•   z0.1Úpath)ÚversionÚnameÚdatasetsÚmetadataru   z/.zarray©Ústrictz/.zattrsú.zarray)(r   r   rU   r+   r‘   r�   rF   r   ÚlevelsrŠ   Ú	transformrŒ   r¥   Úkeyframer˜   r�   ÚparentÚrootÚ
filehandleÚwritabler8   r9   Úset_lockr–   r   r‹   ÚdictÚlenr’   Úpopre   Úget_axesÚ_json_dumpsr.   Úranger€   Ú	get_shapeÚ	enumerateÚ_init_zarrayÚzip)r:   Úargr“   r5   r4   r”   r•   r–   r—   r˜   r™   r6   rš   r`   r¥   ÚfhÚarray_dimensionsÚiÚshape0ÚilevelÚseriesÚshapeÚaxÚjr;   s                           €r<   r9   zZarrTiffStore.__init__)  sŸ  ø€ ð" ÐÜ! !›‰Iä¤	¨9Ó5ˆIà˜FÑ"Ø�MÐ!1Ð2ˆCÜ% cÓ*Ð*à ' ™´T¸'³]ˆŒØ%ˆÔä�cœ>Ô*ØŸ™ˆDŒJØ!Ÿm™mˆDŒOØ˜eÑ#Ø�ØÐ Ø"Ÿj™j¨Ñ/Ð0�”
Ø—8‘8‰Dä(¨#¨Ó/Ð0ˆDŒJØ"ˆDŒOØˆDáØŸ™ A™×/Ñ/×:Ñ:ˆJØ˜AŠ~ )¨q¢.Ø�
Ø%ˆÔà�Z‰Z˜‰]×#Ñ#×*Ñ*×/Ñ/×:Ñ:ˆàÐØŸK™K›MÐ)Ò;¨Y¸!©^ˆIä‰ÑØ¨9À	ð 	ô 	
ð ˆ<Ø�K‰K˜ÔØ—7‘7ˆDÜ#¨¸$Ô?ˆŒà�~‘¬4°«<ˆð ˜$ÑØÑ¤C¨¯
©
£O°aÓ$7ð !%ˆDÔØ" fÑ,Ø#)§:¡:Ð.AÓ#BÑ ä#'¨¯
©
°1©×(>Ñ(>¸wÓ(GÓ#HÐ Ü%0°-ÀÐ1CÓ%DˆD�K‰K˜	Ñ"Ü%0ð "à',Ø$(ô */¬s°4·:±:«Ô)?ó)á)? Að "(¬¨Q«Ò 0Ø)?ñ)ð )+ñ
ð$ðð ðó&ˆD�K‰K˜	Ñ"ð& —Z‘Z ‘]×,Ñ,¨WÓ5ˆFÜ"+¨D¯J©JÖ"7‘�˜Ø#'×#4Ñ#4Ø˜v˜h hÐ/°¸)ó$Ñ �	˜5ô 4?à+ä,/Ø 0°%¸Èõ-õ.ñ-¡  A qð 12°Q² ˜t F 8™_¸BÑ>ð-ó.ðó	4�—‘˜v˜h hÐ/Ò0ñ	 #8ð !&ˆDÔØ—Z‘Z ‘]ˆFØ"¨&Ñ0Ü.2°6·?±?À7Ó3KÓ.L�Ð*Ñ+Ü%0°Ó%8ˆD�K‰K˜	Ñ"Ø×Ñ˜f i°¸)ÕDùòC)ùô&.s   ÉM;Ë"N c               ó²  — |j                   }|j                   |j                  |«      }|j                  }|€|j                  }|| _        | j                  r|j                  n|j                  }t        d|t        |||j                  «      t        |«      dt        ||«      dddœ«      | j                  |<   | j                  st!        |«       | _        ||fS )z=Store .zarray for series; return updated fillvalue and shape.Nrœ   ÚC©r¡   rÄ   ÚchunksÚdtypeÚ
compressorÚ
fill_valueÚorderÚfilters)r­   Údecoder¹   rË   Únodatar0   r2   rÄ   rÊ   r·   Ú_chunksÚshapedÚ
_dtype_strÚ_json_valuer.   r,   Ú_is_writable)	r:   rÃ   rN   r—   r4   r­   rÄ   rË   rÊ   s	            r<   r»   zZarrTiffStore._init_zarrayŸ  sÄ   € ð —?‘?ˆØ�ŠØ× Ñ  Ó)ˆØ—‘ˆØÐØ Ÿ™ˆIØ'ˆDŒOØ#'§?¢?�—’¸¿¹ˆÜ&à ØÜ! &¨%°·±ÓAÜ# EÓ*Ø"Ü)¨)°UÓ;ØØñ	ó
ˆ�‰�CÑð �ŠÜ".¨xÓ"8Ð8ˆDŒOØ˜%ÐÐr=   c                óV   •— t         ‰| �  «        | j                  j                  «        y)zClose store.N)r8   Úcloser‹   Úclear)r:   r;   s    €r<   rØ   zZarrTiffStore.closeÀ  s   ø€ ä‰‰ŒØ�‰×ÑÕr=   FT)	Ú	groupnameÚtemplatenameÚcompressorsr¤   Ú_shapeÚ_axesÚ_indexÚ_appendÚ_closec      	        óØ  — i dd“dd“dd“dd“dd“d	d
“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“ddddddd œ¥|€i n|¥}| j                   D �]°  }d!}|j                  }|j                  d"v r%|j                  j                  rd#||j                  <   |j                  |vrt        |j                  ›d$�|z   «      ‚|j                  dk7  rt        |j                  ›d$�|z   «      ‚|j                  d%vrt        |j                  ›d$�|z   «      ‚|j                  d&vr<|j                  d'vr.||j                     d#k7  rt        d(|j                  › d$�|z   «      ‚| j                  s3|j                  s'|j                  |j                  z  rt        d)|z   «      ‚| j                  r'|j                  st        | j                  ›d$�|z   «      ‚|j                  €�Œ‹t        |j                   «      dkD  s�Œ¥t        d*|z   «      ‚ |€d+}n|r|d,   d-k7  r|d-z  }|j#                  d.d-«      }|€d+}n|r|d,   d-k7  r|d-z  }t$        j&                  d/k(  rd0nd1}| j                   d2   j                  j                  j&                  |k7  sS| j                   d2   j                  j(                  �0| j                   d2   j                  j(                  j*                  dk(  rd}|€g n
t-        |«      }|€g n
t-        |«      }t        |«      t        |«      k7  rd3}t        |«      ‚|	€d+}nCt        |«      t        |	«      k7  rd4}t        |«      ‚|	rd5j/                  d6„ |	D «       «      }|d5z  }i }|dk(  �r|
rd7}t        |«      ‚|€d8}d|d9<   i |d:<   g |d;<   i }| j                   d2   j0                  r~d2}| j                   d2   j                   D ]_  }|�|j                  €Œ|j                  j                  j2                  j4                  }||v rŒA|› |› �}d<|› d=�||<   ||z   |d:   |<   |dz  }Œa nN| j                   d2   j                  j                  j2                  j4                  }|› }d<|› d=�||<   ||z   |d:   |<   i x|d><   }n|}|
�s^|rt7        d?d@i«      j9                  «       |dA<   | j:                  j=                  «       D �]   }|\  }}dB|v r3|r1t?        j@                  |«      }dC|v r||dC   z   |dC<   t7        |«      }�nËdD|v �rÆt?        j@                  |«      }d-|v rtC        |jE                  d-«      d2   «      nd2}| j                   |   j                  }|r#||dE   z   |dE<   dgt        |«      z  |dF   z   |dF<   ||j                     }|dk(  r¸|j                  }|€d}n#tG        jH                  |«      j9                  «       }|jJ                  }|€d} n#tG        jH                  |«      j9                  «       } tM        |jN                  |jP                  |jR                  |jT                  «      \  }!}"||| |j                  |!|"dGœ|dH<   ní|dk(  r|jV                  dIk(  r	|dJdKœ|dH<   nÐ|d#k(  rÂd@x}#}$|j                  dLk(  rptC        |jX                  j[                  dMd«      «      }%tC        |jX                  j[                  dNd@«      «      }#tC        |jX                  j[                  dOd@«      «      }$n|j                  dPk(  rd}%nd}%||j\                  |%|#|$|j                  j^                  dQœ|dH<   n	|�dR|i|dH<   |�||dS   dd z   |dS<   |j`                  dkD  rm|j`                  dTv rdU}&ndV}&|j`                  dWk  rd}'n|j`                  dXv rd@}'ndI}'|jP                  dk(  r|jV                  dkD  rdY}(nd,}(|&|(|'|dF   |dS   dZœg|d[<   t7        |«      }|j9                  «       |||z   <   �Œ# tc        jd                  «       5 })tg        |d\«      r|}*n|)ji                  tk        |d]d^¬_«      «      }*|dk(  r?|*jm                  t?        jn                  |d¬`«      jq                  dad«      d2   daz   «       db}+n0|
rdc}+n+|*jm                  t?        jn                  |d¬`«      ddY «       dc}+| j:                  j=                  «       D ]ú  }|\  }}dD|v sŒt?        j@                  |«      }|dE   },|dF   }-d-|v r|jE                  d-«      d2   d-z   nd+}.ts        |,|-«      D ]£  }/|.|/z   }| ju                  |«      \  }}}0}1}2|r)| j                  r|1€|jv                  d2   }1|jx                  }2|1sŒM|2sŒP|j                  j2                  j4                  }|dk(  r|   }n|› |› �}|*jm                  dd|+› de|› |› df|› dg|1› dh|2› di�«       Œ¥ Œü |dk(  r|*jm                  dj«       n|r|*jm                  dk«       ddd«       y# 1 sw Y   yxY w)laž  Write fsspec ReferenceFileSystem as JSON to file.

        Parameters:
            jsonfile:
                Name or open file handle of output JSON file.
            url:
                Remote location of TIFF file(s) without file name(s).
            groupname:
                Zarr group name.
            templatename:
                Version 1 URL template name. The default is 'u'.
            compressors:
                Mapping of :py:class:`COMPRESSION` codes to Numcodecs codec
                names.
            version:
                Version of fsspec file to write. The default is 0.
            _shape:
                Shape of file sequence (experimental).
            _axes:
                Axes of file sequence (experimental).
            _index:
                Index of file in sequence (experimental).
            _append:
                If *True*, only write index keys and values (experimental).
            _close:
                If *True*, no more appends (experimental).

        Raises:
            ValueError:
                ZarrTiffStore cannot be represented as ReferenceFileSystem
                due to features that are not supported by Zarr, Numcodecs,
                or Imagecodecs:

                - compressors, such as CCITT
                - filters, such as bitorder reversal, packed integers
                - dtypes, such as float24, complex integers
                - JPEGTables in multi-page series
                - incomplete chunks, such as `imagelength % rowsperstrip != 0`

                Files containing incomplete tiles may fail at runtime.

        Notes:
            Parameters `_shape`,  `_axes`, `_index`, `_append`, and `_close`
            are an experimental API for joining the ReferenceFileSystems of
            multiple files of a TiffSequence.

        References:
            - `fsspec ReferenceFileSystem format
              <https://github.com/fsspec/kerchunk>`_

        r   Né   Úzlibi²€  imˆ  Úlzmai]Ã  é   Úimagecodecs_lzwé   Úimagecodecs_jpegiRX  Úimagecodecs_jpegxri€  Úimagecodecs_packbitsië€  Úimagecodecs_jpeg2kiì€  ií€  éï€  i˜‡  iGˆ  Úimagecodecs_lercéLˆ  iuˆ  Úimagecodecs_pngÚimagecodecs_jetrawÚimagecodecs_zstdÚimagecodecs_webpÚimagecodecs_jpegxl)ivˆ  iü»  iPÃ  iQÃ  iRÃ  iBÍ  z0 not supported by the fsspec ReferenceFileSystem>   éèý  ééý  éêý  Úimagecodecs_eerz is¾   r   rœ   rž   é   ¾   rã   é   é    é@   é€   >   rè   rï   rí   zBitsPerSample zincomplete chunks arez"JPEGTables in multi-page files arerm   éÿÿÿÿrl   Ú\ÚbigÚ<Ú>r   zlen(_shape) != len(_axes)zlen(_shape) != len(_index)Ú.c              3  ó2   K  — | ]  }t        |«      –— Œ y ­wr?   ©r€   ©Ú.0rÀ   s     r<   Ú	<genexpr>z-ZarrTiffStore.write_fsspec.<locals>.<genexpr>s  s   è ø€ Ð4©V¨œS ŸV©Vùó   ‚zcannot append to version 1Úur¤   Ú	templatesÚgenú{{ú}}Úrefsr¡   rœ   r¢   ru   r    rª   rÄ   rÊ   )ÚidÚtablesÚheaderÚbitspersampleÚcolorspace_jpegÚcolorspace_datarÌ   é   T)r  Úhasalphar÷   iïý  iðý  iñý  rö   )r  rÄ   ÚskipbitsÚhorzbitsÚvertbitsÚsuperresr  rË   >   éMˆ  rœ   rï   Úimagecodecs_deltaÚimagecodecs_floatpredrž   >   éNˆ  rï   éþÿÿÿ)r  ÚaxisÚdistrÄ   rË   rÏ   ÚwriteÚwúutf-8©Úencoding©Úindentú}"ú  Ú ú,
Ú"ú": ["z", z, Ú]ú
 }
}ú
})=rŠ   r­   Úcompressionr®   Úis_eerÚ
ValueErrorÚ	fillorderÚsampleformatr  r2   Úis_tiledÚimagelengthÚrowsperstripÚis_finalÚ
jpegtablesr´   ÚpagesÚreplaceÚsysÚ	byteorderrË   Úitemsizere   ÚjoinÚis_multifiler°   r¥   r·   rÐ   r.   rB   ÚjsonÚloadsr1   ro   Úbase64Ú	b64encodeÚ
jpegheaderr   ÚphotometricÚplanarconfigÚextrasamplesÚis_jfifÚsamplesperpixelÚtagsÚvalueofrÊ   Ú	_superresÚ	predictorÚ
contextlibÚ	ExitStackÚhasattrÚenter_contextÚopenr%  ÚdumpsÚrsplitÚ_ndindexÚ
_parse_keyÚdataoffsetsÚnbytes)3r:   ÚjsonfileÚurlrÚ   rÛ   rÜ   r¤   rÝ   rÞ   rß   rà   rá   rÃ   Úerrormsgr­   rB  r`   Úindexr  r  rÀ   ÚpageÚfilenamerN   ÚrefzarrÚitemrW   r“   Úcodec_idr>  r  rJ  r  r  r  r  r  r  Ú	filter_idr$  r#  Ústackr¾   r+  rÄ   rÊ   ÚlevelstrÚ
chunkindexÚ_ÚoffsetÚ	bytecounts3                                                      r<   Úwrite_fsspeczZarrTiffStore.write_fsspecÅ  s9  € ðF
Øˆtð
àˆvð
ð �6ð
ð �6ð	
ð
 �6ð
ð Ð ð
ð Ð!ð
ð Ð'ð
ð Ð)ð
ð Ð'ð
ð Ð'ð
ð Ð'ð
ð Ð%ð
ð Ð'ð
ð Ð%ð
ð  Ð%ð!
ð" Ð$ð#
ð$ (Ø'Ø%Ø%Ø'Ø'ò/
ð0 !Ð(‰r¨kð1
ˆð6 —j•jˆFØIˆHØ—‘ˆHà×$Ñ$Ð(=Ñ=Ø—O‘O×*Ò*à4E�˜H×0Ñ0Ñ1Ø×#Ñ#¨;Ñ6Ü  H×$8Ñ$8Ð#;¸3Ð!?À(Ñ!JÓKÐKØ×!Ñ! QÒ&Ü  H×$6Ñ$6Ð#9¸Ð!=ÀÑ!HÓIÐIØ×$Ñ$¨LÑ8ä  H×$9Ñ$9Ð#<¸CÐ!@À8Ñ!KÓLÐLà×&Ñ&ðñð ×(Ñ(ðñð   × 4Ñ 4Ñ5Ð9JÒJä Ø$ X×%;Ñ%;Ð$<¸CÐ@À8ÑKóð ð —O’OØ ×)Ò)Ø×(Ñ(¨8×+@Ñ+@Ò@ä Ð!8¸8Ñ!CÓDÐDØ�Š x×'8Ò'8Ü  D§O¡OÐ#6°cÐ!:¸XÑ!EÓFÐFØ×"Ñ"Ò.´3°v·|±|Ó3DÀqÔ3HÜ Ø8¸8ÑCóð ð[ !ðb ˆ;Ø‰CÙ�S˜‘W ’^Ø�3‰JˆCØ�k‰k˜$ Ó$ˆàÐØ‰IÙ˜9 R™=¨CÒ/Ø˜ÑˆIä-0¯]©]¸eÒ-C¡cÈˆ	à�J‰J�q‰M×"Ñ"×)Ñ)×3Ñ3°yÒ@Ø�z‰z˜!‰}×%Ñ%×+Ñ+Ð3Ø�z‰z˜!‰}×%Ñ%×+Ñ+×4Ñ4¸Ò9àˆIð �~‘¬4°«<ˆØ�m‘¬¨e«ˆÜˆv‹;œ#˜e›*Ò$Ø-ˆCÜ˜S“/Ð!Øˆ>Ø‰EÜ�‹[œC ›KÒ'Ø.ˆCÜ˜S“/Ð!ÙØ—H‘HÑ4©VÓ4Ó4ˆEØ�S‰LˆEà!ˆà�a‹<ÙØ2�Ü  “oÐ%ØÐ#Ø"�ØˆD�‰OØ "ˆD�ÑØˆD�‰KØˆIØ�z‰z˜!‰}×)Ò)Ø�Ø ŸJ™J q™M×/Ô/�DØ�| t§}¡}Ð'<Ø Ø#Ÿ}™}×3Ñ3×>Ñ>×CÑC�HØ 9Ñ,Ø Ø)˜N¨1¨#Ð.�CØ,0°°°TÐ*:�I˜hÑ'Ø-0°8©^�D˜Ñ% cÑ*Ø˜‘F‘Añ 0ð  Ÿ:™: a™=×1Ñ1×8Ñ8×CÑC×HÑH�Ø%˜�Ø(,¨S¨E°Ð&6�	˜(Ñ#Ø),¨x©��[Ñ! #Ñ&à%'Ð'ˆD�‰L™7àˆGâÙä%0°-ÀÐ1CÓ%D×%KÑ%KÓ%M�˜	Ñ"àŸ™×)Ñ)×+�Ø!‘
��UØ Ñ#©Ü ŸJ™J uÓ-�EØ*¨eÑ3à! EÐ*=Ñ$>Ñ>ð Ð1Ñ2ô (¨Ó.’EØ #Ò%Ü ŸJ™J uÓ-�EØ69¸S±jœC §	¡	¨#£¨qÑ 1Ô2Àa�EØ#Ÿz™z¨%Ñ0×9Ñ9�HÙØ)/°%¸±.Ñ)@˜˜g™Ø+,¨#´°F³Ñ*;¸eÀH¹oÑ*M˜˜h™Ø*¨8×+?Ñ+?Ñ@�HØÐ#5Ò5à%-×%8Ñ%8˜
Ø%Ð-Ø%)™Fä%+×%5Ñ%5°jÓ%A×%HÑ%HÓ%J˜FØ%-×%8Ñ%8˜
Ø%Ð-Ø%)™Fä%+×%5Ñ%5°jÓ%A×%HÑ%HÓ%J˜Fô 3Ø$×0Ñ0Ø$×1Ñ1Ø$×1Ñ1Ø$×,Ñ,ó	ñØ+Ø+ð #+Ø&,Ø&,Ø-5×-CÑ-CØ/>Ø/>ñ/˜˜lÒ+ð !Ð$6Ò6Ø$×4Ñ4¸Ò9ð #+Ø(,ñ/˜˜lÒ+ð "Ð%6Ò6Ø./Ð/˜ 8Ø#×/Ñ/°5Ò8Ü'*¨8¯=©=×+@Ñ+@ÀÈÓ+JÓ'K˜HÜ'*¨8¯=©=×+@Ñ+@ÀÈÓ+JÓ'K˜HÜ'*¨8¯=©=×+@Ñ+@ÀÈÓ+JÓ'K™HØ%×1Ñ1°UÒ:Ø'(™Hà'(˜Hà"*Ø%-§_¡_Ø(0Ø(0Ø(0Ø(0¯©×(AÑ(Añ/˜˜lÒ+ð "Ð-Ø/3°XÐ.>˜˜lÑ+Ø Ð,Ø)2°U¸7±^ÀAÀBÐ5GÑ)G˜˜g™Ø×)Ñ)¨AÒ-ð $×-Ñ-Ð1BÑBØ(;™Ià(?˜IØ#×-Ñ-°Ò2Ø#$™DØ%×/Ñ/°>ÑAØ#$™Dà#$˜Dà$×1Ñ1°QÒ6Ø (× 8Ñ 8¸1Ò <à#%™Dà#%˜Dð '0Ø(,Ø(,Ø).¨x©Ø).¨w©ñð,˜˜iÑ(ô (¨Ó.�Eð ,1¯<©<«>�˜	 C™Ó(ð[ ,ô` ×!Ñ!Ô# uÜ�x Ô)Ø‘à×(Ñ(¬¨h¸ÀgÔ)NÓO�à˜!Š|Ø—‘œŸ™ D°Ô3×:Ñ:¸4ÀÓCÀAÑFÈÑMÔNØ‘ÙØ‘à—‘œŸ™ D°Ô3°C°RÐ8Ô9Ø�ð Ÿ™×)Ñ)Ö+�Ø!‘
��UØ Ò#Ü ŸJ™J uÓ-�EØ! '™N�EØ" 8™_�FØ<?À3¹J §	¡	¨#£¨qÑ 1°CÒ 7ÈB�HÜ&.¨u°fÖ&=˜
Ø&¨Ñ3˜Ø?C¿¹Øó@Ñ<˜ $¨¨6°9ñ   D§O¢O¸¸Ø%)×%5Ñ%5°aÑ%8˜FØ(0¯©˜IÚ!¢iØ'/§¡×'AÑ'A×'FÑ'F˜HØ&¨!š|Ø+4°XÑ+>¡à.1¨U°8°*Ð+= ØŸH™HØ"% f X¨Q¨y¨k¸#¸ð ?%Ø%- J¨c°&°¸¸I¸;Àað!Iõñ '>ð ,ð6 ˜!Š|Ø—‘˜Õ#ÙØ—‘˜”÷] $×#Ñ#ús!   ß5Cg â=Bg åg åBg ç g)c              ƒ  ó  K  — |�d|›d�}t        |«      ‚|| j                  v r(|j                  j                  | j                  |   «      S |dk(  s|dd dk(  s|dd dk(  s|dd d	k(  ry| j	                  |«      \  }}}}}	|�
|d
k(  s|	d
k(  ry|j
                  j                  }
| j                  rê|� |	€J ‚t        |j
                  d
||f|	f¬«      }| j                  j                  |
«       |j                  | j                  j                  | j                  | j                  ¬«      }| j                  j                  |
«       | j                   �| j!                  |«      }|j                  j#                  |j%                  d«      j'                  d«      «      S |€J ‚|	€J ‚| j                  j)                  |
||	«      }ddi}|j*                  �|j*                  |d<   |j,                  �|j,                  |d<   |€J ‚|j.                   | j                  dkD  r+t1        j2                  |j.                  ||fi |¤Žƒ d{  –—† }n |j.                  ||fi |¤Ž}|d
   }|€J ‚| j                   �| j!                  |«      }|j4                  }|j6                  t9        |«      k7  r&d|j6                  ›dt9        |«      ›�}t;        |«      ‚|j                  j#                  |j%                  d«      j'                  d«      «      S 7 ŒÂ­w)ú!Return value associated with key.Núbyte_range=ú not supportedú	zarr.jsonéöÿÿÿú
.zmetadataéùÿÿÿrª   r¢   r   )rb  r­   r]  Údatabytecounts)r–   r˜   r™   r   ÚBÚ	_fullsizeTr>  rJ  r   zchunk.size=z != product(chunks)=)rU   r.   ÚbufferÚ
from_bytesr\  r®   r°   r2   r   r‹   rX  Úasarrayr–   r�   r�   rØ   rŒ   Úfrom_array_likeÚreshapeÚviewÚreadr>  rJ  rÐ   ÚasyncioÚ	to_threadrÊ   rŸ   r   ÚRuntimeError)r:   rN   rL   rO   r`   r­   rc  rk  rm  rn  r¾   ÚchunkÚchunk_bytesÚ
decodeargsÚdecodedrÊ   s                   r<   rK   zZarrTiffStore.get=  s  è ø€ ð Ð!Ø �Z�O >Ð2ˆCÜ% cÓ*Ð*à�$—+‘+ÑØ×#Ñ#×.Ñ.¨t¯{©{¸3Ñ/?Ó@Ð@ð �;ÒØ�3�4ˆy˜LÒ(Ø�2�3ˆx˜9Ò$Ø�2�3ˆx˜9Ò$ð à8<¿¹ÈÓ8LÑ5ˆ�$˜
 F¨Iàˆ<˜6 Qš;¨)°qª.Øà�[‰[×#Ñ#ˆà�?Š?ØÐ!ð !Ð,Ð,Ð,Ü Ø—K‘KØØ%Ø!' 	Ø$- <ô�ð �O‰O× Ñ  Ô$Ø—L‘LØ—_‘_×)Ñ)Ø×+Ñ+Ø×+Ñ+ð !ó ˆEð
 �O‰O×!Ñ! "Ô%Ø�‰Ð*ØŸ™¨Ó.�Ø×#Ñ#×3Ñ3Ø—‘˜bÓ!×&Ñ& sÓ+óð ð Ð!Ð!Ð!ØÐ$Ð$Ð$Ø—o‘o×*Ñ*¨2¨v°yÓAˆà&1°4Ð%8ˆ
Ø�?‰?Ð&Ø'+§¡ˆJ�|Ñ$Ø×ÑÐ*Ø'/×':Ñ':ˆJ�|Ñ$àÐ%Ð%Ð%Ø�ŠØ×Ñ˜aÒÜ#×-Ñ-Ø—‘ ¨jñØ<Fñ÷ ‰Gð &�h—o‘o k°:ÑLÀÑLˆGØ˜‘
ˆØÐ Ð Ð Ø�?‰?Ð&Ø—O‘O EÓ*ˆEà—‘ˆØ�:‰:œ ›Ò(Ø �U—Z‘Z�MÐ!6¤g¨f£oÐ%7Ð8ˆCÜ˜sÓ#Ð#Ø×Ñ×/Ñ/°·±¸bÓ0A×0FÑ0FÀsÓ0KÓLÐLðús   ‚H;LÈ=L È>CLc              ƒ  óÜ   K  — || j                   v ry	 | j                  |«      \  }}}}}| j                  r|€y|duxr |duxr |duxr |dkD  xr |dkD  S # t        t        f$ r Y yw xY w­w)ú#Return whether key exists in store.TFNr   )r.   r\  ÚKeyErrorÚ
IndexErrorr2   )r:   rN   Ú_kfrc  Ú_cirm  rn  s          r<   ÚexistszZarrTiffStore.exists“  s    è ø€ ð �$—+‘+ÑØð	Ø04·±ÀÓ0DÑ-ˆC��s˜F Ið �?Š?˜v˜~Øà˜Ðò Ø˜dÐ"òà Ð%òð ˜‘
òð ˜A‘ð	
øô	 œ*Ð%ò 	Ùð	üs'   ‚A,“A ª-A,ÁA)Á&A,Á(A)Á)A,c              ƒ  óŽ  K  — | j                   rd}t        |«      ‚|| j                  v s|dk(  s|dd dk(  s|dd dk(  s|dd dk(  ry| j                  |«      \  }}}}}|�|�|d	k(  s|�|d	k(  ry|j	                  «       }	|t        |	«      k  r|	d| }	| j                  j                  |j                  j                  ||	«       y­w)
rT   zZarrTiffStore is read-onlyrt  ru  Nrv  rw  rª   r¢   r   )
r,   r_   r.   r\  Úto_bytesr´   r‹   r%  r®   r°   )
r:   rN   rW   r`   Ú	_keyframerc  Ú_chunkindexrm  rn  Údatas
             r<   rZ   zZarrTiffStore.set¦  sà   è ø€ à�?Š?Ø.ˆCÜ! #Ó&Ð&ð �4—;‘;ÑØ�kÒ!Ø�3�4ˆy˜LÒ(Ø�2�3ˆx˜9Ò$Ø�2�3ˆx˜9Ò$ð à:>¿/¹/È#Ó:NÑ7ˆ	�4˜ f¨iàˆLØˆ~Ø˜Š{ØÐ Ø˜AŠ~àØ�~‰~ÓˆØ”s˜4“yÒ Ø˜
˜Ð#ˆDØ�‰×Ñ˜dŸk™k×4Ñ4°f¸dÕCùs   ‚CCc               óä  — | j                   r1	 |j                  dd«      \  }}| j                  t        |«         }|}n| j                  d   }|j                  }d}d}| j                  ||«      \  }	}
|j                  �Ÿ|d   }|�|j                  �|j                  €|d|
ddfS |	|j                  z  |j                  j                  z  }	 ||j                  |
   z  }| j                  rÓ|j                  |j                  j                  z  }|j                  ||
||fS | j                  rJ| j                  j                   5  ||	   }ddd«       |�|j                  €|ddddfS |j                  |dddfS | j                  j                   5  ||	   }ddd«       |�|j                  €|d|
ddfS 	 |j                  |
   }	 |j"                  |
   }|j                  ||
||fS # t        t
        f$ r}t        |«      |‚d}~ww xY w# t
        $ r}t        |«      |‚d}~ww xY w# 1 sw Y   ŒÙxY w# 1 sw Y   Œ›xY w# t
        $ r |j                  ||
ddfcY S w xY w# t
        $ r}t        |«      |‚d}~ww xY w)ztReturn keyframe, page, index, offset, and bytecount from key.

        Raise KeyError if key is not valid.

        rl   r   Nr   )r’   ro   rŠ   r1   r7  rŒ  r‹  r­   Ú_indicesÚ
dataoffsetrË   rŸ   rC  r]  r2   r‹   r–   rx  )r:   rN   r“   Ú	chunk_keyrÃ   Úexcr­   rc  rm  Ú	pageindexrk  rn  s               r<   r\  zZarrTiffStore._parse_keyÄ  s‰  € ð ×Òð-Ø#&§9¡9¨S°!Ó#4Ñ ��yØŸ™¤C¨£JÑ/�ð ‰Cà—Z‘Z ‘]ˆFØ—?‘?ˆØ,0ˆØ!ˆØ $§¡¨c°6Ó :Ñˆ	�:Ø×ÑÐ(à˜!‘9ˆDØˆ|˜tŸz™zÐ1°T·]±]Ð5JØ  z°1°aÐ7Ð7Ø §¡Ñ*¨T¯Z©Z×-@Ñ-@Ñ@ˆFð-Ø˜$×*Ñ*¨:Ñ6Ñ6�ð �ŠØ ŸI™I¨¯
©
×(;Ñ(;Ñ;�	Ø—}‘} d¨J¸À	ÐIÐIØ�_Š_Ø—‘×%Ó%Ø˜iÑ(�÷ &àˆ|˜tŸ}™}Ð4Ø  t¨Q°Ð1Ð1Ø—=‘= $¨¨d°DÐ8Ð8à—‘×%Ó%Ø˜iÑ(�÷ &àˆ|˜tŸ}™}Ð4Ø  z°1°aÐ7Ð7ð=Ø×)Ñ)¨*Ñ5�ð
	)Ø×+Ñ+¨JÑ7ˆIð �}‰}˜d J°¸	ÐAÐAøôW ¤
Ð+ò -Ü˜s“m¨Ð,ûð-ûô" ò -Ü˜s“m¨Ð,ûð-ú÷ &Ð%ú÷ &Ð%ûô ò =ð —}‘} d¨J¸¸1Ð<Ò<ð=ûô ò 	)Ü˜3“- SÐ(ûð	)úsq   Ž-G ÃH  Ä?HÆ	H)Æ-H5 Æ=I ÇG=Ç,G8Ç8G=È 	HÈ	HÈHÈH&È)H2È5IÉIÉ	I/ÉI*É*I/c               ó\  — |j                   }|j                  | j                  «      }	 |j                  d«      D �cg c]  }t	        |«      ‘Œ }}t        |«      t        |«      k(  sJ ‚| j                  rdt        |j                  «      z  }n|j                  }d}	t        |ddd…   «      D ]I  \  }
}|	|z  }	|	|j                  k(  sŒt        |«      |
z
  dz
  }|d| }||d }|d| }t        ||d «      } n d}t        |«      ‚t        |«      t        |j                  «      k(  rt        |«      }n�t        |«      dz
  }t        |j                  «      dz
  }
	 ||   |j                  |
   k(  r||
   ||<   |dz  }|
dz  }
n||   dk(  r|dz  }nd}t        |«      ‚|dk  s|
dk  rnŒOt        |«      t        |«      k(  sJ ‚d}d}|rt	        t!        j"                  ||«      «      }|rt	        t!        j"                  ||«      «      }||fS c c}w # t
        $ r}t        |«      |‚d}~ww xY w)	z5Return page and strile indices from Zarr chunk index.r  N©r   r   r   z"shape does not match keyframe sizezshape does not match page shaper   )r­   r¹   r‘   ro   r1   r7  r‹  r´   r2   rÄ   Úchunkedrº   rŸ   re   r„  r   ÚnumpyÚravel_multi_index)r:   rN   rÃ   r­   rÄ   rÀ   Úindicesr™  r�  ÚprÆ   ÚsÚframes_indicesÚstrile_indicesÚframes_chunkedÚstrile_chunkedr`   Ú
frameindexÚstrileindexs                      r<   r–  zZarrTiffStore._indices  sT  € à—?‘?ˆØ× Ñ  §¡Ó/ˆð	)Ø'*§y¡y°¤~Ó6¡~ !”s˜1•v ~ˆGÐ6ô �7‹|œs 5›zÒ)Ð)Ð)Ø�?Š?ØœS §¡Ó0Ñ0‰Gà×&Ñ&ˆGØˆÜ˜e¡D b D™kÖ*‰DˆAˆqØ�‰FˆAØ�H—M‘MÓ!Ü˜“L 1Ñ$ qÑ(�Ø!(¨¨! �Ø!(¨¨ �Ø!& r¨ �Ü!% e¨A¨B i£�Ùð +ð 7ˆCÜ˜sÓ#Ð#Üˆ~Ó¤# h§n¡nÓ"5Ò5Ü! '›]‰Nô �NÓ# aÑ'ˆAÜ�H—N‘NÓ# aÑ'ˆAØØ! !Ñ$¨¯©°qÑ(9Ò9Ø(/°©
�N 1Ñ%Ø˜‘F�AØ˜‘F‘AØ# AÑ&¨!Ò+Ø˜‘F‘Aà;�CÜ& sÓ+Ð+Ø�q’5˜A šEØð ô ˜>Ó*¬g°gÓ.>Ò>Ð>Ð>Øˆ
ØˆÙÜÜ×'Ñ'¨¸ÓGóˆJñ ÜÜ×'Ñ'¨¸ÓGóˆKð ˜;Ð&Ð&ùòe 7øÜò 	)Ü˜3“- SÐ(ûð	)ús(   ©H ¼HÁH ÈH È	H+ÈH&È&H+)r½   z%TiffPage | TiffFrame | TiffPageSeriesr“   rŽ   r5   r{   r4   rz   r”   údict[str, Any] | Noner•   r�   r–   z$threading.RLock | NullContext | Noner—   r�   r˜   rŽ   r™   rŽ   r6   r�   rš   rŽ   r|   r}   )
rÃ   r   rN   r€   r—   r�   r4   rz   r|   z$tuple[float | None, tuple[int, ...]])r|   r}   )r`  ú
str | Noner_  ústr | os.PathLike[Any] | TextIOrÚ   rª  rÛ   rª  rÜ   z*dict[COMPRESSION | int, str | None] | Noner¤   rŽ   rÝ   úSequence[int] | NonerÞ   zSequence[str] | Nonerß   r¬  rà   r+   rá   r+   r|   r}   r?   ©rN   r€   rL   r&   rO   zByteRequest | Noner|   zBuffer | None©rN   r€   r|   r+   r   )rN   r€   r|   zPtuple[TiffPage, TiffPage | TiffFrame | None, int | None, int | None, int | None])rN   r€   rÃ   r   r|   ztuple[int, int])rx   r‚   rƒ   r„   r…   r9   r»   rØ   ro  rK   r�  rZ   r\  r–  r‡   rˆ   s   @r<   r   r   ò   s.  ø… ñ,ð\  ÓØÓØ=Ó=ØÓØÓØÓØÓð !Ø26Ø"&Ø(,Ø#'Ø59Ø#Ø!%Ø!%Ø!%Ø!%ñtEà2ðtEð
 ðtEð 0ðtEð  ðtEð &ðtEð !ðtEð 3ðtEð ðtEð ðtEð ðtEð ðtEð ðtEð  
õ!tEðl àð ð ð ð ð	 ð
  ð ð 
.ó õB ð !%Ø#'ØBFØ"Ø'+Ø&*Ø'+ØØñv ð ð	v à1ðv ð ðv ð !ðv ð @ðv ð ðv ð %ðv ð $ðv ð %ðv ð ðv ð ðv ð 
óv ðx *.ð	TMàðTMð #ðTMð 'ð	TMð
 
óTMól
ó&Dó<;B÷z7'r=   r   c            
      ó  ‡ — e Zd ZU dZded<   ded<   ded<   ded	<   d
ed<   ded<   ded<   ded<   ddddddddddœ		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dˆ fd„Zdd„Z	 d	 	 	 	 	 	 	 dd„Zddddddddœ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d d„Zˆ xZ	S )!r   aÏ  Zarr 3 store interface to image array in FileSequence.

    Parameters:
        filesequence:
            FileSequence instance to wrap as Zarr store.
            Files in containers are not supported.
        fillvalue:
            Value to use for missing chunks. The default is 0.
        chunkmode:
            Currently only one chunk per file is supported.
        chunkshape:
            Shape of chunk in each file.
            Must match ``FileSequence.imread(file, **imreadargs).shape``.
        chunkdtype:
            Data type of chunk in each file.
            Must match ``FileSequence.imread(file, **imreadargs).dtype``.
        axestiled:
            Axes to be tiled. Map stacked sequence axis to chunk axis.
        zattrs:
            Additional attributes to store in `.zattrs`.
        ioworkers:
            If not 1, asynchronously run `imread` function in separate thread.
            If enabled, internal threading for the `imread` function
            should be disabled.
        read_only:
            Passed to :py:class:`zarr.abc.store.Store`.
        imreadargs:
            Arguments passed to :py:attr:`FileSequence.imread`.
        **kwargs:
            Arguments passed to :py:attr:`FileSequence.imread` in addition
            to `imreadargs`.

    Notes:
        If `chunkshape` or `chunkdtype` are *None* (default), their values
        are determined by reading the first file with
        ``FileSequence.imread(arg.files[0], **imreadargs)``.

    zCallable[..., NDArray[Any]]Ú_imreadzdict[tuple[int, ...], str]Ú_lookupútuple[int, ...]rÒ   únumpy.dtype[Any]Ú_dtyper   Ú_tiledr€   Ú_commonpathr1   Ú
_ioworkersr-   Ú_kwargsNr   T)	r4   r5   Ú
chunkshapeÚ
chunkdtypeÚ	axestiledr”   Ú	ioworkersÚ
imreadargsr6   c      	        ób  •— t        |t        «      sd}t        |«      ‚|j                  rd}t	        |«      ‚t        |«      dk(  rd}t        |«      ‚t        ‰| �!  |||
¬«       | j                  dvrd| j                  ›�}t        |«      ‚|	�||	z  }|€dn|| _
        || _        |j                  | _        |j                  «       | _        |�|€9 |j                  |d   fi |¤Ž}|j                   | _        |j$                  | _        n*t)        |«      | _        t+        j$                  |«      | _        t-        |j                   | j"                  |¬	«      | _        t1        t3        | j.                  j5                  |j4                  «      |d
¬«      «      | _        |€i n
t1        |«      }t9        |«      | j:                  d<   t9        d| j.                  j                   | j.                  j<                  t?        | j&                  «      d tA        || j&                  «      dd dœ«      | j:                  d<   y )Nznot a FileSequencez#cannot open container as Zarr storer   zfilesequence is emptyr3   >   r   rž   zinvalid chunkmode r   )r»  Tr¨   ru   rœ   rÈ   rÉ   rª   )!rF   r   Ú	TypeErrorÚ
_containerrU   r´   r7  r8   r9   r2   r·  r¸  r   r°  Ú
commonpathr¶  rÄ   rÒ   rË   r´  rA   rž  r   rµ  r³   r¼   r   r±  r·   r.   rÊ   rÔ   rÕ   )r:   Úfilesequencer4   r5   r¹  rº  r»  r”   r¼  r½  r6   Úkwargsr`   r…  r;   s                 €r<   r9   zZarrFileSequenceStore.__init__l  s  ø€ ô  ˜,¬Ô5Ø&ˆCÜ˜C“.Ð à×"Ò"Ø7ˆCÜ% cÓ*Ð*äˆ|Ó Ò!Ø)ˆCÜ˜S“/Ð!ä‰ÑØ¨9À	ð 	ô 	
ð �?‰? &Ñ(Ø& t§¡Ð&9Ð:ˆCÜ˜S“/Ð!ð Ð!Ø�jÑ ˆFà(Ð0™!°iˆŒàˆŒØ#×*Ñ*ˆŒØ'×2Ñ2Ó4ˆÔàÐ Ð!3Ø'�L×'Ñ'¨°Q©ÑB¸6ÑBˆEØ Ÿ;™;ˆDŒLØŸ+™+ˆD�Kä  Ó,ˆDŒLÜŸ+™+ jÓ1ˆDŒKä#Ø×Ñ §¡¸	ô
ˆŒô ÜØ—‘×#Ñ# L×$8Ñ$8Ó9ØØôó
ˆŒð �~‘¬4°«<ˆô
 "-¨VÓ!4ˆ�‰�IÑÜ!,à ØŸ™×*Ñ*ØŸ+™+×,Ñ,Ü# D§K¡KÓ0Ø"Ü)¨)°T·[±[ÓAØØñ	ó"
ˆ�‰�IÒr=   c              ƒ  óÊ   K  — || j                   v ryt        |t        «      sJ ‚	 t        d„ |j	                  d«      D «       «      }|| j                  v S # t
        $ r Y yw xY w­w)rŠ  Tc              3  ó2   K  — | ]  }t        |«      –— Œ y ­wr?   ©r1   r  s     r<   r
  z/ZarrFileSequenceStore.exists.<locals>.<genexpr>Ç  ó   è ø€ Ð;©N qœC ŸF©Nùr  r  F)r.   rF   r€   rA   ro   r7  r±  )r:   rN   r   s      r<   r�  zZarrFileSequenceStore.existsÀ  sh   è ø€ ð �$—+‘+ÑØÜ˜#œsÔ#Ð#Ð#ð	ÜÑ;¨C¯I©I°c¬NÓ;Ó;ˆGð ˜$Ÿ,™,Ð&Ð&øô ò 	Ùð	üs(   ‚"A#¥!A ÁA#Á	A ÁA#ÁA Á A#c              ƒ  ó¬  K  — |�d|›d�}t        |«      ‚|| j                  v r(|j                  j                  | j                  |   «      S |dk(  s|dd dk(  s|dd dk(  s|dd d	k(  ry	 t	        d
„ |j                  d«      D «       «      }| j                  j                  |«      }|€y| j                  dk7  r4t        j                  | j                  |fi | j                  ¤Žƒ d{  –—† }n | j                  |fi | j                  ¤Ž}|j                  j                  |j                  d«      j!                  d«      «      S # t        $ r Y yw xY w7 Œj­w)rq  Nrr  rs  rt  ru  rv  rw  rª   r¢   c              3  ó2   K  — | ]  }t        |«      –— Œ y ­wr?   rÆ  r  s     r<   r
  z,ZarrFileSequenceStore.get.<locals>.<genexpr>ä  rÇ  r  r  r   r   ry  )rU   r.   r{  r|  rA   ro   r7  r±  rK   r·  r‚  rƒ  r°  r¸  r~  r  r€  )r:   rN   rL   rO   r`   r   rd  r…  s           r<   rK   zZarrFileSequenceStore.getÌ  s]  è ø€ ð Ð!Ø �Z�O >Ð2ˆCÜ% cÓ*Ð*à�$—+‘+ÑØ×#Ñ#×.Ñ.¨t¯{©{¸3Ñ/?Ó@Ð@ð �;ÒØ�3�4ˆy˜LÒ(Ø�2�3ˆx˜9Ò$Ø�2�3ˆx˜9Ò$ð ð	ÜÑ;¨C¯I©I°c¬NÓ;Ó;ˆGð —<‘<×#Ñ# GÓ,ˆØÐØØ�?‰?˜aÒÜ!×+Ñ+Ø—‘˜hñØ*.¯,©,ñ÷ ‰Eð !�D—L‘L Ñ:¨T¯\©\Ñ:ˆEØ×Ñ×/Ñ/°·±¸bÓ0A×0FÑ0FÀsÓ0KÓLÐLøô ò 	Ùð	úðús8   ‚A(EÁ+!E ÂAEÃ'EÃ(AEÅ	EÅEÅEÅEF)ÚquoterÚ   rÛ   rg  r¤   rà   rá   c              ó’  — ddl m}
 | j                  j                  «       }|��n| j                  t
        u rd}nìd| j                  j                  v rÇ| j                  j                  dk7  sd| j                  vrd}t        |«      ‚|j                  d«      }t        |t        t        f«      r|d   }t        |«      r|j                  j                  d	«      d   }	 i d
d“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“d d!“d"d#“d$d%“d&d'“d(d)“d*d+i¥|   }nd}t        |«      ‚|€d-}n|r|d.   d/k7  r|d/z  }|€d-}n|r|d.   d/k7  r|d/z  }i }|d0k(  r2|rd1}t        |«      ‚|€d2}d0|d3<   ||i|d4<   g |d5<   i x|d6<   }d7|› d8�}n|}|r |st!        d9d:i«      j#                  «       |d;<   | j$                  j'                  «       D ]J  }|\  }}d<|v r)t)        j*                  |«      }d=|i|¥|d><   t!        |«      }|j#                  «       |||z   <   ŒL t-        j.                  «       5 }t1        |d?«      r|}n|j3                  t5        |d@dA¬B«      «      }|d0k(  r?|j7                  t)        j8                  |d0¬C«      j;                  dDd0«      d   dDz   «       dE}nj|r=|j7                  dF«       |j7                  t)        j8                  |d0¬C«      d:dG «       dH}n+|j7                  t)        j8                  |d0¬C«      ddG «       dH}| j$                  j'                  «       D ]Î  }|\  }}d<|v sŒt)        j*                  |«      }t=        | j>                  j'                  «       dI„ ¬J«      D ]„  \  }}|jA                  | jB                  «      }|jE                  dKd/«      }|�|r |
|«      }|r|d   d/k(  r|d0d }dLjG                  dM„ |D «       «      }|j7                  dF|› dN|› |› dO|› |› dP�	«       Œ† ŒÐ |d0k(  r|j7                  dQ«       n|	r|j7                  dR«       ddd«       y# t        $ r d,|›�}t        |«      d‚w xY w# 1 sw Y   yxY w)Sat  Write fsspec ReferenceFileSystem as JSON to file.

        Parameters:
            jsonfile:
                Name or open file handle of output JSON file.
            url:
                Remote location of TIFF file(s) without file name(s).
            quote:
                Quote file names, that is, replace ' ' with '%20'.
                The default is True.
            groupname:
                Zarr group name.
            templatename:
                Version 1 URL template name. The default is 'u'.
            codec_id:
                Name of Numcodecs codec to decode files or chunks.
            version:
                Version of fsspec file to write. The default is 0.
            _append, _close:
                Experimental API.

        References:
            - `fsspec ReferenceFileSystem format
              <https://github.com/fsspec/kerchunk>`_

        r   )rÊ  NÚtifffileÚimagecodecsr   Úcodeczcannot determine codec_idrl  ÚapngÚimagecodecs_apngÚavifÚimagecodecs_avifÚgifÚimagecodecs_gifÚheifÚimagecodecs_heifÚjpegré   Újpeg8Újpeg12Újpeg2krì   ÚjpeglsÚimagecodecs_jpeglsÚjpegxlrô   Újpegxrrê   ÚljpegÚimagecodecs_ljpegÚlercrî   Úpngrð   ÚqoiÚimagecodecs_qoiÚtiffÚimagecodecs_tiffÚwebpró   ÚzfpÚimagecodecs_zfpzunknown codec=rm   r   rl   r   z cannot append to version 1 filesr  r¤   r  r  r  r  r  r¡   rœ   r¢   rª   r  rÌ   r%  r&  r'  r(  r*  r,  r-  r/  r"  r.  c                ó   — | d   S )Nr   r\   )Úxs    r<   Ú<lambda>z4ZarrFileSequenceStore.write_fsspec.<locals>.<lambda>ˆ  s   € ¸A¸aºDr=   )rN   r  r  c              3  ó2   K  — | ]  }t        |«      –— Œ y ­wr?   r  r  s     r<   r
  z5ZarrFileSequenceStore.write_fsspec.<locals>.<genexpr>�  s   è ø€ Ð+B¹E°q¬C°¯F¹Eùr  r0  r1  z"]r3  r4  )$Úurllib.parserÊ  r¸  Úcopyr°  r   r‚   rx   r7  rµ   rF   re   rA   Úcallablero   r‹  r·   rÐ   r.   rB   rF  rG  rT  rU  rV  rW  rX  r%  rY  rZ  Úsortedr±  rp   r¶  r@  rD  )r:   r_  r`  rÊ  rÚ   rÛ   rg  r¤   rà   rá   Úquote_rÃ  r`   rÎ  r  re  rf  rN   rW   ri  r¾   r+  rb  Úfnamerd  Úindexstrs                             r<   ro  z"ZarrFileSequenceStore.write_fsspecò  s  € õP 	1à—‘×"Ñ"Ó$ˆàÐÙØ�\‰\œVÑ#Ø!‰HØ˜dŸl™l×5Ñ5Ñ5à—‘×%Ñ%¨Ò1Ø $§,¡,Ñ.à1�Ü  “oÐ%Ø—J‘J˜wÓ'ˆEÜ˜%¤$¬ Ô/Ø˜a™�Ü˜ŒØŸ™×,Ñ,¨SÓ1°!Ñ4�ð0ðØÐ.ðàÐ.ðð Ð,ðð Ð.ð	ð
 Ð.ðð Ð/ðð Ð0ðð Ð2ðð Ð2ðð Ð2ðð Ð2ðð Ð0ðð Ð.ðð Ð,ðð  Ð,ð!ð" Ð.ð#ð$ Ð.ð%ð& Ð,ñ'ð( ñ)‘ð4 .ˆCÜ˜S“/Ð!àˆ;Ø‰CÙ�S˜‘W ’^Ø�3‰JˆCàÐØ‰IÙ˜9 R™=¨CÒ/Ø˜ÑˆIà!ˆØ�aŠ<ÙØ8�Ü  “oÐ%ØÐ#Ø"�ØˆD�‰OØ!-¨sÐ 3ˆD�ÑØˆD�‰KØ%'Ð'ˆD�‰L˜7Ø˜˜ dÐ+‰CàˆGá™WÜ!,¨m¸QÐ-?Ó!@×!GÑ!GÓ!IˆG�IÑà—K‘K×%Ñ%Ö'ˆDØ‰JˆC�Ø˜CÑÜŸ
™
 5Ó)�à'+¨XÐ&@¸Ð&@��lÑ#Ü# EÓ*�Ø',§|¡|£~ˆG�I ‘OÒ$ð (ô ×!Ñ!Ô# uÜ�x Ô)Ø‘à×(Ñ(¬¨h¸ÀgÔ)NÓO�à˜!Š|Ø—‘œŸ™ D°Ô3×:Ñ:¸4ÀÓCÀAÑFÈÑMÔNØ‘ÙØ—‘˜”Ø—‘œŸ™ D°Ô3°A°bÐ9Ô:Ø‘à—‘œŸ™ D°Ô3°C°RÐ8Ô9Ø�àŸ™×)Ñ)Ö+�Ø!‘
��UØ Ò#Ü ŸJ™J uÓ-�EÜ(.ØŸ™×*Ñ*Ó,±.÷)™˜˜uð $)×#5Ñ#5°d×6FÑ6FÓ#G˜Ø#+×#3Ñ#3°D¸#Ó#>˜Ø ˜=©EÙ'-¨hÓ'7˜HÙ#¨°©°sÒ(:Ø'/°° |˜HØ#&§8¡8Ñ+B¹EÓ+BÓ#B˜ØŸ™Ø! & ¨¨9¨+°h°Zð @!Ø!$  h Z¨rð3õñ)ð	 ,ð& ˜!Š|Ø—‘˜Õ#ÙØ—‘˜”÷O $Ð#øô] ò 0Ø'  
Ð+�Ü  “o¨4Ð/ð0ú÷\ $Ð#ús    Ã<P È&DP=Ì(C.P=ÐP:Ð=Q)rÂ  r   r4   rz   r5   r{   r¹  r¬  rº  úDTypeLike | Noner»  z1dict[int, int] | Sequence[tuple[int, int]] | Noner”   r©  r¼  rŽ   r½  r©  r6   r+   rÃ  r!   r|   r}   r®  r?   r­  )r`  rª  r_  r«  rÊ  r�   rÚ   rª  rÛ   rª  rg  rª  r¤   rŽ   rà   r+   rá   r+   r|   r}   )
rx   r‚   rƒ   r„   r…   r9   r�  rK   ro  r‡   rˆ   s   @r<   r   r   ;  s¥  ø… ñ%ðN )Ó(Ø'Ó'ØÓØÓØÓØÓØƒOØÓð #'Ø26Ø+/Ø'+ØGKØ(,Ø !Ø,0ØñR
à"ðR
ð
  ðR
ð 0ðR
ð )ðR
ð %ðR
ð EðR
ð &ðR
ð ðR
ð *ðR
ð ðR
ð ðR
ð 
õR
óh
'ð  *.ð	$Màð$Mð #ð$Mð 'ð	$Mð
 
ó$MðX "Ø $Ø#'Ø#Ø"ØØñg ð ð	g à1ðg ð ðg ð ðg ð !ðg ð ðg ð ðg ð ðg ð ðg ð 
÷g r=   r   T)Ú
groupindexrØ   Úoutc              óÊ  — 	 t        j                  | dd¬«      }t        |t         j                  «      r
|€d}||   }n|}|�at	        ||j
                  t        |j                  ¬«      ¬«      j
                  }t        j                  t        |||j                  «      «      }nd}|j                  ||¬«      }	~|r| j                  «        |	S # |r| j                  «        w w xY w)	a  Return selection from Zarr store.

    Parameters:
        store:
            ZarrStore instance to read selection from.
        selection:
            Subset of image to be extracted and returned.
            Refer to the Zarr documentation for valid selections.
        groupindex:
            Index of array if store is Zarr group.
        close:
            Close store before returning.
        out:
            Specifies how image array is returned.
            By default, create a new array.
            If a *numpy.ndarray*, a writable array to which the images
            are copied.
            If *'memmap'*, create a memory-mapped array in a temporary
            file.
            If a *string* or *open file*, the file used to create a
            memory-mapped array.

    Úrrœ   )Úmoder¡   NÚ0)Úchunk_shape)rÄ   Ú
chunk_grid)r÷  )ÚzarrrX  rF   ÚGroupr   rÄ   r   rÊ   r
   Úfrom_numpy_arrayr   rË   Úget_basic_selectionrØ   )
ÚstoreÚ	selectionrö  rØ   r÷  ÚzÚzarrayrÄ   ÚndbufferÚresults
             r<   Úzarr_selectionr  œ  s×   € ðDÜ�I‰I�e #°1Ô5ˆÜ�aœŸ™Ô$ØÐ!Ø �
Ø�z‘]‰FàˆFØˆ?Ü ØØ—l‘lÜ+¸¿¹ÔFô÷ ‰eð	 ô
  ×0Ñ0Ü˜c 5¨&¯,©,Ó7ó‰Hð ˆHØ×+Ñ+¨I¸8Ð+ÓDˆØáØ�K‰KŒMØ€Møñ Ø�K‰K�Mð ús   ‚B7C ÃC"c               óv   — |�|dk(  rt        j                  | |«      S t        j                  | |«      }||dd |S )zReturn empty chunk.Nr   )rž  ÚzerosÚempty)rÄ   rË   r4   r…  s       r<   Ú_empty_chunkr  Ù  s?   € ð Ð˜I¨šNä�{‰{˜5 %Ó(Ð(Ü�K‰K˜˜uÓ%€EØ€E‰!€HØ€Lr=   c               óv   — | j                   dk(  rd}ndddœt        j                     }|| j                  dd z   S )z.Return dtype as string with native byte order.r   Ú|r  r  )r  ÚlittleN)rC  rA  rB  r€   )rË   rB  s     r<   rÔ   rÔ   è  s;   € à‡~�~˜ÒØ‰	à¨3Ñ/´·±Ñ>ˆ	Ø�u—y‘y  �}Ñ$Ð$r=   c               óT   — t        j                  | dddd¬«      j                  d«      S )z)Serialize object to JSON formatted bytes.r   T)Ú,z: )r+  Ú	sort_keysÚensure_asciiÚ
separatorsÚascii)rF  rY  Úencode)Úobjs    r<   r·   r·   ñ  s-   € ä�:‰:ØØØØØô÷ �fˆWƒoðr=   c               ó  — | €| S |j                   dk(  rt        | «      S |j                   dv rt        | «      S |j                   dk(  rMt        j                  | «      ryt        j
                  | «      ryt        j                  | «      ryt        | «      S |j                   dk(  rjt        j                  | |«      } t        | j                  | j                  j                  «      t        | j                  | j                  j                  «      fS | S )z+Return value which is serializable to JSON.ÚbÚuiÚfÚNaNÚInfinityz	-InfinityÚc)Úkindr+   r1   rž  ÚisnanÚisposinfÚisneginfr/   ÚarrayrÕ   ÚrealrË   Úimag)rW   rË   s     r<   rÕ   rÕ   ü  sØ   € à€}ØˆØ‡z�z�SÒÜ�E‹{ÐØ‡z�z�TÑÜ�5‹zÐØ‡z�z�SÒÜ�;‰;�uÔØÜ�>‰>˜%Ô ØÜ�>‰>˜%Ô ØÜ�U‹|ÐØ‡z�z�SÒÜ—‘˜E 5Ó)ˆä˜Ÿ
™
 E§J¡J×$4Ñ$4Ó5Ü˜Ÿ
™
 E§J¡J×$4Ñ$4Ó5ð
ð 	
ð €Lr=   c             #  óâ   K  — t        | «      t        |«      k(  sJ ‚t        d„ t        | |d¬«      D «       «      }t        j                  |«      D ]  }dj                  d„ |D «       «      –— Œ y­w)z-Return iterator over all chunk index strings.c              3  ó8   K  — | ]  \  }}||z   d z
  |z  –— Œ y­w)r   Nr\   )r	  rÀ   rÆ   s      r<   r
  z_ndindex.<locals>.<genexpr>  s&   è ø€ ð Ù%D™T˜Q ˆˆQ‰�‰�qÕÑ%Dùrf   Tr¨   r  c              3  ó2   K  — | ]  }t        |«      –— Œ y ­wr?   r  )r	  rb  s     r<   r
  z_ndindex.<locals>.<genexpr>  s   è ø€ Ð7©w e”s˜5—z©wùr  N)r´   rA   r¼   rž  ÚndindexrD  )rÄ   rÊ   r�  r   s       r<   r[  r[    sh   è ø€ ô ˆu‹:œ˜V›Ò$Ð$Ð$Üñ Ü%(¨°¸tÕ%Dóó €Gô —=‘= Ö)ˆØ�h‰hÑ7©wÓ7Ó7Ó7ñ *ùs   ‚A-A/c                ó‚   — | j                   dk(  xr/ | j                  dk(  xr | j                  dv xr | j                  dv S )z#Return True if chunks are writable.r   rù   rû   )r5  r8  r9  r  )r­   s    r<   rÖ   rÖ   !  sS   € ð 	×Ñ Ñ!ò 	;Ø×Ñ !Ñ#ò	;à×!Ñ! \Ð1ò	;ð ×"Ñ"Ð&:Ð:ð		r=   c               ó�  — t        |«      }|dk(  ryd|v rd|z  S |d   dk(  rdnd}t        |d|z   «      }t        | «      d|z   k(  r$|d|z   k7  r|d   dk(  r|| d || d k(  rg | ¢d‘­} |t        | «      k  r;d}| D ]  }|dkD  r n|dz  }Œ | |d } |t        | «      k  rd	|›d
| ›�}t        |«      ‚d|t        | «      z
  z  | z   S )z(Return chunks with same length as shape.r   r\   rœ  r   rž   rœ   r   Nzshape=z is shorter than chunks=)r´   Úminr7  )rÊ   rÄ   rÓ   ÚndimÚdrÀ   rŸ   r`   s           r<   rÒ   rÒ   /  s  € ô ˆu‹:€DØˆq‚yØØˆE�zØ�d‰{ÐØ�A‰Y˜!Š^‰ €AÜˆD�!�a‘%Ó€AäˆF‹�q˜1‘uÒØ��Q‘ŠJØ�"‰I˜ŠNØ�1�"�#ˆJ˜& !  ˜+Ò%ð �6�˜1‘ˆØŒc�&‹kÒàˆÛˆDØ�aŠxÙØ�‰F‰Að ð ˜˜�ˆØ”#�f“+ÒØ�U�JÐ7°¨{Ð;ˆCÜ˜S“/Ð!à�4œ#˜f›+Ñ%Ñ&¨Ñ/Ð/r=   )r  r   r  r'   rö  rª  rØ   r+   r÷  r)   r|   úNDArray[Any])rÄ   r²  rË   rõ  r4   rz   r|   r/  )rË   r³  r|   r€   )r  r!   r|   Úbytes)rW   r!   rË   r³  r|   r!   )rÄ   r²  rÊ   r²  r|   zIterator[str])r­   r   r|   r+   )rÊ   r²  rÄ   r²  rÓ   ztuple[int, int, int, int, int]r|   r²  )Hr„   Ú
__future__r   Ú__all__r‚  rH  rT  rF  rA  Útypingr   rž  rþ  Úzarr.abc.storer   r	   Úzarr.core.buffer.cpur
   Úzarr.core.chunk_gridsr   Úzarr.core.indexingr   ÚImportErrorr™  Ú__version__r`   r7  rÌ  r   r   r   r   r   r   r   r   r   r   r   r   r   r   ÚosÚ	threadingÚcollections.abcr   r   r   r   r    r!   r"   Únumpy.typingr#   r$   Úzarr.core.bufferr%   r&   r'   r(   r)   r   r   r   r  r  rÔ   r·   rÕ   r[  rÖ   rÒ   r\   r=   r<   Ú<module>r?     s¤  ðñ@ ,å "â
A€ã Û Û Û Û 
Ý  ã Û ð#ß1Ý-Ý6Ý/÷
÷ ÷ ÷ ñ" ÛÛ÷õ ÷ #ç/ß8Ý1ç/ôG,�ô G,ôjF'�Iô F'ôR^ ˜Iô ^ ðL "ØØñ:Øð:àð:ð
 ð:ð ð:ð 
ð:ð ó:ðzØðàðð ðð
 óó%óóð2	8Øð	8Ø$3ð	8àó	8óð"0Øð"0àð"0ð +ð"0ð
 ô"0øðu/ ò #Ø�$×"Ñ"Ð#Ð#8Ð
9€CÙ
�S‹/˜sÐ"ûð#ús   °D ÄD3ÄD.Ä.D3