Ë
    sPêjÑâ  ã                   ó8  — d dl Z d dlZd dlmZ d dlmZ d dlmZmZm	Z	 d dl
mZ ej                  dk\  rd dl
mZ nd dlmZ d dlZd dlmZ d d	lmZ d
dlmZ d
dlmZmZ d
dlmZmZ d
dl m!Z!m"Z"m#Z# d
dl$m%Z%m&Z& d
dl'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/ d
dl0m1Z2m3Z4 ddl5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z= ddl>m?Z? ddl@mAZAmBZB ddlCmDZDmEZE ddlFmGZG ddlHmIZI ddlJmKZK ddlLmMZMmNZNmOZO ddlPmQZQ  ej¤                  d¬«       G d„ d«      «       ZSej¨                   G d „ d!eUe«      «       ZV G d"„ d#ej®                  j°                  «      ZYej¨                   G d$„ d%eUe«      «       ZZ G d&„ d'ej®                  j°                  «      Z[ ej¤                  d¬«       G d(„ d)«      «       Z\ej¨                   G d*„ d+eUe«      «       Z] ej¤                  d¬«       G d,„ d-«      «       Z^ ej¤                  d¬«       G d.„ d/«      «       Z_ ej¤                  d¬«       G d0„ d1«      «       Z` ej¤                  d¬«       G d2„ d3ej®                  j°                  «      «       Za ej¤                  d¬«       G d4„ d5ej®                  j°                  «      «       Zb ej¤                  d¬«       G d6„ d7eI«      «       Zcy)8é    N)ÚIterable)ÚEnum)ÚAnyÚOptionalÚUnion)Úwarn)é   é   )Ú
deprecated)Ú
PackageURL)Ú	SortedSeté   )Úbom_ref_from_str)ÚComparablePackageURLÚComparableTuple)ÚInvalidOmniBorIdExceptionÚInvalidSwhidException)Ú!CycloneDxDeserializationExceptionÚ'SerializationOfUnexpectedValueExceptionÚ0SerializationOfUnsupportedComponentTypeException)ÚSchemaDeprecationWarning1Dot3ÚSchemaDeprecationWarning1Dot6)ÚSchemaVersion1Dot0ÚSchemaVersion1Dot1ÚSchemaVersion1Dot2ÚSchemaVersion1Dot3ÚSchemaVersion1Dot4ÚSchemaVersion1Dot5ÚSchemaVersion1Dot6ÚSchemaVersion1Dot7)Ú
PackageUrlÚXmlBoolAttributeé   )ÚAttachedTextÚExternalReferenceÚHashAlgorithmÚHashTypeÚIdentifiableActionÚPropertyÚXsUriÚ&_HashTypeRepositorySerializationHelper)ÚBomRef)ÚComponentEvidenceÚ%_ComponentEvidenceSerializationHelper)ÚOrganizationalContactÚOrganizationalEntity)ÚCryptoProperties)Ú
Dependable)Ú	IssueType)ÚLicenseÚLicenseRepositoryÚ%_LicenseRepositorySerializationHelper)ÚReleaseNotesT)Ú%ignore_unknown_during_deserializationc                   ó¦  — e Zd ZdZddddddœdee   dee   dee   dee   dee   d	dfd
„Ze	 e
j                  d«       e
j                  e
j                  j                  «      d	ee   fd„«       «       «       Zej                   dee   d	dfd„«       Ze	 e
j                  d«      d	ee   fd„«       «       Zej                   dee   d	dfd„«       Ze	 e
j                  d«      d	ee   fd„«       «       Zej                   dee   d	dfd„«       Ze	 e
j                  d«      d	ee   fd„«       «       Zej                   dee   d	dfd„«       Ze	 e
j                  d«       e
j                  e
j                  j                  «      d	ee   fd„«       «       «       Zej                   dee   d	dfd„«       Zd	efd„Zded	efd„Zded	efd„Zd	efd„Zd	efd„Zy) ÚCommitz·
    Our internal representation of the `commitType` complex type.

    .. note::
        See the CycloneDX Schema definition: https://cyclonedx.org/docs/1.7/xml/#type_commitType
    N©ÚuidÚurlÚauthorÚ	committerÚmessager<   r=   r>   r?   r@   Úreturnc                óJ   — || _         || _        || _        || _        || _        y ©Nr;   )Úselfr<   r=   r>   r?   r@   s         ú^/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/cyclonedx/model/component.pyÚ__init__zCommit.__init__T   s'   € ð ˆŒØˆŒØˆŒØ"ˆŒØˆ�ó    r#   c                 ó   — | j                   S )zç
        A unique identifier of the commit. This may be version control specific. For example, Subversion uses revision
        numbers whereas git uses commit hashes.

        Returns:
            `str` if set else `None`
        ©Ú_uid©rD   s    rE   r<   z
Commit.uidb   s   € ð �y‰yÐrG   c                 ó   — || _         y rC   rI   )rD   r<   s     rE   r<   z
Commit.uido   ó	   € àˆ�	rG   r   c                 ó   — | j                   S )z©
        The URL to the commit. This URL will typically point to a commit in a version control system.

        Returns:
             `XsUri` if set else `None`
        ©Ú_urlrK   s    rE   r=   z
Commit.urls   s   € ð �y‰yÐrG   c                 ó   — || _         y rC   rO   ©rD   r=   s     rE   r=   z
Commit.url~   rM   rG   r	   c                 ó   — | j                   S )z‰
        The author who created the changes in the commit.

        Returns:
            `IdentifiableAction` if set else `None`
        ©Ú_authorrK   s    rE   r>   zCommit.author‚   ó   € ð �|‰|ÐrG   c                 ó   — || _         y rC   rT   ©rD   r>   s     rE   r>   zCommit.author�   ó	   € àˆ�rG   é   c                 ó   — | j                   S )z…
        The person who committed or pushed the commit

        Returns:
            `IdentifiableAction` if set else `None`
        ©Ú
_committerrK   s    rE   r?   zCommit.committer‘   s   € ð �‰ÐrG   c                 ó   — || _         y rC   r\   )rD   r?   s     rE   r?   zCommit.committerœ   ó	   € à#ˆ�rG   é   c                 ó   — | j                   S )z|
        The text description of the contents of the commit.

        Returns:
            `str` if set else `None`
        ©Ú_messagerK   s    rE   r@   zCommit.message    s   € ð �}‰}ÐrG   c                 ó   — || _         y rC   rb   )rD   r@   s     rE   r@   zCommit.message¬   ó	   € àˆ�rG   c                 ó†   — t        | j                  | j                  | j                  | j                  | j
                  f«      S rC   )Ú_ComparableTupler<   r=   r>   r?   r@   rK   s    rE   Ú__comparable_tuplezCommit.__comparable_tuple°   s5   € ÜØ�H‰H�d—h‘hØ�K‰K˜Ÿ™Ø�L‰Lð!
ó ð 	rG   Úotherc                 óf   — t        |t        «      r!| j                  «       |j                  «       k(  S y©NF)Ú
isinstancer:   Ú_Commit__comparable_tuple©rD   ri   s     rE   Ú__eq__zCommit.__eq__·   s,   € Ü�eœVÔ$Ø×*Ñ*Ó,°×0HÑ0HÓ0JÑJÐJØrG   c                 óp   — t        |t        «      r!| j                  «       |j                  «       k  S t        S rC   )rl   r:   rm   ÚNotImplementedrn   s     rE   Ú__lt__zCommit.__lt__¼   s/   € Ü�eœVÔ$Ø×*Ñ*Ó,¨u×/GÑ/GÓ/IÑIÐIÜÐrG   c                 ó4   — t        | j                  «       «      S rC   )Úhashrm   rK   s    rE   Ú__hash__zCommit.__hash__Á   ó   € Ü�D×+Ñ+Ó-Ó.Ð.rG   c                 óV   — d| j                   › d| j                  › d| j                  › d�S )Nz<Commit uid=z, url=z
, message=ú>)r<   r=   r@   rK   s    rE   Ú__repr__zCommit.__repr__Ä   s)   € Ø˜dŸh™h˜Z v¨d¯h©h¨Z°zÀ$Ç,Á,ÀÈqÐQÐQrG   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Ústrr*   r(   rF   ÚpropertyÚserializableÚxml_sequenceÚ
xml_stringÚXmlStringSerializationTypeÚNORMALIZED_STRINGr<   Úsetterr=   r>   r?   r@   rg   rm   ÚobjectÚboolro   r   rr   Úintru   ry   © rG   rE   r:   r:   K   sà  „ ñð "Ø#Ø/3Ø26Ø!%òà�c‰]ðð �e‰_ðð Ð+Ñ,ð	ð
 Ð.Ñ/ðð ˜#‘ðð 
óð Ø€\×Ñ˜qÓ!Ø€\×Ñ˜\×DÑD×VÑVÓWð�X˜c‘]ò ó Xó "ó ðð 	‡Z�Zð�x ‘}ð ¨ò ó ðð Ø€\×Ñ˜qÓ!ð�X˜e‘_ò ó "ó ðð 	‡Z�Zð�x ‘ð ¨4ò ó ðð Ø€\×Ñ˜qÓ!ð˜Ð!3Ñ4ò ó "ó ðð ‡]�]ð˜XÐ&8Ñ9ð ¸dò ó ðð Ø€\×Ñ˜qÓ!ð˜8Ð$6Ñ7ò ó "ó ðð ×Ñð$ 8Ð,>Ñ#?ð $ÀDò $ó ð$ð Ø€\×Ñ˜qÓ!Ø€\×Ñ˜\×DÑD×VÑVÓWð˜ #™ò ó Xó "ó ðð ‡^�^ð ˜x¨™}ð  °ò  ó ð ðÐ$4ó ð˜Fð  tó ð
˜Cð  Dó ð
/˜#ó /ðR˜#ô RrG   r:   c                   ó   — e Zd ZdZdZdZdZy)ÚComponentScopezÙ
    Enum object that defines the permissable 'scopes' for a Component according to the CycloneDX schema.

    .. note::
        See the CycloneDX Schema definition: https://cyclonedx.org/docs/1.7/xml/#type_scope
    ÚrequiredÚoptionalÚexcludedN)rz   r{   r|   r}   ÚREQUIREDÚOPTIONALÚEXCLUDEDr‰   rG   rE   r‹   r‹   È   s   „ ñð €HØ€HØ�HrG   r‹   c            
       ó
  — e Zd ZU dZ e«       Zeeej                     e	e
   f   ed<    e	e
