Ë
    Eêñie  ã                  óJ  — U d 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mZmZmZmZmZmZmZ ddlmZmZmZmZmZmZmZ ddlm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' ddl(m)Z) ddl*m+Z+ ddl,m-Z- ddl.m/Z/ ddl0m1Z1 ddl2m3Z3 ddl4m5Z5 ddl6m7Z7 ddl8m9Z9 ddl:m;Z; ddl<m=Z= ddl>m?Z? ddl@mAZA ddlBmCZCmDZD ddlEmFZFmGZGmHZHmIZI ddlJmKZK ddlLmMZM ddlNmOZO dd lPmQZQ dd!lRmSZS dd"lTmUZU dd#lVmWZW dd$lXmYZY dd%lZm[Z[ dd&l\m]Z] dd'l^m_Z_ dd(l`maZa dd)lbmcZc dd*ldmeZe dd+lfmgZg dd,lhmiZi dd-ljmkZk dd.llmmZm dd/lnmoZo dd0lpmqZq dd1lrmsZs dd2ltmuZu dd3lvmwZw dd4lxmyZy dd5lzm{Z{ dd6l|m}Z} dd7l~mZ dd8l€m�Z� dd9l‚mƒZƒ dd:l„m…Z… dd;l†m‡Z‡ dd<lˆm‰Z‰ dd=lŠm‹Z‹ dd>lŒm�Z� dd?lŽm�Z� dd@l�m‘Z‘m’Z’ ddAl“m”Z” ddBl•m–Z– ddCl—m˜Z˜ ddDl™mšZš ddEl›mœZ� ddFl›mžZž er$ddGlŸm Z  ddHl¡m¢Z¢ ddIl£m¤Z¤ ddJl¥m¦Z¦ ddKlEm§Z§ ddLl¨m©Zª dMZ«dNe¬dO<    edP«      Z­e®Z¯dQe¬dR<   ee¯   Z°dQe¬dS<   eg e–f   Z±dQe¬dT<   dUa²dVe¬dW<   d]dX„Z³d]dY„Z´ G dZ„ d[ge!‘ei‘e%‘e'‘ek‘em‘eo‘eq‘es‘e)‘eu‘e-‘e/‘ey‘e{‘e1‘e3‘e5‘e7‘e9‘e;‘e=‘eA‘eM‘eK‘eO‘eQ‘e}‘e‘e�‘eS‘eU‘eW‘e+‘eY‘eƒ‘e‡‘e…‘e‰‘e[‘e]‘e_‘ea‘e?‘ec‘e‹‘e�‘ee‘e�‘e#‘eg‘ew‘e‘­Ž Zµd^d\„Z¶y)_z@Allows us to create and absorb changes (aka Deltas) to elements.é    )ÚannotationsN)ÚCallableÚIterable)Údeepcopy)ÚTYPE_CHECKINGÚAnyÚFinalÚLiteralÚNoReturnÚ	TypeAliasÚTypeVarÚcast)Úcli_utilÚconfigÚcursorÚenv_utilÚloggerÚruntimeÚutil)ÚBidiComponentMixin)Úcontext_dg_stackÚ"get_last_dg_added_to_context_stack)Ú
AlertMixin)Ú
ArrowMixin)ÚBalloonsMixin)Ú
BokehMixin)Ú	CodeMixin)ÚPydeckMixin)Ú
EmptyMixin)ÚExceptionMixin)Ú	FormMixin)ÚGraphvizMixin)ÚHeadingMixin)Ú	HelpMixin)Ú	HtmlMixin)ÚIframeMixin)Ú
ImageMixin)Ú	JsonMixin)ÚLayoutsMixin)ÚFormDataÚcurrent_form_id)Úget_height_configÚget_text_alignment_configÚget_width_configÚvalidate_text_alignment)ÚMapMixin)ÚMarkdownMixin)Ú
MediaMixin)ÚMetricMixin)ÚPdfMixin)ÚPlotlyMixin)ÚProgressMixin)ÚPyplotMixin)Ú	SnowMixin)Ú
SpaceMixin)ÚSpinnerMixin)Ú
TableMixin)Ú	TextMixin)Ú
ToastMixin)ÚVegaChartsMixin)ÚAudioInputMixin)ÚButtonMixin)ÚButtonGroupMixin)ÚCameraInputMixin)Ú	ChatMixin)ÚCheckboxMixin)ÚColorPickerMixin)ÚDataEditorMixin)ÚFeedbackMixin)ÚFileUploaderMixin)ÚMenuButtonMixin)ÚMultiSelectMixin)ÚNumberInputMixin)Ú
RadioMixin)ÚSelectSliderMixin)ÚSelectboxMixin)ÚSliderMixin)ÚTextWidgetsMixin)ÚTimeWidgetsMixin)Ú
WriteMixin)ÚNoSessionContextÚStreamlitAPIException)Ú	Block_pb2)Ú
ForwardMsg)ÚRootContainer)Úcaching)Úenqueue_message)Úget_script_run_ctx)ÚTracebackType)ÚMessage)ÚCursor)ÚAddRowsMetadata)ÚLayoutConfig)ÚElementi  à z
Final[int]ÚMAX_DELTA_BYTESÚValuer   Ú	BlockTypeÚAncestorBlockTypesÚForwardMsgCreatorFÚboolÚ_use_warning_has_been_displayedc                 ó’  — t         sÁda t        j                  ddd¬«      } t        j                  «       r)t        j                  d«      j                  d| › d�«       yt        j                  «       sUt        j                  d«      r?t        j                  d	   }t        j                  d«      j                  d| › d
|› d�«       yyyy)z¡Print a warning if Streamlit is imported but not being run with `streamlit run`.
    The warning is printed only once, and is printed using the root logger.
    TúWarning:Úyellow©ÚboldÚfgÚrootú
  z’ to view a Streamlit app on a browser, use Streamlit in a file and
  run it with the following command:

    streamlit run [FILE_NAME] [ARGUMENTS]z#global.showWarningOnDirectExecutionr   zb to view this Streamlit app on a browser, run it with the following
  command:

    streamlit run z [ARGUMENTS]N)rg   r   Ústyle_for_clir   Úis_replr   Ú
get_loggerÚwarningr   Úexistsr   Ú
get_optionÚsysÚargv)rs   Úscript_names     ú[/var/www/pod-logistic/pod-ai/venv/lib/python3.12/site-packages/streamlit/delta_generator.pyÚ_maybe_print_use_warningrz   Š   sÅ   € õ +Ø*.Ð'ä×(Ñ(¨¸$À8ÔLˆä×ÑÔÜ×Ñ˜fÓ%×-Ñ-Ø�w�ið  *ð *õô —‘Ô!¤f×&7Ñ&7Ø1ô'
ô Ÿ(™( 1™+ˆKä×Ñ˜fÓ%×-Ñ-Ø�w�ið  BØBMÀð Oðõð'
Ð!ð +ó    c                 óº   — t        «       } | rOt        | dd«      rAt        j                  ddd¬«      }t	        j
                  d«      j                  d|› d	�«       y
y
y
)zJPrint a warning if elements are being modified during a fragment callback.Úin_fragment_callbackFri   Trj   rk   rn   ro   a   A fragment rerun was triggered with a callback that displays one or more elements. During a fragment rerun, within a callback, displaying elements is not officially supported because those elements will replace the existing elements at the top of your app.N)rZ   Úgetattrr   rp   r   rr   rs   )Úctxrs   s     ry   Ú&_maybe_print_fragment_callback_warningr€   ¨   s`   € ä
Ó
€CÙ
Œw�sÐ2°EÔ:Ü×(Ñ(¨¸$À8ÔLˆä×Ñ˜&Ó!×)Ñ)Ø�7�)ð Xð Xõ	
ð ;€sr{   c                  ól  — e Zd ZdZej
                  dddf	 	 	 	 	 	 	 	 	 dd„Zdd„Zdd„Z	 	 	 	 	 	 	 	 dd„Z	e
dd„«       Ze
dd„«       Zdd	„Zdd
„Ze
dd„«       Ze
dd„«       Z	 	 	 	 dd„Ze
d d„«       Ze
d!d„«       Ze
dd„«       Zd"d„Zdd„Z	 	 d#	 	 	 	 	 	 	 	 	 d$d„Z	 	 d#	 	 	 	 	 d%d„Z	 d&	 	 	 	 	 d'd„Zy)(ÚDeltaGeneratoraG  Creator of Delta protobuf messages.

    Parameters
    ----------
    root_container: BlockPath_pb2.BlockPath.ContainerValue or None
      The root container for this DeltaGenerator. If None, this is a null
      DeltaGenerator which doesn't print to the app at all (useful for
      testing).

    cursor: cursor.Cursor or None
      This is either:
      - None: if this is the running DeltaGenerator for a top-level
        container (MAIN or SIDEBAR)
      - RunningCursor: if this is the running DeltaGenerator for a
        non-top-level container (created with dg.container())
      - LockedCursor: if this is a locked DeltaGenerator returned by some
        other DeltaGenerator method. E.g. the dg returned in dg =
        st.text("foo").

    parent: DeltaGenerator
      To support the `with dg` notation, DGs are arranged as a tree. Each DG
      remembers its own parent, and the root of the tree is the main DG.

    block_type: None or "vertical" or "horizontal" or "column" or "expandable"
      If this is a block DG, we track its type to prevent nested columns/expanders

    Nc                ó4  — |�|�||j                   k7  rt        d«      ‚|| _        || _        || _        || _        d| _        | j                  j                  D ]>  }|j                  j                  «       D ]  }t        |«      sŒ| j                  |_        Œ! Œ@ y)am  Inserts or updates elements in Streamlit apps.

        As a user, you should never initialize this object by hand. Instead,
        DeltaGenerator objects are initialized for you in two places:

        1) When you call `dg = st.foo()` for some method "foo", sometimes `dg`
        is a DeltaGenerator object. You can call methods on the `dg` object to
        update the element `foo` that appears in the Streamlit app.

        2) This is an internal detail, but `st.sidebar` itself is a
        DeltaGenerator. That's why you can call `st.sidebar.foo()` to place
        an element `foo` inside the sidebar.

        NzHDeltaGenerator root_container and cursor.root_container must be the same)Úroot_containerÚRuntimeErrorÚ_root_containerÚ_provided_cursorÚ_parentÚ_block_typeÚ
