Ë
    sPêj¿Q  ã                   ó   — d dl Z d dlmZ d dlmZmZmZ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 dd	lmZ d
dlmZmZ d
dlmZ erd dlmZ  edd¬«      Z e	j:                  d¬«       G d„ de	j<                  j>                  «      «       Z  e	j:                  d¬«       G d„ d«      «       Z! e	j:                  d¬«       G d„ d«      «       Z" e	j:                  d¬«       G d„ d«      «       Z# e	j:                  dd¬«       G d„ d«      «       Z$y)é    N)ÚIterable)ÚTYPE_CHECKINGÚAnyÚOptionalÚUnion)Ú	SortedSeté   )Úbom_ref_from_str)ÚComparableTuple)ÚInvalidCreIdException)Ú'SerializationOfUnexpectedValueExceptioné   )ÚExternalReferenceÚProperty)ÚBomRef)ÚTypeVarÚ_T_CreIdÚCreId)ÚboundT)Ú%ignore_unknown_during_deserializationc                   ó*  — 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d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)r   zš
    Helper class that allows us to perform validation on data strings that must conform to
    Common Requirements Enumeration (CRE) identifier(s).

    z^CRE:[0-9]+-[0-9]+$ÚidÚreturnNc                 ón   — t         j                  j                  |«      €t        d|› d�«      ‚|| _        y )NzSupplied value "z$ does not meet format specification.)r   Ú_VALID_CRE_REGEXÚmatchr   Ú_id)Úselfr   s     ú_/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/cyclonedx/model/definition.pyÚ__init__zCreId.__init__0   s<   € Ü×!Ñ!×'Ñ'¨Ó+Ð3Ü'Ø" 2 $Ð&JÐKóð ð ˆ�ó    ú.c                 ó   — | j                   S ©N©r   ©r   s    r   r   zCreId.id7   s   € ð �x‰xˆr!   Úoc                 óL   — t        || «      rt        |«      S t        d|›�«      ‚)Nz"Attempt to serialize a non-CreId: )Ú
isinstanceÚstrr   ©Úclsr'   s     r   Ú	serializezCreId.serialize=   s,   € ä�a˜ÔÜ�q“6ˆMÜ5Ø0°°Ð6ó8ð 	8r!   r,   ztype[_T_CreId]r   c                 ó&   —  | t        |«      ¬«      S )N)r   )r*   r+   s     r   ÚdeserializezCreId.deserializeD   s   € á”c˜!“fŒ~Ðr!   Úotherc                 óV   — t        |t        «      r| j                  |j                  k(  S y©NF)r)   r   r   ©r   r0   s     r   Ú__eq__zCreId.__eq__H   s"   € Ü�eœUÔ#Ø—8‘8˜uŸy™yÑ(Ð(Ør!   c                 ó`   — t        |t        «      r| j                  |j                  k  S t        S r$   )r)   r   r   ÚNotImplementedr3   s     r   Ú__lt__zCreId.__lt__M   s%   € Ü�eœUÔ#Ø—8‘8˜eŸi™iÑ'Ð'ÜÐr!   c                 ó,   — t        | j                  «      S r$   )Úhashr   r&   s    r   Ú__hash__zCreId.__hash__R   s   € Ü�D—H‘H‹~Ðr!   c                 ó"   — d| j                   › d�S )Nz<CreId ú>r%   r&   s    r   Ú__repr__zCreId.__repr__U   s   € Ø˜Ÿ™˜
 !Ð$Ð$r!   c                 ó   — | j                   S r$   r%   r&   s    r   Ú__str__zCreId.__str__X   s   € Ø�x‰xˆr!   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚreÚcompiler   r*   r    ÚpropertyÚserializableÚ	json_nameÚxml_namer   Úclassmethodr   r-   r/   Úboolr4   r7   Úintr:   r=   r?   © r!   r   r   r   &   s	  „ ñð "�r—z‘zÐ"8Ó9Ðð˜3ð  4ó ð Ø€\×Ñ˜CÓ Ø€\×Ñ˜3Óð�Cò ó  ó !ó ðð ð8˜#ð 8 #ò 8ó ð8ð ðÐ)ð ¨cð °jò ó ðð˜Cð  Dó ð
