
    (&h]                        d dl Z d dlZd dlZd dlZd dlmZmZmZmZ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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)m*Z*m+Z+ d Z,d Z-d Z.ej/        0                    de$e(e ee"eg          d	             Z1ej/        0                    deeg          d
             Z2ej/        0                    de$eee ee"eg          d             Z3d Z4ej/        0                    de$eee ee"eg          d             Z5d Z6ej/        0                    de$eee(g          d             Z7ej/        0                    de ee"eg          d             Z8d Z9d Z:d Z;d Z<d Z=d Z>ej/        0                    dej?        ej@        ejA         ejB        ejC        ej/        D                    ejE        dk     d                    g          ej/        0                    d ejF        e           ejG        e          ejH        jI        k                       d                         ZJd ZKd ZLd ZMd  ZNej/        D                    ejE        dk     d!          d"             ZOej/        0                    de          d#             ZPd$ ZQej/        0                    de          d%             ZRd& ZSd' ZTej/        0                    de$e eee(e"eeeee ejF        dg           ejU         ejF        dg                    g          d(             ZVd) ZWd* ZXd+ ZYej/        0                    ddggegge gge eggf          d,             ZZej/        0                    de$ee(g          d-             Z[ej/        0                    dddgg g          d.             Z\ej/        0                    dd/d/gd0g          d1             Z]d2 Z^ej/        0                    de$e eee(e"eeeeedg          d3             Z_d4 Z`d5 Zaej/        0                    ddgge(ggg          d6             Zbd7 Zcd8 Zdd9 Zeej/        0                    d:d;          d<             Zfd= Zgej/        0                    d:d;          d>             Zhej/        0                    d:d;          d?             Zid@ ZjdA Zkej/        0                    dB e	g dC          dD e e	g dE           e	g dF          g          f ejB         e	g dC          dG e	g dH          ej/        D                    ejE        dIk     dJ                     e	g dC          dK e e	g dE           e	g dF          g          f edLdMg          dD e            f ejB         edLdMg          dG edLdLg          ej/        D                    ejE        dIk     dJ                     edLdMg          dK edLdLg          f ejB         eg dN          dD e            ej/        D                    ejE        dIk    dO                     ejB         eg dN          dG eg dP          ej/        D                    ejE        dIk     dJ                     ejB         eg dN          dK eg dQ          ej/        D                    ejE        dIk     dR                     e	g dN          dD e	            f ejB         e	g dN          dG e	g dP          ej/        D                    ejE        dIk     dJ                     e	g dN          dK e	            fg          dS             ZldT Zmej/        0                    dUdVdWg          dX             Znej/        D                    ejE        dIk    dY          dZ             Zoej/        0                    d[ ejF        d d\g          d]d/g          d^             Zpd_ Zq ejr        e$eg          Zsej/        0                    d`e$e$fe&e$feefeefeefeefeefeefe(e(fe+e(fe)e)fe*e)fe e fe!e feefeefe"e"fe#e"fesesfeesfg          da             Ztej/        0                    d`e$e&fe&e&feefeefeefeefeefeefe(e+fe+e+fe)e*fe*e*fe e!fe!e!feefeefe"e#fe#e#fesefeefg          db             ZudS )c    N)
LinearRing
LineStringMultiPolygonPointPolygon)assert_geometries_equal)	all_typesemptyempty_line_stringempty_line_string_zempty_pointempty_point_zempty_polygon)equal_geometries_abnormally_yield_unequalgeometry_collectiongeometry_collection_zignore_invalidignore_warningsline_stringline_string_nanline_string_zlinear_ringmulti_line_stringmulti_line_string_zmulti_pointmulti_point_zmulti_polygonmulti_polygon_zpointpoint_mpoint_zpoint_zmpolygonpolygon_with_holepolygon_with_hole_z	polygon_zc                  v    t          j        t          dz                                             } | g dk    sJ d S )NN)r         r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )shapelyget_num_pointsr	   tolistactuals    V/var/www/html/reinick/venv/lib/python3.11/site-packages/shapely/tests/test_geometry.pytest_get_num_pointsr1   +   sA    #I$788??AAFTTTTTTTTT    c                  v    t          j        t          dz                                             } | g dk    sJ d S )Nr(   )r   r   r   r      r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r+   get_num_interior_ringsr	   r-   r.   s    r0   test_get_num_interior_ringsr6   0   sA    +I,?@@GGIIFTTTTTTTTTr2   c                  v    t          j        t          dz                                             } | g dk    sJ d S )Nr(   )r4   r4   r4   r4   r4      r4   r8   r8   r   r4   r4   r4   r   r   r   r4   r4   r4   r4   r   )r+   get_num_geometriesr	   r-   r.   s    r0   test_get_num_geometriesr:   5   sA    '	G(;<<CCEEFTTTTTTTTTr2   geomc                     t          j        | g d          }t          j        |                                          sJ d S N)r   r8   )r+   	get_point
is_missingallr;   r/   s     r0   test_get_point_non_linestringrC   :   sC     tZZZ00Ff%%))+++++++r2   c                    t          j        |           }t          j        | d| ||dz    g          }t          |d         |d                    t          j        |dd                                                   sJ d S Nr   r4   r8      )r+   r,   r?   r   r@   rA   r;   nr/   s      r0   test_get_pointrI   J   s~    t$$Ata!Q!a%%9::FF1Ivay111fQqSk**..0000000r2   c                 ~    t          j        |           }t          j        |                                          sJ d S r(   )r+   get_exterior_ringr@   rA   rB   s     r0   "test_get_exterior_ring_non_polygonrL   R   s=     &t,,Ff%%))+++++++r2   c                      t          j        t          t          g          } t          j        |           t           j        j        k                                    sJ d S r(   )r+   rK   r#   r$   get_type_idGeometryType
LINEARRINGrA   r.   s    r0   test_get_exterior_ringrQ   c   sL    &1B'CDDF''7+?+JJOOQQQQQQQr2   c                     t          j        | g d          }t          j        |                                          sJ d S r=   )r+   get_interior_ringr@   rA   rB   s     r0   "test_get_interior_ring_non_polygonrT   h   sC     &tZZZ88Ff%%))+++++++r2   c                      t          j        t          g d          } t          | d         | d                    t          j        | dd                                                   sJ d S N)r   r>   r4   r   r4   r8   rF   )r+   rS   r$   r   r@   rA   r.   s    r0   test_get_interior_ringrX   y   sb    &'8...IIFF1Ivay111fQqSk**..0000000r2   c                     t          j        | g d          }t          |d         |d                    t          j        |dd                                                   sJ d S rV   )r+   get_geometryr   r@   rA   rB   s     r0   test_get_geometry_simpler[      sa    !$77FF1Ivay111fQqSk**..0000000r2   c                    t          j        |           }t          j        | d| ||dz    g          }t          |d         |d                    t          j        |dd                                                   sJ d S rE   )r+   r9   rZ   r   r@   rA   rG   s      r0   test_get_geometry_collectionr]      s     	"4((A!$QBQU8(<==FF1Ivay111fQqSk**..0000000r2   c                  v    t          j        t          dz                                             } | g dk    sJ d S )Nr(   )r   r4   r8   r)   r)   rF   r*         r`   r   r4   r)   rF   r*   r_   rF   r*   r_   r`   r>   )r+   rN   r	   r-   r.   s    r0   test_get_type_idra      sA     W!455<<>>FUUUUUUUUUr2   c                  v    t          j        t          dz                                             } | g dk    sJ d S )Nr(   )r   r4   r4   r8   r8   r   r4   r8   r4   r>   r   r4   r8   r   r4   r8   r   r4   r8   r4   r>   )r+   get_dimensionsr	   r-   r.   s    r0   test_get_dimensionsrd      sA    #I$788??AAFVVVVVVVVVr2   c                      t          j        t          t          d g                                          } | g dk    sJ d S )N)r8   r)   r>   )r+   get_coordinate_dimensionr   r!   r-   r.   s    r0   test_get_coordinate_dimensionrg      s@    -ugt.DEELLNNFZZZr2   c                  v    t          j        t          dz                                             } | g dk    sJ d S )Nr(   )r4   r)   r*   r*   
   r8   r8   ri   r)   r   r   r   r   r   r   r   r   r   r   r   r   )r+   get_num_coordinatesr	   r-   r.   s    r0   test_get_num_coordinatesrk      sA    (W)<==DDFFFVVVVVVVVVr2   c                  v    t          j        t          dz                                             } | g dk    sJ dS )z;All geometry types have no SRID by default; None returns -1r(   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r>   N)r+   get_sridr	   r-   r.   s    r0   test_get_sridrn      sA    i'12299;;FUUUUUUUUUr2   c                      t          j        t          d          } t          j        t                    dk    sJ t          j        |           dk    sJ d S )Ni  r   )r+   set_sridr   rm   r.   s    r0   test_get_set_sridrq      sR    eT**FE""a''''F##t++++++r2   func)r)      r   zGEOS < 3.12)reason)marksc                 D    t          j         | |                    sJ d S r(   )npisnan)rr   r;   s     r0   test_get_xyz_no_pointry      s(    & 8DDJJr2   c                  z    t          j        t          t          g                                          ddgk    sJ d S )Ng       @)r+   get_xr   r!   r-    r2   r0   
test_get_xr}      8    =%)**1133SzAAAAAAr2   c                  z    t          j        t          t          g                                          ddgk    sJ d S )Ng      @)r+   get_yr   r!   r-   r|   r2   r0   
test_get_yr      r~   r2   c                  l    t          j        t          g                                          dgk    sJ d S )Ng      @)r+   get_zr!   r-   r|   r2   r0   
test_get_zr      s3    ='##**,,555555r2   c                  `    t          j        t          j        t                              sJ d S r(   )rw   rx   r+   r   r   r|   r2   r0   test_get_z_2dr      s(    8GM%(()))))))r2   z,M coordinates not supported with GEOS < 3.12c                  .   t          j        t          t          g                                          ddgk    sJ t          j        t          j        t                              sJ t          j        t          j        t                              sJ d S )Ng      @)	r+   get_mr    r"   r-   rw   rx   r   r!   r|   r2   r0   
test_get_mr      sz    
 ='8,--44663*DDDD8GM%(()))))8GM'**+++++++r2   c                    t          j        t          |                     }t          |           rDt	          j        t                    5  t          ||            d d d            d S # 1 swxY w Y   d S t          ||            d S r(   )r+   from_wktstrr   pytestraisesAssertionErrorr   rB   s     r0   test_new_from_wktr      s    c$ii((F066 .]>** 	2 	2#FD111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	 -----s   
A((A,/A,c                      t          dd          } t          j        t                    5  | xj        dz  c_        d d d            d S # 1 swxY w Y   d S )Nr8   r4   )r   r   r   AttributeError_geom)r   s    r0   test_adapt_ptr_raisesr      s    !QKKE	~	&	&  q                 s   AAAc                 `    | t          j        | d           h}t          |          dk    sJ d S )Nc                     | S r(   r|   )xs    r0   <lambda>z!test_set_unique.<locals>.<lambda>   s     r2   r4   )r+   	transformlen)r;   as     r0   test_set_uniquer      s2    	w {{334Aq66Q;;;;;;r2   c                  "   t                      5  t          t          j        t          j        t          j        gt          j        t          j        gggdz                      } d d d            n# 1 swxY w Y   t          |           dk    sJ d S Nri   r4   )r   setr+   linestringsrw   nanr   r   s    r0   test_set_nanr      s     
		 R R#rvrv&68H%I$JR$OPPQQR R R R R R R R R R R R R R Rq66Q;;;;;;s   AA//A36A3c                  `    t          t          gdz            } t          |           dk    sJ d S r   )r   r   r   r   s    r0   test_set_nan_same_objectsr      s0     	_"##Aq66Q;;;;;;r2   c                     t          j        |           }|dk    rg }n"t          j        | t          |                    }t          j        |           }t          |          |k    sJ t          ||           d S Nr   )r+   r9   rZ   range	get_partsr   r   )r;   expected_num_partsexpected_partspartss       r0   test_get_partsr     s    & !3D99Q -dE:L4M4MNNd##Eu::+++++E>22222r2   c                     t          j        d t          t          t          t
          g          } g }| D ]N}t          t          j        |                    D ]*}|	                    t          j
        ||                     +Ot          j        |           }t          |          t          |          k    sJ t          ||           d S r(   )rw   arrayr   r   r   r   r   r+   r9   appendrZ   r   r   r   )r;   r   gir   s        r0   test_get_parts_arrayr   %  s     8T,k5-PQQDN > >w1!4455 	> 	>A!!'"6q!"<"<====	> d##Eu::^,,,,,,E>22222r2   c                     t          j        t          t          t          g          } t          j        |           }t          j        | t          |                    }t          j        |           }t          |          |k    sJ t          ||           g }t          j        |          D ]N}t          t          j        |                    D ]*}|                    t          j        ||                     +Ot          j        |          }t          |          t          |          k    sJ t          ||           dS )zOn the first pass, the individual Multi* geometry objects are returned
    from the collection.  On the second pass, the individual singular geometry
    objects within those are returned.
    N)r+   geometrycollectionsr   r   r   r9   rZ   r   r   r   r   rw   asarrayr   )r;   r   r   r   expected_subpartsr   r   subpartss           r0   (test_get_parts_geometry_collection_multir   3  s8   
 &5F'VWWD 3D99)$6H0I0IJJNd##Eu::+++++E>222Z'' A Aw1!4455 	A 	AA$$W%9!Q%?%?@@@@	A  ''Hx==C 1222222H&788888r2   c                  
   t          j        t          t          t          g          } g }g }t          |           D ]f\  }}t          t          j        |                    D ]?}|	                    t          j
        ||                     |	                    |           @gt          j        | d          \  }}t          |          t          |          k    sJ t          ||           t          j        ||          sJ d S NT)return_index)rw   r   r   r   r   	enumerater   r+   r9   r   rZ   r   r   r   array_equalr;   r   expected_indexr   r   jr   indexs           r0   test_get_parts_return_indexr   J  s   8[%788DNN$ % %1w1!4455 	% 	%A!!'"6q!"<"<===!!!$$$$	% $T===LE5u::^,,,,,,E>222>%0000000r2   c                     t          j        t          d          5  t          j        |            ddd           dS # 1 swxY w Y   dS zOnly 1D inputs are supportedzArray should be one dimensionalmatchNr   r   
ValueErrorr+   r   r;   s    r0   !test_get_parts_invalid_dimensionsr   Y  s     
z)J	K	K	K    $                                      >AAc                 J    t          | t          j        |                      dS )z?Non-multipart geometries should be returned identical to inputsN)r   r+   r   r   s    r0   test_get_parts_non_multir   c  s%     D'"3D"9"9:::::r2   c                 T    t          t          j        |                     dk    sJ d S r   )r   r+   r   r   s    r0   test_get_parts_Noner   i  s,    w &&''1,,,,,,r2   foo*   c                     t          j        t          d          5  t          j        |            d d d            d S # 1 swxY w Y   d S )Nz*One of the arguments is of incorrect type.r   )r   r   	TypeErrorr+   r   r   s    r0   test_get_parts_invalid_geometryr   n  s    	y(T	U	U	U    $                                   r   c                      t          j        d          5  t          j        t          d           d d d            d S # 1 swxY w Y   d S )Nz@positional argument `return_index` for `get_parts` is deprecatedr   F)r   deprecated_callr+   r   r   r|   r2   r0   #test_get_parts_deprecate_positionalr   t  s    		P
 
 
 . . 	+u---. . . . . . . . . . . . . . . . . .   >AAc                 d   t          j        |           t           j        j        k    st          j        |           r+t          j        |           }t          |          dk    sJ d S t          j        |           }t          |          dk    sJ |d         t          j        |           k    sJ d S Nr   r4   )r+   rN   rO   POLYGONis_empty	get_ringsr   rK   )r;   ringss     r0   test_get_ringsr   {  s    $ 	D!!W%9%AAAgFVG GA !$''5zzQ!$''5zzQQx74T::::::::r2   c                      t          j        t                    } t          |           dk    sJ | d         t          j        t                    k    sJ | d         t          j        t          d          k    sJ d S )Nr8   r   r4   )r+   r   r$   r   rK   rS   )r   s    r0   test_get_rings_holesr     sp    /00Eu::????8w01BCCCCCC8w01BAFFFFFFFFr2   c                     t          j        t          d t          t          g          } g }g }t          |           D ]\  }}|t          j        |          r|                    t          j	        |                     |                    |           t          t          j        |                    D ]?}|                    t          j        ||                     |                    |           @t          j        | d          \  }}t          |          t          |          k    sJ t          ||           t          j        ||          sJ d S r   )rw   r   r#   r   r$   r   r+   r   r   rK   r   r5   rS   r   r   r   r   r   s           r0   test_get_rings_return_indexr     sO   8WdM3DEFFDNN$ % %19(++9g7::;;;a   w5a8899 	% 	%A!!'";Aq"A"ABBB!!!$$$$	% $T===LE5u::^,,,,,,E>222>%0000000r2   c                     t          j        t          d          5  t          j        |            ddd           dS # 1 swxY w Y   dS r   r   r   s    r0   !test_get_rings_invalid_dimensionsr     s     
z)J	K	K	K    $                                   r   c                      t          j        d          5  t          j        t          d           d d d            d S # 1 swxY w Y   d S )Nz@positional argument `return_index` for `get_rings` is deprecatedr   F)r   r   r+   r   r#   r|   r2   r0   #test_get_rings_deprecate_positionalr     s    		P
 
 
 * * 	'5)))* * * * * * * * * * * * * * * * * *r   c                  p   t           t          t          t          t          fz   } t          j        |                                           }|dgt          |           z  k    sJ t          j	        | d          }t          j        |                                          }|dgt          |           z  k    sJ d S r   )
r	   r!   r   r   r   r+   get_precisionr-   r   set_precision)
geometriesr/   geometrys      r0   test_get_precisionr     s    g{4E}UUJ":..5577FaS3z??*****$Z33H"8,,3355FaS3z??*******r2   c                  |    t          j        t          j        t          j        d g                              sJ d S r(   )rw   rA   rx   r+   r   r|   r2   r0   test_get_precision_noner     s5    6"(70$8899:::::::r2   mode)valid_output	pointwisekeep_collapsedc                 j   t          dd          }t          j        |          dk    sJ t          dt                    5  t          j        |d|           }d d d            n# 1 swxY w Y   t          j        |          dk    sJ t          ||           t          dt                    5  t          j        |d|           }d d d            n# 1 swxY w Y   t          j        |          dk    sJ t          |t          dd                     t          |t          dd                     d S )N?r   r)   ri   r   r   r4   )r   r+   r   r   UserWarningr   r   )r   initial_geometryr   s      r0   test_set_precisionr     s   S# !122a7777	[	1	1 I I()914HHHI I I I I I I I I I I I I I I  **a////H&6777	[	1	1 I I()914HHHI I I I I I I I I I I I I I I **a////HeAqkk222,eCoo>>>>>s$    A$$A(+A(.CCCc                      t          j        t          g d          d          } t          | t          g d                     t          j        | d          } t          | t          g d                     d S )N)r   r   r   r   r4   r4   r4   r   r4   )r   r   r   )r+   r   r   r   )r   s    r0   test_set_precision_drop_coordsr     s|    $Z0P0P0P%Q%QSTUUHHj1Q1Q1Q&R&RSSS $Xq11HHj1I1I1I&J&JKKKKKr2   c                    t          dt                    5  t          j        t	          ddd          d|           }d d d            n# 1 swxY w Y   t          j        |          dk    sJ t          |t	          ddd                     d S )Nr   r   r4   r   )r   r   r+   r   r   r   r   )r   r   s     r0   test_set_precision_zr    s    	[	1	1 M M(sC)=)=qtLLLM M M M M M M M M M M M M M M  **a////HeAq#&6&677777s   'A		AAc                     t          j                    5  t          j        d           t          j        t
          d|           }t          |t
                     d d d            d S # 1 swxY w Y   d S )Nignorer4   r   )warningscatch_warningssimplefilterr+   r   r   r   )r   r/   s     r0   test_set_precision_nanr    s    		 	"	" 9 9h'''&EEE8889 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9s   AA''A+.A+c                  4    t          j        d d          J d S r   )r+   r   r|   r2   r0   test_set_precision_noner
    s!     q))11111r2   c                  d    t          j        t          dd          t          j                  J d S )Nr   )r+   r   r   rw   r   r|   r2   r0    test_set_precision_grid_size_nanr    s+     sC"&99AAAAAr2   zgeometry,mode,expected)r8   r8   rF   r8   )g	@r)   rF   rF   r8   rF   )gffffff@r)   r  r   )r  r  r)   r)   r  )r  r  r  r  r   )r  r  r  r  r  r  r  r   z%pointwise does not work pre-GEOS 3.10r   r   皙?r  )r   )r  r   r  )r   r  r   zSegfaults on GEOS 3.10.0)r   r   r   r   r   )r   r   r   z7this collapsed into an invalid linearring pre-GEOS 3.10c                     t          j        | d|          }t          t          j        |          |t           j        dk               dS )zILines and polygons collapse to empty geometries if vertices are too closer4   r   )r)   	   r   )	normalizeN)r+   r   r   force_2dgeos_version)r   r   expectedr/   s       r0   test_set_precision_collapser    sY    B "8QT:::F  &)3	     r2   c                     t          j        t          j        dddd                    } t          j        t          j        dddd                    }t          j        t          j        | |                    dk    sJ t          j        | d          } t          j        |d          }t          j        | |          }t          j        |          dk    sJ t          |t          ddg                     d	S )
