§
    ¸)ýfÔ  ã                   óh  — d dl mZ d dlZd dlmZ d dlmZ  G d„ de¦  «        Z G d„ de¦  «        Zd	„ Z	 G d
„ de
¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d „ d!e¦  «        Z G d"„ d#e¦  «        Z G d$„ d%e¦  «        Z G d&„ d'e¦  «        Z G d(„ d)e¦  «        Z G d*„ d+e¦  «        Z G d,„ d-e
¦  «        ZdS ).é    )Úprint_functionN©ÚAr)ÚConstantsGroupc                   ó   — e Zd ZdZdZdZdZdS )Ú	NodeTypesÚUsdPreviewSurfaceÚUsdUVTextureÚUsdTransform2dÚUsdPrimvarReaderN)Ú__name__Ú
__module__Ú__qualname__r	   r
   r   r   © ó    úx/home/blender/git/blender-v430/install_release/4.3/python/lib/python3.11/site-packages/pxr/UsdUtils/complianceChecker.pyr   r   !   s&   € € € € € Ø+ÐØ!€LØ%€NØ)ÐÐÐr   r   c                   ó"   — e Zd ZdZdZdZdZdZdS )ÚShaderPropsÚbiasÚscaleÚsourceColorSpaceÚnormalÚfileN)r   r   r   ÚBiasÚScaleÚSourceColorSpaceÚNormalÚFiler   r   r   r   r   '   s(   € € € € € Ø€DØ€EØ)ÐØ€FØ€D€D€Dr   r   c                 ó€   — |                       ¦   «                              ¦   «         pt          j        | j        ¦  «        S ©N)ÚGetFileFormatÚ	IsPackager   ÚIsPackageRelativePathÚ
identifier)Úlayers    r   Ú_IsPackageOrPackagedLayerr&   /   s8   € Ø×ÒÑ Ô ×*Ò*Ñ,Ô,ð 6ÝÔ# EÔ$4Ñ5Ô5ð6r   c                   ór   — 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d„ Zd„ Zd„ ZdS )ÚBaseRuleCheckerz-This is Base class for all the rule-checkers.c                 óZ   — || _         || _        || _        g | _        g | _        g | _        d S r    )Ú_verboseÚ_consumerLevelChecksÚ_assetLevelChecksÚ_failedChecksÚ_errorsÚ	_warnings)ÚselfÚverboseÚconsumerLevelChecksÚassetLevelCheckss       r   Ú__init__zBaseRuleChecker.__init__5   s3   € ØˆŒØ$7ˆÔ!Ø!1ˆÔØˆÔØˆŒØˆŒˆˆr   c                 ó:   — | j                              |¦  «         d S r    )r-   Úappend©r0   Úmsgs     r   Ú_AddFailedCheckzBaseRuleChecker._AddFailedCheck=   s   € ØÔ×!Ò! #Ñ&Ô&Ð&Ð&Ð&r   c                 ó:   — | j                              |¦  «         d S r    ©r.   r6   r7   s     r   Ú	_AddErrorzBaseRuleChecker._AddError@   s   € ØŒ×Ò˜CÑ Ô Ð Ð Ð r   c                 ó:   — | j                              |¦  «         d S r    ©r/   r6   r7   s     r   Ú_AddWarningzBaseRuleChecker._AddWarningC   s   € ØŒ×Ò˜cÑ"Ô"Ð"Ð"Ð"r   c                 ó6   — | j         rt          |¦  «         d S d S r    ©r*   Úprintr7   s     r   Ú_MsgzBaseRuleChecker._MsgF   ó%   € ØŒ=ð 	Ý�#‰JŒJˆJˆJˆJð	ð 	r   c                 ó   — | j         S r    )r-   ©r0   s    r   ÚGetFailedCheckszBaseRuleChecker.GetFailedChecksJ   s   € ØÔ!Ð!r   c                 ó   — | j         S r    )r.   rF   s    r   Ú	GetErrorszBaseRuleChecker.GetErrorsM   s
   € ØŒ|Ðr   c                 ó   — | j         S r    )r/   rF   s    r   ÚGetWarningszBaseRuleChecker.GetWarningsP   s
   € ØŒ~Ðr   c                 ó   — dS )z Check the given usdStage. Nr   )r0   ÚusdStages     r   Ú
CheckStagezBaseRuleChecker.CheckStage^   ó   € àˆr   c                 ó   — dS )zÅ Check the diagnostic messages that were generated when opening the 
            USD stage. The diagnostic messages are collected using a 
            UsdUtilsCoalescingDiagnosticDelegate.
        Nr   )r0   Údiagnosticss     r   ÚCheckDiagnosticsz BaseRuleChecker.CheckDiagnosticsb   s	   € ð
 	ˆr   c                 ó   — dS )zs Check or process any unresolved asset paths that were found when 
            analysing the dependencies.
        Nr   )r0   ÚunresolvedPathss     r   ÚCheckUnresolvedPathsz$BaseRuleChecker.CheckUnresolvedPathsi   ó	   € ð 	ˆr   c                 ó   — dS )z€ Check usdStage's layer and asset dependencies that were gathered 
            using UsdUtils.ComputeAllDependencies().
        Nr   )r0   rM   Ú	layerDepsÚ	assetDepss       r   ÚCheckDependenciesz!BaseRuleChecker.CheckDependencieso   rV   r   c                 ó   — dS )z Check the given SdfLayer. Nr   )r0   r%   s     r   Ú