˜Cð  Dó ð
˜#ó ð%˜#ó %ð˜ô r!   c                   ó  — e Zd ZdZddddddddddœ	deeeef      dee   dee   dee   deee      d	eee	      d
eeeef      deee
      deee      ddfd„Ze ej                  e«       ej                   d«       ej"                  d«       ej$                  «       de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j2                  ej4                  j6                  d«       ej(                  d«      d3d„«       «       «       Zej,                  dee   ddfd„«       Ze ej                   d«       ej2                  ej4                  j:                  d«       ej(                  d«      d4d „«       «       «       «       Zej,                  d	ee	   ddfd!„«       Ze ej                  e«       ej(                  d"«      dee   fd#„«       «       «       Zej,                  d
eeeef      ddfd$„«       Ze ej2                  ej4                  j6                  d%«       ej(                  d&«      d5d'„«       «       «       Z e j,                  dee
   ddfd(„«       Z e ej2                  ej4                  j6                  d)«       ej(                  d*«      d6d+„«       «       «       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d0„Z(de)fd1„Z*defd2„Z+y)7ÚRequirementzÂ
    A requirement comprising a standard.

    .. note::
        See the CycloneDX Schema for hashType:
        https://cyclonedx.org/docs/1.7/json/#definitions_standards_items_requirements
    N)	Úbom_refÚ
identifierÚtitleÚtextÚdescriptionsÚopen_creÚparentÚ
propertiesÚexternal_referencesrP   rQ   rR   rS   rT   rU   rV   rW   rX   r   c       	         ó´   — t        |«      | _        || _        || _        || _        |xs d| _        |xs d| _        || _        |xs d| _        |	xs d| _	        y ©NrM   )
Ú_bom_ref_from_strÚ_bom_refrQ   rR   rS   rT   rU   rV   rW   rX   )
r   rP   rQ   rR   rS   rT   rU   rV   rW   rX   s
             r   r    zRequirement.__init__f   s]   € ô *¨'Ó2ˆŒØ$ˆŒØˆŒ
ØˆŒ	Ø(Ò.¨BˆÔØ š BˆŒØˆŒØ$Ò*¨ˆŒØ#6Ò#<¸"ˆÕ r!   úbom-refc                 ó   — | j                   S )zÉ
        An optional identifier which can be used to reference the requirement elsewhere in the BOM.
        Every bom-ref MUST be unique within the BOM.

        Returns:
            `BomRef`
        ©r\   r&   s    r   rP   zRequirement.bom_ref|   ó   € ð �}‰}Ðr!   r   c                 ó   — | j                   S )zI
        Returns:
            The identifier of the requirement.
        ©Ú_identifierr&   s    r   rQ   zRequirement.identifier‹   ó   € ð ×ÑÐr!   c                 ó   — || _         y r$   rb   ©r   rQ   s     r   rQ   zRequirement.identifier”   ó
   € à%ˆÕr!   r	   c                 ó   — | j                   S )zD
        Returns:
            The title of the requirement.
        ©Ú_titler&   s    r   rR   zRequirement.title˜   ó   € ð �{‰{Ðr!   c                 ó   — || _         y r$   ri   ©r   rR   s     r   rR   zRequirement.title¡   ó	   € àˆ�r!   é   c                 ó   — | j                   S )zC
        Returns:
            The text of the requirement.
        ©Ú_textr&   s    r   rS   zRequirement.text¥   ó   € ð �z‰zÐr!   c                 ó   — || _         y r$   rq   )r   rS   s     r   rS   zRequirement.text®   ó	   € àˆ�
