§
    Š·Ùh	  ã                   ó|   — d Z ddlmZ ddlmZmZmZmZ ddlm	Z	m
Z
 dZ G d„ de
e¦  «        Z e	eee¬¦  «         d	S )
a‚  
Apple/Google Exposure Notification System (ENS), formerly known as
Privacy-Preserving Contact Tracing Project.

This module parses the Bluetooth Low Energy beacon payloads used by the system.
This does **not** yet implement any cryptographic functionality.

More info:

* `Apple: Privacy-Preserving Contact Tracing`__
* `Google: Exposure Notifications`__
* `Wikipedia: Exposure Notification`__

__ https://www.apple.com/covid19/contacttracing/
__ https://www.google.com/covid19/exposurenotifications/
__ https://en.wikipedia.org/wiki/Exposure_Notification

Bluetooth protocol specifications:

* `v1.1`_ (April 2020)
* `v1.2`_ (April 2020)

.. _v1.1: https://blog.google/documents/58/Contact_Tracing_-_Bluetooth_Specification_v1.1_RYGZbKW.pdf
.. _v1.2: https://covid19-static.cdn-apple.com/applications/covid19/current/static/contact-tracing/pdf/ExposureNotification-BluetoothSpecificationv1.2.pdf
é    )ÚStrFixedLenField)ÚEIR_HdrÚEIR_ServiceData16BitUUIDÚ!EIR_CompleteList16BitServiceUUIDsÚLowEnergyBeaconHelper)Úbind_layersÚPacketioý  c                   óP   — e Zd ZdZdZ eddd¦  «         eddd¦  «        gZd„ ZdS )	ÚExposure_Notification_Framez7Apple/Google BLE Exposure Notification broadcast frame.zExposure Notification broadcastÚ
identifierNé   Úmetadataé   c                 ó¦   — t           j        t          ¦   «         t          t          g¬¦  «        z  t          ¦   «         t          ¦   «         z  | z  gz   S )z1Builds a list of EIR messages to wrap this frame.)Ú	svc_uuids)r   Úbase_eirr   r   ÚEXPOSURE_NOTIFICATION_UUIDr   )Úselfs    úg/mounts/lovelace/software/anaconda3/lib/python3.11/site-packages/scapy/contrib/exposure_notification.pyÚ	build_eirz%Exposure_Notification_Frame.build_eir7   sX   € õ %Ô-Ý‰IŒIÕ9Ý*ðE,ð -ñ -ô -ñ -å‰IŒIÕ0Ñ2Ô2Ñ2°TÑ9ð1
ñ 
ð 	
ó    )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Únamer   Úfields_descr   © r   r   r   r   ,   s[   € € € € € ØAÐAØ,€Dð 	Ð˜ t¨RÑ0Ô0àÐ˜ T¨1Ñ-Ô-ð	€Kð
ð 
ð 
ð 
ð 
r   r   )Úsvc_uuidN)r   Úscapy.fieldsr   Úscapy.layers.bluetoothr   r   r   r   Úscapy.packetr   r	   r   r   r   r   r   ú<module>r#      sÚ   ððð ð4 *Ð )Ð )Ð )Ð )Ð )ð=ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =à ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,ð $Ð ð
ð 
ð 
ð 
ð 
 &Ð*?ñ 
ô 
ð 
ð* €Ð$Ð&AØ/ð1ñ 1ô 1ð 1ð 1ð 1r   