CheckLayerzBaseRuleChecker.CheckLayeru   rO   r   c                 ó   — dS )zc Check the zipFile object created by opening the package at path 
            packagePath.
        Nr   )r0   ÚzipFileÚpackagePaths      r   ÚCheckZipFilezBaseRuleChecker.CheckZipFiley   rV   r   c                 ó   — dS )z� Check the given prim, which may only exist is a specific combination
            of variant selections on the UsdStage.
        Nr   ©r0   Úprims     r   Ú	CheckPrimzBaseRuleChecker.CheckPrim   rV   r   c                 ó   — dS )z“ Reset any caches the rule owns.  Called whenever stage authoring
        occurs, such as when we iterate through VariantSet combinations.
        Nr   rF   s    r   ÚResetCacheszBaseRuleChecker.ResetCaches…   rV   r   N)r   r   r   Ú__doc__r4   r9   r<   r?   rC   rG   rI   rK   rN   rR   rU   rZ   r\   r`   rd   rf   r   r   r   r(   r(   3   s
  € € € € € Ø7Ð7ðð ð ð'ð 'ð 'ð!ð !ð !ð#ð #ð #ðð ð ð"ð "ð "ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ð ð r   r(   c                   ó:   ‡ — e Zd Zed„ ¦   «         Zˆ fd„Zd„ Zˆ xZS )ÚByteAlignmentCheckerc                  ó   — dS )Nz_Files within a usdz package must be laid out properly, i.e. they should be aligned to 64 bytes.r   r   r   r   ÚGetDescriptionz#ByteAlignmentChecker.GetDescriptionŽ   s   € ð;ð ;r   c                 ó\   •— t          t          | ¦  «                             |||¦  «         d S r    )Úsuperri   r4   ©r0   r1   r2   r3   Ú	__class__s       €r   r4   zByteAlignmentChecker.__init__“   ó=   ø€ ÝÕ" DÑ)Ô)×2Ò2°7Ø3FØ3Cñ	Eô 	Eð 	Eð 	Eð 	Er   c           
      ó  — |                      ¦   «         }|D ]l}t          j        ¦   «                              |¦  «        }|                     |¦  «        }|j        }|dz  dk    r|                      d|›d|›d|›d�¦  «         Œmd S )Né@   r   úFile 'ú' in package 'z' has an invalid offset ú.)ÚGetFileNamesr   ÚGetResolverÚGetExtensionÚGetFileInfoÚ
dataOffsetr9   )r0   r^   r_   Ú	fileNamesÚfileNameÚfileExtÚfileInfoÚoffsets           r   r`   z!ByteAlignmentChecker.CheckZipFile˜   s¥   € Ø×(Ò(Ñ*Ô*ˆ	Ø!ð 	9ð 	9ˆHÝ”nÑ&Ô&×3Ò3°HÑ=Ô=ˆGØ×*Ò*¨8Ñ4Ô4ˆHØÔ(ˆFØ˜‰{˜aÒÐØ×$Ò$Ð$à!˜˜ ; ; ;°°°ð&8ñ 9ô 9ð 9øð	9ð 	9r   ©r   r   r   Ústaticmethodrk   r4   r`   Ú__classcell__©ro   s   @r   ri   ri   �   se   ø€ € € € € Øð;ð ;ñ „\ð;ðEð Eð Eð Eð Eð
	9ð 	9ð 	9ð 	9ð 	9ð 	9ð 	9r   ri   c                   ó:   ‡ — e Zd Zed„ ¦   «         Zˆ fd„Zd„ Zˆ xZS )ÚCompressionCheckerc                  ó   — dS )NzBFiles within a usdz package should not be compressed or encrypted.r   r   r   r   rk   z!CompressionChecker.GetDescription¤   s   € ðð r   c                 ó\   •— t          t          | ¦  «                             |||¦  «         d S r    )rm   r…   r4   rn   s       €r   r4   zCompressionChecker.__init__©   s=   ø€ ÝÕ  $Ñ'Ô'×0Ò0°Ø1DØ1Añ	Cô 	Cð 	Cð 	Cð 	Cr   c                 ó,  — |                      ¦   «         }|D ]|}t          j        ¦   «                              |¦  «        }|                     |¦  «        }|j        dk    r4|                      d|›d|›d|j        ›d|j        ›d|j        ›d�¦  «         Œ}d S )Nr   rs   rt   z*' has compression. Compression method is 'z', actual size is z. Uncompressed size is ru   )	rv   r   rw   rx   ry   ÚcompressionMethodr9   ÚsizeÚuncompressedSize)r0   r^   r_   r{   r|   r}   r~   s          r   r`   zCompressionChecker.CheckZipFile®   s·   € Ø×(Ò(Ñ*Ô*ˆ	Ø!ð 	?ð 	?ˆHÝ”nÑ&Ô&×3Ò3°HÑ=Ô=ˆGØ×*Ò*¨8Ñ4Ô4ˆHØÔ)¨QÒ.Ð.Ø×$Ò$Ð$ð �H�H˜k˜k˜k¨8Ô+EÐ+EÐ+EØ”M�M�M 8Ô#<Ð#<Ð#<ð	&>ñ ?ô ?ð ?øð		?ð 	?r   r€   rƒ   s   @r   r…   r…   £   se   ø€ € € € € Øðð ñ „\ððCð Cð Cð Cð Cð

?ð 
?ð 
?ð 
?ð 
?ð 
?ð 
?r   r…   c                   ó@   ‡ — e Zd Zed„ ¦   «         Zˆ fd„Zd„ Zd„ Zˆ xZS )ÚMissingReferenceCheckerc                  ó   — dS )Nz¡The composed USD stage should not contain any unresolvable asset dependencies (in every possible variation of the asset), when using the default asset resolver. r   r   r   r   rk   z&MissingReferenceChecker.GetDescription»   s   € ð>ð >r   c                 ó\   •— t          t          | ¦  «                             |||¦  «         d S r    )rm   r�   r4   rn   s       €r   r4   z MissingReferenceChecker.__init__Á   ó=   ø€ ÝÕ% tÑ,Ô,×5Ò5°gØ6IØ6Fñ	Hô 	Hð 	Hð 	Hð 	Hr   c                 óh   — |D ].}d|j         v r#d|j        v r|                      |j        ¦  «         Œ/d S )NÚ_ReportErrorszusd/stage.cpp)ÚsourceFunctionÚsourceFileNamer9   Ú
commentary)r0   rQ   Údiags      r   rR   z(MissingReferenceChecker.CheckDiagnosticsÆ   sP   € Øð 	6ð 	6ˆDð  $Ô"5Ð5Ð5Ø 4Ô#6Ð6Ð6Ø×$Ò$ T¤_Ñ5Ô5Ð5øð	6ð 	6r   c                 ó@   — |D ]}|                       d|z  ¦  «         Œd S )Nz,Found unresolvable external dependency '%s'.)r9   )r0   rT   ÚunresolvedPaths      r   rU   z,MissingReferenceChecker.CheckUnresolvedPathsÏ   sE   € Ø-ð 	.ð 	.ˆNØ× Ò ð "Ø,ñ"-ñ .ô .ð .ð .ð	.ð 	.r   )	r   r   r   r�   rk   r4   rR   rU   r‚   rƒ   s   @r   r�   r�   º   st   ø€ € € € € Øð>ð >ñ „\ð>ð
Hð Hð Hð Hð Hð
6ð 6ð 6ð.ð .ð .ð .ð .ð .ð .r   r�   c                   ó:   ‡ — e Zd Zed„ ¦   «         Zˆ fd„Zd„ Zˆ xZS )ÚStageMetadataCheckerc                  ó   — dS )NzýAll stages should declare their 'upAxis' and 'metersPerUnit'.  
Stages that can be consumed as referencable assets should furthermore have
a valid 'defaultPrim' declared, and stages meant for consumer-level packaging
should always have upAxis set to 'Y'r   r   r   r   rk   z#StageMetadataChecker.GetDescriptionÕ   s   € ð(ð (r   c                 ó\   •— t          t          | ¦  «                             |||¦  «         d S r    )rm   rš   r4   rn   s       €r   r4   zStageMetadataChecker.__init__Ü   rp   r   c                 óô  — ddl m} |                     |j        j        ¦  «        s|                      d¦  «         nR| j        rK|                     |¦  «        }||j        j        k    r&|                      d|›d|j        j        ›d�¦  «         |                     |j        j	        ¦  «        s|                      d¦  «         | j
        r-|                     ¦   «         }|s|                      d¦  «         d S d S d S )	Nr   )ÚUsdGeomz!Stage does not specify an upAxis.zStage specifies upAxis 'z'. upAxis should be 'ú'.z9Stage does not specify its linear scale in metersPerUnit.z)Stage has missing or invalid defaultPrim.)Úpxrrž   ÚHasAuthoredMetadataÚTokensÚupAxisr9   r+   ÚGetStageUpAxisÚyÚmetersPerUnitr,   ÚGetDefaultPrim)r0   rM   rž   r£   ÚdefaultPrims        r   rN   zStageMetadataChecker.CheckStageá   sD  € ØÐÐÐÐÐà×+Ò+¨G¬NÔ,AÑBÔBð 	OØ× Ò Ð!DÑEÔEÐEÐEØÔ&ð 	OØ×+Ò+¨HÑ5Ô5ˆFØ˜œÔ)Ò)Ð)Ø×$Ò$Ð$Ø4:°F°F¸G¼NÔ<LÐ<LÐ<Lð&Nñ Oô Oð Oð ×+Ò+¨G¬NÔ,HÑIÔIð 	6Ø× Ò ð "5ñ 6ô 6ð 6ð Ô!ð 	RØ"×1Ò1Ñ3Ô3ˆKØð RØ×$Ò$Ð%PÑQÔQÐQÐQÐQð	Rð 	RðRð Rr   )r   r   r   r�   rk   r4   rN   r‚   rƒ   s   @r   rš   rš   Ô   sl   ø€ € € € € Øð(ð (ñ „\ð(ðEð Eð Eð Eð Eð
Rð Rð Rð Rð Rð Rð Rr   rš   c                   óR   ‡ — e Zd ZdZg d¢Zed„ ¦   «         Zˆ fd„Zd„ Zd„ Z	d„ Z
ˆ xZS )ÚTextureChecker)ÚexrÚjpgÚjpegÚpng)ÚbmpÚtgaÚhdrÚtifÚtxÚzfilec                  ó   — dS )NzhTexture files should be readable by intended client 
(only .jpg, .jpeg or .png for consumer-level USDZ).r   r   r   r   rk   zTextureChecker.GetDescription   s   € ð7ð 7r   c                 ój   •— t          t          | ¦  «                             |||¦  «         d | _        d S r    )rm   rª   r4   Ú_allowedFormatsrn   s       €r   r4   zTextureChecker.__init__  s=   ø€ å�n˜dÑ#Ô#×,Ò,¨WÐ6IØ-=ñ	?ô 	?ð 	?ð  $ˆÔÐÐr   c                 óò   — |                      ¦   «         }|                     ¦   «                              ¦   «         s| j        r t	          t
          j        ¦  «        | _        d S |                      d¦  «         d S )Nz:Not performing texture format checks for general USD asset)	ÚGetRootLayerr!   r"   r+   Úlistrª   Ú_basicUSDZImageFormatsr·   rC   )r0   rM   Ú	rootLayers      r   rN   zTextureChecker.CheckStage  s}   € ð ×)Ò)Ñ+Ô+ˆ	Ø×"Ò"Ñ$Ô$×.Ò.Ñ0Ô0ð 	#°DÔ4Mð 	#Ý#'­Ô(MÑ#NÔ#NˆDÔ Ð Ð à�IŠIð "ñ #ô #ð #ð #ð #r   c                 óZ  — |                       d|z  ¦  «         t          j        ¦   «                              |¦  «                             ¦   «         }| j        r,|t          j        v r|                      d|›d|›d�¦  «         d S || j	        vr|                      d|›d|›d�¦  «         d S d S )NzChecking texture <%s>.z	Texture <z> with asset @z@ has non-portable file format.z@ has unknown file format.)
rC   r   rw   rx   Úlowerr+   rª   Ú_unsupportedImageFormatsr9   r·   )r0   ÚtexAssetPathÚ	inputPathÚ
texFileExts       r   Ú_CheckTexturezTextureChecker._CheckTexture  së   € Ø�	Š	Ð*¨\Ñ9Ñ:Ô:Ð:Ý”^Ñ%Ô%×2Ò2°<Ñ@Ô@×FÒFÑHÔHˆ
ØÔ%ð 	MØ�.ÔAÐAÐAØ× Ò Ð Ø3<°9°9¸l¸l¸lð"Lñ Mô Mð Mð Mð Mà˜tÔ3Ð3Ð3Ø× Ò Ð Ø3<°9°9¸l¸l¸lð"Lñ Mô Mð Mð Mð Mð 4Ð3r   c                 ó¶  — ddl m}m}m} | j        �|                     ¦   «         sd S |                     |¦  «        }|sd S |                     ¦   «         }|D �] }|                     ¦   «          	                    ¦   «         }|                     ¦   «         |j
        j        k    rJ|                     |j                             ¦   «         ¦  «        }	|	r|                      |	j        |¦  «         Œ•|                     ¦   «         |j
        j        k    rI|                     |j                             ¦   «         ¦  «        }
|
r|
D ]}|                      ||¦  «         Œ�Œd S )Nr   )ÚSdfÚUsdÚUsdShade)r    rÅ   rÆ   rÇ   r·   ÚGetTypeNameÚConnectableAPIÚ	GetInputsÚGetAttrÚGetPathÚValueTypeNamesÚAssetÚGetÚTimeCodeÚEarliestTimerÃ   ÚpathÚ
AssetArray)r0   rc   rÅ   rÆ   rÇ   ÚconnectableÚshaderInputsÚipÚattrPathÚtexFilePathÚtexPathArrayÚtexPaths               r   rd   zTextureChecker.CheckPrim"  sp  € ð 	+Ð*Ð*Ð*Ð*Ð*Ð*Ð*Ð*Ð*ð ÔÐ'¨t×/?Ò/?Ñ/AÔ/AÐ'ØˆFð ×-Ò-¨dÑ3Ô3ˆØð 	ØˆFà"×,Ò,Ñ.Ô.ˆØð 	>ñ 	>ˆBØ—z’z‘|”|×+Ò+Ñ-Ô-ˆHØ�~Š~ÑÔ 3Ô#5Ô#;Ò;Ð;Ø Ÿfšf S¤\×%>Ò%>Ñ%@Ô%@ÑAÔA�àð CØ×&Ò& {Ô'7¸ÑBÔBÐBøØ—’Ñ!Ô! SÔ%7Ô%BÒBÐBØ!Ÿvšv c¤l×&?Ò&?Ñ&AÔ&AÑBÔB�Øð >Ø#/ð >ð >˜Ø×*Ò*¨7°HÑ=Ô=Ð=Ð=ùð	>ð 	>r   )r   r   r   r»   r¿   r�   rk   r4   rN   rÃ   rd   r‚   rƒ   s   @r   rª   rª   ÷   s–   ø€ € € € € à:Ðð
  KÐJÐJÐàð7ð 7ñ „\ð7ð$ð $ð $ð $ð $ð#ð #ð #ð	Mð 	Mð 	Mð>ð >ð >ð >ð >ð >ð >r   rª   c                   óL   ‡ — e Zd Zed„ ¦   «         Zˆ fd„Zd„ Zd„ Zd„ Zd„ Z	ˆ xZ