r!   Údescriptioné   c                 ó   — | j                   S )zV
        Returns:
            A SortedSet of descriptions of the requirement.
        )Ú_descriptionsr&   s    r   rT   zRequirement.descriptions²   ó   € ð ×!Ñ!Ð!r!   c                 ó$   — t        |«      | _        y r$   )r   ry   )r   rT   s     r   rT   zRequirement.descriptions¼   ó   € ä& |Ó4ˆÕr!   ÚopenCreé   c                 ó   — | j                   S )a  
        CRE is a structured and standardized framework for uniting security standards and guidelines. CRE links each
        section of a resource to a shared topic identifier (a Common Requirement). Through this shared topic link, all
        resources map to each other. Use of CRE promotes clear and unambiguous communication among stakeholders.

        Returns:
            The Common Requirements Enumeration (CRE) identifier(s).
            CREs must match regular expression: ^CRE:[0-9]+-[0-9]+$
        )Ú	_open_crer&   s    r   rU   zRequirement.open_creÀ   s   € ð �~‰~Ðr!   c                 ó$   — t        |«      | _        y r$   )r   r€   )r   rU   s     r   rU   zRequirement.open_creÐ   s   € ä" 8Ó,ˆ�r!   é   c                 ó   — | j                   S )zî
        Returns:
            The optional bom-ref to a parent requirement. This establishes a hierarchy of requirements. Top-level
            requirements must not define a parent. Only child requirements should define parents.
        )Ú_parentr&   s    r   rV   zRequirement.parentÔ   s   € ð �|‰|Ðr!   c                 ó(   — t        |d¬«      | _        y )NT)Úoptional)r[   r„   )r   rV   s     r   rV   zRequirement.parentß   s   € ä(¨¸$Ô?ˆ�r!   rF   é   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`
        )Ú_propertiesr&   s    r   rW   zRequirement.propertiesã   s   € ð ×ÑÐr!   c                 ó$   — t        |«      | _        y r$   )r   r‰   )r   rW   s     r   rW   zRequirement.propertiesð   s   € ä$ ZÓ0ˆÕr!   Ú	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_referencesr&   s    r   rX   zRequirement.external_referencesô   s   € ð ×(Ñ(Ð(r!   c                 ó$   — t        |«      | _        y r$   ©r   r�   ©r   rX   s     r   rX   zRequirement.external_references  ó   € ä$-Ð.AÓ$BˆÕ!r!   c                 ó:  — t        | j                  | j                  j                  | j                  | j
                  t        | j                  «      t        | j                  «      | j                  t        | j                  «      t        | j                  «      f	«      S r$   )Ú_ComparableTuplerQ   rP   ÚvaluerR   rS   rT   rU   rV   rW   rX   r&   s    r   Ú__comparable_tuplezRequirement.__comparable_tuple  sn   € äØ�O‰O˜TŸ\™\×/Ñ/Ø�J‰J˜Ÿ	™	Ü˜T×.Ñ.Ó/Ü˜TŸ]™]Ó+¨T¯[©[Ô:JÈ4Ï?É?Ó:[Ü˜T×5Ñ5Ó6ð!
ó ð 	r!   r0   c                 óp   — t        |t        «      r!| j                  «       |j                  «       k  S t        S r$   )r)   rO   Ú_Requirement__comparable_tupler6   r3   s     r   r7   zRequirement.__lt__  ó/   € Ü�eœ[Ô)Ø×*Ñ*Ó,¨u×/GÑ/GÓ/IÑIÐIÜÐr!   c                 óf   — t        |t        «      r!| j                  «       |j                  «       k(  S yr2   )r)   rO   r™   r3   s     r   r4   zRequirement.__eq__  ó,   € Ü�eœ[Ô)Ø×*Ñ*Ó,°×0HÑ0HÓ0JÑJÐJØr!   c                 ó4   — t        | j                  «       «      S r$   )r9   r™   r&   s    r   r:   zRequirement.__hash__  ó   € Ü�D×+Ñ+Ó-Ó.Ð.r!   c                 óŠ   — d| j                   › d| j                  › d| j                  › d| j                  › d| j                  › d�S )Nz<Requirement bom-ref=ú, identifier=ú, title=z, text=z	, parent=r<   )r\   rQ   rR   rS   rV   r&   s    r   r=   zRequirement.__repr__  sI   € Ø& t§}¡} o°]À4Ç?Á?ÐBSð TØ—Z‘Z�L ¨¯	©	 {°)¸D¿K¹K¸=ÈðKð 	Kr!   )r   zSortedSet[str])r   zSortedSet[CreId])r   zSortedSet[Property]©r   zSortedSet[ExternalReference]),r@   rA   rB   rC   r   r   r*   r   r   r   r   r   r    rF   rG   Útype_mappingrH   rI   Úxml_attributerP   Úxml_sequencerQ   ÚsetterrR   rS   Ú	xml_arrayÚXmlArraySerializationTypeÚNESTEDrT   ÚFLATrU   rV   rW   rX   r•   r™   r   rK   r7   Úobjectr4   rL   r:   r=   rM   r!   r   rO   rO   \   s1  „ ñð 15Ø$(Ø#Ø"Ø04Ø.2Ø/3Ø37ØEIò=à˜%  V Ñ,Ñ-ð=ð ˜S‘Mð=ð ˜‰}ð	=ð
 �s‰mð=ð ˜x¨™}Ñ-ð=ð ˜8 E™?Ñ+ð=ð ˜˜s F˜{Ñ+Ñ,ð=ð ˜X hÑ/Ñ0ð=ð & hÐ/@Ñ&AÑBð=ð 
ó=ð, Ø€\×Ñ˜vÓ&Ø€\×Ñ˜IÓ&Ø€\×Ñ˜9Ó%Ø€\×ÑÓ!ð˜ò ó "ó &ó 'ó 'ó ð
ð Ø€\×Ñ˜qÓ!ð ˜H S™Mò  ó "ó ð ð ×Ñð& X¨c¡]ð &°tò &ó ð&ð Ø€\×Ñ˜qÓ!ð�x ‘}ò ó "ó ðð ‡\�\ð˜8 C™=ð ¨Tò ó ðð Ø€\×Ñ˜qÓ!ð�h˜s‘mò ó "ó ðð 
‡[�[ð˜ #™ð ¨4ò ó ðð Ø€\×Ñ˜L×BÑB×IÑIÈ=ÓYØ€\×Ñ˜qÓ!ò"ó "ó Zó ð"ð ×Ñð5¨°#©ð 5¸4ò 5ó ð5ð Ø€\×Ñ˜IÓ&Ø€\×Ñ˜L×BÑB×GÑGÈÓSØ€\×Ñ˜qÓ!ò
ó "ó Tó 'ó ð
ð ‡_�_ð- ¨%¡ð -°Tò -ó ð-ð Ø€\×Ñ˜vÓ&Ø€\×Ñ˜qÓ!ð˜ Ñ(ò ó "ó 'ó ðð ‡]�]ð@˜X e¨C°¨KÑ&8Ñ9ð @¸dò @ó ð@ð Ø€\×Ñ˜L×BÑB×IÑIÈ:ÓVØ€\×Ñ˜qÓ!ò ó "ó Wó ð ð ×Ñð1 X¨hÑ%7ð 1¸Dò 1ó ð1ð Ø€\×Ñ˜L×BÑB×IÑIÈ;ÓWØ€\×Ñ˜qÓ!ò)ó "ó Xó ð)ð ×ÑðC°xÐ@QÑ7Rð CÐW[ò Có  ðCðÐ$4ó ð˜Cð  Dó ð
˜Fð  tó ð
/˜#ó /ðK˜#ô Kr!   rO   c                   ó²  — e Zd ZdZddddddœdeeeef      dee   dee   dee   deeeeef         d	dfd
„Z	e
 ej                  e«       ej                  d«       ej                  d«       ej                  «       d	e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.                  j0                  d«      d d„«       «       «       Zej&                  deeeef      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)!ÚLevelz³
    Level of compliance for a standard.

    .. note::
        See the CycloneDX Schema for hashType: https://cyclonedx.org/docs/1.7/json/#definitions_standards_items_levels
    N)rP   rQ   rR   rv   ÚrequirementsrP   rQ   rR   rv   r®   r   c                ód   — t        |«      | _        || _        || _        || _        |xs d| _        y rZ   )r[   r\   rQ   rR   rv   r®   )r   rP   rQ   rR   rv   r®   s         r   r    zLevel.__init__*  s3   € ô *¨'Ó2ˆŒØ$ˆŒØˆŒ
Ø&ˆÔØ(Ò.¨BˆÕr!   r]   c                 ó   — | j                   S )zÃ
        An optional identifier which can be used to reference the level elsewhere in the BOM.
        Every bom-ref MUST be unique within the BOM.

        Returns:
            `BomRef`
        r_   r&   s    r   rP   zLevel.bom_ref8  r`   r!   r   c                 ó   — | j                   S )zC
        Returns:
            The identifier of the level.
        rb   r&   s    r   rQ   zLevel.identifierG  rd   r!   c                 ó   — || _         y r$   rb   rf   s     r   rQ   zLevel.identifierP  rg   r!   r	   c                 ó   — | j                   S )z>
        Returns:
            The title of the level.
        ri   r&   s    r   rR   zLevel.titleT  rk   r!   c                 ó   — || _         y r$   ri   rm   s     r   rR   zLevel.title]  rn   r!   ro   c                 ó   — | j                   S )zD
        Returns:
            The description of the level.
        ©Ú_descriptionr&   s    r   rv   zLevel.descriptiona  ó   € ð × Ñ Ð r!   c                 ó   — || _         y r$   r¶   ©r   rv   s     r   rv   zLevel.descriptionj  ó
   € à'ˆÕr!   rw   Úrequirementc                 ó   — | j                   S )z]
        Returns:
            A SortedSet of requirements associated with the level.
        ©Ú_requirementsr&   s    r   r®   zLevel.requirementsn  rz   r!   c                 ó@   — t        t        t        |«      «      | _        y r$   )r   Úmapr[   r¿   ©r   r®   s     r   r®   zLevel.requirementsx  s   € ä&¤sÔ+<Ø+7ó(9ó :ˆÕr!   c           	      ó¬   — t        | j                  | j                  j                  | j                  | j
                  t        | j                  «      f«      S r$   )r•   rQ   rP   r–   rR   rv   r®   r&   s    r   r—   zLevel.__comparable_tuple}  sD   € äØ�O‰O˜TŸ\™\×/Ñ/Ø�J‰J˜×(Ñ(Ü˜T×.Ñ.Ó/ð!
ó ð 	r!   r0   c                 óp   — t        |t        «      r!| j                  «       |j                  «       k  S t        S r$   )r)   r­   Ú_Level__comparable_tupler6   r3   s     r   r7   zLevel.__lt__…  s/   € Ü�eœUÔ#Ø×*Ñ*Ó,¨u×/GÑ/GÓ/IÑIÐIÜÐr!   c                 óf   — t        |t        «      r!| j                  «       |j                  «       k(  S yr2   )r)   r­   rÅ   r3   s     r   r4   zLevel.__eq__Š  s,   € Ü�eœUÔ#Ø×*Ñ*Ó,°×0HÑ0HÓ0JÑJÐJØr!   c                 ó4   — t        | j                  «       «      S r$   )r9   rÅ   r&   s    r   r:   zLevel.__hash__�  rž   r!   c           	      óp   — d| j                   › d| j                  › d| j                  › d| j                  › d�	S )Nz<Level bom-ref=r    r¡   ú, description=r<   )rP   rQ   rR   rv   r&   s    r   r=   zLevel.__repr__’  sB   € Ø  §¡ ¨m¸D¿O¹OÐ;Lð MØ—Z‘Z�L ¨t×/?Ñ/?Ð.@ÀðCð 	Cr!   )r   zSortedSet[BomRef])$r@   rA   rB   rC   r   r   r*   r   r   r    rF   rG   r£   rH   rI   r¤   rP   r¥   rQ   r¦   rR   rv   r§   r¨   r©   r®   r•   rÅ   r   rK   r7   r«   r4   rL   r:   r=   rM   r!   r   r­   r­   !  sß  „ ñð 15Ø$(Ø#Ø%)Ø?Cò/à˜%  V Ñ,Ñ-ð/ð ˜S‘Mð/ð ˜‰}ð	/ð
 ˜c‘]ð/ð ˜x¨¨c°6¨kÑ(:Ñ;Ñ<ð/ð 
ó/ð Ø€\×Ñ˜vÓ&Ø€\×Ñ˜IÓ&Ø€\×Ñ˜9Ó%Ø€\×ÑÓ!ð˜ò ó "ó &ó 'ó 'ó ð
ð Ø€\×Ñ˜qÓ!ð ˜H S™Mò  ó "ó ð ð ×Ñð& X¨c¡]ð &°tò &ó ð&ð Ø€\×Ñ˜qÓ!ð�x ‘}ò ó "ó ðð ‡\�\ð˜8 C™=ð ¨Tò ó ðð Ø€\×Ñ˜qÓ!ð!˜X c™]ò !ó "ó ð!ð ×Ñð( x°¡}ð (¸ò (ó ð(ð Ø€\×Ñ˜qÓ!Ø€\×Ñ˜L×BÑB×IÑIÈ=ÓYò"ó Zó "ó ð"ð ×Ñð:¨°%¸¸V¸Ñ2DÑ)Eð :È$ò :ó ð:ðÐ$4ó ð˜Cð  Dó ð
˜Fð  tó ð
/˜#ó /ðC˜#ô Cr!   r­   c                   óÐ  — e Zd ZdZdddddddddœdeeeef      dee   dee   dee   dee   d	eee	      d
eee
      deed      ddfd„Ze ej                  e«       ej                  d«       ej                   d«       ej"                  «       de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«      dee   fd„«       «       Zej*                  dee   ddfd„«       Ze ej2                  ej4                  j6                  d«       ej&                  d«      d/d„«       «       «       Zej*                  d	ee	   ddfd „«       Ze ej2                  ej4                  j6                  d!«       ej&                  d"«      d0d#„«       «       «       Zej*                  d