zHOperations should use the most precise precision grid size of the inputsr   r   g      ?g      ?g      ?r4   r   )r4   r   N)r+   r  boxr   intersectionr   r   r   )box1box2outs      r0   test_set_precision_intersectionr!  o  s     W[AsC8899DW[q$==>>D !5dD!A!ABBaGGGG  s++D q))D

tT
*
*C %%,,,,CVV,<!=!=>>>>>r2   preserve_topologyFTc                    t          j        t                    5  t          j        t          ddg          d|           }d d d            n# 1 swxY w Y   t          t          j        |          t                                 d S )Nr   r        ?)r"  r   warnsr   r+   r   r   r   r  )r"  r/   s     r0   set_precision_preserve_topologyr'    s     
k	"	" 
 
&
+,,/
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 G,V44jllCCCCC   'AAAzGEOS >= 3.10c                     t          j        t                    5  t          j        t          ddg          dd          } d d d            n# 1 swxY w Y   t          t          j        |           t                                 d S )Nr   r  r$  r   r   r%  r.   s    r0   set_precision_pointwise_pre_310r*    s     
k	"	" 
 
&
+,,
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 G,V44jllCCCCCr(  flagsr4   rF   c                     t          j        t          t          f          5  t          j                            t          d|            d d d            d S # 1 swxY w Y   d S )Nr$  )r   r   r   r   r+   libr   r   )r+  s    r0   set_precision_illegal_flagsr.    s     

I.	/	/ ; ;!!+sE:::; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;s   'AAAc                      t          j        t          j        ddg                    } t          j        |                                           sJ dS )z(Compatibility with empty_like, see GH373N)rw   
empty_liker   r+   r@   rA   )r   s    r0   
test_emptyr1    sH    
bhd|,,--Aa  $$&&&&&&&r2   zgeom,expectedc                     t          j        |           }t          j        |          dk    sJ t          ||           d S )Nr8   )r+   r  rf   r   r;   r  r/   s      r0   test_force_2dr4    sF    4 d##F+F33q8888FH-----r2   c                     t          j        | d          }t          j        |          dk    sJ t          ||           d S )NrF   )zr)   )r+   force_3drf   r   r3  s      r0   test_force_3dr8    sK    4 da(((F+F33q8888FH-----r2   )vr  numpyrw   r   r+   r   r   r   r   r   shapely.testingr   shapely.tests.commonr	   r
   empty_geometry_collectionr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r1   r6   r:   markparametrizerC   rI   rL   rQ   rT   rX   r[   r]   ra   rd   rg   rk   rn   rq   r{   r   r   paramr   skipifr  r   rN   rO   POINTry   r}   r   r   r   r   r   r   r   r   r   r0  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r
  r  r  r!  r'  r*  r.  r1  r   geometry_collection_2r4  r8  r|   r2   r0   <module>rC     s          H H H H H H H H H H H H H H 3 3 3 3 3 3                                                               DU U U