j                  e
j                  h«      ee<   ee   e
j                  hz  ee<   ee   ee<   ee   ee<   ee   ee<   ee   ee<   ee   ee<   ee   ee<   ede
deej                     dee   fd„«       Zededeeej                        dedee   fd	„«       Zededeeej                        dedee   fd
„«       Zedede
fd„«       Zy)Ú"_ComponentScopeSerializationHelperú   THIS CLASS IS NON-PUBLIC API  Ú)_ComponentScopeSerializationHelper__CASESÚcsÚviewrA   c                 óZ   — || j                   j                  |d«      v r|j                  S d S )Nr‰   )r•   ÚgetÚvalue)Úclsr–   r—   s      rE   Ú__normalizez._ComponentScopeSerializationHelper.__normalizeè   s1   € ð �S—[‘[—_‘_ T¨2Ó.Ñ.ð �x‰xð 	àð	rG   ÚoÚ__c                ó.   — |€J ‚| j                  ||«      S rC   ©Ú-_ComponentScopeSerializationHelper__normalize©r›   r�   r—   rž   s       rE   Újson_normalizez1_ComponentScopeSerializationHelper.json_normalizeî   ó!   € ð ÐÐÐØ�‰˜q $Ó'Ð'rG   c                ó.   — |€J ‚| j                  ||«      S rC   r    r¢   s       rE   Úxml_normalizez0_ComponentScopeSerializationHelper.xml_normalizeõ   r¤   rG   c                 ó   — t        |«      S rC   )r‹   ©r›   r�   s     rE   Údeserializez._ComponentScopeSerializationHelper.deserializeü   s   € ä˜aÓ Ð rG   N)rz   r{   r|   r}   Údictr•   Útyper€   ÚViewTypeÚ	frozensetr‹   Ú__annotations__r�   r�   r   r‘   r   r   r   r   r   r   r    Úclassmethodr   r~   r¡   r   r£   r¦   r©   r‰   rG   rE   r“   r“   Ö   sÊ  … Ù*áLPËF€GˆT�$�|×,Ñ,Ñ-¨y¸Ñ/HÐHÑIÓRÙ"+Ø×ÑØ×Ñð-ó #€GÐÑð #*Ð*<Ñ"=Ø×ÑðAñ #€GÐÑð #*Ð*<Ñ"=€GÐÑØ")Ð*<Ñ"=€GÐÑØ")Ð*<Ñ"=€GÐÑØ")Ð*<Ñ"=€GÐÑØ")Ð*<Ñ"=€GÐÑØ")Ð*<Ñ"=€GÐÑàð˜^ð °4¸×8MÑ8MÑ3Nð ÐS[Ð\_ÑS`ò ó ðð
 ð(˜sð (Ø% d¨<×+@Ñ+@Ñ&AÑBð(à ð(à%-¨c¡]ò(ó ð(ð ð(˜cð (Ø$ T¨,×*?Ñ*?Ñ%@ÑAð(àð(à$,¨S¡Mò(ó ð(ð ð!˜Cð ! Nò !ó ñ!rG   r“   c                   óD   — e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZy)ÚComponentTypezá
    Enum object that defines the permissible 'types' for a Component according to the CycloneDX schema.

    .. note::
        See the CycloneDX Schema definition: https://cyclonedx.org/docs/1.7/xml/#type_classification
    ÚapplicationÚ	containerzcryptographic-assetÚdataÚdevicezdevice-driverÚfileÚfirmwareÚ	frameworkÚlibraryzmachine-learning-modelzoperating-systemÚplatformN)rz   r{   r|   r}   ÚAPPLICATIONÚ	CONTAINERÚCRYPTOGRAPHIC_ASSETÚDATAÚDEVICEÚDEVICE_DRIVERÚFILEÚFIRMWAREÚ	FRAMEWORKÚLIBRARYÚMACHINE_LEARNING_MODELÚOPERATING_SYSTEMÚPLATFORMr‰   rG   rE   r±   r±     sM   „ ñð  €KØ€IØ/ÐØ€DØ€FØ#€MØ€DØ€HØ€IØ€GØ5ÐØ)ÐØ�HrG   r±   c            
       óø  — e Zd ZU dZ e«       Zeeej                     e	e
   f   ed<    e	e
j                  e
j                  e
j                  e
j                  e
j                   h«      ee<   ee   e
j$                  hz  ee<   ee   e
j(                  e
j*                  hz  ee<   ee   ee<   ee   ee<   ee   e
j2                  e
j4                  e
j6                  e
j8                  hz  ee<   ee   e
j<                  hz  ee<   ee   ee <   e!de
deej                     de"e#   fd„«       Z$e!de%de"eej                        de%de"e#   fd	„«       Z&e!de%de"eej                        de%de"e#   fd
„«       Z'e!de%de
fd„«       Z(y)Ú!_ComponentTypeSerializationHelperr”   Ú(_ComponentTypeSerializationHelper__CASESÚctr—   rA   c                 óx   — || j                   j                  |d«      v r|j                  S t        d|›d|›�«      ‚)Nr‰   zunsupported z
 for view )rÊ   r™   rš   r   )r›   rË   r—   s      rE   rœ   z-_ComponentTypeSerializationHelper.__normalize8  s=   € à�—‘—‘  rÓ*Ñ*Ø—8‘8ˆOÜ>ÀÈbÈVÐS]Ð^bÐ]eÐ?fÓgÐgrG   r�   rž   c                ó.   — |€J ‚| j                  ||«      S rC   ©Ú,_ComponentTypeSerializationHelper__normalizer¢   s       rE   r£   z0_ComponentTypeSerializationHelper.json_normalize>  r¤   rG   c                ó.   — |€J ‚| j                  ||«      S rC   rÎ   r¢   s       rE   r¦   z/_ComponentTypeSerializationHelper.xml_normalizeE  r¤   rG   c                 ó   — t        |«      S rC   )r±   r¨   s     rE   r©   z-_ComponentTypeSerializationHelper.deserializeL  s   € ä˜QÓÐrG   N))rz   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Å   rÇ   r   r½   r   r    r¯   r   r~   rÏ   r   r£   r¦   r©   r‰   rG   rE   rÉ   rÉ     sP  … Ù*áKOË6€GˆT�$�|×,Ñ,Ñ-¨y¸Ñ/GÐGÑHÓQÙ"+Ø×!Ñ!Ø×ÑØ×ÑØ×ÑØ×&Ñ&ð-ó #€GÐÑð #*Ð*<Ñ"=Ø×ÑðAñ #€GÐÑð #*Ð*<Ñ"=Ø×ÑØ×ÑðAñ #€GÐÑð #*Ð*<Ñ"=€GÐÑØ")Ð*<Ñ"=€GÐÑØ")Ð*<Ñ"=Ø×ÑØ×#Ñ#Ø×,Ñ,Ø×Ñð	Añ #€GÐÑð #*Ð*<Ñ"=Ø×)Ñ)ðAñ #€GÐÑð #*Ð*<Ñ"=€GÐÑàðh˜]ð h°$°|×7LÑ7LÑ2Mð hÐRZÐ[^ÑR_ò hó ðhð
 ð(˜sð (Ø% d¨<×+@Ñ+@Ñ&AÑBð(à ð(à%-¨c¡]ò(ó ð(ð ð(˜cð (Ø$ T¨,×*?Ñ*?Ñ%@ÑAð(àð(à$,¨S¡Mò(ó ð(ð ð ˜Cð   Mò  ó ñ rG   rÉ   c                   ó  — e Zd ZdZdddœdee   dee   ddfd„Zedee   fd„«       Z	e	j                  dee   ddfd	„«       Z	edee   fd
„«       Zej                  dee   ddfd„«       Zdefd„Zdedefd„Zdedefd„Zdefd„Zdefd„Zy)ÚDiffz³
    Our internal representation of the `diffType` complex type.

    .. note::
        See the CycloneDX Schema definition: https://cyclonedx.org/docs/1.7/xml/#type_diffType
    N©Útextr=   rÕ   r=   rA   c                ó    — || _         || _        y rC   rÔ   )rD   rÕ   r=   s      rE   rF   zDiff.__init__Z  s   € ð
 ˆŒ	Øˆ�rG   c                 ó   — | j                   S )zz
        Specifies the optional text of the diff.

        Returns:
            `AttachedText` if set else `None`
        ©Ú_textrK   s    rE   rÕ   z	Diff.textb  ó   € ð �z‰zÐrG   c                 ó   — || _         y rC   rØ   ©rD   rÕ   s     rE   rÕ   z	Diff.textl  ó	   € àˆ�
rG   c                 ó   — | j                   S )zi
        Specifies the URL to the diff.

        Returns:
            `XsUri` if set else `None`
        rO   rK   s    rE   r=   zDiff.urlp  ó   € ð �y‰yÐrG   c                 ó   — || _         y rC   rO   rR   s     rE   r=   zDiff.urlz  rM   rG   c                 óD   — t        | j                  | j                  f«      S rC   )rg   r=   rÕ   rK   s    rE   rh   zDiff.__comparable_tuple~  s"   € ÜØ�H‰HØ�I‰Ið!
ó ð 	rG   ri   c                 óf   — t        |t        «      r!| j                  «       |j                  «       k(  S yrk   )rl   rÓ   Ú_Diff__comparable_tuplern   s     rE   ro   zDiff.__eq__„  ó,   € Ü�eœTÔ"Ø×*Ñ*Ó,°×0HÑ0HÓ0JÑJÐJØrG   c                 óp   — t        |t        «      r!| j                  «       |j                  «       k  S t        S rC   )rl   rÓ   rã   rq   rn   s     rE   rr   zDiff.__lt__‰  ó/   € Ü�eœTÔ"Ø×*Ñ*Ó,¨u×/GÑ/GÓ/IÑIÐIÜÐrG   c                 ó4   — t        | j                  «       «      S rC   )rt   rã   rK   s    rE   ru   zDiff.__hash__Ž  rv   rG   c                 ó"   — d| j                   › d�S )Nz
<Diff url=rx   )r=   rK   s    rE   ry   zDiff.__repr__‘  s   € Ø˜DŸH™H˜: QÐ'Ð'rG   )rz   r{   r|   r}   r   r$   r*   rF   r   rÕ   r…   r=   rg   rã   r†   r‡   ro   r   rr   rˆ   ru   r~   ry   r‰   rG   rE   rÓ   rÓ   Q  s  „ ñð (,Ø#òà�|Ñ$ðð �e‰_ðð 
ó	ð ð�h˜|Ñ,ò ó ðð 
‡[�[ð˜ ,Ñ/ð °Dò ó ðð ð�X˜e‘_ò ó ðð 	‡Z�Zð�x ‘ð ¨4ò ó ððÐ$4ó ð˜Fð  tó ð
˜Cð  Dó ð
/˜#ó /ð(˜#ô (rG   rÓ   c                   ó    — e Zd ZdZdZdZdZdZy)ÚPatchClassificationzÃ
    Enum object that defines the permissible `patchClassification`s.

    .. note::
        See the CycloneDX Schema definition: https://cyclonedx.org/docs/1.7/xml/#type_patchClassification
    Úbackportzcherry-pickÚmonkeyÚ
unofficialN)rz   r{   r|   r}   ÚBACKPORTÚCHERRY_PICKÚMONKEYÚ
UNOFFICIALr‰   rG   rE   rê   rê   •  s   „ ñð €HØ€KØ€FØ�JrG   rê   c            	       óÜ  — e Zd ZdZdddœdedee   deee      ddfd„Z	e
 ej                  «       defd	„«       «       Zej                  deddfd
„«       Ze
dee   fd„«       Zej                  dee   ddfd„«       Ze
 ej                   ej"                  j$                  d«      dd„«       «       Zej                  dee   ddfd„«       Zdefd„Zdedefd„Zdedefd„Zdefd„Zdefd„Zy)ÚPatchzµ
    Our internal representation of the `patchType` complex type.

    .. note::
        See the CycloneDX Schema definition: https://cyclonedx.org/docs/1.7/xml/#type_patchType
    N)ÚdiffÚresolvesr«   rô   rõ   rA   c                ó6   — || _         || _        |xs g | _        y rC   )r«   rô   rõ   )rD   r«   rô   rõ   s       rE   rF   zPatch.__init__¬  s   € ð ˆŒ	ØˆŒ	Ø š Bˆ�rG   c                 ó   — | j                   S )zÉ
        Specifies the purpose for the patch including the resolution of defects, security issues, or new behavior or
        functionality.

        Returns:
            `PatchClassification`
        ©Ú_typerK   s    rE   r«   z
Patch.type¶  ó   € ð �z‰zÐrG   c                 ó   — || _         y rC   rø   ©rD   r«   s     rE   r«   z
Patch.typeÂ  rÝ   rG   c                 ó   — | j                   S )zÁ
        The patch file (or diff) that show changes.

        .. note::
            Refer to https://en.wikipedia.org/wiki/Diff.

        Returns:
            `Diff` if set else `None`
        ©Ú_diffrK   s    rE   rô   z
Patch.diffÆ  s   € ð �z‰zÐrG   c                 ó   — || _         y rC   rþ   )rD   rô   s     rE   rô   z
Patch.diffÓ  rÝ   rG   Úissuec                 ó   — | j                   S )zr
        Optional list of issues resolved by this patch.

        Returns:
            Set of `IssueType`
        )Ú	_resolvesrK   s    rE   rõ   zPatch.resolves×  s   € ð �~‰~ÐrG   c                 ó$   — t        |«      | _        y rC   )r   r  )rD   rõ   s     rE   rõ   zPatch.resolvesâ  ó   € ä" 8Ó,ˆ�rG   c                 ól   — t        | j                  | j                  t        | j                  «      f«      S rC   )rg   r«   rô   rõ   rK   s    rE   rh   zPatch.__comparable_tupleæ  s-   € ÜØ�I‰I�t—y‘yÜ˜TŸ]™]Ó+ð!