S )ÚPrimEncapsulationCheckerc                  ó   — dS )Na4  Check for basic prim encapsulation rules:
   - Boundables may not be nested under Gprims
   - Connectable prims (e.g. Shader, Material, etc) can only be nested 
     inside other Container-like Connectable prims. Container-like prims
     include Material, NodeGraph, Light, LightFilter, and *exclude Shader*r   r   r   r   rk   z'PrimEncapsulationChecker.GetDescription@  s   € ðNð Nr   c                 ó„   •— t          t          | ¦  «                             |||¦  «         |                      ¦   «          d S r    )rm   rÜ   r4   rf   rn   s       €r   r4   z!PrimEncapsulationChecker.__init__H  sK   ø€ ÝÕ&¨Ñ-Ô-×6Ò6°wØ7JØ7Gñ	Iô 	Ið 	Ið 	×ÒÑÔÐÐÐr   c                 ó8  — ddl m}m} |                     ¦   «         }|| j        v r| j        |         S ||j        j        k    rd| j        |<   dS |                      |                     ¦   «         ¦  «        p| 	                    |j
        ¦  «        }|| j        |<   |S )Nr   )rÅ   rž   F)r    rÅ   rž   rÌ   Ú_hasGprimInPathMapÚPathÚabsoluteRootPathÚ_HasGprimAncestorÚ	GetParentÚIsAÚGprim)r0   rc   rÅ   rž   rÒ   Úvals         r   rã   z*PrimEncapsulationChecker._HasGprimAncestorN  s­   € Ø$Ð$Ð$Ð$Ð$Ð$Ð$Ð$Ø�|Š|‰~Œ~ˆØ�4Ô*Ð*Ð*ØÔ*¨4Ô0Ð0Ø�S”XÔ.Ò.Ð.Ø,1ˆDÔ# DÑ)Ø�5à×)Ò)¨$¯.ª.Ñ*:Ô*:Ñ;Ô;ð +Ø—8’8˜GœMÑ*Ô*ð à,/ˆDÔ# DÑ)ØˆJr   c                 ób  — ddl m}m} |                     ¦   «         }|| j        v r| j        |         S ||j        j        k    rd | j        |<   d S |                      |                     ¦   «         ¦  «        }| 	                    ¦   «         r|s| 
                    |¦  «        }|r|}|| j        |<   |S )Nr   )rÅ   rÇ   )r    rÅ   rÇ   rÌ   Ú_connectableAncestorMaprá   râ   Ú_FindConnectableAncestorrä   rÈ   rÉ   )r0   rc   rÅ   rÇ   rÒ   rç   Úconns          r   rê   z1PrimEncapsulationChecker._FindConnectableAncestor\  sÑ   € Ø%Ð%Ð%Ð%Ð%Ð%Ð%Ð%Ø�|Š|‰~Œ~ˆØ�4Ô/Ð/Ð/ØÔ/°Ô5Ð5Ø�S”XÔ.Ò.Ð.Ø15ˆDÔ(¨Ñ.Ø�4à×/Ò/°·²Ñ0@Ô0@ÑAÔAˆCð ×ÒÑ!Ô!ð ¨#ð Ø×.Ò.¨tÑ4Ô4�Øð Ø�CØ14ˆDÔ(¨Ñ.ØˆJr   c                 óð  — ddl m}m} |                     ¦   «         }|                     |j        ¦  «        rA|r?|                      |¦  «        r*|                      d|                     ¦   «         z  ¦  «         | 	                    |¦  «        }| 
                    ¦   «         �rL|�rK|�rJ| 	                    |¦  «        }| 
                    ¦   «         sd }|rj|                     ¦   «         sV|                      d| 
                    ¦   «         ›d|                     ¦   «         ›d| 
                    ¦   «         ›�¦  «         d S |s³|                      |¦  «        }|�ž|                      d| 
                    ¦   «         ›d|                     ¦   «         ›d| 
                    ¦   «         ›d|                     ¦   «         ›d	|                     ¦   «         ›d
| 
                    ¦   «         ›d�¦  «         d S d S d S d S d S d S )Nr   )rž   rÇ   zKGprim <%s> has an ancestor prim that is also a Gprim, which is not allowed.zConnectable z <z2> cannot reside under a non-Container Connectable z6> can only have Connectable Container ancestors up to z ancestor <z>, but its parent z is a ru   )r    rž   rÇ   rä   rå   Ú	Boundablerã   r9   rÌ   rÉ   rÈ   ÚIsContainerrê   ÚGetName)r0   rc   rž   rÇ   ÚparentrÔ   ÚpConnectableÚ	connAnstrs           r   rd   z"PrimEncapsulationChecker.CheckPrimp  s|  € Ø)Ð)Ð)Ð)Ð)Ð)Ð)Ð)à—’Ñ!Ô!ˆð �8Š8�GÔ%Ñ&Ô&ð 	;Øð ;Ø×)Ò)¨&Ñ1Ô1ð ;Ø×(Ò(ð *Rà+/¯<ª<©>¬>ñ*:ñ ;ô ;ð ;ð ×-Ò-¨dÑ3Ô3ˆð ×ÒÑÔñ 	E +ñ 	EØñ EØ'×6Ò6°vÑ>Ô>�Ø×)Ò)Ñ+Ô+ð (Ø#'�LØð E¨×(@Ò(@Ñ(BÔ(Bð Eð ×(Ò(Ð(à(,×(8Ò(8Ñ(:Ô(:Ð(:Ð(:Ø(,¯ª©¬¨¨Ø(.×(:Ò(:Ñ(<Ô(<Ð(<ð	*>ñ ?ô ?ð ?ð ?ð ?ð
 &ð Eð !%× =Ò =¸fÑ EÔ E�IØ Ð,Ø×,Ò,Ð,ð /3×.>Ò.>Ñ.@Ô.@Ð.@Ð.@Ø.2¯lªl©n¬n¨n¨nØ.7×.CÒ.CÑ.EÔ.EÐ.EÐ.EØ.7×.?Ò.?Ñ.AÔ.AÐ.AÐ.AØ.4¯nªnÑ.>Ô.>Ð.>Ð.>Ø.4×.@Ò.@Ñ.BÔ.BÐ.BÐ.Bð	.Dñ 	Eô 	Eð 	Eð 	Eð 	Eð-	Eð 	Eð 	Eð 	EðEð EðEð Eð -Ð,r   c                 óR   — t          ¦   «         | _        t          ¦   «         | _        d S r    )Údictré   rà   rF   s    r   rf   z$PrimEncapsulationChecker.ResetCaches§  s    € Ý'+¡v¤vˆÔ$Ý"&¡&¤&ˆÔÐÐr   )r   r   r   r�   rk   r4   rã   rê   rd   rf   r‚   rƒ   s   @r   rÜ   rÜ   ?  s”   ø€ € € € € ØðNð Nñ „\ðNðð ð ð ð ðð ð ðð ð ð(4Eð 4Eð 4Eðn)ð )ð )ð )ð )ð )ð )r   rÜ   c                   óL   ‡ — e Zd Zed„ ¦   «         Zˆ fd„Zd„ Zd„ Zd„ Zd„ Z	ˆ xZ
S )ÚNormalMapTextureCheckerc                  ó   — dS )Naª  UsdUVTexture nodes that feed the _inputs:normals_ of a
UsdPreviewSurface must ensure that the data is encoded and scaled properly.
Specifically:
   - Since normals are expected to be in the range [(-1,-1,-1), (1,1,1)],
     the Texture node must transform 8-bit textures from their [0..1] range by
     setting its _inputs:scale_ to (2, 2, 2, 1) and 
     _inputs:bias_ to (-1, -1, -1, 0)
   - Normal map data is commonly expected to be linearly encoded.  However, many
     image-writing tools automatically set the profile of three-channel, 8-bit
     images to SRGB.  To prevent an unwanted transformation, the UsdUVTexture's
     _inputs:sourceColorSpace_ must be set to "raw".
r   r   r   r   rk   z&NormalMapTextureChecker.GetDescription®  s   € ðð r   c                 ó\   •— t          t          | ¦  «                             |||¦  «         d S r    )rm   rö   r4   rn   s       €r   r4   z NormalMapTextureChecker.__init__¼  r�   r   c                 ó*   — |                      ¦   «         S r    )ÚGetShaderId)r0   Úshaders     r   Ú_GetShaderIdz$NormalMapTextureChecker._GetShaderIdÁ  s   € à×!Ò!Ñ#Ô#Ð#r   c                 ód   — ddl m}  |j        ¦   «                              |j        ¦  «        }|dv S )Nr   r   )r¯   r°   r¬   r­   r®   r²   )r    r   rw   rx   ÚresolvedPath)r0   Úassetr   Úexts       r   Ú_TextureIs8Bitz&NormalMapTextureChecker._TextureIs8BitÅ  sB   € ð 	ÐÐÐÐÐØˆbŒnÑÔ×+Ò+¨EÔ,>Ñ?Ô?ˆàÐAÐAÐAr   c                 óN  — ddl m}m} |                     |¦  «        }|sd S |j                             |¦  «        }|rt          |¦  «        dk    rd S |j                             |d         ¦  «        sd S |d          	                    |j
                             ¦   «         ¦  «        S )Nr   )rÆ   rÇ   é   )r    rÆ   rÇ   ÚGetInputÚUtilsÚGetValueProducingAttributesÚlenÚInputÚIsInputrÏ   rÐ   rÑ   )r0   rû   Ú	inputNamerÆ   rÇ   ÚinputÚvalueProducingAttrss          r   Ú_GetInputValuez&NormalMapTextureChecker._GetInputValueÎ  sº   € Ø%Ð%Ð%Ð%Ð%Ð%Ð%Ð%Ø—’ 	Ñ*Ô*ˆØð 	Ø�4ð 'œn×HÒHÈÑOÔOÐØ"ð 	¥cÐ*=Ñ&>Ô&>À!Ò&CÐ&CØ�4àŒ~×%Ò%Ð&9¸!Ô&<Ñ=Ô=ð 	Ø�4Ø" 1Ô%×)Ò)¨#¬,×*CÒ*CÑ*EÔ*EÑFÔFÐFr   c           	      ó  — ddl m}m} ddlm} |                     |j        ¦  «        sd S |                     |¦  «        }|s,|                      d|                     ¦   «         z  ¦  «         d S |  	                    |¦  «        }|r|t          j        k    rd S |                     t          j        ¦  «        }|sd S |                     |¦  «        }|r|d                              ¦   «         |k    rd S |d                              ¦   «         }	|                     |	¦  «        }
|
sG|                     |	¦  «        rd S |                      dt          j        t          j        fz  ¦  «         d S |  	                    |
¦  «        }|r|t          j        k    rd S |                      |
t          j        ¦  «        }|r|j        sE|                      t          j        ›d|	                     ¦   «         ›d|r|j        nd›d	�¦  «         d S |                      |¦  «        sd S |                      |
t          j        ¦  «        }|r|d
k    s?|                      t          j        ›d|	                     ¦   «         ›d|j        ›d�¦  «         |                      |
t          j        ¦  «        }|                      |
t          j        ¦  «        }|r,|r*t9          ||j        ¦  «        rt9          ||j        ¦  «        sA|                      t          j        ›d|	                     ¦   «         ›d|j        ›d�¦  «         d S |d         dk    p|d         dk    p|d         dk    }|rG|                      t          j        ›d|	                     ¦   «         ›dt?          |¦  «        ›d�¦  «         |sm|d         dk    s|d         dk    s|d         dk    rK|                      t          j        ›d|	                     ¦   «         ›dt?          |¦  «        ›d�¦  «         d S d S d S )Nr   )rÇ   ÚGf)r  zInvalid shader prim <%s>.z5%s.%s on prim <%s> is connected to a non-Shader prim.z prim <z.> has invalid or unresolvable inputs:file of @Ú ú@Úrawz> that reads Normal Map @z.@ should set inputs:sourceColorSpace to 'raw'.z> reads 8 bit Normal Map @z²@, which requires that inputs:scale be set to (2, 2, 2, 1) and inputs:bias be set to (-1, -1, -1, 0) for proper interpretation as per the UsdPreviewSurface and UsdUVTexture docs.é   r  zH> reads an 8 bit Normal Map, but has non-standard inputs:scale value of zÆ.inputs:scale must be set to (2, 2, 2, 1) so as fullfill the requirements of the normals to be in tangent space of [(-1,-1,-1), (1,1,1)] as documented in the UsdPreviewSurface and UsdUVTexture docs.éÿÿÿÿzG> reads an 8 bit Normal Map, but has non-standard inputs:bias value of zÉ. inputs:bias must be set to [-1,-1,-1,0] so as to fullfill the requirements of the normals to be in tangent space of [(-1,-1,-1), (1,1,1)] as documented in the UsdPreviewSurface and UsdUVTexture docs.) r    rÇ   r  Úpxr.UsdShader  rå   ÚShaderr<   rÌ   rü   r   r	   r  r   r   r  ÚGetPrimrÉ   r9   r
   r  r   rþ   rÒ   r  r   r   r   Ú