_form_dataÚ	__class__Ú	__bases__Ú__dict__ÚvaluesÚcallableÚ
__module__)Úselfr„   r   ÚparentÚ
block_typeÚmixinÚfuncs          ry   Ú__init__zDeltaGenerator.__init__  s£   € ð0 Ð&ØÐ"Ø &×"7Ñ"7Ò7äØZóð ð  .ˆÔð !'ˆÔàˆŒØ%ˆÔð ,0ˆŒð —^‘^×-Ñ-ò 	6ˆEØŸ™×-Ñ-Ó/ò 6�Ü˜D•>Ø&*§o¡o�D•Oñ6ñ	6r{   c                ó,   — t        j                  | «      S ©N)r   Úrepr_©r‘   s    ry   Ú__repr__zDeltaGenerator.__repr__@  s   € Ü�z‰z˜$ÓÐr{   c                ó\   — t        j                  g t        j                  «       ¢| ‘­«       y r˜   ©r   ÚsetÚgetrš   s    ry   Ú	__enter__zDeltaGenerator.__enter__C  s%   € ä×ÑÐ<Ô/×3Ñ3Ó5Ð<°tÑ<Õ=r{   c                óX   — t        j                  t        j                  «       d d «       y)NéÿÿÿÿFr�   )r‘   ÚtypÚexcÚtbs       ry   Ú__exit__zDeltaGenerator.__exit__G  s(   € ô 	×ÑÔ-×1Ñ1Ó3°C°RÐ8Ô9ð r{   c                ó@   — | | j                   k(  rt        «       }|�|S | S )zóReturn the DeltaGenerator that's currently 'active'.
        If we are the main DeltaGenerator, and are inside a `with` block that
        creates a container, our active_dg is that container. Otherwise,
        our active_dg is self.
        )Ú_main_dgr   )r‘   Úlast_context_stack_dgs     ry   Ú