ó ð 	rG   ri   c                 óf   — t        |t        «      r!| j                  «       |j                  «       k(  S yrk   )rl   ró   Ú_Patch__comparable_tuplern   s     rE   ro   zPatch.__eq__ì  s,   € Ü�eœUÔ#Ø×*Ñ*Ó,°×0HÑ0HÓ0JÑJÐJØrG   c                 óp   — t        |t        «      r!| j                  «       |j                  «       k  S t        S rC   )rl   ró   r  rq   rn   s     rE   rr   zPatch.__lt__ñ  s/   € Ü�eœUÔ#Ø×*Ñ*Ó,¨u×/GÑ/GÓ/IÑIÐIÜÐrG   c                 ó4   — t        | j                  «       «      S rC   )rt   r  rK   s    rE   ru   zPatch.__hash__ö  rv   rG   c                 ó:   — d| j                   › dt        | «      › d�S )Nz<Patch type=z, id=rx   )r«   ÚidrK   s    rE   ry   zPatch.__repr__ù  s   € Ø˜dŸi™i˜[¨¬b°«h¨Z°qÐ9Ð9rG   )rA   zSortedSet[IssueType])rz   r{   r|   r}   rê   r   rÓ   r   r3   rF   r   r€   Úxml_attributer«   r…   rô   Ú	xml_arrayÚXmlArraySerializationTypeÚNESTEDrõ   rg   r  r†   r‡   ro   r   rr   rˆ   ru   r~   ry   r‰   rG   rE   ró   ró   £  s•  „ ñð  $Ø26ò	'à!ð'ð �t‰nð'ð ˜8 IÑ.Ñ/ð	'ð
 
ó'ð Ø€\×ÑÓ!ðÐ)ò ó "ó ðð 
‡[�[ðÐ,ð °ò ó ðð ð
�h˜t‘nò 
ó ð
ð 
‡[�[ð˜ $™ð ¨Dò ó ðð Ø€\×Ñ˜L×BÑB×IÑIÈ7ÓSòó Tó ðð ‡_�_ð- ¨)Ñ!4ð -¸ò -ó ð-ðÐ$4ó ð˜Fð  tó ð
˜Cð  Dó ð
/˜#ó /ð:˜#ô :rG   ró   c                   ó  — e Zd ZdZdddddddœdeed      deed      deed      deee      d	eee      d
ee   ddfd„Z	e
 ej                  ej                  j                  d«       ej                  d«      d(d„«       «       «       Zej"                  ded   ddfd„«       Ze
 ej                  ej                  j                  d«       ej                  d«      d(d„«       «       «       Zej"                  ded   ddfd„«       Ze
 ej                  ej                  j                  d«       ej                  d«      d(d„«       «       «       Zej"                  ded   ddfd„«       Ze
 ej                  ej                  j                  d«       ej                  d«      d)d„«       «       «       Zej"                  dee   ddfd„«       Ze
 ej*                  e«       ej*                  e«       ej*                  e«       ej*                  e«       ej*                  e«       ej*                  e«       ej                  ej                  j                  d«       ej                  d«      d*d„«       «       «       «       «       «       «       «       «       Zej"                  d	ee   ddfd„«       Ze
 ej                  d«      dee   fd „«       «       Zej"                  d
ee   ddfd!„«       Zdefd"„Zd#e de!fd$„Z"d#e de!fd%„Z#de$fd&„Z%defd'„Z&y)+ÚPedigreea8  
    Our internal representation of the `pedigreeType` complex type.

    Component pedigree is a way to document complex supply chain scenarios where components are created, distributed,
    modified, redistributed, combined with other components, etc. Pedigree supports viewing this complex chain from the
    beginning, the end, or anywhere in the middle. It also provides a way to document variants where the exact relation
    may not be known.

    .. note::
        See the CycloneDX Schema definition: https://cyclonedx.org/docs/1.7/xml/#type_pedigreeType
    N©Ú	ancestorsÚdescendantsÚvariantsÚcommitsÚpatchesÚnotesr  Ú	Componentr  r  r  r  r  rA   c                ó€   — |xs g | _         |xs g | _        |xs g | _        |xs g | _        |xs g | _        || _        y rC   r  )rD   r  r  r  r  r  r  s          rE   rF   zPedigree.__init__  sD   € ð #š bˆŒØ&Ò,¨"ˆÔØ š BˆŒØ’} "ˆŒØ’} "ˆŒØˆ�
rG   Ú	componentr#   c                 ó   — | j                   S )ao  
        Describes zero or more components in which a component is derived from. This is commonly used to describe forks
        from existing projects where the forked version contains a ancestor node containing the original component it
        was forked from.

        For example, Component A is the original component. Component B is the component being used and documented in
        the BOM. However, Component B contains a pedigree node with a single ancestor documenting Component A - the
        original component from which Component B is derived from.

        Returns:
            Set of `Component`
        )Ú
_ancestorsrK   s    rE   r  zPedigree.ancestors  s   € ð  �‰ÐrG   c                 ó$   — t        |«      | _        y rC   )r   r  )rD   r  s     rE   r  zPedigree.ancestors-  s   € ä# IÓ.ˆ�rG   r   c                 ó   — | j                   S )zÙ
        Descendants are the exact opposite of ancestors. This provides a way to document all forks (and their forks) of
        an original or root component.

        Returns:
            Set of `Component`
        )Ú_descendantsrK   s    rE   r  zPedigree.descendants1  s   € ð × Ñ Ð rG   c                 ó$   — t        |«      | _        y rC   )r   r!  )rD   r  s     rE   r  zPedigree.descendants>  ó   € ä% kÓ2ˆÕrG   r	   c                 ó   — | j                   S )ae  
        Variants describe relations where the relationship between the components are not known. For example, if
        Component A contains nearly identical code to Component B. They are both related, but it is unclear if one is
        derived from the other, or if they share a common ancestor.

        Returns:
            Set of `Component`
        )Ú	_variantsrK   s    rE   r  zPedigree.variantsB  s   € ð �~‰~ÐrG   c                 ó$   — t        |«      | _        y rC   )r   r%  )rD   r  s     rE   r  zPedigree.variantsP  r  rG   ÚcommitrZ   c                 ó   — | j                   S )zÌ
        A list of zero or more commits which provide a trail describing how the component deviates from an ancestor,
        descendant, or variant.

        Returns:
            Set of `Commit`
        )Ú_commitsrK   s    rE   r  zPedigree.commitsT  s   € ð �}‰}ÐrG   c                 ó$   — t        |«      | _        y rC   )r   r)  )rD   r  s     rE   r  zPedigree.commitsa  ó   € ä! 'Ó*ˆ�rG   Úpatchr`   c                 ó   — | j                   S )a  
        A list of zero or more patches describing how the component deviates from an ancestor, descendant, or variant.
        Patches may be complimentary to commits or may be used in place of commits.

        Returns:
            Set of `Patch`
        )Ú_patchesrK   s    rE   r  zPedigree.patchese  ó   € ð" �}‰}ÐrG   c                 ó$   — t        |«      | _        y rC   )r   r.  )rD   r  s     rE   r  zPedigree.patchesx  r+  rG   é   c                 ó   — | j                   S )z¥
        Notes, observations, and other non-structured commentary describing the components pedigree.

        Returns:
            `str` if set else `None`
        ©Ú_notesrK   s    rE   r  zPedigree.notes|  ó   € ð �{‰{ÐrG   c                 ó   — || _         y rC   r3  )rD   r  s     rE   r  zPedigree.notes‡  ó	   € àˆ�rG   c           	      óö   — t        t        | j                  «      t        | j                  «      t        | j                  «      t        | j                  «      t        | j
                  «      | j                  f«      S rC   )rg   r  r  r  r  r  r  rK   s    rE   rh   zPedigree.__comparable_tuple‹  sY   € ÜÜ˜TŸ^™^Ó,Ü˜T×-Ñ-Ó.Ü˜TŸ]™]Ó+Ü˜TŸ\™\Ó*Ü˜TŸ\™\Ó*Ø�J‰Jð!
ó ð 	rG   ri   c                 óf   — t        |t        «      r!| j                  «       |j                  «       k(  S yrk   )rl   r  Ú_Pedigree__comparable_tuplern   s     rE   ro   zPedigree.__eq__•  s,   € Ü�eœXÔ&Ø×*Ñ*Ó,°×0HÑ0HÓ0JÑJÐJØrG   c                 óp   — t        |t        «      r!| j                  «       |j                  «       k  S t        S rC   )rl   r  r:  rq   rn   s     rE   rr   zPedigree.__lt__š  s/   € Ü�eœXÔ&Ø×*Ñ*Ó,¨u×/GÑ/GÓ/IÑIÐIÜÐrG   c                 ó4   — t        | j                  «       «      S rC   )rt   r:  rK   s    rE   ru   zPedigree.__hash__Ÿ  rv   rG   c                 ó8   — dt        | «      › dt        | «      › d�S )Nz<Pedigree id=z, hash=rx   )r  rt   rK   s    rE   ry   zPedigree.__repr__¢  s   € Øœr $›x˜j¨´°T³
¨|¸1Ð=Ð=rG   ©rA   zSortedSet['Component'])rA   zSortedSet[Commit])rA   zSortedSet[Patch])'rz   r{   r|   r}   r   r   r:   ró   r~   rF   r   r€   r  r  r  r�   r  r…   r  r  r  r—   r   r   r   r   r   r    r  r  rg   r:  r†   r‡   ro   rr   rˆ   ru   ry   r‰   rG   rE   r  r  ý  s!  „ ñ
ð 6:Ø7;Ø48Ø.2Ø-1Ø#òà˜H [Ñ1Ñ2ðð ˜h {Ñ3Ñ4ðð ˜8 KÑ0Ñ1ð	ð
 ˜( 6Ñ*Ñ+ðð ˜( 5™/Ñ*ðð ˜‰}ðð 
óð  Ø€\×Ñ˜L×BÑB×IÑIÈ;ÓWØ€\×Ñ˜qÓ!òó "ó Xó ðð ×Ñð/ 8¨KÑ#8ð /¸Tò /ó ð/ð Ø€\×Ñ˜L×BÑB×IÑIÈ;ÓWØ€\×Ñ˜qÓ!ò!ó "ó Xó ð!ð ×Ñð3 x°Ñ'<ð 3Àò 3ó ð3ð Ø€\×Ñ˜L×BÑB×IÑIÈ;ÓWØ€\×Ñ˜qÓ!ò	ó "ó Xó ð	ð ‡_�_ð- ¨+Ñ!6ð -¸4ò -ó ð-ð Ø€\×Ñ˜L×BÑB×IÑIÈ8ÓTØ€\×Ñ˜qÓ!òó "ó Uó ðð ‡^�^ð+˜x¨Ñ/ð +°Dò +ó ð+ð Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×Ñ˜L×BÑB×IÑIÈ7ÓSØ€\×Ñ˜qÓ!òó "ó Tó +ó +ó +ó +ó +ó +ó ðð ‡^�^ð+˜x¨™ð +°4ò +ó ð+ð Ø€\×Ñ˜qÓ!ð�x ‘}ò ó "ó ðð ‡\�\ð˜8 C™=ð ¨Tò ó ððÐ$4ó ð˜Fð  tó ð
˜Fð  tó ð
/˜#ó /ð>˜#ô >rG   r  c                   óˆ  — e Zd ZdZddddddœdededee   dee   dee   d	ee   d
ee	   ddfd„Z
e ej                  «       defd„«       «       Zej                  deddfd„«       Ze ej                  «       defd„«       «       Zej                  deddfd„«       Ze ej                  «       dee   fd„«       «       Zej                  dee   ddfd„«       Ze ej                  «       dee   fd„«       «       Zej                  dee   ddfd„«       Ze ej                  «       dee   fd„«       «       Zej                  dee   ddfd„«       Zedee   fd„«       Zej                  d	ee   ddfd„«       Zedee	   fd„«       Zej                  d
ee	   ddfd„«       Zdefd„Zdedefd„Zdedefd„Zdefd„Zdefd „Zy)!ÚSwidz³
    Our internal representation of the `swidType` complex type.

    .. note::
        See the CycloneDX Schema definition: https://cyclonedx.org/docs/1.7/xml/#type_swidType
    N)ÚversionÚtag_versionr,  rÕ   r=   Útag_idÚnamerA  rB  r,  rÕ   r=   rA   c                óf   — || _         || _        || _        || _        || _        || _        || _        y rC   )rC  rD  rA  rB  r,  rÕ   r=   )rD   rC  rD  rA  rB  r,  rÕ   r=   s           rE   rF   zSwid.__init__¯  s6   € ð ˆŒØˆŒ	ØˆŒØ&ˆÔØˆŒ