isinstanceÚVec4fr?   Ústr)r0   rc   rÇ   r  Ú
ShadeUtilsrû   ÚshaderIdÚnormalInputr  Ú
sourcePrimÚsourceShaderÚsourceIdÚtexAssetÚ
colorSpacer   r   ÚnonCompliantScaleValuess                    r   rd   z!NormalMapTextureChecker.CheckPrimÝ  s·  € Ø$Ð$Ð$Ð$Ð$Ð$Ð$Ð$Ø4Ð4Ð4Ð4Ð4Ð4à�xŠx˜œÑ(Ô(ð 	ØˆFà—’ Ñ&Ô&ˆØð 	Ø�NŠNÐ6¸¿º¹¼ÑGÑHÔHÐHØˆFà×$Ò$ VÑ,Ô,ˆð
 ð 	˜8¥yÔ'BÒBÐBØˆFà—o’o¥kÔ&8Ñ9Ô9ˆØð 	ØˆFØ(×DÒDÀ[ÑQÔQÐØ"ð 	Ð&9¸!Ô&<×&DÒ&DÑ&FÔ&FÈ$Ò&NÐ&NØˆFà(¨Ô+×3Ò3Ñ5Ô5ˆ
à—’ zÑ2Ô2ˆØð 		ð ×&Ò& zÑ2Ô2ð Ø�Ø× Ò ð "5å"+Ô"=Ý"-Ô"4ð"6ñ"6ñ 7ô 7ð 7ð ˆFà×$Ò$ \Ñ2Ô2ˆð
 ð 	˜8¥yÔ'=Ò=Ð=ØˆFà×&Ò& |µ[Ô5EÑFÔFˆàð 	˜xÔ4ð 	Ø× Ò å"+Ô"8Ð"8Ð"8Ø",×"4Ò"4Ñ"6Ô"6Ð"6Ð"6Ø3;Ð"C (¤- -ÀÐ"CÐ"Cð	"Eñ Fô Fð Fð
 ˆFà×"Ò" 8Ñ,Ô,ð 	ð ˆFð ×(Ò(¨ÝÔ,ñ.ô .ˆ
àð 	. ¨uÒ!4Ð!4Ø�NŠNå'Ô4Ð4Ð4Ø(×0Ò0Ñ2Ô2Ð2Ð2Ø&œm˜m˜mð	-ñ .ô .ð .ð ×"Ò" <µÔ1AÑBÔBˆà×#Ò# Lµ+Ô2CÑDÔDˆàð 
	˜ð 
	Ý˜4 ¤Ñ*Ô*ð
	Ý/9¸%ÀÄÑ/JÔ/Jð
	à�NŠNõ
 (Ô4Ð4Ð4Ø(×0Ò0Ñ2Ô2Ð2Ð2Ø&œm˜m˜mð-ñ .ô .ð .ð ˆFð �q”˜Q’Ð@ %¨¤(¨a¢-Ð@°5¸´8¸q²=ð 	 à"ð 		AØ×Òõ (Ô4Ð4Ð4Ø(×0Ò0Ñ2Ô2Ð2Ð2µC¸±J´J°J°Jð@ñ Aô Að Að$ (ð 		@Ø�a”˜B’� $ q¤'¨R¢- -°4¸´7¸b²=°=Ø�NŠNõ (Ô4Ð4Ð4Ø(×0Ò0Ñ2Ô2Ð2Ð2µC¸±I´I°I°Ið?ñ @ô @ð @ð @ð @ð		@ð 		@Ø3@°=r   )r   r   r   r�   rk   r4   rü   r  r  rd   r‚   rƒ   s   @r   rö   rö   ­  s¦   ø€ € € € € Øðð ñ „\ððHð Hð Hð Hð Hð
$ð $ð $ðBð Bð BðGð Gð Gð|@ð |@ð |@ð |@ð |@ð |@ð |@r   rö   c                   ó:   ‡ — e Zd Zed„ ¦   «         Zˆ fd„Zd„ Zˆ xZS )Ú MaterialBindingAPIAppliedCheckerc                  ó   — dS )NzVA prim providing a material binding, must have MaterialBindingAPI applied on the prim.r   r   r   r   rk   z/MaterialBindingAPIAppliedChecker.GetDescription\  s   € ð9ð 9r   c                 ó\   •— t          t          | ¦  «                             |||¦  «         d S r    )rm   r%  r4   rn   s       €r   r4   z)MaterialBindingAPIAppliedChecker.__init__a  s=   ø€ ÝÕ.°Ñ5Ô5×>Ò>¸wØ:MØ:Jñ	Lô 	Lð 	Lð 	Lð 	Lr   c                 ó
  ‡— ddl mŠ t          ˆfd„|                     ¦   «         D ¦   «         ¦  «        }|dk    rF|                     ‰j        ¦  «        s.|                      d|                     ¦   «         z  ¦  «         d S d S d S )Nr   ©rÇ   c                 óv   •— g | ]5}|                      ¦   «                              ‰j        j        ¦  «        ¯3|‘Œ6S r   ©rï   Ú
startswithr¢   ÚmaterialBinding©Ú.0ÚrelrÇ   s     €r   ú
<listcomp>z>MaterialBindingAPIAppliedChecker.CheckPrim.<locals>.<listcomp>h  sO   ø€ ð #Nð #Nð #N¨3Ø—;’;‘=”=×+Ò+¨H¬OÔ,KÑLÔLð#N 3ð #Nð #Nð #Nr   zKFound material bindings but no MaterialBindingAPI applied on the prim <%s>.)r    rÇ   r  ÚGetRelationshipsÚHasAPIÚMaterialBindingAPIr9   rÌ   )r0   rc   ÚnumMaterialBindingsrÇ   s      @r   rd   z*MaterialBindingAPIAppliedChecker.CheckPrimf  sÇ   ø€ Ø Ð Ð Ð Ð Ð Ý!ð #Nð #Nð #Nð #N°$×2GÒ2GÑ2IÔ2Ið #Nñ #Nô #Nñ Oô OÐà! AÒ%Ð%Ø—’˜HÔ7Ñ8Ô8ð &à×$Ò$ð &Cà—l’l‘n”nñ&%ñ &ô &ð &ð &ð &ð &Ð%Ð%Ð%r   ©r   r   r   r�   rk   r4   rd   r‚   rƒ   s   @r   r%  r%  [  se   ø€ € € € € Øð9ð 9ñ „\ð9ðLð Lð Lð Lð Lð
&ð &ð &ð &ð &ð &ð &r   r%  c                   ó:   ‡ — e Zd Zed„ ¦   «         Zˆ fd„Zd„ Zˆ xZS )ÚSkelBindingAPIAppliedCheckerc                  ó   — dS )NzVA prim providing skelBinding properties, must have SkelBindingAPI applied on the prim.r   r   r   r   rk   z+SkelBindingAPIAppliedChecker.GetDescriptionq  s   € ð5ð 5r   c                 óð   •— ddl m} |                     ¦   «         }|                     ddg¦  «        }|                     ¦   «         | _        t          t          | ¦  «                             |||¦  «         d S )Nr   ©rÆ   r  ÚSkelBindingAPI)	r    rÆ   ÚSchemaRegistryÚBuildComposedPrimDefinitionÚGetPropertyNamesÚ_skelBindingAPIPropsrm   r8  r4   )r0   r1   r2   r3   rÆ   ÚusdSchemaRegistryÚprimDefro   s          €r   r4   z%SkelBindingAPIAppliedChecker.__init__v  s�   ø€ ØÐÐÐÐÐØ×.Ò.Ñ0Ô0ÐØ#×?Ò?ÀØ!Ð"ñ$ô $ˆà$+×$<Ò$<Ñ$>Ô$>ˆÔ!ÝÕ*¨DÑ1Ô1×:Ò:¸7Ø#Ð%5ñ	7ô 	7ð 	7ð 	7ð 	7r   c                 óJ  — ddl m} |                     |j        ¦  «        sU|                     ¦   «         }| j        D ]7}||v r1|                      d|›d|                     ¦   «         ›d�¦  «          d S Œ8d S |                     ¦   «         |j	        j
        k    rd S |                     ¦   «         }|                     ¦   «         sL|                     ¦   «         |j	        j
        k    rd S |                     ¦   «         }|                     ¦   «         ¯L|                      d¦  «         d S )Nr   )ÚUsdSkelz!Found a UsdSkelBinding property (z/) , but no SkelBindingAPI applied on the prim <ú>.z’UsdSkelBindingAPI applied on a prim, which is not of type SkelRoot or is not rooted at a prim of type SkelRoot, as required by the UsdSkel schema.)r    rD  r3  Ú
BindingAPIr?  r@  r9   rÌ   rÈ   r¢   ÚSkelRooträ   ÚIsPseudoRoot)r0   rc   rD  ÚprimPropertiesÚskelPropertyÚ
parentPrims         r   rd   z&SkelBindingAPIAppliedChecker.CheckPrim  sh  € ØÐÐÐÐÐØ�{Š{˜7Ô-Ñ.Ô.ð 	JØ!×2Ò2Ñ4Ô4ˆNØ $Ô 9ð ð �Ø >Ð1Ð1Ø×(Ò(Ð(à". , ,°·²±´°°ð*@ñ Aô Að Að �F�Fð	 2ðð ð ×ÒÑ!Ô! W¤^Ô%<Ò<Ð<Ø�ØŸšÑ)Ô)ˆJØ ×-Ò-Ñ/Ô/ð 4Ø×)Ò)Ñ+Ô+¨w¬~Ô/FÒFÐFØ�FØ'×1Ò1Ñ3Ô3�
ð !×-Ò-Ñ/Ô/ð 4ð × Ò ð "Hñ Iô Ið Ið Ið Ir   r6  rƒ   s   @r   r8  r8  p  sg   ø€ € € € € Øð5ð 5ñ „\ð5ð7ð 7ð 7ð 7ð 7ðJð Jð Jð Jð Jð Jð Jr   r8  c                   ó@   ‡ — e Zd Zed„ ¦   «         Zˆ fd„Zd„ Zd„ Zˆ xZS )Ú$ShaderPropertyTypeConformanceCheckerc                  ó   — dS )NziShader prim's input types must be conforming to their appropriate Sdf types in the respective sdr shader.r   r   r   r   rk   z3ShaderPropertyTypeConformanceChecker.GetDescription™  s   € ðBð Br   c                 ó\   •— t          t          | ¦  «                             |||¦  «         d S r    )rm   rM  r4   rn   s       €r   r4   z-ShaderPropertyTypeConformanceChecker.__init__ž  s=   ø€ ÝÕ2°DÑ9Ô9×BÒBÀ7Ø3FØ3Cñ	Eô 	Eð 	Eð 	Eð 	Er   c                 ó¾   — |                      ¦   «         D ]G}|                     |¦  «        }|                     ¦   «         }|                     ¦   «         \  }}|||<   ŒHd S r    )ÚGetInputNamesr  rï   ÚGetTypeAsSdfType)r0   Ú	shadeNodeÚmappingr
  ÚpropÚpropNameÚsdfTypeÚsdfHints           r   Ú_FillSdrNameToTypeMapz:ShaderPropertyTypeConformanceChecker._FillSdrNameToTypeMap£  sj   € Ø"×0Ò0Ñ2Ô2ð 	(ð 	(ˆIØ×%Ò% iÑ0Ô0ˆDØ—|’|‘~”~ˆHØ#×4Ò4Ñ6Ô6ÑˆG�WØ 'ˆG�HÑÐð		(ð 	(r   c           
      óê  — ddl m}m} |                     |j        ¦  «        sd S |                     |¦  «        }|sd S |                      d|                     ¦   «         z  ¦  «         i }d }g }|j        j        |j        j	        |j        j
        g}|                     ¦   «         }	|	|v rÀ|                     ¦   «         }