_active_dgzDeltaGenerator._active_dgT  s/   € ð �4—=‘=Ò ô %GÓ$HÐ!Ø$Ð0Ø,Ð,ð ˆr{   c                óJ   — | j                   r| j                   j                  S | S )z±Return this DeltaGenerator's root - that is, the top-level ancestor
        DeltaGenerator that we belong to (this generally means the st._main
        DeltaGenerator).
        )rˆ   r¨   rš   s    ry   r¨   zDeltaGenerator._main_dgf  s   € ð )-¯ªˆt�|‰|×$Ñ$Ð>¸$Ð>r{   c           	     óŒ   ‡ ‡‡— dd l }t        |«      D �cg c]  }t        t        ||«      «      sŒ|‘Œ c}Šdˆˆ ˆfd„}|S c c}w )Nr   c                 ó¸   •— ‰‰v rE‰j                   t        j                  k(  rd‰› d‰› d�}t        |«      ‚d‰› d‰› d�}t        |«      ‚d‰› d�}t        |«      ‚)NzMethod `z6()` does not exist for `st.sidebar`. Did you mean `st.z()`?zB()` does not exist for `DeltaGenerator` objects. Did you mean `st.ú`z%()` is not a valid Streamlit command.)r†   rW   ÚSIDEBARrT   )ÚargsÚkwargsÚmessageÚnamer‘   Ústreamlit_methodss      €€€ry   Úwrapperz+DeltaGenerator.__getattr__.<locals>.wrapperu  s“   ø€ ØÐ(Ñ(Ø×'Ñ'¬=×+@Ñ+@Ò@à" 4 &ð ):Ø:>¸¸tðEð ô (¨Ó0Ð0ð # 4 &ð )à#˜f Dð*ð ô (¨Ó0Ð0ð ˜d˜VÐ#HÐI�ä'¨Ó0Ð0r{   )r°   r   r±   r   Úreturnr   )Ú	streamlitÚdirr�   r~   )r‘   r³   ÚstÚmethod_namerµ   r´   s   ``   @ry   Ú__getattr__zDeltaGenerator.__getattr__n  sA   ú€ Ûô ,/¨r«7ö
Ø'´h¼wÀrÈ;Ó?WÕ6XŠKò
Ð÷	1ð$ ˆùò-
s
   •A°Ac                óÌ   — t        | j                  t        | j                  «      t        | j                  «      | j
                  ¬«      }t        | j                  «      |_        |S )N©r„   r   r’   r“   )r‚   r†   r   Ú_cursorrˆ   r‰   rŠ   )r‘   Ú_memoÚdgs      ry   Ú__deepcopy__zDeltaGenerator.__deepcopy__‰  sM   € ÜØ×/Ñ/Ü˜DŸL™LÓ)Ü˜DŸL™LÓ)Ø×'Ñ'ô	