ØˆŒ	Øˆ�rG   c                 ó   — | j                   S )z^
        Maps to the tagId of a SoftwareIdentity.

        Returns:
            `str`
        ©Ú_tag_idrK   s    rE   rC  zSwid.tag_idÁ  rV   rG   c                 ó   — || _         y rC   rG  )rD   rC  s     rE   rC  zSwid.tag_idÌ  rY   rG   c                 ó   — | j                   S )z^
        Maps to the name of a SoftwareIdentity.

        Returns:
             `str`
        ©Ú_namerK   s    rE   rD  z	Swid.nameÐ  s   € ð �z‰zÐrG   c                 ó   — || _         y rC   rK  ©rD   rD  s     rE   rD  z	Swid.nameÛ  rÝ   rG   c                 ó   — | j                   S )zu
        Maps to the version of a SoftwareIdentity.

        Returns:
             `str` if set else `None`.
        ©Ú_versionrK   s    rE   rA  zSwid.versionß  s   € ð �}‰}ÐrG   c                 ó   — || _         y rC   rP  ©rD   rA  s     rE   rA  zSwid.versionê  re   rG   c                 ó   — | j                   S )zv
        Maps to the tagVersion of a SoftwareIdentity.

        Returns:
            `int` if set else `None`
        ©Ú_tag_versionrK   s    rE   rB  zSwid.tag_versionî  s   € ð × Ñ Ð rG   c                 ó   — || _         y rC   rU  )rD   rB  s     rE   rB  zSwid.tag_versionù  ó
   € à'ˆÕrG   c                 ó   — | j                   S )zs
        Maps to the patch of a SoftwareIdentity.

        Returns:
             `bool` if set else `None`
        ©Ú_patchrK   s    rE   r,  z
Swid.patchý  r5  rG   c                 ó   — || _         y rC   rZ  )rD   r,  s     rE   r,  z
Swid.patch  r7  rG   c                 ó   — | j                   S )z}
        Specifies the full content of the SWID tag.

        Returns:
            `AttachedText` if set else `None`
        rØ   rK   s    rE   rÕ   z	Swid.text  rÚ   rG   c                 ó   — || _         y rC   rØ   rÜ   s     rE   rÕ   z	Swid.text  rÝ   rG   c                 ó   — | j                   S )zd
        The URL to the SWID file.

        Returns:
            `XsUri` if set else `None`
        rO   rK   s    rE   r=   zSwid.url  rß   rG   c                 ó   — || _         y rC   rO   rR   s     rE   r=   zSwid.url$  rM   rG   c           	      ó²   — t        | j                  | j                  | j                  | j                  | j
                  | j                  | j                  f«      S rC   )rg   rC  rD  rA  rB  r,  r=   rÕ   rK   s    rE   rh   zSwid.__comparable_tuple(  sF   € ÜØ�K‰KØ�I‰I�t—|‘|Ø×ÑØ�J‰JØ�H‰HØ�I‰Ið!
ó ð 	rG   ri   c                 óf   — t        |t        «      r!| j                  «       |j                  «       k(  S yrk   )rl   r@  Ú_Swid__comparable_tuplern   s     rE   ro   zSwid.__eq__2  rä   rG   c                 óp   — t        |t        «      r!| j                  «       |j                  «       k  S t        S rC   )rl   r@  rc  rq   rn   s     rE   rr   zSwid.__lt__7  ræ   rG   c                 ó4   — t        | j                  «       «      S rC   )rt   rc  rK   s    rE   ru   zSwid.__hash__<  rv   rG   c                 óV   — d| j                   › d| j                  › d| j                  › d�S )Nz<Swid tagId=ú, name=ú
, version=rx   )rC  rD  rA  rK   s    rE   ry   zSwid.__repr__?  s*   € Ø˜dŸk™k˜]¨'°$·)±)°¸JÀtÇ|Á|ÀnÐTUÐVÐVrG   )rz   r{   r|   r}   r~   r   rˆ   r‡   r$   r*   rF   r   r€   r  rC  r…   rD  rA  rB  r,  rÕ   r=   rg   rc  r†   ro   rr   ru   ry   r‰   rG   rE   r@  r@  ¦  s  „ ñð "&Ø%)Ø $Ø'+Ø#òàðð ðð ˜#‘ð	ð
 ˜c‘]ðð ˜‰~ðð �|Ñ$ðð �e‰_ðð 
óð$ Ø€\×ÑÓ!ð˜ò ó "ó ðð ‡]�]ð˜Sð  Tò ó ðð Ø€\×ÑÓ!ð�cò ó "ó ðð 
‡[�[ð˜ð  ò ó ðð Ø€\×ÑÓ!ð˜ #™ò ó "ó ðð ‡^�^ð ˜x¨™}ð  °ò  ó ð ð Ø€\×ÑÓ!ð!˜X c™]ò !ó "ó ð!ð ×Ñð( x°¡}ð (¸ò (ó ð(ð Ø€\×ÑÓ!ð�x ‘~ò ó "ó ðð ‡\�\ð˜8 D™>ð ¨dò ó ðð ð�h˜|Ñ,ò ó ðð 
‡[�[ð˜ ,Ñ/ð °Dò ó ðð ð�X˜e‘_ò ó ðð 	‡Z�Zð�x ‘ð ¨4ò ó ððÐ$4ó ð˜Fð  tó ð
˜Fð  tó ð
/˜#ó /ðW˜#ô WrG   r@  c                   ó&  — e Zd ZdZ ej
                  d«      Zdeddfd„Ze	 e
j                  d«       e
j                  d«      defd„«       «       «       Zed	edefd
„«       Zed	edd fd„«       Zdedefd„Zdedefd„Zdefd„Zdefd„Zdefd„Zy)Ú	OmniborIdzŸ
    Helper class that allows us to perform validation on data strings that must conform to
    https://www.iana.org/assignments/uri-schemes/prov/gitoid.

    z6^gitoid:(blob|tree|commit|tag):sha(1|256):([a-z0-9]+)$r  rA   Nc                 ón   — t         j                  j                  |«      €t        d|› d�«      ‚|| _        y ©NzSupplied value "z$ does not meet format specification.)rj  Ú_VALID_OMNIBOR_ID_REGEXÚmatchr   Ú_id©rD   r  s     rE   rF   zOmniborId.__init__M  s<   € Ü×,Ñ,×2Ñ2°2Ó6Ð>Ü+Ø" 2 $Ð&JÐKóð ð ˆ�rG   ú.c                 ó   — | j                   S rC   ©ro  rK   s    rE   r  zOmniborId.idT  ó   € ð �x‰xˆrG   r�   c                 óT   — t        |t        «      rt        |«      S t        d|›�«      ‚)Nz&Attempt to serialize a non-OmniBorId: )rl   rj  r~   r   r¨   s     rE   Ú	serializezOmniborId.serializeZ  s,   € ä�aœÔ#Ü�q“6ˆMÜ5Ø4°Q°EÐ:ó<ð 	<rG   c                 ón   — 	 t        t        |«      ¬«      S # t        $ r}t        d|›�«      |‚d }~ww xY w)N©r  z*OmniBorId string supplied does not parse: )rj  r~   Ú
ValueErrorr   ©r›   r�   Úerrs      rE   r©   zOmniborId.deserializea  s@   € ð	Ü¤ A£Ô'Ð'øÜò 	Ü3Ø<¸Q¸EÐBóàðûð	úó   ‚ —	4 /¯4ri   c                 óV   — t        |t        «      r| j                  |j                  k(  S yrk   )rl   rj  ro  rn   s     rE   ro   zOmniborId.__eq__j  s"   € Ü�eœYÔ'Ø—8‘8˜uŸy™yÑ(Ð(ØrG   c                 ó`   — t        |t        «      r| j                  |j                  k  S t        S rC   )rl   rj  ro  rq   rn   s     rE   rr   zOmniborId.__lt__o  s%   € Ü�eœYÔ'Ø—8‘8˜eŸi™iÑ'Ð'ÜÐrG   c                 ó,   — t        | j                  «      S rC   ©rt   ro  rK   s    rE   ru   zOmniborId.__hash__t  ó   € Ü�D—H‘H‹~ÐrG   c                 ó"   — d| j                   › d�S )Nz<OmniBorId rx   rs  rK   s    rE   ry   zOmniborId.__repr__w  s   € Ø˜TŸX™X˜J aÐ(Ð(rG   c                 ó   — | j                   S rC   rs  rK   s    rE   Ú__str__zOmniborId.__str__z  ó   € Ø�x‰xˆrG   )rz   r{   r|   r}   ÚreÚcompilerm  r~   rF   r   r€   Ú	json_nameÚxml_namer  r¯   r   rv  r©   r‡   ro   rr   rˆ   ru   ry   r„  r‰   rG   rE   rj  rj  C  s  „ ñð )˜bŸj™jÐ)bÓcÐð˜3ð  4ó ð Ø€\×Ñ˜CÓ Ø€\×Ñ˜3Óð�Cò ó  ó !ó ðð ð<˜#ð < #ò <ó ð<ð ð˜Cð  Kò ó ðð˜Cð  Dó ð
˜Cð  Dó ð
˜#ó ð)˜#ó )ð˜ô rG   rj  c                   ó&  — e Zd ZdZ ej
                  d«      Zdeddfd„Ze	 e