t          |
¦  «         }|rP|	|j        j        k    r@|                     ¦   «         }|sd S |                     ¦   «                              |¦  «        }nz|r,|                      d|                     ¦   «         z  ¦  «         d S |                     |
d         ¦  «        }n0|                      d|                     ¦   «         ›d|	›d�¦  «         d S |s,|                      d|                     ¦   «         z  ¦  «         d S |                      ||¦  «         |                     ¦   «         }|D ]}|                     ¦   «         }|                     ¦   «         }||v rQ||         }||k    sC|                      d	|                     ¦   «                              ¦   «         ›d
|›d|›d�¦  «         Œ€d S )Nr   )ÚSdrrÇ   úChecking shader <%s>.zShader <%s> has no sourceType. úShader <z%> has invalid implementation source 'rŸ   z%Shader <%s> has invalid shader node. zIncorrect type for z. Expected 'z'; got ')r    r[  rÇ   rå   r  rC   rÌ   r¢   ÚidÚsourceAssetÚ
sourceCodeÚGetImplementationSourceÚGetSourceTypesr  rú   ÚRegistryÚGetShaderNodeByIdentifierr9   ÚGetShaderNodeForSourceTyperY  rÊ   ÚGetBaseNamerÈ   rË   )r0   rc   r[  rÇ   rû   ÚsdrNameToTypeMappingÚsdrShaderNodeÚinputsÚexpectedImplSourcesÚ
implSourceÚsourceTypesÚhasNoSourcesr  r  r
  ÚschemaSdfTypeÚ
sdrSdfTypes                    r   rd   z.ShaderPropertyTypeConformanceChecker.CheckPrim¬  sâ  € Ø%Ð%Ð%Ð%Ð%Ð%Ð%Ð%à�xŠx˜œÑ(Ô(ð 	ØˆFà—’ Ñ&Ô&ˆØð 	àˆFà�	Š	Ð)¨D¯LªL©N¬NÑ:Ñ;Ô;Ð;ð  "ÐØˆØˆØ'œÔ1Ø'œÔ:Ø'œÔ9ð;Ðð ×3Ò3Ñ5Ô5ˆ
ØÐ,Ð,Ð,Ø ×/Ò/Ñ1Ô1ˆKÝ" ;Ñ/Ô/Ð/ˆLØð F 
¨h¬oÔ.@Ò @Ð @Ø!×-Ò-Ñ0Ô0�Øð Ø�Fà—L’L‘N”N×<Ò<¸XÑFÔFð �àð FØ×$Ò$Ð%FØŸš™œñ&(ñ )ô )ð )à�ð
 ×5Ò5°kÀ!´nÑEÔEð �ð × Ò Ð Ø&*§l¢l¡n¤n n n°j°j°jð"Bñ Cô Cð CàˆFàð 	Ø× Ò Ð!HØŸš™œñ"(ñ )ô )ð )àˆFà×"Ò" =Ð2FÑGÔGÐGð ×!Ò!Ñ#Ô#ˆØð 	Pð 	PˆEØ×)Ò)Ñ+Ô+ˆIØ!×-Ò-Ñ/Ô/ˆMØÐ0Ð0Ð0Ø1°)Ô<�
Ø" mÒ3Ð3Ø×(Ò(Ð(àŸš™œ×0Ò0Ñ2Ô2Ð2Ð2°J°J°JÀÀÀð*Oñ Pô Pð Pøð	Pð 	Pr   )	r   r   r   r�   rk   r4   rY  rd   r‚   rƒ   s   @r   rM  rM  ˜  s~   ø€ € € € € ØðBð Bñ „\ðBðEð Eð Eð Eð Eð
(ð (ð (ð>Pð >Pð >Pð >Pð >Pð >Pð >Pr   rM  c                   ó:   ‡ — e Zd Zed„ ¦   «         Zˆ fd„Zd„ Zˆ xZS )Ú ARKitPackageEncapsulationCheckerc                  ó   — dS )Nz²If the root layer is a package, then the composed stage should not contain references to files outside the package. In other words, the package should be entirely self-contained.r   r   r   r   rk   z/ARKitPackageEncapsulationChecker.GetDescriptioní  s   € ðPð Pr   c                 ó\   •— t          t          | ¦  «                             |||¦  «         d S r    )rm   rq  r4   rn   s       €r   r4   z)ARKitPackageEncapsulationChecker.__init__ó  s-   ø€ ÝÕ.°Ñ5Ô5ßŠH�WÐ1Ð3CÑDÔDÐDÐDÐDr   c                 óà  — |                      ¦   «         }t          |¦  «        sd S |                      ¦   «         j        }|r«t          j        |¦  «        rt          j        |¦  «        d         }|D ]D}|j        r;|j                             |¦  «        s!|                      d|j        ›d|›d�¦  «         ŒE|D ]5}|                     |¦  «        s|                      d|›d|›d�¦  «         Œ4d S d S )Nr   zFound loaded layer 'z'' that does not belong to the package 'rŸ   zFound asset reference ')	r¹   r&   ÚrealPathr   r#   ÚSplitPackageRelativePathOuterr,  r9   r$   )r0   rM   rX   rY   r¼   r_   r%   rÿ   s           r   rZ   z2ARKitPackageEncapsulationChecker.CheckDependencies÷  sC  € Ø×)Ò)Ñ+Ô+ˆ	Ý(¨Ñ3Ô3ð 	ØˆFà×+Ò+Ñ-Ô-Ô6ˆØð 	.ÝÔ'¨Ñ4Ô4ð (Ý Ô>Ø#ñ%ô %Ø%&ô(�à"ð =ð =�ð ”>ð =Ø œ>×4Ò4°[ÑAÔAð =Ø×,Ò,Ð,à"Ô-Ð-Ð-¨{¨{¨{ð.<ñ =ô =ð =øð #ð .ð .�Ø×'Ò'¨Ñ4Ô4ð .Ø×(Ò(Ð(à˜˜   ð*-ñ .ô .ð .øð	.ð 	.ð.ð .r   )r   r   r   r�   rk   r4   rZ   r‚   rƒ   s   @r   rq  rq  ì  sh   ø€ € € € € ØðPð Pñ „\ðPð
Eð Eð Eð Eð Eð.ð .ð .ð .ð .ð .ð .r   rq  c                   ó>   ‡ — e Zd ZdZed„ ¦   «         Zˆ fd„Zd„ Zˆ xZS )ÚARKitLayerChecker)ÚusdÚusdaÚusdcÚusdzc                  ó   — dS )NzgAll included layers that participate in composition should have one of the core supported file formats.r   r   r   r   rk   z ARKitLayerChecker.GetDescription  s   € ð<ð <r   c                 ó\   •— t          t          | ¦  «                             |||¦  «         d S r    )rm   rx  r4   rn   s       €r   r4   zARKitLayerChecker.__init__  s=   ø€ åÕ Ñ&Ô&×/Ò/°Ø0CØ0@ñ	Bô 	Bð 	Bð 	Bð 	Br   c                 óÔ   — |                       d|j        z  ¦  «         |                     ¦   «         j        }|t          j        vr#|                      d|j        ›d|›d�¦  «         d S d S )NzChecking layer <%s>.zLayer 'z' has unsupported formatId 'rŸ   )rC   r$   r!   ÚformatIdrx  Ú_allowedLayerFormatIdsr9   )r0   r%   r€  s      r   r\   zARKitLayerChecker.CheckLayer  sŠ   € Ø�	Š	Ð(¨5Ô+;Ñ;Ñ<Ô<Ð<à×&Ò&Ñ(Ô(Ô1ˆØÝÔ4ð5ð 5à× Ò Ð Ø$Ô/Ð/Ð/°°°ð";ñ <ô <ð <ð <ð <ð5ð 5r   )	r   r   r   r�  r�   rk   r4   r\   r‚   rƒ   s   @r   rx  rx    sk   ø€ € € € € à<Ðàð<ð <ñ „\ð<ðBð Bð Bð Bð Bð<ð <ð <ð <ð <ð <ð <r   rx  c                   ó>   ‡ — e Zd ZdZed„ ¦   «         Zˆ fd„Zd„ Zˆ xZS )ÚARKitPrimTypeChecker)r  ÚScopeÚXformÚCamerar  ÚMaterialÚMeshÚSphereÚCubeÚCylinderÚConeÚCapsuleÚ
GeomSubsetÚPointsrG  ÚSkeletonÚSkelAnimationÚ
BlendShapeÚSpatialAudioÚPhysicsSceneÚPreliminary_ReferenceImageÚPreliminary_TextÚPreliminary_Triggerc                  ó   — dS )NzSUsdGeomPointInstancers and custom schemas not provided by core USD are not allowed.r   r   r   r   rk   z#ARKitPrimTypeChecker.GetDescription3  s   € ð,ð ,r   c                 ó\   •— t          t          | ¦  «                             |||¦  «         d S r    )rm   rƒ  r4   rn   s       €r   r4   zARKitPrimTypeChecker.__init__8  s=   ø€ åÕ" DÑ)Ô)×2Ò2°7Ø3FØ3Cñ	Eô 	Eð 	Eð 	Eð 	Er   c                 óp  — |                       d|                     ¦   «         z  ¦  «         |                     ¦   «         t          j        vri|                     ¦   «                              d¦  «        sD|                      d|                     ¦   «         ›d|                     ¦   «         ›d�¦  «         d S d S d S )NzChecking prim <%s>.Ú
RealityKitzPrim <z> has unsupported type 'rŸ   )rC   rÌ   rÈ   rƒ  Ú_allowedPrimTypeNamesr,  r9   rb   s     r   rd   zARKitPrimTypeChecker.CheckPrim>  sÄ   € Ø�	Š	Ð'¨$¯,ª,©.¬.Ñ8Ñ9Ô9Ð9à×ÒÑÔÕ';Ô'QÐQÐQØ×!Ò!Ñ#Ô#×.Ò.¨|Ñ<Ô<ð Rð × Ò Ð Ø%)§\¢\¡^¤^ ^ ^°T×5EÒ5EÑ5GÔ5GÐ5GÐ5Gð"Iñ Jô Jð Jð Jð Jð RÐQÐQÐQr   )	r   r   r   rœ  r�   rk   r4   rd   r‚   rƒ   s   @r   rƒ  rƒ  '  sv   ø€ € € € € ð3Ðð ð,ð ,ñ „\ð,ðEð Eð Eð Eð EðJð Jð Jð Jð Jð Jð Jr   rƒ  c                   ó:   ‡ — e Zd Zed„ ¦   «         Zˆ fd„Zd„ Zˆ xZS )ÚARKitShaderCheckerc                  ó   — dS )Nz»Shader nodes must have "id" as the implementationSource, with id values that begin with "Usd*|ND_*". Also, shader inputs with connections must each have a single, valid connection source.r   r   r   r   rk   z!ARKitShaderChecker.GetDescriptionH  s   € ðð r   c                 ó\   •— t          t          | ¦  «                             |||¦  «         d S r    )rm   rž  r4   rn   s       €r   r4   zARKitShaderChecker.__init__O  s=   ø€ ÝÕ  $Ñ'Ô'×0Ò0°Ð:MØ1Añ	Cô 	Cð 	Cð 	Cð 	Cr   c           	      ó@  — ddl m} |                     |j        ¦  «        sd S |                     |¦  «        }|sd S |                      d|                     ¦   «         z  ¦  «         |                     ¦   «         }||j        j        k    r.|  	                    d|                     ¦   «         ›d|›d�¦  «         | 
                    ¦   «         }|rY|t          j        t          j        t          j        fv sb|                     t          j        ¦  «        sC|                     d¦  «        s.|  	                    d|                     ¦   «         ›d|›d�¦  «         |                     ¦   «         }|D �]±}|                     ¦   «                              ¦   «         }t)          |¦  «        dk    �rtt)          |¦  «        d	k    r@|  	                    d