ˆô ! §¡Ó1ˆŒØˆ	r{   c              #  ó<   K  — | }|�|–— |j                   }|�Œy y ­wr˜   )rˆ   )r‘   Ú
current_dgs     ry   Ú
_ancestorszDeltaGenerator._ancestors“  s*   è ø€ à,0ˆ
ØÐ$ØÒØ#×+Ñ+ˆJð Ó$ùs   ‚šc              #  ód   K  — | j                   D ]  }|j                  €Œ|j                  –— Œ y­w)znIterate all the block types used by this DeltaGenerator and all
        its ancestor DeltaGenerators.
        N)rÄ   r‰   )r‘   Úas     ry   Ú_ancestor_block_typesz$DeltaGenerator._ancestor_block_typesš  s/   è ø€ ð
 —‘ò 	$ˆAØ�}‰}Ñ(Ø—m‘mÓ#ñ	$ùs   ‚0Ÿ0c                ó&   — t        d„ |D «       «      S )Nc              3  ó,   K  — | ]  }|d k(  sŒ	d–— Œ y­w)Úcolumné   N© )Ú.0Úancestor_blocks     ry   ú	<genexpr>z>DeltaGenerator._count_num_of_parent_columns.<locals>.<genexpr>¦  s   è ø€ ò 
Ø ¸NÈhÓ<VŒAñ
ùs   ‚
�)Úsum)r‘   Úancestor_block_typess     ry   Ú_count_num_of_parent_columnsz+DeltaGenerator._count_num_of_parent_columns£  s   € ô ñ 
Ø$8ô
ó 
ð 	
r{   c                óp   — | j                   €t        j                  | j                  «      S | j                   S )z£Return our Cursor. This will be None if we're not running in a
        ScriptThread - e.g., if we're running a "bare" script outside of
        Streamlit.
        )r‡   r   Úget_container_cursorr†   rš   s    ry   r¾   zDeltaGenerator._cursorª  s3   € ð × Ñ Ð(Ü×.Ñ.¨t×/CÑ/CÓDÐDØ×$Ñ$Ð$r{   c                ó   — | j                   d u S r˜   )r‡   rš   s    ry   Ú_is_top_levelzDeltaGenerator._is_top_level´  s   € à×$Ñ$¨Ð,Ð,r{   c                ó*   — t        t        | «      «      S r˜   )ÚstrÚidrš   s    ry   Ú_idzDeltaGenerator._id¸  s   € ä”2�d“8‹}Ðr{   c                ój   — | j                   j                  }|€t        d«      ‚ |j                  «       S )NzCursor is not set)rª   r¾   rS   Úget_transient_cursor)r‘   r   s     ry   Ú_get_transient_cursorz$DeltaGenerator._get_transient_cursor¼  s3   € Ø—‘×(Ñ(ˆØˆ>Ü"Ð#6Ó7Ð7à*ˆv×*Ñ*Ó,Ð,r{   c                ót   — | j                   }|j                  �t        |j                  j                  «      S dS )aÝ  Returns the element's delta path as a string like "[0, 2, 3, 1]".

        This uniquely identifies the element's position in the front-end,
        which allows (among other potential uses) the MediaFileManager to maintain
        session-specific maps of MediaFile objects placed with their "coordinates".

        This way, users can (say) use st.image with a stream of different images,
        and Streamlit will expire the older images and replace them in place.
        z[])rª   r¾   rØ   Ú
delta_path)r‘   rÀ   s     ry   Ú_get_delta_path_strz"DeltaGenerator._get_delta_path_strÃ  s0   € ð �_‰_ˆØ-/¯Z©ZÐ-CŒs�2—:‘:×(Ñ(Ó)ÐMÈÐMr{   c                óö  — | j                   }t        «       }|r"|j                  rt        |«      rt	        d«      ‚t        «        t        «        t        «       }t        |j                  j                  |«      }|j                  |«       |rÿ|j                  �B|j                  j                  j                  j                  t        |j                  «      «       |j                  �B|j                  j                  j                   j                  t#        |j                  «      «       |j$                  �Wt'        |j$                  «       |j                  j                  j(                  j                  t+        |j$                  «      «       d}	|j,                  �F|j.                  �:|j.                  j0                  |j2                  j0                  dd t5        |«       d}	|	r]|j.                  �|j.                  j7                  ||¬«      nd}
t9        |j,                  |
|¬«      }t;        t=        |«      «      |_        n|}tA        jB                  ||| jD                  |jD                  |jD                  |¬«       |S )a  Create NewElement delta, fill it, and enqueue it.

        Parameters
        ----------
        delta_type : str
            The name of the streamlit method being called
        element_proto : proto
            The actual proto in the NewElement type e.g. Alert/Button/Slider
        add_rows_metadata : AddRowsMetadata or None
            Metadata for the add_rows method

        Returns
        -------
        DeltaGenerator
            Return a DeltaGenerator that can be used to modify the newly-created
            element.
        zÉCalling `st.sidebar` in a function wrapped with `st.fragment` is not supported. To write elements to the sidebar with a fragment, call your fragment function inside a `with st.sidebar` context manager.NFT)Ú