j                  d«       e
j                  d«      defd„«       «       «       Zed	edefd
„«       Zed	edd fd„«       Zdedefd„Zdedefd„Zdefd„Zdefd„Zdefd„Zy)ÚSwhidz´
    Helper class that allows us to perform validation on data strings that must conform to
    https://docs.softwareheritage.org/devel/swh-model/persistent-identifiers.html.

    z1^swh:1:(cnp|rel|rev|dir|cnt):([0-9a-z]{40})(.*)?$r  rA   Nc                 ón   — t         j                  j                  |«      €t        d|› d�«      ‚|| _        y rl  )r‹  Ú_VALID_SWHID_REGEXrn  r   ro  rp  s     rE   rF   zSwhid.__init__ˆ  s<   € Ü×#Ñ#×)Ñ)¨"Ó-Ð5Ü'Ø" 2 $Ð&JÐKóð ð ˆ�rG   rq  c                 ó   — | j                   S rC   rs  rK   s    rE   r  zSwhid.id�  rt  rG   r�   c                 óT   — t        |t        «      rt        |«      S t        d|›�«      ‚)Nz"Attempt to serialize a non-Swhid: )rl   r‹  r~   r   r¨   s     rE   rv  zSwhid.serialize•  s,   € ä�aœÔÜ�q“6ˆMÜ5Ø0°°Ð6ó8ð 	8rG   c                 ón   — 	 t        t        |«      ¬«      S # t        $ r}t        d|›�«      |‚d }~ww xY w)Nrx  z&Swhid string supplied does not parse: )r‹  r~   ry  r   rz  s      rE   r©   zSwhid.deserializeœ  s@   € ð	ÜœC ›FÔ#Ð#øÜò 	Ü3Ø8¸¸Ð>óàðûð	úr|  ri   c                 óV   — t        |t        «      r| j                  |j                  k(  S yrk   )rl   r‹  ro  rn   s     rE   ro   zSwhid.__eq__¥  s"   € Ü�eœUÔ#Ø—8‘8˜uŸy™yÑ(Ð(ØrG   c                 ó`   — t        |t        «      r| j                  |j                  k  S t        S rC   )rl   r‹  ro  rq   rn   s     rE   rr   zSwhid.__lt__ª  s%   € Ü�eœUÔ#Ø—8‘8˜eŸi™iÑ'Ð'ÜÐrG   c                 ó,   — t        | j                  «      S rC   r€  rK   s    rE   ru   zSwhid.__hash__¯  r�  rG   c                 ó"   — d| j                   › d�S )Nz<Swhid rx   rs  rK   s    rE   ry   zSwhid.__repr__²  s   € Ø˜Ÿ™˜
 !Ð$Ð$rG   c                 ó   — | j                   S rC   rs  rK   s    rE   r„  zSwhid.__str__µ  r…  rG   )rz   r{   r|   r}   r†  r‡  r�  r~   rF   r   r€   rˆ  r‰  r  r¯   r   rv  r©   r‡   ro   rr   rˆ   ru   ry   r„  r‰   rG   rE   r‹  r‹  ~  s  „ ñð $˜Ÿ™Ð$XÓYÐð˜3ð  4ó ð Ø€\×Ñ˜CÓ Ø€\×Ñ˜3Óð�Cò ó  ó !ó ðð ð8˜#ð 8 #ò 8ó ð8ð ð˜Cð  Gò ó ðð˜Cð  Dó ð
˜Cð  Dó ð
˜#ó ð%˜#ó %ð˜ô rG   r‹  c            A       óX$  — e Zd ZdZe ed«      dedee   dd fd„«       «       Ze	j                  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
ede	dee   deeeef      dee   dee   dee   dee   dee   dee   dee   deee      deee      dee   dee   deee      deee      dee   dee   dee   dee   deed       d ee   d!ed"ee   d#eee      d$eee      d%eee      d&ee   d'eee      d(ee   ddf@d)„Ze e jB                  e"«       e jF                  «       de	fd*„«       «       «       Z$e$jJ                  de	ddfd+„«       Z$e e jL                  e jN                  jP                  «      dee   fd,„«       «       Z)e)jJ                  dee   ddfd-„«       Z)e e jT                  d.«       e jB                  e«       e jV                  e,«       e jV                  e-«       e jV                  e.«       e jV                  e/«       e jV                  e0«       e jV                  e1«       e jV                  e2«       e jF                  «        e jf                  d.«      defd/„«       «       «       «       «       «       «       «       «       «       «       «       Z4e e jV                  e-«       e jV                  e.«       e jV                  e/«       e jV                  e0«       e jV                  e1«       e jV                  e2«       e jj                  d0«      dee   fd1„«       «       «       «       «       «       «       «       Z6e6jJ                  dee   ddfd2„«       Z6e e jV                  e1«       e jV                  e2«       e jj                  d3«      dee   fd4„«       «       «       «       Z7e7jJ                  d"ee   ddfd5„«       Z7e e jV                  e1«       e jV                  e2«       e jp                  e jr                  jt                  d(«       e jj                  d6«      d•d7„«       «       «       «       «       Z;e;jJ                  d#ee   ddfd8„«       Z;e e jV                  e-«       e jV                  e.«       e jV                  e/«       e jV                  e0«       e jV                  e1«       e jV                  e2«       e jj                  d9«       e jL                  e jN                  jx                  «      dee   fd:„«       «       «       «       «       «       «       «       «       Z=e=jJ                  d(ee   ddfd;„«       Z=e e jj                  d<«       e jL                  e jN                  jx                  «      dee   fd=„«       «       «       Z>e>jJ                  dee   ddfd>„«       Z>e e jj                  d?«       e jL                  e jN                  jx                  «      dee   fd@„«       «       «       Z?e?jJ                  dee   ddfdA„«       Z?e e jj                  dB«       e jL                  e jN                  jx                  «      defdC„«       «       «       Z@e@jJ                  d
eddfdD„«       Z@e e j‚                  eBdE«       e j‚                  e,dE«       e j‚                  e-dE«       e j‚                  e.dE«       e jj                  dF«       e jL                  e jN                  jx                  «      dee   fdG„«       «       «       «       «       «       «       ZCeCjJ                  dee   ddfdH„«       ZCe e jj                  dI«       e jL                  e jN                  jx                  «      dee   fdJ„«       «       «       ZDeDjJ                  dee   ddfdK„«       ZDe e jB                  eE«       e jj                  dL«      dee   fdM„«       «       «       ZFeFjJ                  dee   ddfdN„«       ZFe e jT                  dO«       e jf                  dO«       e jF                  «        e jB                  eG«       e jV                  e2«      dee   fdP„«       «       «       «       «       «       ZHeHjJ                  dee   ddfdQ„«       ZHe e jB                  eI«       e jj                  dR«      d–dS„«       «       «       ZJeJjJ                  dee   ddfdT„«       ZJe e jV                  e,«       e jV                  e-«       e jV                  e.«       e jV                  e/«       e jV                  e0«       e jV                  e1«       e jV                  e2«       e jB                  eK«       e jj                  dU«      deLfdV„«       «       «       «       «       «       «       «       «       «       ZMeMjJ                  dee   ddfdW„«       ZMe e jj                  dX«       e jL                  e jN                  jx                  «      dee   fdY„«       «       «       ZNeNjJ                  dee   ddfdZ„«       ZNe e jj                  d[«      dee   fd\„«       «       ZOeOjJ                  dee   ddfd]„«       ZOe e jB                  eP«       e jj                  d^«      dee   fd_„«       «       «       ZQeQjJ                  dee   ddfd`„«       ZQe e jT                  da«       e jV                  e1«       e jV                  e2«       e jp                  e jr                  j¤                  da¬b«       e jj                  dc«      d—dd„«       «       «       «       «       «       ZSeSjJ                  d$ee   ddfde„«       ZSe e jT                  df«       e jV                  e1«       e jV                  e2«       e jp                  e jr                  j¤                  df¬b«       e jj                  dg«      d˜dh„«       «       «       «       «       «       ZTeTjJ                  d%ee   ddfdi„«       ZTe e jV                  e-«       e jV                  e.«       e jV                  e/«       e jV                  e0«       e jV                  e1«       e jV                  e2«       e jj                  dj«      dee   fdk„«       «       «       «       «       «       «       «       ZUeUjJ                  dee   ddfdl„«       ZUe e jV                  eB«       e jj                  dm«      defdn„«       «       «       ZVeVjJ                  d!eddfdo„«       ZVe e jV                  e,«       e jV                  e-«       e jV                  e.«       e jV                  e/«       e jV                  e0«       e jV                  e1«       e jV                  e2«       e jj                  dp«      dee   fdq„«       «       «       «       «       «       «       «       «       ZWeWjJ                  dee   ddfdr„«       ZWe e jV                  e,«       e jV                  e-«       e jV                  e.«       e jV                  e/«       e jV                  e0«       e jV                  e1«       e jV                  e2«       e jp                  e jr                  jt                  ds«       e jj                  dt«      d™du„«       «       «       «       «       «       «       «       «       «       ZXeXjJ                  dee   ddfdv„«       ZXe e jV                  e.«       e jV                  e/«       e jV                  e0«       e jV                  e1«       e jV                  e2«       e jp                  e jr                  jt                  dw«       e jj                  dx«      dšdy„«       «       «       «       «       «       «       «       ZYeYjJ                  dee   ddfdz„«       ZYe e jp                  e jr                  jt                  d{«       e jj                  d|«      d›d}„«       «       «       ZZeZjJ                  ded    ddfd~„«       ZZe e jV                  e.«       e jV                  e/«       e jV                  e0«       e jV                  e1«       e jV                  e2«       e jj                  d«       e jB                  e[«      dee   fd€„«       «       «       «       «       «       «       «       Z\e\jJ                  d ee   ddfd�„«       Z\e e jV                  e/«       e jV                  e0«       e jV                  e1«       e jV                  e2«       e jj                  d‚«      dee   fdƒ„«       «       «       «       «       «       Z]e]jJ                  dee   ddfd„„«       Z]e e jV                  e1«       e jV                  e2«       e jj                  d…«      dee   fd†„«       «       «       «       Z^e^jJ                  d&ee   ddfd‡„«       Z^e e jV                  e1«       e jV                  e2«       e jp                  e jr                  jt                  dˆ«       e jj                  d‰«      dœdŠ„«       «       «       «       «       Z_e_jJ                  d'ee   ddfd‹„«       Z_d�dŒede`d    fd�„ZadefdŽ„Zbdecfd�„Zdd�eedefd‘„Zfd�egdefd’„Zhdeifd“„Zjdefd”„Zky)žr  z¹
    This is our internal representation of a Component within a Bom.

    .. note::
        See the CycloneDX Schema definition: https://cyclonedx.org/docs/1.7/xml/#type_component
    z`Deprecated - use cyclonedx.contrib.component.builders.ComponentBuilder().make_for_file() insteadÚabsolute_file_pathÚpath_for_bomrA   c                 óØ   — ddl m}  |«       j                  | |¬«      }t        d„ |j                  D «       d«      }|€J ‚d|dd › �|_        t        d	|r|n| d|dd › �¬
«      |_        |S )uW  Deprecated â€” Wrapper of :func:`cyclonedx.contrib.component.builders.ComponentBuilder.make_for_file`.

        Helper method to create a Component that represents the provided local file as a Component.

        .. deprecated:: next
            Use ``cyclonedx.contrib.component.builders.ComponentBuilder().make_for_file()`` instead.
        r   )ÚComponentBuilder)rD  c              3   ón   K  — | ]-  }|j                   t        j                  u sŒ |j                  –— Œ/ y ­wrC   )Úalgr&   ÚSHA_1Úcontent)Ú.0Úhs     rE   ú	<genexpr>z%Component.for_file.<locals>.<genexpr>Ï  s%   è ø€ Ò^¨ÀÇÁÌ-×J]ÑJ]ÒA]˜!Ÿ)�)Ñ^ùs   ‚!5¤5Nz0.0.0-r   é   Úgeneric)r«   rD  rA  )Úcontrib.component.buildersrš  Úmake_for_fileÚnextÚhashesrA  r   Úpurl)r—  r˜  rš  r  Ú	sha1_hashs        rE   Úfor_filezComponent.for_fileÂ  s‹   € õ 	Bá$Ó&×4Ñ4Ð5GÈlÐ4Ó[ˆ	ÜÑ^¨Y×-=Ñ-=Ô^Ð`dÓeˆ	ØÐ$Ð$Ð$Ø$ Y¨q° _Ð$5Ð6ˆ	ÔÜ#Ø±¡ÐCUØ˜Y q¨˜_Ð-Ð.ô