U U U
U U U
 

 
, ,
 
,
 +{!;<<1 1 =<1 
 , , ,
R R R
 
 , , ,
1 1 1 %k7!KLL1 1 ML1 
[+]<OP 1 1 1V V V
W W W
     
W W W
V V V, , , 
M+$$$z1- %  	
 	
 	
	
  
BHY++I66':N:TTU    	  $ B B BB B B6 6 6* * * :%9   , ,	 , ++. . ,+.   ++  ,+
     
!$hbhv&&'' $	3 	3% $	33 3 39 9 9.1 1 1 
fX+;@Q2R1ST    	   %g!>??; ; @?;
 $!344- - 54- %%"!566    76 
. . . 
! "	; 	;# "	;G G G1 1 1& D6(gYK!899    :9 * * *+ + +; ; ; !PQQ? ? RQ?$L L L !PQQ8 8 RQ8 !PQQ9 9 RQ92 2 2B B B  GPPPQQLG<<<==G<<<== 		
 	GPPPQQGLLLMM+$$$z1> %  		
 	
 	
 GPPPQQLG<<<==G<<<== 		
 
VZ(	)	)>::<<HJ
+,,J'((+$$$z1> %  		
 	
 	
 J
+,,J'((	

 	JGGGHHJLL+$$$
2;U %  		
 	
 	
 	JGGGHHJ???@@+$$$z1> %  		
 	
 	
 	JGGGHHJ///00+$$$z1P %  		
 		
 		
 GDDDEEGII	

 	GDDDEEG<<<==+$$$z1> %  		
 	
 	
 GDDDEEGII	
m[^ ^~ ^ ^~? ? ?  ,udm<<D D =<D G(J6~NND D OND 828QF#3#3Q">??; ; @?;' ' ' 43UK4HII  		%	k"	$	k"	$	-.	/0	'	G	-.	/0	k"	$	-.	/0	&	-(	 56	 56) 2. .3 2. 		'	m$	&	m$	&	/0	12	)	I	/0	12	m$	&	/0	12	(	/*	 56	 56) 2. .3 2. . .r2   