delta_typeÚadd_rows_metadata)r„   r   r’   )Úinvoked_dg_idÚ
used_dg_idÚreturned_dg_idÚlayout_config)#rª   rZ   Úcurrent_fragment_idÚ_writes_directly_to_sidebarrT   rz   r€   rV   r~   ÚdeltaÚnew_elementÚCopyFromÚheightÚheight_configr,   ÚwidthÚwidth_configr.   Útext_alignmentr/   Útext_alignment_configr-   r†   r¾   rß   ÚmetadataÚ_enqueue_messageÚget_locked_cursorr‚   r*   r+   rŠ   rX   Úsave_element_messagerÚ   )r‘   râ   Úelement_protorã   rç   rÀ   r   ÚmsgÚmsg_el_protoÚmsg_was_enqueuedÚ
new_cursorÚ	output_dgs               ry   Ú_enqueuezDeltaGenerator._enqueueÑ  s   € ð2 �_‰_ˆä Ó"ˆÙ�3×*Ò*Ô/JÈ2Ô/NÜ'ðPóð ô 	!Ô"ä.Ô0ô ‹lˆÜ˜sŸy™y×4Ñ4°jÓAˆØ×Ñ˜mÔ,áØ×#Ñ#Ð/Ø—	‘	×%Ñ%×3Ñ3×<Ñ<Ü% m×&:Ñ&:Ó;ôð ×"Ñ"Ð.Ø—	‘	×%Ñ%×2Ñ2×;Ñ;Ü$ ]×%8Ñ%8Ó9ôð ×+Ñ+Ð7Ü'¨×(DÑ(DÔEØ—	‘	×%Ñ%×;Ñ;×DÑDÜ-¨m×.JÑ.JÓKôð
 !ÐØ×ÑÐ)¨b¯j©jÐ.DØ)+¯©×)>Ñ)>ˆC�L‰L×#Ñ#¡AÐ&ä˜SÔ!Ø#Ðáð —:‘:Ð)ð —
‘
×,Ñ,Ø)Ð=Nð -ô ð ð ô 'Ø!×1Ñ1Ø!ØôˆIô $,¬O¸BÓ,?Ó#@ˆIÕ ð ˆIô 	×$Ñ$ØØØŸ(™(Ø—v‘vØ$Ÿ=™=Ø'õ	
ð Ðr{   c           	     ó2  — |€t        j                  «       }| j                  }|j                  d«      }|j                  �|j
                  €|S t        «       }|j
                  j                  |j                  j                  d d  |j                  j                  j                  |«       t        j                  |j                  g |j
                  j                  ¢|j
                  j                  ‘­¬«      }|€t         }t#        d ||j                  |||¬«      «      }t%        t'        |«      «      |_        |j
                  j+                  d ¬«       t-        |«       t/        j0                  || j2                  |j2                  |j2                  ¬«       |S )NÚtype)r„   Úparent_pathr‚   r½   )rã   )rä   rå   ræ   )rU   ÚBlockrª   Ú