ee
   ddfd$„«       Ze ej2                  ej4                  j6                  d%«       ej&                  d&«      d1d'„«       «       «       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)2ÚStandarda  
    A standard of regulations, industry or organizational-specific standards, maturity models, best practices,
    or any other requirements.

    .. note::
        See the CycloneDX Schema for hashType: https://cyclonedx.org/docs/1.7/xml/#type_standard
    N)rP   ÚnameÚversionrv   Úownerr®   ÚlevelsrX   rP   rÌ   rÍ   rv   rÎ   r®   rÏ   rX   r   r   c                óž   — t        |«      | _        || _        || _        || _        || _        |xs d| _        |xs d| _        |xs d| _        y rZ   )	r[   r\   rÌ   rÍ   rv   rÎ   r®   rÏ   rX   )	r   rP   rÌ   rÍ   rv   rÎ   r®   rÏ   rX   s	            r   r    zStandard.__init__¡  sR   € ô *¨'Ó2ˆŒØˆŒ	ØˆŒØ&ˆÔØˆŒ
Ø(Ò.¨BˆÔØ’l ˆŒØ#6Ò#<¸"ˆÕ r!   r]   c                 ó   — | j                   S )zÆ
        An optional identifier which can be used to reference the standard elsewhere in the BOM. Every bom-ref MUST be
        unique within the BOM.

        Returns:
            `BomRef`
        r_   r&   s    r   rP   zStandard.bom_ref·  r`   r!   r   c                 ó   — | j                   S )z?
        Returns:
            The name of the standard
        ©Ú_namer&   s    r   rÌ   zStandard.nameÆ  rs   r!   c                 ó   — || _         y r$   rÓ   )r   rÌ   s     r   rÌ   zStandard.nameÏ  ru   r!   r	   c                 ó   — | j                   S )zB
        Returns:
            The version of the standard
        ©Ú_versionr&   s    r   rÍ   zStandard.versionÓ  s   € ð �}‰}Ðr!   c                 ó   — || _         y r$   r×   )r   rÍ   s     r   rÍ   zStandard.versionÜ  s	   € àˆ�r!   ro   c                 ó   — | j                   S )zF
        Returns:
            The description of the standard
        r¶   r&   s    r   rv   zStandard.descriptionà  r¸   r!   c                 ó   — || _         y r$   r¶   rº   s     r   rv   zStandard.descriptioné  r»   r!   rw   c                 ó   — | j                   S )zo
        Returns:
            The owner of the standard, often the entity responsible for its release.
        ©Ú_ownerr&   s    r   rÎ   zStandard.ownerí  rk   r!   c                 ó   — || _         y r$   rÝ   )r   rÎ   s     r   rÎ   zStandard.ownerö  rn   r!   r¼   r~   c                 ó   — | j                   S )z[
        Returns:
            A SortedSet of requirements comprising the standard.
        r¾   r&   s    r   r®   zStandard.requirementsú  rz   r!   c                 ó$   — t        |«      | _        y r$   )r   r¿   rÂ   s     r   r®   zStandard.requirements  r|   r!   Úlevelr‚   c                 ó   — | j                   S )zŽ
        Returns:
            A SortedSet of levels associated with the standard. Some standards have different levels of compliance.
        )Ú_levelsr&   s    r   rÏ   zStandard.levels  s   € ð �|‰|Ðr!   c                 ó$   — t        |«      | _        y r$   )r   rä   )r   rÏ   s     r   rÏ   zStandard.levels  s   € ä  Ó(ˆ�r!   r‹   r‡   c                 ó   — | j                   S )zg
        Returns:
            A SortedSet of external references associated with the standard.
        rŽ   r&   s    r   rX   zStandard.external_references  s   € ð ×(Ñ(Ð(r!   c                 ó$   — t        |«      | _        y r$   r‘   r’   s     r   rX   zStandard.external_references   r“   r!   c                 ó  — t        | j                  | j                  | j                  j                  | j
                  | j                  t        | j                  «      t        | j                  «      t        | j                  «      f«      S r$   )
r•   rÌ   rÍ   rP   r–   rv   rÎ   r®   rÏ   rX   r&   s    r   r—   zStandard.__comparable_tuple.  se   € äØ�I‰I�t—|‘|Ø�L‰L×ÑØ×Ñ˜dŸj™jÜ˜T×.Ñ.Ó/Ô1AÀ$Ç+Á+Ó1NÜ˜T×5Ñ5Ó6ð!
ó ð 	r!   r0   c                 óp   — t        |t        «      r!| j                  «       |j                  «       k  S t        S r$   )r)   rË   Ú_Standard__comparable_tupler6   r3   s     r   r7   zStandard.__lt__8  s/   € Ü�eœXÔ&Ø×*Ñ*Ó,¨u×/GÑ/GÓ/IÑIÐIÜÐr!   c                 óf   — t        |t        «      r!| j                  «       |j                  «       k(  S yr2   )r)   rË   rê   r3   s     r   r4   zStandard.__eq__=  s,   € Ü�eœXÔ&Ø×*Ñ*Ó,°×0HÑ0HÓ0JÑJÐJØr!   c                 ó4   — t        | j                  «       «      S r$   )r9   rê   r&   s    r   r:   zStandard.__hash__B  rž   r!   c                 óŠ   — d| j                   › d| j                  › d| j                  › d| j                  › d| j                  › d�S )Nz<Standard bom-ref=z, name=z
, version=rÉ   z, owner=r<   )rP   rÌ   rÍ   rv   rÎ   r&   s    r   r=   zStandard.__repr__E  sN   € Ø# D§L¡L >ð 2Ø—I‘I�;˜j¨¯©¨ð 7Ø×+Ñ+Ð,¨H°T·Z±Z°LÀðCð 	Cr!   )r   zSortedSet[Requirement])r   zSortedSet[Level]r¢   )*r@   rA   rB   rC   r   r   r*   r   r   rO   r­   r    rF   rG   r£   rH   rI   r¤   rP   r¥   rÌ   r¦   rÍ   rv   rÎ   r§   r¨   r©   r®   rÏ   rX   r   r•   rê   r   rK   r7   r«   r4   rL   r:   r=   rM   r!   r   rË   rË   —  s_  „ ñð 15Ø"Ø!%Ø%)Ø#Ø8<Ø,0ØGKò=à˜%  V Ñ,Ñ-ð=ð �s‰mð=ð ˜#‘ð	=ð
 ˜c‘]ð=ð ˜‰}ð=ð ˜x¨Ñ4Ñ5ð=ð ˜ %™Ñ)ð=ð & hÐ/BÑ&CÑDð=ð 
ó=ð, Ø€\×Ñ˜vÓ&Ø€\×Ñ˜IÓ&Ø€\×Ñ˜9Ó%Ø€\×ÑÓ!ð˜ò ó "ó &ó 'ó 'ó ð
ð Ø€\×Ñ˜qÓ!ð�h˜s‘mò ó "ó ðð 
‡[�[ð˜ #™ð ¨4ò ó ðð Ø€\×Ñ˜qÓ!ð˜ #™ò ó "ó ðð ‡^�^ð ˜x¨™}ð  °ò  ó ð ð Ø€\×Ñ˜qÓ!ð!˜X c™]ò !ó "ó ð!ð ×Ñð( x°¡}ð (¸ò (ó ð(ð Ø€\×Ñ˜qÓ!ð�x ‘}ò ó "ó ðð ‡\�\ð˜8 C™=ð ¨Tò ó ðð Ø€\×Ñ˜L×BÑB×IÑIÈ=ÓYØ€\×Ñ˜qÓ!ò"ó "ó Zó ð"ð ×Ñð5¨°+Ñ)>ð 5À4ò 5ó ð5ð Ø€\×Ñ˜L×BÑB×IÑIÈ7ÓSØ€\×Ñ˜qÓ!òó "ó Tó ðð ‡]�]ð)˜X e™_ð )°ò )ó ð)ð Ø€\×Ñ˜L×BÑB×IÑIÈ;ÓWØ€\×Ñ˜qÓ!ò)ó "ó Xó ð)ð ×ÑðC°xÐ@QÑ7Rð CÐW[ò Có  ðCðÐ$4ó ð˜Cð  Dó ð
˜Fð  tó ð
/˜#ó /ðC˜#ô Cr!   rË   Údefinitions)rÌ   r   c                   óF  — e Zd ZdZddœdeee      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de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)ÚDefinitionszŸ
    The repository for definitions

    .. note::
        See the CycloneDX Schema for hashType: https://cyclonedx.org/docs/1.7/xml/#type_definitionsType
    N©Ú	standardsrò   r   c                ó   — |xs d| _         y rZ   rñ   ©r   rò   s     r   r    zDefinitions.__init__W  s   € ð #š bˆ�r!   Ústandardr   c                 ó   — | j                   S )z?
        Returns:
            A SortedSet of Standards
        )Ú
_standardsr&   s    r   rò   zDefinitions.standards]  s   € ð �‰Ðr!   c                 ó$   — t        |«      | _        y r$   )r   r÷   rô   s     r   rò   zDefinitions.standardsg  s   € ä# IÓ.ˆ�r!   c                 ó2   — t        | j                  «      dkD  S )Nr   )Úlenr÷   r&   s    r   Ú__bool__zDefinitions.__bool__k  s   € Ü�4—?‘?Ó# aÑ'Ð'r!   c                 ó,   — t        | j                  «      S r$   )r•   r÷   r&   s    r   r—   zDefinitions.__comparable_tuplen  s   € ä §¡Ó0Ð0r!   r0   c                 óf   — t        |t        «      r!| j                  «       |j                  «       k(  S yr2   )r)   rð   Ú_Definitions__comparable_tupler3   s     r   r4   zDefinitions.__eq__r  rœ   r!   c                 óp   — t        |t        «      r!| j                  «       |j                  «       k  S t        S r$   )r)   rð   rþ   r6   r3   s     r   r7   zDefinitions.__lt__w  rš   r!   c                 ó4   — t        | j                  «       «      S r$   )r9   rþ   r&   s    r   r:   zDefinitions.__hash__|  rž   r!   c                 ó"   — d| j                   ›d�S )Nz<Definitions standards=z >rñ   r&   s    r   r=   zDefinitions.__repr__  s   € Ø(¨¯©Ð(:¸"Ð=Ð=r!   )r   zSortedSet[Standard])r@   rA   rB   rC   r   r   rË   r    rF   rG   r§   r¨   r©   r¥   rò   r¦   rK   rû   r•   rþ   r«   r4   r   r7   rL   r:   r*   r=   rM   r!   r   rð   rð   K  sþ   „ ñ
ð 37ò)à˜H XÑ.Ñ/ð)ð 
ó)ð Ø€\×Ñ˜L×BÑB×IÑIÈ:ÓVØ€\×Ñ˜qÓ!òó "ó Wó ðð ×Ñð/ 8¨HÑ#5ð /¸$ò /ó ð/ð(˜$ó (ð1Ð$4ó 1ð˜Fð  tó ð
˜Cð  Dó ð
/˜#ó /ð>˜#ô >r!   rð   )%rD   Úcollections.abcr   Útypingr   r   r   r   Úpy_serializablerG   Úsortedcontainersr   Ú_internal.bom_refr
   r[   Ú_internal.comparer   r•   Úexception.modelr   Úexception.serializationr   Ú r   r   rP   r   r   r   Úserializable_classÚhelpersÚ
BaseHelperr   rO   r­   rË   rð   rM   r!   r   ú<module>r     s)  ðó$ 
Ý $ß 6Ó 6ã &Ý &å EÝ CÝ 3Ý Mß )Ý áÝá�z¨Ô1€Hð !€× Ñ ÀtÔLô2ˆL× Ñ ×+Ñ+ó 2ó Mð2ðj !€× Ñ ÀtÔL÷AKð AKó MðAKðH !€× Ñ ÀtÔL÷rCð rCó MðrCðj !€× Ñ ÀtÔL÷pCð pCó MðpCðf !€× Ñ Ø	Ø*.ô÷1>ð 1>ó	ñ1>r!   