|j                             ¦   «         ›dt)          |¦  «        ›d�¦  «         |                     ¦   «         }	|	€G|  	                    d|d         ›d|                     ¦   «                              ¦   «         ›d�¦  «         Œí|	d         }
|
                     ¦   «                              |j        ¦  «        s�|
                     ¦   «                              |j        ¦  «        sd|  	                    d
|                     ¦   «                              ¦   «         ›d|
                     ¦   «                              ¦   «         ›d�¦  «         �Œ³d S )Nr   r)  r\  r]  z$> has non-id implementation source 'rŸ   ÚND_z> has unsupported info:id 'r  zShader input <z> has z- connection sources, but only one is allowed.zConnection source <z> for shader input <z> is missing.z1> has an invalid connection source prim of type ')r    rÇ   rå   r  rC   rÌ   ra  r¢   r^  r9   rú   r   r	   r
   r   r,  r   rÊ   rË   ÚGetConnectionsr  ÚGetConnectedSourcer  r‡  rÈ   )r0   rc   rÇ   rû   rk  r  rÕ   ÚshdInputÚconnectionsÚconnectedSourceÚsources              r   rd   zARKitShaderChecker.CheckPrimS  sH  € Ø Ð Ð Ð Ð Ð à�xŠx˜œÑ(Ô(ð 	ØˆFà—’ Ñ&Ô&ˆØð 	àˆFà�	Š	Ð)¨D¯LªL©N¬NÑ:Ñ;Ô;Ð;à×3Ò3Ñ5Ô5ˆ
Ø˜œÔ+Ò+Ð+Ø× Ò Ð Ø&*§l¢l¡n¤n n n°j°j°jð"Bñ Cô Cð Cð ×%Ò%Ñ'Ô'ˆØð 	2Ø�YÔ8Ý&Ô3Ý&Ô5ð7ð 7ð 7ð ×#Ò#¥IÔ$>Ñ?Ô?ð7ð ×#Ò# EÑ*Ô*ð	7ð
 × Ò Ð Ø—|’|‘~”~�~�~ x x xð"1ñ 2ô 2ð 2ð ×'Ò'Ñ)Ô)ˆØ$ð 	>ñ 	>ˆHØ"×*Ò*Ñ,Ô,×;Ò;Ñ=Ô=ˆKõ �;ÑÔ !Ò#Ñ#Ý�{Ñ#Ô# aÒ'Ð'Ø×(Ò(Ð(à!Ô)×1Ò1Ñ3Ô3Ð3Ð3µS¸Ñ5EÔ5EÐ5EÐ5Eð*Gñ Hô Hð Hð #+×"=Ò"=Ñ"?Ô"?�Ø"Ð*Ø×(Ò(Ð(Ø4?À´N°N°NØ ×(Ò(Ñ*Ô*×2Ò2Ñ4Ô4Ð4Ð4ð*6ñ 7ô 7ð 7ð 7ð
 -¨QÔ/�FØ!Ÿ>š>Ñ+Ô+×/Ò/°´Ñ@Ô@ð >Ø!Ÿ>š>Ñ+Ô+×/Ò/°Ô0AÑBÔBð>à×,Ò,Ð,à%×-Ò-Ñ/Ô/×7Ò7Ñ9Ô9Ð9Ð9Ø#Ÿ^š^Ñ-Ô-×9Ò9Ñ;Ô;Ð;Ð;ð.=ñ >ô >ð >ùð'	>ð 	>r   r6  rƒ   s   @r   rž  rž  G  se   ø€ € € € € Øðð ñ „\ððCð Cð Cð Cð Cð4>ð 4>ð 4>ð 4>ð 4>ð 4>ð 4>r   rž  c                   ó:   ‡ — e Zd Zed„ ¦   «         Zˆ fd„Zd„ Zˆ xZS )ÚARKitMaterialBindingCheckerc                  ó   — dS )Nz;All material binding relationships must have valid targets.r   r   r   r   rk   z*ARKitMaterialBindingChecker.GetDescriptionŠ  s   € àLÐLr   c                 ó\   •— t          t          | ¦  «                             |||¦  «         d S r    )rm   rª  r4   rn   s       €r   r4   z$ARKitMaterialBindingChecker.__init__Ž  s=   ø€ ÝÕ)¨4Ñ0Ô0×9Ò9¸'Ø:MØ:Jñ	Lô 	Lð 	Lð 	Lð 	Lr   c                 ó<  ‡— ddl mŠ |                     ¦   «         }ˆfd„|D ¦   «         }|D �]n}|                     ¦   «         }t	          |¦  «        dk    ro‰j                             |¦  «        }|                     ¦   «         s@|                      d| 	                    ¦   «         ›d| 
                    ¦   «         ›d�¦  «         Œ™t	          |¦  «        dk    rÂ‰j                             |¦  «        }|                     ¦   «         s@|                      d	| 	                    ¦   «         ›d| 
                    ¦   «         ›d�¦  «         |                     ¦   «         s@|                      d	| 	                    ¦   «         ›d
|                     ¦   «         ›d�¦  «         �Œpd S )Nr   r)  c                 óv   •— g | ]5}|                      ¦   «                              ‰j        j        ¦  «        ¯3|‘Œ6S r   r+  r.  s     €r   r1  z9ARKitMaterialBindingChecker.CheckPrim.<locals>.<listcomp>–  sO   ø€ ð Kð Kð K˜sØ—’‘”×(Ò(¨¬Ô)HÑIÔIðK�sð Kð Kð Kr   r  zDirect material binding <z> targets an invalid material <rE  r  z#Collection-based material binding <z!> targets an invalid collection <)r    rÇ   r2  Ú
GetTargetsr  r4  ÚDirectBindingÚGetMaterialr9   rÌ   ÚGetMaterialPathÚCollectionBindingÚGetCollectionÚGetCollectionPath)	r0   rc   ÚrelationshipsÚbindingRelsÚ
bindingRelÚtargetsÚdirectBindingÚcollBindingrÇ   s	           @r   rd   z%ARKitMaterialBindingChecker.CheckPrim“  s  ø€ Ø Ð Ð Ð Ð Ð Ø×-Ò-Ñ/Ô/ˆðKð Kð Kð K mð Kñ Kô Kˆð &ð 	Qñ 	QˆJØ ×+Ò+Ñ-Ô-ˆGÝ�7‰|Œ|˜qÒ Ð Ø (Ô ;× IÒ IØ"ñ!$ô !$�à$×0Ò0Ñ2Ô2ð :Ø×(Ò(Ð(Ø7A×7IÒ7IÑ7KÔ7KÐ7KÐ7KØ%×5Ò5Ñ7Ô7Ð7Ð7ð*9ñ :ô :ð :øõ �W‘” Ò"Ð"Ø&Ô9×KÒKØ"ñ$ô $�à"×.Ò.Ñ0Ô0ð OØ×(Ò(Ð(à#×+Ò+Ñ-Ô-Ð-Ð-¨{×/JÒ/JÑ/LÔ/LÐ/LÐ/Lð*Nñ Oô Oð Oð #×0Ò0Ñ2Ô2ð QØ×(Ò(Ð(à#×+Ò+Ñ-Ô-Ð-Ð-¨{×/LÒ/LÑ/NÔ/NÐ/NÐ/Nð*Pñ Qô Qð Qùð#	Qð 	Qr   r6  rƒ   s   @r   rª  rª  ‰  so   ø€ € € € € ØðMð Mñ „\ðMðLð Lð Lð Lð Lð
Qð Qð Qð Qð Qð Qð Qr   rª  c                   óX   ‡ — e Zd Zej        ej        z   Zed„ ¦   «         Z	ˆ fd„Z
d„ Zˆ xZS )ÚARKitFileExtensionCheckerc                  ó   — dS )Nz7Only layer files and textures are allowed in a package.r   r   r   r   rk   z(ARKitFileExtensionChecker.GetDescription³  s   € àHÐHr   c                 ó\   •— t          t          | ¦  «                             |||¦  «         d S r    )rm   r½  r4   rn   s       €r   r4   z"ARKitFileExtensionChecker.__init__·  s=   ø€ ÝÕ'¨Ñ.Ô.×7Ò7¸Ø8KØ8Hñ	Jô 	Jð 	Jð 	Jð 	Jr   c           
      óÞ   — |                      ¦   «         }|D ]U}t          j        ¦   «                              |¦  «        }|t          j        vr|                      d|›d|›d|›d�¦  «         ŒVd S )Nrs   rt   z+' has an unknown or unsupported extension 'rŸ   )rv   r   rw   rx   r½  Ú_allowedFileExtensionsr9   )r0   r^   r_   r{   r|   r}   s         r   r`   z&ARKitFileExtensionChecker.CheckZipFile¼  sŠ   € Ø×(Ò(Ñ*Ô*ˆ	Ø!ð 	6ð 	6ˆHÝ”nÑ&Ô&×3Ò3°HÑ=Ô=ˆGØÕ7ÔNÐNÐNØ×$Ò$Ð$à�X�X˜{˜{˜{¨G¨G¨Gð&5ñ 6ô 6ð 6øð	6ð 	6r   )r   r   r   rx  r�  rª   r»   rÁ  r�   rk   r4   r`   r‚   rƒ   s   @r   r½  r½  ®  s€   ø€ € € € € àÔ0ØÔ-ñ	.ð ð ðIð Iñ „\ðIðJð Jð Jð Jð Jð