WhichOneofr†   r¾   rV   rß   ró   rê   Ú	add_blockrì   r   ÚRunningCursorr   Úindexr‚   r   r*   r+   rŠ   rõ   rô   rX   Úsave_block_messagerÚ   )r‘   Úblock_protoÚdg_typerÀ   r“   rø   Úblock_cursorÚblock_dgs           ry   Ú_blockzDeltaGenerator._block:  sY  € ð
 ÐÜ#Ÿ/™/Ó+ˆKð �_‰_ˆð !×+Ñ+¨FÓ3ˆ
à×ÑÐ%¨¯©Ð);ØˆIä‹lˆØ%'§Z¡Z×%:Ñ%:ˆ�‰×Ñ¡Ð"Ø�	‰	×Ñ×$Ñ$ [Ô1ô
 ×+Ñ+Ø×-Ñ-ØC˜"Ÿ*™*×0Ñ0ÐC°"·*±*×2BÑ2BÑCô
ˆð ˆ?Ü$ˆGäØÙØ!×1Ñ1Ø#ØØ%ô	ó
ˆô '¤°rÓ':Ó;ˆÔð 	�
‰
×$Ñ$°tÐ$Ô<Ü˜Ôä×"Ñ"ØØŸ(™(Ø—v‘vØ#Ÿ<™<õ		
ð ˆr{   c                ó¶  ‡‡‡‡‡	— | j                  «       }|j                  Š|j                  Š|j                  Š|rt|j                  �.‰j
                  j                  t        |j                  «      «       |j                  �.‰j                  j                  t        |j                  «      «       t        j                  «       Š	dˆˆˆˆˆ	fd„}dˆˆˆˆ	fd„}||fS )aa  Provides the factory functions for creating and clearing transient elements.
        It preserves the delta path, transient index, and the set of transient elements.

        Returns a tuple of two functions:
        - create_transient_element: Creates the new transient element.
        - clear_transient_element: Clears the transient element.
        c                 ó|  •— ‰5  ‰‰‰<   t        «       } ‰| j                  j                  d d  d| j                  _        | j                  j
                  j                  «        ‰D ]?  }| j                  j
                  j                  j                  «       j                  |«       ŒA 	 d d d «       | S # 1 sw Y    S xY w©NF©
rV   ró   rß   Ú	cacheablerê   Únew_transientÚSetInParentÚelementsÚaddrì   )Ú
create_msgÚerß   r÷   Útransient_elementsÚtransient_indexÚtransient_locks     €€€€€ry   Úcreate_transient_elementz;DeltaGenerator._transient.<locals>.create_transient_element•  s³   ø€ Øñ 
NØ6CÐ" ?Ñ3ä'›\�
Ø4>�
×#Ñ#×.Ñ.©qÐ1Ø05�
×#Ñ#Ô-ð × Ñ ×.Ñ.×:Ñ:Ô<Ø+ò N�AØ×$Ñ$×2Ñ2×;Ñ;×?Ñ?ÓA×JÑJÈ1ÕMñN÷
Nð Ð÷
Nð Ðús   „B"B1Â1B;c                 ó€  •— ‰5  ‰‰v r‰‰= t        «       } ‰| j                  j                  d d  d| j                  _        | j                  j
                  j                  «        ‰D ]?  }| j                  j
                  j                  j                  «       j                  |«       ŒA 	 d d d «       | S # 1 sw Y    S xY wr  r  )Ú	clear_msgr  rß   r  r  r  s     €€€€ry   Úclear_transient_elementz:DeltaGenerator._transient.<locals>.clear_transient_element¤  s³   ø€ Øñ 	MØ"Ð&8Ñ8Ø*¨?Ð;ä&›L�	Ø3=�	×"Ñ"×-Ñ-©aÐ0Ø/4�	×"Ñ"Ô,Ø—‘×-Ñ-×9Ñ9Ô;Ø+ò M�AØ—O‘O×1Ñ1×:Ñ:×>Ñ>Ó@×IÑIÈ!ÕLñM÷	Mð Ð÷	Mð Ðús   „B$B3Â3B=)r¶   rV   )rÝ   rß   r  r  rí   rî   rì   r,   rï   rð   r.   Ú	threadingÚLock)