ˆ	Œð ÐrG   NF)r«   Ú	mime_typeÚbom_refÚsupplierÚ	publisherÚgrouprA  ÚdescriptionÚscopeÚis_externalr§  ÚlicensesÚ	copyrightr¨  Úexternal_referencesÚ
propertiesÚrelease_notesÚcpeÚswidÚpedigreeÚ
componentsÚevidenceÚmodifiedÚmanufacturerÚauthorsÚomnibor_idsÚswhidsÚcrypto_propertiesÚtagsr>   rD  r«   r«  r¬  r­  r®  r¯  rA  r°  r±  r²  r§  r³  r´  r¨  rµ  r¶  r·  r¸  r¹  rº  r»  r¼  r½  r¾  r¿  rÀ  rÁ  rÂ  rÃ  r>   c                ó  — || _         || _        t        |«      | _        || _        || _        |xs g | _        || _        || _        || _	        |	| _
        |
| _        || _        |xs g | _        |xs g | _        || _        || _        || _        |xs g | _        |xs g | _        || _        || _        |xs g | _        |xs g | _        |xs g | _        || _        || _        || _        |xs g | _        || _        || _        || _        y rC   ) r«   r«  Ú_bom_ref_from_strÚ_bom_refr­  r¾  r¿  r®  r¯  rD  r°  r±  r²  r§  r³  r´  r¸  r¨  rÀ  rÁ  r¹  rº  rµ  r¶  r»  r¼  r·  rÂ  rÃ  r>   r½  rA  ) rD   rD  r«   r«  r¬  r­  r®  r¯  rA  r°  r±  r²  r§  r³  r´  r¨  rµ  r¶  r·  r¸  r¹  rº  r»  r¼  r½  r¾  r¿  rÀ  rÁ  rÂ  rÃ  r>   s                                    rE   rF   zComponent.__init__Ø  s  € ðF ˆŒ	Ø"ˆŒÜ)¨'Ó2ˆŒØ ˆŒØ(ˆÔØ’} "ˆŒØ"ˆŒØˆŒ
ØˆŒ	Ø&ˆÔØˆŒ
Ø&ˆÔØ’l ˆŒØ š BˆŒØ"ˆŒØˆŒØˆŒ	Ø&Ò,¨"ˆÔØ’l ˆŒØˆŒ	Ø ˆŒØ#6Ò#<¸"ˆÔ Ø$Ò*¨ˆŒØ$Ò*¨ˆŒØ ˆŒØ*ˆÔØ!2ˆÔØ’J˜BˆŒ	àˆŒØ ˆŒØˆ�rG   c                 ó   — | j                   S )zƒ
        Get the type of this Component.

        Returns:
            Declared type of this Component as `ComponentType`.
        rø   rK   s    rE   r«   zComponent.type  rú   rG   c                 ó   — || _         y rC   rø   rü   s     rE   r«   zComponent.type(  rÝ   rG   c                 ó   — | j                   S )aw  
        Get any declared mime-type for this Component.

        When used on file components, the mime-type can provide additional context about the kind of file being
        represented such as an image, font, or executable. Some library or framework components may also have an
        associated mime-type.

        Returns:
            `str` if set else `None`
        ©Ú
_mime_typerK   s    rE   r«  zComponent.mime_type,  s   € ð �‰ÐrG   c                 ó   — || _         y rC   rÊ  )rD   r«  s     rE   r«  zComponent.mime_type;  r_   rG   zbom-refc                 ó   — | j                   S )zÇ
        An optional identifier which can be used to reference the component elsewhere in the BOM. Every bom-ref MUST be
        unique within the BOM.

        Returns:
            `BomRef`
        )rÆ  rK   s    rE   r¬  zComponent.bom_ref?  s   € ð( �}‰}ÐrG   r#   c                 ó   — | j                   S )zç
        The organization that supplied the component. The supplier may often be the manufacture, but may also be a
        distributor or repackager.

        Returns:
            `OrganizationalEntity` if set else `None`
        ©Ú	_supplierrK   s    rE   r­  zComponent.supplierU  s   € ð  �~‰~ÐrG   c                 ó   — || _         y rC   rÏ  )rD   r­  s     rE   r­  zComponent.supplierg  ó	   € à!ˆ�rG   r   c                 ó   — | j                   S )a&  
        The organization that created the component.
        Manufacturer is common in components created through automated processes.
        Components created through manual means may have `@.authors` instead.

        Returns:
            `OrganizationalEntity` if set else `None`
        ©Ú_manufacturerrK   s    rE   r¾  zComponent.manufacturerk  s   € ð ×!Ñ!Ð!rG   c                 ó   — || _         y rC   rÔ  )rD   r¾  s     rE   r¾  zComponent.manufacturerz  s
   € à)ˆÕrG   r	   c                 ó   — | j                   S )a.  
        The person(s) who created the component.
        Authors are common in components created through manual processes.
        Components created through automated means may have `@.manufacturer` instead.

        Returns:
            `Iterable[OrganizationalContact]` if set else `None`
        )Ú_authorsrK   s    rE   r¿  zComponent.authors~  s   € ð �}‰}ÐrG   c                 ó$   — t        |«      | _        y rC   )r   rØ  )rD   r¿  s     rE   r¿  zComponent.authorsŽ  r+  rG   rZ   c                 ó   — | j                   S )z†
        The person(s) or organization(s) that authored the component.

        Returns:
            `str` if set else `None`
        rT   rK   s    rE   r>   zComponent.author’  s   € ð  �|‰|ÐrG   c                 óB   — |�t        j                  dd«       || _        y )Nz@.authorz@.authors` or `@.manufacturer)r   Ú_warnrU   rX   s     rE   r>   zComponent.author¤  s    € àÐÜ)×/Ñ/°