6ð 6ð 6ð 6ð 6ð 6ð 6r   r½  c                   óÊ   — e Zd ZdZed„ ¦   «         Zedd„¦   «         Zedd„¦   «         Zed„ ¦   «         Z	 	 	 d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S )ÚComplianceCheckera)   A utility class for checking compliance of a given USD asset or a USDZ 
    package.

    Since usdz files are zip files, someone could use generic zip tools to 
    create an archive and just change the extension, producing a .usdz file that 
    does not honor the additional constraints that usdz files require.  Even if 
    someone does use our official archive creation tools, though, we 
    intentionally allow creation of usdz files that can be very "permissive" in 
    their contents for internal studio uses, where portability outside the 
    studio is not a concern.  For content meant to be delivered over the web 
    (eg. ARKit assets), however, we must be much more restrictive.

    This class provides two levels of compliance checking: 
    * "structural" validation that is represented by a set of base rules. 
    * "ARKit" compatibility validation, which includes many more restrictions.
    
    Calling ComplianceChecker.DumpAllRules() will print an enumeration of the 
    various rules in the two categories of compliance checking.
    c            
      ó~   — t           t          t          t          t          t
          t          t          t          t          g
S r    )
ri   r…   rM  r�   rš   rª   rÜ   rö   r%  r8  r   r   r   ÚGetBaseRuleszComplianceChecker.GetBaseRulesÛ  s+   € å$Õ&8Õ:^Ý'Õ)=½~Ý(Õ*AÝ0Õ2NðPð 	Pr   Fc                 óŠ   — t           t          t          t          t          t
          g}| rt          j        dt          ¦  «         |S )NzVskipARKitRootLayerCheck is no longer supported. It will be removed in a future version)	rx  rƒ  rž  rª  r½  rq  ÚwarningsÚwarnÚPendingDeprecationWarning)ÚskipARKitRootLayerCheckÚ
arkitRuless     r   ÚGetARKitRuleszComplianceChecker.GetARKitRulesâ  sE   € å'Õ)=Ý(Ý1Ý/Ý6ð	8ˆ
ð
 #ð 	5ÝŒMÐrÝ3ñ5ô 5ð 5àÐr   c                 ó|   — t                                ¦   «         }| r t                                |¬¦  «        }||z  }|S )N)rÊ  )rÃ  rÅ  rÌ  )ÚarkitrÊ  ÚallRulesrË  s       r   ÚGetRuleszComplianceChecker.GetRulesî  sI   € å$×1Ò1Ñ3Ô3ˆØð 	#Ý*×8Ò8Ø,Cð 9ñ Eô EˆJà˜
Ñ"ˆHØˆr   c                  óª  — t          d¦  «         t          t          ¦   «         ¦  «        D ]/\  } }t          d| dz   ›d|                     ¦   «         ›�¦  «         Œ0t          d¦  «         t          d¦  «         t          t          ¦   «         ¦  «        D ]/\  } }t          d| dz   ›d|                     ¦   «         ›�¦  «         Œ0t          d¦  «         d S )NzBase rules:ú[r  z] ú------------------------------zARKit rules: )rB   Ú	enumeraterÅ  rk   )ÚruleNumÚrules     r   ÚDumpAllRuleszComplianceChecker.DumpAllRules÷  sØ   € åˆmÑÔÐÝ&¥|¡~¤~Ñ6Ô6ð 	Dð 	D‰MˆG�TÝˆE˜w¨™{˜{˜{¨D×,?Ò,?Ñ,AÔ,AÐ,AÐBÑCÔCÐCÐCÝˆh‰ŒˆÝˆoÑÔÐÝ&¥|¡~¤~Ñ6Ô6ð 	Dð 	D‰MˆG�TÝˆE˜w¨™{˜{˜{¨D×,?Ò,?Ñ,AÔ,AÐ,AÐBÑCÔCÐCÐCÝˆh‰Œˆˆˆr   Tc                 óÖ   ‡ ‡‡— |‰ _         | ‰ _        |‰ _        g ‰ _        g ‰ _        t          ¦   «         ‰ _        ˆˆˆ fd„t                               ‰|¦  «        D ¦   «         ‰ _	        d S )Nc                 ó4   •— g | ]} |‰j         ‰‰¦  «        ‘ŒS r   )r*   )r/  ÚRulerÎ  r3   r0   s     €€€r   r1  z.ComplianceChecker.__init__.<locals>.<listcomp>  s<   ø€ ð Lð Lð LÈ�t�t˜DœM¨5Ð2BÑCÔCð Lð Lð Lr   )
Ú_rootPackageOnlyÚ_doVariantsr*   r.   r/   ÚsetÚ_checkedPackagesrÃ  rÐ  Ú_rules)r0   rÎ  rÊ  ÚrootPackageOnlyÚskipVariantsr1   r3   s   ``    `r   r4   zComplianceChecker.__init__  s�   øøø€ ð !0ˆÔØ+Ð+ˆÔØˆŒØˆŒØˆŒõ !$¡¤ˆÔðLð Lð Lð Lð Lð LÝ!×*Ò*¨5Ð2IÑJÔJðLñ Lô LˆŒˆˆr   c                 ó6   — | j         rt          |¦  «         d S d S r    rA   r7   s     r   rC   zComplianceChecker._Msg  rD   r   c                 ó:   — | j                              |¦  «         d S r    r;   ©r0   ÚerrMsgs     r   r<   zComplianceChecker._AddError  s   € ØŒ×Ò˜FÑ#Ô#Ð#Ð#Ð#r   c                 ó:   — | j                              |¦  «         d S r    r>   rä  s     r   r?   zComplianceChecker._AddWarning  s   € ØŒ×Ò˜fÑ%Ô%Ð%Ð%Ð%r   c                 ó´   — | j         }| j        D ]H}|                     ¦   «         }|D ]/}|                     dt	          |¦  «        j        ›d|›�¦  «         Œ0ŒI|S )NzError checking rule 'z': )r.   rß  rI   r6   Útyper   )r0   ÚerrorsrÖ  ÚerrsÚerrs        r   rI   zComplianceChecker.GetErrors  s|   € Ø”ˆØ”Kð 	0ð 	0ˆDØ—>’>Ñ#Ô#ˆDØð 0ð 0�Ø—’�Ý˜$‘Z”ZÔ(Ð(Ð(¨#¨#ð/ñ 0ô 0ð 0ð 0ð0ð ˆr   c           	      óª   — | j         }| j        D ]C}|                     ¦   «         }|D ]*} |j        |›dt	          |¦  «        j        ›d�¦  «         Œ+ŒD|S )Nz (may violate 'ú'))r/   rß  rK   r6   rè  r   )r0   rÇ  rÖ  Ú
advisoriesÚads        r   rK   zComplianceChecker.GetWarnings%  s~   € Ø”>ˆØ”Kð 	.ð 	.ˆDØ×)Ò)Ñ+Ô+ˆJØ ð .ð .�Ø�”¸2¸2¸2Ý˜T™
œ
Ô+Ð+Ð+ð!-ñ .ô .ð .ð .ð.ð ˆr   c                 óæ   — t          d¦  «         | j        D ]J}t          d¦  «         t          dt          |¦  «        j        ›d|                     ¦   «         ›�¦  «         ŒKt          d¦  «         d S )NzChecking rules: rÓ  rÒ  z]:
 )rB   rß  rè  r   rk   )r0   rÖ  s     r   Ú	DumpRuleszComplianceChecker.DumpRules.  st   € ÝÐ Ñ!Ô!Ð!Ø”Kð 	Oð 	OˆDÝ�(‰OŒOˆOÝˆE¥$ t¡*¤*Ô"5Ð"5Ð"5°t×7JÒ7JÑ7LÔ7LÐ7LÐMÑNÔNÐNÐNÝˆh‰Œˆˆˆr   c           	      óª   — g }| j         D ]H}|                     ¦   «         }|D ]/}|                     |›dt          |¦  «        j        ›d�¦  «         Œ0ŒI|S )Nz	 (fails 'rí  )rß  rG   r6   rè  r   )r0   ÚfailedChecksrÖ  ÚfcsÚfcs        r   rG   z!ComplianceChecker.GetFailedChecks5  s   € ØˆØ”Kð 	.ð 	.ˆDØ×&Ò&Ñ(Ô(ˆCØð .ð .�Ø×#Ò#¸¸¸Ý˜T™
œ
Ô+Ð+Ð+ð%-ñ .ô .ð .ð .ð.ð Ðr   c                 óþ  — ddl m}m}m} |j                             |¦  «        s|                      d|z  ¦  «         d S |                     ¦   «         }|j                             |¦  «        }| 	                    ¦   «         }| j
        D ],}|                     |¦  «         |                     |¦  «         Œ-t          j        |                     ¦   «         ¦  «        5  |                     |                     |¦  «        ¦  «        \  }	}
}| j
        D ].}|                     |¦  «         |                     ||	|
¦  «         Œ/| j        r�|                     ¦   «         }|                     ¦   «                              ¦   «         r6t          j        |j        ¦  «        d         }|                      |¦  «         �n0|                      d|                     |¦  «        z  ¦  «         �nt9          ¦   «         }|	D ]Z}t;          |¦  «        r4t          j        |j        ¦  «        d         }|                     |¦  «         |                      |¦  «         Œ[|D ]}|                      |¦  «         Œddl m} |                      | !                    ¦   «         ¦  «         tE          |j#                             || $                    ¦   «         ¦  «        ¦  «        }|  %                    |d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   )rÅ   rÆ   ÚUsdUtilsz%Cannot open file '%s' on a USD stage.z\Root layer of the USD stage (%s) doesn't belong to a package, but 'rootPackageOnly' is True!r;  T©ÚisStageRoot)&r    rÅ   rÆ   r÷  ÚStageÚIsSupportedFiler<   ÚCoalescingDiagnosticDelegateÚOpenÚTakeUncoalescedDiagnosticsrß  rN   rR   r   ÚResolverContextBinderÚGetPathResolverContextÚComputeAllDependenciesÚ	AssetPathrU   rZ   rÛ  r¹   r!   r"   ÚSplitPackageRelativePathInnerr$   Ú_CheckPackageÚDescriberÝ  r&   ÚaddÚ_CheckLayerÚSetEditTargetÚGetSessionLayerÚiterÚ	PrimRangeÚTraverseInstanceProxiesÚ_TraverseRange)r0   Ú	inputFilerÅ   rÆ   r÷  ÚdelegaterM   ÚstageOpenDiagnosticsrÖ  Ú	allLayersÚ	allAssetsrT   r¼   r_   Úpackagesr%   ÚpackageÚ
allPrimsIts                     r   ÚCheckCompliancez!ComplianceChecker.CheckCompliance>  s�  € Ø*Ð*Ð*Ð*Ð*Ð*Ð*Ð*Ð*Ð*ØŒy×(Ò(¨Ñ3Ô3ð 	Ø�NŠNÐBÀYÑNÑOÔOÐOØˆFð ×8Ò8Ñ:Ô:ˆØ”9—>’> )Ñ,Ô,ˆØ'×BÒBÑDÔDÐà”Kð 	8ð 	8ˆDØ�OŠO˜HÑ%Ô%Ð%Ø×!Ò!Ð"6Ñ7Ô7Ð7Ð7åÔ% h×&EÒ&EÑ&GÔ&GÑHÔHð %	Bð %	Bð ×3Ò3°C·M²MÀ)Ñ4LÔ4LÑMÔMñ 4ˆY˜	 ?àœð Gð G�Ø×)Ò)¨/Ñ:Ô:Ð:Ø×&Ò& x°¸IÑFÔFÐFÐFàÔ$ð BØ$×1Ò1Ñ3Ô3�	Ø×*Ò*Ñ,Ô,×6Ò6Ñ8Ô8ð 0Ý"$Ô"BØ%Ô0ñ#2ô #2Ø23ô#5�Kà×&Ò& {Ñ3Ô3Ð3Ñ3à—N’Nð $DàŸš XÑ.Ô.ñ$/ñ 0ô 0ð 0ñ 0õ
 ™5œ5�Ø&ð ,ð ,�EÝ0°Ñ7Ô7ð 2Ý&(Ô&FØ %Ô 0ñ'2ô '2Ø23ô'5˜à Ÿš [Ñ1Ô1Ð1Ø×$Ò$ UÑ+Ô+Ð+Ð+Ø'ð 0ð 0�GØ×&Ò& wÑ/Ô/Ð/Ð/ð $Ð#Ð#Ð#Ð#Ð#à×&Ò& x×'?Ò'?Ñ'AÔ'AÑBÔBÐBÝ! #¤-×"5Ò"5°hØ×3Ò3Ñ5Ô5ñ#7ô #7ñ 8ô 8�
à×#Ò# J¸DÐ#ÑAÔAÐAðK%	Bð %	Bð %	Bñ %	Bô %	Bð %	Bð %	Bð %	Bð %	Bð %	Bð %	Bð %	Bøøøð %	Bð %	Bð %	Bð %	Bð %	Bð %	Bs   ÃH
K2Ë2K6Ë9K6c                 óÎ  — |                       d|z  ¦  «         ddlm} t          j        ¦   «                              |¦  «        }|dk    r|                      d|z  ¦  «         d S t          j        |¦  «        r/t          j        |¦  «        d         }|  	                    |¦  «         || j
        v rd S | j
                             |¦  «         t          j        ¦   «                              |¦  «        }|s|                      d|z  ¦  «         d S |j                             |¦  «        }|s|                      d|z  ¦  «         d S | j        D ]}|                     ||¦  «         Œd S )NzChecking package <%s>.r   r;  r|  z,Package at path %s has an invalid extension.z$Failed to resolve package path '%s'.z$Could not open package at path '%s'.)rC   r    rÆ   r   rw   rx   r<   r#   r  r  rÞ  r  ÚResolveÚZipFilerý  rß  r`   )r0   r_   rÆ   ÚpkgExtÚparentPackagePathrþ   r^   rÖ  s           r   r  zComplianceChecker._CheckPackaget  s�  € Ø�	Š	Ð*¨[Ñ8Ñ9Ô9Ð9ð
 	ÐÐÐÐÐÝ”Ñ!Ô!×.Ò.¨{Ñ;Ô;ˆØ�VÒÐØ�NŠNÐIØ(ñ)ñ *ô *ð *àˆFõ Ô# KÑ0Ô0ð 	2Ý "Ô @ÀÑ MÔ MÈaÔ PÐØ×ÒÐ0Ñ1Ô1Ð1ð ˜$Ô/Ð/Ð/ØˆFØÔ×!Ò! +Ñ.Ô.Ð.å”~Ñ'Ô'×/Ò/°Ñ<Ô<ˆØð 	Ø�NŠNÐAÀKÑOÑPÔPÐPØˆFà”+×"Ò" <Ñ0Ô0ˆØð 	Ø�NŠNÐAØ'ñ(ñ )ô )ð )àˆFØ”Kð 	4ð 	4ˆDØ×Ò˜g {Ñ3Ô3Ð3Ð3ð	4ð 	4r   c                 óD   — | j         D ]}|                     |¦  «         Œd S r    )rß  r\   )r0   r%   rÖ  s      r   r  zComplianceChecker._CheckLayer˜  s2   € Ø”Kð 	#ð 	#ˆDØ�OŠO˜EÑ"Ô"Ð"Ð"ð	#ð 	#r   c                 óD   — | j         D ]}|                     |¦  «         Œd S r    )rß  rd   )r0   rc   rÖ  s      r   Ú
_CheckPrimzComplianceChecker._CheckPrimœ  s2   € Ø”Kð 	!ð 	!ˆDØ�NŠN˜4Ñ Ô Ð Ð ð	!ð 	!r   c                 ó®  — g }|                      ¦   «         }|D ]¡}| j        r|s||k    r|                      |¦  «         Œ'|                     ¦   «         }|                     ¦   «         }t          |¦  «        dk    r|                      |¦  «         Œx|                     |¦  «         |                     ¦   «          Œ¢|D ]}|                      |¦  «         Œd S )Nr   )	ÚGetCurrentPrimrÜ  r  ÚGetVariantSetsÚGetNamesr  r6   ÚPruneChildrenÚ_TraverseVariants)r0   ÚprimRangeItrù  ÚprimsWithVariantsÚrootPrimrc   ÚvSetsÚ	vSetNamess           r   r  z ComplianceChecker._TraverseRange   sø   € ØÐØ×-Ò-Ñ/Ô/ˆØð 	,ð 	,ˆDàÔ#ð ¨Kð ¸DÀHÒ<LÐ<LØ—’ Ñ%Ô%Ð%Øà×'Ò'Ñ)Ô)ˆEØŸšÑ(Ô(ˆIÝ�9‰~Œ~ Ò"Ð"Ø—’ Ñ%Ô%Ð%Ð%à!×(Ò(¨Ñ.Ô.Ð.Ø×)Ò)Ñ+Ô+Ð+Ð+à%ð 	)ð 	)ˆDØ×"Ò" 4Ñ(Ô(Ð(Ð(ð	)ð 	)r   c                 óÐ  — ddl m} |                     ¦   «         rdS |                     ¦   «         }|                     ¦   «         }g }|D ]@}|                     |¦  «        }|                     ¦   «         }|                     |¦  «         ŒAdd l}	 |	j	        |Ž }
|
D ]Ë}|  
                    d|›d|                     ¦   «         ›d�¦  «         t          |¦  «        D ]!\  }}|                     ||         |¦  «         Œ"| j        D ]}|                     ¦   «          Œt!          |                     ||                     ¦   «         ¦  «        ¦  «        }|                      |d¬¦  «         ŒÌd S )	Nr   r;  TzTesting variation z
 of prim <ú>Frø  )r    rÆ   ÚIsInstanceProxyr!  r"  ÚGetVariantSetÚGetVariantNamesr6   Ú	itertoolsÚproductrC   rÌ   rÔ  ÚSetSelectionrß  rf   r
  r  r  r  )r0   rc   rÆ   r(  r)  ÚallVariantNamesÚvSetNameÚvSetÚvNamesr/  ÚallVariationsÚ	variationÚidxÚselrÖ  r%  s                   r   r$  z#ComplianceChecker._TraverseVariants´  s°  € ØÐÐÐÐÐØ×ÒÑ!Ô!ð 	Ø�4à×#Ò#Ñ%Ô%ˆØ—N’NÑ$Ô$ˆ	ØˆØ!ð 	+ð 	+ˆHØ×&Ò& xÑ0Ô0ˆDØ×)Ò)Ñ+Ô+ˆFØ×"Ò" 6Ñ*Ô*Ð*Ð*àÐÐÐØ)˜	Ô)¨?Ð;ˆà&ð 		@ð 		@ˆIØ�IŠIˆIØ �y�y $§,¢,¡.¤. . .ð2ñ 3ô 3ð 3å'¨	Ñ2Ô2ð 8ð 8‘