r‘   r÷   rç   Útransient_cursorr  r  rß   r  r  r  s
    `    @@@@ry   Ú
_transientzDeltaGenerator._transientv  sÇ   ü€ ð  ×5Ñ5Ó7ÐØ%×0Ñ0ˆ
Ø*×:Ñ:ˆØ-×@Ñ@ÐáØ×#Ñ#Ð/Ø×+Ñ+×4Ñ4Ü% m×&:Ñ&:Ó;ôð ×"Ñ"Ð.Ø×*Ñ*×3Ñ3Ü$ ]×%8Ñ%8Ó9ôô #Ÿ™Ó)ˆ÷	ñ 	÷	ð 	ð (Ð)@Ð@Ð@r{   )
r„   z
int | Noner   úCursor | Noner’   zDeltaGenerator | Noner“   z
str | Noner¶   ÚNone)r¶   rØ   ©r¶   r#  )r£   ztype[BaseException] | Noner¤   zBaseException | Noner¥   zTracebackType | Noner¶   zLiteral[False])r¶   r‚   )r³   rØ   r¶   zCallable[..., NoReturn])r¿   r   r¶   r‚   )r¶   zIterable[DeltaGenerator])r¶   rd   )rÑ   rd   r¶   Úint)r¶   r"  )r¶   rf   )r¶   zcursor.Cursor)NN)
râ   rØ   r÷   r\   rã   zAddRowsMetadata | Nonerç   úLayoutConfig | Noner¶   r‚   )r  zBlock_pb2.Block | Noner  ztype | Noner¶   r‚   r˜   )r÷   ÚElementProtorç   r&  r¶   z+tuple[ForwardMsgCreator, ForwardMsgCreator])Ú__name__r�   Ú__qualname__Ú__doc__rW   ÚMAINr–   r›   r    r¦   Úpropertyrª   r¨   r»   rÁ   rÄ   rÇ   rÒ   r¾   rÖ   rÚ   rÝ   rà   rý   r  r!  rÌ   r{   ry   r‚   r‚   µ   sÖ  „ ñnðB &3×%7Ñ%7Ø $Ø(,Ø!%ð36à"ð36ð ð36ð &ð	36ð
 ð36ð 
ó36ój ó>ðà'ðð "ðð !ð	ð
 
óð òó ðð" ò?ó ð?óó6ð ò,ó ð,ð ò$ó ð$ð
Ø$6ð
à	ó
ð ò%ó ð%ð ò-ó ð-ð òó ðó-óNð$ 59Ø-1ðgàðgð ðgð 2ð	gð
 +ðgð 
ógðV /3Ø#ð:à+ð:ð ð:ð 
ó	:ð~ .2ð<Aà#ð<Að +ð<Að 
5ô	<Ar{   r‚   c                ó„   — t        d„ | j                  D «       «      }t        t        | j                  «      «      }|xr | S )Nc              3  óV   K  — | ]!  }|j                   t        j                  k(  –— Œ# y ­wr˜   )r†   rW   r¯   )rÍ   rÆ   s     ry   rÏ   z._writes_directly_to_sidebar.<locals>.<genexpr>¶  s!   è ø€ ÒWÀA�Q×&Ñ&¬-×*?Ñ*?Õ?ÑWùs   ‚'))ÚanyrÄ   rf   ÚlistrÇ   )rÀ   Ú
in_sidebarÚhas_containers      ry   ré   ré   µ  s9   € ÜÑWÈÏÉÔWÓW€JÜœ˜b×6Ñ6Ó7Ó8€MØÒ+˜mÐ+Ð+r{   r$  )rÀ   r‚   r¶   rf   )·r*  Ú
__future__r   rv   r  Úcollections.abcr   r   Úcopyr   Útypingr   r   r	   r
   r   r   r   r   r·   r   r   r   r   r   r   r   Ú&streamlit.components.v2.bidi_componentr   Ú$streamlit.delta_generator_singletonsr   r   Ústreamlit.elements.alertr   Ústreamlit.elements.arrowr   Ústreamlit.elements.balloonsr   Ústreamlit.elements.bokeh_chartr   Ústreamlit.elements.coder   Ú%streamlit.elements.deck_gl_json_chartr   Ústreamlit.elements.emptyr   Ústreamlit.elements.exceptionr    Ústreamlit.elements.formr!   Ú!streamlit.elements.graphviz_chartr"   Ústreamlit.elements.headingr#   Ústreamlit.elements.helpr$   Ústreamlit.elements.htmlr%   Ústreamlit.elements.iframer&   Ústreamlit.elements.imager'   Ústreamlit.elements.jsonr(   Ústreamlit.elements.layoutsr)   Ú!streamlit.elements.lib.form_utilsr*   r+   Ú#streamlit.elements.lib.layout_utilsr,   r-   r.   r/   Ústreamlit.elements.mapr0   Ústreamlit.elements.markdownr1   Ústreamlit.elements.mediar2   Ústreamlit.elements.metricr3   Ústreamlit.elements.pdfr4   Ústreamlit.elements.plotly_chartr5   Ústreamlit.elements.progressr6   Ústreamlit.elements.pyplotr7   Ústreamlit.elements.snowr8   Ústreamlit.elements.spacer9   Ústreamlit.elements.spinnerr:   Ústreamlit.elements.tabler;   Ústreamlit.elements.textr<   Ústreamlit.elements.toastr=   Ústreamlit.elements.vega_chartsr>   Ú&streamlit.elements.widgets.audio_inputr?   Ú!streamlit.elements.widgets.buttonr@   Ú'streamlit.elements.widgets.button_grouprA   Ú'streamlit.elements.widgets.camera_inputrB   Ústreamlit.elements.widgets.chatrC   Ú#streamlit.elements.widgets.checkboxrD   Ú'streamlit.elements.widgets.color_pickerrE   Ú&streamlit.elements.widgets.data_editorrF   Ú#streamlit.elements.widgets.feedbackrG   Ú(streamlit.elements.widgets.file_uploaderrH   Ú&streamlit.elements.widgets.menu_buttonrI   Ú&streamlit.elements.widgets.multiselectrJ   Ú'streamlit.elements.widgets.number_inputrK   Ú streamlit.elements.widgets.radiorL   Ú(streamlit.elements.widgets.select_sliderrM   Ú$streamlit.elements.widgets.selectboxrN   Ú!streamlit.elements.widgets.sliderrO   Ú'streamlit.elements.widgets.text_widgetsrP   Ú'streamlit.elements.widgets.time_widgetsrQ   Ústreamlit.elements.writerR   Ústreamlit.errorsrS   rT   Ústreamlit.protorU   Ústreamlit.proto.ForwardMsg_pb2rV   Ú!streamlit.proto.RootContainer_pb2rW   Ústreamlit.runtimerX   Ústreamlit.runtime.scriptrunnerrY   rô   rZ   Útypesr[   Úgoogle.protobuf.messager\   Ústreamlit.cursorr]   Ú+streamlit.elements.lib.built_in_chart_utilsr^   r_   Ústreamlit.proto.Element_pb2r`   r'  ra   Ú__annotations__rb   rØ   rc   rd   re   rg   rz   r€   r‚   ré   rÌ   r{   ry   ú<module>r{     s&  ðò Gå "ã 