Ð<[Ô\Øˆ�rG   r`   c                 ó   — | j                   S )z†
        The person(s) or organization(s) that published the component

        Returns:
            `str` if set else `None`
        ©Ú
_publisherrK   s    rE   r®  zComponent.publisherª  s   € ð �‰ÐrG   c                 ó   — || _         y rC   rÞ  )rD   r®  s     rE   r®  zComponent.publisher¶  r_   rG   r1  c                 ó   — | j                   S )a„  
        The grouping name or identifier. This will often be a shortened, single name of the company or project that
        produced the component, or the source package or domain name. Whitespace and special characters should be
        avoided.

        Examples include: `apache`, `org.apache.commons`, and `apache.org`.

        Returns:
            `str` if set else `None`
        ©Ú_grouprK   s    rE   r¯  zComponent.groupº  s   € ð �{‰{ÐrG   c                 ó   — || _         y rC   râ  )rD   r¯  s     rE   r¯  zComponent.groupÊ  r7  rG   é   c                 ó   — | j                   S )zÈ
        The name of the component.

        This will often be a shortened, single name of the component.

        Examples: `commons-lang3` and `jquery`.

        Returns:
            `str`
        rK  rK   s    rE   rD  zComponent.nameÎ  s   € ð �z‰zÐrG   c                 ó   — || _         y rC   rK  rN  s     rE   rD  zComponent.nameÞ  rÝ   rG   Ú é   c                 ó   — | j                   S )a}  
        The component version. The version should ideally comply with semantic versioning but is not enforced.

        This is NOT optional for CycloneDX Schema Version < 1.4 but was agreed to default to an empty string where a
        version was not supplied for schema versions < 1.4

        Returns:
            Declared version of this Component as `str` or `None`
        rP  rK   s    rE   rA  zComponent.versionâ  r/  rG   c                 óR   — |rt        |«      dkD  rt        dt        «       || _        y )Ni   zD`@.version`has a maximum length of 1024 from CycloneDX v1.6 onwards.)Úlenr   ÚUserWarningrQ  rS  s     rE   rA  zComponent.versionõ  s#   € á”s˜7“| dÒ*ÜÐWÔYdÔeØˆ�rG   é	   c                 ó   — | j                   S )zq
        Get the description of this Component.

        Returns:
            `str` if set, else `None`.
        ©Ú_descriptionrK   s    rE   r°  zComponent.descriptionû  s   € ð × Ñ Ð rG   c                 ó   — || _         y rC   rð  )rD   r°  s     rE   r°  zComponent.description  rX  rG   é
   c                 ó   — | j                   S )zÓ
        Specifies the scope of the component.

        If scope is not specified, 'required' scope should be assumed by the consumer of the BOM.

        Returns:
            `ComponentScope` or `None`
        ©Ú_scoperK   s    rE   r±  zComponent.scope  s   € ð �{‰{ÐrG   c                 ó   — || _         y rC   rõ  )rD   r±  s     rE   r±  zComponent.scope  r7  rG   Ú
isExternalc                 ó   — | j                   S )a9  
        Determine whether this component is external. An external component is one that is not part of an assembly,
        but is expected to be provided by the environment, regardless of the component's scope. This setting can be
        useful for distinguishing which components are bundled with the product and which can be relied upon to be
        present in the deployment environment. This may be set to true for runtime components only. For
        metadata.component, it must be set to false.

        Returns:
            `bool` if set else `None`
        ©Ú_is_externalrK   s    rE   r²  zComponent.is_external  s   € ð" × Ñ Ð rG   c                 ó   — || _         y rC   rú  )rD   r²  s     rE   r²  zComponent.is_external0  rX  rG   é   c                 ó   — | j                   S )z�
        Optional list of hashes that help specify the integrity of this Component.

        Returns:
             Set of `HashType`
        )Ú_hashesrK   s    rE   r§  zComponent.hashes4  s   € ð �|‰|ÐrG   c                 ó$   — t        |«      | _        y rC   )r   rÿ  )rD   r§  s     rE   r§  zComponent.hashes@  ó   € ä  Ó(ˆ�rG   r¢  c                 ó   — | j                   S )zŠ
        A optional list of statements about how this Component is licensed.

        Returns:
            Set of `LicenseChoice`
        )Ú	_licensesrK   s    rE   r³  zComponent.licensesD  ó   € ð" �~‰~ÐrG   c                 ó$   — t        |«      | _        y rC   )r5   r  )rD   r³  s     rE   r³  zComponent.licensesW  s   € ä*¨8Ó4ˆ�rG   r
   c                 ó   — | j                   S )z¹
        An optional copyright notice informing users of the underlying claims to copyright ownership in a published
        work.

        Returns:
            `str` or `None`
        ©Ú
_copyrightrK   s    rE   r´  zComponent.copyright[  s   € ð �‰ÐrG   c                 ó   — || _         y rC   r  )rD   r´  s     rE   r´  zComponent.copyrighth  r_   rG   é   c                 ó   — | j                   S )zÊ
        Specifies a well-formed CPE name that conforms to the CPE 2.2 or 2.3 specification.
        See https://nvd.nist.gov/products/cpe

        Returns:
            `str` if set else `None`
        ©Ú_cperK   s    rE   r¸  zComponent.cpel  s   € ð �y‰yÐrG   c                 ó   — || _         y rC   r  )rD   r¸  s     rE   r¸  zComponent.cpex  rM   rG   é   c                 ó   — | j                   S )zõ
        Specifies the package-url (PURL).

        The purl, if specified, must be valid and conform to the specification defined at:
        https://github.com/package-url/purl-spec

        Returns:
            `PackageURL` or `None`
        ©Ú_purlrK   s    rE   r¨  zComponent.purl|  ó   € ð �z‰zÐrG   c                 ó   — || _         y rC   r  )rD   r¨  s     rE   r¨  zComponent.purl‹  rÝ   rG   Ú	omniborId)Ú
child_nameé   c                 ó   — | j                   S )a  
        Specifies the OmniBOR Artifact ID. The OmniBOR, if specified, MUST be valid and conform to the specification
        defined at: https://www.iana.org/assignments/uri-schemes/prov/gitoid

        Returns:
            `Iterable[str]` or `None`
        )Ú_omnibor_idsrK   s    rE   rÀ  zComponent.omnibor_ids�  s   € ð × Ñ Ð rG   c                 ó$   — t        |«      | _        y rC   )r   r  )rD   rÀ  s     rE   rÀ  zComponent.omnibor_ids   r#  rG   Úswhidé   c                 ó   — | j                   S )aE  
        Specifies the Software Heritage persistent identifier (SWHID). The SWHID, if specified, MUST be valid and
        conform to the specification defined at:
        https://docs.softwareheritage.org/devel/swh-model/persistent-identifiers.html

        Returns:
            `Iterable[Swhid]` if set else `None`
        )Ú_swhidsrK   s    rE   rÁ  zComponent.swhids¤  s   € ð �|‰|ÐrG   c                 ó$   — t        |«      | _        y rC   )r   r  )rD   rÁ  s     rE   rÁ  zComponent.swhidsµ  r  rG   é   c                 ó   — | j                   S )z¡
        Specifies metadata and content for ISO-IEC 19770-2 Software Identification (SWID) Tags.

        Returns:
            `Swid` if set else `None`
        ©Ú_swidrK   s    rE   r¹  zComponent.swid¹  s   € ð �z‰zÐrG   c                 ó   — || _         y rC   r"  )rD   r¹  s     rE   r¹  zComponent.swidÊ  rÝ   rG   é   c                 ó   — | j                   S rC   )Ú	_modifiedrK   s    rE   r½  zComponent.modifiedÎ  s   € ð �~‰~ÐrG   c                 óB   — |rt        j                  dd«       || _        y )Nz
@.modifiedz
@.pedigree)r   rÜ  r'  )rD   r½  s     rE   r½  zComponent.modifiedÔ  s   € áÜ)×/Ñ/°¸lÔKØ!ˆ�rG   é   c                 ó   — | j                   S )a  
        Component pedigree is a way to document complex supply chain scenarios where components are created,
        distributed, modified, redistributed, combined with other components, etc.

        Returns:
            `Pedigree` if set else `None`
        ©Ú	_pedigreerK   s    rE   rº  zComponent.pedigreeÚ  r  rG   c                 ó   — || _         y rC   r+  )rD   rº  s     rE   rº  zComponent.pedigreeí  rÒ  rG   Ú	referenceé   c                 ó   — | j                   S )zË
        Provides the ability to document external references related to the component or to the project the component
        describes.

        Returns:
            Set of `ExternalReference`
        )Ú_external_referencesrK   s    rE   rµ  zComponent.external_referencesñ  s   € ð$ ×(Ñ(Ð(rG   c                 ó$   — t        |«      | _        y rC   )r   r1  )rD   rµ  s     rE   rµ  zComponent.external_references  s   € ä$-Ð.AÓ$BˆÕ!rG   r   é   c                 ó   — | j                   S )a  
        Provides the ability to document properties in a key/value store. This provides flexibility to include data not
        officially supported in the standard without having to use additional namespaces or create extensions.

        Return:
            Set of `Property`
        )Ú_propertiesrK   s    rE   r¶  zComponent.properties	  s   € ð  ×ÑÐrG   c                 ó$   — t        |«      | _        y rC   )r   r5  )rD   r¶  s     rE   r¶  zComponent.properties  ó   € ä$ ZÓ0ˆÕrG   r  é   c                 ó   — | j                   S )a^  
        A list of software and hardware components included in the parent component. This is not a dependency tree. It
        provides a way to specify a hierarchical representation of component assemblies, similar to system -> subsystem
        -> parts assembly in physical supply chains.

        Returns:
            Set of `Component`
        )Ú_componentsrK   s    rE   r»  zComponent.components  s   € ð ×ÑÐrG   c                 ó$   — t        |«      | _        y rC   )r   r:  )rD   r»  s     rE   r»  zComponent.components-  r7  rG   é   c                 ó   — | j                   S )z»
        Provides the ability to document evidence collected through various forms of extraction or analysis.

        Returns:
            `ComponentEvidence` if set else `None`
        ©Ú	_evidencerK   s    rE   r¼  zComponent.evidence1  s   € ð �~‰~ÐrG   c                 ó   — || _         y rC   r>  )rD   r¼  s     rE   r¼  zComponent.evidenceB  rÒ  rG   é   c                 ó   — | j                   S )zj
        Specifies optional release notes.

        Returns:
            `ReleaseNotes` or `None`
        ©Ú_release_notesrK   s    rE   r·  zComponent.release_notesF  s   € ð ×"Ñ"Ð"rG   c                 ó   — || _         y rC   rC  )rD   r·  s     rE   r·  zComponent.release_notesU  s
   € à+ˆÕrG   é   c                 ó   — | j                   S )ae  
        Cryptographic assets have properties that uniquely define them and that make them actionable for further
        reasoning. As an example, it makes a difference if one knows the algorithm family (e.g. AES) or the specific
        variant or instantiation (e.g. AES-128-GCM). This is because the security level and the algorithm primitive
        (authenticated encryption) is only defined by the definition of the algorithm variant. The presence of a weak
        cryptographic algorithm like SHA1 vs. HMAC-SHA1 also makes a difference.

        Returns:
            `CryptoProperties` or `None`
        ©Ú_crypto_propertiesrK   s    rE   rÂ  zComponent.crypto_propertieso  s   € ð ×&Ñ&Ð&rG   c                 ó   — || _         y rC   rH  )rD   rÂ  s     rE   rÂ  zComponent.crypto_properties€  s
   € à"3ˆÕrG   Útagé   c                 ó   — | j                   S )a  
        Textual strings that aid in discovery, search, and retrieval of the associated object.
        Tags often serve as a way to group or categorize similar or related objects by various attributes.

        Returns:
            `Iterable[str]`
        )Ú_tagsrK   s    rE   rÃ  zComponent.tags„  r  rG   c                 ó$   — t        |«      | _        y rC   )r   rN  )rD   rÃ  s     rE   rÃ  zComponent.tags“  s   € ä˜t“_ˆ�
rG   Úinclude_selfc                 ó¤   — t        «       }|r|j                  | «       | j                  D ]#  }|j                  |j	                  d¬«      «       Œ% |S )NT)rP  )ÚsetÚaddr»  ÚupdateÚget_all_nested_components)rD   rP  r»  Úcs       rE   rU  z#Component.get_all_nested_components—  sQ   € Ü“Uˆ
ÙØ�N‰N˜4Ô à—‘ò 	NˆAØ×Ñ˜a×9Ñ9ÀtÐ9ÓLÕMð	Nð ÐrG   c                 óp   — | j                   rd| j                  › d| j                   › �S d| j                  › �S )Nzhttps://pypi.org/project/ú/)rA  rD  rK   s    rE   Úget_pypi_urlzComponent.get_pypi_url¡  s5   € Ø�<Š<Ø.¨t¯y©y¨k¸¸4¿<¹<¸.ÐIÐIà.¨t¯y©y¨kÐ:Ð:rG   c                 óæ  — t        g | j                  ‘| j                  ‘| j                  ‘| j                  ‘| j
                  j                  ‘| j                  €d nt        | j                  «      ‘| j                  ‘| j                  ‘t        | j                  «      ‘| j                  ‘| j                  ‘| j                  ‘| j                  ‘| j                   ‘| j"                  ‘t        | j$                  «      ‘t        | j&                  «      ‘| j(                  ‘| j*                  ‘t        | j,                  «      ‘t        | j.                  «      ‘t        | j0                  «      ‘| j2                  ‘| j4                  ‘| j6                  ‘t        | j8                  «      ‘t        | j:                  «      ‘| j<                  ‘| j>                  ‘t        | j@                  «      ‘| jB                  ‘­«      S rC   )"rg   r«   r¯  rD  rA  r¬  rš   r¨  Ú_ComparablePackageURLr¹  r¸  rÁ  r­  r>   r®  r°  r«  r±  r§  r³  r´  rº  rµ  r¶  r»  r¼  r·  r½  r¿  rÀ  r¾  rÂ  rÃ  r²  rK   s    rE   rh   zComponent.__comparable_tuple§  s  € Üð !
Ø�I‰Ið!
Ø—z‘zð!
Ø#'§9¡9ð!
Ø.2¯l©lð!
à�L‰L×Ñð!
ð —I‘IÐ%‰DÔ+@ÀÇÁÓ+Kð!
ð �I‰Ið	!
ð —x‘xð	!
ô "2°$·+±+Ó!>ð	!
ð
 �M‰Mð!
ð
  Ÿ;™;ð!
ð
 )-¯©ð!
ð ×Ñð!
ð �N‰Nð!
ð !ŸJ™Jð!
ô )9¸¿¹Ó(Eð!
ô ˜TŸ]™]Ó+ð!
ð .2¯^©^ð!
ð �M‰Mð!
ô ˜T×5Ñ5Ó6ð!
ô 9IÈÏÉÓ8Yð!
ô ˜TŸ_™_Ó-ð!
ð 04¯}©}ð!
ð ?C×>PÑ>Pð!
ð SW×R_ÑR_ð!
ô ˜TŸ\™\Ó*ð!
ô -=¸T×=MÑ=MÓ,Nð!
ð QU×PaÑPað!
ð ×"Ñ"ð!
ô %5°T·Y±YÓ$?ð!
ð ×Ññ!
ó ð 	rG   ri   c                 óf   — t        |t        «      r!| j                  «       |j                  «       k(  S yrk   )rl   r  Ú_Component__comparable_tuplern   s     rE   ro   zComponent.__eq__¹  s,   € Ü�eœYÔ'Ø×*Ñ*Ó,°×0HÑ0HÓ0JÑJÐJØrG   c                 óp   — t        |t        «      r!| j                  «       |j                  «       k  S t        S rC   )rl   r  r]  rq   rn   s     rE   rr   zComponent.__lt__¾  s/   € Ü�eœYÔ'Ø×*Ñ*Ó,¨u×/GÑ/GÓ/IÑIÐIÜÐrG   c                 ó4   — t        | j                  «       «      S rC   )rt   r]  rK   s    rE   ru   zComponent.__hash__Ã  rv   rG   c                 óŠ   — d| j                   ›d| j                  › d| j                  › d| j                  › d| j                  › d�S )Nz<Component bom-ref=z, group=rg  rh  z, type=rx   )r¬  r¯  rD  rA  r«   rK   s    rE   ry   zComponent.__repr__Æ  sJ   € Ø$ T§\¡\Ð$4°H¸T¿Z¹Z¸LÈÐPT×PYÑPYÈ{ð [Ø—|‘|�n G¨D¯I©I¨;°að9ð 	9rG   )rA   z SortedSet[OrganizationalContact])rA   zSortedSet[HashType])rA   zSortedSet[OmniborId])rA   zSortedSet[Swhid])rA   zSortedSet[ExternalReference])rA   zSortedSet[Property]r>  )rA   zSortedSet[str])F)lrz   r{   r|   r}   Ústaticmethodr   r~   r   rª  r±   rÄ   r   r,   r0   r‹   r‡   r   r'   r4   r   r%   r)   r7   r@  r  r-   r/   rj  r‹  r1   rF   r   r€   Útype_mappingrÉ   r  r«   r…   r‚   rƒ   ÚTOKENr«  rˆ  r—   r   r   r   r   r   r   r    r‰  r¬  r�   r­  r¾  r  r  r  r¿  r„   r>   r®  r¯  rD  Úinclude_noner   rA  r°  r“   r±  Ú_XmlBoolAttributeSHr²  r+   r§  r6   r5   r³  r´  r¸  ÚPackageUrlSHr¨  ÚFLATrÀ  rÁ  r¹  r½  rº  rµ  r¶  r»  r.   r¼  r·  rÂ  rÃ  rR  rU  rY  rg   r]  r†   ro   r   rr   rˆ   ru   ry   r‰   rG   rE   r  r  ¹  s  „ ñð ÙÐrÓsð Sð ¸À¹ð È+ò ó tó ðð. ,×3Ñ3Ø#'Ø04Ø37Ø#'Ø#Ø!%Ø%)Ø*.Ø&*Ø/3Ø04Ø#'Ø%)ØEIØ37Ø04Ø!Ø#Ø'+Ø6:Ø04ØØ7;Ø=AØ59Ø,0Ø8<Ø(,à $òCBàðBð ðBð ˜C‘=ð	Bð
 ˜%  V Ñ,Ñ-ðBð Ð/Ñ0ðBð ˜C‘=ðBð ˜‰}ðBð ˜#‘ðBð ˜c‘]ðBð ˜Ñ'ðBð ˜d‘^ðBð ˜ (Ñ+Ñ,ðBð ˜8 GÑ,Ñ-ðBð ˜C‘=ðBð  �zÑ"ð!Bð" & hÐ/@Ñ&AÑBð#Bð$ ˜X hÑ/Ñ0ð%Bð&   Ñ-ð'Bð( �c‰]ð)Bð* �t‰nð+Bð, ˜8Ñ$ð-Bð. ˜X kÑ2Ñ3ð/Bð0 Ð,Ñ-ð1Bð2 ð3Bð4 Ð3Ñ4ð5Bð6 ˜(Ð#8Ñ9Ñ:ð7Bð8 ˜h yÑ1Ñ2ð9Bð: ˜ %™Ñ)ð;Bð< $Ð$4Ñ5ð=Bð> �x ‘}Ñ%ð?BðB ˜‘ðCBðD 
óEBðH Ø€\×ÑÐ@ÓAØ€\×ÑÓ!ð�mò ó "ó Bó ðð 
‡[�[ð˜ð ¨4ò ó ðð Ø€\×Ñ˜\×DÑD×JÑJÓKð˜8 C™=ò ó Ló ðð ×Ñð$ 8¨C¡=ð $°Tò $ó ð$ð Ø€\×Ñ˜IÓ&Ø€\×Ñ˜vÓ&Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÓ!Ø€\×Ñ˜9Ó%ð˜ò ó &ó "ó +ó +ó +ó +ó +ó +ó +ó 'ó 'ó ðð Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×Ñ˜qÓ!ð˜(Ð#7Ñ8ò ó "ó +ó +ó +ó +ó +ó +ó ðð ‡_�_ð" Ð*>Ñ!?ð "ÀDò "ó ð"ð Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×Ñ˜qÓ!ð	"˜hÐ';Ñ<ò 	"ó "ó +ó +ó ð	"ð ×Ñð*¨Ð2FÑ)Gð *ÈDò *ó ð*ð Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×Ñ˜L×BÑB×IÑIÈ8ÓTØ€\×Ñ˜qÓ!ò	ó "ó Uó +ó +ó ð
	ð ‡^�^ð+˜xÐ(=Ñ>ð +À4ò +ó ð+ð Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×Ñ˜qÓ!Ø€\×Ñ˜\×DÑD×VÑVÓWð˜ ™ò ó Xó "ó +ó +ó +ó +ó +ó +ó ðð ‡]�]ð˜X c™]ð ¨tò ó ðð
 Ø€\×Ñ˜qÓ!Ø€\×Ñ˜\×DÑD×VÑVÓWð˜8 C™=ò ó Xó "ó ðð ×Ñð$ 8¨C¡=ð $°Tò $ó ð$ð Ø€\×Ñ˜qÓ!Ø€\×Ñ˜\×DÑD×VÑVÓWð�x ‘}ò ó Xó "ó ðð ‡\�\ð˜8 C™=ð ¨Tò ó ðð Ø€\×Ñ˜qÓ!Ø€\×Ñ˜\×DÑD×VÑVÓWð�cò ó Xó "ó ðð 
‡[�[ð˜ð  ò ó ðð Ø€\×ÑÐ1°2Ó6Ø€\×ÑÐ1°2Ó6Ø€\×ÑÐ1°2Ó6Ø€\×ÑÐ1°2Ó6Ø€\×Ñ˜qÓ!Ø€\×Ñ˜\×DÑD×VÑVÓWð
˜ #™ò 
ó Xó "ó 7ó 7ó 7ó 7ó ð
ð ‡^�^ð ˜x¨™}ð  °ò  ó ð ð
 Ø€\×Ñ˜qÓ!Ø€\×Ñ˜\×DÑD×VÑVÓWð!˜X c™]ò !ó Xó "ó ð!ð ×Ñð( x°¡}ð (¸ò (ó ð(ð Ø€\×ÑÐAÓBØ€\×Ñ˜rÓ"ð	�x Ñ/ò 	ó #ó Có ð	ð ‡\�\ð˜8 NÑ3ð ¸ò ó ðð Ø€\×Ñ˜LÓ)Ø€\×Ñ˜<Ó(Ø€\×ÑÓ!Ø€\×ÑÐ2Ó3Ø€\×ÑÐ)Ó*ð!˜X d™^ò !ó +ó 4ó "ó )ó *ó ð!ð ×Ñð( x°¡~ð (¸$ò (ó ð(ð Ø€\×ÑÐEÓFØ€\×Ñ˜rÓ"òó #ó Gó ðð ‡]�]ð)˜X hÑ/ð )°Dò )ó ð)ð Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐDÓEØ€\×Ñ˜rÓ"ðÐ+ò ó #ó Fó +ó +ó +ó +ó +ó +ó +ó ðð ‡_�_ð5 ¨'Ñ!2ð 5°tò 5ó ð5ð Ø€\×Ñ˜rÓ"Ø€\×Ñ˜\×DÑD×VÑVÓWð˜8 C™=ò ó Xó #ó ðð ×Ñð$ 8¨C¡=ð $°Tò $ó ð$ð Ø€\×Ñ˜rÓ"ð�X˜c‘]ò ó #ó ðð 	‡Z�Zð�x ‘}ð ¨ò ó ðð Ø€\×Ñ˜|Ó,Ø€\×Ñ˜rÓ"ð
�h˜zÑ*ò 
ó #ó -ó ð
ð 
‡[�[ð˜ *Ñ-ð °$ò ó ðð Ø€\×Ñ˜KÓ(Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×Ñ˜L×BÑB×GÑGÐT_Ô`Ø€\×Ñ˜rÓ"ò	!ó #ó aó +ó +ó )ó ð	!ð ×Ñð3 x°	Ñ':ð 3¸tò 3ó ð3ð Ø€\×Ñ˜GÓ$Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×Ñ˜L×BÑB×GÑGÐT[Ô\Ø€\×Ñ˜rÓ"ò	ó #ó ]ó +ó +ó %ó ð	ð ‡]�]ð)˜X e™_ð )°ò )ó ð)ð Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×Ñ˜rÓ"ð�h˜t‘nò ó #ó +ó +ó +ó +ó +ó +ó ðð 
‡[�[ð˜ $™ð ¨Dò ó ðð Ø€\×ÑÐ)Ó*Ø€\×Ñ˜rÓ"ð˜$ò ó #ó +ó ðð ‡_�_ð" ð "¨$ò "ó ð"ð
 Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×Ñ˜rÓ"ð˜( 8Ñ,ò ó #ó +ó +ó +ó +ó +ó +ó +ó ðð ‡_�_ð" ¨(Ñ!3ð "¸ò "ó ð"ð Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×Ñ˜L×BÑB×IÑIÈ;ÓWØ€\×Ñ˜rÓ"ò)ó #ó Xó +ó +ó +ó +ó +ó +ó +ó ð)ð ×ÑðC°xÐ@QÑ7Rð CÐW[ò Có  ðCð Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×Ñ˜L×BÑB×IÑIÈ:ÓVØ€\×Ñ˜rÓ"ò ó #ó Wó +ó +ó +ó +ó +ó ð ð ×Ñð1 X¨hÑ%7ð 1¸Dò 1ó ð1ð Ø€\×Ñ˜L×BÑB×IÑIÈ;ÓWØ€\×Ñ˜rÓ"ò	 ó #ó Xó ð	 ð ×Ñð1 X¨kÑ%:ð 1¸tò 1ó ð1ð Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×Ñ˜rÓ"Ø€\×ÑÐDÓEð˜(Ð#4Ñ5ò ó Fó #ó +ó +ó +ó +ó +ó ðð ‡_�_ð" Ð*;Ñ!<ð "Àò "ó ð"ð Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×Ñ˜rÓ"ð#˜x¨Ñ5ò #ó #ó +ó +ó +ó +ó ð#ð ×Ñð,¨8°LÑ+Að ,Àdò ,ó ð,ð2 Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×Ñ˜rÓ"ð' 8Ð,<Ñ#=ò 'ó #ó +ó +ó ð'ð ×Ñð4°8Ð<LÑ3Mð 4ÐRVò 4ó ð4ð Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×Ñ˜L×BÑB×IÑIÈ5ÓQØ€\×Ñ˜rÓ"òó #ó Ró +ó +ó ð
ð 
‡[�[ð%˜ #™ð %¨4ò %ó ð%ñ°dð ÀsÈ;ÑGWó ð;˜có ;ðÐ$4ó ð$˜Fð  tó ð
˜Cð  Dó ð
/˜#ó /ð9˜#ô 9rG   r  )dr†  ÚsysÚcollections.abcr   Úenumr   Útypingr   r   r   Úwarningsr   Úversion_infor   Útyping_extensionsÚpy_serializabler€   Ú
packageurlr   Úsortedcontainersr   Ú_internal.bom_refr   rÅ  Ú_internal.comparer   r[  r   rg   Úexception.modelr   r   Úexception.serializationr   r   r   Úschema.deprecationr   r   Úschema.schemar   r   r   r   r   r   r   r    Úserializationr!   rf  r"   re  rè  r$   r%   r&   r'   r(   r)   r*   r+   r¬  r,   Úcomponent_evidencer-   r.   Úcontactr/   r0   Úcryptor1   Ú
dependencyr2   r  r3   Úlicenser4   r5   r6   Úrelease_noter7   Úserializable_classr:   Úserializable_enumr~   r‹   ÚhelpersÚ
BaseHelperr“   r±   rÉ   rÓ   rê   ró   r  r@  rj  r‹  r  r‰   rG   rE   ú<module>rƒ     s¥  ðó$ 
Û 
Ý $Ý ß 'Ñ 'Ý à×Ñ�wÒÞ#å,ó 'Ý !Ý &å Eß rß N÷ñ ÷
 ^÷	÷ 	ó 	÷ `÷	÷ 	ó 	õ ß Xß @Ý $Ý "Ý ß VÑ VÝ &ð !€× Ñ ÀtÔL÷yRð yRó MðyRðx ×Ñô
�S˜$ó 
ó  ð
ô(!¨×)=Ñ)=×)HÑ)Hô (!ðV ×Ñô�C˜ó ó  ðô.5 ¨×(<Ñ(<×(GÑ(Gô 5 ðp !€× Ñ ÀtÔL÷@(ð @(ó Mð@(ðF ×Ñô
˜#˜tó 
ó  ð
ð !€× Ñ ÀtÔL÷V:ð V:ó MðV:ðr !€× Ñ ÀtÔL÷e>ð e>ó Mðe>ðP !€× Ñ ÀtÔL÷YWð YWó MðYWðx !€× Ñ ÀtÔLô7�×$Ñ$×/Ñ/ó 7ó Mð7ðt !€× Ñ ÀtÔLô7ˆL× Ñ ×+Ñ+ó 7ó Mð7ðt !€× Ñ ÀtÔLôN9�
ó N9ó MñN9rG   