��cØ×"Ò" 9¨S¤>°3Ñ7Ô7Ð7Ð7Øœð #ð #�Ø× Ò Ñ"Ô"Ð"Ð"Ý˜sŸ}š}¨TØ×/Ò/Ñ1Ô1ñ 3ô  3ñ 4ô 4ˆKà×Ò ¸ÐÑ?Ô?Ð?Ð?ð		@ð 		@r   N)F)FF)FFFFFT)r   r   r   rg   r�   rÅ  rÌ  rÐ  r×  r4   rC   r<   r?   rI   rK   rñ  rG   r  r  r  r  r  r$  r   r   r   rÃ  rÃ  Æ  sˆ  € € € € € ðð ð( ðPð Pñ „\ðPð ð	ð 	ð 	ñ „\ð	ð ðð ð ñ „\ðð ðð ñ „\ðð =BØDIØ"&ðLð Lð Lð Lð ð ð ð$ð $ð $ð&ð &ð &ðð ð ðð ð ðð ð ðð ð ð4Bð 4Bð 4Bðl"4ð "4ð "4ðH#ð #ð #ð!ð !ð !ð)ð )ð )ð(@ð @ð @ð @ð @r   rÃ  )Ú
__future__r   rÇ  r    r   Úpxr.UsdUtils.constantsGroupr   r   r   r&   Úobjectr(   ri   r…   r�   rš   rª   rÜ   rö   r%  r8  rM  rq  rx  rƒ  rž  rª  r½  rÃ  r   r   r   ú<module>r=     s&  ðð2 &Ð %Ð %Ð %Ð %Ð %à €€€à Ð Ð Ð Ð Ð à 6Ð 6Ð 6Ð 6Ð 6Ð 6ð*ð *ð *ð *ð *�ñ *ô *ð *ðð ð ð ð �.ñ ô ð ð6ð 6ð 6ðVð Vð Vð Vð V�fñ Vô Vð Vðt9ð 9ð 9ð 9ð 9˜?ñ 9ô 9ð 9ð,?ð ?ð ?ð ?ð ?˜ñ ?ô ?ð ?ð..ð .ð .ð .ð .˜oñ .ô .ð .ð4Rð Rð Rð Rð R˜?ñ Rô Rð RðFF>ð F>ð F>ð F>ð F>�_ñ F>ô F>ð F>ðPj)ð j)ð j)ð j)ð j)˜ñ j)ô j)ð j)ð\l@ð l@ð l@ð l@ð l@˜oñ l@ô l@ð l@ð\&ð &ð &ð &ð & ñ &ô &ð &ð*&Jð &Jð &Jð &Jð &J ?ñ &Jô &Jð &JðPRPð RPð RPð RPð RP¨?ñ RPô RPð RPðh!.ð !.ð !.ð !.ð !. ñ !.ô !.ð !.ðF<ð <ð <ð <ð <˜ñ <ô <ð <ð0Jð Jð Jð Jð J˜?ñ Jô Jð Jð@@>ð @>ð @>ð @>ð @>˜ñ @>ô @>ð @>ðD#Qð #Qð #Qð #Qð #Q /ñ #Qô #Qð #QðJ6ð 6ð 6ð 6ð 6 ñ 6ô 6ð 6ð0G@ð G@ð G@ð G@ð G@˜ñ G@ô G@ð G@ð G@ð G@r   