Û ß .Ý ÷	÷ 	ó 	÷÷ ñ õ F÷õ 0Ý /Ý 5Ý 5Ý -Ý =Ý /Ý 7Ý -Ý ;Ý 3Ý -Ý -Ý 1Ý /Ý -Ý 3ß G÷ó õ ,Ý 5Ý /Ý 1Ý +Ý 7Ý 5Ý 1Ý -Ý /Ý 3Ý /Ý -Ý /Ý :Ý BÝ 9Ý DÝ DÝ 5Ý =Ý DÝ BÝ =Ý FÝ BÝ CÝ DÝ 7Ý FÝ ?Ý 9Ý DÝ DÝ /ß DÝ %Ý 5Ý ;Ý %Ý NÝ =áÝ#å/å'ÝKÝ@ÝCà.€�Ó .á�Ó€ð €	ˆ9Ó Ø (¨Ñ 3Ð �IÓ 3Ø'¨¨J¨Ñ7Ð �9Ó 7ð ).Ð  Ó -óó<

õ}AØð}Aàð}Að ð}Að ð	}Að
 ð}Að ð}Að ð}Að ð}Að ð}Að ð}Að ð}Að ð}Að ð}Að ð}Að ð}Að  ð!}Að" ð#}Að$ ð%}Að& ð'}Að( ð)}Að* ð+}Að, ð-}Að. ð/}Að0 ð1}Að2 ð3}Að4 ð5}Að6 ð7}Að8 ð9}Að: ð;}Að< ð=}Að> ð?}Að@ ðA}AðB ðC}AðD ðE}AðF ðG}AðH ðI}AðJ ðK}AðL ðM}AðN ðO}AðP ðQ}AðR ðS}AðT ðU}AðV ðW}AðX ðY}AðZ ð[}Að\ ð]}Að^ ð_}Að` ða}Aðb ðc}Aðd ðe}Aðf ðg}Aðh ði}Aðj ók}Aô@,r{   